@contember/react-identity 2.1.0-alpha.9 → 2.1.0-beta.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 (33) hide show
  1. package/CLAUDE.md +19 -0
  2. package/dist/development/index.cjs +2 -2
  3. package/dist/development/index.js +1 -1
  4. package/dist/development/src/components/HasRole.cjs.map +1 -1
  5. package/dist/development/src/components/HasRole.js.map +1 -1
  6. package/dist/development/src/components/IdentityEnvironmentProvider.cjs +1 -1
  7. package/dist/development/src/components/IdentityEnvironmentProvider.cjs.map +1 -1
  8. package/dist/development/src/components/IdentityEnvironmentProvider.js +1 -1
  9. package/dist/development/src/components/IdentityEnvironmentProvider.js.map +1 -1
  10. package/dist/development/src/environment/IdentityEnvironmentExtension.cjs.map +1 -1
  11. package/dist/development/src/environment/IdentityEnvironmentExtension.js.map +1 -1
  12. package/dist/development/src/environment/ProjectEnvironmentExtension.cjs.map +1 -1
  13. package/dist/development/src/environment/ProjectEnvironmentExtension.js.map +1 -1
  14. package/dist/development/src/hooks/useProjectUserRoles.cjs.map +1 -1
  15. package/dist/development/src/hooks/useProjectUserRoles.js.map +1 -1
  16. package/dist/production/index.cjs +2 -2
  17. package/dist/production/index.js +1 -1
  18. package/dist/production/src/components/HasRole.cjs.map +1 -1
  19. package/dist/production/src/components/HasRole.js.map +1 -1
  20. package/dist/production/src/components/IdentityEnvironmentProvider.cjs.map +1 -1
  21. package/dist/production/src/components/IdentityEnvironmentProvider.js.map +1 -1
  22. package/dist/production/src/environment/IdentityEnvironmentExtension.cjs.map +1 -1
  23. package/dist/production/src/environment/IdentityEnvironmentExtension.js.map +1 -1
  24. package/dist/production/src/environment/ProjectEnvironmentExtension.cjs.map +1 -1
  25. package/dist/production/src/environment/ProjectEnvironmentExtension.js.map +1 -1
  26. package/dist/production/src/hooks/useProjectUserRoles.cjs.map +1 -1
  27. package/dist/production/src/hooks/useProjectUserRoles.js.map +1 -1
  28. package/dist/types/components/IdentityEnvironmentProvider.d.ts.map +1 -1
  29. package/dist/types/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +9 -9
  31. package/src/components/HasRole.tsx +1 -1
  32. package/src/components/IdentityEnvironmentProvider.tsx +0 -2
  33. package/src/hooks/index.ts +0 -1
package/CLAUDE.md ADDED
@@ -0,0 +1,19 @@
1
+ # react-identity
2
+
3
+ Authorization and authentication components for role-based rendering.
4
+
5
+ ## Core Components
6
+
7
+ - `HasRole` — conditional rendering based on user roles (string match or custom function)
8
+ - `IdentityEnvironmentProvider` — provides identity data to binding environment
9
+
10
+ ## Key Hooks
11
+
12
+ - `useProjectUserRoles()` — get current user's project roles
13
+
14
+ ## Environment Extensions
15
+
16
+ - `identityEnvironmentExtension` — injects identity data into binding environment
17
+ - `projectEnvironmentExtension` — provides project slug for role context
18
+
19
+ Works with `@contember/react-client-tenant` for tenant/identity data and `EnvironmentExtensionProvider` from react-binding.
@@ -3,14 +3,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const reactClientTenant = require("@contember/react-client-tenant");
4
4
  const HasRole = require("./src/components/HasRole.cjs");
5
5
  const IdentityEnvironmentProvider = require("./src/components/IdentityEnvironmentProvider.cjs");
6
- const useProjectUserRoles = require("./src/hooks/useProjectUserRoles.cjs");
7
6
  const IdentityEnvironmentExtension = require("./src/environment/IdentityEnvironmentExtension.cjs");
8
7
  const ProjectEnvironmentExtension = require("./src/environment/ProjectEnvironmentExtension.cjs");
8
+ const useProjectUserRoles = require("./src/hooks/useProjectUserRoles.cjs");
9
9
  exports.HasRole = HasRole.HasRole;
10
10
  exports.IdentityEnvironmentProvider = IdentityEnvironmentProvider.IdentityEnvironmentProvider;
11
- exports.useProjectUserRoles = useProjectUserRoles.useProjectUserRoles;
12
11
  exports.identityEnvironmentExtension = IdentityEnvironmentExtension.identityEnvironmentExtension;
13
12
  exports.projectEnvironmentExtension = ProjectEnvironmentExtension.projectEnvironmentExtension;
13
+ exports.useProjectUserRoles = useProjectUserRoles.useProjectUserRoles;
14
14
  Object.keys(reactClientTenant).forEach((k) => {
15
15
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
16
16
  enumerable: true,
@@ -1,9 +1,9 @@
1
1
  export * from "@contember/react-client-tenant";
2
2
  import { HasRole } from "./src/components/HasRole.js";
3
3
  import { IdentityEnvironmentProvider } from "./src/components/IdentityEnvironmentProvider.js";
4
- import { useProjectUserRoles } from "./src/hooks/useProjectUserRoles.js";
5
4
  import { identityEnvironmentExtension } from "./src/environment/IdentityEnvironmentExtension.js";
6
5
  import { projectEnvironmentExtension } from "./src/environment/ProjectEnvironmentExtension.js";
6
+ import { useProjectUserRoles } from "./src/hooks/useProjectUserRoles.js";
7
7
  export {
8
8
  HasRole,
9
9
  IdentityEnvironmentProvider,
@@ -1 +1 @@
1
- {"version":3,"file":"HasRole.cjs","sources":["../../../../../packages/react-identity/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","this","identityEnvironmentExtension","projectEnvironmentExtension"],"mappings":";;;;;;;AAeO,MAAM,UAAUA,aAAAA,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAeC,oBAAAA,oBAAoB;AAEzC,SAAO,kBAAkB,MAAM,YAAY,mEAAO,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAAY,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAaC,6BAAAA,4BAA4B,EAAE;AAChE,QAAM,UAAU,IAAI,aAAaC,4BAAAA,2BAA2B,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAI,UAAU,SAAS,KAAK,CAAM,OAAA,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAE5F,SAAO,kBAAkB,MAAM,YAAY,mEAAO,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAF,MAAY,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAAA;AAE3B,SAAO,UAAU,KAAK;AACvB;;"}
1
+ {"version":3,"file":"HasRole.cjs","sources":["../../../../../packages/react-identity/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<string>(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","this","identityEnvironmentExtension","projectEnvironmentExtension"],"mappings":";;;;;;;AAeO,MAAM,UAAUA,aAAAA,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAeC,oBAAAA,oBAAA;AAErB,SAAO,kBAAkB,MAAM,YAAY,mEAAO,SAAA,GAAH,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAAY,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAaC,6BAAAA,4BAA4B,EAAE;AAChE,QAAM,UAAU,IAAI,aAAaC,4BAAAA,2BAA2B,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAY,UAAU,SAAS,KAAK,CAAA,OAAM,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAEpG,SAAO,kBAAkB,MAAM,YAAY,mEAAO,SAAA,GAAH,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAF,MAAY,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AAC3E,MAAI,OAAO,cAAc,UAAU;AAClC,WAAO,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasRole.js","sources":["../../../../../packages/react-identity/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":["this"],"mappings":";;;;;AAeO,MAAM,UAAU,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAe,oBAAoB;AAEzC,SAAO,kBAAkB,MAAM,YAAY,uCAAO,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,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,CAAA,CAAE;AAE5F,SAAO,kBAAkB,MAAM,YAAY,uCAAO,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAAA;AAE3B,SAAO,UAAU,KAAK;AACvB;"}
1
+ {"version":3,"file":"HasRole.js","sources":["../../../../../packages/react-identity/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<string>(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":["this"],"mappings":";;;;;AAeO,MAAM,UAAU,UAAwB,CAAC,EAAE,UAAU,WAAW;AACtE,QAAM,eAAe,oBAAA;AAErB,SAAO,kBAAkB,MAAM,YAAY,uCAAO,SAAA,GAAH,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,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,IAAY,UAAU,SAAS,KAAK,CAAA,OAAM,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAEpG,SAAO,kBAAkB,MAAM,YAAY,uCAAO,SAAA,GAAH,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AAC3E,MAAI,OAAO,cAAc,UAAU;AAClC,WAAO,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;"}
@@ -8,7 +8,7 @@ const IdentityEnvironmentProvider = ({ children }) => {
8
8
  const identity = reactClientTenant.useIdentity();
9
9
  return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentExtensionProvider, { extension: IdentityEnvironmentExtension.identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
10
10
  fileName: "/home/runner/work/contember/contember/packages/react-identity/src/components/IdentityEnvironmentProvider.tsx",
11
- lineNumber: 14,
11
+ lineNumber: 13,
12
12
  columnNumber: 3
13
13
  }, void 0);
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentProvider.cjs","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\n\t)\n}\n"],"names":["useIdentity","EnvironmentExtensionProvider","identityEnvironmentExtension","this"],"mappings":";;;;;;AAUO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAWA,kBAAAA,YAAY;AAC7B,8CACEC,aAAAA,8BAA6B,EAAA,WAAWC,6BAAAA,8BAA8B,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAEA,GAAAC,MAAA;AAGF;;"}
1
+ {"version":3,"file":"IdentityEnvironmentProvider.cjs","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\t)\n}\n"],"names":["useIdentity","EnvironmentExtensionProvider","identityEnvironmentExtension","this"],"mappings":";;;;;;AASO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAWA,kBAAAA,YAAA;AACjB,8CACEC,aAAAA,8BAAA,EAA6B,WAAWC,6BAAAA,8BAA8B,OAAO,YAAY,MACxF,YADF,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAEA;AAEF;;"}
@@ -6,7 +6,7 @@ const IdentityEnvironmentProvider = ({ children }) => {
6
6
  const identity = useIdentity();
7
7
  return /* @__PURE__ */ jsxDEV(EnvironmentExtensionProvider, { extension: identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
8
8
  fileName: "/home/runner/work/contember/contember/packages/react-identity/src/components/IdentityEnvironmentProvider.tsx",
9
- lineNumber: 14,
9
+ lineNumber: 13,
10
10
  columnNumber: 3
11
11
  }, void 0);
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentProvider.js","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\n\t)\n}\n"],"names":["this"],"mappings":";;;;AAUO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAW,YAAY;AAC7B,gCACE,8BAA6B,EAAA,WAAW,8BAA8B,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAEA,GAAAA,MAAA;AAGF;"}
1
+ {"version":3,"file":"IdentityEnvironmentProvider.js","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\t)\n}\n"],"names":["this"],"mappings":";;;;AASO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAW,YAAA;AACjB,gCACE,8BAAA,EAA6B,WAAW,8BAA8B,OAAO,YAAY,MACxF,YADF,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAEA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,0BAAa,8CAA8C;AAAA,EAAA;AAG/D,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EACpB;AACD,CAAC;;"}
1
+ {"version":3,"file":"IdentityEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,aAAAA,YAAY,gBAAgB,CAAC,UAAuC;AAC/G,MAAI,UAAU,QAAW;AACxB,UAAM,IAAIC,aAAAA,aAAa,8CAA8C;AAAA,EACtE;AAEA,SAAO;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentExtension.js","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,EAAA;AAG/D,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EACpB;AACD,CAAC;"}
1
+ {"version":3,"file":"IdentityEnvironmentExtension.js","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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;AACxB,UAAM,IAAI,aAAa,8CAA8C;AAAA,EACtE;AAEA,SAAO;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/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,0BAAa,kDAAkD;AAAA,EAAA;AAEnE,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EACf;AACD,CAAC;;"}
1
+ {"version":3,"file":"ProjectEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/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,aAAAA,YAAY,gBAAgB,CAAC,SAAoC;AAC3G,MAAI,SAAS,QAAW;AACvB,UAAM,IAAIC,aAAAA,aAAa,kDAAkD;AAAA,EAC1E;AACA,SAAO;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectEnvironmentExtension.js","sources":["../../../../../packages/react-identity/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,EAAA;AAEnE,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EACf;AACD,CAAC;"}
1
+ {"version":3,"file":"ProjectEnvironmentExtension.js","sources":["../../../../../packages/react-identity/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;AACvB,UAAM,IAAI,aAAa,kDAAkD;AAAA,EAC1E;AACA,SAAO;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectUserRoles.cjs","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,kBAAAA,YAAY;AAC7B,QAAM,cAAcC,YAAAA,eAAe;AACnC,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAAA;AAEhB,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAAA;AAGT,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;;"}
1
+ {"version":3,"file":"useProjectUserRoles.cjs","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,kBAAAA,YAAA;AACjB,QAAM,cAAcC,YAAAA,eAAA;AACpB,SAAOC,MAAAA,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAA;AAAA,IACZ;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAA,YAAW,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAA;AAAA,IACZ;AAEA,WAAO,IAAI,IAAI,cAAc,KAAK;AAAA,EACnC,GAAG,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectUserRoles.js","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,YAAY;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAAA;AAEhB,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAAA;AAGT,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;"}
1
+ {"version":3,"file":"useProjectUserRoles.js","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,YAAA;AACjB,QAAM,cAAc,eAAA;AACpB,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAA;AAAA,IACZ;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAA,YAAW,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAA;AAAA,IACZ;AAEA,WAAO,IAAI,IAAI,cAAc,KAAK;AAAA,EACnC,GAAG,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;"}
@@ -3,14 +3,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const reactClientTenant = require("@contember/react-client-tenant");
4
4
  const HasRole = require("./src/components/HasRole.cjs");
5
5
  const IdentityEnvironmentProvider = require("./src/components/IdentityEnvironmentProvider.cjs");
6
- const useProjectUserRoles = require("./src/hooks/useProjectUserRoles.cjs");
7
6
  const IdentityEnvironmentExtension = require("./src/environment/IdentityEnvironmentExtension.cjs");
8
7
  const ProjectEnvironmentExtension = require("./src/environment/ProjectEnvironmentExtension.cjs");
8
+ const useProjectUserRoles = require("./src/hooks/useProjectUserRoles.cjs");
9
9
  exports.HasRole = HasRole.HasRole;
10
10
  exports.IdentityEnvironmentProvider = IdentityEnvironmentProvider.IdentityEnvironmentProvider;
11
- exports.useProjectUserRoles = useProjectUserRoles.useProjectUserRoles;
12
11
  exports.identityEnvironmentExtension = IdentityEnvironmentExtension.identityEnvironmentExtension;
13
12
  exports.projectEnvironmentExtension = ProjectEnvironmentExtension.projectEnvironmentExtension;
13
+ exports.useProjectUserRoles = useProjectUserRoles.useProjectUserRoles;
14
14
  Object.keys(reactClientTenant).forEach((k) => {
15
15
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
16
16
  enumerable: true,
@@ -1,9 +1,9 @@
1
1
  export * from "@contember/react-client-tenant";
2
2
  import { HasRole } from "./src/components/HasRole.js";
3
3
  import { IdentityEnvironmentProvider } from "./src/components/IdentityEnvironmentProvider.js";
4
- import { useProjectUserRoles } from "./src/hooks/useProjectUserRoles.js";
5
4
  import { identityEnvironmentExtension } from "./src/environment/IdentityEnvironmentExtension.js";
6
5
  import { projectEnvironmentExtension } from "./src/environment/ProjectEnvironmentExtension.js";
6
+ import { useProjectUserRoles } from "./src/hooks/useProjectUserRoles.js";
7
7
  export {
8
8
  HasRole,
9
9
  IdentityEnvironmentProvider,
@@ -1 +1 @@
1
- {"version":3,"file":"HasRole.cjs","sources":["../../../../../packages/react-identity/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,oBAAoB;AAEzC,SAAO,kBAAkB,MAAM,YAAY,IAAIC,2BAAA,IAAAC,qBAAA,EAAG,SAAS,CAAA,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAaC,6BAAAA,4BAA4B,EAAE;AAChE,QAAM,UAAU,IAAI,aAAaC,4BAAAA,2BAA2B,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAI,UAAU,SAAS,KAAK,CAAM,OAAA,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAE5F,SAAO,kBAAkB,MAAM,YAAY,IAAIH,2BAAA,IAAAC,qBAAA,EAAG,SAAS,CAAA,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAAA;AAE3B,SAAO,UAAU,KAAK;AACvB;;"}
1
+ {"version":3,"file":"HasRole.cjs","sources":["../../../../../packages/react-identity/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<string>(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,oBAAA;AAErB,SAAO,kBAAkB,MAAM,YAAY,IAAIC,2BAAAA,IAAAC,qBAAA,EAAG,UAAS,IAAM;AAClE,GAAG,CAAC,EAAE,UAAU,KAAA,GAAQ,QAAQ;AAC/B,QAAM,WAAW,IAAI,aAAaC,6BAAAA,4BAA4B,EAAE;AAChE,QAAM,UAAU,IAAI,aAAaC,4BAAAA,2BAA2B,EAAE;AAC9D,QAAM,eAAe,IAAI,IAAY,UAAU,SAAS,KAAK,CAAA,OAAM,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAEpG,SAAO,kBAAkB,MAAM,YAAY,IAAIH,2BAAAA,IAAAC,qBAAA,EAAG,UAAS,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AAC3E,MAAI,OAAO,cAAc,UAAU;AAClC,WAAO,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasRole.js","sources":["../../../../../packages/react-identity/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,oBAAoB;AAEzC,SAAO,kBAAkB,MAAM,YAAY,IAAI,oBAAA,UAAA,EAAG,SAAS,CAAA,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,CAAA,CAAE;AAE5F,SAAO,kBAAkB,MAAM,YAAY,IAAI,oBAAA,UAAA,EAAG,SAAS,CAAA,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AACvE,MAAA,OAAO,cAAc,UAAU;AAC3B,WAAA,MAAM,IAAI,SAAS;AAAA,EAAA;AAE3B,SAAO,UAAU,KAAK;AACvB;"}
1
+ {"version":3,"file":"HasRole.js","sources":["../../../../../packages/react-identity/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<string>(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,oBAAA;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,IAAY,UAAU,SAAS,KAAK,CAAA,OAAM,GAAG,SAAS,OAAO,GAAG,SAAS,CAAA,CAAE;AAEpG,SAAO,kBAAkB,MAAM,YAAY,IAAI,oBAAA,UAAA,EAAG,UAAS,IAAM;AAClE,CAAC;AAED,MAAM,oBAAoB,CAAC,WAA0B,UAAuB;AAC3E,MAAI,OAAO,cAAc,UAAU;AAClC,WAAO,MAAM,IAAI,SAAS;AAAA,EAC3B;AACA,SAAO,UAAU,KAAK;AACvB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentProvider.cjs","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\n\t)\n}\n"],"names":["useIdentity","EnvironmentExtensionProvider","identityEnvironmentExtension"],"mappings":";;;;;;AAUO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAWA,kBAAAA,YAAY;AAC7B,wCACEC,2CAA6B,EAAA,WAAWC,6BAAAA,8BAA8B,OAAO,YAAY,MACxF,UACF;AAGF;;"}
1
+ {"version":3,"file":"IdentityEnvironmentProvider.cjs","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\t)\n}\n"],"names":["useIdentity","EnvironmentExtensionProvider","identityEnvironmentExtension"],"mappings":";;;;;;AASO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAWA,kBAAAA,YAAA;AACjB,wCACEC,2CAAA,EAA6B,WAAWC,6BAAAA,8BAA8B,OAAO,YAAY,MACxF,UACF;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentProvider.js","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\n\t)\n}\n"],"names":[],"mappings":";;;;AAUO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAW,YAAY;AAC7B,6BACE,8BAA6B,EAAA,WAAW,8BAA8B,OAAO,YAAY,MACxF,UACF;AAGF;"}
1
+ {"version":3,"file":"IdentityEnvironmentProvider.js","sources":["../../../../../packages/react-identity/src/components/IdentityEnvironmentProvider.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { identityEnvironmentExtension } from '../environment'\nimport { useIdentity } from '@contember/react-client-tenant'\n\nexport interface IdentityEnvironmentProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {\n\tconst identity = useIdentity()\n\treturn (\n\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t{children}\n\t\t</EnvironmentExtensionProvider>\n\t)\n}\n"],"names":[],"mappings":";;;;AASO,MAAM,8BAA0E,CAAC,EAAE,eAAe;AACxG,QAAM,WAAW,YAAA;AACjB,6BACE,8BAAA,EAA6B,WAAW,8BAA8B,OAAO,YAAY,MACxF,UACF;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,0BAAa,8CAA8C;AAAA,EAAA;AAG/D,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EACpB;AACD,CAAC;;"}
1
+ {"version":3,"file":"IdentityEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,aAAAA,YAAY,gBAAgB,CAAC,UAAuC;AAC/G,MAAI,UAAU,QAAW;AACxB,UAAM,IAAIC,aAAAA,aAAa,8CAA8C;AAAA,EACtE;AAEA,SAAO;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentExtension.js","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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,EAAA;AAG/D,SAAA;AAAA,IACN,UAAU,SAAS;AAAA,EACpB;AACD,CAAC;"}
1
+ {"version":3,"file":"IdentityEnvironmentExtension.js","sources":["../../../../../packages/react-identity/src/environment/IdentityEnvironmentExtension.ts"],"sourcesContent":["import { BindingError, Environment } from '@contember/react-binding'\nimport { Identity } from '@contember/react-client-tenant'\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;AACxB,UAAM,IAAI,aAAa,8CAA8C;AAAA,EACtE;AAEA,SAAO;AAAA,IACN,UAAU,SAAS;AAAA,EAAA;AAErB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/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,0BAAa,kDAAkD;AAAA,EAAA;AAEnE,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EACf;AACD,CAAC;;"}
1
+ {"version":3,"file":"ProjectEnvironmentExtension.cjs","sources":["../../../../../packages/react-identity/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,aAAAA,YAAY,gBAAgB,CAAC,SAAoC;AAC3G,MAAI,SAAS,QAAW;AACvB,UAAM,IAAIC,aAAAA,aAAa,kDAAkD;AAAA,EAC1E;AACA,SAAO;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectEnvironmentExtension.js","sources":["../../../../../packages/react-identity/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,EAAA;AAEnE,SAAA;AAAA,IACN,MAAM,QAAQ;AAAA,EACf;AACD,CAAC;"}
1
+ {"version":3,"file":"ProjectEnvironmentExtension.js","sources":["../../../../../packages/react-identity/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;AACvB,UAAM,IAAI,aAAa,kDAAkD;AAAA,EAC1E;AACA,SAAO;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAEhB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectUserRoles.cjs","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,kBAAAA,YAAY;AAC7B,QAAM,cAAcC,YAAAA,eAAe;AACnC,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAAA;AAEhB,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAAA;AAGT,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;;"}
1
+ {"version":3,"file":"useProjectUserRoles.cjs","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,kBAAAA,YAAA;AACjB,QAAM,cAAcC,YAAAA,eAAA;AACpB,SAAOC,MAAAA,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAA;AAAA,IACZ;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAA,YAAW,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAA;AAAA,IACZ;AAEA,WAAO,IAAI,IAAI,cAAc,KAAK;AAAA,EACnC,GAAG,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProjectUserRoles.js","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,YAAY;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAI;AAAA,IAAA;AAEhB,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAW,YAAA,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAI;AAAA,IAAA;AAGT,WAAA,IAAI,IAAI,cAAc,KAAK;AAAA,EAChC,GAAA,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;"}
1
+ {"version":3,"file":"useProjectUserRoles.js","sources":["../../../../../packages/react-identity/src/hooks/useProjectUserRoles.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useProjectSlug } from '@contember/react-client'\nimport { useIdentity } from '@contember/react-client-tenant'\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,YAAA;AACjB,QAAM,cAAc,eAAA;AACpB,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,aAAa;AACjB,iCAAW,IAAA;AAAA,IACZ;AACA,UAAM,gBAAgB,UAAU,SAAS,KAAK,CAAA,YAAW,QAAQ,SAAS,WAAW;AACrF,QAAI,kBAAkB,QAAW;AAChC,iCAAW,IAAA;AAAA,IACZ;AAEA,WAAO,IAAI,IAAI,cAAc,KAAK;AAAA,EACnC,GAAG,CAAC,UAAU,UAAU,WAAW,CAAC;AACrC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/IdentityEnvironmentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMjC,MAAM,WAAW,gCAAgC;IAChD,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,gCAAgC,CAQlF,CAAA"}
1
+ {"version":3,"file":"IdentityEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/IdentityEnvironmentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjC,MAAM,WAAW,gCAAgC;IAChD,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,gCAAgC,CAOlF,CAAA"}