@webiny/tenant-manager 0.0.0-unstable.0d717d18dd

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 (275) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +11 -0
  3. package/TenantManager.d.ts +2 -0
  4. package/TenantManager.js +11 -0
  5. package/TenantManager.js.map +1 -0
  6. package/admin/CurrentTenant/CurrentTenant.d.ts +10 -0
  7. package/admin/CurrentTenant/CurrentTenant.js +25 -0
  8. package/admin/CurrentTenant/CurrentTenant.js.map +1 -0
  9. package/admin/CurrentTenant/CurrentTenantGateway.d.ts +12 -0
  10. package/admin/CurrentTenant/CurrentTenantGateway.js +43 -0
  11. package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -0
  12. package/admin/CurrentTenant/CurrentTenantPresenter.d.ts +12 -0
  13. package/admin/CurrentTenant/CurrentTenantPresenter.js +33 -0
  14. package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -0
  15. package/admin/CurrentTenant/CurrentTenantRepository.d.ts +15 -0
  16. package/admin/CurrentTenant/CurrentTenantRepository.js +38 -0
  17. package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -0
  18. package/admin/CurrentTenant/abstractions.d.ts +31 -0
  19. package/admin/CurrentTenant/abstractions.js +7 -0
  20. package/admin/CurrentTenant/abstractions.js.map +1 -0
  21. package/admin/CurrentTenant/feature.d.ts +3 -0
  22. package/admin/CurrentTenant/feature.js +21 -0
  23. package/admin/CurrentTenant/feature.js.map +1 -0
  24. package/admin/CurrentTenant/useCurrentTenant.d.ts +4 -0
  25. package/admin/CurrentTenant/useCurrentTenant.js +18 -0
  26. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
  27. package/admin/CurrentTenantProvider.d.ts +2 -0
  28. package/admin/CurrentTenantProvider.js +9 -0
  29. package/admin/CurrentTenantProvider.js.map +1 -0
  30. package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
  31. package/admin/DisableTenant/DisableTenantGateway.js +42 -0
  32. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
  33. package/admin/DisableTenant/DisableTenantRepository.d.ts +12 -0
  34. package/admin/DisableTenant/DisableTenantRepository.js +33 -0
  35. package/admin/DisableTenant/DisableTenantRepository.js.map +1 -0
  36. package/admin/DisableTenant/DisableTenantUseCase.d.ts +10 -0
  37. package/admin/DisableTenant/DisableTenantUseCase.js +18 -0
  38. package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -0
  39. package/admin/DisableTenant/abstractions.d.ts +21 -0
  40. package/admin/DisableTenant/abstractions.js +7 -0
  41. package/admin/DisableTenant/abstractions.js.map +1 -0
  42. package/admin/DisableTenant/feature.d.ts +3 -0
  43. package/admin/DisableTenant/feature.js +21 -0
  44. package/admin/DisableTenant/feature.js.map +1 -0
  45. package/admin/DisableTenant/index.d.ts +2 -0
  46. package/admin/DisableTenant/index.js +2 -0
  47. package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
  48. package/admin/DisableTenant/useDisableTenant.js +18 -0
  49. package/admin/DisableTenant/useDisableTenant.js.map +1 -0
  50. package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
  51. package/admin/EnableTenant/EnableTenantGateway.js +42 -0
  52. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
  53. package/admin/EnableTenant/EnableTenantRepository.d.ts +12 -0
  54. package/admin/EnableTenant/EnableTenantRepository.js +33 -0
  55. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
  56. package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
  57. package/admin/EnableTenant/EnableTenantUseCase.js +18 -0
  58. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
  59. package/admin/EnableTenant/abstractions.d.ts +21 -0
  60. package/admin/EnableTenant/abstractions.js +7 -0
  61. package/admin/EnableTenant/abstractions.js.map +1 -0
  62. package/admin/EnableTenant/feature.d.ts +3 -0
  63. package/admin/EnableTenant/feature.js +21 -0
  64. package/admin/EnableTenant/feature.js.map +1 -0
  65. package/admin/EnableTenant/index.d.ts +2 -0
  66. package/admin/EnableTenant/index.js +2 -0
  67. package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
  68. package/admin/EnableTenant/useEnableTenant.js +24 -0
  69. package/admin/EnableTenant/useEnableTenant.js.map +1 -0
  70. package/admin/Extension.d.ts +2 -0
  71. package/admin/Extension.js +49 -0
  72. package/admin/Extension.js.map +1 -0
  73. package/admin/InstallTenant/InstallTenantGateway.d.ts +11 -0
  74. package/admin/InstallTenant/InstallTenantGateway.js +42 -0
  75. package/admin/InstallTenant/InstallTenantGateway.js.map +1 -0
  76. package/admin/InstallTenant/InstallTenantRepository.d.ts +12 -0
  77. package/admin/InstallTenant/InstallTenantRepository.js +34 -0
  78. package/admin/InstallTenant/InstallTenantRepository.js.map +1 -0
  79. package/admin/InstallTenant/InstallTenantUseCase.d.ts +10 -0
  80. package/admin/InstallTenant/InstallTenantUseCase.js +18 -0
  81. package/admin/InstallTenant/InstallTenantUseCase.js.map +1 -0
  82. package/admin/InstallTenant/abstractions.d.ts +21 -0
  83. package/admin/InstallTenant/abstractions.js +7 -0
  84. package/admin/InstallTenant/abstractions.js.map +1 -0
  85. package/admin/InstallTenant/feature.d.ts +3 -0
  86. package/admin/InstallTenant/feature.js +21 -0
  87. package/admin/InstallTenant/feature.js.map +1 -0
  88. package/admin/InstallTenant/index.d.ts +2 -0
  89. package/admin/InstallTenant/index.js +2 -0
  90. package/admin/InstallTenant/useInstallTenant.d.ts +4 -0
  91. package/admin/InstallTenant/useInstallTenant.js +24 -0
  92. package/admin/InstallTenant/useInstallTenant.js.map +1 -0
  93. package/admin/IsRootTenant.d.ts +13 -0
  94. package/admin/IsRootTenant.js +19 -0
  95. package/admin/IsRootTenant.js.map +1 -0
  96. package/admin/SecurityPermission.d.ts +2 -0
  97. package/admin/SecurityPermission.js +15 -0
  98. package/admin/SecurityPermission.js.map +1 -0
  99. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
  100. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +41 -0
  101. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
  102. package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
  103. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +15 -0
  104. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
  105. package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
  106. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +31 -0
  107. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
  108. package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
  109. package/admin/TenantEntryList/FolderNameCell.js +24 -0
  110. package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
  111. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
  112. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +15 -0
  113. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
  114. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
  115. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +31 -0
  116. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
  117. package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
  118. package/admin/TenantEntryList/ManageTenant.js +19 -0
  119. package/admin/TenantEntryList/ManageTenant.js.map +1 -0
  120. package/admin/TenantEntryList/TenantCell.d.ts +2 -0
  121. package/admin/TenantEntryList/TenantCell.js +24 -0
  122. package/admin/TenantEntryList/TenantCell.js.map +1 -0
  123. package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
  124. package/admin/TenantEntryList/TenantNameCell.js +51 -0
  125. package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
  126. package/admin/TenantEntryList.d.ts +2 -0
  127. package/admin/TenantEntryList.js +59 -0
  128. package/admin/TenantEntryList.js.map +1 -0
  129. package/admin/TenantSelector.d.ts +2 -0
  130. package/admin/TenantSelector.js +35 -0
  131. package/admin/TenantSelector.js.map +1 -0
  132. package/admin/domain/permissionsSchema.d.ts +4 -0
  133. package/admin/domain/permissionsSchema.js +8 -0
  134. package/admin/domain/permissionsSchema.js.map +1 -0
  135. package/admin/features/permissions/abstractions.d.ts +17 -0
  136. package/admin/features/permissions/abstractions.js +6 -0
  137. package/admin/features/permissions/abstractions.js.map +1 -0
  138. package/admin/features/permissions/feature.d.ts +14 -0
  139. package/admin/features/permissions/feature.js +7 -0
  140. package/admin/features/permissions/feature.js.map +1 -0
  141. package/admin/types.d.ts +7 -0
  142. package/admin/types.js +0 -0
  143. package/api/Extension.d.ts +4 -0
  144. package/api/Extension.js +39 -0
  145. package/api/Extension.js.map +1 -0
  146. package/api/domain/TenantId.d.ts +3 -0
  147. package/api/domain/TenantId.js +10 -0
  148. package/api/domain/TenantId.js.map +1 -0
  149. package/api/domain/TenantModel.d.ts +11 -0
  150. package/api/domain/TenantModel.js +68 -0
  151. package/api/domain/TenantModel.js.map +1 -0
  152. package/api/domain/TenantModelExtension.d.ts +11 -0
  153. package/api/domain/TenantModelExtension.js +5 -0
  154. package/api/domain/TenantModelExtension.js.map +1 -0
  155. package/api/domain/errors.d.ts +33 -0
  156. package/api/domain/errors.js +58 -0
  157. package/api/domain/errors.js.map +1 -0
  158. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  159. package/api/features/AddCmsPermissions/AddCmsPermissions.js +48 -0
  160. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  161. package/api/features/AddCmsPermissions/feature.d.ts +4 -0
  162. package/api/features/AddCmsPermissions/feature.js +11 -0
  163. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  164. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +24 -0
  165. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +81 -0
  166. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
  167. package/api/features/CreateAndInstallTenant/abstractions.d.ts +26 -0
  168. package/api/features/CreateAndInstallTenant/abstractions.js +5 -0
  169. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
  170. package/api/features/CreateAndInstallTenant/feature.d.ts +4 -0
  171. package/api/features/CreateAndInstallTenant/feature.js +11 -0
  172. package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
  173. package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
  174. package/api/features/CreateTenant/CreateTenantRepository.js +43 -0
  175. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
  176. package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
  177. package/api/features/CreateTenant/CreateTenantUseCase.js +40 -0
  178. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
  179. package/api/features/CreateTenant/abstractions.d.ts +41 -0
  180. package/api/features/CreateTenant/abstractions.js +6 -0
  181. package/api/features/CreateTenant/abstractions.js.map +1 -0
  182. package/api/features/CreateTenant/feature.d.ts +4 -0
  183. package/api/features/CreateTenant/feature.js +13 -0
  184. package/api/features/CreateTenant/feature.js.map +1 -0
  185. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
  186. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +27 -0
  187. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
  188. package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +4 -0
  189. package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
  190. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
  191. package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
  192. package/api/features/DisableTenant/DisableTenantUseCase.js +53 -0
  193. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
  194. package/api/features/DisableTenant/abstractions.d.ts +19 -0
  195. package/api/features/DisableTenant/abstractions.js +5 -0
  196. package/api/features/DisableTenant/abstractions.js.map +1 -0
  197. package/api/features/DisableTenant/events.d.ts +27 -0
  198. package/api/features/DisableTenant/events.js +23 -0
  199. package/api/features/DisableTenant/events.js.map +1 -0
  200. package/api/features/DisableTenant/feature.d.ts +4 -0
  201. package/api/features/DisableTenant/feature.js +11 -0
  202. package/api/features/DisableTenant/feature.js.map +1 -0
  203. package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
  204. package/api/features/EnableTenant/EnableTenantUseCase.js +55 -0
  205. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
  206. package/api/features/EnableTenant/abstractions.d.ts +19 -0
  207. package/api/features/EnableTenant/abstractions.js +5 -0
  208. package/api/features/EnableTenant/abstractions.js.map +1 -0
  209. package/api/features/EnableTenant/events.d.ts +27 -0
  210. package/api/features/EnableTenant/events.js +23 -0
  211. package/api/features/EnableTenant/events.js.map +1 -0
  212. package/api/features/EnableTenant/feature.d.ts +4 -0
  213. package/api/features/EnableTenant/feature.js +11 -0
  214. package/api/features/EnableTenant/feature.js.map +1 -0
  215. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
  216. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +32 -0
  217. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
  218. package/api/features/GetCurrentTenant/abstractions.d.ts +24 -0
  219. package/api/features/GetCurrentTenant/abstractions.js +5 -0
  220. package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
  221. package/api/features/GetCurrentTenant/feature.d.ts +4 -0
  222. package/api/features/GetCurrentTenant/feature.js +11 -0
  223. package/api/features/GetCurrentTenant/feature.js.map +1 -0
  224. package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
  225. package/api/features/GetTenantById/GetTenantByIdRepository.js +44 -0
  226. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
  227. package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
  228. package/api/features/GetTenantById/GetTenantByIdUseCase.js +23 -0
  229. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
  230. package/api/features/GetTenantById/abstractions.d.ts +38 -0
  231. package/api/features/GetTenantById/abstractions.js +6 -0
  232. package/api/features/GetTenantById/abstractions.js.map +1 -0
  233. package/api/features/GetTenantById/feature.d.ts +4 -0
  234. package/api/features/GetTenantById/feature.js +13 -0
  235. package/api/features/GetTenantById/feature.js.map +1 -0
  236. package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
  237. package/api/features/UpdateTenant/UpdateTenantRepository.js +51 -0
  238. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
  239. package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
  240. package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
  241. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
  242. package/api/features/UpdateTenant/abstractions.d.ts +39 -0
  243. package/api/features/UpdateTenant/abstractions.js +6 -0
  244. package/api/features/UpdateTenant/abstractions.js.map +1 -0
  245. package/api/features/UpdateTenant/feature.d.ts +4 -0
  246. package/api/features/UpdateTenant/feature.js +13 -0
  247. package/api/features/UpdateTenant/feature.js.map +1 -0
  248. package/api/graphql/CreateTenantSchema.d.ts +16 -0
  249. package/api/graphql/CreateTenantSchema.js +83 -0
  250. package/api/graphql/CreateTenantSchema.js.map +1 -0
  251. package/api/graphql/DisableTenantSchema.d.ts +8 -0
  252. package/api/graphql/DisableTenantSchema.js +31 -0
  253. package/api/graphql/DisableTenantSchema.js.map +1 -0
  254. package/api/graphql/EnableTenantSchema.d.ts +8 -0
  255. package/api/graphql/EnableTenantSchema.js +31 -0
  256. package/api/graphql/EnableTenantSchema.js.map +1 -0
  257. package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
  258. package/api/graphql/GetCurrentTenantSchema.js +49 -0
  259. package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
  260. package/api/graphql/InstallTenantSchema.d.ts +8 -0
  261. package/api/graphql/InstallTenantSchema.js +43 -0
  262. package/api/graphql/InstallTenantSchema.js.map +1 -0
  263. package/exports/admin/tenancy.d.ts +7 -0
  264. package/exports/admin/tenancy.js +4 -0
  265. package/exports/api/tenant-manager.d.ts +9 -0
  266. package/exports/api/tenant-manager.js +8 -0
  267. package/index.d.ts +1 -0
  268. package/index.js +1 -0
  269. package/package.json +46 -0
  270. package/shared/Tenant.d.ts +21 -0
  271. package/shared/Tenant.js +27 -0
  272. package/shared/Tenant.js.map +1 -0
  273. package/shared/constants.d.ts +1 -0
  274. package/shared/constants.js +4 -0
  275. package/shared/constants.js.map +1 -0
@@ -0,0 +1,3 @@
1
+ export declare const DisableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IDisableTenantUseCase;
3
+ }, []>;
@@ -0,0 +1,21 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { DisableTenantUseCase } from "./abstractions.js";
3
+ import { DisableTenantUseCase as external_DisableTenantUseCase_js_DisableTenantUseCase } from "./DisableTenantUseCase.js";
4
+ import { DisableTenantRepository } from "./DisableTenantRepository.js";
5
+ import { DisableTenantGateway } from "./DisableTenantGateway.js";
6
+ const DisableTenantFeature = createFeature({
7
+ name: "DisableTenant",
8
+ register (container) {
9
+ container.register(external_DisableTenantUseCase_js_DisableTenantUseCase);
10
+ container.register(DisableTenantRepository).inSingletonScope();
11
+ container.register(DisableTenantGateway).inSingletonScope();
12
+ },
13
+ resolve (container) {
14
+ return {
15
+ useCase: container.resolve(DisableTenantUseCase)
16
+ };
17
+ }
18
+ });
19
+ export { DisableTenantFeature };
20
+
21
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/DisableTenant/feature.js","sources":["../../../src/admin/DisableTenant/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { DisableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DisableTenantUseCase } from \"./DisableTenantUseCase.js\";\nimport { DisableTenantRepository } from \"./DisableTenantRepository.js\";\nimport { DisableTenantGateway } from \"./DisableTenantGateway.js\";\n\nexport const DisableTenantFeature = createFeature({\n name: \"DisableTenant\",\n register(container) {\n container.register(DisableTenantUseCase);\n container.register(DisableTenantRepository).inSingletonScope();\n container.register(DisableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"names":["DisableTenantFeature","createFeature","container","DisableTenantUseCase","DisableTenantRepository","DisableTenantGateway","UseCaseAbstraction"],"mappings":";;;;;AAMO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;QAC5DF,UAAU,QAAQ,CAACG,sBAAsB,gBAAgB;IAC7D;IACA,SAAQH,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACI;QAC/B;IACJ;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
@@ -0,0 +1,2 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
@@ -0,0 +1,4 @@
1
+ import type { TenantEntry } from "../../admin/types.js";
2
+ export declare const useDisableTenant: (tenant: TenantEntry) => {
3
+ disableTenant: () => Promise<void>;
4
+ };
@@ -0,0 +1,18 @@
1
+ import { useCallback } from "react";
2
+ import { useFeature } from "@webiny/app-admin";
3
+ import { DisableTenantFeature } from "./feature.js";
4
+ const useDisableTenant = (tenant)=>{
5
+ const { useCase } = useFeature(DisableTenantFeature);
6
+ const disableTenant = useCallback(async ()=>{
7
+ await useCase.execute(tenant.entryId);
8
+ }, [
9
+ useCase,
10
+ tenant
11
+ ]);
12
+ return {
13
+ disableTenant
14
+ };
15
+ };
16
+ export { useDisableTenant };
17
+
18
+ //# sourceMappingURL=useDisableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/DisableTenant/useDisableTenant.js","sources":["../../../src/admin/DisableTenant/useDisableTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { DisableTenantFeature } from \"./feature.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\n\nexport const useDisableTenant = (tenant: TenantEntry) => {\n const { useCase } = useFeature(DisableTenantFeature);\n\n const disableTenant = useCallback(async () => {\n await useCase.execute(tenant.entryId);\n }, [useCase, tenant]);\n\n return { disableTenant };\n};\n"],"names":["useDisableTenant","tenant","useCase","useFeature","DisableTenantFeature","disableTenant","useCallback"],"mappings":";;;AAKO,MAAMA,mBAAmB,CAACC;IAC7B,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAE/B,MAAMC,gBAAgBC,YAAY;QAC9B,MAAMJ,QAAQ,OAAO,CAACD,OAAO,OAAO;IACxC,GAAG;QAACC;QAASD;KAAO;IAEpB,OAAO;QAAEI;IAAc;AAC3B"}
@@ -0,0 +1,11 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/index.js";
2
+ import { EnableTenantGateway as GatewayAbstraction } from "./abstractions.js";
3
+ declare class EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {
4
+ private client;
5
+ constructor(client: MainGraphQLClient.Interface);
6
+ enableTenant(tenantId: string): Promise<boolean>;
7
+ }
8
+ export declare const EnableTenantGateway: typeof EnableTenantGraphQLGateway & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantGateway>;
10
+ };
11
+ export {};
@@ -0,0 +1,42 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/index.js";
2
+ import { EnableTenantGateway } from "./abstractions.js";
3
+ const ENABLE_TENANT = `
4
+ mutation EnableTenant($tenantId: ID!) {
5
+ tenantManager {
6
+ enableTenant(tenantId: $tenantId) {
7
+ data
8
+ error {
9
+ code
10
+ message
11
+ data
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ class EnableTenantGraphQLGateway {
18
+ constructor(client){
19
+ this.client = client;
20
+ }
21
+ async enableTenant(tenantId) {
22
+ const response = await this.client.execute({
23
+ query: ENABLE_TENANT,
24
+ variables: {
25
+ tenantId
26
+ }
27
+ });
28
+ const envelope = response.tenantManager.enableTenant;
29
+ if (envelope.error) throw new Error(envelope.error.message);
30
+ if (!envelope.data) throw new Error("Unable to enable tenant");
31
+ return envelope.data;
32
+ }
33
+ }
34
+ const EnableTenantGateway_EnableTenantGateway = EnableTenantGateway.createImplementation({
35
+ implementation: EnableTenantGraphQLGateway,
36
+ dependencies: [
37
+ MainGraphQLClient
38
+ ]
39
+ });
40
+ export { EnableTenantGateway_EnableTenantGateway as EnableTenantGateway };
41
+
42
+ //# sourceMappingURL=EnableTenantGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/EnableTenantGateway.js","sources":["../../../src/admin/EnableTenant/EnableTenantGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport { EnableTenantGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst ENABLE_TENANT = /* GraphQL */ `\n mutation EnableTenant($tenantId: ID!) {\n tenantManager {\n enableTenant(tenantId: $tenantId) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype EnableTenantResponse = {\n tenantManager: {\n enableTenant:\n | {\n data: boolean;\n error: null;\n }\n | {\n data: null;\n error: {\n code: string;\n message: string;\n data: Record<string, any>;\n };\n };\n };\n};\n\nclass EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async enableTenant(tenantId: string): Promise<boolean> {\n const response = await this.client.execute<EnableTenantResponse>({\n query: ENABLE_TENANT,\n variables: { tenantId }\n });\n\n const envelope = response.tenantManager.enableTenant;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n if (!envelope.data) {\n throw new Error(\"Unable to enable tenant\");\n }\n\n return envelope.data;\n }\n}\n\nexport const EnableTenantGateway = GatewayAbstraction.createImplementation({\n implementation: EnableTenantGraphQLGateway,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["ENABLE_TENANT","EnableTenantGraphQLGateway","client","tenantId","response","envelope","Error","EnableTenantGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAGA,MAAMA,gBAA8B,CAAC;;;;;;;;;;;;;AAarC,CAAC;AAoBD,MAAMC;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,aAAaC,QAAgB,EAAoB;QACnD,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB;YAC7D,OAAOJ;YACP,WAAW;gBAAEG;YAAS;QAC1B;QAEA,MAAME,WAAWD,SAAS,aAAa,CAAC,YAAY;QACpD,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,IAAI,CAACA,SAAS,IAAI,EACd,MAAM,IAAIC,MAAM;QAGpB,OAAOD,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,0CAAsBC,oBAAAA,oBAAuC,CAAC;IACvE,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -0,0 +1,12 @@
1
+ import { EnableTenantRepository as RepositoryAbstraction, EnableTenantGateway } from "./abstractions.js";
2
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
3
+ declare class EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {
4
+ private gateway;
5
+ private cacheProvider;
6
+ constructor(gateway: EnableTenantGateway.Interface, cacheProvider: ContentEntriesCacheProvider.Interface);
7
+ execute(tenantId: string): Promise<void>;
8
+ }
9
+ export declare const EnableTenantRepository: typeof EnableTenantRepositoryImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantRepository>;
11
+ };
12
+ export {};
@@ -0,0 +1,33 @@
1
+ import { EnableTenantGateway, EnableTenantRepository } from "./abstractions.js";
2
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
3
+ import { TENANT_MODEL_ID } from "../../shared/constants.js";
4
+ class EnableTenantRepositoryImpl {
5
+ constructor(gateway, cacheProvider){
6
+ this.gateway = gateway;
7
+ this.cacheProvider = cacheProvider;
8
+ }
9
+ async execute(tenantId) {
10
+ await this.gateway.enableTenant(tenantId);
11
+ const cache = this.cacheProvider.get(TENANT_MODEL_ID);
12
+ cache.updateItems((item)=>{
13
+ if (item.entryId === tenantId) return {
14
+ ...item,
15
+ values: {
16
+ ...item.values,
17
+ status: "enabled"
18
+ }
19
+ };
20
+ return item;
21
+ });
22
+ }
23
+ }
24
+ const EnableTenantRepository_EnableTenantRepository = EnableTenantRepository.createImplementation({
25
+ implementation: EnableTenantRepositoryImpl,
26
+ dependencies: [
27
+ EnableTenantGateway,
28
+ ContentEntriesCacheProvider
29
+ ]
30
+ });
31
+ export { EnableTenantRepository_EnableTenantRepository as EnableTenantRepository };
32
+
33
+ //# sourceMappingURL=EnableTenantRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/EnableTenantRepository.js","sources":["../../../src/admin/EnableTenant/EnableTenantRepository.ts"],"sourcesContent":["import {\n EnableTenantRepository as RepositoryAbstraction,\n EnableTenantGateway\n} from \"./abstractions.js\";\nimport { ContentEntriesCacheProvider } from \"@webiny/app-headless-cms/features/contentEntry/abstractions.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private gateway: EnableTenantGateway.Interface,\n private cacheProvider: ContentEntriesCacheProvider.Interface\n ) {}\n\n async execute(tenantId: string): Promise<void> {\n await this.gateway.enableTenant(tenantId);\n\n const cache = this.cacheProvider.get(TENANT_MODEL_ID);\n cache.updateItems(item => {\n if (item.entryId === tenantId) {\n return { ...item, values: { ...item.values, status: \"enabled\" } };\n }\n return item;\n });\n }\n}\n\nexport const EnableTenantRepository = RepositoryAbstraction.createImplementation({\n implementation: EnableTenantRepositoryImpl,\n dependencies: [EnableTenantGateway, ContentEntriesCacheProvider]\n});\n"],"names":["EnableTenantRepositoryImpl","gateway","cacheProvider","tenantId","cache","TENANT_MODEL_ID","item","EnableTenantRepository","RepositoryAbstraction","EnableTenantGateway","ContentEntriesCacheProvider"],"mappings":";;;AAOA,MAAMA;IACF,YACYC,OAAsC,EACtCC,aAAoD,CAC9D;aAFUD,OAAO,GAAPA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,QAAgB,EAAiB;QAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAACA;QAEhC,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAACC;QACrCD,MAAM,WAAW,CAACE,CAAAA;YACd,IAAIA,KAAK,OAAO,KAAKH,UACjB,OAAO;gBAAE,GAAGG,IAAI;gBAAE,QAAQ;oBAAE,GAAGA,KAAK,MAAM;oBAAE,QAAQ;gBAAU;YAAE;YAEpE,OAAOA;QACX;IACJ;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAA0C,CAAC;IAC7E,gBAAgBR;IAChB,cAAc;QAACS;QAAqBC;KAA4B;AACpE"}
@@ -0,0 +1,10 @@
1
+ import { EnableTenantUseCase as UseCaseAbstraction, EnableTenantRepository } from "./abstractions.js";
2
+ declare class EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private repository;
4
+ constructor(repository: EnableTenantRepository.Interface);
5
+ execute(tenantId: string): Promise<void>;
6
+ }
7
+ export declare const EnableTenantUseCase: typeof EnableTenantUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,18 @@
1
+ import { EnableTenantRepository, EnableTenantUseCase } from "./abstractions.js";
2
+ class EnableTenantUseCaseImpl {
3
+ constructor(repository){
4
+ this.repository = repository;
5
+ }
6
+ async execute(tenantId) {
7
+ return this.repository.execute(tenantId);
8
+ }
9
+ }
10
+ const EnableTenantUseCase_EnableTenantUseCase = EnableTenantUseCase.createImplementation({
11
+ implementation: EnableTenantUseCaseImpl,
12
+ dependencies: [
13
+ EnableTenantRepository
14
+ ]
15
+ });
16
+ export { EnableTenantUseCase_EnableTenantUseCase as EnableTenantUseCase };
17
+
18
+ //# sourceMappingURL=EnableTenantUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/EnableTenantUseCase.js","sources":["../../../src/admin/EnableTenant/EnableTenantUseCase.ts"],"sourcesContent":["import {\n EnableTenantUseCase as UseCaseAbstraction,\n EnableTenantRepository\n} from \"./abstractions.js\";\n\nclass EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: EnableTenantRepository.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n return this.repository.execute(tenantId);\n }\n}\n\nexport const EnableTenantUseCase = UseCaseAbstraction.createImplementation({\n implementation: EnableTenantUseCaseImpl,\n dependencies: [EnableTenantRepository]\n});\n"],"names":["EnableTenantUseCaseImpl","repository","tenantId","EnableTenantUseCase","UseCaseAbstraction","EnableTenantRepository"],"mappings":";AAKA,MAAMA;IACF,YAAoBC,UAA4C,CAAE;aAA9CA,UAAU,GAAVA;IAA+C;IAEnE,MAAM,QAAQC,QAAgB,EAAiB;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACnC;AACJ;AAEO,MAAMC,0CAAsBC,oBAAAA,oBAAuC,CAAC;IACvE,gBAAgBJ;IAChB,cAAc;QAACK;KAAuB;AAC1C"}
@@ -0,0 +1,21 @@
1
+ export interface IEnableTenantUseCase {
2
+ execute(tenantId: string): Promise<void>;
3
+ }
4
+ export declare const EnableTenantUseCase: import("@webiny/di").Abstraction<IEnableTenantUseCase>;
5
+ export declare namespace EnableTenantUseCase {
6
+ type Interface = IEnableTenantUseCase;
7
+ }
8
+ export interface IEnableTenantRepository {
9
+ execute(tenantId: string): Promise<void>;
10
+ }
11
+ export declare const EnableTenantRepository: import("@webiny/di").Abstraction<IEnableTenantRepository>;
12
+ export declare namespace EnableTenantRepository {
13
+ type Interface = IEnableTenantRepository;
14
+ }
15
+ export interface IEnableTenantGateway {
16
+ enableTenant(tenantId: string): Promise<boolean>;
17
+ }
18
+ export declare const EnableTenantGateway: import("@webiny/di").Abstraction<IEnableTenantGateway>;
19
+ export declare namespace EnableTenantGateway {
20
+ type Interface = IEnableTenantGateway;
21
+ }
@@ -0,0 +1,7 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const EnableTenantUseCase = createAbstraction("EnableTenantUseCase");
3
+ const EnableTenantRepository = createAbstraction("EnableTenantRepository");
4
+ const EnableTenantGateway = createAbstraction("EnableTenantGateway");
5
+ export { EnableTenantGateway, EnableTenantRepository, EnableTenantUseCase };
6
+
7
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/abstractions.js","sources":["../../../src/admin/EnableTenant/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\n// UseCase abstraction - only execute method\nexport interface IEnableTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantUseCase = createAbstraction<IEnableTenantUseCase>(\"EnableTenantUseCase\");\n\nexport namespace EnableTenantUseCase {\n export type Interface = IEnableTenantUseCase;\n}\n\n// Repository abstraction - delegates to gateway\nexport interface IEnableTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantRepository =\n createAbstraction<IEnableTenantRepository>(\"EnableTenantRepository\");\n\nexport namespace EnableTenantRepository {\n export type Interface = IEnableTenantRepository;\n}\n\n// Gateway abstraction - GraphQL call\nexport interface IEnableTenantGateway {\n enableTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const EnableTenantGateway = createAbstraction<IEnableTenantGateway>(\"EnableTenantGateway\");\n\nexport namespace EnableTenantGateway {\n export type Interface = IEnableTenantGateway;\n}\n"],"names":["EnableTenantUseCase","createAbstraction","EnableTenantRepository","EnableTenantGateway"],"mappings":";AAOO,MAAMA,sBAAsBC,kBAAwC;AAWpE,MAAMC,yBACTD,kBAA2C;AAWxC,MAAME,sBAAsBF,kBAAwC"}
@@ -0,0 +1,3 @@
1
+ export declare const EnableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IEnableTenantUseCase;
3
+ }, []>;
@@ -0,0 +1,21 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { EnableTenantUseCase } from "./abstractions.js";
3
+ import { EnableTenantUseCase as external_EnableTenantUseCase_js_EnableTenantUseCase } from "./EnableTenantUseCase.js";
4
+ import { EnableTenantRepository } from "./EnableTenantRepository.js";
5
+ import { EnableTenantGateway } from "./EnableTenantGateway.js";
6
+ const EnableTenantFeature = createFeature({
7
+ name: "EnableTenant",
8
+ register (container) {
9
+ container.register(external_EnableTenantUseCase_js_EnableTenantUseCase);
10
+ container.register(EnableTenantRepository).inSingletonScope();
11
+ container.register(EnableTenantGateway).inSingletonScope();
12
+ },
13
+ resolve (container) {
14
+ return {
15
+ useCase: container.resolve(EnableTenantUseCase)
16
+ };
17
+ }
18
+ });
19
+ export { EnableTenantFeature };
20
+
21
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/feature.js","sources":["../../../src/admin/EnableTenant/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { EnableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { EnableTenantUseCase } from \"./EnableTenantUseCase.js\";\nimport { EnableTenantRepository } from \"./EnableTenantRepository.js\";\nimport { EnableTenantGateway } from \"./EnableTenantGateway.js\";\n\nexport const EnableTenantFeature = createFeature({\n name: \"EnableTenant\",\n register(container) {\n container.register(EnableTenantUseCase);\n container.register(EnableTenantRepository).inSingletonScope();\n container.register(EnableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"names":["EnableTenantFeature","createFeature","container","EnableTenantUseCase","EnableTenantRepository","EnableTenantGateway","UseCaseAbstraction"],"mappings":";;;;;AAMO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wBAAwB,gBAAgB;QAC3DF,UAAU,QAAQ,CAACG,qBAAqB,gBAAgB;IAC5D;IACA,SAAQH,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACI;QAC/B;IACJ;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
@@ -0,0 +1,2 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
@@ -0,0 +1,4 @@
1
+ export declare const useEnableTenant: () => {
2
+ enableTenant: (tenantId: string) => Promise<void>;
3
+ loading: boolean;
4
+ };
@@ -0,0 +1,24 @@
1
+ import { useCallback, useState } from "react";
2
+ import { useFeature } from "@webiny/app-admin";
3
+ import { EnableTenantFeature } from "./feature.js";
4
+ const useEnableTenant = ()=>{
5
+ const { useCase } = useFeature(EnableTenantFeature);
6
+ const [loading, setLoading] = useState(false);
7
+ const enableTenant = useCallback(async (tenantId)=>{
8
+ setLoading(true);
9
+ try {
10
+ await useCase.execute(tenantId);
11
+ } finally{
12
+ setLoading(false);
13
+ }
14
+ }, [
15
+ useCase
16
+ ]);
17
+ return {
18
+ enableTenant,
19
+ loading
20
+ };
21
+ };
22
+ export { useEnableTenant };
23
+
24
+ //# sourceMappingURL=useEnableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/EnableTenant/useEnableTenant.js","sources":["../../../src/admin/EnableTenant/useEnableTenant.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { EnableTenantFeature } from \"./feature.js\";\n\nexport const useEnableTenant = () => {\n const { useCase } = useFeature(EnableTenantFeature);\n const [loading, setLoading] = useState(false);\n\n const enableTenant = useCallback(\n async (tenantId: string) => {\n setLoading(true);\n\n try {\n await useCase.execute(tenantId);\n } finally {\n setLoading(false);\n }\n },\n [useCase]\n );\n\n return { enableTenant, loading };\n};\n"],"names":["useEnableTenant","useCase","useFeature","EnableTenantFeature","loading","setLoading","useState","enableTenant","useCallback","tenantId"],"mappings":";;;AAIO,MAAMA,kBAAkB;IAC3B,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAC/B,MAAM,CAACC,SAASC,WAAW,GAAGC,SAAS;IAEvC,MAAMC,eAAeC,YACjB,OAAOC;QACHJ,WAAW;QAEX,IAAI;YACA,MAAMJ,QAAQ,OAAO,CAACQ;QAC1B,SAAU;YACNJ,WAAW;QACf;IACJ,GACA;QAACJ;KAAQ;IAGb,OAAO;QAAEM;QAAcH;IAAQ;AACnC"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const Extension: () => React.JSX.Element;
@@ -0,0 +1,49 @@
1
+ import react from "react";
2
+ import { AdminConfig, HasPermission, RegisterFeature, useRouter } from "@webiny/app-admin";
3
+ import { Routes } from "@webiny/app-headless-cms";
4
+ import { ReactComponent } from "@webiny/icons/business.svg";
5
+ import { TenantEntryList } from "./TenantEntryList.js";
6
+ import { CurrentTenantProvider } from "./CurrentTenantProvider.js";
7
+ import { CurrentTenantFeature } from "./CurrentTenant/feature.js";
8
+ import { DisableTenantFeature } from "./DisableTenant/index.js";
9
+ import { EnableTenantFeature } from "./EnableTenant/index.js";
10
+ import { TenantSelector } from "./TenantSelector.js";
11
+ import { IsRootTenant } from "./IsRootTenant.js";
12
+ import { TENANT_MODEL_ID } from "../shared/constants.js";
13
+ import { SecurityPermission } from "./SecurityPermission.js";
14
+ import { TmPermissionsFeature } from "./features/permissions/feature.js";
15
+ import { InstallTenantFeature } from "./InstallTenant/index.js";
16
+ const { Menu: Menu } = AdminConfig;
17
+ const Extension = ()=>{
18
+ const { getLink } = useRouter();
19
+ const link = getLink(Routes.ContentEntries.List, {
20
+ modelId: TENANT_MODEL_ID
21
+ });
22
+ const icon = /*#__PURE__*/ react.createElement(Menu.Link.Icon, {
23
+ element: /*#__PURE__*/ react.createElement(ReactComponent, null),
24
+ label: "Tenant"
25
+ });
26
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
27
+ feature: CurrentTenantFeature
28
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
29
+ feature: TmPermissionsFeature
30
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
31
+ feature: InstallTenantFeature
32
+ }), /*#__PURE__*/ react.createElement(CurrentTenantProvider, null), /*#__PURE__*/ react.createElement(TenantSelector, null), /*#__PURE__*/ react.createElement(TenantEntryList, null), /*#__PURE__*/ react.createElement(SecurityPermission, null), /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(IsRootTenant, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
33
+ feature: DisableTenantFeature
34
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
35
+ feature: EnableTenantFeature
36
+ }), /*#__PURE__*/ react.createElement(HasPermission, {
37
+ name: "tm.tenant"
38
+ }, /*#__PURE__*/ react.createElement(Menu, {
39
+ name: "tenantManager",
40
+ element: /*#__PURE__*/ react.createElement(Menu.Link, {
41
+ text: "Tenant Manager",
42
+ icon: icon,
43
+ to: link
44
+ })
45
+ })))));
46
+ };
47
+ export { Extension };
48
+
49
+ //# sourceMappingURL=Extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/Extension.js","sources":["../../src/admin/Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, HasPermission, RegisterFeature } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\nimport { ReactComponent as TenantIcon } from \"@webiny/icons/business.svg\";\n\nimport { TenantEntryList } from \"./TenantEntryList.js\";\nimport { CurrentTenantProvider } from \"./CurrentTenantProvider.js\";\nimport { CurrentTenantFeature } from \"./CurrentTenant/feature.js\";\nimport { DisableTenantFeature } from \"./DisableTenant/index.js\";\nimport { EnableTenantFeature } from \"./EnableTenant/index.js\";\nimport { TenantSelector } from \"./TenantSelector.js\";\nimport { IsRootTenant } from \"./IsRootTenant.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { SecurityPermission } from \"./SecurityPermission.js\";\nimport { TmPermissionsFeature } from \"./features/permissions/feature.js\";\nimport { InstallTenantFeature } from \"./InstallTenant/index.js\";\n\nconst { Menu } = AdminConfig;\n\nexport const Extension = () => {\n const { getLink } = useRouter();\n\n const link = getLink(Routes.ContentEntries.List, { modelId: TENANT_MODEL_ID });\n\n const icon = <Menu.Link.Icon element={<TenantIcon />} label={\"Tenant\"} />;\n\n return (\n <>\n <RegisterFeature feature={CurrentTenantFeature} />\n <RegisterFeature feature={TmPermissionsFeature} />\n <RegisterFeature feature={InstallTenantFeature} />\n <CurrentTenantProvider />\n <TenantSelector />\n <TenantEntryList />\n <SecurityPermission />\n <AdminConfig>\n <IsRootTenant>\n <RegisterFeature feature={DisableTenantFeature} />\n <RegisterFeature feature={EnableTenantFeature} />\n <HasPermission name={\"tm.tenant\"}>\n <Menu\n name=\"tenantManager\"\n element={<Menu.Link text=\"Tenant Manager\" icon={icon} to={link} />}\n />\n </HasPermission>\n </IsRootTenant>\n </AdminConfig>\n </>\n );\n};\n"],"names":["Menu","AdminConfig","Extension","getLink","useRouter","link","Routes","TENANT_MODEL_ID","icon","TenantIcon","RegisterFeature","CurrentTenantFeature","TmPermissionsFeature","InstallTenantFeature","CurrentTenantProvider","TenantSelector","TenantEntryList","SecurityPermission","IsRootTenant","DisableTenantFeature","EnableTenantFeature","HasPermission"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,EAAEA,MAAAA,IAAI,EAAE,GAAGC;AAEV,MAAMC,YAAY;IACrB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,MAAMC,OAAOF,QAAQG,OAAO,cAAc,CAAC,IAAI,EAAE;QAAE,SAASC;IAAgB;IAE5E,MAAMC,OAAO,WAAPA,GAAO,oBAACR,KAAK,IAAI,CAAC,IAAI;QAAC,uBAAS,oBAACS,gBAAUA;QAAK,OAAO;;IAE7D,OAAO,WAAP,GACI,wDACI,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACC,uBAAqBA,OAAAA,WAAAA,GACtB,oBAACC,gBAAcA,OAAAA,WAAAA,GACf,oBAACC,iBAAeA,OAAAA,WAAAA,GAChB,oBAACC,oBAAkBA,OAAAA,WAAAA,GACnB,oBAAChB,aAAWA,MAAAA,WAAAA,GACR,oBAACiB,cAAYA,MAAAA,WAAAA,GACT,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACC,eAAaA;QAAC,MAAM;qBACjB,oBAACrB,MAAIA;QACD,MAAK;QACL,uBAAS,oBAACA,KAAK,IAAI;YAAC,MAAK;YAAiB,MAAMQ;YAAM,IAAIH;;;AAOtF"}
@@ -0,0 +1,11 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/index.js";
2
+ import { InstallTenantGateway as GatewayAbstraction } from "./abstractions.js";
3
+ declare class InstallTenantGraphQLGateway implements GatewayAbstraction.Interface {
4
+ private client;
5
+ constructor(client: MainGraphQLClient.Interface);
6
+ installTenant(tenantId: string): Promise<boolean>;
7
+ }
8
+ export declare const InstallTenantGateway: typeof InstallTenantGraphQLGateway & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IInstallTenantGateway>;
10
+ };
11
+ export {};
@@ -0,0 +1,42 @@
1
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/index.js";
2
+ import { InstallTenantGateway } from "./abstractions.js";
3
+ const INSTALL_TENANT = `
4
+ mutation InstallTenant($tenantId: ID!) {
5
+ tenantManager {
6
+ installTenant(tenantId: $tenantId) {
7
+ data
8
+ error {
9
+ code
10
+ message
11
+ data
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ class InstallTenantGraphQLGateway {
18
+ constructor(client){
19
+ this.client = client;
20
+ }
21
+ async installTenant(tenantId) {
22
+ const response = await this.client.execute({
23
+ query: INSTALL_TENANT,
24
+ variables: {
25
+ tenantId
26
+ }
27
+ });
28
+ const envelope = response.tenantManager.installTenant;
29
+ if (envelope.error) throw new Error(envelope.error.message);
30
+ if (!envelope.data) throw new Error("Unable to install tenant");
31
+ return envelope.data;
32
+ }
33
+ }
34
+ const InstallTenantGateway_InstallTenantGateway = InstallTenantGateway.createImplementation({
35
+ implementation: InstallTenantGraphQLGateway,
36
+ dependencies: [
37
+ MainGraphQLClient
38
+ ]
39
+ });
40
+ export { InstallTenantGateway_InstallTenantGateway as InstallTenantGateway };
41
+
42
+ //# sourceMappingURL=InstallTenantGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/InstallTenantGateway.js","sources":["../../../src/admin/InstallTenant/InstallTenantGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport { InstallTenantGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst INSTALL_TENANT = /* GraphQL */ `\n mutation InstallTenant($tenantId: ID!) {\n tenantManager {\n installTenant(tenantId: $tenantId) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype InstallTenantResponse = {\n tenantManager: {\n installTenant:\n | {\n data: boolean;\n error: null;\n }\n | {\n data: null;\n error: {\n code: string;\n message: string;\n data: Record<string, any>;\n };\n };\n };\n};\n\nclass InstallTenantGraphQLGateway implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async installTenant(tenantId: string): Promise<boolean> {\n const response = await this.client.execute<InstallTenantResponse>({\n query: INSTALL_TENANT,\n variables: { tenantId }\n });\n\n const envelope = response.tenantManager.installTenant;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n if (!envelope.data) {\n throw new Error(\"Unable to install tenant\");\n }\n\n return envelope.data;\n }\n}\n\nexport const InstallTenantGateway = GatewayAbstraction.createImplementation({\n implementation: InstallTenantGraphQLGateway,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["INSTALL_TENANT","InstallTenantGraphQLGateway","client","tenantId","response","envelope","Error","InstallTenantGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAGA,MAAMA,iBAA+B,CAAC;;;;;;;;;;;;;AAatC,CAAC;AAoBD,MAAMC;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,cAAcC,QAAgB,EAAoB;QACpD,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAC9D,OAAOJ;YACP,WAAW;gBAAEG;YAAS;QAC1B;QAEA,MAAME,WAAWD,SAAS,aAAa,CAAC,aAAa;QACrD,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,IAAI,CAACA,SAAS,IAAI,EACd,MAAM,IAAIC,MAAM;QAGpB,OAAOD,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -0,0 +1,12 @@
1
+ import { InstallTenantRepository as RepositoryAbstraction, InstallTenantGateway } from "./abstractions.js";
2
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
3
+ declare class InstallTenantRepositoryImpl implements RepositoryAbstraction.Interface {
4
+ private gateway;
5
+ private cacheProvider;
6
+ constructor(gateway: InstallTenantGateway.Interface, cacheProvider: ContentEntriesCacheProvider.Interface);
7
+ execute(tenantId: string): Promise<void>;
8
+ }
9
+ export declare const InstallTenantRepository: typeof InstallTenantRepositoryImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IInstallTenantRepository>;
11
+ };
12
+ export {};
@@ -0,0 +1,34 @@
1
+ import { InstallTenantGateway, InstallTenantRepository } from "./abstractions.js";
2
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
3
+ import { TENANT_MODEL_ID } from "../../shared/constants.js";
4
+ class InstallTenantRepositoryImpl {
5
+ constructor(gateway, cacheProvider){
6
+ this.gateway = gateway;
7
+ this.cacheProvider = cacheProvider;
8
+ }
9
+ async execute(tenantId) {
10
+ await this.gateway.installTenant(tenantId);
11
+ const cache = this.cacheProvider.get(TENANT_MODEL_ID);
12
+ cache.updateItems((item)=>{
13
+ if (item.entryId === tenantId) return {
14
+ ...item,
15
+ values: {
16
+ ...item.values,
17
+ status: "enabled",
18
+ isInstalled: true
19
+ }
20
+ };
21
+ return item;
22
+ });
23
+ }
24
+ }
25
+ const InstallTenantRepository_InstallTenantRepository = InstallTenantRepository.createImplementation({
26
+ implementation: InstallTenantRepositoryImpl,
27
+ dependencies: [
28
+ InstallTenantGateway,
29
+ ContentEntriesCacheProvider
30
+ ]
31
+ });
32
+ export { InstallTenantRepository_InstallTenantRepository as InstallTenantRepository };
33
+
34
+ //# sourceMappingURL=InstallTenantRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/InstallTenantRepository.js","sources":["../../../src/admin/InstallTenant/InstallTenantRepository.ts"],"sourcesContent":["import {\n InstallTenantRepository as RepositoryAbstraction,\n InstallTenantGateway\n} from \"./abstractions.js\";\nimport { ContentEntriesCacheProvider } from \"@webiny/app-headless-cms/features/contentEntry/abstractions.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass InstallTenantRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private gateway: InstallTenantGateway.Interface,\n private cacheProvider: ContentEntriesCacheProvider.Interface\n ) {}\n\n async execute(tenantId: string): Promise<void> {\n await this.gateway.installTenant(tenantId);\n\n const cache = this.cacheProvider.get(TENANT_MODEL_ID);\n cache.updateItems(item => {\n if (item.entryId === tenantId) {\n return {\n ...item,\n values: { ...item.values, status: \"enabled\", isInstalled: true }\n };\n }\n return item;\n });\n }\n}\n\nexport const InstallTenantRepository = RepositoryAbstraction.createImplementation({\n implementation: InstallTenantRepositoryImpl,\n dependencies: [InstallTenantGateway, ContentEntriesCacheProvider]\n});\n"],"names":["InstallTenantRepositoryImpl","gateway","cacheProvider","tenantId","cache","TENANT_MODEL_ID","item","InstallTenantRepository","RepositoryAbstraction","InstallTenantGateway","ContentEntriesCacheProvider"],"mappings":";;;AAOA,MAAMA;IACF,YACYC,OAAuC,EACvCC,aAAoD,CAC9D;aAFUD,OAAO,GAAPA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,QAAgB,EAAiB;QAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAACA;QAEjC,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAACC;QACrCD,MAAM,WAAW,CAACE,CAAAA;YACd,IAAIA,KAAK,OAAO,KAAKH,UACjB,OAAO;gBACH,GAAGG,IAAI;gBACP,QAAQ;oBAAE,GAAGA,KAAK,MAAM;oBAAE,QAAQ;oBAAW,aAAa;gBAAK;YACnE;YAEJ,OAAOA;QACX;IACJ;AACJ;AAEO,MAAMC,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBR;IAChB,cAAc;QAACS;QAAsBC;KAA4B;AACrE"}
@@ -0,0 +1,10 @@
1
+ import { InstallTenantUseCase as UseCaseAbstraction, InstallTenantRepository } from "./abstractions.js";
2
+ declare class InstallTenantUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private repository;
4
+ constructor(repository: InstallTenantRepository.Interface);
5
+ execute(tenantId: string): Promise<void>;
6
+ }
7
+ export declare const InstallTenantUseCase: typeof InstallTenantUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IInstallTenantUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,18 @@
1
+ import { InstallTenantRepository, InstallTenantUseCase } from "./abstractions.js";
2
+ class InstallTenantUseCaseImpl {
3
+ constructor(repository){
4
+ this.repository = repository;
5
+ }
6
+ async execute(tenantId) {
7
+ return this.repository.execute(tenantId);
8
+ }
9
+ }
10
+ const InstallTenantUseCase_InstallTenantUseCase = InstallTenantUseCase.createImplementation({
11
+ implementation: InstallTenantUseCaseImpl,
12
+ dependencies: [
13
+ InstallTenantRepository
14
+ ]
15
+ });
16
+ export { InstallTenantUseCase_InstallTenantUseCase as InstallTenantUseCase };
17
+
18
+ //# sourceMappingURL=InstallTenantUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/InstallTenantUseCase.js","sources":["../../../src/admin/InstallTenant/InstallTenantUseCase.ts"],"sourcesContent":["import {\n InstallTenantUseCase as UseCaseAbstraction,\n InstallTenantRepository\n} from \"./abstractions.js\";\n\nclass InstallTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: InstallTenantRepository.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n return this.repository.execute(tenantId);\n }\n}\n\nexport const InstallTenantUseCase = UseCaseAbstraction.createImplementation({\n implementation: InstallTenantUseCaseImpl,\n dependencies: [InstallTenantRepository]\n});\n"],"names":["InstallTenantUseCaseImpl","repository","tenantId","InstallTenantUseCase","UseCaseAbstraction","InstallTenantRepository"],"mappings":";AAKA,MAAMA;IACF,YAAoBC,UAA6C,CAAE;aAA/CA,UAAU,GAAVA;IAAgD;IAEpE,MAAM,QAAQC,QAAgB,EAAiB;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACnC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBJ;IAChB,cAAc;QAACK;KAAwB;AAC3C"}
@@ -0,0 +1,21 @@
1
+ export interface IInstallTenantUseCase {
2
+ execute(tenantId: string): Promise<void>;
3
+ }
4
+ export declare const InstallTenantUseCase: import("@webiny/di").Abstraction<IInstallTenantUseCase>;
5
+ export declare namespace InstallTenantUseCase {
6
+ type Interface = IInstallTenantUseCase;
7
+ }
8
+ export interface IInstallTenantRepository {
9
+ execute(tenantId: string): Promise<void>;
10
+ }
11
+ export declare const InstallTenantRepository: import("@webiny/di").Abstraction<IInstallTenantRepository>;
12
+ export declare namespace InstallTenantRepository {
13
+ type Interface = IInstallTenantRepository;
14
+ }
15
+ export interface IInstallTenantGateway {
16
+ installTenant(tenantId: string): Promise<boolean>;
17
+ }
18
+ export declare const InstallTenantGateway: import("@webiny/di").Abstraction<IInstallTenantGateway>;
19
+ export declare namespace InstallTenantGateway {
20
+ type Interface = IInstallTenantGateway;
21
+ }
@@ -0,0 +1,7 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const InstallTenantUseCase = createAbstraction("InstallTenantUseCase");
3
+ const InstallTenantRepository = createAbstraction("InstallTenantRepository");
4
+ const InstallTenantGateway = createAbstraction("InstallTenantGateway");
5
+ export { InstallTenantGateway, InstallTenantRepository, InstallTenantUseCase };
6
+
7
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/abstractions.js","sources":["../../../src/admin/InstallTenant/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\nexport interface IInstallTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const InstallTenantUseCase =\n createAbstraction<IInstallTenantUseCase>(\"InstallTenantUseCase\");\n\nexport namespace InstallTenantUseCase {\n export type Interface = IInstallTenantUseCase;\n}\n\nexport interface IInstallTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const InstallTenantRepository =\n createAbstraction<IInstallTenantRepository>(\"InstallTenantRepository\");\n\nexport namespace InstallTenantRepository {\n export type Interface = IInstallTenantRepository;\n}\n\nexport interface IInstallTenantGateway {\n installTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const InstallTenantGateway =\n createAbstraction<IInstallTenantGateway>(\"InstallTenantGateway\");\n\nexport namespace InstallTenantGateway {\n export type Interface = IInstallTenantGateway;\n}\n"],"names":["InstallTenantUseCase","createAbstraction","InstallTenantRepository","InstallTenantGateway"],"mappings":";AAMO,MAAMA,uBACTC,kBAAyC;AAUtC,MAAMC,0BACTD,kBAA4C;AAUzC,MAAME,uBACTF,kBAAyC"}
@@ -0,0 +1,3 @@
1
+ export declare const InstallTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IInstallTenantUseCase;
3
+ }, []>;