@calimero-network/mero-react 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -2,8 +2,9 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { CSSProperties } from 'react';
4
4
  import * as _calimero_network_mero_js from '@calimero-network/mero-js';
5
- import { MeroJs, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, Namespace, SubgroupEntry, NamespaceIdentity, NestGroupRequest, RegisterGroupSigningKeyRequest, RemoveGroupMembersRequest, RetryGroupUpgradeRequest, SetDefaultCapabilitiesRequest, SetGroupAliasRequest, SetMemberAliasRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, SseEventData, SyncGroupRequest, UnnestGroupRequest, UpdateGroupSettingsRequest, UpdateMemberRoleRequest, UpgradeGroupRequest, TokenData } from '@calimero-network/mero-js';
5
+ import { MeroJs, SetMetadataRequest, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, MetadataRecord, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, Namespace, SubgroupEntry, NamespaceIdentity, NestGroupRequest, RegisterGroupSigningKeyRequest, RemoveGroupMembersRequest, RetryGroupUpgradeRequest, SetDefaultCapabilitiesRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, SseEventData, SyncGroupRequest, UnnestGroupRequest, UpdateGroupSettingsRequest, UpdateMemberRoleRequest, UpgradeGroupRequest, TokenData } from '@calimero-network/mero-js';
6
6
  export * from '@calimero-network/mero-js';
7
+ export { CAPABILITIES, MetadataRecord, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
7
8
 
8
9
  /**
9
10
  * Types for mero-react
@@ -266,6 +267,13 @@ interface CalimeroLogoProps extends React__default.SVGAttributes<SVGSVGElement>
266
267
  }
267
268
  declare function CalimeroLogo({ size, color, style, ...rest }: CalimeroLogoProps): react_jsx_runtime.JSX.Element;
268
269
 
270
+ /**
271
+ * Shape accepted by the metadata-setter hooks — re-exported from mero-js so
272
+ * callers have one canonical type. A `set*Metadata` call **replaces the whole
273
+ * record**: `data` defaults to `{}` and wholly replaces the stored map; omit
274
+ * `name` to keep the current name.
275
+ */
276
+ type SetMetadataInput = SetMetadataRequest;
269
277
  /**
270
278
  * Execute RPC methods against a context.
271
279
  * Tracks loading/error state. Unmount-safe.
@@ -444,6 +452,18 @@ declare function useSetSubgroupVisibility(): {
444
452
  loading: boolean;
445
453
  error: Error | null;
446
454
  };
455
+ declare function useDefaultCapabilities(groupId?: string | null): {
456
+ defaultCapabilities: number | null;
457
+ loading: boolean;
458
+ error: Error | null;
459
+ refetch: () => Promise<void>;
460
+ };
461
+ declare function useSubgroupVisibility(groupId?: string | null): {
462
+ subgroupVisibility: string | null;
463
+ loading: boolean;
464
+ error: Error | null;
465
+ refetch: () => Promise<void>;
466
+ };
447
467
  declare function useSetTeeAdmissionPolicy(): {
448
468
  setTeeAdmissionPolicy: (groupId: string, request: SetTeeAdmissionPolicyRequest) => Promise<void | null>;
449
469
  loading: boolean;
@@ -454,16 +474,33 @@ declare function useUpdateGroupSettings(): {
454
474
  loading: boolean;
455
475
  error: Error | null;
456
476
  };
457
- declare function useSetGroupAlias(): {
458
- setGroupAlias: (groupId: string, request: SetGroupAliasRequest) => Promise<void | null>;
477
+ declare function useSetGroupMetadata(): {
478
+ setGroupMetadata: (groupId: string, request: SetMetadataInput) => Promise<void | null>;
459
479
  loading: boolean;
460
480
  error: Error | null;
461
481
  };
462
- declare function useSetMemberAlias(): {
463
- setMemberAlias: (groupId: string, identity: string, request: SetMemberAliasRequest) => Promise<void | null>;
482
+ declare function useSetMemberMetadata(): {
483
+ setMemberMetadata: (groupId: string, identity: string, request: SetMetadataInput) => Promise<void | null>;
464
484
  loading: boolean;
465
485
  error: Error | null;
466
486
  };
487
+ declare function useSetContextMetadata(): {
488
+ setContextMetadata: (groupId: string, contextId: string, request: SetMetadataInput) => Promise<void | null>;
489
+ loading: boolean;
490
+ error: Error | null;
491
+ };
492
+ declare function useGroupMetadata(groupId?: string | null): {
493
+ metadata: MetadataRecord | null;
494
+ loading: boolean;
495
+ error: Error | null;
496
+ refetch: () => Promise<void>;
497
+ };
498
+ declare function useMemberMetadata(groupId?: string | null, identity?: string | null): {
499
+ metadata: MetadataRecord | null;
500
+ loading: boolean;
501
+ error: Error | null;
502
+ refetch: () => Promise<void>;
503
+ };
467
504
  declare function useRegisterGroupSigningKey(): {
468
505
  registerGroupSigningKey: (groupId: string, request: RegisterGroupSigningKeyRequest) => Promise<_calimero_network_mero_js.RegisterGroupSigningKeyResponseData | null>;
469
506
  loading: boolean;
@@ -571,4 +608,4 @@ declare function clearContextIdentity(): void;
571
608
  */
572
609
  declare function clearAllStorage(): void;
573
610
 
574
- export { type AppContext, AppMode, type ApplicationContextRecord, CalimeroLogo, type CalimeroLogoProps, ConnectButton, type ConnectButtonProps, ConnectionType, type ContextDiscoveryOptions, type ContextDiscoveryState, type CustomConnectionConfig, type ExecutionResult, LoginModal, type LoginModalProps, MERO_CSS_VARS, MeroContext, type MeroContextValue, MeroProvider, type MeroProviderConfig, type MeroProviderProps, type MeroTheme, type ResolvedMeroTheme, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetDefaultCapabilities, useSetGroupAlias, useSetMemberAlias, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
611
+ export { type AppContext, AppMode, type ApplicationContextRecord, CalimeroLogo, type CalimeroLogoProps, ConnectButton, type ConnectButtonProps, ConnectionType, type ContextDiscoveryOptions, type ContextDiscoveryState, type CustomConnectionConfig, type ExecutionResult, LoginModal, type LoginModalProps, MERO_CSS_VARS, MeroContext, type MeroContextValue, MeroProvider, type MeroProviderConfig, type MeroProviderProps, type MeroTheme, type ResolvedMeroTheme, type SetMetadataInput, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMemberMetadata, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetContextMetadata, useSetDefaultCapabilities, useSetGroupMetadata, useSetMemberMetadata, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroupVisibility, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
package/dist/index.d.ts CHANGED
@@ -2,8 +2,9 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { CSSProperties } from 'react';
4
4
  import * as _calimero_network_mero_js from '@calimero-network/mero-js';
5
- import { MeroJs, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, Namespace, SubgroupEntry, NamespaceIdentity, NestGroupRequest, RegisterGroupSigningKeyRequest, RemoveGroupMembersRequest, RetryGroupUpgradeRequest, SetDefaultCapabilitiesRequest, SetGroupAliasRequest, SetMemberAliasRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, SseEventData, SyncGroupRequest, UnnestGroupRequest, UpdateGroupSettingsRequest, UpdateMemberRoleRequest, UpgradeGroupRequest, TokenData } from '@calimero-network/mero-js';
5
+ import { MeroJs, SetMetadataRequest, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, MetadataRecord, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, Namespace, SubgroupEntry, NamespaceIdentity, NestGroupRequest, RegisterGroupSigningKeyRequest, RemoveGroupMembersRequest, RetryGroupUpgradeRequest, SetDefaultCapabilitiesRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, SseEventData, SyncGroupRequest, UnnestGroupRequest, UpdateGroupSettingsRequest, UpdateMemberRoleRequest, UpgradeGroupRequest, TokenData } from '@calimero-network/mero-js';
6
6
  export * from '@calimero-network/mero-js';
7
+ export { CAPABILITIES, MetadataRecord, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
7
8
 
8
9
  /**
9
10
  * Types for mero-react
@@ -266,6 +267,13 @@ interface CalimeroLogoProps extends React__default.SVGAttributes<SVGSVGElement>
266
267
  }
267
268
  declare function CalimeroLogo({ size, color, style, ...rest }: CalimeroLogoProps): react_jsx_runtime.JSX.Element;
268
269
 
270
+ /**
271
+ * Shape accepted by the metadata-setter hooks — re-exported from mero-js so
272
+ * callers have one canonical type. A `set*Metadata` call **replaces the whole
273
+ * record**: `data` defaults to `{}` and wholly replaces the stored map; omit
274
+ * `name` to keep the current name.
275
+ */
276
+ type SetMetadataInput = SetMetadataRequest;
269
277
  /**
270
278
  * Execute RPC methods against a context.
271
279
  * Tracks loading/error state. Unmount-safe.
@@ -444,6 +452,18 @@ declare function useSetSubgroupVisibility(): {
444
452
  loading: boolean;
445
453
  error: Error | null;
446
454
  };
455
+ declare function useDefaultCapabilities(groupId?: string | null): {
456
+ defaultCapabilities: number | null;
457
+ loading: boolean;
458
+ error: Error | null;
459
+ refetch: () => Promise<void>;
460
+ };
461
+ declare function useSubgroupVisibility(groupId?: string | null): {
462
+ subgroupVisibility: string | null;
463
+ loading: boolean;
464
+ error: Error | null;
465
+ refetch: () => Promise<void>;
466
+ };
447
467
  declare function useSetTeeAdmissionPolicy(): {
448
468
  setTeeAdmissionPolicy: (groupId: string, request: SetTeeAdmissionPolicyRequest) => Promise<void | null>;
449
469
  loading: boolean;
@@ -454,16 +474,33 @@ declare function useUpdateGroupSettings(): {
454
474
  loading: boolean;
455
475
  error: Error | null;
456
476
  };
457
- declare function useSetGroupAlias(): {
458
- setGroupAlias: (groupId: string, request: SetGroupAliasRequest) => Promise<void | null>;
477
+ declare function useSetGroupMetadata(): {
478
+ setGroupMetadata: (groupId: string, request: SetMetadataInput) => Promise<void | null>;
459
479
  loading: boolean;
460
480
  error: Error | null;
461
481
  };
462
- declare function useSetMemberAlias(): {
463
- setMemberAlias: (groupId: string, identity: string, request: SetMemberAliasRequest) => Promise<void | null>;
482
+ declare function useSetMemberMetadata(): {
483
+ setMemberMetadata: (groupId: string, identity: string, request: SetMetadataInput) => Promise<void | null>;
464
484
  loading: boolean;
465
485
  error: Error | null;
466
486
  };
487
+ declare function useSetContextMetadata(): {
488
+ setContextMetadata: (groupId: string, contextId: string, request: SetMetadataInput) => Promise<void | null>;
489
+ loading: boolean;
490
+ error: Error | null;
491
+ };
492
+ declare function useGroupMetadata(groupId?: string | null): {
493
+ metadata: MetadataRecord | null;
494
+ loading: boolean;
495
+ error: Error | null;
496
+ refetch: () => Promise<void>;
497
+ };
498
+ declare function useMemberMetadata(groupId?: string | null, identity?: string | null): {
499
+ metadata: MetadataRecord | null;
500
+ loading: boolean;
501
+ error: Error | null;
502
+ refetch: () => Promise<void>;
503
+ };
467
504
  declare function useRegisterGroupSigningKey(): {
468
505
  registerGroupSigningKey: (groupId: string, request: RegisterGroupSigningKeyRequest) => Promise<_calimero_network_mero_js.RegisterGroupSigningKeyResponseData | null>;
469
506
  loading: boolean;
@@ -571,4 +608,4 @@ declare function clearContextIdentity(): void;
571
608
  */
572
609
  declare function clearAllStorage(): void;
573
610
 
574
- export { type AppContext, AppMode, type ApplicationContextRecord, CalimeroLogo, type CalimeroLogoProps, ConnectButton, type ConnectButtonProps, ConnectionType, type ContextDiscoveryOptions, type ContextDiscoveryState, type CustomConnectionConfig, type ExecutionResult, LoginModal, type LoginModalProps, MERO_CSS_VARS, MeroContext, type MeroContextValue, MeroProvider, type MeroProviderConfig, type MeroProviderProps, type MeroTheme, type ResolvedMeroTheme, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetDefaultCapabilities, useSetGroupAlias, useSetMemberAlias, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
611
+ export { type AppContext, AppMode, type ApplicationContextRecord, CalimeroLogo, type CalimeroLogoProps, ConnectButton, type ConnectButtonProps, ConnectionType, type ContextDiscoveryOptions, type ContextDiscoveryState, type CustomConnectionConfig, type ExecutionResult, LoginModal, type LoginModalProps, MERO_CSS_VARS, MeroContext, type MeroContextValue, MeroProvider, type MeroProviderConfig, type MeroProviderProps, type MeroTheme, type ResolvedMeroTheme, type SetMetadataInput, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMemberMetadata, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetContextMetadata, useSetDefaultCapabilities, useSetGroupMetadata, useSetMemberMetadata, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroupVisibility, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createContext, useState, useRef, useCallback, useEffect, useMemo, useContext } from 'react';
2
2
  import { parseAuthCallback, MeroJs, buildAuthLoginUrl, LocalStorageTokenStore } from '@calimero-network/mero-js';
3
3
  export * from '@calimero-network/mero-js';
4
+ export { CAPABILITIES, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
4
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
6
  import { createPortal } from 'react-dom';
6
7
 
@@ -1909,6 +1910,86 @@ function useSetSubgroupVisibility() {
1909
1910
  );
1910
1911
  return { setSubgroupVisibility, loading, error };
1911
1912
  }
1913
+ function useDefaultCapabilities(groupId) {
1914
+ const { mero } = useMero();
1915
+ const [defaultCapabilities, setDefaultCapabilitiesState] = useState(null);
1916
+ const [loading, setLoading] = useState(false);
1917
+ const [error, setError] = useState(null);
1918
+ const mountedRef = useMountedRef();
1919
+ const refetch = useCallback(async () => {
1920
+ if (!mero || !groupId) {
1921
+ if (mountedRef.current) {
1922
+ setDefaultCapabilitiesState(null);
1923
+ setError(null);
1924
+ setLoading(false);
1925
+ }
1926
+ return;
1927
+ }
1928
+ if (mountedRef.current) {
1929
+ setLoading(true);
1930
+ setError(null);
1931
+ }
1932
+ try {
1933
+ const result = await mero.admin.getDefaultCapabilities(groupId);
1934
+ if (mountedRef.current) {
1935
+ setDefaultCapabilitiesState(result);
1936
+ }
1937
+ } catch (err) {
1938
+ const errorValue = toError(err);
1939
+ if (mountedRef.current) {
1940
+ setError(errorValue);
1941
+ }
1942
+ } finally {
1943
+ if (mountedRef.current) {
1944
+ setLoading(false);
1945
+ }
1946
+ }
1947
+ }, [groupId, mero, mountedRef]);
1948
+ useEffect(() => {
1949
+ void refetch();
1950
+ }, [refetch]);
1951
+ return { defaultCapabilities, loading, error, refetch };
1952
+ }
1953
+ function useSubgroupVisibility(groupId) {
1954
+ const { mero } = useMero();
1955
+ const [subgroupVisibility, setSubgroupVisibilityState] = useState(null);
1956
+ const [loading, setLoading] = useState(false);
1957
+ const [error, setError] = useState(null);
1958
+ const mountedRef = useMountedRef();
1959
+ const refetch = useCallback(async () => {
1960
+ if (!mero || !groupId) {
1961
+ if (mountedRef.current) {
1962
+ setSubgroupVisibilityState(null);
1963
+ setError(null);
1964
+ setLoading(false);
1965
+ }
1966
+ return;
1967
+ }
1968
+ if (mountedRef.current) {
1969
+ setLoading(true);
1970
+ setError(null);
1971
+ }
1972
+ try {
1973
+ const result = await mero.admin.getSubgroupVisibility(groupId);
1974
+ if (mountedRef.current) {
1975
+ setSubgroupVisibilityState(result);
1976
+ }
1977
+ } catch (err) {
1978
+ const errorValue = toError(err);
1979
+ if (mountedRef.current) {
1980
+ setError(errorValue);
1981
+ }
1982
+ } finally {
1983
+ if (mountedRef.current) {
1984
+ setLoading(false);
1985
+ }
1986
+ }
1987
+ }, [groupId, mero, mountedRef]);
1988
+ useEffect(() => {
1989
+ void refetch();
1990
+ }, [refetch]);
1991
+ return { subgroupVisibility, loading, error, refetch };
1992
+ }
1912
1993
  function useSetTeeAdmissionPolicy() {
1913
1994
  const { mero } = useMero();
1914
1995
  const { loading, error, run } = useAsyncMutation();
@@ -1933,29 +2014,121 @@ function useUpdateGroupSettings() {
1933
2014
  );
1934
2015
  return { updateGroupSettings, loading, error };
1935
2016
  }
1936
- function useSetGroupAlias() {
2017
+ function useSetGroupMetadata() {
1937
2018
  const { mero } = useMero();
1938
2019
  const { loading, error, run } = useAsyncMutation();
1939
- const setGroupAlias = useCallback(
2020
+ const setGroupMetadata = useCallback(
1940
2021
  async (groupId, request) => {
1941
2022
  if (!mero) return null;
1942
- return run(() => mero.admin.setGroupAlias(groupId, request));
2023
+ return run(() => mero.admin.setGroupMetadata(groupId, request));
1943
2024
  },
1944
2025
  [mero, run]
1945
2026
  );
1946
- return { setGroupAlias, loading, error };
2027
+ return { setGroupMetadata, loading, error };
1947
2028
  }
1948
- function useSetMemberAlias() {
2029
+ function useSetMemberMetadata() {
1949
2030
  const { mero } = useMero();
1950
2031
  const { loading, error, run } = useAsyncMutation();
1951
- const setMemberAlias = useCallback(
2032
+ const setMemberMetadata = useCallback(
1952
2033
  async (groupId, identity, request) => {
1953
2034
  if (!mero) return null;
1954
- return run(() => mero.admin.setMemberAlias(groupId, identity, request));
2035
+ return run(() => mero.admin.setMemberMetadata(groupId, identity, request));
2036
+ },
2037
+ [mero, run]
2038
+ );
2039
+ return { setMemberMetadata, loading, error };
2040
+ }
2041
+ function useSetContextMetadata() {
2042
+ const { mero } = useMero();
2043
+ const { loading, error, run } = useAsyncMutation();
2044
+ const setContextMetadata = useCallback(
2045
+ async (groupId, contextId, request) => {
2046
+ if (!mero) return null;
2047
+ return run(() => mero.admin.setContextMetadata(groupId, contextId, request));
1955
2048
  },
1956
2049
  [mero, run]
1957
2050
  );
1958
- return { setMemberAlias, loading, error };
2051
+ return { setContextMetadata, loading, error };
2052
+ }
2053
+ function useGroupMetadata(groupId) {
2054
+ const { mero } = useMero();
2055
+ const [metadata, setMetadata] = useState(null);
2056
+ const [loading, setLoading] = useState(false);
2057
+ const [error, setError] = useState(null);
2058
+ const mountedRef = useMountedRef();
2059
+ const refetch = useCallback(async () => {
2060
+ if (!mero || !groupId) {
2061
+ if (mountedRef.current) {
2062
+ setMetadata(null);
2063
+ setError(null);
2064
+ setLoading(false);
2065
+ }
2066
+ return;
2067
+ }
2068
+ if (mountedRef.current) {
2069
+ setLoading(true);
2070
+ setError(null);
2071
+ }
2072
+ try {
2073
+ const result = await mero.admin.getGroupMetadata(groupId);
2074
+ if (mountedRef.current) {
2075
+ setMetadata(result);
2076
+ }
2077
+ } catch (err) {
2078
+ const errorValue = toError(err);
2079
+ if (mountedRef.current) {
2080
+ setError(errorValue);
2081
+ }
2082
+ } finally {
2083
+ if (mountedRef.current) {
2084
+ setLoading(false);
2085
+ }
2086
+ }
2087
+ }, [groupId, mero, mountedRef]);
2088
+ useEffect(() => {
2089
+ void refetch();
2090
+ }, [refetch]);
2091
+ return { metadata, loading, error, refetch };
2092
+ }
2093
+ function useMemberMetadata(groupId, identity) {
2094
+ const { mero } = useMero();
2095
+ const [metadata, setMetadata] = useState(null);
2096
+ const [loading, setLoading] = useState(false);
2097
+ const [error, setError] = useState(null);
2098
+ const mountedRef = useMountedRef();
2099
+ const refetch = useCallback(async () => {
2100
+ if (!mero || !groupId || !identity) {
2101
+ if (mountedRef.current) {
2102
+ setMetadata(null);
2103
+ setError(null);
2104
+ setLoading(false);
2105
+ }
2106
+ return;
2107
+ }
2108
+ if (mountedRef.current) {
2109
+ setLoading(true);
2110
+ setError(null);
2111
+ }
2112
+ try {
2113
+ const result = await mero.admin.getMemberMetadata(groupId, identity);
2114
+ if (mountedRef.current) {
2115
+ setMetadata(result);
2116
+ }
2117
+ } catch (err) {
2118
+ const errorValue = toError(err);
2119
+ if (mountedRef.current) {
2120
+ setError(errorValue);
2121
+ }
2122
+ } finally {
2123
+ if (mountedRef.current) {
2124
+ setLoading(false);
2125
+ }
2126
+ }
2127
+ }, [groupId, identity, mero, mountedRef]);
2128
+ useEffect(() => {
2129
+ void refetch();
2130
+ }, [refetch]);
2131
+ return { metadata, loading, error, refetch };
1959
2132
  }
1960
2133
  function useRegisterGroupSigningKey() {
1961
2134
  const { mero } = useMero();
@@ -2110,6 +2283,6 @@ function useDetachContextFromGroup() {
2110
2283
  return { detachContextFromGroup, loading, error };
2111
2284
  }
2112
2285
 
2113
- export { AppMode, CalimeroLogo, ConnectButton, ConnectionType, LoginModal, MERO_CSS_VARS, MeroContext, MeroProvider, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetDefaultCapabilities, useSetGroupAlias, useSetMemberAlias, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
2286
+ export { AppMode, CalimeroLogo, ConnectButton, ConnectionType, LoginModal, MERO_CSS_VARS, MeroContext, MeroProvider, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useMemberMetadata, useMero, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetContextMetadata, useSetDefaultCapabilities, useSetGroupMetadata, useSetMemberMetadata, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroupVisibility, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
2114
2287
  //# sourceMappingURL=index.js.map
2115
2288
  //# sourceMappingURL=index.js.map