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

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 (165) hide show
  1. package/createAcoContext.js +2 -6
  2. package/createAcoContext.js.map +1 -1
  3. package/createAcoGraphQL.js +4 -4
  4. package/createAcoGraphQL.js.map +1 -1
  5. package/exports/api/aco/flp.d.ts +6 -0
  6. package/exports/api/aco/flp.js +8 -0
  7. package/exports/api/aco/flp.js.map +1 -0
  8. package/exports/api/aco/folder.d.ts +10 -0
  9. package/exports/api/aco/folder.js +12 -0
  10. package/exports/api/aco/folder.js.map +1 -0
  11. package/features/cms/feature.d.ts +4 -1
  12. package/features/flp/CreateFlp/abstractions.d.ts +1 -0
  13. package/features/flp/CreateFlp/abstractions.js +1 -0
  14. package/features/flp/CreateFlp/abstractions.js.map +1 -1
  15. package/features/flp/CreateFlp/feature.d.ts +5 -1
  16. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +3 -3
  17. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +2 -2
  18. package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
  19. package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -1
  20. package/features/flp/DeleteFlp/abstractions.d.ts +1 -0
  21. package/features/flp/DeleteFlp/abstractions.js +1 -0
  22. package/features/flp/DeleteFlp/abstractions.js.map +1 -1
  23. package/features/flp/DeleteFlp/feature.d.ts +5 -1
  24. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +3 -3
  25. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +2 -2
  26. package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
  27. package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -1
  28. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
  29. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +3 -3
  30. package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
  31. package/features/flp/FolderLevelPermissions/abstractions.d.ts +1 -0
  32. package/features/flp/FolderLevelPermissions/abstractions.js +1 -0
  33. package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
  34. package/features/flp/FolderLevelPermissions/feature.d.ts +5 -1
  35. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +1 -1
  36. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
  37. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +1 -1
  38. package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
  39. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +1 -1
  40. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
  41. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +2 -2
  42. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +2 -2
  43. package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
  44. package/features/flp/GetFlp/abstractions.d.ts +1 -0
  45. package/features/flp/GetFlp/abstractions.js +1 -0
  46. package/features/flp/GetFlp/abstractions.js.map +1 -1
  47. package/features/flp/GetFlp/feature.d.ts +4 -1
  48. package/features/flp/GetFlp/feature.js.map +1 -1
  49. package/features/flp/ListFlps/abstractions.d.ts +1 -0
  50. package/features/flp/ListFlps/abstractions.js +1 -0
  51. package/features/flp/ListFlps/abstractions.js.map +1 -1
  52. package/features/flp/ListFlps/feature.d.ts +4 -1
  53. package/features/flp/ListFlps/feature.js.map +1 -1
  54. package/features/flp/UpdateFlp/abstractions.d.ts +1 -0
  55. package/features/flp/UpdateFlp/abstractions.js +1 -0
  56. package/features/flp/UpdateFlp/abstractions.js.map +1 -1
  57. package/features/flp/UpdateFlp/feature.d.ts +5 -1
  58. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +3 -3
  59. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +2 -2
  60. package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
  61. package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -1
  62. package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +1 -1
  63. package/features/folder/CreateFolder/CreateFolderUseCase.js +1 -1
  64. package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
  65. package/features/folder/CreateFolder/abstractions.d.ts +9 -5
  66. package/features/folder/CreateFolder/abstractions.js +6 -2
  67. package/features/folder/CreateFolder/abstractions.js.map +1 -1
  68. package/features/folder/CreateFolder/events.d.ts +3 -3
  69. package/features/folder/CreateFolder/events.js +4 -4
  70. package/features/folder/CreateFolder/events.js.map +1 -1
  71. package/features/folder/CreateFolder/feature.d.ts +5 -1
  72. package/features/folder/CreateFolder/index.d.ts +1 -1
  73. package/features/folder/CreateFolder/index.js +1 -1
  74. package/features/folder/CreateFolder/index.js.map +1 -1
  75. package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +1 -1
  76. package/features/folder/DeleteFolder/DeleteFolderUseCase.js +1 -1
  77. package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
  78. package/features/folder/DeleteFolder/abstractions.d.ts +9 -5
  79. package/features/folder/DeleteFolder/abstractions.js +6 -2
  80. package/features/folder/DeleteFolder/abstractions.js.map +1 -1
  81. package/features/folder/DeleteFolder/events.d.ts +3 -3
  82. package/features/folder/DeleteFolder/events.js +4 -4
  83. package/features/folder/DeleteFolder/events.js.map +1 -1
  84. package/features/folder/DeleteFolder/feature.d.ts +5 -1
  85. package/features/folder/DeleteFolder/index.d.ts +1 -1
  86. package/features/folder/DeleteFolder/index.js +1 -1
  87. package/features/folder/DeleteFolder/index.js.map +1 -1
  88. package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +1 -0
  89. package/features/folder/EnsureFolderIsEmpty/abstractions.js +1 -0
  90. package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
  91. package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -1
  92. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +3 -3
  93. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +2 -2
  94. package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
  95. package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +4 -1
  96. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +3 -3
  97. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +2 -2
  98. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
  99. package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -1
  100. package/features/folder/GetAncestors/abstractions.d.ts +2 -0
  101. package/features/folder/GetAncestors/abstractions.js +2 -0
  102. package/features/folder/GetAncestors/abstractions.js.map +1 -1
  103. package/features/folder/GetAncestors/feature.d.ts +5 -1
  104. package/features/folder/GetFolder/abstractions.d.ts +8 -5
  105. package/features/folder/GetFolder/abstractions.js +5 -2
  106. package/features/folder/GetFolder/abstractions.js.map +1 -1
  107. package/features/folder/GetFolder/feature.d.ts +5 -1
  108. package/features/folder/GetFolder/index.d.ts +1 -1
  109. package/features/folder/GetFolder/index.js +1 -1
  110. package/features/folder/GetFolder/index.js.map +1 -1
  111. package/features/folder/GetFolderHierarchy/abstractions.d.ts +2 -0
  112. package/features/folder/GetFolderHierarchy/abstractions.js +2 -0
  113. package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
  114. package/features/folder/GetFolderHierarchy/feature.d.ts +5 -1
  115. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +2 -2
  116. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +3 -3
  117. package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
  118. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +1 -0
  119. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +1 -0
  120. package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
  121. package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -1
  122. package/features/folder/ListFolders/abstractions.d.ts +2 -0
  123. package/features/folder/ListFolders/abstractions.js +2 -0
  124. package/features/folder/ListFolders/abstractions.js.map +1 -1
  125. package/features/folder/ListFolders/feature.d.ts +5 -1
  126. package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +1 -1
  127. package/features/folder/UpdateFolder/UpdateFolderUseCase.js +1 -1
  128. package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
  129. package/features/folder/UpdateFolder/abstractions.d.ts +9 -5
  130. package/features/folder/UpdateFolder/abstractions.js +6 -2
  131. package/features/folder/UpdateFolder/abstractions.js.map +1 -1
  132. package/features/folder/UpdateFolder/events.d.ts +3 -3
  133. package/features/folder/UpdateFolder/events.js +4 -4
  134. package/features/folder/UpdateFolder/events.js.map +1 -1
  135. package/features/folder/UpdateFolder/feature.d.ts +5 -1
  136. package/features/folder/UpdateFolder/index.d.ts +1 -1
  137. package/features/folder/UpdateFolder/index.js +1 -1
  138. package/features/folder/UpdateFolder/index.js.map +1 -1
  139. package/features/folder/shared/abstractions.d.ts +1 -0
  140. package/features/folder/shared/abstractions.js +1 -0
  141. package/features/folder/shared/abstractions.js.map +1 -1
  142. package/flp/flp.so.js.map +1 -1
  143. package/flp/tasks/createFlp.task.d.ts +1 -0
  144. package/flp/tasks/createFlp.task.js +1 -0
  145. package/flp/tasks/createFlp.task.js.map +1 -1
  146. package/flp/tasks/deleteFlp.task.d.ts +1 -0
  147. package/flp/tasks/deleteFlp.task.js +1 -0
  148. package/flp/tasks/deleteFlp.task.js.map +1 -1
  149. package/flp/tasks/syncFlp.task.d.ts +1 -0
  150. package/flp/tasks/syncFlp.task.js +1 -0
  151. package/flp/tasks/syncFlp.task.js.map +1 -1
  152. package/flp/tasks/updateFlp.task.d.ts +1 -0
  153. package/flp/tasks/updateFlp.task.js +1 -0
  154. package/flp/tasks/updateFlp.task.js.map +1 -1
  155. package/folder/createFolderTypeDefs.d.ts +3 -2
  156. package/folder/createFolderTypeDefs.js +4 -4
  157. package/folder/createFolderTypeDefs.js.map +1 -1
  158. package/package.json +27 -38
  159. package/utils/compress.js +1 -1
  160. package/utils/compress.js.map +1 -1
  161. package/utils/ensureAuthentication.js +1 -1
  162. package/utils/ensureAuthentication.js.map +1 -1
  163. package/utils/acoRecordId.d.ts +0 -6
  164. package/utils/acoRecordId.js +0 -27
  165. package/utils/acoRecordId.js.map +0 -1
@@ -16,6 +16,7 @@ export interface IListFoldersRepositoryErrors {
16
16
  persistence: FolderPersistenceError;
17
17
  }
18
18
  type RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];
19
+ /** Fetch folders from storage. */
19
20
  export declare const ListFoldersRepository: import("@webiny/di").Abstraction<IListFoldersRepository>;
20
21
  export declare namespace ListFoldersRepository {
21
22
  type Interface = IListFoldersRepository;
@@ -33,6 +34,7 @@ export interface IListFoldersUseCaseErrors {
33
34
  persistence: FolderPersistenceError;
34
35
  }
35
36
  type UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];
37
+ /** List folders with filtering. */
36
38
  export declare const ListFoldersUseCase: import("@webiny/di").Abstraction<IListFoldersUseCase>;
37
39
  export declare namespace ListFoldersUseCase {
38
40
  type Interface = IListFoldersUseCase;
@@ -4,12 +4,14 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * ListFolders repository interface
5
5
  */
6
6
 
7
+ /** Fetch folders from storage. */
7
8
  export const ListFoldersRepository = createAbstraction("ListFoldersRepository");
8
9
 
9
10
  /**
10
11
  * ListFolders use case interface
11
12
  */
12
13
 
14
+ /** List folders with filtering. */
13
15
  export const ListFoldersUseCase = createAbstraction("ListFoldersUseCase");
14
16
 
15
17
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListFoldersRepository","ListFoldersUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport type { ListMeta } from \"~/types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\ninterface IListFoldersResult {\n folders: Folder[];\n meta: ListMeta;\n}\n\n/**\n * ListFolders repository interface\n */\nexport interface IListFoldersRepository {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;\n}\n\nexport interface IListFoldersRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];\n\nexport const ListFoldersRepository =\n createAbstraction<IListFoldersRepository>(\"ListFoldersRepository\");\n\nexport namespace ListFoldersRepository {\n export type Interface = IListFoldersRepository;\n export type Return = Promise<Result<IListFoldersResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFolders use case interface\n */\nexport interface IListFoldersUseCase {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;\n}\n\nexport interface IListFoldersUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];\n\nexport const ListFoldersUseCase = createAbstraction<IListFoldersUseCase>(\"ListFoldersUseCase\");\n\nexport namespace ListFoldersUseCase {\n export type Interface = IListFoldersUseCase;\n export type Return = Promise<Result<IListFoldersResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAWA,OAAO,MAAMC,qBAAqB,GAC9BD,iBAAiB,CAAyB,uBAAuB,CAAC;;AAQtE;AACA;AACA;;AAYA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","ListFoldersRepository","ListFoldersUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder, ListFoldersParams } from \"~/folder/folder.types.js\";\nimport type { ListMeta } from \"~/types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\ninterface IListFoldersResult {\n folders: Folder[];\n meta: ListMeta;\n}\n\n/**\n * ListFolders repository interface\n */\nexport interface IListFoldersRepository {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, RepositoryError>>;\n}\n\nexport interface IListFoldersRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IListFoldersRepositoryErrors[keyof IListFoldersRepositoryErrors];\n\n/** Fetch folders from storage. */\nexport const ListFoldersRepository =\n createAbstraction<IListFoldersRepository>(\"ListFoldersRepository\");\n\nexport namespace ListFoldersRepository {\n export type Interface = IListFoldersRepository;\n export type Return = Promise<Result<IListFoldersResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFolders use case interface\n */\nexport interface IListFoldersUseCase {\n execute(params: ListFoldersParams): Promise<Result<IListFoldersResult, UseCaseError>>;\n}\n\nexport interface IListFoldersUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IListFoldersUseCaseErrors[keyof IListFoldersUseCaseErrors];\n\n/** List folders with filtering. */\nexport const ListFoldersUseCase = createAbstraction<IListFoldersUseCase>(\"ListFoldersUseCase\");\n\nexport namespace ListFoldersUseCase {\n export type Interface = IListFoldersUseCase;\n export type Return = Promise<Result<IListFoldersResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,qBAAqB,GAC9BD,iBAAiB,CAAyB,uBAAuB,CAAC;;AAQtE;AACA;AACA;;AAYA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const ListFoldersFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const ListFoldersFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
2
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { UpdateFolderRepository, UpdateFolderUseCase as UseCaseAbstraction } from "./abstractions.js";
4
4
  import { GetFolderRepository } from "../GetFolder/abstractions.js";
5
5
  import type { Folder, UpdateFolderParams } from "../../../folder/folder.types.js";
@@ -1,5 +1,5 @@
1
1
  import { createImplementation, Result } from "@webiny/feature/api";
2
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
2
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import { UpdateFolderRepository, UpdateFolderUseCase as UseCaseAbstraction } from "./abstractions.js";
4
4
  import { GetFolderRepository } from "../GetFolder/abstractions.js";
5
5
  import { FolderAfterUpdateEvent, FolderBeforeUpdateEvent } from "./events.js";
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","Result","EventPublisher","UpdateFolderRepository","UpdateFolderUseCase","UseCaseAbstraction","GetFolderRepository","FolderAfterUpdateEvent","FolderBeforeUpdateEvent","UpdateFolderUseCaseImpl","constructor","eventPublisher","getFolderRepository","repository","execute","id","input","useCaseInput","data","originalResult","isFail","original","value","beforeUpdateEvent","publish","result","folder","afterUpdateEvent","ok","abstraction","implementation","dependencies"],"sources":["UpdateFolderUseCase.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateFolderRepository,\n UpdateFolderUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { GetFolderRepository } from \"../GetFolder/abstractions.js\";\nimport { FolderAfterUpdateEvent, FolderBeforeUpdateEvent } from \"./events.js\";\nimport type { Folder, UpdateFolderParams } from \"~/folder/folder.types.js\";\n\nclass UpdateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getFolderRepository: GetFolderRepository.Interface,\n private repository: UpdateFolderRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateFolderParams\n ): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n const useCaseInput = { id, data: input };\n\n // Get original folder for events\n const originalResult = await this.getFolderRepository.execute(id);\n\n if (originalResult.isFail()) {\n return originalResult;\n }\n\n const original = originalResult.value;\n\n // Publish before update event\n const beforeUpdateEvent = new FolderBeforeUpdateEvent({\n original,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, input);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after update event\n const afterUpdateEvent = new FolderAfterUpdateEvent({\n original,\n folder,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(afterUpdateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const UpdateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateFolderUseCaseImpl,\n dependencies: [EventPublisher, GetFolderRepository, UpdateFolderRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,MAAM,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,sBAAsB,EACtBC,mBAAmB,IAAIC,kBAAkB;AAE7C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB,EAAEC,uBAAuB;AAGxD,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,cAAmD,EACnDC,mBAAkD,EAClDC,UAA4C,EACtD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAyB,EACwB;IACjD,MAAMC,YAAY,GAAG;MAAEF,EAAE;MAAEG,IAAI,EAAEF;IAAM,CAAC;;IAExC;IACA,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACP,mBAAmB,CAACE,OAAO,CAACC,EAAE,CAAC;IAEjE,IAAII,cAAc,CAACC,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOD,cAAc;IACzB;IAEA,MAAME,QAAQ,GAAGF,cAAc,CAACG,KAAK;;IAErC;IACA,MAAMC,iBAAiB,GAAG,IAAIf,uBAAuB,CAAC;MAClDa,QAAQ;MACRL,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACD,iBAAiB,CAAC;;IAEpD;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACZ,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,KAAK,CAAC;IAEvD,IAAIS,MAAM,CAACL,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOK,MAAM;IACjB;IAEA,MAAMC,MAAM,GAAGD,MAAM,CAACH,KAAK;;IAE3B;IACA,MAAMK,gBAAgB,GAAG,IAAIpB,sBAAsB,CAAC;MAChDc,QAAQ;MACRK,MAAM;MACNV,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACG,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACF,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGJ,oBAAoB,CAAC;EACpD6B,WAAW,EAAExB,kBAAkB;EAC/ByB,cAAc,EAAErB,uBAAuB;EACvCsB,YAAY,EAAE,CAAC7B,cAAc,EAAEI,mBAAmB,EAAEH,sBAAsB;AAC9E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","Result","EventPublisher","UpdateFolderRepository","UpdateFolderUseCase","UseCaseAbstraction","GetFolderRepository","FolderAfterUpdateEvent","FolderBeforeUpdateEvent","UpdateFolderUseCaseImpl","constructor","eventPublisher","getFolderRepository","repository","execute","id","input","useCaseInput","data","originalResult","isFail","original","value","beforeUpdateEvent","publish","result","folder","afterUpdateEvent","ok","abstraction","implementation","dependencies"],"sources":["UpdateFolderUseCase.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n UpdateFolderRepository,\n UpdateFolderUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { GetFolderRepository } from \"../GetFolder/abstractions.js\";\nimport { FolderAfterUpdateEvent, FolderBeforeUpdateEvent } from \"./events.js\";\nimport type { Folder, UpdateFolderParams } from \"~/folder/folder.types.js\";\n\nclass UpdateFolderUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getFolderRepository: GetFolderRepository.Interface,\n private repository: UpdateFolderRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateFolderParams\n ): Promise<Result<Folder, UseCaseAbstraction.Error>> {\n const useCaseInput = { id, data: input };\n\n // Get original folder for events\n const originalResult = await this.getFolderRepository.execute(id);\n\n if (originalResult.isFail()) {\n return originalResult;\n }\n\n const original = originalResult.value;\n\n // Publish before update event\n const beforeUpdateEvent = new FolderBeforeUpdateEvent({\n original,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, input);\n\n if (result.isFail()) {\n return result;\n }\n\n const folder = result.value;\n\n // Publish after update event\n const afterUpdateEvent = new FolderAfterUpdateEvent({\n original,\n folder,\n input: useCaseInput\n });\n\n await this.eventPublisher.publish(afterUpdateEvent);\n\n return Result.ok(folder);\n }\n}\n\nexport const UpdateFolderUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateFolderUseCaseImpl,\n dependencies: [EventPublisher, GetFolderRepository, UpdateFolderRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,MAAM,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,sBAAsB,EACtBC,mBAAmB,IAAIC,kBAAkB;AAE7C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB,EAAEC,uBAAuB;AAGxD,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CACCC,cAAmD,EACnDC,mBAAkD,EAClDC,UAA4C,EACtD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,UAA4C,GAA5CA,UAA4C;EACrD;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAyB,EACwB;IACjD,MAAMC,YAAY,GAAG;MAAEF,EAAE;MAAEG,IAAI,EAAEF;IAAM,CAAC;;IAExC;IACA,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACP,mBAAmB,CAACE,OAAO,CAACC,EAAE,CAAC;IAEjE,IAAII,cAAc,CAACC,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOD,cAAc;IACzB;IAEA,MAAME,QAAQ,GAAGF,cAAc,CAACG,KAAK;;IAErC;IACA,MAAMC,iBAAiB,GAAG,IAAIf,uBAAuB,CAAC;MAClDa,QAAQ;MACRL,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACD,iBAAiB,CAAC;;IAEpD;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACZ,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,KAAK,CAAC;IAEvD,IAAIS,MAAM,CAACL,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOK,MAAM;IACjB;IAEA,MAAMC,MAAM,GAAGD,MAAM,CAACH,KAAK;;IAE3B;IACA,MAAMK,gBAAgB,GAAG,IAAIpB,sBAAsB,CAAC;MAChDc,QAAQ;MACRK,MAAM;MACNV,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACN,cAAc,CAACa,OAAO,CAACG,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACF,MAAM,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAMtB,mBAAmB,GAAGJ,oBAAoB,CAAC;EACpD6B,WAAW,EAAExB,kBAAkB;EAC/ByB,cAAc,EAAErB,uBAAuB;EACvCsB,YAAY,EAAE,CAAC7B,cAAc,EAAEI,mBAAmB,EAAEH,sBAAsB;AAC9E,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
- import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { Folder, UpdateFolderParams } from "../../../folder/folder.types.js";
4
4
  import { FolderCannotMoveToNewParent, type FolderNotAuthorizedError, type FolderNotFoundError, type FolderPersistenceError, type FolderValidationError } from "../../../domain/folder/errors.js";
5
5
  /**
@@ -13,6 +13,7 @@ export interface IUpdateFolderRepositoryErrors {
13
13
  validation: FolderValidationError;
14
14
  }
15
15
  type RepositoryError = IUpdateFolderRepositoryErrors[keyof IUpdateFolderRepositoryErrors];
16
+ /** Persist folder updates. */
16
17
  export declare const UpdateFolderRepository: import("@webiny/di").Abstraction<IUpdateFolderRepository>;
17
18
  export declare namespace UpdateFolderRepository {
18
19
  type Interface = IUpdateFolderRepository;
@@ -32,6 +33,7 @@ export interface IUpdateFolderUseCaseErrors {
32
33
  validation: FolderValidationError;
33
34
  }
34
35
  type UseCaseError = IUpdateFolderUseCaseErrors[keyof IUpdateFolderUseCaseErrors];
36
+ /** Update a folder. */
35
37
  export declare const UpdateFolderUseCase: import("@webiny/di").Abstraction<IUpdateFolderUseCase>;
36
38
  export declare namespace UpdateFolderUseCase {
37
39
  type Interface = IUpdateFolderUseCase;
@@ -47,13 +49,15 @@ export interface FolderAfterUpdatePayload {
47
49
  folder: Folder;
48
50
  input: Record<string, any>;
49
51
  }
50
- export declare const FolderBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
51
- export declare namespace FolderBeforeUpdateHandler {
52
+ /** Hook into folder lifecycle before a folder is updated. */
53
+ export declare const FolderBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
54
+ export declare namespace FolderBeforeUpdateEventHandler {
52
55
  type Interface = IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>;
53
56
  type Event = DomainEvent<FolderBeforeUpdatePayload>;
54
57
  }
55
- export declare const FolderAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
56
- export declare namespace FolderAfterUpdateHandler {
58
+ /** Hook into folder lifecycle after a folder is updated. */
59
+ export declare const FolderAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
60
+ export declare namespace FolderAfterUpdateEventHandler {
57
61
  type Interface = IEventHandler<DomainEvent<FolderAfterUpdatePayload>>;
58
62
  type Event = DomainEvent<FolderAfterUpdatePayload>;
59
63
  }
@@ -4,18 +4,22 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * UpdateFolder repository interface
5
5
  */
6
6
 
7
+ /** Persist folder updates. */
7
8
  export const UpdateFolderRepository = createAbstraction("UpdateFolderRepository");
8
9
 
9
10
  /**
10
11
  * UpdateFolder use case interface
11
12
  */
12
13
 
14
+ /** Update a folder. */
13
15
  export const UpdateFolderUseCase = createAbstraction("UpdateFolderUseCase");
14
16
 
15
17
  // Event Payload Types
16
18
 
17
19
  // Event Handler Abstractions
18
- export const FolderBeforeUpdateHandler = createAbstraction("FolderBeforeUpdateHandler");
19
- export const FolderAfterUpdateHandler = createAbstraction("FolderAfterUpdateHandler");
20
+ /** Hook into folder lifecycle before a folder is updated. */
21
+ export const FolderBeforeUpdateEventHandler = createAbstraction("FolderBeforeUpdateEventHandler");
22
+ /** Hook into folder lifecycle after a folder is updated. */
23
+ export const FolderAfterUpdateEventHandler = createAbstraction("FolderAfterUpdateEventHandler");
20
24
 
21
25
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateFolderRepository","UpdateFolderUseCase","FolderBeforeUpdateHandler","FolderAfterUpdateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { Folder, UpdateFolderParams } from \"~/folder/folder.types.js\";\nimport {\n FolderCannotMoveToNewParent,\n type FolderNotAuthorizedError,\n type FolderNotFoundError,\n type FolderPersistenceError,\n type FolderValidationError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * UpdateFolder repository interface\n */\nexport interface IUpdateFolderRepository {\n execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IUpdateFolderRepositoryErrors {\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype RepositoryError = IUpdateFolderRepositoryErrors[keyof IUpdateFolderRepositoryErrors];\n\nexport const UpdateFolderRepository =\n createAbstraction<IUpdateFolderRepository>(\"UpdateFolderRepository\");\n\nexport namespace UpdateFolderRepository {\n export type Interface = IUpdateFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * UpdateFolder use case interface\n */\nexport interface IUpdateFolderUseCase {\n execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IUpdateFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n cannotMoveToNewParent: FolderCannotMoveToNewParent;\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype UseCaseError = IUpdateFolderUseCaseErrors[keyof IUpdateFolderUseCaseErrors];\n\nexport const UpdateFolderUseCase = createAbstraction<IUpdateFolderUseCase>(\"UpdateFolderUseCase\");\n\nexport namespace UpdateFolderUseCase {\n export type Interface = IUpdateFolderUseCase;\n export type Return = Promise<Result<Folder, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeUpdatePayload {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface FolderAfterUpdatePayload {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\n// Event Handler Abstractions\nexport const FolderBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>\n>(\"FolderBeforeUpdateHandler\");\n\nexport namespace FolderBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>;\n export type Event = DomainEvent<FolderBeforeUpdatePayload>;\n}\n\nexport const FolderAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterUpdatePayload>>\n>(\"FolderAfterUpdateHandler\");\n\nexport namespace FolderAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterUpdatePayload>>;\n export type Event = DomainEvent<FolderAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAYvD;AACA;AACA;;AAYA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAeA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC;;AAQjG;;AAYA;AACA,OAAO,MAAMG,yBAAyB,GAAGH,iBAAiB,CAExD,2BAA2B,CAAC;AAO9B,OAAO,MAAMI,wBAAwB,GAAGJ,iBAAiB,CAEvD,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdateFolderRepository","UpdateFolderUseCase","FolderBeforeUpdateEventHandler","FolderAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { Folder, UpdateFolderParams } from \"~/folder/folder.types.js\";\nimport {\n FolderCannotMoveToNewParent,\n type FolderNotAuthorizedError,\n type FolderNotFoundError,\n type FolderPersistenceError,\n type FolderValidationError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * UpdateFolder repository interface\n */\nexport interface IUpdateFolderRepository {\n execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IUpdateFolderRepositoryErrors {\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype RepositoryError = IUpdateFolderRepositoryErrors[keyof IUpdateFolderRepositoryErrors];\n\n/** Persist folder updates. */\nexport const UpdateFolderRepository =\n createAbstraction<IUpdateFolderRepository>(\"UpdateFolderRepository\");\n\nexport namespace UpdateFolderRepository {\n export type Interface = IUpdateFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * UpdateFolder use case interface\n */\nexport interface IUpdateFolderUseCase {\n execute(id: string, data: UpdateFolderParams): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IUpdateFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n cannotMoveToNewParent: FolderCannotMoveToNewParent;\n persistence: FolderPersistenceError;\n validation: FolderValidationError;\n}\n\ntype UseCaseError = IUpdateFolderUseCaseErrors[keyof IUpdateFolderUseCaseErrors];\n\n/** Update a folder. */\nexport const UpdateFolderUseCase = createAbstraction<IUpdateFolderUseCase>(\"UpdateFolderUseCase\");\n\nexport namespace UpdateFolderUseCase {\n export type Interface = IUpdateFolderUseCase;\n export type Return = Promise<Result<Folder, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeUpdatePayload {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface FolderAfterUpdatePayload {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is updated. */\nexport const FolderBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>\n>(\"FolderBeforeUpdateEventHandler\");\n\nexport namespace FolderBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>;\n export type Event = DomainEvent<FolderBeforeUpdatePayload>;\n}\n\n/** Hook into folder lifecycle after a folder is updated. */\nexport const FolderAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterUpdatePayload>>\n>(\"FolderAfterUpdateEventHandler\");\n\nexport namespace FolderAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterUpdatePayload>>;\n export type Event = DomainEvent<FolderAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAYvD;AACA;AACA;;AAYA;AACA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAeA;AACA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC;;AAQjG;;AAYA;AACA;AACA,OAAO,MAAMG,8BAA8B,GAAGH,iBAAiB,CAE7D,gCAAgC,CAAC;AAOnC;AACA,OAAO,MAAMI,6BAA6B,GAAGJ,iBAAiB,CAE5D,+BAA+B,CAAC","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from "./abstractions.js";
3
3
  export declare class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {
4
4
  eventType: "folder.beforeUpdate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
6
6
  }
7
7
  export declare class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {
8
8
  eventType: "folder.afterUpdate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { FolderBeforeUpdateEventHandler, FolderAfterUpdateEventHandler } from "./abstractions.js";
3
3
  // FolderBeforeUpdate Event
4
4
  export class FolderBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "folder.beforeUpdate";
6
6
  getHandlerAbstraction() {
7
- return FolderBeforeUpdateHandler;
7
+ return FolderBeforeUpdateEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class FolderBeforeUpdateEvent extends DomainEvent {
12
12
  export class FolderAfterUpdateEvent extends DomainEvent {
13
13
  eventType = "folder.afterUpdate";
14
14
  getHandlerAbstraction() {
15
- return FolderAfterUpdateHandler;
15
+ return FolderAfterUpdateEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","FolderBeforeUpdateHandler","FolderAfterUpdateHandler","FolderBeforeUpdateEvent","eventType","getHandlerAbstraction","FolderAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from \"./abstractions.js\";\nimport type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from \"./abstractions.js\";\n\n// FolderBeforeUpdate Event\nexport class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {\n eventType = \"folder.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeUpdateHandler;\n }\n}\n\n// FolderAfterUpdate Event\nexport class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {\n eventType = \"folder.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,yBAAyB,EAAEC,wBAAwB;AAG5D;AACA,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,yBAAyB;EACpC;AACJ;;AAEA;AACA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,wBAAwB;EACnC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","FolderBeforeUpdateEventHandler","FolderAfterUpdateEventHandler","FolderBeforeUpdateEvent","eventType","getHandlerAbstraction","FolderAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FolderBeforeUpdateEventHandler, FolderAfterUpdateEventHandler } from \"./abstractions.js\";\nimport type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from \"./abstractions.js\";\n\n// FolderBeforeUpdate Event\nexport class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {\n eventType = \"folder.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeUpdateEventHandler;\n }\n}\n\n// FolderAfterUpdate Event\nexport class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {\n eventType = \"folder.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,8BAA8B,EAAEC,6BAA6B;AAGtE;AACA,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,8BAA8B;EACzC;AACJ;;AAEA;AACA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,6BAA6B;EACxC;AACJ","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const UpdateFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const UpdateFolderFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,2 +1,2 @@
1
1
  export { UpdateFolderFeature } from "./feature.js";
2
- export { FolderAfterUpdateHandler, FolderBeforeUpdateHandler, UpdateFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderUseCase } from "./abstractions.js";
@@ -1,4 +1,4 @@
1
1
  export { UpdateFolderFeature } from "./feature.js";
2
- export { FolderAfterUpdateHandler, FolderBeforeUpdateHandler, UpdateFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterUpdateEventHandler, FolderBeforeUpdateEventHandler, UpdateFolderUseCase } from "./abstractions.js";
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["UpdateFolderFeature","FolderAfterUpdateHandler","FolderBeforeUpdateHandler","UpdateFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { UpdateFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterUpdateHandler,\n FolderBeforeUpdateHandler,\n UpdateFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["UpdateFolderFeature","FolderAfterUpdateEventHandler","FolderBeforeUpdateEventHandler","UpdateFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { UpdateFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterUpdateEventHandler,\n FolderBeforeUpdateEventHandler,\n UpdateFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,mBAAmB","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import type { AcoStorageOperations as IAcoStorageOperations } from "../../../types.js";
2
+ /** Storage operations for folder filtering. */
2
3
  export declare const FilterStorageOperations: import("@webiny/di").Abstraction<import("~/types.js").AcoFilterStorageOperations>;
3
4
  export declare namespace FilterStorageOperations {
4
5
  type Interface = IAcoStorageOperations["filter"];
@@ -1,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
+ /** Storage operations for folder filtering. */
2
3
  export const FilterStorageOperations = createAbstraction("FilterStorageOperations");
3
4
 
4
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","FilterStorageOperations"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AcoStorageOperations as IAcoStorageOperations } from \"~/types.js\";\n\nexport const FilterStorageOperations =\n createAbstraction<IAcoStorageOperations[\"filter\"]>(\"FilterStorageOperations\");\n\nexport namespace FilterStorageOperations {\n export type Interface = IAcoStorageOperations[\"filter\"];\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAGvD,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAkC,yBAAyB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","FilterStorageOperations"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AcoStorageOperations as IAcoStorageOperations } from \"~/types.js\";\n\n/** Storage operations for folder filtering. */\nexport const FilterStorageOperations =\n createAbstraction<IAcoStorageOperations[\"filter\"]>(\"FilterStorageOperations\");\n\nexport namespace FilterStorageOperations {\n export type Interface = IAcoStorageOperations[\"filter\"];\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAGvD;AACA,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAkC,yBAAyB,CAAC","ignoreList":[]}
package/flp/flp.so.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createStandardEntity","createTable","WebinyError","executeWithRetry","FolderLevelPermissionsStorageOperations","constructor","documentClient","table","name","String","process","env","DB_TABLE","entity","list","where","tenant","type","path_startsWith","parentId","entries","queryAll","partitionKey","options","index","eq","map","entry","data","beginsWith","err","from","message","code","get","id","createKeys","create","keys","createGsiKeys","put","update","inputData","original","delete","flp","batchUpdate","items","batch","createEntityWriter","updatedItems","push","execute","PK","SK","TYPE","path","GSI1_PK","GSI1_SK","GSI2_PK","GSI2_SK","GSI_TENANT","createFlpOperations","params"],"sources":["flp.so.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createStandardEntity, createTable } from \"@webiny/db-dynamodb\";\n\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations,\n FolderLevelPermission,\n StorageOperationsBatchUpdateFlpParams,\n StorageOperationsCreateFlpParams,\n StorageOperationsDeleteFlpParams,\n StorageOperationsGetFlpParams,\n StorageOperationsListFlpsParams,\n StorageOperationsUpdateFlpParams\n} from \"~/flp/flp.types.js\";\nimport { executeWithRetry } from \"@webiny/utils\";\n\ninterface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\ninterface CreateKeysParams {\n tenant: string;\n id: string;\n}\n\ninterface CreateGsiKeysParams {\n tenant: string;\n id: string;\n type: string;\n path: string;\n parentId: string;\n}\n\nclass FolderLevelPermissionsStorageOperations\n implements IAcoFolderLevelPermissionsStorageOperations\n{\n private readonly entity;\n private readonly table;\n\n constructor({ documentClient }: StorageOperationsConfig) {\n this.table = createTable({\n name: String(process.env.DB_TABLE),\n documentClient\n });\n\n this.entity = createStandardEntity<FolderLevelPermission>({\n table: this.table.table,\n name: \"ACO.flp\"\n });\n }\n\n public async list({\n where: { tenant, type, path_startsWith, parentId }\n }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]> {\n try {\n if (parentId) {\n const entries = await this.entity.queryAll({\n partitionKey: `T#${tenant}#FLP`,\n options: {\n index: \"GSI2\",\n eq: parentId\n }\n });\n return entries.map(entry => entry.data);\n }\n\n if (path_startsWith) {\n const entries = await this.entity.queryAll({\n partitionKey: `T#${tenant}#AT#${type}#FLP`,\n options: {\n index: \"GSI1\",\n beginsWith: path_startsWith\n }\n });\n return entries.map(entry => entry.data);\n }\n\n throw new WebinyError(\"Missing required parameters.\", \"LIST_FLP_MISSING_PARAMETERS\", {\n tenant,\n type,\n path_startsWith,\n parentId\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not list folder level permissions.\",\n code: \"LIST_FLP_ERROR\"\n });\n }\n }\n\n public async get({\n tenant,\n id\n }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null> {\n try {\n const entry = await this.entity.get(this.createKeys({ tenant, id }));\n\n if (!entry) {\n return null;\n }\n\n return entry.data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not load folder level permission.\",\n code: \"GET_FLP_ERROR\",\n data: { tenant, id }\n });\n }\n }\n\n public async create({\n data\n }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission> {\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n try {\n await this.entity.put({\n ...keys,\n data\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create folder level permission.\",\n code: \"CREATE_FLP_ERROR\",\n data: { keys, data }\n });\n }\n }\n\n public async update({\n data: inputData,\n original\n }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission> {\n try {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n await this.entity.put({\n ...keys,\n data\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update folder level permission.\",\n code: \"UPDATE_FLP_ERROR\",\n data: { inputData, original }\n });\n }\n }\n\n public async delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void> {\n const keys = this.createKeys(flp);\n\n try {\n await this.entity.delete(keys);\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not delete folder level permission.\",\n code: \"DELETE_FLP_ERROR\",\n data: {\n keys,\n flp\n }\n });\n }\n }\n\n public async batchUpdate({\n items\n }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]> {\n try {\n const batch = this.entity.createEntityWriter();\n\n const updatedItems: FolderLevelPermission[] = [];\n\n for (const { original, data: inputData } of items) {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n batch.put({\n ...keys,\n data\n });\n\n updatedItems.push(data);\n }\n\n await executeWithRetry(async () => {\n return await batch.execute();\n });\n\n return updatedItems;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not batch update folder level permissions.\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: { items }\n });\n }\n }\n\n private createKeys({ id, tenant }: CreateKeysParams) {\n return {\n PK: `T#${tenant}#FLP#${id}`,\n SK: `A`,\n TYPE: \"aco.flp\"\n };\n }\n\n private createGsiKeys({ tenant, type, path, parentId }: CreateGsiKeysParams) {\n return {\n GSI1_PK: `T#${tenant}#AT#${type}#FLP`,\n GSI1_SK: path,\n GSI2_PK: `T#${tenant}#FLP`,\n GSI2_SK: parentId,\n GSI_TENANT: tenant\n };\n }\n}\n\nexport const createFlpOperations = (params: StorageOperationsConfig) => {\n return new FolderLevelPermissionsStorageOperations(params);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createStandardEntity","createTable","WebinyError","executeWithRetry","FolderLevelPermissionsStorageOperations","constructor","documentClient","table","name","String","process","env","DB_TABLE","entity","list","where","tenant","type","path_startsWith","parentId","entries","queryAll","partitionKey","options","index","eq","map","entry","data","beginsWith","err","from","message","code","get","id","createKeys","create","keys","createGsiKeys","put","update","inputData","original","delete","flp","batchUpdate","items","batch","createEntityWriter","updatedItems","push","execute","PK","SK","TYPE","path","GSI1_PK","GSI1_SK","GSI2_PK","GSI2_SK","GSI_TENANT","createFlpOperations","params"],"sources":["flp.so.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createStandardEntity, createTable } from \"@webiny/db-dynamodb\";\n\nimport { WebinyError } from \"@webiny/error\";\nimport type {\n AcoFolderLevelPermissionsStorageOperations as IAcoFolderLevelPermissionsStorageOperations,\n FolderLevelPermission,\n StorageOperationsBatchUpdateFlpParams,\n StorageOperationsCreateFlpParams,\n StorageOperationsDeleteFlpParams,\n StorageOperationsGetFlpParams,\n StorageOperationsListFlpsParams,\n StorageOperationsUpdateFlpParams\n} from \"~/flp/flp.types.js\";\nimport { executeWithRetry } from \"@webiny/utils\";\n\ninterface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\ninterface CreateKeysParams {\n tenant: string;\n id: string;\n}\n\ninterface CreateGsiKeysParams {\n tenant: string;\n id: string;\n type: string;\n path: string;\n parentId: string;\n}\n\nclass FolderLevelPermissionsStorageOperations implements IAcoFolderLevelPermissionsStorageOperations {\n private readonly entity;\n private readonly table;\n\n constructor({ documentClient }: StorageOperationsConfig) {\n this.table = createTable({\n name: String(process.env.DB_TABLE),\n documentClient\n });\n\n this.entity = createStandardEntity<FolderLevelPermission>({\n table: this.table.table,\n name: \"ACO.flp\"\n });\n }\n\n public async list({\n where: { tenant, type, path_startsWith, parentId }\n }: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]> {\n try {\n if (parentId) {\n const entries = await this.entity.queryAll({\n partitionKey: `T#${tenant}#FLP`,\n options: {\n index: \"GSI2\",\n eq: parentId\n }\n });\n return entries.map(entry => entry.data);\n }\n\n if (path_startsWith) {\n const entries = await this.entity.queryAll({\n partitionKey: `T#${tenant}#AT#${type}#FLP`,\n options: {\n index: \"GSI1\",\n beginsWith: path_startsWith\n }\n });\n return entries.map(entry => entry.data);\n }\n\n throw new WebinyError(\"Missing required parameters.\", \"LIST_FLP_MISSING_PARAMETERS\", {\n tenant,\n type,\n path_startsWith,\n parentId\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not list folder level permissions.\",\n code: \"LIST_FLP_ERROR\"\n });\n }\n }\n\n public async get({\n tenant,\n id\n }: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null> {\n try {\n const entry = await this.entity.get(this.createKeys({ tenant, id }));\n\n if (!entry) {\n return null;\n }\n\n return entry.data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not load folder level permission.\",\n code: \"GET_FLP_ERROR\",\n data: { tenant, id }\n });\n }\n }\n\n public async create({\n data\n }: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission> {\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n try {\n await this.entity.put({\n ...keys,\n data\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create folder level permission.\",\n code: \"CREATE_FLP_ERROR\",\n data: { keys, data }\n });\n }\n }\n\n public async update({\n data: inputData,\n original\n }: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission> {\n try {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n await this.entity.put({\n ...keys,\n data\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update folder level permission.\",\n code: \"UPDATE_FLP_ERROR\",\n data: { inputData, original }\n });\n }\n }\n\n public async delete({ flp }: StorageOperationsDeleteFlpParams): Promise<void> {\n const keys = this.createKeys(flp);\n\n try {\n await this.entity.delete(keys);\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not delete folder level permission.\",\n code: \"DELETE_FLP_ERROR\",\n data: {\n keys,\n flp\n }\n });\n }\n }\n\n public async batchUpdate({\n items\n }: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]> {\n try {\n const batch = this.entity.createEntityWriter();\n\n const updatedItems: FolderLevelPermission[] = [];\n\n for (const { original, data: inputData } of items) {\n const data = {\n ...original,\n ...inputData\n };\n\n const keys = {\n ...this.createKeys(data),\n ...this.createGsiKeys(data)\n };\n\n batch.put({\n ...keys,\n data\n });\n\n updatedItems.push(data);\n }\n\n await executeWithRetry(async () => {\n return await batch.execute();\n });\n\n return updatedItems;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not batch update folder level permissions.\",\n code: \"BATCH_UPDATE_FLP_ERROR\",\n data: { items }\n });\n }\n }\n\n private createKeys({ id, tenant }: CreateKeysParams) {\n return {\n PK: `T#${tenant}#FLP#${id}`,\n SK: `A`,\n TYPE: \"aco.flp\"\n };\n }\n\n private createGsiKeys({ tenant, type, path, parentId }: CreateGsiKeysParams) {\n return {\n GSI1_PK: `T#${tenant}#AT#${type}#FLP`,\n GSI1_SK: path,\n GSI2_PK: `T#${tenant}#FLP`,\n GSI2_SK: parentId,\n GSI_TENANT: tenant\n };\n }\n}\n\nexport const createFlpOperations = (params: StorageOperationsConfig) => {\n return new FolderLevelPermissionsStorageOperations(params);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ declare class CreateFlpTaskImpl implements TaskDefinition.Interface<ICreateFlpTa
7
7
  title: string;
8
8
  description: string;
9
9
  databaseLogs: boolean;
10
+ readonly selfCleanup: ("onSuccess" | "onAbort")[];
10
11
  constructor(createFlp: CreateFlpUseCase.Interface);
11
12
  run({ input, controller }: TaskDefinition.RunParams<ICreateFlpTaskInput>): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultError | import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResultAborted | TaskDefinition.ResultContinue<ICreateFlpTaskInput> | TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
12
13
  }
@@ -6,6 +6,7 @@ class CreateFlpTaskImpl {
6
6
  title = "ACO - Create FLP record";
7
7
  description = "Synchronizes the FLP catalog by creating the FLP record based on the provided folder.";
8
8
  databaseLogs = false;
9
+ selfCleanup = ["onSuccess", "onAbort"];
9
10
  constructor(createFlp) {
10
11
  this.createFlp = createFlp;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDefinition","CREATE_FLP_TASK_ID","CreateFlpUseCase","CreateFlpTaskImpl","id","title","description","databaseLogs","constructor","createFlp","run","input","controller","runtime","isAborted","response","aborted","isCloseToTimeout","continue","execute","folder","done","error","CreateFlpTask","createImplementation","implementation","dependencies"],"sources":["createFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CREATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ICreateFlpTaskInput } from \"~/types.js\";\nimport { CreateFlpUseCase } from \"~/features/flp/CreateFlp/index.js\";\n\nclass CreateFlpTaskImpl implements TaskDefinition.Interface<ICreateFlpTaskInput> {\n id = CREATE_FLP_TASK_ID;\n title = \"ACO - Create FLP record\";\n description =\n \"Synchronizes the FLP catalog by creating the FLP record based on the provided folder.\";\n databaseLogs = false;\n\n constructor(private createFlp: CreateFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<ICreateFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.createFlp.execute(input.folder);\n\n return controller.response.done(\"Task done: FLP record created.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const CreateFlpTask = TaskDefinition.createImplementation({\n implementation: CreateFlpTaskImpl,\n dependencies: [CreateFlpUseCase]\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,uFAAuF;EAC3FC,YAAY,GAAG,KAAK;EAEpBC,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,IAAIJ,UAAU,CAACC,OAAO,CAACI,gBAAgB,CAAC,CAAC,EAAE;QACvC,OAAOL,UAAU,CAACG,QAAQ,CAACG,QAAQ,CAACP,KAAK,CAAC;MAC9C;MAEA,MAAM,IAAI,CAACF,SAAS,CAACU,OAAO,CAACR,KAAK,CAACS,MAAM,CAAC;MAE1C,OAAOR,UAAU,CAACG,QAAQ,CAACM,IAAI,CAAC,gCAAgC,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOV,UAAU,CAACG,QAAQ,CAACO,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,aAAa,GAAGvB,cAAc,CAACwB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEtB,iBAAiB;EACjCuB,YAAY,EAAE,CAACxB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TaskDefinition","CREATE_FLP_TASK_ID","CreateFlpUseCase","CreateFlpTaskImpl","id","title","description","databaseLogs","selfCleanup","constructor","createFlp","run","input","controller","runtime","isAborted","response","aborted","isCloseToTimeout","continue","execute","folder","done","error","CreateFlpTask","createImplementation","implementation","dependencies"],"sources":["createFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CREATE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type ICreateFlpTaskInput } from \"~/types.js\";\nimport { CreateFlpUseCase } from \"~/features/flp/CreateFlp/index.js\";\n\nclass CreateFlpTaskImpl implements TaskDefinition.Interface<ICreateFlpTaskInput> {\n id = CREATE_FLP_TASK_ID;\n title = \"ACO - Create FLP record\";\n description =\n \"Synchronizes the FLP catalog by creating the FLP record based on the provided folder.\";\n databaseLogs = false;\n\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n constructor(private createFlp: CreateFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<ICreateFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.createFlp.execute(input.folder);\n\n return controller.response.done(\"Task done: FLP record created.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const CreateFlpTask = TaskDefinition.createImplementation({\n implementation: CreateFlpTaskImpl,\n dependencies: [CreateFlpUseCase]\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,uFAAuF;EAC3FC,YAAY,GAAG,KAAK;EAEJC,WAAW,GAAG,CAAC,WAAW,EAAW,SAAS,CAAU;EAExEC,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,IAAIJ,UAAU,CAACC,OAAO,CAACI,gBAAgB,CAAC,CAAC,EAAE;QACvC,OAAOL,UAAU,CAACG,QAAQ,CAACG,QAAQ,CAACP,KAAK,CAAC;MAC9C;MAEA,MAAM,IAAI,CAACF,SAAS,CAACU,OAAO,CAACR,KAAK,CAACS,MAAM,CAAC;MAE1C,OAAOR,UAAU,CAACG,QAAQ,CAACM,IAAI,CAAC,gCAAgC,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOV,UAAU,CAACG,QAAQ,CAACO,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,aAAa,GAAGxB,cAAc,CAACyB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEvB,iBAAiB;EACjCwB,YAAY,EAAE,CAACzB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ declare class DeleteFlpTaskImpl implements TaskDefinition.Interface<IDeleteFlpTa
7
7
  title: string;
8
8
  description: string;
9
9
  databaseLogs: boolean;
10
+ readonly selfCleanup: ("onSuccess" | "onAbort")[];
10
11
  constructor(deleteFlp: DeleteFlpUseCase.Interface);
11
12
  run({ input, controller }: TaskDefinition.RunParams<IDeleteFlpTaskInput>): 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> | TaskDefinition.ResultContinue<IDeleteFlpTaskInput>>;
12
13
  }
@@ -6,6 +6,7 @@ class DeleteFlpTaskImpl {
6
6
  title = "ACO - Delete FLP record";
7
7
  description = "Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.";
8
8
  databaseLogs = false;
9
+ selfCleanup = ["onSuccess", "onAbort"];
9
10
  constructor(deleteFlp) {
10
11
  this.deleteFlp = deleteFlp;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDefinition","DELETE_FLP_TASK_ID","DeleteFlpUseCase","DeleteFlpTaskImpl","id","title","description","databaseLogs","constructor","deleteFlp","run","input","controller","runtime","isAborted","response","aborted","isCloseToTimeout","continue","execute","folder","done","error","DeleteFlpTask","createImplementation","implementation","dependencies"],"sources":["deleteFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { DELETE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type IDeleteFlpTaskInput } from \"~/types.js\";\nimport { DeleteFlpUseCase } from \"~/features/flp/DeleteFlp/index.js\";\n\nclass DeleteFlpTaskImpl implements TaskDefinition.Interface<IDeleteFlpTaskInput> {\n id = DELETE_FLP_TASK_ID;\n title = \"ACO - Delete FLP record\";\n description =\n \"Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.\";\n databaseLogs = false;\n\n constructor(private deleteFlp: DeleteFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<IDeleteFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.deleteFlp.execute(input.folder);\n\n return controller.response.done(\"Task done: FLP record deleted.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const DeleteFlpTask = TaskDefinition.createImplementation({\n implementation: DeleteFlpTaskImpl,\n dependencies: [DeleteFlpUseCase]\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,uFAAuF;EAC3FC,YAAY,GAAG,KAAK;EAEpBC,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,IAAIJ,UAAU,CAACC,OAAO,CAACI,gBAAgB,CAAC,CAAC,EAAE;QACvC,OAAOL,UAAU,CAACG,QAAQ,CAACG,QAAQ,CAACP,KAAK,CAAC;MAC9C;MAEA,MAAM,IAAI,CAACF,SAAS,CAACU,OAAO,CAACR,KAAK,CAACS,MAAM,CAAC;MAE1C,OAAOR,UAAU,CAACG,QAAQ,CAACM,IAAI,CAAC,gCAAgC,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOV,UAAU,CAACG,QAAQ,CAACO,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,aAAa,GAAGvB,cAAc,CAACwB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEtB,iBAAiB;EACjCuB,YAAY,EAAE,CAACxB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TaskDefinition","DELETE_FLP_TASK_ID","DeleteFlpUseCase","DeleteFlpTaskImpl","id","title","description","databaseLogs","selfCleanup","constructor","deleteFlp","run","input","controller","runtime","isAborted","response","aborted","isCloseToTimeout","continue","execute","folder","done","error","DeleteFlpTask","createImplementation","implementation","dependencies"],"sources":["deleteFlp.task.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { DELETE_FLP_TASK_ID } from \"~/flp/tasks/index.js\";\nimport { type IDeleteFlpTaskInput } from \"~/types.js\";\nimport { DeleteFlpUseCase } from \"~/features/flp/DeleteFlp/index.js\";\n\nclass DeleteFlpTaskImpl implements TaskDefinition.Interface<IDeleteFlpTaskInput> {\n id = DELETE_FLP_TASK_ID;\n title = \"ACO - Delete FLP record\";\n description =\n \"Synchronizes the FLP catalog by deleting the FLP record based on the provided folder.\";\n databaseLogs = false;\n\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n constructor(private deleteFlp: DeleteFlpUseCase.Interface) {}\n\n async run({ input, controller }: TaskDefinition.RunParams<IDeleteFlpTaskInput>) {\n try {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n }\n\n if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue(input);\n }\n\n await this.deleteFlp.execute(input.folder);\n\n return controller.response.done(\"Task done: FLP record deleted.\");\n } catch (error) {\n return controller.response.error(error);\n }\n }\n}\n\nexport const DeleteFlpTask = TaskDefinition.createImplementation({\n implementation: DeleteFlpTaskImpl,\n dependencies: [DeleteFlpUseCase]\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,uFAAuF;EAC3FC,YAAY,GAAG,KAAK;EAEJC,WAAW,GAAG,CAAC,WAAW,EAAW,SAAS,CAAU;EAExEC,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,IAAIJ,UAAU,CAACC,OAAO,CAACI,gBAAgB,CAAC,CAAC,EAAE;QACvC,OAAOL,UAAU,CAACG,QAAQ,CAACG,QAAQ,CAACP,KAAK,CAAC;MAC9C;MAEA,MAAM,IAAI,CAACF,SAAS,CAACU,OAAO,CAACR,KAAK,CAACS,MAAM,CAAC;MAE1C,OAAOR,UAAU,CAACG,QAAQ,CAACM,IAAI,CAAC,gCAAgC,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOV,UAAU,CAACG,QAAQ,CAACO,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,aAAa,GAAGxB,cAAc,CAACyB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEvB,iBAAiB;EACjCwB,YAAY,EAAE,CAACzB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
@@ -11,6 +11,7 @@ declare class SyncFlpTaskImpl implements TaskDefinition.Interface<ISyncFlpTaskIn
11
11
  title: string;
12
12
  description: string;
13
13
  databaseLogs: boolean;
14
+ selfCleanup: ("onSuccess" | "onAbort")[];
14
15
  constructor(getFolder: GetFolderUseCase.Interface, listFolders: ListFoldersUseCase.Interface, listModels: ListModelsUseCase.Interface);
15
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>>;
16
17
  }
@@ -9,6 +9,7 @@ class SyncFlpTaskImpl {
9
9
  title = "ACO - Sync FLP record";
10
10
  description = "Synchronizes the FLP catalog by updating the FLP record and its descendants.";
11
11
  databaseLogs = false;
12
+ selfCleanup = ["onSuccess", "onAbort"];
12
13
  constructor(getFolder, listFolders, listModels) {
13
14
  this.getFolder = getFolder;
14
15
  this.listFolders = listFolders;
@@ -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","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 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":"AAAA,SAASA,cAAc,QAAQ,wDAAwD;AACvF,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,gBAAgB,EAAEC,kBAAkB;AAE7C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAE3B,MAAMC,eAAe,CAAwD;EACzEC,EAAE,GAAGN,gBAAgB;EACrBO,KAAK,GAAG,uBAAuB;EAC/BC,WAAW,GAAG,8EAA8E;EAC5FC,YAAY,GAAG,KAAK;EAEpBC,WAAWA,CACCC,SAAqC,EACrCC,WAAyC,EACzCC,UAAuC,EACjD;IAAA,KAHUF,SAAqC,GAArCA,SAAqC;IAAA,KACrCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAuC,GAAvCA,UAAuC;EAChD;EAEH,MAAMC,GAAGA,CAAC;IAAEC,KAAK;IAAEC;EAAwD,CAAC,EAAE;IAC1E,IAAI;MACA,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;QAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;MACxC;;MAEA;AACZ;AACA;AACA;AACA;MACY,IAAIL,KAAK,CAACM,QAAQ,EAAE;QAChB,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACX,SAAS,CAACY,OAAO,CAACR,KAAK,CAACM,QAAS,CAAC;QAC5D,MAAMG,MAAM,GAAGF,MAAM,CAACG,KAAK;QAE3B,MAAMT,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;UAC/CC,UAAU,EAAE3B,kBAAkB;UAC9Bc,KAAK,EAAE;YACHS;UACJ;QACJ,CAAC,CAAC;QAEF,OAAOR,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,8DAA8Dd,KAAK,CAACM,QAAQ,yDAChF,CAAC;MACL;;MAEA;AACZ;AACA;AACA;AACA;AACA;AACA;MACY,IAAIN,KAAK,CAACe,IAAI,IAAIf,KAAK,CAACe,IAAI,KAAK,GAAG,EAAE;QAClC;QACA,MAAMC,WAAW,GAAG,CAAC7B,YAAY,CAAC;;QAElC;QACA,MAAM8B,YAAY,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACU,OAAO,CAAC,CAAC;QACpD,IAAIS,YAAY,CAACC,IAAI,CAAC,CAAC,EAAE;UACrB,MAAMC,MAAM,GAAGF,YAAY,CAACP,KAAK;UACjC,KAAK,MAAMU,KAAK,IAAID,MAAM,EAAE;YACxBH,WAAW,CAACK,IAAI,CAAC,OAAOD,KAAK,CAACE,OAAO,EAAE,CAAC;UAC5C;QACJ;QAEA,KAAK,MAAMC,UAAU,IAAIP,WAAW,EAAE;UAClC,MAAMT,MAAM,GAAG,MAAM,IAAI,CAACV,WAAW,CAACW,OAAO,CAAC;YAC1CgB,KAAK,EAAE;cACHT,IAAI,EAAEQ,UAAU;cAChBE,QAAQ,EAAE;YACd;UACJ,CAAC,CAAC;UAEF,MAAM;YAAEC;UAAQ,CAAC,GAAGnB,MAAM,CAACG,KAAK;UAEhC,KAAK,MAAMD,MAAM,IAAIiB,OAAO,EAAE;YAC1B,MAAMzB,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;cAC/CC,UAAU,EAAE3B,kBAAkB;cAC9Bc,KAAK,EAAE;gBACHS;cACJ;YACJ,CAAC,CAAC;UACN;UAEA,MAAMR,UAAU,CAAC0B,MAAM,CAACC,IAAI,CAAC;YACzBC,OAAO,EAAE,sCAAsCN,UAAU,EAAE;YAC3DO,IAAI,EAAE;cACFf,IAAI,EAAEQ;YACV;UACJ,CAAC,CAAC;QACN;QAEA,OAAOtB,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,mFACJ,CAAC;MACL;;MAEA;AACZ;AACA;AACA;AACA;AACA;MACY,IAAId,KAAK,CAACe,IAAI,EAAE;QACZ,MAAMR,MAAM,GAAG,MAAM,IAAI,CAACV,WAAW,CAACW,OAAO,CAAC;UAC1CgB,KAAK,EAAE;YACHT,IAAI,EAAEf,KAAK,CAACe,IAAK;YACjBU,QAAQ,EAAE;UACd;QACJ,CAAC,CAAC;QAEF,MAAM;UAAEC;QAAQ,CAAC,GAAGnB,MAAM,CAACG,KAAK;QAEhC,KAAK,MAAMD,MAAM,IAAIiB,OAAO,EAAE;UAC1B,MAAMzB,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;YAC/CC,UAAU,EAAE3B,kBAAkB;YAC9Bc,KAAK,EAAE;cACHS;YACJ;UACJ,CAAC,CAAC;QACN;QAEA,OAAOR,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,0DAA0Dd,KAAK,CAACe,IAAI,wCACxE,CAAC;MACL;MAEA,OAAOd,UAAU,CAACG,QAAQ,CAAC2B,KAAK,CAC5B,4DACJ,CAAC;IACL,CAAC,CAAC,OAAOA,KAAK,EAAE;MACZ,OAAO9B,UAAU,CAACG,QAAQ,CAAC2B,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,WAAW,GAAGjD,cAAc,CAACkD,oBAAoB,CAAC;EAC3DC,cAAc,EAAE5C,eAAe;EAC/B6C,YAAY,EAAE,CAAC/C,gBAAgB,EAAEC,kBAAkB,EAAEL,iBAAiB;AAC1E,CAAC,CAAC","ignoreList":[]}
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":"AAAA,SAASA,cAAc,QAAQ,wDAAwD;AACvF,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,gBAAgB,EAAEC,kBAAkB;AAE7C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAE3B,MAAMC,eAAe,CAAwD;EACzEC,EAAE,GAAGN,gBAAgB;EACrBO,KAAK,GAAG,uBAAuB;EAC/BC,WAAW,GAAG,8EAA8E;EAC5FC,YAAY,GAAG,KAAK;EAEpBC,WAAW,GAAG,CAAC,WAAW,EAAW,SAAS,CAAU;EAExDC,WAAWA,CACCC,SAAqC,EACrCC,WAAyC,EACzCC,UAAuC,EACjD;IAAA,KAHUF,SAAqC,GAArCA,SAAqC;IAAA,KACrCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAuC,GAAvCA,UAAuC;EAChD;EAEH,MAAMC,GAAGA,CAAC;IAAEC,KAAK;IAAEC;EAAwD,CAAC,EAAE;IAC1E,IAAI;MACA,IAAIA,UAAU,CAACC,OAAO,CAACC,SAAS,CAAC,CAAC,EAAE;QAChC,OAAOF,UAAU,CAACG,QAAQ,CAACC,OAAO,CAAC,CAAC;MACxC;;MAEA;AACZ;AACA;AACA;AACA;MACY,IAAIL,KAAK,CAACM,QAAQ,EAAE;QAChB,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACX,SAAS,CAACY,OAAO,CAACR,KAAK,CAACM,QAAS,CAAC;QAC5D,MAAMG,MAAM,GAAGF,MAAM,CAACG,KAAK;QAE3B,MAAMT,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;UAC/CC,UAAU,EAAE5B,kBAAkB;UAC9Be,KAAK,EAAE;YACHS;UACJ;QACJ,CAAC,CAAC;QAEF,OAAOR,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,8DAA8Dd,KAAK,CAACM,QAAQ,yDAChF,CAAC;MACL;;MAEA;AACZ;AACA;AACA;AACA;AACA;AACA;MACY,IAAIN,KAAK,CAACe,IAAI,IAAIf,KAAK,CAACe,IAAI,KAAK,GAAG,EAAE;QAClC;QACA,MAAMC,WAAW,GAAG,CAAC9B,YAAY,CAAC;;QAElC;QACA,MAAM+B,YAAY,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACU,OAAO,CAAC,CAAC;QACpD,IAAIS,YAAY,CAACC,IAAI,CAAC,CAAC,EAAE;UACrB,MAAMC,MAAM,GAAGF,YAAY,CAACP,KAAK;UACjC,KAAK,MAAMU,KAAK,IAAID,MAAM,EAAE;YACxBH,WAAW,CAACK,IAAI,CAAC,OAAOD,KAAK,CAACE,OAAO,EAAE,CAAC;UAC5C;QACJ;QAEA,KAAK,MAAMC,UAAU,IAAIP,WAAW,EAAE;UAClC,MAAMT,MAAM,GAAG,MAAM,IAAI,CAACV,WAAW,CAACW,OAAO,CAAC;YAC1CgB,KAAK,EAAE;cACHT,IAAI,EAAEQ,UAAU;cAChBE,QAAQ,EAAE;YACd;UACJ,CAAC,CAAC;UAEF,MAAM;YAAEC;UAAQ,CAAC,GAAGnB,MAAM,CAACG,KAAK;UAEhC,KAAK,MAAMD,MAAM,IAAIiB,OAAO,EAAE;YAC1B,MAAMzB,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;cAC/CC,UAAU,EAAE5B,kBAAkB;cAC9Be,KAAK,EAAE;gBACHS;cACJ;YACJ,CAAC,CAAC;UACN;UAEA,MAAMR,UAAU,CAAC0B,MAAM,CAACC,IAAI,CAAC;YACzBC,OAAO,EAAE,sCAAsCN,UAAU,EAAE;YAC3DO,IAAI,EAAE;cACFf,IAAI,EAAEQ;YACV;UACJ,CAAC,CAAC;QACN;QAEA,OAAOtB,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,mFACJ,CAAC;MACL;;MAEA;AACZ;AACA;AACA;AACA;AACA;MACY,IAAId,KAAK,CAACe,IAAI,EAAE;QACZ,MAAMR,MAAM,GAAG,MAAM,IAAI,CAACV,WAAW,CAACW,OAAO,CAAC;UAC1CgB,KAAK,EAAE;YACHT,IAAI,EAAEf,KAAK,CAACe,IAAK;YACjBU,QAAQ,EAAE;UACd;QACJ,CAAC,CAAC;QAEF,MAAM;UAAEC;QAAQ,CAAC,GAAGnB,MAAM,CAACG,KAAK;QAEhC,KAAK,MAAMD,MAAM,IAAIiB,OAAO,EAAE;UAC1B,MAAMzB,UAAU,CAACU,IAAI,CAACC,OAAO,CAAsB;YAC/CC,UAAU,EAAE5B,kBAAkB;YAC9Be,KAAK,EAAE;cACHS;YACJ;UACJ,CAAC,CAAC;QACN;QAEA,OAAOR,UAAU,CAACG,QAAQ,CAACU,IAAI,CAC3B,0DAA0Dd,KAAK,CAACe,IAAI,wCACxE,CAAC;MACL;MAEA,OAAOd,UAAU,CAACG,QAAQ,CAAC2B,KAAK,CAC5B,4DACJ,CAAC;IACL,CAAC,CAAC,OAAOA,KAAK,EAAE;MACZ,OAAO9B,UAAU,CAACG,QAAQ,CAAC2B,KAAK,CAACA,KAAK,CAAC;IAC3C;EACJ;AACJ;AAEA,OAAO,MAAMC,WAAW,GAAGlD,cAAc,CAACmD,oBAAoB,CAAC;EAC3DC,cAAc,EAAE7C,eAAe;EAC/B8C,YAAY,EAAE,CAAChD,gBAAgB,EAAEC,kBAAkB,EAAEL,iBAAiB;AAC1E,CAAC,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ declare class UpdateFlpTaskImpl implements TaskDefinition.Interface<IUpdateFlpTa
7
7
  title: string;
8
8
  description: string;
9
9
  databaseLogs: boolean;
10
+ selfCleanup: ("onSuccess" | "onAbort")[];
10
11
  constructor(updateFlp: UpdateFlpUseCase.Interface);
11
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>>;
12
13
  }
@@ -6,6 +6,7 @@ class UpdateFlpTaskImpl {
6
6
  title = "ACO - Update FLP record";
7
7
  description = "Synchronizes the FLP catalog by updating the FLP record and its descendants based on the provided folder.";
8
8
  databaseLogs = false;
9
+ selfCleanup = ["onSuccess", "onAbort"];
9
10
  constructor(updateFlp) {
10
11
  this.updateFlp = updateFlp;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDefinition","UPDATE_FLP_TASK_ID","UpdateFlpUseCase","UpdateFlpTaskImpl","id","title","description","databaseLogs","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 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,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,GAAGzB,cAAc,CAAC0B,oBAAoB,CAAC;EAC7DC,cAAc,EAAExB,iBAAiB;EACjCyB,YAAY,EAAE,CAAC1B,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
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,7 +1,8 @@
1
- import type { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types/index.js";
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";
2
3
  export interface CreateFolderTypeDefsParams {
3
4
  model: CmsModel;
4
5
  models: CmsModel[];
5
- plugins: CmsFieldTypePlugins;
6
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
6
7
  }
7
8
  export declare const createFolderTypeDefs: (params: CreateFolderTypeDefsParams) => string;
@@ -21,7 +21,7 @@ export const createFolderTypeDefs = params => {
21
21
  const {
22
22
  model,
23
23
  models,
24
- plugins: fieldTypePlugins
24
+ fieldRegistry
25
25
  } = params;
26
26
  const {
27
27
  fields
@@ -31,19 +31,19 @@ export const createFolderTypeDefs = params => {
31
31
  model,
32
32
  fields,
33
33
  type: "manage",
34
- fieldTypePlugins
34
+ fieldRegistry
35
35
  });
36
36
  const inputCreateFields = renderInputFields({
37
37
  models,
38
38
  model,
39
39
  fields,
40
- fieldTypePlugins
40
+ fieldRegistry
41
41
  });
42
42
  const inputUpdateFields = renderInputFields({
43
43
  models,
44
44
  model,
45
45
  fields: createUpdateFields(fields),
46
- fieldTypePlugins
46
+ fieldRegistry
47
47
  });
48
48
  return /* GraphQL */`
49
49
  ${fieldTypes.map(f => f.typeDefs).join("\n")}