@contember/react-identity 1.3.0-alpha.26 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/development/components/IdentityEnvironmentProvider.cjs +16 -0
  2. package/dist/development/components/IdentityEnvironmentProvider.cjs.map +1 -0
  3. package/dist/development/components/IdentityEnvironmentProvider.js +16 -0
  4. package/dist/development/components/IdentityEnvironmentProvider.js.map +1 -0
  5. package/dist/development/environment/IdentityEnvironmentExtension.cjs.map +1 -1
  6. package/dist/development/environment/IdentityEnvironmentExtension.js.map +1 -1
  7. package/dist/development/hooks/useProjectUserRoles.cjs +2 -2
  8. package/dist/development/hooks/useProjectUserRoles.cjs.map +1 -1
  9. package/dist/development/hooks/useProjectUserRoles.js +1 -1
  10. package/dist/development/hooks/useProjectUserRoles.js.map +1 -1
  11. package/dist/development/index.cjs +10 -14
  12. package/dist/development/index.cjs.map +1 -1
  13. package/dist/development/index.js +3 -14
  14. package/dist/development/index.js.map +1 -1
  15. package/dist/production/components/IdentityEnvironmentProvider.cjs +12 -0
  16. package/dist/production/components/IdentityEnvironmentProvider.cjs.map +1 -0
  17. package/dist/production/components/IdentityEnvironmentProvider.js +12 -0
  18. package/dist/production/components/IdentityEnvironmentProvider.js.map +1 -0
  19. package/dist/production/environment/IdentityEnvironmentExtension.cjs.map +1 -1
  20. package/dist/production/environment/IdentityEnvironmentExtension.js.map +1 -1
  21. package/dist/production/hooks/useProjectUserRoles.cjs +2 -2
  22. package/dist/production/hooks/useProjectUserRoles.cjs.map +1 -1
  23. package/dist/production/hooks/useProjectUserRoles.js +1 -1
  24. package/dist/production/hooks/useProjectUserRoles.js.map +1 -1
  25. package/dist/production/index.cjs +10 -14
  26. package/dist/production/index.cjs.map +1 -1
  27. package/dist/production/index.js +3 -14
  28. package/dist/production/index.js.map +1 -1
  29. package/dist/types/components/IdentityEnvironmentProvider.d.ts +6 -0
  30. package/dist/types/components/IdentityEnvironmentProvider.d.ts.map +1 -0
  31. package/dist/types/components/index.d.ts +1 -3
  32. package/dist/types/components/index.d.ts.map +1 -1
  33. package/dist/types/environment/IdentityEnvironmentExtension.d.ts +1 -1
  34. package/dist/types/environment/IdentityEnvironmentExtension.d.ts.map +1 -1
  35. package/dist/types/hooks/index.d.ts +0 -3
  36. package/dist/types/hooks/index.d.ts.map +1 -1
  37. package/dist/types/index.d.ts +1 -1
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +4 -7
  41. package/src/components/IdentityEnvironmentProvider.tsx +19 -0
  42. package/src/components/index.ts +1 -3
  43. package/src/environment/IdentityEnvironmentExtension.ts +1 -1
  44. package/src/hooks/index.ts +1 -7
  45. package/src/hooks/useProjectUserRoles.tsx +1 -1
  46. package/src/index.ts +1 -1
  47. package/src/tsconfig.json +0 -1
  48. package/dist/development/components/IdentityProvider.cjs +0 -44
  49. package/dist/development/components/IdentityProvider.cjs.map +0 -1
  50. package/dist/development/components/IdentityProvider.js +0 -44
  51. package/dist/development/components/IdentityProvider.js.map +0 -1
  52. package/dist/development/components/IdentityState.cjs +0 -14
  53. package/dist/development/components/IdentityState.cjs.map +0 -1
  54. package/dist/development/components/IdentityState.js +0 -14
  55. package/dist/development/components/IdentityState.js.map +0 -1
  56. package/dist/development/components/LogoutTrigger.cjs +0 -16
  57. package/dist/development/components/LogoutTrigger.cjs.map +0 -1
  58. package/dist/development/components/LogoutTrigger.js +0 -16
  59. package/dist/development/components/LogoutTrigger.js.map +0 -1
  60. package/dist/development/hooks/useFetchIdentity.cjs +0 -52
  61. package/dist/development/hooks/useFetchIdentity.cjs.map +0 -1
  62. package/dist/development/hooks/useFetchIdentity.js +0 -52
  63. package/dist/development/hooks/useFetchIdentity.js.map +0 -1
  64. package/dist/development/hooks/useLogout.cjs +0 -10
  65. package/dist/development/hooks/useLogout.cjs.map +0 -1
  66. package/dist/development/hooks/useLogout.js +0 -10
  67. package/dist/development/hooks/useLogout.js.map +0 -1
  68. package/dist/development/internal/contexts.cjs +0 -13
  69. package/dist/development/internal/contexts.cjs.map +0 -1
  70. package/dist/development/internal/contexts.js +0 -13
  71. package/dist/development/internal/contexts.js.map +0 -1
  72. package/dist/development/internal/hooks/useFetchMe.cjs +0 -33
  73. package/dist/development/internal/hooks/useFetchMe.cjs.map +0 -1
  74. package/dist/development/internal/hooks/useFetchMe.js +0 -16
  75. package/dist/development/internal/hooks/useFetchMe.js.map +0 -1
  76. package/dist/development/internal/hooks/useLogoutInternal.cjs +0 -35
  77. package/dist/development/internal/hooks/useLogoutInternal.cjs.map +0 -1
  78. package/dist/development/internal/hooks/useLogoutInternal.js +0 -35
  79. package/dist/development/internal/hooks/useLogoutInternal.js.map +0 -1
  80. package/dist/development/internal/hooks/useSignOut.cjs +0 -31
  81. package/dist/development/internal/hooks/useSignOut.cjs.map +0 -1
  82. package/dist/development/internal/hooks/useSignOut.js +0 -14
  83. package/dist/development/internal/hooks/useSignOut.js.map +0 -1
  84. package/dist/production/components/IdentityProvider.cjs +0 -28
  85. package/dist/production/components/IdentityProvider.cjs.map +0 -1
  86. package/dist/production/components/IdentityProvider.js +0 -28
  87. package/dist/production/components/IdentityProvider.js.map +0 -1
  88. package/dist/production/components/IdentityState.cjs +0 -10
  89. package/dist/production/components/IdentityState.cjs.map +0 -1
  90. package/dist/production/components/IdentityState.js +0 -10
  91. package/dist/production/components/IdentityState.js.map +0 -1
  92. package/dist/production/components/LogoutTrigger.cjs +0 -12
  93. package/dist/production/components/LogoutTrigger.cjs.map +0 -1
  94. package/dist/production/components/LogoutTrigger.js +0 -12
  95. package/dist/production/components/LogoutTrigger.js.map +0 -1
  96. package/dist/production/hooks/useFetchIdentity.cjs +0 -52
  97. package/dist/production/hooks/useFetchIdentity.cjs.map +0 -1
  98. package/dist/production/hooks/useFetchIdentity.js +0 -52
  99. package/dist/production/hooks/useFetchIdentity.js.map +0 -1
  100. package/dist/production/hooks/useLogout.cjs +0 -10
  101. package/dist/production/hooks/useLogout.cjs.map +0 -1
  102. package/dist/production/hooks/useLogout.js +0 -10
  103. package/dist/production/hooks/useLogout.js.map +0 -1
  104. package/dist/production/internal/contexts.cjs +0 -13
  105. package/dist/production/internal/contexts.cjs.map +0 -1
  106. package/dist/production/internal/contexts.js +0 -13
  107. package/dist/production/internal/contexts.js.map +0 -1
  108. package/dist/production/internal/hooks/useFetchMe.cjs +0 -33
  109. package/dist/production/internal/hooks/useFetchMe.cjs.map +0 -1
  110. package/dist/production/internal/hooks/useFetchMe.js +0 -16
  111. package/dist/production/internal/hooks/useFetchMe.js.map +0 -1
  112. package/dist/production/internal/hooks/useLogoutInternal.cjs +0 -35
  113. package/dist/production/internal/hooks/useLogoutInternal.cjs.map +0 -1
  114. package/dist/production/internal/hooks/useLogoutInternal.js +0 -35
  115. package/dist/production/internal/hooks/useLogoutInternal.js.map +0 -1
  116. package/dist/production/internal/hooks/useSignOut.cjs +0 -31
  117. package/dist/production/internal/hooks/useSignOut.cjs.map +0 -1
  118. package/dist/production/internal/hooks/useSignOut.js +0 -14
  119. package/dist/production/internal/hooks/useSignOut.js.map +0 -1
  120. package/dist/types/components/IdentityProvider.d.ts +0 -6
  121. package/dist/types/components/IdentityProvider.d.ts.map +0 -1
  122. package/dist/types/components/IdentityState.d.ts +0 -8
  123. package/dist/types/components/IdentityState.d.ts.map +0 -1
  124. package/dist/types/components/LogoutTrigger.d.ts +0 -5
  125. package/dist/types/components/LogoutTrigger.d.ts.map +0 -1
  126. package/dist/types/hooks/useFetchIdentity.d.ts +0 -6
  127. package/dist/types/hooks/useFetchIdentity.d.ts.map +0 -1
  128. package/dist/types/hooks/useLogout.d.ts +0 -4
  129. package/dist/types/hooks/useLogout.d.ts.map +0 -1
  130. package/dist/types/internal/contexts.d.ts +0 -7
  131. package/dist/types/internal/contexts.d.ts.map +0 -1
  132. package/dist/types/internal/hooks/useFetchMe.d.ts +0 -95
  133. package/dist/types/internal/hooks/useFetchMe.d.ts.map +0 -1
  134. package/dist/types/internal/hooks/useLogoutInternal.d.ts +0 -4
  135. package/dist/types/internal/hooks/useLogoutInternal.d.ts.map +0 -1
  136. package/dist/types/internal/hooks/useSignOut.d.ts +0 -27
  137. package/dist/types/internal/hooks/useSignOut.d.ts.map +0 -1
  138. package/dist/types/types/Identity.d.ts +0 -19
  139. package/dist/types/types/Identity.d.ts.map +0 -1
  140. package/dist/types/types/IdentityMethods.d.ts +0 -5
  141. package/dist/types/types/IdentityMethods.d.ts.map +0 -1
  142. package/dist/types/types/IdentityStateValue.d.ts +0 -2
  143. package/dist/types/types/IdentityStateValue.d.ts.map +0 -1
  144. package/dist/types/types/index.d.ts +0 -4
  145. package/dist/types/types/index.d.ts.map +0 -1
  146. package/src/components/IdentityProvider.tsx +0 -43
  147. package/src/components/IdentityState.tsx +0 -14
  148. package/src/components/LogoutTrigger.tsx +0 -10
  149. package/src/hooks/useFetchIdentity.ts +0 -55
  150. package/src/hooks/useLogout.ts +0 -7
  151. package/src/internal/contexts.ts +0 -8
  152. package/src/internal/hooks/useFetchMe.ts +0 -22
  153. package/src/internal/hooks/useLogoutInternal.ts +0 -35
  154. package/src/internal/hooks/useSignOut.ts +0 -14
  155. package/src/types/Identity.ts +0 -20
  156. package/src/types/IdentityMethods.ts +0 -4
  157. package/src/types/IdentityStateValue.ts +0 -6
  158. package/src/types/index.ts +0 -3
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contember/react-identity",
3
3
  "license": "Apache-2.0",
4
- "version": "1.3.0-alpha.26",
4
+ "version": "2.0.0-alpha.1",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/production/index.js",
@@ -40,12 +40,9 @@
40
40
  "directory": "packages/react-identity"
41
41
  },
42
42
  "dependencies": {
43
- "@contember/graphql-client-tenant": "^1.3.7",
44
- "@contember/react-binding": "1.3.0-alpha.26",
45
- "@contember/react-client": "1.3.0-alpha.26",
46
- "@contember/react-client-tenant": "1.3.0-alpha.26",
47
- "@contember/react-utils": "1.3.0-alpha.26",
48
- "@radix-ui/react-slot": "^1.0.2"
43
+ "@contember/react-binding": "2.0.0-alpha.1",
44
+ "@contember/react-client": "2.0.0-alpha.1",
45
+ "@contember/react-client-tenant": "2.0.0-alpha.1"
49
46
  },
50
47
  "peerDependencies": {
51
48
  "react": "^18 || ^19",
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react'
2
+ import { EnvironmentExtensionProvider } from '@contember/react-binding'
3
+ import { identityEnvironmentExtension } from '../environment'
4
+ import { useIdentity } from '@contember/react-client-tenant'
5
+
6
+
7
+ export interface IdentityEnvironmentProviderProps {
8
+ children: ReactNode
9
+ }
10
+
11
+ export const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {
12
+ const identity = useIdentity()
13
+ return (
14
+ <EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>
15
+ {children}
16
+ </EnvironmentExtensionProvider>
17
+
18
+ )
19
+ }
@@ -1,4 +1,2 @@
1
1
  export * from './HasRole'
2
- export * from './IdentityProvider'
3
- export * from './IdentityState'
4
- export * from './LogoutTrigger'
2
+ export * from './IdentityEnvironmentProvider'
@@ -1,5 +1,5 @@
1
1
  import { BindingError, Environment } from '@contember/react-binding'
2
- import { Identity } from '../types'
2
+ import { Identity } from '@contember/react-client-tenant'
3
3
 
4
4
  export const identityEnvironmentExtension = Environment.createExtension((state: Identity | null | undefined) => {
5
5
  if (state === undefined) {
@@ -1,8 +1,2 @@
1
- export * from './useLogout'
2
- export * from './useFetchIdentity'
3
1
  export * from './useProjectUserRoles'
4
- export {
5
- useIdentityMethods,
6
- useIdentity,
7
- useIdentityState,
8
- } from '../internal/contexts'
2
+
@@ -1,6 +1,6 @@
1
1
  import { useMemo } from 'react'
2
2
  import { useProjectSlug } from '@contember/react-client'
3
- import { useIdentity } from '../internal/contexts'
3
+ import { useIdentity } from '@contember/react-client-tenant'
4
4
 
5
5
  export type ProjectUserRoles = Set<string>
6
6
 
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './types'
2
1
  export * from './components'
3
2
  export * from './hooks'
4
3
  export * from './environment'
4
+ export * from '@contember/react-client-tenant'
package/src/tsconfig.json CHANGED
@@ -7,6 +7,5 @@
7
7
  { "path": "../../react-binding/src" },
8
8
  { "path": "../../react-client/src" },
9
9
  { "path": "../../react-client-tenant/src" },
10
- { "path": "../../react-utils/src" },
11
10
  ]
12
11
  }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxDevRuntime = require("react/jsx-dev-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 useFetchIdentity = require("../hooks/useFetchIdentity.cjs");
9
- const IdentityEnvironmentExtension = require("../environment/IdentityEnvironmentExtension.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
- if (sessionToken !== void 0) {
16
- refreshIdentity();
17
- }
18
- }, [sessionToken, refreshIdentity]);
19
- const hasIdentity = identity !== void 0;
20
- react.useEffect(() => {
21
- if (sessionToken === void 0 && hasIdentity) {
22
- clearIdentity();
23
- }
24
- }, [sessionToken, clearIdentity, hasIdentity]);
25
- return /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentExtensionProvider, { extension: IdentityEnvironmentExtension.identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
26
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
27
- lineNumber: 36,
28
- columnNumber: 6
29
- }, void 0) }, void 0, false, {
30
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
31
- lineNumber: 35,
32
- columnNumber: 5
33
- }, void 0) }, void 0, false, {
34
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
35
- lineNumber: 34,
36
- columnNumber: 4
37
- }, void 0) }, void 0, false, {
38
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
39
- lineNumber: 33,
40
- columnNumber: 3
41
- }, void 0);
42
- };
43
- exports.IdentityProvider = IdentityProvider;
44
- //# sourceMappingURL=IdentityProvider.cjs.map
@@ -1 +0,0 @@
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'\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\tif (sessionToken !== undefined) {\n\t\t\trefreshIdentity()\n\t\t}\n\t}, [sessionToken, refreshIdentity])\n\n\n\tconst hasIdentity = identity !== undefined\n\tuseEffect(() => {\n\t\tif (sessionToken === undefined && hasIdentity) {\n\t\t\tclearIdentity()\n\t\t}\n\t}, [sessionToken, clearIdentity, hasIdentity])\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","jsxDEV","IdentityStateContext","IdentityContext","IdentityMethodsContext","EnvironmentExtensionProvider","identityEnvironmentExtension","this"],"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,QAAAA,UAAU,MAAM;AACf,QAAI,iBAAiB,QAAW;AACf;IACjB;AAAA,EAAA,GACE,CAAC,cAAc,eAAe,CAAC;AAGlC,QAAM,cAAc,aAAa;AACjCA,QAAAA,UAAU,MAAM;AACX,QAAA,iBAAiB,UAAa,aAAa;AAChC;IACf;AAAA,EACE,GAAA,CAAC,cAAc,eAAe,WAAW,CAAC;AAG5C,SAAAC,8BAAAA,OAACC,SAAAA,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAACD,8BAAA,OAAAE,SAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,+CAACC,SAAuB,uBAAA,UAAvB,EAAgC,OAAO,SACvC,UAAAH,8BAAAA,OAACI,aAAAA,8BAA6B,EAAA,WAAWC,6BAA8B,8BAAA,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAQA,GAAAA,MAAA;AAEF;;"}
@@ -1,44 +0,0 @@
1
- import { jsxDEV } from "react/jsx-dev-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 { useFetchIdentity } from "../hooks/useFetchIdentity.js";
7
- import { identityEnvironmentExtension } from "../environment/IdentityEnvironmentExtension.js";
8
- const IdentityProvider = ({ children }) => {
9
- const sessionToken = useSessionToken();
10
- const [{ identity, state }, methods] = useFetchIdentity();
11
- const { refreshIdentity, clearIdentity } = methods;
12
- useEffect(() => {
13
- if (sessionToken !== void 0) {
14
- refreshIdentity();
15
- }
16
- }, [sessionToken, refreshIdentity]);
17
- const hasIdentity = identity !== void 0;
18
- useEffect(() => {
19
- if (sessionToken === void 0 && hasIdentity) {
20
- clearIdentity();
21
- }
22
- }, [sessionToken, clearIdentity, hasIdentity]);
23
- return /* @__PURE__ */ jsxDEV(IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxDEV(IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsxDEV(IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxDEV(EnvironmentExtensionProvider, { extension: identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
24
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
25
- lineNumber: 36,
26
- columnNumber: 6
27
- }, void 0) }, void 0, false, {
28
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
29
- lineNumber: 35,
30
- columnNumber: 5
31
- }, void 0) }, void 0, false, {
32
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
33
- lineNumber: 34,
34
- columnNumber: 4
35
- }, void 0) }, void 0, false, {
36
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
37
- lineNumber: 33,
38
- columnNumber: 3
39
- }, void 0);
40
- };
41
- export {
42
- IdentityProvider
43
- };
44
- //# sourceMappingURL=IdentityProvider.js.map
@@ -1 +0,0 @@
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'\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\tif (sessionToken !== undefined) {\n\t\t\trefreshIdentity()\n\t\t}\n\t}, [sessionToken, refreshIdentity])\n\n\n\tconst hasIdentity = identity !== undefined\n\tuseEffect(() => {\n\t\tif (sessionToken === undefined && hasIdentity) {\n\t\t\tclearIdentity()\n\t\t}\n\t}, [sessionToken, clearIdentity, hasIdentity])\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":["this"],"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,YAAU,MAAM;AACf,QAAI,iBAAiB,QAAW;AACf;IACjB;AAAA,EAAA,GACE,CAAC,cAAc,eAAe,CAAC;AAGlC,QAAM,cAAc,aAAa;AACjC,YAAU,MAAM;AACX,QAAA,iBAAiB,UAAa,aAAa;AAChC;IACf;AAAA,EACE,GAAA,CAAC,cAAc,eAAe,WAAW,CAAC;AAG5C,SAAA,uBAAC,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAAC,uBAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,iCAAC,uBAAuB,UAAvB,EAAgC,OAAO,SACvC,UAAA,uBAAC,8BAA6B,EAAA,WAAW,8BAA8B,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAQA,GAAAA,MAAA;AAEF;"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxDevRuntime = require("react/jsx-dev-runtime");
4
- const contexts = require("../internal/contexts.cjs");
5
- const IdentityState = ({ state, children }) => {
6
- const currentState = contexts.useIdentityState();
7
- return state === currentState || Array.isArray(state) && state.includes(currentState) ? /* @__PURE__ */ jsxDevRuntime.jsxDEV(jsxDevRuntime.Fragment, { children }, void 0, false, {
8
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityState.tsx",
9
- lineNumber: 13,
10
- columnNumber: 92
11
- }, void 0) : null;
12
- };
13
- exports.IdentityState = IdentityState;
14
- //# sourceMappingURL=IdentityState.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IdentityState.cjs","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import React, { 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","jsxDEV","Fragment","this"],"mappings":";;;;AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAeA,SAAAA;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAKC,8BAAA,OAAAC,wBAAA,EAAG,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAAY,IAAM;AAC7G;;"}
@@ -1,14 +0,0 @@
1
- import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
- import { useIdentityState } from "../internal/contexts.js";
3
- const IdentityState = ({ state, children }) => {
4
- const currentState = useIdentityState();
5
- return state === currentState || Array.isArray(state) && state.includes(currentState) ? /* @__PURE__ */ jsxDEV(Fragment, { children }, void 0, false, {
6
- fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityState.tsx",
7
- lineNumber: 13,
8
- columnNumber: 92
9
- }, void 0) : null;
10
- };
11
- export {
12
- IdentityState
13
- };
14
- //# sourceMappingURL=IdentityState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IdentityState.js","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import React, { 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":["this"],"mappings":";;AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAe;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAK,uBAAA,UAAA,EAAG,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,IAAM;AAC7G;"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxDevRuntime = require("react/jsx-dev-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__ */ jsxDevRuntime.jsxDEV(reactSlot.Slot, { onClick: react.useCallback(() => logout(), [logout]), children }, void 0, false, {
10
- fileName: "/__w/interface/interface/packages/react-identity/src/components/LogoutTrigger.tsx",
11
- lineNumber: 9,
12
- columnNumber: 9
13
- }, void 0);
14
- };
15
- exports.LogoutTrigger = LogoutTrigger;
16
- //# sourceMappingURL=LogoutTrigger.cjs.map
@@ -1 +0,0 @@
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","jsxDEV","Slot","useCallback","this"],"mappings":";;;;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAASA,UAAAA;AACR,SAAAC,8BAAA,OAACC,UAAK,MAAA,EAAA,SAASC,MAAAA,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAvD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAgE,GAAAC,MAAA;AACxE;;"}
@@ -1,16 +0,0 @@
1
- import { jsxDEV } from "react/jsx-dev-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__ */ jsxDEV(Slot, { onClick: useCallback(() => logout(), [logout]), children }, void 0, false, {
8
- fileName: "/__w/interface/interface/packages/react-identity/src/components/LogoutTrigger.tsx",
9
- lineNumber: 9,
10
- columnNumber: 9
11
- }, void 0);
12
- };
13
- export {
14
- LogoutTrigger
15
- };
16
- //# sourceMappingURL=LogoutTrigger.js.map
@@ -1 +0,0 @@
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":["this"],"mappings":";;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAAS;AACR,SAAA,uBAAC,MAAK,EAAA,SAAS,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAvD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAgE,GAAAA,MAAA;AACxE;"}
@@ -1,52 +0,0 @@
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({ state: sessionToken ? "loading" : "none", identity: void 0 });
11
- const clearIdentity = react.useCallback(() => setIdentityState({ state: "cleared", identity: void 0 }), []);
12
- const logout = useLogoutInternal.useLogoutInternal(clearIdentity);
13
- const fetch = react.useCallback(async () => {
14
- setIdentityState({ state: "loading", identity: void 0 });
15
- try {
16
- const response = await fetchMe();
17
- const person = response.person;
18
- const projects = response.projects;
19
- const permissions = response.permissions ?? { canCreateProject: false };
20
- setIdentityState({
21
- state: "success",
22
- identity: {
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
- });
33
- } catch (e) {
34
- console.error(e);
35
- if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
36
- logout({ noRedirect: true });
37
- setIdentityState({ state: "cleared", identity: void 0 });
38
- } else {
39
- setIdentityState({ state: "failed", identity: void 0 });
40
- }
41
- }
42
- }, [fetchMe, logout]);
43
- return [
44
- identityState,
45
- react.useMemo(() => ({
46
- clearIdentity,
47
- refreshIdentity: fetch
48
- }), [clearIdentity, fetch])
49
- ];
50
- };
51
- exports.useFetchIdentity = useFetchIdentity;
52
- //# sourceMappingURL=useFetchIdentity.cjs.map
@@ -1 +0,0 @@
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<ReturnType<typeof useFetchIdentity>[0]>({ state: sessionToken ? 'loading' : 'none', identity: undefined })\n\n\tconst clearIdentity = useCallback(() => setIdentityState({ state: 'cleared', identity: undefined }), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState({ state: 'loading', identity: undefined })\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({\n\t\t\t\tstate: 'success',\n\t\t\t\tidentity: {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\tperson: person ?? undefined,\n\t\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\t\tname: it.project.name,\n\t\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t\t})),\n\t\t\t\t\tpermissions,\n\t\t\t\t},\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({ state: 'cleared', identity: undefined })\n\t\t\t} else {\n\t\t\t\tsetIdentityState({ state: 'failed', identity: undefined })\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\tidentityState,\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,MAAAA,SAAiD,EAAE,OAAO,eAAe,YAAY,QAAQ,UAAU,OAAW,CAAA;AAE5J,QAAM,gBAAgBC,MAAAA,YAAY,MAAM,iBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW,GAAG,CAAE,CAAA;AACjG,QAAA,SAASC,oCAAkB,aAAa;AAExC,QAAA,QAAQD,MAAAA,YAAY,YAAY;AACrC,qBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AACtD,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAErD,uBAAA;AAAA,QAChB,OAAO;AAAA,QACP,UAAU;AAAA,UACT,IAAI,SAAS;AAAA,UACb,QAAQ,UAAU;AAAA,UAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,YAC7B,MAAM,GAAG,QAAQ;AAAA,YACjB,MAAM,GAAG,QAAQ;AAAA,YACjB,OAAO,GAAG,YAAY,IAAI,CAAAE,QAAMA,IAAG,IAAI;AAAA,UAAA,EACtC;AAAA,UACF;AAAA,QACD;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,EAAE,OAAO,WAAW,UAAU,QAAW;AAAA,MAAA,OACpD;AACN,yBAAiB,EAAE,OAAO,UAAU,UAAU,QAAW;AAAA,MAC1D;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN;AAAA,IACAC,MAAAA,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;;"}
@@ -1,52 +0,0 @@
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({ state: sessionToken ? "loading" : "none", identity: void 0 });
9
- const clearIdentity = useCallback(() => setIdentityState({ state: "cleared", identity: void 0 }), []);
10
- const logout = useLogoutInternal(clearIdentity);
11
- const fetch = useCallback(async () => {
12
- setIdentityState({ state: "loading", identity: void 0 });
13
- try {
14
- const response = await fetchMe();
15
- const person = response.person;
16
- const projects = response.projects;
17
- const permissions = response.permissions ?? { canCreateProject: false };
18
- setIdentityState({
19
- state: "success",
20
- identity: {
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
- });
31
- } catch (e) {
32
- console.error(e);
33
- if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
34
- logout({ noRedirect: true });
35
- setIdentityState({ state: "cleared", identity: void 0 });
36
- } else {
37
- setIdentityState({ state: "failed", identity: void 0 });
38
- }
39
- }
40
- }, [fetchMe, logout]);
41
- return [
42
- identityState,
43
- useMemo(() => ({
44
- clearIdentity,
45
- refreshIdentity: fetch
46
- }), [clearIdentity, fetch])
47
- ];
48
- };
49
- export {
50
- useFetchIdentity
51
- };
52
- //# sourceMappingURL=useFetchIdentity.js.map
@@ -1 +0,0 @@
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<ReturnType<typeof useFetchIdentity>[0]>({ state: sessionToken ? 'loading' : 'none', identity: undefined })\n\n\tconst clearIdentity = useCallback(() => setIdentityState({ state: 'cleared', identity: undefined }), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState({ state: 'loading', identity: undefined })\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({\n\t\t\t\tstate: 'success',\n\t\t\t\tidentity: {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\tperson: person ?? undefined,\n\t\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\t\tname: it.project.name,\n\t\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t\t})),\n\t\t\t\t\tpermissions,\n\t\t\t\t},\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({ state: 'cleared', identity: undefined })\n\t\t\t} else {\n\t\t\t\tsetIdentityState({ state: 'failed', identity: undefined })\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\tidentityState,\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,SAAiD,EAAE,OAAO,eAAe,YAAY,QAAQ,UAAU,OAAW,CAAA;AAE5J,QAAM,gBAAgB,YAAY,MAAM,iBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW,GAAG,CAAE,CAAA;AACjG,QAAA,SAAS,kBAAkB,aAAa;AAExC,QAAA,QAAQ,YAAY,YAAY;AACrC,qBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AACtD,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAErD,uBAAA;AAAA,QAChB,OAAO;AAAA,QACP,UAAU;AAAA,UACT,IAAI,SAAS;AAAA,UACb,QAAQ,UAAU;AAAA,UAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,YAC7B,MAAM,GAAG,QAAQ;AAAA,YACjB,MAAM,GAAG,QAAQ;AAAA,YACjB,OAAO,GAAG,YAAY,IAAI,CAAAA,QAAMA,IAAG,IAAI;AAAA,UAAA,EACtC;AAAA,UACF;AAAA,QACD;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,EAAE,OAAO,WAAW,UAAU,QAAW;AAAA,MAAA,OACpD;AACN,yBAAiB,EAAE,OAAO,UAAU,UAAU,QAAW;AAAA,MAC1D;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN;AAAA,IACA,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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;;"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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;"}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;;;;"}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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;"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const TenantApi = require("@contember/graphql-client-tenant");
4
- const reactClientTenant = require("@contember/react-client-tenant");
5
- const react = require("react");
6
- function _interopNamespaceDefault(e) {
7
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
- if (e) {
9
- for (const k in e) {
10
- if (k !== "default") {
11
- const d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: () => e[k]
15
- });
16
- }
17
- }
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
- const TenantApi__namespace = /* @__PURE__ */ _interopNamespaceDefault(TenantApi);
23
- const identityFragment = TenantApi__namespace.identity$$.person(TenantApi__namespace.person$$).projects(
24
- TenantApi__namespace.identityProjectRelation$.project(TenantApi__namespace.project$$).memberships(TenantApi__namespace.membership$$.variables(TenantApi__namespace.variableEntry$$))
25
- ).permissions(TenantApi__namespace.identityGlobalPermissions$$);
26
- const useFetchMe = () => {
27
- const executor = reactClientTenant.useTenantApi();
28
- return react.useCallback(async () => {
29
- return (await executor(TenantApi__namespace.query$.me(identityFragment))).me;
30
- }, [executor]);
31
- };
32
- exports.useFetchMe = useFetchMe;
33
- //# sourceMappingURL=useFetchMe.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetchMe.cjs","sources":["../../../../src/internal/hooks/useFetchMe.ts"],"sourcesContent":["import * as TenantApi from '@contember/graphql-client-tenant'\nimport { ModelType, useTenantApi } from '@contember/react-client-tenant'\nimport { useCallback } from 'react'\n\nconst identityFragment = TenantApi\n\t.identity$$\n\t.person(TenantApi.person$$)\n\t.projects(TenantApi\n\t\t.identityProjectRelation$\n\t\t.project(TenantApi.project$$)\n\t\t.memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$)),\n\t)\n\t.permissions(TenantApi.identityGlobalPermissions$$)\n\nexport type FetchedIdentity = ModelType<typeof identityFragment>\n\nexport const useFetchMe = () => {\n\tconst executor = useTenantApi()\n\treturn useCallback(async () => {\n\t\treturn (await executor(TenantApi.query$.me(identityFragment))).me\n\t}, [executor])\n}\n"],"names":["TenantApi","useTenantApi","useCallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,mBAAmBA,qBACvB,WACA,OAAOA,qBAAU,QAAQ,EACzB;AAAA,EAASA,qBACR,yBACA,QAAQA,qBAAU,SAAS,EAC3B,YAAYA,qBAAU,aAAa,UAAUA,qBAAU,eAAe,CAAC;AACzE,EACC,YAAYA,qBAAU,2BAA2B;AAI5C,MAAM,aAAa,MAAM;AAC/B,QAAM,WAAWC,kBAAAA;AACjB,SAAOC,kBAAY,YAAY;AAC9B,YAAQ,MAAM,SAASF,qBAAU,OAAO,GAAG,gBAAgB,CAAC,GAAG;AAAA,EAAA,GAC7D,CAAC,QAAQ,CAAC;AACd;;"}
@@ -1,16 +0,0 @@
1
- import * as TenantApi from "@contember/graphql-client-tenant";
2
- import { useTenantApi } from "@contember/react-client-tenant";
3
- import { useCallback } from "react";
4
- const identityFragment = TenantApi.identity$$.person(TenantApi.person$$).projects(
5
- TenantApi.identityProjectRelation$.project(TenantApi.project$$).memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$))
6
- ).permissions(TenantApi.identityGlobalPermissions$$);
7
- const useFetchMe = () => {
8
- const executor = useTenantApi();
9
- return useCallback(async () => {
10
- return (await executor(TenantApi.query$.me(identityFragment))).me;
11
- }, [executor]);
12
- };
13
- export {
14
- useFetchMe
15
- };
16
- //# sourceMappingURL=useFetchMe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetchMe.js","sources":["../../../../src/internal/hooks/useFetchMe.ts"],"sourcesContent":["import * as TenantApi from '@contember/graphql-client-tenant'\nimport { ModelType, useTenantApi } from '@contember/react-client-tenant'\nimport { useCallback } from 'react'\n\nconst identityFragment = TenantApi\n\t.identity$$\n\t.person(TenantApi.person$$)\n\t.projects(TenantApi\n\t\t.identityProjectRelation$\n\t\t.project(TenantApi.project$$)\n\t\t.memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$)),\n\t)\n\t.permissions(TenantApi.identityGlobalPermissions$$)\n\nexport type FetchedIdentity = ModelType<typeof identityFragment>\n\nexport const useFetchMe = () => {\n\tconst executor = useTenantApi()\n\treturn useCallback(async () => {\n\t\treturn (await executor(TenantApi.query$.me(identityFragment))).me\n\t}, [executor])\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,mBAAmB,UACvB,WACA,OAAO,UAAU,QAAQ,EACzB;AAAA,EAAS,UACR,yBACA,QAAQ,UAAU,SAAS,EAC3B,YAAY,UAAU,aAAa,UAAU,UAAU,eAAe,CAAC;AACzE,EACC,YAAY,UAAU,2BAA2B;AAI5C,MAAM,aAAa,MAAM;AAC/B,QAAM,WAAW;AACjB,SAAO,YAAY,YAAY;AAC9B,YAAQ,MAAM,SAAS,UAAU,OAAO,GAAG,gBAAgB,CAAC,GAAG;AAAA,EAAA,GAC7D,CAAC,QAAQ,CAAC;AACd;"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const reactClient = require("@contember/react-client");
4
- const react = require("react");
5
- const useSignOut = require("./useSignOut.cjs");
6
- const useLogoutInternal = (clearIdentity) => {
7
- const tenantLogout = useSignOut.useSignOut();
8
- const setSessionToken = reactClient.useSetSessionToken();
9
- return react.useCallback(
10
- async ({ noRedirect = false } = {}) => {
11
- if (navigator.credentials && navigator.credentials.preventSilentAccess) {
12
- try {
13
- await navigator.credentials.preventSilentAccess();
14
- } catch {
15
- }
16
- }
17
- clearIdentity?.();
18
- setSessionToken(void 0);
19
- try {
20
- const response = await tenantLogout();
21
- if (!response?.ok) {
22
- console.warn(response?.error);
23
- }
24
- } catch (e) {
25
- console.warn(e);
26
- }
27
- if (!noRedirect) {
28
- window.location.href = "/";
29
- }
30
- },
31
- [clearIdentity, setSessionToken, tenantLogout]
32
- );
33
- };
34
- exports.useLogoutInternal = useLogoutInternal;
35
- //# sourceMappingURL=useLogoutInternal.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLogoutInternal.cjs","sources":["../../../../src/internal/hooks/useLogoutInternal.ts"],"sourcesContent":["import { useSetSessionToken } from '@contember/react-client'\nimport { useCallback } from 'react'\nimport { useSignOut } from './useSignOut'\n\nexport const useLogoutInternal = (clearIdentity?: () => void) => {\n\tconst tenantLogout = useSignOut()\n\tconst setSessionToken = useSetSessionToken()\n\n\treturn useCallback(\n\t\tasync ({ noRedirect = false }: { noRedirect?: boolean } = {}) => {\n\t\t\tif (navigator.credentials && navigator.credentials.preventSilentAccess) {\n\t\t\t\ttry {\n\t\t\t\t\tawait navigator.credentials.preventSilentAccess()\n\t\t\t\t} catch {\n\t\t\t\t\t// actually, not implemented in safari:\n\t\t\t\t\t// https://github.com/WebKit/WebKit/blob/414f4e45b0e82bbfcee783d08a9642be1afa8f72/Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp#L132\n\t\t\t\t}\n\t\t\t}\n\t\t\tclearIdentity?.()\n\t\t\tsetSessionToken(undefined)\n\t\t\ttry {\n\t\t\t\tconst response = await tenantLogout()\n\t\t\t\tif (!response?.ok) {\n\t\t\t\t\tconsole.warn(response?.error)\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(e)\n\t\t\t}\n\t\t\tif (!noRedirect) {\n\t\t\t\twindow.location.href = '/' // todo better redirect?\n\t\t\t}\n\t\t},\n\t\t[clearIdentity, setSessionToken, tenantLogout],\n\t)\n}\n"],"names":["useSignOut","useSetSessionToken","useCallback"],"mappings":";;;;;AAIa,MAAA,oBAAoB,CAAC,kBAA+B;AAChE,QAAM,eAAeA,WAAAA;AACrB,QAAM,kBAAkBC,YAAAA;AAEjB,SAAAC,MAAA;AAAA,IACN,OAAO,EAAE,aAAa,MAAM,IAA8B,OAAO;AAChE,UAAI,UAAU,eAAe,UAAU,YAAY,qBAAqB;AACnE,YAAA;AACG,gBAAA,UAAU,YAAY;QAAoB,QACzC;AAAA,QAGR;AAAA,MACD;AACgB;AAChB,sBAAgB,MAAS;AACrB,UAAA;AACG,cAAA,WAAW,MAAM;AACnB,YAAA,CAAC,UAAU,IAAI;AACV,kBAAA,KAAK,UAAU,KAAK;AAAA,QAC7B;AAAA,eACQ,GAAG;AACX,gBAAQ,KAAK,CAAC;AAAA,MACf;AACA,UAAI,CAAC,YAAY;AAChB,eAAO,SAAS,OAAO;AAAA,MACxB;AAAA,IACD;AAAA,IACA,CAAC,eAAe,iBAAiB,YAAY;AAAA,EAAA;AAE/C;;"}