@webiny/api-headless-cms 0.0.0-unstable.9e825fd5fb → 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 (550) hide show
  1. package/constants.d.ts +32 -0
  2. package/constants.js +57 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +77 -39
  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 +142 -90
  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 +5 -4
  50. package/crud/contentEntry.crud.js +558 -528
  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.d.ts +1 -1
  56. package/crud/contentModel/beforeDelete.js +4 -6
  57. package/crud/contentModel/beforeDelete.js.map +1 -1
  58. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  59. package/crud/contentModel/beforeUpdate.js +3 -6
  60. package/crud/contentModel/beforeUpdate.js.map +1 -1
  61. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  62. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  63. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  64. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  65. package/crud/contentModel/createFieldStorageId.js +3 -1
  66. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  67. package/crud/contentModel/defaultFields.js +3 -1
  68. package/crud/contentModel/defaultFields.js.map +1 -1
  69. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  70. package/crud/contentModel/ensureTypeTag.js +21 -0
  71. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  72. package/crud/contentModel/fields/descriptionField.js +4 -2
  73. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  74. package/crud/contentModel/fields/imageField.js +6 -8
  75. package/crud/contentModel/fields/imageField.js.map +1 -1
  76. package/crud/contentModel/fields/titleField.js +4 -2
  77. package/crud/contentModel/fields/titleField.js.map +1 -1
  78. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  79. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  80. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  81. package/crud/contentModel/validate/endingAllowed.js +3 -1
  82. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  83. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  84. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  85. package/crud/contentModel/validate/modelId.js +3 -1
  86. package/crud/contentModel/validate/modelId.js.map +1 -1
  87. package/crud/contentModel/validate/pluralApiName.js +3 -1
  88. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  89. package/crud/contentModel/validate/singularApiName.js +3 -1
  90. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  91. package/crud/contentModel/validateModel.js +3 -1
  92. package/crud/contentModel/validateModel.js.map +1 -1
  93. package/crud/contentModel/validateModelFields.js +8 -7
  94. package/crud/contentModel/validateModelFields.js.map +1 -1
  95. package/crud/contentModel/validation.d.ts +586 -233
  96. package/crud/contentModel/validation.js +73 -13
  97. package/crud/contentModel/validation.js.map +1 -1
  98. package/crud/contentModel.crud.d.ts +2 -0
  99. package/crud/contentModel.crud.js +146 -181
  100. package/crud/contentModel.crud.js.map +1 -1
  101. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  102. package/crud/contentModelGroup/beforeCreate.js +15 -1
  103. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  104. package/crud/contentModelGroup/beforeDelete.js +3 -1
  105. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  106. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  107. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  108. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  109. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  110. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  111. package/crud/contentModelGroup/validation.d.ts +10 -7
  112. package/crud/contentModelGroup/validation.js +5 -2
  113. package/crud/contentModelGroup/validation.js.map +1 -1
  114. package/crud/contentModelGroup.crud.d.ts +3 -1
  115. package/crud/contentModelGroup.crud.js +139 -123
  116. package/crud/contentModelGroup.crud.js.map +1 -1
  117. package/crud/system.crud.js +8 -11
  118. package/crud/system.crud.js.map +1 -1
  119. package/export/crud/exporting.d.ts +3 -0
  120. package/export/crud/exporting.js +49 -0
  121. package/export/crud/exporting.js.map +1 -0
  122. package/export/crud/importing.d.ts +3 -0
  123. package/export/crud/importing.js +79 -0
  124. package/export/crud/importing.js.map +1 -0
  125. package/export/crud/imports/importData.d.ts +14 -0
  126. package/export/crud/imports/importData.js +52 -0
  127. package/export/crud/imports/importData.js.map +1 -0
  128. package/export/crud/imports/importGroups.d.ts +8 -0
  129. package/export/crud/imports/importGroups.js +104 -0
  130. package/export/crud/imports/importGroups.js.map +1 -0
  131. package/export/crud/imports/importModels.d.ts +8 -0
  132. package/export/crud/imports/importModels.js +136 -0
  133. package/export/crud/imports/importModels.js.map +1 -0
  134. package/export/crud/imports/validateGroups.d.ts +8 -0
  135. package/export/crud/imports/validateGroups.js +112 -0
  136. package/export/crud/imports/validateGroups.js.map +1 -0
  137. package/export/crud/imports/validateInput.d.ts +19 -0
  138. package/export/crud/imports/validateInput.js +55 -0
  139. package/export/crud/imports/validateInput.js.map +1 -0
  140. package/export/crud/imports/validateModels.d.ts +12 -0
  141. package/export/crud/imports/validateModels.js +203 -0
  142. package/export/crud/imports/validateModels.js.map +1 -0
  143. package/export/crud/index.d.ts +4 -0
  144. package/export/crud/index.js +15 -0
  145. package/export/crud/index.js.map +1 -0
  146. package/export/crud/sanitize.d.ts +4 -0
  147. package/export/crud/sanitize.js +35 -0
  148. package/export/crud/sanitize.js.map +1 -0
  149. package/export/graphql/index.d.ts +3 -0
  150. package/export/graphql/index.js +188 -0
  151. package/export/graphql/index.js.map +1 -0
  152. package/export/index.d.ts +2 -0
  153. package/export/index.js +29 -0
  154. package/export/index.js.map +1 -0
  155. package/export/types.d.ts +113 -0
  156. package/export/types.js +22 -0
  157. package/export/types.js.map +1 -0
  158. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  159. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  160. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  161. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  162. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  163. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  164. package/fieldConverters/index.js +3 -1
  165. package/fieldConverters/index.js.map +1 -1
  166. package/graphql/buildSchemaPlugins.js +7 -1
  167. package/graphql/buildSchemaPlugins.js.map +1 -1
  168. package/graphql/checkEndpointAccess.d.ts +2 -0
  169. package/graphql/checkEndpointAccess.js +20 -0
  170. package/graphql/checkEndpointAccess.js.map +1 -0
  171. package/graphql/createExecutableSchema.js +3 -1
  172. package/graphql/createExecutableSchema.js.map +1 -1
  173. package/graphql/createRequestBody.d.ts +2 -0
  174. package/graphql/createRequestBody.js +16 -0
  175. package/graphql/createRequestBody.js.map +1 -0
  176. package/graphql/formatErrorPayload.d.ts +1 -0
  177. package/graphql/formatErrorPayload.js +27 -0
  178. package/graphql/formatErrorPayload.js.map +1 -0
  179. package/graphql/generateSchema.js +3 -1
  180. package/graphql/generateSchema.js.map +1 -1
  181. package/graphql/getSchema.d.ts +16 -0
  182. package/graphql/getSchema.js +118 -0
  183. package/graphql/getSchema.js.map +1 -0
  184. package/graphql/graphQLHandlerFactory.js +8 -191
  185. package/graphql/graphQLHandlerFactory.js.map +1 -1
  186. package/graphql/handleRequest.d.ts +11 -0
  187. package/graphql/handleRequest.js +79 -0
  188. package/graphql/handleRequest.js.map +1 -0
  189. package/graphql/index.d.ts +1 -1
  190. package/graphql/index.js +4 -2
  191. package/graphql/index.js.map +1 -1
  192. package/graphql/schema/baseContentSchema.js +9 -8
  193. package/graphql/schema/baseContentSchema.js.map +1 -1
  194. package/graphql/schema/baseSchema.d.ts +2 -3
  195. package/graphql/schema/baseSchema.js +95 -2
  196. package/graphql/schema/baseSchema.js.map +1 -1
  197. package/graphql/schema/contentEntries.js +54 -16
  198. package/graphql/schema/contentEntries.js.map +1 -1
  199. package/graphql/schema/contentModelGroups.js +5 -2
  200. package/graphql/schema/contentModelGroups.js.map +1 -1
  201. package/graphql/schema/contentModels.js +10 -10
  202. package/graphql/schema/contentModels.js.map +1 -1
  203. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  204. package/graphql/schema/createFieldResolvers.js +18 -22
  205. package/graphql/schema/createFieldResolvers.js.map +1 -1
  206. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  207. package/graphql/schema/createFieldTypePluginRecords.js +15 -0
  208. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  209. package/graphql/schema/createManageResolvers.d.ts +1 -1
  210. package/graphql/schema/createManageResolvers.js +27 -10
  211. package/graphql/schema/createManageResolvers.js.map +1 -1
  212. package/graphql/schema/createManageSDL.js +83 -42
  213. package/graphql/schema/createManageSDL.js.map +1 -1
  214. package/graphql/schema/createPreviewResolvers.js +7 -6
  215. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  216. package/graphql/schema/createReadResolvers.js +7 -6
  217. package/graphql/schema/createReadResolvers.js.map +1 -1
  218. package/graphql/schema/createReadSDL.js +35 -24
  219. package/graphql/schema/createReadSDL.js.map +1 -1
  220. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  221. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  222. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  223. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  224. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  225. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  226. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  227. package/graphql/schema/resolvers/manage/resolveDelete.js +16 -4
  228. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  229. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  230. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
  231. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  232. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  233. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  234. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  235. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  236. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  237. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  238. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  239. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
  240. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  241. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  242. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  243. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  244. package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
  245. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  246. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  247. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  248. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  249. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  250. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  251. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  252. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  253. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  254. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  255. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  256. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  257. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  258. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  259. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  260. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  261. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  262. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  263. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  264. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  265. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  266. package/graphql/schema/schemaPlugins.js +5 -12
  267. package/graphql/schema/schemaPlugins.js.map +1 -1
  268. package/graphql/system.d.ts +2 -5
  269. package/graphql/system.js +4 -12
  270. package/graphql/system.js.map +1 -1
  271. package/graphqlFields/boolean.js +3 -1
  272. package/graphqlFields/boolean.js.map +1 -1
  273. package/graphqlFields/datetime.js +5 -5
  274. package/graphqlFields/datetime.js.map +1 -1
  275. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  276. package/graphqlFields/dynamicZone/dynamicZoneField.js +76 -26
  277. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  278. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  279. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  280. package/graphqlFields/dynamicZone/index.js +3 -1
  281. package/graphqlFields/dynamicZone/index.js.map +1 -1
  282. package/graphqlFields/file.js +3 -1
  283. package/graphqlFields/file.js.map +1 -1
  284. package/graphqlFields/helpers.d.ts +0 -1
  285. package/graphqlFields/helpers.js +6 -18
  286. package/graphqlFields/helpers.js.map +1 -1
  287. package/graphqlFields/index.js +5 -2
  288. package/graphqlFields/index.js.map +1 -1
  289. package/graphqlFields/json.d.ts +2 -0
  290. package/graphqlFields/json.js +49 -0
  291. package/graphqlFields/json.js.map +1 -0
  292. package/graphqlFields/longText.js +14 -3
  293. package/graphqlFields/longText.js.map +1 -1
  294. package/graphqlFields/number.js +4 -1
  295. package/graphqlFields/number.js.map +1 -1
  296. package/graphqlFields/object.js +26 -46
  297. package/graphqlFields/object.js.map +1 -1
  298. package/graphqlFields/ref.js +35 -23
  299. package/graphqlFields/ref.js.map +1 -1
  300. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  301. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  302. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  303. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  304. package/graphqlFields/richText/richTextResolver.js +39 -0
  305. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  306. package/graphqlFields/richText.js +11 -3
  307. package/graphqlFields/richText.js.map +1 -1
  308. package/graphqlFields/text.js +5 -1
  309. package/graphqlFields/text.js.map +1 -1
  310. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  311. package/htmlRenderer/LexicalRenderer.js +28 -0
  312. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  313. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  314. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  315. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  316. package/index.d.ts +3 -2
  317. package/index.js +33 -14
  318. package/index.js.map +1 -1
  319. package/modelManager/DefaultCmsModelManager.js +3 -5
  320. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  321. package/modelManager/index.js +3 -1
  322. package/modelManager/index.js.map +1 -1
  323. package/package.json +36 -39
  324. package/parameters/context.js +4 -2
  325. package/parameters/context.js.map +1 -1
  326. package/parameters/header.js +7 -6
  327. package/parameters/header.js.map +1 -1
  328. package/parameters/index.js +3 -1
  329. package/parameters/index.js.map +1 -1
  330. package/parameters/manual.js +9 -4
  331. package/parameters/manual.js.map +1 -1
  332. package/parameters/path.js +4 -3
  333. package/parameters/path.js.map +1 -1
  334. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  335. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  336. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  337. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  338. package/plugins/CmsGroupPlugin.d.ts +6 -3
  339. package/plugins/CmsGroupPlugin.js +8 -6
  340. package/plugins/CmsGroupPlugin.js.map +1 -1
  341. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  342. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  343. package/plugins/CmsModelPlugin.d.ts +8 -4
  344. package/plugins/CmsModelPlugin.js +61 -32
  345. package/plugins/CmsModelPlugin.js.map +1 -1
  346. package/plugins/CmsParametersPlugin.js +7 -4
  347. package/plugins/CmsParametersPlugin.js.map +1 -1
  348. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  349. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  350. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  351. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  352. package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
  353. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  354. package/plugins/StorageTransformPlugin.d.ts +2 -2
  355. package/plugins/StorageTransformPlugin.js +3 -4
  356. package/plugins/StorageTransformPlugin.js.map +1 -1
  357. package/plugins/index.d.ts +2 -0
  358. package/plugins/index.js +25 -1
  359. package/plugins/index.js.map +1 -1
  360. package/storage/default.js +3 -1
  361. package/storage/default.js.map +1 -1
  362. package/storage/index.d.ts +1 -0
  363. package/storage/index.js +15 -0
  364. package/storage/index.js.map +1 -0
  365. package/storage/json.d.ts +2 -0
  366. package/storage/json.js +27 -0
  367. package/storage/json.js.map +1 -0
  368. package/storage/object.js +8 -8
  369. package/storage/object.js.map +1 -1
  370. package/types.d.ts +437 -313
  371. package/types.js +20 -20
  372. package/types.js.map +1 -1
  373. package/utils/access.d.ts +9 -8
  374. package/utils/access.js +12 -62
  375. package/utils/access.js.map +1 -1
  376. package/utils/caching/Cache.d.ts +2 -0
  377. package/utils/caching/Cache.js +51 -0
  378. package/utils/caching/Cache.js.map +1 -0
  379. package/utils/caching/CacheKey.d.ts +2 -0
  380. package/utils/caching/CacheKey.js +40 -0
  381. package/utils/caching/CacheKey.js.map +1 -0
  382. package/utils/caching/index.d.ts +2 -0
  383. package/utils/caching/index.js +29 -0
  384. package/utils/caching/index.js.map +1 -0
  385. package/utils/caching/types.d.ts +11 -0
  386. package/utils/caching/types.js +7 -0
  387. package/utils/caching/types.js.map +1 -0
  388. package/utils/converters/Converter.js +4 -5
  389. package/utils/converters/Converter.js.map +1 -1
  390. package/utils/converters/ConverterCollection.js +13 -7
  391. package/utils/converters/ConverterCollection.js.map +1 -1
  392. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  393. package/utils/converters/valueKeyStorageConverter.js +32 -26
  394. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  395. package/utils/createTypeFromFields.js +8 -4
  396. package/utils/createTypeFromFields.js.map +1 -1
  397. package/utils/createTypeName.d.ts +0 -2
  398. package/utils/createTypeName.js +3 -9
  399. package/utils/createTypeName.js.map +1 -1
  400. package/utils/date.d.ts +10 -0
  401. package/utils/date.js +36 -0
  402. package/utils/date.js.map +1 -0
  403. package/utils/entryStorage.d.ts +4 -4
  404. package/utils/entryStorage.js +6 -4
  405. package/utils/entryStorage.js.map +1 -1
  406. package/utils/filterAsync.js +9 -8
  407. package/utils/filterAsync.js.map +1 -1
  408. package/utils/getBaseFieldType.d.ts +1 -3
  409. package/utils/getBaseFieldType.js +3 -1
  410. package/utils/getBaseFieldType.js.map +1 -1
  411. package/utils/getEntryDescription.d.ts +1 -1
  412. package/utils/getEntryDescription.js +3 -1
  413. package/utils/getEntryDescription.js.map +1 -1
  414. package/utils/getEntryImage.d.ts +1 -1
  415. package/utils/getEntryImage.js +3 -1
  416. package/utils/getEntryImage.js.map +1 -1
  417. package/utils/getEntryTitle.d.ts +1 -1
  418. package/utils/getEntryTitle.js +3 -1
  419. package/utils/getEntryTitle.js.map +1 -1
  420. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  421. package/utils/getSchemaFromFieldPlugins.js +22 -4
  422. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  423. package/utils/identity.d.ts +2 -0
  424. package/utils/identity.js +20 -0
  425. package/utils/identity.js.map +1 -0
  426. package/utils/incrementEntryIdVersion.js +3 -1
  427. package/utils/incrementEntryIdVersion.js.map +1 -1
  428. package/utils/index.d.ts +1 -0
  429. package/utils/index.js +18 -0
  430. package/utils/index.js.map +1 -0
  431. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  432. package/utils/permissions/EntriesPermissions.js +11 -0
  433. package/utils/permissions/EntriesPermissions.js.map +1 -0
  434. package/utils/permissions/ModelGroupsPermissions.d.ts +9 -0
  435. package/utils/permissions/ModelGroupsPermissions.js +50 -0
  436. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  437. package/utils/permissions/ModelsPermissions.d.ts +22 -0
  438. package/utils/permissions/ModelsPermissions.js +90 -0
  439. package/utils/permissions/ModelsPermissions.js.map +1 -0
  440. package/utils/renderFields.d.ts +2 -1
  441. package/utils/renderFields.js +5 -2
  442. package/utils/renderFields.js.map +1 -1
  443. package/utils/renderGetFilterFields.d.ts +2 -2
  444. package/utils/renderGetFilterFields.js +9 -21
  445. package/utils/renderGetFilterFields.js.map +1 -1
  446. package/utils/renderInputFields.d.ts +2 -1
  447. package/utils/renderInputFields.js +17 -7
  448. package/utils/renderInputFields.js.map +1 -1
  449. package/utils/renderListFilterFields.d.ts +3 -1
  450. package/utils/renderListFilterFields.js +25 -22
  451. package/utils/renderListFilterFields.js.map +1 -1
  452. package/utils/renderSortEnum.d.ts +3 -2
  453. package/utils/renderSortEnum.js +10 -3
  454. package/utils/renderSortEnum.js.map +1 -1
  455. package/utils/toSlug.js +3 -1
  456. package/utils/toSlug.js.map +1 -1
  457. package/validators/dateGte.js +3 -1
  458. package/validators/dateGte.js.map +1 -1
  459. package/validators/dateLte.js +3 -1
  460. package/validators/dateLte.js.map +1 -1
  461. package/validators/gte.js +4 -3
  462. package/validators/gte.js.map +1 -1
  463. package/validators/in.js +4 -3
  464. package/validators/in.js.map +1 -1
  465. package/validators/index.js +4 -3
  466. package/validators/index.js.map +1 -1
  467. package/validators/lte.js +4 -3
  468. package/validators/lte.js.map +1 -1
  469. package/validators/maxLength.js +4 -3
  470. package/validators/maxLength.js.map +1 -1
  471. package/validators/minLength.js +4 -3
  472. package/validators/minLength.js.map +1 -1
  473. package/validators/pattern.js +5 -3
  474. package/validators/pattern.js.map +1 -1
  475. package/validators/patternPlugins/email.js +3 -1
  476. package/validators/patternPlugins/email.js.map +1 -1
  477. package/validators/patternPlugins/index.js +3 -1
  478. package/validators/patternPlugins/index.js.map +1 -1
  479. package/validators/patternPlugins/lowerCase.js +3 -1
  480. package/validators/patternPlugins/lowerCase.js.map +1 -1
  481. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  482. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  483. package/validators/patternPlugins/upperCase.js +3 -1
  484. package/validators/patternPlugins/upperCase.js.map +1 -1
  485. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  486. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  487. package/validators/patternPlugins/url.js +3 -1
  488. package/validators/patternPlugins/url.js.map +1 -1
  489. package/validators/required.js +3 -1
  490. package/validators/required.js.map +1 -1
  491. package/validators/timeGte.js +4 -3
  492. package/validators/timeGte.js.map +1 -1
  493. package/validators/timeLte.js +4 -3
  494. package/validators/timeLte.js.map +1 -1
  495. package/validators/unique.js +4 -2
  496. package/validators/unique.js.map +1 -1
  497. package/crud/contentModel/afterCreate.d.ts +0 -8
  498. package/crud/contentModel/afterCreate.js +0 -16
  499. package/crud/contentModel/afterCreate.js.map +0 -1
  500. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  501. package/crud/contentModel/afterCreateFrom.js +0 -16
  502. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  503. package/crud/contentModel/afterDelete.d.ts +0 -8
  504. package/crud/contentModel/afterDelete.js +0 -16
  505. package/crud/contentModel/afterDelete.js.map +0 -1
  506. package/crud/contentModel/afterUpdate.d.ts +0 -8
  507. package/crud/contentModel/afterUpdate.js +0 -16
  508. package/crud/contentModel/afterUpdate.js.map +0 -1
  509. package/crud/contentModel/createFieldModels.d.ts +0 -2
  510. package/crud/contentModel/createFieldModels.js +0 -26
  511. package/crud/contentModel/createFieldModels.js.map +0 -1
  512. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  513. package/crud/contentModel/fieldIdValidation.js +0 -25
  514. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  515. package/crud/contentModel/idValidation.d.ts +0 -1
  516. package/crud/contentModel/idValidation.js +0 -22
  517. package/crud/contentModel/idValidation.js.map +0 -1
  518. package/crud/contentModel/models.d.ts +0 -4
  519. package/crud/contentModel/models.js +0 -192
  520. package/crud/contentModel/models.js.map +0 -1
  521. package/crud/contentModel/systemFields.d.ts +0 -1
  522. package/crud/contentModel/systemFields.js +0 -8
  523. package/crud/contentModel/systemFields.js.map +0 -1
  524. package/crud/contentModel/validateLayout.d.ts +0 -2
  525. package/crud/contentModel/validateLayout.js +0 -28
  526. package/crud/contentModel/validateLayout.js.map +0 -1
  527. package/crud/settings.crud.d.ts +0 -10
  528. package/crud/settings.crud.js +0 -66
  529. package/crud/settings.crud.js.map +0 -1
  530. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  531. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  532. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  533. package/upgrades/5.33.0/index.d.ts +0 -3
  534. package/upgrades/5.33.0/index.js +0 -182
  535. package/upgrades/5.33.0/index.js.map +0 -1
  536. package/upgrades/index.d.ts +0 -1
  537. package/upgrades/index.js +0 -12
  538. package/upgrades/index.js.map +0 -1
  539. package/utils/ownership.d.ts +0 -8
  540. package/utils/ownership.js +0 -33
  541. package/utils/ownership.js.map +0 -1
  542. package/utils/permissions.d.ts +0 -7
  543. package/utils/permissions.js +0 -91
  544. package/utils/permissions.js.map +0 -1
  545. package/utils/pluralizedTypeName.d.ts +0 -1
  546. package/utils/pluralizedTypeName.js +0 -26
  547. package/utils/pluralizedTypeName.js.map +0 -1
  548. package/validators/dynamicZone.d.ts +0 -2
  549. package/validators/dynamicZone.js +0 -20
  550. package/validators/dynamicZone.js.map +0 -1
package/constants.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { CmsIdentity } from "./types";
2
+ export declare const ROOT_FOLDER = "root";
3
+ export declare const ENTRY_META_FIELDS: readonly ["createdOn", "modifiedOn", "savedOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "firstPublishedBy", "lastPublishedBy", "revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionFirstPublishedBy", "revisionLastPublishedBy"];
4
+ export declare type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];
5
+ export interface RecordWithEntryMetaFields {
6
+ revisionCreatedOn: string;
7
+ revisionSavedOn: string;
8
+ revisionModifiedOn: string | null;
9
+ revisionFirstPublishedOn: string | null;
10
+ revisionLastPublishedOn: string | null;
11
+ revisionCreatedBy: CmsIdentity;
12
+ revisionSavedBy: CmsIdentity;
13
+ revisionModifiedBy: CmsIdentity | null;
14
+ revisionFirstPublishedBy: CmsIdentity | null;
15
+ revisionLastPublishedBy: CmsIdentity | null;
16
+ createdOn: string;
17
+ savedOn: string;
18
+ modifiedOn: string | null;
19
+ firstPublishedOn: string | null;
20
+ lastPublishedOn: string | null;
21
+ createdBy: CmsIdentity;
22
+ savedBy: CmsIdentity;
23
+ modifiedBy: CmsIdentity | null;
24
+ firstPublishedBy: CmsIdentity | null;
25
+ lastPublishedBy: CmsIdentity | null;
26
+ }
27
+ export declare const pickEntryMetaFields: (object: Partial<RecordWithEntryMetaFields>, filter?: ((fieldName: EntryMetaFieldName | string) => boolean) | undefined) => Partial<RecordWithEntryMetaFields>;
28
+ export declare const isNullableEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
29
+ export declare const isDateTimeEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
30
+ export declare const isIdentityEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
31
+ export declare const isRevisionEntryMetaField: (fieldName: string) => boolean;
32
+ export declare const isEntryLevelEntryMetaField: (fieldName: string) => boolean;
package/constants.js ADDED
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pickEntryMetaFields = exports.isRevisionEntryMetaField = exports.isNullableEntryMetaField = exports.isIdentityEntryMetaField = exports.isEntryLevelEntryMetaField = exports.isDateTimeEntryMetaField = exports.ROOT_FOLDER = exports.ENTRY_META_FIELDS = void 0;
7
+ const ROOT_FOLDER = "root";
8
+
9
+ // Content entries - xOn and xBy meta fields.
10
+ exports.ROOT_FOLDER = ROOT_FOLDER;
11
+ const ENTRY_META_FIELDS = [
12
+ // Entry-level meta fields.
13
+ "createdOn", "modifiedOn", "savedOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "firstPublishedBy", "lastPublishedBy",
14
+ // Revision-level meta fields.
15
+ "revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionFirstPublishedBy", "revisionLastPublishedBy"];
16
+ exports.ENTRY_META_FIELDS = ENTRY_META_FIELDS;
17
+ const pickEntryMetaFields = (object, filter) => {
18
+ const pickedEntryMetaFields = {};
19
+ for (const entryMetaFieldName of ENTRY_META_FIELDS) {
20
+ if (entryMetaFieldName in object) {
21
+ const mustPick = !filter || filter(entryMetaFieldName);
22
+ if (mustPick) {
23
+ Object.assign(pickedEntryMetaFields, {
24
+ [entryMetaFieldName]: object[entryMetaFieldName]
25
+ });
26
+ }
27
+ }
28
+ }
29
+ return pickedEntryMetaFields;
30
+ };
31
+ exports.pickEntryMetaFields = pickEntryMetaFields;
32
+ const isNullableEntryMetaField = fieldName => {
33
+ // Only modifiedX and publishedX fields are nullable.
34
+ const lcFieldName = fieldName.toLowerCase();
35
+ return lcFieldName.includes("modified") || lcFieldName.includes("published");
36
+ };
37
+ exports.isNullableEntryMetaField = isNullableEntryMetaField;
38
+ const isDateTimeEntryMetaField = fieldName => {
39
+ // Only field ending with "On" are date/time fields.
40
+ return fieldName.endsWith("On");
41
+ };
42
+ exports.isDateTimeEntryMetaField = isDateTimeEntryMetaField;
43
+ const isIdentityEntryMetaField = fieldName => {
44
+ // Only field ending with "On" are date/time fields.
45
+ return fieldName.endsWith("By");
46
+ };
47
+ exports.isIdentityEntryMetaField = isIdentityEntryMetaField;
48
+ const isRevisionEntryMetaField = fieldName => {
49
+ return ENTRY_META_FIELDS.includes(fieldName) && fieldName.startsWith("revision");
50
+ };
51
+ exports.isRevisionEntryMetaField = isRevisionEntryMetaField;
52
+ const isEntryLevelEntryMetaField = fieldName => {
53
+ return ENTRY_META_FIELDS.includes(fieldName) && !fieldName.startsWith("revision");
54
+ };
55
+ exports.isEntryLevelEntryMetaField = isEntryLevelEntryMetaField;
56
+
57
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ROOT_FOLDER","exports","ENTRY_META_FIELDS","pickEntryMetaFields","object","filter","pickedEntryMetaFields","entryMetaFieldName","mustPick","Object","assign","isNullableEntryMetaField","fieldName","lcFieldName","toLowerCase","includes","isDateTimeEntryMetaField","endsWith","isIdentityEntryMetaField","isRevisionEntryMetaField","startsWith","isEntryLevelEntryMetaField"],"sources":["constants.ts"],"sourcesContent":["import { CmsIdentity } from \"~/types\";\n\nexport const ROOT_FOLDER = \"root\";\n\n// Content entries - xOn and xBy meta fields.\nexport const ENTRY_META_FIELDS = [\n // Entry-level meta fields.\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"firstPublishedOn\",\n \"lastPublishedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\",\n \"firstPublishedBy\",\n \"lastPublishedBy\",\n\n // Revision-level meta fields.\n \"revisionCreatedOn\",\n \"revisionModifiedOn\",\n \"revisionSavedOn\",\n \"revisionFirstPublishedOn\",\n \"revisionLastPublishedOn\",\n \"revisionCreatedBy\",\n \"revisionModifiedBy\",\n \"revisionSavedBy\",\n \"revisionFirstPublishedBy\",\n \"revisionLastPublishedBy\"\n] as const;\n\nexport type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];\n\nexport interface RecordWithEntryMetaFields {\n revisionCreatedOn: string;\n revisionSavedOn: string;\n revisionModifiedOn: string | null;\n revisionFirstPublishedOn: string | null;\n revisionLastPublishedOn: string | null;\n revisionCreatedBy: CmsIdentity;\n revisionSavedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n // Entry-level meta fields.\n createdOn: string;\n savedOn: string;\n modifiedOn: string | null;\n firstPublishedOn: string | null;\n lastPublishedOn: string | null;\n createdBy: CmsIdentity;\n savedBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n}\n\nexport const pickEntryMetaFields = (\n object: Partial<RecordWithEntryMetaFields>,\n filter?: (fieldName: EntryMetaFieldName | string) => boolean\n) => {\n const pickedEntryMetaFields: Partial<RecordWithEntryMetaFields> = {};\n for (const entryMetaFieldName of ENTRY_META_FIELDS) {\n if (entryMetaFieldName in object) {\n const mustPick = !filter || filter(entryMetaFieldName);\n if (mustPick) {\n Object.assign(pickedEntryMetaFields, {\n [entryMetaFieldName]: object[entryMetaFieldName]\n });\n }\n }\n }\n\n return pickedEntryMetaFields;\n};\n\nexport const isNullableEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only modifiedX and publishedX fields are nullable.\n const lcFieldName = fieldName.toLowerCase();\n return lcFieldName.includes(\"modified\") || lcFieldName.includes(\"published\");\n};\n\nexport const isDateTimeEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only field ending with \"On\" are date/time fields.\n return fieldName.endsWith(\"On\");\n};\n\nexport const isIdentityEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only field ending with \"On\" are date/time fields.\n return fieldName.endsWith(\"By\");\n};\n\nexport const isRevisionEntryMetaField = (fieldName: string) => {\n return (\n ENTRY_META_FIELDS.includes(fieldName as EntryMetaFieldName) &&\n fieldName.startsWith(\"revision\")\n );\n};\n\nexport const isEntryLevelEntryMetaField = (fieldName: string) => {\n return (\n ENTRY_META_FIELDS.includes(fieldName as EntryMetaFieldName) &&\n !fieldName.startsWith(\"revision\")\n );\n};\n"],"mappings":";;;;;;AAEO,MAAMA,WAAW,GAAG,MAAM;;AAEjC;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AACO,MAAME,iBAAiB,GAAG;AAC7B;AACA,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,iBAAiB;AAEjB;AACA,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,CACnB;AAACD,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AA6BJ,MAAMC,mBAAmB,GAAGA,CAC/BC,MAA0C,EAC1CC,MAA4D,KAC3D;EACD,MAAMC,qBAAyD,GAAG,CAAC,CAAC;EACpE,KAAK,MAAMC,kBAAkB,IAAIL,iBAAiB,EAAE;IAChD,IAAIK,kBAAkB,IAAIH,MAAM,EAAE;MAC9B,MAAMI,QAAQ,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACE,kBAAkB,CAAC;MACtD,IAAIC,QAAQ,EAAE;QACVC,MAAM,CAACC,MAAM,CAACJ,qBAAqB,EAAE;UACjC,CAACC,kBAAkB,GAAGH,MAAM,CAACG,kBAAkB;QACnD,CAAC,CAAC;MACN;IACJ;EACJ;EAEA,OAAOD,qBAAqB;AAChC,CAAC;AAACL,OAAA,CAAAE,mBAAA,GAAAA,mBAAA;AAEK,MAAMQ,wBAAwB,GAAIC,SAA6B,IAAK;EACvE;EACA,MAAMC,WAAW,GAAGD,SAAS,CAACE,WAAW,CAAC,CAAC;EAC3C,OAAOD,WAAW,CAACE,QAAQ,CAAC,UAAU,CAAC,IAAIF,WAAW,CAACE,QAAQ,CAAC,WAAW,CAAC;AAChF,CAAC;AAACd,OAAA,CAAAU,wBAAA,GAAAA,wBAAA;AAEK,MAAMK,wBAAwB,GAAIJ,SAA6B,IAAK;EACvE;EACA,OAAOA,SAAS,CAACK,QAAQ,CAAC,IAAI,CAAC;AACnC,CAAC;AAAChB,OAAA,CAAAe,wBAAA,GAAAA,wBAAA;AAEK,MAAME,wBAAwB,GAAIN,SAA6B,IAAK;EACvE;EACA,OAAOA,SAAS,CAACK,QAAQ,CAAC,IAAI,CAAC;AACnC,CAAC;AAAChB,OAAA,CAAAiB,wBAAA,GAAAA,wBAAA;AAEK,MAAMC,wBAAwB,GAAIP,SAAiB,IAAK;EAC3D,OACIV,iBAAiB,CAACa,QAAQ,CAACH,SAA+B,CAAC,IAC3DA,SAAS,CAACQ,UAAU,CAAC,UAAU,CAAC;AAExC,CAAC;AAACnB,OAAA,CAAAkB,wBAAA,GAAAA,wBAAA;AAEK,MAAME,0BAA0B,GAAIT,SAAiB,IAAK;EAC7D,OACIV,iBAAiB,CAACa,QAAQ,CAACH,SAA+B,CAAC,IAC3D,CAACA,SAAS,CAACQ,UAAU,CAAC,UAAU,CAAC;AAEzC,CAAC;AAACnB,OAAA,CAAAoB,0BAAA,GAAAA,0BAAA"}
package/context.js CHANGED
@@ -5,15 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createContextPlugin = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _error = _interopRequireDefault(require("@webiny/error"));
10
9
  var _api = require("@webiny/api");
11
10
  var _CmsParametersPlugin = require("./plugins/CmsParametersPlugin");
12
11
  var _system = require("./crud/system.crud");
13
- var _settings = require("./crud/settings.crud");
14
12
  var _contentModelGroup = require("./crud/contentModelGroup.crud");
15
13
  var _contentModel = require("./crud/contentModel.crud");
16
14
  var _contentEntry = require("./crud/contentEntry.crud");
15
+ var _plugins = require("./plugins");
16
+ var _valueKeyStorageConverter = require("./utils/converters/valueKeyStorageConverter");
17
+ var _ModelsPermissions = require("./utils/permissions/ModelsPermissions");
18
+ var _ModelGroupsPermissions = require("./utils/permissions/ModelGroupsPermissions");
19
+ var _EntriesPermissions = require("./utils/permissions/EntriesPermissions");
20
+ var _export = require("./export");
21
+ var _importing = require("./export/crud/importing");
17
22
  const getParameters = async context => {
18
23
  const plugins = context.plugins.byType(_CmsParametersPlugin.CmsParametersPlugin.type);
19
24
  for (const plugin of plugins) {
@@ -27,7 +32,7 @@ const getParameters = async context => {
27
32
  const createContextPlugin = ({
28
33
  storageOperations
29
34
  }) => {
30
- return new _api.ContextPlugin(async context => {
35
+ const plugin = new _api.ContextPlugin(async context => {
31
36
  const {
32
37
  type,
33
38
  locale
@@ -45,53 +50,86 @@ const createContextPlugin = ({
45
50
  const getTenant = () => {
46
51
  return context.tenancy.getCurrentTenant();
47
52
  };
53
+ context.plugins.register(new _plugins.StorageOperationsCmsModelPlugin((0, _valueKeyStorageConverter.createCmsModelFieldConvertersAttachFactory)(context.plugins)));
48
54
  await context.benchmark.measure("headlessCms.createContext", async () => {
49
- if (storageOperations.beforeInit) {
50
- await storageOperations.beforeInit(context);
51
- }
52
- context.cms = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
55
+ await storageOperations.beforeInit(context);
56
+ const modelGroupsPermissions = new _ModelGroupsPermissions.ModelGroupsPermissions({
57
+ getIdentity: context.security.getIdentity,
58
+ getPermissions: () => context.security.getPermissions("cms.contentModelGroup"),
59
+ fullAccessPermissionName: "cms.*"
60
+ });
61
+ const modelsPermissions = new _ModelsPermissions.ModelsPermissions({
62
+ getIdentity: context.security.getIdentity,
63
+ getPermissions: () => context.security.getPermissions("cms.contentModel"),
64
+ fullAccessPermissionName: "cms.*",
65
+ modelGroupsPermissions
66
+ });
67
+ const entriesPermissions = new _EntriesPermissions.EntriesPermissions({
68
+ getIdentity: context.security.getIdentity,
69
+ getPermissions: () => context.security.getPermissions("cms.contentEntry"),
70
+ fullAccessPermissionName: "cms.*"
71
+ });
72
+ context.cms = {
53
73
  type,
54
74
  locale,
55
75
  getLocale,
56
76
  READ: type === "read",
57
77
  PREVIEW: type === "preview",
58
78
  MANAGE: type === "manage",
59
- storageOperations
60
- }, (0, _system.createSystemCrud)({
61
- context,
62
- getTenant,
63
- getLocale,
64
- getIdentity,
65
- storageOperations
66
- })), (0, _settings.createSettingsCrud)({
67
- context,
68
- getTenant,
69
- getLocale,
70
- storageOperations
71
- })), (0, _contentModelGroup.createModelGroupsCrud)({
72
- context,
73
- getTenant,
74
- getLocale,
75
- getIdentity,
76
- storageOperations
77
- })), (0, _contentModel.createModelsCrud)({
78
- context,
79
- getLocale,
80
- getTenant,
81
- getIdentity,
82
- storageOperations
83
- })), (0, _contentEntry.createContentEntryCrud)({
84
- context,
85
- getIdentity,
86
- getTenant,
87
- getLocale,
88
- storageOperations
89
- }));
79
+ storageOperations,
80
+ permissions: {
81
+ groups: modelGroupsPermissions,
82
+ models: modelsPermissions,
83
+ entries: entriesPermissions
84
+ },
85
+ ...(0, _system.createSystemCrud)({
86
+ context,
87
+ getTenant,
88
+ getLocale,
89
+ getIdentity,
90
+ storageOperations
91
+ }),
92
+ ...(0, _contentModelGroup.createModelGroupsCrud)({
93
+ context,
94
+ getTenant,
95
+ getLocale,
96
+ getIdentity,
97
+ storageOperations,
98
+ modelGroupsPermissions
99
+ }),
100
+ ...(0, _contentModel.createModelsCrud)({
101
+ context,
102
+ getLocale,
103
+ getTenant,
104
+ getIdentity,
105
+ storageOperations,
106
+ modelsPermissions
107
+ }),
108
+ ...(0, _contentEntry.createContentEntryCrud)({
109
+ context,
110
+ getIdentity,
111
+ getTenant,
112
+ getLocale,
113
+ storageOperations,
114
+ entriesPermissions,
115
+ modelsPermissions
116
+ }),
117
+ export: {
118
+ ...(0, _export.createExportCrud)(context)
119
+ },
120
+ importing: {
121
+ ...(0, _importing.createImportCrud)(context)
122
+ }
123
+ };
90
124
  if (!storageOperations.init) {
91
125
  return;
92
126
  }
93
127
  await storageOperations.init(context);
94
128
  });
95
129
  });
130
+ plugin.name = "cms.createContext";
131
+ return plugin;
96
132
  };
97
- exports.createContextPlugin = createContextPlugin;
133
+ exports.createContextPlugin = createContextPlugin;
134
+
135
+ //# sourceMappingURL=context.js.map
package/context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","storageOperations","ContextPlugin","locale","getLocale","systemLocale","i18n","getIdentity","security","getTenant","tenancy","getCurrentTenant","benchmark","measure","beforeInit","cms","READ","PREVIEW","MANAGE","createSystemCrud","createSettingsCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","init"],"sources":["context.ts"],"sourcesContent":["import { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"~/plugins/CmsParametersPlugin\";\nimport { createSystemCrud } from \"~/crud/system.crud\";\nimport { createSettingsCrud } from \"~/crud/settings.crud\";\nimport { createModelGroupsCrud } from \"~/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/crud/contentEntry.crud\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createContextPlugin = ({ storageOperations }: CrudParams) => {\n return new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n await context.benchmark.measure(\"headlessCms.createContext\", async () => {\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(context);\n }\n\n context.cms = {\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\",\n storageOperations,\n ...createSystemCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createSettingsCrud({\n context,\n getTenant,\n getLocale,\n storageOperations\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n getLocale,\n storageOperations\n })\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n });\n};\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMA,aAAa,GAAG,MAAOC,OAAmB,IAA2C;EACvF,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,CAACC,MAAM,CAAsBC,wCAAmB,CAACC,IAAI,CAAC;EAErF,KAAK,MAAMC,MAAM,IAAIJ,OAAO,EAAE;IAC1B,MAAMK,MAAM,GAAG,MAAMD,MAAM,CAACN,aAAa,CAACC,OAAO,CAAC;IAClD,IAAIM,MAAM,KAAK,IAAI,EAAE;MACjB,OAAOA,MAAM;IACjB;EACJ;EACA,MAAM,IAAIC,cAAW,CACjB,oDAAoD,EACpD,2BAA2B,CAC9B;AACL,CAAC;AAMM,MAAMC,mBAAmB,GAAG,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACtE,OAAO,IAAIC,kBAAa,CAAa,MAAMV,OAAO,IAAI;IAClD,MAAM;MAAEI,IAAI;MAAEO;IAAO,CAAC,GAAG,MAAMZ,aAAa,CAACC,OAAO,CAAC;IAErD,MAAMY,SAAS,GAAG,MAAM;MACpB,MAAMC,YAAY,GAAGb,OAAO,CAACc,IAAI,CAACF,SAAS,CAACD,MAAM,CAAC;MACnD,IAAI,CAACE,YAAY,EAAE;QACf,MAAM,IAAIN,cAAW,CAAE,uBAAsBI,MAAO,kBAAiB,CAAC;MAC1E;MACA,OAAOE,YAAY;IACvB,CAAC;IAED,MAAME,WAAW,GAAG,MAAM;MACtB,OAAOf,OAAO,CAACgB,QAAQ,CAACD,WAAW,EAAE;IACzC,CAAC;IAED,MAAME,SAAS,GAAG,MAAM;MACpB,OAAOjB,OAAO,CAACkB,OAAO,CAACC,gBAAgB,EAAE;IAC7C,CAAC;IAED,MAAMnB,OAAO,CAACoB,SAAS,CAACC,OAAO,CAAC,2BAA2B,EAAE,YAAY;MACrE,IAAIZ,iBAAiB,CAACa,UAAU,EAAE;QAC9B,MAAMb,iBAAiB,CAACa,UAAU,CAACtB,OAAO,CAAC;MAC/C;MAEAA,OAAO,CAACuB,GAAG;QACPnB,IAAI;QACJO,MAAM;QACNC,SAAS;QACTY,IAAI,EAAEpB,IAAI,KAAK,MAAM;QACrBqB,OAAO,EAAErB,IAAI,KAAK,SAAS;QAC3BsB,MAAM,EAAEtB,IAAI,KAAK,QAAQ;QACzBK;MAAiB,GACd,IAAAkB,wBAAgB,EAAC;QAChB3B,OAAO;QACPiB,SAAS;QACTL,SAAS;QACTG,WAAW;QACXN;MACJ,CAAC,CAAC,GACC,IAAAmB,4BAAkB,EAAC;QAClB5B,OAAO;QACPiB,SAAS;QACTL,SAAS;QACTH;MACJ,CAAC,CAAC,GACC,IAAAoB,wCAAqB,EAAC;QACrB7B,OAAO;QACPiB,SAAS;QACTL,SAAS;QACTG,WAAW;QACXN;MACJ,CAAC,CAAC,GACC,IAAAqB,8BAAgB,EAAC;QAChB9B,OAAO;QACPY,SAAS;QACTK,SAAS;QACTF,WAAW;QACXN;MACJ,CAAC,CAAC,GACC,IAAAsB,oCAAsB,EAAC;QACtB/B,OAAO;QACPe,WAAW;QACXE,SAAS;QACTL,SAAS;QACTH;MACJ,CAAC,CAAC,CACL;MAED,IAAI,CAACA,iBAAiB,CAACuB,IAAI,EAAE;QACzB;MACJ;MACA,MAAMvB,iBAAiB,CAACuB,IAAI,CAAChC,OAAO,CAAC;IACzC,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_api","_CmsParametersPlugin","_system","_contentModelGroup","_contentModel","_contentEntry","_plugins","_valueKeyStorageConverter","_ModelsPermissions","_ModelGroupsPermissions","_EntriesPermissions","_export","_importing","getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","storageOperations","ContextPlugin","locale","getLocale","systemLocale","i18n","getIdentity","security","getTenant","tenancy","getCurrentTenant","register","StorageOperationsCmsModelPlugin","createCmsModelFieldConvertersAttachFactory","benchmark","measure","beforeInit","modelGroupsPermissions","ModelGroupsPermissions","getPermissions","fullAccessPermissionName","modelsPermissions","ModelsPermissions","entriesPermissions","EntriesPermissions","cms","READ","PREVIEW","MANAGE","permissions","groups","models","entries","createSystemCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","export","createExportCrud","importing","createImportCrud","init","name","exports"],"sources":["context.ts"],"sourcesContent":["import { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"~/plugins/CmsParametersPlugin\";\nimport { createSystemCrud } from \"~/crud/system.crud\";\nimport { createModelGroupsCrud } from \"~/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/crud/contentEntry.crud\";\nimport { StorageOperationsCmsModelPlugin } from \"~/plugins\";\nimport { createCmsModelFieldConvertersAttachFactory } from \"~/utils/converters/valueKeyStorageConverter\";\nimport { ModelsPermissions } from \"~/utils/permissions/ModelsPermissions\";\nimport { ModelGroupsPermissions } from \"./utils/permissions/ModelGroupsPermissions\";\nimport { EntriesPermissions } from \"./utils/permissions/EntriesPermissions\";\nimport { createExportCrud } from \"~/export\";\nimport { createImportCrud } from \"~/export/crud/importing\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createContextPlugin = ({ storageOperations }: CrudParams) => {\n const plugin = new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n context.plugins.register(\n new StorageOperationsCmsModelPlugin(\n createCmsModelFieldConvertersAttachFactory(context.plugins)\n )\n );\n\n await context.benchmark.measure(\"headlessCms.createContext\", async () => {\n await storageOperations.beforeInit(context);\n\n const modelGroupsPermissions = new ModelGroupsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModelGroup\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const modelsPermissions = new ModelsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModel\"),\n fullAccessPermissionName: \"cms.*\",\n modelGroupsPermissions\n });\n\n const entriesPermissions = new EntriesPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentEntry\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n context.cms = {\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\",\n storageOperations,\n permissions: {\n groups: modelGroupsPermissions,\n models: modelsPermissions,\n entries: entriesPermissions\n },\n ...createSystemCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations,\n modelGroupsPermissions\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations,\n modelsPermissions\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n getLocale,\n storageOperations,\n entriesPermissions,\n modelsPermissions\n }),\n export: {\n ...createExportCrud(context)\n },\n importing: {\n ...createImportCrud(context)\n }\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n });\n\n plugin.name = \"cms.createContext\";\n\n return plugin;\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,yBAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AAEA,MAAMc,aAAa,GAAG,MAAOC,OAAmB,IAA2C;EACvF,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,CAACC,MAAM,CAAsBC,wCAAmB,CAACC,IAAI,CAAC;EAErF,KAAK,MAAMC,MAAM,IAAIJ,OAAO,EAAE;IAC1B,MAAMK,MAAM,GAAG,MAAMD,MAAM,CAACN,aAAa,CAACC,OAAO,CAAC;IAClD,IAAIM,MAAM,KAAK,IAAI,EAAE;MACjB,OAAOA,MAAM;IACjB;EACJ;EACA,MAAM,IAAIC,cAAW,CACjB,oDAAoD,EACpD,2BACJ,CAAC;AACL,CAAC;AAMM,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACtE,MAAMJ,MAAM,GAAG,IAAIK,kBAAa,CAAa,MAAMV,OAAO,IAAI;IAC1D,MAAM;MAAEI,IAAI;MAAEO;IAAO,CAAC,GAAG,MAAMZ,aAAa,CAACC,OAAO,CAAC;IAErD,MAAMY,SAAS,GAAGA,CAAA,KAAM;MACpB,MAAMC,YAAY,GAAGb,OAAO,CAACc,IAAI,CAACF,SAAS,CAACD,MAAM,CAAC;MACnD,IAAI,CAACE,YAAY,EAAE;QACf,MAAM,IAAIN,cAAW,CAAE,uBAAsBI,MAAO,kBAAiB,CAAC;MAC1E;MACA,OAAOE,YAAY;IACvB,CAAC;IAED,MAAME,WAAW,GAAGA,CAAA,KAAM;MACtB,OAAOf,OAAO,CAACgB,QAAQ,CAACD,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,MAAME,SAAS,GAAGA,CAAA,KAAM;MACpB,OAAOjB,OAAO,CAACkB,OAAO,CAACC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;IAEDnB,OAAO,CAACC,OAAO,CAACmB,QAAQ,CACpB,IAAIC,wCAA+B,CAC/B,IAAAC,oEAA0C,EAACtB,OAAO,CAACC,OAAO,CAC9D,CACJ,CAAC;IAED,MAAMD,OAAO,CAACuB,SAAS,CAACC,OAAO,CAAC,2BAA2B,EAAE,YAAY;MACrE,MAAMf,iBAAiB,CAACgB,UAAU,CAACzB,OAAO,CAAC;MAE3C,MAAM0B,sBAAsB,GAAG,IAAIC,8CAAsB,CAAC;QACtDZ,WAAW,EAAEf,OAAO,CAACgB,QAAQ,CAACD,WAAW;QACzCa,cAAc,EAAEA,CAAA,KAAM5B,OAAO,CAACgB,QAAQ,CAACY,cAAc,CAAC,uBAAuB,CAAC;QAC9EC,wBAAwB,EAAE;MAC9B,CAAC,CAAC;MAEF,MAAMC,iBAAiB,GAAG,IAAIC,oCAAiB,CAAC;QAC5ChB,WAAW,EAAEf,OAAO,CAACgB,QAAQ,CAACD,WAAW;QACzCa,cAAc,EAAEA,CAAA,KAAM5B,OAAO,CAACgB,QAAQ,CAACY,cAAc,CAAC,kBAAkB,CAAC;QACzEC,wBAAwB,EAAE,OAAO;QACjCH;MACJ,CAAC,CAAC;MAEF,MAAMM,kBAAkB,GAAG,IAAIC,sCAAkB,CAAC;QAC9ClB,WAAW,EAAEf,OAAO,CAACgB,QAAQ,CAACD,WAAW;QACzCa,cAAc,EAAEA,CAAA,KAAM5B,OAAO,CAACgB,QAAQ,CAACY,cAAc,CAAC,kBAAkB,CAAC;QACzEC,wBAAwB,EAAE;MAC9B,CAAC,CAAC;MAEF7B,OAAO,CAACkC,GAAG,GAAG;QACV9B,IAAI;QACJO,MAAM;QACNC,SAAS;QACTuB,IAAI,EAAE/B,IAAI,KAAK,MAAM;QACrBgC,OAAO,EAAEhC,IAAI,KAAK,SAAS;QAC3BiC,MAAM,EAAEjC,IAAI,KAAK,QAAQ;QACzBK,iBAAiB;QACjB6B,WAAW,EAAE;UACTC,MAAM,EAAEb,sBAAsB;UAC9Bc,MAAM,EAAEV,iBAAiB;UACzBW,OAAO,EAAET;QACb,CAAC;QACD,GAAG,IAAAU,wBAAgB,EAAC;UAChB1C,OAAO;UACPiB,SAAS;UACTL,SAAS;UACTG,WAAW;UACXN;QACJ,CAAC,CAAC;QACF,GAAG,IAAAkC,wCAAqB,EAAC;UACrB3C,OAAO;UACPiB,SAAS;UACTL,SAAS;UACTG,WAAW;UACXN,iBAAiB;UACjBiB;QACJ,CAAC,CAAC;QACF,GAAG,IAAAkB,8BAAgB,EAAC;UAChB5C,OAAO;UACPY,SAAS;UACTK,SAAS;UACTF,WAAW;UACXN,iBAAiB;UACjBqB;QACJ,CAAC,CAAC;QACF,GAAG,IAAAe,oCAAsB,EAAC;UACtB7C,OAAO;UACPe,WAAW;UACXE,SAAS;UACTL,SAAS;UACTH,iBAAiB;UACjBuB,kBAAkB;UAClBF;QACJ,CAAC,CAAC;QACFgB,MAAM,EAAE;UACJ,GAAG,IAAAC,wBAAgB,EAAC/C,OAAO;QAC/B,CAAC;QACDgD,SAAS,EAAE;UACP,GAAG,IAAAC,2BAAgB,EAACjD,OAAO;QAC/B;MACJ,CAAC;MAED,IAAI,CAACS,iBAAiB,CAACyC,IAAI,EAAE;QACzB;MACJ;MACA,MAAMzC,iBAAiB,CAACyC,IAAI,CAAClD,OAAO,CAAC;IACzC,CAAC,CAAC;EACN,CAAC,CAAC;EAEFK,MAAM,CAAC8C,IAAI,GAAG,mBAAmB;EAEjC,OAAO9C,MAAM;AACjB,CAAC;AAAC+C,OAAA,CAAA5C,mBAAA,GAAAA,mBAAA"}
@@ -33,4 +33,6 @@ const assignAfterEntryDelete = params => {
33
33
  });
34
34
  });
35
35
  };
36
- exports.assignAfterEntryDelete = assignAfterEntryDelete;
36
+ exports.assignAfterEntryDelete = assignAfterEntryDelete;
37
+
38
+ //# sourceMappingURL=afterDelete.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,MAAMA,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM;MAAEM;IAAM,CAAC,GAAG,MAAML,OAAO,CAACM,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACL,KAAK,EAAE;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBhB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_markLockedFields","require","assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields","exports"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM;MAAEM;IAAM,CAAC,GAAG,MAAML,OAAO,CAACM,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACL,KAAK,EAAE;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBhB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACa,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA"}
@@ -22,4 +22,6 @@ const assignBeforeEntryCreate = params => {
22
22
  });
23
23
  });
24
24
  };
25
- exports.assignBeforeEntryCreate = assignBeforeEntryCreate;
25
+ exports.assignBeforeEntryCreate = assignBeforeEntryCreate;
26
+
27
+ //# sourceMappingURL=beforeCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["assignBeforeEntryCreate","params","context","onEntryBeforeCreate","subscribe","entry","model","markLockedFields"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onEntryBeforeCreate } = params;\n\n onEntryBeforeCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,MAAMA,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_markLockedFields","require","assignBeforeEntryCreate","params","context","onEntryBeforeCreate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onEntryBeforeCreate } = params;\n\n onEntryBeforeCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
@@ -22,4 +22,6 @@ const assignBeforeEntryUpdate = params => {
22
22
  });
23
23
  });
24
24
  };
25
- exports.assignBeforeEntryUpdate = assignBeforeEntryUpdate;
25
+ exports.assignBeforeEntryUpdate = assignBeforeEntryUpdate;
26
+
27
+ //# sourceMappingURL=beforeUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,MAAMA,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_markLockedFields","require","assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
@@ -0,0 +1,20 @@
1
+ import { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
2
+ import { I18NLocale } from "@webiny/api-i18n/types";
3
+ import { SecurityIdentity } from "@webiny/api-security/types";
4
+ import { Tenant } from "@webiny/api-tenancy/types";
5
+ import { EntriesPermissions } from "../../../utils/permissions/EntriesPermissions";
6
+ declare type CreateEntryDataParams = {
7
+ model: CmsModel;
8
+ rawInput: CreateCmsEntryInput;
9
+ options?: CreateCmsEntryOptionsInput;
10
+ context: CmsContext;
11
+ getIdentity: () => SecurityIdentity;
12
+ getTenant: () => Tenant;
13
+ getLocale: () => I18NLocale;
14
+ entriesPermissions: EntriesPermissions;
15
+ };
16
+ export declare const createEntryData: ({ model, rawInput, options, context, getIdentity: getSecurityIdentity, getLocale, getTenant, entriesPermissions }: CreateEntryDataParams) => Promise<{
17
+ entry: CmsEntry;
18
+ input: Record<string, any>;
19
+ }>;
20
+ export {};
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createEntryData = void 0;
8
+ var _date = require("../../../utils/date");
9
+ var _constants = require("../../../constants");
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+ var _entryDataValidation = require("../entryDataValidation");
12
+ var _referenceFieldsMapping = require("../referenceFieldsMapping");
13
+ var _utils = require("@webiny/utils");
14
+ var _statuses = require("./statuses");
15
+ var _identity = require("../../../utils/identity");
16
+ const createEntryData = async ({
17
+ model,
18
+ rawInput,
19
+ options,
20
+ context,
21
+ getIdentity: getSecurityIdentity,
22
+ getLocale,
23
+ getTenant,
24
+ entriesPermissions
25
+ }) => {
26
+ const initialInput = mapAndCleanCreateInputData(model, rawInput);
27
+ await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
28
+ context,
29
+ model,
30
+ data: initialInput,
31
+ skipValidators: options?.skipValidators
32
+ });
33
+ const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
34
+ context,
35
+ model,
36
+ input: initialInput,
37
+ validateEntries: true
38
+ });
39
+ const locale = getLocale();
40
+ const {
41
+ id,
42
+ entryId,
43
+ version
44
+ } = createEntryId(rawInput);
45
+
46
+ /**
47
+ * There is a possibility that user sends an ID in the input, so we will use that one.
48
+ * There is no check if the ID is unique or not, that is up to the user.
49
+ */
50
+ const currentIdentity = getSecurityIdentity();
51
+ const currentDateTime = new Date();
52
+
53
+ /**
54
+ * Users can set the initial status of the entry. If so, we need to make
55
+ * sure they have the required permissions and also that all the fields
56
+ * are filled in correctly.
57
+ */
58
+ const status = rawInput.status || _statuses.STATUS_DRAFT;
59
+ if (status !== _statuses.STATUS_DRAFT) {
60
+ if (status === _statuses.STATUS_PUBLISHED) {
61
+ await entriesPermissions.ensure({
62
+ pw: "p"
63
+ });
64
+ } else if (status === _statuses.STATUS_UNPUBLISHED) {
65
+ // If setting the status other than draft, we have to check if the user has permissions to publish.
66
+ await entriesPermissions.ensure({
67
+ pw: "u"
68
+ });
69
+ }
70
+ }
71
+ const locked = status !== _statuses.STATUS_DRAFT;
72
+ let revisionLevelPublishingMetaFields = {
73
+ revisionFirstPublishedOn: null,
74
+ revisionLastPublishedOn: null,
75
+ revisionFirstPublishedBy: null,
76
+ revisionLastPublishedBy: null
77
+ };
78
+ let entryLevelPublishingMetaFields = {
79
+ firstPublishedOn: null,
80
+ lastPublishedOn: null,
81
+ firstPublishedBy: null,
82
+ lastPublishedBy: null
83
+ };
84
+ if (status === _statuses.STATUS_PUBLISHED) {
85
+ revisionLevelPublishingMetaFields = {
86
+ revisionFirstPublishedOn: (0, _date.getDate)(rawInput.revisionFirstPublishedOn, currentDateTime),
87
+ revisionLastPublishedOn: (0, _date.getDate)(rawInput.revisionLastPublishedOn, currentDateTime),
88
+ revisionFirstPublishedBy: (0, _identity.getIdentity)(rawInput.revisionFirstPublishedBy, currentIdentity),
89
+ revisionLastPublishedBy: (0, _identity.getIdentity)(rawInput.revisionLastPublishedBy, currentIdentity)
90
+ };
91
+ entryLevelPublishingMetaFields = {
92
+ firstPublishedOn: (0, _date.getDate)(rawInput.firstPublishedOn, currentDateTime),
93
+ lastPublishedOn: (0, _date.getDate)(rawInput.lastPublishedOn, currentDateTime),
94
+ firstPublishedBy: (0, _identity.getIdentity)(rawInput.firstPublishedBy, currentIdentity),
95
+ lastPublishedBy: (0, _identity.getIdentity)(rawInput.lastPublishedBy, currentIdentity)
96
+ };
97
+ }
98
+ const entry = {
99
+ webinyVersion: context.WEBINY_VERSION,
100
+ tenant: getTenant().id,
101
+ entryId,
102
+ id,
103
+ modelId: model.modelId,
104
+ locale: locale.code,
105
+ /**
106
+ * Entry-level meta fields. 👇
107
+ */
108
+ createdOn: (0, _date.getDate)(rawInput.createdOn, currentDateTime),
109
+ modifiedOn: (0, _date.getDate)(rawInput.modifiedOn, null),
110
+ savedOn: (0, _date.getDate)(rawInput.savedOn, currentDateTime),
111
+ createdBy: (0, _identity.getIdentity)(rawInput.createdBy, currentIdentity),
112
+ modifiedBy: (0, _identity.getIdentity)(rawInput.modifiedBy, null),
113
+ savedBy: (0, _identity.getIdentity)(rawInput.savedBy, currentIdentity),
114
+ ...entryLevelPublishingMetaFields,
115
+ /**
116
+ * Revision-level meta fields. 👇
117
+ */
118
+ revisionCreatedOn: (0, _date.getDate)(rawInput.revisionCreatedOn, currentDateTime),
119
+ revisionModifiedOn: (0, _date.getDate)(rawInput.revisionModifiedOn, null),
120
+ revisionSavedOn: (0, _date.getDate)(rawInput.revisionSavedOn, currentDateTime),
121
+ revisionCreatedBy: (0, _identity.getIdentity)(rawInput.revisionCreatedBy, currentIdentity),
122
+ revisionModifiedBy: (0, _identity.getIdentity)(rawInput.revisionModifiedBy, null),
123
+ revisionSavedBy: (0, _identity.getIdentity)(rawInput.revisionSavedBy, currentIdentity),
124
+ ...revisionLevelPublishingMetaFields,
125
+ version,
126
+ status,
127
+ locked,
128
+ values: input,
129
+ location: {
130
+ folderId: rawInput.wbyAco_location?.folderId || _constants.ROOT_FOLDER
131
+ }
132
+ };
133
+ return {
134
+ entry,
135
+ input
136
+ };
137
+ };
138
+
139
+ /**
140
+ * Used for some fields to convert their values.
141
+ */
142
+ exports.createEntryData = createEntryData;
143
+ const convertDefaultValue = (field, value) => {
144
+ switch (field.type) {
145
+ case "boolean":
146
+ return Boolean(value);
147
+ case "number":
148
+ return Number(value);
149
+ default:
150
+ return value;
151
+ }
152
+ };
153
+ const getDefaultValue = field => {
154
+ const {
155
+ settings,
156
+ multipleValues
157
+ } = field;
158
+ if (settings && settings.defaultValue !== undefined) {
159
+ return convertDefaultValue(field, settings.defaultValue);
160
+ }
161
+ const {
162
+ predefinedValues
163
+ } = field;
164
+ if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
165
+ return undefined;
166
+ }
167
+ if (!multipleValues) {
168
+ const selectedValue = predefinedValues.values.find(value => {
169
+ return !!value.selected;
170
+ });
171
+ if (selectedValue) {
172
+ return convertDefaultValue(field, selectedValue.value);
173
+ }
174
+ return undefined;
175
+ }
176
+ return predefinedValues.values.filter(({
177
+ selected
178
+ }) => !!selected).map(({
179
+ value
180
+ }) => {
181
+ return convertDefaultValue(field, value);
182
+ });
183
+ };
184
+
185
+ /**
186
+ * Cleans and adds default values to create input data.
187
+ */
188
+ const mapAndCleanCreateInputData = (model, input) => {
189
+ return model.fields.reduce((acc, field) => {
190
+ /**
191
+ * This should never happen, but let's make it sure.
192
+ * The fix would be for the user to add the fieldId on the field definition.
193
+ */
194
+ if (!field.fieldId) {
195
+ throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
196
+ field
197
+ });
198
+ }
199
+ const value = input[field.fieldId];
200
+ /**
201
+ * We set the default value on create input if value is not defined.
202
+ */
203
+ acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
204
+ return acc;
205
+ }, {});
206
+ };
207
+ const createEntryId = input => {
208
+ let entryId = (0, _utils.mdbid)();
209
+ if (input.id) {
210
+ if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
211
+ throw new _error.default("The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.", "INVALID_ID", {
212
+ id: input.id
213
+ });
214
+ }
215
+ entryId = input.id;
216
+ }
217
+ const version = 1;
218
+ return {
219
+ entryId,
220
+ version,
221
+ id: (0, _utils.createIdentifier)({
222
+ id: entryId,
223
+ version
224
+ })
225
+ };
226
+ };
227
+
228
+ //# sourceMappingURL=createEntryData.js.map