@webiny/api-headless-cms 0.0.0-mt-3 → 0.0.0-unstable.2af142b57e

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 (606) hide show
  1. package/context.d.ts +6 -0
  2. package/context.js +94 -0
  3. package/context.js.map +1 -0
  4. package/crud/contentEntry/afterDelete.d.ts +8 -0
  5. package/{content/plugins/crud → crud}/contentEntry/afterDelete.js +2 -7
  6. package/crud/contentEntry/afterDelete.js.map +1 -0
  7. package/crud/contentEntry/beforeCreate.d.ts +8 -0
  8. package/{content/plugins/crud → crud}/contentEntry/beforeCreate.js +2 -5
  9. package/crud/contentEntry/beforeCreate.js.map +1 -0
  10. package/crud/contentEntry/beforeUpdate.d.ts +8 -0
  11. package/{content/plugins/crud → crud}/contentEntry/beforeUpdate.js +2 -5
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -0
  13. package/crud/contentEntry/entryDataValidation.d.ts +10 -0
  14. package/{content/plugins/crud → crud}/contentEntry/entryDataValidation.js +22 -49
  15. package/crud/contentEntry/entryDataValidation.js.map +1 -0
  16. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.d.ts +3 -2
  17. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.js +26 -43
  18. package/crud/contentEntry/markLockedFields.js.map +1 -0
  19. package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
  20. package/crud/contentEntry/referenceFieldsMapping.js +236 -0
  21. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
  22. package/crud/contentEntry/searchableFields.d.ts +9 -0
  23. package/crud/contentEntry/searchableFields.js +72 -0
  24. package/crud/contentEntry/searchableFields.js.map +1 -0
  25. package/{content/plugins/crud → crud}/contentEntry.crud.d.ts +5 -9
  26. package/crud/contentEntry.crud.js +1194 -0
  27. package/crud/contentEntry.crud.js.map +1 -0
  28. package/crud/contentModel/afterCreate.d.ts +8 -0
  29. package/crud/contentModel/afterCreate.js +16 -0
  30. package/crud/contentModel/afterCreate.js.map +1 -0
  31. package/crud/contentModel/afterCreateFrom.d.ts +8 -0
  32. package/crud/contentModel/afterCreateFrom.js +16 -0
  33. package/crud/contentModel/afterCreateFrom.js.map +1 -0
  34. package/crud/contentModel/afterDelete.d.ts +8 -0
  35. package/crud/contentModel/afterDelete.js +16 -0
  36. package/crud/contentModel/afterDelete.js.map +1 -0
  37. package/crud/contentModel/afterUpdate.d.ts +8 -0
  38. package/crud/contentModel/afterUpdate.js +16 -0
  39. package/crud/contentModel/afterUpdate.js.map +1 -0
  40. package/crud/contentModel/beforeCreate.d.ts +14 -0
  41. package/{content/plugins/crud → crud}/contentModel/beforeCreate.js +58 -39
  42. package/crud/contentModel/beforeCreate.js.map +1 -0
  43. package/crud/contentModel/beforeDelete.d.ts +10 -0
  44. package/{content/plugins/crud → crud}/contentModel/beforeDelete.js +13 -19
  45. package/crud/contentModel/beforeDelete.js.map +1 -0
  46. package/crud/contentModel/beforeUpdate.d.ts +8 -0
  47. package/crud/contentModel/beforeUpdate.js +32 -0
  48. package/crud/contentModel/beforeUpdate.js.map +1 -0
  49. package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
  50. package/{content/plugins/crud → crud}/contentModel/contentModelManagerFactory.js +0 -7
  51. package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
  52. package/crud/contentModel/createFieldStorageId.d.ts +2 -0
  53. package/crud/contentModel/createFieldStorageId.js +17 -0
  54. package/crud/contentModel/createFieldStorageId.js.map +1 -0
  55. package/crud/contentModel/systemFields.d.ts +1 -0
  56. package/crud/contentModel/systemFields.js +8 -0
  57. package/crud/contentModel/systemFields.js.map +1 -0
  58. package/crud/contentModel/validateLayout.d.ts +2 -0
  59. package/{content/plugins/crud → crud}/contentModel/validateLayout.js +1 -11
  60. package/crud/contentModel/validateLayout.js.map +1 -0
  61. package/crud/contentModel/validateModel.d.ts +8 -0
  62. package/crud/contentModel/validateModel.js +27 -0
  63. package/crud/contentModel/validateModel.js.map +1 -0
  64. package/crud/contentModel/validateModelFields.d.ts +8 -0
  65. package/crud/contentModel/validateModelFields.js +380 -0
  66. package/crud/contentModel/validateModelFields.js.map +1 -0
  67. package/crud/contentModel/validation.d.ts +477 -0
  68. package/crud/contentModel/validation.js +97 -0
  69. package/crud/contentModel/validation.js.map +1 -0
  70. package/{content/plugins/crud → crud}/contentModel.crud.d.ts +3 -3
  71. package/crud/contentModel.crud.js +555 -0
  72. package/crud/contentModel.crud.js.map +1 -0
  73. package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
  74. package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.js +8 -20
  75. package/crud/contentModelGroup/beforeCreate.js.map +1 -0
  76. package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
  77. package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.js +4 -12
  78. package/crud/contentModelGroup/beforeDelete.js.map +1 -0
  79. package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
  80. package/{content/plugins/crud → crud}/contentModelGroup/beforeUpdate.js +3 -8
  81. package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
  82. package/crud/contentModelGroup/validation.d.ts +30 -0
  83. package/crud/contentModelGroup/validation.js +34 -0
  84. package/crud/contentModelGroup/validation.js.map +1 -0
  85. package/{content/plugins/crud → crud}/contentModelGroup.crud.d.ts +3 -3
  86. package/crud/contentModelGroup.crud.js +324 -0
  87. package/crud/contentModelGroup.crud.js.map +1 -0
  88. package/{plugins/crud → crud}/settings.crud.d.ts +3 -3
  89. package/crud/settings.crud.js +71 -0
  90. package/crud/settings.crud.js.map +1 -0
  91. package/{plugins/crud → crud}/system.crud.d.ts +6 -3
  92. package/crud/system.crud.js +186 -0
  93. package/crud/system.crud.js.map +1 -0
  94. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
  95. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +53 -0
  96. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
  97. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  98. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  99. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  100. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
  101. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +251 -0
  102. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
  103. package/fieldConverters/index.d.ts +4 -0
  104. package/fieldConverters/index.js +13 -0
  105. package/fieldConverters/index.js.map +1 -0
  106. package/graphql/buildSchemaPlugins.d.ts +11 -0
  107. package/graphql/buildSchemaPlugins.js +19 -0
  108. package/graphql/buildSchemaPlugins.js.map +1 -0
  109. package/graphql/createExecutableSchema.d.ts +7 -0
  110. package/graphql/createExecutableSchema.js +29 -0
  111. package/graphql/createExecutableSchema.js.map +1 -0
  112. package/graphql/generateSchema.d.ts +8 -0
  113. package/graphql/generateSchema.js +31 -0
  114. package/graphql/generateSchema.js.map +1 -0
  115. package/graphql/graphQLHandlerFactory.d.ts +5 -0
  116. package/graphql/graphQLHandlerFactory.js +174 -0
  117. package/graphql/graphQLHandlerFactory.js.map +1 -0
  118. package/graphql/index.d.ts +3 -0
  119. package/graphql/index.js +13 -0
  120. package/graphql/index.js.map +1 -0
  121. package/graphql/schema/baseContentSchema.d.ts +7 -0
  122. package/graphql/schema/baseContentSchema.js +72 -0
  123. package/graphql/schema/baseContentSchema.js.map +1 -0
  124. package/graphql/schema/baseSchema.d.ts +3 -0
  125. package/graphql/schema/baseSchema.js +53 -0
  126. package/graphql/schema/baseSchema.js.map +1 -0
  127. package/graphql/schema/contentEntries.d.ts +7 -0
  128. package/graphql/schema/contentEntries.js +325 -0
  129. package/graphql/schema/contentEntries.js.map +1 -0
  130. package/graphql/schema/contentModelGroups.d.ts +7 -0
  131. package/{content/plugins → graphql}/schema/contentModelGroups.js +38 -32
  132. package/graphql/schema/contentModelGroups.js.map +1 -0
  133. package/graphql/schema/contentModels.d.ts +7 -0
  134. package/{content/plugins → graphql}/schema/contentModels.js +101 -28
  135. package/graphql/schema/contentModels.js.map +1 -0
  136. package/graphql/schema/createFieldResolvers.d.ts +20 -0
  137. package/graphql/schema/createFieldResolvers.js +110 -0
  138. package/graphql/schema/createFieldResolvers.js.map +1 -0
  139. package/graphql/schema/createManageResolvers.d.ts +12 -0
  140. package/{content/plugins → graphql}/schema/createManageResolvers.js +32 -56
  141. package/graphql/schema/createManageResolvers.js.map +1 -0
  142. package/graphql/schema/createManageSDL.d.ts +12 -0
  143. package/{content/plugins → graphql}/schema/createManageSDL.js +31 -33
  144. package/graphql/schema/createManageSDL.js.map +1 -0
  145. package/graphql/schema/createPreviewResolvers.d.ts +12 -0
  146. package/graphql/schema/createPreviewResolvers.js +48 -0
  147. package/graphql/schema/createPreviewResolvers.js.map +1 -0
  148. package/graphql/schema/createReadResolvers.d.ts +12 -0
  149. package/graphql/schema/createReadResolvers.js +53 -0
  150. package/graphql/schema/createReadResolvers.js.map +1 -0
  151. package/graphql/schema/createReadSDL.d.ts +12 -0
  152. package/{content/plugins → graphql}/schema/createReadSDL.js +23 -21
  153. package/graphql/schema/createReadSDL.js.map +1 -0
  154. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
  155. package/{content/plugins → graphql}/schema/resolvers/commonFieldResolvers.js +0 -2
  156. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
  157. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
  158. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreate.js +2 -7
  159. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
  160. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
  161. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreateFrom.js +2 -7
  162. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
  163. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
  164. package/{content/plugins → graphql}/schema/resolvers/manage/resolveDelete.js +8 -12
  165. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
  166. package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
  167. package/graphql/schema/resolvers/manage/resolveGet.js +63 -0
  168. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
  169. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
  170. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetByIds.js +2 -7
  171. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
  172. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
  173. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetRevisions.js +2 -7
  174. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
  175. package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
  176. package/{content/plugins/schema/resolvers/preview → graphql/schema/resolvers/manage}/resolveList.js +2 -7
  177. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
  178. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
  179. package/{content/plugins → graphql}/schema/resolvers/manage/resolvePublish.js +0 -3
  180. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
  181. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
  182. package/{content/plugins/schema/resolvers/manage/resolveGet.js → graphql/schema/resolvers/manage/resolveRepublish.js} +4 -7
  183. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
  184. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
  185. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUnpublish.js +0 -3
  186. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
  187. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
  188. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUpdate.js +2 -7
  189. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
  190. package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
  191. package/graphql/schema/resolvers/preview/resolveGet.js +26 -0
  192. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
  193. package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
  194. package/{content/plugins/schema/resolvers/manage → graphql/schema/resolvers/preview}/resolveList.js +2 -7
  195. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
  196. package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
  197. package/graphql/schema/resolvers/read/resolveGet.js +26 -0
  198. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
  199. package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
  200. package/{content/plugins → graphql}/schema/resolvers/read/resolveList.js +2 -7
  201. package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
  202. package/graphql/schema/schemaPlugins.d.ts +8 -0
  203. package/graphql/schema/schemaPlugins.js +109 -0
  204. package/graphql/schema/schemaPlugins.js.map +1 -0
  205. package/graphql/system.d.ts +6 -0
  206. package/{plugins/graphql → graphql}/system.js +43 -12
  207. package/graphql/system.js.map +1 -0
  208. package/graphqlFields/boolean.d.ts +2 -0
  209. package/graphqlFields/boolean.js +57 -0
  210. package/graphqlFields/boolean.js.map +1 -0
  211. package/graphqlFields/datetime.d.ts +2 -0
  212. package/graphqlFields/datetime.js +78 -0
  213. package/graphqlFields/datetime.js.map +1 -0
  214. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  215. package/graphqlFields/dynamicZone/dynamicZoneField.js +208 -0
  216. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  217. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  218. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  219. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  220. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  221. package/graphqlFields/dynamicZone/index.js +19 -0
  222. package/graphqlFields/dynamicZone/index.js.map +1 -0
  223. package/graphqlFields/file.d.ts +2 -0
  224. package/graphqlFields/file.js +42 -0
  225. package/graphqlFields/file.js.map +1 -0
  226. package/graphqlFields/helpers.d.ts +6 -0
  227. package/graphqlFields/helpers.js +39 -0
  228. package/graphqlFields/helpers.js.map +1 -0
  229. package/graphqlFields/index.d.ts +2 -0
  230. package/graphqlFields/index.js +18 -0
  231. package/graphqlFields/index.js.map +1 -0
  232. package/graphqlFields/longText.d.ts +2 -0
  233. package/graphqlFields/longText.js +53 -0
  234. package/graphqlFields/longText.js.map +1 -0
  235. package/graphqlFields/number.d.ts +2 -0
  236. package/graphqlFields/number.js +67 -0
  237. package/graphqlFields/number.js.map +1 -0
  238. package/graphqlFields/object.d.ts +2 -0
  239. package/graphqlFields/object.js +239 -0
  240. package/graphqlFields/object.js.map +1 -0
  241. package/graphqlFields/ref.d.ts +2 -0
  242. package/graphqlFields/ref.js +227 -0
  243. package/graphqlFields/ref.js.map +1 -0
  244. package/graphqlFields/richText.d.ts +2 -0
  245. package/graphqlFields/richText.js +47 -0
  246. package/graphqlFields/richText.js.map +1 -0
  247. package/graphqlFields/text.d.ts +2 -0
  248. package/graphqlFields/text.js +62 -0
  249. package/graphqlFields/text.js.map +1 -0
  250. package/index.d.ts +10 -12
  251. package/index.js +75 -55
  252. package/index.js.map +1 -0
  253. package/modelManager/DefaultCmsModelManager.d.ts +14 -0
  254. package/{content/plugins/modelManager → modelManager}/DefaultCmsModelManager.js +10 -24
  255. package/modelManager/DefaultCmsModelManager.js.map +1 -0
  256. package/modelManager/index.d.ts +2 -0
  257. package/{content/plugins/modelManager → modelManager}/index.js +3 -7
  258. package/modelManager/index.js.map +1 -0
  259. package/package.json +38 -38
  260. package/parameters/context.d.ts +2 -0
  261. package/parameters/context.js +18 -0
  262. package/parameters/context.js.map +1 -0
  263. package/parameters/header.d.ts +2 -0
  264. package/parameters/header.js +44 -0
  265. package/parameters/header.js.map +1 -0
  266. package/parameters/index.d.ts +4 -0
  267. package/parameters/index.js +49 -0
  268. package/parameters/index.js.map +1 -0
  269. package/parameters/manual.d.ts +6 -0
  270. package/parameters/manual.js +37 -0
  271. package/parameters/manual.js.map +1 -0
  272. package/parameters/path.d.ts +2 -0
  273. package/parameters/path.js +40 -0
  274. package/parameters/path.js.map +1 -0
  275. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  276. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  277. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  278. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  279. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  280. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  281. package/plugins/CmsGroupPlugin.d.ts +13 -0
  282. package/{content/plugins → plugins}/CmsGroupPlugin.js +7 -9
  283. package/plugins/CmsGroupPlugin.js.map +1 -0
  284. package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
  285. package/plugins/CmsModelFieldConverterPlugin.js +12 -0
  286. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
  287. package/plugins/CmsModelPlugin.d.ts +45 -0
  288. package/plugins/CmsModelPlugin.js +158 -0
  289. package/plugins/CmsModelPlugin.js.map +1 -0
  290. package/plugins/CmsParametersPlugin.d.ts +20 -0
  291. package/plugins/CmsParametersPlugin.js +21 -0
  292. package/plugins/CmsParametersPlugin.js.map +1 -0
  293. package/plugins/StorageTransformPlugin.d.ts +31 -0
  294. package/{content/plugins/storage → plugins}/StorageTransformPlugin.js +2 -10
  295. package/plugins/StorageTransformPlugin.js.map +1 -0
  296. package/plugins/index.d.ts +7 -0
  297. package/plugins/index.js +82 -0
  298. package/plugins/index.js.map +1 -0
  299. package/storage/default.d.ts +2 -0
  300. package/storage/default.js +24 -0
  301. package/storage/default.js.map +1 -0
  302. package/storage/object.d.ts +2 -0
  303. package/storage/object.js +108 -0
  304. package/storage/object.js.map +1 -0
  305. package/types.d.ts +881 -389
  306. package/types.js +104 -61
  307. package/types.js.map +1 -0
  308. package/upgrades/5.33.0/index.d.ts +3 -0
  309. package/upgrades/5.33.0/index.js +159 -0
  310. package/upgrades/5.33.0/index.js.map +1 -0
  311. package/upgrades/index.d.ts +1 -0
  312. package/upgrades/index.js +9 -0
  313. package/upgrades/index.js.map +1 -0
  314. package/utils/access.d.ts +8 -0
  315. package/utils/access.js +76 -0
  316. package/utils/access.js.map +1 -0
  317. package/utils/converters/Converter.d.ts +27 -0
  318. package/utils/converters/Converter.js +58 -0
  319. package/utils/converters/Converter.js.map +1 -0
  320. package/utils/converters/ConverterCollection.d.ts +31 -0
  321. package/utils/converters/ConverterCollection.js +119 -0
  322. package/utils/converters/ConverterCollection.js.map +1 -0
  323. package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
  324. package/utils/converters/valueKeyStorageConverter.js +122 -0
  325. package/utils/converters/valueKeyStorageConverter.js.map +1 -0
  326. package/utils/createTypeFromFields.d.ts +15 -0
  327. package/utils/createTypeFromFields.js +64 -0
  328. package/utils/createTypeFromFields.js.map +1 -0
  329. package/{content/plugins/utils → utils}/createTypeName.d.ts +3 -3
  330. package/{content/plugins/utils → utils}/createTypeName.js +3 -10
  331. package/utils/createTypeName.js.map +1 -0
  332. package/{content/plugins/utils → utils}/entryStorage.d.ts +3 -3
  333. package/{content/plugins/utils → utils}/entryStorage.js +26 -47
  334. package/utils/entryStorage.js.map +1 -0
  335. package/utils/filterAsync.d.ts +1 -0
  336. package/utils/filterAsync.js +18 -0
  337. package/utils/filterAsync.js.map +1 -0
  338. package/utils/getBaseFieldType.d.ts +4 -0
  339. package/utils/getBaseFieldType.js +10 -0
  340. package/utils/getBaseFieldType.js.map +1 -0
  341. package/utils/getEntryTitle.d.ts +2 -0
  342. package/{content/plugins/utils → utils}/getEntryTitle.js +7 -15
  343. package/utils/getEntryTitle.js.map +1 -0
  344. package/utils/getSchemaFromFieldPlugins.d.ts +9 -0
  345. package/utils/getSchemaFromFieldPlugins.js +39 -0
  346. package/utils/getSchemaFromFieldPlugins.js.map +1 -0
  347. package/utils/ownership.d.ts +8 -0
  348. package/utils/ownership.js +33 -0
  349. package/utils/ownership.js.map +1 -0
  350. package/utils/permissions.d.ts +7 -0
  351. package/utils/permissions.js +91 -0
  352. package/utils/permissions.js.map +1 -0
  353. package/utils/pluralizedTypeName.d.ts +1 -0
  354. package/{content/plugins/utils → utils}/pluralizedTypeName.js +1 -7
  355. package/utils/pluralizedTypeName.js.map +1 -0
  356. package/utils/renderFields.d.ts +15 -0
  357. package/{content/plugins/utils → utils}/renderFields.js +6 -11
  358. package/utils/renderFields.js.map +1 -0
  359. package/utils/renderGetFilterFields.d.ts +10 -0
  360. package/utils/renderGetFilterFields.js +48 -0
  361. package/utils/renderGetFilterFields.js.map +1 -0
  362. package/utils/renderInputFields.d.ts +14 -0
  363. package/{content/plugins/utils → utils}/renderInputFields.js +3 -10
  364. package/utils/renderInputFields.js.map +1 -0
  365. package/utils/renderListFilterFields.d.ts +11 -0
  366. package/{content/plugins/utils → utils}/renderListFilterFields.js +36 -22
  367. package/utils/renderListFilterFields.js.map +1 -0
  368. package/utils/renderSortEnum.d.ts +12 -0
  369. package/utils/renderSortEnum.js +42 -0
  370. package/utils/renderSortEnum.js.map +1 -0
  371. package/utils/toSlug.d.ts +1 -0
  372. package/utils/toSlug.js +16 -0
  373. package/utils/toSlug.js.map +1 -0
  374. package/validators/dateGte.d.ts +2 -0
  375. package/{content/plugins/validators → validators}/dateGte.js +4 -11
  376. package/validators/dateGte.js.map +1 -0
  377. package/validators/dateLte.d.ts +2 -0
  378. package/{content/plugins/validators → validators}/dateLte.js +4 -11
  379. package/validators/dateLte.js.map +1 -0
  380. package/validators/dynamicZone.d.ts +2 -0
  381. package/validators/dynamicZone.js +20 -0
  382. package/validators/dynamicZone.js.map +1 -0
  383. package/validators/gte.d.ts +2 -0
  384. package/validators/gte.js +28 -0
  385. package/validators/gte.js.map +1 -0
  386. package/validators/in.d.ts +2 -0
  387. package/validators/in.js +28 -0
  388. package/validators/in.js.map +1 -0
  389. package/validators/index.d.ts +1 -0
  390. package/validators/index.js +22 -0
  391. package/validators/index.js.map +1 -0
  392. package/validators/lte.d.ts +2 -0
  393. package/validators/lte.js +28 -0
  394. package/validators/lte.js.map +1 -0
  395. package/validators/maxLength.d.ts +2 -0
  396. package/validators/maxLength.js +28 -0
  397. package/validators/maxLength.js.map +1 -0
  398. package/validators/minLength.d.ts +2 -0
  399. package/validators/minLength.js +28 -0
  400. package/validators/minLength.js.map +1 -0
  401. package/validators/pattern.d.ts +2 -0
  402. package/validators/pattern.js +41 -0
  403. package/validators/pattern.js.map +1 -0
  404. package/validators/patternPlugins/email.d.ts +2 -0
  405. package/validators/patternPlugins/email.js +18 -0
  406. package/validators/patternPlugins/email.js.map +1 -0
  407. package/validators/patternPlugins/index.d.ts +2 -0
  408. package/validators/patternPlugins/index.js +16 -0
  409. package/validators/patternPlugins/index.js.map +1 -0
  410. package/validators/patternPlugins/lowerCase.d.ts +2 -0
  411. package/validators/patternPlugins/lowerCase.js +18 -0
  412. package/validators/patternPlugins/lowerCase.js.map +1 -0
  413. package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
  414. package/validators/patternPlugins/lowerCaseSpace.js +18 -0
  415. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  416. package/validators/patternPlugins/upperCase.d.ts +2 -0
  417. package/validators/patternPlugins/upperCase.js +18 -0
  418. package/validators/patternPlugins/upperCase.js.map +1 -0
  419. package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
  420. package/validators/patternPlugins/upperCaseSpace.js +18 -0
  421. package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  422. package/validators/patternPlugins/url.d.ts +2 -0
  423. package/validators/patternPlugins/url.js +18 -0
  424. package/validators/patternPlugins/url.js.map +1 -0
  425. package/validators/required.d.ts +2 -0
  426. package/validators/required.js +22 -0
  427. package/validators/required.js.map +1 -0
  428. package/validators/timeGte.d.ts +2 -0
  429. package/{content/plugins/validators → validators}/timeGte.js +5 -11
  430. package/validators/timeGte.js.map +1 -0
  431. package/validators/timeLte.d.ts +2 -0
  432. package/{content/plugins/validators → validators}/timeLte.js +5 -11
  433. package/validators/timeLte.js.map +1 -0
  434. package/validators/unique.d.ts +6 -0
  435. package/validators/unique.js +56 -0
  436. package/validators/unique.js.map +1 -0
  437. package/content/contextSetup.d.ts +0 -4
  438. package/content/contextSetup.js +0 -65
  439. package/content/graphQLHandlerFactory.d.ts +0 -5
  440. package/content/graphQLHandlerFactory.js +0 -173
  441. package/content/plugins/CmsGroupPlugin.d.ts +0 -11
  442. package/content/plugins/CmsModelPlugin.d.ts +0 -11
  443. package/content/plugins/CmsModelPlugin.js +0 -24
  444. package/content/plugins/buildSchemaPlugins.d.ts +0 -7
  445. package/content/plugins/buildSchemaPlugins.js +0 -29
  446. package/content/plugins/crud/contentEntry/afterDelete.d.ts +0 -7
  447. package/content/plugins/crud/contentEntry/beforeCreate.d.ts +0 -7
  448. package/content/plugins/crud/contentEntry/beforeUpdate.d.ts +0 -7
  449. package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +0 -4
  450. package/content/plugins/crud/contentEntry.crud.js +0 -931
  451. package/content/plugins/crud/contentModel/afterCreate.d.ts +0 -7
  452. package/content/plugins/crud/contentModel/afterCreate.js +0 -18
  453. package/content/plugins/crud/contentModel/afterDelete.d.ts +0 -7
  454. package/content/plugins/crud/contentModel/afterDelete.js +0 -18
  455. package/content/plugins/crud/contentModel/afterUpdate.d.ts +0 -7
  456. package/content/plugins/crud/contentModel/afterUpdate.js +0 -18
  457. package/content/plugins/crud/contentModel/beforeCreate.d.ts +0 -9
  458. package/content/plugins/crud/contentModel/beforeDelete.d.ts +0 -9
  459. package/content/plugins/crud/contentModel/beforeUpdate.d.ts +0 -9
  460. package/content/plugins/crud/contentModel/beforeUpdate.js +0 -128
  461. package/content/plugins/crud/contentModel/contentModelManagerFactory.d.ts +0 -2
  462. package/content/plugins/crud/contentModel/createFieldModels.d.ts +0 -2
  463. package/content/plugins/crud/contentModel/createFieldModels.js +0 -22
  464. package/content/plugins/crud/contentModel/idValidation.d.ts +0 -2
  465. package/content/plugins/crud/contentModel/idValidation.js +0 -22
  466. package/content/plugins/crud/contentModel/models.d.ts +0 -3
  467. package/content/plugins/crud/contentModel/models.js +0 -141
  468. package/content/plugins/crud/contentModel/validateLayout.d.ts +0 -2
  469. package/content/plugins/crud/contentModel.crud.js +0 -425
  470. package/content/plugins/crud/contentModelGroup/beforeCreate.d.ts +0 -9
  471. package/content/plugins/crud/contentModelGroup/beforeDelete.d.ts +0 -9
  472. package/content/plugins/crud/contentModelGroup/beforeUpdate.d.ts +0 -8
  473. package/content/plugins/crud/contentModelGroup.crud.js +0 -351
  474. package/content/plugins/crud/index.d.ts +0 -6
  475. package/content/plugins/crud/index.js +0 -100
  476. package/content/plugins/graphqlFields/boolean.d.ts +0 -3
  477. package/content/plugins/graphqlFields/boolean.js +0 -69
  478. package/content/plugins/graphqlFields/datetime.d.ts +0 -3
  479. package/content/plugins/graphqlFields/datetime.js +0 -83
  480. package/content/plugins/graphqlFields/file.d.ts +0 -3
  481. package/content/plugins/graphqlFields/file.js +0 -49
  482. package/content/plugins/graphqlFields/index.d.ts +0 -2
  483. package/content/plugins/graphqlFields/index.js +0 -30
  484. package/content/plugins/graphqlFields/longText.d.ts +0 -3
  485. package/content/plugins/graphqlFields/longText.js +0 -62
  486. package/content/plugins/graphqlFields/number.d.ts +0 -3
  487. package/content/plugins/graphqlFields/number.js +0 -75
  488. package/content/plugins/graphqlFields/object.d.ts +0 -3
  489. package/content/plugins/graphqlFields/object.js +0 -180
  490. package/content/plugins/graphqlFields/ref.d.ts +0 -3
  491. package/content/plugins/graphqlFields/ref.js +0 -205
  492. package/content/plugins/graphqlFields/richText.d.ts +0 -3
  493. package/content/plugins/graphqlFields/richText.js +0 -55
  494. package/content/plugins/graphqlFields/text.d.ts +0 -3
  495. package/content/plugins/graphqlFields/text.js +0 -72
  496. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.d.ts +0 -8
  497. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js +0 -54
  498. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.d.ts +0 -7
  499. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js +0 -35
  500. package/content/plugins/modelManager/DefaultCmsModelManager.d.ts +0 -15
  501. package/content/plugins/modelManager/index.d.ts +0 -3
  502. package/content/plugins/schema/baseSchema.d.ts +0 -4
  503. package/content/plugins/schema/baseSchema.js +0 -98
  504. package/content/plugins/schema/contentEntries.d.ts +0 -4
  505. package/content/plugins/schema/contentEntries.js +0 -166
  506. package/content/plugins/schema/contentModelGroups.d.ts +0 -4
  507. package/content/plugins/schema/contentModels.d.ts +0 -4
  508. package/content/plugins/schema/createFieldResolvers.d.ts +0 -19
  509. package/content/plugins/schema/createFieldResolvers.js +0 -92
  510. package/content/plugins/schema/createManageResolvers.d.ts +0 -11
  511. package/content/plugins/schema/createManageSDL.d.ts +0 -9
  512. package/content/plugins/schema/createPreviewResolvers.d.ts +0 -10
  513. package/content/plugins/schema/createPreviewResolvers.js +0 -55
  514. package/content/plugins/schema/createReadResolvers.d.ts +0 -10
  515. package/content/plugins/schema/createReadResolvers.js +0 -55
  516. package/content/plugins/schema/createReadSDL.d.ts +0 -9
  517. package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +0 -6
  518. package/content/plugins/schema/resolvers/manage/resolveCreate.d.ts +0 -6
  519. package/content/plugins/schema/resolvers/manage/resolveCreateFrom.d.ts +0 -7
  520. package/content/plugins/schema/resolvers/manage/resolveDelete.d.ts +0 -2
  521. package/content/plugins/schema/resolvers/manage/resolveGet.d.ts +0 -2
  522. package/content/plugins/schema/resolvers/manage/resolveGetByIds.d.ts +0 -2
  523. package/content/plugins/schema/resolvers/manage/resolveGetRevisions.d.ts +0 -2
  524. package/content/plugins/schema/resolvers/manage/resolveList.d.ts +0 -2
  525. package/content/plugins/schema/resolvers/manage/resolvePublish.d.ts +0 -2
  526. package/content/plugins/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -6
  527. package/content/plugins/schema/resolvers/manage/resolveRequestChanges.js +0 -23
  528. package/content/plugins/schema/resolvers/manage/resolveRequestReview.d.ts +0 -6
  529. package/content/plugins/schema/resolvers/manage/resolveRequestReview.js +0 -23
  530. package/content/plugins/schema/resolvers/manage/resolveUnpublish.d.ts +0 -2
  531. package/content/plugins/schema/resolvers/manage/resolveUpdate.d.ts +0 -7
  532. package/content/plugins/schema/resolvers/preview/resolveGet.d.ts +0 -2
  533. package/content/plugins/schema/resolvers/preview/resolveGet.js +0 -38
  534. package/content/plugins/schema/resolvers/preview/resolveList.d.ts +0 -2
  535. package/content/plugins/schema/resolvers/read/resolveGet.d.ts +0 -2
  536. package/content/plugins/schema/resolvers/read/resolveGet.js +0 -38
  537. package/content/plugins/schema/resolvers/read/resolveList.d.ts +0 -2
  538. package/content/plugins/schema/schemaPlugins.d.ts +0 -3
  539. package/content/plugins/schema/schemaPlugins.js +0 -92
  540. package/content/plugins/storage/StorageTransformPlugin.d.ts +0 -30
  541. package/content/plugins/storage/default.d.ts +0 -3
  542. package/content/plugins/storage/default.js +0 -28
  543. package/content/plugins/storage/object.d.ts +0 -3
  544. package/content/plugins/storage/object.js +0 -119
  545. package/content/plugins/utils/getEntryTitle.d.ts +0 -2
  546. package/content/plugins/utils/getSchemaFromFieldPlugins.d.ts +0 -11
  547. package/content/plugins/utils/getSchemaFromFieldPlugins.js +0 -30
  548. package/content/plugins/utils/pluralizedTypeName.d.ts +0 -1
  549. package/content/plugins/utils/renderFields.d.ts +0 -16
  550. package/content/plugins/utils/renderGetFilterFields.d.ts +0 -9
  551. package/content/plugins/utils/renderGetFilterFields.js +0 -41
  552. package/content/plugins/utils/renderInputFields.d.ts +0 -14
  553. package/content/plugins/utils/renderListFilterFields.d.ts +0 -10
  554. package/content/plugins/utils/renderSortEnum.d.ts +0 -9
  555. package/content/plugins/utils/renderSortEnum.js +0 -32
  556. package/content/plugins/validators/dateGte.d.ts +0 -3
  557. package/content/plugins/validators/dateLte.d.ts +0 -3
  558. package/content/plugins/validators/gte.d.ts +0 -3
  559. package/content/plugins/validators/gte.js +0 -32
  560. package/content/plugins/validators/in.d.ts +0 -3
  561. package/content/plugins/validators/in.js +0 -32
  562. package/content/plugins/validators/index.d.ts +0 -2
  563. package/content/plugins/validators/index.js +0 -36
  564. package/content/plugins/validators/lte.d.ts +0 -3
  565. package/content/plugins/validators/lte.js +0 -32
  566. package/content/plugins/validators/maxLength.d.ts +0 -3
  567. package/content/plugins/validators/maxLength.js +0 -32
  568. package/content/plugins/validators/minLength.d.ts +0 -3
  569. package/content/plugins/validators/minLength.js +0 -32
  570. package/content/plugins/validators/pattern.d.ts +0 -3
  571. package/content/plugins/validators/pattern.js +0 -47
  572. package/content/plugins/validators/patternPlugins/email.d.ts +0 -3
  573. package/content/plugins/validators/patternPlugins/email.js +0 -17
  574. package/content/plugins/validators/patternPlugins/index.d.ts +0 -2
  575. package/content/plugins/validators/patternPlugins/index.js +0 -19
  576. package/content/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  577. package/content/plugins/validators/patternPlugins/lowerCase.js +0 -17
  578. package/content/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  579. package/content/plugins/validators/patternPlugins/upperCase.js +0 -17
  580. package/content/plugins/validators/patternPlugins/url.d.ts +0 -3
  581. package/content/plugins/validators/patternPlugins/url.js +0 -17
  582. package/content/plugins/validators/required.d.ts +0 -3
  583. package/content/plugins/validators/required.js +0 -25
  584. package/content/plugins/validators/timeGte.d.ts +0 -3
  585. package/content/plugins/validators/timeLte.d.ts +0 -3
  586. package/migrateCMSPermissions.d.ts +0 -17
  587. package/migrateCMSPermissions.js +0 -193
  588. package/plugins/context.d.ts +0 -4
  589. package/plugins/context.js +0 -34
  590. package/plugins/crud/index.d.ts +0 -6
  591. package/plugins/crud/index.js +0 -100
  592. package/plugins/crud/settings.crud.js +0 -93
  593. package/plugins/crud/system.crud.js +0 -182
  594. package/plugins/graphql/system.d.ts +0 -17
  595. package/plugins/graphql.d.ts +0 -2
  596. package/plugins/graphql.js +0 -79
  597. package/plugins/upgrades/index.d.ts +0 -2
  598. package/plugins/upgrades/index.js +0 -14
  599. package/plugins/upgrades/v5.5.0/helpers.d.ts +0 -6
  600. package/plugins/upgrades/v5.5.0/helpers.js +0 -10
  601. package/plugins/upgrades/v5.5.0/index.d.ts +0 -4
  602. package/plugins/upgrades/v5.5.0/index.js +0 -129
  603. package/transformers.d.ts +0 -2
  604. package/transformers.js +0 -25
  605. package/utils.d.ts +0 -25
  606. package/utils.js +0 -251
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createUpgrade = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _error = _interopRequireDefault(require("@webiny/error"));
10
+ const assignStorageId = fields => {
11
+ return fields.map(field => {
12
+ const settings = (0, _objectSpread2.default)({}, field.settings || {});
13
+ if (settings.fields && Array.isArray(settings.fields) === true) {
14
+ settings.fields = assignStorageId(settings.fields);
15
+ }
16
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
17
+ storageId: field.fieldId,
18
+ settings
19
+ });
20
+ });
21
+ };
22
+ /**
23
+ * If at least one field does not have storageId define, we should definitely update the model.
24
+ */
25
+ const shouldUpdate = fields => {
26
+ return fields.some(field => {
27
+ var _field$settings;
28
+ if ((_field$settings = field.settings) !== null && _field$settings !== void 0 && _field$settings.fields) {
29
+ return shouldUpdate(field.settings.fields);
30
+ }
31
+ return !field.storageId;
32
+ });
33
+ };
34
+ const upgradeTenantModels = async params => {
35
+ const {
36
+ tenant,
37
+ cms,
38
+ i18n
39
+ } = params;
40
+ /**
41
+ * We need all locales for this tenant, so we can go and find all models for all the locales.
42
+ */
43
+ const [locales] = await i18n.locales.storageOperations.list({
44
+ where: {
45
+ tenant: tenant.id
46
+ },
47
+ limit: 100
48
+ });
49
+ if (locales.length === 0) {
50
+ console.log(`There are no locales under the tenant "${tenant.id}".`);
51
+ return;
52
+ }
53
+ for (const locale of locales) {
54
+ /**
55
+ * We need all the models that are not plugin models.
56
+ */
57
+ const models = await cms.storageOperations.models.list({
58
+ where: {
59
+ tenant: tenant.id,
60
+ locale: locale.code
61
+ }
62
+ });
63
+ if (models.length === 0) {
64
+ console.log(`No models in tenant "${tenant.id}" and locale "${locale.code}" combination.`);
65
+ continue;
66
+ }
67
+
68
+ /**
69
+ * Then we need to go into each of the model fields and add the storageId, which is the same as the fieldId
70
+ */
71
+ const updatedModels = models.filter(model => {
72
+ /**
73
+ * If model has at least one field with no storageId, continue with the update.
74
+ */
75
+ const toUpdate = shouldUpdate(model.fields);
76
+
77
+ /**
78
+ * If not updating the model, lets log it - just in case...
79
+ */
80
+ if (!toUpdate) {
81
+ console.log(`Skipping update of model "${model.modelId} - ${tenant.id} - ${locale.code}".`);
82
+ return false;
83
+ }
84
+ return true;
85
+ }).map(model => {
86
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
87
+ fields: assignStorageId(model.fields)
88
+ });
89
+ });
90
+ /**
91
+ * And update all the models
92
+ */
93
+ for (const model of updatedModels) {
94
+ try {
95
+ await cms.storageOperations.models.update({
96
+ model
97
+ });
98
+ } catch (ex) {
99
+ throw new _error.default(`Could not update CMS model ${model.modelId}`, "MODEL_UPGRADE_ERROR", {
100
+ model
101
+ });
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * In the end we need to write the new cms system version.
107
+ */
108
+ await cms.setSystemVersion("5.33.0");
109
+ };
110
+ const createUpgrade = () => {
111
+ return {
112
+ type: "api-upgrade",
113
+ version: "5.33.0",
114
+ app: "headless-cms",
115
+ apply: async context => {
116
+ const {
117
+ security,
118
+ tenancy,
119
+ cms,
120
+ i18n
121
+ } = context;
122
+
123
+ /**
124
+ * We need to be able to access all data.
125
+ */
126
+ security.disableAuthorization();
127
+ const initialTenant = tenancy.getCurrentTenant();
128
+ const tenants = await tenancy.listTenants();
129
+ try {
130
+ for (const tenant of tenants) {
131
+ tenancy.setCurrentTenant(tenant);
132
+ await upgradeTenantModels({
133
+ tenant,
134
+ cms,
135
+ i18n
136
+ });
137
+ }
138
+ } catch (ex) {
139
+ console.log(`Upgrade error: ${JSON.stringify({
140
+ message: ex.message,
141
+ code: ex.code,
142
+ data: ex.data
143
+ })}`);
144
+ throw new _error.default(`Could not finish the 5.33.0 upgrade. Please contact Webiny team on Slack and share the error.`, "UPGRADE_ERROR", {
145
+ message: ex.message,
146
+ code: ex.code,
147
+ data: ex.data
148
+ });
149
+ } finally {
150
+ /**
151
+ * Always enable the security after all the code runs.
152
+ */
153
+ security.enableAuthorization();
154
+ tenancy.setCurrentTenant(initialTenant);
155
+ }
156
+ }
157
+ };
158
+ };
159
+ exports.createUpgrade = createUpgrade;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assignStorageId","fields","map","field","settings","Array","isArray","storageId","fieldId","shouldUpdate","some","upgradeTenantModels","params","tenant","cms","i18n","locales","storageOperations","list","where","id","limit","length","console","log","locale","models","code","updatedModels","filter","model","toUpdate","modelId","update","ex","WebinyError","setSystemVersion","createUpgrade","type","version","app","apply","context","security","tenancy","disableAuthorization","initialTenant","getCurrentTenant","tenants","listTenants","setCurrentTenant","JSON","stringify","message","data","enableAuthorization"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade\";\nimport { CmsContext, CmsModelField, HeadlessCms } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NContextObject } from \"@webiny/api-i18n/types\";\n\nconst assignStorageId = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const settings = {\n ...(field.settings || {})\n };\n if (settings.fields && Array.isArray(settings.fields) === true) {\n settings.fields = assignStorageId(settings.fields);\n }\n return {\n ...field,\n storageId: field.fieldId,\n settings\n };\n });\n};\n/**\n * If at least one field does not have storageId define, we should definitely update the model.\n */\nconst shouldUpdate = (fields: CmsModelField[]): boolean => {\n return fields.some(field => {\n if (field.settings?.fields) {\n return shouldUpdate(field.settings.fields);\n }\n return !field.storageId;\n });\n};\n\ninterface UpgradeTenantModelsParams {\n tenant: Tenant;\n cms: HeadlessCms;\n i18n: I18NContextObject;\n}\n\nconst upgradeTenantModels = async (params: UpgradeTenantModelsParams): Promise<void> => {\n const { tenant, cms, i18n } = params;\n /**\n * We need all locales for this tenant, so we can go and find all models for all the locales.\n */\n const [locales] = await i18n.locales.storageOperations.list({\n where: {\n tenant: tenant.id\n },\n limit: 100\n });\n if (locales.length === 0) {\n console.log(`There are no locales under the tenant \"${tenant.id}\".`);\n return;\n }\n for (const locale of locales) {\n /**\n * We need all the models that are not plugin models.\n */\n const models = await cms.storageOperations.models.list({\n where: {\n tenant: tenant.id,\n locale: locale.code\n }\n });\n if (models.length === 0) {\n console.log(\n `No models in tenant \"${tenant.id}\" and locale \"${locale.code}\" combination.`\n );\n continue;\n }\n\n /**\n * Then we need to go into each of the model fields and add the storageId, which is the same as the fieldId\n */\n const updatedModels = models\n .filter(model => {\n /**\n * If model has at least one field with no storageId, continue with the update.\n */\n const toUpdate = shouldUpdate(model.fields);\n\n /**\n * If not updating the model, lets log it - just in case...\n */\n if (!toUpdate) {\n console.log(\n `Skipping update of model \"${model.modelId} - ${tenant.id} - ${locale.code}\".`\n );\n return false;\n }\n return true;\n })\n .map(model => {\n return {\n ...model,\n fields: assignStorageId(model.fields)\n };\n });\n /**\n * And update all the models\n */\n for (const model of updatedModels) {\n try {\n await cms.storageOperations.models.update({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not update CMS model ${model.modelId}`,\n \"MODEL_UPGRADE_ERROR\",\n {\n model\n }\n );\n }\n }\n }\n /**\n * In the end we need to write the new cms system version.\n */\n await cms.setSystemVersion(\"5.33.0\");\n};\n\nexport const createUpgrade = (): UpgradePlugin<CmsContext> => {\n return {\n type: \"api-upgrade\",\n version: \"5.33.0\",\n app: \"headless-cms\",\n apply: async context => {\n const { security, tenancy, cms, i18n } = context;\n\n /**\n * We need to be able to access all data.\n */\n security.disableAuthorization();\n\n const initialTenant = tenancy.getCurrentTenant();\n\n const tenants = await tenancy.listTenants();\n try {\n for (const tenant of tenants) {\n tenancy.setCurrentTenant(tenant);\n await upgradeTenantModels({\n tenant,\n cms,\n i18n\n });\n }\n } catch (ex) {\n console.log(\n `Upgrade error: ${JSON.stringify({\n message: ex.message,\n code: ex.code,\n data: ex.data\n })}`\n );\n throw new WebinyError(\n `Could not finish the 5.33.0 upgrade. Please contact Webiny team on Slack and share the error.`,\n \"UPGRADE_ERROR\",\n {\n message: ex.message,\n code: ex.code,\n data: ex.data\n }\n );\n } finally {\n /**\n * Always enable the security after all the code runs.\n */\n security.enableAuthorization();\n tenancy.setCurrentTenant(initialTenant);\n }\n }\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const createUpgrades: () => import("@webiny/api-upgrade").UpgradePlugin<import("../types").CmsContext>[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUpgrades = void 0;
7
+ var _ = require("./5.33.0");
8
+ const createUpgrades = () => [(0, _.createUpgrade)()];
9
+ exports.createUpgrades = createUpgrades;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createUpgrades","create533Upgrade"],"sources":["index.ts"],"sourcesContent":["import { createUpgrade as create533Upgrade } from \"~/upgrades/5.33.0\";\n\nexport const createUpgrades = () => [create533Upgrade()];\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,cAAc,GAAG,MAAM,CAAC,IAAAC,eAAgB,GAAE,CAAC;AAAC"}
@@ -0,0 +1,8 @@
1
+ import { CmsContext, CmsGroup, CmsGroupPermission, CmsModel } from "../types";
2
+ export declare const validateGroupAccess: (context: CmsContext, permission: CmsGroupPermission, group: CmsGroup) => boolean;
3
+ export declare const validateModelAccess: (context: CmsContext, model: CmsModel) => Promise<boolean>;
4
+ /**
5
+ * model access is checking for both specific model or group access
6
+ * if permission has specific models set as access pattern then groups will not matter (although both can be set)
7
+ */
8
+ export declare const checkModelAccess: (context: CmsContext, model: CmsModel) => Promise<void>;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateModelAccess = exports.validateGroupAccess = exports.checkModelAccess = void 0;
7
+ var _apiSecurity = require("@webiny/api-security");
8
+ var _permissions = require("./permissions");
9
+ const validateGroupAccess = (context, permission, group) => {
10
+ const {
11
+ groups
12
+ } = permission;
13
+ // when no groups defined on permission
14
+ // it means user has access to everything
15
+ if (!groups) {
16
+ return true;
17
+ }
18
+ const locale = context.cms.getLocale().code;
19
+ // when there is no locale in groups, it means that no access was given
20
+ // this happens when access control was set but no models or groups were added
21
+ if (Array.isArray(groups[locale]) === false || groups[locale].includes(group.id) === false) {
22
+ return false;
23
+ }
24
+ return true;
25
+ };
26
+ exports.validateGroupAccess = validateGroupAccess;
27
+ const validateModelAccess = async (context, model) => {
28
+ const modelGroupPermission = await (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
29
+ rwd: "r"
30
+ });
31
+ const {
32
+ groups
33
+ } = modelGroupPermission;
34
+ const modelPermission = await (0, _permissions.checkPermissions)(context, "cms.contentModel", {
35
+ rwd: "r"
36
+ });
37
+ const {
38
+ models
39
+ } = modelPermission;
40
+ // when no models or groups defined on permission
41
+ // it means user has access to everything
42
+ if (!models && !groups) {
43
+ return true;
44
+ }
45
+ const locale = context.cms.getLocale().code;
46
+ // Check whether the model is question belongs to "content model groups" for which user has permission.
47
+ if (groups) {
48
+ if (Array.isArray(groups[locale]) === false || groups[locale].includes(model.group.id) === false) {
49
+ return false;
50
+ }
51
+ }
52
+ // Check whether the model is question belongs to "content models" for which user has permission.
53
+ if (models) {
54
+ if (Array.isArray(models[locale]) === false || models[locale].includes(model.modelId) === false) {
55
+ return false;
56
+ }
57
+ }
58
+ return true;
59
+ };
60
+
61
+ /**
62
+ * model access is checking for both specific model or group access
63
+ * if permission has specific models set as access pattern then groups will not matter (although both can be set)
64
+ */
65
+ exports.validateModelAccess = validateModelAccess;
66
+ const checkModelAccess = async (context, model) => {
67
+ if (await validateModelAccess(context, model)) {
68
+ return;
69
+ }
70
+ throw new _apiSecurity.NotAuthorizedError({
71
+ data: {
72
+ reason: `Not allowed to access model "${model.modelId}".`
73
+ }
74
+ });
75
+ };
76
+ exports.checkModelAccess = checkModelAccess;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validateGroupAccess","context","permission","group","groups","locale","cms","getLocale","code","Array","isArray","includes","id","validateModelAccess","model","modelGroupPermission","checkPermissions","rwd","modelPermission","models","modelId","checkModelAccess","NotAuthorizedError","data","reason"],"sources":["access.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { CmsContext, CmsGroup, CmsGroupPermission, CmsModel, CmsModelPermission } from \"~/types\";\nimport { checkPermissions } from \"./permissions\";\n\nexport const validateGroupAccess = (\n context: CmsContext,\n permission: CmsGroupPermission,\n group: CmsGroup\n): boolean => {\n const { groups } = permission;\n // when no groups defined on permission\n // it means user has access to everything\n if (!groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // when there is no locale in groups, it means that no access was given\n // this happens when access control was set but no models or groups were added\n if (Array.isArray(groups[locale]) === false || groups[locale].includes(group.id) === false) {\n return false;\n }\n return true;\n};\n\nexport const validateModelAccess = async (\n context: CmsContext,\n model: CmsModel\n): Promise<boolean> => {\n const modelGroupPermission: CmsGroupPermission = await checkPermissions(\n context,\n \"cms.contentModelGroup\",\n { rwd: \"r\" }\n );\n const { groups } = modelGroupPermission;\n\n const modelPermission: CmsModelPermission = await checkPermissions(\n context,\n \"cms.contentModel\",\n {\n rwd: \"r\"\n }\n );\n const { models } = modelPermission;\n // when no models or groups defined on permission\n // it means user has access to everything\n if (!models && !groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // Check whether the model is question belongs to \"content model groups\" for which user has permission.\n if (groups) {\n if (\n Array.isArray(groups[locale]) === false ||\n groups[locale].includes(model.group.id) === false\n ) {\n return false;\n }\n }\n // Check whether the model is question belongs to \"content models\" for which user has permission.\n if (models) {\n if (\n Array.isArray(models[locale]) === false ||\n models[locale].includes(model.modelId) === false\n ) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * model access is checking for both specific model or group access\n * if permission has specific models set as access pattern then groups will not matter (although both can be set)\n */\nexport const checkModelAccess = async (context: CmsContext, model: CmsModel): Promise<void> => {\n if (await validateModelAccess(context, model)) {\n return;\n }\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access model \"${model.modelId}\".`\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAEA;AAEO,MAAMA,mBAAmB,GAAG,CAC/BC,OAAmB,EACnBC,UAA8B,EAC9BC,KAAe,KACL;EACV,MAAM;IAAEC;EAAO,CAAC,GAAGF,UAAU;EAC7B;EACA;EACA,IAAI,CAACE,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EACA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACC,SAAS,EAAE,CAACC,IAAI;EAC3C;EACA;EACA,IAAIC,KAAK,CAACC,OAAO,CAACN,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAID,MAAM,CAACC,MAAM,CAAC,CAACM,QAAQ,CAACR,KAAK,CAACS,EAAE,CAAC,KAAK,KAAK,EAAE;IACxF,OAAO,KAAK;EAChB;EACA,OAAO,IAAI;AACf,CAAC;AAAC;AAEK,MAAMC,mBAAmB,GAAG,OAC/BZ,OAAmB,EACnBa,KAAe,KACI;EACnB,MAAMC,oBAAwC,GAAG,MAAM,IAAAC,6BAAgB,EACnEf,OAAO,EACP,uBAAuB,EACvB;IAAEgB,GAAG,EAAE;EAAI,CAAC,CACf;EACD,MAAM;IAAEb;EAAO,CAAC,GAAGW,oBAAoB;EAEvC,MAAMG,eAAmC,GAAG,MAAM,IAAAF,6BAAgB,EAC9Df,OAAO,EACP,kBAAkB,EAClB;IACIgB,GAAG,EAAE;EACT,CAAC,CACJ;EACD,MAAM;IAAEE;EAAO,CAAC,GAAGD,eAAe;EAClC;EACA;EACA,IAAI,CAACC,MAAM,IAAI,CAACf,MAAM,EAAE;IACpB,OAAO,IAAI;EACf;EACA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACC,SAAS,EAAE,CAACC,IAAI;EAC3C;EACA,IAAIJ,MAAM,EAAE;IACR,IACIK,KAAK,CAACC,OAAO,CAACN,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAK,IACvCD,MAAM,CAACC,MAAM,CAAC,CAACM,QAAQ,CAACG,KAAK,CAACX,KAAK,CAACS,EAAE,CAAC,KAAK,KAAK,EACnD;MACE,OAAO,KAAK;IAChB;EACJ;EACA;EACA,IAAIO,MAAM,EAAE;IACR,IACIV,KAAK,CAACC,OAAO,CAACS,MAAM,CAACd,MAAM,CAAC,CAAC,KAAK,KAAK,IACvCc,MAAM,CAACd,MAAM,CAAC,CAACM,QAAQ,CAACG,KAAK,CAACM,OAAO,CAAC,KAAK,KAAK,EAClD;MACE,OAAO,KAAK;IAChB;EACJ;EAEA,OAAO,IAAI;AACf,CAAC;;AAED;AACA;AACA;AACA;AAHA;AAIO,MAAMC,gBAAgB,GAAG,OAAOpB,OAAmB,EAAEa,KAAe,KAAoB;EAC3F,IAAI,MAAMD,mBAAmB,CAACZ,OAAO,EAAEa,KAAK,CAAC,EAAE;IAC3C;EACJ;EACA,MAAM,IAAIQ,+BAAkB,CAAC;IACzBC,IAAI,EAAE;MACFC,MAAM,EAAG,gCAA+BV,KAAK,CAACM,OAAQ;IAC1D;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -0,0 +1,27 @@
1
+ import { CmsEntryValues, CmsModelField } from "../../types";
2
+ import { CmsModelFieldConverterPlugin } from "../../plugins";
3
+ import { ConverterCollection } from "./ConverterCollection";
4
+ export interface CmsModelFieldWithParent extends CmsModelField {
5
+ parent?: CmsModelFieldWithParent | null;
6
+ }
7
+ interface ConverterConvertParams {
8
+ field: CmsModelFieldWithParent;
9
+ value: any;
10
+ parent?: CmsModelFieldWithParent | null;
11
+ }
12
+ export interface ConverterConfig {
13
+ type: string;
14
+ plugin: CmsModelFieldConverterPlugin;
15
+ }
16
+ export declare class Converter {
17
+ private readonly type;
18
+ private readonly plugin;
19
+ private converters;
20
+ constructor(config: ConverterConfig);
21
+ setConverterCollection(converters: ConverterCollection): void;
22
+ getConverterCollection(): ConverterCollection;
23
+ getType(): string;
24
+ convertToStorage(params: ConverterConvertParams): CmsEntryValues;
25
+ convertFromStorage(params: ConverterConvertParams): CmsEntryValues;
26
+ }
27
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Converter = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _error = _interopRequireDefault(require("@webiny/error"));
10
+ class Converter {
11
+ constructor(config) {
12
+ (0, _defineProperty2.default)(this, "type", void 0);
13
+ (0, _defineProperty2.default)(this, "plugin", void 0);
14
+ (0, _defineProperty2.default)(this, "converters", undefined);
15
+ this.type = config.type;
16
+ this.plugin = config.plugin;
17
+ }
18
+ setConverterCollection(converters) {
19
+ if (this.converters) {
20
+ throw new _error.default(`Cannot attach converters collection more than once to Converter with type "${this.type}".`, "CONVERTER_COLLECTION_ERROR", {
21
+ type: this.type
22
+ });
23
+ }
24
+ this.converters = converters;
25
+ }
26
+ getConverterCollection() {
27
+ if (!this.converters) {
28
+ throw new _error.default(`There is no ConverterCollection defined in the converter with type "${this.type}".`);
29
+ }
30
+ return this.converters;
31
+ }
32
+ getType() {
33
+ return this.type;
34
+ }
35
+ convertToStorage(params) {
36
+ const {
37
+ field,
38
+ value
39
+ } = params;
40
+ return this.plugin.convertToStorage({
41
+ field,
42
+ value,
43
+ converterCollection: this.getConverterCollection()
44
+ });
45
+ }
46
+ convertFromStorage(params) {
47
+ const {
48
+ field,
49
+ value
50
+ } = params;
51
+ return this.plugin.convertFromStorage({
52
+ field,
53
+ value,
54
+ converterCollection: this.getConverterCollection()
55
+ });
56
+ }
57
+ }
58
+ exports.Converter = Converter;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Converter","constructor","config","undefined","type","plugin","setConverterCollection","converters","WebinyError","getConverterCollection","getType","convertToStorage","params","field","value","converterCollection","convertFromStorage"],"sources":["Converter.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntryValues, CmsModelField } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { ConverterCollection } from \"./ConverterCollection\";\n\nexport interface CmsModelFieldWithParent extends CmsModelField {\n parent?: CmsModelFieldWithParent | null;\n}\n\ninterface ConverterConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n parent?: CmsModelFieldWithParent | null;\n}\nexport interface ConverterConfig {\n type: string;\n plugin: CmsModelFieldConverterPlugin;\n}\nexport class Converter {\n private readonly type: string;\n private readonly plugin: CmsModelFieldConverterPlugin;\n\n private converters: ConverterCollection | undefined = undefined;\n\n public constructor(config: ConverterConfig) {\n this.type = config.type;\n this.plugin = config.plugin;\n }\n\n public setConverterCollection(converters: ConverterCollection): void {\n if (this.converters) {\n throw new WebinyError(\n `Cannot attach converters collection more than once to Converter with type \"${this.type}\".`,\n \"CONVERTER_COLLECTION_ERROR\",\n {\n type: this.type\n }\n );\n }\n this.converters = converters;\n }\n\n public getConverterCollection(): ConverterCollection {\n if (!this.converters) {\n throw new WebinyError(\n `There is no ConverterCollection defined in the converter with type \"${this.type}\".`\n );\n }\n return this.converters;\n }\n\n public getType(): string {\n return this.type;\n }\n\n public convertToStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertToStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n\n public convertFromStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertFromStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAkBO,MAAMA,SAAS,CAAC;EAMZC,WAAW,CAACC,MAAuB,EAAE;IAAA;IAAA;IAAA,kDAFUC,SAAS;IAG3D,IAAI,CAACC,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACC,MAAM,GAAGH,MAAM,CAACG,MAAM;EAC/B;EAEOC,sBAAsB,CAACC,UAA+B,EAAQ;IACjE,IAAI,IAAI,CAACA,UAAU,EAAE;MACjB,MAAM,IAAIC,cAAW,CAChB,8EAA6E,IAAI,CAACJ,IAAK,IAAG,EAC3F,4BAA4B,EAC5B;QACIA,IAAI,EAAE,IAAI,CAACA;MACf,CAAC,CACJ;IACL;IACA,IAAI,CAACG,UAAU,GAAGA,UAAU;EAChC;EAEOE,sBAAsB,GAAwB;IACjD,IAAI,CAAC,IAAI,CAACF,UAAU,EAAE;MAClB,MAAM,IAAIC,cAAW,CAChB,uEAAsE,IAAI,CAACJ,IAAK,IAAG,CACvF;IACL;IACA,OAAO,IAAI,CAACG,UAAU;EAC1B;EAEOG,OAAO,GAAW;IACrB,OAAO,IAAI,CAACN,IAAI;EACpB;EAEOO,gBAAgB,CAACC,MAA8B,EAAkB;IACpE,MAAM;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE/B,OAAO,IAAI,CAACP,MAAM,CAACM,gBAAgB,CAAC;MAChCE,KAAK;MACLC,KAAK;MACLC,mBAAmB,EAAE,IAAI,CAACN,sBAAsB;IACpD,CAAC,CAAC;EACN;EAEOO,kBAAkB,CAACJ,MAA8B,EAAkB;IACtE,MAAM;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE/B,OAAO,IAAI,CAACP,MAAM,CAACW,kBAAkB,CAAC;MAClCH,KAAK;MACLC,KAAK;MACLC,mBAAmB,EAAE,IAAI,CAACN,sBAAsB;IACpD,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -0,0 +1,31 @@
1
+ import { Converter } from "./Converter";
2
+ import { CmsEntryValues, CmsModelField } from "../../types";
3
+ import { PluginsContainer } from "@webiny/plugins";
4
+ export interface CmsModelFieldsWithParent extends CmsModelField {
5
+ parent?: CmsModelField | null;
6
+ }
7
+ export interface CmsModelConverterCallable {
8
+ (params: ConverterCollectionConvertParams): CmsEntryValues;
9
+ }
10
+ export interface ConverterCollectionConvertParams {
11
+ fields: CmsModelFieldsWithParent[];
12
+ values?: CmsEntryValues;
13
+ }
14
+ export interface ConverterCollectionParams {
15
+ plugins: PluginsContainer;
16
+ }
17
+ export declare class ConverterCollection {
18
+ private readonly converters;
19
+ constructor(params: ConverterCollectionParams);
20
+ addConverter(converter: Converter): void;
21
+ getConverter(type: string): Converter;
22
+ convertToStorage(params: ConverterCollectionConvertParams): CmsEntryValues | undefined;
23
+ convertFromStorage(params: ConverterCollectionConvertParams): CmsEntryValues | undefined;
24
+ /**
25
+ * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.
26
+ * At that point, hasOwnProperty does not exist, and we need to add it.
27
+ *
28
+ * TODO add more checks if required
29
+ */
30
+ private attachHasOwnProperty;
31
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ConverterCollection = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+ var _Converter = require("./Converter");
12
+ var _plugins = require("../../plugins");
13
+ var _getBaseFieldType = require("../getBaseFieldType");
14
+ class ConverterCollection {
15
+ constructor(params) {
16
+ (0, _defineProperty2.default)(this, "converters", new Map());
17
+ const {
18
+ plugins
19
+ } = params;
20
+ const fieldGraphQLPlugins = plugins.byType("cms-model-field-to-graphql");
21
+ const fieldConverterPlugins = plugins.byType(_plugins.CmsModelFieldConverterPlugin.type);
22
+ const defaultFieldConverterPlugin = fieldConverterPlugins.find(pl => pl.getFieldType() === "*");
23
+ if (defaultFieldConverterPlugin === undefined) {
24
+ throw new _error.default(`Missing default field converter plugin.`, "DEFAULT_FIELD_CONVERTER_ERROR");
25
+ }
26
+ for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {
27
+ const plugin = fieldConverterPlugins.find(pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType);
28
+ const converter = new _Converter.Converter({
29
+ type: fieldGraphQLPlugin.fieldType,
30
+ plugin: plugin || defaultFieldConverterPlugin
31
+ });
32
+ this.addConverter(converter);
33
+ }
34
+ }
35
+ addConverter(converter) {
36
+ converter.setConverterCollection(this);
37
+ this.converters.set(converter.getType(), converter);
38
+ }
39
+ getConverter(type) {
40
+ const converter = this.converters.get(type);
41
+ if (converter === undefined) {
42
+ throw new _error.default(`Missing converter for field type "${type}".`, "CONVERTER_ERROR", {
43
+ type
44
+ });
45
+ }
46
+ return converter;
47
+ }
48
+ convertToStorage(params) {
49
+ const {
50
+ fields,
51
+ values: inputValues
52
+ } = params;
53
+ if (inputValues === undefined) {
54
+ return undefined;
55
+ }
56
+ this.attachHasOwnProperty(inputValues);
57
+ return fields.reduce((output, field) => {
58
+ const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
59
+ const converter = this.getConverter(baseType);
60
+ if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {
61
+ return output;
62
+ }
63
+ const values = converter.convertToStorage({
64
+ field,
65
+ value: inputValues[field.fieldId]
66
+ });
67
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
68
+ }, {});
69
+ }
70
+ convertFromStorage(params) {
71
+ const {
72
+ fields,
73
+ values: inputValues
74
+ } = params;
75
+ if (inputValues === undefined) {
76
+ return undefined;
77
+ }
78
+ return fields.reduce((output, field) => {
79
+ const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
80
+ const converter = this.getConverter(baseType);
81
+ if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {
82
+ return output;
83
+ }
84
+ const values = converter.convertFromStorage({
85
+ field,
86
+ value: inputValues[field.storageId]
87
+ });
88
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
89
+ }, {});
90
+ }
91
+
92
+ /**
93
+ * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.
94
+ * At that point, hasOwnProperty does not exist, and we need to add it.
95
+ *
96
+ * TODO add more checks if required
97
+ */
98
+ attachHasOwnProperty(values) {
99
+ if (
100
+ // null or undefined?
101
+ values === null || values === undefined ||
102
+ // not an object?
103
+ typeof values !== "object" ||
104
+ // maybe it's an array?
105
+ Array.isArray(values) ||
106
+ // and in the end, check if hasOwnProperty is a function already
107
+ typeof (values === null || values === void 0 ? void 0 : values.hasOwnProperty) === "function") {
108
+ return;
109
+ }
110
+ Object.defineProperty(values, "hasOwnProperty", {
111
+ enumerable: false,
112
+ writable: false,
113
+ value: function (property) {
114
+ return this[property] !== undefined;
115
+ }
116
+ });
117
+ }
118
+ }
119
+ exports.ConverterCollection = ConverterCollection;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ConverterCollection","constructor","params","Map","plugins","fieldGraphQLPlugins","byType","fieldConverterPlugins","CmsModelFieldConverterPlugin","type","defaultFieldConverterPlugin","find","pl","getFieldType","undefined","WebinyError","fieldGraphQLPlugin","plugin","fieldType","converter","Converter","addConverter","setConverterCollection","converters","set","getType","getConverter","get","convertToStorage","fields","values","inputValues","attachHasOwnProperty","reduce","output","field","baseType","getBaseFieldType","hasOwnProperty","fieldId","value","convertFromStorage","storageId","Array","isArray","Object","defineProperty","enumerable","writable","property"],"sources":["ConverterCollection.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Converter } from \"./Converter\";\nimport { CmsEntryValues, CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\nexport interface CmsModelFieldsWithParent extends CmsModelField {\n parent?: CmsModelField | null;\n}\n\nexport interface CmsModelConverterCallable {\n (params: ConverterCollectionConvertParams): CmsEntryValues;\n}\n\nexport interface ConverterCollectionConvertParams {\n fields: CmsModelFieldsWithParent[];\n values?: CmsEntryValues;\n}\n\nexport interface ConverterCollectionParams {\n plugins: PluginsContainer;\n}\n\nexport class ConverterCollection {\n private readonly converters: Map<string, Converter> = new Map();\n\n public constructor(params: ConverterCollectionParams) {\n const { plugins } = params;\n const fieldGraphQLPlugins = plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n const fieldConverterPlugins = plugins.byType<CmsModelFieldConverterPlugin>(\n CmsModelFieldConverterPlugin.type\n );\n const defaultFieldConverterPlugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === \"*\"\n );\n if (defaultFieldConverterPlugin === undefined) {\n throw new WebinyError(\n `Missing default field converter plugin.`,\n \"DEFAULT_FIELD_CONVERTER_ERROR\"\n );\n }\n for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {\n const plugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType\n );\n const converter = new Converter({\n type: fieldGraphQLPlugin.fieldType,\n plugin: plugin || defaultFieldConverterPlugin\n });\n\n this.addConverter(converter);\n }\n }\n\n public addConverter(converter: Converter): void {\n converter.setConverterCollection(this);\n this.converters.set(converter.getType(), converter);\n }\n\n public getConverter(type: string): Converter {\n const converter = this.converters.get(type);\n if (converter === undefined) {\n throw new WebinyError(\n `Missing converter for field type \"${type}\".`,\n \"CONVERTER_ERROR\",\n {\n type\n }\n );\n }\n return converter;\n }\n\n public convertToStorage(params: ConverterCollectionConvertParams): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n this.attachHasOwnProperty(inputValues);\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {\n return output;\n }\n const values = converter.convertToStorage({\n field,\n value: inputValues[field.fieldId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n public convertFromStorage(\n params: ConverterCollectionConvertParams\n ): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n return fields.reduce((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {\n return output;\n }\n const values = converter.convertFromStorage({\n field,\n value: inputValues[field.storageId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n /**\n * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.\n * At that point, hasOwnProperty does not exist, and we need to add it.\n *\n * TODO add more checks if required\n */\n private attachHasOwnProperty(values: CmsEntryValues) {\n if (\n // null or undefined?\n values === null ||\n values === undefined ||\n // not an object?\n typeof values !== \"object\" ||\n // maybe it's an array?\n Array.isArray(values) ||\n // and in the end, check if hasOwnProperty is a function already\n typeof values?.hasOwnProperty === \"function\"\n ) {\n return;\n }\n Object.defineProperty(values, \"hasOwnProperty\", {\n enumerable: false,\n writable: false,\n value: function (property: string) {\n return this[property] !== undefined;\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { PluginsContainer } from "@webiny/plugins";
2
+ import { CmsModelConverterCallable } from "./ConverterCollection";
3
+ import { CmsModel, StorageOperationsCmsModel } from "../../types";
4
+ interface Params {
5
+ /**
6
+ * We need a model to determine if the conversion feature is enabled.
7
+ */
8
+ model: CmsModel;
9
+ plugins: PluginsContainer;
10
+ }
11
+ export declare const createValueKeyToStorageConverter: (params: Params) => CmsModelConverterCallable;
12
+ export declare const createValueKeyFromStorageConverter: (params: Params) => CmsModelConverterCallable;
13
+ interface AttachConvertersParams {
14
+ plugins: PluginsContainer;
15
+ model: CmsModel;
16
+ }
17
+ export declare const attachCmsModelFieldConverters: (params: AttachConvertersParams) => StorageOperationsCmsModel;
18
+ export {};