@webiny/api-aco 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.e9333b3f0b

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 (471) hide show
  1. package/AcoFeature.d.ts +5 -0
  2. package/AcoFeature.js +132 -0
  3. package/AcoFeature.js.map +1 -0
  4. package/AcoFolderSchemaFactory.d.ts +32 -0
  5. package/AcoFolderSchemaFactory.js +82 -0
  6. package/AcoFolderSchemaFactory.js.map +1 -0
  7. package/constants.js +2 -1
  8. package/constants.js.map +1 -1
  9. package/createAcoGraphQL.d.ts +8 -4
  10. package/createAcoGraphQL.js +56 -97
  11. package/createAcoGraphQL.js.map +1 -1
  12. package/domain/folder/abstractions.d.ts +12 -5
  13. package/domain/folder/abstractions.js +2 -5
  14. package/domain/folder/abstractions.js.map +1 -1
  15. package/domain/folder/errors.js +42 -47
  16. package/domain/folder/errors.js.map +1 -1
  17. package/domain/folder/folder.model.js +53 -36
  18. package/domain/folder/folder.model.js.map +1 -1
  19. package/exports/api/aco/flp.d.ts +1 -0
  20. package/exports/api/aco/flp.js +1 -2
  21. package/exports/api/aco/folder.d.ts +2 -1
  22. package/exports/api/aco/folder.js +5 -7
  23. package/features/ai/CreateFolderTool.d.ts +51 -0
  24. package/features/ai/CreateFolderTool.js +65 -0
  25. package/features/ai/CreateFolderTool.js.map +1 -0
  26. package/features/ai/CreateTeamTool.d.ts +48 -0
  27. package/features/ai/CreateTeamTool.js +56 -0
  28. package/features/ai/CreateTeamTool.js.map +1 -0
  29. package/features/ai/DeleteFolderTool.d.ts +50 -0
  30. package/features/ai/DeleteFolderTool.js +62 -0
  31. package/features/ai/DeleteFolderTool.js.map +1 -0
  32. package/features/ai/GrantFolderAccessTool.d.ts +79 -0
  33. package/features/ai/GrantFolderAccessTool.js +87 -0
  34. package/features/ai/GrantFolderAccessTool.js.map +1 -0
  35. package/features/ai/ListFoldersTool.d.ts +47 -0
  36. package/features/ai/ListFoldersTool.js +57 -0
  37. package/features/ai/ListFoldersTool.js.map +1 -0
  38. package/features/ai/ListRolesTool.d.ts +39 -0
  39. package/features/ai/ListRolesTool.js +48 -0
  40. package/features/ai/ListRolesTool.js.map +1 -0
  41. package/features/ai/ListTeamsTool.d.ts +39 -0
  42. package/features/ai/ListTeamsTool.js +48 -0
  43. package/features/ai/ListTeamsTool.js.map +1 -0
  44. package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.d.ts +11 -0
  45. package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js +37 -0
  46. package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js.map +1 -0
  47. package/features/ai/NotifyFolderChange/abstractions.d.ts +20 -0
  48. package/features/ai/NotifyFolderChange/abstractions.js +8 -0
  49. package/features/ai/NotifyFolderChange/abstractions.js.map +1 -0
  50. package/features/ai/NotifyFolderChange/index.d.ts +1 -0
  51. package/features/ai/NotifyFolderChange/index.js +1 -0
  52. package/features/ai/RevokeFolderAccessTool.d.ts +65 -0
  53. package/features/ai/RevokeFolderAccessTool.js +76 -0
  54. package/features/ai/RevokeFolderAccessTool.js.map +1 -0
  55. package/features/ai/assertTargetIsUsable.d.ts +10 -0
  56. package/features/ai/assertTargetIsUsable.js +14 -0
  57. package/features/ai/assertTargetIsUsable.js.map +1 -0
  58. package/features/ai/feature.d.ts +12 -0
  59. package/features/ai/feature.js +27 -0
  60. package/features/ai/feature.js.map +1 -0
  61. package/features/ai/index.d.ts +9 -0
  62. package/features/ai/index.js +9 -0
  63. package/features/ai/loadFolderPermissions.d.ts +16 -0
  64. package/features/ai/loadFolderPermissions.js +14 -0
  65. package/features/ai/loadFolderPermissions.js.map +1 -0
  66. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
  67. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
  68. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
  69. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
  70. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
  71. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
  72. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
  73. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
  74. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
  75. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
  76. package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
  77. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
  78. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
  79. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
  80. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
  81. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
  82. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +28 -28
  83. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
  84. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +28 -27
  85. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
  86. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +28 -28
  87. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
  88. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +28 -28
  89. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
  90. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +1 -1
  91. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
  92. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
  93. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
  94. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
  95. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
  96. package/features/cms/feature.js +19 -25
  97. package/features/cms/feature.js.map +1 -1
  98. package/features/cms/index.js +0 -2
  99. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +3 -3
  100. package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
  101. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
  102. package/features/flp/CreateFlp/abstractions.js +2 -5
  103. package/features/flp/CreateFlp/abstractions.js.map +1 -1
  104. package/features/flp/CreateFlp/feature.d.ts +1 -6
  105. package/features/flp/CreateFlp/feature.js +8 -8
  106. package/features/flp/CreateFlp/feature.js.map +1 -1
  107. package/features/flp/CreateFlp/index.js +0 -2
  108. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +27 -27
  109. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
  110. package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
  111. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
  112. package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
  113. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +3 -3
  114. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
  115. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
  116. package/features/flp/DeleteFlp/abstractions.js +2 -5
  117. package/features/flp/DeleteFlp/abstractions.js.map +1 -1
  118. package/features/flp/DeleteFlp/feature.d.ts +1 -6
  119. package/features/flp/DeleteFlp/feature.js +8 -8
  120. package/features/flp/DeleteFlp/feature.js.map +1 -1
  121. package/features/flp/DeleteFlp/index.js +0 -2
  122. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +27 -27
  123. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
  124. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
  125. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
  126. package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
  127. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
  128. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +88 -109
  129. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
  130. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
  131. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
  132. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
  133. package/features/flp/FolderLevelPermissions/abstractions.js +2 -2
  134. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
  135. package/features/flp/FolderLevelPermissions/feature.js +6 -5
  136. package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
  137. package/features/flp/FolderLevelPermissions/index.d.ts +1 -0
  138. package/features/flp/FolderLevelPermissions/index.js +1 -2
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
  140. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
  141. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
  142. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
  143. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
  144. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
  145. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
  146. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
  147. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
  148. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
  149. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
  150. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
  151. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
  152. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
  153. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
  154. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
  155. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
  156. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
  157. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
  158. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
  159. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
  160. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
  161. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
  162. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
  163. package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
  164. package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
  165. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
  166. package/features/flp/GetFlp/abstractions.js +2 -2
  167. package/features/flp/GetFlp/abstractions.js.map +1 -1
  168. package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.d.ts +13 -0
  169. package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js +26 -0
  170. package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js.map +1 -0
  171. package/features/flp/GetFlp/feature.d.ts +1 -1
  172. package/features/flp/GetFlp/feature.js +8 -8
  173. package/features/flp/GetFlp/feature.js.map +1 -1
  174. package/features/flp/GetFlp/index.js +0 -2
  175. package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
  176. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
  177. package/features/flp/ListFlps/abstractions.js +2 -2
  178. package/features/flp/ListFlps/abstractions.js.map +1 -1
  179. package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.d.ts +13 -0
  180. package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js +27 -0
  181. package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js.map +1 -0
  182. package/features/flp/ListFlps/feature.d.ts +1 -1
  183. package/features/flp/ListFlps/feature.js +8 -8
  184. package/features/flp/ListFlps/feature.js.map +1 -1
  185. package/features/flp/ListFlps/index.js +0 -2
  186. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +15 -8
  187. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +130 -186
  188. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
  189. package/features/flp/UpdateFlp/abstractions.d.ts +6 -2
  190. package/features/flp/UpdateFlp/abstractions.js +2 -5
  191. package/features/flp/UpdateFlp/abstractions.js.map +1 -1
  192. package/features/flp/UpdateFlp/feature.d.ts +1 -6
  193. package/features/flp/UpdateFlp/feature.js +12 -8
  194. package/features/flp/UpdateFlp/feature.js.map +1 -1
  195. package/features/flp/UpdateFlp/index.js +0 -2
  196. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +29 -29
  197. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
  198. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
  199. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
  200. package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
  201. package/features/flp/shared/CodeFlpMerger.d.ts +26 -0
  202. package/features/flp/shared/CodeFlpMerger.js +20 -0
  203. package/features/flp/shared/CodeFlpMerger.js.map +1 -0
  204. package/features/flp/shared/CodeFlpPath.d.ts +15 -0
  205. package/features/flp/shared/CodeFlpPath.js +29 -0
  206. package/features/flp/shared/CodeFlpPath.js.map +1 -0
  207. package/features/flp/shared/CodeFlpTarget.d.ts +10 -0
  208. package/features/flp/shared/CodeFlpTarget.js +26 -0
  209. package/features/flp/shared/CodeFlpTarget.js.map +1 -0
  210. package/features/flp/shared/CodeFlpsProvider.d.ts +14 -0
  211. package/features/flp/shared/CodeFlpsProvider.js +33 -0
  212. package/features/flp/shared/CodeFlpsProvider.js.map +1 -0
  213. package/features/flp/shared/abstractions.d.ts +77 -0
  214. package/features/flp/shared/abstractions.js +19 -0
  215. package/features/flp/shared/abstractions.js.map +1 -0
  216. package/features/flp/shared/feature.d.ts +5 -0
  217. package/features/flp/shared/feature.js +17 -0
  218. package/features/flp/shared/feature.js.map +1 -0
  219. package/features/flp/shared/index.d.ts +4 -0
  220. package/features/flp/shared/index.js +4 -0
  221. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +3 -3
  222. package/features/folder/CreateFolder/CreateFolderRepository.js +71 -91
  223. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
  224. package/features/folder/CreateFolder/CreateFolderUseCase.js +27 -30
  225. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
  226. package/features/folder/CreateFolder/abstractions.js +5 -22
  227. package/features/folder/CreateFolder/abstractions.js.map +1 -1
  228. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +9 -1
  229. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +45 -33
  230. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
  231. package/features/folder/CreateFolder/events.js +16 -14
  232. package/features/folder/CreateFolder/events.js.map +1 -1
  233. package/features/folder/CreateFolder/feature.js +8 -7
  234. package/features/folder/CreateFolder/feature.js.map +1 -1
  235. package/features/folder/CreateFolder/index.js +1 -3
  236. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +3 -3
  237. package/features/folder/DeleteFolder/DeleteFolderRepository.js +24 -21
  238. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
  239. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +35 -43
  240. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
  241. package/features/folder/DeleteFolder/abstractions.js +5 -22
  242. package/features/folder/DeleteFolder/abstractions.js.map +1 -1
  243. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +1 -1
  244. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
  245. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
  246. package/features/folder/DeleteFolder/events.js +16 -14
  247. package/features/folder/DeleteFolder/events.js.map +1 -1
  248. package/features/folder/DeleteFolder/feature.js +8 -7
  249. package/features/folder/DeleteFolder/feature.js.map +1 -1
  250. package/features/folder/DeleteFolder/index.js +1 -3
  251. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +47 -44
  252. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
  253. package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -2
  254. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
  255. package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
  256. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
  257. package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
  258. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +16 -20
  259. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
  260. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
  261. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
  262. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
  263. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +40 -44
  264. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
  265. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
  266. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
  267. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
  268. package/features/folder/FolderModelProvider.d.ts +26 -0
  269. package/features/folder/FolderModelProvider.js +22 -0
  270. package/features/folder/FolderModelProvider.js.map +1 -0
  271. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +3 -3
  272. package/features/folder/GetAncestors/GetAncestorsRepository.js +47 -76
  273. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
  274. package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
  275. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
  276. package/features/folder/GetAncestors/abstractions.js +3 -14
  277. package/features/folder/GetAncestors/abstractions.js.map +1 -1
  278. package/features/folder/GetAncestors/feature.js +7 -6
  279. package/features/folder/GetAncestors/feature.js.map +1 -1
  280. package/features/folder/GetAncestors/index.js +0 -2
  281. package/features/folder/GetFolder/GetFolderRepository.d.ts +3 -3
  282. package/features/folder/GetFolder/GetFolderRepository.js +23 -20
  283. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
  284. package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
  285. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
  286. package/features/folder/GetFolder/abstractions.js +5 -21
  287. package/features/folder/GetFolder/abstractions.js.map +1 -1
  288. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +8 -8
  289. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
  290. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
  291. package/features/folder/GetFolder/feature.js +8 -7
  292. package/features/folder/GetFolder/feature.js.map +1 -1
  293. package/features/folder/GetFolder/index.js +0 -2
  294. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +3 -3
  295. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +70 -87
  296. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
  297. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
  298. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
  299. package/features/folder/GetFolderHierarchy/abstractions.js +3 -14
  300. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
  301. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
  302. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
  303. package/features/folder/GetFolderHierarchy/feature.js +8 -7
  304. package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
  305. package/features/folder/GetFolderHierarchy/index.js +0 -2
  306. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +65 -58
  307. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
  308. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -5
  309. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
  310. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
  311. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
  312. package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
  313. package/features/folder/ListFolders/ListFoldersRepository.d.ts +3 -3
  314. package/features/folder/ListFolders/ListFoldersRepository.js +41 -42
  315. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
  316. package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
  317. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
  318. package/features/folder/ListFolders/abstractions.js +3 -14
  319. package/features/folder/ListFolders/abstractions.js.map +1 -1
  320. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
  321. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
  322. package/features/folder/ListFolders/feature.js +8 -7
  323. package/features/folder/ListFolders/feature.js.map +1 -1
  324. package/features/folder/ListFolders/index.js +0 -2
  325. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +3 -3
  326. package/features/folder/UpdateFolder/UpdateFolderRepository.js +70 -93
  327. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
  328. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +38 -45
  329. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
  330. package/features/folder/UpdateFolder/abstractions.js +5 -22
  331. package/features/folder/UpdateFolder/abstractions.js.map +1 -1
  332. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +14 -1
  333. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +91 -62
  334. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
  335. package/features/folder/UpdateFolder/events.js +16 -14
  336. package/features/folder/UpdateFolder/events.js.map +1 -1
  337. package/features/folder/UpdateFolder/feature.js +8 -7
  338. package/features/folder/UpdateFolder/feature.js.map +1 -1
  339. package/features/folder/UpdateFolder/index.js +0 -2
  340. package/features/folder/shared/EntryToFolderMapper.js +20 -19
  341. package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
  342. package/features/folder/shared/abstractions.d.ts +14 -0
  343. package/features/folder/shared/abstractions.js +5 -2
  344. package/features/folder/shared/abstractions.js.map +1 -1
  345. package/filter/filter.crud.js +28 -31
  346. package/filter/filter.crud.js.map +1 -1
  347. package/filter/filter.gql.d.ts +2 -3
  348. package/filter/filter.gql.js +72 -54
  349. package/filter/filter.gql.js.map +1 -1
  350. package/filter/filter.model.js +45 -35
  351. package/filter/filter.model.js.map +1 -1
  352. package/filter/filter.so.d.ts +8 -2
  353. package/filter/filter.so.js +85 -93
  354. package/filter/filter.so.js.map +1 -1
  355. package/filter/filter.types.js +5 -4
  356. package/filter/filter.types.js.map +1 -1
  357. package/flp/flp.crud.js +69 -86
  358. package/flp/flp.crud.js.map +1 -1
  359. package/flp/flp.types.d.ts +2 -1
  360. package/flp/flp.types.js +0 -3
  361. package/flp/index.d.ts +0 -1
  362. package/flp/index.js +0 -3
  363. package/flp/tasks/createFlp.task.d.ts +14 -8
  364. package/flp/tasks/createFlp.task.js +37 -28
  365. package/flp/tasks/createFlp.task.js.map +1 -1
  366. package/flp/tasks/deleteFlp.task.d.ts +14 -8
  367. package/flp/tasks/deleteFlp.task.js +37 -28
  368. package/flp/tasks/deleteFlp.task.js.map +1 -1
  369. package/flp/tasks/index.d.ts +0 -1
  370. package/flp/tasks/index.js +5 -17
  371. package/flp/tasks/index.js.map +1 -1
  372. package/flp/tasks/syncFlp.task.d.ts +14 -8
  373. package/flp/tasks/syncFlp.task.js +107 -114
  374. package/flp/tasks/syncFlp.task.js.map +1 -1
  375. package/flp/tasks/updateFlp.task.d.ts +14 -8
  376. package/flp/tasks/updateFlp.task.js +48 -33
  377. package/flp/tasks/updateFlp.task.js.map +1 -1
  378. package/folder/createFolderModelModifier.js +50 -50
  379. package/folder/createFolderModelModifier.js.map +1 -1
  380. package/folder/createFolderTypeDefs.js +43 -51
  381. package/folder/createFolderTypeDefs.js.map +1 -1
  382. package/folder/folder.gql.d.ts +1 -1
  383. package/folder/folder.gql.js +109 -136
  384. package/folder/folder.gql.js.map +1 -1
  385. package/folder/folder.types.js +0 -3
  386. package/index.d.ts +1 -6
  387. package/index.js +2 -9
  388. package/package.json +30 -29
  389. package/types.d.ts +1 -1
  390. package/types.js +5 -4
  391. package/types.js.map +1 -1
  392. package/utils/FoldersCacheFactory.js +20 -19
  393. package/utils/FoldersCacheFactory.js.map +1 -1
  394. package/utils/ListCache.js +20 -19
  395. package/utils/ListCache.js.map +1 -1
  396. package/utils/Path.js +5 -6
  397. package/utils/Path.js.map +1 -1
  398. package/utils/compress.js +8 -7
  399. package/utils/compress.js.map +1 -1
  400. package/utils/createListSort.js +4 -7
  401. package/utils/createListSort.js.map +1 -1
  402. package/utils/createOperationsWrapper.d.ts +5 -2
  403. package/utils/createOperationsWrapper.js +12 -19
  404. package/utils/createOperationsWrapper.js.map +1 -1
  405. package/utils/decorators/CmsEntriesCrudDecorators.js +169 -196
  406. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
  407. package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
  408. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
  409. package/utils/decorators/ListEntriesFactory.js +65 -98
  410. package/utils/decorators/ListEntriesFactory.js.map +1 -1
  411. package/utils/decorators/hasRootFolderId.js +6 -12
  412. package/utils/decorators/hasRootFolderId.js.map +1 -1
  413. package/utils/decorators/isPageModel.js +5 -10
  414. package/utils/decorators/isPageModel.js.map +1 -1
  415. package/utils/ensureAuthentication.js +6 -7
  416. package/utils/ensureAuthentication.js.map +1 -1
  417. package/utils/pickEntryFieldValues.js +24 -18
  418. package/utils/pickEntryFieldValues.js.map +1 -1
  419. package/utils/resolve.d.ts +2 -2
  420. package/utils/resolve.js +8 -7
  421. package/utils/resolve.js.map +1 -1
  422. package/createAcoContext.d.ts +0 -9
  423. package/createAcoContext.js +0 -137
  424. package/createAcoContext.js.map +0 -1
  425. package/createAcoStorageOperations.d.ts +0 -12
  426. package/createAcoStorageOperations.js +0 -10
  427. package/createAcoStorageOperations.js.map +0 -1
  428. package/createAcoTasks.d.ts +0 -1
  429. package/createAcoTasks.js +0 -15
  430. package/createAcoTasks.js.map +0 -1
  431. package/exports/api/aco/flp.js.map +0 -1
  432. package/exports/api/aco/folder.js.map +0 -1
  433. package/features/cms/index.js.map +0 -1
  434. package/features/flp/CreateFlp/index.js.map +0 -1
  435. package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
  436. package/features/flp/DeleteFlp/index.js.map +0 -1
  437. package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
  438. package/features/flp/FolderLevelPermissions/index.js.map +0 -1
  439. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
  440. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
  441. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
  442. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
  443. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
  444. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
  445. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
  446. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
  447. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
  448. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
  449. package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
  450. package/features/flp/GetFlp/index.js.map +0 -1
  451. package/features/flp/ListFlps/index.js.map +0 -1
  452. package/features/flp/UpdateFlp/index.js.map +0 -1
  453. package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
  454. package/features/folder/CreateFolder/index.js.map +0 -1
  455. package/features/folder/DeleteFolder/index.js.map +0 -1
  456. package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
  457. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
  458. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
  459. package/features/folder/GetAncestors/index.js.map +0 -1
  460. package/features/folder/GetFolder/index.js.map +0 -1
  461. package/features/folder/GetFolderHierarchy/index.js.map +0 -1
  462. package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
  463. package/features/folder/ListFolders/index.js.map +0 -1
  464. package/features/folder/UpdateFolder/index.js.map +0 -1
  465. package/flp/flp.so.d.ts +0 -20
  466. package/flp/flp.so.js +0 -220
  467. package/flp/flp.so.js.map +0 -1
  468. package/flp/flp.types.js.map +0 -1
  469. package/flp/index.js.map +0 -1
  470. package/folder/folder.types.js.map +0 -1
  471. package/index.js.map +0 -1
@@ -1,19 +1,25 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
2
  import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
3
3
  import { type ISyncFlpTaskInput } from "../../types.js";
4
4
  import { GetFolderUseCase } from "../../features/folder/GetFolder/index.js";
5
5
  import { ListFoldersUseCase } from "../../features/folder/ListFolders/index.js";
6
- declare class SyncFlpTaskImpl implements TaskDefinition.Interface<ISyncFlpTaskInput> {
6
+ declare class SyncFlpTaskHandlerImpl implements TaskHandler.Interface<ISyncFlpTaskInput> {
7
7
  private getFolder;
8
8
  private listFolders;
9
9
  private listModels;
10
- id: string;
11
- title: string;
12
- description: string;
13
- databaseLogs: boolean;
14
- selfCleanup: ("onSuccess" | "onAbort")[];
15
10
  constructor(getFolder: GetFolderUseCase.Interface, listFolders: ListFoldersUseCase.Interface, listModels: ListModelsUseCase.Interface);
16
- run({ input, controller }: TaskDefinition.RunParams<ISyncFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
11
+ run({ input, controller }: TaskHandler.RunParams<ISyncFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
12
+ }
13
+ declare class SyncFlpTaskImpl implements TaskDefinition.Interface {
14
+ readonly id = "acoSyncFlp";
15
+ readonly title = "ACO - Sync FLP record";
16
+ readonly description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
17
+ readonly databaseLogs = false;
18
+ readonly isPrivate = true;
19
+ readonly selfCleanup: ("onAbort" | "onSuccess")[];
20
+ handler: typeof SyncFlpTaskHandlerImpl & {
21
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
22
+ };
17
23
  }
18
24
  export declare const SyncFlpTask: typeof SyncFlpTaskImpl & {
19
25
  __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
@@ -1,128 +1,121 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
2
  import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
3
3
  import { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from "./index.js";
4
4
  import { FM_FILE_TYPE } from "../../constants.js";
5
5
  import { GetFolderUseCase } from "../../features/folder/GetFolder/index.js";
6
6
  import { ListFoldersUseCase } from "../../features/folder/ListFolders/index.js";
7
- class SyncFlpTaskImpl {
8
- id = SYNC_FLP_TASK_ID;
9
- title = "ACO - Sync FLP record";
10
- description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
11
- databaseLogs = false;
12
- selfCleanup = ["onSuccess", "onAbort"];
13
- constructor(getFolder, listFolders, listModels) {
14
- this.getFolder = getFolder;
15
- this.listFolders = listFolders;
16
- this.listModels = listModels;
17
- }
18
- async run({
19
- input,
20
- controller
21
- }) {
22
- try {
23
- if (controller.runtime.isAborted()) {
24
- return controller.response.aborted();
25
- }
26
-
27
- /**
28
- * `folderId` provided in the task input. We need to:
29
- *
30
- * - update the FLP records for the found folder and all its descendants.
31
- */
32
- if (input.folderId) {
33
- const result = await this.getFolder.execute(input.folderId);
34
- const folder = result.value;
35
- await controller.task.trigger({
36
- definition: UPDATE_FLP_TASK_ID,
37
- input: {
38
- folder
39
- }
40
- });
41
- return controller.response.done(`Task completed successfully: all FLP records for folderId "${input.folderId}" and its children have been queued to be synchronized.`);
42
- }
43
-
44
- /**
45
- * Full update required. We need to:
46
- *
47
- * - list cms models to collect their types, together with the default ones [FM_FILE_TYPE]
48
- * - list all root folders
49
- * - update the FLP records for the found folders and all its descendants.
50
- */
51
- if (input.type && input.type === "*") {
52
- // Some folder types are fixed: pages and files.
53
- const folderTypes = [FM_FILE_TYPE];
54
-
55
- // List all non-private models
56
- const modelsResult = await this.listModels.execute();
57
- if (modelsResult.isOk()) {
58
- const models = modelsResult.value;
59
- for (const model of models) {
60
- folderTypes.push(`cms:${model.modelId}`);
61
- }
62
- }
63
- for (const folderType of folderTypes) {
64
- const result = await this.listFolders.execute({
65
- where: {
66
- type: folderType,
67
- parentId: null
7
+ class SyncFlpTaskHandlerImpl {
8
+ constructor(getFolder, listFolders, listModels){
9
+ this.getFolder = getFolder;
10
+ this.listFolders = listFolders;
11
+ this.listModels = listModels;
12
+ }
13
+ async run({ input, controller }) {
14
+ try {
15
+ if (controller.runtime.isAborted()) return controller.response.aborted();
16
+ if (input.folderId) {
17
+ const result = await this.getFolder.execute(input.folderId);
18
+ if (result.isFail()) return controller.response.error(result.error);
19
+ const folder = result.value;
20
+ await controller.task.trigger({
21
+ definition: UPDATE_FLP_TASK_ID,
22
+ input: {
23
+ folder
24
+ }
25
+ });
26
+ return controller.response.done(`Task completed successfully: all FLP records for folderId "${input.folderId}" and its children have been queued to be synchronized.`);
68
27
  }
69
- });
70
- const {
71
- folders
72
- } = result.value;
73
- for (const folder of folders) {
74
- await controller.task.trigger({
75
- definition: UPDATE_FLP_TASK_ID,
76
- input: {
77
- folder
78
- }
79
- });
80
- }
81
- await controller.logger.info({
82
- message: `FLP Update task triggered for type ${folderType}`,
83
- data: {
84
- type: folderType
28
+ if (input.type && "*" === input.type) {
29
+ const folderTypes = [
30
+ FM_FILE_TYPE
31
+ ];
32
+ const modelsResult = await this.listModels.execute();
33
+ if (modelsResult.isOk()) {
34
+ const models = modelsResult.value;
35
+ for (const model of models)folderTypes.push(`cms:${model.modelId}`);
36
+ }
37
+ for (const folderType of folderTypes){
38
+ const result = await this.listFolders.execute({
39
+ where: {
40
+ type: folderType,
41
+ parentId: null
42
+ }
43
+ });
44
+ if (result.isFail()) {
45
+ await controller.logger.error({
46
+ message: `Failed to list root folders for type ${folderType}`,
47
+ data: {
48
+ type: folderType,
49
+ error: result.error
50
+ }
51
+ });
52
+ continue;
53
+ }
54
+ const { folders } = result.value;
55
+ for (const folder of folders)await controller.task.trigger({
56
+ definition: UPDATE_FLP_TASK_ID,
57
+ input: {
58
+ folder
59
+ }
60
+ });
61
+ await controller.logger.info({
62
+ message: `FLP Update task triggered for type ${folderType}`,
63
+ data: {
64
+ type: folderType
65
+ }
66
+ });
67
+ }
68
+ return controller.response.done("Task completed successfully: all FLP records have been queued to be synchronized.");
85
69
  }
86
- });
87
- }
88
- return controller.response.done(`Task completed successfully: all FLP records have been queued to be synchronized.`);
89
- }
90
-
91
- /**
92
- * `type` provided in the task input. We need to:
93
- *
94
- * - list all root folders for the provided type
95
- * - update the FLP records for the found folders and all its descendants.
96
- */
97
- if (input.type) {
98
- const result = await this.listFolders.execute({
99
- where: {
100
- type: input.type,
101
- parentId: null
102
- }
103
- });
104
- const {
105
- folders
106
- } = result.value;
107
- for (const folder of folders) {
108
- await controller.task.trigger({
109
- definition: UPDATE_FLP_TASK_ID,
110
- input: {
111
- folder
70
+ if (input.type) {
71
+ const result = await this.listFolders.execute({
72
+ where: {
73
+ type: input.type,
74
+ parentId: null
75
+ }
76
+ });
77
+ if (result.isFail()) return controller.response.error(result.error);
78
+ const { folders } = result.value;
79
+ for (const folder of folders)await controller.task.trigger({
80
+ definition: UPDATE_FLP_TASK_ID,
81
+ input: {
82
+ folder
83
+ }
84
+ });
85
+ return controller.response.done(`Task completed successfully: all FLP records for type "${input.type}" have been queued to be synchronized.`);
112
86
  }
113
- });
87
+ return controller.response.error("Invalid input: please provide either `type` or `folderId`.");
88
+ } catch (error) {
89
+ return controller.response.error(error);
114
90
  }
115
- return controller.response.done(`Task completed successfully: all FLP records for type "${input.type}" have been queued to be synchronized.`);
116
- }
117
- return controller.response.error("Invalid input: please provide either `type` or `folderId`.");
118
- } catch (error) {
119
- return controller.response.error(error);
120
91
  }
121
- }
122
92
  }
123
- export const SyncFlpTask = TaskDefinition.createImplementation({
124
- implementation: SyncFlpTaskImpl,
125
- dependencies: [GetFolderUseCase, ListFoldersUseCase, ListModelsUseCase]
93
+ const SyncFlpTaskHandler = TaskHandler.createImplementation({
94
+ implementation: SyncFlpTaskHandlerImpl,
95
+ dependencies: [
96
+ GetFolderUseCase,
97
+ ListFoldersUseCase,
98
+ ListModelsUseCase
99
+ ]
100
+ });
101
+ class SyncFlpTaskImpl {
102
+ constructor(){
103
+ this.id = SYNC_FLP_TASK_ID;
104
+ this.title = "ACO - Sync FLP record";
105
+ this.description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
106
+ this.databaseLogs = false;
107
+ this.isPrivate = true;
108
+ this.selfCleanup = [
109
+ "onSuccess",
110
+ "onAbort"
111
+ ];
112
+ this.handler = SyncFlpTaskHandler;
113
+ }
114
+ }
115
+ const SyncFlpTask = TaskDefinition.createImplementation({
116
+ implementation: SyncFlpTaskImpl,
117
+ dependencies: []
126
118
  });
119
+ export { SyncFlpTask };
127
120
 
128
121
  //# sourceMappingURL=syncFlp.task.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDefinition","ListModelsUseCase","SYNC_FLP_TASK_ID","UPDATE_FLP_TASK_ID","FM_FILE_TYPE","GetFolderUseCase","ListFoldersUseCase","SyncFlpTaskImpl","id","title","description","databaseLogs","selfCleanup","constructor","getFolder","listFolders","listModels","run","input","controller","runtime","isAborted","response","aborted","folderId","result","execute","folder","value","task","trigger","definition","done","type","folderTypes","modelsResult","isOk","models","model","push","modelId","folderType","where","parentId","folders","logger","info","message","data","error","SyncFlpTask","createImplementation","implementation","dependencies"],"sources":["syncFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ISyncFlpTaskInput, type IUpdateFlpTaskInput } from \"~/types.js\";\nimport { FM_FILE_TYPE } from \"~/constants.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\n\nclass SyncFlpTaskImpl implements TaskDefinition.Interface<ISyncFlpTaskInput> {\n id = SYNC_FLP_TASK_ID;\n title = \"ACO - Sync FLP record\";\n description = \"Synchronizes the FLP catalog by updating the FLP record and its descendants.\";\n databaseLogs = false;\n\n selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n constructor(\n private getFolder: GetFolderUseCase.Interface,\n private listFolders: ListFoldersUseCase.Interface,\n private listModels: ListModelsUseCase.Interface\n ) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<ISyncFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n /**\n * `folderId` provided in the task input. We need to:\n *\n * - update the FLP records for the found folder and all its descendants.\n */\n if (input.folderId) {\n const result = await this.getFolder.execute(input.folderId!);\n const folder = result.value;\n\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n\n return controller.response.done(\n `Task completed successfully: all FLP records for folderId \"${input.folderId}\" and its children have been queued to be synchronized.`\n );\n }\n\n /**\n * Full update required. We need to:\n *\n * - list cms models to collect their types, together with the default ones [FM_FILE_TYPE]\n * - list all root folders\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type && input.type === \"*\") {\n // Some folder types are fixed: pages and files.\n const folderTypes = [FM_FILE_TYPE];\n\n // List all non-private models\n const modelsResult = await this.listModels.execute();\n if (modelsResult.isOk()) {\n const models = modelsResult.value;\n for (const model of models) {\n folderTypes.push(`cms:${model.modelId}`);\n }\n }\n\n for (const folderType of folderTypes) {\n const result = await this.listFolders.execute({\n where: {\n type: folderType,\n parentId: null\n }\n });\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n await controller.logger.info({\n message: `FLP Update task triggered for type ${folderType}`,\n data: {\n type: folderType\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records have been queued to be synchronized.`\n );\n }\n\n /**\n * `type` provided in the task input. We need to:\n *\n * - list all root folders for the provided type\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type) {\n const result = await this.listFolders.execute({\n where: {\n type: input.type!,\n parentId: null\n }\n });\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records for type \"${input.type}\" have been queued to be synchronized.`\n );\n }\n\n return controller.response.error(\n \"Invalid input: please provide either `type` or `folderId`.\"\n );\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const SyncFlpTask = TaskDefinition.createImplementation({\n implementation: SyncFlpTaskImpl,\n dependencies: [GetFolderUseCase, ListFoldersUseCase, ListModelsUseCase]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"flp/tasks/syncFlp.task.js","sources":["../../../src/flp/tasks/syncFlp.task.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { SYNC_FLP_TASK_ID, UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ISyncFlpTaskInput, type IUpdateFlpTaskInput } from \"~/types.js\";\nimport { FM_FILE_TYPE } from \"~/constants.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/index.js\";\n\nclass SyncFlpTaskHandlerImpl implements TaskHandler.Interface<ISyncFlpTaskInput> {\n public constructor(\n private getFolder: GetFolderUseCase.Interface,\n private listFolders: ListFoldersUseCase.Interface,\n private listModels: ListModelsUseCase.Interface\n ) {}\n\n async run({ input, controller }: TaskHandler.RunParams<ISyncFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n /**\n * `folderId` provided in the task input. We need to:\n *\n * - update the FLP records for the found folder and all its descendants.\n */\n if (input.folderId) {\n const result = await this.getFolder.execute(input.folderId);\n if (result.isFail()) {\n return controller.response.error(result.error);\n }\n const folder = result.value;\n\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n\n return controller.response.done(\n `Task completed successfully: all FLP records for folderId \"${input.folderId}\" and its children have been queued to be synchronized.`\n );\n }\n\n /**\n * Full update required. We need to:\n *\n * - list cms models to collect their types, together with the default ones [FM_FILE_TYPE]\n * - list all root folders\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type && input.type === \"*\") {\n // Some folder types are fixed: pages and files.\n const folderTypes = [FM_FILE_TYPE];\n\n // List all non-private models\n const modelsResult = await this.listModels.execute();\n if (modelsResult.isOk()) {\n const models = modelsResult.value;\n for (const model of models) {\n folderTypes.push(`cms:${model.modelId}`);\n }\n }\n\n for (const folderType of folderTypes) {\n const result = await this.listFolders.execute({\n where: {\n type: folderType,\n parentId: null\n }\n });\n if (result.isFail()) {\n await controller.logger.error({\n message: `Failed to list root folders for type ${folderType}`,\n data: {\n type: folderType,\n error: result.error\n }\n });\n continue;\n }\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n await controller.logger.info({\n message: `FLP Update task triggered for type ${folderType}`,\n data: {\n type: folderType\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records have been queued to be synchronized.`\n );\n }\n\n /**\n * `type` provided in the task input. We need to:\n *\n * - list all root folders for the provided type\n * - update the FLP records for the found folders and all its descendants.\n */\n if (input.type) {\n const result = await this.listFolders.execute({\n where: {\n type: input.type!,\n parentId: null\n }\n });\n if (result.isFail()) {\n return controller.response.error(result.error);\n }\n\n const { folders } = result.value;\n\n for (const folder of folders) {\n await controller.task.trigger<IUpdateFlpTaskInput>({\n definition: UPDATE_FLP_TASK_ID,\n input: {\n folder\n }\n });\n }\n\n return controller.response.done(\n `Task completed successfully: all FLP records for type \"${input.type}\" have been queued to be synchronized.`\n );\n }\n\n return controller.response.error(\n \"Invalid input: please provide either `type` or `folderId`.\"\n );\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nconst SyncFlpTaskHandler = TaskHandler.createImplementation({\n implementation: SyncFlpTaskHandlerImpl,\n dependencies: [GetFolderUseCase, ListFoldersUseCase, ListModelsUseCase]\n});\n\nclass SyncFlpTaskImpl implements TaskDefinition.Interface {\n public readonly id = SYNC_FLP_TASK_ID;\n public readonly title = \"ACO - Sync FLP record\";\n public readonly description =\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants.\";\n public readonly databaseLogs = false;\n public readonly isPrivate = true;\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n handler = SyncFlpTaskHandler;\n}\n\nexport const SyncFlpTask = TaskDefinition.createImplementation({\n implementation: SyncFlpTaskImpl,\n dependencies: []\n});\n"],"names":["SyncFlpTaskHandlerImpl","getFolder","listFolders","listModels","input","controller","result","folder","UPDATE_FLP_TASK_ID","folderTypes","FM_FILE_TYPE","modelsResult","models","model","folderType","folders","error","SyncFlpTaskHandler","TaskHandler","GetFolderUseCase","ListFoldersUseCase","ListModelsUseCase","SyncFlpTaskImpl","SYNC_FLP_TASK_ID","SyncFlpTask","TaskDefinition"],"mappings":"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"}
@@ -1,15 +1,21 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
2
  import { type IUpdateFlpTaskInput } from "../../types.js";
3
3
  import { UpdateFlpUseCase } from "../../features/flp/UpdateFlp/index.js";
4
- declare class UpdateFlpTaskImpl implements TaskDefinition.Interface<IUpdateFlpTaskInput> {
4
+ declare class UpdateFlpTaskHandlerImpl implements TaskHandler.Interface<IUpdateFlpTaskInput> {
5
5
  private updateFlp;
6
- id: string;
7
- title: string;
8
- description: string;
9
- databaseLogs: boolean;
10
- selfCleanup: ("onSuccess" | "onAbort")[];
11
6
  constructor(updateFlp: UpdateFlpUseCase.Interface);
12
- run({ input, controller }: TaskDefinition.RunParams<IUpdateFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
7
+ run({ input, controller }: TaskHandler.RunParams<IUpdateFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | TaskDefinition.ResultContinue<IUpdateFlpTaskInput> | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
8
+ }
9
+ declare class UpdateFlpTaskImpl implements TaskDefinition.Interface {
10
+ readonly id = "acoUpdateFlp";
11
+ readonly title = "ACO - Update FLP record";
12
+ readonly description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
13
+ readonly databaseLogs = false;
14
+ readonly isPrivate = true;
15
+ readonly selfCleanup: ("onAbort" | "onSuccess")[];
16
+ handler: typeof UpdateFlpTaskHandlerImpl & {
17
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
18
+ };
13
19
  }
14
20
  export declare const UpdateFlpTask: typeof UpdateFlpTaskImpl & {
15
21
  __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
@@ -1,41 +1,56 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
2
  import { UPDATE_FLP_TASK_ID } from "./index.js";
3
3
  import { UpdateFlpUseCase } from "../../features/flp/UpdateFlp/index.js";
4
+ class UpdateFlpTaskHandlerImpl {
5
+ constructor(updateFlp){
6
+ this.updateFlp = updateFlp;
7
+ }
8
+ async run({ input, controller }) {
9
+ try {
10
+ if (controller.runtime.isAborted()) return controller.response.aborted();
11
+ let continuation;
12
+ await this.updateFlp.execute({
13
+ folder: input.folder,
14
+ completed: input.completed,
15
+ isCloseToTimeout: controller.runtime.isCloseToTimeout,
16
+ handleTimeout: (completed)=>{
17
+ continuation = controller.response.continue({
18
+ ...input,
19
+ completed
20
+ });
21
+ }
22
+ });
23
+ if (continuation) return continuation;
24
+ return controller.response.done("Task done: FLP record updated.");
25
+ } catch (error) {
26
+ return controller.response.error(error);
27
+ }
28
+ }
29
+ }
30
+ const UpdateFlpTaskHandler = TaskHandler.createImplementation({
31
+ implementation: UpdateFlpTaskHandlerImpl,
32
+ dependencies: [
33
+ UpdateFlpUseCase
34
+ ]
35
+ });
4
36
  class UpdateFlpTaskImpl {
5
- id = UPDATE_FLP_TASK_ID;
6
- title = "ACO - Update FLP record";
7
- description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
8
- databaseLogs = false;
9
- selfCleanup = ["onSuccess", "onAbort"];
10
- constructor(updateFlp) {
11
- this.updateFlp = updateFlp;
12
- }
13
- async run({
14
- input,
15
- controller
16
- }) {
17
- try {
18
- if (controller.runtime.isAborted()) {
19
- return controller.response.aborted();
20
- }
21
- await this.updateFlp.execute({
22
- folder: input.folder,
23
- queued: input.queued,
24
- isCloseToTimeout: controller.runtime.isCloseToTimeout,
25
- handleTimeout: queued => controller.response.continue({
26
- ...input,
27
- queued
28
- })
29
- });
30
- return controller.response.done("Task done: FLP record updated.");
31
- } catch (error) {
32
- return controller.response.error(error);
37
+ constructor(){
38
+ this.id = UPDATE_FLP_TASK_ID;
39
+ this.title = "ACO - Update FLP record";
40
+ this.description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
41
+ this.databaseLogs = false;
42
+ this.isPrivate = true;
43
+ this.selfCleanup = [
44
+ "onSuccess",
45
+ "onAbort"
46
+ ];
47
+ this.handler = UpdateFlpTaskHandler;
33
48
  }
34
- }
35
49
  }
36
- export const UpdateFlpTask = TaskDefinition.createImplementation({
37
- implementation: UpdateFlpTaskImpl,
38
- dependencies: [UpdateFlpUseCase]
50
+ const UpdateFlpTask = TaskDefinition.createImplementation({
51
+ implementation: UpdateFlpTaskImpl,
52
+ dependencies: []
39
53
  });
54
+ export { UpdateFlpTask };
40
55
 
41
56
  //# sourceMappingURL=updateFlp.task.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDefinition","UPDATE_FLP_TASK_ID","UpdateFlpUseCase","UpdateFlpTaskImpl","id","title","description","databaseLogs","selfCleanup","constructor","updateFlp","run","input","controller","runtime","isAborted","response","aborted","execute","folder","queued","isCloseToTimeout","handleTimeout","continue","done","error","UpdateFlpTask","createImplementation","implementation","dependencies"],"sources":["updateFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type IUpdateFlpTaskInput } from \"~/types.js\";\nimport { UpdateFlpUseCase } from \"~/features/flp/UpdateFlp/index.js\";\n\nclass UpdateFlpTaskImpl implements TaskDefinition.Interface<IUpdateFlpTaskInput> {\n id = UPDATE_FLP_TASK_ID;\n title = \"ACO - Update FLP record\";\n description =\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.\";\n databaseLogs = false;\n\n selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n constructor(private updateFlp: UpdateFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<IUpdateFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n await this.updateFlp.execute({\n folder: input.folder,\n queued: input.queued,\n isCloseToTimeout: controller.runtime.isCloseToTimeout,\n handleTimeout: queued => controller.response.continue({ ...input, queued })\n });\n\n return controller.response.done(\"Task done: FLP record updated.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const UpdateFlpTask = TaskDefinition.createImplementation({\n implementation: UpdateFlpTaskImpl,\n dependencies: [UpdateFlpUseCase]\n});\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,wDAAwD;AACvF,SAASC,kBAAkB;AAE3B,SAASC,gBAAgB;AAEzB,MAAMC,iBAAiB,CAA0D;EAC7EC,EAAE,GAAGH,kBAAkB;EACvBI,KAAK,GAAG,yBAAyB;EACjCC,WAAW,GACP,2GAA2G;EAC/GC,YAAY,GAAG,KAAK;EAEpBC,WAAW,GAAG,CAAC,WAAW,EAAW,SAAS,CAAU;EAExDC,WAAWA,CAASC,SAAqC,EAAE;IAAA,KAAvCA,SAAqC,GAArCA,SAAqC;EAAG;EAE5D,MAAMC,GAAGA,CAAC;IAAEC,KAAK;IAAEC;EAA0D,CAAC,EAAE;IAC5E,IAAI;MACA,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;QAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;MACxC;MAEA,MAAM,IAAI,CAACP,SAAS,CAACQ,OAAO,CAAC;QACzBC,MAAM,EAAEP,KAAK,CAACO,MAAM;QACpBC,MAAM,EAAER,KAAK,CAACQ,MAAM;QACpBC,gBAAgB,EAAER,UAAU,CAACC,OAAO,CAACO,gBAAgB;QACrDC,aAAa,EAAEF,MAAM,IAAIP,UAAU,CAACG,QAAQ,CAACO,QAAQ,CAAC;UAAE,GAAGX,KAAK;UAAEQ;QAAO,CAAC;MAC9E,CAAC,CAAC;MAEF,OAAOP,UAAU,CAACG,QAAQ,CAACQ,IAAI,CAAC,gCAAgC,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOZ,UAAU,CAACG,QAAQ,CAACS,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,aAAa,GAAG1B,cAAc,CAAC2B,oBAAoB,CAAC;EAC7DC,cAAc,EAAEzB,iBAAiB;EACjC0B,YAAY,EAAE,CAAC3B,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"flp/tasks/updateFlp.task.js","sources":["../../../src/flp/tasks/updateFlp.task.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { UPDATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type IUpdateFlpTaskInput } from \"~/types.js\";\nimport { UpdateFlpUseCase } from \"~/features/flp/UpdateFlp/index.js\";\n\nclass UpdateFlpTaskHandlerImpl implements TaskHandler.Interface<IUpdateFlpTaskInput> {\n public constructor(private updateFlp: UpdateFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskHandler.RunParams<IUpdateFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n /*\n * `response.continue()` only builds the result; it does nothing until the task returns\n * it. Returning `done` regardless used to drop the continuation, leaving the rest of a\n * large subtree with its old permissions.\n */\n let continuation: ReturnType<typeof controller.response.continue> | undefined;\n\n await this.updateFlp.execute({\n folder: input.folder,\n completed: input.completed,\n isCloseToTimeout: controller.runtime.isCloseToTimeout,\n handleTimeout: completed => {\n continuation = controller.response.continue({ ...input, completed });\n }\n });\n\n if (continuation) {\n return continuation;\n }\n\n return controller.response.done(\"Task done: FLP record updated.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nconst UpdateFlpTaskHandler = TaskHandler.createImplementation({\n implementation: UpdateFlpTaskHandlerImpl,\n dependencies: [UpdateFlpUseCase]\n});\n\nclass UpdateFlpTaskImpl implements TaskDefinition.Interface {\n public readonly id = UPDATE_FLP_TASK_ID;\n public readonly title = \"ACO - Update FLP record\";\n public readonly description =\n \"Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.\";\n public readonly databaseLogs = false;\n public readonly isPrivate = true;\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n handler = UpdateFlpTaskHandler;\n}\n\nexport const UpdateFlpTask = TaskDefinition.createImplementation({\n implementation: UpdateFlpTaskImpl,\n dependencies: []\n});\n"],"names":["UpdateFlpTaskHandlerImpl","updateFlp","input","controller","continuation","completed","error","UpdateFlpTaskHandler","TaskHandler","UpdateFlpUseCase","UpdateFlpTaskImpl","UPDATE_FLP_TASK_ID","UpdateFlpTask","TaskDefinition"],"mappings":";;;AAQA,MAAMA;IACF,YAA2BC,SAAqC,CAAE;aAAvCA,SAAS,GAATA;IAAwC;IAEnE,MAAM,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAA8C,EAAE;QACzE,IAAI;YACA,IAAIA,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAQtC,IAAIC;YAEJ,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACzB,QAAQF,MAAM,MAAM;gBACpB,WAAWA,MAAM,SAAS;gBAC1B,kBAAkBC,WAAW,OAAO,CAAC,gBAAgB;gBACrD,eAAeE,CAAAA;oBACXD,eAAeD,WAAW,QAAQ,CAAC,QAAQ,CAAC;wBAAE,GAAGD,KAAK;wBAAEG;oBAAU;gBACtE;YACJ;YAEA,IAAID,cACA,OAAOA;YAGX,OAAOD,WAAW,QAAQ,CAAC,IAAI,CAAC;QACpC,EAAE,OAAOG,OAAO;YACZ,OAAOH,WAAW,QAAQ,CAAC,KAAK,CAACG;QACrC;IACJ;AACJ;AAEA,MAAMC,uBAAuBC,YAAY,oBAAoB,CAAC;IAC1D,gBAAgBR;IAChB,cAAc;QAACS;KAAiB;AACpC;AAEA,MAAMC;;aACc,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,WAAW,GACvB;aACY,YAAY,GAAG;aACf,SAAS,GAAG;aACZ,WAAW,GAAG;YAAC;YAAsB;SAAmB;aAExE,OAAO,GAAGJ;;AACd;AAEO,MAAMK,gBAAgBC,eAAe,oBAAoB,CAAC;IAC7D,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -1,61 +1,61 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
2
  import { createModelField } from "@webiny/api-headless-cms";
3
3
  import { FOLDER_MODEL_ID } from "../domain/folder/folder.model.js";
4
- export class FolderModelFieldsModifier {
5
- fields = [];
6
- constructor(namespace) {
7
- this.namespace = namespace;
8
- }
9
- setFields(fields) {
10
- this.fields = fields;
11
- }
12
- addField(field) {
13
- const {
14
- tags,
15
- ...rest
16
- } = field;
17
- this.fields.push({
18
- ...rest,
19
- storageId: `${field.type}@${this.namespace}_${field.id}`,
20
- tags: (tags ?? []).concat([`$namespace:${this.namespace}`])
21
- });
22
- }
4
+ class FolderModelFieldsModifier {
5
+ constructor(namespace){
6
+ this.fields = [];
7
+ this.namespace = namespace;
8
+ }
9
+ setFields(fields) {
10
+ this.fields = fields;
11
+ }
12
+ addField(field) {
13
+ const { tags, ...rest } = field;
14
+ this.fields.push({
15
+ ...rest,
16
+ storageId: `${field.type}@${this.namespace}_${field.id}`,
17
+ tags: (tags ?? []).concat([
18
+ `$namespace:${this.namespace}`
19
+ ])
20
+ });
21
+ }
23
22
  }
24
- export class FolderCmsModelModifierPlugin extends Plugin {
25
- static type = "aco.folder.cms-model-modifier";
26
- constructor(params) {
27
- super();
28
- this.modifier = params.modifier;
29
- this.callback = params.callback;
30
- }
31
- async modifyModel(model) {
32
- if (model.modelId !== FOLDER_MODEL_ID) {
33
- return;
23
+ class FolderCmsModelModifierPlugin extends Plugin {
24
+ static{
25
+ this.type = "aco.folder.cms-model-modifier";
34
26
  }
35
- let extensionsField = model.fields.find(field => field.fieldId === "extensions");
36
- if (!extensionsField) {
37
- extensionsField = createModelField({
38
- label: "Extensions",
39
- type: "object",
40
- settings: {
41
- layout: [],
42
- fields: []
27
+ constructor(params){
28
+ super();
29
+ this.modifier = params.modifier;
30
+ this.callback = params.callback;
31
+ }
32
+ async modifyModel(model) {
33
+ if (model.modelId !== FOLDER_MODEL_ID) return;
34
+ let extensionsField = model.fields.find((field)=>"extensions" === field.fieldId);
35
+ if (!extensionsField) {
36
+ extensionsField = createModelField({
37
+ label: "Extensions",
38
+ type: "object",
39
+ settings: {
40
+ layout: [],
41
+ fields: []
42
+ }
43
+ });
44
+ model.fields.push(extensionsField);
43
45
  }
44
- });
45
- model.fields.push(extensionsField);
46
+ this.modifier.setFields(extensionsField.settings.fields);
47
+ await this.callback({
48
+ modifier: this.modifier
49
+ });
46
50
  }
47
- this.modifier.setFields(extensionsField.settings.fields);
48
- await this.callback({
49
- modifier: this.modifier
50
- });
51
- }
52
51
  }
53
- export const createFolderModelModifier = callback => {
54
- const modifier = new FolderModelFieldsModifier("global");
55
- return new FolderCmsModelModifierPlugin({
56
- callback,
57
- modifier
58
- });
52
+ const createFolderModelModifier = (callback)=>{
53
+ const modifier = new FolderModelFieldsModifier("global");
54
+ return new FolderCmsModelModifierPlugin({
55
+ callback,
56
+ modifier
57
+ });
59
58
  };
59
+ export { FolderCmsModelModifierPlugin, FolderModelFieldsModifier, createFolderModelModifier };
60
60
 
61
61
  //# sourceMappingURL=createFolderModelModifier.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Plugin","createModelField","FOLDER_MODEL_ID","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","FolderCmsModelModifierPlugin","params","modifier","callback","modifyModel","model","modelId","extensionsField","find","fieldId","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FOLDER_MODEL_ID } from \"~/domain/folder/folder.model.js\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAExC,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,SAASC,eAAe;AASxB,OAAO,MAAMC,yBAAyB,CAAuC;EACjEC,MAAM,GAAqB,EAAE;EAGrCC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,SAASA,CAACH,MAAwB,EAAE;IAChC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAI,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAE/B,IAAI,CAACL,MAAM,CAACQ,IAAI,CAAC;MACb,GAAGD,IAAI;MACPE,SAAS,EAAE,GAAGJ,KAAK,CAACK,IAAI,IAAI,IAAI,CAACR,SAAS,IAAIG,KAAK,CAACM,EAAE,EAAE;MACxDL,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEM,MAAM,CAAC,CAAC,cAAc,IAAI,CAACV,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC;EACN;AACJ;AAeA,OAAO,MAAMW,4BAA4B,SAASjB,MAAM,CAAC;EACrD,OAAuBc,IAAI,GAAG,+BAA+B;EAI7DT,WAAWA,CAACa,MAA0C,EAAE;IACpD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAC/B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;EACnC;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACC,OAAO,KAAKrB,eAAe,EAAE;MACnC;IACJ;IAEA,IAAIsB,eAAe,GAAGF,KAAK,CAAClB,MAAM,CAACqB,IAAI,CAAChB,KAAK,IAAIA,KAAK,CAACiB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAGvB,gBAAgB,CAAC;QAC/B0B,KAAK,EAAE,YAAY;QACnBb,IAAI,EAAE,QAAQ;QACdc,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVzB,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFkB,KAAK,CAAClB,MAAM,CAACQ,IAAI,CAACY,eAAe,CAAC;IACtC;IAEA,IAAI,CAACL,QAAQ,CAACZ,SAAS,CAACiB,eAAe,CAACI,QAAQ,CAAExB,MAAO,CAAC;IAE1D,MAAM,IAAI,CAACgB,QAAQ,CAAC;MAAED,QAAQ,EAAE,IAAI,CAACA;IAAS,CAAC,CAAC;EACpD;AACJ;AAEA,OAAO,MAAMW,yBAAyB,GAAIV,QAAkC,IAAK;EAC7E,MAAMD,QAAQ,GAAG,IAAIhB,yBAAyB,CAAC,QAAQ,CAAC;EAExD,OAAO,IAAIc,4BAA4B,CAAC;IACpCG,QAAQ;IACRD;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"folder/createFolderModelModifier.js","sources":["../../src/folder/createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FOLDER_MODEL_ID } from \"~/domain/folder/folder.model.js\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"names":["FolderModelFieldsModifier","namespace","fields","field","tags","rest","FolderCmsModelModifierPlugin","Plugin","params","model","FOLDER_MODEL_ID","extensionsField","createModelField","createFolderModelModifier","callback","modifier"],"mappings":";;;AAaO,MAAMA;IAIT,YAAYC,SAAiB,CAAE;aAHvB,MAAM,GAAqB,EAAE;QAIjC,IAAI,CAAC,SAAS,GAAGA;IACrB;IAEA,UAAUC,MAAwB,EAAE;QAChC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,SAASC,KAAoB,EAAE;QAC3B,MAAM,EAAEC,IAAI,EAAE,GAAGC,MAAM,GAAGF;QAE1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,GAAGE,IAAI;YACP,WAAW,GAAGF,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAEA,MAAM,EAAE,EAAE;YACxD,MAAOC,AAAAA,CAAAA,QAAQ,EAAC,EAAG,MAAM,CAAC;gBAAC,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE;aAAC;QAC9D;IACJ;AACJ;AAeO,MAAME,qCAAqCC;;aACvB,IAAI,GAAG;;IAI9B,YAAYC,MAA0C,CAAE;QACpD,KAAK;QACL,IAAI,CAAC,QAAQ,GAAGA,OAAO,QAAQ;QAC/B,IAAI,CAAC,QAAQ,GAAGA,OAAO,QAAQ;IACnC;IAEA,MAAM,YAAYC,KAA0B,EAAiB;QACzD,IAAIA,MAAM,OAAO,KAAKC,iBAClB;QAGJ,IAAIC,kBAAkBF,MAAM,MAAM,CAAC,IAAI,CAACN,CAAAA,QAASA,AAAkB,iBAAlBA,MAAM,OAAO;QAC9D,IAAI,CAACQ,iBAAiB;YAClBA,kBAAkBC,iBAAiB;gBAC/B,OAAO;gBACP,MAAM;gBACN,UAAU;oBACN,QAAQ,EAAE;oBACV,QAAQ,EAAE;gBACd;YACJ;YACAH,MAAM,MAAM,CAAC,IAAI,CAACE;QACtB;QAEA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAACA,gBAAgB,QAAQ,CAAE,MAAM;QAExD,MAAM,IAAI,CAAC,QAAQ,CAAC;YAAE,UAAU,IAAI,CAAC,QAAQ;QAAC;IAClD;AACJ;AAEO,MAAME,4BAA4B,CAACC;IACtC,MAAMC,WAAW,IAAIf,0BAA0B;IAE/C,OAAO,IAAIM,6BAA6B;QACpCQ;QACAC;IACJ;AACJ"}