@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
@@ -0,0 +1,7 @@
1
+ export declare class PagePath {
2
+ private readonly path;
3
+ private constructor();
4
+ static create(path: string): PagePath;
5
+ setLanguageCode(code: string, supportedCodes: string[]): PagePath;
6
+ toString(): string;
7
+ }
@@ -0,0 +1,36 @@
1
+ export class PagePath {
2
+ constructor(path) {
3
+ this.path = path;
4
+ }
5
+ static create(path) {
6
+ return new PagePath(path);
7
+ }
8
+ setLanguageCode(code, supportedCodes) {
9
+ if (!supportedCodes.includes(code)) {
10
+ throw new Error(`Language code "${code}" is not in supported codes`);
11
+ }
12
+ const normalized = this.path.startsWith("/") ? this.path : `/${this.path}`;
13
+
14
+ // Handle root path.
15
+ if (normalized === "/") {
16
+ return new PagePath(`/${code}`);
17
+ }
18
+
19
+ // Check if path starts with a supported language code.
20
+ const pathSegments = normalized.split("/").filter(Boolean);
21
+ const firstSegment = pathSegments[0];
22
+ if (supportedCodes.includes(firstSegment)) {
23
+ // Replace existing language code.
24
+ pathSegments[0] = code;
25
+ return new PagePath(`/${pathSegments.join("/")}`);
26
+ }
27
+
28
+ // No language code present, prepend the new one.
29
+ return new PagePath(`/${code}${normalized}`);
30
+ }
31
+ toString() {
32
+ return this.path;
33
+ }
34
+ }
35
+
36
+ //# sourceMappingURL=PagePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PagePath","constructor","path","create","setLanguageCode","code","supportedCodes","includes","Error","normalized","startsWith","pathSegments","split","filter","Boolean","firstSegment","join","toString"],"sources":["PagePath.ts"],"sourcesContent":["export class PagePath {\n private readonly path: string;\n\n private constructor(path: string) {\n this.path = path;\n }\n\n static create(path: string): PagePath {\n return new PagePath(path);\n }\n\n setLanguageCode(code: string, supportedCodes: string[]): PagePath {\n if (!supportedCodes.includes(code)) {\n throw new Error(`Language code \"${code}\" is not in supported codes`);\n }\n\n const normalized = this.path.startsWith(\"/\") ? this.path : `/${this.path}`;\n\n // Handle root path.\n if (normalized === \"/\") {\n return new PagePath(`/${code}`);\n }\n\n // Check if path starts with a supported language code.\n const pathSegments = normalized.split(\"/\").filter(Boolean);\n const firstSegment = pathSegments[0];\n\n if (supportedCodes.includes(firstSegment)) {\n // Replace existing language code.\n pathSegments[0] = code;\n return new PagePath(`/${pathSegments.join(\"/\")}`);\n }\n\n // No language code present, prepend the new one.\n return new PagePath(`/${code}${normalized}`);\n }\n\n toString(): string {\n return this.path;\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,CAAC;EAGVC,WAAWA,CAACC,IAAY,EAAE;IAC9B,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EAEA,OAAOC,MAAMA,CAACD,IAAY,EAAY;IAClC,OAAO,IAAIF,QAAQ,CAACE,IAAI,CAAC;EAC7B;EAEAE,eAAeA,CAACC,IAAY,EAAEC,cAAwB,EAAY;IAC9D,IAAI,CAACA,cAAc,CAACC,QAAQ,CAACF,IAAI,CAAC,EAAE;MAChC,MAAM,IAAIG,KAAK,CAAC,kBAAkBH,IAAI,6BAA6B,CAAC;IACxE;IAEA,MAAMI,UAAU,GAAG,IAAI,CAACP,IAAI,CAACQ,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAACR,IAAI,GAAG,IAAI,IAAI,CAACA,IAAI,EAAE;;IAE1E;IACA,IAAIO,UAAU,KAAK,GAAG,EAAE;MACpB,OAAO,IAAIT,QAAQ,CAAC,IAAIK,IAAI,EAAE,CAAC;IACnC;;IAEA;IACA,MAAMM,YAAY,GAAGF,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;IAC1D,MAAMC,YAAY,GAAGJ,YAAY,CAAC,CAAC,CAAC;IAEpC,IAAIL,cAAc,CAACC,QAAQ,CAACQ,YAAY,CAAC,EAAE;MACvC;MACAJ,YAAY,CAAC,CAAC,CAAC,GAAGN,IAAI;MACtB,OAAO,IAAIL,QAAQ,CAAC,IAAIW,YAAY,CAACK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrD;;IAEA;IACA,OAAO,IAAIhB,QAAQ,CAAC,IAAIK,IAAI,GAAGI,UAAU,EAAE,CAAC;EAChD;EAEAQ,QAAQA,CAAA,EAAW;IACf,OAAO,IAAI,CAACf,IAAI;EACpB;AACJ","ignoreList":[]}
@@ -19,6 +19,12 @@ export declare class PageValidationError extends BaseError {
19
19
  readonly code: "WebsiteBuilder/Page/ValidationError";
20
20
  constructor(message: string);
21
21
  }
22
+ export declare class PageTranslationError extends BaseError<{
23
+ languageCode: string;
24
+ }> {
25
+ readonly code: "WebsiteBuilder/Page/TranslationError";
26
+ constructor(languageCode: string);
27
+ }
22
28
  export declare class PageNotAuthorizedError extends BaseError {
23
29
  readonly code: "WebsiteBuilder/Page/NotAuthorized";
24
30
  constructor();
@@ -37,6 +37,17 @@ export class PageValidationError extends BaseError {
37
37
  });
38
38
  }
39
39
  }
40
+ export class PageTranslationError extends BaseError {
41
+ code = "WebsiteBuilder/Page/TranslationError";
42
+ constructor(languageCode) {
43
+ super({
44
+ message: `Language "${languageCode}" was not found.`,
45
+ data: {
46
+ languageCode
47
+ }
48
+ });
49
+ }
50
+ }
40
51
  export class PageNotAuthorizedError extends BaseError {
41
52
  code = "WebsiteBuilder/Page/NotAuthorized";
42
53
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"names":["BaseError","PageNotFoundError","code","constructor","id","message","data","PageNotFoundTrashedError","PagePersistenceError","error","PageValidationError","PageNotAuthorizedError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class PageNotFoundError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PageNotFoundTrashedError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFoundTrashed\" as const;\n\n constructor(id: string) {\n super({\n message: \"Trashed page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PagePersistenceError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class PageValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/ValidationError\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class PageNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,iBAAiB,SAASD,SAAS,CAAiB;EAC3CE,IAAI,GAAG,8BAA8B;EAEvDC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,iBAAiB;MAC1BC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,wBAAwB,SAASP,SAAS,CAAiB;EAClDE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,yBAAyB;MAClCC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,oBAAoB,SAASR,SAAS,CAAC;EAC9BE,IAAI,GAAG,sCAAsC;EAE/DC,WAAWA,CAACM,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEJ,OAAO,EAAEI,KAAK,CAACJ;IAAQ,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMK,mBAAmB,SAASV,SAAS,CAAC;EAC7BE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACE,OAAe,EAAE;IACzB,KAAK,CAAC;MAAEA;IAAQ,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMM,sBAAsB,SAASX,SAAS,CAAC;EAChCE,IAAI,GAAG,mCAAmC;EAE5DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MAAEE,OAAO,EAAE;IAAkB,CAAC,CAAC;EACzC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["BaseError","PageNotFoundError","code","constructor","id","message","data","PageNotFoundTrashedError","PagePersistenceError","error","PageValidationError","PageTranslationError","languageCode","PageNotAuthorizedError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class PageNotFoundError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PageNotFoundTrashedError extends BaseError<{ id: string }> {\n override readonly code = \"WebsiteBuilder/Page/NotFoundTrashed\" as const;\n\n constructor(id: string) {\n super({\n message: \"Trashed page not found!\",\n data: {\n id\n }\n });\n }\n}\n\nexport class PagePersistenceError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class PageValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/ValidationError\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class PageTranslationError extends BaseError<{ languageCode: string }> {\n override readonly code = \"WebsiteBuilder/Page/TranslationError\" as const;\n\n constructor(languageCode: string) {\n super({\n message: `Language \"${languageCode}\" was not found.`,\n data: {\n languageCode\n }\n });\n }\n}\n\nexport class PageNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Page/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,iBAAiB,SAASD,SAAS,CAAiB;EAC3CE,IAAI,GAAG,8BAA8B;EAEvDC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,iBAAiB;MAC1BC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,wBAAwB,SAASP,SAAS,CAAiB;EAClDE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,yBAAyB;MAClCC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,oBAAoB,SAASR,SAAS,CAAC;EAC9BE,IAAI,GAAG,sCAAsC;EAE/DC,WAAWA,CAACM,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEJ,OAAO,EAAEI,KAAK,CAACJ;IAAQ,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMK,mBAAmB,SAASV,SAAS,CAAC;EAC7BE,IAAI,GAAG,qCAAqC;EAE9DC,WAAWA,CAACE,OAAe,EAAE;IACzB,KAAK,CAAC;MAAEA;IAAQ,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMM,oBAAoB,SAASX,SAAS,CAA2B;EACxDE,IAAI,GAAG,sCAAsC;EAE/DC,WAAWA,CAACS,YAAoB,EAAE;IAC9B,KAAK,CAAC;MACFP,OAAO,EAAE,aAAaO,YAAY,kBAAkB;MACpDN,IAAI,EAAE;QACFM;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMC,sBAAsB,SAASb,SAAS,CAAC;EAChCE,IAAI,GAAG,mCAAmC;EAE5DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MAAEE,OAAO,EAAE;IAAkB,CAAC,CAAC;EACzC;AACJ","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ export declare const WB_PERMISSIONS_SCHEMA: {
2
+ readonly prefix: "wb";
3
+ readonly fullAccess: true;
4
+ readonly entities: readonly [{
5
+ readonly id: "page";
6
+ readonly permission: "wb.page";
7
+ readonly scopes: readonly ["full", "own"];
8
+ readonly actions: readonly [{
9
+ readonly name: "rwd";
10
+ }, {
11
+ readonly name: "pw";
12
+ }];
13
+ }, {
14
+ readonly id: "redirect";
15
+ readonly permission: "wb.redirect";
16
+ readonly scopes: readonly ["full", "own"];
17
+ readonly actions: readonly [{
18
+ readonly name: "rwd";
19
+ }];
20
+ }, {
21
+ readonly id: "settings";
22
+ readonly permission: "wb.settings";
23
+ readonly scopes: readonly ["full"];
24
+ }, {
25
+ readonly id: "integrations";
26
+ readonly permission: "wb.integrations";
27
+ readonly scopes: readonly ["full"];
28
+ }];
29
+ };
@@ -1,5 +1,5 @@
1
- import { createPermissions } from "@webiny/api-core/features/security/permissions/index.js";
2
- const schema = {
1
+ import { createPermissionSchema } from "@webiny/api-core/exports/api/security.js";
2
+ export const WB_PERMISSIONS_SCHEMA = createPermissionSchema({
3
3
  prefix: "wb",
4
4
  fullAccess: true,
5
5
  entities: [{
@@ -27,7 +27,6 @@ const schema = {
27
27
  permission: "wb.integrations",
28
28
  scopes: ["full"]
29
29
  }]
30
- };
31
- export const WbPermissions = createPermissions(schema);
30
+ });
32
31
 
33
- //# sourceMappingURL=permissions.js.map
32
+ //# sourceMappingURL=permissionsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPermissionSchema","WB_PERMISSIONS_SCHEMA","prefix","fullAccess","entities","id","permission","scopes","actions","name"],"sources":["permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/api-core/exports/api/security.js\";\n\nexport const WB_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"wb\",\n fullAccess: true,\n entities: [\n {\n id: \"page\",\n permission: \"wb.page\",\n scopes: [\"full\", \"own\"],\n actions: [{ name: \"rwd\" }, { name: \"pw\" }]\n },\n {\n id: \"redirect\",\n permission: \"wb.redirect\",\n scopes: [\"full\", \"own\"],\n actions: [{ name: \"rwd\" }]\n },\n {\n id: \"settings\",\n permission: \"wb.settings\",\n scopes: [\"full\"]\n },\n {\n id: \"integrations\",\n permission: \"wb.integrations\",\n scopes: [\"full\"]\n }\n ]\n});\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,0CAA0C;AAEjF,OAAO,MAAMC,qBAAqB,GAAGD,sBAAsB,CAAC;EACxDE,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,IAAI;EAChBC,QAAQ,EAAE,CACN;IACIC,EAAE,EAAE,MAAM;IACVC,UAAU,EAAE,SAAS;IACrBC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACvBC,OAAO,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAM,CAAC,EAAE;MAAEA,IAAI,EAAE;IAAK,CAAC;EAC7C,CAAC,EACD;IACIJ,EAAE,EAAE,UAAU;IACdC,UAAU,EAAE,aAAa;IACzBC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACvBC,OAAO,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAM,CAAC;EAC7B,CAAC,EACD;IACIJ,EAAE,EAAE,UAAU;IACdC,UAAU,EAAE,aAAa;IACzBC,MAAM,EAAE,CAAC,MAAM;EACnB,CAAC,EACD;IACIF,EAAE,EAAE,cAAc;IAClBC,UAAU,EAAE,iBAAiB;IAC7BC,MAAM,EAAE,CAAC,MAAM;EACnB,CAAC;AAET,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { AppInstaller } from "@webiny/api-core/features/InstallTenant";
1
+ import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
2
2
  import { CreateApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js";
3
3
  import { DeleteApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js";
4
4
  declare class ApiKeyInstallerImpl implements AppInstaller.Interface {
@@ -1,4 +1,4 @@
1
- import { AppInstaller } from "@webiny/api-core/features/InstallTenant";
1
+ import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
2
2
  import { CreateApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js";
3
3
  import { DeleteApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js";
4
4
  class ApiKeyInstallerImpl {
@@ -1 +1 @@
1
- {"version":3,"names":["AppInstaller","CreateApiKeyUseCase","DeleteApiKeyUseCase","ApiKeyInstallerImpl","alwaysRun","appName","dependsOn","apiKey","undefined","constructor","createApiKey","deleteApiKey","install","result","execute","name","description","slug","permissions","rwd","isOk","value","uninstall","id","ApiKeyInstaller","createImplementation","implementation","dependencies"],"sources":["ApiKeyInstaller.ts"],"sourcesContent":["import { AppInstaller } from \"@webiny/api-core/features/InstallTenant\";\nimport { CreateApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js\";\nimport { DeleteApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js\";\nimport type { ApiKey } from \"@webiny/api-core/types/security.js\";\n\nclass ApiKeyInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"WebsiteBuilder\";\n readonly dependsOn = [];\n private apiKey: ApiKey | undefined = undefined;\n\n constructor(\n private createApiKey: CreateApiKeyUseCase.Interface,\n private deleteApiKey: DeleteApiKeyUseCase.Interface\n ) {}\n\n async install(): Promise<void> {\n const result = await this.createApiKey.execute({\n name: \"Website Builder\",\n description: \"Integrate Next.js or custom frontend with Website Builder.\",\n slug: \"website-builder\",\n permissions: [{ name: \"$wb.readonly\" }, { name: \"wb.page\", rwd: \"r\" }]\n });\n\n if (result.isOk()) {\n this.apiKey = result.value;\n }\n }\n\n async uninstall(): Promise<void> {\n if (this.apiKey) {\n await this.deleteApiKey.execute(this.apiKey.id);\n }\n }\n}\n\nexport const ApiKeyInstaller = AppInstaller.createImplementation({\n implementation: ApiKeyInstallerImpl,\n dependencies: [CreateApiKeyUseCase, DeleteApiKeyUseCase]\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yCAAyC;AACtE,SAASC,mBAAmB,QAAQ,kEAAkE;AACtG,SAASC,mBAAmB,QAAQ,kEAAkE;AAGtG,MAAMC,mBAAmB,CAAmC;EAC/CC,SAAS,GAAG,IAAI;EAChBC,OAAO,GAAG,gBAAgB;EAC1BC,SAAS,GAAG,EAAE;EACfC,MAAM,GAAuBC,SAAS;EAE9CC,WAAWA,CACCC,YAA2C,EAC3CC,YAA2C,EACrD;IAAA,KAFUD,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,YAA2C,GAA3CA,YAA2C;EACpD;EAEH,MAAMC,OAAOA,CAAA,EAAkB;IAC3B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,YAAY,CAACI,OAAO,CAAC;MAC3CC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,4DAA4D;MACzEC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,CAAC;QAAEH,IAAI,EAAE;MAAe,CAAC,EAAE;QAAEA,IAAI,EAAE,SAAS;QAAEI,GAAG,EAAE;MAAI,CAAC;IACzE,CAAC,CAAC;IAEF,IAAIN,MAAM,CAACO,IAAI,CAAC,CAAC,EAAE;MACf,IAAI,CAACb,MAAM,GAAGM,MAAM,CAACQ,KAAK;IAC9B;EACJ;EAEA,MAAMC,SAASA,CAAA,EAAkB;IAC7B,IAAI,IAAI,CAACf,MAAM,EAAE;MACb,MAAM,IAAI,CAACI,YAAY,CAACG,OAAO,CAAC,IAAI,CAACP,MAAM,CAACgB,EAAE,CAAC;IACnD;EACJ;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAGxB,YAAY,CAACyB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEvB,mBAAmB;EACnCwB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,mBAAmB;AAC3D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AppInstaller","CreateApiKeyUseCase","DeleteApiKeyUseCase","ApiKeyInstallerImpl","alwaysRun","appName","dependsOn","apiKey","undefined","constructor","createApiKey","deleteApiKey","install","result","execute","name","description","slug","permissions","rwd","isOk","value","uninstall","id","ApiKeyInstaller","createImplementation","implementation","dependencies"],"sources":["ApiKeyInstaller.ts"],"sourcesContent":["import { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { CreateApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js\";\nimport { DeleteApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js\";\nimport type { ApiKey } from \"@webiny/api-core/types/security.js\";\n\nclass ApiKeyInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"WebsiteBuilder\";\n readonly dependsOn = [];\n private apiKey: ApiKey | undefined = undefined;\n\n constructor(\n private createApiKey: CreateApiKeyUseCase.Interface,\n private deleteApiKey: DeleteApiKeyUseCase.Interface\n ) {}\n\n async install(): Promise<void> {\n const result = await this.createApiKey.execute({\n name: \"Website Builder\",\n description: \"Integrate Next.js or custom frontend with Website Builder.\",\n slug: \"website-builder\",\n permissions: [{ name: \"$wb.readonly\" }, { name: \"wb.page\", rwd: \"r\" }]\n });\n\n if (result.isOk()) {\n this.apiKey = result.value;\n }\n }\n\n async uninstall(): Promise<void> {\n if (this.apiKey) {\n await this.deleteApiKey.execute(this.apiKey.id);\n }\n }\n}\n\nexport const ApiKeyInstaller = AppInstaller.createImplementation({\n implementation: ApiKeyInstallerImpl,\n dependencies: [CreateApiKeyUseCase, DeleteApiKeyUseCase]\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,0DAA0D;AACvF,SAASC,mBAAmB,QAAQ,kEAAkE;AACtG,SAASC,mBAAmB,QAAQ,kEAAkE;AAGtG,MAAMC,mBAAmB,CAAmC;EAC/CC,SAAS,GAAG,IAAI;EAChBC,OAAO,GAAG,gBAAgB;EAC1BC,SAAS,GAAG,EAAE;EACfC,MAAM,GAAuBC,SAAS;EAE9CC,WAAWA,CACCC,YAA2C,EAC3CC,YAA2C,EACrD;IAAA,KAFUD,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,YAA2C,GAA3CA,YAA2C;EACpD;EAEH,MAAMC,OAAOA,CAAA,EAAkB;IAC3B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,YAAY,CAACI,OAAO,CAAC;MAC3CC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,4DAA4D;MACzEC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,CAAC;QAAEH,IAAI,EAAE;MAAe,CAAC,EAAE;QAAEA,IAAI,EAAE,SAAS;QAAEI,GAAG,EAAE;MAAI,CAAC;IACzE,CAAC,CAAC;IAEF,IAAIN,MAAM,CAACO,IAAI,CAAC,CAAC,EAAE;MACf,IAAI,CAACb,MAAM,GAAGM,MAAM,CAACQ,KAAK;IAC9B;EACJ;EAEA,MAAMC,SAASA,CAAA,EAAkB;IAC7B,IAAI,IAAI,CAACf,MAAM,EAAE;MACb,MAAM,IAAI,CAACI,YAAY,CAACG,OAAO,CAAC,IAAI,CAACP,MAAM,CAACgB,EAAE,CAAC;IACnD;EACJ;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAGxB,YAAY,CAACyB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEvB,mBAAmB;EACnCwB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,mBAAmB;AAC3D,CAAC,CAAC","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 { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from "./abstractions.js";
3
- import { WbPermissions } from "../../../domain/permissions.js";
3
+ import { WbPermissions } from "../../../features/permissions/abstractions.js";
4
4
  declare class CreatePageUseCaseImpl implements UseCaseAbstraction.Interface {
5
5
  private permissions;
6
6
  private eventPublisher;
@@ -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 { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from "./abstractions.js";
4
4
  import { PageBeforeCreateEvent, PageAfterCreateEvent } 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
  class CreatePageUseCaseImpl {
8
8
  constructor(permissions, eventPublisher, repository) {
@@ -39,7 +39,7 @@ class CreatePageUseCaseImpl {
39
39
  }
40
40
  export const CreatePageUseCase = UseCaseAbstraction.createImplementation({
41
41
  implementation: CreatePageUseCaseImpl,
42
- dependencies: [WbPermissions.Abstraction, EventPublisher, CreatePageRepository]
42
+ dependencies: [WbPermissions, EventPublisher, CreatePageRepository]
43
43
  });
44
44
 
45
45
  //# sourceMappingURL=CreatePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","CreatePageUseCase","UseCaseAbstraction","CreatePageRepository","PageBeforeCreateEvent","PageAfterCreateEvent","WbPermissions","PageNotAuthorizedError","CreatePageUseCaseImpl","constructor","permissions","eventPublisher","repository","execute","data","hasPermission","canCreate","fail","beforeCreateEvent","input","publish","result","isFail","page","value","afterCreateEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["CreatePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from \"./abstractions.js\";\nimport { PageBeforeCreateEvent, PageAfterCreateEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass CreatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreatePageRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before create event\n const beforeCreateEvent = new PageBeforeCreateEvent({ input: data });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(data);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after create event\n const afterCreateEvent = new PageAfterCreateEvent({ page });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, EventPublisher, CreatePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,UAA0C,EACpD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,IAA+B,EAA6B;IACtE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOhB,MAAM,CAACkB,IAAI,CAAC,IAAIV,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMW,iBAAiB,GAAG,IAAId,qBAAqB,CAAC;MAAEe,KAAK,EAAEL;IAAK,CAAC,CAAC;IAEpE,MAAM,IAAI,CAACH,cAAc,CAACS,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACT,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAIO,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,IAAI,GAAGF,MAAM,CAACG,KAAK;;IAEzB;IACA,MAAMC,gBAAgB,GAAG,IAAIpB,oBAAoB,CAAC;MAAEkB;IAAK,CAAC,CAAC;IAE3D,MAAM,IAAI,CAACZ,cAAc,CAACS,OAAO,CAACK,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMtB,iBAAiB,GAAGC,kBAAkB,CAACyB,oBAAoB,CAAC;EACrEC,cAAc,EAAEpB,qBAAqB;EACrCqB,YAAY,EAAE,CAACvB,aAAa,CAACwB,WAAW,EAAE9B,cAAc,EAAEG,oBAAoB;AAClF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","CreatePageUseCase","UseCaseAbstraction","CreatePageRepository","PageBeforeCreateEvent","PageAfterCreateEvent","WbPermissions","PageNotAuthorizedError","CreatePageUseCaseImpl","constructor","permissions","eventPublisher","repository","execute","data","hasPermission","canCreate","fail","beforeCreateEvent","input","publish","result","isFail","page","value","afterCreateEvent","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageUseCase.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 { CreatePageUseCase as UseCaseAbstraction, CreatePageRepository } from \"./abstractions.js\";\nimport { PageBeforeCreateEvent, PageAfterCreateEvent } from \"./events.js\";\nimport { WbPermissions } from \"~/features/permissions/abstractions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass CreatePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private repository: CreatePageRepository.Interface\n ) {}\n\n async execute(data: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Publish before create event\n const beforeCreateEvent = new PageBeforeCreateEvent({ input: data });\n\n await this.eventPublisher.publish(beforeCreateEvent);\n\n // Execute the create operation\n const result = await this.repository.execute(data);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after create event\n const afterCreateEvent = new PageAfterCreateEvent({ page });\n\n await this.eventPublisher.publish(afterCreateEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, CreatePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,UAA0C,EACpD;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,IAA+B,EAA6B;IACtE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOhB,MAAM,CAACkB,IAAI,CAAC,IAAIV,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMW,iBAAiB,GAAG,IAAId,qBAAqB,CAAC;MAAEe,KAAK,EAAEL;IAAK,CAAC,CAAC;IAEpE,MAAM,IAAI,CAACH,cAAc,CAACS,OAAO,CAACF,iBAAiB,CAAC;;IAEpD;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACT,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;IAElD,IAAIO,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,IAAI,GAAGF,MAAM,CAACG,KAAK;;IAEzB;IACA,MAAMC,gBAAgB,GAAG,IAAIpB,oBAAoB,CAAC;MAAEkB;IAAK,CAAC,CAAC;IAE3D,MAAM,IAAI,CAACZ,cAAc,CAACS,OAAO,CAACK,gBAAgB,CAAC;IAEnD,OAAO1B,MAAM,CAAC2B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMtB,iBAAiB,GAAGC,kBAAkB,CAACyB,oBAAoB,CAAC;EACrEC,cAAc,EAAEpB,qBAAqB;EACrCqB,YAAY,EAAE,CAACvB,aAAa,EAAEN,cAAc,EAAEG,oBAAoB;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { type Result } from "@webiny/feature/api";
2
- import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/EventPublisher";
2
+ import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { WbPage } from "../../../domain/page/abstractions.js";
4
4
  import { PagePersistenceError, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
5
  export type ICreateWbPageParams = Pick<WbPage, "properties" | "metadata" | "bindings" | "elements" | "location" | "extensions">;
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateEventHandler","PageAfterCreateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbPageParams = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"location\" | \"extensions\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRepository {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRepositoryErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];\n\nexport const CreatePageRepository =\n createAbstraction<ICreatePageRepository>(\"Wb/CreatePageRepository\");\n\nexport namespace CreatePageRepository {\n export type Interface = ICreatePageRepository;\n export type Params = ICreateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageUseCase {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];\n\n/** Create a new page. */\nexport const CreatePageUseCase = createAbstraction<ICreatePageUseCase>(\"Wb/CreatePageUseCase\");\n\nexport namespace CreatePageUseCase {\n export type Interface = ICreatePageUseCase;\n export type Params = ICreateWbPageParams;\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 PageBeforeCreatePayload {\n input: ICreateWbPageParams;\n}\n\nexport interface PageAfterCreatePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is created. */\nexport const PageBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateEventHandler\");\n\nexport namespace PageBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is created. */\nexport const PageAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateEventHandler\");\n\nexport namespace PageAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;\n export type Event = DomainEvent<PageAfterCreatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AASpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","CreatePageRepository","CreatePageUseCase","PageBeforeCreateEventHandler","PageAfterCreateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PagePersistenceError,\n PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type ICreateWbPageParams = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"location\" | \"extensions\"\n>;\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRepository {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRepositoryErrors {\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = ICreatePageRepositoryErrors[keyof ICreatePageRepositoryErrors];\n\nexport const CreatePageRepository =\n createAbstraction<ICreatePageRepository>(\"Wb/CreatePageRepository\");\n\nexport namespace CreatePageRepository {\n export type Interface = ICreatePageRepository;\n export type Params = ICreateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageUseCase {\n execute(data: ICreateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = ICreatePageUseCaseErrors[keyof ICreatePageUseCaseErrors];\n\n/** Create a new page. */\nexport const CreatePageUseCase = createAbstraction<ICreatePageUseCase>(\"Wb/CreatePageUseCase\");\n\nexport namespace CreatePageUseCase {\n export type Interface = ICreatePageUseCase;\n export type Params = ICreateWbPageParams;\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 PageBeforeCreatePayload {\n input: ICreateWbPageParams;\n}\n\nexport interface PageAfterCreatePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is created. */\nexport const PageBeforeCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreatePayload>>\n>(\"Wb/PageBeforeCreateEventHandler\");\n\nexport namespace PageBeforeCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreatePayload>>;\n export type Event = DomainEvent<PageBeforeCreatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is created. */\nexport const PageAfterCreateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreatePayload>>\n>(\"Wb/PageAfterCreateEventHandler\");\n\nexport namespace PageAfterCreateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreatePayload>>;\n export type Event = DomainEvent<PageAfterCreatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AASpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAcA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAU9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,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 { PageBeforeCreatePayload, PageAfterCreatePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {
4
4
  eventType: "page.beforeCreate";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeCreatePayload>>>;
6
6
  }
7
7
  export declare class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {
8
8
  eventType: "page.afterCreate";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterCreatePayload>>>;
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 { PageBeforeCreateEventHandler, PageAfterCreateEventHandler } from "./abstractions.js";
3
3
  // PageBeforeCreate Event
4
4
  export class PageBeforeCreateEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeCreateEventHandler","PageAfterCreateEventHandler","PageBeforeCreateEvent","eventType","getHandlerAbstraction","PageAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeCreateEventHandler, PageAfterCreateEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeCreatePayload, PageAfterCreatePayload } from \"./abstractions.js\";\n\n// PageBeforeCreate Event\nexport class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {\n eventType = \"page.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateEventHandler;\n }\n}\n\n// PageAfterCreate Event\nexport class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {\n eventType = \"page.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,4BAA4B,EAAEC,2BAA2B;AAGlE;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeCreateEventHandler","PageAfterCreateEventHandler","PageBeforeCreateEvent","eventType","getHandlerAbstraction","PageAfterCreateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeCreateEventHandler, PageAfterCreateEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeCreatePayload, PageAfterCreatePayload } from \"./abstractions.js\";\n\n// PageBeforeCreate Event\nexport class PageBeforeCreateEvent extends DomainEvent<PageBeforeCreatePayload> {\n eventType = \"page.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateEventHandler;\n }\n}\n\n// PageAfterCreate Event\nexport class PageAfterCreateEvent extends DomainEvent<PageAfterCreatePayload> {\n eventType = \"page.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,4BAA4B,EAAEC,2BAA2B;AAGlE;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;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 { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } 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 CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {
6
6
  private permissions;
7
7
  private eventPublisher;
@@ -1,9 +1,9 @@
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 { CreatePageRevisionFromUseCase as UseCaseAbstraction, CreatePageRevisionFromRepository } from "./abstractions.js";
4
4
  import { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } 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 CreatePageRevisionFromUseCaseImpl {
9
9
  constructor(permissions, eventPublisher, getPageById, repository) {
@@ -47,7 +47,7 @@ class CreatePageRevisionFromUseCaseImpl {
47
47
  }
48
48
  export const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({
49
49
  implementation: CreatePageRevisionFromUseCaseImpl,
50
- dependencies: [WbPermissions.Abstraction, EventPublisher, GetPageByIdUseCase, CreatePageRevisionFromRepository]
50
+ dependencies: [WbPermissions, EventPublisher, GetPageByIdUseCase, CreatePageRevisionFromRepository]
51
51
  });
52
52
 
53
53
  //# sourceMappingURL=CreatePageRevisionFromUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","CreatePageRevisionFromUseCase","UseCaseAbstraction","CreatePageRevisionFromRepository","PageBeforeCreateRevisionFromEvent","PageAfterCreateRevisionFromEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","CreatePageRevisionFromUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canCreate","fail","getResult","id","isFail","beforeEvent","publish","result","page","value","afterEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["CreatePageRevisionFromUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n CreatePageRevisionFromUseCase as UseCaseAbstraction,\n CreatePageRevisionFromRepository\n} from \"./abstractions.js\";\nimport { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } 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 CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: CreatePageRevisionFromRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Verify ownership of the source page\n const getResult = await this.getPageById.execute(params.id);\n if (getResult.isFail()) {\n return getResult;\n }\n\n // Publish before event\n const beforeEvent = new PageBeforeCreateRevisionFromEvent({\n params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the create revision operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after event\n const afterEvent = new PageAfterCreateRevisionFromEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageRevisionFromUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetPageByIdUseCase,\n CreatePageRevisionFromRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,6BAA6B,IAAIC,kBAAkB,EACnDC,gCAAgC;AAEpC,SAASC,iCAAiC,EAAEC,gCAAgC;AAC5E,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,iCAAiC,CAAyC;EAC5EC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAsD,EAChE;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAsD,GAAtDA,UAAsD;EAC/D;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAC3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;;IAEA;IACA,MAAMG,WAAW,GAAG,IAAInB,iCAAiC,CAAC;MACtDY;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACY,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIS,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,MAAMC,IAAI,GAAGD,MAAM,CAACE,KAAK;;IAEzB;IACA,MAAMC,UAAU,GAAG,IAAIvB,gCAAgC,CAAC;MACpDqB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACd,cAAc,CAACY,OAAO,CAACI,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMzB,6BAA6B,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACjFC,cAAc,EAAEtB,iCAAiC;EACjDuB,YAAY,EAAE,CACVzB,aAAa,CAAC0B,WAAW,EACzBjC,cAAc,EACdM,kBAAkB,EAClBH,gCAAgC;AAExC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","CreatePageRevisionFromUseCase","UseCaseAbstraction","CreatePageRevisionFromRepository","PageBeforeCreateRevisionFromEvent","PageAfterCreateRevisionFromEvent","GetPageByIdUseCase","WbPermissions","PageNotAuthorizedError","CreatePageRevisionFromUseCaseImpl","constructor","permissions","eventPublisher","getPageById","repository","execute","params","hasPermission","canCreate","fail","getResult","id","isFail","beforeEvent","publish","result","page","value","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["CreatePageRevisionFromUseCase.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 {\n CreatePageRevisionFromUseCase as UseCaseAbstraction,\n CreatePageRevisionFromRepository\n} from \"./abstractions.js\";\nimport { PageBeforeCreateRevisionFromEvent, PageAfterCreateRevisionFromEvent } 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 CreatePageRevisionFromUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: CreatePageRevisionFromRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canCreate(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n // Verify ownership of the source page\n const getResult = await this.getPageById.execute(params.id);\n if (getResult.isFail()) {\n return getResult;\n }\n\n // Publish before event\n const beforeEvent = new PageBeforeCreateRevisionFromEvent({\n params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the create revision operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n\n // Publish after event\n const afterEvent = new PageAfterCreateRevisionFromEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(page);\n }\n}\n\nexport const CreatePageRevisionFromUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreatePageRevisionFromUseCaseImpl,\n dependencies: [\n WbPermissions,\n EventPublisher,\n GetPageByIdUseCase,\n CreatePageRevisionFromRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SACIC,6BAA6B,IAAIC,kBAAkB,EACnDC,gCAAgC;AAEpC,SAASC,iCAAiC,EAAEC,gCAAgC;AAC5E,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,iCAAiC,CAAyC;EAC5EC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAsD,EAChE;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAsD,GAAtDA,UAAsD;EAC/D;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMY,SAAS,GAAG,MAAM,IAAI,CAACP,WAAW,CAACE,OAAO,CAACC,MAAM,CAACK,EAAE,CAAC;IAC3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;;IAEA;IACA,MAAMG,WAAW,GAAG,IAAInB,iCAAiC,CAAC;MACtDY;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACY,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIS,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,MAAMC,IAAI,GAAGD,MAAM,CAACE,KAAK;;IAEzB;IACA,MAAMC,UAAU,GAAG,IAAIvB,gCAAgC,CAAC;MACpDqB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACd,cAAc,CAACY,OAAO,CAACI,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMzB,6BAA6B,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACjFC,cAAc,EAAEtB,iCAAiC;EACjDuB,YAAY,EAAE,CACVzB,aAAa,EACbP,cAAc,EACdM,kBAAkB,EAClBH,gCAAgC;AAExC,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, PageValidationError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
6
6
  export interface ICreateWbPageRevisionFromParams {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler"],"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 PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\n/** Create a page revision from an existing one. */\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\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 PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a revision is created from existing. */\nexport const PageBeforeCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromEventHandler\");\n\nexport namespace PageBeforeCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a revision is created from existing. */\nexport const PageAfterCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromEventHandler\");\n\nexport namespace PageAfterCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,wCAAwC,GAAGH,iBAAiB,CAEvE,6CAA6C,CAAC;AAQhD;AACA,OAAO,MAAMI,uCAAuC,GAAGJ,iBAAiB,CAEtE,4CAA4C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","CreatePageRevisionFromRepository","CreatePageRevisionFromUseCase","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler"],"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 PageValidationError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface ICreateWbPageRevisionFromParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromRepository {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface ICreatePageRevisionFromRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n ICreatePageRevisionFromRepositoryErrors[keyof ICreatePageRevisionFromRepositoryErrors];\n\nexport const CreatePageRevisionFromRepository =\n createAbstraction<ICreatePageRevisionFromRepository>(\"Wb/CreatePageRevisionFromRepository\");\n\nexport namespace CreatePageRevisionFromRepository {\n export type Interface = ICreatePageRevisionFromRepository;\n export type Params = ICreateWbPageRevisionFromParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface ICreatePageRevisionFromUseCase {\n execute(params: ICreateWbPageRevisionFromParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface ICreatePageRevisionFromUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError =\n ICreatePageRevisionFromUseCaseErrors[keyof ICreatePageRevisionFromUseCaseErrors];\n\n/** Create a page revision from an existing one. */\nexport const CreatePageRevisionFromUseCase = createAbstraction<ICreatePageRevisionFromUseCase>(\n \"Wb/CreatePageRevisionFromUseCase\"\n);\n\nexport namespace CreatePageRevisionFromUseCase {\n export type Interface = ICreatePageRevisionFromUseCase;\n export type Params = ICreateWbPageRevisionFromParams;\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 PageBeforeCreateRevisionFromPayload {\n params: ICreateWbPageRevisionFromParams;\n}\n\nexport interface PageAfterCreateRevisionFromPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a revision is created from existing. */\nexport const PageBeforeCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>\n>(\"Wb/PageBeforeCreateRevisionFromEventHandler\");\n\nexport namespace PageBeforeCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageBeforeCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a revision is created from existing. */\nexport const PageAfterCreateRevisionFromEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>\n>(\"Wb/PageAfterCreateRevisionFromEventHandler\");\n\nexport namespace PageAfterCreateRevisionFromEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>;\n export type Event = DomainEvent<PageAfterCreateRevisionFromPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAeA,OAAO,MAAMC,gCAAgC,GACzCD,iBAAiB,CAAoC,qCAAqC,CAAC;;AAS/F;AACA;AACA;;AAgBA;AACA,OAAO,MAAME,6BAA6B,GAAGF,iBAAiB,CAC1D,kCACJ,CAAC;;AAUD;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,wCAAwC,GAAGH,iBAAiB,CAEvE,6CAA6C,CAAC;AAQhD;AACA,OAAO,MAAMI,uCAAuC,GAAGJ,iBAAiB,CAEtE,4CAA4C,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 { PageBeforeCreateRevisionFromPayload, PageAfterCreateRevisionFromPayload } from "./abstractions.js";
3
3
  export declare class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {
4
4
  eventType: "page.beforeCreateRevisionFrom";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeCreateRevisionFromPayload>>>;
6
6
  }
7
7
  export declare class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {
8
8
  eventType: "page.afterCreateRevisionFrom";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterCreateRevisionFromPayload>>>;
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 { PageBeforeCreateRevisionFromEventHandler, PageAfterCreateRevisionFromEventHandler } from "./abstractions.js";
3
3
  // PageBeforeCreateRevisionFrom Event
4
4
  export class PageBeforeCreateRevisionFromEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEvent","eventType","getHandlerAbstraction","PageAfterCreateRevisionFromEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n PageBeforeCreateRevisionFromEventHandler,\n PageAfterCreateRevisionFromEventHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeCreateRevisionFromPayload,\n PageAfterCreateRevisionFromPayload\n} from \"./abstractions.js\";\n\n// PageBeforeCreateRevisionFrom Event\nexport class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {\n eventType = \"page.beforeCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateRevisionFromEventHandler;\n }\n}\n\n// PageAfterCreateRevisionFrom Event\nexport class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {\n eventType = \"page.afterCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateRevisionFromEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SACIC,wCAAwC,EACxCC,uCAAuC;AAO3C;AACA,OAAO,MAAMC,iCAAiC,SAASH,WAAW,CAAsC;EACpGI,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,wCAAwC;EACnD;AACJ;;AAEA;AACA,OAAO,MAAMK,gCAAgC,SAASN,WAAW,CAAqC;EAClGI,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uCAAuC;EAClD;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeCreateRevisionFromEventHandler","PageAfterCreateRevisionFromEventHandler","PageBeforeCreateRevisionFromEvent","eventType","getHandlerAbstraction","PageAfterCreateRevisionFromEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n PageBeforeCreateRevisionFromEventHandler,\n PageAfterCreateRevisionFromEventHandler\n} from \"./abstractions.js\";\nimport type {\n PageBeforeCreateRevisionFromPayload,\n PageAfterCreateRevisionFromPayload\n} from \"./abstractions.js\";\n\n// PageBeforeCreateRevisionFrom Event\nexport class PageBeforeCreateRevisionFromEvent extends DomainEvent<PageBeforeCreateRevisionFromPayload> {\n eventType = \"page.beforeCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeCreateRevisionFromEventHandler;\n }\n}\n\n// PageAfterCreateRevisionFrom Event\nexport class PageAfterCreateRevisionFromEvent extends DomainEvent<PageAfterCreateRevisionFromPayload> {\n eventType = \"page.afterCreateRevisionFrom\" as const;\n\n getHandlerAbstraction() {\n return PageAfterCreateRevisionFromEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SACIC,wCAAwC,EACxCC,uCAAuC;AAO3C;AACA,OAAO,MAAMC,iCAAiC,SAASH,WAAW,CAAsC;EACpGI,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,wCAAwC;EACnD;AACJ;;AAEA;AACA,OAAO,MAAMK,gCAAgC,SAASN,WAAW,CAAqC;EAClGI,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uCAAuC;EAClD;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 { DeletePageRepository, DeletePageUseCase 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 DeletePageUseCaseImpl 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 { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from "./abstractions.js";
4
4
  import { PageAfterDeleteEvent, PageBeforeDeleteEvent } 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 DeletePageUseCaseImpl {
@@ -46,7 +46,7 @@ class DeletePageUseCaseImpl {
46
46
  }
47
47
  export const DeletePageUseCase = UseCaseAbstraction.createImplementation({
48
48
  implementation: DeletePageUseCaseImpl,
49
- dependencies: [WbPermissions.Abstraction, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]
49
+ dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]
50
50
  });
51
51
 
52
52
  //# sourceMappingURL=DeletePageUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","DeletePageRepository","DeletePageUseCase","UseCaseAbstraction","PageAfterDeleteEvent","PageBeforeDeleteEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","DeletePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["DeletePageUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterDeleteEvent, PageBeforeDeleteEvent } 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 DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n 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 PageBeforeDeleteEvent({\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 PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetDeletedPageByIdUseCase,\n DeletePageRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,oBAAoB,EAAEC,iBAAiB,IAAIC,kBAAkB;AACtE,SAASC,oBAAoB,EAAEC,qBAAqB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA0C,EACpD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;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,qBAAqB,CAAC;MAC1CiB;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,oBAAoB,CAAC;MACxCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM3B,iBAAiB,GAAGC,kBAAkB,CAAC2B,oBAAoB,CAAC;EACrEC,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CACV1B,aAAa,CAAC2B,WAAW,EACzBjC,cAAc,EACdQ,yBAAyB,EACzBP,oBAAoB;AAE5B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","DeletePageRepository","DeletePageUseCase","UseCaseAbstraction","PageAfterDeleteEvent","PageBeforeDeleteEvent","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCase","DeletePageUseCaseImpl","constructor","permissions","eventPublisher","getDeletedPageById","repository","execute","params","getResult","id","isFail","fail","error","page","value","canDelete","beforeEvent","publish","result","afterEvent","ok","createImplementation","implementation","dependencies"],"sources":["DeletePageUseCase.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 { DeletePageRepository, DeletePageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PageAfterDeleteEvent, PageBeforeDeleteEvent } 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 DeletePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getDeletedPageById: GetDeletedPageByIdUseCase.Interface,\n private repository: DeletePageRepository.Interface\n ) {}\n\n 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 PageBeforeDeleteEvent({\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 PageAfterDeleteEvent({\n page\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok();\n }\n}\n\nexport const DeletePageUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeletePageUseCaseImpl,\n dependencies: [WbPermissions, EventPublisher, GetDeletedPageByIdUseCase, DeletePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,mDAAmD;AAC1D,SAASC,oBAAoB,EAAEC,iBAAiB,IAAIC,kBAAkB;AACtE,SAASC,oBAAoB,EAAEC,qBAAqB;AACpD,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,kBAAuD,EACvDC,UAA0C,EACpD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;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,qBAAqB,CAAC;MAC1CiB;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,oBAAoB,CAAC;MACxCkB;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACV,cAAc,CAACc,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO7B,MAAM,CAAC8B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM3B,iBAAiB,GAAGC,kBAAkB,CAAC2B,oBAAoB,CAAC;EACrEC,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CAAC1B,aAAa,EAAEN,cAAc,EAAEQ,yBAAyB,EAAEP,oBAAoB;AACjG,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, PagePersistenceError, PageNotAuthorizedError, PageNotFoundTrashedError } from "../../../domain/page/errors.js";
6
6
  export interface IDeleteWbPageParams {
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DeletePageRepository","DeletePageUseCase","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler"],"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 PagePersistenceError,\n PageNotAuthorizedError,\n PageNotFoundTrashedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDeleteWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDeletePageRepository {\n execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeletePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];\n\nexport const DeletePageRepository =\n createAbstraction<IDeletePageRepository>(\"Wb/DeletePageRepository\");\n\nexport namespace DeletePageRepository {\n export type Interface = IDeletePageRepository;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDeletePageUseCase {\n execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeletePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];\n\n/** Delete a page. */\nexport const DeletePageUseCase = createAbstraction<IDeletePageUseCase>(\"Wb/DeletePageUseCase\");\n\nexport namespace DeletePageUseCase {\n export type Interface = IDeletePageUseCase;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDeletePayload {\n page: WbPage;\n}\n\nexport interface PageAfterDeletePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is deleted. */\nexport const PageBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDeletePayload>>\n>(\"Wb/PageBeforeDeleteEventHandler\");\n\nexport namespace PageBeforeDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;\n export type Event = DomainEvent<PageBeforeDeletePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is deleted. */\nexport const PageAfterDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDeletePayload>>\n>(\"Wb/PageAfterDeleteEventHandler\");\n\nexport namespace PageAfterDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;\n export type Event = DomainEvent<PageAfterDeletePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAeA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAS9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DeletePageRepository","DeletePageUseCase","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler"],"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 PagePersistenceError,\n PageNotAuthorizedError,\n PageNotFoundTrashedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDeleteWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDeletePageRepository {\n execute(params: IDeleteWbPageParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeletePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDeletePageRepositoryErrors[keyof IDeletePageRepositoryErrors];\n\nexport const DeletePageRepository =\n createAbstraction<IDeletePageRepository>(\"Wb/DeletePageRepository\");\n\nexport namespace DeletePageRepository {\n export type Interface = IDeletePageRepository;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDeletePageUseCase {\n execute(params: IDeleteWbPageParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeletePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDeletePageUseCaseErrors[keyof IDeletePageUseCaseErrors];\n\n/** Delete a page. */\nexport const DeletePageUseCase = createAbstraction<IDeletePageUseCase>(\"Wb/DeletePageUseCase\");\n\nexport namespace DeletePageUseCase {\n export type Interface = IDeletePageUseCase;\n export type Params = IDeleteWbPageParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDeletePayload {\n page: WbPage;\n}\n\nexport interface PageAfterDeletePayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is deleted. */\nexport const PageBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDeletePayload>>\n>(\"Wb/PageBeforeDeleteEventHandler\");\n\nexport namespace PageBeforeDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDeletePayload>>;\n export type Event = DomainEvent<PageBeforeDeletePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is deleted. */\nexport const PageAfterDeleteEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDeletePayload>>\n>(\"Wb/PageAfterDeleteEventHandler\");\n\nexport namespace PageAfterDeleteEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDeletePayload>>;\n export type Event = DomainEvent<PageAfterDeletePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,yBAAyB,CAAC;;AASvE;AACA;AACA;;AAeA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,sBAAsB,CAAC;;AAS9F;AACA;AACA;;AAUA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,4BAA4B,GAAGH,iBAAiB,CAE3D,iCAAiC,CAAC;AAQpC;AACA,OAAO,MAAMI,2BAA2B,GAAGJ,iBAAiB,CAE1D,gCAAgC,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 { PageBeforeDeletePayload, PageAfterDeletePayload } from "./abstractions.js";
3
3
  export declare class PageBeforeDeleteEvent extends DomainEvent<PageBeforeDeletePayload> {
4
4
  eventType: "page.beforeDelete";
5
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeDeletePayload>>>;
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageBeforeDeletePayload>>>;
6
6
  }
7
7
  export declare class PageAfterDeleteEvent extends DomainEvent<PageAfterDeletePayload> {
8
8
  eventType: "page.afterDelete";
9
- getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterDeletePayload>>>;
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<PageAfterDeletePayload>>>;
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 { PageBeforeDeleteEventHandler, PageAfterDeleteEventHandler } from "./abstractions.js";
3
3
  // PageBeforeDelete Event
4
4
  export class PageBeforeDeleteEvent extends DomainEvent {
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler","PageBeforeDeleteEvent","eventType","getHandlerAbstraction","PageAfterDeleteEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeDeleteEventHandler, PageAfterDeleteEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeDeletePayload, PageAfterDeletePayload } from \"./abstractions.js\";\n\n// PageBeforeDelete Event\nexport class PageBeforeDeleteEvent extends DomainEvent<PageBeforeDeletePayload> {\n eventType = \"page.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeDeleteEventHandler;\n }\n}\n\n// PageAfterDelete Event\nexport class PageAfterDeleteEvent extends DomainEvent<PageAfterDeletePayload> {\n eventType = \"page.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return PageAfterDeleteEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,4BAA4B,EAAEC,2BAA2B;AAGlE;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","PageBeforeDeleteEventHandler","PageAfterDeleteEventHandler","PageBeforeDeleteEvent","eventType","getHandlerAbstraction","PageAfterDeleteEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PageBeforeDeleteEventHandler, PageAfterDeleteEventHandler } from \"./abstractions.js\";\nimport type { PageBeforeDeletePayload, PageAfterDeletePayload } from \"./abstractions.js\";\n\n// PageBeforeDelete Event\nexport class PageBeforeDeleteEvent extends DomainEvent<PageBeforeDeletePayload> {\n eventType = \"page.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeDeleteEventHandler;\n }\n}\n\n// PageAfterDelete Event\nexport class PageAfterDeleteEvent extends DomainEvent<PageAfterDeletePayload> {\n eventType = \"page.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return PageAfterDeleteEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,4BAA4B,EAAEC,2BAA2B;AAGlE;AACA,OAAO,MAAMC,qBAAqB,SAASH,WAAW,CAA0B;EAC5EI,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMK,oBAAoB,SAASN,WAAW,CAAyB;EAC1EI,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}