@webiny/tenant-manager 6.4.11 → 6.6.0-alpha.1

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 (68) hide show
  1. package/TenantManager.js +2 -2
  2. package/TenantManager.js.map +1 -1
  3. package/admin/CurrentTenant/CurrentTenant.d.ts +6 -2
  4. package/admin/DisableTenant/DisableTenantRepository.d.ts +3 -1
  5. package/admin/DisableTenant/DisableTenantRepository.js +17 -2
  6. package/admin/DisableTenant/DisableTenantRepository.js.map +1 -1
  7. package/admin/DisableTenant/useDisableTenant.js +0 -9
  8. package/admin/DisableTenant/useDisableTenant.js.map +1 -1
  9. package/admin/EnableTenant/EnableTenantRepository.d.ts +3 -1
  10. package/admin/EnableTenant/EnableTenantRepository.js +17 -2
  11. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -1
  12. package/admin/Extension.js +3 -0
  13. package/admin/Extension.js.map +1 -1
  14. package/admin/InstallTenant/InstallTenantGateway.d.ts +11 -0
  15. package/admin/InstallTenant/InstallTenantGateway.js +42 -0
  16. package/admin/InstallTenant/InstallTenantGateway.js.map +1 -0
  17. package/admin/InstallTenant/InstallTenantRepository.d.ts +12 -0
  18. package/admin/InstallTenant/InstallTenantRepository.js +34 -0
  19. package/admin/InstallTenant/InstallTenantRepository.js.map +1 -0
  20. package/admin/InstallTenant/InstallTenantUseCase.d.ts +10 -0
  21. package/admin/InstallTenant/InstallTenantUseCase.js +18 -0
  22. package/admin/InstallTenant/InstallTenantUseCase.js.map +1 -0
  23. package/admin/InstallTenant/abstractions.d.ts +21 -0
  24. package/admin/InstallTenant/abstractions.js +7 -0
  25. package/admin/InstallTenant/abstractions.js.map +1 -0
  26. package/admin/InstallTenant/feature.d.ts +3 -0
  27. package/admin/InstallTenant/feature.js +21 -0
  28. package/admin/InstallTenant/feature.js.map +1 -0
  29. package/admin/InstallTenant/index.d.ts +2 -0
  30. package/admin/InstallTenant/index.js +2 -0
  31. package/admin/InstallTenant/useInstallTenant.d.ts +4 -0
  32. package/admin/InstallTenant/useInstallTenant.js +24 -0
  33. package/admin/InstallTenant/useInstallTenant.js.map +1 -0
  34. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -1
  35. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +0 -9
  36. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -1
  37. package/admin/TenantEntryList/FolderNameCell.d.ts +1 -1
  38. package/admin/TenantEntryList/FolderNameCell.js +3 -3
  39. package/admin/TenantEntryList/FolderNameCell.js.map +1 -1
  40. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +15 -26
  41. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -1
  42. package/admin/TenantEntryList/ManageTenant.js +0 -1
  43. package/admin/TenantEntryList/ManageTenant.js.map +1 -1
  44. package/admin/TenantEntryList/TenantNameCell.js +11 -4
  45. package/admin/TenantEntryList/TenantNameCell.js.map +1 -1
  46. package/admin/TenantEntryList.js +7 -2
  47. package/admin/TenantEntryList.js.map +1 -1
  48. package/admin/features/permissions/feature.d.ts +1 -1
  49. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +1 -1
  50. package/api/graphql/CreateTenantSchema.d.ts +2 -2
  51. package/api/graphql/CreateTenantSchema.js +8 -2
  52. package/api/graphql/CreateTenantSchema.js.map +1 -1
  53. package/api/graphql/DisableTenantSchema.d.ts +2 -2
  54. package/api/graphql/DisableTenantSchema.js +2 -2
  55. package/api/graphql/DisableTenantSchema.js.map +1 -1
  56. package/api/graphql/EnableTenantSchema.d.ts +2 -2
  57. package/api/graphql/EnableTenantSchema.js +2 -2
  58. package/api/graphql/EnableTenantSchema.js.map +1 -1
  59. package/api/graphql/GetCurrentTenantSchema.d.ts +2 -2
  60. package/api/graphql/GetCurrentTenantSchema.js +2 -2
  61. package/api/graphql/GetCurrentTenantSchema.js.map +1 -1
  62. package/api/graphql/InstallTenantSchema.d.ts +2 -2
  63. package/api/graphql/InstallTenantSchema.js +2 -2
  64. package/api/graphql/InstallTenantSchema.js.map +1 -1
  65. package/package.json +17 -19
  66. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.d.ts +0 -16
  67. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +0 -18
  68. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +0 -1
@@ -1,42 +1,31 @@
1
1
  import { useCallback } from "react";
2
- import { useMutation } from "@apollo/react-hooks";
3
2
  import { useToast } from "@webiny/admin-ui";
4
- import { useRecords } from "@webiny/app-aco";
5
- import { INSTALL_TENANT } from "./installTenant.gql.js";
6
- const useInstallTenant = (tenant)=>{
3
+ import { useInstallTenant } from "../../InstallTenant/index.js";
4
+ const useInstallTenant_useInstallTenant = (tenant)=>{
7
5
  const toast = useToast();
8
- const { updateRecordInCache } = useRecords();
9
- const [runMutation, mutation] = useMutation(INSTALL_TENANT);
6
+ const hook = useInstallTenant();
10
7
  const installTenant = useCallback(async ()=>{
11
- const { data } = await runMutation({
12
- variables: {
13
- tenantId: tenant.entryId
14
- }
15
- });
16
- if (data?.tenantManager.installTenant.error) return void toast.showWarningToast({
17
- title: "Could not install tenant",
18
- description: data?.tenantManager.installTenant.error.message,
19
- duration: 1 / 0
20
- });
8
+ try {
9
+ await hook.installTenant(tenant.entryId);
10
+ } catch (error) {
11
+ toast.showWarningToast({
12
+ title: "Could not install tenant",
13
+ description: error.message,
14
+ duration: 1 / 0
15
+ });
16
+ return;
17
+ }
21
18
  toast.showSuccessToast({
22
19
  title: "Tenant installed successfully!"
23
20
  });
24
- updateRecordInCache({
25
- ...tenant,
26
- values: {
27
- ...tenant.values,
28
- status: "enabled",
29
- isInstalled: true
30
- }
31
- });
32
21
  }, [
33
22
  tenant
34
23
  ]);
35
24
  return {
36
25
  installTenant,
37
- loading: mutation.loading
26
+ loading: hook.loading
38
27
  };
39
28
  };
40
- export { useInstallTenant };
29
+ export { useInstallTenant_useInstallTenant as useInstallTenant };
41
30
 
42
31
  //# sourceMappingURL=useInstallTenant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin/TenantEntryList/InstallTenantButton/useInstallTenant.js","sources":["../../../../src/admin/TenantEntryList/InstallTenantButton/useInstallTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useMutation } from \"@apollo/react-hooks\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { TenantEntry } from \"../../types.js\";\nimport { InstallTenantResponse, INSTALL_TENANT } from \"./installTenant.gql.js\";\n\nexport const useInstallTenant = (tenant: TenantEntry) => {\n const toast = useToast();\n const { updateRecordInCache } = useRecords();\n const [runMutation, mutation] = useMutation<InstallTenantResponse>(INSTALL_TENANT);\n\n const installTenant = useCallback(async () => {\n const { data } = await runMutation({ variables: { tenantId: tenant.entryId } });\n if (data?.tenantManager.installTenant.error) {\n toast.showWarningToast({\n title: \"Could not install tenant\",\n description: data?.tenantManager.installTenant.error.message,\n duration: Infinity\n });\n return;\n }\n\n toast.showSuccessToast({ title: \"Tenant installed successfully!\" });\n\n updateRecordInCache({\n ...tenant,\n values: {\n ...tenant.values,\n status: \"enabled\",\n isInstalled: true\n }\n });\n }, [tenant]);\n\n return { installTenant, loading: mutation.loading };\n};\n"],"names":["useInstallTenant","tenant","toast","useToast","updateRecordInCache","useRecords","runMutation","mutation","useMutation","INSTALL_TENANT","installTenant","useCallback","data","Infinity"],"mappings":";;;;;AAOO,MAAMA,mBAAmB,CAACC;IAC7B,MAAMC,QAAQC;IACd,MAAM,EAAEC,mBAAmB,EAAE,GAAGC;IAChC,MAAM,CAACC,aAAaC,SAAS,GAAGC,YAAmCC;IAEnE,MAAMC,gBAAgBC,YAAY;QAC9B,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMN,YAAY;YAAE,WAAW;gBAAE,UAAUL,OAAO,OAAO;YAAC;QAAE;QAC7E,IAAIW,MAAM,cAAc,cAAc,OAAO,YACzCV,MAAM,gBAAgB,CAAC;YACnB,OAAO;YACP,aAAaU,MAAM,cAAc,cAAc,MAAM;YACrD,UAAUC;QACd;QAIJX,MAAM,gBAAgB,CAAC;YAAE,OAAO;QAAiC;QAEjEE,oBAAoB;YAChB,GAAGH,MAAM;YACT,QAAQ;gBACJ,GAAGA,OAAO,MAAM;gBAChB,QAAQ;gBACR,aAAa;YACjB;QACJ;IACJ,GAAG;QAACA;KAAO;IAEX,OAAO;QAAES;QAAe,SAASH,SAAS,OAAO;IAAC;AACtD"}
1
+ {"version":3,"file":"admin/TenantEntryList/InstallTenantButton/useInstallTenant.js","sources":["../../../../src/admin/TenantEntryList/InstallTenantButton/useInstallTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useInstallTenant as baseInstallTenant } from \"~/admin/InstallTenant/index.js\";\n\nexport const useInstallTenant = (tenant: TenantEntry) => {\n const toast = useToast();\n const hook = baseInstallTenant();\n\n const installTenant = useCallback(async () => {\n try {\n await hook.installTenant(tenant.entryId);\n } catch (error) {\n toast.showWarningToast({\n title: \"Could not install tenant\",\n description: error.message,\n duration: Infinity\n });\n return;\n }\n\n toast.showSuccessToast({ title: \"Tenant installed successfully!\" });\n }, [tenant]);\n\n return { installTenant, loading: hook.loading };\n};\n"],"names":["useInstallTenant","tenant","toast","useToast","hook","baseInstallTenant","installTenant","useCallback","error","Infinity"],"mappings":";;;AAKO,MAAMA,oCAAmB,CAACC;IAC7B,MAAMC,QAAQC;IACd,MAAMC,OAAOC;IAEb,MAAMC,gBAAgBC,YAAY;QAC9B,IAAI;YACA,MAAMH,KAAK,aAAa,CAACH,OAAO,OAAO;QAC3C,EAAE,OAAOO,OAAO;YACZN,MAAM,gBAAgB,CAAC;gBACnB,OAAO;gBACP,aAAaM,MAAM,OAAO;gBAC1B,UAAUC,KAAQ;YACtB;YACA;QACJ;QAEAP,MAAM,gBAAgB,CAAC;YAAE,OAAO;QAAiC;IACrE,GAAG;QAACD;KAAO;IAEX,OAAO;QAAEK;QAAe,SAASF,KAAK,OAAO;IAAC;AAClD"}
@@ -4,7 +4,6 @@ import { useTenantContext } from "@webiny/app-admin";
4
4
  const ManageTenant = ({ tenant })=>{
5
5
  const { setTenant } = useTenantContext();
6
6
  const switchToTenant = useCallback(()=>{
7
- localStorage.removeItem("webiny_wb_page_latest_visited_folder");
8
7
  setTenant(tenant.entryId);
9
8
  }, [
10
9
  tenant
@@ -1 +1 @@
1
- {"version":3,"file":"admin/TenantEntryList/ManageTenant.js","sources":["../../../src/admin/TenantEntryList/ManageTenant.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { useTenantContext } from \"@webiny/app-admin\";\nimport type { TenantEntry } from \"../types.js\";\n\ninterface ManageTenantProps {\n tenant: TenantEntry;\n}\n\nexport const ManageTenant = ({ tenant }: ManageTenantProps) => {\n const { setTenant } = useTenantContext();\n const switchToTenant = useCallback(() => {\n localStorage.removeItem(\"webiny_wb_page_latest_visited_folder\");\n setTenant(tenant.entryId);\n }, [tenant]);\n\n return <Button variant={\"secondary\"} onClick={switchToTenant} text={\"Manage\"} />;\n};\n"],"names":["ManageTenant","tenant","setTenant","useTenantContext","switchToTenant","useCallback","localStorage","Button"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,iBAAiBC,YAAY;QAC/BC,aAAa,UAAU,CAAC;QACxBJ,UAAUD,OAAO,OAAO;IAC5B,GAAG;QAACA;KAAO;IAEX,OAAO,WAAP,GAAO,oBAACM,QAAMA;QAAC,SAAS;QAAa,SAASH;QAAgB,MAAM;;AACxE"}
1
+ {"version":3,"file":"admin/TenantEntryList/ManageTenant.js","sources":["../../../src/admin/TenantEntryList/ManageTenant.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { useTenantContext } from \"@webiny/app-admin\";\nimport type { TenantEntry } from \"../types.js\";\n\ninterface ManageTenantProps {\n tenant: TenantEntry;\n}\n\nexport const ManageTenant = ({ tenant }: ManageTenantProps) => {\n const { setTenant } = useTenantContext();\n const switchToTenant = useCallback(() => {\n setTenant(tenant.entryId);\n }, [tenant]);\n\n return <Button variant={\"secondary\"} onClick={switchToTenant} text={\"Manage\"} />;\n};\n"],"names":["ManageTenant","tenant","setTenant","useTenantContext","switchToTenant","useCallback","Button"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,iBAAiBC,YAAY;QAC/BH,UAAUD,OAAO,OAAO;IAC5B,GAAG;QAACA;KAAO;IAEX,OAAO,WAAP,GAAO,oBAACK,QAAMA;QAAC,SAAS;QAAa,SAASF;QAAgB,MAAM;;AACxE"}
@@ -1,15 +1,22 @@
1
1
  import react from "react";
2
2
  import { Icon, Link, Text } from "@webiny/admin-ui";
3
3
  import { ReactComponent } from "@webiny/icons/description.svg";
4
- import { ContentEntryListConfig } from "@webiny/app-headless-cms";
4
+ import { ContentEntryListConfig, Routes } from "@webiny/app-headless-cms";
5
5
  import { FolderNameCell } from "./FolderNameCell.js";
6
- import { useContentEntriesList } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
6
+ import { useContentEntriesPresenter } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
7
+ import { useRouter } from "@webiny/app-admin";
7
8
  const TenantName = ({ tenant })=>{
8
- const { getEntryEditUrl } = useContentEntriesList();
9
+ const presenter = useContentEntriesPresenter();
10
+ const { getLink } = useRouter();
11
+ const url = getLink(Routes.ContentEntries.List, {
12
+ modelId: presenter.vm.model.modelId,
13
+ folderId: presenter.folders.vm.currentFolderId ?? void 0,
14
+ id: tenant.id
15
+ });
9
16
  return /*#__PURE__*/ react.createElement("div", {
10
17
  className: "flex flex-col gap-y-[3px]"
11
18
  }, /*#__PURE__*/ react.createElement(Link, {
12
- to: getEntryEditUrl(tenant),
19
+ to: url,
13
20
  variant: "secondary",
14
21
  className: "truncate no-underline!"
15
22
  }, /*#__PURE__*/ react.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"admin/TenantEntryList/TenantNameCell.js","sources":["../../../src/admin/TenantEntryList/TenantNameCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, Link, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as File } from \"@webiny/icons/description.svg\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { FolderNameCell } from \"./FolderNameCell.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\n\ninterface TenantNameProps {\n tenant: TenantEntry;\n}\n\nconst TenantName = ({ tenant }: TenantNameProps) => {\n const { getEntryEditUrl } = useContentEntriesList();\n\n return (\n <div className={\"flex flex-col gap-y-[3px]\"}>\n <Link\n to={getEntryEditUrl(tenant)}\n variant={\"secondary\"}\n className={\"truncate no-underline!\"}\n >\n <div className={\"flex w-full items-center\"}>\n <Icon\n size={\"sm\"}\n color={\"neutral-strong\"}\n className={\"mr-xs\"}\n icon={<File />}\n label={`Tenant - ${tenant.values.name}`}\n />\n <Text as={\"div\"} className={\"truncate min-w-0 shrink\"}>\n {tenant.values.name}\n </Text>\n </div>\n </Link>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-dimmed\"}>\n ID: {tenant.entryId}\n </Text>\n </div>\n );\n};\n\nexport const TenantNameCell = () => {\n const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;\n const { row } = useTableRow<TenantEntry>();\n\n if (isFolderRow(row)) {\n return <FolderNameCell folder={row.data} />;\n }\n\n return <TenantName tenant={row.data} />;\n};\n"],"names":["TenantName","tenant","getEntryEditUrl","useContentEntriesList","Link","Icon","File","Text","TenantNameCell","useTableRow","isFolderRow","ContentEntryListConfig","row","FolderNameCell"],"mappings":";;;;;;AAYA,MAAMA,aAAa,CAAC,EAAEC,MAAM,EAAmB;IAC3C,MAAM,EAAEC,eAAe,EAAE,GAAGC;IAE5B,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACC,MAAIA;QACD,IAAIF,gBAAgBD;QACpB,SAAS;QACT,WAAW;qBAEX,oBAAC;QAAI,WAAW;qBACZ,oBAACI,MAAIA;QACD,MAAM;QACN,OAAO;QACP,WAAW;QACX,oBAAM,oBAACC,gBAAIA;QACX,OAAO,CAAC,SAAS,EAAEL,OAAO,MAAM,CAAC,IAAI,EAAE;sBAE3C,oBAACM,MAAIA;QAAC,IAAI;QAAO,WAAW;OACvBN,OAAO,MAAM,CAAC,IAAI,mBAI/B,oBAACM,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OAAuB,QACtDN,OAAO,OAAO;AAInC;AAEO,MAAMO,iBAAiB;IAC1B,MAAM,EAAEC,WAAW,EAAEC,WAAW,EAAE,GAAGC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM;IAChF,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAEhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,oBAACC,gBAAcA;QAAC,QAAQD,IAAI,IAAI;;IAG3C,OAAO,WAAP,GAAO,oBAACZ,YAAUA;QAAC,QAAQY,IAAI,IAAI;;AACvC"}
1
+ {"version":3,"file":"admin/TenantEntryList/TenantNameCell.js","sources":["../../../src/admin/TenantEntryList/TenantNameCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, Link, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as File } from \"@webiny/icons/description.svg\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { FolderNameCell } from \"./FolderNameCell.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useContentEntriesPresenter } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\n\ninterface TenantNameProps {\n tenant: TenantEntry;\n}\n\nconst TenantName = ({ tenant }: TenantNameProps) => {\n const presenter = useContentEntriesPresenter();\n const { getLink } = useRouter();\n\n const url = getLink(Routes.ContentEntries.List, {\n modelId: presenter.vm.model.modelId,\n folderId: presenter.folders.vm.currentFolderId ?? undefined,\n id: tenant.id\n });\n\n return (\n <div className={\"flex flex-col gap-y-[3px]\"}>\n <Link to={url} variant={\"secondary\"} className={\"truncate no-underline!\"}>\n <div className={\"flex w-full items-center\"}>\n <Icon\n size={\"sm\"}\n color={\"neutral-strong\"}\n className={\"mr-xs\"}\n icon={<File />}\n label={`Tenant - ${tenant.values.name}`}\n />\n <Text as={\"div\"} className={\"truncate min-w-0 shrink\"}>\n {tenant.values.name}\n </Text>\n </div>\n </Link>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-dimmed\"}>\n ID: {tenant.entryId}\n </Text>\n </div>\n );\n};\n\nexport const TenantNameCell = () => {\n const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;\n const { row } = useTableRow<TenantEntry>();\n\n if (isFolderRow(row)) {\n return <FolderNameCell folder={row.data} />;\n }\n\n return <TenantName tenant={row.data} />;\n};\n"],"names":["TenantName","tenant","presenter","useContentEntriesPresenter","getLink","useRouter","url","Routes","undefined","Link","Icon","File","Text","TenantNameCell","useTableRow","isFolderRow","ContentEntryListConfig","row","FolderNameCell"],"mappings":";;;;;;;AAcA,MAAMA,aAAa,CAAC,EAAEC,MAAM,EAAmB;IAC3C,MAAMC,YAAYC;IAClB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,MAAMC,MAAMF,QAAQG,OAAO,cAAc,CAAC,IAAI,EAAE;QAC5C,SAASL,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO;QACnC,UAAUA,UAAU,OAAO,CAAC,EAAE,CAAC,eAAe,IAAIM;QAClD,IAAIP,OAAO,EAAE;IACjB;IAEA,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACQ,MAAIA;QAAC,IAAIH;QAAK,SAAS;QAAa,WAAW;qBAC5C,oBAAC;QAAI,WAAW;qBACZ,oBAACI,MAAIA;QACD,MAAM;QACN,OAAO;QACP,WAAW;QACX,oBAAM,oBAACC,gBAAIA;QACX,OAAO,CAAC,SAAS,EAAEV,OAAO,MAAM,CAAC,IAAI,EAAE;sBAE3C,oBAACW,MAAIA;QAAC,IAAI;QAAO,WAAW;OACvBX,OAAO,MAAM,CAAC,IAAI,mBAI/B,oBAACW,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OAAuB,QACtDX,OAAO,OAAO;AAInC;AAEO,MAAMY,iBAAiB;IAC1B,MAAM,EAAEC,WAAW,EAAEC,WAAW,EAAE,GAAGC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM;IAChF,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAEhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,oBAACC,gBAAcA;QAAC,QAAQD,IAAI,IAAI;;IAG3C,OAAO,WAAP,GAAO,oBAACjB,YAAUA;QAAC,QAAQiB,IAAI,IAAI;;AACvC"}
@@ -19,7 +19,7 @@ const WithDisableAction = ({ children })=>{
19
19
  label: "Disable",
20
20
  onAction: disableEntry,
21
21
  "data-testid": "aco.actions.entry.delete",
22
- className: "text-destructive-primary! [&_svg]:fill-destructive"
22
+ variant: "destructive"
23
23
  });
24
24
  return /*#__PURE__*/ react.createElement(react.Fragment, null, children);
25
25
  };
@@ -32,7 +32,12 @@ const DeleteActionDecorator = EntryAction.createDecorator((Original)=>function(p
32
32
  });
33
33
  return /*#__PURE__*/ react.createElement(Original, props);
34
34
  });
35
- const TenantEntryList = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DeleteActionDecorator, null), /*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(Browser.Table.Column, {
35
+ const TenantEntryList = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DeleteActionDecorator, null), /*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(Browser.BreadcrumbRoot, {
36
+ label: "Tenant Manager",
37
+ modelIds: [
38
+ TENANT_MODEL_ID
39
+ ]
40
+ }), /*#__PURE__*/ react.createElement(Browser.Table.Column, {
36
41
  hideable: false,
37
42
  name: "name",
38
43
  header: "Name",
@@ -1 +1 @@
1
- {"version":3,"file":"admin/TenantEntryList.js","sources":["../../src/admin/TenantEntryList.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { ReactComponent as DisableIcon } from \"@webiny/icons/power_off.svg\";\nimport { TenantCell } from \"./TenantEntryList/TenantCell.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useDisableTenantDialog } from \"~/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js\";\nimport { TenantNameCell } from \"~/admin/TenantEntryList/TenantNameCell.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst EntryAction = Browser.Entry.Action;\nconst { useTableRow } = Browser.Table.Column;\n\ninterface WithDisableActionProps {\n children: React.ReactNode;\n}\n\nconst WithDisableAction = ({ children }: WithDisableActionProps) => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n const { disableEntry } = useDisableTenantDialog({ record: row.data });\n\n if (row.data.values.status === \"enabled\") {\n return (\n <EntryAction.OptionsMenuItem\n icon={<DisableIcon />}\n label={\"Disable\"}\n onAction={disableEntry}\n data-testid={\"aco.actions.entry.delete\"}\n className={\"text-destructive-primary! [&_svg]:fill-destructive\"}\n />\n );\n }\n\n return <>{children}</>;\n};\n\nconst DeleteActionDecorator = EntryAction.createDecorator(Original => {\n return function DeleteAction(props) {\n const { model } = useModel();\n\n if (model.modelId !== TENANT_MODEL_ID) {\n return <Original {...props} />;\n }\n\n if (props.name === \"delete\") {\n return (\n <Original\n {...props}\n element={<WithDisableAction>{props.element}</WithDisableAction>}\n />\n );\n }\n\n return <Original {...props} />;\n };\n});\n\nexport const TenantEntryList = () => {\n return (\n <>\n <DeleteActionDecorator />\n <ContentEntryListConfig>\n <Browser.Table.Column\n hideable={false}\n name={\"name\"}\n header={\"Name\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantNameCell />}\n />\n <Browser.Table.Column\n name={\"tenant\"}\n header={\"Tenant\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantCell />}\n before={\"actions\"}\n />\n </ContentEntryListConfig>\n </>\n );\n};\n"],"names":["Browser","ContentEntryListConfig","EntryAction","useTableRow","WithDisableAction","children","row","disableEntry","useDisableTenantDialog","DisableIcon","DeleteActionDecorator","Original","props","model","useModel","TENANT_MODEL_ID","TenantEntryList","TenantNameCell","TenantCell"],"mappings":";;;;;;;;AAUA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAMC,cAAcF,QAAQ,KAAK,CAAC,MAAM;AACxC,MAAM,EAAEG,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAM5C,MAAMI,oBAAoB,CAAC,EAAEC,QAAQ,EAA0B;IAE3D,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAChB,MAAM,EAAEI,YAAY,EAAE,GAAGC,uBAAuB;QAAE,QAAQF,IAAI,IAAI;IAAC;IAEnE,IAAIA,AAA2B,cAA3BA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,WAAP,GACI,oBAACJ,YAAY,eAAe;QACxB,oBAAM,oBAACO,gBAAWA;QAClB,OAAO;QACP,UAAUF;QACV,eAAa;QACb,WAAW;;IAKvB,OAAO,WAAP,GAAO,0CAAGF;AACd;AAEA,MAAMK,wBAAwBR,YAAY,eAAe,CAACS,CAAAA,WAC/C,SAAsBC,KAAK;QAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGC;QAElB,IAAID,MAAM,OAAO,KAAKE,iBAClB,OAAO,WAAP,GAAO,oBAACJ,UAAaC;QAGzB,IAAIA,AAAe,aAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACD,UAAAA;YACI,GAAGC,KAAK;YACT,uBAAS,oBAACR,mBAAiBA,MAAEQ,MAAM,OAAO;;QAKtD,OAAO,WAAP,GAAO,oBAACD,UAAaC;IACzB;AAGG,MAAMI,kBAAkB,IACpB,WAAP,GACI,wDACI,oBAACN,uBAAqBA,OAAAA,WAAAA,GACtB,oBAACT,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACD,QAAQ,KAAK,CAAC,MAAM;QACjB,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACE,gBAAcA;sBAEzB,oBAACjB,QAAQ,KAAK,CAAC,MAAM;QACjB,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACG,YAAUA;QACjB,QAAQ"}
1
+ {"version":3,"file":"admin/TenantEntryList.js","sources":["../../src/admin/TenantEntryList.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { ReactComponent as DisableIcon } from \"@webiny/icons/power_off.svg\";\nimport { TenantCell } from \"./TenantEntryList/TenantCell.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useDisableTenantDialog } from \"~/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js\";\nimport { TenantNameCell } from \"~/admin/TenantEntryList/TenantNameCell.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst EntryAction = Browser.Entry.Action;\nconst { useTableRow } = Browser.Table.Column;\n\ninterface WithDisableActionProps {\n children: React.ReactNode;\n}\n\nconst WithDisableAction = ({ children }: WithDisableActionProps) => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n const { disableEntry } = useDisableTenantDialog({ record: row.data });\n\n if (row.data.values.status === \"enabled\") {\n return (\n <EntryAction.OptionsMenuItem\n icon={<DisableIcon />}\n label={\"Disable\"}\n onAction={disableEntry}\n data-testid={\"aco.actions.entry.delete\"}\n variant={\"destructive\"}\n />\n );\n }\n\n return <>{children}</>;\n};\n\nconst DeleteActionDecorator = EntryAction.createDecorator(Original => {\n return function DeleteAction(props) {\n const { model } = useModel();\n\n if (model.modelId !== TENANT_MODEL_ID) {\n return <Original {...props} />;\n }\n\n if (props.name === \"delete\") {\n return (\n <Original\n {...props}\n element={<WithDisableAction>{props.element}</WithDisableAction>}\n />\n );\n }\n\n return <Original {...props} />;\n };\n});\n\nexport const TenantEntryList = () => {\n return (\n <>\n <DeleteActionDecorator />\n <ContentEntryListConfig>\n <Browser.BreadcrumbRoot label={\"Tenant Manager\"} modelIds={[TENANT_MODEL_ID]} />\n <Browser.Table.Column\n hideable={false}\n name={\"name\"}\n header={\"Name\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantNameCell />}\n />\n <Browser.Table.Column\n name={\"tenant\"}\n header={\"Tenant\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantCell />}\n before={\"actions\"}\n />\n </ContentEntryListConfig>\n </>\n );\n};\n"],"names":["Browser","ContentEntryListConfig","EntryAction","useTableRow","WithDisableAction","children","row","disableEntry","useDisableTenantDialog","DisableIcon","DeleteActionDecorator","Original","props","model","useModel","TENANT_MODEL_ID","TenantEntryList","TenantNameCell","TenantCell"],"mappings":";;;;;;;;AAUA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAMC,cAAcF,QAAQ,KAAK,CAAC,MAAM;AACxC,MAAM,EAAEG,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAM5C,MAAMI,oBAAoB,CAAC,EAAEC,QAAQ,EAA0B;IAE3D,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAChB,MAAM,EAAEI,YAAY,EAAE,GAAGC,uBAAuB;QAAE,QAAQF,IAAI,IAAI;IAAC;IAEnE,IAAIA,AAA2B,cAA3BA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,WAAP,GACI,oBAACJ,YAAY,eAAe;QACxB,oBAAM,oBAACO,gBAAWA;QAClB,OAAO;QACP,UAAUF;QACV,eAAa;QACb,SAAS;;IAKrB,OAAO,WAAP,GAAO,0CAAGF;AACd;AAEA,MAAMK,wBAAwBR,YAAY,eAAe,CAACS,CAAAA,WAC/C,SAAsBC,KAAK;QAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGC;QAElB,IAAID,MAAM,OAAO,KAAKE,iBAClB,OAAO,WAAP,GAAO,oBAACJ,UAAaC;QAGzB,IAAIA,AAAe,aAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACD,UAAAA;YACI,GAAGC,KAAK;YACT,uBAAS,oBAACR,mBAAiBA,MAAEQ,MAAM,OAAO;;QAKtD,OAAO,WAAP,GAAO,oBAACD,UAAaC;IACzB;AAGG,MAAMI,kBAAkB,IACpB,WAAP,GACI,wDACI,oBAACN,uBAAqBA,OAAAA,WAAAA,GACtB,oBAACT,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACD,QAAQ,cAAc;QAAC,OAAO;QAAkB,UAAU;YAACe;SAAgB;sBAC5E,oBAACf,QAAQ,KAAK,CAAC,MAAM;QACjB,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACE,gBAAcA;sBAEzB,oBAACjB,QAAQ,KAAK,CAAC,MAAM;QACjB,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACG,YAAUA;QACjB,QAAQ"}
@@ -1,4 +1,4 @@
1
- export declare const TmPermissionsFeature: import("@webiny/feature/admin").FeatureDefinition<{
1
+ export declare const TmPermissionsFeature: import("@webiny/feature/admin/createFeature.js").FeatureDefinition<{
2
2
  permissions: {
3
3
  canAccess: (entityId: never) => boolean;
4
4
  canAction: (action: string, entityId: never) => boolean;
@@ -1,6 +1,6 @@
1
1
  import { PermissionTransformer } from "@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js";
2
2
  declare class AddCmsPermissions implements PermissionTransformer.Interface {
3
- execute(permission: PermissionTransformer.Permission): PermissionTransformer.Permission | PermissionTransformer.Permission[];
3
+ execute(permission: PermissionTransformer.Permission): PermissionTransformer.Permission[] | PermissionTransformer.Permission;
4
4
  }
5
5
  declare const _default: typeof AddCmsPermissions & {
6
6
  __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js").IPermissionTransformer>;
@@ -1,4 +1,4 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
2
  import { ListModelsUseCase } from "@webiny/api-headless-cms/exports/api/cms/model.js";
3
3
  import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
4
4
  import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
@@ -11,6 +11,6 @@ declare class CreateTenantSchema implements GraphQLSchemaFactory.Interface {
11
11
  private getExtensionsInput;
12
12
  }
13
13
  declare const _default: typeof CreateTenantSchema & {
14
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
15
15
  };
16
16
  export default _default;
@@ -1,5 +1,5 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
3
3
  import { renderInputFields } from "@webiny/api-headless-cms/utils/renderInputFields.js";
4
4
  import { CreateTenantUseCase } from "../features/CreateTenant/abstractions.js";
5
5
  import { ListModelsUseCase } from "@webiny/api-headless-cms/exports/api/cms/model.js";
@@ -55,6 +55,12 @@ class CreateTenantSchema {
55
55
  ];
56
56
  const models = modelsResult.value;
57
57
  const model = models.find((m)=>m.modelId === TENANT_MODEL_ID);
58
+ if (!model) return [
59
+ {
60
+ typeDefs: "",
61
+ fields: "extensions: JSON"
62
+ }
63
+ ];
58
64
  const inputCreateFields = renderInputFields({
59
65
  models,
60
66
  model,
@@ -1 +1 @@
1
- {"version":3,"file":"api/graphql/CreateTenantSchema.js","sources":["../../../src/api/graphql/CreateTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields.js\";\nimport { CreateTenantUseCase } from \"../features/CreateTenant/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/exports/api/cms/model.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.js\";\n\nclass CreateTenantSchema implements GraphQLSchemaFactory.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private listModelsUseCase: ListModelsUseCase.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface\n ) {}\n\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n const inputCreateFields = await this.getExtensionsInput();\n\n builder.addTypeDefs(/* GraphQL */ `\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input CreateTenantInput {\n id: ID\n name: String!\n description: String\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n `);\n\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n createTenant(input: CreateTenantInput!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ input: CreateTenantUseCase.Input }>({\n path: \"TenantManagerMutation.createTenant\",\n dependencies: [CreateTenantUseCase],\n resolver: (createTenant: CreateTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await createTenant.execute(args.input);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n\n private async getExtensionsInput() {\n const modelsResult = await this.identityContext.withoutAuthorization(() => {\n return this.listModelsUseCase.execute({\n includePlugins: true,\n includePrivate: false\n });\n });\n\n if (modelsResult.isFail()) {\n return [\n {\n typeDefs: \"\",\n fields: \"extensions: JSON\"\n }\n ];\n }\n\n const models = modelsResult.value;\n const model = models.find(m => m.modelId === TENANT_MODEL_ID)!;\n\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields: model.fields.filter(f => f.fieldId === \"extensions\"),\n fieldRegistry: this.fieldRegistry\n });\n\n return inputCreateFields;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: CreateTenantSchema,\n dependencies: [IdentityContext, ListModelsUseCase, CmsModelFieldToGraphQLRegistry]\n});\n"],"names":["CreateTenantSchema","identityContext","listModelsUseCase","fieldRegistry","builder","inputCreateFields","f","CreateTenantUseCase","createTenant","args","result","ErrorResponse","Response","modelsResult","models","model","m","TENANT_MODEL_ID","renderInputFields","GraphQLSchemaFactory","IdentityContext","ListModelsUseCase","CmsModelFieldToGraphQLRegistry"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,iBAA8C,EACrCC,aAAuD,CAC1E;aAHUF,eAAe,GAAfA;aACAC,iBAAiB,GAAjBA;aACSC,aAAa,GAAbA;IAClB;IAEH,MAAM,QACFC,OAA2C,EACA;QAC3C,MAAMC,oBAAoB,MAAM,IAAI,CAAC,kBAAkB;QAEvDD,QAAQ,WAAW,CAAe,CAAC;YAC/B,EAAEC,kBAAkB,GAAG,CAACC,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;gBAMhD,EAAED,kBAAkB,GAAG,CAACC,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;QAE1D,CAAC;QAEDF,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuC;YACtD,MAAM;YACN,cAAc;gBAACG;aAAoB;YACnC,UAAU,CAACC,eACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,aAAa,OAAO,CAACC,KAAK,KAAK;oBAEpD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAOR;IACX;IAEA,MAAc,qBAAqB;QAC/B,MAAMS,eAAe,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAC1D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAClC,gBAAgB;gBAChB,gBAAgB;YACpB;QAGJ,IAAIA,aAAa,MAAM,IACnB,OAAO;YACH;gBACI,UAAU;gBACV,QAAQ;YACZ;SACH;QAGL,MAAMC,SAASD,aAAa,KAAK;QACjC,MAAME,QAAQD,OAAO,IAAI,CAACE,CAAAA,IAAKA,EAAE,OAAO,KAAKC;QAE7C,MAAMZ,oBAAoBa,kBAAkB;YACxCJ;YACAC;YACA,QAAQA,MAAM,MAAM,CAAC,MAAM,CAACT,CAAAA,IAAKA,AAAc,iBAAdA,EAAE,OAAO;YAC1C,eAAe,IAAI,CAAC,aAAa;QACrC;QAEA,OAAOD;IACX;AACJ;AAEA,mCAAec,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBnB;IAChB,cAAc;QAACoB;QAAiBC;QAAmBC;KAA+B;AACtF"}
1
+ {"version":3,"file":"api/graphql/CreateTenantSchema.js","sources":["../../../src/api/graphql/CreateTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/api-graphql\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields.js\";\nimport { CreateTenantUseCase } from \"../features/CreateTenant/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/exports/api/cms/model.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.js\";\n\nclass CreateTenantSchema implements GraphQLSchemaFactory.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private listModelsUseCase: ListModelsUseCase.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface\n ) {}\n\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n const inputCreateFields = await this.getExtensionsInput();\n\n builder.addTypeDefs(/* GraphQL */ `\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input CreateTenantInput {\n id: ID\n name: String!\n description: String\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n `);\n\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n createTenant(input: CreateTenantInput!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ input: CreateTenantUseCase.Input }>({\n path: \"TenantManagerMutation.createTenant\",\n dependencies: [CreateTenantUseCase],\n resolver: (createTenant: CreateTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await createTenant.execute(args.input);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n\n private async getExtensionsInput() {\n const modelsResult = await this.identityContext.withoutAuthorization(() => {\n return this.listModelsUseCase.execute({\n includePlugins: true,\n includePrivate: false\n });\n });\n\n if (modelsResult.isFail()) {\n return [\n {\n typeDefs: \"\",\n fields: \"extensions: JSON\"\n }\n ];\n }\n\n const models = modelsResult.value;\n const model = models.find(m => m.modelId === TENANT_MODEL_ID);\n\n if (!model) {\n return [{ typeDefs: \"\", fields: \"extensions: JSON\" }];\n }\n\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields: model.fields.filter(f => f.fieldId === \"extensions\"),\n fieldRegistry: this.fieldRegistry\n });\n\n return inputCreateFields;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: CreateTenantSchema,\n dependencies: [IdentityContext, ListModelsUseCase, CmsModelFieldToGraphQLRegistry]\n});\n"],"names":["CreateTenantSchema","identityContext","listModelsUseCase","fieldRegistry","builder","inputCreateFields","f","CreateTenantUseCase","createTenant","args","result","ErrorResponse","Response","modelsResult","models","model","m","TENANT_MODEL_ID","renderInputFields","GraphQLSchemaFactory","IdentityContext","ListModelsUseCase","CmsModelFieldToGraphQLRegistry"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,iBAA8C,EACrCC,aAAuD,CAC1E;aAHUF,eAAe,GAAfA;aACAC,iBAAiB,GAAjBA;aACSC,aAAa,GAAbA;IAClB;IAEH,MAAM,QACFC,OAA2C,EACA;QAC3C,MAAMC,oBAAoB,MAAM,IAAI,CAAC,kBAAkB;QAEvDD,QAAQ,WAAW,CAAe,CAAC;YAC/B,EAAEC,kBAAkB,GAAG,CAACC,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;gBAMhD,EAAED,kBAAkB,GAAG,CAACC,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;QAE1D,CAAC;QAEDF,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuC;YACtD,MAAM;YACN,cAAc;gBAACG;aAAoB;YACnC,UAAU,CAACC,eACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,aAAa,OAAO,CAACC,KAAK,KAAK;oBAEpD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAOR;IACX;IAEA,MAAc,qBAAqB;QAC/B,MAAMS,eAAe,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAC1D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAClC,gBAAgB;gBAChB,gBAAgB;YACpB;QAGJ,IAAIA,aAAa,MAAM,IACnB,OAAO;YACH;gBACI,UAAU;gBACV,QAAQ;YACZ;SACH;QAGL,MAAMC,SAASD,aAAa,KAAK;QACjC,MAAME,QAAQD,OAAO,IAAI,CAACE,CAAAA,IAAKA,EAAE,OAAO,KAAKC;QAE7C,IAAI,CAACF,OACD,OAAO;YAAC;gBAAE,UAAU;gBAAI,QAAQ;YAAmB;SAAE;QAGzD,MAAMV,oBAAoBa,kBAAkB;YACxCJ;YACAC;YACA,QAAQA,MAAM,MAAM,CAAC,MAAM,CAACT,CAAAA,IAAKA,AAAc,iBAAdA,EAAE,OAAO;YAC1C,eAAe,IAAI,CAAC,aAAa;QACrC;QAEA,OAAOD;IACX;AACJ;AAEA,mCAAec,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBnB;IAChB,cAAc;QAACoB;QAAiBC;QAAmBC;KAA+B;AACtF"}
@@ -1,8 +1,8 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
2
  declare class DisableTenantSchema implements GraphQLSchemaFactory.Interface {
3
3
  execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
4
4
  }
5
5
  declare const _default: typeof DisableTenantSchema & {
6
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
7
7
  };
8
8
  export default _default;
@@ -1,5 +1,5 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
3
3
  import { DisableTenantUseCase } from "../features/DisableTenant/abstractions.js";
4
4
  class DisableTenantSchema {
5
5
  async execute(builder) {
@@ -1 +1 @@
1
- {"version":3,"file":"api/graphql/DisableTenantSchema.js","sources":["../../../src/api/graphql/DisableTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { DisableTenantUseCase } from \"../features/DisableTenant/abstractions.js\";\n\nclass DisableTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n disableTenant(tenantId: ID!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.disableTenant\",\n dependencies: [DisableTenantUseCase],\n resolver: (disableTenant: DisableTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await disableTenant.execute(args.tenantId);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: DisableTenantSchema,\n dependencies: []\n});\n"],"names":["DisableTenantSchema","builder","DisableTenantUseCase","disableTenant","args","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;aAAqB;YACpC,UAAU,CAACC,gBACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,cAAc,OAAO,CAACC,KAAK,QAAQ;oBAExD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAON;IACX;AACJ;AAEA,oCAAeO,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"api/graphql/DisableTenantSchema.js","sources":["../../../src/api/graphql/DisableTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/api-graphql\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { DisableTenantUseCase } from \"../features/DisableTenant/abstractions.js\";\n\nclass DisableTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n disableTenant(tenantId: ID!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.disableTenant\",\n dependencies: [DisableTenantUseCase],\n resolver: (disableTenant: DisableTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await disableTenant.execute(args.tenantId);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: DisableTenantSchema,\n dependencies: []\n});\n"],"names":["DisableTenantSchema","builder","DisableTenantUseCase","disableTenant","args","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;aAAqB;YACpC,UAAU,CAACC,gBACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,cAAc,OAAO,CAACC,KAAK,QAAQ;oBAExD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAON;IACX;AACJ;AAEA,oCAAeO,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -1,8 +1,8 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
2
  declare class EnableTenantSchema implements GraphQLSchemaFactory.Interface {
3
3
  execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
4
4
  }
5
5
  declare const _default: typeof EnableTenantSchema & {
6
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
7
7
  };
8
8
  export default _default;
@@ -1,5 +1,5 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
3
3
  import { EnableTenantUseCase } from "../features/EnableTenant/abstractions.js";
4
4
  class EnableTenantSchema {
5
5
  async execute(builder) {
@@ -1 +1 @@
1
- {"version":3,"file":"api/graphql/EnableTenantSchema.js","sources":["../../../src/api/graphql/EnableTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { EnableTenantUseCase } from \"../features/EnableTenant/abstractions.js\";\n\nclass EnableTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n enableTenant(tenantId: ID!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.enableTenant\",\n dependencies: [EnableTenantUseCase],\n resolver: (enableTenant: EnableTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await enableTenant.execute(args.tenantId);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: EnableTenantSchema,\n dependencies: []\n});\n"],"names":["EnableTenantSchema","builder","EnableTenantUseCase","enableTenant","args","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;aAAoB;YACnC,UAAU,CAACC,eACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,aAAa,OAAO,CAACC,KAAK,QAAQ;oBAEvD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAON;IACX;AACJ;AAEA,mCAAeO,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"api/graphql/EnableTenantSchema.js","sources":["../../../src/api/graphql/EnableTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/api-graphql\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { EnableTenantUseCase } from \"../features/EnableTenant/abstractions.js\";\n\nclass EnableTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n extend type TenantManagerMutation {\n enableTenant(tenantId: ID!): BooleanResponse\n }\n `);\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.enableTenant\",\n dependencies: [EnableTenantUseCase],\n resolver: (enableTenant: EnableTenantUseCase.Interface) => {\n return async ({ args }) => {\n const result = await enableTenant.execute(args.tenantId);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: EnableTenantSchema,\n dependencies: []\n});\n"],"names":["EnableTenantSchema","builder","EnableTenantUseCase","enableTenant","args","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;QAInC,CAAC;QAEDA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;aAAoB;YACnC,UAAU,CAACC,eACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAMC,SAAS,MAAMF,aAAa,OAAO,CAACC,KAAK,QAAQ;oBAEvD,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAON;IACX;AACJ;AAEA,mCAAeO,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -1,8 +1,8 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
2
  declare class GetCurrentTenantSchema implements GraphQLSchemaFactory.Interface {
3
3
  execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
4
4
  }
5
5
  declare const _default: typeof GetCurrentTenantSchema & {
6
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
7
7
  };
8
8
  export default _default;
@@ -1,5 +1,5 @@
1
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
2
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
2
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
3
3
  import { GetCurrentTenantUseCase } from "../features/GetCurrentTenant/abstractions.js";
4
4
  class GetCurrentTenantSchema {
5
5
  async execute(builder) {
@@ -1 +1 @@
1
- {"version":3,"file":"api/graphql/GetCurrentTenantSchema.js","sources":["../../../src/api/graphql/GetCurrentTenantSchema.ts"],"sourcesContent":["import { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { GetCurrentTenantUseCase } from \"../features/GetCurrentTenant/abstractions.js\";\n\nclass GetCurrentTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type TenantResponse {\n data: Tenant\n error: Error\n }\n\n type Tenant {\n id: ID!\n values: JSON!\n }\n\n type TenantManagerQuery {\n getCurrentTenant: TenantResponse\n }\n\n extend type Query {\n tenantManager: TenantManagerQuery\n }\n `);\n\n builder.addResolver({\n path: \"Query.tenantManager\",\n resolver: () => {\n return () => ({});\n }\n });\n\n builder.addResolver({\n path: \"TenantManagerQuery.getCurrentTenant\",\n dependencies: [GetCurrentTenantUseCase],\n resolver: (getCurrentTenant: GetCurrentTenantUseCase.Interface) => {\n return async () => {\n const result = await getCurrentTenant.execute();\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(result.value);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: GetCurrentTenantSchema,\n dependencies: []\n});\n"],"names":["GetCurrentTenantSchema","builder","GetCurrentTenantUseCase","getCurrentTenant","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;QAkBnC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,UAAU,IACC,IAAO,EAAC;QAEvB;QAEAA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,cAAc;gBAACC;aAAwB;YACvC,UAAU,CAACC,mBACA;oBACH,MAAMC,SAAS,MAAMD,iBAAiB,OAAO;oBAE7C,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;QAER;QAEA,OAAOH;IACX;AACJ;AAEA,uCAAeM,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBP;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"api/graphql/GetCurrentTenantSchema.js","sources":["../../../src/api/graphql/GetCurrentTenantSchema.ts"],"sourcesContent":["import { Response } from \"@webiny/api-graphql\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { GetCurrentTenantUseCase } from \"../features/GetCurrentTenant/abstractions.js\";\n\nclass GetCurrentTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type TenantResponse {\n data: Tenant\n error: Error\n }\n\n type Tenant {\n id: ID!\n values: JSON!\n }\n\n type TenantManagerQuery {\n getCurrentTenant: TenantResponse\n }\n\n extend type Query {\n tenantManager: TenantManagerQuery\n }\n `);\n\n builder.addResolver({\n path: \"Query.tenantManager\",\n resolver: () => {\n return () => ({});\n }\n });\n\n builder.addResolver({\n path: \"TenantManagerQuery.getCurrentTenant\",\n dependencies: [GetCurrentTenantUseCase],\n resolver: (getCurrentTenant: GetCurrentTenantUseCase.Interface) => {\n return async () => {\n const result = await getCurrentTenant.execute();\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(result.value);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: GetCurrentTenantSchema,\n dependencies: []\n});\n"],"names":["GetCurrentTenantSchema","builder","GetCurrentTenantUseCase","getCurrentTenant","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;QAkBnC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,UAAU,IACC,IAAO,EAAC;QAEvB;QAEAA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,cAAc;gBAACC;aAAwB;YACvC,UAAU,CAACC,mBACA;oBACH,MAAMC,SAAS,MAAMD,iBAAiB,OAAO;oBAE7C,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;QAER;QAEA,OAAOH;IACX;AACJ;AAEA,uCAAeM,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBP;IAChB,cAAc,EAAE;AACpB"}
@@ -1,8 +1,8 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
2
  declare class InstallTenantSchema implements GraphQLSchemaFactory.Interface {
3
3
  execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
4
4
  }
5
5
  declare const _default: typeof InstallTenantSchema & {
6
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.public.js").IGraphQLSchemaFactory>;
7
7
  };
8
8
  export default _default;
@@ -1,5 +1,5 @@
1
- import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
1
+ import { GraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
3
3
  import { CreateAndInstallTenantUseCase } from "../features/CreateAndInstallTenant/abstractions.js";
4
4
  import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
5
5
  import NotAuthorizedResponse from "@webiny/api-core/graphql/security/NotAuthorizedResponse.js";
@@ -1 +1 @@
1
- {"version":3,"file":"api/graphql/InstallTenantSchema.js","sources":["../../../src/api/graphql/InstallTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { CreateAndInstallTenantUseCase } from \"../features/CreateAndInstallTenant/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.js\";\nimport NotAuthorizedResponse from \"@webiny/api-core/graphql/security/NotAuthorizedResponse.js\";\n\nclass InstallTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type TenantManagerMutation {\n installTenant(tenantId: ID!): BooleanResponse\n }\n\n extend type Mutation {\n tenantManager: TenantManagerMutation\n }\n `);\n\n builder.addResolver({\n path: \"Mutation.tenantManager\",\n resolver: () => {\n return () => ({});\n }\n });\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.installTenant\",\n dependencies: [IdentityContext, CreateAndInstallTenantUseCase],\n resolver: (\n identityContext: IdentityContext.Interface,\n installTenant: CreateAndInstallTenantUseCase.Interface\n ) => {\n return async ({ args }) => {\n if (!identityContext.getPermission(\"tm.tenant\")) {\n return new NotAuthorizedResponse();\n }\n\n const result = await installTenant.execute(args.tenantId);\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: InstallTenantSchema,\n dependencies: []\n});\n"],"names":["InstallTenantSchema","builder","IdentityContext","CreateAndInstallTenantUseCase","identityContext","installTenant","args","NotAuthorizedResponse","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;;;AAOA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;QAQnC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,UAAU,IACC,IAAO,EAAC;QAEvB;QAEAA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;gBAAiBC;aAA8B;YAC9D,UAAU,CACNC,iBACAC,gBAEO,OAAO,EAAEC,IAAI,EAAE;oBAClB,IAAI,CAACF,gBAAgB,aAAa,CAAC,cAC/B,OAAO,IAAIG;oBAGf,MAAMC,SAAS,MAAMH,cAAc,OAAO,CAACC,KAAK,QAAQ;oBACxD,IAAIE,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAOT;IACX;AACJ;AAEA,oCAAeU,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBX;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"api/graphql/InstallTenantSchema.js","sources":["../../../src/api/graphql/InstallTenantSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/api-graphql\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { CreateAndInstallTenantUseCase } from \"../features/CreateAndInstallTenant/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.js\";\nimport NotAuthorizedResponse from \"@webiny/api-core/graphql/security/NotAuthorizedResponse.js\";\n\nclass InstallTenantSchema implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type TenantManagerMutation {\n installTenant(tenantId: ID!): BooleanResponse\n }\n\n extend type Mutation {\n tenantManager: TenantManagerMutation\n }\n `);\n\n builder.addResolver({\n path: \"Mutation.tenantManager\",\n resolver: () => {\n return () => ({});\n }\n });\n\n builder.addResolver<{ tenantId: string }>({\n path: \"TenantManagerMutation.installTenant\",\n dependencies: [IdentityContext, CreateAndInstallTenantUseCase],\n resolver: (\n identityContext: IdentityContext.Interface,\n installTenant: CreateAndInstallTenantUseCase.Interface\n ) => {\n return async ({ args }) => {\n if (!identityContext.getPermission(\"tm.tenant\")) {\n return new NotAuthorizedResponse();\n }\n\n const result = await installTenant.execute(args.tenantId);\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(true);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport default GraphQLSchemaFactory.createImplementation({\n implementation: InstallTenantSchema,\n dependencies: []\n});\n"],"names":["InstallTenantSchema","builder","IdentityContext","CreateAndInstallTenantUseCase","identityContext","installTenant","args","NotAuthorizedResponse","result","ErrorResponse","Response","GraphQLSchemaFactory"],"mappings":";;;;;AAOA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;QAQnC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,UAAU,IACC,IAAO,EAAC;QAEvB;QAEAA,QAAQ,WAAW,CAAuB;YACtC,MAAM;YACN,cAAc;gBAACC;gBAAiBC;aAA8B;YAC9D,UAAU,CACNC,iBACAC,gBAEO,OAAO,EAAEC,IAAI,EAAE;oBAClB,IAAI,CAACF,gBAAgB,aAAa,CAAC,cAC/B,OAAO,IAAIG;oBAGf,MAAMC,SAAS,MAAMH,cAAc,OAAO,CAACC,KAAK,QAAQ;oBACxD,IAAIE,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAAS;gBACxB;QAER;QAEA,OAAOT;IACX;AACJ;AAEA,oCAAeU,qBAAqB,oBAAoB,CAAC;IACrD,gBAAgBX;IAChB,cAAc,EAAE;AACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/tenant-manager",
3
- "version": "6.4.11",
3
+ "version": "6.6.0-alpha.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -15,29 +15,27 @@
15
15
  "author": "Webiny Ltd.",
16
16
  "license": "Webiny Enterprise",
17
17
  "dependencies": {
18
- "@apollo/react-hooks": "3.1.5",
19
- "@webiny/admin-ui": "6.4.11",
20
- "@webiny/api-core": "6.4.11",
21
- "@webiny/api-headless-cms": "6.4.11",
22
- "@webiny/app": "6.4.11",
23
- "@webiny/app-aco": "6.4.11",
24
- "@webiny/app-admin": "6.4.11",
25
- "@webiny/app-headless-cms": "6.4.11",
26
- "@webiny/feature": "6.4.11",
27
- "@webiny/handler-graphql": "6.4.11",
28
- "@webiny/icons": "6.4.11",
29
- "@webiny/project": "6.4.11",
30
- "@webiny/project-aws": "6.4.11",
31
- "graphql-tag": "2.12.7",
32
- "mobx": "6.16.1",
33
- "mobx-react-lite": "4.1.1",
18
+ "@webiny/admin-ui": "6.6.0-alpha.1",
19
+ "@webiny/api-core": "6.6.0-alpha.1",
20
+ "@webiny/api-graphql": "6.6.0-alpha.1",
21
+ "@webiny/api-headless-cms": "6.6.0-alpha.1",
22
+ "@webiny/app": "6.6.0-alpha.1",
23
+ "@webiny/app-aco": "6.6.0-alpha.1",
24
+ "@webiny/app-admin": "6.6.0-alpha.1",
25
+ "@webiny/app-headless-cms": "6.6.0-alpha.1",
26
+ "@webiny/feature": "6.6.0-alpha.1",
27
+ "@webiny/icons": "6.6.0-alpha.1",
28
+ "@webiny/project": "6.6.0-alpha.1",
29
+ "@webiny/project-aws": "6.6.0-alpha.1",
30
+ "mobx": "7.0.3",
31
+ "mobx-react-lite": "5.0.3",
34
32
  "react": "18.3.1",
35
33
  "react-dom": "18.3.1"
36
34
  },
37
35
  "devDependencies": {
38
- "@webiny/build-tools": "6.4.11",
36
+ "@webiny/build-tools": "6.6.0-alpha.1",
39
37
  "rimraf": "6.1.3",
40
- "typescript": "6.0.3"
38
+ "typescript": "7.0.2"
41
39
  },
42
40
  "publishConfig": {
43
41
  "access": "public"
@@ -1,16 +0,0 @@
1
- export declare const INSTALL_TENANT: import("graphql").DocumentNode;
2
- export interface InstallTenantResponse {
3
- tenantManager: {
4
- installTenant: {
5
- data: boolean;
6
- error?: null;
7
- } | {
8
- data: null;
9
- error: {
10
- code: string;
11
- message: string;
12
- data: Record<string, any>;
13
- };
14
- };
15
- };
16
- }
@@ -1,18 +0,0 @@
1
- import graphql_tag from "graphql-tag";
2
- const INSTALL_TENANT = graphql_tag`
3
- mutation InstallTenant($tenantId: ID!) {
4
- tenantManager {
5
- installTenant(tenantId: $tenantId) {
6
- data
7
- error {
8
- code
9
- message
10
- data
11
- }
12
- }
13
- }
14
- }
15
- `;
16
- export { INSTALL_TENANT };
17
-
18
- //# sourceMappingURL=installTenant.gql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin/TenantEntryList/InstallTenantButton/installTenant.gql.js","sources":["../../../../src/admin/TenantEntryList/InstallTenantButton/installTenant.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nexport const INSTALL_TENANT = gql`\n mutation InstallTenant($tenantId: ID!) {\n tenantManager {\n installTenant(tenantId: $tenantId) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport interface InstallTenantResponse {\n tenantManager: {\n installTenant:\n | {\n data: boolean;\n error?: null;\n }\n | {\n data: null;\n error: {\n code: string;\n message: string;\n data: Record<string, any>;\n };\n };\n };\n}\n"],"names":["INSTALL_TENANT","gql"],"mappings":";AAEO,MAAMA,iBAAiBC,WAAG,CAAC;;;;;;;;;;;;;AAalC,CAAC"}