@schemavaults/auth-ui 0.5.44

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 (144) hide show
  1. package/README.md +27 -0
  2. package/dist/components/AccountCard/account_card.d.ts +15 -0
  3. package/dist/components/AccountCard/account_card.js +21 -0
  4. package/dist/components/AccountCard/account_card.js.map +1 -0
  5. package/dist/components/AccountCard/index.d.ts +2 -0
  6. package/dist/components/AccountCard/index.js +2 -0
  7. package/dist/components/AccountCard/index.js.map +1 -0
  8. package/dist/components/AccountCard/view_admin_page_link.d.ts +7 -0
  9. package/dist/components/AccountCard/view_admin_page_link.js +28 -0
  10. package/dist/components/AccountCard/view_admin_page_link.js.map +1 -0
  11. package/dist/components/AccountCard/view_full_user_profile.d.ts +6 -0
  12. package/dist/components/AccountCard/view_full_user_profile.js +25 -0
  13. package/dist/components/AccountCard/view_full_user_profile.js.map +1 -0
  14. package/dist/components/ApiServersCard/api_servers_card.d.ts +9 -0
  15. package/dist/components/ApiServersCard/api_servers_card.js +12 -0
  16. package/dist/components/ApiServersCard/api_servers_card.js.map +1 -0
  17. package/dist/components/ApiServersCard/index.d.ts +2 -0
  18. package/dist/components/ApiServersCard/index.js +2 -0
  19. package/dist/components/ApiServersCard/index.js.map +1 -0
  20. package/dist/components/ApiServersTable/ApiServersTable.d.ts +7 -0
  21. package/dist/components/ApiServersTable/ApiServersTable.js +28 -0
  22. package/dist/components/ApiServersTable/ApiServersTable.js.map +1 -0
  23. package/dist/components/ApiServersTable/columns.d.ts +3 -0
  24. package/dist/components/ApiServersTable/columns.js +39 -0
  25. package/dist/components/ApiServersTable/columns.js.map +1 -0
  26. package/dist/components/ApiServersTable/index.d.ts +2 -0
  27. package/dist/components/ApiServersTable/index.js +2 -0
  28. package/dist/components/ApiServersTable/index.js.map +1 -0
  29. package/dist/components/ApiServersTable/useApiServersList.d.ts +16 -0
  30. package/dist/components/ApiServersTable/useApiServersList.js +92 -0
  31. package/dist/components/ApiServersTable/useApiServersList.js.map +1 -0
  32. package/dist/components/AppsCard/apps_card.d.ts +11 -0
  33. package/dist/components/AppsCard/apps_card.js +11 -0
  34. package/dist/components/AppsCard/apps_card.js.map +1 -0
  35. package/dist/components/AppsCard/index.d.ts +2 -0
  36. package/dist/components/AppsCard/index.js +2 -0
  37. package/dist/components/AppsCard/index.js.map +1 -0
  38. package/dist/components/AppsTable/AppDomainsList.d.ts +7 -0
  39. package/dist/components/AppsTable/AppDomainsList.js +21 -0
  40. package/dist/components/AppsTable/AppDomainsList.js.map +1 -0
  41. package/dist/components/AppsTable/AppsTable.d.ts +9 -0
  42. package/dist/components/AppsTable/AppsTable.js +36 -0
  43. package/dist/components/AppsTable/AppsTable.js.map +1 -0
  44. package/dist/components/AppsTable/columns.d.ts +4 -0
  45. package/dist/components/AppsTable/columns.js +67 -0
  46. package/dist/components/AppsTable/columns.js.map +1 -0
  47. package/dist/components/AppsTable/frontend_app_actions.d.ts +8 -0
  48. package/dist/components/AppsTable/frontend_app_actions.js +124 -0
  49. package/dist/components/AppsTable/frontend_app_actions.js.map +1 -0
  50. package/dist/components/AppsTable/index.d.ts +3 -0
  51. package/dist/components/AppsTable/index.js +2 -0
  52. package/dist/components/AppsTable/index.js.map +1 -0
  53. package/dist/components/AppsTable/launchWebApp.d.ts +9 -0
  54. package/dist/components/AppsTable/launchWebApp.js +47 -0
  55. package/dist/components/AppsTable/launchWebApp.js.map +1 -0
  56. package/dist/components/AppsTable/preloaded_apps_table_data.d.ts +5 -0
  57. package/dist/components/AppsTable/preloaded_apps_table_data.js +2 -0
  58. package/dist/components/AppsTable/preloaded_apps_table_data.js.map +1 -0
  59. package/dist/components/AppsTable/send-authorize-app-request.d.ts +9 -0
  60. package/dist/components/AppsTable/send-authorize-app-request.js +57 -0
  61. package/dist/components/AppsTable/send-authorize-app-request.js.map +1 -0
  62. package/dist/components/AppsTable/useAppDomains.d.ts +8 -0
  63. package/dist/components/AppsTable/useAppDomains.js +75 -0
  64. package/dist/components/AppsTable/useAppDomains.js.map +1 -0
  65. package/dist/components/AppsTable/useAppsList.d.ts +28 -0
  66. package/dist/components/AppsTable/useAppsList.js +97 -0
  67. package/dist/components/AppsTable/useAppsList.js.map +1 -0
  68. package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.d.ts +2 -0
  69. package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js +99 -0
  70. package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js.map +1 -0
  71. package/dist/components/ConnectAppToApiDialog/index.d.ts +2 -0
  72. package/dist/components/ConnectAppToApiDialog/index.js +2 -0
  73. package/dist/components/ConnectAppToApiDialog/index.js.map +1 -0
  74. package/dist/components/CreateApiServerDialog/CreateApiServerDialog.d.ts +7 -0
  75. package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js +118 -0
  76. package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js.map +1 -0
  77. package/dist/components/CreateApiServerDialog/index.d.ts +2 -0
  78. package/dist/components/CreateApiServerDialog/index.js +2 -0
  79. package/dist/components/CreateApiServerDialog/index.js.map +1 -0
  80. package/dist/components/CreateAppDialog/CreateAppDialog.d.ts +7 -0
  81. package/dist/components/CreateAppDialog/CreateAppDialog.js +114 -0
  82. package/dist/components/CreateAppDialog/CreateAppDialog.js.map +1 -0
  83. package/dist/components/CreateAppDialog/index.d.ts +2 -0
  84. package/dist/components/CreateAppDialog/index.js +2 -0
  85. package/dist/components/CreateAppDialog/index.js.map +1 -0
  86. package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.d.ts +10 -0
  87. package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js +125 -0
  88. package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js.map +1 -0
  89. package/dist/components/CreateAppDomainDialog/index.d.ts +2 -0
  90. package/dist/components/CreateAppDomainDialog/index.js +2 -0
  91. package/dist/components/CreateAppDomainDialog/index.js.map +1 -0
  92. package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.d.ts +3 -0
  93. package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.js +127 -0
  94. package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.js.map +1 -0
  95. package/dist/components/CreateInviteCodeDialog/index.d.ts +1 -0
  96. package/dist/components/CreateInviteCodeDialog/index.js +2 -0
  97. package/dist/components/CreateInviteCodeDialog/index.js.map +1 -0
  98. package/dist/components/InviteCodesCard/InviteCodesCard.d.ts +9 -0
  99. package/dist/components/InviteCodesCard/InviteCodesCard.js +76 -0
  100. package/dist/components/InviteCodesCard/InviteCodesCard.js.map +1 -0
  101. package/dist/components/InviteCodesCard/index.d.ts +2 -0
  102. package/dist/components/InviteCodesCard/index.js +2 -0
  103. package/dist/components/InviteCodesCard/index.js.map +1 -0
  104. package/dist/components/InviteCodesTable/InviteCodesTable.d.ts +7 -0
  105. package/dist/components/InviteCodesTable/InviteCodesTable.js +23 -0
  106. package/dist/components/InviteCodesTable/InviteCodesTable.js.map +1 -0
  107. package/dist/components/InviteCodesTable/columns.d.ts +3 -0
  108. package/dist/components/InviteCodesTable/columns.js +71 -0
  109. package/dist/components/InviteCodesTable/columns.js.map +1 -0
  110. package/dist/components/InviteCodesTable/index.d.ts +2 -0
  111. package/dist/components/InviteCodesTable/index.js +2 -0
  112. package/dist/components/InviteCodesTable/index.js.map +1 -0
  113. package/dist/components/SignOutButton/SignOutButton.d.ts +9 -0
  114. package/dist/components/SignOutButton/SignOutButton.js +12 -0
  115. package/dist/components/SignOutButton/SignOutButton.js.map +1 -0
  116. package/dist/components/SignOutButton/index.d.ts +2 -0
  117. package/dist/components/SignOutButton/index.js +2 -0
  118. package/dist/components/SignOutButton/index.js.map +1 -0
  119. package/dist/components/UsersCard/UsersCard.d.ts +9 -0
  120. package/dist/components/UsersCard/UsersCard.js +79 -0
  121. package/dist/components/UsersCard/UsersCard.js.map +1 -0
  122. package/dist/components/UsersCard/index.d.ts +2 -0
  123. package/dist/components/UsersCard/index.js +2 -0
  124. package/dist/components/UsersCard/index.js.map +1 -0
  125. package/dist/components/UsersTable/UsersTable.d.ts +7 -0
  126. package/dist/components/UsersTable/UsersTable.js +24 -0
  127. package/dist/components/UsersTable/UsersTable.js.map +1 -0
  128. package/dist/components/UsersTable/columns.d.ts +3 -0
  129. package/dist/components/UsersTable/columns.js +119 -0
  130. package/dist/components/UsersTable/columns.js.map +1 -0
  131. package/dist/components/UsersTable/index.d.ts +2 -0
  132. package/dist/components/UsersTable/index.js +2 -0
  133. package/dist/components/UsersTable/index.js.map +1 -0
  134. package/dist/components/index.d.ts +17 -0
  135. package/dist/components/index.js +9 -0
  136. package/dist/components/index.js.map +1 -0
  137. package/dist/index.d.ts +2 -0
  138. package/dist/index.js +3 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/lib/printDateTime.d.ts +2 -0
  141. package/dist/lib/printDateTime.js +21 -0
  142. package/dist/lib/printDateTime.js.map +1 -0
  143. package/package.json +72 -0
  144. package/tsconfig.json +25 -0
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Checkbox } from "@schemavaults/ui";
4
+ import { FrontendApplicationActions } from "./frontend_app_actions";
5
+ import { AppDomainsList } from "./AppDomainsList";
6
+ export function getAppsTableColumns(queryType, preloaded) {
7
+ const columns = [
8
+ {
9
+ id: "select",
10
+ header: ({ table }) => (_jsx(Checkbox, { checked: table.getIsAllPageRowsSelected() ||
11
+ (table.getIsSomePageRowsSelected() && "indeterminate"), onCheckedChange: (value) => table.toggleAllPageRowsSelected(!!value), "aria-label": "Select all" })),
12
+ cell: ({ row }) => (_jsx(Checkbox, { checked: row.getIsSelected(), onCheckedChange: (value) => row.toggleSelected(!!value), "aria-label": "Select row" })),
13
+ enableSorting: false,
14
+ enableHiding: false,
15
+ },
16
+ {
17
+ id: "app_id",
18
+ accessorKey: "app_id",
19
+ header: "App ID",
20
+ },
21
+ {
22
+ id: "app_name",
23
+ accessorKey: "app_name",
24
+ header: "App Name",
25
+ },
26
+ {
27
+ id: "app_description",
28
+ accessorKey: "app_description",
29
+ header: "Description",
30
+ },
31
+ {
32
+ id: "domains",
33
+ header: "Domains",
34
+ cell: ({ row }) => {
35
+ let app_id = undefined;
36
+ try {
37
+ const id = row.getValue("app_id");
38
+ if (typeof id !== "string") {
39
+ throw new Error("Expected ID to be a string");
40
+ }
41
+ app_id = id;
42
+ }
43
+ catch (e) {
44
+ console.error("Failed to load app ID for 'domains' cell in AppsTable: ", e);
45
+ app_id = undefined;
46
+ }
47
+ if (typeof app_id !== "string") {
48
+ return (_jsx("p", { className: "text-destructive", children: "Invalid app ID; not a string" }));
49
+ }
50
+ return (_jsx(AppDomainsList, { app_id: app_id, preloaded_domains: typeof preloaded === "object" && !!preloaded
51
+ ? preloaded.domains[app_id]
52
+ : undefined }));
53
+ },
54
+ enableSorting: false,
55
+ enableHiding: true,
56
+ },
57
+ {
58
+ id: "actions",
59
+ cell: ({ row }) => {
60
+ const app = row.original;
61
+ return _jsx(FrontendApplicationActions, { app: app, queryType: queryType });
62
+ },
63
+ },
64
+ ];
65
+ return columns;
66
+ }
67
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/AppsTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,MAAM,UAAU,mBAAmB,CACjC,SAA4B,EAC5B,SAAgD;IAEhD,MAAM,OAAO,GAAiC;QAC5C;YACE,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,QAAQ,IACP,OAAO,EACL,KAAK,CAAC,wBAAwB,EAAE;oBAChC,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,EAExD,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAClC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAE/B,YAAY,GACvB,CACH;YACD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,gBACrD,YAAY,GACvB,CACH;YACD,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,QAAQ;YACrB,MAAM,EAAE,QAAQ;SACjB;QACD;YACE,EAAE,EAAE,UAAU;YACd,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAU;SACnB;QACD;YACE,EAAE,EAAE,iBAAiB;YACrB,WAAW,EAAE,iBAAiB;YAC9B,MAAM,EAAE,aAAa;SACtB;QACD;YACE,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAChB,IAAI,MAAM,GAAuB,SAAS,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,EAAE,GAAY,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC3C,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBAChD,CAAC;oBACD,MAAM,GAAG,EAAE,CAAC;gBACd,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,CAAC,CACF,CAAC;oBACF,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC;gBAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,OAAO,CACL,YAAG,SAAS,EAAC,kBAAkB,6CAAiC,CACjE,CAAC;gBACJ,CAAC;gBAED,OAAO,CACL,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EACf,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS;wBAC1C,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3B,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;YACJ,CAAC;YACD,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,GAAG,GAAoB,GAAG,CAAC,QAAQ,CAAC;gBAE1C,OAAO,KAAC,0BAA0B,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;YACxE,CAAC;SACF;KACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaVaultsApp, ListAppsQueryType } from "@schemavaults/app-definitions";
2
+ import { type ReactElement } from "react";
3
+ interface FrontendApplicationActionsProps {
4
+ app: SchemaVaultsApp;
5
+ queryType: ListAppsQueryType;
6
+ }
7
+ export declare function FrontendApplicationActions({ app, queryType }: FrontendApplicationActionsProps): ReactElement;
8
+ export {};
@@ -0,0 +1,124 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useTransition, useState, useMemo } from "react";
4
+ import { cn, useToast } from "@schemavaults/ui";
5
+ import { Button } from "@schemavaults/ui";
6
+ import { AppWindow, ClipboardCopy, EarthLock, MoreHorizontal, PlayCircle, PlugZap, Trash } from "lucide-react";
7
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "@schemavaults/ui";
8
+ import { useAdmin, useAppEnvironment, useAuth } from "@schemavaults/auth-react-provider";
9
+ import { sendAuthorizeFrontendAppRequest } from "./send-authorize-app-request";
10
+ import { getUseAppDomainsListEndpoint, useAppDomains } from "./useAppDomains";
11
+ import { CreateAppDomainDialog } from "../CreateAppDomainDialog";
12
+ import { launchWebApp } from "./launchWebApp";
13
+ import { isHardcodedAppId, HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS } from "@schemavaults/app-definitions";
14
+ const dropdownMenuActionsClassName = "hover:cursor-pointer flex flex-row gap-2 items-center justify-start pointer-events-auto";
15
+ export function FrontendApplicationActions({ app, queryType }) {
16
+ const app_id = app.app_id;
17
+ const hardcoded = app.hardcoded && isHardcodedAppId(app_id);
18
+ const { toast } = useToast();
19
+ const auth = useAuth();
20
+ const [authorizingApp, startAuthorizingApp] = useTransition();
21
+ let preloadedAppDomains = undefined;
22
+ if (hardcoded) {
23
+ preloadedAppDomains = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) => (a.app_id === app_id));
24
+ }
25
+ const appDomains = useAppDomains({
26
+ app_id: app.app_id,
27
+ initialData: preloadedAppDomains
28
+ });
29
+ const admin = useAdmin();
30
+ const environment = useAppEnvironment();
31
+ const launchableAppDomains = useMemo(() => {
32
+ if (!Array.isArray(appDomains.data) || appDomains.data.length === 0) {
33
+ return [];
34
+ }
35
+ const launchable = appDomains.data.filter(function filterLaunchableAppDomains(domain) {
36
+ if (domain.environment === 'development' && environment === 'development') {
37
+ return true;
38
+ }
39
+ else if (domain.environment === 'production' && environment === 'production') {
40
+ return true;
41
+ }
42
+ else if (domain.environment === 'test' && environment === 'test') {
43
+ return true;
44
+ }
45
+ else if (domain.environment === 'staging' && environment === 'staging') {
46
+ return true;
47
+ }
48
+ return false;
49
+ }); // end of filterLaunchableAppDomains
50
+ if (environment !== 'production') {
51
+ console.log("Launchable app domains: ", launchable);
52
+ }
53
+ return launchable;
54
+ }, [appDomains.data, environment]);
55
+ const launchAppDisabled = (!Array.isArray(appDomains.data) ||
56
+ appDomains.data.length === 0 ||
57
+ launchableAppDomains.length === 0);
58
+ const [isAddWebDomainDialogOpen, setAddWebDomainDialogOpen] = useState(false);
59
+ const isDeleteAppDisabled = hardcoded || !admin;
60
+ return (_jsxs(_Fragment, { children: [_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", children: [_jsx("span", { className: "sr-only", children: "Open menu" }), _jsx(MoreHorizontal, { className: "h-4 w-4" })] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuLabel, { children: "Actions" }), !launchAppDisabled && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: launchAppDisabled ? undefined : () => {
61
+ try {
62
+ launchWebApp({
63
+ toast,
64
+ appDomains: Array.isArray(appDomains.data) ? appDomains.data : [],
65
+ launchableAppDomains,
66
+ environment
67
+ });
68
+ }
69
+ catch (e) {
70
+ console.error(e);
71
+ toast({ variant: 'destructive', title: "Failed to launch web app" });
72
+ }
73
+ }, disabled: launchAppDisabled, children: [_jsx(PlayCircle, { className: "h-4 w-4" }), " Launch App"] })), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
74
+ try {
75
+ navigator.clipboard.writeText(app.app_id);
76
+ toast({
77
+ variant: 'default',
78
+ title: "Copied app ID to clipboard"
79
+ });
80
+ }
81
+ catch (e) {
82
+ console.error(e);
83
+ toast({
84
+ variant: 'destructive',
85
+ title: "Failed to copy to clipboard"
86
+ });
87
+ return;
88
+ }
89
+ }, children: [_jsx(ClipboardCopy, { className: "h-4 w-4" }), " Copy app ID"] }), queryType !== 'authorized' && (_jsx(DropdownMenuSeparator, {})), queryType !== 'authorized' && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
90
+ startAuthorizingApp(async () => {
91
+ try {
92
+ await sendAuthorizeFrontendAppRequest({
93
+ auth,
94
+ toast,
95
+ app_id: app.app_id
96
+ });
97
+ }
98
+ catch (e) {
99
+ toast({
100
+ variant: 'destructive',
101
+ title: "Failed to send authorize frontend app request",
102
+ description: e instanceof Error ? e.message : undefined
103
+ });
104
+ return;
105
+ }
106
+ });
107
+ }, disabled: authorizingApp, children: [_jsx(AppWindow, { className: "h-4 w-4" }), " Authorize app"] })), // Admin 'all apps' view actions
108
+ admin && queryType === 'all' && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
109
+ toast({
110
+ variant: 'default',
111
+ title: "Not implemented"
112
+ });
113
+ }, children: [_jsx(PlugZap, { className: "h-4 w-4" }), " Connect API"] }), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
114
+ setAddWebDomainDialogOpen(true);
115
+ }, children: [_jsx(EarthLock, { className: "h-4 w-4" }), " Add domain"] })] })), (!isDeleteAppDisabled) && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
116
+ toast({
117
+ variant: 'default',
118
+ title: "Not implemented"
119
+ });
120
+ }, disabled: isDeleteAppDisabled, children: [_jsx(Trash, { className: "h-4 w-4" }), " Delete app"] })] }))] })] }), _jsx(CreateAppDomainDialog, { app_id: app.app_id, open: isAddWebDomainDialogOpen, onOpenChange: setAddWebDomainDialogOpen, clearFrontendWebAppDomainsCache: (mutate) => {
121
+ mutate(key => key === getUseAppDomainsListEndpoint(app.app_id), undefined, { revalidate: true });
122
+ } }, `create-domain-dialog-${app.app_id}`)] }));
123
+ }
124
+ //# sourceMappingURL=frontend_app_actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend_app_actions.js","sourceRoot":"","sources":["../../../src/components/AppsTable/frontend_app_actions.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { AppsTable } from './AppsTable';
2
+ export type { AppsDatatableProps } from './AppsTable';
3
+ export type { PreloadedAppsTableDataWithDomainRefs } from './preloaded_apps_table_data';
@@ -0,0 +1,2 @@
1
+ export { AppsTable } from './AppsTable';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AppsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SchemaVaultsAppDomainRef, SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
2
+ import type { useToast } from "@schemavaults/ui";
3
+ export interface LaunchWebAppOptions {
4
+ appDomains: readonly SchemaVaultsAppDomainRef[];
5
+ launchableAppDomains: readonly SchemaVaultsAppDomainRef[];
6
+ toast: ReturnType<typeof useToast>["toast"];
7
+ environment: SchemaVaultsAppEnvironment;
8
+ }
9
+ export declare function launchWebApp({ appDomains, launchableAppDomains, toast, environment, }: LaunchWebAppOptions): void;
@@ -0,0 +1,47 @@
1
+ export function launchWebApp({ appDomains, launchableAppDomains, toast, environment, }) {
2
+ if (!Array.isArray(appDomains) || appDomains.length === 0) {
3
+ toast({
4
+ title: "No domains found for this app",
5
+ variant: "destructive",
6
+ });
7
+ return;
8
+ }
9
+ if (!launchableAppDomains || launchableAppDomains.length === 0) {
10
+ toast({
11
+ title: `No ${environment === "development" || environment === "test" ? "dev" : "production"} domains found for this app`,
12
+ variant: "destructive",
13
+ });
14
+ return;
15
+ }
16
+ console.assert(launchableAppDomains.length >= 1, "Expected an app domain (that meets the criteria) to have been found to launch!");
17
+ let appDomainToLaunch = undefined;
18
+ const first = launchableAppDomains[0];
19
+ if (environment === "production" && first.environment !== "production") {
20
+ throw new Error("Cannot launch a non-production URL from production auth server");
21
+ }
22
+ const redirectDomain = first.domain;
23
+ if (!redirectDomain.startsWith("http://") &&
24
+ !redirectDomain.startsWith("https://")) {
25
+ throw new Error("Invalid redirect domain loaded for app launch");
26
+ }
27
+ if (environment === "development" || environment === "test") {
28
+ appDomainToLaunch = `${redirectDomain}/auth/login`;
29
+ }
30
+ else {
31
+ appDomainToLaunch = `${redirectDomain}/auth/login`;
32
+ }
33
+ if (typeof appDomainToLaunch === "string") {
34
+ if (!appDomainToLaunch.startsWith("https://") &&
35
+ (environment === "production" || environment === "staging")) {
36
+ throw new Error("Cannot launch non-HTTPS URL in production environment");
37
+ }
38
+ else {
39
+ window.location.href = appDomainToLaunch;
40
+ }
41
+ }
42
+ else {
43
+ throw new Error("Failed to determine URL to launch app at");
44
+ }
45
+ return;
46
+ }
47
+ //# sourceMappingURL=launchWebApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchWebApp.js","sourceRoot":"","sources":["../../../src/components/AppsTable/launchWebApp.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EACV,oBAAoB,EACpB,KAAK,EACL,WAAW,GACS;IACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,KAAK,CAAC;YACJ,KAAK,EAAE,+BAA+B;YACtC,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC;YACJ,KAAK,EAAE,MAAM,WAAW,KAAK,aAAa,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,6BAA6B;YACxH,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CACZ,oBAAoB,CAAC,MAAM,IAAI,CAAC,EAChC,gFAAgF,CACjF,CAAC;IAEF,IAAI,iBAAiB,GAAuB,SAAS,CAAC;IAEtD,MAAM,KAAK,GAA6B,oBAAoB,CAAC,CAAC,CAAE,CAAC;IAEjE,IAAI,WAAW,KAAK,YAAY,IAAI,KAAK,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAW,KAAK,CAAC,MAAM,CAAC;IAE5C,IACE,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC;QACrC,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EACtC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,WAAW,KAAK,aAAa,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5D,iBAAiB,GAAG,GAAG,cAAc,aAAa,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,iBAAiB,GAAG,GAAG,cAAc,aAAa,CAAC;IACrD,CAAC;IAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC1C,IACE,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;YACzC,CAAC,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,SAAS,CAAC,EAC3D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;AACT,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SchemaVaultsApp, SchemaVaultsAppDomainRef } from "@schemavaults/app-definitions";
2
+ export interface PreloadedAppsTableDataWithDomainRefs {
3
+ apps: readonly SchemaVaultsApp[];
4
+ domains: Record<string, readonly SchemaVaultsAppDomainRef[]>;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=preloaded_apps_table_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preloaded_apps_table_data.js","sourceRoot":"","sources":["../../../src/components/AppsTable/preloaded_apps_table_data.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { useAuth } from "@schemavaults/auth-react-provider";
2
+ import { useToast } from "@schemavaults/ui";
3
+ interface SendAuthorizeFrontendAppRequestOpts {
4
+ auth: ReturnType<typeof useAuth>;
5
+ toast: ReturnType<typeof useToast>['toast'];
6
+ app_id: string;
7
+ }
8
+ export declare function sendAuthorizeFrontendAppRequest({ auth, toast, app_id }: SendAuthorizeFrontendAppRequestOpts): Promise<void>;
9
+ export {};
@@ -0,0 +1,57 @@
1
+ import { SCHEMAVAULTS_AUTH_APP_DEFINITION } from "@schemavaults/app-definitions";
2
+ export async function sendAuthorizeFrontendAppRequest({ auth, toast, app_id }) {
3
+ if (typeof app_id !== 'string')
4
+ throw new Error("Expected app to authorize's id to be a string");
5
+ const authClient = auth.ready ? auth.client.current : undefined;
6
+ if (!authClient) {
7
+ toast({
8
+ variant: 'destructive',
9
+ title: "Auth client not ready",
10
+ description: `Cannot acquire an access token yet`,
11
+ });
12
+ return;
13
+ }
14
+ let auth_access_jwt;
15
+ try {
16
+ const auth_jwt = await authClient.acquireAccessToken({
17
+ token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
18
+ audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id
19
+ });
20
+ if (!auth_jwt)
21
+ throw new Error("Failed to acquire auth access token");
22
+ auth_access_jwt = auth_jwt;
23
+ }
24
+ catch (e) {
25
+ toast({
26
+ variant: 'destructive',
27
+ title: "Error loading authentication access token",
28
+ description: e instanceof Error ? e.message : `Failed to prepare network request`,
29
+ });
30
+ return;
31
+ }
32
+ try {
33
+ const response = await fetch("/api/apps/authorize", {
34
+ method: "POST",
35
+ headers: new Headers({
36
+ 'Authorization': `Bearer ${auth_access_jwt.token}`
37
+ }),
38
+ body: JSON.stringify({ app_id })
39
+ });
40
+ if (!response.ok || response.status !== 200)
41
+ throw new Error("Received failure response from server");
42
+ }
43
+ catch (e) {
44
+ toast({
45
+ variant: 'destructive',
46
+ title: "Error sending authorize app request",
47
+ description: e instanceof Error ? e.message : `Failed to send network request`,
48
+ });
49
+ return;
50
+ }
51
+ toast({
52
+ variant: 'default',
53
+ title: "Successfully authorized application",
54
+ description: "You should now be able to log in through it"
55
+ });
56
+ }
57
+ //# sourceMappingURL=send-authorize-app-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-authorize-app-request.js","sourceRoot":"","sources":["../../../src/components/AppsTable/send-authorize-app-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAWjF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAuC;IAChH,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAEjG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC;YACJ,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,oCAAoC;SAClD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,eAA4B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC;YACnD,QAAQ,EAAE,gCAAgC,CAAC,MAAM;YACjD,QAAQ,EAAE,gCAAgC,CAAC,MAAM;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACtE,eAAe,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,2CAA2C;YAClD,WAAW,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;SAClF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qBAAqB,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,OAAO,CAAC;gBACnB,eAAe,EAAE,UAAU,eAAe,CAAC,KAAK,EAAE;aACnD,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACxG,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,qCAAqC;YAC5C,WAAW,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC;SAC/E,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,KAAK,CAAC;QACJ,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EAAE,6CAA6C;KAC3D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type SchemaVaultsAppDomainRef } from "@schemavaults/app-definitions";
2
+ import type { SWRResponse } from "swr";
3
+ export declare function getUseAppDomainsListEndpoint(app_id: string): `/api/apps/domains/${string}/list`;
4
+ export interface UseAppDomainsInput {
5
+ app_id: string;
6
+ initialData?: readonly SchemaVaultsAppDomainRef[];
7
+ }
8
+ export declare function useAppDomains(input: UseAppDomainsInput): SWRResponse<SchemaVaultsAppDomainRef[], Error>;
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS, isHardcodedAppId, SCHEMAVAULTS_AUTH_APP_DEFINITION, schemaVaultsAppDomainRefSchema } from "@schemavaults/app-definitions";
3
+ import { useAuth } from "@schemavaults/auth-react-provider";
4
+ import { toast } from "@schemavaults/ui";
5
+ import useSWR from "swr";
6
+ export function getUseAppDomainsListEndpoint(app_id) {
7
+ return `/api/apps/domains/${app_id}/list`;
8
+ }
9
+ export function useAppDomains(input) {
10
+ const app_id = typeof input === 'string' ? input : input.app_id;
11
+ const auth = useAuth();
12
+ return useSWR(getUseAppDomainsListEndpoint(app_id), async () => {
13
+ if (isHardcodedAppId(app_id)) {
14
+ const hardcoded = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) => (a.app_id === app_id));
15
+ return hardcoded;
16
+ }
17
+ if (!auth.ready) {
18
+ toast({
19
+ variant: 'destructive',
20
+ title: "Auth client not ready",
21
+ description: "Unable to acquire access token to list apps"
22
+ });
23
+ throw new Error("Auth client not ready");
24
+ }
25
+ const authClient = auth.client.current;
26
+ if (!authClient) {
27
+ toast({
28
+ variant: 'destructive',
29
+ title: "Auth client not ready",
30
+ description: "Unable to acquire access token to list apps"
31
+ });
32
+ throw new Error("Auth client not ready");
33
+ }
34
+ let auth_access_jwt;
35
+ try {
36
+ const auth_jwt = await authClient.acquireAccessToken({
37
+ token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
38
+ audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id
39
+ });
40
+ if (!auth_jwt)
41
+ throw new Error("Failed to acquire auth access token");
42
+ auth_access_jwt = auth_jwt;
43
+ }
44
+ catch (e) {
45
+ console.error("[useAppsList] ", e);
46
+ toast({
47
+ variant: 'destructive',
48
+ title: "Error loading authentication access token",
49
+ description: e instanceof Error ? e.message : `Failed to prepare network request`,
50
+ });
51
+ throw e;
52
+ }
53
+ const response = await fetch(getUseAppDomainsListEndpoint(app_id), {
54
+ method: "POST",
55
+ headers: new Headers({
56
+ "Authorization": `Bearer ${auth_access_jwt.token}`
57
+ })
58
+ });
59
+ if (!response.ok || response.status !== 200)
60
+ throw new Error(response.statusText);
61
+ const body = await response.json();
62
+ if (typeof body !== 'object')
63
+ throw new Error('Invalid response body');
64
+ if (!body.success)
65
+ throw new Error(body.message);
66
+ const parsed = schemaVaultsAppDomainRefSchema.array().parse(body.list);
67
+ return parsed;
68
+ }, {
69
+ fallbackData: typeof input === 'string' ?
70
+ undefined
71
+ :
72
+ (input.initialData ? [...input.initialData] : undefined)
73
+ });
74
+ }
75
+ //# sourceMappingURL=useAppDomains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppDomains.js","sourceRoot":"","sources":["../../../src/components/AppsTable/useAppDomains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { useToast } from "@schemavaults/ui";
2
+ import { useSWRConfig } from "swr";
3
+ import { type ListAppsQueryType, type SchemaVaultsApp } from "@schemavaults/app-definitions";
4
+ export interface UseAppsListOptions {
5
+ queryType: ListAppsQueryType;
6
+ toast: ReturnType<typeof useToast>["toast"];
7
+ initialData?: readonly SchemaVaultsApp[] | undefined;
8
+ }
9
+ export declare function clearUseAppsListCache(mutate: ReturnType<typeof useSWRConfig>["mutate"]): void;
10
+ export declare function useAppsList({ toast, queryType, initialData, }: UseAppsListOptions): import("swr").SWRResponse<{
11
+ created_at: number;
12
+ public: boolean;
13
+ hardcoded: boolean;
14
+ app_id: string;
15
+ app_name: string;
16
+ app_description: string;
17
+ web?: boolean | undefined;
18
+ }[], any, {
19
+ fallbackData: {
20
+ created_at: number;
21
+ public: boolean;
22
+ hardcoded: boolean;
23
+ app_id: string;
24
+ app_name: string;
25
+ app_description: string;
26
+ web?: boolean | undefined;
27
+ }[] | undefined;
28
+ }>;
@@ -0,0 +1,97 @@
1
+ "use client";
2
+ import { useAppEnvironment, useAuth } from "@schemavaults/auth-react-provider";
3
+ import useSWR from "swr";
4
+ import { SCHEMAVAULTS_AUTH_APP_DEFINITION, } from "@schemavaults/app-definitions";
5
+ function getAppsListEndpoint(queryType) {
6
+ const searchParams = new URLSearchParams();
7
+ searchParams.set("list_apps_query_type", queryType);
8
+ return `/api/apps?${searchParams.toString()}`;
9
+ }
10
+ export function clearUseAppsListCache(mutate) {
11
+ mutate((key) => key.startsWith("/api/apps"), undefined, {
12
+ revalidate: true,
13
+ });
14
+ }
15
+ export function useAppsList({ toast, queryType, initialData, }) {
16
+ const auth = useAuth();
17
+ const environment = useAppEnvironment();
18
+ const endpoint = getAppsListEndpoint(queryType);
19
+ return useSWR(endpoint, async () => {
20
+ if (!auth.ready) {
21
+ toast({
22
+ variant: "destructive",
23
+ title: "Auth client not ready",
24
+ description: "Unable to acquire access token to list apps",
25
+ });
26
+ throw new Error("Auth client not ready");
27
+ }
28
+ const authClient = auth.client.current;
29
+ if (!authClient) {
30
+ toast({
31
+ variant: "destructive",
32
+ title: "Auth client not ready",
33
+ description: "Unable to acquire access token to list apps",
34
+ });
35
+ throw new Error("Auth client not ready");
36
+ }
37
+ let auth_access_jwt;
38
+ try {
39
+ const auth_jwt = await authClient.acquireAccessToken({
40
+ token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
41
+ audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
42
+ });
43
+ if (!auth_jwt)
44
+ throw new Error("Failed to acquire auth access token");
45
+ auth_access_jwt = auth_jwt;
46
+ }
47
+ catch (e) {
48
+ console.error("[useAppsList] ", e);
49
+ toast({
50
+ variant: "destructive",
51
+ title: "Error loading authentication access token",
52
+ description: e instanceof Error
53
+ ? e.message
54
+ : `Failed to prepare network request`,
55
+ });
56
+ throw e;
57
+ }
58
+ try {
59
+ const origin = window.location.origin;
60
+ if (environment !== "development" && environment !== "test") {
61
+ if (!origin.startsWith("https://"))
62
+ throw new Error("Origin must be HTTPS in production");
63
+ }
64
+ if (environment === "development") {
65
+ console.log(`[useAppsList] Sending request to endpoint "${endpoint}" from origin "${origin}"`);
66
+ }
67
+ const listAppsResponse = await fetch(endpoint, {
68
+ headers: new Headers({
69
+ Authorization: `Bearer ${auth_access_jwt.token}`,
70
+ }),
71
+ method: "GET",
72
+ });
73
+ if (!listAppsResponse.ok || listAppsResponse.status !== 200)
74
+ throw new Error("Network request to list-apps endpoint failed");
75
+ const listAppsBody = await listAppsResponse.json();
76
+ if (typeof listAppsBody !== "object")
77
+ throw new Error("Failed to list apps; response not an object");
78
+ const listAppsResponseObject = listAppsBody;
79
+ if (!Object.hasOwn(listAppsResponseObject, "success") ||
80
+ !listAppsResponseObject.success) {
81
+ throw new Error("List apps response has success = false");
82
+ }
83
+ return listAppsResponseObject.list;
84
+ }
85
+ catch (error) {
86
+ toast({
87
+ variant: "destructive",
88
+ title: "Error loading list of apps",
89
+ description: `${error instanceof Error ? error.message : "An unknown error occurred."}`,
90
+ });
91
+ throw error;
92
+ }
93
+ }, {
94
+ fallbackData: initialData ? [...initialData] : undefined,
95
+ });
96
+ }
97
+ //# sourceMappingURL=useAppsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppsList.js","sourceRoot":"","sources":["../../../src/components/AppsTable/useAppsList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ReactElement } from "react";
2
+ export declare function ConnectAppToApiDialog(): ReactElement;