@webiny/api-aco 0.0.0-unstable.aa00eecd97 → 0.0.0-unstable.ac6ebf63c6

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 (568) hide show
  1. package/README.md +6 -28
  2. package/constants.d.ts +2 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +8 -2
  6. package/createAcoContext.js +128 -50
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +48 -29
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoStorageOperations.d.ts +8 -6
  12. package/createAcoStorageOperations.js +9 -18
  13. package/createAcoStorageOperations.js.map +1 -1
  14. package/createAcoTasks.d.ts +1 -0
  15. package/createAcoTasks.js +15 -0
  16. package/createAcoTasks.js.map +1 -0
  17. package/domain/folder/abstractions.d.ts +9 -0
  18. package/domain/folder/abstractions.js +8 -0
  19. package/domain/folder/abstractions.js.map +1 -0
  20. package/domain/folder/errors.d.ts +29 -0
  21. package/domain/folder/errors.js +56 -0
  22. package/domain/folder/errors.js.map +1 -0
  23. package/domain/folder/folder.model.d.ts +9 -0
  24. package/domain/folder/folder.model.js +42 -0
  25. package/domain/folder/folder.model.js.map +1 -0
  26. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  29. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  32. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  35. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  38. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  41. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  44. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  47. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  50. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  53. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  56. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  59. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  62. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  65. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  68. package/features/cms/feature.d.ts +1 -0
  69. package/features/cms/feature.js +43 -0
  70. package/features/cms/feature.js.map +1 -0
  71. package/features/cms/index.d.ts +1 -0
  72. package/features/cms/index.js +3 -0
  73. package/features/cms/index.js.map +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +8 -0
  78. package/features/flp/CreateFlp/abstractions.js +7 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +6 -0
  81. package/features/flp/CreateFlp/feature.js +13 -0
  82. package/features/flp/CreateFlp/feature.js.map +1 -0
  83. package/features/flp/CreateFlp/index.d.ts +2 -0
  84. package/features/flp/CreateFlp/index.js +4 -0
  85. package/features/flp/CreateFlp/index.js.map +1 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  88. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
  91. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  93. package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
  94. package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  96. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
  97. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  98. package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
  99. package/features/flp/DeleteFlp/abstractions.js +7 -0
  100. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  101. package/features/flp/DeleteFlp/feature.d.ts +6 -0
  102. package/features/flp/DeleteFlp/feature.js +13 -0
  103. package/features/flp/DeleteFlp/feature.js.map +1 -0
  104. package/features/flp/DeleteFlp/index.d.ts +2 -0
  105. package/features/flp/DeleteFlp/index.js +4 -0
  106. package/features/flp/DeleteFlp/index.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
  112. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  113. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  114. package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
  115. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
  116. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  117. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
  118. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
  121. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  122. package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
  123. package/features/flp/FolderLevelPermissions/feature.js +10 -0
  124. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  125. package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
  126. package/features/flp/FolderLevelPermissions/index.js +4 -0
  127. package/features/flp/FolderLevelPermissions/index.js.map +1 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
  154. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
  155. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  156. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
  157. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  158. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  159. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
  160. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
  161. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  162. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
  163. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  167. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  168. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
  169. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  170. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  171. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
  172. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  173. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  174. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
  175. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
  176. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  177. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
  178. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
  179. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  180. package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
  181. package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
  182. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  183. package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
  184. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  185. package/features/flp/GetFlp/abstractions.d.ts +8 -0
  186. package/features/flp/GetFlp/abstractions.js +4 -0
  187. package/features/flp/GetFlp/abstractions.js.map +1 -0
  188. package/features/flp/GetFlp/feature.d.ts +1 -0
  189. package/features/flp/GetFlp/feature.js +13 -0
  190. package/features/flp/GetFlp/feature.js.map +1 -0
  191. package/features/flp/GetFlp/index.d.ts +1 -0
  192. package/features/flp/GetFlp/index.js +3 -0
  193. package/features/flp/GetFlp/index.js.map +1 -0
  194. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  195. package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
  196. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  197. package/features/flp/ListFlps/abstractions.d.ts +16 -0
  198. package/features/flp/ListFlps/abstractions.js +4 -0
  199. package/features/flp/ListFlps/abstractions.js.map +1 -0
  200. package/features/flp/ListFlps/feature.d.ts +1 -0
  201. package/features/flp/ListFlps/feature.js +13 -0
  202. package/features/flp/ListFlps/feature.js.map +1 -0
  203. package/features/flp/ListFlps/index.d.ts +1 -0
  204. package/features/flp/ListFlps/index.js +3 -0
  205. package/features/flp/ListFlps/index.js.map +1 -0
  206. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
  207. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
  208. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  209. package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
  210. package/features/flp/UpdateFlp/abstractions.js +7 -0
  211. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  212. package/features/flp/UpdateFlp/feature.d.ts +6 -0
  213. package/features/flp/UpdateFlp/feature.js +13 -0
  214. package/features/flp/UpdateFlp/feature.js.map +1 -0
  215. package/features/flp/UpdateFlp/index.d.ts +2 -0
  216. package/features/flp/UpdateFlp/index.js +4 -0
  217. package/features/flp/UpdateFlp/index.js.map +1 -0
  218. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  219. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  220. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  221. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
  222. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
  223. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  224. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  225. package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
  226. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
  227. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  228. package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
  229. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  230. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  231. package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
  232. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  233. package/features/folder/CreateFolder/abstractions.d.ts +55 -0
  234. package/features/folder/CreateFolder/abstractions.js +21 -0
  235. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  236. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  237. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
  238. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  239. package/features/folder/CreateFolder/events.d.ts +10 -0
  240. package/features/folder/CreateFolder/events.js +19 -0
  241. package/features/folder/CreateFolder/events.js.map +1 -0
  242. package/features/folder/CreateFolder/feature.d.ts +1 -0
  243. package/features/folder/CreateFolder/feature.js +14 -0
  244. package/features/folder/CreateFolder/feature.js.map +1 -0
  245. package/features/folder/CreateFolder/index.d.ts +2 -0
  246. package/features/folder/CreateFolder/index.js +4 -0
  247. package/features/folder/CreateFolder/index.js.map +1 -0
  248. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  249. package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
  250. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  251. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  252. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
  253. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  254. package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
  255. package/features/folder/DeleteFolder/abstractions.js +21 -0
  256. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  257. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  258. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
  259. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  260. package/features/folder/DeleteFolder/events.d.ts +10 -0
  261. package/features/folder/DeleteFolder/events.js +19 -0
  262. package/features/folder/DeleteFolder/events.js.map +1 -0
  263. package/features/folder/DeleteFolder/feature.d.ts +1 -0
  264. package/features/folder/DeleteFolder/feature.js +14 -0
  265. package/features/folder/DeleteFolder/feature.js.map +1 -0
  266. package/features/folder/DeleteFolder/index.d.ts +2 -0
  267. package/features/folder/DeleteFolder/index.js +4 -0
  268. package/features/folder/DeleteFolder/index.js.map +1 -0
  269. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  270. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
  271. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  272. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
  273. package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
  274. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  275. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
  276. package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
  277. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  278. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  279. package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
  280. package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
  281. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  282. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
  283. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  284. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
  285. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
  286. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  287. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  288. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
  289. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
  290. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  291. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
  292. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  293. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
  294. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
  295. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  296. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  297. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
  298. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
  299. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  300. package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
  301. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  302. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  303. package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
  304. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  305. package/features/folder/GetAncestors/abstractions.d.ts +38 -0
  306. package/features/folder/GetAncestors/abstractions.js +15 -0
  307. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  308. package/features/folder/GetAncestors/feature.d.ts +1 -0
  309. package/features/folder/GetAncestors/feature.js +12 -0
  310. package/features/folder/GetAncestors/feature.js.map +1 -0
  311. package/features/folder/GetAncestors/index.d.ts +2 -0
  312. package/features/folder/GetAncestors/index.js +4 -0
  313. package/features/folder/GetAncestors/index.js.map +1 -0
  314. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  315. package/features/folder/GetFolder/GetFolderRepository.js +31 -0
  316. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  317. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  318. package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
  319. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  320. package/features/folder/GetFolder/abstractions.d.ts +54 -0
  321. package/features/folder/GetFolder/abstractions.js +21 -0
  322. package/features/folder/GetFolder/abstractions.js.map +1 -0
  323. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  324. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
  325. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  326. package/features/folder/GetFolder/feature.d.ts +1 -0
  327. package/features/folder/GetFolder/feature.js +14 -0
  328. package/features/folder/GetFolder/feature.js.map +1 -0
  329. package/features/folder/GetFolder/index.d.ts +2 -0
  330. package/features/folder/GetFolder/index.js +4 -0
  331. package/features/folder/GetFolder/index.js.map +1 -0
  332. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  333. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
  334. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  335. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  336. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
  337. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  338. package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
  339. package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
  340. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  341. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  342. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
  343. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  344. package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
  345. package/features/folder/GetFolderHierarchy/feature.js +14 -0
  346. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  347. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  348. package/features/folder/GetFolderHierarchy/index.js +4 -0
  349. package/features/folder/GetFolderHierarchy/index.js.map +1 -0
  350. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  351. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
  352. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  353. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
  354. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
  355. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  356. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
  357. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
  358. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  359. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  360. package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
  361. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
  362. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  363. package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
  364. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  365. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  366. package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
  367. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  368. package/features/folder/ListFolders/abstractions.d.ts +42 -0
  369. package/features/folder/ListFolders/abstractions.js +15 -0
  370. package/features/folder/ListFolders/abstractions.js.map +1 -0
  371. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  372. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
  373. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  374. package/features/folder/ListFolders/feature.d.ts +1 -0
  375. package/features/folder/ListFolders/feature.js +14 -0
  376. package/features/folder/ListFolders/feature.js.map +1 -0
  377. package/features/folder/ListFolders/index.d.ts +2 -0
  378. package/features/folder/ListFolders/index.js +4 -0
  379. package/features/folder/ListFolders/index.js.map +1 -0
  380. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  381. package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
  382. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  383. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  384. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
  385. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  386. package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
  387. package/features/folder/UpdateFolder/abstractions.js +21 -0
  388. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  389. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  390. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
  391. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  392. package/features/folder/UpdateFolder/events.d.ts +10 -0
  393. package/features/folder/UpdateFolder/events.js +19 -0
  394. package/features/folder/UpdateFolder/events.js.map +1 -0
  395. package/features/folder/UpdateFolder/feature.d.ts +1 -0
  396. package/features/folder/UpdateFolder/feature.js +14 -0
  397. package/features/folder/UpdateFolder/feature.js.map +1 -0
  398. package/features/folder/UpdateFolder/index.d.ts +2 -0
  399. package/features/folder/UpdateFolder/index.js +4 -0
  400. package/features/folder/UpdateFolder/index.js.map +1 -0
  401. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  402. package/features/folder/shared/EntryToFolderMapper.js +22 -0
  403. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  404. package/features/folder/shared/abstractions.d.ts +5 -0
  405. package/features/folder/shared/abstractions.js +4 -0
  406. package/features/folder/shared/abstractions.js.map +1 -0
  407. package/filter/filter.crud.d.ts +3 -0
  408. package/filter/filter.crud.js +33 -0
  409. package/filter/filter.crud.js.map +1 -0
  410. package/filter/filter.gql.d.ts +3 -0
  411. package/filter/filter.gql.js +146 -0
  412. package/filter/filter.gql.js.map +1 -0
  413. package/filter/filter.model.d.ts +9 -0
  414. package/filter/filter.model.js +41 -0
  415. package/filter/filter.model.js.map +1 -0
  416. package/filter/filter.so.d.ts +3 -0
  417. package/filter/filter.so.js +104 -0
  418. package/filter/filter.so.js.map +1 -0
  419. package/filter/filter.types.d.ts +67 -0
  420. package/filter/filter.types.js +7 -0
  421. package/filter/filter.types.js.map +1 -0
  422. package/flp/flp.crud.d.ts +7 -0
  423. package/flp/flp.crud.js +91 -0
  424. package/flp/flp.crud.js.map +1 -0
  425. package/flp/flp.so.d.ts +20 -0
  426. package/flp/flp.so.js +220 -0
  427. package/flp/flp.so.js.map +1 -0
  428. package/flp/flp.types.d.ts +93 -0
  429. package/flp/flp.types.js +3 -0
  430. package/flp/flp.types.js.map +1 -0
  431. package/flp/index.d.ts +3 -0
  432. package/flp/index.js +5 -0
  433. package/flp/index.js.map +1 -0
  434. package/flp/tasks/createFlp.task.d.ts +16 -0
  435. package/flp/tasks/createFlp.task.js +35 -0
  436. package/flp/tasks/createFlp.task.js.map +1 -0
  437. package/flp/tasks/deleteFlp.task.d.ts +16 -0
  438. package/flp/tasks/deleteFlp.task.js +35 -0
  439. package/flp/tasks/deleteFlp.task.js.map +1 -0
  440. package/flp/tasks/index.d.ts +5 -0
  441. package/flp/tasks/index.js +19 -0
  442. package/flp/tasks/index.js.map +1 -0
  443. package/flp/tasks/syncFlp.task.d.ts +20 -0
  444. package/flp/tasks/syncFlp.task.js +127 -0
  445. package/flp/tasks/syncFlp.task.js.map +1 -0
  446. package/flp/tasks/updateFlp.task.d.ts +16 -0
  447. package/flp/tasks/updateFlp.task.js +40 -0
  448. package/flp/tasks/updateFlp.task.js.map +1 -0
  449. package/folder/createFolderModelModifier.d.ts +36 -0
  450. package/folder/createFolderModelModifier.js +61 -0
  451. package/folder/createFolderModelModifier.js.map +1 -0
  452. package/folder/createFolderTypeDefs.d.ts +7 -0
  453. package/folder/createFolderTypeDefs.js +186 -0
  454. package/folder/createFolderTypeDefs.js.map +1 -0
  455. package/folder/folder.gql.d.ts +4 -3
  456. package/folder/folder.gql.js +146 -112
  457. package/folder/folder.gql.js.map +1 -1
  458. package/folder/folder.types.d.ts +51 -58
  459. package/folder/folder.types.js +2 -4
  460. package/folder/folder.types.js.map +1 -1
  461. package/index.d.ts +8 -3
  462. package/index.js +9 -27
  463. package/index.js.map +1 -1
  464. package/package.json +43 -35
  465. package/types.d.ts +27 -22
  466. package/types.js +6 -37
  467. package/types.js.map +1 -1
  468. package/utils/FoldersCacheFactory.d.ts +10 -0
  469. package/utils/FoldersCacheFactory.js +24 -0
  470. package/utils/FoldersCacheFactory.js.map +1 -0
  471. package/utils/ListCache.d.ts +23 -0
  472. package/utils/ListCache.js +23 -0
  473. package/utils/ListCache.js.map +1 -0
  474. package/utils/Path.d.ts +3 -0
  475. package/utils/Path.js +11 -0
  476. package/utils/Path.js.map +1 -0
  477. package/utils/acoRecordId.js +4 -10
  478. package/utils/acoRecordId.js.map +1 -1
  479. package/utils/compress.d.ts +4 -0
  480. package/utils/compress.js +12 -0
  481. package/utils/compress.js.map +1 -0
  482. package/utils/createListSort.d.ts +3 -2
  483. package/utils/createListSort.js +6 -9
  484. package/utils/createListSort.js.map +1 -1
  485. package/utils/createOperationsWrapper.d.ts +2 -2
  486. package/utils/createOperationsWrapper.js +11 -18
  487. package/utils/createOperationsWrapper.js.map +1 -1
  488. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  489. package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
  490. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  491. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  492. package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
  493. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  494. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  495. package/utils/decorators/ListEntriesFactory.js +106 -0
  496. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  497. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  498. package/utils/decorators/hasRootFolderId.js +19 -0
  499. package/utils/decorators/hasRootFolderId.js.map +1 -0
  500. package/utils/decorators/isPageModel.d.ts +5 -0
  501. package/utils/decorators/isPageModel.js +13 -0
  502. package/utils/decorators/isPageModel.js.map +1 -0
  503. package/utils/ensureAuthentication.d.ts +2 -0
  504. package/utils/ensureAuthentication.js +12 -0
  505. package/utils/ensureAuthentication.js.map +1 -0
  506. package/utils/pickEntryFieldValues.d.ts +3 -0
  507. package/utils/pickEntryFieldValues.js +23 -0
  508. package/utils/pickEntryFieldValues.js.map +1 -0
  509. package/utils/resolve.d.ts +1 -1
  510. package/utils/resolve.js +6 -11
  511. package/utils/resolve.js.map +1 -1
  512. package/createAcoCrud.d.ts +0 -2
  513. package/createAcoCrud.js +0 -17
  514. package/createAcoCrud.js.map +0 -1
  515. package/createAcoFields.d.ts +0 -2
  516. package/createAcoFields.js +0 -40
  517. package/createAcoFields.js.map +0 -1
  518. package/createAcoHooks.d.ts +0 -2
  519. package/createAcoHooks.js +0 -11
  520. package/createAcoHooks.js.map +0 -1
  521. package/createAcoModels.d.ts +0 -2
  522. package/createAcoModels.js +0 -57
  523. package/createAcoModels.js.map +0 -1
  524. package/folder/folder.crud.d.ts +0 -3
  525. package/folder/folder.crud.js +0 -92
  526. package/folder/folder.crud.js.map +0 -1
  527. package/folder/folder.model.d.ts +0 -4
  528. package/folder/folder.model.js +0 -75
  529. package/folder/folder.model.js.map +0 -1
  530. package/folder/folder.so.d.ts +0 -3
  531. package/folder/folder.so.js +0 -151
  532. package/folder/folder.so.js.map +0 -1
  533. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  534. package/folder/onFolderBeforeDelete.hook.js +0 -53
  535. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  536. package/record/record.crud.d.ts +0 -3
  537. package/record/record.crud.js +0 -95
  538. package/record/record.crud.js.map +0 -1
  539. package/record/record.gql.d.ts +0 -3
  540. package/record/record.gql.js +0 -187
  541. package/record/record.gql.js.map +0 -1
  542. package/record/record.model.d.ts +0 -4
  543. package/record/record.model.js +0 -62
  544. package/record/record.model.js.map +0 -1
  545. package/record/record.so.d.ts +0 -3
  546. package/record/record.so.js +0 -139
  547. package/record/record.so.js.map +0 -1
  548. package/record/record.types.d.ts +0 -109
  549. package/record/record.types.js +0 -5
  550. package/record/record.types.js.map +0 -1
  551. package/utils/checkPermissions.d.ts +0 -2
  552. package/utils/checkPermissions.js +0 -14
  553. package/utils/checkPermissions.js.map +0 -1
  554. package/utils/createModelField.d.ts +0 -5
  555. package/utils/createModelField.js +0 -37
  556. package/utils/createModelField.js.map +0 -1
  557. package/utils/fieldResolver.d.ts +0 -16
  558. package/utils/fieldResolver.js +0 -44
  559. package/utils/fieldResolver.js.map +0 -1
  560. package/utils/getFieldValues.d.ts +0 -5
  561. package/utils/getFieldValues.js +0 -16
  562. package/utils/getFieldValues.js.map +0 -1
  563. package/utils/isInstallationPending.d.ts +0 -4
  564. package/utils/isInstallationPending.js +0 -21
  565. package/utils/isInstallationPending.js.map +0 -1
  566. package/utils/modelFactory.d.ts +0 -15
  567. package/utils/modelFactory.js +0 -25
  568. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,77 @@
1
+ import { createDecorator, Result } from "@webiny/feature/api";
2
+ import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
3
+ import { UpdateFolderUseCase } from "../abstractions.js";
4
+ import { GetFolderUseCase } from "../../GetFolder/index.js";
5
+ import { FolderCannotMoveToNewParent, FolderValidationError } from "../../../../domain/folder/errors.js";
6
+ class UpdateFolderWithFolderLevelPermissionsImpl {
7
+ constructor(getFolder, folderLevelPermissions, decoretee) {
8
+ this.getFolder = getFolder;
9
+ this.folderLevelPermissions = folderLevelPermissions;
10
+ this.decoretee = decoretee;
11
+ }
12
+ async execute(id, params) {
13
+ const originalResult = await this.getFolder.execute(id);
14
+ if (originalResult.isFail()) {
15
+ return Result.fail(originalResult.error);
16
+ }
17
+ const original = originalResult.value;
18
+ const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);
19
+
20
+ // Let's ensure current identity's permission allows the update operation.
21
+ await this.folderLevelPermissions.ensureCanAccessFolder({
22
+ permissions: originalPermissions,
23
+ rwd: "w"
24
+ });
25
+ const permissions = await this.folderLevelPermissions.getDefaultPermissions(params.permissions ?? []);
26
+
27
+ // Check if the user still has access to the folder with the provided permissions.
28
+ const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({
29
+ permissions,
30
+ rwd: "w"
31
+ });
32
+ if (!stillHasAccess) {
33
+ return Result.fail(new FolderValidationError(`Cannot continue because you would loose access to this folder.`));
34
+ }
35
+
36
+ // Validate data.
37
+ if (Array.isArray(params.permissions)) {
38
+ for (const permission of params.permissions) {
39
+ const targetIsValid = permission.target.startsWith("admin:") || permission.target.startsWith("team:");
40
+ if (!targetIsValid) {
41
+ return Result.fail(new FolderValidationError(`Permission target "${permission.target}" is not valid.`));
42
+ }
43
+ if (permission.inheritedFrom) {
44
+ return Result.fail(new FolderValidationError(`Permission "inheritedFrom" cannot be set manually.`));
45
+ }
46
+ }
47
+ }
48
+
49
+ // Parent change is not allowed if the user doesn't have access to the new parent.
50
+ if (params.parentId && params.parentId !== original.parentId) {
51
+ // Getting the parent folder permissions will throw an error if the user doesn't have access.
52
+ const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
53
+ const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
54
+ permissions: parentPermissions,
55
+ rwd: "w"
56
+ });
57
+ if (!canAccessFolder) {
58
+ return Result.fail(new FolderCannotMoveToNewParent());
59
+ }
60
+ }
61
+ const result = await this.decoretee.execute(id, params);
62
+ if (result.isFail()) {
63
+ return Result.fail(result.error);
64
+ }
65
+ return Result.ok({
66
+ ...result.value,
67
+ permissions
68
+ });
69
+ }
70
+ }
71
+ export const UpdateFolderWithFolderLevelPermissions = createDecorator({
72
+ abstraction: UpdateFolderUseCase,
73
+ decorator: UpdateFolderWithFolderLevelPermissionsImpl,
74
+ dependencies: [GetFolderUseCase, FolderLevelPermissions]
75
+ });
76
+
77
+ //# sourceMappingURL=UpdateFolderWithFolderLevelPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDecorator","Result","FolderLevelPermissions","UpdateFolderUseCase","GetFolderUseCase","FolderCannotMoveToNewParent","FolderValidationError","UpdateFolderWithFolderLevelPermissionsImpl","constructor","getFolder","folderLevelPermissions","decoretee","execute","id","params","originalResult","isFail","fail","error","original","value","originalPermissions","getFolderLevelPermissions","ensureCanAccessFolder","permissions","rwd","getDefaultPermissions","stillHasAccess","canAccessFolder","Array","isArray","permission","targetIsValid","target","startsWith","inheritedFrom","parentId","parentPermissions","result","ok","UpdateFolderWithFolderLevelPermissions","abstraction","decorator","dependencies"],"sources":["UpdateFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport type { UpdateFolderParams } from \"~/folder/folder.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { UpdateFolderUseCase } from \"../abstractions.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { FolderCannotMoveToNewParent, FolderValidationError } from \"~/domain/folder/errors.js\";\n\nclass UpdateFolderWithFolderLevelPermissionsImpl implements UpdateFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: UpdateFolderUseCase.Interface;\n\n constructor(\n private getFolder: GetFolderUseCase.Interface,\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: UpdateFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string, params: UpdateFolderParams): UpdateFolderUseCase.Return {\n const originalResult = await this.getFolder.execute(id);\n\n if (originalResult.isFail()) {\n return Result.fail(originalResult.error);\n }\n\n const original = originalResult.value;\n\n const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);\n\n // Let's ensure current identity's permission allows the update operation.\n await this.folderLevelPermissions.ensureCanAccessFolder({\n permissions: originalPermissions,\n rwd: \"w\"\n });\n\n const permissions = await this.folderLevelPermissions.getDefaultPermissions(\n params.permissions ?? []\n );\n\n // Check if the user still has access to the folder with the provided permissions.\n const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"w\"\n });\n\n if (!stillHasAccess) {\n return Result.fail(\n new FolderValidationError(\n `Cannot continue because you would loose access to this folder.`\n )\n );\n }\n\n // Validate data.\n if (Array.isArray(params.permissions)) {\n for (const permission of params.permissions) {\n const targetIsValid =\n permission.target.startsWith(\"admin:\") || permission.target.startsWith(\"team:\");\n if (!targetIsValid) {\n return Result.fail(\n new FolderValidationError(\n `Permission target \"${permission.target}\" is not valid.`\n )\n );\n }\n\n if (permission.inheritedFrom) {\n return Result.fail(\n new FolderValidationError(\n `Permission \"inheritedFrom\" cannot be set manually.`\n )\n );\n }\n }\n }\n\n // Parent change is not allowed if the user doesn't have access to the new parent.\n if (params.parentId && params.parentId !== original.parentId) {\n // Getting the parent folder permissions will throw an error if the user doesn't have access.\n const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n params.parentId\n );\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions: parentPermissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderCannotMoveToNewParent());\n }\n }\n\n const result = await this.decoretee.execute(id, params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok({\n ...result.value,\n permissions\n });\n }\n}\n\nexport const UpdateFolderWithFolderLevelPermissions = createDecorator({\n abstraction: UpdateFolderUseCase,\n decorator: UpdateFolderWithFolderLevelPermissionsImpl,\n dependencies: [GetFolderUseCase, FolderLevelPermissions]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from "./abstractions.js";
3
+ export declare class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {
4
+ eventType: "folder.beforeUpdate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
6
+ }
7
+ export declare class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {
8
+ eventType: "folder.afterUpdate";
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
10
+ }
@@ -0,0 +1,19 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from "./abstractions.js";
3
+ // FolderBeforeUpdate Event
4
+ export class FolderBeforeUpdateEvent extends DomainEvent {
5
+ eventType = "folder.beforeUpdate";
6
+ getHandlerAbstraction() {
7
+ return FolderBeforeUpdateHandler;
8
+ }
9
+ }
10
+
11
+ // FolderAfterUpdate Event
12
+ export class FolderAfterUpdateEvent extends DomainEvent {
13
+ eventType = "folder.afterUpdate";
14
+ getHandlerAbstraction() {
15
+ return FolderAfterUpdateHandler;
16
+ }
17
+ }
18
+
19
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","FolderBeforeUpdateHandler","FolderAfterUpdateHandler","FolderBeforeUpdateEvent","eventType","getHandlerAbstraction","FolderAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from \"./abstractions.js\";\nimport type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from \"./abstractions.js\";\n\n// FolderBeforeUpdate Event\nexport class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {\n eventType = \"folder.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeUpdateHandler;\n }\n}\n\n// FolderAfterUpdate Event\nexport class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {\n eventType = \"folder.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,yBAAyB,EAAEC,wBAAwB;AAG5D;AACA,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,yBAAyB;EACpC;AACJ;;AAEA;AACA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,wBAAwB;EACnC;AACJ","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const UpdateFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,14 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdateFolderRepository } from "./UpdateFolderRepository.js";
3
+ import { UpdateFolderUseCase } from "./UpdateFolderUseCase.js";
4
+ import { UpdateFolderWithFolderLevelPermissions } from "./decorators/UpdateFolderWithFolderLevelPermissions.js";
5
+ export const UpdateFolderFeature = createFeature({
6
+ name: "UpdateFolder",
7
+ register(container) {
8
+ container.register(UpdateFolderRepository).inSingletonScope();
9
+ container.register(UpdateFolderUseCase);
10
+ container.registerDecorator(UpdateFolderWithFolderLevelPermissions);
11
+ }
12
+ });
13
+
14
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","UpdateFolderRepository","UpdateFolderUseCase","UpdateFolderWithFolderLevelPermissions","UpdateFolderFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { UpdateFolderRepository } from \"./UpdateFolderRepository.js\";\nimport { UpdateFolderUseCase } from \"./UpdateFolderUseCase.js\";\nimport { UpdateFolderWithFolderLevelPermissions } from \"./decorators/UpdateFolderWithFolderLevelPermissions.js\";\n\nexport const UpdateFolderFeature = createFeature({\n name: \"UpdateFolder\",\n register(container: Container) {\n container.register(UpdateFolderRepository).inSingletonScope();\n container.register(UpdateFolderUseCase);\n container.registerDecorator(UpdateFolderWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,sCAAsC;AAE/C,OAAO,MAAMC,mBAAmB,GAAGJ,aAAa,CAAC;EAC7CK,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,sBAAsB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC7DD,SAAS,CAACD,QAAQ,CAACJ,mBAAmB,CAAC;IACvCK,SAAS,CAACE,iBAAiB,CAACN,sCAAsC,CAAC;EACvE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { UpdateFolderFeature } from "./feature.js";
2
+ export { FolderAfterUpdateHandler, FolderBeforeUpdateHandler, UpdateFolderUseCase } from "./abstractions.js";
@@ -0,0 +1,4 @@
1
+ export { UpdateFolderFeature } from "./feature.js";
2
+ export { FolderAfterUpdateHandler, FolderBeforeUpdateHandler, UpdateFolderUseCase } from "./abstractions.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UpdateFolderFeature","FolderAfterUpdateHandler","FolderBeforeUpdateHandler","UpdateFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { UpdateFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterUpdateHandler,\n FolderBeforeUpdateHandler,\n UpdateFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types";
2
+ import type { CmsEntryFolder, Folder } from "../../../folder/folder.types.js";
3
+ export declare class EntryToFolderMapper {
4
+ static toFolder(entry: CmsEntry<CmsEntryFolder>): Folder;
5
+ }
@@ -0,0 +1,22 @@
1
+ export class EntryToFolderMapper {
2
+ static toFolder(entry) {
3
+ return {
4
+ id: entry.entryId,
5
+ createdOn: entry.createdOn,
6
+ modifiedOn: entry.modifiedOn ?? null,
7
+ savedOn: entry.savedOn,
8
+ createdBy: entry.createdBy,
9
+ modifiedBy: entry.modifiedBy ?? null,
10
+ savedBy: entry.savedBy,
11
+ title: entry.values.title,
12
+ slug: entry.values.slug,
13
+ permissions: entry.values.permissions,
14
+ type: entry.values.type,
15
+ parentId: entry.values.parentId ?? null,
16
+ path: entry.values.path,
17
+ extensions: entry.values.extensions
18
+ };
19
+ }
20
+ }
21
+
22
+ //# sourceMappingURL=EntryToFolderMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryToFolderMapper","toFolder","entry","id","entryId","createdOn","modifiedOn","savedOn","createdBy","modifiedBy","savedBy","title","values","slug","permissions","type","parentId","path","extensions"],"sources":["EntryToFolderMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\n\nexport class EntryToFolderMapper {\n static toFolder(entry: CmsEntry<CmsEntryFolder>): Folder {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn ?? null,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy ?? null,\n savedBy: entry.savedBy,\n title: entry.values.title,\n slug: entry.values.slug,\n permissions: entry.values.permissions,\n type: entry.values.type,\n parentId: entry.values.parentId ?? null,\n path: entry.values.path,\n extensions: entry.values.extensions\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,mBAAmB,CAAC;EAC7B,OAAOC,QAAQA,CAACC,KAA+B,EAAU;IACrD,OAAO;MACHC,EAAE,EAAED,KAAK,CAACE,OAAO;MACjBC,SAAS,EAAEH,KAAK,CAACG,SAAS;MAC1BC,UAAU,EAAEJ,KAAK,CAACI,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBC,SAAS,EAAEN,KAAK,CAACM,SAAS;MAC1BC,UAAU,EAAEP,KAAK,CAACO,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAER,KAAK,CAACQ,OAAO;MACtBC,KAAK,EAAET,KAAK,CAACU,MAAM,CAACD,KAAK;MACzBE,IAAI,EAAEX,KAAK,CAACU,MAAM,CAACC,IAAI;MACvBC,WAAW,EAAEZ,KAAK,CAACU,MAAM,CAACE,WAAW;MACrCC,IAAI,EAAEb,KAAK,CAACU,MAAM,CAACG,IAAI;MACvBC,QAAQ,EAAEd,KAAK,CAACU,MAAM,CAACI,QAAQ,IAAI,IAAI;MACvCC,IAAI,EAAEf,KAAK,CAACU,MAAM,CAACK,IAAI;MACvBC,UAAU,EAAEhB,KAAK,CAACU,MAAM,CAACM;IAC7B,CAAC;EACL;AACJ","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { AcoStorageOperations as IAcoStorageOperations } from "../../../types.js";
2
+ export declare const FilterStorageOperations: import("@webiny/di").Abstraction<import("~/types.js").AcoFilterStorageOperations>;
3
+ export declare namespace FilterStorageOperations {
4
+ type Interface = IAcoStorageOperations["filter"];
5
+ }
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const FilterStorageOperations = createAbstraction("FilterStorageOperations");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","FilterStorageOperations"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AcoStorageOperations as IAcoStorageOperations } from \"~/types.js\";\n\nexport const FilterStorageOperations =\n createAbstraction<IAcoStorageOperations[\"filter\"]>(\"FilterStorageOperations\");\n\nexport namespace FilterStorageOperations {\n export type Interface = IAcoStorageOperations[\"filter\"];\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAGvD,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAkC,yBAAyB,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { CreateAcoParams } from "../types.js";
2
+ import type { AcoFilterCrud } from "./filter.types.js";
3
+ export declare const createFilterCrudMethods: ({ storageOperations }: CreateAcoParams) => AcoFilterCrud;
@@ -0,0 +1,33 @@
1
+ export const createFilterCrudMethods = ({
2
+ storageOperations
3
+ }) => {
4
+ return {
5
+ async get(id) {
6
+ return storageOperations.filter.getFilter({
7
+ id
8
+ });
9
+ },
10
+ async list(params) {
11
+ return storageOperations.filter.listFilters(params);
12
+ },
13
+ async create(data) {
14
+ return storageOperations.filter.createFilter({
15
+ data
16
+ });
17
+ },
18
+ async update(id, data) {
19
+ return await storageOperations.filter.updateFilter({
20
+ id,
21
+ data
22
+ });
23
+ },
24
+ async delete(id) {
25
+ await storageOperations.filter.deleteFilter({
26
+ id
27
+ });
28
+ return true;
29
+ }
30
+ };
31
+ };
32
+
33
+ //# sourceMappingURL=filter.crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFilterCrudMethods","storageOperations","get","id","filter","getFilter","list","params","listFilters","create","data","createFilter","update","updateFilter","delete","deleteFilter"],"sources":["filter.crud.ts"],"sourcesContent":["import type { CreateAcoParams } from \"~/types.js\";\nimport type { AcoFilterCrud } from \"./filter.types.js\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n return {\n async get(id) {\n return storageOperations.filter.getFilter({ id });\n },\n async list(params) {\n return storageOperations.filter.listFilters(params);\n },\n async create(data) {\n return storageOperations.filter.createFilter({ data });\n },\n async update(id, data) {\n return await storageOperations.filter.updateFilter({ id, data });\n },\n async delete(id: string) {\n await storageOperations.filter.deleteFilter({ id });\n return true;\n }\n };\n};\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F,OAAO;IACH,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOF,iBAAiB,CAACG,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;IACrD,CAAC;IACD,MAAMG,IAAIA,CAACC,MAAM,EAAE;MACf,OAAON,iBAAiB,CAACG,MAAM,CAACI,WAAW,CAACD,MAAM,CAAC;IACvD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,OAAOT,iBAAiB,CAACG,MAAM,CAACO,YAAY,CAAC;QAAED;MAAK,CAAC,CAAC;IAC1D,CAAC;IACD,MAAME,MAAMA,CAACT,EAAE,EAAEO,IAAI,EAAE;MACnB,OAAO,MAAMT,iBAAiB,CAACG,MAAM,CAACS,YAAY,CAAC;QAAEV,EAAE;QAAEO;MAAK,CAAC,CAAC;IACpE,CAAC;IACD,MAAMI,MAAMA,CAACX,EAAU,EAAE;MACrB,MAAMF,iBAAiB,CAACG,MAAM,CAACW,YAAY,CAAC;QAAEZ;MAAG,CAAC,CAAC;MACnD,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
2
+ import type { AcoContext } from "../types.js";
3
+ export declare const filterSchema: GraphQLSchemaPlugin<AcoContext>;
@@ -0,0 +1,146 @@
1
+ import { ErrorResponse, ListResponse } from "@webiny/handler-graphql/responses.js";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
3
+ import { ensureAuthentication } from "../utils/ensureAuthentication.js";
4
+ import { resolve } from "../utils/resolve.js";
5
+ export const filterSchema = new GraphQLSchemaPlugin({
6
+ typeDefs: /* GraphQL */`
7
+ enum OperationEnum {
8
+ AND
9
+ OR
10
+ }
11
+
12
+ type GroupFilter {
13
+ field: String!
14
+ condition: String!
15
+ value: String!
16
+ }
17
+
18
+ type Group {
19
+ operation: OperationEnum!
20
+ filters: [GroupFilter]!
21
+ }
22
+
23
+ type Filter {
24
+ id: ID!
25
+ name: String!
26
+ description: String
27
+ namespace: String!
28
+ operation: OperationEnum!
29
+ groups: [Group]!
30
+ createdOn: DateTime
31
+ modifiedOn: DateTime
32
+ savedOn: DateTime
33
+ createdBy: AcoUser
34
+ modifiedBy: AcoUser
35
+ savedBy: AcoUser
36
+ }
37
+
38
+ input GroupFilterInput {
39
+ field: String!
40
+ condition: String!
41
+ value: String!
42
+ }
43
+
44
+ input GroupInput {
45
+ operation: OperationEnum!
46
+ filters: [GroupFilterInput]!
47
+ }
48
+
49
+ input FilterCreateInput {
50
+ id: ID!
51
+ name: String!
52
+ description: String
53
+ namespace: String!
54
+ operation: OperationEnum!
55
+ groups: [GroupInput]!
56
+ }
57
+
58
+ input FilterUpdateInput {
59
+ name: String
60
+ description: String
61
+ namespace: String
62
+ operation: OperationEnum
63
+ groups: [GroupInput]
64
+ }
65
+
66
+ input FiltersListWhereInput {
67
+ namespace: String
68
+ }
69
+
70
+ type FilterResponse {
71
+ data: Filter
72
+ error: AcoError
73
+ }
74
+
75
+ type FilterListResponse {
76
+ data: [Filter]
77
+ error: AcoError
78
+ }
79
+
80
+ extend type AcoQuery {
81
+ getFilter(id: ID!): FilterResponse
82
+ listFilters(
83
+ where: FiltersListWhereInput!
84
+ limit: Int
85
+ after: String
86
+ sort: AcoSort
87
+ ): FilterListResponse
88
+ }
89
+
90
+ extend type AcoMutation {
91
+ createFilter(data: FilterCreateInput!): FilterResponse
92
+ updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse
93
+ deleteFilter(id: ID!): AcoBooleanResponse
94
+ }
95
+ `,
96
+ resolvers: {
97
+ AcoQuery: {
98
+ getFilter: async (_, {
99
+ id
100
+ }, context) => {
101
+ return resolve(() => {
102
+ ensureAuthentication(context);
103
+ return context.aco.filter.get(id);
104
+ });
105
+ },
106
+ listFilters: async (_, args, context) => {
107
+ try {
108
+ ensureAuthentication(context);
109
+ const [entries, meta] = await context.aco.filter.list(args);
110
+ return new ListResponse(entries, meta);
111
+ } catch (e) {
112
+ return new ErrorResponse(e);
113
+ }
114
+ }
115
+ },
116
+ AcoMutation: {
117
+ createFilter: async (_, {
118
+ data
119
+ }, context) => {
120
+ return resolve(() => {
121
+ ensureAuthentication(context);
122
+ return context.aco.filter.create(data);
123
+ });
124
+ },
125
+ updateFilter: async (_, {
126
+ id,
127
+ data
128
+ }, context) => {
129
+ return resolve(() => {
130
+ ensureAuthentication(context);
131
+ return context.aco.filter.update(id, data);
132
+ });
133
+ },
134
+ deleteFilter: async (_, {
135
+ id
136
+ }, context) => {
137
+ return resolve(() => {
138
+ ensureAuthentication(context);
139
+ return context.aco.filter.delete(id);
140
+ });
141
+ }
142
+ }
143
+ }
144
+ });
145
+
146
+ //# sourceMappingURL=filter.gql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ErrorResponse","ListResponse","GraphQLSchemaPlugin","ensureAuthentication","resolve","filterSchema","typeDefs","resolvers","AcoQuery","getFilter","_","id","context","aco","filter","get","listFilters","args","entries","meta","list","e","AcoMutation","createFilter","data","create","updateFilter","update","deleteFilter","delete"],"sources":["filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication.js\";\nimport { resolve } from \"~/utils/resolve.js\";\n\nimport type { AcoContext } from \"~/types.js\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,YAAY,QAAQ,sCAAsC;AAClF,SAASC,mBAAmB,QAAQ,wDAAwD;AAE5F,SAASC,oBAAoB;AAC7B,SAASC,OAAO;AAIhB,OAAO,MAAMC,YAAY,GAAG,IAAIH,mBAAmB,CAAa;EAC5DI,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,GAAG,CAACJ,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDK,WAAW,EAAE,MAAAA,CAAON,CAAC,EAAEO,IAAS,EAAEL,OAAO,KAAK;QAC1C,IAAI;UACAT,oBAAoB,CAACS,OAAO,CAAC;UAC7B,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMP,OAAO,CAACC,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAIhB,YAAY,CAACiB,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOE,CAAC,EAAE;UACR,OAAO,IAAIrB,aAAa,CAACqB,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDC,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAOb,CAAC,EAAE;QAAEc;MAAK,CAAC,EAAEZ,OAAO,KAAK;QAC1C,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACW,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAOhB,CAAC,EAAE;QAAEC,EAAE;QAAEa;MAAK,CAAC,EAAEZ,OAAO,KAAK;QAC9C,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACa,MAAM,CAAChB,EAAE,EAAEa,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOlB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACe,MAAM,CAAClB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
+ export declare const FILTER_MODEL_ID: string;
3
+ declare class FilterPrivateModelImpl implements ModelFactory.Interface {
4
+ execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PrivateModelBuilder[]>;
5
+ }
6
+ export declare const FilterPrivateModel: typeof FilterPrivateModelImpl & {
7
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
8
+ };
9
+ export {};
@@ -0,0 +1,41 @@
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
+ export const FILTER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "acoFilter" : "wbyAcoFilter";
3
+ class FilterPrivateModelImpl {
4
+ async execute(builder) {
5
+ return [builder.private({
6
+ modelId: FILTER_MODEL_ID,
7
+ name: "ACO - Filter"
8
+ }).fields(fields => ({
9
+ name: fields.text().label("Name").required(),
10
+ description: fields.text().label("Description"),
11
+ namespace: fields.text().label("Model Id").required(),
12
+ operation: fields.text().label("Operation").required().predefinedValues([{
13
+ label: "AND",
14
+ value: "AND"
15
+ }, {
16
+ label: "OR",
17
+ value: "OR"
18
+ }]),
19
+ groups: fields.object().label("Groups").list().listMinLength(1, "At least one group is required.").fields(fields => ({
20
+ operation: fields.text().label("Operation").required().predefinedValues([{
21
+ label: "AND",
22
+ value: "AND"
23
+ }, {
24
+ label: "OR",
25
+ value: "OR"
26
+ }]),
27
+ filters: fields.object().label("Filters").list().listMinLength(1, "At least one filter is required.").fields(filterFields => ({
28
+ field: filterFields.text().label("Field").required(),
29
+ condition: filterFields.text().label("Condition").required(),
30
+ value: filterFields.text().label("Value").required()
31
+ }))
32
+ }))
33
+ }))];
34
+ }
35
+ }
36
+ export const FilterPrivateModel = ModelFactory.createImplementation({
37
+ implementation: FilterPrivateModelImpl,
38
+ dependencies: []
39
+ });
40
+
41
+ //# sourceMappingURL=filter.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ModelFactory","FILTER_MODEL_ID","process","env","WEBINY_API_LEGACY_MODELS","FilterPrivateModelImpl","execute","builder","private","modelId","name","fields","text","label","required","description","namespace","operation","predefinedValues","value","groups","object","list","listMinLength","filters","filterFields","field","condition","FilterPrivateModel","createImplementation","implementation","dependencies"],"sources":["filter.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\n\nexport const FILTER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"acoFilter\" : \"wbyAcoFilter\";\n\nclass FilterPrivateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: FILTER_MODEL_ID,\n name: \"ACO - Filter\"\n })\n .fields(fields => ({\n name: fields.text().label(\"Name\").required(),\n description: fields.text().label(\"Description\"),\n namespace: fields.text().label(\"Model Id\").required(),\n operation: fields\n .text()\n .label(\"Operation\")\n .required()\n .predefinedValues([\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]),\n groups: fields\n .object()\n .label(\"Groups\")\n .list()\n .listMinLength(1, \"At least one group is required.\")\n .fields(fields => ({\n operation: fields\n .text()\n .label(\"Operation\")\n .required()\n .predefinedValues([\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]),\n filters: fields\n .object()\n .label(\"Filters\")\n .list()\n .listMinLength(1, \"At least one filter is required.\")\n .fields(filterFields => ({\n field: filterFields.text().label(\"Field\").required(),\n condition: filterFields.text().label(\"Condition\").required(),\n value: filterFields.text().label(\"Value\").required()\n }))\n }))\n }))\n ];\n }\n}\n\nexport const FilterPrivateModel = ModelFactory.createImplementation({\n implementation: FilterPrivateModelImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AAEtF,OAAO,MAAMC,eAAe,GAAGC,OAAO,CAACC,GAAG,CAACC,wBAAwB,GAAG,WAAW,GAAG,cAAc;AAElG,MAAMC,sBAAsB,CAAmC;EAC3D,MAAaC,OAAOA,CAACC,OAA6B,EAAE;IAChD,OAAO,CACHA,OAAO,CACFC,OAAO,CAAC;MACLC,OAAO,EAAER,eAAe;MACxBS,IAAI,EAAE;IACV,CAAC,CAAC,CACDC,MAAM,CAACA,MAAM,KAAK;MACfD,IAAI,EAAEC,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC5CC,WAAW,EAAEJ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,aAAa,CAAC;MAC/CG,SAAS,EAAEL,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,UAAU,CAAC,CAACC,QAAQ,CAAC,CAAC;MACrDG,SAAS,EAAEN,MAAM,CACZC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,WAAW,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVI,gBAAgB,CAAC,CACd;QACIL,KAAK,EAAE,KAAK;QACZM,KAAK,EAAE;MACX,CAAC,EACD;QACIN,KAAK,EAAE,IAAI;QACXM,KAAK,EAAE;MACX,CAAC,CACJ,CAAC;MACNC,MAAM,EAAET,MAAM,CACTU,MAAM,CAAC,CAAC,CACRR,KAAK,CAAC,QAAQ,CAAC,CACfS,IAAI,CAAC,CAAC,CACNC,aAAa,CAAC,CAAC,EAAE,iCAAiC,CAAC,CACnDZ,MAAM,CAACA,MAAM,KAAK;QACfM,SAAS,EAAEN,MAAM,CACZC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,WAAW,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVI,gBAAgB,CAAC,CACd;UACIL,KAAK,EAAE,KAAK;UACZM,KAAK,EAAE;QACX,CAAC,EACD;UACIN,KAAK,EAAE,IAAI;UACXM,KAAK,EAAE;QACX,CAAC,CACJ,CAAC;QACNK,OAAO,EAAEb,MAAM,CACVU,MAAM,CAAC,CAAC,CACRR,KAAK,CAAC,SAAS,CAAC,CAChBS,IAAI,CAAC,CAAC,CACNC,aAAa,CAAC,CAAC,EAAE,kCAAkC,CAAC,CACpDZ,MAAM,CAACc,YAAY,KAAK;UACrBC,KAAK,EAAED,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC,CAAC;UACpDa,SAAS,EAAEF,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,WAAW,CAAC,CAACC,QAAQ,CAAC,CAAC;UAC5DK,KAAK,EAAEM,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC;QACvD,CAAC,CAAC;MACV,CAAC,CAAC;IACV,CAAC,CAAC,CAAC,CACV;EACL;AACJ;AAEA,OAAO,MAAMc,kBAAkB,GAAG5B,YAAY,CAAC6B,oBAAoB,CAAC;EAChEC,cAAc,EAAEzB,sBAAsB;EACtC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations.js";
2
+ import type { AcoFilterStorageOperations } from "./filter.types.js";
3
+ export declare const createFilterOperations: (params: CreateAcoStorageOperationsParams) => AcoFilterStorageOperations;
@@ -0,0 +1,104 @@
1
+ import omit from "lodash/omit.js";
2
+ import WebinyError from "@webiny/error";
3
+ import { FILTER_MODEL_ID } from "./filter.model.js";
4
+ import { createListSort } from "../utils/createListSort.js";
5
+ import { createOperationsWrapper } from "../utils/createOperationsWrapper.js";
6
+ import { pickEntryFieldValues } from "../utils/pickEntryFieldValues.js";
7
+ import { ENTRY_META_FIELDS } from "@webiny/api-headless-cms/constants.js";
8
+ import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ export const createFilterOperations = params => {
10
+ const {
11
+ cms,
12
+ security,
13
+ container
14
+ } = params;
15
+ const {
16
+ withModel
17
+ } = createOperationsWrapper({
18
+ ...params,
19
+ modelName: FILTER_MODEL_ID
20
+ });
21
+ const cmsWhereMapper = container.resolve(CmsWhereMapper);
22
+ const cmsSortMapper = container.resolve(CmsSortMapper);
23
+ return {
24
+ getFilter({
25
+ id
26
+ }) {
27
+ return withModel(async model => {
28
+ const entry = await cms.getEntryById(model, id);
29
+ if (!entry) {
30
+ throw new WebinyError("Could not load filter.", "GET_FILTER_ERROR", {
31
+ id
32
+ });
33
+ }
34
+ return pickEntryFieldValues(entry);
35
+ });
36
+ },
37
+ listFilters(params) {
38
+ return withModel(async model => {
39
+ const {
40
+ sort,
41
+ where
42
+ } = params;
43
+ const createdBy = security.getIdentity().id;
44
+ const [entries, meta] = await cms.listLatestEntries(model, {
45
+ ...params,
46
+ sort: cmsSortMapper.map({
47
+ input: createListSort(sort),
48
+ fields: model.fields
49
+ }),
50
+ where: cmsWhereMapper.map({
51
+ input: {
52
+ ...where,
53
+ createdBy
54
+ },
55
+ fields: model.fields
56
+ })
57
+ });
58
+ return [entries.map(pickEntryFieldValues), meta];
59
+ });
60
+ },
61
+ createFilter({
62
+ data
63
+ }) {
64
+ return withModel(async model => {
65
+ const entry = await cms.createEntry(model, {
66
+ id: data.id,
67
+ values: data
68
+ });
69
+ return pickEntryFieldValues(entry);
70
+ });
71
+ },
72
+ updateFilter({
73
+ id,
74
+ data
75
+ }) {
76
+ return withModel(async model => {
77
+ const original = await cms.getEntryById(model, id);
78
+ const input = {
79
+ /**
80
+ * We are omitting the standard entry meta fields:
81
+ * we don't want to override them with the ones coming from the `original` entry.
82
+ */
83
+ ...omit(original, ENTRY_META_FIELDS),
84
+ values: {
85
+ ...original.values,
86
+ ...data
87
+ }
88
+ };
89
+ const entry = await cms.updateEntry(model, original.id, input);
90
+ return pickEntryFieldValues(entry);
91
+ });
92
+ },
93
+ deleteFilter({
94
+ id
95
+ }) {
96
+ return withModel(async model => {
97
+ await cms.deleteEntry(model, id);
98
+ return true;
99
+ });
100
+ }
101
+ };
102
+ };
103
+
104
+ //# sourceMappingURL=filter.so.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["omit","WebinyError","FILTER_MODEL_ID","createListSort","createOperationsWrapper","pickEntryFieldValues","ENTRY_META_FIELDS","CmsSortMapper","CmsWhereMapper","createFilterOperations","params","cms","security","container","withModel","modelName","cmsWhereMapper","resolve","cmsSortMapper","getFilter","id","model","entry","getEntryById","listFilters","sort","where","createdBy","getIdentity","entries","meta","listLatestEntries","map","input","fields","createFilter","data","createEntry","values","updateFilter","original","updateEntry","deleteFilter","deleteEntry"],"sources":["filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit.js\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model.js\";\nimport type { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations.js\";\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper.js\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues.js\";\nimport type { AcoFilterStorageOperations, Filter } from \"./filter.types.js\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nexport const createFilterOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFilterStorageOperations => {\n const { cms, security, container } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FILTER_MODEL_ID\n });\n\n const cmsWhereMapper = container.resolve(CmsWhereMapper);\n const cmsSortMapper = container.resolve(CmsSortMapper);\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = await cms.getEntryById(model, id);\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = security.getIdentity().id;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: cmsSortMapper.map({\n input: createListSort(sort),\n fields: model.fields\n }),\n where: cmsWhereMapper.map({\n input: {\n ...where,\n createdBy\n },\n fields: model.fields\n })\n });\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const entry = await cms.createEntry(model, {\n id: data.id,\n values: data\n });\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = await cms.getEntryById(model, id);\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n values: {\n ...original.values,\n ...data\n }\n };\n\n const entry = await cms.updateEntry(model, original.id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}