@webiny/api-website-builder 6.1.0 → 6.2.0

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 (200) hide show
  1. package/domain/page/PagePath.d.ts +7 -0
  2. package/domain/page/PagePath.js +36 -0
  3. package/domain/page/PagePath.js.map +1 -0
  4. package/domain/page/errors.d.ts +6 -0
  5. package/domain/page/errors.js +11 -0
  6. package/domain/page/errors.js.map +1 -1
  7. package/domain/permissionsSchema.d.ts +29 -0
  8. package/domain/{permissions.js → permissionsSchema.js} +4 -5
  9. package/domain/permissionsSchema.js.map +1 -0
  10. package/features/installer/ApiKeyInstaller.d.ts +1 -1
  11. package/features/installer/ApiKeyInstaller.js +1 -1
  12. package/features/installer/ApiKeyInstaller.js.map +1 -1
  13. package/features/pages/CreatePage/CreatePageUseCase.d.ts +2 -2
  14. package/features/pages/CreatePage/CreatePageUseCase.js +3 -3
  15. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  16. package/features/pages/CreatePage/abstractions.d.ts +1 -1
  17. package/features/pages/CreatePage/abstractions.js.map +1 -1
  18. package/features/pages/CreatePage/events.d.ts +3 -3
  19. package/features/pages/CreatePage/events.js +1 -1
  20. package/features/pages/CreatePage/events.js.map +1 -1
  21. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +2 -2
  22. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +3 -3
  23. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  24. package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +2 -2
  25. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  26. package/features/pages/CreatePageRevisionFrom/events.d.ts +3 -3
  27. package/features/pages/CreatePageRevisionFrom/events.js +1 -1
  28. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  29. package/features/pages/DeletePage/DeletePageUseCase.d.ts +2 -2
  30. package/features/pages/DeletePage/DeletePageUseCase.js +3 -3
  31. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  32. package/features/pages/DeletePage/abstractions.d.ts +2 -2
  33. package/features/pages/DeletePage/abstractions.js.map +1 -1
  34. package/features/pages/DeletePage/events.d.ts +3 -3
  35. package/features/pages/DeletePage/events.js +1 -1
  36. package/features/pages/DeletePage/events.js.map +1 -1
  37. package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +2 -2
  38. package/features/pages/DuplicatePage/DuplicatePageRepository.js +9 -1
  39. package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
  40. package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +2 -2
  41. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +3 -3
  42. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  43. package/features/pages/DuplicatePage/abstractions.d.ts +9 -3
  44. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  45. package/features/pages/DuplicatePage/events.d.ts +3 -3
  46. package/features/pages/DuplicatePage/events.js +1 -1
  47. package/features/pages/DuplicatePage/events.js.map +1 -1
  48. package/features/pages/DuplicatePage/index.d.ts +2 -1
  49. package/features/pages/DuplicatePage/index.js +1 -1
  50. package/features/pages/DuplicatePage/index.js.map +1 -1
  51. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +1 -1
  52. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +2 -2
  53. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -1
  54. package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +1 -1
  55. package/features/pages/GetPageById/GetPageByIdUseCase.js +2 -2
  56. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  57. package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +1 -1
  58. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +2 -2
  59. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  60. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.d.ts +15 -0
  61. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +61 -0
  62. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -0
  63. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.d.ts +10 -0
  64. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +20 -0
  65. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -0
  66. package/features/pages/GetPageLanguagePaths/abstractions.d.ts +20 -0
  67. package/features/pages/GetPageLanguagePaths/abstractions.js +6 -0
  68. package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -0
  69. package/features/pages/GetPageLanguagePaths/feature.d.ts +1 -0
  70. package/features/pages/GetPageLanguagePaths/feature.js +12 -0
  71. package/features/pages/GetPageLanguagePaths/feature.js.map +1 -0
  72. package/features/pages/GetPageLanguagePaths/index.d.ts +1 -0
  73. package/features/pages/GetPageLanguagePaths/index.js +3 -0
  74. package/features/pages/GetPageLanguagePaths/index.js.map +1 -0
  75. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +1 -1
  76. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +2 -2
  77. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  78. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +1 -1
  79. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +2 -2
  80. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -1
  81. package/features/pages/ListPages/ListPagesUseCase.d.ts +1 -1
  82. package/features/pages/ListPages/ListPagesUseCase.js +2 -2
  83. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  84. package/features/pages/MovePage/MovePageUseCase.d.ts +2 -2
  85. package/features/pages/MovePage/MovePageUseCase.js +3 -3
  86. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  87. package/features/pages/MovePage/abstractions.d.ts +2 -2
  88. package/features/pages/MovePage/abstractions.js.map +1 -1
  89. package/features/pages/MovePage/events.d.ts +3 -3
  90. package/features/pages/MovePage/events.js +1 -1
  91. package/features/pages/MovePage/events.js.map +1 -1
  92. package/features/pages/PublishPage/PublishPageUseCase.d.ts +2 -2
  93. package/features/pages/PublishPage/PublishPageUseCase.js +3 -3
  94. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  95. package/features/pages/PublishPage/abstractions.d.ts +2 -2
  96. package/features/pages/PublishPage/abstractions.js.map +1 -1
  97. package/features/pages/PublishPage/events.d.ts +3 -3
  98. package/features/pages/PublishPage/events.js +1 -1
  99. package/features/pages/PublishPage/events.js.map +1 -1
  100. package/features/pages/RestorePage/RestorePageUseCase.d.ts +2 -2
  101. package/features/pages/RestorePage/RestorePageUseCase.js +3 -3
  102. package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -1
  103. package/features/pages/RestorePage/abstractions.d.ts +2 -2
  104. package/features/pages/RestorePage/abstractions.js.map +1 -1
  105. package/features/pages/RestorePage/events.d.ts +3 -3
  106. package/features/pages/RestorePage/events.js +1 -1
  107. package/features/pages/RestorePage/events.js.map +1 -1
  108. package/features/pages/TranslatePage/TranslatePageUseCase.d.ts +17 -0
  109. package/features/pages/TranslatePage/TranslatePageUseCase.js +74 -0
  110. package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -0
  111. package/features/pages/TranslatePage/abstractions.d.ts +29 -0
  112. package/features/pages/TranslatePage/abstractions.js +14 -0
  113. package/features/pages/TranslatePage/abstractions.js.map +1 -0
  114. package/features/pages/TranslatePage/feature.d.ts +1 -0
  115. package/features/pages/TranslatePage/feature.js +10 -0
  116. package/features/pages/TranslatePage/feature.js.map +1 -0
  117. package/features/pages/TranslatePage/index.d.ts +1 -0
  118. package/features/pages/TranslatePage/index.js +3 -0
  119. package/features/pages/TranslatePage/index.js.map +1 -0
  120. package/features/pages/TrashPage/TrashPageUseCase.d.ts +2 -2
  121. package/features/pages/TrashPage/TrashPageUseCase.js +3 -3
  122. package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -1
  123. package/features/pages/TrashPage/abstractions.d.ts +2 -2
  124. package/features/pages/TrashPage/abstractions.js.map +1 -1
  125. package/features/pages/TrashPage/events.d.ts +3 -3
  126. package/features/pages/TrashPage/events.js +1 -1
  127. package/features/pages/TrashPage/events.js.map +1 -1
  128. package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +2 -2
  129. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +3 -3
  130. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  131. package/features/pages/UnpublishPage/abstractions.d.ts +2 -2
  132. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  133. package/features/pages/UnpublishPage/events.d.ts +3 -3
  134. package/features/pages/UnpublishPage/events.js +1 -1
  135. package/features/pages/UnpublishPage/events.js.map +1 -1
  136. package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +2 -2
  137. package/features/pages/UpdatePage/UpdatePageUseCase.js +3 -3
  138. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  139. package/features/pages/UpdatePage/abstractions.d.ts +1 -1
  140. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  141. package/features/pages/UpdatePage/events.d.ts +3 -3
  142. package/features/pages/UpdatePage/events.js +1 -1
  143. package/features/pages/UpdatePage/events.js.map +1 -1
  144. package/features/permissions/abstractions.d.ts +34 -0
  145. package/features/permissions/abstractions.js +5 -0
  146. package/features/permissions/abstractions.js.map +1 -0
  147. package/features/permissions/feature.d.ts +1 -0
  148. package/features/permissions/feature.js +6 -0
  149. package/features/permissions/feature.js.map +1 -0
  150. package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +2 -2
  151. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +3 -3
  152. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  153. package/features/redirects/CreateRedirect/abstractions.d.ts +2 -2
  154. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  155. package/features/redirects/CreateRedirect/events.d.ts +3 -3
  156. package/features/redirects/CreateRedirect/events.js +1 -1
  157. package/features/redirects/CreateRedirect/events.js.map +1 -1
  158. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +2 -2
  159. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +3 -3
  160. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  161. package/features/redirects/DeleteRedirect/abstractions.d.ts +2 -2
  162. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  163. package/features/redirects/DeleteRedirect/events.d.ts +3 -3
  164. package/features/redirects/DeleteRedirect/events.js +1 -1
  165. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  166. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +1 -1
  167. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +2 -2
  168. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  169. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +1 -1
  170. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +2 -2
  171. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  172. package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +1 -1
  173. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +2 -2
  174. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  175. package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +2 -2
  176. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +3 -3
  177. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  178. package/features/redirects/MoveRedirect/abstractions.d.ts +2 -2
  179. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  180. package/features/redirects/MoveRedirect/events.d.ts +3 -3
  181. package/features/redirects/MoveRedirect/events.js +1 -1
  182. package/features/redirects/MoveRedirect/events.js.map +1 -1
  183. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +2 -2
  184. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +3 -3
  185. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  186. package/features/redirects/UpdateRedirect/abstractions.d.ts +2 -2
  187. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  188. package/features/redirects/UpdateRedirect/events.d.ts +3 -3
  189. package/features/redirects/UpdateRedirect/events.js +1 -1
  190. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  191. package/graphql/pages/pages.gql.js +34 -0
  192. package/graphql/pages/pages.gql.js.map +1 -1
  193. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  194. package/graphql/pages/pages.typeDefs.js +2 -0
  195. package/graphql/pages/pages.typeDefs.js.map +1 -1
  196. package/index.js +6 -2
  197. package/index.js.map +1 -1
  198. package/package.json +20 -19
  199. package/domain/permissions.d.ts +0 -125
  200. package/domain/permissions.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { GetPageRevisionsUseCase as UseCaseAbstraction, GetPageRevisionsRepository } from "./abstractions.js";
3
- import { WbPermissions } from "../../../domain/permissions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
4
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
5
  class GetPageRevisionsUseCaseImpl {
6
6
  constructor(permissions, repository) {
@@ -28,7 +28,7 @@ class GetPageRevisionsUseCaseImpl {
28
28
  }
29
29
  export const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({
30
30
  implementation: GetPageRevisionsUseCaseImpl,
31
- dependencies: [WbPermissions.Abstraction, GetPageRevisionsRepository]
31
+ dependencies: [WbPermissions, GetPageRevisionsRepository]
32
32
  });
33
33
 
34
34
  //# sourceMappingURL=GetPageRevisionsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","GetPageRevisionsUseCase","UseCaseAbstraction","GetPageRevisionsRepository","WbPermissions","PageNotAuthorizedError","GetPageRevisionsUseCaseImpl","constructor","permissions","repository","execute","entryId","hasPermission","canRead","fail","result","isFail","pages","value","length","canAccess","createImplementation","implementation","dependencies","Abstraction"],"sources":["GetPageRevisionsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetPageRevisionsUseCase as UseCaseAbstraction,\n GetPageRevisionsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetPageRevisionsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetPageRevisionsRepository.Interface\n ) {}\n\n async execute(entryId: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(entryId);\n\n if (result.isFail()) {\n return result;\n }\n\n const pages = result.value;\n if (pages.length > 0) {\n const canAccess = await this.permissions.canAccess(\"page\", pages[0]);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n }\n\n return result;\n }\n}\n\nexport const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageRevisionsUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, GetPageRevisionsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,UAAgD,EAC1D;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,OAAe,EAA6B;IACtD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,OAAO,CAAC;IAErD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,KAAK,GAAGF,MAAM,CAACG,KAAK;IAC1B,IAAID,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;MAClB,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACZ,WAAW,CAACY,SAAS,CAAC,MAAM,EAAEH,KAAK,CAAC,CAAC,CAAC,CAAC;MACpE,IAAI,CAACG,SAAS,EAAE;QACZ,OAAOpB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;MACpD;IACJ;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,uBAAuB,GAAGC,kBAAkB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,2BAA2B;EAC3CiB,YAAY,EAAE,CAACnB,aAAa,CAACoB,WAAW,EAAErB,0BAA0B;AACxE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","GetPageRevisionsUseCase","UseCaseAbstraction","GetPageRevisionsRepository","WbPermissions","PageNotAuthorizedError","GetPageRevisionsUseCaseImpl","constructor","permissions","repository","execute","entryId","hasPermission","canRead","fail","result","isFail","pages","value","length","canAccess","createImplementation","implementation","dependencies"],"sources":["GetPageRevisionsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetPageRevisionsUseCase as UseCaseAbstraction,\n GetPageRevisionsRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetPageRevisionsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetPageRevisionsRepository.Interface\n ) {}\n\n async execute(entryId: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(entryId);\n\n if (result.isFail()) {\n return result;\n }\n\n const pages = result.value;\n if (pages.length > 0) {\n const canAccess = await this.permissions.canAccess(\"page\", pages[0]);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n }\n\n return result;\n }\n}\n\nexport const GetPageRevisionsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetPageRevisionsUseCaseImpl,\n dependencies: [WbPermissions, GetPageRevisionsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,UAAgD,EAC1D;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,OAAe,EAA6B;IACtD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,OAAO,CAAC;IAErD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,KAAK,GAAGF,MAAM,CAACG,KAAK;IAC1B,IAAID,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;MAClB,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACZ,WAAW,CAACY,SAAS,CAAC,MAAM,EAAEH,KAAK,CAAC,CAAC,CAAC,CAAC;MACpE,IAAI,CAACG,SAAS,EAAE;QACZ,OAAOpB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;MACpD;IACJ;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,uBAAuB,GAAGC,kBAAkB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,2BAA2B;EAC3CiB,YAAY,EAAE,CAACnB,aAAa,EAAED,0BAA0B;AAC5D,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
2
- import { WbPermissions } from "../../../domain/permissions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
3
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
4
  declare class ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {
5
5
  private permissions;
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
3
- import { WbPermissions } from "../../../domain/permissions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
4
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
5
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
6
6
  class ListDeletedPagesUseCaseImpl {
@@ -29,7 +29,7 @@ class ListDeletedPagesUseCaseImpl {
29
29
  }
30
30
  export const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({
31
31
  implementation: ListDeletedPagesUseCaseImpl,
32
- dependencies: [WbPermissions.Abstraction, IdentityContext, ListDeletedPagesRepository]
32
+ dependencies: [WbPermissions, IdentityContext, ListDeletedPagesRepository]
33
33
  });
34
34
 
35
35
  //# sourceMappingURL=ListDeletedPagesUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListDeletedPagesUseCase","UseCaseAbstraction","ListDeletedPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListDeletedPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies","Abstraction"],"sources":["ListDeletedPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListDeletedPagesUseCase as UseCaseAbstraction,\n ListDeletedPagesRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListDeletedPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListDeletedPagesUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, IdentityContext, ListDeletedPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAgD,EAC1D;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,uBAAuB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEjB,2BAA2B;EAC3CkB,YAAY,EAAE,CAACrB,aAAa,CAACsB,WAAW,EAAEpB,eAAe,EAAEH,0BAA0B;AACzF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","ListDeletedPagesUseCase","UseCaseAbstraction","ListDeletedPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListDeletedPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies"],"sources":["ListDeletedPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListDeletedPagesUseCase as UseCaseAbstraction,\n ListDeletedPagesRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListDeletedPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListDeletedPagesUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListDeletedPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAgD,EAC1D;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,uBAAuB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEjB,2BAA2B;EAC3CkB,YAAY,EAAE,CAACrB,aAAa,EAAEE,eAAe,EAAEH,0BAA0B;AAC7E,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from "./abstractions.js";
2
- import { WbPermissions } from "../../../domain/permissions.js";
2
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
3
3
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
4
  declare class ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {
5
5
  private permissions;
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from "./abstractions.js";
3
- import { WbPermissions } from "../../../domain/permissions.js";
3
+ import { WbPermissions } from "../../permissions/abstractions.js";
4
4
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
5
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
6
6
  class ListPagesUseCaseImpl {
@@ -29,7 +29,7 @@ class ListPagesUseCaseImpl {
29
29
  }
30
30
  export const ListPagesUseCase = UseCaseAbstraction.createImplementation({
31
31
  implementation: ListPagesUseCaseImpl,
32
- dependencies: [WbPermissions.Abstraction, IdentityContext, ListPagesRepository]
32
+ dependencies: [WbPermissions, IdentityContext, ListPagesRepository]
33
33
  });
34
34
 
35
35
  //# sourceMappingURL=ListPagesUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListPagesUseCase","UseCaseAbstraction","ListPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies","Abstraction"],"sources":["ListPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListPagesUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, IdentityContext, ListPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AACpE,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAyC,EACnD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAyC,GAAzCA,UAAyC;EAClD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,gBAAgB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EACpEC,cAAc,EAAEjB,oBAAoB;EACpCkB,YAAY,EAAE,CAACrB,aAAa,CAACsB,WAAW,EAAEpB,eAAe,EAAEH,mBAAmB;AAClF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","ListPagesUseCase","UseCaseAbstraction","ListPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies"],"sources":["ListPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListPagesUseCase as UseCaseAbstraction, ListPagesRepository } from \"./abstractions.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListPagesUseCaseImpl,\n dependencies: [WbPermissions, IdentityContext, ListPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,gBAAgB,IAAIC,kBAAkB,EAAEC,mBAAmB;AACpE,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAyC,EACnD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAyC,GAAzCA,UAAyC;EAClD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,gBAAgB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EACpEC,cAAc,EAAEjB,oBAAoB;EACpCkB,YAAY,EAAE,CAACrB,aAAa,EAAEE,eAAe,EAAEH,mBAAmB;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from "./abstractions.js";
3
3
  import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
- import { WbPermissions } from "../../../domain/permissions.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
5
5
  declare class MovePageUseCaseImpl implements UseCaseAbstraction.Interface {
6
6
  private permissions;
7
7
  private eventPublisher;
@@ -1,9 +1,9 @@
1
1
  import { Result, createImplementation } 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 { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from "./abstractions.js";
4
4
  import { PageBeforeMoveEvent, PageAfterMoveEvent } from "./events.js";
5
5
  import { GetPageByIdUseCase } from "../GetPageById/index.js";
6
- import { WbPermissions } from "../../../domain/permissions.js";
6
+ import { WbPermissions } from "../../permissions/abstractions.js";
7
7
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
8
8
  class MovePageUseCaseImpl {
9
9
  constructor(permissions, eventPublisher, getPageById, repository) {
@@ -55,7 +55,7 @@ class MovePageUseCaseImpl {
55
55
  export const MovePageUseCase = createImplementation({
56
56
  abstraction: UseCaseAbstraction,
57
57
  implementation: MovePageUseCaseImpl,
58
- dependencies: [WbPermissions.Abstraction, EventPublisher, GetPageByIdUseCase, MovePageRepository]
58
+ dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]
59
59
  });
60
60
 
61
61
  //# sourceMappingURL=MovePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","MovePageUseCase","UseCaseAbstraction","MovePageRepository","PageBeforeMoveEvent","PageAfterMoveEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","MovePageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canEdit","fail","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","abstraction","implementation","dependencies","Abstraction"],"sources":["MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetPageByIdUseCase,\n MovePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,eAAe,IAAIC,kBAAkB,EAAEC,kBAAkB;AAClE,SAASC,mBAAmB,EAAEC,kBAAkB;AAChD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,mBAAmB,CAAyC;EAC9DC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,EAClD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAwC,GAAxCA,UAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,QAAQ,GAAGH,SAAS,CAACI,KAAK;IAEhC,MAAMN,OAAO,GAAG,MAAM,IAAI,CAACP,WAAW,CAACO,OAAO,CAAC,MAAM,EAAEK,QAAQ,CAAC;IAChE,IAAI,CAACL,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,mBAAmB,CAAC;MACxCmB,QAAQ;MACRG,KAAK,EAAEV;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,kBAAkB,CAAC;MACtCkB,QAAQ;MACRG,KAAK,EAAEV,MAAM;MACbc,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACiC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,eAAe,GAAGF,oBAAoB,CAAC;EAChDiC,WAAW,EAAE9B,kBAAkB;EAC/B+B,cAAc,EAAExB,mBAAmB;EACnCyB,YAAY,EAAE,CACV3B,aAAa,CAAC4B,WAAW,EACzBnC,cAAc,EACdM,kBAAkB,EAClBH,kBAAkB;AAE1B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","createImplementation","EventPublisher","MovePageUseCase","UseCaseAbstraction","MovePageRepository","PageBeforeMoveEvent","PageAfterMoveEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","MovePageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canEdit","fail","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","abstraction","implementation","dependencies"],"sources":["MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the original page for events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"page\", original);\n if (!canEdit) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, MovePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,eAAe,IAAIC,kBAAkB,EAAEC,kBAAkB;AAClE,SAASC,mBAAmB,EAAEC,kBAAkB;AAChD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,mBAAmB,CAAyC;EAC9DC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,EAClD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAwC,GAAxCA,UAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,QAAQ,GAAGH,SAAS,CAACI,KAAK;IAEhC,MAAMN,OAAO,GAAG,MAAM,IAAI,CAACP,WAAW,CAACO,OAAO,CAAC,MAAM,EAAEK,QAAQ,CAAC;IAChE,IAAI,CAACL,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,mBAAmB,CAAC;MACxCmB,QAAQ;MACRG,KAAK,EAAEV;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,kBAAkB,CAAC;MACtCkB,QAAQ;MACRG,KAAK,EAAEV,MAAM;MACbc,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACiC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,eAAe,GAAGF,oBAAoB,CAAC;EAChDiC,WAAW,EAAE9B,kBAAkB;EAC/B+B,cAAc,EAAExB,mBAAmB;EACnCyB,YAAY,EAAE,CAAC3B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,kBAAkB;AACxF,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
- import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import type { WbPage } from "../../../domain/page/abstractions.js";
5
5
  import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
6
6
  export interface IMoveWbPageParams {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","MovePageRepository","MovePageUseCase","PageBeforeMoveEventHandler","PageAfterMoveEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\n/** Move a page to a different folder. */\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is moved. */\nexport const PageBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveEventHandler\");\n\nexport namespace PageBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is moved. */\nexport const PageAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterMovePayload>>\n>(\"Wb/PageAfterMoveEventHandler\");\n\nexport namespace PageAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAcA;AACA,OAAO,MAAME,eAAe,GAAGF,iBAAiB,CAAmB,oBAAoB,CAAC;;AAUxF;AACA;AACA;;AAaA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,0BAA0B,GAAGH,iBAAiB,CAEzD,+BAA+B,CAAC;AAQlC;AACA,OAAO,MAAMI,yBAAyB,GAAGJ,iBAAiB,CAExD,8BAA8B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","MovePageRepository","MovePageUseCase","PageBeforeMoveEventHandler","PageAfterMoveEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\n/** Move a page to a different folder. */\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is moved. */\nexport const PageBeforeMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveEventHandler\");\n\nexport namespace PageBeforeMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is moved. */\nexport const PageAfterMoveEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterMovePayload>>\n>(\"Wb/PageAfterMoveEventHandler\");\n\nexport namespace PageAfterMoveEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAcA;AACA,OAAO,MAAME,eAAe,GAAGF,iBAAiB,CAAmB,oBAAoB,CAAC;;AAUxF;AACA;AACA;;AAaA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,0BAA0B,GAAGH,iBAAiB,CAEzD,+BAA+B,CAAC;AAQlC;AACA,OAAO,MAAMI,yBAAyB,GAAGJ,iBAAiB,CAExD,8BAA8B,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 { PageBeforeMovePayload, PageAfterMovePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {
4
4
  eventType: "page.beforeMove";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeMovePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeMovePayload>>>;
6
6
  }
7
7
  export declare class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {
8
8
  eventType: "page.afterMove";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterMovePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterMovePayload>>>;
10
10
  }
@@ -1,4 +1,4 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from "./abstractions.js";
3
3
  // PageBeforeMove Event
4
4
  export class PageBeforeMoveEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeMoveEventHandler","PageAfterMoveEventHandler","PageBeforeMoveEvent","eventType","getHandlerAbstraction","PageAfterMoveEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveEventHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,0BAA0B,EAAEC,yBAAyB;AAG9D;AACA,OAAO,MAAMC,mBAAmB,SAASH,WAAW,CAAwB;EACxEI,SAAS,GAAG,iBAAiB;EAE7BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,0BAA0B;EACrC;AACJ;;AAEA;AACA,OAAO,MAAMK,kBAAkB,SAASN,WAAW,CAAuB;EACtEI,SAAS,GAAG,gBAAgB;EAE5BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,yBAAyB;EACpC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeMoveEventHandler","PageAfterMoveEventHandler","PageBeforeMoveEvent","eventType","getHandlerAbstraction","PageAfterMoveEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeMoveEventHandler, PageAfterMoveEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveEventHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,0BAA0B,EAAEC,yBAAyB;AAG9D;AACA,OAAO,MAAMC,mBAAmB,SAASH,WAAW,CAAwB;EACxEI,SAAS,GAAG,iBAAiB;EAE7BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,0BAA0B;EACrC;AACJ;;AAEA;AACA,OAAO,MAAMK,kBAAkB,SAASN,WAAW,CAAuB;EACtEI,SAAS,GAAG,gBAAgB;EAE5BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,yBAAyB;EACpC;AACJ","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from "./abstractions.js";
3
3
  import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
- import { WbPermissions } from "../../../domain/permissions.js";
4
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
5
5
  declare class PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
6
6
  private permissions;
7
7
  private eventPublisher;
@@ -1,9 +1,9 @@
1
1
  import { Result, createImplementation } 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 { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from "./abstractions.js";
4
4
  import { PageBeforePublishEvent, PageAfterPublishEvent } from "./events.js";
5
5
  import { GetPageByIdUseCase } from "../GetPageById/index.js";
6
- import { WbPermissions } from "../../../domain/permissions.js";
6
+ import { WbPermissions } from "../../permissions/abstractions.js";
7
7
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
8
8
  class PublishPageUseCaseImpl {
9
9
  constructor(permissions, eventPublisher, getPageById, repository) {
@@ -52,7 +52,7 @@ class PublishPageUseCaseImpl {
52
52
  export const PublishPageUseCase = createImplementation({
53
53
  abstraction: UseCaseAbstraction,
54
54
  implementation: PublishPageUseCaseImpl,
55
- dependencies: [WbPermissions.Abstraction, EventPublisher, GetPageByIdUseCase, PublishPageRepository]
55
+ dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]
56
56
  });
57
57
 
58
58
  //# sourceMappingURL=PublishPageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","PublishPageUseCase","UseCaseAbstraction","PublishPageRepository","PageBeforePublishEvent","PageAfterPublishEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","PublishPageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canPublish","fail","getResult","id","isFail","page","value","canAccess","beforeEvent","publish","result","afterEvent","ok","abstraction","implementation","dependencies","Abstraction"],"sources":["PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canPublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetPageByIdUseCase,\n PublishPageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AACxE,SAASC,sBAAsB,EAAEC,qBAAqB;AACtD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,UAAU,CAAC,MAAM,CAAC;IAC/D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,IAAI,GAAGH,SAAS,CAACI,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACd,WAAW,CAACc,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAO3B,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAItB,sBAAsB,CAAC;MAC3CmB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,cAAc,CAACe,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB,IAAI,EAAEK,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACgC,EAAE,CAACF,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,kBAAkB,GAAGF,oBAAoB,CAAC;EACnDgC,WAAW,EAAE7B,kBAAkB;EAC/B8B,cAAc,EAAEvB,sBAAsB;EACtCwB,YAAY,EAAE,CACV1B,aAAa,CAAC2B,WAAW,EACzBlC,cAAc,EACdM,kBAAkB,EAClBH,qBAAqB;AAE7B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","createImplementation","EventPublisher","PublishPageUseCase","UseCaseAbstraction","PublishPageRepository","PageBeforePublishEvent","PageAfterPublishEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","PublishPageUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canPublish","fail","getResult","id","isFail","page","value","canAccess","beforeEvent","publish","result","afterEvent","ok","abstraction","implementation","dependencies"],"sources":["PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canPublish(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n const canAccess = await this.permissions.canAccess(\"page\", page);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, PublishPageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AACxE,SAASC,sBAAsB,EAAEC,qBAAqB;AACtD,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,UAAU,CAAC,MAAM,CAAC;IAC/D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,IAAI,GAAGH,SAAS,CAACI,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACd,WAAW,CAACc,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAO3B,MAAM,CAACqB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAItB,sBAAsB,CAAC;MAC3CmB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,cAAc,CAACe,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIY,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB,IAAI,EAAEK,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO/B,MAAM,CAACgC,EAAE,CAACF,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,kBAAkB,GAAGF,oBAAoB,CAAC;EACnDgC,WAAW,EAAE7B,kBAAkB;EAC/B8B,cAAc,EAAEvB,sBAAsB;EACtCwB,YAAY,EAAE,CAAC1B,aAAa,EAAEP,cAAc,EAAEM,kBAAkB,EAAEH,qBAAqB;AAC3F,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
- import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import type { WbPage } from "../../../domain/page/abstractions.js";
5
5
  import { PageNotFoundError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
6
6
  export interface IPublishWbPageParams {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","PublishPageRepository","PublishPageUseCase","PageBeforePublishEventHandler","PageAfterPublishEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\n/** Publish a page. */\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is published. */\nexport const PageBeforePublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishEventHandler\");\n\nexport namespace PageBeforePublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is published. */\nexport const PageAfterPublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishEventHandler\");\n\nexport namespace PageAfterPublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AAUjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC;AACA,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","PublishPageRepository","PublishPageUseCase","PageBeforePublishEventHandler","PageAfterPublishEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\n/** Publish a page. */\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is published. */\nexport const PageBeforePublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishEventHandler\");\n\nexport namespace PageBeforePublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is published. */\nexport const PageAfterPublishEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishEventHandler\");\n\nexport namespace PageAfterPublishEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAUpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAcA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AAUjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC;AACA,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,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 { PageBeforePublishPayload, PageAfterPublishPayload } from "./abstractions.js";
3
3
  export declare class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {
4
4
  eventType: "page.beforePublish";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforePublishPayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforePublishPayload>>>;
6
6
  }
7
7
  export declare class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {
8
8
  eventType: "page.afterPublish";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterPublishPayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterPublishPayload>>>;
10
10
  }
@@ -1,4 +1,4 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from "./abstractions.js";
3
3
  // PageBeforePublish Event
4
4
  export class PageBeforePublishEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforePublishEventHandler","PageAfterPublishEventHandler","PageBeforePublishEvent","eventType","getHandlerAbstraction","PageAfterPublishEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from \"./abstractions.js\";\nimport type { PageBeforePublishPayload, PageAfterPublishPayload } from \"./abstractions.js\";\n\n// PageBeforePublish Event\nexport class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {\n eventType = \"page.beforePublish\" as const;\n\n getHandlerAbstraction() {\n return PageBeforePublishEventHandler;\n }\n}\n\n// PageAfterPublish Event\nexport class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {\n eventType = \"page.afterPublish\" as const;\n\n getHandlerAbstraction() {\n return PageAfterPublishEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforePublishEventHandler","PageAfterPublishEventHandler","PageBeforePublishEvent","eventType","getHandlerAbstraction","PageAfterPublishEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforePublishEventHandler, PageAfterPublishEventHandler } from \"./abstractions.js\";\nimport type { PageBeforePublishPayload, PageAfterPublishPayload } from \"./abstractions.js\";\n\n// PageBeforePublish Event\nexport class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {\n eventType = \"page.beforePublish\" as const;\n\n getHandlerAbstraction() {\n return PageBeforePublishEventHandler;\n }\n}\n\n// PageAfterPublish Event\nexport class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {\n eventType = \"page.afterPublish\" as const;\n\n getHandlerAbstraction() {\n return PageAfterPublishEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
1
+ import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from "./abstractions.js";
3
- import { WbPermissions } from "../../../domain/permissions.js";
3
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
4
4
  import { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/index.js";
5
5
  declare class RestorePageUseCaseImpl implements UseCaseAbstraction.Interface {
6
6
  private permissions;
@@ -1,8 +1,8 @@
1
1
  import { 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 { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from "./abstractions.js";
4
4
  import { PageAfterRestoreEvent, PageBeforeRestoreEvent } from "./events.js";
5
- import { WbPermissions } from "../../../domain/permissions.js";
5
+ import { WbPermissions } from "../../permissions/abstractions.js";
6
6
  import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
7
7
  import { GetDeletedPageByIdUseCase } from "../GetDeletedPageById/index.js";
8
8
  class RestorePageUseCaseImpl {
@@ -46,7 +46,7 @@ class RestorePageUseCaseImpl {
46
46
  }
47
47
  export const RestorePageUseCase = UseCaseAbstraction.createImplementation({
48
48
  implementation: RestorePageUseCaseImpl,
49
- dependencies: [WbPermissions.Abstraction, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]
49
+ dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]
50
50
  });
51
51
 
52
52
  //# sourceMappingURL=RestorePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","RestorePageRepository","RestorePageUseCase","UseCaseAbstraction","PageAfterRestoreEvent","PageBeforeRestoreEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","RestorePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","createImplementation","implementation","dependencies","Abstraction"],"sources":["RestorePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterRestoreEvent, PageBeforeRestoreEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass RestorePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: RestorePageRepository.Interface\n ) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return result;\n }\n}\n\nexport const RestorePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: RestorePageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetDeletedPageByIdUseCase,\n RestorePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,qBAAqB,EAAEC,kBAAkB,IAAIC,kBAAkB;AACxE,SAASC,qBAAqB,EAAEC,sBAAsB;AACtD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,kBAAkB,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAElE,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIb,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAIpB,sBAAsB,CAAC;MAC3CiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOD,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMzB,kBAAkB,GAAGC,kBAAkB,CAAC0B,oBAAoB,CAAC;EACtEC,cAAc,EAAErB,sBAAsB;EACtCsB,YAAY,EAAE,CACVzB,aAAa,CAAC0B,WAAW,EACzBhC,cAAc,EACdQ,yBAAyB,EACzBP,qBAAqB;AAE7B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","RestorePageRepository","RestorePageUseCase","UseCaseAbstraction","PageAfterRestoreEvent","PageBeforeRestoreEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","RestorePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","createImplementation","implementation","dependencies"],"sources":["RestorePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { RestorePageRepository, RestorePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterRestoreEvent, PageBeforeRestoreEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { GetDeletedPageByIdUseCase } from \"~/features/pages/GetDeletedPageById/index.js\";\n\nclass RestorePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: RestorePageRepository.Interface\n ) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first to include in events and for item-level permission check\n const getResult = await this.getDeletedPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const page = getResult.value;\n\n const canDelete = await this.permissions.canDelete(\"page\", page);\n if (!canDelete) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before delete event\n const beforeEvent = new PageBeforeRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the delete operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after delete event\n const afterEvent = new PageAfterRestoreEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return result;\n }\n}\n\nexport const RestorePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: RestorePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, RestorePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,qBAAqB,EAAEC,kBAAkB,IAAIC,kBAAkB;AACxE,SAASC,qBAAqB,EAAEC,sBAAsB;AACtD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA2C,EACrD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,kBAAkB,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAElE,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGL,SAAS,CAACM,KAAK;IAE5B,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACb,WAAW,CAACa,SAAS,CAAC,MAAM,EAAEF,IAAI,CAAC;IAChE,IAAI,CAACE,SAAS,EAAE;MACZ,OAAOzB,MAAM,CAACqB,IAAI,CAAC,IAAIb,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMkB,WAAW,GAAG,IAAIpB,sBAAsB,CAAC;MAC3CiB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIW,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOQ,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,qBAAqB,CAAC;MACzCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOD,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMzB,kBAAkB,GAAGC,kBAAkB,CAAC0B,oBAAoB,CAAC;EACtEC,cAAc,EAAErB,sBAAsB;EACtCsB,YAAY,EAAE,CAACzB,aAAa,EAAEN,cAAc,EAAEQ,yBAAyB,EAAEP,qBAAqB;AAClG,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
- import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
4
4
  import type { WbPage } from "../../../domain/page/abstractions.js";
5
5
  import type { PageNotFoundError, PageNotFoundTrashedError, PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
6
6
  export interface IRestoreWbPageParams {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","RestorePageRepository","RestorePageUseCase","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IRestoreWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IRestorePageRepository {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IRestorePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IRestorePageRepositoryErrors[keyof IRestorePageRepositoryErrors];\n\nexport const RestorePageRepository = createAbstraction<IRestorePageRepository>(\n \"Wb/RestorePageRepository\"\n);\n\nexport namespace RestorePageRepository {\n export type Interface = IRestorePageRepository;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IRestorePageUseCase {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IRestorePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IRestorePageUseCaseErrors[keyof IRestorePageUseCaseErrors];\n\nexport const RestorePageUseCase = createAbstraction<IRestorePageUseCase>(\"Wb/RestorePageUseCase\");\n\nexport namespace RestorePageUseCase {\n export type Interface = IRestorePageUseCase;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeRestorePayload {\n page: WbPage;\n}\n\nexport interface PageAfterRestorePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeRestorePayload>>\n>(\"Wb/PageBeforeRestoreEventHandler\");\n\nexport namespace PageBeforeRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeRestorePayload>>;\n export type Event = DomainEvent<PageBeforeRestorePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterRestorePayload>>\n>(\"Wb/PageAfterRestoreEventHandler\");\n\nexport namespace PageAfterRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterRestorePayload>>;\n export type Event = DomainEvent<PageAfterRestorePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAeA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","RestorePageRepository","RestorePageUseCase","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IRestoreWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IRestorePageRepository {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IRestorePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IRestorePageRepositoryErrors[keyof IRestorePageRepositoryErrors];\n\nexport const RestorePageRepository = createAbstraction<IRestorePageRepository>(\n \"Wb/RestorePageRepository\"\n);\n\nexport namespace RestorePageRepository {\n export type Interface = IRestorePageRepository;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IRestorePageUseCase {\n execute(params: IRestoreWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IRestorePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IRestorePageUseCaseErrors[keyof IRestorePageUseCaseErrors];\n\nexport const RestorePageUseCase = createAbstraction<IRestorePageUseCase>(\"Wb/RestorePageUseCase\");\n\nexport namespace RestorePageUseCase {\n export type Interface = IRestorePageUseCase;\n export type Params = IRestoreWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeRestorePayload {\n page: WbPage;\n}\n\nexport interface PageAfterRestorePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeRestorePayload>>\n>(\"Wb/PageBeforeRestoreEventHandler\");\n\nexport namespace PageBeforeRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeRestorePayload>>;\n export type Event = DomainEvent<PageBeforeRestorePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterRestoreEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterRestorePayload>>\n>(\"Wb/PageAfterRestoreEventHandler\");\n\nexport namespace PageAfterRestoreEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterRestorePayload>>;\n export type Event = DomainEvent<PageAfterRestorePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAeA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,6BAA6B,GAAGH,iBAAiB,CAE5D,kCAAkC,CAAC;AAQrC,OAAO,MAAMI,4BAA4B,GAAGJ,iBAAiB,CAE3D,iCAAiC,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 { PageBeforeRestorePayload, PageAfterRestorePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeRestoreEvent extends DomainEvent<PageBeforeRestorePayload> {
4
4
  eventType: "page.beforeRestore";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeRestorePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeRestorePayload>>>;
6
6
  }
7
7
  export declare class PageAfterRestoreEvent extends DomainEvent<PageAfterRestorePayload> {
8
8
  eventType: "page.afterRestore";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterRestorePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterRestorePayload>>>;
10
10
  }
@@ -1,4 +1,4 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from "./abstractions.js";
3
3
  // PageBeforeRestore Event
4
4
  export class PageBeforeRestoreEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler","PageBeforeRestoreEvent","eventType","getHandlerAbstraction","PageAfterRestoreEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeRestorePayload, PageAfterRestorePayload } from \"./abstractions.js\";\n\n// PageBeforeRestore Event\nexport class PageBeforeRestoreEvent extends DomainEvent<PageBeforeRestorePayload> {\n eventType = \"page.beforeRestore\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeRestoreEventHandler;\n }\n}\n\n// PageAfterRestore Event\nexport class PageAfterRestoreEvent extends DomainEvent<PageAfterRestorePayload> {\n eventType = \"page.afterRestore\" as const;\n\n getHandlerAbstraction() {\n return PageAfterRestoreEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeRestoreEventHandler","PageAfterRestoreEventHandler","PageBeforeRestoreEvent","eventType","getHandlerAbstraction","PageAfterRestoreEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeRestoreEventHandler, PageAfterRestoreEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeRestorePayload, PageAfterRestorePayload } from \"./abstractions.js\";\n\n// PageBeforeRestore Event\nexport class PageBeforeRestoreEvent extends DomainEvent<PageBeforeRestorePayload> {\n eventType = \"page.beforeRestore\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeRestoreEventHandler;\n }\n}\n\n// PageAfterRestore Event\nexport class PageAfterRestoreEvent extends DomainEvent<PageAfterRestorePayload> {\n eventType = \"page.afterRestore\" as const;\n\n getHandlerAbstraction() {\n return PageAfterRestoreEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,6BAA6B,EAAEC,4BAA4B;AAGpE;AACA,OAAO,MAAMC,sBAAsB,SAASH,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMK,qBAAqB,SAASN,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,4BAA4B;EACvC;AACJ","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { TranslatePageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { DuplicatePageRepository } from "../../../features/pages/DuplicatePage/abstractions.js";
3
+ import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
4
+ import { GetLanguageByCodeUseCase } from "@webiny/languages/exports/api/languages.js";
5
+ import { ListLanguagesUseCase } from "@webiny/languages/exports/api/languages.js";
6
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
7
+ declare class TranslatePageUseCaseImpl implements UseCaseAbstraction.Interface {
8
+ private permissions;
9
+ private getPageById;
10
+ private getLanguageByCode;
11
+ private listLanguages;
12
+ private duplicatePageRepository;
13
+ constructor(permissions: WbPermissions.Interface, getPageById: GetPageByIdUseCase.Interface, getLanguageByCode: GetLanguageByCodeUseCase.Interface, listLanguages: ListLanguagesUseCase.Interface, duplicatePageRepository: DuplicatePageRepository.Interface);
14
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
15
+ }
16
+ export declare const TranslatePageUseCase: import("@webiny/di").Implementation<typeof TranslatePageUseCaseImpl>;
17
+ export {};