@contember/react-identity 1.3.0-alpha.14
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/development/components/HasRole.cjs +24 -0
- package/dist/development/components/HasRole.cjs.map +1 -0
- package/dist/development/components/HasRole.js +24 -0
- package/dist/development/components/HasRole.js.map +1 -0
- package/dist/development/components/IdentityProvider.cjs +27 -0
- package/dist/development/components/IdentityProvider.cjs.map +1 -0
- package/dist/development/components/IdentityProvider.js +27 -0
- package/dist/development/components/IdentityProvider.js.map +1 -0
- package/dist/development/components/IdentityState.cjs +9 -0
- package/dist/development/components/IdentityState.cjs.map +1 -0
- package/dist/development/components/IdentityState.js +9 -0
- package/dist/development/components/IdentityState.js.map +1 -0
- package/dist/development/components/LogoutTrigger.cjs +12 -0
- package/dist/development/components/LogoutTrigger.cjs.map +1 -0
- package/dist/development/components/LogoutTrigger.js +12 -0
- package/dist/development/components/LogoutTrigger.js.map +1 -0
- package/dist/development/environment/IdentityEnvironmentExtension.cjs +13 -0
- package/dist/development/environment/IdentityEnvironmentExtension.cjs.map +1 -0
- package/dist/development/environment/IdentityEnvironmentExtension.js +13 -0
- package/dist/development/environment/IdentityEnvironmentExtension.js.map +1 -0
- package/dist/development/environment/ProjectEnvironmentExtension.cjs +13 -0
- package/dist/development/environment/ProjectEnvironmentExtension.cjs.map +1 -0
- package/dist/development/environment/ProjectEnvironmentExtension.js +13 -0
- package/dist/development/environment/ProjectEnvironmentExtension.js.map +1 -0
- package/dist/development/hooks/useFetchIdentity.cjs +51 -0
- package/dist/development/hooks/useFetchIdentity.cjs.map +1 -0
- package/dist/development/hooks/useFetchIdentity.js +51 -0
- package/dist/development/hooks/useFetchIdentity.js.map +1 -0
- package/dist/development/hooks/useLogout.cjs +10 -0
- package/dist/development/hooks/useLogout.cjs.map +1 -0
- package/dist/development/hooks/useLogout.js +10 -0
- package/dist/development/hooks/useLogout.js.map +1 -0
- package/dist/development/hooks/useProjectUserRoles.cjs +21 -0
- package/dist/development/hooks/useProjectUserRoles.cjs.map +1 -0
- package/dist/development/hooks/useProjectUserRoles.js +21 -0
- package/dist/development/hooks/useProjectUserRoles.js.map +1 -0
- package/dist/development/index.cjs +25 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +25 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/internal/contexts.cjs +13 -0
- package/dist/development/internal/contexts.cjs.map +1 -0
- package/dist/development/internal/contexts.js +13 -0
- package/dist/development/internal/contexts.js.map +1 -0
- package/dist/development/internal/hooks/useFetchMe.cjs +32 -0
- package/dist/development/internal/hooks/useFetchMe.cjs.map +1 -0
- package/dist/development/internal/hooks/useFetchMe.js +15 -0
- package/dist/development/internal/hooks/useFetchMe.js.map +1 -0
- package/dist/development/internal/hooks/useLogoutInternal.cjs +35 -0
- package/dist/development/internal/hooks/useLogoutInternal.cjs.map +1 -0
- package/dist/development/internal/hooks/useLogoutInternal.js +35 -0
- package/dist/development/internal/hooks/useLogoutInternal.js.map +1 -0
- package/dist/development/internal/hooks/useSignOut.cjs +30 -0
- package/dist/development/internal/hooks/useSignOut.cjs.map +1 -0
- package/dist/development/internal/hooks/useSignOut.js +13 -0
- package/dist/development/internal/hooks/useSignOut.js.map +1 -0
- package/dist/production/components/HasRole.cjs +24 -0
- package/dist/production/components/HasRole.cjs.map +1 -0
- package/dist/production/components/HasRole.js +24 -0
- package/dist/production/components/HasRole.js.map +1 -0
- package/dist/production/components/IdentityProvider.cjs +27 -0
- package/dist/production/components/IdentityProvider.cjs.map +1 -0
- package/dist/production/components/IdentityProvider.js +27 -0
- package/dist/production/components/IdentityProvider.js.map +1 -0
- package/dist/production/components/IdentityState.cjs +9 -0
- package/dist/production/components/IdentityState.cjs.map +1 -0
- package/dist/production/components/IdentityState.js +9 -0
- package/dist/production/components/IdentityState.js.map +1 -0
- package/dist/production/components/LogoutTrigger.cjs +12 -0
- package/dist/production/components/LogoutTrigger.cjs.map +1 -0
- package/dist/production/components/LogoutTrigger.js +12 -0
- package/dist/production/components/LogoutTrigger.js.map +1 -0
- package/dist/production/environment/IdentityEnvironmentExtension.cjs +13 -0
- package/dist/production/environment/IdentityEnvironmentExtension.cjs.map +1 -0
- package/dist/production/environment/IdentityEnvironmentExtension.js +13 -0
- package/dist/production/environment/IdentityEnvironmentExtension.js.map +1 -0
- package/dist/production/environment/ProjectEnvironmentExtension.cjs +13 -0
- package/dist/production/environment/ProjectEnvironmentExtension.cjs.map +1 -0
- package/dist/production/environment/ProjectEnvironmentExtension.js +13 -0
- package/dist/production/environment/ProjectEnvironmentExtension.js.map +1 -0
- package/dist/production/hooks/useFetchIdentity.cjs +51 -0
- package/dist/production/hooks/useFetchIdentity.cjs.map +1 -0
- package/dist/production/hooks/useFetchIdentity.js +51 -0
- package/dist/production/hooks/useFetchIdentity.js.map +1 -0
- package/dist/production/hooks/useLogout.cjs +10 -0
- package/dist/production/hooks/useLogout.cjs.map +1 -0
- package/dist/production/hooks/useLogout.js +10 -0
- package/dist/production/hooks/useLogout.js.map +1 -0
- package/dist/production/hooks/useProjectUserRoles.cjs +21 -0
- package/dist/production/hooks/useProjectUserRoles.cjs.map +1 -0
- package/dist/production/hooks/useProjectUserRoles.js +21 -0
- package/dist/production/hooks/useProjectUserRoles.js.map +1 -0
- package/dist/production/index.cjs +25 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +25 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/internal/contexts.cjs +13 -0
- package/dist/production/internal/contexts.cjs.map +1 -0
- package/dist/production/internal/contexts.js +13 -0
- package/dist/production/internal/contexts.js.map +1 -0
- package/dist/production/internal/hooks/useFetchMe.cjs +32 -0
- package/dist/production/internal/hooks/useFetchMe.cjs.map +1 -0
- package/dist/production/internal/hooks/useFetchMe.js +15 -0
- package/dist/production/internal/hooks/useFetchMe.js.map +1 -0
- package/dist/production/internal/hooks/useLogoutInternal.cjs +35 -0
- package/dist/production/internal/hooks/useLogoutInternal.cjs.map +1 -0
- package/dist/production/internal/hooks/useLogoutInternal.js +35 -0
- package/dist/production/internal/hooks/useLogoutInternal.js.map +1 -0
- package/dist/production/internal/hooks/useSignOut.cjs +30 -0
- package/dist/production/internal/hooks/useSignOut.cjs.map +1 -0
- package/dist/production/internal/hooks/useSignOut.js +13 -0
- package/dist/production/internal/hooks/useSignOut.js.map +1 -0
- package/dist/types/components/HasRole.d.ts +11 -0
- package/dist/types/components/HasRole.d.ts.map +1 -0
- package/dist/types/components/IdentityProvider.d.ts +6 -0
- package/dist/types/components/IdentityProvider.d.ts.map +1 -0
- package/dist/types/components/IdentityState.d.ts +8 -0
- package/dist/types/components/IdentityState.d.ts.map +1 -0
- package/dist/types/components/LogoutTrigger.d.ts +5 -0
- package/dist/types/components/LogoutTrigger.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/environment/IdentityEnvironmentExtension.d.ts +6 -0
- package/dist/types/environment/IdentityEnvironmentExtension.d.ts.map +1 -0
- package/dist/types/environment/ProjectEnvironmentExtension.d.ts +5 -0
- package/dist/types/environment/ProjectEnvironmentExtension.d.ts.map +1 -0
- package/dist/types/environment/index.d.ts +3 -0
- package/dist/types/environment/index.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +5 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useFetchIdentity.d.ts +6 -0
- package/dist/types/hooks/useFetchIdentity.d.ts.map +1 -0
- package/dist/types/hooks/useLogout.d.ts +4 -0
- package/dist/types/hooks/useLogout.d.ts.map +1 -0
- package/dist/types/hooks/useProjectUserRoles.d.ts +3 -0
- package/dist/types/hooks/useProjectUserRoles.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/internal/contexts.d.ts +7 -0
- package/dist/types/internal/contexts.d.ts.map +1 -0
- package/dist/types/internal/hooks/useFetchMe.d.ts +94 -0
- package/dist/types/internal/hooks/useFetchMe.d.ts.map +1 -0
- package/dist/types/internal/hooks/useLogoutInternal.d.ts +4 -0
- package/dist/types/internal/hooks/useLogoutInternal.d.ts.map +1 -0
- package/dist/types/internal/hooks/useSignOut.d.ts +26 -0
- package/dist/types/internal/hooks/useSignOut.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types/Identity.d.ts +19 -0
- package/dist/types/types/Identity.d.ts.map +1 -0
- package/dist/types/types/IdentityMethods.d.ts +5 -0
- package/dist/types/types/IdentityMethods.d.ts.map +1 -0
- package/dist/types/types/IdentityStateValue.d.ts +2 -0
- package/dist/types/types/IdentityStateValue.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +58 -0
- package/src/components/HasRole.tsx +33 -0
- package/src/components/IdentityProvider.tsx +40 -0
- package/src/components/IdentityState.tsx +14 -0
- package/src/components/LogoutTrigger.tsx +10 -0
- package/src/components/index.ts +4 -0
- package/src/environment/IdentityEnvironmentExtension.ts +12 -0
- package/src/environment/ProjectEnvironmentExtension.tsx +10 -0
- package/src/environment/index.ts +2 -0
- package/src/hooks/index.ts +8 -0
- package/src/hooks/useFetchIdentity.ts +54 -0
- package/src/hooks/useLogout.ts +7 -0
- package/src/hooks/useProjectUserRoles.tsx +21 -0
- package/src/index.ts +4 -0
- package/src/internal/contexts.ts +8 -0
- package/src/internal/hooks/useFetchMe.ts +21 -0
- package/src/internal/hooks/useLogoutInternal.ts +35 -0
- package/src/internal/hooks/useSignOut.ts +13 -0
- package/src/tsconfig.json +12 -0
- package/src/types/Identity.ts +20 -0
- package/src/types/IdentityMethods.ts +4 -0
- package/src/types/IdentityStateValue.ts +6 -0
- package/src/types/index.ts +3 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const reactBinding = require("@contember/react-binding");
|
|
5
|
+
const useProjectUserRoles = require("../hooks/useProjectUserRoles.cjs");
|
|
6
|
+
const IdentityEnvironmentExtension = require("../environment/IdentityEnvironmentExtension.cjs");
|
|
7
|
+
const ProjectEnvironmentExtension = require("../environment/ProjectEnvironmentExtension.cjs");
|
|
8
|
+
const HasRole = reactBinding.Component(({ children, role }) => {
|
|
9
|
+
const projectRoles = useProjectUserRoles.useProjectUserRoles();
|
|
10
|
+
return evaluateCondition(role, projectRoles) ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) : null;
|
|
11
|
+
}, ({ children, role }, env) => {
|
|
12
|
+
const identity = env.getExtension(IdentityEnvironmentExtension.identityEnvironmentExtension).identity;
|
|
13
|
+
const project = env.getExtension(ProjectEnvironmentExtension.projectEnvironmentExtension).slug;
|
|
14
|
+
const projectRoles = new Set(identity?.projects.find((it) => it.slug === project)?.roles ?? []);
|
|
15
|
+
return evaluateCondition(role, projectRoles) ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) : null;
|
|
16
|
+
});
|
|
17
|
+
const evaluateCondition = (condition, roles) => {
|
|
18
|
+
if (typeof condition === "string") {
|
|
19
|
+
return roles.has(condition);
|
|
20
|
+
}
|
|
21
|
+
return condition(roles);
|
|
22
|
+
};
|
|
23
|
+
exports.HasRole = HasRole;
|
|
24
|
+
//# sourceMappingURL=HasRole.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HasRole.cjs","sources":["../../../src/components/HasRole.tsx"],"sourcesContent":["import { Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\nimport { useProjectUserRoles } from '../hooks'\nimport { identityEnvironmentExtension, projectEnvironmentExtension } from '../environment'\n\nexport type RoleCondition = string | ((roles: Set<string>) => boolean)\n\nexport interface HasRoleProps {\n\tchildren?: ReactNode\n\trole: RoleCondition\n}\n\n/**\n * @group Logic Components\n */\nexport const HasRole = Component<HasRoleProps>(({ children, role }) => {\n\tconst projectRoles = useProjectUserRoles()\n\n\treturn evaluateCondition(role, projectRoles) ? <>{children}</> : null\n}, ({ children, role }, env) => {\n\tconst identity = env.getExtension(identityEnvironmentExtension).identity\n\tconst project = env.getExtension(projectEnvironmentExtension).slug\n\tconst projectRoles = new Set(identity?.projects.find(it => it.slug === project)?.roles ?? [])\n\n\treturn evaluateCondition(role, projectRoles) ? <>{children}</> : null\n})\n\nconst evaluateCondition = (condition: RoleCondition, roles: Set<string>) => {\n\tif (typeof condition === 'string') {\n\t\treturn roles.has(condition)\n\t}\n\treturn condition(roles)\n}\n"],"names":["Component","useProjectUserRoles","jsx","Fragment","identityEnvironmentExtension","projectEnvironmentExtension"],"mappings":";;;;;;;AAeO,MAAM,UAAUA,aAAAA,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAeC,oBAAAA;AAErB,SAAO,kBAAkB,MAAM,YAAY,IAAIC,2BAAAA,IAAAC,WAAAA,UAAA,EAAG,UAAS,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAaC,6BAA4B,4BAAA,EAAE;AAChE,QAAM,UAAU,IAAI,aAAaC,4BAA2B,2BAAA,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAI,UAAU,SAAS,KAAK,CAAM,OAAA,GAAG,SAAS,OAAO,GAAG,SAAS,CAAE,CAAA;AAE5F,SAAO,kBAAkB,MAAM,YAAY,IAAIH,2BAAAA,IAAAC,WAAAA,UAAA,EAAG,UAAS,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Component } from "@contember/react-binding";
|
|
3
|
+
import { useProjectUserRoles } from "../hooks/useProjectUserRoles.js";
|
|
4
|
+
import { identityEnvironmentExtension } from "../environment/IdentityEnvironmentExtension.js";
|
|
5
|
+
import { projectEnvironmentExtension } from "../environment/ProjectEnvironmentExtension.js";
|
|
6
|
+
const HasRole = Component(({ children, role }) => {
|
|
7
|
+
const projectRoles = useProjectUserRoles();
|
|
8
|
+
return evaluateCondition(role, projectRoles) ? /* @__PURE__ */ jsx(Fragment, { children }) : null;
|
|
9
|
+
}, ({ children, role }, env) => {
|
|
10
|
+
const identity = env.getExtension(identityEnvironmentExtension).identity;
|
|
11
|
+
const project = env.getExtension(projectEnvironmentExtension).slug;
|
|
12
|
+
const projectRoles = new Set(identity?.projects.find((it) => it.slug === project)?.roles ?? []);
|
|
13
|
+
return evaluateCondition(role, projectRoles) ? /* @__PURE__ */ jsx(Fragment, { children }) : null;
|
|
14
|
+
});
|
|
15
|
+
const evaluateCondition = (condition, roles) => {
|
|
16
|
+
if (typeof condition === "string") {
|
|
17
|
+
return roles.has(condition);
|
|
18
|
+
}
|
|
19
|
+
return condition(roles);
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
HasRole
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=HasRole.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HasRole.js","sources":["../../../src/components/HasRole.tsx"],"sourcesContent":["import { Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\nimport { useProjectUserRoles } from '../hooks'\nimport { identityEnvironmentExtension, projectEnvironmentExtension } from '../environment'\n\nexport type RoleCondition = string | ((roles: Set<string>) => boolean)\n\nexport interface HasRoleProps {\n\tchildren?: ReactNode\n\trole: RoleCondition\n}\n\n/**\n * @group Logic Components\n */\nexport const HasRole = Component<HasRoleProps>(({ children, role }) => {\n\tconst projectRoles = useProjectUserRoles()\n\n\treturn evaluateCondition(role, projectRoles) ? <>{children}</> : null\n}, ({ children, role }, env) => {\n\tconst identity = env.getExtension(identityEnvironmentExtension).identity\n\tconst project = env.getExtension(projectEnvironmentExtension).slug\n\tconst projectRoles = new Set(identity?.projects.find(it => it.slug === project)?.roles ?? [])\n\n\treturn evaluateCondition(role, projectRoles) ? <>{children}</> : null\n})\n\nconst evaluateCondition = (condition: RoleCondition, roles: Set<string>) => {\n\tif (typeof condition === 'string') {\n\t\treturn roles.has(condition)\n\t}\n\treturn condition(roles)\n}\n"],"names":[],"mappings":";;;;;AAeO,MAAM,UAAU,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAe;AAErB,SAAO,kBAAkB,MAAM,YAAY,IAAI,oBAAA,UAAA,EAAG,UAAS,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAa,4BAA4B,EAAE;AAChE,QAAM,UAAU,IAAI,aAAa,2BAA2B,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAI,UAAU,SAAS,KAAK,CAAM,OAAA,GAAG,SAAS,OAAO,GAAG,SAAS,CAAE,CAAA;AAE5F,SAAO,kBAAkB,MAAM,YAAY,IAAI,oBAAA,UAAA,EAAG,UAAS,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const reactClient = require("@contember/react-client");
|
|
5
|
+
const react = require("react");
|
|
6
|
+
const reactBinding = require("@contember/react-binding");
|
|
7
|
+
const contexts = require("../internal/contexts.cjs");
|
|
8
|
+
const IdentityEnvironmentExtension = require("../environment/IdentityEnvironmentExtension.cjs");
|
|
9
|
+
const useFetchIdentity = require("../hooks/useFetchIdentity.cjs");
|
|
10
|
+
const IdentityProvider = ({ children }) => {
|
|
11
|
+
const sessionToken = reactClient.useSessionToken();
|
|
12
|
+
const [{ identity, state }, methods] = useFetchIdentity.useFetchIdentity();
|
|
13
|
+
const { refreshIdentity, clearIdentity } = methods;
|
|
14
|
+
react.useEffect(
|
|
15
|
+
() => {
|
|
16
|
+
if (sessionToken !== void 0) {
|
|
17
|
+
refreshIdentity();
|
|
18
|
+
} else {
|
|
19
|
+
clearIdentity();
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
[sessionToken, refreshIdentity, clearIdentity]
|
|
23
|
+
);
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(contexts.IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxRuntime.jsx(reactBinding.EnvironmentExtensionProvider, { extension: IdentityEnvironmentExtension.identityEnvironmentExtension, state: identity ?? null, children }) }) }) });
|
|
25
|
+
};
|
|
26
|
+
exports.IdentityProvider = IdentityProvider;
|
|
27
|
+
//# sourceMappingURL=IdentityProvider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.cjs","sources":["../../../src/components/IdentityProvider.tsx"],"sourcesContent":["import { useSessionToken } from '@contember/react-client'\nimport { ReactNode, useEffect } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { useFetchIdentity } from '../hooks'\nimport { IdentityContext, IdentityMethodsContext, IdentityStateContext } from '../internal/contexts'\nimport { identityEnvironmentExtension } from '../environment/IdentityEnvironmentExtension'\n\n\nexport interface IdentityProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityProvider: React.FC<IdentityProviderProps> = ({ children }) => {\n\tconst sessionToken = useSessionToken()\n\tconst [{ identity, state }, methods] = useFetchIdentity()\n\n\tconst { refreshIdentity, clearIdentity } = methods\n\tuseEffect(\n\t\t() => {\n\t\t\tif (sessionToken !== undefined) {\n\t\t\t\trefreshIdentity()\n\t\t\t} else {\n\t\t\t\tclearIdentity()\n\t\t\t}\n\t\t},\n\t\t[sessionToken, refreshIdentity, clearIdentity],\n\t)\n\n\treturn (\n\t\t<IdentityStateContext.Provider value={state}>\n\t\t\t<IdentityContext.Provider value={identity}>\n\t\t\t\t<IdentityMethodsContext.Provider value={methods}>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</IdentityMethodsContext.Provider>\n\t\t\t</IdentityContext.Provider>\n\t\t</IdentityStateContext.Provider>\n\t)\n}\n"],"names":["useSessionToken","useFetchIdentity","useEffect","jsx","IdentityStateContext","IdentityContext","IdentityMethodsContext","EnvironmentExtensionProvider","identityEnvironmentExtension"],"mappings":";;;;;;;;;AAYO,MAAM,mBAAoD,CAAC,EAAE,eAAe;AAClF,QAAM,eAAeA,YAAAA;AACrB,QAAM,CAAC,EAAE,UAAU,MAAS,GAAA,OAAO,IAAIC,iBAAAA;AAEjC,QAAA,EAAE,iBAAiB,cAAkB,IAAA;AAC3CC,QAAA;AAAA,IACC,MAAM;AACL,UAAI,iBAAiB,QAAW;AACf;MAAA,OACV;AACQ;MACf;AAAA,IACD;AAAA,IACA,CAAC,cAAc,iBAAiB,aAAa;AAAA,EAAA;AAG9C,SACEC,2BAAAA,IAAAC,SAAAA,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAACD,2BAAAA,IAAAE,SAAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,UAACF,2BAAA,IAAAG,gCAAuB,UAAvB,EAAgC,OAAO,SACvC,UAACH,2BAAA,IAAAI,aAAA,8BAAA,EAA6B,WAAWC,6BAAA,8BAA8B,OAAO,YAAY,MACxF,SAAA,CACF,EACD,CAAA,EAAA,CACD,EACD,CAAA;AAEF;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useSessionToken } from "@contember/react-client";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { EnvironmentExtensionProvider } from "@contember/react-binding";
|
|
5
|
+
import { IdentityStateContext, IdentityContext, IdentityMethodsContext } from "../internal/contexts.js";
|
|
6
|
+
import { identityEnvironmentExtension } from "../environment/IdentityEnvironmentExtension.js";
|
|
7
|
+
import { useFetchIdentity } from "../hooks/useFetchIdentity.js";
|
|
8
|
+
const IdentityProvider = ({ children }) => {
|
|
9
|
+
const sessionToken = useSessionToken();
|
|
10
|
+
const [{ identity, state }, methods] = useFetchIdentity();
|
|
11
|
+
const { refreshIdentity, clearIdentity } = methods;
|
|
12
|
+
useEffect(
|
|
13
|
+
() => {
|
|
14
|
+
if (sessionToken !== void 0) {
|
|
15
|
+
refreshIdentity();
|
|
16
|
+
} else {
|
|
17
|
+
clearIdentity();
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
[sessionToken, refreshIdentity, clearIdentity]
|
|
21
|
+
);
|
|
22
|
+
return /* @__PURE__ */ jsx(IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsx(IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsx(IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsx(EnvironmentExtensionProvider, { extension: identityEnvironmentExtension, state: identity ?? null, children }) }) }) });
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
IdentityProvider
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=IdentityProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.js","sources":["../../../src/components/IdentityProvider.tsx"],"sourcesContent":["import { useSessionToken } from '@contember/react-client'\nimport { ReactNode, useEffect } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { useFetchIdentity } from '../hooks'\nimport { IdentityContext, IdentityMethodsContext, IdentityStateContext } from '../internal/contexts'\nimport { identityEnvironmentExtension } from '../environment/IdentityEnvironmentExtension'\n\n\nexport interface IdentityProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityProvider: React.FC<IdentityProviderProps> = ({ children }) => {\n\tconst sessionToken = useSessionToken()\n\tconst [{ identity, state }, methods] = useFetchIdentity()\n\n\tconst { refreshIdentity, clearIdentity } = methods\n\tuseEffect(\n\t\t() => {\n\t\t\tif (sessionToken !== undefined) {\n\t\t\t\trefreshIdentity()\n\t\t\t} else {\n\t\t\t\tclearIdentity()\n\t\t\t}\n\t\t},\n\t\t[sessionToken, refreshIdentity, clearIdentity],\n\t)\n\n\treturn (\n\t\t<IdentityStateContext.Provider value={state}>\n\t\t\t<IdentityContext.Provider value={identity}>\n\t\t\t\t<IdentityMethodsContext.Provider value={methods}>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</IdentityMethodsContext.Provider>\n\t\t\t</IdentityContext.Provider>\n\t\t</IdentityStateContext.Provider>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;AAYO,MAAM,mBAAoD,CAAC,EAAE,eAAe;AAClF,QAAM,eAAe;AACrB,QAAM,CAAC,EAAE,UAAU,MAAS,GAAA,OAAO,IAAI;AAEjC,QAAA,EAAE,iBAAiB,cAAkB,IAAA;AAC3C;AAAA,IACC,MAAM;AACL,UAAI,iBAAiB,QAAW;AACf;MAAA,OACV;AACQ;MACf;AAAA,IACD;AAAA,IACA,CAAC,cAAc,iBAAiB,aAAa;AAAA,EAAA;AAG9C,SACE,oBAAA,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAAC,oBAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,UAAC,oBAAA,uBAAuB,UAAvB,EAAgC,OAAO,SACvC,UAAC,oBAAA,8BAAA,EAA6B,WAAW,8BAA8B,OAAO,YAAY,MACxF,SAAA,CACF,EACD,CAAA,EAAA,CACD,EACD,CAAA;AAEF;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const contexts = require("../internal/contexts.cjs");
|
|
4
|
+
const IdentityState = ({ state, children }) => {
|
|
5
|
+
const currentState = contexts.useIdentityState();
|
|
6
|
+
return state === currentState || Array.isArray(state) && state.includes(currentState) ? children : null;
|
|
7
|
+
};
|
|
8
|
+
exports.IdentityState = IdentityState;
|
|
9
|
+
//# sourceMappingURL=IdentityState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityState.cjs","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { IdentityStateValue } from '../types'\nimport { useIdentityState } from '../internal/contexts'\n\nexport interface IdentityStateProps {\n\tstate: IdentityStateValue | IdentityStateValue[]\n\tchildren: ReactNode\n}\n\nexport const IdentityState = ({ state, children }: IdentityStateProps) => {\n\tconst currentState = useIdentityState()\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? children : null\n}\n"],"names":["useIdentityState"],"mappings":";;;AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAeA,SAAAA;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAK,WAAW;AACtG;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useIdentityState } from "../internal/contexts.js";
|
|
2
|
+
const IdentityState = ({ state, children }) => {
|
|
3
|
+
const currentState = useIdentityState();
|
|
4
|
+
return state === currentState || Array.isArray(state) && state.includes(currentState) ? children : null;
|
|
5
|
+
};
|
|
6
|
+
export {
|
|
7
|
+
IdentityState
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=IdentityState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityState.js","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { IdentityStateValue } from '../types'\nimport { useIdentityState } from '../internal/contexts'\n\nexport interface IdentityStateProps {\n\tstate: IdentityStateValue | IdentityStateValue[]\n\tchildren: ReactNode\n}\n\nexport const IdentityState = ({ state, children }: IdentityStateProps) => {\n\tconst currentState = useIdentityState()\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? children : null\n}\n"],"names":[],"mappings":";AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAe;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAK,WAAW;AACtG;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const reactSlot = require("@radix-ui/react-slot");
|
|
6
|
+
const useLogout = require("../hooks/useLogout.cjs");
|
|
7
|
+
const LogoutTrigger = ({ children }) => {
|
|
8
|
+
const logout = useLogout.useLogout();
|
|
9
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { onClick: react.useCallback(() => logout(), [logout]), children });
|
|
10
|
+
};
|
|
11
|
+
exports.LogoutTrigger = LogoutTrigger;
|
|
12
|
+
//# sourceMappingURL=LogoutTrigger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogoutTrigger.cjs","sources":["../../../src/components/LogoutTrigger.tsx"],"sourcesContent":["import { ReactNode, useCallback } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { useLogout } from '../hooks'\n\nexport const LogoutTrigger = ({ children }: {\n\tchildren: ReactNode\n}) => {\n\tconst logout = useLogout()\n\treturn <Slot onClick={useCallback(() => logout(), [logout])}>{children}</Slot>\n}\n"],"names":["useLogout","jsx","Slot","useCallback"],"mappings":";;;;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAASA,UAAAA;AACR,SAAAC,+BAACC,UAAAA,MAAK,EAAA,SAASC,MAAAA,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAS,CAAA;AACxE;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
+
import { useLogout } from "../hooks/useLogout.js";
|
|
5
|
+
const LogoutTrigger = ({ children }) => {
|
|
6
|
+
const logout = useLogout();
|
|
7
|
+
return /* @__PURE__ */ jsx(Slot, { onClick: useCallback(() => logout(), [logout]), children });
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
LogoutTrigger
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=LogoutTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogoutTrigger.js","sources":["../../../src/components/LogoutTrigger.tsx"],"sourcesContent":["import { ReactNode, useCallback } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { useLogout } from '../hooks'\n\nexport const LogoutTrigger = ({ children }: {\n\tchildren: ReactNode\n}) => {\n\tconst logout = useLogout()\n\treturn <Slot onClick={useCallback(() => logout(), [logout])}>{children}</Slot>\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAAS;AACR,SAAA,oBAAC,MAAK,EAAA,SAAS,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAS,CAAA;AACxE;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactBinding = require("@contember/react-binding");
|
|
4
|
+
const identityEnvironmentExtension = reactBinding.Environment.createExtension((state) => {
|
|
5
|
+
if (state === void 0) {
|
|
6
|
+
throw new reactBinding.BindingError("Environment does not contain identity state.");
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
identity: state ?? void 0
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
exports.identityEnvironmentExtension = identityEnvironmentExtension;
|
|
13
|
+
//# sourceMappingURL=IdentityEnvironmentExtension.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityEnvironmentExtension.cjs","sources":["../../../src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '../types'\n\nexport const identityEnvironmentExtension = Environment.createExtension((state: Identity | null | undefined) => {\n\tif (state === undefined) {\n\t\tthrow new BindingError('Environment does not contain identity state.')\n\t}\n\n\treturn {\n\t\tidentity: state ?? undefined,\n\t}\n})\n"],"names":["Environment","BindingError"],"mappings":";;;AAGO,MAAM,+BAA+BA,aAAA,YAAY,gBAAgB,CAAC,UAAuC;AAC/G,MAAI,UAAU,QAAW;AAClB,UAAA,IAAIC,aAAAA,aAAa,8CAA8C;AAAA,EACtE;AAEO,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Environment, BindingError } from "@contember/react-binding";
|
|
2
|
+
const identityEnvironmentExtension = Environment.createExtension((state) => {
|
|
3
|
+
if (state === void 0) {
|
|
4
|
+
throw new BindingError("Environment does not contain identity state.");
|
|
5
|
+
}
|
|
6
|
+
return {
|
|
7
|
+
identity: state ?? void 0
|
|
8
|
+
};
|
|
9
|
+
});
|
|
10
|
+
export {
|
|
11
|
+
identityEnvironmentExtension
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=IdentityEnvironmentExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityEnvironmentExtension.js","sources":["../../../src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '../types'\n\nexport const identityEnvironmentExtension = Environment.createExtension((state: Identity | null | undefined) => {\n\tif (state === undefined) {\n\t\tthrow new BindingError('Environment does not contain identity state.')\n\t}\n\n\treturn {\n\t\tidentity: state ?? undefined,\n\t}\n})\n"],"names":[],"mappings":";AAGO,MAAM,+BAA+B,YAAY,gBAAgB,CAAC,UAAuC;AAC/G,MAAI,UAAU,QAAW;AAClB,UAAA,IAAI,aAAa,8CAA8C;AAAA,EACtE;AAEO,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactBinding = require("@contember/react-binding");
|
|
4
|
+
const projectEnvironmentExtension = reactBinding.Environment.createExtension((slug) => {
|
|
5
|
+
if (slug === void 0) {
|
|
6
|
+
throw new reactBinding.BindingError("Environment does not contain project slug state.");
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
slug: slug ?? void 0
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
exports.projectEnvironmentExtension = projectEnvironmentExtension;
|
|
13
|
+
//# sourceMappingURL=ProjectEnvironmentExtension.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectEnvironmentExtension.cjs","sources":["../../../src/environment/ProjectEnvironmentExtension.tsx"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\n\nexport const projectEnvironmentExtension = Environment.createExtension((slug: string | null | undefined) => {\n\tif (slug === undefined) {\n\t\tthrow new BindingError('Environment does not contain project slug state.')\n\t}\n\treturn {\n\t\tslug: slug ?? undefined,\n\t}\n})\n"],"names":["Environment","BindingError"],"mappings":";;;AAEO,MAAM,8BAA8BA,aAAA,YAAY,gBAAgB,CAAC,SAAoC;AAC3G,MAAI,SAAS,QAAW;AACjB,UAAA,IAAIC,aAAAA,aAAa,kDAAkD;AAAA,EAC1E;AACO,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Environment, BindingError } from "@contember/react-binding";
|
|
2
|
+
const projectEnvironmentExtension = Environment.createExtension((slug) => {
|
|
3
|
+
if (slug === void 0) {
|
|
4
|
+
throw new BindingError("Environment does not contain project slug state.");
|
|
5
|
+
}
|
|
6
|
+
return {
|
|
7
|
+
slug: slug ?? void 0
|
|
8
|
+
};
|
|
9
|
+
});
|
|
10
|
+
export {
|
|
11
|
+
projectEnvironmentExtension
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ProjectEnvironmentExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectEnvironmentExtension.js","sources":["../../../src/environment/ProjectEnvironmentExtension.tsx"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\n\nexport const projectEnvironmentExtension = Environment.createExtension((slug: string | null | undefined) => {\n\tif (slug === undefined) {\n\t\tthrow new BindingError('Environment does not contain project slug state.')\n\t}\n\treturn {\n\t\tslug: slug ?? undefined,\n\t}\n})\n"],"names":[],"mappings":";AAEO,MAAM,8BAA8B,YAAY,gBAAgB,CAAC,SAAoC;AAC3G,MAAI,SAAS,QAAW;AACjB,UAAA,IAAI,aAAa,kDAAkD;AAAA,EAC1E;AACO,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
const reactClient = require("@contember/react-client");
|
|
5
|
+
const useFetchMe = require("../internal/hooks/useFetchMe.cjs");
|
|
6
|
+
const useLogoutInternal = require("../internal/hooks/useLogoutInternal.cjs");
|
|
7
|
+
const useFetchIdentity = () => {
|
|
8
|
+
const sessionToken = reactClient.useSessionToken();
|
|
9
|
+
const fetchMe = useFetchMe.useFetchMe();
|
|
10
|
+
const [identityState, setIdentityState] = react.useState(sessionToken ? "loading" : "none");
|
|
11
|
+
const [identity, setIdentity] = react.useState();
|
|
12
|
+
const clearIdentity = react.useCallback(() => setIdentityState("cleared"), []);
|
|
13
|
+
const logout = useLogoutInternal.useLogoutInternal(clearIdentity);
|
|
14
|
+
const fetch = react.useCallback(async () => {
|
|
15
|
+
setIdentityState("loading");
|
|
16
|
+
try {
|
|
17
|
+
const response = await fetchMe();
|
|
18
|
+
const person = response.person;
|
|
19
|
+
const projects = response.projects;
|
|
20
|
+
const permissions = response.permissions ?? { canCreateProject: false };
|
|
21
|
+
setIdentityState("success");
|
|
22
|
+
setIdentity({
|
|
23
|
+
id: response.id,
|
|
24
|
+
person: person ?? void 0,
|
|
25
|
+
projects: projects.map((it) => ({
|
|
26
|
+
name: it.project.name,
|
|
27
|
+
slug: it.project.slug,
|
|
28
|
+
roles: it.memberships.map((it2) => it2.role)
|
|
29
|
+
})),
|
|
30
|
+
permissions
|
|
31
|
+
});
|
|
32
|
+
} catch (e) {
|
|
33
|
+
console.error(e);
|
|
34
|
+
if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
|
|
35
|
+
logout({ noRedirect: true });
|
|
36
|
+
setIdentityState("cleared");
|
|
37
|
+
} else {
|
|
38
|
+
setIdentityState("failed");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}, [fetchMe, logout]);
|
|
42
|
+
return [
|
|
43
|
+
{ state: identityState, identity },
|
|
44
|
+
react.useMemo(() => ({
|
|
45
|
+
clearIdentity,
|
|
46
|
+
refreshIdentity: fetch
|
|
47
|
+
}), [clearIdentity, fetch])
|
|
48
|
+
];
|
|
49
|
+
};
|
|
50
|
+
exports.useFetchIdentity = useFetchIdentity;
|
|
51
|
+
//# sourceMappingURL=useFetchIdentity.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchIdentity.cjs","sources":["../../../src/hooks/useFetchIdentity.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Identity, IdentityMethods, IdentityStateValue } from '../types'\nimport { useSessionToken } from '@contember/react-client'\nimport { useFetchMe } from '../internal/hooks/useFetchMe'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useFetchIdentity = (): [{ state: IdentityStateValue, identity: Identity | undefined }, IdentityMethods] => {\n\tconst sessionToken = useSessionToken()\n\tconst fetchMe = useFetchMe()\n\n\tconst [identityState, setIdentityState] = useState<IdentityStateValue>(sessionToken ? 'loading' : 'none')\n\tconst [identity, setIdentity] = useState<Identity | undefined>()\n\n\tconst clearIdentity = useCallback(() => setIdentityState('cleared'), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState('loading')\n\t\ttry {\n\t\t\tconst response = await fetchMe()\n\t\t\tconst person = response.person\n\t\t\tconst projects = response.projects\n\t\t\tconst permissions = response.permissions ?? { canCreateProject: false }\n\n\t\t\tsetIdentityState('success')\n\t\t\tsetIdentity({\n\t\t\t\tid: response.id,\n\t\t\t\tperson: person ?? undefined,\n\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\tname: it.project.name,\n\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t})),\n\t\t\t\tpermissions,\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tif (typeof e === 'object' && e !== null && 'status' in e && (e as { status?: unknown }).status === 401) {\n\t\t\t\tlogout({ noRedirect: true })\n\t\t\t\tsetIdentityState('cleared')\n\t\t\t} else {\n\t\t\t\tsetIdentityState('failed')\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\t{ state: identityState, identity },\n\t\tuseMemo((): IdentityMethods => ({\n\t\t\tclearIdentity,\n\t\t\trefreshIdentity: fetch,\n\t\t}), [clearIdentity, fetch]),\n\t]\n}\n"],"names":["useSessionToken","useFetchMe","useState","useCallback","useLogoutInternal","it","useMemo"],"mappings":";;;;;;AAMO,MAAM,mBAAmB,MAAwF;AACvH,QAAM,eAAeA,YAAAA;AACrB,QAAM,UAAUC,WAAAA;AAEhB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,MAA6B,SAAA,eAAe,YAAY,MAAM;AACxG,QAAM,CAAC,UAAU,WAAW,IAAIA,MAA+B,SAAA;AAE/D,QAAM,gBAAgBC,MAAAA,YAAY,MAAM,iBAAiB,SAAS,GAAG,CAAA,CAAE;AACjE,QAAA,SAASC,oCAAkB,aAAa;AAExC,QAAA,QAAQD,MAAAA,YAAY,YAAY;AACrC,qBAAiB,SAAS;AACtB,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAEtE,uBAAiB,SAAS;AACd,kBAAA;AAAA,QACX,IAAI,SAAS;AAAA,QACb,QAAQ,UAAU;AAAA,QAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,UAC7B,MAAM,GAAG,QAAQ;AAAA,UACjB,MAAM,GAAG,QAAQ;AAAA,UACjB,OAAO,GAAG,YAAY,IAAI,CAAAE,QAAMA,IAAG,IAAI;AAAA,QAAA,EACtC;AAAA,QACF;AAAA,MAAA,CACA;AAAA,aACO,GAAG;AACX,cAAQ,MAAM,CAAC;AACX,UAAA,OAAO,MAAM,YAAY,MAAM,QAAQ,YAAY,KAAM,EAA2B,WAAW,KAAK;AAChG,eAAA,EAAE,YAAY,KAAA,CAAM;AAC3B,yBAAiB,SAAS;AAAA,MAAA,OACpB;AACN,yBAAiB,QAAQ;AAAA,MAC1B;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN,EAAE,OAAO,eAAe,SAAS;AAAA,IACjCC,MAAAA,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useState, useCallback, useMemo } from "react";
|
|
2
|
+
import { useSessionToken } from "@contember/react-client";
|
|
3
|
+
import { useFetchMe } from "../internal/hooks/useFetchMe.js";
|
|
4
|
+
import { useLogoutInternal } from "../internal/hooks/useLogoutInternal.js";
|
|
5
|
+
const useFetchIdentity = () => {
|
|
6
|
+
const sessionToken = useSessionToken();
|
|
7
|
+
const fetchMe = useFetchMe();
|
|
8
|
+
const [identityState, setIdentityState] = useState(sessionToken ? "loading" : "none");
|
|
9
|
+
const [identity, setIdentity] = useState();
|
|
10
|
+
const clearIdentity = useCallback(() => setIdentityState("cleared"), []);
|
|
11
|
+
const logout = useLogoutInternal(clearIdentity);
|
|
12
|
+
const fetch = useCallback(async () => {
|
|
13
|
+
setIdentityState("loading");
|
|
14
|
+
try {
|
|
15
|
+
const response = await fetchMe();
|
|
16
|
+
const person = response.person;
|
|
17
|
+
const projects = response.projects;
|
|
18
|
+
const permissions = response.permissions ?? { canCreateProject: false };
|
|
19
|
+
setIdentityState("success");
|
|
20
|
+
setIdentity({
|
|
21
|
+
id: response.id,
|
|
22
|
+
person: person ?? void 0,
|
|
23
|
+
projects: projects.map((it) => ({
|
|
24
|
+
name: it.project.name,
|
|
25
|
+
slug: it.project.slug,
|
|
26
|
+
roles: it.memberships.map((it2) => it2.role)
|
|
27
|
+
})),
|
|
28
|
+
permissions
|
|
29
|
+
});
|
|
30
|
+
} catch (e) {
|
|
31
|
+
console.error(e);
|
|
32
|
+
if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
|
|
33
|
+
logout({ noRedirect: true });
|
|
34
|
+
setIdentityState("cleared");
|
|
35
|
+
} else {
|
|
36
|
+
setIdentityState("failed");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, [fetchMe, logout]);
|
|
40
|
+
return [
|
|
41
|
+
{ state: identityState, identity },
|
|
42
|
+
useMemo(() => ({
|
|
43
|
+
clearIdentity,
|
|
44
|
+
refreshIdentity: fetch
|
|
45
|
+
}), [clearIdentity, fetch])
|
|
46
|
+
];
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
useFetchIdentity
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=useFetchIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchIdentity.js","sources":["../../../src/hooks/useFetchIdentity.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Identity, IdentityMethods, IdentityStateValue } from '../types'\nimport { useSessionToken } from '@contember/react-client'\nimport { useFetchMe } from '../internal/hooks/useFetchMe'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useFetchIdentity = (): [{ state: IdentityStateValue, identity: Identity | undefined }, IdentityMethods] => {\n\tconst sessionToken = useSessionToken()\n\tconst fetchMe = useFetchMe()\n\n\tconst [identityState, setIdentityState] = useState<IdentityStateValue>(sessionToken ? 'loading' : 'none')\n\tconst [identity, setIdentity] = useState<Identity | undefined>()\n\n\tconst clearIdentity = useCallback(() => setIdentityState('cleared'), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState('loading')\n\t\ttry {\n\t\t\tconst response = await fetchMe()\n\t\t\tconst person = response.person\n\t\t\tconst projects = response.projects\n\t\t\tconst permissions = response.permissions ?? { canCreateProject: false }\n\n\t\t\tsetIdentityState('success')\n\t\t\tsetIdentity({\n\t\t\t\tid: response.id,\n\t\t\t\tperson: person ?? undefined,\n\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\tname: it.project.name,\n\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t})),\n\t\t\t\tpermissions,\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tif (typeof e === 'object' && e !== null && 'status' in e && (e as { status?: unknown }).status === 401) {\n\t\t\t\tlogout({ noRedirect: true })\n\t\t\t\tsetIdentityState('cleared')\n\t\t\t} else {\n\t\t\t\tsetIdentityState('failed')\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\t{ state: identityState, identity },\n\t\tuseMemo((): IdentityMethods => ({\n\t\t\tclearIdentity,\n\t\t\trefreshIdentity: fetch,\n\t\t}), [clearIdentity, fetch]),\n\t]\n}\n"],"names":["it"],"mappings":";;;;AAMO,MAAM,mBAAmB,MAAwF;AACvH,QAAM,eAAe;AACrB,QAAM,UAAU;AAEhB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,eAAe,YAAY,MAAM;AACxG,QAAM,CAAC,UAAU,WAAW,IAAI,SAA+B;AAE/D,QAAM,gBAAgB,YAAY,MAAM,iBAAiB,SAAS,GAAG,CAAA,CAAE;AACjE,QAAA,SAAS,kBAAkB,aAAa;AAExC,QAAA,QAAQ,YAAY,YAAY;AACrC,qBAAiB,SAAS;AACtB,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAEtE,uBAAiB,SAAS;AACd,kBAAA;AAAA,QACX,IAAI,SAAS;AAAA,QACb,QAAQ,UAAU;AAAA,QAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,UAC7B,MAAM,GAAG,QAAQ;AAAA,UACjB,MAAM,GAAG,QAAQ;AAAA,UACjB,OAAO,GAAG,YAAY,IAAI,CAAAA,QAAMA,IAAG,IAAI;AAAA,QAAA,EACtC;AAAA,QACF;AAAA,MAAA,CACA;AAAA,aACO,GAAG;AACX,cAAQ,MAAM,CAAC;AACX,UAAA,OAAO,MAAM,YAAY,MAAM,QAAQ,YAAY,KAAM,EAA2B,WAAW,KAAK;AAChG,eAAA,EAAE,YAAY,KAAA,CAAM;AAC3B,yBAAiB,SAAS;AAAA,MAAA,OACpB;AACN,yBAAiB,QAAQ;AAAA,MAC1B;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN,EAAE,OAAO,eAAe,SAAS;AAAA,IACjC,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const contexts = require("../internal/contexts.cjs");
|
|
4
|
+
const useLogoutInternal = require("../internal/hooks/useLogoutInternal.cjs");
|
|
5
|
+
const useLogout = () => {
|
|
6
|
+
const { clearIdentity } = contexts.useIdentityMethods();
|
|
7
|
+
return useLogoutInternal.useLogoutInternal(clearIdentity);
|
|
8
|
+
};
|
|
9
|
+
exports.useLogout = useLogout;
|
|
10
|
+
//# sourceMappingURL=useLogout.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogout.cjs","sources":["../../../src/hooks/useLogout.ts"],"sourcesContent":["import { useIdentityMethods } from '../internal/contexts'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useLogout = () => {\n\tconst { clearIdentity } = useIdentityMethods()\n\treturn useLogoutInternal(clearIdentity)\n}\n"],"names":["useIdentityMethods","useLogoutInternal"],"mappings":";;;;AAGO,MAAM,YAAY,MAAM;AACxB,QAAA,EAAE,kBAAkBA,SAAAA;AAC1B,SAAOC,kBAAAA,kBAAkB,aAAa;AACvC;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useIdentityMethods } from "../internal/contexts.js";
|
|
2
|
+
import { useLogoutInternal } from "../internal/hooks/useLogoutInternal.js";
|
|
3
|
+
const useLogout = () => {
|
|
4
|
+
const { clearIdentity } = useIdentityMethods();
|
|
5
|
+
return useLogoutInternal(clearIdentity);
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
useLogout
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useLogout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogout.js","sources":["../../../src/hooks/useLogout.ts"],"sourcesContent":["import { useIdentityMethods } from '../internal/contexts'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useLogout = () => {\n\tconst { clearIdentity } = useIdentityMethods()\n\treturn useLogoutInternal(clearIdentity)\n}\n"],"names":[],"mappings":";;AAGO,MAAM,YAAY,MAAM;AACxB,QAAA,EAAE,kBAAkB;AAC1B,SAAO,kBAAkB,aAAa;AACvC;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
const reactClient = require("@contember/react-client");
|
|
5
|
+
const contexts = require("../internal/contexts.cjs");
|
|
6
|
+
const useProjectUserRoles = () => {
|
|
7
|
+
const identity = contexts.useIdentity();
|
|
8
|
+
const projectSlug = reactClient.useProjectSlug();
|
|
9
|
+
return react.useMemo(() => {
|
|
10
|
+
if (!projectSlug) {
|
|
11
|
+
return /* @__PURE__ */ new Set();
|
|
12
|
+
}
|
|
13
|
+
const targetProject = identity?.projects.find((project) => project.slug === projectSlug);
|
|
14
|
+
if (targetProject === void 0) {
|
|
15
|
+
return /* @__PURE__ */ new Set();
|
|
16
|
+
}
|
|
17
|
+
return new Set(targetProject.roles);
|
|
18
|
+
}, [identity?.projects, projectSlug]);
|
|
19
|
+
};
|
|
20
|
+
exports.useProjectUserRoles = useProjectUserRoles;
|
|
21
|
+
//# sourceMappingURL=useProjectUserRoles.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectUserRoles.cjs","sources":["../../../src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '../internal/contexts'\n\nexport type ProjectUserRoles = Set<string>\n\nexport const useProjectUserRoles = (): ProjectUserRoles => {\n\tconst identity = useIdentity()\n\tconst projectSlug = useProjectSlug()\n\treturn useMemo(() => {\n\t\tif (!projectSlug) {\n\t\t\treturn new Set()\n\t\t}\n\t\tconst targetProject = identity?.projects.find(project => project.slug === projectSlug)\n\t\tif (targetProject === undefined) {\n\t\t\treturn new Set()\n\t\t}\n\n\t\treturn new Set(targetProject.roles)\n\t}, [identity?.projects, projectSlug])\n}\n"],"names":["useIdentity","useProjectSlug","useMemo"],"mappings":";;;;;AAMO,MAAM,sBAAsB,MAAwB;AAC1D,QAAM,WAAWA,SAAAA;AACjB,QAAM,cAAcC,YAAAA;AACpB,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAChB;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAChB;AAEO,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useProjectSlug } from "@contember/react-client";
|
|
3
|
+
import { useIdentity } from "../internal/contexts.js";
|
|
4
|
+
const useProjectUserRoles = () => {
|
|
5
|
+
const identity = useIdentity();
|
|
6
|
+
const projectSlug = useProjectSlug();
|
|
7
|
+
return useMemo(() => {
|
|
8
|
+
if (!projectSlug) {
|
|
9
|
+
return /* @__PURE__ */ new Set();
|
|
10
|
+
}
|
|
11
|
+
const targetProject = identity?.projects.find((project) => project.slug === projectSlug);
|
|
12
|
+
if (targetProject === void 0) {
|
|
13
|
+
return /* @__PURE__ */ new Set();
|
|
14
|
+
}
|
|
15
|
+
return new Set(targetProject.roles);
|
|
16
|
+
}, [identity?.projects, projectSlug]);
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
useProjectUserRoles
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=useProjectUserRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectUserRoles.js","sources":["../../../src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '../internal/contexts'\n\nexport type ProjectUserRoles = Set<string>\n\nexport const useProjectUserRoles = (): ProjectUserRoles => {\n\tconst identity = useIdentity()\n\tconst projectSlug = useProjectSlug()\n\treturn useMemo(() => {\n\t\tif (!projectSlug) {\n\t\t\treturn new Set()\n\t\t}\n\t\tconst targetProject = identity?.projects.find(project => project.slug === projectSlug)\n\t\tif (targetProject === undefined) {\n\t\t\treturn new Set()\n\t\t}\n\n\t\treturn new Set(targetProject.roles)\n\t}, [identity?.projects, projectSlug])\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,sBAAsB,MAAwB;AAC1D,QAAM,WAAW;AACjB,QAAM,cAAc;AACpB,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAChB;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAChB;AAEO,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const HasRole = require("./components/HasRole.cjs");
|
|
4
|
+
const IdentityProvider = require("./components/IdentityProvider.cjs");
|
|
5
|
+
const IdentityState = require("./components/IdentityState.cjs");
|
|
6
|
+
const LogoutTrigger = require("./components/LogoutTrigger.cjs");
|
|
7
|
+
const contexts = require("./internal/contexts.cjs");
|
|
8
|
+
const useLogout = require("./hooks/useLogout.cjs");
|
|
9
|
+
const useFetchIdentity = require("./hooks/useFetchIdentity.cjs");
|
|
10
|
+
const useProjectUserRoles = require("./hooks/useProjectUserRoles.cjs");
|
|
11
|
+
const IdentityEnvironmentExtension = require("./environment/IdentityEnvironmentExtension.cjs");
|
|
12
|
+
const ProjectEnvironmentExtension = require("./environment/ProjectEnvironmentExtension.cjs");
|
|
13
|
+
exports.HasRole = HasRole.HasRole;
|
|
14
|
+
exports.IdentityProvider = IdentityProvider.IdentityProvider;
|
|
15
|
+
exports.IdentityState = IdentityState.IdentityState;
|
|
16
|
+
exports.LogoutTrigger = LogoutTrigger.LogoutTrigger;
|
|
17
|
+
exports.useIdentity = contexts.useIdentity;
|
|
18
|
+
exports.useIdentityMethods = contexts.useIdentityMethods;
|
|
19
|
+
exports.useIdentityState = contexts.useIdentityState;
|
|
20
|
+
exports.useLogout = useLogout.useLogout;
|
|
21
|
+
exports.useFetchIdentity = useFetchIdentity.useFetchIdentity;
|
|
22
|
+
exports.useProjectUserRoles = useProjectUserRoles.useProjectUserRoles;
|
|
23
|
+
exports.identityEnvironmentExtension = IdentityEnvironmentExtension.identityEnvironmentExtension;
|
|
24
|
+
exports.projectEnvironmentExtension = ProjectEnvironmentExtension.projectEnvironmentExtension;
|
|
25
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HasRole } from "./components/HasRole.js";
|
|
2
|
+
import { IdentityProvider } from "./components/IdentityProvider.js";
|
|
3
|
+
import { IdentityState } from "./components/IdentityState.js";
|
|
4
|
+
import { LogoutTrigger } from "./components/LogoutTrigger.js";
|
|
5
|
+
import { useIdentity, useIdentityMethods, useIdentityState } from "./internal/contexts.js";
|
|
6
|
+
import { useLogout } from "./hooks/useLogout.js";
|
|
7
|
+
import { useFetchIdentity } from "./hooks/useFetchIdentity.js";
|
|
8
|
+
import { useProjectUserRoles } from "./hooks/useProjectUserRoles.js";
|
|
9
|
+
import { identityEnvironmentExtension } from "./environment/IdentityEnvironmentExtension.js";
|
|
10
|
+
import { projectEnvironmentExtension } from "./environment/ProjectEnvironmentExtension.js";
|
|
11
|
+
export {
|
|
12
|
+
HasRole,
|
|
13
|
+
IdentityProvider,
|
|
14
|
+
IdentityState,
|
|
15
|
+
LogoutTrigger,
|
|
16
|
+
identityEnvironmentExtension,
|
|
17
|
+
projectEnvironmentExtension,
|
|
18
|
+
useFetchIdentity,
|
|
19
|
+
useIdentity,
|
|
20
|
+
useIdentityMethods,
|
|
21
|
+
useIdentityState,
|
|
22
|
+
useLogout,
|
|
23
|
+
useProjectUserRoles
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactUtils = require("@contember/react-utils");
|
|
4
|
+
const [IdentityContext, useIdentity] = reactUtils.createContext("IdentityContext", void 0);
|
|
5
|
+
const [IdentityMethodsContext, useIdentityMethods] = reactUtils.createRequiredContext("IdentityMethodsContext");
|
|
6
|
+
const [IdentityStateContext, useIdentityState] = reactUtils.createRequiredContext("IdentityStateContext");
|
|
7
|
+
exports.IdentityContext = IdentityContext;
|
|
8
|
+
exports.IdentityMethodsContext = IdentityMethodsContext;
|
|
9
|
+
exports.IdentityStateContext = IdentityStateContext;
|
|
10
|
+
exports.useIdentity = useIdentity;
|
|
11
|
+
exports.useIdentityMethods = useIdentityMethods;
|
|
12
|
+
exports.useIdentityState = useIdentityState;
|
|
13
|
+
//# sourceMappingURL=contexts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.cjs","sources":["../../../src/internal/contexts.ts"],"sourcesContent":["import { createContext, createRequiredContext } from '@contember/react-utils'\nimport { IdentityMethods } from '../types/IdentityMethods'\nimport { Identity } from '../types/Identity'\nimport { IdentityStateValue } from '../types/IdentityStateValue'\n\nexport const [IdentityContext, useIdentity] = createContext<Identity | undefined>('IdentityContext', undefined)\nexport const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext<IdentityMethods>('IdentityMethodsContext')\nexport const [IdentityStateContext, useIdentityState] = createRequiredContext<IdentityStateValue>('IdentityStateContext')\n"],"names":["createContext","createRequiredContext"],"mappings":";;;AAKO,MAAM,CAAC,iBAAiB,WAAW,IAAIA,WAAA,cAAoC,mBAAmB,MAAS;AACvG,MAAM,CAAC,wBAAwB,kBAAkB,IAAIC,WAAAA,sBAAuC,wBAAwB;AACpH,MAAM,CAAC,sBAAsB,gBAAgB,IAAIA,WAAAA,sBAA0C,sBAAsB;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createContext, createRequiredContext } from "@contember/react-utils";
|
|
2
|
+
const [IdentityContext, useIdentity] = createContext("IdentityContext", void 0);
|
|
3
|
+
const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext("IdentityMethodsContext");
|
|
4
|
+
const [IdentityStateContext, useIdentityState] = createRequiredContext("IdentityStateContext");
|
|
5
|
+
export {
|
|
6
|
+
IdentityContext,
|
|
7
|
+
IdentityMethodsContext,
|
|
8
|
+
IdentityStateContext,
|
|
9
|
+
useIdentity,
|
|
10
|
+
useIdentityMethods,
|
|
11
|
+
useIdentityState
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.js","sources":["../../../src/internal/contexts.ts"],"sourcesContent":["import { createContext, createRequiredContext } from '@contember/react-utils'\nimport { IdentityMethods } from '../types/IdentityMethods'\nimport { Identity } from '../types/Identity'\nimport { IdentityStateValue } from '../types/IdentityStateValue'\n\nexport const [IdentityContext, useIdentity] = createContext<Identity | undefined>('IdentityContext', undefined)\nexport const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext<IdentityMethods>('IdentityMethodsContext')\nexport const [IdentityStateContext, useIdentityState] = createRequiredContext<IdentityStateValue>('IdentityStateContext')\n"],"names":[],"mappings":";AAKO,MAAM,CAAC,iBAAiB,WAAW,IAAI,cAAoC,mBAAmB,MAAS;AACvG,MAAM,CAAC,wBAAwB,kBAAkB,IAAI,sBAAuC,wBAAwB;AACpH,MAAM,CAAC,sBAAsB,gBAAgB,IAAI,sBAA0C,sBAAsB;"}
|