@workos-inc/widgets 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -8
- package/dist/cjs/admin-portal-domain-verification.client.cjs +34 -20
- package/dist/cjs/admin-portal-domain-verification.client.cjs.map +1 -1
- package/dist/cjs/admin-portal-domain-verification.client.d.cts +3 -2
- package/dist/cjs/{admin-portal-sso-connection-client.cjs → admin-portal-sso-connection.client.cjs} +61 -35
- package/dist/cjs/admin-portal-sso-connection.client.cjs.map +1 -0
- package/dist/cjs/admin-portal-sso-connection.client.d.cts +16 -0
- package/dist/cjs/api/api-provider.cjs +27 -19
- package/dist/cjs/api/api-provider.cjs.map +1 -1
- package/dist/cjs/api/api-provider.d.cts +5 -4
- package/dist/cjs/api/endpoint.cjs +62 -2
- package/dist/cjs/api/endpoint.cjs.map +1 -1
- package/dist/cjs/api/endpoint.d.cts +62 -1
- package/dist/cjs/api/utils.cjs +10 -0
- package/dist/cjs/api/utils.cjs.map +1 -1
- package/dist/cjs/api/utils.d.cts +7 -2
- package/dist/cjs/api/widgets-api-client.cjs +11 -5
- package/dist/cjs/api/widgets-api-client.cjs.map +1 -1
- package/dist/cjs/{api-keys-client.cjs → api-keys.client.cjs} +45 -33
- package/dist/cjs/api-keys.client.cjs.map +1 -0
- package/dist/cjs/api-keys.client.d.cts +15 -0
- package/dist/cjs/index.cjs +9 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +6 -2
- package/dist/cjs/lib/add-mfa-dialog.cjs +1 -1
- package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -1
- package/dist/cjs/lib/admin-portal-domain-verification.cjs +18 -12
- package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -1
- package/dist/cjs/lib/admin-portal-domain-verification.d.cts +10 -6
- package/dist/cjs/lib/admin-portal-sso-connection.cjs +84 -106
- package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -1
- package/dist/cjs/lib/admin-portal-sso-connection.d.cts +13 -6
- package/dist/cjs/lib/api-keys/api-keys.cjs +70 -66
- package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-keys.d.cts +16 -8
- package/dist/cjs/lib/card-list.cjs.map +1 -0
- package/dist/cjs/lib/constants.cjs +5 -2
- package/dist/cjs/lib/constants.cjs.map +1 -1
- package/dist/cjs/lib/constants.d.cts +2 -1
- package/dist/cjs/lib/elevated-access.cjs.map +1 -1
- package/dist/cjs/lib/empty-state.cjs +24 -8
- package/dist/cjs/lib/empty-state.cjs.map +1 -1
- package/dist/cjs/lib/empty-state.d.cts +6 -2
- package/dist/cjs/lib/errors.cjs +1 -1
- package/dist/cjs/lib/errors.cjs.map +1 -1
- package/dist/cjs/lib/generic-error.cjs +56 -58
- package/dist/cjs/lib/generic-error.cjs.map +1 -1
- package/dist/cjs/lib/generic-error.d.cts +10 -3
- package/dist/cjs/lib/identity-providers.cjs +2 -1
- package/dist/cjs/lib/identity-providers.cjs.map +1 -1
- package/dist/cjs/lib/identity-providers.d.cts +2 -2
- package/dist/cjs/lib/oauth-icons.cjs +12 -7
- package/dist/cjs/lib/oauth-icons.cjs.map +1 -1
- package/dist/cjs/lib/oauth-icons.d.cts +7 -3
- package/dist/cjs/lib/organization-switcher.cjs +62 -9
- package/dist/cjs/lib/organization-switcher.cjs.map +1 -1
- package/dist/cjs/lib/organization-switcher.d.cts +12 -9
- package/dist/cjs/lib/otp-input.cjs +1 -1
- package/dist/cjs/lib/otp-input.cjs.map +1 -1
- package/dist/cjs/lib/pipes.cjs +343 -0
- package/dist/cjs/lib/pipes.cjs.map +1 -0
- package/dist/cjs/lib/pipes.d.cts +19 -0
- package/dist/cjs/lib/provider-icon.cjs +0 -6
- package/dist/cjs/lib/provider-icon.cjs.map +1 -1
- package/dist/cjs/lib/provider-icon.d.cts +4 -1
- package/dist/cjs/lib/save-button.cjs.map +1 -1
- package/dist/cjs/lib/use-permissions.cjs +7 -14
- package/dist/cjs/lib/use-permissions.cjs.map +1 -1
- package/dist/cjs/lib/use-permissions.d.cts +1 -1
- package/dist/cjs/lib/user-profile.cjs +77 -83
- package/dist/cjs/lib/user-profile.cjs.map +1 -1
- package/dist/cjs/lib/user-profile.d.cts +11 -7
- package/dist/cjs/lib/user-security.cjs +31 -25
- package/dist/cjs/lib/user-security.cjs.map +1 -1
- package/dist/cjs/lib/user-security.d.cts +10 -7
- package/dist/cjs/lib/user-sessions.cjs +20 -10
- package/dist/cjs/lib/user-sessions.cjs.map +1 -1
- package/dist/cjs/lib/user-sessions.d.cts +10 -6
- package/dist/cjs/lib/users-management.cjs +224 -216
- package/dist/cjs/lib/users-management.cjs.map +1 -1
- package/dist/cjs/lib/users-management.d.cts +10 -7
- package/dist/cjs/lib/utils.cjs +43 -0
- package/dist/cjs/lib/utils.cjs.map +1 -1
- package/dist/cjs/lib/utils.d.cts +29 -2
- package/dist/cjs/organization-switcher.client.cjs +47 -20
- package/dist/cjs/organization-switcher.client.cjs.map +1 -1
- package/dist/cjs/organization-switcher.client.d.cts +2 -1
- package/dist/cjs/pipes.client.cjs +64 -0
- package/dist/cjs/pipes.client.cjs.map +1 -0
- package/dist/cjs/pipes.client.d.cts +15 -0
- package/dist/cjs/user-profile.client.cjs +29 -16
- package/dist/cjs/user-profile.client.cjs.map +1 -1
- package/dist/cjs/user-profile.client.d.cts +4 -3
- package/dist/cjs/user-security.client.cjs +32 -14
- package/dist/cjs/user-security.client.cjs.map +1 -1
- package/dist/cjs/user-security.client.d.cts +3 -2
- package/dist/cjs/user-sessions.client.cjs +42 -28
- package/dist/cjs/user-sessions.client.cjs.map +1 -1
- package/dist/cjs/user-sessions.client.d.cts +4 -2
- package/dist/cjs/users-management.client.cjs +38 -27
- package/dist/cjs/users-management.client.cjs.map +1 -1
- package/dist/cjs/users-management.client.d.cts +3 -2
- package/dist/cjs/workos-widgets.client.cjs +7 -12
- package/dist/cjs/workos-widgets.client.cjs.map +1 -1
- package/dist/css/lib/provider-icon.css +16 -11
- package/dist/esm/admin-portal-domain-verification.client.d.ts +3 -2
- package/dist/esm/admin-portal-domain-verification.client.js +34 -21
- package/dist/esm/admin-portal-domain-verification.client.js.map +1 -1
- package/dist/esm/admin-portal-sso-connection.client.d.ts +16 -0
- package/dist/esm/{admin-portal-sso-connection-client.js → admin-portal-sso-connection.client.js} +61 -36
- package/dist/esm/admin-portal-sso-connection.client.js.map +1 -0
- package/dist/esm/api/api-provider.d.ts +5 -4
- package/dist/esm/api/api-provider.js +26 -19
- package/dist/esm/api/api-provider.js.map +1 -1
- package/dist/esm/api/endpoint.d.ts +62 -1
- package/dist/esm/api/endpoint.js +56 -2
- package/dist/esm/api/endpoint.js.map +1 -1
- package/dist/esm/api/utils.d.ts +7 -2
- package/dist/esm/api/utils.js +9 -0
- package/dist/esm/api/utils.js.map +1 -1
- package/dist/esm/api/widgets-api-client.js +11 -5
- package/dist/esm/api/widgets-api-client.js.map +1 -1
- package/dist/esm/api-keys.client.d.ts +15 -0
- package/dist/esm/api-keys.client.js +75 -0
- package/dist/esm/api-keys.client.js.map +1 -0
- package/dist/esm/index.d.ts +6 -2
- package/dist/esm/index.js +9 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/add-mfa-dialog.js +1 -1
- package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/admin-portal-domain-verification.d.ts +10 -6
- package/dist/esm/lib/admin-portal-domain-verification.js +18 -12
- package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
- package/dist/esm/lib/admin-portal-sso-connection.d.ts +13 -6
- package/dist/esm/lib/admin-portal-sso-connection.js +88 -107
- package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
- package/dist/esm/lib/api-keys/api-keys.d.ts +16 -8
- package/dist/esm/lib/api-keys/api-keys.js +69 -54
- package/dist/esm/lib/api-keys/api-keys.js.map +1 -1
- package/dist/esm/lib/card-list.js.map +1 -0
- package/dist/esm/lib/constants.d.ts +2 -1
- package/dist/esm/lib/constants.js +3 -1
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/elevated-access.js.map +1 -1
- package/dist/esm/lib/empty-state.d.ts +6 -2
- package/dist/esm/lib/empty-state.js +24 -8
- package/dist/esm/lib/empty-state.js.map +1 -1
- package/dist/esm/lib/errors.js +1 -1
- package/dist/esm/lib/errors.js.map +1 -1
- package/dist/esm/lib/generic-error.d.ts +10 -3
- package/dist/esm/lib/generic-error.js +56 -60
- package/dist/esm/lib/generic-error.js.map +1 -1
- package/dist/esm/lib/identity-providers.d.ts +2 -2
- package/dist/esm/lib/identity-providers.js +2 -1
- package/dist/esm/lib/identity-providers.js.map +1 -1
- package/dist/esm/lib/oauth-icons.d.ts +7 -3
- package/dist/esm/lib/oauth-icons.js +11 -6
- package/dist/esm/lib/oauth-icons.js.map +1 -1
- package/dist/esm/lib/organization-switcher.d.ts +12 -9
- package/dist/esm/lib/organization-switcher.js +54 -9
- package/dist/esm/lib/organization-switcher.js.map +1 -1
- package/dist/esm/lib/otp-input.js +1 -1
- package/dist/esm/lib/otp-input.js.map +1 -1
- package/dist/esm/lib/pipes.d.ts +19 -0
- package/dist/esm/lib/pipes.js +334 -0
- package/dist/esm/lib/pipes.js.map +1 -0
- package/dist/esm/lib/provider-icon.d.ts +4 -1
- package/dist/esm/lib/provider-icon.js +0 -8
- package/dist/esm/lib/provider-icon.js.map +1 -1
- package/dist/esm/lib/save-button.js.map +1 -1
- package/dist/esm/lib/use-permissions.d.ts +1 -1
- package/dist/esm/lib/use-permissions.js +8 -15
- package/dist/esm/lib/use-permissions.js.map +1 -1
- package/dist/esm/lib/user-profile.d.ts +11 -7
- package/dist/esm/lib/user-profile.js +82 -75
- package/dist/esm/lib/user-profile.js.map +1 -1
- package/dist/esm/lib/user-security.d.ts +10 -7
- package/dist/esm/lib/user-security.js +35 -26
- package/dist/esm/lib/user-security.js.map +1 -1
- package/dist/esm/lib/user-sessions.d.ts +10 -6
- package/dist/esm/lib/user-sessions.js +21 -10
- package/dist/esm/lib/user-sessions.js.map +1 -1
- package/dist/esm/lib/users-management.d.ts +10 -7
- package/dist/esm/lib/users-management.js +230 -217
- package/dist/esm/lib/users-management.js.map +1 -1
- package/dist/esm/lib/utils.d.ts +29 -2
- package/dist/esm/lib/utils.js +46 -1
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/organization-switcher.client.d.ts +2 -1
- package/dist/esm/organization-switcher.client.js +47 -21
- package/dist/esm/organization-switcher.client.js.map +1 -1
- package/dist/esm/pipes.client.d.ts +15 -0
- package/dist/esm/pipes.client.js +42 -0
- package/dist/esm/pipes.client.js.map +1 -0
- package/dist/esm/user-profile.client.d.ts +4 -3
- package/dist/esm/user-profile.client.js +29 -17
- package/dist/esm/user-profile.client.js.map +1 -1
- package/dist/esm/user-security.client.d.ts +3 -2
- package/dist/esm/user-security.client.js +32 -15
- package/dist/esm/user-security.client.js.map +1 -1
- package/dist/esm/user-sessions.client.d.ts +4 -2
- package/dist/esm/user-sessions.client.js +43 -30
- package/dist/esm/user-sessions.client.js.map +1 -1
- package/dist/esm/users-management.client.d.ts +3 -2
- package/dist/esm/users-management.client.js +38 -28
- package/dist/esm/users-management.client.js.map +1 -1
- package/dist/esm/workos-widgets.client.js +7 -12
- package/dist/esm/workos-widgets.client.js.map +1 -1
- package/package.json +20 -10
- package/dist/cjs/admin-portal-sso-connection-client.cjs.map +0 -1
- package/dist/cjs/admin-portal-sso-connection-client.d.cts +0 -12
- package/dist/cjs/api-keys-client.cjs.map +0 -1
- package/dist/cjs/api-keys-client.d.cts +0 -10
- package/dist/cjs/card-list.cjs.map +0 -1
- package/dist/esm/admin-portal-sso-connection-client.d.ts +0 -12
- package/dist/esm/admin-portal-sso-connection-client.js.map +0 -1
- package/dist/esm/api-keys-client.d.ts +0 -10
- package/dist/esm/api-keys-client.js +0 -65
- package/dist/esm/api-keys-client.js.map +0 -1
- package/dist/esm/card-list.js.map +0 -1
- /package/dist/cjs/{card-list.cjs → lib/card-list.cjs} +0 -0
- /package/dist/cjs/{card-list.d.cts → lib/card-list.d.cts} +0 -0
- /package/dist/esm/{card-list.d.ts → lib/card-list.d.ts} +0 -0
- /package/dist/esm/{card-list.js → lib/card-list.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.6.0
|
|
4
|
+
|
|
5
|
+
- Add new `Pipes` Widget. See the [Pipes documentation](https://workos.com/docs/authkit/pipes) for more information.
|
|
6
|
+
- Unify DOM attributes for all Widgets' root elements for easier styling and debugging.
|
|
7
|
+
- `.woswidgets-widget`: Applies to the root element of any Widget
|
|
8
|
+
- `[data-woswidgets-widget-id="<WIDGET_ID>"]`: The ID of the Widget. The Widget ID is the kebab-cased version of the Widget's component name (e.g. `AdminPortalDomainVerification` > `admin-portal-domain-verification`)
|
|
9
|
+
- `[data-woswidgets-widget-state="<'resolved' | 'loading' | 'error'>"]`: The current state of the Widget's data loading
|
|
10
|
+
- Fix caching bug with Widgets that share access tokens
|
|
11
|
+
- Expose `ApiKeys` and `AdminPortalSsoConnection` Widgets as subpath exports
|
|
12
|
+
- Remove unnecessary CSS style overrides for the `AdminPortalSsoConnection` Widget
|
|
13
|
+
|
|
14
|
+
## 1.5.1
|
|
15
|
+
|
|
16
|
+
- Throw an `IncorrectPermissionsError` when a fetch returns a 403, consolidate error messages
|
|
17
|
+
- Add `data-woswidgets-widget-id` to `AdminPortalDomainVerification` empty state
|
|
18
|
+
- Resolve access token during requests to fix caching issues
|
|
19
|
+
|
|
20
|
+
## 1.5.0
|
|
21
|
+
|
|
22
|
+
- Release `ApiKeys` Widget
|
|
23
|
+
- Add missing identity provider icons
|
|
24
|
+
|
|
3
25
|
## 1.4.0
|
|
4
26
|
|
|
5
|
-
- Add support for publishing multiple roles in the
|
|
6
|
-
- Export prop types and loading components for all
|
|
27
|
+
- Add support for publishing multiple roles in the `UsersManagement` Widget
|
|
28
|
+
- Export prop types and loading components for all Widgets
|
|
7
29
|
|
|
8
30
|
## 1.3.1
|
|
9
31
|
|
|
@@ -11,10 +33,10 @@
|
|
|
11
33
|
|
|
12
34
|
## 1.3.0
|
|
13
35
|
|
|
14
|
-
- Create new
|
|
36
|
+
- Create new `AdminPortalDomainVerification` Widget
|
|
15
37
|
- Handle user location showing as undefined
|
|
16
|
-
- Add
|
|
17
|
-
- Handle incorrect
|
|
38
|
+
- Add `AdminPortalSsoConnection` Widget
|
|
39
|
+
- Handle incorrect Widget permissions
|
|
18
40
|
|
|
19
41
|
## 1.2.1
|
|
20
42
|
|
|
@@ -22,7 +44,7 @@
|
|
|
22
44
|
|
|
23
45
|
## 1.2.0
|
|
24
46
|
|
|
25
|
-
- Added `truncateBehavior` prop to the `OrganizationSwitcher`
|
|
47
|
+
- Added `truncateBehavior` prop to the `OrganizationSwitcher` Widget to control how long organization names get truncated when there is limited space
|
|
26
48
|
- Added `queryClient` prop to the root `WorkOsWidgets` component to allow users to provide their own Query Client
|
|
27
49
|
|
|
28
50
|
## 1.1.5
|
|
@@ -31,10 +53,10 @@ Internal changes to the publishing workflow. No user-facing changes included in
|
|
|
31
53
|
|
|
32
54
|
## 1.1.4
|
|
33
55
|
|
|
34
|
-
- Add
|
|
56
|
+
- Add Widget type header to API requests
|
|
35
57
|
- Pin third-party actions to currently used SHA
|
|
36
58
|
|
|
37
59
|
## 1.1.2
|
|
38
60
|
|
|
39
61
|
- Fix broken imports
|
|
40
|
-
- Fix skeleton layout in
|
|
62
|
+
- Fix skeleton layout in `UserProfile` Widget
|
|
@@ -20,31 +20,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var admin_portal_domain_verification_client_exports = {};
|
|
21
21
|
__export(admin_portal_domain_verification_client_exports, {
|
|
22
22
|
AdminPortalDomainVerification: () => AdminPortalDomainVerification,
|
|
23
|
+
AdminPortalDomainVerificationError: () => import_admin_portal_domain_verification.AdminPortalDomainVerificationError,
|
|
23
24
|
AdminPortalDomainVerificationLoading: () => import_admin_portal_domain_verification.AdminPortalDomainVerificationLoading
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(admin_portal_domain_verification_client_exports);
|
|
26
27
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
27
28
|
var import_admin_portal_domain_verification = require("./lib/admin-portal-domain-verification.js");
|
|
28
|
-
var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
|
|
29
29
|
var import_api_provider = require("./api/api-provider.js");
|
|
30
30
|
var import_endpoint = require("./api/endpoint.js");
|
|
31
31
|
var import_widgets_context = require("./lib/widgets-context.js");
|
|
32
32
|
var import_error_boundary = require("./lib/error-boundary.js");
|
|
33
33
|
var import_react_query = require("@tanstack/react-query");
|
|
34
|
-
const AdminPortalDomainVerification = ({ authToken }) => {
|
|
34
|
+
const AdminPortalDomainVerification = ({ authToken, ...domProps }) => {
|
|
35
35
|
const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
|
|
36
36
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
37
|
-
|
|
37
|
+
import_error_boundary.ErrorBoundary,
|
|
38
38
|
{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationError, { error, ...domProps }),
|
|
40
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
41
|
+
import_api_provider.ApiProvider,
|
|
42
|
+
{
|
|
43
|
+
widgetType: "admin-portal-domain-verification",
|
|
44
|
+
authToken,
|
|
45
|
+
baseUrl,
|
|
46
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdminPortalDomainVerificationImpl, { ...domProps })
|
|
47
|
+
}
|
|
48
|
+
)
|
|
43
49
|
}
|
|
44
50
|
);
|
|
45
51
|
};
|
|
46
|
-
const
|
|
47
|
-
const
|
|
52
|
+
const AdminPortalDomainVerificationImpl = (props) => {
|
|
53
|
+
const isApiReady = (0, import_api_provider.useApiReady)();
|
|
48
54
|
const queryClient = (0, import_react_query.useQueryClient)();
|
|
49
55
|
const {
|
|
50
56
|
data: organizationDomains,
|
|
@@ -89,27 +95,35 @@ const AdminPortalDomainVerificationContent = () => {
|
|
|
89
95
|
const handleReverifyDomain = (domainId) => {
|
|
90
96
|
reverifyDomain({ domainId });
|
|
91
97
|
};
|
|
92
|
-
if (!
|
|
93
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationLoading, {});
|
|
98
|
+
if (!isApiReady || isLoading) {
|
|
99
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationLoading, { ...props });
|
|
94
100
|
}
|
|
95
101
|
if (error) {
|
|
96
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationError, { error });
|
|
102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationError, { error, ...props });
|
|
97
103
|
}
|
|
98
104
|
const domains = organizationDomains?.data || [];
|
|
99
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
100
|
-
|
|
105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
106
|
+
import_error_boundary.ErrorBoundary,
|
|
101
107
|
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
108
|
+
fallbackRender: ({ error: error2 }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_domain_verification.AdminPortalDomainVerificationError, { error: error2, ...props }),
|
|
109
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
110
|
+
import_admin_portal_domain_verification.AdminPortalDomainVerification,
|
|
111
|
+
{
|
|
112
|
+
organizationDomains: domains,
|
|
113
|
+
onAddDomain: handleAddDomain,
|
|
114
|
+
onDeleteDomain: handleDeleteDomain,
|
|
115
|
+
onReverifyDomain: handleReverifyDomain,
|
|
116
|
+
isPending,
|
|
117
|
+
...props
|
|
118
|
+
}
|
|
119
|
+
)
|
|
107
120
|
}
|
|
108
|
-
)
|
|
121
|
+
);
|
|
109
122
|
};
|
|
110
123
|
// Annotate the CommonJS export names for ESM import in node:
|
|
111
124
|
0 && (module.exports = {
|
|
112
125
|
AdminPortalDomainVerification,
|
|
126
|
+
AdminPortalDomainVerificationError,
|
|
113
127
|
AdminPortalDomainVerificationLoading
|
|
114
128
|
});
|
|
115
129
|
//# sourceMappingURL=admin-portal-domain-verification.client.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/admin-portal-domain-verification.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AdminPortalDomainVerificationError,\n AdminPortalDomainVerificationLoading,\n AdminPortalDomainVerification as AdminPortalDomainVerificationPresentational,\n} from \"./lib/admin-portal-domain-verification.js\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/admin-portal-domain-verification.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AdminPortalDomainVerificationError,\n AdminPortalDomainVerificationLoading,\n AdminPortalDomainVerification as AdminPortalDomainVerificationPresentational,\n} from \"./lib/admin-portal-domain-verification.js\";\nimport type {\n AdminPortalDomainVerificationErrorProps,\n AdminPortalDomainVerificationLoadingProps,\n} from \"./lib/admin-portal-domain-verification.js\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport {\n useGenerateAdminPortalLink,\n useListOrganizationDomains,\n getListOrganizationDomainsQueryKey,\n useDeleteOrganizationDomain,\n useReverifyOrganizationDomain,\n} from \"./api/endpoint.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface AdminPortalDomainVerificationProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst AdminPortalDomainVerification: React.FC<\n AdminPortalDomainVerificationProps\n> = ({ authToken, ...domProps }) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalDomainVerificationError error={error} {...domProps} />\n )}\n >\n <ApiProvider\n widgetType=\"admin-portal-domain-verification\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <AdminPortalDomainVerificationImpl {...domProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst AdminPortalDomainVerificationImpl = (\n props: Omit<AdminPortalDomainVerificationProps, \"authToken\">,\n) => {\n const isApiReady = useApiReady();\n const queryClient = useQueryClient();\n const {\n data: organizationDomains,\n isLoading,\n error,\n } = useListOrganizationDomains();\n\n const { mutate: generateAdminPortalLink, isPending } =\n useGenerateAdminPortalLink({\n mutation: {\n onSuccess: (data) => {\n window.open(data.link, \"_blank\", \"noopener,noreferrer\");\n },\n },\n });\n\n const { mutate: deleteDomain } = useDeleteOrganizationDomain({\n mutation: {\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: getListOrganizationDomainsQueryKey(),\n });\n },\n },\n });\n\n const { mutate: reverifyDomain } = useReverifyOrganizationDomain({\n mutation: {\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: getListOrganizationDomainsQueryKey(),\n });\n },\n },\n });\n\n const handleAddDomain = () => {\n generateAdminPortalLink({\n params: {\n intent: \"domain_verification\",\n },\n });\n };\n\n const handleDeleteDomain = (domainId: string) => {\n deleteDomain({ domainId });\n };\n\n const handleReverifyDomain = (domainId: string) => {\n reverifyDomain({ domainId });\n };\n\n if (!isApiReady || isLoading) {\n return <AdminPortalDomainVerificationLoading {...props} />;\n }\n\n if (error) {\n return <AdminPortalDomainVerificationError error={error} {...props} />;\n }\n\n const domains = organizationDomains?.data || [];\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalDomainVerificationError error={error} {...props} />\n )}\n >\n <AdminPortalDomainVerificationPresentational\n organizationDomains={domains}\n onAddDomain={handleAddDomain}\n onDeleteDomain={handleDeleteDomain}\n onReverifyDomain={handleReverifyDomain}\n isPending={isPending}\n {...props}\n />\n </ErrorBoundary>\n );\n};\n\nexport type {\n AdminPortalDomainVerificationProps,\n AdminPortalDomainVerificationLoadingProps,\n AdminPortalDomainVerificationErrorProps,\n};\nexport {\n AdminPortalDomainVerification,\n AdminPortalDomainVerificationLoading,\n AdminPortalDomainVerificationError,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCQ;AAlCR,8CAIO;AAKP,0BAAoD;AACpD,sBAMO;AACP,6BAAgC;AAChC,4BAA8B;AAC9B,yBAA+B;AAO/B,MAAM,gCAEF,CAAC,EAAE,WAAW,GAAG,SAAS,MAAM;AAClC,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,8EAAmC,OAAe,GAAG,UAAU;AAAA,MAGlE;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA,sDAAC,qCAAmC,GAAG,UAAU;AAAA;AAAA,MACnD;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,oCAAoC,CACxC,UACG;AACH,QAAM,iBAAa,iCAAY;AAC/B,QAAM,kBAAc,mCAAe;AACnC,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF,QAAI,4CAA2B;AAE/B,QAAM,EAAE,QAAQ,yBAAyB,UAAU,QACjD,4CAA2B;AAAA,IACzB,UAAU;AAAA,MACR,WAAW,CAAC,SAAS;AACnB,eAAO,KAAK,KAAK,MAAM,UAAU,qBAAqB;AAAA,MACxD;AAAA,IACF;AAAA,EACF,CAAC;AAEH,QAAM,EAAE,QAAQ,aAAa,QAAI,6CAA4B;AAAA,IAC3D,UAAU;AAAA,MACR,WAAW,MAAM;AACf,oBAAY,kBAAkB;AAAA,UAC5B,cAAU,oDAAmC;AAAA,QAC/C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,EAAE,QAAQ,eAAe,QAAI,+CAA8B;AAAA,IAC/D,UAAU;AAAA,MACR,WAAW,MAAM;AACf,oBAAY,kBAAkB;AAAA,UAC5B,cAAU,oDAAmC;AAAA,QAC/C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,MAAM;AAC5B,4BAAwB;AAAA,MACtB,QAAQ;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,CAAC,aAAqB;AAC/C,iBAAa,EAAE,SAAS,CAAC;AAAA,EAC3B;AAEA,QAAM,uBAAuB,CAAC,aAAqB;AACjD,mBAAe,EAAE,SAAS,CAAC;AAAA,EAC7B;AAEA,MAAI,CAAC,cAAc,WAAW;AAC5B,WAAO,4CAAC,gFAAsC,GAAG,OAAO;AAAA,EAC1D;AAEA,MAAI,OAAO;AACT,WAAO,4CAAC,8EAAmC,OAAe,GAAG,OAAO;AAAA,EACtE;AAEA,QAAM,UAAU,qBAAqB,QAAQ,CAAC;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MACvB,4CAAC,8EAAmC,OAAOA,QAAQ,GAAG,OAAO;AAAA,MAG/D;AAAA,QAAC,wCAAAC;AAAA,QAAA;AAAA,UACC,qBAAqB;AAAA,UACrB,aAAa;AAAA,UACb,gBAAgB;AAAA,UAChB,kBAAkB;AAAA,UAClB;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;","names":["error","AdminPortalDomainVerificationPresentational"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export { AdminPortalDomainVerificationLoading } from './lib/admin-portal-domain-verification.cjs';
|
|
2
|
+
export { AdminPortalDomainVerificationError, AdminPortalDomainVerificationErrorProps, AdminPortalDomainVerificationLoading, AdminPortalDomainVerificationLoadingProps } from './lib/admin-portal-domain-verification.cjs';
|
|
3
3
|
import { AuthToken } from './api/api-provider.cjs';
|
|
4
|
+
import { WidgetRootDomProps } from './lib/utils.cjs';
|
|
4
5
|
import 'react/jsx-runtime';
|
|
5
6
|
import './api/endpoint.cjs';
|
|
6
7
|
import '@tanstack/react-query';
|
|
7
8
|
import './api/widgets-api-client.cjs';
|
|
8
9
|
|
|
9
|
-
interface AdminPortalDomainVerificationProps {
|
|
10
|
+
interface AdminPortalDomainVerificationProps extends WidgetRootDomProps {
|
|
10
11
|
authToken: AuthToken;
|
|
11
12
|
}
|
|
12
13
|
declare const AdminPortalDomainVerification: React.FC<AdminPortalDomainVerificationProps>;
|
package/dist/cjs/{admin-portal-sso-connection-client.cjs → admin-portal-sso-connection.client.cjs}
RENAMED
|
@@ -30,36 +30,45 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
var admin_portal_sso_connection_client_exports = {};
|
|
31
31
|
__export(admin_portal_sso_connection_client_exports, {
|
|
32
32
|
AdminPortalSsoConnection: () => AdminPortalSsoConnection,
|
|
33
|
+
AdminPortalSsoConnectionError: () => import_admin_portal_sso_connection.AdminPortalSsoConnectionError,
|
|
33
34
|
AdminPortalSsoConnectionLoading: () => import_admin_portal_sso_connection.AdminPortalSsoConnectionLoading
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(admin_portal_sso_connection_client_exports);
|
|
36
37
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
37
38
|
var React = __toESM(require("react"), 1);
|
|
38
39
|
var import_admin_portal_sso_connection = require("./lib/admin-portal-sso-connection.js");
|
|
39
|
-
var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
|
|
40
40
|
var import_api_provider = require("./api/api-provider.js");
|
|
41
41
|
var import_endpoint = require("./api/endpoint.js");
|
|
42
42
|
var import_widgets_context = require("./lib/widgets-context.js");
|
|
43
43
|
var import_error_boundary = require("./lib/error-boundary.js");
|
|
44
44
|
var import_utils = require("./lib/utils.js");
|
|
45
|
-
const AdminPortalSsoConnection = ({
|
|
45
|
+
const AdminPortalSsoConnection = ({
|
|
46
|
+
authToken,
|
|
47
|
+
...domProps
|
|
48
|
+
}) => {
|
|
46
49
|
const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
|
|
47
50
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
48
|
-
|
|
51
|
+
import_error_boundary.ErrorBoundary,
|
|
49
52
|
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionError, { error, ...domProps }),
|
|
54
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
55
|
+
import_api_provider.ApiProvider,
|
|
56
|
+
{
|
|
57
|
+
widgetType: "admin-portal-sso-connection",
|
|
58
|
+
authToken,
|
|
59
|
+
baseUrl,
|
|
60
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdminPortalSsoConnectionImpl, { ...domProps })
|
|
61
|
+
}
|
|
62
|
+
)
|
|
54
63
|
}
|
|
55
64
|
);
|
|
56
65
|
};
|
|
57
|
-
const
|
|
58
|
-
const
|
|
66
|
+
const AdminPortalSsoConnectionImpl = (props) => {
|
|
67
|
+
const isApiReady = (0, import_api_provider.useApiReady)();
|
|
59
68
|
const [currentDate, setCurrentDate] = React.useState(
|
|
60
|
-
() =>
|
|
69
|
+
() => isApiReady ? /* @__PURE__ */ new Date() : null
|
|
61
70
|
);
|
|
62
|
-
if (
|
|
71
|
+
if (isApiReady && currentDate === null) {
|
|
63
72
|
setCurrentDate(/* @__PURE__ */ new Date());
|
|
64
73
|
}
|
|
65
74
|
const { mutate: generateAdminPortalLink, ...mutation } = (0, import_endpoint.useGenerateAdminPortalLink)({
|
|
@@ -79,33 +88,40 @@ const SingleSignOnContent = () => {
|
|
|
79
88
|
});
|
|
80
89
|
};
|
|
81
90
|
if (query.isLoading) {
|
|
82
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionLoading, {});
|
|
91
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionLoading, { ...props });
|
|
83
92
|
}
|
|
84
93
|
if (query.isError) {
|
|
85
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionError, { error: query.error });
|
|
94
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionError, { error: query.error, ...props });
|
|
86
95
|
}
|
|
87
96
|
if (query.data) {
|
|
88
97
|
const connection = query.data[0];
|
|
89
98
|
if (!connection) {
|
|
90
99
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
91
|
-
|
|
100
|
+
import_error_boundary.ErrorBoundary,
|
|
92
101
|
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
97
|
-
import_admin_portal_sso_connection.AdminPortalOpenButton,
|
|
102
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionError, { error, ...props }),
|
|
103
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
104
|
+
import_admin_portal_sso_connection.AdminPortalSsoConnection,
|
|
98
105
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
106
|
+
...props,
|
|
107
|
+
connectionStatus: "NotConfigured",
|
|
108
|
+
currentDate,
|
|
109
|
+
lastSession: null,
|
|
110
|
+
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
111
|
+
import_admin_portal_sso_connection.AdminPortalOpenButton,
|
|
112
|
+
{
|
|
113
|
+
isPending: mutation.isPending,
|
|
114
|
+
href: adminPortalLink,
|
|
115
|
+
initConfig
|
|
116
|
+
}
|
|
117
|
+
)
|
|
102
118
|
}
|
|
103
119
|
)
|
|
104
120
|
}
|
|
105
121
|
);
|
|
106
122
|
}
|
|
107
123
|
const connectionState = getConnectionState(connection, currentDate);
|
|
108
|
-
const
|
|
124
|
+
const statusProps = (() => {
|
|
109
125
|
const connectionStatus = connectionState.status;
|
|
110
126
|
if (!connection || connectionStatus === "NotConfigured") {
|
|
111
127
|
return {
|
|
@@ -136,22 +152,29 @@ const SingleSignOnContent = () => {
|
|
|
136
152
|
}
|
|
137
153
|
})();
|
|
138
154
|
const lastSession = connection.lastSession ? new Date(connection.lastSession.createdAt) : null;
|
|
139
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
140
|
-
|
|
155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
156
|
+
import_error_boundary.ErrorBoundary,
|
|
141
157
|
{
|
|
142
|
-
...props,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
146
|
-
import_admin_portal_sso_connection.AdminPortalOpenButton,
|
|
158
|
+
fallbackRender: ({ error }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_admin_portal_sso_connection.AdminPortalSsoConnectionError, { error, ...props }),
|
|
159
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
160
|
+
import_admin_portal_sso_connection.AdminPortalSsoConnection,
|
|
147
161
|
{
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
162
|
+
...props,
|
|
163
|
+
...statusProps,
|
|
164
|
+
currentDate,
|
|
165
|
+
lastSession,
|
|
166
|
+
adminPortalOpenButton: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
167
|
+
import_admin_portal_sso_connection.AdminPortalOpenButton,
|
|
168
|
+
{
|
|
169
|
+
isPending: mutation.isPending,
|
|
170
|
+
href: adminPortalLink,
|
|
171
|
+
initConfig
|
|
172
|
+
}
|
|
173
|
+
)
|
|
151
174
|
}
|
|
152
175
|
)
|
|
153
176
|
}
|
|
154
|
-
)
|
|
177
|
+
);
|
|
155
178
|
}
|
|
156
179
|
};
|
|
157
180
|
function getConnectionState(connection, currentDate) {
|
|
@@ -257,6 +280,8 @@ function getIdentityProvider(connection) {
|
|
|
257
280
|
return "generic-oidc";
|
|
258
281
|
case "LoginGovOidc":
|
|
259
282
|
return "login-gov";
|
|
283
|
+
case "CleverOidc":
|
|
284
|
+
return "clever";
|
|
260
285
|
default:
|
|
261
286
|
return (0, import_utils.unreachable)(connection);
|
|
262
287
|
}
|
|
@@ -264,6 +289,7 @@ function getIdentityProvider(connection) {
|
|
|
264
289
|
// Annotate the CommonJS export names for ESM import in node:
|
|
265
290
|
0 && (module.exports = {
|
|
266
291
|
AdminPortalSsoConnection,
|
|
292
|
+
AdminPortalSsoConnectionError,
|
|
267
293
|
AdminPortalSsoConnectionLoading
|
|
268
294
|
});
|
|
269
|
-
//# sourceMappingURL=admin-portal-sso-connection
|
|
295
|
+
//# sourceMappingURL=admin-portal-sso-connection.client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/admin-portal-sso-connection.client.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AdminPortalOpenButton,\n AdminPortalSsoConnectionError,\n AdminPortalSsoConnectionLoading,\n AdminPortalSsoConnection as AdminPortalSsoConnectionPresentational,\n} from \"./lib/admin-portal-sso-connection.js\";\nimport type {\n AdminPortalSsoConnectionErrorProps,\n AdminPortalSsoConnectionLoadingProps,\n AdminPortalSsoConnectionStatusProps,\n} from \"./lib/admin-portal-sso-connection.js\";\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport {\n type SsoConnection,\n useGenerateAdminPortalLink,\n useListSsoConnections,\n} from \"./api/endpoint.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { unreachable, WidgetRootDomProps } from \"./lib/utils.js\";\nimport { IdentityProvider } from \"./lib/identity-providers.js\";\n\ninterface AdminPortalSsoConnectionProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst AdminPortalSsoConnection: React.FC<AdminPortalSsoConnectionProps> = ({\n authToken,\n ...domProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalSsoConnectionError error={error} {...domProps} />\n )}\n >\n <ApiProvider\n widgetType=\"admin-portal-sso-connection\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <AdminPortalSsoConnectionImpl {...domProps} />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\nconst AdminPortalSsoConnectionImpl = (props: WidgetRootDomProps) => {\n const isApiReady = useApiReady();\n const [currentDate, setCurrentDate] = React.useState<Date | null>(() =>\n isApiReady ? new Date() : null,\n );\n if (isApiReady && currentDate === null) {\n setCurrentDate(new Date());\n }\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 = useListSsoConnections();\n\n const initConfig = () => {\n generateAdminPortalLink({\n params: {\n intent: \"sso\",\n },\n });\n };\n\n if (query.isLoading) {\n return <AdminPortalSsoConnectionLoading {...props} />;\n }\n\n if (query.isError) {\n return <AdminPortalSsoConnectionError error={query.error} {...props} />;\n }\n\n if (query.data) {\n const connection = query.data[0];\n if (!connection) {\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalSsoConnectionError error={error} {...props} />\n )}\n >\n <AdminPortalSsoConnectionPresentational\n {...props}\n connectionStatus=\"NotConfigured\"\n currentDate={currentDate}\n lastSession={null}\n adminPortalOpenButton={\n <AdminPortalOpenButton\n isPending={mutation.isPending}\n href={adminPortalLink}\n initConfig={initConfig}\n />\n }\n />\n </ErrorBoundary>\n );\n }\n\n const connectionState = getConnectionState(connection, currentDate);\n const statusProps: AdminPortalSsoConnectionStatusProps = (() => {\n const connectionStatus = connectionState.status;\n if (!connection || connectionStatus === \"NotConfigured\") {\n return {\n connectionStatus: \"NotConfigured\",\n } satisfies AdminPortalSsoConnectionStatusProps;\n }\n\n const identityProvider = getIdentityProvider(connection);\n switch (connectionStatus) {\n case \"Active\":\n return {\n connectionStatus,\n identityProvider,\n } satisfies AdminPortalSsoConnectionStatusProps;\n case \"Inactive\":\n return {\n connectionStatus,\n identityProvider,\n } satisfies AdminPortalSsoConnectionStatusProps;\n case \"Expired\":\n case \"Expiring\":\n return {\n connectionStatus,\n expiryDate: connectionState.expiryDate,\n identityProvider,\n } satisfies AdminPortalSsoConnectionStatusProps;\n default:\n return unreachable(connectionState);\n }\n })();\n\n const lastSession = connection.lastSession\n ? new Date(connection.lastSession.createdAt)\n : null;\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <AdminPortalSsoConnectionError error={error} {...props} />\n )}\n >\n <AdminPortalSsoConnectionPresentational\n {...props}\n {...statusProps}\n currentDate={currentDate}\n lastSession={lastSession}\n adminPortalOpenButton={\n <AdminPortalOpenButton\n isPending={mutation.isPending}\n href={adminPortalLink}\n initConfig={initConfig}\n />\n }\n />\n </ErrorBoundary>\n );\n }\n};\n\ntype ConnectionState =\n | { status: \"NotConfigured\" }\n | { status: \"Active\" }\n | { status: \"Inactive\" }\n | {\n status: \"Expiring\";\n daysUntilExpiry: number | null;\n expiryDate: Date | null;\n }\n | { status: \"Expired\"; expiryDate: Date | null };\n\nfunction getConnectionState(\n connection: SsoConnection,\n currentDate: Date | null,\n): ConnectionState {\n switch (connection.state) {\n case \"Active\":\n case \"Validating\":\n case \"Deleting\": {\n const activeStatus = { status: \"Active\" } satisfies ConnectionState;\n if (connection.providerTag !== \"Saml\") {\n return activeStatus;\n }\n\n if (connection.latestExpiredCertificate) {\n return {\n status: \"Expired\",\n expiryDate: connection.latestExpiredCertificate.notAfter\n ? new Date(connection.latestExpiredCertificate.notAfter)\n : null,\n };\n }\n\n const expiryTime = connection.latestExpiringCertificate?.notAfter;\n if (currentDate == null || expiryTime == null) {\n return activeStatus;\n }\n\n const expiryDate = new Date(expiryTime);\n const daysUntilExpiry = (() => {\n const diff = expiryDate.getTime() - currentDate.getTime();\n if (diff < 0) {\n return -1;\n }\n\n return diff / (1000 * 60 * 60 * 24);\n })();\n\n if (daysUntilExpiry !== -1 && daysUntilExpiry <= 30) {\n return { status: \"Expiring\", daysUntilExpiry, expiryDate };\n }\n\n return activeStatus;\n }\n case \"Inactive\": {\n return { status: \"Inactive\" };\n }\n default:\n return unreachable(connection);\n }\n}\n\nfunction getIdentityProvider(connection: SsoConnection): IdentityProvider {\n switch (connection.type) {\n case \"AdfsSaml\":\n case \"EntraIdOidc\":\n return \"microsoft\";\n case \"Auth0Migration\":\n case \"Auth0Saml\":\n return \"auth0\";\n case \"AzureSaml\":\n return \"azure\";\n case \"CasSaml\":\n return \"cas\";\n case \"ClassLinkSaml\":\n return \"classlink\";\n case \"CloudflareSaml\":\n return \"cloudflare\";\n case \"CyberArkSaml\":\n return \"cyberark\";\n case \"DuoSaml\":\n return \"duo\";\n case \"GenericSaml\":\n return \"generic-saml\";\n case \"GoogleSaml\":\n case \"GoogleOidc\":\n return \"google\";\n case \"JumpCloudSaml\":\n return \"jumpcloud\";\n case \"KeycloakSaml\":\n return \"keycloak\";\n case \"LastPassSaml\":\n return \"lastpass\";\n case \"MiniOrangeSaml\":\n return \"miniorange\";\n case \"NetIqSaml\":\n return \"net-iq\";\n case \"OktaOidc\":\n case \"OktaSaml\":\n return \"okta\";\n case \"OneLoginSaml\":\n return \"onelogin\";\n case \"OracleSaml\":\n return \"oracle\";\n case \"PingFederateSaml\":\n case \"PingOneSaml\":\n return \"ping-identity\";\n case \"RipplingSaml\":\n return \"rippling\";\n case \"SalesforceSaml\":\n return \"salesforce\";\n case \"ShibbolethGenericSaml\":\n case \"ShibbolethSaml\":\n return \"shibboleth\";\n case \"SimpleSamlPhpSaml\":\n return \"simple-saml-php\";\n case \"TestIdp\":\n return \"test-idp\";\n case \"VmWareSaml\":\n return \"vmware\";\n case \"AdpOidc\":\n return \"adp\";\n case \"GenericOidc\":\n return \"generic-oidc\";\n case \"LoginGovOidc\":\n return \"login-gov\";\n case \"CleverOidc\":\n return \"clever\";\n default:\n return unreachable(connection);\n }\n}\n\nexport type {\n AdminPortalSsoConnectionProps,\n AdminPortalSsoConnectionLoadingProps,\n AdminPortalSsoConnectionErrorProps,\n};\nexport {\n AdminPortalSsoConnection,\n AdminPortalSsoConnectionLoading,\n AdminPortalSsoConnectionError,\n};\n"],"mappings":"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","names":["AdminPortalSsoConnectionPresentational"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export { AdminPortalSsoConnectionError, AdminPortalSsoConnectionErrorProps, AdminPortalSsoConnectionLoading, AdminPortalSsoConnectionLoadingProps } from './lib/admin-portal-sso-connection.cjs';
|
|
3
|
+
import { AuthToken } from './api/api-provider.cjs';
|
|
4
|
+
import { WidgetRootDomProps } from './lib/utils.cjs';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import './lib/identity-providers.cjs';
|
|
7
|
+
import './api/endpoint.cjs';
|
|
8
|
+
import '@tanstack/react-query';
|
|
9
|
+
import './api/widgets-api-client.cjs';
|
|
10
|
+
|
|
11
|
+
interface AdminPortalSsoConnectionProps extends WidgetRootDomProps {
|
|
12
|
+
authToken: AuthToken;
|
|
13
|
+
}
|
|
14
|
+
declare const AdminPortalSsoConnection: React.FC<AdminPortalSsoConnectionProps>;
|
|
15
|
+
|
|
16
|
+
export { AdminPortalSsoConnection, type AdminPortalSsoConnectionProps };
|
|
@@ -30,11 +30,15 @@ var api_provider_exports = {};
|
|
|
30
30
|
__export(api_provider_exports, {
|
|
31
31
|
ApiProvider: () => ApiProvider,
|
|
32
32
|
useApi: () => useApi,
|
|
33
|
+
useApiReady: () => useApiReady,
|
|
33
34
|
useElevatedAccessToken: () => useElevatedAccessToken
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(api_provider_exports);
|
|
36
37
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
38
|
+
var import_react_query = require("@tanstack/react-query");
|
|
37
39
|
var React = __toESM(require("react"), 1);
|
|
40
|
+
var import_use_is_hydrated = require("../lib/use-is-hydrated.js");
|
|
41
|
+
var import_utils = require("./utils.js");
|
|
38
42
|
const ApiContext = React.createContext(void 0);
|
|
39
43
|
const ApiProvider = ({
|
|
40
44
|
authToken,
|
|
@@ -42,7 +46,20 @@ const ApiProvider = ({
|
|
|
42
46
|
children,
|
|
43
47
|
widgetType
|
|
44
48
|
}) => {
|
|
45
|
-
const
|
|
49
|
+
const authTokenQuery = (0, import_react_query.useQuery)({
|
|
50
|
+
initialData: typeof authToken === "string" ? {
|
|
51
|
+
authToken,
|
|
52
|
+
permissions: (0, import_utils.getClaims)(authToken).permissions
|
|
53
|
+
} : void 0,
|
|
54
|
+
queryFn: async () => {
|
|
55
|
+
const resolvedToken = typeof authToken === "string" ? authToken : await authToken();
|
|
56
|
+
return {
|
|
57
|
+
authToken: resolvedToken,
|
|
58
|
+
permissions: (0, import_utils.getClaims)(resolvedToken).permissions
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
queryKey: ["authToken", widgetType]
|
|
62
|
+
});
|
|
46
63
|
const [elevatedAccess, setElevatedAccess] = React.useState();
|
|
47
64
|
const elevatedAccessTimeout = React.useRef(void 0);
|
|
48
65
|
React.useEffect(() => {
|
|
@@ -66,15 +83,15 @@ const ApiProvider = ({
|
|
|
66
83
|
}, [elevatedAccess]);
|
|
67
84
|
const value = React.useMemo(
|
|
68
85
|
() => ({
|
|
69
|
-
authToken:
|
|
70
|
-
|
|
86
|
+
authToken: authTokenQuery.data?.authToken,
|
|
87
|
+
permissions: authTokenQuery.data?.permissions,
|
|
71
88
|
baseUrl,
|
|
72
89
|
elevatedAccess,
|
|
73
90
|
setElevatedAccess,
|
|
74
91
|
widgetType
|
|
75
92
|
}),
|
|
76
93
|
[
|
|
77
|
-
|
|
94
|
+
authTokenQuery.data,
|
|
78
95
|
baseUrl,
|
|
79
96
|
elevatedAccess,
|
|
80
97
|
setElevatedAccess,
|
|
@@ -94,25 +111,16 @@ const useElevatedAccessToken = () => {
|
|
|
94
111
|
const { elevatedAccess, setElevatedAccess } = useApi();
|
|
95
112
|
return { elevatedAccess, setElevatedAccess };
|
|
96
113
|
};
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const authTokenPromise = authTokenPromiseOrString;
|
|
103
|
-
const promiseKey = PromiseKey.get(authTokenPromise);
|
|
104
|
-
if (!promiseKey) {
|
|
105
|
-
const newPromiseKey = `${Math.random()}`;
|
|
106
|
-
PromiseKey.set(authTokenPromise, newPromiseKey);
|
|
107
|
-
return newPromiseKey;
|
|
108
|
-
} else {
|
|
109
|
-
return promiseKey;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
114
|
+
const useApiReady = () => {
|
|
115
|
+
const { authToken } = useApi();
|
|
116
|
+
const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
|
|
117
|
+
return isHydrated && authToken !== void 0;
|
|
118
|
+
};
|
|
112
119
|
// Annotate the CommonJS export names for ESM import in node:
|
|
113
120
|
0 && (module.exports = {
|
|
114
121
|
ApiProvider,
|
|
115
122
|
useApi,
|
|
123
|
+
useApiReady,
|
|
116
124
|
useElevatedAccessToken
|
|
117
125
|
});
|
|
118
126
|
//# sourceMappingURL=api-provider.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/api-provider.tsx"],"sourcesContent":["import * as React from \"react\";\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\nexport type AuthToken = string | (() => Promise<string>);\n\ninterface ElevatedAccess {\n token: string;\n expiresAt: string;\n}\n\ninterface ApiConfig {\n authToken:
|
|
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\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;AAmHS;AAnHT,yBAAyB;AACzB,YAAuB;AACvB,6BAA8B;AAC9B,mBAA0B;AA6B1B,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,15 +1,15 @@
|
|
|
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";
|
|
4
|
+
type WidgetType = "admin-portal-domain-verification" | "user-management" | "organization-switcher" | "user-sessions" | "user-security" | "user-profile" | "admin-portal-sso-connection" | "api-keys" | "pipes";
|
|
5
5
|
type AuthToken = string | (() => Promise<string>);
|
|
6
6
|
interface ElevatedAccess {
|
|
7
7
|
token: string;
|
|
8
8
|
expiresAt: string;
|
|
9
9
|
}
|
|
10
10
|
interface ApiConfig {
|
|
11
|
-
authToken:
|
|
12
|
-
|
|
11
|
+
authToken: string | undefined;
|
|
12
|
+
permissions: string[] | undefined;
|
|
13
13
|
baseUrl: string;
|
|
14
14
|
widgetType: WidgetType;
|
|
15
15
|
elevatedAccess?: ElevatedAccess;
|
|
@@ -27,5 +27,6 @@ declare const useElevatedAccessToken: () => {
|
|
|
27
27
|
elevatedAccess: ElevatedAccess | undefined;
|
|
28
28
|
setElevatedAccess: (elevatedAccess?: ElevatedAccess) => void;
|
|
29
29
|
};
|
|
30
|
+
declare const useApiReady: () => boolean;
|
|
30
31
|
|
|
31
|
-
export { ApiProvider, type AuthToken, type WidgetType, useApi, useElevatedAccessToken };
|
|
32
|
+
export { ApiProvider, type AuthToken, type WidgetType, useApi, useApiReady, useElevatedAccessToken };
|