@webiny/api-aco 5.43.0-beta.0 → 5.43.0-beta.2

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 (384) hide show
  1. package/apps/AcoApp.js +4 -4
  2. package/apps/AcoApp.js.map +1 -1
  3. package/constants.d.ts +3 -0
  4. package/constants.js +11 -0
  5. package/constants.js.map +1 -0
  6. package/createAcoContext.d.ts +3 -1
  7. package/createAcoContext.js +13 -99
  8. package/createAcoContext.js.map +1 -1
  9. package/createAcoHooks.js +2 -0
  10. package/createAcoHooks.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +2 -0
  12. package/createAcoStorageOperations.js +5 -3
  13. package/createAcoStorageOperations.js.map +1 -1
  14. package/createAcoTasks.d.ts +1 -0
  15. package/createAcoTasks.js +13 -0
  16. package/createAcoTasks.js.map +1 -0
  17. package/filter/filter.crud.js +7 -7
  18. package/filter/filter.crud.js.map +1 -1
  19. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.d.ts +7 -0
  20. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js +17 -0
  21. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/GetIdentityGatewayFromContext.js.map +1 -0
  22. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.d.ts +4 -0
  23. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js +7 -0
  24. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/IGetIdentityGateway.js.map +1 -0
  25. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.d.ts +2 -0
  26. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js +29 -0
  27. package/flp/FolderLevelPermissions/gateways/GetIdentityGateway/index.js.map +1 -0
  28. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.d.ts +7 -0
  29. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js +17 -0
  30. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/GetWcpGatewayFromContext.js.map +1 -0
  31. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.d.ts +4 -0
  32. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js +7 -0
  33. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/IGetWcpGateway.js.map +1 -0
  34. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.d.ts +2 -0
  35. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js +29 -0
  36. package/flp/FolderLevelPermissions/gateways/GetWcpGateway/index.js.map +1 -0
  37. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.d.ts +3 -0
  38. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js +7 -0
  39. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IIsAuthorizationEnabledGateway.js.map +1 -0
  40. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.d.ts +7 -0
  41. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js +17 -0
  42. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/IsAuthorizationEnabledGatewayFromContext.js.map +1 -0
  43. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.d.ts +2 -0
  44. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js +29 -0
  45. package/flp/FolderLevelPermissions/gateways/IsAuthorizationEnabled/index.js.map +1 -0
  46. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.d.ts +4 -0
  47. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js +7 -0
  48. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/IListIdentityTeamsGateway.js.map +1 -0
  49. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.d.ts +7 -0
  50. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js +39 -0
  51. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/ListIdentityTeamsGatewayFromContext.js.map +1 -0
  52. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.d.ts +2 -0
  53. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js +29 -0
  54. package/flp/FolderLevelPermissions/gateways/ListIdentityTeamsGateway/index.js.map +1 -0
  55. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.d.ts +4 -0
  56. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js +7 -0
  57. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/IListPermissionsGateway.js.map +1 -0
  58. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.d.ts +7 -0
  59. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js +17 -0
  60. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/ListPermissionsGatewayFromContext.js.map +1 -0
  61. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.d.ts +2 -0
  62. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js +29 -0
  63. package/flp/FolderLevelPermissions/gateways/ListPermissionsGateway/index.js.map +1 -0
  64. package/flp/FolderLevelPermissions/gateways/index.d.ts +5 -0
  65. package/flp/FolderLevelPermissions/gateways/index.js +62 -0
  66. package/flp/FolderLevelPermissions/gateways/index.js.map +1 -0
  67. package/flp/FolderLevelPermissions/index.d.ts +33 -0
  68. package/flp/FolderLevelPermissions/index.js +116 -0
  69. package/flp/FolderLevelPermissions/index.js.map +1 -0
  70. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  71. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +48 -0
  72. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  73. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  74. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +7 -0
  75. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  76. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  77. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +29 -0
  78. package/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  79. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  80. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +41 -0
  81. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  82. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  83. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +7 -0
  84. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  85. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  86. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +29 -0
  87. package/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  88. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  89. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +14 -0
  90. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  91. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  92. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +7 -0
  93. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  94. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  95. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +29 -0
  96. package/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  97. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.d.ts +9 -0
  98. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js +34 -0
  99. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/CanUseFolderLevelPermissions.js.map +1 -0
  100. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.d.ts +3 -0
  101. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js +7 -0
  102. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/ICanUseFolderPermissions.js.map +1 -0
  103. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.d.ts +2 -0
  104. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js +29 -0
  105. package/flp/FolderLevelPermissions/useCases/CanUseFolderLevelPermissions/index.js.map +1 -0
  106. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.d.ts +7 -0
  107. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js +17 -0
  108. package/flp/FolderLevelPermissions/useCases/CanUseTeams/CanUseTeams.js.map +1 -0
  109. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.d.ts +3 -0
  110. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js +7 -0
  111. package/flp/FolderLevelPermissions/useCases/CanUseTeams/ICanUseTeams.js.map +1 -0
  112. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.d.ts +2 -0
  113. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js +29 -0
  114. package/flp/FolderLevelPermissions/useCases/CanUseTeams/index.js.map +1 -0
  115. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  116. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +14 -0
  117. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  118. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  119. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +7 -0
  120. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  121. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  122. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +29 -0
  123. package/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  124. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +10 -0
  125. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +53 -0
  126. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  127. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +10 -0
  128. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +40 -0
  129. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  130. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  131. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +7 -0
  132. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  133. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  134. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +40 -0
  135. package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  136. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.d.ts +7 -0
  137. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js +17 -0
  138. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/GetFolderPermission.js.map +1 -0
  139. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.d.ts +4 -0
  140. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js +7 -0
  141. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/IGetFolderPermission.js.map +1 -0
  142. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.d.ts +2 -0
  143. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js +29 -0
  144. package/flp/FolderLevelPermissions/useCases/GetFolderPermission/index.js.map +1 -0
  145. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.d.ts +4 -0
  146. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js +7 -0
  147. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/IListFolderPermissions.js.map +1 -0
  148. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.d.ts +7 -0
  149. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js +17 -0
  150. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/ListFolderPermissions.js.map +1 -0
  151. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.d.ts +2 -0
  152. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js +18 -0
  153. package/flp/FolderLevelPermissions/useCases/ListFolderPermissions/index.js.map +1 -0
  154. package/flp/FolderLevelPermissions/useCases/index.d.ts +9 -0
  155. package/flp/FolderLevelPermissions/useCases/index.js +106 -0
  156. package/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  157. package/flp/flp.crud.d.ts +9 -0
  158. package/flp/flp.crud.js +172 -0
  159. package/flp/flp.crud.js.map +1 -0
  160. package/flp/flp.so.d.ts +26 -0
  161. package/flp/flp.so.js +304 -0
  162. package/flp/flp.so.js.map +1 -0
  163. package/flp/flp.types.d.ts +159 -0
  164. package/flp/flp.types.js +7 -0
  165. package/flp/flp.types.js.map +1 -0
  166. package/flp/hooks/index.d.ts +2 -0
  167. package/flp/hooks/index.js +17 -0
  168. package/flp/hooks/index.js.map +1 -0
  169. package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +2 -0
  170. package/flp/hooks/onFolderAfterCreateFlp.hook.js +37 -0
  171. package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -0
  172. package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +2 -0
  173. package/flp/hooks/onFolderAfterDeleteFlp.hook.js +37 -0
  174. package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -0
  175. package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +2 -0
  176. package/flp/hooks/onFolderAfterUpdateFlp.hook.js +39 -0
  177. package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -0
  178. package/flp/index.d.ts +5 -0
  179. package/flp/index.js +62 -0
  180. package/flp/index.js.map +1 -0
  181. package/flp/tasks/createFlp.task.d.ts +2 -0
  182. package/flp/tasks/createFlp.task.js +49 -0
  183. package/flp/tasks/createFlp.task.js.map +1 -0
  184. package/flp/tasks/deleteFlp.task.d.ts +2 -0
  185. package/flp/tasks/deleteFlp.task.js +49 -0
  186. package/flp/tasks/deleteFlp.task.js.map +1 -0
  187. package/flp/tasks/index.d.ts +5 -0
  188. package/flp/tasks/index.js +20 -0
  189. package/flp/tasks/index.js.map +1 -0
  190. package/flp/tasks/syncFlp.task.d.ts +2 -0
  191. package/flp/tasks/syncFlp.task.js +126 -0
  192. package/flp/tasks/syncFlp.task.js.map +1 -0
  193. package/flp/tasks/updateFlp.task.d.ts +2 -0
  194. package/flp/tasks/updateFlp.task.js +55 -0
  195. package/flp/tasks/updateFlp.task.js.map +1 -0
  196. package/flp/useCases/CreateFlp.d.ts +7 -0
  197. package/flp/useCases/CreateFlp.js +52 -0
  198. package/flp/useCases/CreateFlp.js.map +1 -0
  199. package/flp/useCases/DeleteFlp.d.ts +6 -0
  200. package/flp/useCases/DeleteFlp.js +30 -0
  201. package/flp/useCases/DeleteFlp.js.map +1 -0
  202. package/flp/useCases/Path.d.ts +3 -0
  203. package/flp/useCases/Path.js +18 -0
  204. package/flp/useCases/Path.js.map +1 -0
  205. package/flp/useCases/Permissions.d.ts +4 -0
  206. package/flp/useCases/Permissions.js +38 -0
  207. package/flp/useCases/Permissions.js.map +1 -0
  208. package/flp/useCases/UpdateFlp.d.ts +25 -0
  209. package/flp/useCases/UpdateFlp.js +182 -0
  210. package/flp/useCases/UpdateFlp.js.map +1 -0
  211. package/flp/useCases/index.d.ts +3 -0
  212. package/flp/useCases/index.js +40 -0
  213. package/flp/useCases/index.js.map +1 -0
  214. package/folder/createFolderTypeDefs.js +13 -2
  215. package/folder/createFolderTypeDefs.js.map +1 -1
  216. package/folder/folder.crud.d.ts +3 -6
  217. package/folder/folder.crud.js +90 -231
  218. package/folder/folder.crud.js.map +1 -1
  219. package/folder/folder.gql.js +30 -8
  220. package/folder/folder.gql.js.map +1 -1
  221. package/folder/folder.model.js +3 -0
  222. package/folder/folder.model.js.map +1 -1
  223. package/folder/folder.so.js +4 -1
  224. package/folder/folder.so.js.map +1 -1
  225. package/folder/folder.types.d.ts +17 -3
  226. package/folder/folder.types.js.map +1 -1
  227. package/folder/useCases/CreateFolder/CreateFolder.d.ts +7 -0
  228. package/folder/useCases/CreateFolder/CreateFolder.js +19 -0
  229. package/folder/useCases/CreateFolder/CreateFolder.js.map +1 -0
  230. package/folder/useCases/CreateFolder/CreateFolderWithEvents.d.ts +9 -0
  231. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js +25 -0
  232. package/folder/useCases/CreateFolder/CreateFolderWithEvents.js.map +1 -0
  233. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +24 -0
  234. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js +39 -0
  235. package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  236. package/folder/useCases/CreateFolder/ICreateFolder.d.ts +4 -0
  237. package/folder/useCases/CreateFolder/ICreateFolder.js +7 -0
  238. package/folder/useCases/CreateFolder/ICreateFolder.js.map +1 -0
  239. package/folder/useCases/CreateFolder/index.d.ts +17 -0
  240. package/folder/useCases/CreateFolder/index.js +20 -0
  241. package/folder/useCases/CreateFolder/index.js.map +1 -0
  242. package/folder/useCases/DeleteFolder/DeleteFolder.d.ts +7 -0
  243. package/folder/useCases/DeleteFolder/DeleteFolder.js +18 -0
  244. package/folder/useCases/DeleteFolder/DeleteFolder.js.map +1 -0
  245. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.d.ts +10 -0
  246. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js +29 -0
  247. package/folder/useCases/DeleteFolder/DeleteFolderWithEvents.js.map +1 -0
  248. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +9 -0
  249. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js +24 -0
  250. package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  251. package/folder/useCases/DeleteFolder/IDeleteFolder.d.ts +4 -0
  252. package/folder/useCases/DeleteFolder/IDeleteFolder.js +7 -0
  253. package/folder/useCases/DeleteFolder/IDeleteFolder.js.map +1 -0
  254. package/folder/useCases/DeleteFolder/index.d.ts +18 -0
  255. package/folder/useCases/DeleteFolder/index.js +20 -0
  256. package/folder/useCases/DeleteFolder/index.js.map +1 -0
  257. package/folder/useCases/GetAncestors/GetAncestors.d.ts +5 -0
  258. package/folder/useCases/GetAncestors/GetAncestors.js +57 -0
  259. package/folder/useCases/GetAncestors/GetAncestors.js.map +1 -0
  260. package/folder/useCases/GetAncestors/IGetAncestors.d.ts +8 -0
  261. package/folder/useCases/GetAncestors/IGetAncestors.js +7 -0
  262. package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -0
  263. package/folder/useCases/GetAncestors/index.d.ts +4 -0
  264. package/folder/useCases/GetAncestors/index.js +16 -0
  265. package/folder/useCases/GetAncestors/index.js.map +1 -0
  266. package/folder/useCases/GetFolder/GetFolder.d.ts +7 -0
  267. package/folder/useCases/GetFolder/GetFolder.js +17 -0
  268. package/folder/useCases/GetFolder/GetFolder.js.map +1 -0
  269. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +24 -0
  270. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js +33 -0
  271. package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -0
  272. package/folder/useCases/GetFolder/IGetFolder.d.ts +4 -0
  273. package/folder/useCases/GetFolder/IGetFolder.js +7 -0
  274. package/folder/useCases/GetFolder/IGetFolder.js.map +1 -0
  275. package/folder/useCases/GetFolder/index.d.ts +13 -0
  276. package/folder/useCases/GetFolder/index.js +19 -0
  277. package/folder/useCases/GetFolder/index.js.map +1 -0
  278. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.d.ts +11 -0
  279. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js +63 -0
  280. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchy.js.map +1 -0
  281. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +17 -0
  282. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js +59 -0
  283. package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  284. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.d.ts +4 -0
  285. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js +7 -0
  286. package/folder/useCases/GetFolderHierarchy/IGetFolderHierarchy.js.map +1 -0
  287. package/folder/useCases/GetFolderHierarchy/index.d.ts +12 -0
  288. package/folder/useCases/GetFolderHierarchy/index.js +18 -0
  289. package/folder/useCases/GetFolderHierarchy/index.js.map +1 -0
  290. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.d.ts +4 -0
  291. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js +7 -0
  292. package/folder/useCases/ListFolderLevelPermissionsTargets/IListAdminUsersGateway.js.map +1 -0
  293. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.d.ts +4 -0
  294. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js +7 -0
  295. package/folder/useCases/ListFolderLevelPermissionsTargets/IListFolderLevelPermissionsTargets.js.map +1 -0
  296. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.d.ts +4 -0
  297. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js +7 -0
  298. package/folder/useCases/ListFolderLevelPermissionsTargets/IListTeamsGateway.js.map +1 -0
  299. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.d.ts +7 -0
  300. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js +23 -0
  301. package/folder/useCases/ListFolderLevelPermissionsTargets/ListAdminUsersGatewayFromContext.js.map +1 -0
  302. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.d.ts +13 -0
  303. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js +60 -0
  304. package/folder/useCases/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargets.js.map +1 -0
  305. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.d.ts +7 -0
  306. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js +22 -0
  307. package/folder/useCases/ListFolderLevelPermissionsTargets/ListTeamsGatewayFromContext.js.map +1 -0
  308. package/folder/useCases/ListFolderLevelPermissionsTargets/index.d.ts +9 -0
  309. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js +20 -0
  310. package/folder/useCases/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  311. package/folder/useCases/ListFolders/IListFolders.d.ts +5 -0
  312. package/folder/useCases/ListFolders/IListFolders.js +7 -0
  313. package/folder/useCases/ListFolders/IListFolders.js.map +1 -0
  314. package/folder/useCases/ListFolders/ListFolders.d.ts +8 -0
  315. package/folder/useCases/ListFolders/ListFolders.js +17 -0
  316. package/folder/useCases/ListFolders/ListFolders.js.map +1 -0
  317. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +14 -0
  318. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js +67 -0
  319. package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  320. package/folder/useCases/ListFolders/index.d.ts +13 -0
  321. package/folder/useCases/ListFolders/index.js +19 -0
  322. package/folder/useCases/ListFolders/index.js.map +1 -0
  323. package/folder/useCases/UpdateFolder/IUpdateFolder.d.ts +4 -0
  324. package/folder/useCases/UpdateFolder/IUpdateFolder.js +7 -0
  325. package/folder/useCases/UpdateFolder/IUpdateFolder.js.map +1 -0
  326. package/folder/useCases/UpdateFolder/UpdateFolder.d.ts +7 -0
  327. package/folder/useCases/UpdateFolder/UpdateFolder.js +20 -0
  328. package/folder/useCases/UpdateFolder/UpdateFolder.js.map +1 -0
  329. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.d.ts +10 -0
  330. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js +38 -0
  331. package/folder/useCases/UpdateFolder/UpdateFolderWithEvents.js.map +1 -0
  332. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +25 -0
  333. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +78 -0
  334. package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  335. package/folder/useCases/UpdateFolder/index.d.ts +18 -0
  336. package/folder/useCases/UpdateFolder/index.js +20 -0
  337. package/folder/useCases/UpdateFolder/index.js.map +1 -0
  338. package/folder/useCases/index.d.ts +8 -0
  339. package/folder/useCases/index.js +95 -0
  340. package/folder/useCases/index.js.map +1 -0
  341. package/index.d.ts +3 -1
  342. package/index.js +3 -2
  343. package/index.js.map +1 -1
  344. package/package.json +28 -26
  345. package/record/record.crud.js +10 -10
  346. package/record/record.crud.js.map +1 -1
  347. package/record/record.so.js +2 -1
  348. package/record/record.so.js.map +1 -1
  349. package/types.d.ts +17 -8
  350. package/types.js +12 -0
  351. package/types.js.map +1 -1
  352. package/utils/decorators/CmsEntriesCrudDecorators.js +41 -65
  353. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  354. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  355. package/utils/decorators/FilterEntriesByFolderFactory.js +30 -0
  356. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  357. package/utils/decorators/ListEntriesFactory.d.ts +15 -0
  358. package/utils/decorators/ListEntriesFactory.js +107 -0
  359. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  360. package/utils/decorators/decorateIfModelAuthorizationEnabled.js +7 -0
  361. package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
  362. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  363. package/utils/decorators/hasRootFolderId.js +27 -0
  364. package/utils/decorators/hasRootFolderId.js.map +1 -0
  365. package/utils/pickEntryFieldValues.js +1 -1
  366. package/utils/pickEntryFieldValues.js.map +1 -1
  367. package/utils/FolderLevelPermissions.d.ts +0 -75
  368. package/utils/FolderLevelPermissions.js +0 -390
  369. package/utils/FolderLevelPermissions.js.map +0 -1
  370. package/utils/decorators/constants.d.ts +0 -1
  371. package/utils/decorators/constants.js +0 -9
  372. package/utils/decorators/constants.js.map +0 -1
  373. package/utils/decorators/createFolderType.d.ts +0 -2
  374. package/utils/decorators/createFolderType.js +0 -18
  375. package/utils/decorators/createFolderType.js.map +0 -1
  376. package/utils/decorators/filterEntriesByFolderFactory.d.ts +0 -6
  377. package/utils/decorators/filterEntriesByFolderFactory.js +0 -37
  378. package/utils/decorators/filterEntriesByFolderFactory.js.map +0 -1
  379. package/utils/decorators/where.d.ts +0 -15
  380. package/utils/decorators/where.js +0 -60
  381. package/utils/decorators/where.js.map +0 -1
  382. package/utils/getFolderAndItsAncestors.d.ts +0 -7
  383. package/utils/getFolderAndItsAncestors.js +0 -53
  384. package/utils/getFolderAndItsAncestors.js.map +0 -1
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CmsEntriesCrudDecorators = void 0;
7
- var _where = require("./where");
8
- var _constants = require("./constants");
9
- var _filterEntriesByFolderFactory = require("./filterEntriesByFolderFactory");
10
- var _createFolderType = require("./createFolderType");
7
+ var _constants = require("../../constants");
8
+ var _ListEntriesFactory = require("./ListEntriesFactory");
9
+ var _FilterEntriesByFolderFactory = require("./FilterEntriesByFolderFactory");
11
10
  var _decorateIfModelAuthorizationEnabled = require("./decorateIfModelAuthorizationEnabled");
12
11
  class CmsEntriesCrudDecorators {
13
12
  constructor({
@@ -18,61 +17,38 @@ class CmsEntriesCrudDecorators {
18
17
  decorate() {
19
18
  const context = this.context;
20
19
  const folderLevelPermissions = context.aco.folderLevelPermissions;
21
- const filterEntriesByFolder = (0, _filterEntriesByFolderFactory.filterEntriesByFolderFactory)(context, folderLevelPermissions);
20
+ const filterEntriesByFolder = new _FilterEntriesByFolderFactory.FilterEntriesByFolderFactory(folderLevelPermissions);
21
+ const listEntriesHandler = new _ListEntriesFactory.ListEntriesFactory(folderLevelPermissions);
22
22
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "listEntries", async (...allParams) => {
23
- const [decoratee, model, params] = allParams;
24
- const folderType = (0, _createFolderType.createFolderType)(model);
25
- const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);
26
- const where = (0, _where.createWhere)({
23
+ const [decoratee, model, initialParams] = allParams;
24
+ return await listEntriesHandler.execute({
25
+ decoratee,
27
26
  model,
28
- where: params.where,
29
- folders
30
- });
31
- return decoratee(model, {
32
- ...params,
33
- where
27
+ initialParams
34
28
  });
35
29
  });
36
30
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "listLatestEntries", async (...allParams) => {
37
- const [decoratee, model, params] = allParams;
38
- const folderType = (0, _createFolderType.createFolderType)(model);
39
- const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);
40
- const where = (0, _where.createWhere)({
31
+ const [decoratee, model, initialParams] = allParams;
32
+ return await listEntriesHandler.execute({
33
+ decoratee,
41
34
  model,
42
- where: params?.where || {},
43
- folders
44
- });
45
- return decoratee(model, {
46
- ...params,
47
- where
35
+ initialParams
48
36
  });
49
37
  });
50
38
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "listPublishedEntries", async (...allParams) => {
51
- const [decoratee, model, params] = allParams;
52
- const folderType = (0, _createFolderType.createFolderType)(model);
53
- const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);
54
- const where = (0, _where.createWhere)({
39
+ const [decoratee, model, initialParams] = allParams;
40
+ return await listEntriesHandler.execute({
41
+ decoratee,
55
42
  model,
56
- where: params?.where || {},
57
- folders
58
- });
59
- return decoratee(model, {
60
- ...params,
61
- where
43
+ initialParams
62
44
  });
63
45
  });
64
46
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "listDeletedEntries", async (...allParams) => {
65
- const [decoratee, model, params] = allParams;
66
- const folderType = (0, _createFolderType.createFolderType)(model);
67
- const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);
68
- const where = (0, _where.createWhere)({
47
+ const [decoratee, model, initialParams] = allParams;
48
+ return await listEntriesHandler.execute({
49
+ decoratee,
69
50
  model,
70
- where: params?.where || {},
71
- folders
72
- });
73
- return decoratee(model, {
74
- ...params,
75
- where
51
+ initialParams
76
52
  });
77
53
  });
78
54
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "getEntry", async (...allParams) => {
@@ -82,9 +58,9 @@ class CmsEntriesCrudDecorators {
82
58
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
83
59
  return entry;
84
60
  }
85
- const folder = await context.aco.folder.get(folderId);
61
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
86
62
  await folderLevelPermissions.ensureCanAccessFolderContent({
87
- folder,
63
+ permissions,
88
64
  rwd: "r"
89
65
  });
90
66
  return entry;
@@ -96,9 +72,9 @@ class CmsEntriesCrudDecorators {
96
72
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
97
73
  return entry;
98
74
  }
99
- const folder = await context.aco.folder.get(folderId);
75
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
100
76
  await folderLevelPermissions.ensureCanAccessFolderContent({
101
- folder,
77
+ permissions,
102
78
  rwd: "r"
103
79
  });
104
80
  return entry;
@@ -106,12 +82,12 @@ class CmsEntriesCrudDecorators {
106
82
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "getLatestEntriesByIds", async (...allParams) => {
107
83
  const [decoratee, model, ids] = allParams;
108
84
  const entries = await decoratee(model, ids);
109
- return filterEntriesByFolder(model, entries);
85
+ return filterEntriesByFolder.execute(entries);
110
86
  });
111
87
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "getPublishedEntriesByIds", async (...allParams) => {
112
88
  const [decoratee, model, ids] = allParams;
113
89
  const entries = await decoratee(model, ids);
114
- return filterEntriesByFolder(model, entries);
90
+ return filterEntriesByFolder.execute(entries);
115
91
  });
116
92
  (0, _decorateIfModelAuthorizationEnabled.decorateIfModelAuthorizationEnabled)(context.cms, "createEntry", async (...allParams) => {
117
93
  const [decoratee, model, params, options] = allParams;
@@ -119,9 +95,9 @@ class CmsEntriesCrudDecorators {
119
95
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
120
96
  return decoratee(model, params, options);
121
97
  }
122
- const folder = await context.aco.folder.get(folderId);
98
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
123
99
  await folderLevelPermissions.ensureCanAccessFolderContent({
124
- folder,
100
+ permissions,
125
101
  rwd: "w"
126
102
  });
127
103
  return decoratee(model, params, options);
@@ -135,9 +111,9 @@ class CmsEntriesCrudDecorators {
135
111
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
136
112
  return decoratee(model, id, input, options);
137
113
  }
138
- const folder = await context.aco.folder.get(folderId);
114
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
139
115
  await folderLevelPermissions.ensureCanAccessFolderContent({
140
- folder,
116
+ permissions,
141
117
  rwd: "w"
142
118
  });
143
119
  return decoratee(model, id, input, options);
@@ -151,9 +127,9 @@ class CmsEntriesCrudDecorators {
151
127
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
152
128
  return decoratee(model, id, input, meta, options);
153
129
  }
154
- const folder = await context.aco.folder.get(folderId);
130
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
155
131
  await folderLevelPermissions.ensureCanAccessFolderContent({
156
- folder,
132
+ permissions,
157
133
  rwd: "w"
158
134
  });
159
135
  return decoratee(model, id, input, meta, options);
@@ -167,9 +143,9 @@ class CmsEntriesCrudDecorators {
167
143
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
168
144
  return decoratee(model, id, options);
169
145
  }
170
- const folder = await context.aco.folder.get(folderId);
146
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
171
147
  await folderLevelPermissions.ensureCanAccessFolderContent({
172
- folder,
148
+ permissions,
173
149
  rwd: "d"
174
150
  });
175
151
  return decoratee(model, id, options);
@@ -183,9 +159,9 @@ class CmsEntriesCrudDecorators {
183
159
  if (!folderId || folderId === _constants.ROOT_FOLDER) {
184
160
  return decoratee(model, id);
185
161
  }
186
- const folder = await context.aco.folder.get(folderId);
162
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
187
163
  await folderLevelPermissions.ensureCanAccessFolderContent({
188
- folder,
164
+ permissions,
189
165
  rwd: "d"
190
166
  });
191
167
  return decoratee(model, id);
@@ -209,9 +185,9 @@ class CmsEntriesCrudDecorators {
209
185
  /**
210
186
  * If entry current folder is not a root, check for access
211
187
  */
212
- const folder = await context.aco.folder.get(folderId);
188
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
213
189
  await folderLevelPermissions.ensureCanAccessFolderContent({
214
- folder,
190
+ permissions,
215
191
  rwd: "w"
216
192
  });
217
193
  }
@@ -219,9 +195,9 @@ class CmsEntriesCrudDecorators {
219
195
  * If target folder is not a ROOT_FOLDER, check for access.
220
196
  */
221
197
  if (targetFolderId !== _constants.ROOT_FOLDER) {
222
- const folder = await context.aco.folder.get(targetFolderId);
198
+ const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);
223
199
  await folderLevelPermissions.ensureCanAccessFolderContent({
224
- folder,
200
+ permissions,
225
201
  rwd: "w"
226
202
  });
227
203
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_where","require","_constants","_filterEntriesByFolderFactory","_createFolderType","_decorateIfModelAuthorizationEnabled","CmsEntriesCrudDecorators","constructor","context","decorate","folderLevelPermissions","aco","filterEntriesByFolder","filterEntriesByFolderFactory","decorateIfModelAuthorizationEnabled","cms","allParams","decoratee","model","params","folderType","createFolderType","folders","listAllFoldersWithPermissions","where","createWhere","entry","folderId","location","ROOT_FOLDER","folder","get","ensureCanAccessFolderContent","rwd","ids","entries","options","wbyAco_location","id","input","storageOperations","getRevisionById","meta","getLatestRevisionByEntryId","targetFolderId","exports"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\nimport { createWhere } from \"./where\";\nimport { ROOT_FOLDER } from \"./constants\";\nimport { filterEntriesByFolderFactory } from \"./filterEntriesByFolderFactory\";\nimport { createFolderType } from \"./createFolderType\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled\";\n\ntype Context = Pick<AcoContext, \"aco\" | \"cms\">;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.aco.folderLevelPermissions;\n\n const filterEntriesByFolder = filterEntriesByFolderFactory(context, folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context.cms, \"listEntries\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const folderType = createFolderType(model);\n const folders = await folderLevelPermissions.listAllFoldersWithPermissions(folderType);\n\n const where = createWhere({\n model,\n where: params.where,\n folders\n });\n return decoratee(model, {\n ...params,\n where\n });\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listLatestEntries\",\n async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const folderType = createFolderType(model);\n const folders = await folderLevelPermissions.listAllFoldersWithPermissions(\n folderType\n );\n\n const where = createWhere({\n model,\n where: params?.where || {},\n folders\n });\n return decoratee(model, {\n ...params,\n where\n });\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const folderType = createFolderType(model);\n const folders = await folderLevelPermissions.listAllFoldersWithPermissions(\n folderType\n );\n\n const where = createWhere({\n model,\n where: params?.where || {},\n folders\n });\n return decoratee(model, {\n ...params,\n where\n });\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listDeletedEntries\",\n async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const folderType = createFolderType(model);\n const folders = await folderLevelPermissions.listAllFoldersWithPermissions(\n folderType\n );\n\n const where = createWhere({\n model,\n where: params?.where || {},\n folders\n });\n return decoratee(model, {\n ...params,\n where\n });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context.cms, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder(model, entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder(model, entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context.cms, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(\n model,\n {\n id\n }\n );\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId || ROOT_FOLDER;\n /**\n * If the entry is in the same folder we are trying to move it to, just continue.\n */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const folder = await context.aco.folder.get(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const folder = await context.aco.folder.get(targetFolderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n folder,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_ListEntriesFactory","_FilterEntriesByFolderFactory","_decorateIfModelAuthorizationEnabled","CmsEntriesCrudDecorators","constructor","context","decorate","folderLevelPermissions","aco","filterEntriesByFolder","FilterEntriesByFolderFactory","listEntriesHandler","ListEntriesFactory","decorateIfModelAuthorizationEnabled","cms","allParams","decoratee","model","initialParams","execute","params","entry","folderId","location","ROOT_FOLDER","permissions","getFolderLevelPermissions","ensureCanAccessFolderContent","rwd","ids","entries","options","wbyAco_location","id","input","storageOperations","getRevisionById","meta","getLatestRevisionByEntryId","targetFolderId","exports"],"sources":["CmsEntriesCrudDecorators.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { ListEntriesFactory } from \"./ListEntriesFactory\";\nimport { FilterEntriesByFolderFactory } from \"./FilterEntriesByFolderFactory\";\nimport { decorateIfModelAuthorizationEnabled } from \"./decorateIfModelAuthorizationEnabled\";\n\ntype Context = Pick<AcoContext, \"aco\" | \"cms\">;\n\ninterface EntryManagerCrudDecoratorsParams {\n context: Context;\n}\n\nexport class CmsEntriesCrudDecorators {\n private readonly context: Context;\n\n public constructor({ context }: EntryManagerCrudDecoratorsParams) {\n this.context = context;\n }\n\n public decorate() {\n const context = this.context;\n const folderLevelPermissions = context.aco.folderLevelPermissions;\n\n const filterEntriesByFolder = new FilterEntriesByFolderFactory(folderLevelPermissions);\n const listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);\n\n decorateIfModelAuthorizationEnabled(context.cms, \"listEntries\", async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listLatestEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listPublishedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"listDeletedEntries\",\n async (...allParams) => {\n const [decoratee, model, initialParams] = allParams;\n return await listEntriesHandler.execute({ decoratee, model, initialParams });\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"getEntry\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(context.cms, \"getEntryById\", async (...allParams) => {\n const [decoratee, model, params] = allParams;\n const entry = await decoratee(model, params);\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return entry;\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"getLatestEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"getPublishedEntriesByIds\",\n async (...allParams) => {\n const [decoratee, model, ids] = allParams;\n\n const entries = await decoratee(model, ids);\n return filterEntriesByFolder.execute(entries);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"createEntry\", async (...allParams) => {\n const [decoratee, model, params, options] = allParams;\n const folderId = params.wbyAco_location?.folderId || params.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, params, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, params, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"createEntryRevisionFrom\",\n async (...allParams) => {\n const [decoratee, model, id, input, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(\n folderId\n );\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, options);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"updateEntry\", async (...allParams) => {\n const [decoratee, model, id, input, meta, options] = allParams;\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, input, meta, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n return decoratee(model, id, input, meta, options);\n });\n\n decorateIfModelAuthorizationEnabled(context.cms, \"deleteEntry\", async (...allParams) => {\n const [decoratee, model, id, options] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getLatestRevisionByEntryId(\n model,\n {\n id\n }\n );\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id, options);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(folderId);\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id, options);\n });\n\n decorateIfModelAuthorizationEnabled(\n context.cms,\n \"deleteEntryRevision\",\n async (...allParams) => {\n const [decoratee, model, id] = allParams;\n\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return decoratee(model, id);\n }\n\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(\n folderId\n );\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n return decoratee(model, id);\n }\n );\n\n decorateIfModelAuthorizationEnabled(context.cms, \"moveEntry\", async (...allParams) => {\n const [decoratee, model, id, targetFolderId] = allParams;\n\n /**\n * First we need to check if user has access to the entries existing folder.\n */\n const entry = await context.cms.storageOperations.entries.getRevisionById(model, {\n id\n });\n\n const folderId = entry?.location?.folderId || ROOT_FOLDER;\n /**\n * If the entry is in the same folder we are trying to move it to, just continue.\n */\n if (folderId === targetFolderId) {\n return decoratee(model, id, targetFolderId);\n } else if (folderId !== ROOT_FOLDER) {\n /**\n * If entry current folder is not a root, check for access\n */\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(\n folderId\n );\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n /**\n * If target folder is not a ROOT_FOLDER, check for access.\n */\n if (targetFolderId !== ROOT_FOLDER) {\n const permissions = await folderLevelPermissions.getFolderLevelPermissions(\n folderId\n );\n await folderLevelPermissions.ensureCanAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n }\n\n return decoratee(model, id, targetFolderId);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { FolderLevelPermissions } from "../../flp";
2
+ import { CmsEntry } from "@webiny/api-headless-cms/types";
3
+ export declare class FilterEntriesByFolderFactory {
4
+ private readonly folderLevelPermissions;
5
+ constructor(folderLevelPermissions: FolderLevelPermissions);
6
+ execute(entries: CmsEntry[]): Promise<CmsEntry[]>;
7
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FilterEntriesByFolderFactory = void 0;
7
+ var _constants = require("../../constants");
8
+ class FilterEntriesByFolderFactory {
9
+ constructor(folderLevelPermissions) {
10
+ this.folderLevelPermissions = folderLevelPermissions;
11
+ }
12
+ async execute(entries) {
13
+ const results = await Promise.all(entries.map(async entry => {
14
+ const folderId = entry.location?.folderId;
15
+ if (!folderId || folderId === _constants.ROOT_FOLDER) {
16
+ return entry;
17
+ }
18
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
19
+ const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
20
+ permissions,
21
+ rwd: "r"
22
+ });
23
+ return canAccessFolderContent ? entry : null;
24
+ }));
25
+ return results.filter(entry => !!entry);
26
+ }
27
+ }
28
+ exports.FilterEntriesByFolderFactory = FilterEntriesByFolderFactory;
29
+
30
+ //# sourceMappingURL=FilterEntriesByFolderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","FilterEntriesByFolderFactory","constructor","folderLevelPermissions","execute","entries","results","Promise","all","map","entry","folderId","location","ROOT_FOLDER","permissions","getFolderLevelPermissions","canAccessFolderContent","rwd","filter","exports"],"sources":["FilterEntriesByFolderFactory.ts"],"sourcesContent":["import { FolderLevelPermissions } from \"~/flp\";\nimport { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport class FilterEntriesByFolderFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions;\n\n constructor(folderLevelPermissions: FolderLevelPermissions) {\n this.folderLevelPermissions = folderLevelPermissions;\n }\n\n public async execute(entries: CmsEntry[]): Promise<CmsEntry[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n folderId\n );\n const canAccessFolderContent =\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccessFolderContent ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry => !!entry);\n }\n}\n"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,CAAC;EAGtCC,WAAWA,CAACC,sBAA8C,EAAE;IACxD,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;EACxD;EAEA,MAAaC,OAAOA,CAACC,OAAmB,EAAuB;IAC3D,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BH,OAAO,CAACI,GAAG,CAAC,MAAMC,KAAK,IAAI;MACvB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,QAAQ,EAAED,QAAQ;MACzC,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKE,sBAAW,EAAE;QACvC,OAAOH,KAAK;MAChB;MAEA,MAAMI,WAAW,GAAG,MAAM,IAAI,CAACX,sBAAsB,CAACY,yBAAyB,CAC3EJ,QACJ,CAAC;MACD,MAAMK,sBAAsB,GACxB,MAAM,IAAI,CAACb,sBAAsB,CAACa,sBAAsB,CAAC;QACrDF,WAAW;QACXG,GAAG,EAAE;MACT,CAAC,CAAC;MACN,OAAOD,sBAAsB,GAAGN,KAAK,GAAG,IAAI;IAChD,CAAC,CACL,CAAC;IAED,OAAOJ,OAAO,CAACY,MAAM,CAAER,KAAK,IAAwB,CAAC,CAACA,KAAK,CAAC;EAChE;AACJ;AAACS,OAAA,CAAAlB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { FolderLevelPermissions } from "../../flp";
2
+ import { CmsEntry, CmsEntryListParams, CmsEntryMeta, CmsEntryValues, type CmsModel } from "@webiny/api-headless-cms/types";
3
+ interface ListEntriesFactoryCallbackParams {
4
+ decoratee: <T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
5
+ model: CmsModel;
6
+ initialParams?: CmsEntryListParams;
7
+ }
8
+ export declare class ListEntriesFactory {
9
+ private readonly folderLevelPermissions;
10
+ private readonly permissionsCache;
11
+ constructor(folderLevelPermissions: FolderLevelPermissions);
12
+ execute({ decoratee, model, initialParams }: ListEntriesFactoryCallbackParams): Promise<[CmsEntry[], CmsEntryMeta]>;
13
+ private getPermissions;
14
+ }
15
+ export {};
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ListEntriesFactory = void 0;
7
+ var _hasRootFolderId = require("./hasRootFolderId");
8
+ class ListEntriesFactory {
9
+ constructor(folderLevelPermissions) {
10
+ this.folderLevelPermissions = folderLevelPermissions;
11
+ this.permissionsCache = new Map();
12
+ }
13
+ async execute({
14
+ decoratee,
15
+ model,
16
+ initialParams = {}
17
+ }) {
18
+ const limit = initialParams?.limit || 50;
19
+ const where = initialParams?.where;
20
+ const params = {
21
+ ...initialParams,
22
+ limit
23
+ };
24
+ const hasRootFolder = (0, _hasRootFolderId.hasRootFolderId)({
25
+ model,
26
+ where
27
+ });
28
+
29
+ // If we're querying the root folder, skip permission checks
30
+ if (hasRootFolder) {
31
+ return await decoratee(model, params);
32
+ }
33
+ const resultEntries = [];
34
+ let totalCount = 0;
35
+ let hasMoreItems = true;
36
+ let cursor = null;
37
+ let fetchedAll = false;
38
+ let afterCursor = params.after;
39
+
40
+ // Process entries in batches until we have enough results or reach the end
41
+ while (!fetchedAll) {
42
+ const queryParams = {
43
+ ...params,
44
+ after: afterCursor
45
+ };
46
+ const [entries, currentMeta] = await decoratee(model, queryParams);
47
+ if (totalCount === 0) {
48
+ totalCount = currentMeta.totalCount;
49
+ }
50
+
51
+ // Process each entry and check folder permissions
52
+ for (const entry of entries) {
53
+ const folderId = entry.values?.location?.folderId || entry.location?.folderId;
54
+
55
+ // If entry has no folderId, it's not using ACO folders system
56
+ // Include it in results as it's not subject to folder permissions
57
+ if (!folderId) {
58
+ resultEntries.push(entry);
59
+ continue;
60
+ }
61
+ const permissions = await this.getPermissions(folderId);
62
+
63
+ // If no FLP exists for the folder, the entry is accessible
64
+ // This means the folder doesn't have any permission restrictions
65
+ if (!permissions.length) {
66
+ resultEntries.push(entry);
67
+ continue;
68
+ }
69
+
70
+ // Check if user has read permission for the folder
71
+ if (await this.folderLevelPermissions.canAccessFolderContent({
72
+ permissions,
73
+ rwd: "r"
74
+ })) {
75
+ resultEntries.push(entry);
76
+ } else {
77
+ totalCount--;
78
+ }
79
+ }
80
+
81
+ // Determine if we need to fetch more entries
82
+ if (!currentMeta.hasMoreItems || resultEntries.length >= limit) {
83
+ fetchedAll = true;
84
+ hasMoreItems = currentMeta.hasMoreItems;
85
+ cursor = currentMeta.cursor;
86
+ } else {
87
+ afterCursor = currentMeta.cursor;
88
+ }
89
+ }
90
+ return [resultEntries, {
91
+ totalCount,
92
+ hasMoreItems,
93
+ cursor
94
+ }];
95
+ }
96
+ async getPermissions(folderId) {
97
+ if (this.permissionsCache.has(folderId)) {
98
+ return this.permissionsCache.get(folderId) ?? [];
99
+ }
100
+ const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
101
+ this.permissionsCache.set(folderId, permissions);
102
+ return permissions;
103
+ }
104
+ }
105
+ exports.ListEntriesFactory = ListEntriesFactory;
106
+
107
+ //# sourceMappingURL=ListEntriesFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hasRootFolderId","require","ListEntriesFactory","constructor","folderLevelPermissions","permissionsCache","Map","execute","decoratee","model","initialParams","limit","where","params","hasRootFolder","hasRootFolderId","resultEntries","totalCount","hasMoreItems","cursor","fetchedAll","afterCursor","after","queryParams","entries","currentMeta","entry","folderId","values","location","push","permissions","getPermissions","length","canAccessFolderContent","rwd","has","get","getFolderLevelPermissions","set","exports"],"sources":["ListEntriesFactory.ts"],"sourcesContent":["import { FolderLevelPermissions } from \"~/flp\";\nimport {\n CmsEntry,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsEntryValues,\n type CmsModel\n} from \"@webiny/api-headless-cms/types\";\nimport { hasRootFolderId } from \"~/utils/decorators/hasRootFolderId\";\nimport type { FolderPermission } from \"~/flp/flp.types\";\n\ninterface ListEntriesFactoryCallbackParams {\n decoratee: <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryListParams\n ) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;\n model: CmsModel;\n initialParams?: CmsEntryListParams;\n}\n\nexport class ListEntriesFactory {\n private readonly folderLevelPermissions: FolderLevelPermissions;\n private readonly permissionsCache: Map<string, FolderPermission[]>;\n\n constructor(folderLevelPermissions: FolderLevelPermissions) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.permissionsCache = new Map();\n }\n\n public async execute({\n decoratee,\n model,\n initialParams = {}\n }: ListEntriesFactoryCallbackParams): Promise<[CmsEntry[], CmsEntryMeta]> {\n const limit = initialParams?.limit || 50;\n const where = initialParams?.where;\n const params = { ...initialParams, limit };\n const hasRootFolder = hasRootFolderId({ model, where });\n\n // If we're querying the root folder, skip permission checks\n if (hasRootFolder) {\n return await decoratee(model, params);\n }\n\n const resultEntries: CmsEntry[] = [];\n let totalCount = 0;\n let hasMoreItems = true;\n let cursor: string | null = null;\n let fetchedAll = false;\n let afterCursor = params.after;\n\n // Process entries in batches until we have enough results or reach the end\n while (!fetchedAll) {\n const queryParams: CmsEntryListParams = { ...params, after: afterCursor };\n const [entries, currentMeta] = await decoratee(model, queryParams);\n\n if (totalCount === 0) {\n totalCount = currentMeta.totalCount;\n }\n\n // Process each entry and check folder permissions\n for (const entry of entries) {\n const folderId = entry.values?.location?.folderId || entry.location?.folderId;\n\n // If entry has no folderId, it's not using ACO folders system\n // Include it in results as it's not subject to folder permissions\n if (!folderId) {\n resultEntries.push(entry);\n continue;\n }\n\n const permissions = await this.getPermissions(folderId);\n\n // If no FLP exists for the folder, the entry is accessible\n // This means the folder doesn't have any permission restrictions\n if (!permissions.length) {\n resultEntries.push(entry);\n continue;\n }\n\n // Check if user has read permission for the folder\n if (\n await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n })\n ) {\n resultEntries.push(entry);\n } else {\n totalCount--;\n }\n }\n\n // Determine if we need to fetch more entries\n if (!currentMeta.hasMoreItems || resultEntries.length >= limit) {\n fetchedAll = true;\n hasMoreItems = currentMeta.hasMoreItems;\n cursor = currentMeta.cursor;\n } else {\n afterCursor = currentMeta.cursor;\n }\n }\n\n return [resultEntries, { totalCount, hasMoreItems, cursor } as CmsEntryMeta];\n }\n\n private async getPermissions(folderId: string): Promise<FolderPermission[]> {\n if (this.permissionsCache.has(folderId)) {\n return this.permissionsCache.get(folderId) ?? [];\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n this.permissionsCache.set(folderId, permissions);\n return permissions;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.decorateIfModelAuthorizationEnabled = void 0;
7
+ var _folder = require("../../folder/folder.model");
7
8
  /**
8
9
  * This type matches any function that has a CmsModel as the first parameter.
9
10
  */
@@ -28,6 +29,9 @@ const modelAuthorizationDisabled = model => {
28
29
  }
29
30
  return model.authorization === false;
30
31
  };
32
+ const isFolderModel = model => {
33
+ return model.modelId === _folder.FOLDER_MODEL_ID;
34
+ };
31
35
  const decorateIfModelAuthorizationEnabled = (root, method, decorator) => {
32
36
  /**
33
37
  * We cast to `ModelCallable` because within the generic function, we only know that the first
@@ -36,6 +40,9 @@ const decorateIfModelAuthorizationEnabled = (root, method, decorator) => {
36
40
  const decoratee = root[method].bind(root);
37
41
  root[method] = (...params) => {
38
42
  const [model, ...rest] = params;
43
+ if (isFolderModel(model)) {
44
+ return decoratee(model, ...rest);
45
+ }
39
46
  if (modelAuthorizationDisabled(model)) {
40
47
  return decoratee(model, ...rest);
41
48
  }
@@ -1 +1 @@
1
- {"version":3,"names":["modelAuthorizationDisabled","model","authorization","flp","decorateIfModelAuthorizationEnabled","root","method","decorator","decoratee","bind","params","rest","exports"],"sources":["decorateIfModelAuthorizationEnabled.ts"],"sourcesContent":["import { CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\n\n/**\n * This type matches any function that has a CmsModel as the first parameter.\n */\ntype ModelCallable = (model: CmsModel, ...params: any[]) => any;\n\n/**\n * This type filters only `ModelCallable` methods.\n */\ntype FilterModelMethods<T> = {\n [K in keyof T as ModelCallable extends T[K] ? K : never]: T[K];\n};\n\n/**\n * This type omits methods that have a more complex `model` type.\n * E.g., `getEntryManager` has `model` typed as `CmsModel | string`.\n * Ideally, we would filter those out in the previous utility type, but I'm not sure how to achieve that.\n */\ntype ModelMethods<T> = Omit<FilterModelMethods<T>, \"getEntryManager\" | \"getSingletonEntryManager\">;\n\n/**\n * Decorator takes the decoratee as the _first_ parameter, and then forwards the rest of the parameters.\n */\ntype Decorator<T extends ModelCallable> = (decoratee: T, ...args: Parameters<T>) => ReturnType<T>;\n\nconst modelAuthorizationDisabled = (model: CmsModel) => {\n if (typeof model.authorization === \"object\") {\n return model?.authorization?.flp === false;\n }\n\n return model.authorization === false;\n};\n\nexport const decorateIfModelAuthorizationEnabled = <\n /**\n * This allows us to only have an auto-complete of `ModelCallable` methods.\n */\n M extends keyof ModelMethods<HeadlessCms>,\n D extends Decorator<ModelMethods<HeadlessCms>[M]>\n>(\n root: ModelMethods<HeadlessCms>,\n method: M,\n decorator: D\n) => {\n /**\n * We cast to `ModelCallable` because within the generic function, we only know that the first\n * parameter is a `CmsModel`, and we forward the rest.\n */\n const decoratee = root[method].bind(root) as ModelCallable;\n root[method] = ((...params: Parameters<ModelMethods<HeadlessCms>[M]>) => {\n const [model, ...rest] = params;\n if (modelAuthorizationDisabled(model)) {\n return decoratee(model, ...rest);\n }\n\n return decorator(decoratee, ...params);\n }) as ModelCallable;\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMA,0BAA0B,GAAIC,KAAe,IAAK;EACpD,IAAI,OAAOA,KAAK,CAACC,aAAa,KAAK,QAAQ,EAAE;IACzC,OAAOD,KAAK,EAAEC,aAAa,EAAEC,GAAG,KAAK,KAAK;EAC9C;EAEA,OAAOF,KAAK,CAACC,aAAa,KAAK,KAAK;AACxC,CAAC;AAEM,MAAME,mCAAmC,GAAGA,CAO/CC,IAA+B,EAC/BC,MAAS,EACTC,SAAY,KACX;EACD;AACJ;AACA;AACA;EACI,MAAMC,SAAS,GAAGH,IAAI,CAACC,MAAM,CAAC,CAACG,IAAI,CAACJ,IAAI,CAAkB;EAC1DA,IAAI,CAACC,MAAM,CAAC,GAAI,CAAC,GAAGI,MAAgD,KAAK;IACrE,MAAM,CAACT,KAAK,EAAE,GAAGU,IAAI,CAAC,GAAGD,MAAM;IAC/B,IAAIV,0BAA0B,CAACC,KAAK,CAAC,EAAE;MACnC,OAAOO,SAAS,CAACP,KAAK,EAAE,GAAGU,IAAI,CAAC;IACpC;IAEA,OAAOJ,SAAS,CAACC,SAAS,EAAE,GAAGE,MAAM,CAAC;EAC1C,CAAmB;AACvB,CAAC;AAACE,OAAA,CAAAR,mCAAA,GAAAA,mCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_folder","require","modelAuthorizationDisabled","model","authorization","flp","isFolderModel","modelId","FOLDER_MODEL_ID","decorateIfModelAuthorizationEnabled","root","method","decorator","decoratee","bind","params","rest","exports"],"sources":["decorateIfModelAuthorizationEnabled.ts"],"sourcesContent":["import { CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\n/**\n * This type matches any function that has a CmsModel as the first parameter.\n */\ntype ModelCallable = (model: CmsModel, ...params: any[]) => any;\n\n/**\n * This type filters only `ModelCallable` methods.\n */\ntype FilterModelMethods<T> = {\n [K in keyof T as ModelCallable extends T[K] ? K : never]: T[K];\n};\n\n/**\n * This type omits methods that have a more complex `model` type.\n * E.g., `getEntryManager` has `model` typed as `CmsModel | string`.\n * Ideally, we would filter those out in the previous utility type, but I'm not sure how to achieve that.\n */\ntype ModelMethods<T> = Omit<FilterModelMethods<T>, \"getEntryManager\" | \"getSingletonEntryManager\">;\n\n/**\n * Decorator takes the decoratee as the _first_ parameter, and then forwards the rest of the parameters.\n */\ntype Decorator<T extends ModelCallable> = (decoratee: T, ...args: Parameters<T>) => ReturnType<T>;\n\nconst modelAuthorizationDisabled = (model: CmsModel) => {\n if (typeof model.authorization === \"object\") {\n return model?.authorization?.flp === false;\n }\n\n return model.authorization === false;\n};\n\nconst isFolderModel = (model: CmsModel) => {\n return model.modelId === FOLDER_MODEL_ID;\n};\n\nexport const decorateIfModelAuthorizationEnabled = <\n /**\n * This allows us to only have an auto-complete of `ModelCallable` methods.\n */\n M extends keyof ModelMethods<HeadlessCms>,\n D extends Decorator<ModelMethods<HeadlessCms>[M]>\n>(\n root: ModelMethods<HeadlessCms>,\n method: M,\n decorator: D\n) => {\n /**\n * We cast to `ModelCallable` because within the generic function, we only know that the first\n * parameter is a `CmsModel`, and we forward the rest.\n */\n const decoratee = root[method].bind(root) as ModelCallable;\n root[method] = ((...params: Parameters<ModelMethods<HeadlessCms>[M]>) => {\n const [model, ...rest] = params;\n if (isFolderModel(model)) {\n return decoratee(model, ...rest);\n }\n\n if (modelAuthorizationDisabled(model)) {\n return decoratee(model, ...rest);\n }\n\n return decorator(decoratee, ...params);\n }) as ModelCallable;\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMC,0BAA0B,GAAIC,KAAe,IAAK;EACpD,IAAI,OAAOA,KAAK,CAACC,aAAa,KAAK,QAAQ,EAAE;IACzC,OAAOD,KAAK,EAAEC,aAAa,EAAEC,GAAG,KAAK,KAAK;EAC9C;EAEA,OAAOF,KAAK,CAACC,aAAa,KAAK,KAAK;AACxC,CAAC;AAED,MAAME,aAAa,GAAIH,KAAe,IAAK;EACvC,OAAOA,KAAK,CAACI,OAAO,KAAKC,uBAAe;AAC5C,CAAC;AAEM,MAAMC,mCAAmC,GAAGA,CAO/CC,IAA+B,EAC/BC,MAAS,EACTC,SAAY,KACX;EACD;AACJ;AACA;AACA;EACI,MAAMC,SAAS,GAAGH,IAAI,CAACC,MAAM,CAAC,CAACG,IAAI,CAACJ,IAAI,CAAkB;EAC1DA,IAAI,CAACC,MAAM,CAAC,GAAI,CAAC,GAAGI,MAAgD,KAAK;IACrE,MAAM,CAACZ,KAAK,EAAE,GAAGa,IAAI,CAAC,GAAGD,MAAM;IAC/B,IAAIT,aAAa,CAACH,KAAK,CAAC,EAAE;MACtB,OAAOU,SAAS,CAACV,KAAK,EAAE,GAAGa,IAAI,CAAC;IACpC;IAEA,IAAId,0BAA0B,CAACC,KAAK,CAAC,EAAE;MACnC,OAAOU,SAAS,CAACV,KAAK,EAAE,GAAGa,IAAI,CAAC;IACpC;IAEA,OAAOJ,SAAS,CAACC,SAAS,EAAE,GAAGE,MAAM,CAAC;EAC1C,CAAmB;AACvB,CAAC;AAACE,OAAA,CAAAR,mCAAA,GAAAA,mCAAA","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { CmsEntryListWhere, CmsModel } from "@webiny/api-headless-cms/types";
2
+ interface Params {
3
+ model: CmsModel;
4
+ where: CmsEntryListWhere | undefined;
5
+ }
6
+ export declare const hasRootFolderId: ({ model, where }: Params) => boolean;
7
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.hasRootFolderId = void 0;
8
+ var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
9
+ var _isPageModel = require("./isPageModel");
10
+ var _constants = require("../../constants");
11
+ const hasRootFolderId = ({
12
+ model,
13
+ where
14
+ }) => {
15
+ if (!where) {
16
+ return false;
17
+ }
18
+ const key = (0, _isPageModel.isPageModel)(model) ? "location" : "wbyAco_location";
19
+ const location = where[key];
20
+ if (typeof location === "object" && location !== null && (0, _isPlainObject.default)(location)) {
21
+ return location.folderId === _constants.ROOT_FOLDER;
22
+ }
23
+ return false;
24
+ };
25
+ exports.hasRootFolderId = hasRootFolderId;
26
+
27
+ //# sourceMappingURL=hasRootFolderId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_isPlainObject","_interopRequireDefault","require","_isPageModel","_constants","hasRootFolderId","model","where","key","isPageModel","location","isPlainObject","folderId","ROOT_FOLDER","exports"],"sources":["hasRootFolderId.ts"],"sourcesContent":["import isPlainObject from \"lodash/isPlainObject\";\nimport { isPageModel } from \"~/utils/decorators/isPageModel\";\nimport { CmsEntryListWhere, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ninterface Params {\n model: CmsModel;\n where: CmsEntryListWhere | undefined;\n}\n\nexport const hasRootFolderId = ({ model, where }: Params): boolean => {\n if (!where) {\n return false;\n }\n\n const key = isPageModel(model) ? \"location\" : \"wbyAco_location\";\n const location = where[key];\n\n if (typeof location === \"object\" && location !== null && isPlainObject(location)) {\n return (location as Record<string, any>).folderId === ROOT_FOLDER;\n }\n\n return false;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAOO,MAAMG,eAAe,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAc,CAAC,KAAc;EAClE,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,KAAK;EAChB;EAEA,MAAMC,GAAG,GAAG,IAAAC,wBAAW,EAACH,KAAK,CAAC,GAAG,UAAU,GAAG,iBAAiB;EAC/D,MAAMI,QAAQ,GAAGH,KAAK,CAACC,GAAG,CAAC;EAE3B,IAAI,OAAOE,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,IAAI,IAAAC,sBAAa,EAACD,QAAQ,CAAC,EAAE;IAC9E,OAAQA,QAAQ,CAAyBE,QAAQ,KAAKC,sBAAW;EACrE;EAEA,OAAO,KAAK;AAChB,CAAC;AAACC,OAAA,CAAAT,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.baseFields = void 0;
7
7
  exports.pickEntryFieldValues = pickEntryFieldValues;
8
8
  const baseFields = exports.baseFields = [
9
9
  // Entry ID is mapped to "id" (we don't use revisions with ACO entities).
10
- "id", "createdOn", "modifiedOn", "savedOn", "createdBy", "modifiedBy", "savedBy"];
10
+ "id", "tenant", "locale", "createdOn", "modifiedOn", "savedOn", "createdBy", "modifiedBy", "savedBy"];
11
11
  const pickBaseEntryFieldValues = entry => {
12
12
  const pickedValues = {};
13
13
  for (const fieldName of baseFields) {
@@ -1 +1 @@
1
- {"version":3,"names":["baseFields","exports","pickBaseEntryFieldValues","entry","pickedValues","fieldName","srcFieldName","targetFieldName","split","Object","assign","pickEntryFieldValues","values"],"sources":["pickEntryFieldValues.ts"],"sourcesContent":["import { CmsEntry } from \"@webiny/api-headless-cms/types\";\n\nexport const baseFields = [\n // Entry ID is mapped to \"id\" (we don't use revisions with ACO entities).\n \"id\",\n\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\"\n];\n\nconst pickBaseEntryFieldValues = (entry: CmsEntry) => {\n const pickedValues: Partial<CmsEntry> = {};\n for (const fieldName of baseFields) {\n const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(\":\");\n if (srcFieldName in entry) {\n Object.assign(pickedValues, {\n [targetFieldName]: entry[srcFieldName as keyof CmsEntry]\n });\n }\n }\n\n return pickedValues;\n};\n\nexport function pickEntryFieldValues<T>(entry: CmsEntry): T {\n return {\n ...pickBaseEntryFieldValues(entry),\n ...entry.values\n } as T;\n}\n"],"mappings":";;;;;;;AAEO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;AACtB;AACA,IAAI,EAEJ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,CACZ;AAED,MAAME,wBAAwB,GAAIC,KAAe,IAAK;EAClD,MAAMC,YAA+B,GAAG,CAAC,CAAC;EAC1C,KAAK,MAAMC,SAAS,IAAIL,UAAU,EAAE;IAChC,MAAM,CAACM,YAAY,EAAEC,eAAe,GAAGD,YAAY,CAAC,GAAGD,SAAS,CAACG,KAAK,CAAC,GAAG,CAAC;IAC3E,IAAIF,YAAY,IAAIH,KAAK,EAAE;MACvBM,MAAM,CAACC,MAAM,CAACN,YAAY,EAAE;QACxB,CAACG,eAAe,GAAGJ,KAAK,CAACG,YAAY;MACzC,CAAC,CAAC;IACN;EACJ;EAEA,OAAOF,YAAY;AACvB,CAAC;AAEM,SAASO,oBAAoBA,CAAIR,KAAe,EAAK;EACxD,OAAO;IACH,GAAGD,wBAAwB,CAACC,KAAK,CAAC;IAClC,GAAGA,KAAK,CAACS;EACb,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["baseFields","exports","pickBaseEntryFieldValues","entry","pickedValues","fieldName","srcFieldName","targetFieldName","split","Object","assign","pickEntryFieldValues","values"],"sources":["pickEntryFieldValues.ts"],"sourcesContent":["import { CmsEntry } from \"@webiny/api-headless-cms/types\";\n\nexport const baseFields = [\n // Entry ID is mapped to \"id\" (we don't use revisions with ACO entities).\n \"id\",\n \"tenant\",\n \"locale\",\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\"\n];\n\nconst pickBaseEntryFieldValues = (entry: CmsEntry) => {\n const pickedValues: Partial<CmsEntry> = {};\n for (const fieldName of baseFields) {\n const [srcFieldName, targetFieldName = srcFieldName] = fieldName.split(\":\");\n if (srcFieldName in entry) {\n Object.assign(pickedValues, {\n [targetFieldName]: entry[srcFieldName as keyof CmsEntry]\n });\n }\n }\n\n return pickedValues;\n};\n\nexport function pickEntryFieldValues<T>(entry: CmsEntry): T {\n return {\n ...pickBaseEntryFieldValues(entry),\n ...entry.values\n } as T;\n}\n"],"mappings":";;;;;;;AAEO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;AACtB;AACA,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,CACZ;AAED,MAAME,wBAAwB,GAAIC,KAAe,IAAK;EAClD,MAAMC,YAA+B,GAAG,CAAC,CAAC;EAC1C,KAAK,MAAMC,SAAS,IAAIL,UAAU,EAAE;IAChC,MAAM,CAACM,YAAY,EAAEC,eAAe,GAAGD,YAAY,CAAC,GAAGD,SAAS,CAACG,KAAK,CAAC,GAAG,CAAC;IAC3E,IAAIF,YAAY,IAAIH,KAAK,EAAE;MACvBM,MAAM,CAACC,MAAM,CAACN,YAAY,EAAE;QACxB,CAACG,eAAe,GAAGJ,KAAK,CAACG,YAAY;MACzC,CAAC,CAAC;IACN;EACJ;EAEA,OAAOF,YAAY;AACvB,CAAC;AAEM,SAASO,oBAAoBA,CAAIR,KAAe,EAAK;EACxD,OAAO;IACH,GAAGD,wBAAwB,CAACC,KAAK,CAAC;IAClC,GAAGA,KAAK,CAACS;EACb,CAAC;AACL","ignoreList":[]}