@webiny/api-website-builder 0.0.0-unstable.ac6ebf63c6 → 0.0.0-unstable.c27f4d8a31

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 (208) hide show
  1. package/domain/page/EntryToPageMapper.js +2 -1
  2. package/domain/page/EntryToPageMapper.js.map +1 -1
  3. package/domain/page/abstractions.d.ts +3 -2
  4. package/domain/page/abstractions.js.map +1 -1
  5. package/domain/permissions.d.ts +125 -0
  6. package/domain/permissions.js +33 -0
  7. package/domain/permissions.js.map +1 -0
  8. package/exports/api/website-builder/page.d.ts +8 -8
  9. package/exports/api/website-builder/page.js +8 -8
  10. package/exports/api/website-builder/page.js.map +1 -1
  11. package/exports/api/website-builder/redirect.d.ts +4 -4
  12. package/exports/api/website-builder/redirect.js +4 -4
  13. package/exports/api/website-builder/redirect.js.map +1 -1
  14. package/features/installer/ApiKeyInstaller.js +4 -1
  15. package/features/installer/ApiKeyInstaller.js.map +1 -1
  16. package/features/pages/CreatePage/CreatePageUseCase.d.ts +3 -1
  17. package/features/pages/CreatePage/CreatePageUseCase.js +10 -2
  18. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  19. package/features/pages/CreatePage/abstractions.d.ts +6 -5
  20. package/features/pages/CreatePage/abstractions.js +2 -2
  21. package/features/pages/CreatePage/abstractions.js.map +1 -1
  22. package/features/pages/CreatePage/events.js +3 -3
  23. package/features/pages/CreatePage/events.js.map +1 -1
  24. package/features/pages/CreatePage/index.d.ts +1 -1
  25. package/features/pages/CreatePage/index.js +1 -1
  26. package/features/pages/CreatePage/index.js.map +1 -1
  27. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +5 -1
  28. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +18 -2
  29. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  30. package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +6 -5
  31. package/features/pages/CreatePageRevisionFrom/abstractions.js +2 -2
  32. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  33. package/features/pages/CreatePageRevisionFrom/events.js +3 -3
  34. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  35. package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -1
  36. package/features/pages/CreatePageRevisionFrom/index.js +1 -1
  37. package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
  38. package/features/pages/DeletePage/DeletePageUseCase.d.ts +3 -1
  39. package/features/pages/DeletePage/DeletePageUseCase.js +10 -3
  40. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  41. package/features/pages/DeletePage/abstractions.d.ts +6 -5
  42. package/features/pages/DeletePage/abstractions.js +2 -2
  43. package/features/pages/DeletePage/abstractions.js.map +1 -1
  44. package/features/pages/DeletePage/events.js +3 -3
  45. package/features/pages/DeletePage/events.js.map +1 -1
  46. package/features/pages/DeletePage/index.d.ts +1 -1
  47. package/features/pages/DeletePage/index.js +1 -1
  48. package/features/pages/DeletePage/index.js.map +1 -1
  49. package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +3 -1
  50. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +10 -2
  51. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  52. package/features/pages/DuplicatePage/abstractions.d.ts +6 -5
  53. package/features/pages/DuplicatePage/abstractions.js +2 -2
  54. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  55. package/features/pages/DuplicatePage/events.js +3 -3
  56. package/features/pages/DuplicatePage/events.js.map +1 -1
  57. package/features/pages/DuplicatePage/index.d.ts +1 -1
  58. package/features/pages/DuplicatePage/index.js +1 -1
  59. package/features/pages/DuplicatePage/index.js.map +1 -1
  60. package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
  61. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
  62. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  63. package/features/pages/GetPageById/abstractions.d.ts +2 -1
  64. package/features/pages/GetPageById/abstractions.js.map +1 -1
  65. package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
  66. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
  67. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  68. package/features/pages/GetPageByPath/abstractions.d.ts +2 -1
  69. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  70. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
  71. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
  72. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  73. package/features/pages/GetPageRevisions/abstractions.d.ts +2 -1
  74. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  75. package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
  76. package/features/pages/ListPages/ListPagesRepository.js +14 -4
  77. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  78. package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
  79. package/features/pages/ListPages/ListPagesUseCase.js +24 -4
  80. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  81. package/features/pages/ListPages/abstractions.d.ts +2 -1
  82. package/features/pages/ListPages/abstractions.js.map +1 -1
  83. package/features/pages/MovePage/MovePageUseCase.d.ts +3 -1
  84. package/features/pages/MovePage/MovePageUseCase.js +14 -2
  85. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  86. package/features/pages/MovePage/abstractions.d.ts +6 -5
  87. package/features/pages/MovePage/abstractions.js +2 -2
  88. package/features/pages/MovePage/abstractions.js.map +1 -1
  89. package/features/pages/MovePage/events.js +3 -3
  90. package/features/pages/MovePage/events.js.map +1 -1
  91. package/features/pages/MovePage/index.d.ts +1 -1
  92. package/features/pages/MovePage/index.js +1 -1
  93. package/features/pages/MovePage/index.js.map +1 -1
  94. package/features/pages/PublishPage/PublishPageUseCase.d.ts +3 -1
  95. package/features/pages/PublishPage/PublishPageUseCase.js +14 -2
  96. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  97. package/features/pages/PublishPage/abstractions.d.ts +6 -5
  98. package/features/pages/PublishPage/abstractions.js +2 -2
  99. package/features/pages/PublishPage/abstractions.js.map +1 -1
  100. package/features/pages/PublishPage/events.js +3 -3
  101. package/features/pages/PublishPage/events.js.map +1 -1
  102. package/features/pages/PublishPage/index.d.ts +1 -1
  103. package/features/pages/PublishPage/index.js +1 -1
  104. package/features/pages/PublishPage/index.js.map +1 -1
  105. package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +3 -1
  106. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +14 -2
  107. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  108. package/features/pages/UnpublishPage/abstractions.d.ts +6 -5
  109. package/features/pages/UnpublishPage/abstractions.js +2 -2
  110. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  111. package/features/pages/UnpublishPage/events.js +3 -3
  112. package/features/pages/UnpublishPage/events.js.map +1 -1
  113. package/features/pages/UnpublishPage/index.d.ts +1 -1
  114. package/features/pages/UnpublishPage/index.js +1 -1
  115. package/features/pages/UnpublishPage/index.js.map +1 -1
  116. package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +3 -1
  117. package/features/pages/UpdatePage/UpdatePageUseCase.js +14 -2
  118. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  119. package/features/pages/UpdatePage/abstractions.d.ts +9 -9
  120. package/features/pages/UpdatePage/abstractions.js +2 -2
  121. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  122. package/features/pages/UpdatePage/events.js +3 -3
  123. package/features/pages/UpdatePage/events.js.map +1 -1
  124. package/features/pages/UpdatePage/index.d.ts +1 -1
  125. package/features/pages/UpdatePage/index.js +1 -1
  126. package/features/pages/UpdatePage/index.js.map +1 -1
  127. package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +3 -1
  128. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +10 -2
  129. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  130. package/features/redirects/CreateRedirect/abstractions.d.ts +6 -5
  131. package/features/redirects/CreateRedirect/abstractions.js +2 -2
  132. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  133. package/features/redirects/CreateRedirect/events.js +3 -3
  134. package/features/redirects/CreateRedirect/events.js.map +1 -1
  135. package/features/redirects/CreateRedirect/index.d.ts +1 -1
  136. package/features/redirects/CreateRedirect/index.js +1 -1
  137. package/features/redirects/CreateRedirect/index.js.map +1 -1
  138. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +3 -1
  139. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +10 -3
  140. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  141. package/features/redirects/DeleteRedirect/abstractions.d.ts +6 -5
  142. package/features/redirects/DeleteRedirect/abstractions.js +2 -2
  143. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  144. package/features/redirects/DeleteRedirect/events.js +3 -3
  145. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  146. package/features/redirects/DeleteRedirect/index.d.ts +1 -1
  147. package/features/redirects/DeleteRedirect/index.js +1 -1
  148. package/features/redirects/DeleteRedirect/index.js.map +1 -1
  149. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
  150. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
  151. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  152. package/features/redirects/GetActiveRedirects/abstractions.d.ts +2 -1
  153. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  154. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
  155. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
  156. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  157. package/features/redirects/GetRedirectById/abstractions.d.ts +2 -1
  158. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  159. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +3 -3
  160. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +2 -2
  161. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
  162. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +3 -3
  163. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +2 -2
  164. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
  165. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +3 -3
  166. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +2 -2
  167. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
  168. package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
  169. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
  170. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  171. package/features/redirects/ListRedirects/abstractions.d.ts +3 -1
  172. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  173. package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +3 -1
  174. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +14 -2
  175. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  176. package/features/redirects/MoveRedirect/abstractions.d.ts +6 -5
  177. package/features/redirects/MoveRedirect/abstractions.js +2 -2
  178. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  179. package/features/redirects/MoveRedirect/events.js +3 -3
  180. package/features/redirects/MoveRedirect/events.js.map +1 -1
  181. package/features/redirects/MoveRedirect/index.d.ts +1 -1
  182. package/features/redirects/MoveRedirect/index.js +1 -1
  183. package/features/redirects/MoveRedirect/index.js.map +1 -1
  184. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +3 -1
  185. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +14 -2
  186. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  187. package/features/redirects/UpdateRedirect/abstractions.d.ts +6 -5
  188. package/features/redirects/UpdateRedirect/abstractions.js +2 -2
  189. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  190. package/features/redirects/UpdateRedirect/events.js +3 -3
  191. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  192. package/features/redirects/UpdateRedirect/index.d.ts +1 -1
  193. package/features/redirects/UpdateRedirect/index.js +1 -1
  194. package/features/redirects/UpdateRedirect/index.js.map +1 -1
  195. package/features/tenantManager/TenantModelExtension.js +5 -5
  196. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  197. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  198. package/graphql/pages/pages.typeDefs.js +6 -0
  199. package/graphql/pages/pages.typeDefs.js.map +1 -1
  200. package/index.js +4 -4
  201. package/index.js.map +1 -1
  202. package/package.json +19 -20
  203. package/features/pages/PagePermissions/feature.d.ts +0 -1
  204. package/features/pages/PagePermissions/feature.js +0 -53
  205. package/features/pages/PagePermissions/feature.js.map +0 -1
  206. package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
  207. package/features/redirects/RedirectPermissions/feature.js +0 -45
  208. package/features/redirects/RedirectPermissions/feature.js.map +0 -1
@@ -1,11 +1,13 @@
1
1
  import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
2
2
  import { UpdateRedirectUseCase as UseCaseAbstraction, UpdateRedirectRepository } from "./abstractions.js";
3
3
  import { GetRedirectByIdUseCase } from "../../../features/redirects/GetRedirectById/index.js";
4
+ import { WbPermissions } from "../../../domain/permissions.js";
4
5
  declare class UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
5
7
  private eventPublisher;
6
8
  private getRedirectById;
7
9
  private repository;
8
- constructor(eventPublisher: EventPublisherAbstraction.Interface, getRedirectById: GetRedirectByIdUseCase.Interface, repository: UpdateRedirectRepository.Interface);
10
+ constructor(permissions: WbPermissions.Interface, eventPublisher: EventPublisherAbstraction.Interface, getRedirectById: GetRedirectByIdUseCase.Interface, repository: UpdateRedirectRepository.Interface);
9
11
  execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return;
10
12
  }
11
13
  export declare const UpdateRedirectUseCase: typeof UpdateRedirectUseCaseImpl & {
@@ -3,19 +3,31 @@ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
3
3
  import { UpdateRedirectUseCase as UseCaseAbstraction, UpdateRedirectRepository } from "./abstractions.js";
4
4
  import { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from "./events.js";
5
5
  import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
6
+ import { WbPermissions } from "../../../domain/permissions.js";
7
+ import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
6
8
  class UpdateRedirectUseCaseImpl {
7
- constructor(eventPublisher, getRedirectById, repository) {
9
+ constructor(permissions, eventPublisher, getRedirectById, repository) {
10
+ this.permissions = permissions;
8
11
  this.eventPublisher = eventPublisher;
9
12
  this.getRedirectById = getRedirectById;
10
13
  this.repository = repository;
11
14
  }
12
15
  async execute(id, data) {
16
+ const hasPermission = await this.permissions.canEdit("redirect");
17
+ if (!hasPermission) {
18
+ return Result.fail(new RedirectNotAuthorizedError());
19
+ }
20
+
13
21
  // Get the original redirect for events
14
22
  const getResult = await this.getRedirectById.execute(id);
15
23
  if (getResult.isFail()) {
16
24
  return getResult;
17
25
  }
18
26
  const original = getResult.value;
27
+ const canEdit = await this.permissions.canEdit("redirect", original);
28
+ if (!canEdit) {
29
+ return Result.fail(new RedirectNotAuthorizedError());
30
+ }
19
31
 
20
32
  // Publish before update event
21
33
  const beforeEvent = new RedirectBeforeUpdateEvent({
@@ -48,7 +60,7 @@ class UpdateRedirectUseCaseImpl {
48
60
  }
49
61
  export const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({
50
62
  implementation: UpdateRedirectUseCaseImpl,
51
- dependencies: [EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
63
+ dependencies: [WbPermissions.Abstraction, EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]
52
64
  });
53
65
 
54
66
  //# sourceMappingURL=UpdateRedirectUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","UpdateRedirectUseCaseImpl","constructor","eventPublisher","getRedirectById","repository","execute","id","data","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies"],"sources":["UpdateRedirectUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [EventPublisher, GetRedirectByIdUseCase, UpdateRedirectRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,sBAAsB;AAE/B,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA8C,EACxD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACL,eAAe,CAACE,OAAO,CAACC,EAAE,CAAC;IAExD,IAAIE,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;;IAEhC;IACA,MAAMC,WAAW,GAAG,IAAIf,yBAAyB,CAAC;MAC9Ca,QAAQ;MACRG,KAAK,EAAE;QAAEP,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACY,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIQ,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIlB,wBAAwB,CAAC;MAC5CY,QAAQ;MACRG,KAAK,EAAE;QAAEP,EAAE;QAAEC;MAAK,CAAC;MACnBU,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACT,cAAc,CAACY,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOxB,MAAM,CAAC0B,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMjB,qBAAqB,GAAGC,kBAAkB,CAACwB,oBAAoB,CAAC;EACzEC,cAAc,EAAEpB,yBAAyB;EACzCqB,YAAY,EAAE,CAAC5B,cAAc,EAAEM,sBAAsB,EAAEH,wBAAwB;AACnF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","EventPublisher","UpdateRedirectUseCase","UseCaseAbstraction","UpdateRedirectRepository","RedirectBeforeUpdateEvent","RedirectAfterUpdateEvent","GetRedirectByIdUseCase","WbPermissions","RedirectNotAuthorizedError","UpdateRedirectUseCaseImpl","constructor","permissions","eventPublisher","getRedirectById","repository","execute","id","data","hasPermission","canEdit","fail","getResult","isFail","original","value","beforeEvent","input","publish","result","afterEvent","redirect","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["UpdateRedirectUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport {\n UpdateRedirectUseCase as UseCaseAbstraction,\n UpdateRedirectRepository\n} from \"./abstractions.js\";\nimport { RedirectBeforeUpdateEvent, RedirectAfterUpdateEvent } from \"./events.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\n\nclass UpdateRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getRedirectById: GetRedirectByIdUseCase.Interface,\n private repository: UpdateRedirectRepository.Interface\n ) {}\n\n async execute(id: string, data: UseCaseAbstraction.UpdateData): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canEdit(\"redirect\");\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Get the original redirect for events\n const getResult = await this.getRedirectById.execute(id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n const canEdit = await this.permissions.canEdit(\"redirect\", original);\n if (!canEdit) {\n return Result.fail(new RedirectNotAuthorizedError());\n }\n\n // Publish before update event\n const beforeEvent = new RedirectBeforeUpdateEvent({\n original,\n input: { id, data }\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the update operation\n const result = await this.repository.execute(id, data);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after update event\n const afterEvent = new RedirectAfterUpdateEvent({\n original,\n input: { id, data },\n redirect: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateRedirectUseCaseImpl,\n dependencies: [\n WbPermissions.Abstraction,\n EventPublisher,\n GetRedirectByIdUseCase,\n UpdateRedirectRepository\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,cAAc,QAEX,0CAA0C;AACjD,SACIC,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAE5B,SAASC,yBAAyB,EAAEC,wBAAwB;AAC5D,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AACtB,SAASC,0BAA0B;AAEnC,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CACCC,WAAoC,EACpCC,cAAmD,EACnDC,eAAiD,EACjDC,UAA8C,EACxD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAEC,IAAmC,EAA6B;IACtF,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACP,WAAW,CAACQ,OAAO,CAAC,UAAU,CAAC;IAChE,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMa,SAAS,GAAG,MAAM,IAAI,CAACR,eAAe,CAACE,OAAO,CAACC,EAAE,CAAC;IAExD,IAAIK,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOD,SAAS;IACpB;IAEA,MAAME,QAAQ,GAAGF,SAAS,CAACG,KAAK;IAEhC,MAAML,OAAO,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,OAAO,CAAC,UAAU,EAAEI,QAAQ,CAAC;IACpE,IAAI,CAACJ,OAAO,EAAE;MACV,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,CAAC,CAAC;IACxD;;IAEA;IACA,MAAMiB,WAAW,GAAG,IAAIrB,yBAAyB,CAAC;MAC9CmB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACL,cAAc,CAACe,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,IAAI,CAAC;IAEtD,IAAIW,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIxB,wBAAwB,CAAC;MAC5CkB,QAAQ;MACRG,KAAK,EAAE;QAAEV,EAAE;QAAEC;MAAK,CAAC;MACnBa,QAAQ,EAAEF,MAAM,CAACJ;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACZ,cAAc,CAACe,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAO9B,MAAM,CAACgC,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMvB,qBAAqB,GAAGC,kBAAkB,CAAC8B,oBAAoB,CAAC;EACzEC,cAAc,EAAExB,yBAAyB;EACzCyB,YAAY,EAAE,CACV3B,aAAa,CAAC4B,WAAW,EACzBnC,cAAc,EACdM,sBAAsB,EACtBH,wBAAwB;AAEhC,CAAC,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@ import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
3
  import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
4
4
  import type { WbRedirect } from "../../../domain/redirect/abstractions.js";
5
5
  import type { WbLocation } from "../../../domain/shared/abstractions.js";
6
- import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError } from "../../../domain/redirect/errors.js";
6
+ import { RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError, RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
7
7
  export interface IUpdateWbRedirectData {
8
8
  location?: WbLocation;
9
9
  redirectFrom?: string;
@@ -32,6 +32,7 @@ export interface IUpdateRedirectUseCase {
32
32
  execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;
33
33
  }
34
34
  export interface IUpdateRedirectUseCaseErrors {
35
+ notAuthorized: RedirectNotAuthorizedError;
35
36
  notFound: RedirectNotFoundError;
36
37
  validation: RedirectValidationError;
37
38
  persistence: RedirectPersistenceError;
@@ -60,14 +61,14 @@ export interface RedirectAfterUpdatePayload {
60
61
  };
61
62
  redirect: WbRedirect;
62
63
  }
63
- export declare const RedirectBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
64
- export declare namespace RedirectBeforeUpdateHandler {
64
+ export declare const RedirectBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>>;
65
+ export declare namespace RedirectBeforeUpdateEventHandler {
65
66
  type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;
66
67
  type Event = DomainEvent<RedirectBeforeUpdatePayload>;
67
68
  type Redirect = WbRedirect;
68
69
  }
69
- export declare const RedirectAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
70
- export declare namespace RedirectAfterUpdateHandler {
70
+ export declare const RedirectAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>>;
71
+ export declare namespace RedirectAfterUpdateEventHandler {
71
72
  type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;
72
73
  type Event = DomainEvent<RedirectAfterUpdatePayload>;
73
74
  type Redirect = WbRedirect;
@@ -24,7 +24,7 @@ export const UpdateRedirectUseCase = createAbstraction("Wb/UpdateRedirectUseCase
24
24
  // Event Handler Abstractions
25
25
  // ============================================================================
26
26
 
27
- export const RedirectBeforeUpdateHandler = createAbstraction("Wb/RedirectBeforeUpdateHandler");
28
- export const RedirectAfterUpdateHandler = createAbstraction("Wb/RedirectAfterUpdateHandler");
27
+ export const RedirectBeforeUpdateEventHandler = createAbstraction("Wb/RedirectBeforeUpdateEventHandler");
28
+ export const RedirectAfterUpdateEventHandler = createAbstraction("Wb/RedirectAfterUpdateEventHandler");
29
29
 
30
30
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const RedirectBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateHandler\");\n\nexport namespace RedirectBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\nexport const RedirectAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateHandler\");\n\nexport namespace RedirectAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAUA;AACA;AACA;;AAcA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAcA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAmBA;AACA;AACA;;AAEA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,gCAAgC,CAAC;AAQnC,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,+BAA+B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdateRedirectRepository","UpdateRedirectUseCase","RedirectBeforeUpdateEventHandler","RedirectAfterUpdateEventHandler"],"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 { WbRedirect } from \"~/domain/redirect/abstractions.js\";\nimport type { WbLocation } from \"~/domain/shared/abstractions.js\";\nimport {\n RedirectNotFoundError,\n RedirectPersistenceError,\n RedirectValidationError,\n RedirectNotAuthorizedError\n} from \"~/domain/redirect/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IUpdateWbRedirectData {\n location?: WbLocation;\n redirectFrom?: string;\n redirectTo?: string;\n redirectType?: string;\n isEnabled?: boolean;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectRepository {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, RepositoryError>>;\n}\n\nexport interface IUpdateRedirectRepositoryErrors {\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype RepositoryError = IUpdateRedirectRepositoryErrors[keyof IUpdateRedirectRepositoryErrors];\n\nexport const UpdateRedirectRepository = createAbstraction<IUpdateRedirectRepository>(\n \"Wb/UpdateRedirectRepository\"\n);\n\nexport namespace UpdateRedirectRepository {\n export type Interface = IUpdateRedirectRepository;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, RepositoryError>>;\n export type Error = RepositoryError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IUpdateRedirectUseCase {\n execute(id: string, data: IUpdateWbRedirectData): Promise<Result<WbRedirect, UseCaseError>>;\n}\n\nexport interface IUpdateRedirectUseCaseErrors {\n notAuthorized: RedirectNotAuthorizedError;\n notFound: RedirectNotFoundError;\n validation: RedirectValidationError;\n persistence: RedirectPersistenceError;\n}\n\ntype UseCaseError = IUpdateRedirectUseCaseErrors[keyof IUpdateRedirectUseCaseErrors];\n\nexport const UpdateRedirectUseCase = createAbstraction<IUpdateRedirectUseCase>(\n \"Wb/UpdateRedirectUseCase\"\n);\n\nexport namespace UpdateRedirectUseCase {\n export type Interface = IUpdateRedirectUseCase;\n export type UpdateData = IUpdateWbRedirectData;\n export type Return = Promise<Result<WbRedirect, UseCaseError>>;\n export type Error = UseCaseError;\n export type Redirect = WbRedirect;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface RedirectBeforeUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n}\n\nexport interface RedirectAfterUpdatePayload {\n original: WbRedirect;\n input: {\n id: string;\n data: IUpdateWbRedirectData;\n };\n redirect: WbRedirect;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const RedirectBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>\n>(\"Wb/RedirectBeforeUpdateEventHandler\");\n\nexport namespace RedirectBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectBeforeUpdatePayload>>;\n export type Event = DomainEvent<RedirectBeforeUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n\nexport const RedirectAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>\n>(\"Wb/RedirectAfterUpdateEventHandler\");\n\nexport namespace RedirectAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<RedirectAfterUpdatePayload>>;\n export type Event = DomainEvent<RedirectAfterUpdatePayload>;\n export type Redirect = WbRedirect;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAYpE;AACA;AACA;;AAUA;AACA;AACA;;AAcA,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,6BACJ,CAAC;;AAUD;AACA;AACA;;AAeA,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,0BACJ,CAAC;;AAUD;AACA;AACA;;AAmBA;AACA;AACA;;AAEA,OAAO,MAAMG,gCAAgC,GAAGH,iBAAiB,CAE/D,qCAAqC,CAAC;AAQxC,OAAO,MAAMI,+BAA+B,GAAGJ,iBAAiB,CAE9D,oCAAoC,CAAC","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import { RedirectBeforeUpdateHandler, RedirectAfterUpdateHandler } from "./abstractions.js";
2
+ import { RedirectBeforeUpdateEventHandler, RedirectAfterUpdateEventHandler } from "./abstractions.js";
3
3
  // RedirectBeforeUpdate Event
4
4
  export class RedirectBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "redirect.beforeUpdate";
6
6
  getHandlerAbstraction() {
7
- return RedirectBeforeUpdateHandler;
7
+ return RedirectBeforeUpdateEventHandler;
8
8
  }
9
9
  }
10
10
 
@@ -12,7 +12,7 @@ export class RedirectBeforeUpdateEvent extends DomainEvent {
12
12
  export class RedirectAfterUpdateEvent extends DomainEvent {
13
13
  eventType = "redirect.afterUpdate";
14
14
  getHandlerAbstraction() {
15
- return RedirectAfterUpdateHandler;
15
+ return RedirectAfterUpdateEventHandler;
16
16
  }
17
17
  }
18
18
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","RedirectBeforeUpdateHandler","RedirectAfterUpdateHandler","RedirectBeforeUpdateEvent","eventType","getHandlerAbstraction","RedirectAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { RedirectBeforeUpdateHandler, RedirectAfterUpdateHandler } from \"./abstractions.js\";\nimport type { RedirectBeforeUpdatePayload, RedirectAfterUpdatePayload } from \"./abstractions.js\";\n\n// RedirectBeforeUpdate Event\nexport class RedirectBeforeUpdateEvent extends DomainEvent<RedirectBeforeUpdatePayload> {\n eventType = \"redirect.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectBeforeUpdateHandler;\n }\n}\n\n// RedirectAfterUpdate Event\nexport class RedirectAfterUpdateEvent extends DomainEvent<RedirectAfterUpdatePayload> {\n eventType = \"redirect.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,2BAA2B,EAAEC,0BAA0B;AAGhE;AACA,OAAO,MAAMC,yBAAyB,SAASH,WAAW,CAA8B;EACpFI,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,2BAA2B;EACtC;AACJ;;AAEA;AACA,OAAO,MAAMK,wBAAwB,SAASN,WAAW,CAA6B;EAClFI,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,0BAA0B;EACrC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","RedirectBeforeUpdateEventHandler","RedirectAfterUpdateEventHandler","RedirectBeforeUpdateEvent","eventType","getHandlerAbstraction","RedirectAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n RedirectBeforeUpdateEventHandler,\n RedirectAfterUpdateEventHandler\n} from \"./abstractions.js\";\nimport type { RedirectBeforeUpdatePayload, RedirectAfterUpdatePayload } from \"./abstractions.js\";\n\n// RedirectBeforeUpdate Event\nexport class RedirectBeforeUpdateEvent extends DomainEvent<RedirectBeforeUpdatePayload> {\n eventType = \"redirect.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectBeforeUpdateEventHandler;\n }\n}\n\n// RedirectAfterUpdate Event\nexport class RedirectAfterUpdateEvent extends DomainEvent<RedirectAfterUpdatePayload> {\n eventType = \"redirect.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return RedirectAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SACIC,gCAAgC,EAChCC,+BAA+B;AAInC;AACA,OAAO,MAAMC,yBAAyB,SAASH,WAAW,CAA8B;EACpFI,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,gCAAgC;EAC3C;AACJ;;AAEA;AACA,OAAO,MAAMK,wBAAwB,SAASN,WAAW,CAA6B;EAClFI,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,+BAA+B;EAC1C;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- export { RedirectAfterUpdateHandler, RedirectBeforeUpdateHandler, UpdateRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler, UpdateRedirectUseCase } from "./abstractions.js";
@@ -1,3 +1,3 @@
1
- export { RedirectAfterUpdateHandler, RedirectBeforeUpdateHandler, UpdateRedirectUseCase } from "./abstractions.js";
1
+ export { RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler, UpdateRedirectUseCase } from "./abstractions.js";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RedirectAfterUpdateHandler","RedirectBeforeUpdateHandler","UpdateRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterUpdateHandler,\n RedirectBeforeUpdateHandler,\n UpdateRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,0BAA0B,EAC1BC,2BAA2B,EAC3BC,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["RedirectAfterUpdateEventHandler","RedirectBeforeUpdateEventHandler","UpdateRedirectUseCase"],"sources":["index.ts"],"sourcesContent":["export {\n RedirectAfterUpdateEventHandler,\n RedirectBeforeUpdateEventHandler,\n UpdateRedirectUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SACIA,+BAA+B,EAC/BC,gCAAgC,EAChCC,qBAAqB","ignoreList":[]}
@@ -2,17 +2,17 @@ import { TenantModelExtension as ModelExtension } from "@webiny/tenant-manager/a
2
2
  class TenantModelExtension {
3
3
  execute(extension) {
4
4
  extension.fields(fields => ({
5
- websiteTheme: fields.object().label("Website Theme").description("Configure a Website Builder theme for this tenant.").renderer("object-accordion", {
5
+ websiteTheme: fields.object().label("Website Theme").description("Configure a Website Builder theme for this tenant.").renderer("objectAccordionSingle", {
6
6
  open: false
7
7
  }).fields(fields => ({
8
- websiteTitle: fields.text().label("Website Title").description("Enter a website title").renderer("text-input"),
9
- primaryColor: fields.text().label("Primary Color").description("Enter a color code (e.g., #000000)").renderer("text-input").defaultValue(""),
10
- additionalColors: fields.text().list().label("Additional Colors").description("Enter a color code (e.g., #000000)").defaultValue([]).renderer("text-inputs", {
8
+ websiteTitle: fields.text().label("Website Title").description("Enter a website title").renderer("textInput"),
9
+ primaryColor: fields.text().label("Primary Color").description("Enter a color code (e.g., #000000)").renderer("textInput").defaultValue(""),
10
+ additionalColors: fields.text().list().label("Additional Colors").description("Enter a color code (e.g., #000000)").defaultValue([]).renderer("textInputs", {
11
11
  multiValue: {
12
12
  addValueButtonLabel: "Add Color"
13
13
  }
14
14
  }),
15
- font: fields.text().label("Font").description("Select a font").renderer("radio-buttons").predefinedValues([{
15
+ font: fields.text().label("Font").description("Select a font").renderer("radioButtons").predefinedValues([{
16
16
  value: "InterVariable, sans-serif",
17
17
  label: "Inter"
18
18
  }, {
@@ -1 +1 @@
1
- {"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","description","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .description(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"object-accordion\", { open: false })\n .fields(fields => ({\n websiteTitle: fields\n .text()\n .label(\"Website Title\")\n .description(\"Enter a website title\")\n .renderer(\"text-input\"),\n primaryColor: fields\n .text()\n .label(\"Primary Color\")\n .description(\"Enter a color code (e.g., #000000)\")\n .renderer(\"text-input\")\n .defaultValue(\"\"),\n additionalColors: fields\n .text()\n .list()\n .label(\"Additional Colors\")\n .description(\"Enter a color code (e.g., #000000)\")\n .defaultValue([])\n .renderer(\"text-inputs\", {\n multiValue: {\n addValueButtonLabel: \"Add Color\"\n }\n }),\n font: fields\n .text()\n .label(\"Font\")\n .description(\"Select a font\")\n .renderer(\"radio-buttons\")\n .predefinedValues([\n {\n value: \"InterVariable, sans-serif\",\n label: \"Inter\"\n },\n {\n value: \"Menlo, Consolas, Monaco, monospace\",\n label: \"Menlo\"\n },\n {\n value: \"Roboto, sans-serif\",\n label: \"Roboto\"\n }\n ])\n }))\n .layout([[\"websiteTitle\"], [\"primaryColor\"], [\"additionalColors\"], [\"font\"]])\n }))\n .layout(layout => {\n layout.addRow([\"websiteTheme\"]);\n });\n }\n}\n\nexport default ModelExtension.createImplementation({\n implementation: TenantModelExtension,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,cAAc,QAAQ,2DAA2D;AAElH,MAAMD,oBAAoB,CAAqC;EAC3DE,OAAOA,CAACC,SAAmC,EAAE;IACzCA,SAAS,CACJC,MAAM,CAACA,MAAM,KAAK;MACfC,YAAY,EAAED,MAAM,CACfE,MAAM,CAAC,CAAC,CACRC,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oDAAoD,CAAC,CACjEC,QAAQ,CAAC,kBAAkB,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC,CAC7CN,MAAM,CAACA,MAAM,KAAK;QACfO,YAAY,EAAEP,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,QAAQ,CAAC,YAAY,CAAC;QAC3BI,YAAY,EAAET,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,QAAQ,CAAC,YAAY,CAAC,CACtBK,YAAY,CAAC,EAAE,CAAC;QACrBC,gBAAgB,EAAEX,MAAM,CACnBQ,IAAI,CAAC,CAAC,CACNI,IAAI,CAAC,CAAC,CACNT,KAAK,CAAC,mBAAmB,CAAC,CAC1BC,WAAW,CAAC,oCAAoC,CAAC,CACjDM,YAAY,CAAC,EAAE,CAAC,CAChBL,QAAQ,CAAC,aAAa,EAAE;UACrBQ,UAAU,EAAE;YACRC,mBAAmB,EAAE;UACzB;QACJ,CAAC,CAAC;QACNC,IAAI,EAAEf,MAAM,CACPQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,MAAM,CAAC,CACbC,WAAW,CAAC,eAAe,CAAC,CAC5BC,QAAQ,CAAC,eAAe,CAAC,CACzBW,gBAAgB,CAAC,CACd;UACIC,KAAK,EAAE,2BAA2B;UAClCd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oCAAoC;UAC3Cd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oBAAoB;UAC3Bd,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFe,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,CACFA,MAAM,CAACA,MAAM,IAAI;MACdA,MAAM,CAACC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC;EACV;AACJ;AAEA,eAAetB,cAAc,CAACuB,oBAAoB,CAAC;EAC/CC,cAAc,EAAEzB,oBAAoB;EACpC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TenantModelExtension","ModelExtension","execute","extension","fields","websiteTheme","object","label","description","renderer","open","websiteTitle","text","primaryColor","defaultValue","additionalColors","list","multiValue","addValueButtonLabel","font","predefinedValues","value","layout","addRow","createImplementation","implementation","dependencies"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { TenantModelExtension as ModelExtension } from \"@webiny/tenant-manager/api/domain/TenantModelExtension.js\";\n\nclass TenantModelExtension implements ModelExtension.Interface {\n execute(extension: ModelExtension.Extension) {\n extension\n .fields(fields => ({\n websiteTheme: fields\n .object()\n .label(\"Website Theme\")\n .description(\"Configure a Website Builder theme for this tenant.\")\n .renderer(\"objectAccordionSingle\", { open: false })\n .fields(fields => ({\n websiteTitle: fields\n .text()\n .label(\"Website Title\")\n .description(\"Enter a website title\")\n .renderer(\"textInput\"),\n primaryColor: fields\n .text()\n .label(\"Primary Color\")\n .description(\"Enter a color code (e.g., #000000)\")\n .renderer(\"textInput\")\n .defaultValue(\"\"),\n additionalColors: fields\n .text()\n .list()\n .label(\"Additional Colors\")\n .description(\"Enter a color code (e.g., #000000)\")\n .defaultValue([])\n .renderer(\"textInputs\", {\n multiValue: {\n addValueButtonLabel: \"Add Color\"\n }\n }),\n font: fields\n .text()\n .label(\"Font\")\n .description(\"Select a font\")\n .renderer(\"radioButtons\")\n .predefinedValues([\n {\n value: \"InterVariable, sans-serif\",\n label: \"Inter\"\n },\n {\n value: \"Menlo, Consolas, Monaco, monospace\",\n label: \"Menlo\"\n },\n {\n value: \"Roboto, sans-serif\",\n label: \"Roboto\"\n }\n ])\n }))\n .layout([[\"websiteTitle\"], [\"primaryColor\"], [\"additionalColors\"], [\"font\"]])\n }))\n .layout(layout => {\n layout.addRow([\"websiteTheme\"]);\n });\n }\n}\n\nexport default ModelExtension.createImplementation({\n implementation: TenantModelExtension,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,cAAc,QAAQ,2DAA2D;AAElH,MAAMD,oBAAoB,CAAqC;EAC3DE,OAAOA,CAACC,SAAmC,EAAE;IACzCA,SAAS,CACJC,MAAM,CAACA,MAAM,KAAK;MACfC,YAAY,EAAED,MAAM,CACfE,MAAM,CAAC,CAAC,CACRC,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oDAAoD,CAAC,CACjEC,QAAQ,CAAC,uBAAuB,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC,CAClDN,MAAM,CAACA,MAAM,KAAK;QACfO,YAAY,EAAEP,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,QAAQ,CAAC,WAAW,CAAC;QAC1BI,YAAY,EAAET,MAAM,CACfQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,QAAQ,CAAC,WAAW,CAAC,CACrBK,YAAY,CAAC,EAAE,CAAC;QACrBC,gBAAgB,EAAEX,MAAM,CACnBQ,IAAI,CAAC,CAAC,CACNI,IAAI,CAAC,CAAC,CACNT,KAAK,CAAC,mBAAmB,CAAC,CAC1BC,WAAW,CAAC,oCAAoC,CAAC,CACjDM,YAAY,CAAC,EAAE,CAAC,CAChBL,QAAQ,CAAC,YAAY,EAAE;UACpBQ,UAAU,EAAE;YACRC,mBAAmB,EAAE;UACzB;QACJ,CAAC,CAAC;QACNC,IAAI,EAAEf,MAAM,CACPQ,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,MAAM,CAAC,CACbC,WAAW,CAAC,eAAe,CAAC,CAC5BC,QAAQ,CAAC,cAAc,CAAC,CACxBW,gBAAgB,CAAC,CACd;UACIC,KAAK,EAAE,2BAA2B;UAClCd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oCAAoC;UAC3Cd,KAAK,EAAE;QACX,CAAC,EACD;UACIc,KAAK,EAAE,oBAAoB;UAC3Bd,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFe,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,CACFA,MAAM,CAACA,MAAM,IAAI;MACdA,MAAM,CAACC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC;EACV;AACJ;AAEA,eAAetB,cAAc,CAACuB,oBAAoB,CAAC;EAC/CC,cAAc,EAAEzB,oBAAoB;EACpC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- export declare const pagesTypeDefs = "\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n";
1
+ export declare const pagesTypeDefs = "\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n system: CmsEntrySystem\n live: CmsEntryLive\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n\n live: CmsEntryLiveWhereInput\n system: ListWhereInputCmsEntrySystem\n\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n";
@@ -20,6 +20,8 @@ export const pagesTypeDefs = /* GraphQL */`
20
20
  restoredBy: WbIdentity
21
21
  firstPublishedBy: WbIdentity
22
22
  lastPublishedBy: WbIdentity
23
+ system: CmsEntrySystem
24
+ live: CmsEntryLive
23
25
  properties: JSON
24
26
  metadata: JSON
25
27
  bindings: JSON
@@ -137,6 +139,10 @@ export const pagesTypeDefs = /* GraphQL */`
137
139
  status_not: String
138
140
  status_in: [String!]
139
141
  status_not_in: [String!]
142
+
143
+ live: CmsEntryLiveWhereInput
144
+ system: ListWhereInputCmsEntrySystem
145
+
140
146
  AND: [WbPagesListWhereInput!]
141
147
  OR: [WbPagesListWhereInput!]
142
148
  }
@@ -1 +1 @@
1
- {"version":3,"names":["pagesTypeDefs"],"sources":["pages.typeDefs.ts"],"sourcesContent":["export const pagesTypeDefs = /* GraphQL */ `\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG,aAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["pagesTypeDefs"],"sources":["pages.typeDefs.ts"],"sourcesContent":["export const pagesTypeDefs = /* GraphQL */ `\n type WbPage {\n id: ID!\n entryId: String!\n location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n deletedOn: DateTime\n restoredOn: DateTime\n firstPublishedOn: DateTime\n lastPublishedOn: DateTime\n createdBy: WbIdentity\n modifiedBy: WbIdentity\n savedBy: WbIdentity\n deletedBy: WbIdentity\n restoredBy: WbIdentity\n firstPublishedBy: WbIdentity\n lastPublishedBy: WbIdentity\n system: CmsEntrySystem\n live: CmsEntryLive\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageCreateInput {\n location: WbLocationInput\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPageUpdateInput {\n properties: JSON\n metadata: JSON\n bindings: JSON\n elements: JSON\n extensions: JSON\n }\n\n input WbPagesListWhereInput {\n location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n modifiedOn: DateTime\n modifiedOn_gt: DateTime\n modifiedOn_gte: DateTime\n modifiedOn_lt: DateTime\n modifiedOn_lte: DateTime\n modifiedOn_between: [DateTime!]\n modifiedOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n deletedOn: DateTime\n deletedOn_gt: DateTime\n deletedOn_gte: DateTime\n deletedOn_lt: DateTime\n deletedOn_lte: DateTime\n deletedOn_between: [DateTime!]\n deletedOn_not_between: [DateTime!]\n restoredOn: DateTime\n restoredOn_gt: DateTime\n restoredOn_gte: DateTime\n restoredOn_lt: DateTime\n restoredOn_lte: DateTime\n restoredOn_between: [DateTime!]\n restoredOn_not_between: [DateTime!]\n firstPublishedOn: DateTime\n firstPublishedOn_gt: DateTime\n firstPublishedOn_gte: DateTime\n firstPublishedOn_lt: DateTime\n firstPublishedOn_lte: DateTime\n firstPublishedOn_between: [DateTime!]\n firstPublishedOn_not_between: [DateTime!]\n lastPublishedOn: DateTime\n lastPublishedOn_gt: DateTime\n lastPublishedOn_gte: DateTime\n lastPublishedOn_lt: DateTime\n lastPublishedOn_lte: DateTime\n lastPublishedOn_between: [DateTime!]\n lastPublishedOn_not_between: [DateTime!]\n createdBy: ID\n createdBy_not: ID\n createdBy_in: [ID!]\n createdBy_not_in: [ID!]\n modifiedBy: ID\n modifiedBy_not: ID\n modifiedBy_in: [ID!]\n modifiedBy_not_in: [ID!]\n savedBy: ID\n savedBy_not: ID\n savedBy_in: [ID!]\n savedBy_not_in: [ID!]\n deletedBy: ID\n deletedBy_not: ID\n deletedBy_in: [ID!]\n deletedBy_not_in: [ID!]\n restoredBy: ID\n restoredBy_not: ID\n restoredBy_in: [ID!]\n restoredBy_not_in: [ID!]\n firstPublishedBy: ID\n firstPublishedBy_not: ID\n firstPublishedBy_in: [ID!]\n firstPublishedBy_not_in: [ID!]\n lastPublishedBy: ID\n lastPublishedBy_not: ID\n lastPublishedBy_in: [ID!]\n lastPublishedBy_not_in: [ID!]\n status: String\n status_not: String\n status_in: [String!]\n status_not_in: [String!]\n\n live: CmsEntryLiveWhereInput\n system: ListWhereInputCmsEntrySystem\n\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n\n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n\n enum WbPageListSorter {\n id_ASC\n id_DESC\n createdOn_ASC\n createdOn_DESC\n modifiedOn_ASC\n modifiedOn_DESC\n savedOn_ASC\n savedOn_DESC\n deletedOn_ASC\n deletedOn_DESC\n restoredOn_ASC\n restoredOn_DESC\n firstPublishedOn_ASC\n firstPublishedOn_DESC\n lastPublishedOn_ASC\n lastPublishedOn_DESC\n }\n\n type WbPageRevision {\n id: ID!\n entryId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n\n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(entryId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG,aAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
package/index.js CHANGED
@@ -27,8 +27,7 @@ import { createRedirectModel, REDIRECT_MODEL_ID } from "./domain/redirect/redire
27
27
  import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
28
28
  import { PageModel } from "./domain/page/abstractions.js";
29
29
  import { RedirectModel } from "./domain/redirect/abstractions.js";
30
- import { PagePermissionsFeature } from "./features/pages/PagePermissions/feature.js";
31
- import { RedirectPermissionsFeature } from "./features/redirects/RedirectPermissions/feature.js";
30
+ import { WbPermissions } from "./domain/permissions.js";
32
31
  import { ApiKeyInstallerFeature } from "./features/installer/feature.js";
33
32
  import { NextjsGraphQLSchema } from "./graphql/nextjs/NextjsGraphQLSchema.js";
34
33
  import { NextjsFeature } from "./features/nextjs/feature.js";
@@ -50,6 +49,9 @@ const createContext = () => {
50
49
  container.registerInstance(RedirectModel, redirectModel.value);
51
50
  });
52
51
 
52
+ // Register permissions
53
+ container.register(WbPermissions.Implementation);
54
+
53
55
  // Register features
54
56
  GetRedirectByIdFeature.register(container);
55
57
  ListRedirectsFeature.register(container);
@@ -71,8 +73,6 @@ const createContext = () => {
71
73
  UnpublishPageFeature.register(container);
72
74
  DuplicatePageFeature.register(container);
73
75
  MovePageFeature.register(container);
74
- PagePermissionsFeature.register(container);
75
- RedirectPermissionsFeature.register(container);
76
76
  ApiKeyInstallerFeature.register(container);
77
77
  NextjsFeature.register(container);
78
78
  // TenantModelExtensionFeature.register(container);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createContextPlugin","GetModelUseCase","createGraphQL","createRedirectsRoute","GetRedirectByIdFeature","ListRedirectsFeature","GetActiveRedirectsFeature","CreateRedirectFeature","UpdateRedirectFeature","DeleteRedirectFeature","MoveRedirectFeature","InvalidateRedirectsCacheFeature","GetPageByIdFeature","GetPageByPathFeature","GetPageRevisionsFeature","ListPagesFeature","CreatePageFeature","CreatePageRevisionFromFeature","DeletePageFeature","UpdatePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","MovePageFeature","createPageModel","PAGE_MODEL_ID","createRedirectModel","REDIRECT_MODEL_ID","IdentityContext","PageModel","RedirectModel","PagePermissionsFeature","RedirectPermissionsFeature","ApiKeyInstallerFeature","NextjsGraphQLSchema","NextjsFeature","createContext","context","container","pageModel","redirectModel","plugins","register","identityContext","resolve","getModel","withoutAuthorization","Promise","all","execute","registerInstance","value","name","createWebsiteBuilder"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { createGraphQL } from \"./graphql/createGraphQL.js\";\nimport { createRedirectsRoute } from \"./rest/getRedirects.js\";\nimport { GetRedirectByIdFeature } from \"./features/redirects/GetRedirectById/feature.js\";\nimport { ListRedirectsFeature } from \"./features/redirects/ListRedirects/feature.js\";\nimport { GetActiveRedirectsFeature } from \"./features/redirects/GetActiveRedirects/feature.js\";\nimport { CreateRedirectFeature } from \"./features/redirects/CreateRedirect/feature.js\";\nimport { UpdateRedirectFeature } from \"./features/redirects/UpdateRedirect/feature.js\";\nimport { DeleteRedirectFeature } from \"./features/redirects/DeleteRedirect/feature.js\";\nimport { MoveRedirectFeature } from \"./features/redirects/MoveRedirect/feature.js\";\nimport { InvalidateRedirectsCacheFeature } from \"./features/redirects/InvalidateRedirectsCache/feature.js\";\nimport { GetPageByIdFeature } from \"./features/pages/GetPageById/feature.js\";\nimport { GetPageByPathFeature } from \"./features/pages/GetPageByPath/feature.js\";\nimport { GetPageRevisionsFeature } from \"./features/pages/GetPageRevisions/feature.js\";\nimport { ListPagesFeature } from \"./features/pages/ListPages/feature.js\";\nimport { CreatePageFeature } from \"./features/pages/CreatePage/feature.js\";\nimport { CreatePageRevisionFromFeature } from \"./features/pages/CreatePageRevisionFrom/feature.js\";\nimport { DeletePageFeature } from \"./features/pages/DeletePage/feature.js\";\nimport { UpdatePageFeature } from \"./features/pages/UpdatePage/feature.js\";\nimport { PublishPageFeature } from \"./features/pages/PublishPage/feature.js\";\nimport { UnpublishPageFeature } from \"./features/pages/UnpublishPage/feature.js\";\nimport { DuplicatePageFeature } from \"./features/pages/DuplicatePage/feature.js\";\nimport { MovePageFeature } from \"./features/pages/MovePage/feature.js\";\nimport { createPageModel, PAGE_MODEL_ID } from \"~/domain/page/page.model.js\";\nimport { createRedirectModel, REDIRECT_MODEL_ID } from \"~/domain/redirect/redirect.model.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { PagePermissionsFeature } from \"~/features/pages/PagePermissions/feature.js\";\nimport { RedirectPermissionsFeature } from \"~/features/redirects/RedirectPermissions/feature.js\";\nimport { ApiKeyInstallerFeature } from \"~/features/installer/feature.js\";\nimport { NextjsGraphQLSchema } from \"~/graphql/nextjs/NextjsGraphQLSchema.js\";\nimport { NextjsFeature } from \"~/features/nextjs/feature.js\";\n// import { TenantModelExtensionFeature } from \"~/features/tenantManager/feature.js\";\n\nconst createContext = () => {\n return createContextPlugin(\n async context => {\n const container = context.container;\n\n // Register models\n const pageModel = createPageModel();\n const redirectModel = createRedirectModel();\n\n context.plugins.register(pageModel, redirectModel);\n\n const identityContext = container.resolve(IdentityContext);\n const getModel = container.resolve(GetModelUseCase);\n\n await identityContext.withoutAuthorization(async () => {\n const [pageModel, redirectModel] = await Promise.all([\n getModel.execute(PAGE_MODEL_ID),\n getModel.execute(REDIRECT_MODEL_ID)\n ]);\n\n container.registerInstance(PageModel, pageModel.value);\n container.registerInstance(RedirectModel, redirectModel.value);\n });\n\n // Register features\n GetRedirectByIdFeature.register(container);\n ListRedirectsFeature.register(container);\n GetActiveRedirectsFeature.register(container);\n CreateRedirectFeature.register(container);\n UpdateRedirectFeature.register(container);\n DeleteRedirectFeature.register(container);\n MoveRedirectFeature.register(container);\n InvalidateRedirectsCacheFeature.register(container);\n GetPageByIdFeature.register(container);\n GetPageByPathFeature.register(container);\n GetPageRevisionsFeature.register(container);\n ListPagesFeature.register(container);\n CreatePageFeature.register(container);\n CreatePageRevisionFromFeature.register(container);\n DeletePageFeature.register(container);\n UpdatePageFeature.register(container);\n PublishPageFeature.register(container);\n UnpublishPageFeature.register(container);\n DuplicatePageFeature.register(container);\n MovePageFeature.register(container);\n PagePermissionsFeature.register(container);\n RedirectPermissionsFeature.register(container);\n ApiKeyInstallerFeature.register(container);\n NextjsFeature.register(container);\n // TenantModelExtensionFeature.register(container);\n\n // Register GraphQL\n container.register(NextjsGraphQLSchema);\n },\n { name: \"wb.createContext\" }\n );\n};\n\nexport const createWebsiteBuilder = () => {\n return [createContext(), createGraphQL(), createRedirectsRoute()];\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContextPlugin","GetModelUseCase","createGraphQL","createRedirectsRoute","GetRedirectByIdFeature","ListRedirectsFeature","GetActiveRedirectsFeature","CreateRedirectFeature","UpdateRedirectFeature","DeleteRedirectFeature","MoveRedirectFeature","InvalidateRedirectsCacheFeature","GetPageByIdFeature","GetPageByPathFeature","GetPageRevisionsFeature","ListPagesFeature","CreatePageFeature","CreatePageRevisionFromFeature","DeletePageFeature","UpdatePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","MovePageFeature","createPageModel","PAGE_MODEL_ID","createRedirectModel","REDIRECT_MODEL_ID","IdentityContext","PageModel","RedirectModel","WbPermissions","ApiKeyInstallerFeature","NextjsGraphQLSchema","NextjsFeature","createContext","context","container","pageModel","redirectModel","plugins","register","identityContext","resolve","getModel","withoutAuthorization","Promise","all","execute","registerInstance","value","Implementation","name","createWebsiteBuilder"],"sources":["index.ts"],"sourcesContent":["import { createContextPlugin } from \"@webiny/api\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { createGraphQL } from \"./graphql/createGraphQL.js\";\nimport { createRedirectsRoute } from \"./rest/getRedirects.js\";\nimport { GetRedirectByIdFeature } from \"./features/redirects/GetRedirectById/feature.js\";\nimport { ListRedirectsFeature } from \"./features/redirects/ListRedirects/feature.js\";\nimport { GetActiveRedirectsFeature } from \"./features/redirects/GetActiveRedirects/feature.js\";\nimport { CreateRedirectFeature } from \"./features/redirects/CreateRedirect/feature.js\";\nimport { UpdateRedirectFeature } from \"./features/redirects/UpdateRedirect/feature.js\";\nimport { DeleteRedirectFeature } from \"./features/redirects/DeleteRedirect/feature.js\";\nimport { MoveRedirectFeature } from \"./features/redirects/MoveRedirect/feature.js\";\nimport { InvalidateRedirectsCacheFeature } from \"./features/redirects/InvalidateRedirectsCache/feature.js\";\nimport { GetPageByIdFeature } from \"./features/pages/GetPageById/feature.js\";\nimport { GetPageByPathFeature } from \"./features/pages/GetPageByPath/feature.js\";\nimport { GetPageRevisionsFeature } from \"./features/pages/GetPageRevisions/feature.js\";\nimport { ListPagesFeature } from \"./features/pages/ListPages/feature.js\";\nimport { CreatePageFeature } from \"./features/pages/CreatePage/feature.js\";\nimport { CreatePageRevisionFromFeature } from \"./features/pages/CreatePageRevisionFrom/feature.js\";\nimport { DeletePageFeature } from \"./features/pages/DeletePage/feature.js\";\nimport { UpdatePageFeature } from \"./features/pages/UpdatePage/feature.js\";\nimport { PublishPageFeature } from \"./features/pages/PublishPage/feature.js\";\nimport { UnpublishPageFeature } from \"./features/pages/UnpublishPage/feature.js\";\nimport { DuplicatePageFeature } from \"./features/pages/DuplicatePage/feature.js\";\nimport { MovePageFeature } from \"./features/pages/MovePage/feature.js\";\nimport { createPageModel, PAGE_MODEL_ID } from \"~/domain/page/page.model.js\";\nimport { createRedirectModel, REDIRECT_MODEL_ID } from \"~/domain/redirect/redirect.model.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { RedirectModel } from \"~/domain/redirect/abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { ApiKeyInstallerFeature } from \"~/features/installer/feature.js\";\nimport { NextjsGraphQLSchema } from \"~/graphql/nextjs/NextjsGraphQLSchema.js\";\nimport { NextjsFeature } from \"~/features/nextjs/feature.js\";\n// import { TenantModelExtensionFeature } from \"~/features/tenantManager/feature.js\";\n\nconst createContext = () => {\n return createContextPlugin(\n async context => {\n const container = context.container;\n\n // Register models\n const pageModel = createPageModel();\n const redirectModel = createRedirectModel();\n\n context.plugins.register(pageModel, redirectModel);\n\n const identityContext = container.resolve(IdentityContext);\n const getModel = container.resolve(GetModelUseCase);\n\n await identityContext.withoutAuthorization(async () => {\n const [pageModel, redirectModel] = await Promise.all([\n getModel.execute(PAGE_MODEL_ID),\n getModel.execute(REDIRECT_MODEL_ID)\n ]);\n\n container.registerInstance(PageModel, pageModel.value);\n container.registerInstance(RedirectModel, redirectModel.value);\n });\n\n // Register permissions\n container.register(WbPermissions.Implementation);\n\n // Register features\n GetRedirectByIdFeature.register(container);\n ListRedirectsFeature.register(container);\n GetActiveRedirectsFeature.register(container);\n CreateRedirectFeature.register(container);\n UpdateRedirectFeature.register(container);\n DeleteRedirectFeature.register(container);\n MoveRedirectFeature.register(container);\n InvalidateRedirectsCacheFeature.register(container);\n GetPageByIdFeature.register(container);\n GetPageByPathFeature.register(container);\n GetPageRevisionsFeature.register(container);\n ListPagesFeature.register(container);\n CreatePageFeature.register(container);\n CreatePageRevisionFromFeature.register(container);\n DeletePageFeature.register(container);\n UpdatePageFeature.register(container);\n PublishPageFeature.register(container);\n UnpublishPageFeature.register(container);\n DuplicatePageFeature.register(container);\n MovePageFeature.register(container);\n ApiKeyInstallerFeature.register(container);\n NextjsFeature.register(container);\n // TenantModelExtensionFeature.register(container);\n\n // Register GraphQL\n container.register(NextjsGraphQLSchema);\n },\n { name: \"wb.createContext\" }\n );\n};\n\nexport const createWebsiteBuilder = () => {\n return [createContext(), createGraphQL(), createRedirectsRoute()];\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-website-builder",
3
- "version": "0.0.0-unstable.ac6ebf63c6",
3
+ "version": "0.0.0-unstable.c27f4d8a31",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -19,30 +19,29 @@
19
19
  "directory": "dist"
20
20
  },
21
21
  "dependencies": {
22
- "@webiny/api": "0.0.0-unstable.ac6ebf63c6",
23
- "@webiny/api-core": "0.0.0-unstable.ac6ebf63c6",
24
- "@webiny/api-headless-cms": "0.0.0-unstable.ac6ebf63c6",
25
- "@webiny/di": "0.2.3",
26
- "@webiny/feature": "0.0.0-unstable.ac6ebf63c6",
27
- "@webiny/handler": "0.0.0-unstable.ac6ebf63c6",
28
- "@webiny/handler-graphql": "0.0.0-unstable.ac6ebf63c6",
29
- "@webiny/tenant-manager": "0.0.0-unstable.ac6ebf63c6",
22
+ "@webiny/api": "0.0.0-unstable.c27f4d8a31",
23
+ "@webiny/api-core": "0.0.0-unstable.c27f4d8a31",
24
+ "@webiny/api-headless-cms": "0.0.0-unstable.c27f4d8a31",
25
+ "@webiny/feature": "0.0.0-unstable.c27f4d8a31",
26
+ "@webiny/handler": "0.0.0-unstable.c27f4d8a31",
27
+ "@webiny/handler-graphql": "0.0.0-unstable.c27f4d8a31",
28
+ "@webiny/tenant-manager": "0.0.0-unstable.c27f4d8a31",
30
29
  "lodash": "4.17.23"
31
30
  },
32
31
  "devDependencies": {
33
- "@webiny/api-core-ddb": "0.0.0-unstable.ac6ebf63c6",
34
- "@webiny/api-file-manager-s3": "0.0.0-unstable.ac6ebf63c6",
35
- "@webiny/build-tools": "0.0.0-unstable.ac6ebf63c6",
36
- "@webiny/handler-aws": "0.0.0-unstable.ac6ebf63c6",
37
- "@webiny/plugins": "0.0.0-unstable.ac6ebf63c6",
38
- "@webiny/project-utils": "0.0.0-unstable.ac6ebf63c6",
39
- "@webiny/tasks": "0.0.0-unstable.ac6ebf63c6",
40
- "@webiny/wcp": "0.0.0-unstable.ac6ebf63c6",
41
- "graphql": "16.12.0",
32
+ "@webiny/api-core-ddb": "0.0.0-unstable.c27f4d8a31",
33
+ "@webiny/api-file-manager-s3": "0.0.0-unstable.c27f4d8a31",
34
+ "@webiny/build-tools": "0.0.0-unstable.c27f4d8a31",
35
+ "@webiny/handler-aws": "0.0.0-unstable.c27f4d8a31",
36
+ "@webiny/plugins": "0.0.0-unstable.c27f4d8a31",
37
+ "@webiny/project-utils": "0.0.0-unstable.c27f4d8a31",
38
+ "@webiny/tasks": "0.0.0-unstable.c27f4d8a31",
39
+ "@webiny/wcp": "0.0.0-unstable.c27f4d8a31",
40
+ "graphql": "16.13.1",
42
41
  "prettier": "3.6.2",
43
42
  "rimraf": "6.1.3",
44
43
  "typescript": "5.9.3",
45
- "vitest": "3.2.4"
44
+ "vitest": "4.0.18"
46
45
  },
47
- "gitHead": "ac6ebf63c6de308703d41f2c1b375e03cd96b813"
46
+ "gitHead": "c27f4d8a31c3af1570817797441855292b6c1f20"
48
47
  }
@@ -1 +0,0 @@
1
- export declare const PagePermissionsFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
@@ -1,53 +0,0 @@
1
- import { createFeature, Result } from "@webiny/feature/api";
2
- import { CreatePageUseCase } from "../CreatePage/index.js";
3
- import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
- import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
5
- import { CreatePageRevisionFromUseCase } from "../CreatePageRevisionFrom/index.js";
6
- import { DeletePageUseCase } from "../DeletePage/index.js";
7
- import { DuplicatePageUseCase } from "../DuplicatePage/index.js";
8
- import { GetPageByIdUseCase } from "../GetPageById/index.js";
9
- import { GetPageByPathUseCase } from "../GetPageByPath/index.js";
10
- import { GetPageRevisionsUseCase } from "../GetPageRevisions/index.js";
11
- import { ListPagesUseCase } from "../ListPages/index.js";
12
- import { MovePageUseCase } from "../MovePage/index.js";
13
- import { PublishPageUseCase } from "../PublishPage/index.js";
14
- import { UnpublishPageUseCase } from "../UnpublishPage/index.js";
15
- import { UpdatePageUseCase } from "../UpdatePage/index.js";
16
- const createDecorator = abstraction => {
17
- class PageUseCaseDecorator {
18
- constructor(identityContext, decoratee) {
19
- this.identityContext = identityContext;
20
- this.decoratee = decoratee;
21
- }
22
- async execute(...args) {
23
- const hasPermission = await this.identityContext.getPermission("wb.page");
24
- if (!hasPermission) {
25
- return Result.fail(new PageNotAuthorizedError());
26
- }
27
- return this.decoratee.execute(...args);
28
- }
29
- }
30
- return abstraction.createDecorator({
31
- decorator: PageUseCaseDecorator,
32
- dependencies: [IdentityContext]
33
- });
34
- };
35
- export const PagePermissionsFeature = createFeature({
36
- name: "WebsiteBuilder/Page/Permissions",
37
- register(container) {
38
- container.registerDecorator(createDecorator(CreatePageUseCase));
39
- container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));
40
- container.registerDecorator(createDecorator(UpdatePageUseCase));
41
- container.registerDecorator(createDecorator(DeletePageUseCase));
42
- container.registerDecorator(createDecorator(DuplicatePageUseCase));
43
- container.registerDecorator(createDecorator(GetPageByIdUseCase));
44
- container.registerDecorator(createDecorator(GetPageByPathUseCase));
45
- container.registerDecorator(createDecorator(GetPageRevisionsUseCase));
46
- container.registerDecorator(createDecorator(ListPagesUseCase));
47
- container.registerDecorator(createDecorator(MovePageUseCase));
48
- container.registerDecorator(createDecorator(PublishPageUseCase));
49
- container.registerDecorator(createDecorator(UnpublishPageUseCase));
50
- }
51
- });
52
-
53
- //# sourceMappingURL=feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createFeature","Result","CreatePageUseCase","IdentityContext","PageNotAuthorizedError","CreatePageRevisionFromUseCase","DeletePageUseCase","DuplicatePageUseCase","GetPageByIdUseCase","GetPageByPathUseCase","GetPageRevisionsUseCase","ListPagesUseCase","MovePageUseCase","PublishPageUseCase","UnpublishPageUseCase","UpdatePageUseCase","createDecorator","abstraction","PageUseCaseDecorator","constructor","identityContext","decoratee","execute","args","hasPermission","getPermission","fail","decorator","dependencies","PagePermissionsFeature","name","register","container","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\nimport { createFeature, Result } from \"@webiny/feature/api\";\nimport { CreatePageUseCase } from \"~/features/pages/CreatePage/index.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { CreatePageRevisionFromUseCase } from \"~/features/pages/CreatePageRevisionFrom/index.js\";\nimport { DeletePageUseCase } from \"~/features/pages/DeletePage/index.js\";\nimport { DuplicatePageUseCase } from \"~/features/pages/DuplicatePage/index.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { GetPageByPathUseCase } from \"~/features/pages/GetPageByPath/index.js\";\nimport { GetPageRevisionsUseCase } from \"~/features/pages/GetPageRevisions/index.js\";\nimport { ListPagesUseCase } from \"~/features/pages/ListPages/index.js\";\nimport { MovePageUseCase } from \"~/features/pages/MovePage/index.js\";\nimport { PublishPageUseCase } from \"~/features/pages/PublishPage/index.js\";\nimport { UnpublishPageUseCase } from \"~/features/pages/UnpublishPage/index.js\";\nimport { UpdatePageUseCase } from \"~/features/pages/UpdatePage/index.js\";\n\nconst createDecorator = (abstraction: Abstraction<any>) => {\n class PageUseCaseDecorator {\n constructor(\n private identityContext: IdentityContext.Interface,\n private decoratee: any\n ) {}\n\n async execute(...args: any[]) {\n const hasPermission = await this.identityContext.getPermission(\"wb.page\");\n\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return this.decoratee.execute(...args);\n }\n }\n\n return abstraction.createDecorator({\n decorator: PageUseCaseDecorator,\n dependencies: [IdentityContext]\n });\n};\n\nexport const PagePermissionsFeature = createFeature({\n name: \"WebsiteBuilder/Page/Permissions\",\n register(container) {\n container.registerDecorator(createDecorator(CreatePageUseCase));\n container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));\n container.registerDecorator(createDecorator(UpdatePageUseCase));\n container.registerDecorator(createDecorator(DeletePageUseCase));\n container.registerDecorator(createDecorator(DuplicatePageUseCase));\n container.registerDecorator(createDecorator(GetPageByIdUseCase));\n container.registerDecorator(createDecorator(GetPageByPathUseCase));\n container.registerDecorator(createDecorator(GetPageRevisionsUseCase));\n container.registerDecorator(createDecorator(ListPagesUseCase));\n container.registerDecorator(createDecorator(MovePageUseCase));\n container.registerDecorator(createDecorator(PublishPageUseCase));\n container.registerDecorator(createDecorator(UnpublishPageUseCase));\n }\n});\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,MAAM,QAAQ,qBAAqB;AAC3D,SAASC,iBAAiB;AAC1B,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,sBAAsB;AAC/B,SAASC,6BAA6B;AACtC,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAE1B,MAAMC,eAAe,GAAIC,WAA6B,IAAK;EACvD,MAAMC,oBAAoB,CAAC;IACvBC,WAAWA,CACCC,eAA0C,EAC1CC,SAAc,EACxB;MAAA,KAFUD,eAA0C,GAA1CA,eAA0C;MAAA,KAC1CC,SAAc,GAAdA,SAAc;IACvB;IAEH,MAAMC,OAAOA,CAAC,GAAGC,IAAW,EAAE;MAC1B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,eAAe,CAACK,aAAa,CAAC,SAAS,CAAC;MAEzE,IAAI,CAACD,aAAa,EAAE;QAChB,OAAOvB,MAAM,CAACyB,IAAI,CAAC,IAAItB,sBAAsB,CAAC,CAAC,CAAC;MACpD;MAEA,OAAO,IAAI,CAACiB,SAAS,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC;IAC1C;EACJ;EAEA,OAAON,WAAW,CAACD,eAAe,CAAC;IAC/BW,SAAS,EAAET,oBAAoB;IAC/BU,YAAY,EAAE,CAACzB,eAAe;EAClC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAM0B,sBAAsB,GAAG7B,aAAa,CAAC;EAChD8B,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACd,iBAAiB,CAAC,CAAC;IAC/D8B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACX,6BAA6B,CAAC,CAAC;IAC3E2B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACD,iBAAiB,CAAC,CAAC;IAC/DiB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACV,iBAAiB,CAAC,CAAC;IAC/D0B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACT,oBAAoB,CAAC,CAAC;IAClEyB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACR,kBAAkB,CAAC,CAAC;IAChEwB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACP,oBAAoB,CAAC,CAAC;IAClEuB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACN,uBAAuB,CAAC,CAAC;IACrEsB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACL,gBAAgB,CAAC,CAAC;IAC9DqB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACJ,eAAe,CAAC,CAAC;IAC7DoB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACH,kBAAkB,CAAC,CAAC;IAChEmB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACF,oBAAoB,CAAC,CAAC;EACtE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- export declare const RedirectPermissionsFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;