@workos-inc/widgets 1.1.0 → 1.1.2
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/dist/cjs/api/api-provider.d.ts +26 -0
- package/dist/cjs/api/api-provider.d.ts.map +1 -0
- package/dist/cjs/api/api-provider.js +123 -0
- package/dist/cjs/api/api-provider.js.map +1 -0
- package/dist/cjs/api/constants.d.ts +2 -0
- package/dist/cjs/api/constants.d.ts.map +1 -0
- package/dist/cjs/api/constants.js +5 -0
- package/dist/cjs/api/constants.js.map +1 -0
- package/dist/cjs/api/endpoint.d.ts +984 -0
- package/dist/cjs/api/endpoint.d.ts.map +1 -0
- package/dist/cjs/api/endpoint.js +865 -0
- package/dist/cjs/api/endpoint.js.map +1 -0
- package/dist/cjs/api/errors.d.ts +33 -0
- package/dist/cjs/api/errors.d.ts.map +1 -0
- package/dist/cjs/api/errors.js +40 -0
- package/dist/cjs/api/errors.js.map +1 -0
- package/dist/cjs/api/index.d.ts +3 -0
- package/dist/cjs/api/index.d.ts.map +1 -0
- package/dist/cjs/api/index.js +19 -0
- package/dist/cjs/api/index.js.map +1 -0
- package/dist/cjs/api/utils.d.ts +10 -0
- package/dist/cjs/api/utils.d.ts.map +1 -0
- package/dist/cjs/api/utils.js +42 -0
- package/dist/cjs/api/utils.js.map +1 -0
- package/dist/cjs/api/widgets-api-client.d.ts +21 -0
- package/dist/cjs/api/widgets-api-client.d.ts.map +1 -0
- package/dist/cjs/api/widgets-api-client.js +61 -0
- package/dist/cjs/api/widgets-api-client.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/add-mfa-dialog.js +1 -1
- package/dist/cjs/lib/add-mfa-dialog.js.map +1 -1
- package/dist/cjs/lib/api/user.d.ts +6 -6
- package/dist/cjs/lib/api/user.js +1 -1
- package/dist/cjs/lib/change-password-dialog.js +1 -1
- package/dist/cjs/lib/change-password-dialog.js.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.d.ts +1 -1
- package/dist/cjs/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.js +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.js.map +1 -1
- package/dist/cjs/lib/edit-user-role-dialog.d.ts +1 -1
- package/dist/cjs/lib/edit-user-role-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/edit-user-role-dialog.js +1 -1
- package/dist/cjs/lib/edit-user-role-dialog.js.map +1 -1
- package/dist/cjs/lib/elevated-access.js +1 -1
- package/dist/cjs/lib/elevated-access.js.map +1 -1
- package/dist/cjs/lib/invite-user-dialog.js +1 -1
- package/dist/cjs/lib/invite-user-dialog.js.map +1 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.js +1 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.js.map +1 -1
- package/dist/cjs/lib/logout-dialog.d.ts +1 -1
- package/dist/cjs/lib/logout-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/logout-dialog.js +1 -1
- package/dist/cjs/lib/logout-dialog.js.map +1 -1
- package/dist/cjs/lib/organization-switcher.d.ts +1 -1
- package/dist/cjs/lib/organization-switcher.d.ts.map +1 -1
- package/dist/cjs/lib/organization-switcher.js.map +1 -1
- package/dist/cjs/lib/resend-invite-dialog.d.ts +1 -1
- package/dist/cjs/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/reset-mfa-dialog.js +1 -1
- package/dist/cjs/lib/reset-mfa-dialog.js.map +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.d.ts +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/set-password-dialog.js +1 -1
- package/dist/cjs/lib/set-password-dialog.js.map +1 -1
- package/dist/cjs/lib/use-security-settings.js +1 -1
- package/dist/cjs/lib/use-security-settings.js.map +1 -1
- package/dist/cjs/lib/user-actions-dropdown.d.ts +1 -1
- package/dist/cjs/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/cjs/lib/user-actions-dropdown.js +1 -1
- package/dist/cjs/lib/user-actions-dropdown.js.map +1 -1
- package/dist/cjs/lib/user-profile.d.ts +1 -1
- package/dist/cjs/lib/user-profile.d.ts.map +1 -1
- package/dist/cjs/lib/user-profile.js +1 -1
- package/dist/cjs/lib/user-profile.js.map +1 -1
- package/dist/cjs/lib/user-security.d.ts +1 -1
- package/dist/cjs/lib/user-security.d.ts.map +1 -1
- package/dist/cjs/lib/user-sessions.d.ts +1 -1
- package/dist/cjs/lib/user-sessions.d.ts.map +1 -1
- package/dist/cjs/lib/users-filter.d.ts +1 -1
- package/dist/cjs/lib/users-filter.d.ts.map +1 -1
- package/dist/cjs/lib/users-management-state.d.ts +1 -1
- package/dist/cjs/lib/users-management-state.d.ts.map +1 -1
- package/dist/cjs/lib/users-management.d.ts +1 -1
- package/dist/cjs/lib/users-management.d.ts.map +1 -1
- package/dist/cjs/lib/utils.d.ts +1 -1
- package/dist/cjs/lib/utils.d.ts.map +1 -1
- package/dist/cjs/organization-switcher.client.d.ts +1 -1
- package/dist/cjs/organization-switcher.client.d.ts.map +1 -1
- package/dist/cjs/organization-switcher.client.js +1 -1
- package/dist/cjs/organization-switcher.client.js.map +1 -1
- package/dist/cjs/user-profile.client.d.ts +1 -1
- package/dist/cjs/user-profile.client.d.ts.map +1 -1
- package/dist/cjs/user-profile.client.js +1 -1
- package/dist/cjs/user-profile.client.js.map +1 -1
- package/dist/cjs/user-security.client.d.ts +1 -1
- package/dist/cjs/user-security.client.d.ts.map +1 -1
- package/dist/cjs/user-security.client.js +1 -1
- package/dist/cjs/user-security.client.js.map +1 -1
- package/dist/cjs/user-sessions.client.js +1 -1
- package/dist/cjs/user-sessions.client.js.map +1 -1
- package/dist/cjs/users-management.client.d.ts +1 -1
- package/dist/cjs/users-management.client.d.ts.map +1 -1
- package/dist/cjs/users-management.client.js +1 -1
- package/dist/cjs/users-management.client.js.map +1 -1
- package/dist/esm/api/api-provider.d.ts +26 -0
- package/dist/esm/api/api-provider.d.ts.map +1 -0
- package/dist/esm/api/api-provider.js +94 -0
- package/dist/esm/api/api-provider.js.map +1 -0
- package/dist/esm/api/constants.d.ts +2 -0
- package/dist/esm/api/constants.d.ts.map +1 -0
- package/dist/esm/api/constants.js +2 -0
- package/dist/esm/api/constants.js.map +1 -0
- package/dist/esm/api/endpoint.d.ts +984 -0
- package/dist/esm/api/endpoint.d.ts.map +1 -0
- package/dist/esm/api/endpoint.js +783 -0
- package/dist/esm/api/endpoint.js.map +1 -0
- package/dist/esm/api/errors.d.ts +33 -0
- package/dist/esm/api/errors.d.ts.map +1 -0
- package/dist/esm/api/errors.js +34 -0
- package/dist/esm/api/errors.js.map +1 -0
- package/dist/esm/api/index.d.ts +3 -0
- package/dist/esm/api/index.d.ts.map +1 -0
- package/dist/esm/api/index.js +3 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/utils.d.ts +10 -0
- package/dist/esm/api/utils.d.ts.map +1 -0
- package/dist/esm/api/utils.js +36 -0
- package/dist/esm/api/utils.js.map +1 -0
- package/dist/esm/api/widgets-api-client.d.ts +21 -0
- package/dist/esm/api/widgets-api-client.d.ts.map +1 -0
- package/dist/esm/api/widgets-api-client.js +56 -0
- package/dist/esm/api/widgets-api-client.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- 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/api/user.d.ts +6 -6
- package/dist/esm/lib/api/user.js +1 -1
- package/dist/esm/lib/change-password-dialog.js +1 -1
- package/dist/esm/lib/change-password-dialog.js.map +1 -1
- package/dist/esm/lib/delete-user-dialog.d.ts +1 -1
- package/dist/esm/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.d.ts +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.d.ts.map +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.js +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
- package/dist/esm/lib/edit-user-role-dialog.d.ts +1 -1
- package/dist/esm/lib/edit-user-role-dialog.d.ts.map +1 -1
- package/dist/esm/lib/edit-user-role-dialog.js +1 -1
- package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
- package/dist/esm/lib/elevated-access.js +1 -1
- package/dist/esm/lib/elevated-access.js.map +1 -1
- package/dist/esm/lib/invite-user-dialog.js +1 -1
- package/dist/esm/lib/invite-user-dialog.js.map +1 -1
- package/dist/esm/lib/logout-all-sessions-dialog.js +1 -1
- package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
- package/dist/esm/lib/logout-dialog.d.ts +1 -1
- package/dist/esm/lib/logout-dialog.d.ts.map +1 -1
- package/dist/esm/lib/logout-dialog.js +1 -1
- package/dist/esm/lib/logout-dialog.js.map +1 -1
- package/dist/esm/lib/organization-switcher.d.ts +1 -1
- package/dist/esm/lib/organization-switcher.d.ts.map +1 -1
- package/dist/esm/lib/organization-switcher.js.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.d.ts +1 -1
- package/dist/esm/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/reset-mfa-dialog.js +1 -1
- package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.d.ts +1 -1
- package/dist/esm/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/set-password-dialog.js +1 -1
- package/dist/esm/lib/set-password-dialog.js.map +1 -1
- package/dist/esm/lib/use-security-settings.js +1 -1
- package/dist/esm/lib/use-security-settings.js.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.d.ts +1 -1
- package/dist/esm/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.js +1 -1
- package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
- package/dist/esm/lib/user-profile.d.ts +1 -1
- package/dist/esm/lib/user-profile.d.ts.map +1 -1
- package/dist/esm/lib/user-profile.js +1 -1
- package/dist/esm/lib/user-profile.js.map +1 -1
- package/dist/esm/lib/user-security.d.ts +1 -1
- package/dist/esm/lib/user-security.d.ts.map +1 -1
- package/dist/esm/lib/user-sessions.d.ts +1 -1
- package/dist/esm/lib/user-sessions.d.ts.map +1 -1
- package/dist/esm/lib/users-filter.d.ts +1 -1
- package/dist/esm/lib/users-filter.d.ts.map +1 -1
- package/dist/esm/lib/users-management-state.d.ts +1 -1
- package/dist/esm/lib/users-management-state.d.ts.map +1 -1
- package/dist/esm/lib/users-management.d.ts +1 -1
- package/dist/esm/lib/users-management.d.ts.map +1 -1
- package/dist/esm/lib/utils.d.ts +1 -1
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/organization-switcher.client.d.ts +1 -1
- package/dist/esm/organization-switcher.client.d.ts.map +1 -1
- package/dist/esm/organization-switcher.client.js +1 -1
- package/dist/esm/organization-switcher.client.js.map +1 -1
- package/dist/esm/user-profile.client.d.ts +1 -1
- package/dist/esm/user-profile.client.d.ts.map +1 -1
- package/dist/esm/user-profile.client.js +1 -1
- package/dist/esm/user-profile.client.js.map +1 -1
- package/dist/esm/user-security.client.d.ts +1 -1
- package/dist/esm/user-security.client.d.ts.map +1 -1
- package/dist/esm/user-security.client.js +1 -1
- package/dist/esm/user-security.client.js.map +1 -1
- package/dist/esm/user-sessions.client.js +1 -1
- package/dist/esm/user-sessions.client.js.map +1 -1
- package/dist/esm/users-management.client.d.ts +1 -1
- package/dist/esm/users-management.client.d.ts.map +1 -1
- package/dist/esm/users-management.client.js +1 -1
- package/dist/esm/users-management.client.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +54 -40
- package/src/api/api-provider.tsx +141 -0
- package/src/api/constants.ts +1 -0
- package/src/api/endpoint.ts +3097 -0
- package/src/api/errors.ts +48 -0
- package/src/api/index.ts +2 -0
- package/src/api/utils.ts +42 -0
- package/src/api/widgets-api-client.ts +86 -0
- package/src/index.ts +1 -0
- package/src/lib/add-mfa-dialog.tsx +1 -1
- package/src/lib/api/user.ts +1 -1
- package/src/lib/change-password-dialog.tsx +1 -1
- package/src/lib/delete-user-dialog.tsx +1 -1
- package/src/lib/edit-user-profile-dialog.tsx +1 -1
- package/src/lib/edit-user-role-dialog.tsx +1 -1
- package/src/lib/elevated-access.tsx +1 -1
- package/src/lib/invite-user-dialog.tsx +1 -1
- package/src/lib/logout-all-sessions-dialog.tsx +1 -1
- package/src/lib/logout-dialog.tsx +1 -5
- package/src/lib/organization-switcher.tsx +1 -5
- package/src/lib/resend-invite-dialog.tsx +1 -1
- package/src/lib/reset-mfa-dialog.tsx +1 -1
- package/src/lib/revoke-invite-dialog.tsx +1 -1
- package/src/lib/set-password-dialog.tsx +1 -1
- package/src/lib/use-security-settings.tsx +1 -1
- package/src/lib/user-actions-dropdown.tsx +2 -2
- package/src/lib/user-profile.tsx +7 -27
- package/src/lib/user-security.tsx +5 -5
- package/src/lib/user-sessions.tsx +1 -1
- package/src/lib/users-filter.tsx +1 -1
- package/src/lib/users-management-context.tsx +1 -1
- package/src/lib/users-management-state.ts +1 -1
- package/src/lib/users-management.tsx +1 -1
- package/src/lib/utils.ts +1 -1
- package/src/organization-switcher.client.tsx +1 -1
- package/src/user-profile.client.tsx +1 -1
- package/src/user-security.client.tsx +1 -5
- package/src/user-sessions.client.tsx +1 -1
- package/src/users-management.client.tsx +1 -1
- package/LICENSE +0 -21
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type AuthToken = string | (() => Promise<string>);
|
|
3
|
+
interface ElevatedAccess {
|
|
4
|
+
token: string;
|
|
5
|
+
expiresAt: string;
|
|
6
|
+
}
|
|
7
|
+
interface ApiConfig {
|
|
8
|
+
authToken: Promise<string> | string;
|
|
9
|
+
authTokenQueryKey: string;
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
elevatedAccess?: ElevatedAccess;
|
|
12
|
+
setElevatedAccess: (elevatedAccess?: ElevatedAccess) => void;
|
|
13
|
+
}
|
|
14
|
+
interface ApiProviderProps {
|
|
15
|
+
authToken: AuthToken;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const ApiProvider: ({ authToken, baseUrl, children, }: ApiProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const useApi: () => ApiConfig;
|
|
21
|
+
export declare const useElevatedAccessToken: () => {
|
|
22
|
+
elevatedAccess: ElevatedAccess | undefined;
|
|
23
|
+
setElevatedAccess: (elevatedAccess?: ElevatedAccess) => void;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=api-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-provider.d.ts","sourceRoot":"","sources":["../../../src/api/api-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzD,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9D;AAID,UAAU,gBAAgB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,sCAIrB,gBAAgB,4CA6ClB,CAAC;AAEF,eAAO,MAAM,MAAM,iBAQlB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;yCAxEI,cAAc,KAAK,IAAI;CA4E7D,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.useElevatedAccessToken = exports.useApi = exports.ApiProvider = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const React = __importStar(require("react"));
|
|
29
|
+
const ApiContext = React.createContext(undefined);
|
|
30
|
+
const ApiProvider = ({ authToken, baseUrl, children, }) => {
|
|
31
|
+
const authTokenPromiseOrString = typeof authToken === "string" ? authToken : authToken();
|
|
32
|
+
const [elevatedAccess, setElevatedAccess] = React.useState();
|
|
33
|
+
const elevatedAccessTimeout = React.useRef();
|
|
34
|
+
// This effect manages the expiration of elevated access tokens
|
|
35
|
+
// When an elevated access token is present, it checks every 30 seconds if the token has expired
|
|
36
|
+
// If the token has expired (current time > expiration time), it clears the elevated access
|
|
37
|
+
React.useEffect(() => {
|
|
38
|
+
if (elevatedAccessTimeout.current) {
|
|
39
|
+
clearInterval(elevatedAccessTimeout.current);
|
|
40
|
+
}
|
|
41
|
+
if (elevatedAccess) {
|
|
42
|
+
elevatedAccessTimeout.current = setInterval(() => {
|
|
43
|
+
const now = new Date();
|
|
44
|
+
const expiresAtDate = new Date(elevatedAccess.expiresAt);
|
|
45
|
+
// Reset the elevated access if it has expired
|
|
46
|
+
if (now > expiresAtDate) {
|
|
47
|
+
setElevatedAccess(undefined);
|
|
48
|
+
}
|
|
49
|
+
}, 30_000); // every 30 seconds
|
|
50
|
+
}
|
|
51
|
+
return () => {
|
|
52
|
+
if (elevatedAccessTimeout.current) {
|
|
53
|
+
clearInterval(elevatedAccessTimeout.current);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, [elevatedAccess]);
|
|
57
|
+
const value = React.useMemo(() => ({
|
|
58
|
+
authToken: authTokenPromiseOrString,
|
|
59
|
+
authTokenQueryKey: getAuthTokenQueryKey(authTokenPromiseOrString),
|
|
60
|
+
baseUrl,
|
|
61
|
+
elevatedAccess,
|
|
62
|
+
setElevatedAccess,
|
|
63
|
+
}), [authTokenPromiseOrString, baseUrl, elevatedAccess, setElevatedAccess]);
|
|
64
|
+
return (0, jsx_runtime_1.jsx)(ApiContext.Provider, { value: value, children: children });
|
|
65
|
+
};
|
|
66
|
+
exports.ApiProvider = ApiProvider;
|
|
67
|
+
const useApi = () => {
|
|
68
|
+
const context = React.useContext(ApiContext);
|
|
69
|
+
if (context === undefined) {
|
|
70
|
+
throw new Error("useApi must be used within an ApiProvider");
|
|
71
|
+
}
|
|
72
|
+
return context;
|
|
73
|
+
};
|
|
74
|
+
exports.useApi = useApi;
|
|
75
|
+
const useElevatedAccessToken = () => {
|
|
76
|
+
const { elevatedAccess, setElevatedAccess } = (0, exports.useApi)();
|
|
77
|
+
return { elevatedAccess, setElevatedAccess };
|
|
78
|
+
};
|
|
79
|
+
exports.useElevatedAccessToken = useElevatedAccessToken;
|
|
80
|
+
// Map promises to a UUID that they can be identified by
|
|
81
|
+
const PromiseKey = new WeakMap();
|
|
82
|
+
/*
|
|
83
|
+
*
|
|
84
|
+
* @param getAccessToken - Async function that returns a promise that resolves to a string
|
|
85
|
+
* @returns a resolved string or null from the access token promise
|
|
86
|
+
*/
|
|
87
|
+
function getAuthTokenQueryKey(authTokenPromiseOrString) {
|
|
88
|
+
// Need to go by equality of the promise to avoid scenarios where
|
|
89
|
+
// 1. The promise is the same, but the function changes
|
|
90
|
+
// 2. The function is the same, but the promise is different ⚠️
|
|
91
|
+
//
|
|
92
|
+
// This does have the unfortunate side effect where if the function result
|
|
93
|
+
// isn't memoized somehow, then it will invalidate the query on every render.
|
|
94
|
+
// This doesn't occur with the current use case of getAccessToken from
|
|
95
|
+
// useAuth, but could in a custom implementation.
|
|
96
|
+
//
|
|
97
|
+
// Other things I explored:
|
|
98
|
+
// 1. Removing promise api, and force user to resolve the promise
|
|
99
|
+
// themselves. The user can already do this with the string API, so
|
|
100
|
+
// it's not necessary, and they could run into issues 1, or 2 if
|
|
101
|
+
// implemented wrong.
|
|
102
|
+
// 2. Memoizing the function - this results in issue 2, where the function
|
|
103
|
+
// is static, but the promise changes. I believe this actually is the
|
|
104
|
+
// case with useAuth since it only sets the client once on initialization,
|
|
105
|
+
// and binds the function to the client after that promise resolves.
|
|
106
|
+
if (typeof authTokenPromiseOrString === "string") {
|
|
107
|
+
return authTokenPromiseOrString;
|
|
108
|
+
}
|
|
109
|
+
const authTokenPromise = authTokenPromiseOrString;
|
|
110
|
+
// Cannot memoize on the function because it could remain the same while
|
|
111
|
+
// returning a different promise (and useAuth behaves this way).
|
|
112
|
+
const promiseKey = PromiseKey.get(authTokenPromise);
|
|
113
|
+
// Side effect, but we we're using a weak map, so it should be pretty safe
|
|
114
|
+
if (!promiseKey) {
|
|
115
|
+
const newPromiseKey = `${Math.random()}`;
|
|
116
|
+
PromiseKey.set(authTokenPromise, newPromiseKey);
|
|
117
|
+
return newPromiseKey;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return promiseKey;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=api-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-provider.js","sourceRoot":"","sources":["../../../src/api/api-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/api/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/api/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,GAAG,CAAC"}
|