@webiny/api-website-builder 0.0.0-unstable.df7a8bb475 → 0.0.0-unstable.e2758ee1cf

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 (121) 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/features/installer/ApiKeyInstaller.js +4 -1
  9. package/features/installer/ApiKeyInstaller.js.map +1 -1
  10. package/features/pages/CreatePage/CreatePageUseCase.d.ts +3 -1
  11. package/features/pages/CreatePage/CreatePageUseCase.js +10 -2
  12. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  13. package/features/pages/CreatePage/abstractions.d.ts +2 -1
  14. package/features/pages/CreatePage/abstractions.js.map +1 -1
  15. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +5 -1
  16. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +18 -2
  17. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  18. package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +2 -1
  19. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  20. package/features/pages/DeletePage/DeletePageUseCase.d.ts +3 -1
  21. package/features/pages/DeletePage/DeletePageUseCase.js +10 -3
  22. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  23. package/features/pages/DeletePage/abstractions.d.ts +2 -1
  24. package/features/pages/DeletePage/abstractions.js.map +1 -1
  25. package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +3 -1
  26. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +10 -2
  27. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  28. package/features/pages/DuplicatePage/abstractions.d.ts +2 -1
  29. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  30. package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +3 -1
  31. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -3
  32. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  33. package/features/pages/GetPageById/abstractions.d.ts +2 -1
  34. package/features/pages/GetPageById/abstractions.js.map +1 -1
  35. package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +3 -1
  36. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -3
  37. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  38. package/features/pages/GetPageByPath/abstractions.d.ts +2 -1
  39. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  40. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +3 -1
  41. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -3
  42. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  43. package/features/pages/GetPageRevisions/abstractions.d.ts +2 -1
  44. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  45. package/features/pages/ListPages/ListPagesRepository.d.ts +5 -1
  46. package/features/pages/ListPages/ListPagesRepository.js +14 -4
  47. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  48. package/features/pages/ListPages/ListPagesUseCase.d.ts +5 -1
  49. package/features/pages/ListPages/ListPagesUseCase.js +24 -4
  50. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  51. package/features/pages/ListPages/abstractions.d.ts +2 -1
  52. package/features/pages/ListPages/abstractions.js.map +1 -1
  53. package/features/pages/MovePage/MovePageUseCase.d.ts +3 -1
  54. package/features/pages/MovePage/MovePageUseCase.js +14 -2
  55. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  56. package/features/pages/MovePage/abstractions.d.ts +2 -1
  57. package/features/pages/MovePage/abstractions.js.map +1 -1
  58. package/features/pages/PublishPage/PublishPageUseCase.d.ts +3 -1
  59. package/features/pages/PublishPage/PublishPageUseCase.js +14 -2
  60. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  61. package/features/pages/PublishPage/abstractions.d.ts +2 -1
  62. package/features/pages/PublishPage/abstractions.js.map +1 -1
  63. package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +3 -1
  64. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +14 -2
  65. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  66. package/features/pages/UnpublishPage/abstractions.d.ts +2 -1
  67. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  68. package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +3 -1
  69. package/features/pages/UpdatePage/UpdatePageUseCase.js +14 -2
  70. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  71. package/features/pages/UpdatePage/abstractions.d.ts +5 -5
  72. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  73. package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +3 -1
  74. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +10 -2
  75. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  76. package/features/redirects/CreateRedirect/abstractions.d.ts +2 -1
  77. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  78. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +3 -1
  79. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +10 -3
  80. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  81. package/features/redirects/DeleteRedirect/abstractions.d.ts +2 -1
  82. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  83. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +3 -1
  84. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +10 -3
  85. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  86. package/features/redirects/GetActiveRedirects/abstractions.d.ts +2 -1
  87. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  88. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +3 -1
  89. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +19 -4
  90. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  91. package/features/redirects/GetRedirectById/abstractions.d.ts +2 -1
  92. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  93. package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +5 -1
  94. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +23 -4
  95. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  96. package/features/redirects/ListRedirects/abstractions.d.ts +3 -1
  97. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  98. package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +3 -1
  99. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +14 -2
  100. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  101. package/features/redirects/MoveRedirect/abstractions.d.ts +2 -1
  102. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  103. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +3 -1
  104. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +14 -2
  105. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  106. package/features/redirects/UpdateRedirect/abstractions.d.ts +2 -1
  107. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  108. package/features/tenantManager/TenantModelExtension.js +5 -5
  109. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  110. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  111. package/graphql/pages/pages.typeDefs.js +6 -0
  112. package/graphql/pages/pages.typeDefs.js.map +1 -1
  113. package/index.js +4 -4
  114. package/index.js.map +1 -1
  115. package/package.json +19 -20
  116. package/features/pages/PagePermissions/feature.d.ts +0 -1
  117. package/features/pages/PagePermissions/feature.js +0 -53
  118. package/features/pages/PagePermissions/feature.js.map +0 -1
  119. package/features/redirects/RedirectPermissions/feature.d.ts +0 -1
  120. package/features/redirects/RedirectPermissions/feature.js +0 -45
  121. package/features/redirects/RedirectPermissions/feature.js.map +0 -1
@@ -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;
@@ -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","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 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 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;;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,2BAA2B,GAAGH,iBAAiB,CAE1D,gCAAgC,CAAC;AAQnC,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,+BAA+B,CAAC","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.df7a8bb475",
3
+ "version": "0.0.0-unstable.e2758ee1cf",
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.df7a8bb475",
23
- "@webiny/api-core": "0.0.0-unstable.df7a8bb475",
24
- "@webiny/api-headless-cms": "0.0.0-unstable.df7a8bb475",
25
- "@webiny/di": "0.2.3",
26
- "@webiny/feature": "0.0.0-unstable.df7a8bb475",
27
- "@webiny/handler": "0.0.0-unstable.df7a8bb475",
28
- "@webiny/handler-graphql": "0.0.0-unstable.df7a8bb475",
29
- "@webiny/tenant-manager": "0.0.0-unstable.df7a8bb475",
22
+ "@webiny/api": "0.0.0-unstable.e2758ee1cf",
23
+ "@webiny/api-core": "0.0.0-unstable.e2758ee1cf",
24
+ "@webiny/api-headless-cms": "0.0.0-unstable.e2758ee1cf",
25
+ "@webiny/feature": "0.0.0-unstable.e2758ee1cf",
26
+ "@webiny/handler": "0.0.0-unstable.e2758ee1cf",
27
+ "@webiny/handler-graphql": "0.0.0-unstable.e2758ee1cf",
28
+ "@webiny/tenant-manager": "0.0.0-unstable.e2758ee1cf",
30
29
  "lodash": "4.17.23"
31
30
  },
32
31
  "devDependencies": {
33
- "@webiny/api-core-ddb": "0.0.0-unstable.df7a8bb475",
34
- "@webiny/api-file-manager-s3": "0.0.0-unstable.df7a8bb475",
35
- "@webiny/build-tools": "0.0.0-unstable.df7a8bb475",
36
- "@webiny/handler-aws": "0.0.0-unstable.df7a8bb475",
37
- "@webiny/plugins": "0.0.0-unstable.df7a8bb475",
38
- "@webiny/project-utils": "0.0.0-unstable.df7a8bb475",
39
- "@webiny/tasks": "0.0.0-unstable.df7a8bb475",
40
- "@webiny/wcp": "0.0.0-unstable.df7a8bb475",
41
- "graphql": "16.12.0",
32
+ "@webiny/api-core-ddb": "0.0.0-unstable.e2758ee1cf",
33
+ "@webiny/api-file-manager-s3": "0.0.0-unstable.e2758ee1cf",
34
+ "@webiny/build-tools": "0.0.0-unstable.e2758ee1cf",
35
+ "@webiny/handler-aws": "0.0.0-unstable.e2758ee1cf",
36
+ "@webiny/plugins": "0.0.0-unstable.e2758ee1cf",
37
+ "@webiny/project-utils": "0.0.0-unstable.e2758ee1cf",
38
+ "@webiny/tasks": "0.0.0-unstable.e2758ee1cf",
39
+ "@webiny/wcp": "0.0.0-unstable.e2758ee1cf",
40
+ "graphql": "16.13.0",
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": "df7a8bb4755a1da047f0af8c56bdb649cc81bf7d"
46
+ "gitHead": "e2758ee1cfa3b9a7152e9bb995a90ccabd33266f"
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>;
@@ -1,45 +0,0 @@
1
- import { createFeature, Result } from "@webiny/feature/api";
2
- import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
- import { RedirectNotAuthorizedError } from "../../../domain/redirect/errors.js";
4
- import { CreateRedirectUseCase } from "../CreateRedirect/index.js";
5
- import { UpdateRedirectUseCase } from "../UpdateRedirect/index.js";
6
- import { DeleteRedirectUseCase } from "../DeleteRedirect/index.js";
7
- import { GetActiveRedirectsUseCase } from "../GetActiveRedirects/index.js";
8
- import { GetRedirectByIdUseCase } from "../GetRedirectById/index.js";
9
- import { InvalidateRedirectsCacheUseCase } from "../InvalidateRedirectsCache/index.js";
10
- import { ListRedirectsUseCase } from "../ListRedirects/index.js";
11
- import { MoveRedirectUseCase } from "../MoveRedirect/index.js";
12
- const createDecorator = abstraction => {
13
- class PageUseCaseDecorator {
14
- constructor(identityContext, decoratee) {
15
- this.identityContext = identityContext;
16
- this.decoratee = decoratee;
17
- }
18
- async execute(...args) {
19
- const hasPermission = await this.identityContext.getPermission("wb.redirect");
20
- if (!hasPermission) {
21
- return Result.fail(new RedirectNotAuthorizedError());
22
- }
23
- return this.decoratee.execute(...args);
24
- }
25
- }
26
- return abstraction.createDecorator({
27
- decorator: PageUseCaseDecorator,
28
- dependencies: [IdentityContext]
29
- });
30
- };
31
- export const RedirectPermissionsFeature = createFeature({
32
- name: "WebsiteBuilder/Redirect/Permissions",
33
- register(container) {
34
- container.registerDecorator(createDecorator(CreateRedirectUseCase));
35
- container.registerDecorator(createDecorator(UpdateRedirectUseCase));
36
- container.registerDecorator(createDecorator(DeleteRedirectUseCase));
37
- container.registerDecorator(createDecorator(GetActiveRedirectsUseCase));
38
- container.registerDecorator(createDecorator(GetRedirectByIdUseCase));
39
- container.registerDecorator(createDecorator(InvalidateRedirectsCacheUseCase));
40
- container.registerDecorator(createDecorator(ListRedirectsUseCase));
41
- container.registerDecorator(createDecorator(MoveRedirectUseCase));
42
- }
43
- });
44
-
45
- //# sourceMappingURL=feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createFeature","Result","IdentityContext","RedirectNotAuthorizedError","CreateRedirectUseCase","UpdateRedirectUseCase","DeleteRedirectUseCase","GetActiveRedirectsUseCase","GetRedirectByIdUseCase","InvalidateRedirectsCacheUseCase","ListRedirectsUseCase","MoveRedirectUseCase","createDecorator","abstraction","PageUseCaseDecorator","constructor","identityContext","decoratee","execute","args","hasPermission","getPermission","fail","decorator","dependencies","RedirectPermissionsFeature","name","register","container","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\nimport { createFeature, Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { RedirectNotAuthorizedError } from \"~/domain/redirect/errors.js\";\nimport { CreateRedirectUseCase } from \"~/features/redirects/CreateRedirect/index.js\";\nimport { UpdateRedirectUseCase } from \"~/features/redirects/UpdateRedirect/index.js\";\nimport { DeleteRedirectUseCase } from \"~/features/redirects/DeleteRedirect/index.js\";\nimport { GetActiveRedirectsUseCase } from \"~/features/redirects/GetActiveRedirects/index.js\";\nimport { GetRedirectByIdUseCase } from \"~/features/redirects/GetRedirectById/index.js\";\nimport { InvalidateRedirectsCacheUseCase } from \"~/features/redirects/InvalidateRedirectsCache/index.js\";\nimport { ListRedirectsUseCase } from \"~/features/redirects/ListRedirects/index.js\";\nimport { MoveRedirectUseCase } from \"~/features/redirects/MoveRedirect/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.redirect\");\n\n if (!hasPermission) {\n return Result.fail(new RedirectNotAuthorizedError());\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 RedirectPermissionsFeature = createFeature({\n name: \"WebsiteBuilder/Redirect/Permissions\",\n register(container) {\n container.registerDecorator(createDecorator(CreateRedirectUseCase));\n container.registerDecorator(createDecorator(UpdateRedirectUseCase));\n container.registerDecorator(createDecorator(DeleteRedirectUseCase));\n container.registerDecorator(createDecorator(GetActiveRedirectsUseCase));\n container.registerDecorator(createDecorator(GetRedirectByIdUseCase));\n container.registerDecorator(createDecorator(InvalidateRedirectsCacheUseCase));\n container.registerDecorator(createDecorator(ListRedirectsUseCase));\n container.registerDecorator(createDecorator(MoveRedirectUseCase));\n }\n});\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,MAAM,QAAQ,qBAAqB;AAC3D,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,0BAA0B;AACnC,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,yBAAyB;AAClC,SAASC,sBAAsB;AAC/B,SAASC,+BAA+B;AACxC,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAE5B,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,aAAa,CAAC;MAE7E,IAAI,CAACD,aAAa,EAAE;QAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAInB,0BAA0B,CAAC,CAAC,CAAC;MACxD;MAEA,OAAO,IAAI,CAACc,SAAS,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC;IAC1C;EACJ;EAEA,OAAON,WAAW,CAACD,eAAe,CAAC;IAC/BW,SAAS,EAAET,oBAAoB;IAC/BU,YAAY,EAAE,CAACtB,eAAe;EAClC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMuB,0BAA0B,GAAGzB,aAAa,CAAC;EACpD0B,IAAI,EAAE,qCAAqC;EAC3CC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACR,qBAAqB,CAAC,CAAC;IACnEwB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACP,qBAAqB,CAAC,CAAC;IACnEuB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACN,qBAAqB,CAAC,CAAC;IACnEsB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACL,yBAAyB,CAAC,CAAC;IACvEqB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACJ,sBAAsB,CAAC,CAAC;IACpEoB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACH,+BAA+B,CAAC,CAAC;IAC7EmB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACF,oBAAoB,CAAC,CAAC;IAClEkB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACD,mBAAmB,CAAC,CAAC;EACrE;AACJ,CAAC,CAAC","ignoreList":[]}