@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
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DeleteFolderRepository","DeleteFolderUseCase","FolderBeforeDeleteHandler","FolderAfterDeleteHandler"],"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 } from \"~/folder/folder.types.js\";\nimport {\n type FolderNotAuthorizedError,\n FolderNotEmptyError,\n type FolderNotFoundError,\n type FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * DeleteFolder repository interface\n */\nexport interface IDeleteFolderRepository {\n execute(folder: Folder): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeleteFolderRepositoryErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IDeleteFolderRepositoryErrors[keyof IDeleteFolderRepositoryErrors];\n\nexport const DeleteFolderRepository =\n createAbstraction<IDeleteFolderRepository>(\"DeleteFolderRepository\");\n\nexport namespace DeleteFolderRepository {\n export type Interface = IDeleteFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * DeleteFolder use case interface\n */\nexport interface IDeleteFolderUseCase {\n execute(id: string): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeleteFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n notEmpty: FolderNotEmptyError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IDeleteFolderUseCaseErrors[keyof IDeleteFolderUseCaseErrors];\n\nexport const DeleteFolderUseCase = createAbstraction<IDeleteFolderUseCase>(\"DeleteFolderUseCase\");\n\nexport namespace DeleteFolderUseCase {\n export type Interface = IDeleteFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeDeletePayload {\n folder: Folder;\n}\n\nexport interface FolderAfterDeletePayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\nexport const FolderBeforeDeleteHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeDeletePayload>>\n>(\"FolderBeforeDeleteHandler\");\n\nexport namespace FolderBeforeDeleteHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeDeletePayload>>;\n export type Event = DomainEvent<FolderBeforeDeletePayload>;\n}\n\nexport const FolderAfterDeleteHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterDeletePayload>>\n>(\"FolderAfterDeleteHandler\");\n\nexport namespace FolderAfterDeleteHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterDeletePayload>>;\n export type Event = DomainEvent<FolderAfterDeletePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAYA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAcA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;;AASA;AACA,OAAO,MAAMG,yBAAyB,GAAGH,iBAAiB,CAExD,2BAA2B,CAAC;AAO9B,OAAO,MAAMI,wBAAwB,GAAGJ,iBAAiB,CAEvD,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DeleteFolderRepository","DeleteFolderUseCase","FolderBeforeDeleteEventHandler","FolderAfterDeleteEventHandler"],"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 } from \"~/folder/folder.types.js\";\nimport {\n type FolderNotAuthorizedError,\n FolderNotEmptyError,\n type FolderNotFoundError,\n type FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * DeleteFolder repository interface\n */\nexport interface IDeleteFolderRepository {\n execute(folder: Folder): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeleteFolderRepositoryErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IDeleteFolderRepositoryErrors[keyof IDeleteFolderRepositoryErrors];\n\n/** Persist folder deletion. */\nexport const DeleteFolderRepository =\n createAbstraction<IDeleteFolderRepository>(\"DeleteFolderRepository\");\n\nexport namespace DeleteFolderRepository {\n export type Interface = IDeleteFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * DeleteFolder use case interface\n */\nexport interface IDeleteFolderUseCase {\n execute(id: string): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeleteFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n notEmpty: FolderNotEmptyError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IDeleteFolderUseCaseErrors[keyof IDeleteFolderUseCaseErrors];\n\n/** Delete a folder. */\nexport const DeleteFolderUseCase = createAbstraction<IDeleteFolderUseCase>(\"DeleteFolderUseCase\");\n\nexport namespace DeleteFolderUseCase {\n export type Interface = IDeleteFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeDeletePayload {\n folder: Folder;\n}\n\nexport interface FolderAfterDeletePayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is deleted. */\nexport const FolderBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeDeletePayload>>\n>(\"FolderBeforeDeleteEventHandler\");\n\nexport namespace FolderBeforeDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeDeletePayload>>;\n export type Event = DomainEvent<FolderBeforeDeletePayload>;\n}\n\n/** Hook into folder lifecycle after a folder is deleted. */\nexport const FolderAfterDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterDeletePayload>>\n>(\"FolderAfterDeleteEventHandler\");\n\nexport namespace FolderAfterDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterDeletePayload>>;\n export type Event = DomainEvent<FolderAfterDeletePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;AACA;AACA;;AAYA;AACA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAcA;AACA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;;AASA;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 { FolderBeforeDeletePayload, FolderAfterDeletePayload } from "./abstractions.js";
3
3
  export declare class FolderBeforeDeleteEvent extends DomainEvent<FolderBeforeDeletePayload> {
4
4
  eventType: "folder.beforeDelete";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderBeforeDeletePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderBeforeDeletePayload>>>;
6
6
  }
7
7
  export declare class FolderAfterDeleteEvent extends DomainEvent<FolderAfterDeletePayload> {
8
8
  eventType: "folder.afterDelete";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderAfterDeletePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<FolderAfterDeletePayload>>>;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { FolderBeforeDeleteHandler, FolderAfterDeleteHandler } from "./abstractions.js";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { FolderBeforeDeleteEventHandler, FolderAfterDeleteEventHandler } from "./abstractions.js";
3
3
  // FolderBeforeDelete Event
4
4
  export class FolderBeforeDeleteEvent extends DomainEvent {
5
5
  eventType = "folder.beforeDelete";
6
6
  getHandlerAbstraction() {
7
- return FolderBeforeDeleteHandler;
7
+ return FolderBeforeDeleteEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class FolderBeforeDeleteEvent extends DomainEvent {
12
12
  export class FolderAfterDeleteEvent extends DomainEvent {
13
13
  eventType = "folder.afterDelete";
14
14
  getHandlerAbstraction() {
15
- return FolderAfterDeleteHandler;
15
+ return FolderAfterDeleteEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","FolderBeforeDeleteHandler","FolderAfterDeleteHandler","FolderBeforeDeleteEvent","eventType","getHandlerAbstraction","FolderAfterDeleteEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { FolderBeforeDeleteHandler, FolderAfterDeleteHandler } from \"./abstractions.js\";\nimport type { FolderBeforeDeletePayload, FolderAfterDeletePayload } from \"./abstractions.js\";\n\n// FolderBeforeDelete Event\nexport class FolderBeforeDeleteEvent extends DomainEvent<FolderBeforeDeletePayload> {\n eventType = \"folder.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeDeleteHandler;\n }\n}\n\n// FolderAfterDelete Event\nexport class FolderAfterDeleteEvent extends DomainEvent<FolderAfterDeletePayload> {\n eventType = \"folder.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterDeleteHandler;\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","FolderBeforeDeleteEventHandler","FolderAfterDeleteEventHandler","FolderBeforeDeleteEvent","eventType","getHandlerAbstraction","FolderAfterDeleteEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FolderBeforeDeleteEventHandler, FolderAfterDeleteEventHandler } from \"./abstractions.js\";\nimport type { FolderBeforeDeletePayload, FolderAfterDeletePayload } from \"./abstractions.js\";\n\n// FolderBeforeDelete Event\nexport class FolderBeforeDeleteEvent extends DomainEvent<FolderBeforeDeletePayload> {\n eventType = \"folder.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeDeleteEventHandler;\n }\n}\n\n// FolderAfterDelete Event\nexport class FolderAfterDeleteEvent extends DomainEvent<FolderAfterDeletePayload> {\n eventType = \"folder.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterDeleteEventHandler;\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 DeleteFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const DeleteFolderFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,2 +1,2 @@
1
1
  export { DeleteFolderFeature } from "./feature.js";
2
- export { FolderAfterDeleteHandler, FolderBeforeDeleteHandler, DeleteFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterDeleteEventHandler, FolderBeforeDeleteEventHandler, DeleteFolderUseCase } from "./abstractions.js";
@@ -1,4 +1,4 @@
1
1
  export { DeleteFolderFeature } from "./feature.js";
2
- export { FolderAfterDeleteHandler, FolderBeforeDeleteHandler, DeleteFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterDeleteEventHandler, FolderBeforeDeleteEventHandler, DeleteFolderUseCase } from "./abstractions.js";
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DeleteFolderFeature","FolderAfterDeleteHandler","FolderBeforeDeleteHandler","DeleteFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { DeleteFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterDeleteHandler,\n FolderBeforeDeleteHandler,\n DeleteFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["DeleteFolderFeature","FolderAfterDeleteEventHandler","FolderBeforeDeleteEventHandler","DeleteFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { DeleteFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterDeleteEventHandler,\n FolderBeforeDeleteEventHandler,\n DeleteFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,mBAAmB","ignoreList":[]}
@@ -11,6 +11,7 @@ export interface IEnsureFolderIsEmptyError {
11
11
  notEmpty: FolderNotEmptyError;
12
12
  }
13
13
  type UseCaseError = IEnsureFolderIsEmptyError[keyof IEnsureFolderIsEmptyError];
14
+ /** Verify a folder has no children before deletion. */
14
15
  export declare const EnsureFolderIsEmpty: import("@webiny/di").Abstraction<IEnsureFolderIsEmpty>;
15
16
  export declare namespace EnsureFolderIsEmpty {
16
17
  type Interface = IEnsureFolderIsEmpty;
@@ -1,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
+ /** Verify a folder has no children before deletion. */
2
3
  export const EnsureFolderIsEmpty = createAbstraction("EnsureFolderIsEmpty");
3
4
 
4
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","EnsureFolderIsEmpty"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { FolderNotAuthorizedError, FolderNotEmptyError } from \"~/domain/folder/errors.js\";\n\nexport interface IHasContentCallback {\n (): boolean | Promise<boolean>;\n}\n\nexport interface IEnsureFolderIsEmpty {\n execute(\n type: string,\n id: string,\n hasContentCallback: IHasContentCallback\n ): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IEnsureFolderIsEmptyError {\n notAuthorized: FolderNotAuthorizedError;\n notEmpty: FolderNotEmptyError;\n}\n\ntype UseCaseError = IEnsureFolderIsEmptyError[keyof IEnsureFolderIsEmptyError];\n\nexport const EnsureFolderIsEmpty = createAbstraction<IEnsureFolderIsEmpty>(\"EnsureFolderIsEmpty\");\n\nexport namespace EnsureFolderIsEmpty {\n export type Interface = IEnsureFolderIsEmpty;\n export type HasContentCallback = IHasContentCallback;\n export type Return = Promise<Result<void, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;AAsB/D,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","EnsureFolderIsEmpty"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { FolderNotAuthorizedError, FolderNotEmptyError } from \"~/domain/folder/errors.js\";\n\nexport interface IHasContentCallback {\n (): boolean | Promise<boolean>;\n}\n\nexport interface IEnsureFolderIsEmpty {\n execute(\n type: string,\n id: string,\n hasContentCallback: IHasContentCallback\n ): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IEnsureFolderIsEmptyError {\n notAuthorized: FolderNotAuthorizedError;\n notEmpty: FolderNotEmptyError;\n}\n\ntype UseCaseError = IEnsureFolderIsEmptyError[keyof IEnsureFolderIsEmptyError];\n\n/** Verify a folder has no children before deletion. */\nexport const EnsureFolderIsEmpty = createAbstraction<IEnsureFolderIsEmpty>(\"EnsureFolderIsEmpty\");\n\nexport namespace EnsureFolderIsEmpty {\n export type Interface = IEnsureFolderIsEmpty;\n export type HasContentCallback = IHasContentCallback;\n export type Return = Promise<Result<void, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;AAsB/D;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const EnsureFolderIsEmptyFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const EnsureFolderIsEmptyFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,12 +1,12 @@
1
- import { FolderBeforeDeleteHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
1
+ import { FolderBeforeDeleteEventHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
2
2
  import type { FolderBeforeDeleteEvent } from "../../../features/folder/DeleteFolder/events.js";
3
3
  import { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
4
- declare class GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHandler.Interface {
4
+ declare class GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {
5
5
  private ensureFolderIsEmpty;
6
6
  constructor(ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface);
7
7
  handle(event: FolderBeforeDeleteEvent): Promise<void>;
8
8
  }
9
9
  export declare const GenericFolderBeforeDeleteHandler: typeof GenericFolderBeforeDeleteHandlerImpl & {
10
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-core/features/EventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/eventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
11
11
  };
12
12
  export {};
@@ -1,5 +1,5 @@
1
1
  import { WebinyError } from "@webiny/error";
2
- import { FolderBeforeDeleteHandler } from "../DeleteFolder/abstractions.js";
2
+ import { FolderBeforeDeleteEventHandler } from "../DeleteFolder/abstractions.js";
3
3
  import { EnsureFolderIsEmpty } from "../EnsureFolderIsEmpty/abstractions.js";
4
4
  class GenericFolderBeforeDeleteHandlerImpl {
5
5
  constructor(ensureFolderIsEmpty) {
@@ -21,7 +21,7 @@ class GenericFolderBeforeDeleteHandlerImpl {
21
21
  }
22
22
  }
23
23
  }
24
- export const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteHandler.createImplementation({
24
+ export const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({
25
25
  implementation: GenericFolderBeforeDeleteHandlerImpl,
26
26
  dependencies: [EnsureFolderIsEmpty]
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","FolderBeforeDeleteHandler","EnsureFolderIsEmpty","GenericFolderBeforeDeleteHandlerImpl","constructor","ensureFolderIsEmpty","handle","event","folder","payload","result","execute","type","id","isFail","from","error","message","code","GenericFolderBeforeDeleteHandler","createImplementation","implementation","dependencies"],"sources":["GenericFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\n\nclass GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHandler.Interface {\n constructor(private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const result = await this.ensureFolderIsEmpty.execute(\n folder.type,\n folder.id,\n // We can only check if a folder has child folders.\n // Content is controlled by individual apps, so content checks are implemented there.\n () => false\n );\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HANDLER\"\n });\n }\n }\n}\n\nexport const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteHandler.createImplementation({\n implementation: GenericFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty]\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,yBAAyB;AAElC,SAASC,mBAAmB;AAE5B,MAAMC,oCAAoC,CAAgD;EACtFC,WAAWA,CAASC,mBAAkD,EAAE;IAAA,KAApDA,mBAAkD,GAAlDA,mBAAkD;EAAG;EAEzE,MAAMC,MAAMA,CAACC,KAA8B,EAAiB;IACxD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,mBAAmB,CAACM,OAAO,CACjDH,MAAM,CAACI,IAAI,EACXJ,MAAM,CAACK,EAAE;IACT;IACA;IACA,MAAM,KACV,CAAC;IAED,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjB,MAAMd,WAAW,CAACe,IAAI,CAACL,MAAM,CAACM,KAAK,EAAE;QACjCC,OAAO,EAAE,qDAAqD;QAC9DC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAEA,OAAO,MAAMC,gCAAgC,GAAGlB,yBAAyB,CAACmB,oBAAoB,CAAC;EAC3FC,cAAc,EAAElB,oCAAoC;EACpDmB,YAAY,EAAE,CAACpB,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","FolderBeforeDeleteEventHandler","EnsureFolderIsEmpty","GenericFolderBeforeDeleteHandlerImpl","constructor","ensureFolderIsEmpty","handle","event","folder","payload","result","execute","type","id","isFail","from","error","message","code","GenericFolderBeforeDeleteHandler","createImplementation","implementation","dependencies"],"sources":["GenericFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteEventHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\n\nclass GenericFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {\n constructor(private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const result = await this.ensureFolderIsEmpty.execute(\n folder.type,\n folder.id,\n // We can only check if a folder has child folders.\n // Content is controlled by individual apps, so content checks are implemented there.\n () => false\n );\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_FILE_HANDLER\"\n });\n }\n }\n}\n\nexport const GenericFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation(\n {\n implementation: GenericFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty]\n }\n);\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,8BAA8B;AAEvC,SAASC,mBAAmB;AAE5B,MAAMC,oCAAoC,CAAqD;EAC3FC,WAAWA,CAASC,mBAAkD,EAAE;IAAA,KAApDA,mBAAkD,GAAlDA,mBAAkD;EAAG;EAEzE,MAAMC,MAAMA,CAACC,KAA8B,EAAiB;IACxD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,mBAAmB,CAACM,OAAO,CACjDH,MAAM,CAACI,IAAI,EACXJ,MAAM,CAACK,EAAE;IACT;IACA;IACA,MAAM,KACV,CAAC;IAED,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjB,MAAMd,WAAW,CAACe,IAAI,CAACL,MAAM,CAACM,KAAK,EAAE;QACjCC,OAAO,EAAE,qDAAqD;QAC9DC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAEA,OAAO,MAAMC,gCAAgC,GAAGlB,8BAA8B,CAACmB,oBAAoB,CAC/F;EACIC,cAAc,EAAElB,oCAAoC;EACpDmB,YAAY,EAAE,CAACpB,mBAAmB;AACtC,CACJ,CAAC","ignoreList":[]}
@@ -4,4 +4,7 @@
4
4
  * Actual content cannot be checked, as folders do not have information about their records.
5
5
  * Individual apps (like File Manager, Headless CMS, etc.) need to implement their own event handlers.
6
6
  */
7
- export declare const EnsureFolderIsEmptyOnDeleteFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const EnsureFolderIsEmptyOnDeleteFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -1,9 +1,9 @@
1
- import { FolderBeforeDeleteHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
1
+ import { FolderBeforeDeleteEventHandler } from "../../../features/folder/DeleteFolder/abstractions.js";
2
2
  import type { FolderBeforeDeleteEvent } from "../../../features/folder/DeleteFolder/events.js";
3
3
  import { EnsureFolderIsEmpty } from "../../../features/folder/EnsureFolderIsEmpty/abstractions.js";
4
4
  import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
5
5
  import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
6
- declare class ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHandler.Interface {
6
+ declare class ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {
7
7
  private ensureFolderIsEmpty;
8
8
  private getModel;
9
9
  private listEntries;
@@ -11,6 +11,6 @@ declare class ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHa
11
11
  handle(event: FolderBeforeDeleteEvent): Promise<void>;
12
12
  }
13
13
  export declare const ModelFolderBeforeDeleteHandler: typeof ModelFolderBeforeDeleteHandlerImpl & {
14
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<import("@webiny/api-core/features/EventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/eventPublisher").DomainEvent<import("~/features/folder/DeleteFolder/abstractions.js").FolderBeforeDeletePayload>>>;
15
15
  };
16
16
  export {};
@@ -1,5 +1,5 @@
1
1
  import { WebinyError } from "@webiny/error";
2
- import { FolderBeforeDeleteHandler } from "../DeleteFolder/abstractions.js";
2
+ import { FolderBeforeDeleteEventHandler } from "../DeleteFolder/abstractions.js";
3
3
  import { EnsureFolderIsEmpty } from "../EnsureFolderIsEmpty/abstractions.js";
4
4
  import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
5
5
  import { ListEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
@@ -48,7 +48,7 @@ class ModelFolderBeforeDeleteHandlerImpl {
48
48
  }
49
49
  }
50
50
  }
51
- export const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteHandler.createImplementation({
51
+ export const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({
52
52
  implementation: ModelFolderBeforeDeleteHandlerImpl,
53
53
  dependencies: [EnsureFolderIsEmpty, GetModelUseCase, ListEntriesUseCase]
54
54
  });
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","FolderBeforeDeleteHandler","EnsureFolderIsEmpty","GetModelUseCase","ListEntriesUseCase","ModelFolderBeforeDeleteHandlerImpl","constructor","ensureFolderIsEmpty","getModel","listEntries","handle","event","folder","payload","id","type","modelId","split","modelResult","execute","isFail","result","value","where","latest","wbyAco_location","folderId","limit","entries","length","from","error","message","code","ModelFolderBeforeDeleteHandler","createImplementation","implementation","dependencies"],"sources":["ModelFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { ListEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\n\nclass ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteHandler.Interface {\n constructor(\n private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface,\n private getModel: GetModelUseCase.Interface,\n private listEntries: ListEntriesUseCase.Interface\n ) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const { id, type } = folder;\n\n const modelId = type.split(\":\")[1];\n if (!modelId) {\n return;\n }\n\n const modelResult = await this.getModel.execute(modelId);\n if (modelResult.isFail()) {\n return;\n }\n\n const result = await this.ensureFolderIsEmpty.execute(type, id, async () => {\n const result = await this.listEntries.execute(modelResult.value, {\n where: {\n latest: true,\n wbyAco_location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n const { entries } = result.value;\n\n return entries.length > 0;\n });\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring HCMS folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HCMS_HANDLER\"\n });\n }\n }\n}\n\nexport const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteHandler.createImplementation({\n implementation: ModelFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty, GetModelUseCase, ListEntriesUseCase]\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,yBAAyB;AAElC,SAASC,mBAAmB;AAC5B,SAASC,eAAe,QAAQ,kEAAkE;AAClG,SAASC,kBAAkB,QAAQ,4EAA4E;AAE/G,MAAMC,kCAAkC,CAAgD;EACpFC,WAAWA,CACCC,mBAAkD,EAClDC,QAAmC,EACnCC,WAAyC,EACnD;IAAA,KAHUF,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,QAAmC,GAAnCA,QAAmC;IAAA,KACnCC,WAAyC,GAAzCA,WAAyC;EAClD;EAEH,MAAMC,MAAMA,CAACC,KAA8B,EAAiB;IACxD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,MAAM;MAAEC,EAAE;MAAEC;IAAK,CAAC,GAAGH,MAAM;IAE3B,MAAMI,OAAO,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAACD,OAAO,EAAE;MACV;IACJ;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACV,QAAQ,CAACW,OAAO,CAACH,OAAO,CAAC;IACxD,IAAIE,WAAW,CAACE,MAAM,CAAC,CAAC,EAAE;MACtB;IACJ;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACd,mBAAmB,CAACY,OAAO,CAACJ,IAAI,EAAED,EAAE,EAAE,YAAY;MACxE,MAAMO,MAAM,GAAG,MAAM,IAAI,CAACZ,WAAW,CAACU,OAAO,CAACD,WAAW,CAACI,KAAK,EAAE;QAC7DC,KAAK,EAAE;UACHC,MAAM,EAAE,IAAI;UACZC,eAAe,EAAE;YACbC,QAAQ,EAAEZ;UACd;QACJ,CAAC;QACDa,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,MAAM;QAAEC;MAAQ,CAAC,GAAGP,MAAM,CAACC,KAAK;MAEhC,OAAOM,OAAO,CAACC,MAAM,GAAG,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAIR,MAAM,CAACD,MAAM,CAAC,CAAC,EAAE;MACjB,MAAMpB,WAAW,CAAC8B,IAAI,CAACT,MAAM,CAACU,KAAK,EAAE;QACjCC,OAAO,EAAE,0DAA0D;QACnEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAEA,OAAO,MAAMC,8BAA8B,GAAGjC,yBAAyB,CAACkC,oBAAoB,CAAC;EACzFC,cAAc,EAAE/B,kCAAkC;EAClDgC,YAAY,EAAE,CAACnC,mBAAmB,EAAEC,eAAe,EAAEC,kBAAkB;AAC3E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","FolderBeforeDeleteEventHandler","EnsureFolderIsEmpty","GetModelUseCase","ListEntriesUseCase","ModelFolderBeforeDeleteHandlerImpl","constructor","ensureFolderIsEmpty","getModel","listEntries","handle","event","folder","payload","id","type","modelId","split","modelResult","execute","isFail","result","value","where","latest","wbyAco_location","folderId","limit","entries","length","from","error","message","code","ModelFolderBeforeDeleteHandler","createImplementation","implementation","dependencies"],"sources":["ModelFolderBeforeDeleteHandler.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport { FolderBeforeDeleteEventHandler } from \"~/features/folder/DeleteFolder/abstractions.js\";\nimport type { FolderBeforeDeleteEvent } from \"~/features/folder/DeleteFolder/events.js\";\nimport { EnsureFolderIsEmpty } from \"~/features/folder/EnsureFolderIsEmpty/abstractions.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { ListEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\n\nclass ModelFolderBeforeDeleteHandlerImpl implements FolderBeforeDeleteEventHandler.Interface {\n constructor(\n private ensureFolderIsEmpty: EnsureFolderIsEmpty.Interface,\n private getModel: GetModelUseCase.Interface,\n private listEntries: ListEntriesUseCase.Interface\n ) {}\n\n async handle(event: FolderBeforeDeleteEvent): Promise<void> {\n const { folder } = event.payload;\n\n const { id, type } = folder;\n\n const modelId = type.split(\":\")[1];\n if (!modelId) {\n return;\n }\n\n const modelResult = await this.getModel.execute(modelId);\n if (modelResult.isFail()) {\n return;\n }\n\n const result = await this.ensureFolderIsEmpty.execute(type, id, async () => {\n const result = await this.listEntries.execute(modelResult.value, {\n where: {\n latest: true,\n wbyAco_location: {\n folderId: id\n }\n },\n limit: 1\n });\n\n const { entries } = result.value;\n\n return entries.length > 0;\n });\n\n if (result.isFail()) {\n throw WebinyError.from(result.error, {\n message: \"Error while ensuring HCMS folder is empty before delete.\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HCMS_HANDLER\"\n });\n }\n }\n}\n\nexport const ModelFolderBeforeDeleteHandler = FolderBeforeDeleteEventHandler.createImplementation({\n implementation: ModelFolderBeforeDeleteHandlerImpl,\n dependencies: [EnsureFolderIsEmpty, GetModelUseCase, ListEntriesUseCase]\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,8BAA8B;AAEvC,SAASC,mBAAmB;AAC5B,SAASC,eAAe,QAAQ,kEAAkE;AAClG,SAASC,kBAAkB,QAAQ,4EAA4E;AAE/G,MAAMC,kCAAkC,CAAqD;EACzFC,WAAWA,CACCC,mBAAkD,EAClDC,QAAmC,EACnCC,WAAyC,EACnD;IAAA,KAHUF,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,QAAmC,GAAnCA,QAAmC;IAAA,KACnCC,WAAyC,GAAzCA,WAAyC;EAClD;EAEH,MAAMC,MAAMA,CAACC,KAA8B,EAAiB;IACxD,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,OAAO;IAEhC,MAAM;MAAEC,EAAE;MAAEC;IAAK,CAAC,GAAGH,MAAM;IAE3B,MAAMI,OAAO,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAACD,OAAO,EAAE;MACV;IACJ;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACV,QAAQ,CAACW,OAAO,CAACH,OAAO,CAAC;IACxD,IAAIE,WAAW,CAACE,MAAM,CAAC,CAAC,EAAE;MACtB;IACJ;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACd,mBAAmB,CAACY,OAAO,CAACJ,IAAI,EAAED,EAAE,EAAE,YAAY;MACxE,MAAMO,MAAM,GAAG,MAAM,IAAI,CAACZ,WAAW,CAACU,OAAO,CAACD,WAAW,CAACI,KAAK,EAAE;QAC7DC,KAAK,EAAE;UACHC,MAAM,EAAE,IAAI;UACZC,eAAe,EAAE;YACbC,QAAQ,EAAEZ;UACd;QACJ,CAAC;QACDa,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,MAAM;QAAEC;MAAQ,CAAC,GAAGP,MAAM,CAACC,KAAK;MAEhC,OAAOM,OAAO,CAACC,MAAM,GAAG,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAIR,MAAM,CAACD,MAAM,CAAC,CAAC,EAAE;MACjB,MAAMpB,WAAW,CAAC8B,IAAI,CAACT,MAAM,CAACU,KAAK,EAAE;QACjCC,OAAO,EAAE,0DAA0D;QACnEC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AACJ;AAEA,OAAO,MAAMC,8BAA8B,GAAGjC,8BAA8B,CAACkC,oBAAoB,CAAC;EAC9FC,cAAc,EAAE/B,kCAAkC;EAClDgC,YAAY,EAAE,CAACnC,mBAAmB,EAAEC,eAAe,EAAEC,kBAAkB;AAC3E,CAAC,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const EnsureHcmsFolderIsEmptyOnDeleteFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const EnsureHcmsFolderIsEmptyOnDeleteFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -11,6 +11,7 @@ export interface IGetAncestorsRepositoryErrors {
11
11
  persistence: FolderPersistenceError;
12
12
  }
13
13
  type RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];
14
+ /** Fetch ancestor folders from storage. */
14
15
  export declare const GetAncestorsRepository: import("@webiny/di").Abstraction<IGetAncestorsRepository>;
15
16
  export declare namespace GetAncestorsRepository {
16
17
  type Interface = IGetAncestorsRepository;
@@ -30,6 +31,7 @@ export interface IGetAncestorsUseCaseErrors {
30
31
  persistence: FolderPersistenceError;
31
32
  }
32
33
  type UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];
34
+ /** Retrieve ancestor folders in the hierarchy. */
33
35
  export declare const GetAncestorsUseCase: import("@webiny/di").Abstraction<IGetAncestorsUseCase>;
34
36
  export declare namespace GetAncestorsUseCase {
35
37
  type Interface = IGetAncestorsUseCase;
@@ -4,12 +4,14 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * GetAncestors repository interface
5
5
  */
6
6
 
7
+ /** Fetch ancestor folders from storage. */
7
8
  export const GetAncestorsRepository = createAbstraction("GetAncestorsRepository");
8
9
 
9
10
  /**
10
11
  * GetAncestors use case interface
11
12
  */
12
13
 
14
+ /** Retrieve ancestor folders in the hierarchy. */
13
15
  export const GetAncestorsUseCase = createAbstraction("GetAncestorsUseCase");
14
16
 
15
17
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetAncestorsRepository","GetAncestorsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetAncestors repository interface\n */\nexport interface IGetAncestorsRepository {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], RepositoryError>>;\n}\n\nexport interface IGetAncestorsRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];\n\nexport const GetAncestorsRepository =\n createAbstraction<IGetAncestorsRepository>(\"GetAncestorsRepository\");\n\nexport namespace GetAncestorsRepository {\n export type Interface = IGetAncestorsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetAncestors use case interface\n */\nexport interface GetAncestorsParams {\n folder: Folder;\n}\n\nexport interface IGetAncestorsUseCase {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], UseCaseError>>;\n}\n\nexport interface IGetAncestorsUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];\n\nexport const GetAncestorsUseCase = createAbstraction<IGetAncestorsUseCase>(\"GetAncestorsUseCase\");\n\nexport namespace GetAncestorsUseCase {\n export type Interface = IGetAncestorsUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAWA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAgBA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetAncestorsRepository","GetAncestorsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { Folder } from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetAncestors repository interface\n */\nexport interface IGetAncestorsRepository {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], RepositoryError>>;\n}\n\nexport interface IGetAncestorsRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetAncestorsRepositoryErrors[keyof IGetAncestorsRepositoryErrors];\n\n/** Fetch ancestor folders from storage. */\nexport const GetAncestorsRepository =\n createAbstraction<IGetAncestorsRepository>(\"GetAncestorsRepository\");\n\nexport namespace GetAncestorsRepository {\n export type Interface = IGetAncestorsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetAncestors use case interface\n */\nexport interface GetAncestorsParams {\n folder: Folder;\n}\n\nexport interface IGetAncestorsUseCase {\n execute(params: GetAncestorsParams): Promise<Result<Folder[], UseCaseError>>;\n}\n\nexport interface IGetAncestorsUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetAncestorsUseCaseErrors[keyof IGetAncestorsUseCaseErrors];\n\n/** Retrieve ancestor folders in the hierarchy. */\nexport const GetAncestorsUseCase = createAbstraction<IGetAncestorsUseCase>(\"GetAncestorsUseCase\");\n\nexport namespace GetAncestorsUseCase {\n export type Interface = IGetAncestorsUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,sBAAsB,GAC/BD,iBAAiB,CAA0B,wBAAwB,CAAC;;AAOxE;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,mBAAmB,GAAGF,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const GetAncestorsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetAncestorsFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,5 +1,5 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
- import { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { Folder, GetFolderParams } from "../../../folder/folder.types.js";
4
4
  import type { FolderNotAuthorizedError, FolderNotFoundError, FolderPersistenceError } from "../../../domain/folder/errors.js";
5
5
  /**
@@ -30,6 +30,7 @@ export interface IGetFolderUseCaseErrors {
30
30
  persistence: FolderPersistenceError;
31
31
  }
32
32
  type UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];
33
+ /** Retrieve a folder. */
33
34
  export declare const GetFolderUseCase: import("@webiny/di").Abstraction<IGetFolderUseCase>;
34
35
  export declare namespace GetFolderUseCase {
35
36
  type Interface = IGetFolderUseCase;
@@ -41,13 +42,15 @@ export interface FolderBeforeGetPayload {
41
42
  export interface FolderAfterGetPayload {
42
43
  folder: Folder;
43
44
  }
44
- export declare const FolderBeforeGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>;
45
- export declare namespace FolderBeforeGetHandler {
45
+ /** Hook into folder lifecycle before a folder is retrieved. */
46
+ export declare const FolderBeforeGetEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>;
47
+ export declare namespace FolderBeforeGetEventHandler {
46
48
  type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;
47
49
  type Event = DomainEvent<FolderBeforeGetPayload>;
48
50
  }
49
- export declare const FolderAfterGetHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>;
50
- export declare namespace FolderAfterGetHandler {
51
+ /** Hook into folder lifecycle after a folder is retrieved. */
52
+ export declare const FolderAfterGetEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>;
53
+ export declare namespace FolderAfterGetEventHandler {
51
54
  type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;
52
55
  type Event = DomainEvent<FolderAfterGetPayload>;
53
56
  }
@@ -10,12 +10,15 @@ export const GetFolderRepository = createAbstraction("GetFolderRepository");
10
10
  * GetFolder use case interface
11
11
  */
12
12
 
13
+ /** Retrieve a folder. */
13
14
  export const GetFolderUseCase = createAbstraction("GetFolderUseCase");
14
15
 
15
16
  // Event Payload Types
16
17
 
17
18
  // Event Handler Abstractions
18
- export const FolderBeforeGetHandler = createAbstraction("FolderBeforeGetHandler");
19
- export const FolderAfterGetHandler = createAbstraction("FolderAfterGetHandler");
19
+ /** Hook into folder lifecycle before a folder is retrieved. */
20
+ export const FolderBeforeGetEventHandler = createAbstraction("FolderBeforeGetEventHandler");
21
+ /** Hook into folder lifecycle after a folder is retrieved. */
22
+ export const FolderAfterGetEventHandler = createAbstraction("FolderAfterGetEventHandler");
20
23
 
21
24
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetFolderRepository","GetFolderUseCase","FolderBeforeGetHandler","FolderAfterGetHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { Folder, GetFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderNotFoundError,\n FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolder repository interface\n */\nexport interface IGetFolderRepository {\n execute(id: string): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IGetFolderRepositoryErrors {\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];\n\nexport const GetFolderRepository = createAbstraction<IGetFolderRepository>(\"GetFolderRepository\");\n\nexport namespace GetFolderRepository {\n export type Interface = IGetFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolder use case interface\n */\nexport interface IGetFolderUseCase {\n execute(id: string): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IGetFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];\n\nexport const GetFolderUseCase = createAbstraction<IGetFolderUseCase>(\"GetFolderUseCase\");\n\nexport namespace GetFolderUseCase {\n export type Interface = IGetFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeGetPayload {\n params: GetFolderParams;\n}\n\nexport interface FolderAfterGetPayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\nexport const FolderBeforeGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderBeforeGetPayload>>>(\"FolderBeforeGetHandler\");\n\nexport namespace FolderBeforeGetHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\nexport const FolderAfterGetHandler =\n createAbstraction<IEventHandler<DomainEvent<FolderAfterGetPayload>>>(\"FolderAfterGetHandler\");\n\nexport namespace FolderAfterGetHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;\n export type Event = DomainEvent<FolderAfterGetPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;;AAYA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;AACA;AACA;;AAaA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC;;AAOxF;;AASA;AACA,OAAO,MAAMG,sBAAsB,GAC/BH,iBAAiB,CAAqD,wBAAwB,CAAC;AAOnG,OAAO,MAAMI,qBAAqB,GAC9BJ,iBAAiB,CAAoD,uBAAuB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetFolderRepository","GetFolderUseCase","FolderBeforeGetEventHandler","FolderAfterGetEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { Folder, GetFolderParams } from \"~/folder/folder.types.js\";\nimport type {\n FolderNotAuthorizedError,\n FolderNotFoundError,\n FolderPersistenceError\n} from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolder repository interface\n */\nexport interface IGetFolderRepository {\n execute(id: string): Promise<Result<Folder, RepositoryError>>;\n}\n\nexport interface IGetFolderRepositoryErrors {\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError = IGetFolderRepositoryErrors[keyof IGetFolderRepositoryErrors];\n\nexport const GetFolderRepository = createAbstraction<IGetFolderRepository>(\"GetFolderRepository\");\n\nexport namespace GetFolderRepository {\n export type Interface = IGetFolderRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolder use case interface\n */\nexport interface IGetFolderUseCase {\n execute(id: string): Promise<Result<Folder, UseCaseError>>;\n}\n\nexport interface IGetFolderUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n notFound: FolderNotFoundError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderUseCaseErrors[keyof IGetFolderUseCaseErrors];\n\n/** Retrieve a folder. */\nexport const GetFolderUseCase = createAbstraction<IGetFolderUseCase>(\"GetFolderUseCase\");\n\nexport namespace GetFolderUseCase {\n export type Interface = IGetFolderUseCase;\n export type Error = UseCaseError;\n}\n\n// Event Payload Types\nexport interface FolderBeforeGetPayload {\n params: GetFolderParams;\n}\n\nexport interface FolderAfterGetPayload {\n folder: Folder;\n}\n\n// Event Handler Abstractions\n/** Hook into folder lifecycle before a folder is retrieved. */\nexport const FolderBeforeGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderBeforeGetPayload>>\n>(\"FolderBeforeGetEventHandler\");\n\nexport namespace FolderBeforeGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderBeforeGetPayload>>;\n export type Event = DomainEvent<FolderBeforeGetPayload>;\n}\n\n/** Hook into folder lifecycle after a folder is retrieved. */\nexport const FolderAfterGetEventHandler = createAbstraction<\n IEventHandler<DomainEvent<FolderAfterGetPayload>>\n>(\"FolderAfterGetEventHandler\");\n\nexport namespace FolderAfterGetEventHandler {\n export type Interface = IEventHandler<DomainEvent<FolderAfterGetPayload>>;\n export type Event = DomainEvent<FolderAfterGetPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;;AAYA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;AACA;AACA;;AAaA;AACA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC;;AAOxF;;AASA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,6BAA6B,CAAC;AAOhC;AACA,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const GetFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetFolderFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,2 +1,2 @@
1
1
  export { GetFolderFeature } from "./feature.js";
2
- export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "./abstractions.js";
@@ -1,4 +1,4 @@
1
1
  export { GetFolderFeature } from "./feature.js";
2
- export { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from "./abstractions.js";
2
+ export { FolderAfterGetEventHandler, FolderBeforeGetEventHandler, GetFolderUseCase } from "./abstractions.js";
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GetFolderFeature","FolderAfterGetHandler","FolderBeforeGetHandler","GetFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { GetFolderFeature } from \"./feature.js\";\nexport { FolderAfterGetHandler, FolderBeforeGetHandler, GetFolderUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,qBAAqB,EAAEC,sBAAsB,EAAEC,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["GetFolderFeature","FolderAfterGetEventHandler","FolderBeforeGetEventHandler","GetFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { GetFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterGetEventHandler,\n FolderBeforeGetEventHandler,\n GetFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SACIC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,gBAAgB","ignoreList":[]}
@@ -11,6 +11,7 @@ export interface IGetFolderHierarchyRepositoryErrors {
11
11
  persistence: FolderPersistenceError;
12
12
  }
13
13
  type RepositoryError = IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];
14
+ /** Fetch folder hierarchy from storage. */
14
15
  export declare const GetFolderHierarchyRepository: import("@webiny/di").Abstraction<IGetFolderHierarchyRepository>;
15
16
  export declare namespace GetFolderHierarchyRepository {
16
17
  type Interface = IGetFolderHierarchyRepository;
@@ -27,6 +28,7 @@ export interface IGetFolderHierarchyUseCaseErrors {
27
28
  persistence: FolderPersistenceError;
28
29
  }
29
30
  type UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];
31
+ /** Retrieve the full folder hierarchy. */
30
32
  export declare const GetFolderHierarchyUseCase: import("@webiny/di").Abstraction<IGetFolderHierarchyUseCase>;
31
33
  export declare namespace GetFolderHierarchyUseCase {
32
34
  type Interface = IGetFolderHierarchyUseCase;
@@ -4,12 +4,14 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * GetFolderHierarchy repository interface
5
5
  */
6
6
 
7
+ /** Fetch folder hierarchy from storage. */
7
8
  export const GetFolderHierarchyRepository = createAbstraction("GetFolderHierarchyRepository");
8
9
 
9
10
  /**
10
11
  * GetFolderHierarchy use case interface
11
12
  */
12
13
 
14
+ /** Retrieve the full folder hierarchy. */
13
15
  export const GetFolderHierarchyUseCase = createAbstraction("GetFolderHierarchyUseCase");
14
16
 
15
17
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetFolderHierarchyRepository","GetFolderHierarchyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolderHierarchy repository interface\n */\nexport interface IGetFolderHierarchyRepository {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;\n}\n\nexport interface IGetFolderHierarchyRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError =\n IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];\n\nexport const GetFolderHierarchyRepository = createAbstraction<IGetFolderHierarchyRepository>(\n \"GetFolderHierarchyRepository\"\n);\n\nexport namespace GetFolderHierarchyRepository {\n export type Interface = IGetFolderHierarchyRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolderHierarchy use case interface\n */\nexport interface IGetFolderHierarchyUseCase {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n}\n\nexport interface IGetFolderHierarchyUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];\n\nexport const GetFolderHierarchyUseCase = createAbstraction<IGetFolderHierarchyUseCase>(\n \"GetFolderHierarchyUseCase\"\n);\n\nexport namespace GetFolderHierarchyUseCase {\n export type Interface = IGetFolderHierarchyUseCase;\n export type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAcA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAcA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetFolderHierarchyRepository","GetFolderHierarchyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type {\n GetFolderHierarchyParams,\n GetFolderHierarchyResponse\n} from \"~/folder/folder.types.js\";\nimport type { FolderNotAuthorizedError, FolderPersistenceError } from \"~/domain/folder/errors.js\";\n\n/**\n * GetFolderHierarchy repository interface\n */\nexport interface IGetFolderHierarchyRepository {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, RepositoryError>>;\n}\n\nexport interface IGetFolderHierarchyRepositoryErrors {\n persistence: FolderPersistenceError;\n}\n\ntype RepositoryError =\n IGetFolderHierarchyRepositoryErrors[keyof IGetFolderHierarchyRepositoryErrors];\n\n/** Fetch folder hierarchy from storage. */\nexport const GetFolderHierarchyRepository = createAbstraction<IGetFolderHierarchyRepository>(\n \"GetFolderHierarchyRepository\"\n);\n\nexport namespace GetFolderHierarchyRepository {\n export type Interface = IGetFolderHierarchyRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * GetFolderHierarchy use case interface\n */\nexport interface IGetFolderHierarchyUseCase {\n execute(\n params: GetFolderHierarchyParams\n ): Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n}\n\nexport interface IGetFolderHierarchyUseCaseErrors {\n notAuthorized: FolderNotAuthorizedError;\n persistence: FolderPersistenceError;\n}\n\ntype UseCaseError = IGetFolderHierarchyUseCaseErrors[keyof IGetFolderHierarchyUseCaseErrors];\n\n/** Retrieve the full folder hierarchy. */\nexport const GetFolderHierarchyUseCase = createAbstraction<IGetFolderHierarchyUseCase>(\n \"GetFolderHierarchyUseCase\"\n);\n\nexport namespace GetFolderHierarchyUseCase {\n export type Interface = IGetFolderHierarchyUseCase;\n export type Return = Promise<Result<GetFolderHierarchyResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAQvD;AACA;AACA;;AAcA;AACA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const GetFolderHierarchyFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetFolderHierarchyFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,6 +1,6 @@
1
1
  import { ListFolderLevelPermissionsTargetsUseCase as UseCaseAbstraction } from "./abstractions.js";
2
- import { ListUsersUseCase } from "@webiny/api-core/features/ListUsers";
3
- import { ListTeamsUseCase } from "@webiny/api-core/features/ListTeams";
2
+ import { ListUsersUseCase } from "@webiny/api-core/features/users/ListUsers/index.js";
3
+ import { ListTeamsUseCase } from "@webiny/api-core/features/security/teams/ListTeams/index.js";
4
4
  declare class ListFolderLevelPermissionsTargetsUseCaseImpl implements UseCaseAbstraction.Interface {
5
5
  private listAdminUsers;
6
6
  private listTeams;
@@ -1,8 +1,8 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { ListFolderLevelPermissionsTargetsUseCase as UseCaseAbstraction } from "./abstractions.js";
3
3
  import { validation } from "@webiny/validation";
4
- import { ListUsersUseCase } from "@webiny/api-core/features/ListUsers";
5
- import { ListTeamsUseCase } from "@webiny/api-core/features/ListTeams";
4
+ import { ListUsersUseCase } from "@webiny/api-core/features/users/ListUsers/index.js";
5
+ import { ListTeamsUseCase } from "@webiny/api-core/features/security/teams/ListTeams/index.js";
6
6
  class ListFolderLevelPermissionsTargetsUseCaseImpl {
7
7
  constructor(listAdminUsers, listTeams) {
8
8
  this.listAdminUsers = listAdminUsers;
@@ -21,7 +21,7 @@ class ListFolderLevelPermissionsTargetsUseCaseImpl {
21
21
  const teamTargets = teams.map(team => ({
22
22
  id: team.id,
23
23
  type: "team",
24
- target: `team:${team.id}`,
24
+ target: `team:${team.slug}`,
25
25
  name: team.name || "",
26
26
  meta: {}
27
27
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListFolderLevelPermissionsTargetsUseCase","UseCaseAbstraction","validation","ListUsersUseCase","ListTeamsUseCase","ListFolderLevelPermissionsTargetsUseCaseImpl","constructor","listAdminUsers","listTeams","execute","adminUsersResult","teamsResult","isFail","ok","totalCount","adminUsers","value","teams","teamTargets","map","team","id","type","target","name","meta","adminUserTargets","user","displayName","firstName","lastName","filter","Boolean","join","email","validateSync","image","avatar","src","results","length","createImplementation","implementation","dependencies"],"sources":["ListFolderLevelPermissionsTargetsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListFolderLevelPermissionsTargetsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { validation } from \"@webiny/validation\";\nimport { ListUsersUseCase } from \"@webiny/api-core/features/ListUsers\";\nimport { ListTeamsUseCase } from \"@webiny/api-core/features/ListTeams\";\n\nclass ListFolderLevelPermissionsTargetsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private listAdminUsers: ListUsersUseCase.Interface,\n private listTeams: ListTeamsUseCase.Interface\n ) {}\n\n public async execute(): UseCaseAbstraction.Return {\n const adminUsersResult = await this.listAdminUsers.execute();\n const teamsResult = await this.listTeams.execute();\n\n if (adminUsersResult.isFail() || teamsResult.isFail()) {\n return Result.ok([[], { totalCount: 0 }]);\n }\n\n const adminUsers = adminUsersResult.value;\n const teams = teamsResult.value;\n\n const teamTargets = teams.map(team => ({\n id: team.id,\n type: \"team\",\n target: `team:${team.id}`,\n name: team.name || \"\",\n meta: {}\n }));\n\n const adminUserTargets = adminUsers.map(user => {\n let name = user.displayName;\n if (!name) {\n // For backwards compatibility, we also want to try concatenating first and last name.\n name = [user.firstName, user.lastName].filter(Boolean).join(\" \");\n }\n\n // We're doing the validation because, with non-Cognito IdPs (Okta, Auth0), the email\n // field might actually contain a non-email value: `id:${IdP_Identity_ID}`. In that case,\n // let's not assign anything to the `email` field.\n let email: string | null = user.email;\n try {\n validation.validateSync(email, \"email\");\n } catch {\n email = null;\n }\n\n const image = user.avatar?.src || null;\n\n return {\n id: user.id,\n type: \"admin\",\n target: `admin:${user.id}`,\n name,\n meta: {\n email,\n image\n }\n };\n });\n\n const results = [...teamTargets, ...adminUserTargets];\n const meta = { totalCount: results.length };\n\n return Result.ok([results, meta]);\n }\n}\n\nexport const ListFolderLevelPermissionsTargetsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListFolderLevelPermissionsTargetsUseCaseImpl,\n dependencies: [ListUsersUseCase, ListTeamsUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,wCAAwC,IAAIC,kBAAkB;AACvE,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,gBAAgB,QAAQ,qCAAqC;AACtE,SAASC,gBAAgB,QAAQ,qCAAqC;AAEtE,MAAMC,4CAA4C,CAAyC;EACvFC,WAAWA,CACCC,cAA0C,EAC1CC,SAAqC,EAC/C;IAAA,KAFUD,cAA0C,GAA1CA,cAA0C;IAAA,KAC1CC,SAAqC,GAArCA,SAAqC;EAC9C;EAEH,MAAaC,OAAOA,CAAA,EAA8B;IAC9C,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACH,cAAc,CAACE,OAAO,CAAC,CAAC;IAC5D,MAAME,WAAW,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAAC,CAAC;IAElD,IAAIC,gBAAgB,CAACE,MAAM,CAAC,CAAC,IAAID,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACnD,OAAOb,MAAM,CAACc,EAAE,CAAC,CAAC,EAAE,EAAE;QAAEC,UAAU,EAAE;MAAE,CAAC,CAAC,CAAC;IAC7C;IAEA,MAAMC,UAAU,GAAGL,gBAAgB,CAACM,KAAK;IACzC,MAAMC,KAAK,GAAGN,WAAW,CAACK,KAAK;IAE/B,MAAME,WAAW,GAAGD,KAAK,CAACE,GAAG,CAACC,IAAI,KAAK;MACnCC,EAAE,EAAED,IAAI,CAACC,EAAE;MACXC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQH,IAAI,CAACC,EAAE,EAAE;MACzBG,IAAI,EAAEJ,IAAI,CAACI,IAAI,IAAI,EAAE;MACrBC,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAMC,gBAAgB,GAAGX,UAAU,CAACI,GAAG,CAACQ,IAAI,IAAI;MAC5C,IAAIH,IAAI,GAAGG,IAAI,CAACC,WAAW;MAC3B,IAAI,CAACJ,IAAI,EAAE;QACP;QACAA,IAAI,GAAG,CAACG,IAAI,CAACE,SAAS,EAAEF,IAAI,CAACG,QAAQ,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MACpE;;MAEA;MACA;MACA;MACA,IAAIC,KAAoB,GAAGP,IAAI,CAACO,KAAK;MACrC,IAAI;QACAhC,UAAU,CAACiC,YAAY,CAACD,KAAK,EAAE,OAAO,CAAC;MAC3C,CAAC,CAAC,MAAM;QACJA,KAAK,GAAG,IAAI;MAChB;MAEA,MAAME,KAAK,GAAGT,IAAI,CAACU,MAAM,EAAEC,GAAG,IAAI,IAAI;MAEtC,OAAO;QACHjB,EAAE,EAAEM,IAAI,CAACN,EAAE;QACXC,IAAI,EAAE,OAAO;QACbC,MAAM,EAAE,SAASI,IAAI,CAACN,EAAE,EAAE;QAC1BG,IAAI;QACJC,IAAI,EAAE;UACFS,KAAK;UACLE;QACJ;MACJ,CAAC;IACL,CAAC,CAAC;IAEF,MAAMG,OAAO,GAAG,CAAC,GAAGrB,WAAW,EAAE,GAAGQ,gBAAgB,CAAC;IACrD,MAAMD,IAAI,GAAG;MAAEX,UAAU,EAAEyB,OAAO,CAACC;IAAO,CAAC;IAE3C,OAAOzC,MAAM,CAACc,EAAE,CAAC,CAAC0B,OAAO,EAAEd,IAAI,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMzB,wCAAwC,GAAGC,kBAAkB,CAACwC,oBAAoB,CAAC;EAC5FC,cAAc,EAAErC,4CAA4C;EAC5DsC,YAAY,EAAE,CAACxC,gBAAgB,EAAEC,gBAAgB;AACrD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","ListFolderLevelPermissionsTargetsUseCase","UseCaseAbstraction","validation","ListUsersUseCase","ListTeamsUseCase","ListFolderLevelPermissionsTargetsUseCaseImpl","constructor","listAdminUsers","listTeams","execute","adminUsersResult","teamsResult","isFail","ok","totalCount","adminUsers","value","teams","teamTargets","map","team","id","type","target","slug","name","meta","adminUserTargets","user","displayName","firstName","lastName","filter","Boolean","join","email","validateSync","image","avatar","src","results","length","createImplementation","implementation","dependencies"],"sources":["ListFolderLevelPermissionsTargetsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListFolderLevelPermissionsTargetsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { validation } from \"@webiny/validation\";\nimport { ListUsersUseCase } from \"@webiny/api-core/features/users/ListUsers/index.js\";\nimport { ListTeamsUseCase } from \"@webiny/api-core/features/security/teams/ListTeams/index.js\";\n\nclass ListFolderLevelPermissionsTargetsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private listAdminUsers: ListUsersUseCase.Interface,\n private listTeams: ListTeamsUseCase.Interface\n ) {}\n\n public async execute(): UseCaseAbstraction.Return {\n const adminUsersResult = await this.listAdminUsers.execute();\n const teamsResult = await this.listTeams.execute();\n\n if (adminUsersResult.isFail() || teamsResult.isFail()) {\n return Result.ok([[], { totalCount: 0 }]);\n }\n\n const adminUsers = adminUsersResult.value;\n const teams = teamsResult.value;\n\n const teamTargets = teams.map(team => ({\n id: team.id,\n type: \"team\",\n target: `team:${team.slug}`,\n name: team.name || \"\",\n meta: {}\n }));\n\n const adminUserTargets = adminUsers.map(user => {\n let name = user.displayName;\n if (!name) {\n // For backwards compatibility, we also want to try concatenating first and last name.\n name = [user.firstName, user.lastName].filter(Boolean).join(\" \");\n }\n\n // We're doing the validation because, with non-Cognito IdPs (Okta, Auth0), the email\n // field might actually contain a non-email value: `id:${IdP_Identity_ID}`. In that case,\n // let's not assign anything to the `email` field.\n let email: string | null = user.email;\n try {\n validation.validateSync(email, \"email\");\n } catch {\n email = null;\n }\n\n const image = user.avatar?.src || null;\n\n return {\n id: user.id,\n type: \"admin\",\n target: `admin:${user.id}`,\n name,\n meta: {\n email,\n image\n }\n };\n });\n\n const results = [...teamTargets, ...adminUserTargets];\n const meta = { totalCount: results.length };\n\n return Result.ok([results, meta]);\n }\n}\n\nexport const ListFolderLevelPermissionsTargetsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListFolderLevelPermissionsTargetsUseCaseImpl,\n dependencies: [ListUsersUseCase, ListTeamsUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,wCAAwC,IAAIC,kBAAkB;AACvE,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,gBAAgB,QAAQ,oDAAoD;AACrF,SAASC,gBAAgB,QAAQ,6DAA6D;AAE9F,MAAMC,4CAA4C,CAAyC;EACvFC,WAAWA,CACCC,cAA0C,EAC1CC,SAAqC,EAC/C;IAAA,KAFUD,cAA0C,GAA1CA,cAA0C;IAAA,KAC1CC,SAAqC,GAArCA,SAAqC;EAC9C;EAEH,MAAaC,OAAOA,CAAA,EAA8B;IAC9C,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACH,cAAc,CAACE,OAAO,CAAC,CAAC;IAC5D,MAAME,WAAW,GAAG,MAAM,IAAI,CAACH,SAAS,CAACC,OAAO,CAAC,CAAC;IAElD,IAAIC,gBAAgB,CAACE,MAAM,CAAC,CAAC,IAAID,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACnD,OAAOb,MAAM,CAACc,EAAE,CAAC,CAAC,EAAE,EAAE;QAAEC,UAAU,EAAE;MAAE,CAAC,CAAC,CAAC;IAC7C;IAEA,MAAMC,UAAU,GAAGL,gBAAgB,CAACM,KAAK;IACzC,MAAMC,KAAK,GAAGN,WAAW,CAACK,KAAK;IAE/B,MAAME,WAAW,GAAGD,KAAK,CAACE,GAAG,CAACC,IAAI,KAAK;MACnCC,EAAE,EAAED,IAAI,CAACC,EAAE;MACXC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQH,IAAI,CAACI,IAAI,EAAE;MAC3BC,IAAI,EAAEL,IAAI,CAACK,IAAI,IAAI,EAAE;MACrBC,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAMC,gBAAgB,GAAGZ,UAAU,CAACI,GAAG,CAACS,IAAI,IAAI;MAC5C,IAAIH,IAAI,GAAGG,IAAI,CAACC,WAAW;MAC3B,IAAI,CAACJ,IAAI,EAAE;QACP;QACAA,IAAI,GAAG,CAACG,IAAI,CAACE,SAAS,EAAEF,IAAI,CAACG,QAAQ,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MACpE;;MAEA;MACA;MACA;MACA,IAAIC,KAAoB,GAAGP,IAAI,CAACO,KAAK;MACrC,IAAI;QACAjC,UAAU,CAACkC,YAAY,CAACD,KAAK,EAAE,OAAO,CAAC;MAC3C,CAAC,CAAC,MAAM;QACJA,KAAK,GAAG,IAAI;MAChB;MAEA,MAAME,KAAK,GAAGT,IAAI,CAACU,MAAM,EAAEC,GAAG,IAAI,IAAI;MAEtC,OAAO;QACHlB,EAAE,EAAEO,IAAI,CAACP,EAAE;QACXC,IAAI,EAAE,OAAO;QACbC,MAAM,EAAE,SAASK,IAAI,CAACP,EAAE,EAAE;QAC1BI,IAAI;QACJC,IAAI,EAAE;UACFS,KAAK;UACLE;QACJ;MACJ,CAAC;IACL,CAAC,CAAC;IAEF,MAAMG,OAAO,GAAG,CAAC,GAAGtB,WAAW,EAAE,GAAGS,gBAAgB,CAAC;IACrD,MAAMD,IAAI,GAAG;MAAEZ,UAAU,EAAE0B,OAAO,CAACC;IAAO,CAAC;IAE3C,OAAO1C,MAAM,CAACc,EAAE,CAAC,CAAC2B,OAAO,EAAEd,IAAI,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAM1B,wCAAwC,GAAGC,kBAAkB,CAACyC,oBAAoB,CAAC;EAC5FC,cAAc,EAAEtC,4CAA4C;EAC5DuC,YAAY,EAAE,CAACzC,gBAAgB,EAAEC,gBAAgB;AACrD,CAAC,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@ import type { FolderLevelPermissionsTarget, FolderLevelPermissionsTargetListMeta
3
3
  export interface IListFolderLevelPermissionsTargetsUseCase {
4
4
  execute: () => Promise<Result<[FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]>>;
5
5
  }
6
+ /** List targets for folder-level permissions. */
6
7
  export declare const ListFolderLevelPermissionsTargetsUseCase: import("@webiny/di").Abstraction<IListFolderLevelPermissionsTargetsUseCase>;
7
8
  export declare namespace ListFolderLevelPermissionsTargetsUseCase {
8
9
  type Interface = IListFolderLevelPermissionsTargetsUseCase;
@@ -2,6 +2,7 @@ import { createAbstraction } from "@webiny/feature/api";
2
2
 
3
3
  // Use Case Abstraction
4
4
 
5
+ /** List targets for folder-level permissions. */
5
6
  export const ListFolderLevelPermissionsTargetsUseCase = createAbstraction("ListFolderLevelPermissionsTargetsUseCase");
6
7
 
7
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListFolderLevelPermissionsTargetsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n FolderLevelPermissionsTarget,\n FolderLevelPermissionsTargetListMeta\n} from \"~/folder/folder.types.js\";\n\n// Use Case Abstraction\nexport interface IListFolderLevelPermissionsTargetsUseCase {\n execute: () => Promise<\n Result<[FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]>\n >;\n}\n\nexport const ListFolderLevelPermissionsTargetsUseCase =\n createAbstraction<IListFolderLevelPermissionsTargetsUseCase>(\n \"ListFolderLevelPermissionsTargetsUseCase\"\n );\n\nexport namespace ListFolderLevelPermissionsTargetsUseCase {\n export type Interface = IListFolderLevelPermissionsTargetsUseCase;\n export type Return = Promise<\n Result<[FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]>\n >;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAM/D;;AAOA,OAAO,MAAMC,wCAAwC,GACjDD,iBAAiB,CACb,0CACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","ListFolderLevelPermissionsTargetsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n FolderLevelPermissionsTarget,\n FolderLevelPermissionsTargetListMeta\n} from \"~/folder/folder.types.js\";\n\n// Use Case Abstraction\nexport interface IListFolderLevelPermissionsTargetsUseCase {\n execute: () => Promise<\n Result<[FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]>\n >;\n}\n\n/** List targets for folder-level permissions. */\nexport const ListFolderLevelPermissionsTargetsUseCase =\n createAbstraction<IListFolderLevelPermissionsTargetsUseCase>(\n \"ListFolderLevelPermissionsTargetsUseCase\"\n );\n\nexport namespace ListFolderLevelPermissionsTargetsUseCase {\n export type Interface = IListFolderLevelPermissionsTargetsUseCase;\n export type Return = Promise<\n Result<[FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]>\n >;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAM/D;;AAOA;AACA,OAAO,MAAMC,wCAAwC,GACjDD,iBAAiB,CACb,0CACJ,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const ListFolderLevelPermissionsTargetsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListFolderLevelPermissionsTargetsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };