@webiny/tenant-manager 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/TenantManager.js +8 -9
  2. package/TenantManager.js.map +1 -1
  3. package/admin/CurrentTenant/CurrentTenant.js +15 -24
  4. package/admin/CurrentTenant/CurrentTenant.js.map +1 -1
  5. package/admin/CurrentTenant/CurrentTenantGateway.js +18 -19
  6. package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -1
  7. package/admin/CurrentTenant/CurrentTenantPresenter.js +26 -23
  8. package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -1
  9. package/admin/CurrentTenant/CurrentTenantRepository.js +30 -29
  10. package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -1
  11. package/admin/CurrentTenant/abstractions.js +4 -12
  12. package/admin/CurrentTenant/abstractions.js.map +1 -1
  13. package/admin/CurrentTenant/feature.js +15 -14
  14. package/admin/CurrentTenant/feature.js.map +1 -1
  15. package/admin/CurrentTenant/useCurrentTenant.js +11 -16
  16. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -1
  17. package/admin/CurrentTenantProvider.js +5 -8
  18. package/admin/CurrentTenantProvider.js.map +1 -1
  19. package/admin/DisableTenant/DisableTenantGateway.js +21 -22
  20. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -1
  21. package/admin/DisableTenant/DisableTenantRepository.js +13 -10
  22. package/admin/DisableTenant/DisableTenantRepository.js.map +1 -1
  23. package/admin/DisableTenant/DisableTenantUseCase.js +13 -10
  24. package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -1
  25. package/admin/DisableTenant/abstractions.js +4 -12
  26. package/admin/DisableTenant/abstractions.js.map +1 -1
  27. package/admin/DisableTenant/feature.js +15 -14
  28. package/admin/DisableTenant/feature.js.map +1 -1
  29. package/admin/DisableTenant/index.js +0 -2
  30. package/admin/DisableTenant/useDisableTenant.js +20 -20
  31. package/admin/DisableTenant/useDisableTenant.js.map +1 -1
  32. package/admin/EnableTenant/EnableTenantGateway.js +21 -22
  33. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -1
  34. package/admin/EnableTenant/EnableTenantRepository.js +13 -10
  35. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -1
  36. package/admin/EnableTenant/EnableTenantUseCase.js +13 -10
  37. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -1
  38. package/admin/EnableTenant/abstractions.js +4 -12
  39. package/admin/EnableTenant/abstractions.js.map +1 -1
  40. package/admin/EnableTenant/feature.js +15 -14
  41. package/admin/EnableTenant/feature.js.map +1 -1
  42. package/admin/EnableTenant/index.js +0 -2
  43. package/admin/EnableTenant/useEnableTenant.js +19 -18
  44. package/admin/EnableTenant/useEnableTenant.js.map +1 -1
  45. package/admin/Extension.js +32 -36
  46. package/admin/Extension.js.map +1 -1
  47. package/admin/IsRootTenant.js +14 -32
  48. package/admin/IsRootTenant.js.map +1 -1
  49. package/admin/SecurityPermission.js +11 -14
  50. package/admin/SecurityPermission.js.map +1 -1
  51. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +36 -37
  52. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -1
  53. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +10 -14
  54. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -1
  55. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +34 -33
  56. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -1
  57. package/admin/TenantEntryList/FolderNameCell.js +19 -24
  58. package/admin/TenantEntryList/FolderNameCell.js.map +1 -1
  59. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +10 -14
  60. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -1
  61. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +3 -2
  62. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -1
  63. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +34 -38
  64. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -1
  65. package/admin/TenantEntryList/ManageTenant.js +15 -16
  66. package/admin/TenantEntryList/ManageTenant.js.map +1 -1
  67. package/admin/TenantEntryList/TenantCell.js +15 -30
  68. package/admin/TenantEntryList/TenantCell.js.map +1 -1
  69. package/admin/TenantEntryList/TenantNameCell.js +35 -45
  70. package/admin/TenantEntryList/TenantNameCell.js.map +1 -1
  71. package/admin/TenantEntryList.js +43 -60
  72. package/admin/TenantEntryList.js.map +1 -1
  73. package/admin/TenantSelector.js +31 -35
  74. package/admin/TenantSelector.js.map +1 -1
  75. package/admin/domain/permissionsSchema.js +4 -3
  76. package/admin/domain/permissionsSchema.js.map +1 -1
  77. package/admin/features/permissions/abstractions.js +2 -1
  78. package/admin/features/permissions/abstractions.js.map +1 -1
  79. package/admin/features/permissions/feature.js +2 -1
  80. package/admin/features/permissions/feature.js.map +1 -1
  81. package/admin/types.js +0 -3
  82. package/api/Extension.js +20 -23
  83. package/api/Extension.js.map +1 -1
  84. package/api/domain/TenantId.js +5 -7
  85. package/api/domain/TenantId.js.map +1 -1
  86. package/api/domain/TenantModel.js +59 -37
  87. package/api/domain/TenantModel.js.map +1 -1
  88. package/api/domain/TenantModelExtension.js +2 -2
  89. package/api/domain/TenantModelExtension.js.map +1 -1
  90. package/api/domain/errors.js +49 -54
  91. package/api/domain/errors.js.map +1 -1
  92. package/api/features/AddCmsPermissions/AddCmsPermissions.js +40 -31
  93. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -1
  94. package/api/features/AddCmsPermissions/feature.js +6 -5
  95. package/api/features/AddCmsPermissions/feature.js.map +1 -1
  96. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +67 -85
  97. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -1
  98. package/api/features/CreateAndInstallTenant/abstractions.js +2 -6
  99. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -1
  100. package/api/features/CreateAndInstallTenant/feature.js +6 -6
  101. package/api/features/CreateAndInstallTenant/feature.js.map +1 -1
  102. package/api/features/CreateTenant/CreateTenantRepository.js +33 -38
  103. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -1
  104. package/api/features/CreateTenant/CreateTenantUseCase.js +29 -32
  105. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -1
  106. package/api/features/CreateTenant/abstractions.js +3 -8
  107. package/api/features/CreateTenant/abstractions.js.map +1 -1
  108. package/api/features/CreateTenant/feature.js +7 -9
  109. package/api/features/CreateTenant/feature.js.map +1 -1
  110. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +17 -27
  111. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -1
  112. package/api/features/DeleteTenantOnEntryDelete/feature.js +6 -6
  113. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -1
  114. package/api/features/DisableTenant/DisableTenantUseCase.js +41 -53
  115. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -1
  116. package/api/features/DisableTenant/abstractions.js +2 -1
  117. package/api/features/DisableTenant/abstractions.js.map +1 -1
  118. package/api/features/DisableTenant/events.js +17 -12
  119. package/api/features/DisableTenant/events.js.map +1 -1
  120. package/api/features/DisableTenant/feature.js +6 -6
  121. package/api/features/DisableTenant/feature.js.map +1 -1
  122. package/api/features/EnableTenant/EnableTenantUseCase.js +43 -55
  123. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -1
  124. package/api/features/EnableTenant/abstractions.js +2 -1
  125. package/api/features/EnableTenant/abstractions.js.map +1 -1
  126. package/api/features/EnableTenant/events.js +17 -12
  127. package/api/features/EnableTenant/events.js.map +1 -1
  128. package/api/features/EnableTenant/feature.js +6 -6
  129. package/api/features/EnableTenant/feature.js.map +1 -1
  130. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +21 -24
  131. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -1
  132. package/api/features/GetCurrentTenant/abstractions.js +2 -7
  133. package/api/features/GetCurrentTenant/abstractions.js.map +1 -1
  134. package/api/features/GetCurrentTenant/feature.js +6 -6
  135. package/api/features/GetCurrentTenant/feature.js.map +1 -1
  136. package/api/features/GetTenantById/GetTenantByIdRepository.js +31 -36
  137. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -1
  138. package/api/features/GetTenantById/GetTenantByIdUseCase.js +15 -19
  139. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
  140. package/api/features/GetTenantById/abstractions.js +3 -12
  141. package/api/features/GetTenantById/abstractions.js.map +1 -1
  142. package/api/features/GetTenantById/feature.js +7 -9
  143. package/api/features/GetTenantById/feature.js.map +1 -1
  144. package/api/features/UpdateTenant/UpdateTenantRepository.js +40 -47
  145. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -1
  146. package/api/features/UpdateTenant/UpdateTenantUseCase.js +15 -15
  147. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
  148. package/api/features/UpdateTenant/abstractions.js +3 -12
  149. package/api/features/UpdateTenant/abstractions.js.map +1 -1
  150. package/api/features/UpdateTenant/feature.js +7 -9
  151. package/api/features/UpdateTenant/feature.js.map +1 -1
  152. package/api/graphql/CreateTenantSchema.js +53 -55
  153. package/api/graphql/CreateTenantSchema.js.map +1 -1
  154. package/api/graphql/DisableTenantSchema.js +20 -24
  155. package/api/graphql/DisableTenantSchema.js.map +1 -1
  156. package/api/graphql/EnableTenantSchema.js +20 -24
  157. package/api/graphql/EnableTenantSchema.js.map +1 -1
  158. package/api/graphql/GetCurrentTenantSchema.js +24 -28
  159. package/api/graphql/GetCurrentTenantSchema.js.map +1 -1
  160. package/api/graphql/InstallTenantSchema.js +26 -33
  161. package/api/graphql/InstallTenantSchema.js.map +1 -1
  162. package/exports/admin/tenancy.js +1 -5
  163. package/exports/api/tenant-manager.js +0 -2
  164. package/index.js +0 -2
  165. package/package.json +16 -16
  166. package/shared/Tenant.js +23 -22
  167. package/shared/Tenant.js.map +1 -1
  168. package/shared/constants.js +2 -1
  169. package/shared/constants.js.map +1 -1
  170. package/admin/DisableTenant/index.js.map +0 -1
  171. package/admin/EnableTenant/index.js.map +0 -1
  172. package/admin/types.js.map +0 -1
  173. package/exports/admin/tenancy.js.map +0 -1
  174. package/exports/api/tenant-manager.js.map +0 -1
  175. package/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","TenantModel","CreateAndInstallTenantFeature","CreateTenantFeature","DisableTenantFeature","EnableTenantFeature","GetTenantByIdFeature","GetCurrentTenantFeature","UpdateTenantFeature","DeleteTenantOnEntryDeleteFeature","InstallTenantSchema","CreateTenantSchema","DisableTenantSchema","EnableTenantSchema","GetCurrentTenantSchema","AddCmsPermissionsFeature","Extension","name","register","container"],"sources":["Extension.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport TenantModel from \"./domain/TenantModel.js\";\nimport { CreateAndInstallTenantFeature } from \"./features/CreateAndInstallTenant/feature.js\";\nimport { CreateTenantFeature } from \"./features/CreateTenant/feature.js\";\nimport { DisableTenantFeature } from \"./features/DisableTenant/feature.js\";\nimport { EnableTenantFeature } from \"./features/EnableTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./features/GetTenantById/feature.js\";\nimport { GetCurrentTenantFeature } from \"./features/GetCurrentTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./features/UpdateTenant/feature.js\";\nimport { DeleteTenantOnEntryDeleteFeature } from \"./features/DeleteTenantOnEntryDelete/feature.js\";\nimport InstallTenantSchema from \"./graphql/InstallTenantSchema.js\";\nimport CreateTenantSchema from \"./graphql/CreateTenantSchema.js\";\nimport DisableTenantSchema from \"./graphql/DisableTenantSchema.js\";\nimport EnableTenantSchema from \"./graphql/EnableTenantSchema.js\";\nimport GetCurrentTenantSchema from \"./graphql/GetCurrentTenantSchema.js\";\nimport { AddCmsPermissionsFeature } from \"~/api/features/AddCmsPermissions/feature.js\";\n\nexport const Extension = createFeature({\n name: \"TenantManagement\",\n register(container) {\n container.register(TenantModel);\n\n //GraphQL\n container.register(InstallTenantSchema);\n container.register(CreateTenantSchema);\n container.register(DisableTenantSchema);\n container.register(EnableTenantSchema);\n container.register(GetCurrentTenantSchema);\n\n // Features\n CreateAndInstallTenantFeature.register(container);\n CreateTenantFeature.register(container);\n DisableTenantFeature.register(container);\n EnableTenantFeature.register(container);\n GetTenantByIdFeature.register(container);\n GetCurrentTenantFeature.register(container);\n UpdateTenantFeature.register(container);\n DeleteTenantOnEntryDeleteFeature.register(container);\n AddCmsPermissionsFeature.register(container);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,WAAW;AAClB,SAASC,6BAA6B;AACtC,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,mBAAmB;AAC5B,SAASC,gCAAgC;AACzC,OAAOC,mBAAmB;AAC1B,OAAOC,kBAAkB;AACzB,OAAOC,mBAAmB;AAC1B,OAAOC,kBAAkB;AACzB,OAAOC,sBAAsB;AAC7B,SAASC,wBAAwB;AAEjC,OAAO,MAAMC,SAAS,GAAGhB,aAAa,CAAC;EACnCiB,IAAI,EAAE,kBAAkB;EACxBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACjB,WAAW,CAAC;;IAE/B;IACAkB,SAAS,CAACD,QAAQ,CAACR,mBAAmB,CAAC;IACvCS,SAAS,CAACD,QAAQ,CAACP,kBAAkB,CAAC;IACtCQ,SAAS,CAACD,QAAQ,CAACN,mBAAmB,CAAC;IACvCO,SAAS,CAACD,QAAQ,CAACL,kBAAkB,CAAC;IACtCM,SAAS,CAACD,QAAQ,CAACJ,sBAAsB,CAAC;;IAE1C;IACAZ,6BAA6B,CAACgB,QAAQ,CAACC,SAAS,CAAC;IACjDhB,mBAAmB,CAACe,QAAQ,CAACC,SAAS,CAAC;IACvCf,oBAAoB,CAACc,QAAQ,CAACC,SAAS,CAAC;IACxCd,mBAAmB,CAACa,QAAQ,CAACC,SAAS,CAAC;IACvCb,oBAAoB,CAACY,QAAQ,CAACC,SAAS,CAAC;IACxCZ,uBAAuB,CAACW,QAAQ,CAACC,SAAS,CAAC;IAC3CX,mBAAmB,CAACU,QAAQ,CAACC,SAAS,CAAC;IACvCV,gCAAgC,CAACS,QAAQ,CAACC,SAAS,CAAC;IACpDJ,wBAAwB,CAACG,QAAQ,CAACC,SAAS,CAAC;EAChD;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/Extension.js","sources":["../../src/api/Extension.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport TenantModel from \"./domain/TenantModel.js\";\nimport { CreateAndInstallTenantFeature } from \"./features/CreateAndInstallTenant/feature.js\";\nimport { CreateTenantFeature } from \"./features/CreateTenant/feature.js\";\nimport { DisableTenantFeature } from \"./features/DisableTenant/feature.js\";\nimport { EnableTenantFeature } from \"./features/EnableTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./features/GetTenantById/feature.js\";\nimport { GetCurrentTenantFeature } from \"./features/GetCurrentTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./features/UpdateTenant/feature.js\";\nimport { DeleteTenantOnEntryDeleteFeature } from \"./features/DeleteTenantOnEntryDelete/feature.js\";\nimport InstallTenantSchema from \"./graphql/InstallTenantSchema.js\";\nimport CreateTenantSchema from \"./graphql/CreateTenantSchema.js\";\nimport DisableTenantSchema from \"./graphql/DisableTenantSchema.js\";\nimport EnableTenantSchema from \"./graphql/EnableTenantSchema.js\";\nimport GetCurrentTenantSchema from \"./graphql/GetCurrentTenantSchema.js\";\nimport { AddCmsPermissionsFeature } from \"~/api/features/AddCmsPermissions/feature.js\";\n\nexport const Extension = createFeature({\n name: \"TenantManagement\",\n register(container) {\n container.register(TenantModel);\n\n //GraphQL\n container.register(InstallTenantSchema);\n container.register(CreateTenantSchema);\n container.register(DisableTenantSchema);\n container.register(EnableTenantSchema);\n container.register(GetCurrentTenantSchema);\n\n // Features\n CreateAndInstallTenantFeature.register(container);\n CreateTenantFeature.register(container);\n DisableTenantFeature.register(container);\n EnableTenantFeature.register(container);\n GetTenantByIdFeature.register(container);\n GetCurrentTenantFeature.register(container);\n UpdateTenantFeature.register(container);\n DeleteTenantOnEntryDeleteFeature.register(container);\n AddCmsPermissionsFeature.register(container);\n }\n});\n"],"names":["Extension","createFeature","container","TenantModel","InstallTenantSchema","CreateTenantSchema","DisableTenantSchema","EnableTenantSchema","GetCurrentTenantSchema","CreateAndInstallTenantFeature","CreateTenantFeature","DisableTenantFeature","EnableTenantFeature","GetTenantByIdFeature","GetCurrentTenantFeature","UpdateTenantFeature","DeleteTenantOnEntryDeleteFeature","AddCmsPermissionsFeature"],"mappings":";;;;;;;;;;;;;;;;AAiBO,MAAMA,YAAYC,cAAc;IACnC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QAGnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;QACnBL,UAAU,QAAQ,CAACM;QAGnBC,8BAA8B,QAAQ,CAACP;QACvCQ,oBAAoB,QAAQ,CAACR;QAC7BS,qBAAqB,QAAQ,CAACT;QAC9BU,oBAAoB,QAAQ,CAACV;QAC7BW,qBAAqB,QAAQ,CAACX;QAC9BY,wBAAwB,QAAQ,CAACZ;QACjCa,oBAAoB,QAAQ,CAACb;QAC7Bc,iCAAiC,QAAQ,CAACd;QAC1Ce,yBAAyB,QAAQ,CAACf;IACtC;AACJ"}
@@ -1,12 +1,10 @@
1
1
  import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
2
- export class TenantId {
3
- static from(id) {
4
- if (id) {
5
- // Ensure we have a clean id, without the revision suffix.
6
- return EntryId.from(id).id;
2
+ class TenantId {
3
+ static from(id) {
4
+ if (id) return EntryId.from(id).id;
5
+ return EntryId.create().id;
7
6
  }
8
- return EntryId.create().id;
9
- }
10
7
  }
8
+ export { TenantId };
11
9
 
12
10
  //# sourceMappingURL=TenantId.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EntryId","TenantId","from","id","create"],"sources":["TenantId.ts"],"sourcesContent":["import { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nexport class TenantId {\n static from(id?: string) {\n if (id) {\n // Ensure we have a clean id, without the revision suffix.\n return EntryId.from(id).id;\n }\n\n return EntryId.create().id;\n }\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,mDAAmD;AAE3E,OAAO,MAAMC,QAAQ,CAAC;EAClB,OAAOC,IAAIA,CAACC,EAAW,EAAE;IACrB,IAAIA,EAAE,EAAE;MACJ;MACA,OAAOH,OAAO,CAACE,IAAI,CAACC,EAAE,CAAC,CAACA,EAAE;IAC9B;IAEA,OAAOH,OAAO,CAACI,MAAM,CAAC,CAAC,CAACD,EAAE;EAC9B;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/TenantId.js","sources":["../../../src/api/domain/TenantId.ts"],"sourcesContent":["import { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nexport class TenantId {\n static from(id?: string) {\n if (id) {\n // Ensure we have a clean id, without the revision suffix.\n return EntryId.from(id).id;\n }\n\n return EntryId.create().id;\n }\n}\n"],"names":["TenantId","id","EntryId"],"mappings":";AAEO,MAAMA;IACT,OAAO,KAAKC,EAAW,EAAE;QACrB,IAAIA,IAEA,OAAOC,QAAQ,IAAI,CAACD,IAAI,EAAE;QAG9B,OAAOC,QAAQ,MAAM,GAAG,EAAE;IAC9B;AACJ"}
@@ -2,45 +2,67 @@ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/ind
2
2
  import { TenantModelExtension } from "./TenantModelExtension.js";
3
3
  import { TENANT_MODEL_ID } from "../../shared/constants.js";
4
4
  class TenantModelFactory {
5
- constructor(extensions) {
6
- this.extensions = extensions;
7
- }
8
- async execute(builder) {
9
- const model = builder.public({
10
- modelId: TENANT_MODEL_ID,
11
- name: "Tenant",
12
- group: "hidden"
13
- }).description("Manage system tenants.").titleFieldId("name").icon("fas/building").singularApiName("Tenant").pluralApiName("Tenants").tags(["$publishing:false", "$hidden:true"]);
14
- model.fields(fields => ({
15
- name: fields.text().label("Name").description("Enter a tenant name").required().renderer("textInput"),
16
- description: fields.longText().label("Description").description("Enter a short tenant description").renderer("textarea").required(),
17
- status: fields.text().label("Status").defaultValue("disabled").renderer("hidden").predefinedValues([{
18
- value: "enabled",
19
- label: "Enabled"
20
- }, {
21
- value: "disabled",
22
- label: "Disabled"
23
- }]),
24
- isInstalled: fields.boolean().label("Is installed?").renderer("hidden").defaultValue(false),
25
- extensions: fields.object().renderer("passthrough")
26
- })).layout([["name"], ["description"], ["extensions"]]);
27
- for (const modifier of this.extensions) {
28
- model.fields(fields => {
29
- const extensions = fields.extend().object();
30
- modifier.execute(extensions);
31
- return {
32
- extensions
33
- };
34
- });
5
+ constructor(extensions){
6
+ this.extensions = extensions;
7
+ }
8
+ async execute(builder) {
9
+ const model = builder.public({
10
+ modelId: TENANT_MODEL_ID,
11
+ name: "Tenant",
12
+ group: "hidden"
13
+ }).description("Manage system tenants.").titleFieldId("name").icon("fas/building").singularApiName("Tenant").pluralApiName("Tenants").tags([
14
+ "$publishing:false",
15
+ "$hidden:true"
16
+ ]);
17
+ model.fields((fields)=>({
18
+ name: fields.text().label("Name").description("Enter a tenant name").required().renderer("textInput"),
19
+ description: fields.longText().label("Description").description("Enter a short tenant description").renderer("textarea").required(),
20
+ status: fields.text().label("Status").defaultValue("disabled").renderer("hidden").predefinedValues([
21
+ {
22
+ value: "enabled",
23
+ label: "Enabled"
24
+ },
25
+ {
26
+ value: "disabled",
27
+ label: "Disabled"
28
+ }
29
+ ]),
30
+ isInstalled: fields.boolean().label("Is installed?").renderer("hidden").defaultValue(false),
31
+ extensions: fields.object().renderer("passthrough")
32
+ })).layout([
33
+ [
34
+ "name"
35
+ ],
36
+ [
37
+ "description"
38
+ ],
39
+ [
40
+ "extensions"
41
+ ]
42
+ ]);
43
+ for (const modifier of this.extensions)model.fields((fields)=>{
44
+ const extensions = fields.extend().object();
45
+ modifier.execute(extensions);
46
+ return {
47
+ extensions
48
+ };
49
+ });
50
+ return [
51
+ model
52
+ ];
35
53
  }
36
- return [model];
37
- }
38
54
  }
39
- export default ModelFactory.createImplementation({
40
- implementation: TenantModelFactory,
41
- dependencies: [[TenantModelExtension, {
42
- multiple: true
43
- }]]
55
+ const TenantModel = ModelFactory.createImplementation({
56
+ implementation: TenantModelFactory,
57
+ dependencies: [
58
+ [
59
+ TenantModelExtension,
60
+ {
61
+ multiple: true
62
+ }
63
+ ]
64
+ ]
44
65
  });
66
+ export default TenantModel;
45
67
 
46
68
  //# sourceMappingURL=TenantModel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ModelFactory","TenantModelExtension","TENANT_MODEL_ID","TenantModelFactory","constructor","extensions","execute","builder","model","public","modelId","name","group","description","titleFieldId","icon","singularApiName","pluralApiName","tags","fields","text","label","required","renderer","longText","status","defaultValue","predefinedValues","value","isInstalled","boolean","object","layout","modifier","extend","createImplementation","implementation","dependencies","multiple"],"sources":["TenantModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { TenantModelExtension } from \"./TenantModelExtension.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass TenantModelFactory implements ModelFactory.Interface {\n constructor(private extensions: TenantModelExtension.Interface[]) {}\n\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: TENANT_MODEL_ID,\n name: \"Tenant\",\n group: \"hidden\"\n })\n .description(\"Manage system tenants.\")\n .titleFieldId(\"name\")\n .icon(\"fas/building\")\n .singularApiName(\"Tenant\")\n .pluralApiName(\"Tenants\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\"Enter a tenant name\")\n .required()\n .renderer(\"textInput\"),\n description: fields\n .longText()\n .label(\"Description\")\n .description(\"Enter a short tenant description\")\n .renderer(\"textarea\")\n .required(),\n status: fields\n .text()\n .label(\"Status\")\n .defaultValue(\"disabled\")\n .renderer(\"hidden\")\n .predefinedValues([\n {\n value: \"enabled\",\n label: \"Enabled\"\n },\n {\n value: \"disabled\",\n label: \"Disabled\"\n }\n ]),\n isInstalled: fields\n .boolean()\n .label(\"Is installed?\")\n .renderer(\"hidden\")\n .defaultValue(false),\n extensions: fields.object().renderer(\"passthrough\")\n }))\n .layout([[\"name\"], [\"description\"], [\"extensions\"]]);\n\n for (const modifier of this.extensions) {\n model.fields(fields => {\n const extensions = fields.extend().object();\n modifier.execute(extensions);\n\n return { extensions };\n });\n }\n\n return [model];\n }\n}\n\nexport default ModelFactory.createImplementation({\n implementation: TenantModelFactory,\n dependencies: [[TenantModelExtension, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AACtF,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AAExB,MAAMC,kBAAkB,CAAmC;EACvDC,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAACC,OAA6B,EAAE;IACzC,MAAMC,KAAK,GAAGD,OAAO,CAChBE,MAAM,CAAC;MACJC,OAAO,EAAER,eAAe;MACxBS,IAAI,EAAE,QAAQ;MACdC,KAAK,EAAE;IACX,CAAC,CAAC,CACDC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,YAAY,CAAC,MAAM,CAAC,CACpBC,IAAI,CAAC,cAAc,CAAC,CACpBC,eAAe,CAAC,QAAQ,CAAC,CACzBC,aAAa,CAAC,SAAS,CAAC,CACxBC,IAAI,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAEhDV,KAAK,CACAW,MAAM,CAACA,MAAM,KAAK;MACfR,IAAI,EAAEQ,MAAM,CACPC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,MAAM,CAAC,CACbR,WAAW,CAAC,qBAAqB,CAAC,CAClCS,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,WAAW,CAAC;MAC1BV,WAAW,EAAEM,MAAM,CACdK,QAAQ,CAAC,CAAC,CACVH,KAAK,CAAC,aAAa,CAAC,CACpBR,WAAW,CAAC,kCAAkC,CAAC,CAC/CU,QAAQ,CAAC,UAAU,CAAC,CACpBD,QAAQ,CAAC,CAAC;MACfG,MAAM,EAAEN,MAAM,CACTC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,QAAQ,CAAC,CACfK,YAAY,CAAC,UAAU,CAAC,CACxBH,QAAQ,CAAC,QAAQ,CAAC,CAClBI,gBAAgB,CAAC,CACd;QACIC,KAAK,EAAE,SAAS;QAChBP,KAAK,EAAE;MACX,CAAC,EACD;QACIO,KAAK,EAAE,UAAU;QACjBP,KAAK,EAAE;MACX,CAAC,CACJ,CAAC;MACNQ,WAAW,EAAEV,MAAM,CACdW,OAAO,CAAC,CAAC,CACTT,KAAK,CAAC,eAAe,CAAC,CACtBE,QAAQ,CAAC,QAAQ,CAAC,CAClBG,YAAY,CAAC,KAAK,CAAC;MACxBrB,UAAU,EAAEc,MAAM,CAACY,MAAM,CAAC,CAAC,CAACR,QAAQ,CAAC,aAAa;IACtD,CAAC,CAAC,CAAC,CACFS,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAExD,KAAK,MAAMC,QAAQ,IAAI,IAAI,CAAC5B,UAAU,EAAE;MACpCG,KAAK,CAACW,MAAM,CAACA,MAAM,IAAI;QACnB,MAAMd,UAAU,GAAGc,MAAM,CAACe,MAAM,CAAC,CAAC,CAACH,MAAM,CAAC,CAAC;QAC3CE,QAAQ,CAAC3B,OAAO,CAACD,UAAU,CAAC;QAE5B,OAAO;UAAEA;QAAW,CAAC;MACzB,CAAC,CAAC;IACN;IAEA,OAAO,CAACG,KAAK,CAAC;EAClB;AACJ;AAEA,eAAeR,YAAY,CAACmC,oBAAoB,CAAC;EAC7CC,cAAc,EAAEjC,kBAAkB;EAClCkC,YAAY,EAAE,CAAC,CAACpC,oBAAoB,EAAE;IAAEqC,QAAQ,EAAE;EAAK,CAAC,CAAC;AAC7D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/TenantModel.js","sources":["../../../src/api/domain/TenantModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { TenantModelExtension } from \"./TenantModelExtension.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass TenantModelFactory implements ModelFactory.Interface {\n constructor(private extensions: TenantModelExtension.Interface[]) {}\n\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: TENANT_MODEL_ID,\n name: \"Tenant\",\n group: \"hidden\"\n })\n .description(\"Manage system tenants.\")\n .titleFieldId(\"name\")\n .icon(\"fas/building\")\n .singularApiName(\"Tenant\")\n .pluralApiName(\"Tenants\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\"Enter a tenant name\")\n .required()\n .renderer(\"textInput\"),\n description: fields\n .longText()\n .label(\"Description\")\n .description(\"Enter a short tenant description\")\n .renderer(\"textarea\")\n .required(),\n status: fields\n .text()\n .label(\"Status\")\n .defaultValue(\"disabled\")\n .renderer(\"hidden\")\n .predefinedValues([\n {\n value: \"enabled\",\n label: \"Enabled\"\n },\n {\n value: \"disabled\",\n label: \"Disabled\"\n }\n ]),\n isInstalled: fields\n .boolean()\n .label(\"Is installed?\")\n .renderer(\"hidden\")\n .defaultValue(false),\n extensions: fields.object().renderer(\"passthrough\")\n }))\n .layout([[\"name\"], [\"description\"], [\"extensions\"]]);\n\n for (const modifier of this.extensions) {\n model.fields(fields => {\n const extensions = fields.extend().object();\n modifier.execute(extensions);\n\n return { extensions };\n });\n }\n\n return [model];\n }\n}\n\nexport default ModelFactory.createImplementation({\n implementation: TenantModelFactory,\n dependencies: [[TenantModelExtension, { multiple: true }]]\n});\n"],"names":["TenantModelFactory","extensions","builder","model","TENANT_MODEL_ID","fields","modifier","ModelFactory","TenantModelExtension"],"mappings":";;;AAIA,MAAMA;IACF,YAAoBC,UAA4C,CAAE;aAA9CA,UAAU,GAAVA;IAA+C;IAEnE,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,0BACZ,YAAY,CAAC,QACb,IAAI,CAAC,gBACL,eAAe,CAAC,UAChB,aAAa,CAAC,WACd,IAAI,CAAC;YAAC;YAAqB;SAAe;QAE/CD,MACK,MAAM,CAACE,CAAAA,SAAW;gBACf,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,WAAW,CAAC,uBACZ,QAAQ,GACR,QAAQ,CAAC;gBACd,aAAaA,OACR,QAAQ,GACR,KAAK,CAAC,eACN,WAAW,CAAC,oCACZ,QAAQ,CAAC,YACT,QAAQ;gBACb,QAAQA,OACH,IAAI,GACJ,KAAK,CAAC,UACN,YAAY,CAAC,YACb,QAAQ,CAAC,UACT,gBAAgB,CAAC;oBACd;wBACI,OAAO;wBACP,OAAO;oBACX;oBACA;wBACI,OAAO;wBACP,OAAO;oBACX;iBACH;gBACL,aAAaA,OACR,OAAO,GACP,KAAK,CAAC,iBACN,QAAQ,CAAC,UACT,YAAY,CAAC;gBAClB,YAAYA,OAAO,MAAM,GAAG,QAAQ,CAAC;YACzC,IACC,MAAM,CAAC;YAAC;gBAAC;aAAO;YAAE;gBAAC;aAAc;YAAE;gBAAC;aAAa;SAAC;QAEvD,KAAK,MAAMC,YAAY,IAAI,CAAC,UAAU,CAClCH,MAAM,MAAM,CAACE,CAAAA;YACT,MAAMJ,aAAaI,OAAO,MAAM,GAAG,MAAM;YACzCC,SAAS,OAAO,CAACL;YAEjB,OAAO;gBAAEA;YAAW;QACxB;QAGJ,OAAO;YAACE;SAAM;IAClB;AACJ;AAEA,oBAAeI,aAAa,oBAAoB,CAAC;IAC7C,gBAAgBP;IAChB,cAAc;QAAC;YAACQ;YAAsB;gBAAE,UAAU;YAAK;SAAE;KAAC;AAC9D"}
@@ -1,5 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- /** Extend the tenant content model with custom fields. */
3
- export const TenantModelExtension = createAbstraction("TenantModelExtension");
2
+ const TenantModelExtension = createAbstraction("TenantModelExtension");
3
+ export { TenantModelExtension };
4
4
 
5
5
  //# sourceMappingURL=TenantModelExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","TenantModelExtension"],"sources":["TenantModelExtension.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { IObjectFieldBuilder } from \"@webiny/api-headless-cms/features/modelBuilder/fields/ObjectFieldType.js\";\n\nexport type IExtension = Pick<IObjectFieldBuilder, \"fields\" | \"layout\">;\n\nexport interface ITenantModelExtension {\n execute(extension: IExtension): void;\n}\n\n/** Extend the tenant content model with custom fields. */\nexport const TenantModelExtension =\n createAbstraction<ITenantModelExtension>(\"TenantModelExtension\");\n\nexport namespace TenantModelExtension {\n export type Interface = ITenantModelExtension;\n export type Extension = IExtension;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AASvD;AACA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/TenantModelExtension.js","sources":["../../../src/api/domain/TenantModelExtension.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { IObjectFieldBuilder } from \"@webiny/api-headless-cms/features/modelBuilder/fields/ObjectFieldType.js\";\n\nexport type IExtension = Pick<IObjectFieldBuilder, \"fields\" | \"layout\">;\n\nexport interface ITenantModelExtension {\n execute(extension: IExtension): void;\n}\n\n/** Extend the tenant content model with custom fields. */\nexport const TenantModelExtension =\n createAbstraction<ITenantModelExtension>(\"TenantModelExtension\");\n\nexport namespace TenantModelExtension {\n export type Interface = ITenantModelExtension;\n export type Extension = IExtension;\n}\n"],"names":["TenantModelExtension","createAbstraction"],"mappings":";AAUO,MAAMA,uBACTC,kBAAyC"}
@@ -1,63 +1,58 @@
1
1
  import { BaseError } from "@webiny/feature/api";
2
- export class TenantNotFoundError extends BaseError {
3
- code = "Tenant/NotFound";
4
- constructor(id) {
5
- super({
6
- message: `Tenant with id "${id}" was not found!`
7
- });
8
- }
2
+ class TenantNotFoundError extends BaseError {
3
+ constructor(id){
4
+ super({
5
+ message: `Tenant with id "${id}" was not found!`
6
+ }), this.code = "Tenant/NotFound";
7
+ }
9
8
  }
10
- export class TenantModelNotFoundError extends BaseError {
11
- code = "Tenant/ModelNotFound";
12
- constructor() {
13
- super({
14
- message: `Tenant model was not found!`
15
- });
16
- }
9
+ class TenantModelNotFoundError extends BaseError {
10
+ constructor(){
11
+ super({
12
+ message: "Tenant model was not found!"
13
+ }), this.code = "Tenant/ModelNotFound";
14
+ }
17
15
  }
18
- export class TenantPersistenceError extends BaseError {
19
- code = "Tenant/Persist";
20
- constructor(error) {
21
- super({
22
- message: error.message,
23
- data: {
24
- error
25
- }
26
- });
27
- }
16
+ class TenantPersistenceError extends BaseError {
17
+ constructor(error){
18
+ super({
19
+ message: error.message,
20
+ data: {
21
+ error
22
+ }
23
+ }), this.code = "Tenant/Persist";
24
+ }
28
25
  }
29
- export class TenantCreationError extends BaseError {
30
- code = "Tenant/Create";
31
- constructor(error) {
32
- super({
33
- message: error.message,
34
- data: {
35
- error
36
- }
37
- });
38
- }
26
+ class TenantCreationError extends BaseError {
27
+ constructor(error){
28
+ super({
29
+ message: error.message,
30
+ data: {
31
+ error
32
+ }
33
+ }), this.code = "Tenant/Create";
34
+ }
39
35
  }
40
- export class TenantInstallationError extends BaseError {
41
- code = "Tenant/Install";
42
- constructor(error) {
43
- super({
44
- message: error.message,
45
- data: {
46
- error
47
- }
48
- });
49
- }
36
+ class TenantInstallationError extends BaseError {
37
+ constructor(error){
38
+ super({
39
+ message: error.message,
40
+ data: {
41
+ error
42
+ }
43
+ }), this.code = "Tenant/Install";
44
+ }
50
45
  }
51
- export class TenantUpdateError extends BaseError {
52
- code = "Tenant/Update";
53
- constructor(error) {
54
- super({
55
- message: error.message,
56
- data: {
57
- error
58
- }
59
- });
60
- }
46
+ class TenantUpdateError extends BaseError {
47
+ constructor(error){
48
+ super({
49
+ message: error.message,
50
+ data: {
51
+ error
52
+ }
53
+ }), this.code = "Tenant/Update";
54
+ }
61
55
  }
56
+ export { TenantCreationError, TenantInstallationError, TenantModelNotFoundError, TenantNotFoundError, TenantPersistenceError, TenantUpdateError };
62
57
 
63
58
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseError","TenantNotFoundError","code","constructor","id","message","TenantModelNotFoundError","TenantPersistenceError","error","data","TenantCreationError","TenantInstallationError","TenantUpdateError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class TenantNotFoundError extends BaseError {\n override readonly code = \"Tenant/NotFound\" as const;\n\n constructor(id: string) {\n super({ message: `Tenant with id \"${id}\" was not found!` });\n }\n}\n\nexport class TenantModelNotFoundError extends BaseError {\n override readonly code = \"Tenant/ModelNotFound\" as const;\n\n constructor() {\n super({ message: `Tenant model was not found!` });\n }\n}\n\nexport class TenantPersistenceError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Persist\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantCreationError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Create\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantInstallationError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Install\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantUpdateError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Update\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,mBAAmB,SAASD,SAAS,CAAC;EAC7BE,IAAI,GAAG,iBAAiB;EAE1CC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MAAEC,OAAO,EAAE,mBAAmBD,EAAE;IAAmB,CAAC,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAME,wBAAwB,SAASN,SAAS,CAAC;EAClCE,IAAI,GAAG,sBAAsB;EAE/CC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MAAEE,OAAO,EAAE;IAA8B,CAAC,CAAC;EACrD;AACJ;AAEA,OAAO,MAAME,sBAAsB,SAASP,SAAS,CAAmB;EAClDE,IAAI,GAAG,gBAAgB;EAEzCC,WAAWA,CAACK,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEH,OAAO,EAAEG,KAAK,CAACH,OAAO;MAAEI,IAAI,EAAE;QAAED;MAAM;IAAE,CAAC,CAAC;EACtD;AACJ;AAEA,OAAO,MAAME,mBAAmB,SAASV,SAAS,CAAmB;EAC/CE,IAAI,GAAG,eAAe;EAExCC,WAAWA,CAACK,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEH,OAAO,EAAEG,KAAK,CAACH,OAAO;MAAEI,IAAI,EAAE;QAAED;MAAM;IAAE,CAAC,CAAC;EACtD;AACJ;AAEA,OAAO,MAAMG,uBAAuB,SAASX,SAAS,CAAmB;EACnDE,IAAI,GAAG,gBAAgB;EAEzCC,WAAWA,CAACK,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEH,OAAO,EAAEG,KAAK,CAACH,OAAO;MAAEI,IAAI,EAAE;QAAED;MAAM;IAAE,CAAC,CAAC;EACtD;AACJ;AAEA,OAAO,MAAMI,iBAAiB,SAASZ,SAAS,CAAmB;EAC7CE,IAAI,GAAG,eAAe;EAExCC,WAAWA,CAACK,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEH,OAAO,EAAEG,KAAK,CAACH,OAAO;MAAEI,IAAI,EAAE;QAAED;MAAM;IAAE,CAAC,CAAC;EACtD;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class TenantNotFoundError extends BaseError {\n override readonly code = \"Tenant/NotFound\" as const;\n\n constructor(id: string) {\n super({ message: `Tenant with id \"${id}\" was not found!` });\n }\n}\n\nexport class TenantModelNotFoundError extends BaseError {\n override readonly code = \"Tenant/ModelNotFound\" as const;\n\n constructor() {\n super({ message: `Tenant model was not found!` });\n }\n}\n\nexport class TenantPersistenceError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Persist\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantCreationError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Create\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantInstallationError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Install\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n\nexport class TenantUpdateError extends BaseError<{ error: Error }> {\n override readonly code = \"Tenant/Update\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { error } });\n }\n}\n"],"names":["TenantNotFoundError","BaseError","id","TenantModelNotFoundError","TenantPersistenceError","error","TenantCreationError","TenantInstallationError","TenantUpdateError"],"mappings":";AAEO,MAAMA,4BAA4BC;IAGrC,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YAAE,SAAS,CAAC,gBAAgB,EAAEA,GAAG,gBAAgB,CAAC;QAAC,SAH3C,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,iCAAiCF;IAG1C,aAAc;QACV,KAAK,CAAC;YAAE,SAAS;QAA8B,SAHjC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMG,+BAA+BH;IAGxC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAEA;YAAM;QAAE,SAHlC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,4BAA4BL;IAGrC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAEA;YAAM;QAAE,SAHlC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAME,gCAAgCN;IAGzC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAEA;YAAM;QAAE,SAHlC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMG,0BAA0BP;IAGnC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAEA;YAAM;QAAE,SAHlC,IAAI,GAAG;IAIzB;AACJ"}
@@ -1,39 +1,48 @@
1
1
  import { PermissionTransformer } from "@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js";
2
2
  import { TENANT_MODEL_ID } from "../../../shared/constants.js";
3
3
  class AddCmsPermissions {
4
- execute(permission) {
5
- if (permission.name !== "tm.*") {
6
- return permission;
4
+ execute(permission) {
5
+ if ("tm.*" !== permission.name) return permission;
6
+ return [
7
+ permission,
8
+ {
9
+ name: "cms.endpoint.manage",
10
+ _src: "tenant-manager"
11
+ },
12
+ {
13
+ name: "cms.contentModel",
14
+ own: false,
15
+ rwd: "r",
16
+ pw: "",
17
+ models: [
18
+ TENANT_MODEL_ID
19
+ ],
20
+ _src: "tenant-manager"
21
+ },
22
+ {
23
+ name: "cms.contentModelGroup",
24
+ own: false,
25
+ rwd: "r",
26
+ pw: "",
27
+ groups: [
28
+ "hidden"
29
+ ],
30
+ _src: "tenant-manager"
31
+ },
32
+ {
33
+ name: "cms.contentEntry",
34
+ own: false,
35
+ rwd: "rwd",
36
+ pw: "",
37
+ _src: "tenant-manager"
38
+ }
39
+ ];
7
40
  }
8
- return [permission, {
9
- name: "cms.endpoint.manage",
10
- _src: "tenant-manager"
11
- }, {
12
- name: "cms.contentModel",
13
- own: false,
14
- rwd: "r",
15
- pw: "",
16
- models: [TENANT_MODEL_ID],
17
- _src: "tenant-manager"
18
- }, {
19
- name: "cms.contentModelGroup",
20
- own: false,
21
- rwd: "r",
22
- pw: "",
23
- groups: ["hidden"],
24
- _src: "tenant-manager"
25
- }, {
26
- name: "cms.contentEntry",
27
- own: false,
28
- rwd: "rwd",
29
- pw: "",
30
- _src: "tenant-manager"
31
- }];
32
- }
33
41
  }
34
- export default PermissionTransformer.createImplementation({
35
- implementation: AddCmsPermissions,
36
- dependencies: []
42
+ const AddCmsPermissions_AddCmsPermissions = PermissionTransformer.createImplementation({
43
+ implementation: AddCmsPermissions,
44
+ dependencies: []
37
45
  });
46
+ export default AddCmsPermissions_AddCmsPermissions;
38
47
 
39
48
  //# sourceMappingURL=AddCmsPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PermissionTransformer","TENANT_MODEL_ID","AddCmsPermissions","execute","permission","name","_src","own","rwd","pw","models","groups","createImplementation","implementation","dependencies"],"sources":["AddCmsPermissions.ts"],"sourcesContent":["import { PermissionTransformer } from \"@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass AddCmsPermissions implements PermissionTransformer.Interface {\n execute(permission: PermissionTransformer.Permission) {\n if (permission.name !== \"tm.*\") {\n return permission;\n }\n\n return [\n permission,\n {\n name: \"cms.endpoint.manage\",\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentModel\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n models: [TENANT_MODEL_ID],\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentModelGroup\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n groups: [\"hidden\"],\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentEntry\",\n own: false,\n rwd: \"rwd\",\n pw: \"\",\n _src: \"tenant-manager\"\n }\n ];\n }\n}\n\nexport default PermissionTransformer.createImplementation({\n implementation: AddCmsPermissions,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,uFAAuF;AAC7H,SAASC,eAAe;AAExB,MAAMC,iBAAiB,CAA4C;EAC/DC,OAAOA,CAACC,UAA4C,EAAE;IAClD,IAAIA,UAAU,CAACC,IAAI,KAAK,MAAM,EAAE;MAC5B,OAAOD,UAAU;IACrB;IAEA,OAAO,CACHA,UAAU,EACV;MACIC,IAAI,EAAE,qBAAqB;MAC3BC,IAAI,EAAE;IACV,CAAC,EACD;MACID,IAAI,EAAE,kBAAkB;MACxBE,GAAG,EAAE,KAAK;MACVC,GAAG,EAAE,GAAG;MACRC,EAAE,EAAE,EAAE;MACNC,MAAM,EAAE,CAACT,eAAe,CAAC;MACzBK,IAAI,EAAE;IACV,CAAC,EACD;MACID,IAAI,EAAE,uBAAuB;MAC7BE,GAAG,EAAE,KAAK;MACVC,GAAG,EAAE,GAAG;MACRC,EAAE,EAAE,EAAE;MACNE,MAAM,EAAE,CAAC,QAAQ,CAAC;MAClBL,IAAI,EAAE;IACV,CAAC,EACD;MACID,IAAI,EAAE,kBAAkB;MACxBE,GAAG,EAAE,KAAK;MACVC,GAAG,EAAE,KAAK;MACVC,EAAE,EAAE,EAAE;MACNH,IAAI,EAAE;IACV,CAAC,CACJ;EACL;AACJ;AAEA,eAAeN,qBAAqB,CAACY,oBAAoB,CAAC;EACtDC,cAAc,EAAEX,iBAAiB;EACjCY,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/features/AddCmsPermissions/AddCmsPermissions.js","sources":["../../../../src/api/features/AddCmsPermissions/AddCmsPermissions.ts"],"sourcesContent":["import { PermissionTransformer } from \"@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass AddCmsPermissions implements PermissionTransformer.Interface {\n execute(permission: PermissionTransformer.Permission) {\n if (permission.name !== \"tm.*\") {\n return permission;\n }\n\n return [\n permission,\n {\n name: \"cms.endpoint.manage\",\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentModel\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n models: [TENANT_MODEL_ID],\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentModelGroup\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n groups: [\"hidden\"],\n _src: \"tenant-manager\"\n },\n {\n name: \"cms.contentEntry\",\n own: false,\n rwd: \"rwd\",\n pw: \"\",\n _src: \"tenant-manager\"\n }\n ];\n }\n}\n\nexport default PermissionTransformer.createImplementation({\n implementation: AddCmsPermissions,\n dependencies: []\n});\n"],"names":["AddCmsPermissions","permission","TENANT_MODEL_ID","PermissionTransformer"],"mappings":";;AAGA,MAAMA;IACF,QAAQC,UAA4C,EAAE;QAClD,IAAIA,AAAoB,WAApBA,WAAW,IAAI,EACf,OAAOA;QAGX,OAAO;YACHA;YACA;gBACI,MAAM;gBACN,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,QAAQ;oBAACC;iBAAgB;gBACzB,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,QAAQ;oBAAC;iBAAS;gBAClB,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,MAAM;YACV;SACH;IACL;AACJ;AAEA,4CAAeC,sBAAsB,oBAAoB,CAAC;IACtD,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import AddCmsPermissions from "./AddCmsPermissions.js";
3
- export const AddCmsPermissionsFeature = createFeature({
4
- name: "AddCmsPermissions",
5
- register(container) {
6
- container.register(AddCmsPermissions);
7
- }
3
+ const AddCmsPermissionsFeature = createFeature({
4
+ name: "AddCmsPermissions",
5
+ register (container) {
6
+ container.register(AddCmsPermissions);
7
+ }
8
8
  });
9
+ export { AddCmsPermissionsFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","AddCmsPermissions","AddCmsPermissionsFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport AddCmsPermissions from \"./AddCmsPermissions.js\";\n\nexport const AddCmsPermissionsFeature = createFeature({\n name: \"AddCmsPermissions\",\n register(container) {\n container.register(AddCmsPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,iBAAiB;AAExB,OAAO,MAAMC,wBAAwB,GAAGF,aAAa,CAAC;EAClDG,IAAI,EAAE,mBAAmB;EACzBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;EACzC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/features/AddCmsPermissions/feature.js","sources":["../../../../src/api/features/AddCmsPermissions/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport AddCmsPermissions from \"./AddCmsPermissions.js\";\n\nexport const AddCmsPermissionsFeature = createFeature({\n name: \"AddCmsPermissions\",\n register(container) {\n container.register(AddCmsPermissions);\n }\n});\n"],"names":["AddCmsPermissionsFeature","createFeature","container","AddCmsPermissions"],"mappings":";;AAGO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -3,97 +3,79 @@ import { EntryId } from "@webiny/api-headless-cms/domain/contentEntry/EntryId.js
3
3
  import { TenantCreationError, TenantInstallationError, TenantUpdateError } from "../../domain/errors.js";
4
4
  import { GetTenantByIdUseCase } from "../GetTenantById/abstractions.js";
5
5
  import { UpdateTenantUseCase } from "../UpdateTenant/abstractions.js";
6
- import { CreateAndInstallTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
7
- import * as Tenancy from "@webiny/api-core/exports/api/tenancy.js";
6
+ import { CreateAndInstallTenantUseCase } from "./abstractions.js";
8
7
  import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/errors.js";
9
8
  import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
10
- class CreateAndInstallTenantUseCase {
11
- constructor(identityContext,
12
- // Tenant manager deps
13
- getTenantByIdUseCase, updateTenantUseCase,
14
- // Core tenancy deps
15
- coreGetTenantById, coreCreateTenant, coreUpdateTenant, coreDeleteTenant, coreInstallTenant) {
16
- this.identityContext = identityContext;
17
- this.getTenantByIdUseCase = getTenantByIdUseCase;
18
- this.updateTenantUseCase = updateTenantUseCase;
19
- this.coreGetTenantById = coreGetTenantById;
20
- this.coreCreateTenant = coreCreateTenant;
21
- this.coreUpdateTenant = coreUpdateTenant;
22
- this.coreDeleteTenant = coreDeleteTenant;
23
- this.coreInstallTenant = coreInstallTenant;
24
- }
25
- async execute(tenantId) {
26
- // Authorization checks
27
- if (!this.identityContext.getPermission("tm.tenant")) {
28
- return Result.fail(new NotAuthorizedError({
29
- message: "Not authorized to create tenants!"
30
- }));
9
+ import * as __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed from "@webiny/api-core/exports/api/tenancy.js";
10
+ class CreateAndInstallTenantUseCase_CreateAndInstallTenantUseCase {
11
+ constructor(identityContext, getTenantByIdUseCase, updateTenantUseCase, coreGetTenantById, coreCreateTenant, coreUpdateTenant, coreDeleteTenant, coreInstallTenant){
12
+ this.identityContext = identityContext;
13
+ this.getTenantByIdUseCase = getTenantByIdUseCase;
14
+ this.updateTenantUseCase = updateTenantUseCase;
15
+ this.coreGetTenantById = coreGetTenantById;
16
+ this.coreCreateTenant = coreCreateTenant;
17
+ this.coreUpdateTenant = coreUpdateTenant;
18
+ this.coreDeleteTenant = coreDeleteTenant;
19
+ this.coreInstallTenant = coreInstallTenant;
31
20
  }
32
- const entryId = EntryId.from(tenantId);
33
-
34
- // Get tenant details
35
- const tenantResult = await this.getTenantByIdUseCase.execute(entryId.id);
36
- if (tenantResult.isFail()) {
37
- return Result.fail(tenantResult.error);
21
+ async execute(tenantId) {
22
+ if (!this.identityContext.getPermission("tm.tenant")) return Result.fail(new NotAuthorizedError({
23
+ message: "Not authorized to create tenants!"
24
+ }));
25
+ const entryId = EntryId.from(tenantId);
26
+ const tenantResult = await this.getTenantByIdUseCase.execute(entryId.id);
27
+ if (tenantResult.isFail()) return Result.fail(tenantResult.error);
28
+ const tenant = tenantResult.value;
29
+ const existingTenantResult = await this.coreGetTenantById.execute(tenant.id);
30
+ if (existingTenantResult.isOk()) {
31
+ await this.coreUpdateTenant.execute(tenant.id, {
32
+ name: tenant.values.name,
33
+ description: tenant.values.description,
34
+ status: "enabled"
35
+ });
36
+ return this.markTenantInstalled(tenant);
37
+ }
38
+ const createTenantResult = await this.coreCreateTenant.execute({
39
+ id: entryId.id,
40
+ name: tenant.values.name,
41
+ parent: "root",
42
+ description: tenant.values.name,
43
+ tags: []
44
+ });
45
+ if (createTenantResult.isFail()) return Result.fail(new TenantCreationError(createTenantResult.error));
46
+ const createdTenant = createTenantResult.value;
47
+ const installResult = await this.coreInstallTenant.execute({
48
+ tenant: createdTenant,
49
+ installationInput: []
50
+ });
51
+ if (installResult.isFail()) {
52
+ await this.coreDeleteTenant.execute(createdTenant.id);
53
+ return Result.fail(new TenantInstallationError(installResult.error));
54
+ }
55
+ return this.markTenantInstalled(tenant);
38
56
  }
39
- const tenant = tenantResult.value;
40
- const existingTenantResult = await this.coreGetTenantById.execute(tenant.id);
41
-
42
- // If core tenant already exists with this same ID, we mark the Tenant Manager tenant installed.
43
- if (existingTenantResult.isOk()) {
44
- // Update the core tenant, and set it to `active`
45
- await this.coreUpdateTenant.execute(tenant.id, {
46
- name: tenant.values.name,
47
- description: tenant.values.description,
48
- status: "enabled"
49
- });
50
-
51
- // Mark tenant installed, and exit early.
52
- return this.markTenantInstalled(tenant);
53
- }
54
-
55
- // Create tenant
56
- const createTenantResult = await this.coreCreateTenant.execute({
57
- id: entryId.id,
58
- name: tenant.values.name,
59
- parent: "root",
60
- description: tenant.values.name,
61
- tags: []
62
- });
63
- if (createTenantResult.isFail()) {
64
- return Result.fail(new TenantCreationError(createTenantResult.error));
57
+ async markTenantInstalled(tenant) {
58
+ const updateResult = await this.updateTenantUseCase.execute(tenant.id, {
59
+ status: "enabled",
60
+ isInstalled: true
61
+ });
62
+ if (updateResult.isFail()) return Result.fail(new TenantUpdateError(updateResult.error));
63
+ return Result.ok(updateResult.value);
65
64
  }
66
- const createdTenant = createTenantResult.value;
67
-
68
- // Install tenant
69
- const installResult = await this.coreInstallTenant.execute({
70
- tenant: createdTenant,
71
- installationInput: []
72
- });
73
- if (installResult.isFail()) {
74
- // Delete tenant if installation failed.
75
- await this.coreDeleteTenant.execute(createdTenant.id);
76
- return Result.fail(new TenantInstallationError(installResult.error));
77
- }
78
- return this.markTenantInstalled(tenant);
79
- }
80
- async markTenantInstalled(tenant) {
81
- // Update tenant entry to mark as installed
82
- const updateResult = await this.updateTenantUseCase.execute(tenant.id, {
83
- status: "enabled",
84
- isInstalled: true
85
- });
86
- if (updateResult.isFail()) {
87
- return Result.fail(new TenantUpdateError(updateResult.error));
88
- }
89
-
90
- // Return updated tenant
91
- return Result.ok(updateResult.value);
92
- }
93
65
  }
94
- export default UseCaseAbstraction.createImplementation({
95
- implementation: CreateAndInstallTenantUseCase,
96
- dependencies: [IdentityContext, GetTenantByIdUseCase, UpdateTenantUseCase, Tenancy.GetTenantByIdUseCase, Tenancy.CreateTenantUseCase, Tenancy.UpdateTenantUseCase, Tenancy.DeleteTenantUseCase, Tenancy.InstallTenantUseCase]
66
+ const CreateAndInstallTenant_CreateAndInstallTenantUseCase = CreateAndInstallTenantUseCase.createImplementation({
67
+ implementation: CreateAndInstallTenantUseCase_CreateAndInstallTenantUseCase,
68
+ dependencies: [
69
+ IdentityContext,
70
+ GetTenantByIdUseCase,
71
+ UpdateTenantUseCase,
72
+ __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed.GetTenantByIdUseCase,
73
+ __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed.CreateTenantUseCase,
74
+ __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed.UpdateTenantUseCase,
75
+ __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed.DeleteTenantUseCase,
76
+ __rspack_external__webiny_api_core_exports_api_tenancy_js_14a46aed.InstallTenantUseCase
77
+ ]
97
78
  });
79
+ export default CreateAndInstallTenant_CreateAndInstallTenantUseCase;
98
80
 
99
81
  //# sourceMappingURL=CreateAndInstallTenantUseCase.js.map