@workos-inc/widgets 1.9.1 → 1.10.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.
- package/CHANGELOG.md +8 -0
- package/dist/cjs/admin-portal-audit-log-streaming.client.cjs +167 -0
- package/dist/cjs/admin-portal-audit-log-streaming.client.cjs.map +1 -0
- package/dist/cjs/admin-portal-audit-log-streaming.client.d.cts +26 -0
- package/dist/cjs/api/api-provider.cjs.map +1 -1
- package/dist/cjs/api/api-provider.d.cts +1 -1
- package/dist/cjs/api/endpoint.cjs.map +1 -1
- package/dist/cjs/api/endpoint.d.cts +35 -32
- package/dist/cjs/experimental/api/fetch.cjs.map +1 -1
- package/dist/cjs/experimental/api/fetch.d.cts +35 -32
- package/dist/cjs/experimental/api/react-query.cjs.map +1 -1
- package/dist/cjs/experimental/api/react-query.d.cts +35 -32
- package/dist/cjs/experimental/api/swr.cjs.map +1 -1
- package/dist/cjs/experimental/api/swr.d.cts +35 -32
- package/dist/cjs/index.cjs +11 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +2 -0
- package/dist/cjs/lib/admin-portal-audit-log-streaming.cjs +321 -0
- package/dist/cjs/lib/admin-portal-audit-log-streaming.cjs.map +1 -0
- package/dist/cjs/lib/admin-portal-audit-log-streaming.d.cts +54 -0
- package/dist/cjs/lib/api/user.d.cts +6 -6
- package/dist/cjs/lib/api-keys/api-keys-table.cjs +2 -2
- package/dist/cjs/lib/api-keys/api-keys-table.cjs.map +1 -1
- package/dist/cjs/lib/audit-log-stream-icons.cjs +63 -0
- package/dist/cjs/lib/audit-log-stream-icons.cjs.map +1 -0
- package/dist/cjs/lib/audit-log-stream-icons.d.cts +5 -0
- package/dist/cjs/lib/identity-providers.d.cts +2 -2
- package/dist/cjs/lib/use-permissions.cjs.map +1 -1
- package/dist/cjs/lib/use-permissions.d.cts +1 -1
- package/dist/esm/admin-portal-audit-log-streaming.client.d.ts +26 -0
- package/dist/esm/admin-portal-audit-log-streaming.client.js +153 -0
- package/dist/esm/admin-portal-audit-log-streaming.client.js.map +1 -0
- package/dist/esm/api/api-provider.d.ts +1 -1
- package/dist/esm/api/api-provider.js.map +1 -1
- package/dist/esm/api/endpoint.d.ts +35 -32
- package/dist/esm/api/endpoint.js.map +1 -1
- package/dist/esm/experimental/api/fetch.d.ts +35 -32
- package/dist/esm/experimental/api/fetch.js.map +1 -1
- package/dist/esm/experimental/api/react-query.d.ts +35 -32
- package/dist/esm/experimental/api/react-query.js.map +1 -1
- package/dist/esm/experimental/api/swr.d.ts +35 -32
- package/dist/esm/experimental/api/swr.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/admin-portal-audit-log-streaming.d.ts +54 -0
- package/dist/esm/lib/admin-portal-audit-log-streaming.js +290 -0
- package/dist/esm/lib/admin-portal-audit-log-streaming.js.map +1 -0
- package/dist/esm/lib/api/user.d.ts +6 -6
- package/dist/esm/lib/api-keys/api-keys-table.js +2 -2
- package/dist/esm/lib/api-keys/api-keys-table.js.map +1 -1
- package/dist/esm/lib/audit-log-stream-icons.d.ts +5 -0
- package/dist/esm/lib/audit-log-stream-icons.js +39 -0
- package/dist/esm/lib/audit-log-stream-icons.js.map +1 -0
- package/dist/esm/lib/identity-providers.d.ts +2 -2
- package/dist/esm/lib/use-permissions.d.ts +1 -1
- package/dist/esm/lib/use-permissions.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.10.1
|
|
4
|
+
|
|
5
|
+
- Fix broken pagination in the `ApiKeys` Widget
|
|
6
|
+
|
|
7
|
+
## 1.10.0
|
|
8
|
+
|
|
9
|
+
- Add new `AdminPortalAuditLogStreaming` Widget for monitoring audit log stream status and configuration
|
|
10
|
+
|
|
3
11
|
## 1.9.1
|
|
4
12
|
|
|
5
13
|
- Fix expired admin portal link error for the `AdminPortalSsoConnection` Widget
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var admin_portal_audit_log_streaming_client_exports = {};
|
|
21
|
+
__export(admin_portal_audit_log_streaming_client_exports, {
|
|
22
|
+
AdminPortalAuditLogStreaming: () => AdminPortalAuditLogStreaming,
|
|
23
|
+
AdminPortalAuditLogStreamingButton: () => import_admin_portal_audit_log_streaming3.AdminPortalAuditLogStreamingButton,
|
|
24
|
+
AdminPortalAuditLogStreamingError: () => import_admin_portal_audit_log_streaming2.AdminPortalAuditLogStreamingError,
|
|
25
|
+
AdminPortalAuditLogStreamingLoading: () => import_admin_portal_audit_log_streaming2.AdminPortalAuditLogStreamingLoading,
|
|
26
|
+
AdminPortalAuditLogStreamingPresentational: () => import_admin_portal_audit_log_streaming3.AdminPortalAuditLogStreaming
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(admin_portal_audit_log_streaming_client_exports);
|
|
29
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
+
var import_admin_portal_audit_log_streaming = require("./lib/admin-portal-audit-log-streaming.js");
|
|
31
|
+
var import_api_provider = require("./api/api-provider.js");
|
|
32
|
+
var import_endpoint = require("./api/endpoint.js");
|
|
33
|
+
var import_widgets_context = require("./lib/widgets-context.js");
|
|
34
|
+
var import_error_boundary = require("./lib/error-boundary.js");
|
|
35
|
+
var import_admin_portal_audit_log_streaming2 = require("./lib/admin-portal-audit-log-streaming.js");
|
|
36
|
+
var import_admin_portal_audit_log_streaming3 = require("./lib/admin-portal-audit-log-streaming.js");
|
|
37
|
+
const AdminPortalAuditLogStreaming = ({ authToken, ...domProps }) => {
|
|
38
|
+
const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
|
|
39
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
40
|
+
import_error_boundary.ErrorBoundary,
|
|
41
|
+
{
|
|
42
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingError, { error, ...domProps }),
|
|
43
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
44
|
+
import_api_provider.ApiProvider,
|
|
45
|
+
{
|
|
46
|
+
widgetType: "admin-portal-audit-log-streaming",
|
|
47
|
+
authToken,
|
|
48
|
+
baseUrl,
|
|
49
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdminPortalAuditLogStreamingImpl, { ...domProps })
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
const AdminPortalAuditLogStreamingImpl = (props) => {
|
|
56
|
+
const isApiReady = (0, import_api_provider.useApiReady)();
|
|
57
|
+
const { mutate: generateAdminPortalLink, ...mutation } = (0, import_endpoint.useGenerateAdminPortalLink)({
|
|
58
|
+
mutation: {
|
|
59
|
+
onSuccess: (data) => {
|
|
60
|
+
window.open(data.link, "_blank", "noopener,noreferrer");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const adminPortalLink = mutation.data?.link ?? null;
|
|
65
|
+
const query = (0, import_endpoint.useGetAuditLogStream)({
|
|
66
|
+
query: {
|
|
67
|
+
enabled: isApiReady
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const initConfig = () => {
|
|
71
|
+
generateAdminPortalLink({
|
|
72
|
+
params: {
|
|
73
|
+
intent: "log_streams"
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
if (query.isLoading) {
|
|
78
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingLoading, { ...props });
|
|
79
|
+
}
|
|
80
|
+
if (query.isError) {
|
|
81
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingError, { error: query.error, ...props });
|
|
82
|
+
}
|
|
83
|
+
if (query.data) {
|
|
84
|
+
const stream = query.data;
|
|
85
|
+
if (!Object.hasOwn(stream, "id")) {
|
|
86
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
87
|
+
import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreaming,
|
|
88
|
+
{
|
|
89
|
+
...props,
|
|
90
|
+
connectionStatus: "NotConfigured",
|
|
91
|
+
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
+
import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingButton,
|
|
93
|
+
{
|
|
94
|
+
isPending: mutation.isPending,
|
|
95
|
+
href: adminPortalLink,
|
|
96
|
+
initConfig
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
const configuredStream = stream;
|
|
103
|
+
const statusProps = (() => {
|
|
104
|
+
switch (configuredStream.state) {
|
|
105
|
+
case "Inactive":
|
|
106
|
+
return {
|
|
107
|
+
connectionStatus: "Inactive",
|
|
108
|
+
destinationType: configuredStream.type
|
|
109
|
+
};
|
|
110
|
+
case "Active":
|
|
111
|
+
return {
|
|
112
|
+
connectionStatus: "Active",
|
|
113
|
+
destinationType: configuredStream.type,
|
|
114
|
+
lastSyncedEventId: configuredStream.lastSyncedEventId
|
|
115
|
+
};
|
|
116
|
+
case "Error":
|
|
117
|
+
return {
|
|
118
|
+
connectionStatus: "Error",
|
|
119
|
+
destinationType: configuredStream.type,
|
|
120
|
+
lastSyncedEventId: configuredStream.lastSyncedEventId
|
|
121
|
+
};
|
|
122
|
+
case "Invalid":
|
|
123
|
+
return {
|
|
124
|
+
connectionStatus: "Error",
|
|
125
|
+
destinationType: configuredStream.type,
|
|
126
|
+
lastSyncedEventId: configuredStream.lastSyncedEventId
|
|
127
|
+
};
|
|
128
|
+
default:
|
|
129
|
+
return {
|
|
130
|
+
connectionStatus: "Inactive",
|
|
131
|
+
destinationType: configuredStream.type
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
})();
|
|
135
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
136
|
+
import_error_boundary.ErrorBoundary,
|
|
137
|
+
{
|
|
138
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingError, { error, ...props }),
|
|
139
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
140
|
+
import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreaming,
|
|
141
|
+
{
|
|
142
|
+
...props,
|
|
143
|
+
...statusProps,
|
|
144
|
+
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
145
|
+
import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingButton,
|
|
146
|
+
{
|
|
147
|
+
isPending: mutation.isPending,
|
|
148
|
+
href: adminPortalLink,
|
|
149
|
+
initConfig
|
|
150
|
+
}
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_audit_log_streaming.AdminPortalAuditLogStreamingLoading, { ...props });
|
|
158
|
+
};
|
|
159
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
160
|
+
0 && (module.exports = {
|
|
161
|
+
AdminPortalAuditLogStreaming,
|
|
162
|
+
AdminPortalAuditLogStreamingButton,
|
|
163
|
+
AdminPortalAuditLogStreamingError,
|
|
164
|
+
AdminPortalAuditLogStreamingLoading,
|
|
165
|
+
AdminPortalAuditLogStreamingPresentational
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=admin-portal-audit-log-streaming.client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/admin-portal-audit-log-streaming.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AdminPortalAuditLogStreamingError,\n AdminPortalAuditLogStreamingLoading,\n AdminPortalAuditLogStreaming as AdminPortalAuditLogStreamingPresentational,\n AdminPortalAuditLogStreamingButton,\n} from \"./lib/admin-portal-audit-log-streaming.js\";\nimport type { AdminPortalAuditLogStreamingStatusProps } from \"./lib/admin-portal-audit-log-streaming.js\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport {\n useGenerateAdminPortalLink,\n useGetAuditLogStream,\n type AuditLogStreamJSON,\n} from \"./api/endpoint.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface AdminPortalAuditLogStreamingProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst AdminPortalAuditLogStreaming: React.FC<\n AdminPortalAuditLogStreamingProps\n> = ({ authToken, ...domProps }) => {\n const baseUrl = useWorkOsApiUrl();\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalAuditLogStreamingError error={error} {...domProps} />\n )}\n >\n <ApiProvider\n widgetType=\"admin-portal-audit-log-streaming\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <AdminPortalAuditLogStreamingImpl {...domProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst AdminPortalAuditLogStreamingImpl = (props: WidgetRootDomProps) => {\n const isApiReady = useApiReady();\n\n const { mutate: generateAdminPortalLink, ...mutation } =\n useGenerateAdminPortalLink({\n mutation: {\n onSuccess: (data) => {\n window.open(data.link, \"_blank\", \"noopener,noreferrer\");\n },\n },\n });\n\n const adminPortalLink = mutation.data?.link ?? null;\n\n const query = useGetAuditLogStream({\n query: {\n enabled: isApiReady,\n },\n });\n\n const initConfig = () => {\n generateAdminPortalLink({\n params: {\n intent: \"log_streams\",\n },\n });\n };\n\n if (query.isLoading) {\n return <AdminPortalAuditLogStreamingLoading {...props} />;\n }\n\n if (query.isError) {\n return <AdminPortalAuditLogStreamingError error={query.error} {...props} />;\n }\n\n if (query.data) {\n const stream = query.data;\n\n // Check if stream is configured (has id property)\n // API returns empty object {} when no stream is configured\n if (!Object.hasOwn(stream, \"id\")) {\n return (\n <AdminPortalAuditLogStreamingPresentational\n {...props}\n connectionStatus=\"NotConfigured\"\n adminPortalOpenButton={\n <AdminPortalAuditLogStreamingButton\n isPending={mutation.isPending}\n href={adminPortalLink}\n initConfig={initConfig}\n />\n }\n />\n );\n }\n\n // Type assertion: we've confirmed stream has id, so it's AuditLogStreamJSON\n const configuredStream = stream as AuditLogStreamJSON;\n\n // Map API state to widget status\n const statusProps: AdminPortalAuditLogStreamingStatusProps = (() => {\n switch (configuredStream.state) {\n case \"Inactive\":\n return {\n connectionStatus: \"Inactive\",\n destinationType: configuredStream.type,\n };\n case \"Active\":\n return {\n connectionStatus: \"Active\",\n destinationType: configuredStream.type,\n lastSyncedEventId: configuredStream.lastSyncedEventId,\n };\n case \"Error\":\n return {\n connectionStatus: \"Error\",\n destinationType: configuredStream.type,\n lastSyncedEventId: configuredStream.lastSyncedEventId,\n };\n case \"Invalid\":\n return {\n connectionStatus: \"Error\",\n destinationType: configuredStream.type,\n lastSyncedEventId: configuredStream.lastSyncedEventId,\n };\n default:\n // Fallback\n return {\n connectionStatus: \"Inactive\",\n destinationType: configuredStream.type,\n };\n }\n })();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalAuditLogStreamingError error={error} {...props} />\n )}\n >\n <AdminPortalAuditLogStreamingPresentational\n {...props}\n {...statusProps}\n adminPortalOpenButton={\n <AdminPortalAuditLogStreamingButton\n isPending={mutation.isPending}\n href={adminPortalLink}\n initConfig={initConfig}\n />\n }\n />\n </ErrorBoundary>\n );\n }\n\n return <AdminPortalAuditLogStreamingLoading {...props} />;\n};\n\nexport { AdminPortalAuditLogStreaming };\nexport type { AdminPortalAuditLogStreamingProps };\nexport {\n AdminPortalAuditLogStreamingLoading,\n AdminPortalAuditLogStreamingError,\n} from \"./lib/admin-portal-audit-log-streaming.js\";\nexport {\n AdminPortalAuditLogStreaming as AdminPortalAuditLogStreamingPresentational,\n AdminPortalAuditLogStreamingButton,\n type AdminPortalAuditLogStreamingStatusProps,\n} from \"./lib/admin-portal-audit-log-streaming.js\";\n"],"mappings":"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","names":["import_admin_portal_audit_log_streaming","AdminPortalAuditLogStreamingPresentational"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { AuthToken } from './api/api-provider.cjs';
|
|
3
|
+
import { WidgetRootDomProps } from './lib/utils.cjs';
|
|
4
|
+
export { AdminPortalAuditLogStreamingButton, AdminPortalAuditLogStreamingError, AdminPortalAuditLogStreamingLoading, AdminPortalAuditLogStreaming as AdminPortalAuditLogStreamingPresentational, AdminPortalAuditLogStreamingStatusProps } from './lib/admin-portal-audit-log-streaming.cjs';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import './api/endpoint.cjs';
|
|
7
|
+
import '@tanstack/react-query';
|
|
8
|
+
import './api/widgets-api-client.cjs';
|
|
9
|
+
import './lib/elements.cjs';
|
|
10
|
+
import '@radix-ui/themes';
|
|
11
|
+
import '@radix-ui/themes/props';
|
|
12
|
+
import './dialog-C15qCLN3.cjs';
|
|
13
|
+
import '@radix-ui/themes/components/dialog';
|
|
14
|
+
import './alert-dialog-BlG3_awx.cjs';
|
|
15
|
+
import '@radix-ui/themes/components/alert-dialog';
|
|
16
|
+
import './dropdown-menu-BQ5LtvdR.cjs';
|
|
17
|
+
import '@radix-ui/themes/components/dropdown-menu';
|
|
18
|
+
import './select-KR89Qnvm.cjs';
|
|
19
|
+
import '@radix-ui/themes/components/select';
|
|
20
|
+
|
|
21
|
+
interface AdminPortalAuditLogStreamingProps extends WidgetRootDomProps {
|
|
22
|
+
authToken: AuthToken;
|
|
23
|
+
}
|
|
24
|
+
declare const AdminPortalAuditLogStreaming: React.FC<AdminPortalAuditLogStreamingProps>;
|
|
25
|
+
|
|
26
|
+
export { AdminPortalAuditLogStreaming, type AdminPortalAuditLogStreamingProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/api-provider.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport * as React from \"react\";\nimport { useIsHydrated } from \"../lib/use-is-hydrated.js\";\nimport { getClaims } from \"./utils.js\";\n\nexport type WidgetType =\n | \"admin-portal-domain-verification\"\n | \"user-management\"\n | \"organization-switcher\"\n | \"user-sessions\"\n | \"user-security\"\n | \"user-profile\"\n | \"admin-portal-sso-connection\"\n | \"api-keys\"\n | \"pipes\"\n | \"directory-sync\";\n\nexport type AuthToken = string | (() => Promise<string>);\n\ninterface ElevatedAccess {\n token: string;\n expiresAt: string;\n}\n\ninterface ApiConfig {\n authToken: string | undefined;\n permissions: string[] | undefined;\n baseUrl: string;\n widgetType: WidgetType;\n elevatedAccess?: ElevatedAccess;\n setElevatedAccess: (elevatedAccess?: ElevatedAccess) => void;\n}\n\nconst ApiContext = React.createContext<ApiConfig | undefined>(undefined);\n\ninterface ApiProviderProps {\n authToken: AuthToken;\n baseUrl: string;\n children: React.ReactNode;\n widgetType: WidgetType;\n}\n\nexport const ApiProvider = ({\n authToken,\n baseUrl,\n children,\n widgetType,\n}: ApiProviderProps) => {\n const authTokenQuery = useQuery({\n initialData:\n typeof authToken === \"string\"\n ? {\n authToken,\n permissions: getClaims(authToken).permissions,\n }\n : undefined,\n queryFn: async () => {\n const resolvedToken =\n typeof authToken === \"string\" ? authToken : await authToken();\n\n return {\n authToken: resolvedToken,\n permissions: getClaims(resolvedToken).permissions,\n };\n },\n queryKey: [\"authToken\", widgetType],\n });\n\n const [elevatedAccess, setElevatedAccess] = React.useState<ElevatedAccess>();\n const elevatedAccessTimeout = React.useRef<number | undefined>(undefined);\n\n // This effect manages the expiration of elevated access tokens\n // When an elevated access token is present, it checks every 30 seconds if the token has expired\n // If the token has expired (current time > expiration time), it clears the elevated access\n React.useEffect(() => {\n if (elevatedAccessTimeout.current) {\n window.clearInterval(elevatedAccessTimeout.current);\n }\n\n if (elevatedAccess) {\n elevatedAccessTimeout.current = window.setInterval(() => {\n const now = new Date();\n const expiresAtDate = new Date(elevatedAccess.expiresAt);\n\n // Reset the elevated access if it has expired\n if (now > expiresAtDate) {\n setElevatedAccess(undefined);\n }\n }, 30_000); // every 30 seconds\n }\n\n return () => {\n if (elevatedAccessTimeout.current) {\n window.clearInterval(elevatedAccessTimeout.current);\n }\n };\n }, [elevatedAccess]);\n\n const value = React.useMemo(\n () => ({\n authToken: authTokenQuery.data?.authToken,\n permissions: authTokenQuery.data?.permissions,\n baseUrl,\n elevatedAccess,\n setElevatedAccess,\n widgetType,\n }),\n [\n authTokenQuery.data,\n baseUrl,\n elevatedAccess,\n setElevatedAccess,\n widgetType,\n ],\n );\n\n return <ApiContext.Provider value={value}>{children}</ApiContext.Provider>;\n};\n\nexport const useApi = () => {\n const context = React.useContext(ApiContext);\n\n if (context === undefined) {\n throw new Error(\"useApi must be used within an ApiProvider\");\n }\n\n return context;\n};\n\nexport const useElevatedAccessToken = () => {\n const { elevatedAccess, setElevatedAccess } = useApi();\n\n return { elevatedAccess, setElevatedAccess };\n};\n\nexport const useApiReady = () => {\n const { authToken } = useApi();\n const isHydrated = useIsHydrated();\n\n return isHydrated && authToken !== undefined;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/api/api-provider.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport * as React from \"react\";\nimport { useIsHydrated } from \"../lib/use-is-hydrated.js\";\nimport { getClaims } from \"./utils.js\";\n\nexport type WidgetType =\n | \"admin-portal-audit-log-streaming\"\n | \"admin-portal-domain-verification\"\n | \"user-management\"\n | \"organization-switcher\"\n | \"user-sessions\"\n | \"user-security\"\n | \"user-profile\"\n | \"admin-portal-sso-connection\"\n | \"api-keys\"\n | \"pipes\"\n | \"directory-sync\";\n\nexport type AuthToken = string | (() => Promise<string>);\n\ninterface ElevatedAccess {\n token: string;\n expiresAt: string;\n}\n\ninterface ApiConfig {\n authToken: string | undefined;\n permissions: string[] | undefined;\n baseUrl: string;\n widgetType: WidgetType;\n elevatedAccess?: ElevatedAccess;\n setElevatedAccess: (elevatedAccess?: ElevatedAccess) => void;\n}\n\nconst ApiContext = React.createContext<ApiConfig | undefined>(undefined);\n\ninterface ApiProviderProps {\n authToken: AuthToken;\n baseUrl: string;\n children: React.ReactNode;\n widgetType: WidgetType;\n}\n\nexport const ApiProvider = ({\n authToken,\n baseUrl,\n children,\n widgetType,\n}: ApiProviderProps) => {\n const authTokenQuery = useQuery({\n initialData:\n typeof authToken === \"string\"\n ? {\n authToken,\n permissions: getClaims(authToken).permissions,\n }\n : undefined,\n queryFn: async () => {\n const resolvedToken =\n typeof authToken === \"string\" ? authToken : await authToken();\n\n return {\n authToken: resolvedToken,\n permissions: getClaims(resolvedToken).permissions,\n };\n },\n queryKey: [\"authToken\", widgetType],\n });\n\n const [elevatedAccess, setElevatedAccess] = React.useState<ElevatedAccess>();\n const elevatedAccessTimeout = React.useRef<number | undefined>(undefined);\n\n // This effect manages the expiration of elevated access tokens\n // When an elevated access token is present, it checks every 30 seconds if the token has expired\n // If the token has expired (current time > expiration time), it clears the elevated access\n React.useEffect(() => {\n if (elevatedAccessTimeout.current) {\n window.clearInterval(elevatedAccessTimeout.current);\n }\n\n if (elevatedAccess) {\n elevatedAccessTimeout.current = window.setInterval(() => {\n const now = new Date();\n const expiresAtDate = new Date(elevatedAccess.expiresAt);\n\n // Reset the elevated access if it has expired\n if (now > expiresAtDate) {\n setElevatedAccess(undefined);\n }\n }, 30_000); // every 30 seconds\n }\n\n return () => {\n if (elevatedAccessTimeout.current) {\n window.clearInterval(elevatedAccessTimeout.current);\n }\n };\n }, [elevatedAccess]);\n\n const value = React.useMemo(\n () => ({\n authToken: authTokenQuery.data?.authToken,\n permissions: authTokenQuery.data?.permissions,\n baseUrl,\n elevatedAccess,\n setElevatedAccess,\n widgetType,\n }),\n [\n authTokenQuery.data,\n baseUrl,\n elevatedAccess,\n setElevatedAccess,\n widgetType,\n ],\n );\n\n return <ApiContext.Provider value={value}>{children}</ApiContext.Provider>;\n};\n\nexport const useApi = () => {\n const context = React.useContext(ApiContext);\n\n if (context === undefined) {\n throw new Error(\"useApi must be used within an ApiProvider\");\n }\n\n return context;\n};\n\nexport const useElevatedAccessToken = () => {\n const { elevatedAccess, setElevatedAccess } = useApi();\n\n return { elevatedAccess, setElevatedAccess };\n};\n\nexport const useApiReady = () => {\n const { authToken } = useApi();\n const isHydrated = useIsHydrated();\n\n return isHydrated && authToken !== undefined;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqHS;AArHT,yBAAyB;AACzB,YAAuB;AACvB,6BAA8B;AAC9B,mBAA0B;AA+B1B,MAAM,aAAa,MAAM,cAAqC,MAAS;AAShE,MAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,QAAM,qBAAiB,6BAAS;AAAA,IAC9B,aACE,OAAO,cAAc,WACjB;AAAA,MACE;AAAA,MACA,iBAAa,wBAAU,SAAS,EAAE;AAAA,IACpC,IACA;AAAA,IACN,SAAS,YAAY;AACnB,YAAM,gBACJ,OAAO,cAAc,WAAW,YAAY,MAAM,UAAU;AAE9D,aAAO;AAAA,QACL,WAAW;AAAA,QACX,iBAAa,wBAAU,aAAa,EAAE;AAAA,MACxC;AAAA,IACF;AAAA,IACA,UAAU,CAAC,aAAa,UAAU;AAAA,EACpC,CAAC;AAED,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAyB;AAC3E,QAAM,wBAAwB,MAAM,OAA2B,MAAS;AAKxE,QAAM,UAAU,MAAM;AACpB,QAAI,sBAAsB,SAAS;AACjC,aAAO,cAAc,sBAAsB,OAAO;AAAA,IACpD;AAEA,QAAI,gBAAgB;AAClB,4BAAsB,UAAU,OAAO,YAAY,MAAM;AACvD,cAAM,MAAM,oBAAI,KAAK;AACrB,cAAM,gBAAgB,IAAI,KAAK,eAAe,SAAS;AAGvD,YAAI,MAAM,eAAe;AACvB,4BAAkB,MAAS;AAAA,QAC7B;AAAA,MACF,GAAG,GAAM;AAAA,IACX;AAEA,WAAO,MAAM;AACX,UAAI,sBAAsB,SAAS;AACjC,eAAO,cAAc,sBAAsB,OAAO;AAAA,MACpD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL,WAAW,eAAe,MAAM;AAAA,MAChC,aAAa,eAAe,MAAM;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,WAAW,UAAX,EAAoB,OAAe,UAAS;AACtD;AAEO,MAAM,SAAS,MAAM;AAC1B,QAAM,UAAU,MAAM,WAAW,UAAU;AAE3C,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AAEA,SAAO;AACT;AAEO,MAAM,yBAAyB,MAAM;AAC1C,QAAM,EAAE,gBAAgB,kBAAkB,IAAI,OAAO;AAErD,SAAO,EAAE,gBAAgB,kBAAkB;AAC7C;AAEO,MAAM,cAAc,MAAM;AAC/B,QAAM,EAAE,UAAU,IAAI,OAAO;AAC7B,QAAM,iBAAa,sCAAc;AAEjC,SAAO,cAAc,cAAc;AACrC;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
|
-
type WidgetType = "admin-portal-domain-verification" | "user-management" | "organization-switcher" | "user-sessions" | "user-security" | "user-profile" | "admin-portal-sso-connection" | "api-keys" | "pipes" | "directory-sync";
|
|
4
|
+
type WidgetType = "admin-portal-audit-log-streaming" | "admin-portal-domain-verification" | "user-management" | "organization-switcher" | "user-sessions" | "user-security" | "user-profile" | "admin-portal-sso-connection" | "api-keys" | "pipes" | "directory-sync";
|
|
5
5
|
type AuthToken = string | (() => Promise<string>);
|
|
6
6
|
interface ElevatedAccess {
|
|
7
7
|
token: string;
|