@webiny/api-aco 0.0.0-unstable.b14eaecf38 → 0.0.0-unstable.b6d7105cee

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 (560) hide show
  1. package/README.md +6 -28
  2. package/constants.d.ts +2 -0
  3. package/constants.js +5 -0
  4. package/constants.js.map +1 -0
  5. package/createAcoContext.d.ts +2 -2
  6. package/createAcoContext.js +111 -61
  7. package/createAcoContext.js.map +1 -1
  8. package/createAcoGraphQL.d.ts +3 -2
  9. package/createAcoGraphQL.js +55 -37
  10. package/createAcoGraphQL.js.map +1 -1
  11. package/createAcoTasks.d.ts +1 -0
  12. package/createAcoTasks.js +14 -0
  13. package/createAcoTasks.js.map +1 -0
  14. package/domain/folder/abstractions.d.ts +9 -0
  15. package/domain/folder/abstractions.js +5 -0
  16. package/domain/folder/abstractions.js.map +1 -0
  17. package/domain/folder/errors.d.ts +29 -0
  18. package/domain/folder/errors.js +51 -0
  19. package/domain/folder/errors.js.map +1 -0
  20. package/domain/folder/folder.model.d.ts +9 -0
  21. package/domain/folder/folder.model.js +58 -0
  22. package/domain/folder/folder.model.js.map +1 -0
  23. package/exports/api/aco/flp.d.ts +6 -0
  24. package/exports/api/aco/flp.js +6 -0
  25. package/exports/api/aco/folder.d.ts +11 -0
  26. package/exports/api/aco/folder.js +10 -0
  27. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
  28. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +39 -0
  29. package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
  30. package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
  31. package/features/cms/decorators/CreateEntryWithFlpDecorator.js +33 -0
  32. package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
  33. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
  34. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +39 -0
  35. package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
  36. package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
  37. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +41 -0
  38. package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
  39. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
  40. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +36 -0
  41. package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
  42. package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
  43. package/features/cms/decorators/GetEntryWithFlpDecorator.js +36 -0
  44. package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
  45. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
  46. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +41 -0
  47. package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
  48. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
  49. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +41 -0
  50. package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
  51. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
  52. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
  53. package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
  54. package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
  55. package/features/cms/decorators/ListEntriesWithFlpDecorator.js +36 -0
  56. package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
  57. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
  58. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
  59. package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
  60. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
  61. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
  62. package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
  63. package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
  64. package/features/cms/decorators/MoveEntryWithFlpDecorator.js +49 -0
  65. package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
  66. package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +14 -0
  67. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +39 -0
  68. package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
  69. package/features/cms/feature.d.ts +4 -0
  70. package/features/cms/feature.js +37 -0
  71. package/features/cms/feature.js.map +1 -0
  72. package/features/cms/index.d.ts +1 -0
  73. package/features/cms/index.js +1 -0
  74. package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
  75. package/features/flp/CreateFlp/CreateFlpUseCase.js +34 -0
  76. package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
  77. package/features/flp/CreateFlp/abstractions.d.ts +9 -0
  78. package/features/flp/CreateFlp/abstractions.js +5 -0
  79. package/features/flp/CreateFlp/abstractions.js.map +1 -0
  80. package/features/flp/CreateFlp/feature.d.ts +10 -0
  81. package/features/flp/CreateFlp/feature.js +12 -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 +2 -0
  85. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
  86. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
  87. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
  88. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -0
  89. package/features/flp/CreateFlpOnFolderCreated/feature.js +11 -0
  90. package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
  91. package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
  92. package/features/flp/CreateFlpOnFolderCreated/index.js +1 -0
  93. package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
  94. package/features/flp/DeleteFlp/DeleteFlpUseCase.js +22 -0
  95. package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
  96. package/features/flp/DeleteFlp/abstractions.d.ts +9 -0
  97. package/features/flp/DeleteFlp/abstractions.js +5 -0
  98. package/features/flp/DeleteFlp/abstractions.js.map +1 -0
  99. package/features/flp/DeleteFlp/feature.d.ts +10 -0
  100. package/features/flp/DeleteFlp/feature.js +12 -0
  101. package/features/flp/DeleteFlp/feature.js.map +1 -0
  102. package/features/flp/DeleteFlp/index.d.ts +2 -0
  103. package/features/flp/DeleteFlp/index.js +2 -0
  104. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
  105. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
  106. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
  107. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -0
  108. package/features/flp/DeleteFlpOnFolderDeleted/feature.js +11 -0
  109. package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
  110. package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
  111. package/features/flp/DeleteFlpOnFolderDeleted/index.js +1 -0
  112. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
  113. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +112 -0
  114. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
  115. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
  116. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
  117. package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
  118. package/features/flp/FolderLevelPermissions/abstractions.d.ts +26 -0
  119. package/features/flp/FolderLevelPermissions/abstractions.js +5 -0
  120. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
  121. package/features/flp/FolderLevelPermissions/feature.d.ts +5 -0
  122. package/features/flp/FolderLevelPermissions/feature.js +11 -0
  123. package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
  124. package/features/flp/FolderLevelPermissions/index.d.ts +3 -0
  125. package/features/flp/FolderLevelPermissions/index.js +3 -0
  126. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
  127. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +19 -0
  128. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
  129. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
  130. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -0
  131. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
  132. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +1 -0
  133. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
  134. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +17 -0
  135. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
  136. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
  137. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -0
  138. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
  139. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +1 -0
  140. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
  141. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +8 -0
  142. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
  143. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
  144. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -0
  145. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
  146. package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +1 -0
  147. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
  148. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +8 -0
  149. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
  150. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
  151. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -0
  152. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
  153. package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +1 -0
  154. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
  155. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +47 -0
  156. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
  157. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
  158. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +14 -0
  159. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
  160. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
  161. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +27 -0
  162. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
  163. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
  164. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -0
  165. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
  166. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +2 -0
  167. package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
  168. package/features/flp/FolderLevelPermissions/useCases/index.js +5 -0
  169. package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
  170. package/features/flp/GetFlp/GetFlpUseCase.js +11 -0
  171. package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
  172. package/features/flp/GetFlp/abstractions.d.ts +9 -0
  173. package/features/flp/GetFlp/abstractions.js +5 -0
  174. package/features/flp/GetFlp/abstractions.js.map +1 -0
  175. package/features/flp/GetFlp/feature.d.ts +4 -0
  176. package/features/flp/GetFlp/feature.js +12 -0
  177. package/features/flp/GetFlp/feature.js.map +1 -0
  178. package/features/flp/GetFlp/index.d.ts +1 -0
  179. package/features/flp/GetFlp/index.js +1 -0
  180. package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
  181. package/features/flp/ListFlps/ListFlpsUseCase.js +11 -0
  182. package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
  183. package/features/flp/ListFlps/abstractions.d.ts +17 -0
  184. package/features/flp/ListFlps/abstractions.js +5 -0
  185. package/features/flp/ListFlps/abstractions.js.map +1 -0
  186. package/features/flp/ListFlps/feature.d.ts +4 -0
  187. package/features/flp/ListFlps/feature.js +12 -0
  188. package/features/flp/ListFlps/feature.js.map +1 -0
  189. package/features/flp/ListFlps/index.d.ts +1 -0
  190. package/features/flp/ListFlps/index.js +1 -0
  191. package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
  192. package/features/flp/UpdateFlp/UpdateFlpUseCase.js +152 -0
  193. package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
  194. package/features/flp/UpdateFlp/abstractions.d.ts +15 -0
  195. package/features/flp/UpdateFlp/abstractions.js +5 -0
  196. package/features/flp/UpdateFlp/abstractions.js.map +1 -0
  197. package/features/flp/UpdateFlp/feature.d.ts +10 -0
  198. package/features/flp/UpdateFlp/feature.js +12 -0
  199. package/features/flp/UpdateFlp/feature.js.map +1 -0
  200. package/features/flp/UpdateFlp/index.d.ts +2 -0
  201. package/features/flp/UpdateFlp/index.js +2 -0
  202. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
  203. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
  204. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
  205. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -0
  206. package/features/flp/UpdateFlpOnFolderUpdated/feature.js +11 -0
  207. package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
  208. package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
  209. package/features/flp/UpdateFlpOnFolderUpdated/index.js +1 -0
  210. package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
  211. package/features/folder/CreateFolder/CreateFolderRepository.js +85 -0
  212. package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
  213. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
  214. package/features/folder/CreateFolder/CreateFolderUseCase.js +36 -0
  215. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
  216. package/features/folder/CreateFolder/abstractions.d.ts +59 -0
  217. package/features/folder/CreateFolder/abstractions.js +8 -0
  218. package/features/folder/CreateFolder/abstractions.js.map +1 -0
  219. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
  220. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +39 -0
  221. package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
  222. package/features/folder/CreateFolder/events.d.ts +10 -0
  223. package/features/folder/CreateFolder/events.js +21 -0
  224. package/features/folder/CreateFolder/events.js.map +1 -0
  225. package/features/folder/CreateFolder/feature.d.ts +5 -0
  226. package/features/folder/CreateFolder/feature.js +15 -0
  227. package/features/folder/CreateFolder/feature.js.map +1 -0
  228. package/features/folder/CreateFolder/index.d.ts +2 -0
  229. package/features/folder/CreateFolder/index.js +2 -0
  230. package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
  231. package/features/folder/DeleteFolder/DeleteFolderRepository.js +32 -0
  232. package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
  233. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
  234. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +47 -0
  235. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
  236. package/features/folder/DeleteFolder/abstractions.d.ts +59 -0
  237. package/features/folder/DeleteFolder/abstractions.js +8 -0
  238. package/features/folder/DeleteFolder/abstractions.js.map +1 -0
  239. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
  240. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +29 -0
  241. package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
  242. package/features/folder/DeleteFolder/events.d.ts +10 -0
  243. package/features/folder/DeleteFolder/events.js +21 -0
  244. package/features/folder/DeleteFolder/events.js.map +1 -0
  245. package/features/folder/DeleteFolder/feature.d.ts +5 -0
  246. package/features/folder/DeleteFolder/feature.js +15 -0
  247. package/features/folder/DeleteFolder/feature.js.map +1 -0
  248. package/features/folder/DeleteFolder/index.d.ts +2 -0
  249. package/features/folder/DeleteFolder/index.js +2 -0
  250. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
  251. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +59 -0
  252. package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
  253. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +21 -0
  254. package/features/folder/EnsureFolderIsEmpty/abstractions.js +5 -0
  255. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
  256. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -0
  257. package/features/folder/EnsureFolderIsEmpty/feature.js +11 -0
  258. package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
  259. package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
  260. package/features/folder/EnsureFolderIsEmpty/index.js +1 -0
  261. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
  262. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +25 -0
  263. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
  264. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +10 -0
  265. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +11 -0
  266. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
  267. package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
  268. package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +1 -0
  269. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
  270. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +52 -0
  271. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
  272. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -0
  273. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +11 -0
  274. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
  275. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
  276. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +1 -0
  277. package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
  278. package/features/folder/GetAncestors/GetAncestorsRepository.js +58 -0
  279. package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
  280. package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
  281. package/features/folder/GetAncestors/GetAncestorsUseCase.js +20 -0
  282. package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
  283. package/features/folder/GetAncestors/abstractions.d.ts +40 -0
  284. package/features/folder/GetAncestors/abstractions.js +6 -0
  285. package/features/folder/GetAncestors/abstractions.js.map +1 -0
  286. package/features/folder/GetAncestors/feature.d.ts +5 -0
  287. package/features/folder/GetAncestors/feature.js +13 -0
  288. package/features/folder/GetAncestors/feature.js.map +1 -0
  289. package/features/folder/GetAncestors/index.d.ts +2 -0
  290. package/features/folder/GetAncestors/index.js +2 -0
  291. package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
  292. package/features/folder/GetFolder/GetFolderRepository.js +33 -0
  293. package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
  294. package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
  295. package/features/folder/GetFolder/GetFolderUseCase.js +20 -0
  296. package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
  297. package/features/folder/GetFolder/abstractions.d.ts +57 -0
  298. package/features/folder/GetFolder/abstractions.js +8 -0
  299. package/features/folder/GetFolder/abstractions.js.map +1 -0
  300. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
  301. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +34 -0
  302. package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
  303. package/features/folder/GetFolder/feature.d.ts +5 -0
  304. package/features/folder/GetFolder/feature.js +15 -0
  305. package/features/folder/GetFolder/feature.js.map +1 -0
  306. package/features/folder/GetFolder/index.d.ts +2 -0
  307. package/features/folder/GetFolder/index.js +2 -0
  308. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
  309. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +84 -0
  310. package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
  311. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
  312. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +20 -0
  313. package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
  314. package/features/folder/GetFolderHierarchy/abstractions.d.ts +38 -0
  315. package/features/folder/GetFolderHierarchy/abstractions.js +6 -0
  316. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
  317. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
  318. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +63 -0
  319. package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
  320. package/features/folder/GetFolderHierarchy/feature.d.ts +5 -0
  321. package/features/folder/GetFolderHierarchy/feature.js +15 -0
  322. package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
  323. package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
  324. package/features/folder/GetFolderHierarchy/index.js +2 -0
  325. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
  326. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +75 -0
  327. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
  328. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +11 -0
  329. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +5 -0
  330. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
  331. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -0
  332. package/features/folder/ListFolderLevelPermissionsTargets/feature.js +11 -0
  333. package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
  334. package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
  335. package/features/folder/ListFolderLevelPermissionsTargets/index.js +1 -0
  336. package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
  337. package/features/folder/ListFolders/ListFoldersRepository.js +52 -0
  338. package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
  339. package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
  340. package/features/folder/ListFolders/ListFoldersUseCase.js +20 -0
  341. package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
  342. package/features/folder/ListFolders/abstractions.d.ts +44 -0
  343. package/features/folder/ListFolders/abstractions.js +6 -0
  344. package/features/folder/ListFolders/abstractions.js.map +1 -0
  345. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
  346. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +65 -0
  347. package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
  348. package/features/folder/ListFolders/feature.d.ts +5 -0
  349. package/features/folder/ListFolders/feature.js +15 -0
  350. package/features/folder/ListFolders/feature.js.map +1 -0
  351. package/features/folder/ListFolders/index.d.ts +2 -0
  352. package/features/folder/ListFolders/index.js +2 -0
  353. package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
  354. package/features/folder/UpdateFolder/UpdateFolderRepository.js +84 -0
  355. package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
  356. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
  357. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +48 -0
  358. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
  359. package/features/folder/UpdateFolder/abstractions.d.ts +64 -0
  360. package/features/folder/UpdateFolder/abstractions.js +8 -0
  361. package/features/folder/UpdateFolder/abstractions.js.map +1 -0
  362. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
  363. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +58 -0
  364. package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
  365. package/features/folder/UpdateFolder/events.d.ts +10 -0
  366. package/features/folder/UpdateFolder/events.js +21 -0
  367. package/features/folder/UpdateFolder/events.js.map +1 -0
  368. package/features/folder/UpdateFolder/feature.d.ts +5 -0
  369. package/features/folder/UpdateFolder/feature.js +15 -0
  370. package/features/folder/UpdateFolder/feature.js.map +1 -0
  371. package/features/folder/UpdateFolder/index.d.ts +2 -0
  372. package/features/folder/UpdateFolder/index.js +2 -0
  373. package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
  374. package/features/folder/shared/EntryToFolderMapper.js +23 -0
  375. package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
  376. package/features/folder/shared/abstractions.d.ts +10 -0
  377. package/features/folder/shared/abstractions.js +6 -0
  378. package/features/folder/shared/abstractions.js.map +1 -0
  379. package/filter/filter.crud.d.ts +3 -0
  380. package/filter/filter.crud.js +30 -0
  381. package/filter/filter.crud.js.map +1 -0
  382. package/filter/filter.gql.d.ts +3 -0
  383. package/filter/filter.gql.js +130 -0
  384. package/filter/filter.gql.js.map +1 -0
  385. package/filter/filter.model.d.ts +9 -0
  386. package/filter/filter.model.js +50 -0
  387. package/filter/filter.model.js.map +1 -0
  388. package/filter/filter.so.d.ts +11 -0
  389. package/filter/filter.so.js +84 -0
  390. package/filter/filter.so.js.map +1 -0
  391. package/filter/filter.types.d.ts +67 -0
  392. package/filter/filter.types.js +8 -0
  393. package/filter/filter.types.js.map +1 -0
  394. package/flp/flp.crud.d.ts +7 -0
  395. package/flp/flp.crud.js +74 -0
  396. package/flp/flp.crud.js.map +1 -0
  397. package/flp/flp.types.d.ts +93 -0
  398. package/flp/flp.types.js +0 -0
  399. package/flp/index.d.ts +2 -0
  400. package/flp/index.js +2 -0
  401. package/flp/tasks/createFlp.task.d.ts +18 -0
  402. package/flp/tasks/createFlp.task.js +36 -0
  403. package/flp/tasks/createFlp.task.js.map +1 -0
  404. package/flp/tasks/deleteFlp.task.d.ts +18 -0
  405. package/flp/tasks/deleteFlp.task.js +36 -0
  406. package/flp/tasks/deleteFlp.task.js.map +1 -0
  407. package/flp/tasks/index.d.ts +5 -0
  408. package/flp/tasks/index.js +20 -0
  409. package/flp/tasks/index.js.map +1 -0
  410. package/flp/tasks/syncFlp.task.d.ts +22 -0
  411. package/flp/tasks/syncFlp.task.js +112 -0
  412. package/flp/tasks/syncFlp.task.js.map +1 -0
  413. package/flp/tasks/updateFlp.task.d.ts +18 -0
  414. package/flp/tasks/updateFlp.task.js +43 -0
  415. package/flp/tasks/updateFlp.task.js.map +1 -0
  416. package/folder/createFolderModelModifier.d.ts +36 -0
  417. package/folder/createFolderModelModifier.js +61 -0
  418. package/folder/createFolderModelModifier.js.map +1 -0
  419. package/folder/createFolderTypeDefs.d.ts +8 -0
  420. package/folder/createFolderTypeDefs.js +175 -0
  421. package/folder/createFolderTypeDefs.js.map +1 -0
  422. package/folder/folder.gql.d.ts +4 -3
  423. package/folder/folder.gql.js +123 -101
  424. package/folder/folder.gql.js.map +1 -1
  425. package/folder/folder.types.d.ts +51 -58
  426. package/folder/folder.types.js +0 -5
  427. package/index.d.ts +3 -3
  428. package/index.js +12 -27
  429. package/index.js.map +1 -1
  430. package/package.json +34 -39
  431. package/types.d.ts +27 -22
  432. package/types.js +8 -38
  433. package/types.js.map +1 -1
  434. package/utils/FoldersCacheFactory.d.ts +10 -0
  435. package/utils/FoldersCacheFactory.js +25 -0
  436. package/utils/FoldersCacheFactory.js.map +1 -0
  437. package/utils/ListCache.d.ts +23 -0
  438. package/utils/ListCache.js +24 -0
  439. package/utils/ListCache.js.map +1 -0
  440. package/utils/Path.d.ts +3 -0
  441. package/utils/Path.js +10 -0
  442. package/utils/Path.js.map +1 -0
  443. package/utils/compress.d.ts +4 -0
  444. package/utils/compress.js +13 -0
  445. package/utils/compress.js.map +1 -0
  446. package/utils/createListSort.d.ts +3 -2
  447. package/utils/createListSort.js +6 -12
  448. package/utils/createListSort.js.map +1 -1
  449. package/utils/createOperationsWrapper.d.ts +6 -3
  450. package/utils/createOperationsWrapper.js +14 -28
  451. package/utils/createOperationsWrapper.js.map +1 -1
  452. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  453. package/utils/decorators/CmsEntriesCrudDecorators.js +175 -0
  454. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  455. package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
  456. package/utils/decorators/FilterEntriesByFolderFactory.js +22 -0
  457. package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
  458. package/utils/decorators/ListEntriesFactory.d.ts +17 -0
  459. package/utils/decorators/ListEntriesFactory.js +73 -0
  460. package/utils/decorators/ListEntriesFactory.js.map +1 -0
  461. package/utils/decorators/hasRootFolderId.d.ts +7 -0
  462. package/utils/decorators/hasRootFolderId.js +13 -0
  463. package/utils/decorators/hasRootFolderId.js.map +1 -0
  464. package/utils/decorators/isPageModel.d.ts +5 -0
  465. package/utils/decorators/isPageModel.js +8 -0
  466. package/utils/decorators/isPageModel.js.map +1 -0
  467. package/utils/ensureAuthentication.d.ts +2 -0
  468. package/utils/ensureAuthentication.js +11 -0
  469. package/utils/ensureAuthentication.js.map +1 -0
  470. package/utils/pickEntryFieldValues.d.ts +3 -0
  471. package/utils/pickEntryFieldValues.js +29 -0
  472. package/utils/pickEntryFieldValues.js.map +1 -0
  473. package/utils/resolve.d.ts +2 -2
  474. package/utils/resolve.js +10 -14
  475. package/utils/resolve.js.map +1 -1
  476. package/context/folders.d.ts +0 -2
  477. package/context/folders.js +0 -261
  478. package/context/folders.js.map +0 -1
  479. package/context/index.d.ts +0 -2
  480. package/context/index.js +0 -22
  481. package/context/index.js.map +0 -1
  482. package/context/links.d.ts +0 -2
  483. package/context/links.js +0 -270
  484. package/context/links.js.map +0 -1
  485. package/createAcoCrud.d.ts +0 -2
  486. package/createAcoCrud.js +0 -17
  487. package/createAcoCrud.js.map +0 -1
  488. package/createAcoFields.d.ts +0 -2
  489. package/createAcoFields.js +0 -40
  490. package/createAcoFields.js.map +0 -1
  491. package/createAcoHooks.d.ts +0 -2
  492. package/createAcoHooks.js +0 -11
  493. package/createAcoHooks.js.map +0 -1
  494. package/createAcoModels.d.ts +0 -2
  495. package/createAcoModels.js +0 -65
  496. package/createAcoModels.js.map +0 -1
  497. package/createAcoStorageOperations.d.ts +0 -10
  498. package/createAcoStorageOperations.js +0 -19
  499. package/createAcoStorageOperations.js.map +0 -1
  500. package/folder/folder.crud.d.ts +0 -3
  501. package/folder/folder.crud.js +0 -92
  502. package/folder/folder.crud.js.map +0 -1
  503. package/folder/folder.model.d.ts +0 -4
  504. package/folder/folder.model.js +0 -75
  505. package/folder/folder.model.js.map +0 -1
  506. package/folder/folder.so.d.ts +0 -3
  507. package/folder/folder.so.js +0 -151
  508. package/folder/folder.so.js.map +0 -1
  509. package/folder/folder.types.js.map +0 -1
  510. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  511. package/folder/onFolderBeforeDelete.hook.js +0 -53
  512. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  513. package/graphql/base.gql.d.ts +0 -3
  514. package/graphql/base.gql.js +0 -63
  515. package/graphql/base.gql.js.map +0 -1
  516. package/graphql/folders.gql.d.ts +0 -3
  517. package/graphql/folders.gql.js +0 -126
  518. package/graphql/folders.gql.js.map +0 -1
  519. package/graphql/index.d.ts +0 -1
  520. package/graphql/index.js +0 -15
  521. package/graphql/index.js.map +0 -1
  522. package/graphql/links.gql.d.ts +0 -3
  523. package/graphql/links.gql.js +0 -123
  524. package/graphql/links.gql.js.map +0 -1
  525. package/record/record.crud.d.ts +0 -3
  526. package/record/record.crud.js +0 -92
  527. package/record/record.crud.js.map +0 -1
  528. package/record/record.gql.d.ts +0 -3
  529. package/record/record.gql.js +0 -123
  530. package/record/record.gql.js.map +0 -1
  531. package/record/record.model.d.ts +0 -4
  532. package/record/record.model.js +0 -62
  533. package/record/record.model.js.map +0 -1
  534. package/record/record.so.d.ts +0 -3
  535. package/record/record.so.js +0 -100
  536. package/record/record.so.js.map +0 -1
  537. package/record/record.types.d.ts +0 -96
  538. package/record/record.types.js +0 -5
  539. package/record/record.types.js.map +0 -1
  540. package/subscriptions/afterFolderDelete.d.ts +0 -3
  541. package/subscriptions/afterFolderDelete.js +0 -62
  542. package/subscriptions/afterFolderDelete.js.map +0 -1
  543. package/subscriptions/index.d.ts +0 -3
  544. package/subscriptions/index.js +0 -14
  545. package/subscriptions/index.js.map +0 -1
  546. package/utils/createModelField.d.ts +0 -5
  547. package/utils/createModelField.js +0 -37
  548. package/utils/createModelField.js.map +0 -1
  549. package/utils/fieldResolver.d.ts +0 -16
  550. package/utils/fieldResolver.js +0 -44
  551. package/utils/fieldResolver.js.map +0 -1
  552. package/utils/getFieldValues.d.ts +0 -2
  553. package/utils/getFieldValues.js +0 -19
  554. package/utils/getFieldValues.js.map +0 -1
  555. package/utils/isInstallationPending.d.ts +0 -4
  556. package/utils/isInstallationPending.js +0 -21
  557. package/utils/isInstallationPending.js.map +0 -1
  558. package/utils/modelFactory.d.ts +0 -15
  559. package/utils/modelFactory.js +0 -25
  560. package/utils/modelFactory.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import { UPDATE_FLP_TASK_ID } from "./index.js";
3
+ import { UpdateFlpUseCase } from "../../features/flp/UpdateFlp/index.js";
4
+ class UpdateFlpTaskImpl {
5
+ constructor(updateFlp){
6
+ this.updateFlp = updateFlp;
7
+ this.id = UPDATE_FLP_TASK_ID;
8
+ this.title = "ACO - Update FLP record";
9
+ this.description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
10
+ this.databaseLogs = false;
11
+ this.isPrivate = true;
12
+ this.selfCleanup = [
13
+ "onSuccess",
14
+ "onAbort"
15
+ ];
16
+ }
17
+ async run({ input, controller }) {
18
+ try {
19
+ if (controller.runtime.isAborted()) return controller.response.aborted();
20
+ await this.updateFlp.execute({
21
+ folder: input.folder,
22
+ queued: input.queued,
23
+ isCloseToTimeout: controller.runtime.isCloseToTimeout,
24
+ handleTimeout: (queued)=>controller.response.continue({
25
+ ...input,
26
+ queued
27
+ })
28
+ });
29
+ return controller.response.done("Task done: FLP record updated.");
30
+ } catch (error) {
31
+ return controller.response.error(error);
32
+ }
33
+ }
34
+ }
35
+ const UpdateFlpTask = TaskDefinition.createImplementation({
36
+ implementation: UpdateFlpTaskImpl,
37
+ dependencies: [
38
+ UpdateFlpUseCase
39
+ ]
40
+ });
41
+ export { UpdateFlpTask };
42
+
43
+ //# sourceMappingURL=updateFlp.task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flp/tasks/updateFlp.task.js","sources":["../../../src/flp/tasks/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 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 public 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"],"names":["UpdateFlpTaskImpl","updateFlp","UPDATE_FLP_TASK_ID","input","controller","queued","error","UpdateFlpTask","TaskDefinition","UpdateFlpUseCase"],"mappings":";;;AAKA,MAAMA;IASF,YAA2BC,SAAqC,CAAE;aAAvCA,SAAS,GAATA;aARX,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,WAAW,GACvB;aACY,YAAY,GAAG;aACf,SAAS,GAAG;aACZ,WAAW,GAAG;YAAC;YAAsB;SAAmB;IAEL;IAEnE,MAAM,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAAiD,EAAE;QAC5E,IAAI;YACA,IAAIA,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAGtC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACzB,QAAQD,MAAM,MAAM;gBACpB,QAAQA,MAAM,MAAM;gBACpB,kBAAkBC,WAAW,OAAO,CAAC,gBAAgB;gBACrD,eAAeC,CAAAA,SAAUD,WAAW,QAAQ,CAAC,QAAQ,CAAC;wBAAE,GAAGD,KAAK;wBAAEE;oBAAO;YAC7E;YAEA,OAAOD,WAAW,QAAQ,CAAC,IAAI,CAAC;QACpC,EAAE,OAAOE,OAAO;YACZ,OAAOF,WAAW,QAAQ,CAAC,KAAK,CAACE;QACrC;IACJ;AACJ;AAEO,MAAMC,gBAAgBC,eAAe,oBAAoB,CAAC;IAC7D,gBAAgBR;IAChB,cAAc;QAACS;KAAiB;AACpC"}
@@ -0,0 +1,36 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import type { CmsPrivateModelFull } from "@webiny/api-headless-cms";
3
+ import type { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types/index.js";
4
+ export type CmsModelField = Omit<BaseModelField, "storageId"> & {
5
+ modelIds?: string[];
6
+ };
7
+ export interface IFolderModelFieldsModifier {
8
+ setFields: (fields: BaseModelField[]) => void;
9
+ addField: (field: CmsModelField) => void;
10
+ }
11
+ export declare class FolderModelFieldsModifier implements IFolderModelFieldsModifier {
12
+ private fields;
13
+ private readonly namespace;
14
+ constructor(namespace: string);
15
+ setFields(fields: BaseModelField[]): void;
16
+ addField(field: CmsModelField): void;
17
+ }
18
+ interface CmsModelModifierCallableParams {
19
+ modifier: IFolderModelFieldsModifier;
20
+ }
21
+ export interface CmsModelModifierCallable {
22
+ (params: CmsModelModifierCallableParams): Promise<void> | void;
23
+ }
24
+ interface FolderCmsModelModifierPluginParams {
25
+ modifier: IFolderModelFieldsModifier;
26
+ callback: CmsModelModifierCallable;
27
+ }
28
+ export declare class FolderCmsModelModifierPlugin extends Plugin {
29
+ static type: string;
30
+ private readonly modifier;
31
+ private readonly callback;
32
+ constructor(params: FolderCmsModelModifierPluginParams);
33
+ modifyModel(model: CmsPrivateModelFull): Promise<void>;
34
+ }
35
+ export declare const createFolderModelModifier: (callback: CmsModelModifierCallable) => FolderCmsModelModifierPlugin;
36
+ export {};
@@ -0,0 +1,61 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { createModelField } from "@webiny/api-headless-cms";
3
+ import { FOLDER_MODEL_ID } from "../domain/folder/folder.model.js";
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
+ }
22
+ }
23
+ class FolderCmsModelModifierPlugin extends Plugin {
24
+ static{
25
+ this.type = "aco.folder.cms-model-modifier";
26
+ }
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);
45
+ }
46
+ this.modifier.setFields(extensionsField.settings.fields);
47
+ await this.callback({
48
+ modifier: this.modifier
49
+ });
50
+ }
51
+ }
52
+ const createFolderModelModifier = (callback)=>{
53
+ const modifier = new FolderModelFieldsModifier("global");
54
+ return new FolderCmsModelModifierPlugin({
55
+ callback,
56
+ modifier
57
+ });
58
+ };
59
+ export { FolderCmsModelModifierPlugin, FolderModelFieldsModifier, createFolderModelModifier };
60
+
61
+ //# sourceMappingURL=createFolderModelModifier.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,8 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
3
+ export interface CreateFolderTypeDefsParams {
4
+ model: CmsModel;
5
+ models: CmsModel[];
6
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
7
+ }
8
+ export declare const createFolderTypeDefs: (params: CreateFolderTypeDefsParams) => string;
@@ -0,0 +1,175 @@
1
+ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
2
+ import { renderInputFields } from "@webiny/api-headless-cms/utils/renderInputFields.js";
3
+ const removeFieldRequiredValidation = (field)=>{
4
+ if (field.validation) field.validation = field.validation.filter((validation)=>"required" !== validation.name);
5
+ if (field.listValidation) field.listValidation = field.listValidation.filter((v)=>"required" !== v.name);
6
+ return field;
7
+ };
8
+ const createUpdateFields = (fields)=>fields.reduce((collection, field)=>{
9
+ collection.push(removeFieldRequiredValidation({
10
+ ...field
11
+ }));
12
+ return collection;
13
+ }, []);
14
+ const createFolderTypeDefs = (params)=>{
15
+ const { model, models, fieldRegistry } = params;
16
+ const { fields } = model;
17
+ const fieldTypes = renderFields({
18
+ models,
19
+ model,
20
+ fields,
21
+ type: "manage",
22
+ fieldRegistry
23
+ });
24
+ const inputCreateFields = renderInputFields({
25
+ models,
26
+ model,
27
+ fields,
28
+ fieldRegistry
29
+ });
30
+ const inputUpdateFields = renderInputFields({
31
+ models,
32
+ model,
33
+ fields: createUpdateFields(fields),
34
+ fieldRegistry
35
+ });
36
+ return `
37
+ ${fieldTypes.map((f)=>f.typeDefs).join("\n")}
38
+
39
+ type Folder {
40
+ id: ID!
41
+ # Tells us if the current user can manage folder structure.
42
+ canManageStructure: Boolean
43
+
44
+ # Tells us if the current user can manage folder permissions.
45
+ canManagePermissions: Boolean
46
+
47
+ # Tells us if the current user can manage folder content.
48
+ canManageContent: Boolean
49
+
50
+ # Tells us if the folder contains non-inherited permissions.
51
+ hasNonInheritedPermissions: Boolean
52
+
53
+ createdOn: DateTime
54
+ modifiedOn: DateTime
55
+ savedOn: DateTime
56
+ createdBy: AcoUser
57
+ modifiedBy: AcoUser
58
+ savedBy: AcoUser
59
+
60
+ ${fieldTypes.map((f)=>f.fields).join("\n")}
61
+ }
62
+
63
+ ${inputCreateFields.map((f)=>f.typeDefs).join("\n")}
64
+
65
+ input FolderCreateInput {
66
+ # Pass an ID if you want to create a folder with a specific ID.
67
+ id: ID
68
+
69
+ ${inputCreateFields.map((f)=>f.fields).join("\n")}
70
+ }
71
+
72
+ input FolderUpdateInput {
73
+ ${inputUpdateFields.map((f)=>f.fields).join("\n")}
74
+ }
75
+
76
+ input FoldersListWhereInput {
77
+ type: String!
78
+ parentId: ID
79
+ parentId_in: [ID]
80
+ slug: String
81
+ slug_not: String
82
+ slug_contains: String
83
+ slug_not_contains: String
84
+ slug_in: [String]
85
+ slug_not_in: [String]
86
+ slug_startsWith: String
87
+ slug_not_startsWith: String
88
+ path: String
89
+ path_not: String
90
+ path_contains: String
91
+ path_not_contains: String
92
+ path_in: [String]
93
+ path_not_in: [String]
94
+ path_startsWith: String
95
+ path_not_startsWith: String
96
+ createdBy: ID
97
+ }
98
+
99
+ type FolderResponse {
100
+ data: Folder
101
+ error: AcoError
102
+ }
103
+
104
+ type FoldersListResponse {
105
+ data: [Folder]
106
+ error: AcoError
107
+ meta: AcoMeta
108
+ }
109
+
110
+ type FoldersHierarchyData {
111
+ parents: [Folder]
112
+ siblings: [Folder]
113
+ }
114
+
115
+ type FoldersHierarchyResponse {
116
+ data: FoldersHierarchyData
117
+ error: AcoError
118
+ }
119
+
120
+ type FolderLevelPermissionsTarget {
121
+ id: ID!
122
+ type: String!
123
+ target: ID!
124
+ name: String!
125
+ meta: JSON
126
+ }
127
+
128
+ type FolderLevelPermissionsTargetsListMeta {
129
+ totalCount: Int!
130
+ }
131
+
132
+ type FolderLevelPermissionsTargetsListResponse {
133
+ data: [FolderLevelPermissionsTarget]
134
+ meta: FolderLevelPermissionsTargetsListMeta
135
+ error: AcoError
136
+ }
137
+
138
+ type FolderModelResponse {
139
+ data: JSON
140
+ error: AcoError
141
+ }
142
+
143
+ extend type AcoQuery {
144
+ getFolderModel: FolderModelResponse!
145
+ getFolder(id: ID!): FolderResponse
146
+ listFolders(
147
+ where: FoldersListWhereInput!
148
+ limit: Int
149
+ after: String
150
+ sort: AcoSort
151
+ ): FoldersListResponse
152
+ getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse
153
+ listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
154
+ }
155
+
156
+ extend type AcoMutation {
157
+ createFolder(data: FolderCreateInput!): FolderResponse
158
+ updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
159
+ deleteFolder(id: ID!): AcoBooleanResponse
160
+ }
161
+
162
+ # The base type is dynamically generated from a Folder model
163
+
164
+ extend type AcoFolder_Permissions {
165
+ inheritedFrom: ID
166
+ }
167
+
168
+ extend input AcoFolder_PermissionsInput {
169
+ inheritedFrom: ID
170
+ }
171
+ `;
172
+ };
173
+ export { createFolderTypeDefs };
174
+
175
+ //# sourceMappingURL=createFolderTypeDefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder/createFolderTypeDefs.js","sources":["../../src/folder/createFolderTypeDefs.ts"],"sourcesContent":["import type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, fieldRegistry } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldRegistry\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldRegistry\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldRegistry\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n slug: String\n slug_not: String\n slug_contains: String\n slug_not_contains: String\n slug_in: [String]\n slug_not_in: [String]\n slug_startsWith: String\n slug_not_startsWith: String\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n # The base type is dynamically generated from a Folder model\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"names":["removeFieldRequiredValidation","field","validation","v","createUpdateFields","fields","collection","createFolderTypeDefs","params","model","models","fieldRegistry","fieldTypes","renderFields","inputCreateFields","renderInputFields","inputUpdateFields","f"],"mappings":";;AAWA,MAAMA,gCAAgC,CAACC;IACnC,IAAIA,MAAM,UAAU,EAChBA,MAAM,UAAU,GAAGA,MAAM,UAAU,CAAC,MAAM,CAACC,CAAAA,aAAcA,AAAoB,eAApBA,WAAW,IAAI;IAE5E,IAAID,MAAM,cAAc,EACpBA,MAAM,cAAc,GAAGA,MAAM,cAAc,CAAC,MAAM,CAACE,CAAAA,IAAKA,AAAW,eAAXA,EAAE,IAAI;IAElE,OAAOF;AACX;AAEA,MAAMG,qBAAqB,CAACC,SACjBA,OAAO,MAAM,CAAkB,CAACC,YAAYL;QAC/CK,WAAW,IAAI,CAACN,8BAA8B;YAAE,GAAGC,KAAK;QAAC;QACzD,OAAOK;IACX,GAAG,EAAE;AAGF,MAAMC,uBAAuB,CAACC;IACjC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,aAAa,EAAE,GAAGH;IACzC,MAAM,EAAEH,MAAM,EAAE,GAAGI;IAEnB,MAAMG,aAAaC,aAAa;QAC5BH;QACAD;QACAJ;QACA,MAAM;QACNM;IACJ;IACA,MAAMG,oBAAoBC,kBAAkB;QACxCL;QACAD;QACAJ;QACAM;IACJ;IACA,MAAMK,oBAAoBD,kBAAkB;QACxCL;QACAD;QACA,QAAQL,mBAAmBC;QAC3BM;IACJ;IAEA,OAAqB,CAAC;QAClB,EAAEC,WAAW,GAAG,CAACK,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;YAuBzC,EAAEL,WAAW,GAAG,CAACK,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;QAG/C,EAAEH,kBAAkB,GAAG,CAACG,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;aAM/C,EAAEH,kBAAkB,GAAG,CAACG,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;;YAInD,EAAED,kBAAkB,GAAG,CAACC,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkG1D,CAAC;AACL"}
@@ -1,3 +1,4 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
2
- import { AcoContext } from "../types";
3
- export declare const folderSchema: GraphQLSchemaPlugin<AcoContext>;
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
2
+ import type { CreateFolderTypeDefsParams } from "./createFolderTypeDefs.js";
3
+ import type { AcoContext } from "../types.js";
4
+ export declare const createFoldersSchema: (params: CreateFolderTypeDefsParams) => GraphQLSchemaPlugin<AcoContext>;
@@ -1,103 +1,125 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.folderSchema = void 0;
7
- var _responses = require("@webiny/handler-graphql/responses");
8
- var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
9
- var _resolve = require("../utils/resolve");
10
- const folderSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
11
- typeDefs: /* GraphQL */`
12
- type Folder {
13
- id: ID!
14
- title: String!
15
- slug: String!
16
- type: String!
17
- parentId: ID
18
- savedOn: DateTime
19
- createdOn: DateTime
20
- createdBy: AcoUser
21
- }
22
-
23
- input FolderCreateInput {
24
- title: String!
25
- slug: String!
26
- type: String!
27
- parentId: ID
28
- }
29
-
30
- input FolderUpdateInput {
31
- title: String
32
- slug: String
33
- parentId: ID
34
- }
35
-
36
- input FoldersListWhereInput {
37
- type: String!
38
- parentId: String
1
+ import { ErrorResponse, ListResponse } from "@webiny/handler-graphql/responses.js";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
3
+ import { createFolderTypeDefs } from "./createFolderTypeDefs.js";
4
+ import { ensureAuthentication } from "../utils/ensureAuthentication.js";
5
+ import { resolve } from "../utils/resolve.js";
6
+ import { FolderLevelPermissions } from "../features/flp/FolderLevelPermissions/index.js";
7
+ import { GetFolderUseCase } from "../features/folder/GetFolder/abstractions.js";
8
+ import { ListFoldersUseCase } from "../features/folder/ListFolders/abstractions.js";
9
+ import { CreateFolderUseCase } from "../features/folder/CreateFolder/abstractions.js";
10
+ import { UpdateFolderUseCase } from "../features/folder/UpdateFolder/abstractions.js";
11
+ import { DeleteFolderUseCase } from "../features/folder/DeleteFolder/abstractions.js";
12
+ import { GetFolderHierarchyUseCase } from "../features/folder/GetFolderHierarchy/abstractions.js";
13
+ import { ListFolderLevelPermissionsTargetsUseCase } from "../features/folder/ListFolderLevelPermissionsTargets/abstractions.js";
14
+ import { FolderModel } from "../domain/folder/abstractions.js";
15
+ import { ValuesSelectionGenerator } from "@webiny/api-headless-cms/features/contentModel/ValuesSelectionGenerator/abstractions.js";
16
+ const createFoldersSchema = (params)=>{
17
+ const folderGraphQL = new GraphQLSchemaPlugin({
18
+ typeDefs: createFolderTypeDefs(params),
19
+ resolvers: {
20
+ Folder: {
21
+ hasNonInheritedPermissions: (folder, _, context)=>{
22
+ const flp = context.container.resolve(FolderLevelPermissions);
23
+ return flp.permissionsIncludeNonInheritedPermissions(folder.permissions ?? []);
24
+ },
25
+ canManageStructure: (folder, _, context)=>{
26
+ const flp = context.container.resolve(FolderLevelPermissions);
27
+ return flp.canManageFolderStructure(folder);
28
+ },
29
+ canManagePermissions: (folder, _, context)=>{
30
+ const flp = context.container.resolve(FolderLevelPermissions);
31
+ return flp.canManageFolderPermissions(folder);
32
+ },
33
+ canManageContent: (folder, _, context)=>{
34
+ const flp = context.container.resolve(FolderLevelPermissions);
35
+ return flp.canManageFolderContent(folder);
36
+ }
37
+ },
38
+ AcoQuery: {
39
+ getFolderModel (_, __, context) {
40
+ return resolve(async ()=>{
41
+ ensureAuthentication(context);
42
+ const model = context.container.resolve(FolderModel);
43
+ const generator = context.container.resolve(ValuesSelectionGenerator);
44
+ return {
45
+ ...model,
46
+ valuesSelection: generator.generate(model)
47
+ };
48
+ });
49
+ },
50
+ getFolder: async (_, { id }, context)=>resolve(async ()=>{
51
+ ensureAuthentication(context);
52
+ const getFolderUseCase = context.container.resolve(GetFolderUseCase);
53
+ const result = await getFolderUseCase.execute(id);
54
+ if (result.isFail()) throw result.error;
55
+ return result.value;
56
+ }),
57
+ listFolders: async (_, args, context)=>{
58
+ try {
59
+ ensureAuthentication(context);
60
+ const listFoldersUseCase = context.container.resolve(ListFoldersUseCase);
61
+ const result = await listFoldersUseCase.execute(args);
62
+ if (result.isFail()) throw result.error;
63
+ const { folders, meta } = result.value;
64
+ return new ListResponse(folders, meta);
65
+ } catch (e) {
66
+ return new ErrorResponse(e);
67
+ }
68
+ },
69
+ getFolderHierarchy: async (_, args, context)=>{
70
+ try {
71
+ return resolve(async ()=>{
72
+ ensureAuthentication(context);
73
+ const getFolderHierarchyUseCase = context.container.resolve(GetFolderHierarchyUseCase);
74
+ const result = await getFolderHierarchyUseCase.execute(args);
75
+ if (result.isFail()) throw result.error;
76
+ return result.value;
77
+ });
78
+ } catch (e) {
79
+ return new ErrorResponse(e);
80
+ }
81
+ },
82
+ listFolderLevelPermissionsTargets: async (_, args, context)=>{
83
+ try {
84
+ ensureAuthentication(context);
85
+ const listTargetsUseCase = context.container.resolve(ListFolderLevelPermissionsTargetsUseCase);
86
+ const result = await listTargetsUseCase.execute();
87
+ if (result.isFail()) throw result.error;
88
+ const [entries, meta] = result.value;
89
+ return new ListResponse(entries, meta);
90
+ } catch (e) {
91
+ return new ErrorResponse(e);
92
+ }
93
+ }
94
+ },
95
+ AcoMutation: {
96
+ createFolder: async (_, { data }, context)=>resolve(async ()=>{
97
+ ensureAuthentication(context);
98
+ const createFolderUseCase = context.container.resolve(CreateFolderUseCase);
99
+ const result = await createFolderUseCase.execute(data);
100
+ if (result.isFail()) throw result.error;
101
+ return result.value;
102
+ }),
103
+ updateFolder: async (_, { id, data }, context)=>resolve(async ()=>{
104
+ ensureAuthentication(context);
105
+ const updateFolderUseCase = context.container.resolve(UpdateFolderUseCase);
106
+ const result = await updateFolderUseCase.execute(id, data);
107
+ if (result.isFail()) throw result.error;
108
+ return result.value;
109
+ }),
110
+ deleteFolder: async (_, { id }, context)=>resolve(async ()=>{
111
+ ensureAuthentication(context);
112
+ const deleteFolderUseCase = context.container.resolve(DeleteFolderUseCase);
113
+ const result = await deleteFolderUseCase.execute(id);
114
+ if (result.isFail()) throw result.error;
115
+ return true;
116
+ })
117
+ }
39
118
  }
119
+ });
120
+ folderGraphQL.name = "aco.graphql.folders";
121
+ return folderGraphQL;
122
+ };
123
+ export { createFoldersSchema };
40
124
 
41
- type FolderResponse {
42
- data: Folder
43
- error: AcoError
44
- }
45
-
46
- type FoldersListResponse {
47
- data: [Folder]
48
- error: AcoError
49
- }
50
-
51
- extend type AcoQuery {
52
- getFolder(id: ID!): FolderResponse
53
- listFolders(
54
- where: FoldersListWhereInput!
55
- limit: Int
56
- after: String
57
- sort: AcoSort
58
- ): FoldersListResponse
59
- }
60
-
61
- extend type AcoMutation {
62
- createFolder(data: FolderCreateInput!): FolderResponse
63
- updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
64
- deleteFolder(id: ID!): AcoBooleanResponse
65
- }
66
- `,
67
- resolvers: {
68
- AcoQuery: {
69
- getFolder: async (_, {
70
- id
71
- }, context) => {
72
- return (0, _resolve.resolve)(() => context.aco.folder.get(id));
73
- },
74
- listFolders: async (_, args, context) => {
75
- try {
76
- const [entries, meta] = await context.aco.folder.list(args);
77
- return new _responses.ListResponse(entries, meta);
78
- } catch (e) {
79
- return new _responses.ErrorResponse(e);
80
- }
81
- }
82
- },
83
- AcoMutation: {
84
- createFolder: async (_, {
85
- data
86
- }, context) => {
87
- return (0, _resolve.resolve)(() => context.aco.folder.create(data));
88
- },
89
- updateFolder: async (_, {
90
- id,
91
- data
92
- }, context) => {
93
- return (0, _resolve.resolve)(() => context.aco.folder.update(id, data));
94
- },
95
- deleteFolder: async (_, {
96
- id
97
- }, context) => {
98
- return (0, _resolve.resolve)(() => context.aco.folder.delete(id));
99
- }
100
- }
101
- }
102
- });
103
- exports.folderSchema = folderSchema;
125
+ //# sourceMappingURL=folder.gql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["folderSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFolder","_","id","context","resolve","aco","folder","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type Folder {\n id: ID!\n title: String!\n slug: String!\n type: String!\n parentId: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => context.aco.folder.get(id));\n },\n listFolders: async (_, args: any, context) => {\n try {\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => context.aco.folder.create(data));\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => context.aco.folder.update(id, data));\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => context.aco.folder.delete(id));\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AAIO,MAAMA,YAAY,GAAG,IAAIC,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAe;AAC7B;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,OAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACC,GAAG,CAACL,EAAE,CAAC,CAAC;MACpD,CAAC;MACDM,WAAW,EAAE,OAAOP,CAAC,EAAEQ,IAAS,EAAEN,OAAO,KAAK;QAC1C,IAAI;UACA,MAAM,CAACO,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMR,OAAO,CAACE,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,OAAOhB,CAAC,EAAE;QAAEiB;MAAK,CAAC,EAAEf,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC,CAAC;MACzD,CAAC;MACDE,YAAY,EAAE,OAAOnB,CAAC,EAAE;QAAEC,EAAE;QAAEgB;MAAK,CAAC,EAAEf,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACe,MAAM,CAACnB,EAAE,EAAEgB,IAAI,CAAC,CAAC;MAC7D,CAAC;MACDI,YAAY,EAAE,OAAOrB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACrB,EAAE,CAAC,CAAC;MACvD;IACJ;EACJ;AACJ,CAAC,CAAC;AAAC"}
1
+ {"version":3,"file":"folder/folder.gql.js","sources":["../../src/folder/folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\n\nimport type { CreateFolderTypeDefsParams } from \"./createFolderTypeDefs.js\";\nimport { createFolderTypeDefs } from \"./createFolderTypeDefs.js\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication.js\";\nimport { resolve } from \"~/utils/resolve.js\";\nimport type { AcoContext, Folder } from \"~/types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/abstractions.js\";\nimport { ListFoldersUseCase } from \"~/features/folder/ListFolders/abstractions.js\";\nimport { CreateFolderUseCase } from \"~/features/folder/CreateFolder/abstractions.js\";\nimport { UpdateFolderUseCase } from \"~/features/folder/UpdateFolder/abstractions.js\";\nimport { DeleteFolderUseCase } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport { GetFolderHierarchyUseCase } from \"~/features/folder/GetFolderHierarchy/abstractions.js\";\nimport { ListFolderLevelPermissionsTargetsUseCase } from \"~/features/folder/ListFolderLevelPermissionsTargets/abstractions.js\";\nimport { FolderModel } from \"~/domain/folder/abstractions.js\";\nimport { ValuesSelectionGenerator } from \"@webiny/api-headless-cms/features/contentModel/ValuesSelectionGenerator/abstractions.js\";\n\nexport const createFoldersSchema = (params: CreateFolderTypeDefsParams) => {\n const folderGraphQL = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: createFolderTypeDefs(params),\n resolvers: {\n Folder: {\n hasNonInheritedPermissions: (folder: Folder, _, context) => {\n const flp = context.container.resolve(FolderLevelPermissions);\n return flp.permissionsIncludeNonInheritedPermissions(folder.permissions ?? []);\n },\n canManageStructure: (folder, _, context) => {\n const flp = context.container.resolve(FolderLevelPermissions);\n return flp.canManageFolderStructure(folder);\n },\n canManagePermissions: (folder, _, context) => {\n const flp = context.container.resolve(FolderLevelPermissions);\n return flp.canManageFolderPermissions(folder);\n },\n canManageContent: (folder, _, context) => {\n const flp = context.container.resolve(FolderLevelPermissions);\n return flp.canManageFolderContent(folder);\n }\n },\n AcoQuery: {\n getFolderModel(_, __, context) {\n return resolve(async () => {\n ensureAuthentication(context);\n const model = context.container.resolve(FolderModel);\n const generator = context.container.resolve(ValuesSelectionGenerator);\n return {\n ...model,\n valuesSelection: generator.generate(model)\n };\n });\n },\n getFolder: async (_, { id }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const getFolderUseCase = context.container.resolve(GetFolderUseCase);\n const result = await getFolderUseCase.execute(id);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const listFoldersUseCase = context.container.resolve(ListFoldersUseCase);\n const result = await listFoldersUseCase.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n const { folders, meta } = result.value;\n return new ListResponse(folders, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n getFolderHierarchy: async (_, args: any, context) => {\n try {\n return resolve(async () => {\n ensureAuthentication(context);\n const getFolderHierarchyUseCase =\n context.container.resolve(GetFolderHierarchyUseCase);\n const result = await getFolderHierarchyUseCase.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listFolderLevelPermissionsTargets: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const listTargetsUseCase = context.container.resolve(\n ListFolderLevelPermissionsTargetsUseCase\n );\n const result = await listTargetsUseCase.execute();\n if (result.isFail()) {\n throw result.error;\n }\n const [entries, meta] = result.value;\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const createFolderUseCase = context.container.resolve(CreateFolderUseCase);\n const result = await createFolderUseCase.execute(data);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const updateFolderUseCase = context.container.resolve(UpdateFolderUseCase);\n const result = await updateFolderUseCase.execute(id, data);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const deleteFolderUseCase = context.container.resolve(DeleteFolderUseCase);\n const result = await deleteFolderUseCase.execute(id);\n if (result.isFail()) {\n throw result.error;\n }\n return true;\n });\n }\n }\n }\n });\n\n folderGraphQL.name = \"aco.graphql.folders\";\n\n return folderGraphQL;\n};\n"],"names":["createFoldersSchema","params","folderGraphQL","GraphQLSchemaPlugin","createFolderTypeDefs","folder","_","context","flp","FolderLevelPermissions","__","resolve","ensureAuthentication","model","FolderModel","generator","ValuesSelectionGenerator","id","getFolderUseCase","GetFolderUseCase","result","args","listFoldersUseCase","ListFoldersUseCase","folders","meta","ListResponse","e","ErrorResponse","getFolderHierarchyUseCase","GetFolderHierarchyUseCase","listTargetsUseCase","ListFolderLevelPermissionsTargetsUseCase","entries","data","createFolderUseCase","CreateFolderUseCase","updateFolderUseCase","UpdateFolderUseCase","deleteFolderUseCase","DeleteFolderUseCase"],"mappings":";;;;;;;;;;;;;;;AAmBO,MAAMA,sBAAsB,CAACC;IAChC,MAAMC,gBAAgB,IAAIC,oBAAgC;QACtD,UAAUC,qBAAqBH;QAC/B,WAAW;YACP,QAAQ;gBACJ,4BAA4B,CAACI,QAAgBC,GAAGC;oBAC5C,MAAMC,MAAMD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBACtC,OAAOD,IAAI,yCAAyC,CAACH,OAAO,WAAW,IAAI,EAAE;gBACjF;gBACA,oBAAoB,CAACA,QAAQC,GAAGC;oBAC5B,MAAMC,MAAMD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBACtC,OAAOD,IAAI,wBAAwB,CAACH;gBACxC;gBACA,sBAAsB,CAACA,QAAQC,GAAGC;oBAC9B,MAAMC,MAAMD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBACtC,OAAOD,IAAI,0BAA0B,CAACH;gBAC1C;gBACA,kBAAkB,CAACA,QAAQC,GAAGC;oBAC1B,MAAMC,MAAMD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBACtC,OAAOD,IAAI,sBAAsB,CAACH;gBACtC;YACJ;YACA,UAAU;gBACN,gBAAeC,CAAC,EAAEI,EAAE,EAAEH,OAAO;oBACzB,OAAOI,QAAQ;wBACXC,qBAAqBL;wBACrB,MAAMM,QAAQN,QAAQ,SAAS,CAAC,OAAO,CAACO;wBACxC,MAAMC,YAAYR,QAAQ,SAAS,CAAC,OAAO,CAACS;wBAC5C,OAAO;4BACH,GAAGH,KAAK;4BACR,iBAAiBE,UAAU,QAAQ,CAACF;wBACxC;oBACJ;gBACJ;gBACA,WAAW,OAAOP,GAAG,EAAEW,EAAE,EAAE,EAAEV,UAClBI,QAAQ;wBACXC,qBAAqBL;wBACrB,MAAMW,mBAAmBX,QAAQ,SAAS,CAAC,OAAO,CAACY;wBACnD,MAAMC,SAAS,MAAMF,iBAAiB,OAAO,CAACD;wBAC9C,IAAIG,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,OAAOA,OAAO,KAAK;oBACvB;gBAEJ,aAAa,OAAOd,GAAGe,MAAWd;oBAC9B,IAAI;wBACAK,qBAAqBL;wBACrB,MAAMe,qBAAqBf,QAAQ,SAAS,CAAC,OAAO,CAACgB;wBACrD,MAAMH,SAAS,MAAME,mBAAmB,OAAO,CAACD;wBAChD,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,MAAM,EAAEI,OAAO,EAAEC,IAAI,EAAE,GAAGL,OAAO,KAAK;wBACtC,OAAO,IAAIM,aAAaF,SAASC;oBACrC,EAAE,OAAOE,GAAG;wBACR,OAAO,IAAIC,cAAcD;oBAC7B;gBACJ;gBACA,oBAAoB,OAAOrB,GAAGe,MAAWd;oBACrC,IAAI;wBACA,OAAOI,QAAQ;4BACXC,qBAAqBL;4BACrB,MAAMsB,4BACFtB,QAAQ,SAAS,CAAC,OAAO,CAACuB;4BAC9B,MAAMV,SAAS,MAAMS,0BAA0B,OAAO,CAACR;4BACvD,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;oBACJ,EAAE,OAAOO,GAAG;wBACR,OAAO,IAAIC,cAAcD;oBAC7B;gBACJ;gBACA,mCAAmC,OAAOrB,GAAGe,MAAWd;oBACpD,IAAI;wBACAK,qBAAqBL;wBACrB,MAAMwB,qBAAqBxB,QAAQ,SAAS,CAAC,OAAO,CAChDyB;wBAEJ,MAAMZ,SAAS,MAAMW,mBAAmB,OAAO;wBAC/C,IAAIX,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,MAAM,CAACa,SAASR,KAAK,GAAGL,OAAO,KAAK;wBACpC,OAAO,IAAIM,aAAaO,SAASR;oBACrC,EAAE,OAAOE,GAAG;wBACR,OAAO,IAAIC,cAAcD;oBAC7B;gBACJ;YACJ;YACA,aAAa;gBACT,cAAc,OAAOrB,GAAG,EAAE4B,IAAI,EAAE,EAAE3B,UACvBI,QAAQ;wBACXC,qBAAqBL;wBACrB,MAAM4B,sBAAsB5B,QAAQ,SAAS,CAAC,OAAO,CAAC6B;wBACtD,MAAMhB,SAAS,MAAMe,oBAAoB,OAAO,CAACD;wBACjD,IAAId,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,OAAOA,OAAO,KAAK;oBACvB;gBAEJ,cAAc,OAAOd,GAAG,EAAEW,EAAE,EAAEiB,IAAI,EAAE,EAAE3B,UAC3BI,QAAQ;wBACXC,qBAAqBL;wBACrB,MAAM8B,sBAAsB9B,QAAQ,SAAS,CAAC,OAAO,CAAC+B;wBACtD,MAAMlB,SAAS,MAAMiB,oBAAoB,OAAO,CAACpB,IAAIiB;wBACrD,IAAId,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,OAAOA,OAAO,KAAK;oBACvB;gBAEJ,cAAc,OAAOd,GAAG,EAAEW,EAAE,EAAE,EAAEV,UACrBI,QAAQ;wBACXC,qBAAqBL;wBACrB,MAAMgC,sBAAsBhC,QAAQ,SAAS,CAAC,OAAO,CAACiC;wBACtD,MAAMpB,SAAS,MAAMmB,oBAAoB,OAAO,CAACtB;wBACjD,IAAIG,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;wBAEtB,OAAO;oBACX;YAER;QACJ;IACJ;IAEAlB,cAAc,IAAI,GAAG;IAErB,OAAOA;AACX"}