@webiny/tenant-manager 0.0.0-unstable.3c5210ad37

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 (255) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +11 -0
  3. package/TenantManager.d.ts +2 -0
  4. package/TenantManager.js +12 -0
  5. package/TenantManager.js.map +1 -0
  6. package/admin/CurrentTenant/CurrentTenant.d.ts +6 -0
  7. package/admin/CurrentTenant/CurrentTenant.js +34 -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 +44 -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 +30 -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 +37 -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 +15 -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 +20 -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 +23 -0
  26. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
  27. package/admin/CurrentTenantProvider.d.ts +2 -0
  28. package/admin/CurrentTenantProvider.js +12 -0
  29. package/admin/CurrentTenantProvider.js.map +1 -0
  30. package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
  31. package/admin/DisableTenant/DisableTenantGateway.js +43 -0
  32. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
  33. package/admin/DisableTenant/DisableTenantRepository.d.ts +10 -0
  34. package/admin/DisableTenant/DisableTenantRepository.js +15 -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 +15 -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 +15 -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 +20 -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 +4 -0
  47. package/admin/DisableTenant/index.js.map +1 -0
  48. package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
  49. package/admin/DisableTenant/useDisableTenant.js +27 -0
  50. package/admin/DisableTenant/useDisableTenant.js.map +1 -0
  51. package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
  52. package/admin/EnableTenant/EnableTenantGateway.js +43 -0
  53. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
  54. package/admin/EnableTenant/EnableTenantRepository.d.ts +10 -0
  55. package/admin/EnableTenant/EnableTenantRepository.js +15 -0
  56. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
  57. package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
  58. package/admin/EnableTenant/EnableTenantUseCase.js +15 -0
  59. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
  60. package/admin/EnableTenant/abstractions.d.ts +21 -0
  61. package/admin/EnableTenant/abstractions.js +15 -0
  62. package/admin/EnableTenant/abstractions.js.map +1 -0
  63. package/admin/EnableTenant/feature.d.ts +3 -0
  64. package/admin/EnableTenant/feature.js +20 -0
  65. package/admin/EnableTenant/feature.js.map +1 -0
  66. package/admin/EnableTenant/index.d.ts +2 -0
  67. package/admin/EnableTenant/index.js +4 -0
  68. package/admin/EnableTenant/index.js.map +1 -0
  69. package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
  70. package/admin/EnableTenant/useEnableTenant.js +23 -0
  71. package/admin/EnableTenant/useEnableTenant.js.map +1 -0
  72. package/admin/Extension.d.ts +2 -0
  73. package/admin/Extension.js +47 -0
  74. package/admin/Extension.js.map +1 -0
  75. package/admin/IsRootTenant.d.ts +13 -0
  76. package/admin/IsRootTenant.js +37 -0
  77. package/admin/IsRootTenant.js.map +1 -0
  78. package/admin/SecurityPermission.d.ts +2 -0
  79. package/admin/SecurityPermission.js +20 -0
  80. package/admin/SecurityPermission.js.map +1 -0
  81. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
  82. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +42 -0
  83. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
  84. package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
  85. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +19 -0
  86. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
  87. package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
  88. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +39 -0
  89. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
  90. package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
  91. package/admin/TenantEntryList/FolderNameCell.js +29 -0
  92. package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
  93. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
  94. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +19 -0
  95. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
  96. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.d.ts +16 -0
  97. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +17 -0
  98. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -0
  99. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
  100. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +46 -0
  101. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
  102. package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
  103. package/admin/TenantEntryList/ManageTenant.js +21 -0
  104. package/admin/TenantEntryList/ManageTenant.js.map +1 -0
  105. package/admin/TenantEntryList/TenantCell.d.ts +2 -0
  106. package/admin/TenantEntryList/TenantCell.js +39 -0
  107. package/admin/TenantEntryList/TenantCell.js.map +1 -0
  108. package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
  109. package/admin/TenantEntryList/TenantNameCell.js +54 -0
  110. package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
  111. package/admin/TenantEntryList.d.ts +2 -0
  112. package/admin/TenantEntryList.js +71 -0
  113. package/admin/TenantEntryList.js.map +1 -0
  114. package/admin/TenantSelector.d.ts +2 -0
  115. package/admin/TenantSelector.js +39 -0
  116. package/admin/TenantSelector.js.map +1 -0
  117. package/admin/types.d.ts +7 -0
  118. package/admin/types.js +3 -0
  119. package/admin/types.js.map +1 -0
  120. package/api/Extension.d.ts +1 -0
  121. package/api/Extension.js +42 -0
  122. package/api/Extension.js.map +1 -0
  123. package/api/domain/TenantId.d.ts +3 -0
  124. package/api/domain/TenantId.js +12 -0
  125. package/api/domain/TenantId.js.map +1 -0
  126. package/api/domain/TenantModel.d.ts +11 -0
  127. package/api/domain/TenantModel.js +46 -0
  128. package/api/domain/TenantModel.js.map +1 -0
  129. package/api/domain/TenantModelExtension.d.ts +10 -0
  130. package/api/domain/TenantModelExtension.js +4 -0
  131. package/api/domain/TenantModelExtension.js.map +1 -0
  132. package/api/domain/errors.d.ts +33 -0
  133. package/api/domain/errors.js +63 -0
  134. package/api/domain/errors.js.map +1 -0
  135. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  136. package/api/features/AddCmsPermissions/AddCmsPermissions.js +34 -0
  137. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  138. package/api/features/AddCmsPermissions/feature.d.ts +1 -0
  139. package/api/features/AddCmsPermissions/feature.js +10 -0
  140. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  141. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +24 -0
  142. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +99 -0
  143. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
  144. package/api/features/CreateAndInstallTenant/abstractions.d.ts +26 -0
  145. package/api/features/CreateAndInstallTenant/abstractions.js +9 -0
  146. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
  147. package/api/features/CreateAndInstallTenant/feature.d.ts +1 -0
  148. package/api/features/CreateAndInstallTenant/feature.js +11 -0
  149. package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
  150. package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
  151. package/api/features/CreateTenant/CreateTenantRepository.js +48 -0
  152. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
  153. package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
  154. package/api/features/CreateTenant/CreateTenantUseCase.js +43 -0
  155. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
  156. package/api/features/CreateTenant/abstractions.d.ts +41 -0
  157. package/api/features/CreateTenant/abstractions.js +11 -0
  158. package/api/features/CreateTenant/abstractions.js.map +1 -0
  159. package/api/features/CreateTenant/feature.d.ts +1 -0
  160. package/api/features/CreateTenant/feature.js +15 -0
  161. package/api/features/CreateTenant/feature.js.map +1 -0
  162. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
  163. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +37 -0
  164. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
  165. package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +1 -0
  166. package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
  167. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
  168. package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
  169. package/api/features/DisableTenant/DisableTenantUseCase.js +65 -0
  170. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
  171. package/api/features/DisableTenant/abstractions.d.ts +19 -0
  172. package/api/features/DisableTenant/abstractions.js +4 -0
  173. package/api/features/DisableTenant/abstractions.js.map +1 -0
  174. package/api/features/DisableTenant/events.d.ts +27 -0
  175. package/api/features/DisableTenant/events.js +18 -0
  176. package/api/features/DisableTenant/events.js.map +1 -0
  177. package/api/features/DisableTenant/feature.d.ts +1 -0
  178. package/api/features/DisableTenant/feature.js +11 -0
  179. package/api/features/DisableTenant/feature.js.map +1 -0
  180. package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
  181. package/api/features/EnableTenant/EnableTenantUseCase.js +67 -0
  182. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
  183. package/api/features/EnableTenant/abstractions.d.ts +19 -0
  184. package/api/features/EnableTenant/abstractions.js +4 -0
  185. package/api/features/EnableTenant/abstractions.js.map +1 -0
  186. package/api/features/EnableTenant/events.d.ts +27 -0
  187. package/api/features/EnableTenant/events.js +18 -0
  188. package/api/features/EnableTenant/events.js.map +1 -0
  189. package/api/features/EnableTenant/feature.d.ts +1 -0
  190. package/api/features/EnableTenant/feature.js +11 -0
  191. package/api/features/EnableTenant/feature.js.map +1 -0
  192. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
  193. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +35 -0
  194. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
  195. package/api/features/GetCurrentTenant/abstractions.d.ts +24 -0
  196. package/api/features/GetCurrentTenant/abstractions.js +10 -0
  197. package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
  198. package/api/features/GetCurrentTenant/feature.d.ts +1 -0
  199. package/api/features/GetCurrentTenant/feature.js +11 -0
  200. package/api/features/GetCurrentTenant/feature.js.map +1 -0
  201. package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
  202. package/api/features/GetTenantById/GetTenantByIdRepository.js +49 -0
  203. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
  204. package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
  205. package/api/features/GetTenantById/GetTenantByIdUseCase.js +27 -0
  206. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
  207. package/api/features/GetTenantById/abstractions.d.ts +38 -0
  208. package/api/features/GetTenantById/abstractions.js +15 -0
  209. package/api/features/GetTenantById/abstractions.js.map +1 -0
  210. package/api/features/GetTenantById/feature.d.ts +1 -0
  211. package/api/features/GetTenantById/feature.js +15 -0
  212. package/api/features/GetTenantById/feature.js.map +1 -0
  213. package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
  214. package/api/features/UpdateTenant/UpdateTenantRepository.js +58 -0
  215. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
  216. package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
  217. package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
  218. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
  219. package/api/features/UpdateTenant/abstractions.d.ts +39 -0
  220. package/api/features/UpdateTenant/abstractions.js +15 -0
  221. package/api/features/UpdateTenant/abstractions.js.map +1 -0
  222. package/api/features/UpdateTenant/feature.d.ts +1 -0
  223. package/api/features/UpdateTenant/feature.js +15 -0
  224. package/api/features/UpdateTenant/feature.js.map +1 -0
  225. package/api/graphql/CreateTenantSchema.d.ts +14 -0
  226. package/api/graphql/CreateTenantSchema.js +77 -0
  227. package/api/graphql/CreateTenantSchema.js.map +1 -0
  228. package/api/graphql/DisableTenantSchema.d.ts +8 -0
  229. package/api/graphql/DisableTenantSchema.js +35 -0
  230. package/api/graphql/DisableTenantSchema.js.map +1 -0
  231. package/api/graphql/EnableTenantSchema.d.ts +8 -0
  232. package/api/graphql/EnableTenantSchema.js +35 -0
  233. package/api/graphql/EnableTenantSchema.js.map +1 -0
  234. package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
  235. package/api/graphql/GetCurrentTenantSchema.js +53 -0
  236. package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
  237. package/api/graphql/InstallTenantSchema.d.ts +8 -0
  238. package/api/graphql/InstallTenantSchema.js +50 -0
  239. package/api/graphql/InstallTenantSchema.js.map +1 -0
  240. package/exports/admin/tenancy.d.ts +7 -0
  241. package/exports/admin/tenancy.js +8 -0
  242. package/exports/admin/tenancy.js.map +1 -0
  243. package/exports/api/tenant-manager.d.ts +2 -0
  244. package/exports/api/tenant-manager.js +3 -0
  245. package/exports/api/tenant-manager.js.map +1 -0
  246. package/index.d.ts +1 -0
  247. package/index.js +3 -0
  248. package/index.js.map +1 -0
  249. package/package.json +44 -0
  250. package/shared/Tenant.d.ts +21 -0
  251. package/shared/Tenant.js +26 -0
  252. package/shared/Tenant.js.map +1 -0
  253. package/shared/constants.d.ts +1 -0
  254. package/shared/constants.js +3 -0
  255. package/shared/constants.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DomainEvent","TenantBeforeEnableEvent","eventType","getHandlerAbstraction","TenantBeforeEnableEventHandler","TenantAfterEnableEvent","TenantAfterEnableEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { Tenant } from \"~/shared/Tenant.js\";\n\nexport interface TenantBeforeEnablePayload {\n tenant: Tenant;\n}\n\nexport interface TenantAfterEnablePayload {\n tenant: Tenant;\n}\n\nexport class TenantBeforeEnableEvent extends DomainEvent<TenantBeforeEnablePayload> {\n eventType = \"tenant.beforeEnable\" as const;\n\n getHandlerAbstraction() {\n return TenantBeforeEnableEventHandler;\n }\n}\n\nexport const TenantBeforeEnableEventHandler = createAbstraction<\n IEventHandler<TenantBeforeEnableEvent>\n>(\"TenantManager/TenantBeforeEnableEventHandler\");\n\nexport namespace TenantBeforeEnableEventHandler {\n export type Interface = IEventHandler<TenantBeforeEnableEvent>;\n export type Event = TenantBeforeEnableEvent;\n}\n\nexport class TenantAfterEnableEvent extends DomainEvent<TenantAfterEnablePayload> {\n eventType = \"tenant.afterEnable\" as const;\n\n getHandlerAbstraction() {\n return TenantAfterEnableEventHandler;\n }\n}\n\nexport const TenantAfterEnableEventHandler = createAbstraction<\n IEventHandler<TenantAfterEnableEvent>\n>(\"TenantManager/TenantAfterEnableEventHandler\");\n\nexport namespace TenantAfterEnableEventHandler {\n export type Interface = IEventHandler<TenantAfterEnableEvent>;\n export type Event = TenantAfterEnableEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;AAYtE,OAAO,MAAMC,uBAAuB,SAASD,WAAW,CAA4B;EAChFE,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,8BAA8B;EACzC;AACJ;AAEA,OAAO,MAAMA,8BAA8B,GAAGL,iBAAiB,CAE7D,8CAA8C,CAAC;AAOjD,OAAO,MAAMM,sBAAsB,SAASL,WAAW,CAA2B;EAC9EE,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,6BAA6B;EACxC;AACJ;AAEA,OAAO,MAAMA,6BAA6B,GAAGP,iBAAiB,CAE5D,6CAA6C,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const EnableTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import EnableTenantUseCase from "./EnableTenantUseCase.js";
3
+ export const EnableTenantFeature = createFeature({
4
+ name: "EnableTenant",
5
+ register(container) {
6
+ // Register use case (transient scope)
7
+ container.register(EnableTenantUseCase);
8
+ }
9
+ });
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","EnableTenantUseCase","EnableTenantFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport EnableTenantUseCase from \"./EnableTenantUseCase.js\";\n\nexport const EnableTenantFeature = createFeature({\n name: \"EnableTenant\",\n register(container) {\n // Register use case (transient scope)\n container.register(EnableTenantUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,mBAAmB;AAE1B,OAAO,MAAMC,mBAAmB,GAAGF,aAAa,CAAC;EAC7CG,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAS,EAAE;IAChB;IACAA,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC;EAC3C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { Tenant } from "../../../shared/Tenant.js";
2
+ import { GetTenantByIdUseCase } from "../GetTenantById/abstractions.js";
3
+ import { GetCurrentTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
5
+ import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
6
+ import { Result } from "@webiny/feature/api";
7
+ declare class GetCurrentTenantUseCase implements UseCaseAbstraction.Interface {
8
+ private tenantContext;
9
+ private identityContext;
10
+ private getTenantByIdUseCase;
11
+ constructor(tenantContext: TenantContext.Interface, identityContext: IdentityContext.Interface, getTenantByIdUseCase: GetTenantByIdUseCase.Interface);
12
+ execute(): Promise<Result<Tenant, UseCaseAbstraction.Error>>;
13
+ }
14
+ declare const _default: typeof GetCurrentTenantUseCase & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetCurrentTenantUseCase>;
16
+ };
17
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { GetTenantByIdUseCase } from "../GetTenantById/abstractions.js";
2
+ import { GetCurrentTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
4
+ import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
5
+ import { Result } from "@webiny/feature/api";
6
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
7
+ class GetCurrentTenantUseCase {
8
+ constructor(tenantContext, identityContext, getTenantByIdUseCase) {
9
+ this.tenantContext = tenantContext;
10
+ this.identityContext = identityContext;
11
+ this.getTenantByIdUseCase = getTenantByIdUseCase;
12
+ }
13
+ async execute() {
14
+ const identity = this.identityContext.getIdentity();
15
+ if (identity.isAnonymous()) {
16
+ return Result.fail(new NotAuthorizedError());
17
+ }
18
+
19
+ // Get the current tenant from context
20
+ const currentTenant = this.tenantContext.getTenant();
21
+ const result = await this.identityContext.withoutAuthorization(() => {
22
+ return this.getTenantByIdUseCase.execute(currentTenant.id);
23
+ });
24
+ if (result.isFail()) {
25
+ return Result.fail(result.error);
26
+ }
27
+ return Result.ok(result.value);
28
+ }
29
+ }
30
+ export default UseCaseAbstraction.createImplementation({
31
+ implementation: GetCurrentTenantUseCase,
32
+ dependencies: [TenantContext, IdentityContext, GetTenantByIdUseCase]
33
+ });
34
+
35
+ //# sourceMappingURL=GetCurrentTenantUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetTenantByIdUseCase","GetCurrentTenantUseCase","UseCaseAbstraction","TenantContext","IdentityContext","Result","NotAuthorizedError","constructor","tenantContext","identityContext","getTenantByIdUseCase","execute","identity","getIdentity","isAnonymous","fail","currentTenant","getTenant","result","withoutAuthorization","id","isFail","error","ok","value","createImplementation","implementation","dependencies"],"sources":["GetCurrentTenantUseCase.ts"],"sourcesContent":["import { Tenant } from \"~/shared/Tenant.js\";\nimport { GetTenantByIdUseCase } from \"../GetTenantById/abstractions.js\";\nimport { GetCurrentTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/exports/api/tenancy.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.js\";\nimport { Result } from \"@webiny/feature/api\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\nclass GetCurrentTenantUseCase implements UseCaseAbstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private identityContext: IdentityContext.Interface,\n private getTenantByIdUseCase: GetTenantByIdUseCase.Interface\n ) {}\n\n async execute(): Promise<Result<Tenant, UseCaseAbstraction.Error>> {\n const identity = this.identityContext.getIdentity();\n if (identity.isAnonymous()) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // Get the current tenant from context\n const currentTenant = this.tenantContext.getTenant();\n\n const result = await this.identityContext.withoutAuthorization(() => {\n return this.getTenantByIdUseCase.execute(currentTenant.id);\n });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport default UseCaseAbstraction.createImplementation({\n implementation: GetCurrentTenantUseCase,\n dependencies: [TenantContext, IdentityContext, GetTenantByIdUseCase]\n});\n"],"mappings":"AACA,SAASA,oBAAoB;AAC7B,SAASC,uBAAuB,IAAIC,kBAAkB;AACtD,SAASC,aAAa,QAAQ,yCAAyC;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,oDAAoD;AAEvF,MAAML,uBAAuB,CAAyC;EAClEM,WAAWA,CACCC,aAAsC,EACtCC,eAA0C,EAC1CC,oBAAoD,EAC9D;IAAA,KAHUF,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,oBAAoD,GAApDA,oBAAoD;EAC7D;EAEH,MAAMC,OAAOA,CAAA,EAAsD;IAC/D,MAAMC,QAAQ,GAAG,IAAI,CAACH,eAAe,CAACI,WAAW,CAAC,CAAC;IACnD,IAAID,QAAQ,CAACE,WAAW,CAAC,CAAC,EAAE;MACxB,OAAOT,MAAM,CAACU,IAAI,CAAC,IAAIT,kBAAkB,CAAC,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMU,aAAa,GAAG,IAAI,CAACR,aAAa,CAACS,SAAS,CAAC,CAAC;IAEpD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACT,eAAe,CAACU,oBAAoB,CAAC,MAAM;MACjE,OAAO,IAAI,CAACT,oBAAoB,CAACC,OAAO,CAACK,aAAa,CAACI,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEF,IAAIF,MAAM,CAACG,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOhB,MAAM,CAACU,IAAI,CAACG,MAAM,CAACI,KAAK,CAAC;IACpC;IAEA,OAAOjB,MAAM,CAACkB,EAAE,CAACL,MAAM,CAACM,KAAK,CAAC;EAClC;AACJ;AAEA,eAAetB,kBAAkB,CAACuB,oBAAoB,CAAC;EACnDC,cAAc,EAAEzB,uBAAuB;EACvC0B,YAAY,EAAE,CAACxB,aAAa,EAAEC,eAAe,EAAEJ,oBAAoB;AACvE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/errors.js";
3
+ import type { Tenant } from "../../../shared/Tenant.js";
4
+ import type { TenantModelNotFoundError, TenantNotFoundError, TenantPersistenceError } from "../../domain/errors.js";
5
+ /**
6
+ * GetCurrentTenant Use Case
7
+ * Gets the tenant associated with the current tenant context
8
+ */
9
+ export interface IGetCurrentTenantUseCase {
10
+ execute(): Promise<Result<Tenant, UseCaseError>>;
11
+ }
12
+ export interface IGetCurrentTenantUseCaseErrors {
13
+ notFound: TenantNotFoundError;
14
+ notAuthorized: NotAuthorizedError;
15
+ persistence: TenantPersistenceError;
16
+ modelNotFoundError: TenantModelNotFoundError;
17
+ }
18
+ type UseCaseError = IGetCurrentTenantUseCaseErrors[keyof IGetCurrentTenantUseCaseErrors];
19
+ export declare const GetCurrentTenantUseCase: import("@webiny/di").Abstraction<IGetCurrentTenantUseCase>;
20
+ export declare namespace GetCurrentTenantUseCase {
21
+ type Interface = IGetCurrentTenantUseCase;
22
+ type Error = UseCaseError;
23
+ }
24
+ export {};
@@ -0,0 +1,10 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * GetCurrentTenant Use Case
5
+ * Gets the tenant associated with the current tenant context
6
+ */
7
+
8
+ export const GetCurrentTenantUseCase = createAbstraction("TenantManager/GetCurrentTenantUseCase");
9
+
10
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetCurrentTenantUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/errors.js\";\nimport type { Tenant } from \"~/shared/Tenant.js\";\nimport type {\n TenantModelNotFoundError,\n TenantNotFoundError,\n TenantPersistenceError\n} from \"../../domain/errors.js\";\n\n/**\n * GetCurrentTenant Use Case\n * Gets the tenant associated with the current tenant context\n */\nexport interface IGetCurrentTenantUseCase {\n execute(): Promise<Result<Tenant, UseCaseError>>;\n}\n\nexport interface IGetCurrentTenantUseCaseErrors {\n notFound: TenantNotFoundError;\n notAuthorized: NotAuthorizedError;\n persistence: TenantPersistenceError;\n modelNotFoundError: TenantModelNotFoundError;\n}\n\ntype UseCaseError = IGetCurrentTenantUseCaseErrors[keyof IGetCurrentTenantUseCaseErrors];\n\nexport const GetCurrentTenantUseCase = createAbstraction<IGetCurrentTenantUseCase>(\n \"TenantManager/GetCurrentTenantUseCase\"\n);\n\nexport namespace GetCurrentTenantUseCase {\n export type Interface = IGetCurrentTenantUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAUvD;AACA;AACA;AACA;;AAcA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,uCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const GetCurrentTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import GetCurrentTenantUseCase from "./GetCurrentTenantUseCase.js";
3
+ export const GetCurrentTenantFeature = createFeature({
4
+ name: "GetCurrentTenant",
5
+ register(container) {
6
+ // Register use case (transient scope)
7
+ container.register(GetCurrentTenantUseCase);
8
+ }
9
+ });
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","GetCurrentTenantUseCase","GetCurrentTenantFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport GetCurrentTenantUseCase from \"./GetCurrentTenantUseCase.js\";\n\nexport const GetCurrentTenantFeature = createFeature({\n name: \"GetCurrentTenant\",\n register(container) {\n // Register use case (transient scope)\n container.register(GetCurrentTenantUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,uBAAuB;AAE9B,OAAO,MAAMC,uBAAuB,GAAGF,aAAa,CAAC;EACjDG,IAAI,EAAE,kBAAkB;EACxBC,QAAQA,CAACC,SAAS,EAAE;IAChB;IACAA,SAAS,CAACD,QAAQ,CAACH,uBAAuB,CAAC;EAC/C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { Tenant } from "../../../shared/Tenant.js";
3
+ import { GetTenantByIdRepository as RepositoryAbstraction } from "./abstractions.js";
4
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
5
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
6
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
7
+ declare class GetTenantByIdRepository implements RepositoryAbstraction.Interface {
8
+ private tenantContext;
9
+ private getModelUseCase;
10
+ private getEntryUseCase;
11
+ constructor(tenantContext: TenantContext.Interface, getModelUseCase: GetModelUseCase.Interface, getEntryUseCase: GetEntryByIdUseCase.Interface);
12
+ execute(id: string): Promise<Result<Tenant, RepositoryAbstraction.Error>>;
13
+ }
14
+ declare const _default: typeof GetTenantByIdRepository & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetTenantByIdRepository>;
16
+ };
17
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { Tenant } from "../../../shared/Tenant.js";
3
+ import { TENANT_MODEL_ID } from "../../../shared/constants.js";
4
+ import { TenantModelNotFoundError, TenantNotFoundError, TenantPersistenceError } from "../../domain/errors.js";
5
+ import { GetTenantByIdRepository as RepositoryAbstraction } from "./abstractions.js";
6
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
7
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
8
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
9
+ import { EntryId } from "@webiny/api-headless-cms/domain/contentEntry/EntryId.js";
10
+ class GetTenantByIdRepository {
11
+ constructor(tenantContext, getModelUseCase, getEntryUseCase) {
12
+ this.tenantContext = tenantContext;
13
+ this.getModelUseCase = getModelUseCase;
14
+ this.getEntryUseCase = getEntryUseCase;
15
+ }
16
+ async execute(id) {
17
+ try {
18
+ const entryId = EntryId.from(id);
19
+
20
+ // Get the tenant model
21
+ const modelResult = await this.getModelUseCase.execute(TENANT_MODEL_ID);
22
+ if (modelResult.isFail()) {
23
+ return Result.fail(new TenantModelNotFoundError());
24
+ }
25
+
26
+ // Get the tenant entry
27
+ const entryResult = await this.tenantContext.withRootTenant(() => {
28
+ return this.getEntryUseCase.execute(modelResult.value, entryId.toString());
29
+ });
30
+ if (entryResult.isFail()) {
31
+ return Result.fail(new TenantNotFoundError(id));
32
+ }
33
+ const tenantEntry = entryResult.value;
34
+ const tenantDto = {
35
+ id: tenantEntry.entryId,
36
+ values: tenantEntry.values
37
+ };
38
+ return Result.ok(Tenant.from(tenantDto));
39
+ } catch (error) {
40
+ return Result.fail(new TenantPersistenceError(error));
41
+ }
42
+ }
43
+ }
44
+ export default RepositoryAbstraction.createImplementation({
45
+ implementation: GetTenantByIdRepository,
46
+ dependencies: [TenantContext, GetModelUseCase, GetEntryByIdUseCase]
47
+ });
48
+
49
+ //# sourceMappingURL=GetTenantByIdRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","Tenant","TENANT_MODEL_ID","TenantModelNotFoundError","TenantNotFoundError","TenantPersistenceError","GetTenantByIdRepository","RepositoryAbstraction","TenantContext","GetModelUseCase","GetEntryByIdUseCase","EntryId","constructor","tenantContext","getModelUseCase","getEntryUseCase","execute","id","entryId","from","modelResult","isFail","fail","entryResult","withRootTenant","value","toString","tenantEntry","tenantDto","values","ok","error","createImplementation","implementation","dependencies"],"sources":["GetTenantByIdRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { Tenant, TenantDto, TenantValues } from \"~/shared/Tenant.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport {\n TenantModelNotFoundError,\n TenantNotFoundError,\n TenantPersistenceError\n} from \"../../domain/errors.js\";\nimport { GetTenantByIdRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/exports/api/tenancy.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/domain/contentEntry/EntryId.js\";\n\nclass GetTenantByIdRepository implements RepositoryAbstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private getModelUseCase: GetModelUseCase.Interface,\n private getEntryUseCase: GetEntryByIdUseCase.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Tenant, RepositoryAbstraction.Error>> {\n try {\n const entryId = EntryId.from(id);\n\n // Get the tenant model\n const modelResult = await this.getModelUseCase.execute(TENANT_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new TenantModelNotFoundError());\n }\n\n // Get the tenant entry\n const entryResult = await this.tenantContext.withRootTenant(() => {\n return this.getEntryUseCase.execute<TenantValues>(\n modelResult.value,\n entryId.toString()\n );\n });\n\n if (entryResult.isFail()) {\n return Result.fail(new TenantNotFoundError(id));\n }\n\n const tenantEntry = entryResult.value;\n\n const tenantDto: TenantDto = {\n id: tenantEntry.entryId,\n values: tenantEntry.values\n };\n\n return Result.ok(Tenant.from(tenantDto));\n } catch (error) {\n return Result.fail(new TenantPersistenceError(error as Error));\n }\n }\n}\n\nexport default RepositoryAbstraction.createImplementation({\n implementation: GetTenantByIdRepository,\n dependencies: [TenantContext, GetModelUseCase, GetEntryByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,MAAM;AACf,SAASC,eAAe;AACxB,SACIC,wBAAwB,EACxBC,mBAAmB,EACnBC,sBAAsB;AAE1B,SAASC,uBAAuB,IAAIC,qBAAqB;AACzD,SAASC,aAAa,QAAQ,yCAAyC;AACvE,SAASC,eAAe,QAAQ,yEAAyE;AACzG,SAASC,mBAAmB,QAAQ,6EAA6E;AACjH,SAASC,OAAO,QAAQ,yDAAyD;AAEjF,MAAML,uBAAuB,CAA4C;EACrEM,WAAWA,CACCC,aAAsC,EACtCC,eAA0C,EAC1CC,eAA8C,EACxD;IAAA,KAHUF,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,eAA8C,GAA9CA,eAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAwD;IAC5E,IAAI;MACA,MAAMC,OAAO,GAAGP,OAAO,CAACQ,IAAI,CAACF,EAAE,CAAC;;MAEhC;MACA,MAAMG,WAAW,GAAG,MAAM,IAAI,CAACN,eAAe,CAACE,OAAO,CAACd,eAAe,CAAC;MACvE,IAAIkB,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;QACtB,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAInB,wBAAwB,CAAC,CAAC,CAAC;MACtD;;MAEA;MACA,MAAMoB,WAAW,GAAG,MAAM,IAAI,CAACV,aAAa,CAACW,cAAc,CAAC,MAAM;QAC9D,OAAO,IAAI,CAACT,eAAe,CAACC,OAAO,CAC/BI,WAAW,CAACK,KAAK,EACjBP,OAAO,CAACQ,QAAQ,CAAC,CACrB,CAAC;MACL,CAAC,CAAC;MAEF,IAAIH,WAAW,CAACF,MAAM,CAAC,CAAC,EAAE;QACtB,OAAOrB,MAAM,CAACsB,IAAI,CAAC,IAAIlB,mBAAmB,CAACa,EAAE,CAAC,CAAC;MACnD;MAEA,MAAMU,WAAW,GAAGJ,WAAW,CAACE,KAAK;MAErC,MAAMG,SAAoB,GAAG;QACzBX,EAAE,EAAEU,WAAW,CAACT,OAAO;QACvBW,MAAM,EAAEF,WAAW,CAACE;MACxB,CAAC;MAED,OAAO7B,MAAM,CAAC8B,EAAE,CAAC7B,MAAM,CAACkB,IAAI,CAACS,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,OAAOG,KAAK,EAAE;MACZ,OAAO/B,MAAM,CAACsB,IAAI,CAAC,IAAIjB,sBAAsB,CAAC0B,KAAc,CAAC,CAAC;IAClE;EACJ;AACJ;AAEA,eAAexB,qBAAqB,CAACyB,oBAAoB,CAAC;EACtDC,cAAc,EAAE3B,uBAAuB;EACvC4B,YAAY,EAAE,CAAC1B,aAAa,EAAEC,eAAe,EAAEC,mBAAmB;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Tenant } from "../../../shared/Tenant.js";
2
+ import { GetTenantByIdUseCase as UseCaseAbstraction, GetTenantByIdRepository } from "./abstractions.js";
3
+ import { Result } from "@webiny/feature/api";
4
+ declare class GetTenantByIdUseCase implements UseCaseAbstraction.Interface {
5
+ private repository;
6
+ constructor(repository: GetTenantByIdRepository.Interface);
7
+ execute(id: string): Promise<Result<Tenant, UseCaseAbstraction.Error>>;
8
+ }
9
+ declare const _default: typeof GetTenantByIdUseCase & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetTenantByIdUseCase>;
11
+ };
12
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import { Tenant, rootTenantDto } from "../../../shared/Tenant.js";
2
+ import { GetTenantByIdUseCase as UseCaseAbstraction, GetTenantByIdRepository } from "./abstractions.js";
3
+ import { Result } from "@webiny/feature/api";
4
+ class GetTenantByIdUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ async execute(id) {
9
+ // Handle special root tenant case
10
+ if (id === "root") {
11
+ return Result.ok(Tenant.from(rootTenantDto));
12
+ }
13
+
14
+ // Delegate to repository
15
+ const result = await this.repository.execute(id);
16
+ if (result.isFail()) {
17
+ return Result.fail(result.error);
18
+ }
19
+ return Result.ok(result.value);
20
+ }
21
+ }
22
+ export default UseCaseAbstraction.createImplementation({
23
+ implementation: GetTenantByIdUseCase,
24
+ dependencies: [GetTenantByIdRepository]
25
+ });
26
+
27
+ //# sourceMappingURL=GetTenantByIdUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Tenant","rootTenantDto","GetTenantByIdUseCase","UseCaseAbstraction","GetTenantByIdRepository","Result","constructor","repository","execute","id","ok","from","result","isFail","fail","error","value","createImplementation","implementation","dependencies"],"sources":["GetTenantByIdUseCase.ts"],"sourcesContent":["import { Tenant, rootTenantDto } from \"~/shared/Tenant.js\";\nimport {\n GetTenantByIdUseCase as UseCaseAbstraction,\n GetTenantByIdRepository\n} from \"./abstractions.js\";\nimport { Result } from \"@webiny/feature/api\";\n\nclass GetTenantByIdUseCase implements UseCaseAbstraction.Interface {\n constructor(private repository: GetTenantByIdRepository.Interface) {}\n\n async execute(id: string): Promise<Result<Tenant, UseCaseAbstraction.Error>> {\n // Handle special root tenant case\n if (id === \"root\") {\n return Result.ok(Tenant.from(rootTenantDto));\n }\n\n // Delegate to repository\n const result = await this.repository.execute(id);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport default UseCaseAbstraction.createImplementation({\n implementation: GetTenantByIdUseCase,\n dependencies: [GetTenantByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,aAAa;AAC9B,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAE3B,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMH,oBAAoB,CAAyC;EAC/DI,WAAWA,CAASC,UAA6C,EAAE;IAAA,KAA/CA,UAA6C,GAA7CA,UAA6C;EAAG;EAEpE,MAAMC,OAAOA,CAACC,EAAU,EAAqD;IACzE;IACA,IAAIA,EAAE,KAAK,MAAM,EAAE;MACf,OAAOJ,MAAM,CAACK,EAAE,CAACV,MAAM,CAACW,IAAI,CAACV,aAAa,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMW,MAAM,GAAG,MAAM,IAAI,CAACL,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;IAChD,IAAIG,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOR,MAAM,CAACS,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,OAAOV,MAAM,CAACK,EAAE,CAACE,MAAM,CAACI,KAAK,CAAC;EAClC;AACJ;AAEA,eAAeb,kBAAkB,CAACc,oBAAoB,CAAC;EACnDC,cAAc,EAAEhB,oBAAoB;EACpCiB,YAAY,EAAE,CAACf,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { Tenant } from "../../../shared/Tenant.js";
3
+ import { TenantModelNotFoundError, type TenantNotFoundError, type TenantPersistenceError } from "../../domain/errors.js";
4
+ /**
5
+ * GetTenantById Use Case
6
+ */
7
+ export interface IGetTenantByIdUseCase {
8
+ execute(id: string): Promise<Result<Tenant, UseCaseError>>;
9
+ }
10
+ export interface IGetTenantByIdUseCaseErrors {
11
+ notFound: TenantNotFoundError;
12
+ persistence: TenantPersistenceError;
13
+ modelNotFoundError: TenantModelNotFoundError;
14
+ }
15
+ type UseCaseError = IGetTenantByIdUseCaseErrors[keyof IGetTenantByIdUseCaseErrors];
16
+ export declare const GetTenantByIdUseCase: import("@webiny/di").Abstraction<IGetTenantByIdUseCase>;
17
+ export declare namespace GetTenantByIdUseCase {
18
+ type Interface = IGetTenantByIdUseCase;
19
+ type Error = UseCaseError;
20
+ }
21
+ /**
22
+ * GetTenantByIdRepository - Retrieves a tenant from storage.
23
+ */
24
+ export interface IGetTenantByIdRepository {
25
+ execute(id: string): Promise<Result<Tenant, RepositoryError>>;
26
+ }
27
+ export interface IGetTenantByIdRepositoryErrors {
28
+ notFound: TenantNotFoundError;
29
+ persistence: TenantPersistenceError;
30
+ modelNotFoundError: TenantModelNotFoundError;
31
+ }
32
+ type RepositoryError = IGetTenantByIdRepositoryErrors[keyof IGetTenantByIdRepositoryErrors];
33
+ export declare const GetTenantByIdRepository: import("@webiny/di").Abstraction<IGetTenantByIdRepository>;
34
+ export declare namespace GetTenantByIdRepository {
35
+ type Interface = IGetTenantByIdRepository;
36
+ type Error = RepositoryError;
37
+ }
38
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * GetTenantById Use Case
5
+ */
6
+
7
+ export const GetTenantByIdUseCase = createAbstraction("TenantManager/GetTenantByIdUseCase");
8
+
9
+ /**
10
+ * GetTenantByIdRepository - Retrieves a tenant from storage.
11
+ */
12
+
13
+ export const GetTenantByIdRepository = createAbstraction("TenantManager/GetTenantByIdRepository");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","GetTenantByIdUseCase","GetTenantByIdRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { Tenant } from \"../../../shared/Tenant.js\";\nimport {\n TenantModelNotFoundError,\n type TenantNotFoundError,\n type TenantPersistenceError\n} from \"../../domain/errors.js\";\n\n/**\n * GetTenantById Use Case\n */\nexport interface IGetTenantByIdUseCase {\n execute(id: string): Promise<Result<Tenant, UseCaseError>>;\n}\n\nexport interface IGetTenantByIdUseCaseErrors {\n notFound: TenantNotFoundError;\n persistence: TenantPersistenceError;\n modelNotFoundError: TenantModelNotFoundError;\n}\n\ntype UseCaseError = IGetTenantByIdUseCaseErrors[keyof IGetTenantByIdUseCaseErrors];\n\nexport const GetTenantByIdUseCase = createAbstraction<IGetTenantByIdUseCase>(\n \"TenantManager/GetTenantByIdUseCase\"\n);\n\nexport namespace GetTenantByIdUseCase {\n export type Interface = IGetTenantByIdUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * GetTenantByIdRepository - Retrieves a tenant from storage.\n */\nexport interface IGetTenantByIdRepository {\n execute(id: string): Promise<Result<Tenant, RepositoryError>>;\n}\n\nexport interface IGetTenantByIdRepositoryErrors {\n notFound: TenantNotFoundError;\n persistence: TenantPersistenceError;\n modelNotFoundError: TenantModelNotFoundError;\n}\n\ntype RepositoryError = IGetTenantByIdRepositoryErrors[keyof IGetTenantByIdRepositoryErrors];\n\nexport const GetTenantByIdRepository = createAbstraction<IGetTenantByIdRepository>(\n \"TenantManager/GetTenantByIdRepository\"\n);\n\nexport namespace GetTenantByIdRepository {\n export type Interface = IGetTenantByIdRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAAGD,iBAAiB,CACjD,oCACJ,CAAC;;AAOD;AACA;AACA;;AAaA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,uCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const GetTenantByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,15 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import GetTenantByIdUseCase from "./GetTenantByIdUseCase.js";
3
+ import GetTenantByIdRepository from "./GetTenantByIdRepository.js";
4
+ export const GetTenantByIdFeature = createFeature({
5
+ name: "GetTenantById",
6
+ register(container) {
7
+ // Register use case (transient scope)
8
+ container.register(GetTenantByIdUseCase);
9
+
10
+ // Register repository (singleton scope)
11
+ container.register(GetTenantByIdRepository).inSingletonScope();
12
+ }
13
+ });
14
+
15
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport GetTenantByIdUseCase from \"./GetTenantByIdUseCase.js\";\nimport GetTenantByIdRepository from \"./GetTenantByIdRepository.js\";\n\nexport const GetTenantByIdFeature = createFeature({\n name: \"GetTenantById\",\n register(container) {\n // Register use case (transient scope)\n container.register(GetTenantByIdUseCase);\n\n // Register repository (singleton scope)\n container.register(GetTenantByIdRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,oBAAoB;AAC3B,OAAOC,uBAAuB;AAE9B,OAAO,MAAMC,oBAAoB,GAAGH,aAAa,CAAC;EAC9CI,IAAI,EAAE,eAAe;EACrBC,QAAQA,CAACC,SAAS,EAAE;IAChB;IACAA,SAAS,CAACD,QAAQ,CAACJ,oBAAoB,CAAC;;IAExC;IACAK,SAAS,CAACD,QAAQ,CAACH,uBAAuB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAClE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { Tenant } from "../../../shared/Tenant.js";
2
+ import { UpdateTenantRepository as RepositoryAbstraction, UpdateTenantInput } from "./abstractions.js";
3
+ import { Result } from "@webiny/feature/api";
4
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
5
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
6
+ import { GetModelUseCase } from "@webiny/api-headless-cms/exports/api/cms/model";
7
+ declare class UpdateTenantRepository implements RepositoryAbstraction.Interface {
8
+ private getModelUseCase;
9
+ private getEntryUseCase;
10
+ private updateEntryUseCase;
11
+ constructor(getModelUseCase: GetModelUseCase.Interface, getEntryUseCase: GetEntryUseCase.Interface, updateEntryUseCase: UpdateEntryUseCase.Interface);
12
+ execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, RepositoryAbstraction.Error>>;
13
+ }
14
+ declare const _default: typeof UpdateTenantRepository & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateTenantRepository>;
16
+ };
17
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import { Tenant } from "../../../shared/Tenant.js";
2
+ import { TENANT_MODEL_ID } from "../../../shared/constants.js";
3
+ import { TenantNotFoundError, TenantPersistenceError } from "../../domain/errors.js";
4
+ import { UpdateTenantRepository as RepositoryAbstraction } from "./abstractions.js";
5
+ import { Result } from "@webiny/feature/api";
6
+ import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
7
+ import { GetEntryUseCase } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
8
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
9
+ import { GetModelUseCase } from "@webiny/api-headless-cms/exports/api/cms/model";
10
+ class UpdateTenantRepository {
11
+ constructor(getModelUseCase, getEntryUseCase, updateEntryUseCase) {
12
+ this.getModelUseCase = getModelUseCase;
13
+ this.getEntryUseCase = getEntryUseCase;
14
+ this.updateEntryUseCase = updateEntryUseCase;
15
+ }
16
+ async execute(id, input) {
17
+ try {
18
+ const entryId = EntryId.from(id);
19
+
20
+ // Get the tenant model
21
+ const modelResult = await this.getModelUseCase.execute(TENANT_MODEL_ID);
22
+ if (modelResult.isFail()) {
23
+ return Result.fail(new TenantPersistenceError(new Error(`Model "${TENANT_MODEL_ID}" was not found!`)));
24
+ }
25
+
26
+ // Get the current tenant entry to verify it exists
27
+ const getEntryResult = await this.getEntryUseCase.execute(modelResult.value, {
28
+ where: {
29
+ entryId: entryId.id,
30
+ latest: true
31
+ }
32
+ });
33
+ if (getEntryResult.isFail()) {
34
+ return Result.fail(new TenantNotFoundError(id));
35
+ }
36
+ const updateResult = await this.updateEntryUseCase.execute(modelResult.value, entryId.toString(), {
37
+ values: input
38
+ });
39
+ if (updateResult.isFail()) {
40
+ return Result.fail(new TenantPersistenceError(updateResult.error));
41
+ }
42
+ const updatedEntry = updateResult.value;
43
+ const tenantDto = {
44
+ id: updatedEntry.entryId,
45
+ values: updatedEntry.values
46
+ };
47
+ return Result.ok(Tenant.from(tenantDto));
48
+ } catch (error) {
49
+ return Result.fail(new TenantPersistenceError(error));
50
+ }
51
+ }
52
+ }
53
+ export default RepositoryAbstraction.createImplementation({
54
+ implementation: UpdateTenantRepository,
55
+ dependencies: [GetModelUseCase, GetEntryUseCase, UpdateEntryUseCase]
56
+ });
57
+
58
+ //# sourceMappingURL=UpdateTenantRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Tenant","TENANT_MODEL_ID","TenantNotFoundError","TenantPersistenceError","UpdateTenantRepository","RepositoryAbstraction","Result","EntryId","GetEntryUseCase","UpdateEntryUseCase","GetModelUseCase","constructor","getModelUseCase","getEntryUseCase","updateEntryUseCase","execute","id","input","entryId","from","modelResult","isFail","fail","Error","getEntryResult","value","where","latest","updateResult","toString","values","error","updatedEntry","tenantDto","ok","createImplementation","implementation","dependencies"],"sources":["UpdateTenantRepository.ts"],"sourcesContent":["import { Tenant, TenantDto, TenantValues } from \"~/shared/Tenant.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { TenantNotFoundError, TenantPersistenceError } from \"../../domain/errors.js\";\nimport {\n UpdateTenantRepository as RepositoryAbstraction,\n UpdateTenantInput\n} from \"./abstractions.js\";\nimport { Result } from \"@webiny/feature/api\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { GetEntryUseCase } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/exports/api/cms/model\";\n\nclass UpdateTenantRepository implements RepositoryAbstraction.Interface {\n constructor(\n private getModelUseCase: GetModelUseCase.Interface,\n private getEntryUseCase: GetEntryUseCase.Interface,\n private updateEntryUseCase: UpdateEntryUseCase.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateTenantInput\n ): Promise<Result<Tenant, RepositoryAbstraction.Error>> {\n try {\n const entryId = EntryId.from(id);\n\n // Get the tenant model\n const modelResult = await this.getModelUseCase.execute(TENANT_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(\n new TenantPersistenceError(\n new Error(`Model \"${TENANT_MODEL_ID}\" was not found!`)\n )\n );\n }\n\n // Get the current tenant entry to verify it exists\n const getEntryResult = await this.getEntryUseCase.execute<TenantValues>(\n modelResult.value,\n {\n where: { entryId: entryId.id, latest: true }\n }\n );\n\n if (getEntryResult.isFail()) {\n return Result.fail(new TenantNotFoundError(id));\n }\n\n const updateResult = await this.updateEntryUseCase.execute(\n modelResult.value,\n entryId.toString(),\n {\n values: input\n }\n );\n\n if (updateResult.isFail()) {\n return Result.fail(new TenantPersistenceError(updateResult.error));\n }\n\n const updatedEntry = updateResult.value;\n\n const tenantDto: TenantDto = {\n id: updatedEntry.entryId,\n values: updatedEntry.values as TenantValues\n };\n\n return Result.ok(Tenant.from(tenantDto));\n } catch (error) {\n return Result.fail(new TenantPersistenceError(error));\n }\n }\n}\n\nexport default RepositoryAbstraction.createImplementation({\n implementation: UpdateTenantRepository,\n dependencies: [GetModelUseCase, GetEntryUseCase, UpdateEntryUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM;AACf,SAASC,eAAe;AACxB,SAASC,mBAAmB,EAAEC,sBAAsB;AACpD,SACIC,sBAAsB,IAAIC,qBAAqB;AAGnD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,OAAO,QAAQ,mDAAmD;AAC3E,SAASC,eAAe,QAAQ,mDAAmD;AACnF,SAASC,kBAAkB,QAAQ,mDAAmD;AACtF,SAASC,eAAe,QAAQ,gDAAgD;AAEhF,MAAMN,sBAAsB,CAA4C;EACpEO,WAAWA,CACCC,eAA0C,EAC1CC,eAA0C,EAC1CC,kBAAgD,EAC1D;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,kBAAgD,GAAhDA,kBAAgD;EACzD;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAwB,EAC4B;IACpD,IAAI;MACA,MAAMC,OAAO,GAAGX,OAAO,CAACY,IAAI,CAACH,EAAE,CAAC;;MAEhC;MACA,MAAMI,WAAW,GAAG,MAAM,IAAI,CAACR,eAAe,CAACG,OAAO,CAACd,eAAe,CAAC;MACvE,IAAImB,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;QACtB,OAAOf,MAAM,CAACgB,IAAI,CACd,IAAInB,sBAAsB,CACtB,IAAIoB,KAAK,CAAC,UAAUtB,eAAe,kBAAkB,CACzD,CACJ,CAAC;MACL;;MAEA;MACA,MAAMuB,cAAc,GAAG,MAAM,IAAI,CAACX,eAAe,CAACE,OAAO,CACrDK,WAAW,CAACK,KAAK,EACjB;QACIC,KAAK,EAAE;UAAER,OAAO,EAAEA,OAAO,CAACF,EAAE;UAAEW,MAAM,EAAE;QAAK;MAC/C,CACJ,CAAC;MAED,IAAIH,cAAc,CAACH,MAAM,CAAC,CAAC,EAAE;QACzB,OAAOf,MAAM,CAACgB,IAAI,CAAC,IAAIpB,mBAAmB,CAACc,EAAE,CAAC,CAAC;MACnD;MAEA,MAAMY,YAAY,GAAG,MAAM,IAAI,CAACd,kBAAkB,CAACC,OAAO,CACtDK,WAAW,CAACK,KAAK,EACjBP,OAAO,CAACW,QAAQ,CAAC,CAAC,EAClB;QACIC,MAAM,EAAEb;MACZ,CACJ,CAAC;MAED,IAAIW,YAAY,CAACP,MAAM,CAAC,CAAC,EAAE;QACvB,OAAOf,MAAM,CAACgB,IAAI,CAAC,IAAInB,sBAAsB,CAACyB,YAAY,CAACG,KAAK,CAAC,CAAC;MACtE;MAEA,MAAMC,YAAY,GAAGJ,YAAY,CAACH,KAAK;MAEvC,MAAMQ,SAAoB,GAAG;QACzBjB,EAAE,EAAEgB,YAAY,CAACd,OAAO;QACxBY,MAAM,EAAEE,YAAY,CAACF;MACzB,CAAC;MAED,OAAOxB,MAAM,CAAC4B,EAAE,CAAClC,MAAM,CAACmB,IAAI,CAACc,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,OAAOF,KAAK,EAAE;MACZ,OAAOzB,MAAM,CAACgB,IAAI,CAAC,IAAInB,sBAAsB,CAAC4B,KAAK,CAAC,CAAC;IACzD;EACJ;AACJ;AAEA,eAAe1B,qBAAqB,CAAC8B,oBAAoB,CAAC;EACtDC,cAAc,EAAEhC,sBAAsB;EACtCiC,YAAY,EAAE,CAAC3B,eAAe,EAAEF,eAAe,EAAEC,kBAAkB;AACvE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { Tenant } from "../../../shared/Tenant.js";
3
+ import { UpdateTenantUseCase as UseCaseAbstraction, UpdateTenantRepository, UpdateTenantInput } from "./abstractions.js";
4
+ declare class UpdateTenantUseCase implements UseCaseAbstraction.Interface {
5
+ private repository;
6
+ constructor(repository: UpdateTenantRepository.Interface);
7
+ execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, UseCaseAbstraction.Error>>;
8
+ }
9
+ declare const _default: typeof UpdateTenantUseCase & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateTenantUseCase>;
11
+ };
12
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateTenantUseCase as UseCaseAbstraction, UpdateTenantRepository } from "./abstractions.js";
3
+ class UpdateTenantUseCase {
4
+ constructor(repository) {
5
+ this.repository = repository;
6
+ }
7
+ async execute(id, input) {
8
+ // Delegate to repository
9
+ const result = await this.repository.execute(id, input);
10
+ if (result.isFail()) {
11
+ return Result.fail(result.error);
12
+ }
13
+ return Result.ok(result.value);
14
+ }
15
+ }
16
+ export default UseCaseAbstraction.createImplementation({
17
+ implementation: UpdateTenantUseCase,
18
+ dependencies: [UpdateTenantRepository]
19
+ });
20
+
21
+ //# sourceMappingURL=UpdateTenantUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","UpdateTenantUseCase","UseCaseAbstraction","UpdateTenantRepository","constructor","repository","execute","id","input","result","isFail","fail","error","ok","value","createImplementation","implementation","dependencies"],"sources":["UpdateTenantUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { Tenant } from \"~/shared/Tenant.js\";\nimport {\n UpdateTenantUseCase as UseCaseAbstraction,\n UpdateTenantRepository,\n UpdateTenantInput\n} from \"./abstractions.js\";\n\nclass UpdateTenantUseCase implements UseCaseAbstraction.Interface {\n constructor(private repository: UpdateTenantRepository.Interface) {}\n\n async execute(\n id: string,\n input: UpdateTenantInput\n ): Promise<Result<Tenant, UseCaseAbstraction.Error>> {\n // Delegate to repository\n const result = await this.repository.execute(id, input);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport default UseCaseAbstraction.createImplementation({\n implementation: UpdateTenantUseCase,\n dependencies: [UpdateTenantRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAE5C,SACIC,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAI1B,MAAMF,mBAAmB,CAAyC;EAC9DG,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAwB,EACyB;IACjD;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,UAAU,CAACC,OAAO,CAACC,EAAE,EAAEC,KAAK,CAAC;IACvD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOV,MAAM,CAACW,IAAI,CAACF,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,OAAOZ,MAAM,CAACa,EAAE,CAACJ,MAAM,CAACK,KAAK,CAAC;EAClC;AACJ;AAEA,eAAeZ,kBAAkB,CAACa,oBAAoB,CAAC;EACnDC,cAAc,EAAEf,mBAAmB;EACnCgB,YAAY,EAAE,CAACd,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { Tenant, TenantValues } from "../../../shared/Tenant.js";
3
+ import { TenantModelNotFoundError, type TenantNotFoundError, type TenantPersistenceError } from "../../domain/errors.js";
4
+ /**
5
+ * UpdateTenant Use Case
6
+ */
7
+ export interface UpdateTenantInput extends Partial<TenantValues> {
8
+ }
9
+ export interface IUpdateTenantUseCase {
10
+ execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, UseCaseError>>;
11
+ }
12
+ export interface IUpdateTenantUseCaseErrors {
13
+ notFound: TenantNotFoundError;
14
+ persistence: TenantPersistenceError;
15
+ modelNotFoundError: TenantModelNotFoundError;
16
+ }
17
+ type UseCaseError = IUpdateTenantUseCaseErrors[keyof IUpdateTenantUseCaseErrors];
18
+ export declare const UpdateTenantUseCase: import("@webiny/di").Abstraction<IUpdateTenantUseCase>;
19
+ export declare namespace UpdateTenantUseCase {
20
+ type Interface = IUpdateTenantUseCase;
21
+ type Error = UseCaseError;
22
+ }
23
+ /**
24
+ * UpdateTenantRepository - Updates a tenant in storage.
25
+ */
26
+ export interface IUpdateTenantRepository {
27
+ execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, RepositoryError>>;
28
+ }
29
+ export interface IUpdateTenantRepositoryErrors {
30
+ notFound: TenantNotFoundError;
31
+ persistence: TenantPersistenceError;
32
+ }
33
+ type RepositoryError = IUpdateTenantRepositoryErrors[keyof IUpdateTenantRepositoryErrors];
34
+ export declare const UpdateTenantRepository: import("@webiny/di").Abstraction<IUpdateTenantRepository>;
35
+ export declare namespace UpdateTenantRepository {
36
+ type Interface = IUpdateTenantRepository;
37
+ type Error = RepositoryError;
38
+ }
39
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * UpdateTenant Use Case
5
+ */
6
+
7
+ export const UpdateTenantUseCase = createAbstraction("TenantManager/UpdateTenantUseCase");
8
+
9
+ /**
10
+ * UpdateTenantRepository - Updates a tenant in storage.
11
+ */
12
+
13
+ export const UpdateTenantRepository = createAbstraction("TenantManager/UpdateTenantRepository");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","UpdateTenantUseCase","UpdateTenantRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { Tenant, TenantValues } from \"~/shared/Tenant.js\";\nimport {\n TenantModelNotFoundError,\n type TenantNotFoundError,\n type TenantPersistenceError\n} from \"../../domain/errors.js\";\n\n/**\n * UpdateTenant Use Case\n */\nexport interface UpdateTenantInput extends Partial<TenantValues> {}\n\nexport interface IUpdateTenantUseCase {\n execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, UseCaseError>>;\n}\n\nexport interface IUpdateTenantUseCaseErrors {\n notFound: TenantNotFoundError;\n persistence: TenantPersistenceError;\n modelNotFoundError: TenantModelNotFoundError;\n}\n\ntype UseCaseError = IUpdateTenantUseCaseErrors[keyof IUpdateTenantUseCaseErrors];\n\nexport const UpdateTenantUseCase = createAbstraction<IUpdateTenantUseCase>(\n \"TenantManager/UpdateTenantUseCase\"\n);\n\nexport namespace UpdateTenantUseCase {\n export type Interface = IUpdateTenantUseCase;\n export type Error = UseCaseError;\n}\n\n/**\n * UpdateTenantRepository - Updates a tenant in storage.\n */\nexport interface IUpdateTenantRepository {\n execute(id: string, input: UpdateTenantInput): Promise<Result<Tenant, RepositoryError>>;\n}\n\nexport interface IUpdateTenantRepositoryErrors {\n notFound: TenantNotFoundError;\n persistence: TenantPersistenceError;\n}\n\ntype RepositoryError = IUpdateTenantRepositoryErrors[keyof IUpdateTenantRepositoryErrors];\n\nexport const UpdateTenantRepository = createAbstraction<IUpdateTenantRepository>(\n \"TenantManager/UpdateTenantRepository\"\n);\n\nexport namespace UpdateTenantRepository {\n export type Interface = IUpdateTenantRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAeA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAChD,mCACJ,CAAC;;AAOD;AACA;AACA;;AAYA,OAAO,MAAME,sBAAsB,GAAGF,iBAAiB,CACnD,sCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const UpdateTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,15 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import UpdateTenantUseCase from "./UpdateTenantUseCase.js";
3
+ import UpdateTenantRepository from "./UpdateTenantRepository.js";
4
+ export const UpdateTenantFeature = createFeature({
5
+ name: "UpdateTenant",
6
+ register(container) {
7
+ // Register use case (transient scope)
8
+ container.register(UpdateTenantUseCase);
9
+
10
+ // Register repository (singleton scope)
11
+ container.register(UpdateTenantRepository).inSingletonScope();
12
+ }
13
+ });
14
+
15
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport UpdateTenantUseCase from \"./UpdateTenantUseCase.js\";\nimport UpdateTenantRepository from \"./UpdateTenantRepository.js\";\n\nexport const UpdateTenantFeature = createFeature({\n name: \"UpdateTenant\",\n register(container) {\n // Register use case (transient scope)\n container.register(UpdateTenantUseCase);\n\n // Register repository (singleton scope)\n container.register(UpdateTenantRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,mBAAmB;AAC1B,OAAOC,sBAAsB;AAE7B,OAAO,MAAMC,mBAAmB,GAAGH,aAAa,CAAC;EAC7CI,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAS,EAAE;IAChB;IACAA,SAAS,CAACD,QAAQ,CAACJ,mBAAmB,CAAC;;IAEvC;IACAK,SAAS,CAACD,QAAQ,CAACH,sBAAsB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EACjE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
+ import { PluginsContainer } from "@webiny/api-headless-cms/legacy/abstractions.js";
3
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/exports/api/cms/model.js";
4
+ declare class CreateTenantSchema implements GraphQLSchemaFactory.Interface {
5
+ private pluginsContainer;
6
+ private listModelsUseCase;
7
+ constructor(pluginsContainer: PluginsContainer.Interface, listModelsUseCase: ListModelsUseCase.Interface);
8
+ execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
9
+ private getExtensionsInput;
10
+ }
11
+ declare const _default: typeof CreateTenantSchema & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
13
+ };
14
+ export default _default;