@calimero-network/mero-react 2.4.0 → 2.6.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.cjs +313 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +99 -3
- package/dist/index.d.ts +99 -3
- package/dist/index.js +309 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { CSSProperties } from 'react';
|
|
3
|
+
import React__default, { CSSProperties, ReactNode } from 'react';
|
|
4
4
|
import * as _calimero_network_mero_js 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';
|
|
5
|
+
import { MeroJs, SetMetadataRequest, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, MetadataRecord, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, MigrationStatus, MigrationStatusRollup, MemberMigrationStatusEntry, MigrateMyEntriesSummary, 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
7
|
export { CAPABILITIES, MetadataRecord, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
|
|
8
8
|
|
|
@@ -267,6 +267,36 @@ interface CalimeroLogoProps extends React__default.SVGAttributes<SVGSVGElement>
|
|
|
267
267
|
}
|
|
268
268
|
declare function CalimeroLogo({ size, color, style, ...rest }: CalimeroLogoProps): react_jsx_runtime.JSX.Element;
|
|
269
269
|
|
|
270
|
+
interface MigrationPendingBannerProps {
|
|
271
|
+
/** Context whose authored entries to check / convert. */
|
|
272
|
+
contextId: string;
|
|
273
|
+
className?: string;
|
|
274
|
+
/** Override the default prompt text. */
|
|
275
|
+
children?: ReactNode;
|
|
276
|
+
/** Fired once a convert leaves nothing pending (`remaining === 0`). */
|
|
277
|
+
onMigrated?: () => void;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Shows only when the current identity has entries below the target schema
|
|
281
|
+
* (skew #1). A single button runs the one-tap `migrate_my_entries` convert and
|
|
282
|
+
* the banner clears itself once nothing is pending.
|
|
283
|
+
*/
|
|
284
|
+
declare function MigrationPendingBanner({ contextId, className, children, onMigrated, }: MigrationPendingBannerProps): react_jsx_runtime.JSX.Element | null;
|
|
285
|
+
|
|
286
|
+
interface MigrationAdminPanelProps {
|
|
287
|
+
/** Namespace whose migration rollup to display. */
|
|
288
|
+
namespaceId: string;
|
|
289
|
+
/** Re-fetch interval; migration facts arrive via heartbeat gossip. */
|
|
290
|
+
pollIntervalMs?: number;
|
|
291
|
+
className?: string;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Operator view of a namespace's migration rollup (skew #3): the cohort
|
|
295
|
+
* counters, `membersPendingSignature`, and a per-member table. Read-only —
|
|
296
|
+
* pair with the upgrade-trigger hooks to drive a migration.
|
|
297
|
+
*/
|
|
298
|
+
declare function MigrationAdminPanel({ namespaceId, pollIntervalMs, className }: MigrationAdminPanelProps): react_jsx_runtime.JSX.Element;
|
|
299
|
+
|
|
270
300
|
/**
|
|
271
301
|
* Shape accepted by the metadata-setter hooks — re-exported from mero-js so
|
|
272
302
|
* callers have one canonical type. A `set*Metadata` call **replaces the whole
|
|
@@ -548,6 +578,72 @@ declare function useDetachContextFromGroup(): {
|
|
|
548
578
|
loading: boolean;
|
|
549
579
|
error: Error | null;
|
|
550
580
|
};
|
|
581
|
+
/**
|
|
582
|
+
* Migration-status rollup for a namespace (skew #3). Migration facts arrive via
|
|
583
|
+
* heartbeat gossip (no SSE), so liveness is polling: pass `pollIntervalMs` to
|
|
584
|
+
* re-fetch on an interval. Derived counters are null-safe before the first load.
|
|
585
|
+
*/
|
|
586
|
+
declare function useMigrationStatus(namespaceId?: string | null, options?: {
|
|
587
|
+
pollIntervalMs?: number;
|
|
588
|
+
}): {
|
|
589
|
+
status: MigrationStatus | null;
|
|
590
|
+
rollup: MigrationStatusRollup | null;
|
|
591
|
+
members: MemberMigrationStatusEntry[];
|
|
592
|
+
allMigrated: boolean;
|
|
593
|
+
membersPendingSignature: number;
|
|
594
|
+
/** Members whose migrate aborted (migration-check failed or apply errored). */
|
|
595
|
+
failed: number;
|
|
596
|
+
loading: boolean;
|
|
597
|
+
error: Error | null;
|
|
598
|
+
refetch: () => Promise<void>;
|
|
599
|
+
};
|
|
600
|
+
/**
|
|
601
|
+
* Bundle-version skew (#2): reads the context's installed `applicationVersion`
|
|
602
|
+
* (semver) and compares it to the app-declared `expected` build constant. Any
|
|
603
|
+
* mismatch (either direction) is `isStale` → "reload to update". Subscribes to
|
|
604
|
+
* `AppVersionChanged` so a live flip updates `appVersion` without a refetch.
|
|
605
|
+
*/
|
|
606
|
+
declare function useAppVersion(contextId?: string | null, expected?: string): {
|
|
607
|
+
appVersion: string | undefined;
|
|
608
|
+
expected: string | undefined;
|
|
609
|
+
isStale: boolean;
|
|
610
|
+
loading: boolean;
|
|
611
|
+
error: Error | null;
|
|
612
|
+
refetch: () => Promise<void>;
|
|
613
|
+
};
|
|
614
|
+
/**
|
|
615
|
+
* "Is a newer version available?" for an Updates view. Reads a package's
|
|
616
|
+
* published versions from the registry and compares the newest to the running
|
|
617
|
+
* `currentVersion` (e.g. a context's `applicationVersion`). `updateAvailable`
|
|
618
|
+
* is true only when the registry's newest is strictly greater. This is the
|
|
619
|
+
* registry-side check the admin acts on; gate rendering on admin status at the
|
|
620
|
+
* call site. Pure read — fetching nothing until both `registryUrl` and
|
|
621
|
+
* `packageName` are provided.
|
|
622
|
+
*/
|
|
623
|
+
declare function useLatestVersion(registryUrl?: string | null, packageName?: string | null, currentVersion?: string | null): {
|
|
624
|
+
versions: string[];
|
|
625
|
+
latestVersion: string;
|
|
626
|
+
currentVersion: string | null | undefined;
|
|
627
|
+
updateAvailable: boolean;
|
|
628
|
+
loading: boolean;
|
|
629
|
+
error: Error | null;
|
|
630
|
+
refetch: () => Promise<void>;
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* The caller's own identity-gated entries pending re-signature (skew #1).
|
|
634
|
+
* `pending` is `pendingCount > 0` (from `count_my_pending`); `authorize()` runs
|
|
635
|
+
* the one-tap `migrate_my_entries` convert and folds the resulting `remaining`
|
|
636
|
+
* back into the count.
|
|
637
|
+
*/
|
|
638
|
+
declare function useMyAuthoredMigration(contextId?: string | null): {
|
|
639
|
+
summary: MigrateMyEntriesSummary | null;
|
|
640
|
+
pendingCount: number;
|
|
641
|
+
pending: boolean;
|
|
642
|
+
authorize: () => Promise<MigrateMyEntriesSummary | null>;
|
|
643
|
+
loading: boolean;
|
|
644
|
+
error: Error | null;
|
|
645
|
+
refresh: () => Promise<void>;
|
|
646
|
+
};
|
|
551
647
|
|
|
552
648
|
/**
|
|
553
649
|
* Storage utilities for mero-react
|
|
@@ -613,4 +709,4 @@ declare function clearContextIdentity(): void;
|
|
|
613
709
|
*/
|
|
614
710
|
declare function clearAllStorage(): void;
|
|
615
711
|
|
|
616
|
-
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, useJoinSubgroupInheritance, 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 };
|
|
712
|
+
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, MigrationAdminPanel, type MigrationAdminPanelProps, MigrationPendingBanner, type MigrationPendingBannerProps, type ResolvedMeroTheme, type SetMetadataInput, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useAppVersion, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useJoinSubgroupInheritance, useLatestVersion, useMemberMetadata, useMero, useMigrationStatus, useMyAuthoredMigration, 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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { CSSProperties } from 'react';
|
|
3
|
+
import React__default, { CSSProperties, ReactNode } from 'react';
|
|
4
4
|
import * as _calimero_network_mero_js 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';
|
|
5
|
+
import { MeroJs, SetMetadataRequest, AddGroupMembersRequest, CreateContextRequest, CreateGroupInNamespaceRequest, CreateNamespaceRequest, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, DeleteGroupRequest, DeleteNamespaceRequest, DetachContextFromGroupRequest, GroupContextEntry, GroupInfo, CreateGroupInvitationRequest, GroupMember, MetadataRecord, GroupUpgradeStatusResponseData, JoinGroupRequest, JoinNamespaceRequest, MigrationStatus, MigrationStatusRollup, MemberMigrationStatusEntry, MigrateMyEntriesSummary, 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
7
|
export { CAPABILITIES, MetadataRecord, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
|
|
8
8
|
|
|
@@ -267,6 +267,36 @@ interface CalimeroLogoProps extends React__default.SVGAttributes<SVGSVGElement>
|
|
|
267
267
|
}
|
|
268
268
|
declare function CalimeroLogo({ size, color, style, ...rest }: CalimeroLogoProps): react_jsx_runtime.JSX.Element;
|
|
269
269
|
|
|
270
|
+
interface MigrationPendingBannerProps {
|
|
271
|
+
/** Context whose authored entries to check / convert. */
|
|
272
|
+
contextId: string;
|
|
273
|
+
className?: string;
|
|
274
|
+
/** Override the default prompt text. */
|
|
275
|
+
children?: ReactNode;
|
|
276
|
+
/** Fired once a convert leaves nothing pending (`remaining === 0`). */
|
|
277
|
+
onMigrated?: () => void;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Shows only when the current identity has entries below the target schema
|
|
281
|
+
* (skew #1). A single button runs the one-tap `migrate_my_entries` convert and
|
|
282
|
+
* the banner clears itself once nothing is pending.
|
|
283
|
+
*/
|
|
284
|
+
declare function MigrationPendingBanner({ contextId, className, children, onMigrated, }: MigrationPendingBannerProps): react_jsx_runtime.JSX.Element | null;
|
|
285
|
+
|
|
286
|
+
interface MigrationAdminPanelProps {
|
|
287
|
+
/** Namespace whose migration rollup to display. */
|
|
288
|
+
namespaceId: string;
|
|
289
|
+
/** Re-fetch interval; migration facts arrive via heartbeat gossip. */
|
|
290
|
+
pollIntervalMs?: number;
|
|
291
|
+
className?: string;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Operator view of a namespace's migration rollup (skew #3): the cohort
|
|
295
|
+
* counters, `membersPendingSignature`, and a per-member table. Read-only —
|
|
296
|
+
* pair with the upgrade-trigger hooks to drive a migration.
|
|
297
|
+
*/
|
|
298
|
+
declare function MigrationAdminPanel({ namespaceId, pollIntervalMs, className }: MigrationAdminPanelProps): react_jsx_runtime.JSX.Element;
|
|
299
|
+
|
|
270
300
|
/**
|
|
271
301
|
* Shape accepted by the metadata-setter hooks — re-exported from mero-js so
|
|
272
302
|
* callers have one canonical type. A `set*Metadata` call **replaces the whole
|
|
@@ -548,6 +578,72 @@ declare function useDetachContextFromGroup(): {
|
|
|
548
578
|
loading: boolean;
|
|
549
579
|
error: Error | null;
|
|
550
580
|
};
|
|
581
|
+
/**
|
|
582
|
+
* Migration-status rollup for a namespace (skew #3). Migration facts arrive via
|
|
583
|
+
* heartbeat gossip (no SSE), so liveness is polling: pass `pollIntervalMs` to
|
|
584
|
+
* re-fetch on an interval. Derived counters are null-safe before the first load.
|
|
585
|
+
*/
|
|
586
|
+
declare function useMigrationStatus(namespaceId?: string | null, options?: {
|
|
587
|
+
pollIntervalMs?: number;
|
|
588
|
+
}): {
|
|
589
|
+
status: MigrationStatus | null;
|
|
590
|
+
rollup: MigrationStatusRollup | null;
|
|
591
|
+
members: MemberMigrationStatusEntry[];
|
|
592
|
+
allMigrated: boolean;
|
|
593
|
+
membersPendingSignature: number;
|
|
594
|
+
/** Members whose migrate aborted (migration-check failed or apply errored). */
|
|
595
|
+
failed: number;
|
|
596
|
+
loading: boolean;
|
|
597
|
+
error: Error | null;
|
|
598
|
+
refetch: () => Promise<void>;
|
|
599
|
+
};
|
|
600
|
+
/**
|
|
601
|
+
* Bundle-version skew (#2): reads the context's installed `applicationVersion`
|
|
602
|
+
* (semver) and compares it to the app-declared `expected` build constant. Any
|
|
603
|
+
* mismatch (either direction) is `isStale` → "reload to update". Subscribes to
|
|
604
|
+
* `AppVersionChanged` so a live flip updates `appVersion` without a refetch.
|
|
605
|
+
*/
|
|
606
|
+
declare function useAppVersion(contextId?: string | null, expected?: string): {
|
|
607
|
+
appVersion: string | undefined;
|
|
608
|
+
expected: string | undefined;
|
|
609
|
+
isStale: boolean;
|
|
610
|
+
loading: boolean;
|
|
611
|
+
error: Error | null;
|
|
612
|
+
refetch: () => Promise<void>;
|
|
613
|
+
};
|
|
614
|
+
/**
|
|
615
|
+
* "Is a newer version available?" for an Updates view. Reads a package's
|
|
616
|
+
* published versions from the registry and compares the newest to the running
|
|
617
|
+
* `currentVersion` (e.g. a context's `applicationVersion`). `updateAvailable`
|
|
618
|
+
* is true only when the registry's newest is strictly greater. This is the
|
|
619
|
+
* registry-side check the admin acts on; gate rendering on admin status at the
|
|
620
|
+
* call site. Pure read — fetching nothing until both `registryUrl` and
|
|
621
|
+
* `packageName` are provided.
|
|
622
|
+
*/
|
|
623
|
+
declare function useLatestVersion(registryUrl?: string | null, packageName?: string | null, currentVersion?: string | null): {
|
|
624
|
+
versions: string[];
|
|
625
|
+
latestVersion: string;
|
|
626
|
+
currentVersion: string | null | undefined;
|
|
627
|
+
updateAvailable: boolean;
|
|
628
|
+
loading: boolean;
|
|
629
|
+
error: Error | null;
|
|
630
|
+
refetch: () => Promise<void>;
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* The caller's own identity-gated entries pending re-signature (skew #1).
|
|
634
|
+
* `pending` is `pendingCount > 0` (from `count_my_pending`); `authorize()` runs
|
|
635
|
+
* the one-tap `migrate_my_entries` convert and folds the resulting `remaining`
|
|
636
|
+
* back into the count.
|
|
637
|
+
*/
|
|
638
|
+
declare function useMyAuthoredMigration(contextId?: string | null): {
|
|
639
|
+
summary: MigrateMyEntriesSummary | null;
|
|
640
|
+
pendingCount: number;
|
|
641
|
+
pending: boolean;
|
|
642
|
+
authorize: () => Promise<MigrateMyEntriesSummary | null>;
|
|
643
|
+
loading: boolean;
|
|
644
|
+
error: Error | null;
|
|
645
|
+
refresh: () => Promise<void>;
|
|
646
|
+
};
|
|
551
647
|
|
|
552
648
|
/**
|
|
553
649
|
* Storage utilities for mero-react
|
|
@@ -613,4 +709,4 @@ declare function clearContextIdentity(): void;
|
|
|
613
709
|
*/
|
|
614
710
|
declare function clearAllStorage(): void;
|
|
615
711
|
|
|
616
|
-
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, useJoinSubgroupInheritance, 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 };
|
|
712
|
+
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, MigrationAdminPanel, type MigrationAdminPanelProps, MigrationPendingBanner, type MigrationPendingBannerProps, type ResolvedMeroTheme, type SetMetadataInput, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useAppVersion, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useJoinSubgroupInheritance, useLatestVersion, useMemberMetadata, useMero, useMigrationStatus, useMyAuthoredMigration, 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,5 +1,5 @@
|
|
|
1
1
|
import { createContext, useState, useRef, useCallback, useEffect, useMemo, useContext } from 'react';
|
|
2
|
-
import { parseAuthCallback, MeroJs, buildAuthLoginUrl, LocalStorageTokenStore } from '@calimero-network/mero-js';
|
|
2
|
+
import { parseAuthCallback, MeroJs, buildAuthLoginUrl, compareSemver, LocalStorageTokenStore } from '@calimero-network/mero-js';
|
|
3
3
|
export * from '@calimero-network/mero-js';
|
|
4
4
|
export { CAPABILITIES, hasCap, withCap, withoutCap } from '@calimero-network/mero-js';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -2294,7 +2294,314 @@ function useDetachContextFromGroup() {
|
|
|
2294
2294
|
);
|
|
2295
2295
|
return { detachContextFromGroup, loading, error };
|
|
2296
2296
|
}
|
|
2297
|
+
function useMigrationStatus(namespaceId, options) {
|
|
2298
|
+
const { mero } = useMero();
|
|
2299
|
+
const [status, setStatus] = useState(null);
|
|
2300
|
+
const [loading, setLoading] = useState(false);
|
|
2301
|
+
const [error, setError] = useState(null);
|
|
2302
|
+
const mountedRef = useMountedRef();
|
|
2303
|
+
const reqRef = useRef(0);
|
|
2304
|
+
const refetch = useCallback(async () => {
|
|
2305
|
+
if (!mero || !namespaceId) {
|
|
2306
|
+
if (mountedRef.current) {
|
|
2307
|
+
setStatus(null);
|
|
2308
|
+
setError(null);
|
|
2309
|
+
setLoading(false);
|
|
2310
|
+
}
|
|
2311
|
+
return;
|
|
2312
|
+
}
|
|
2313
|
+
const seq = ++reqRef.current;
|
|
2314
|
+
if (mountedRef.current) {
|
|
2315
|
+
setLoading(true);
|
|
2316
|
+
setError(null);
|
|
2317
|
+
}
|
|
2318
|
+
try {
|
|
2319
|
+
const result = await mero.admin.getMigrationStatus(namespaceId);
|
|
2320
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2321
|
+
setStatus(result);
|
|
2322
|
+
}
|
|
2323
|
+
} catch (err) {
|
|
2324
|
+
const errorValue = toError(err);
|
|
2325
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2326
|
+
setError(errorValue);
|
|
2327
|
+
}
|
|
2328
|
+
} finally {
|
|
2329
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2330
|
+
setLoading(false);
|
|
2331
|
+
}
|
|
2332
|
+
}
|
|
2333
|
+
}, [namespaceId, mero, mountedRef]);
|
|
2334
|
+
useEffect(() => {
|
|
2335
|
+
setStatus(null);
|
|
2336
|
+
setError(null);
|
|
2337
|
+
}, [namespaceId]);
|
|
2338
|
+
useEffect(() => {
|
|
2339
|
+
void refetch();
|
|
2340
|
+
}, [refetch]);
|
|
2341
|
+
const pollIntervalMs = options?.pollIntervalMs;
|
|
2342
|
+
useEffect(() => {
|
|
2343
|
+
if (!pollIntervalMs || !mero || !namespaceId) return;
|
|
2344
|
+
const handle = setInterval(() => void refetch(), pollIntervalMs);
|
|
2345
|
+
return () => clearInterval(handle);
|
|
2346
|
+
}, [pollIntervalMs, mero, namespaceId, refetch]);
|
|
2347
|
+
const rollup = status?.rollup ?? null;
|
|
2348
|
+
const members = status?.members ?? [];
|
|
2349
|
+
return {
|
|
2350
|
+
status,
|
|
2351
|
+
rollup,
|
|
2352
|
+
members,
|
|
2353
|
+
allMigrated: rollup?.allMigrated ?? false,
|
|
2354
|
+
membersPendingSignature: rollup?.membersPendingSignature ?? 0,
|
|
2355
|
+
/** Members whose migrate aborted (migration-check failed or apply errored). */
|
|
2356
|
+
failed: rollup?.failed ?? 0,
|
|
2357
|
+
loading,
|
|
2358
|
+
error,
|
|
2359
|
+
refetch
|
|
2360
|
+
};
|
|
2361
|
+
}
|
|
2362
|
+
function useAppVersion(contextId, expected) {
|
|
2363
|
+
const { mero } = useMero();
|
|
2364
|
+
const [appVersion, setAppVersion] = useState(void 0);
|
|
2365
|
+
const [loading, setLoading] = useState(false);
|
|
2366
|
+
const [error, setError] = useState(null);
|
|
2367
|
+
const mountedRef = useMountedRef();
|
|
2368
|
+
const reqRef = useRef(0);
|
|
2369
|
+
const refetch = useCallback(async () => {
|
|
2370
|
+
if (!mero || !contextId) {
|
|
2371
|
+
if (mountedRef.current) {
|
|
2372
|
+
setAppVersion(void 0);
|
|
2373
|
+
setError(null);
|
|
2374
|
+
setLoading(false);
|
|
2375
|
+
}
|
|
2376
|
+
return;
|
|
2377
|
+
}
|
|
2378
|
+
const seq = ++reqRef.current;
|
|
2379
|
+
if (mountedRef.current) {
|
|
2380
|
+
setLoading(true);
|
|
2381
|
+
setError(null);
|
|
2382
|
+
}
|
|
2383
|
+
try {
|
|
2384
|
+
const context = await mero.admin.getContext(contextId);
|
|
2385
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2386
|
+
setAppVersion(context.applicationVersion);
|
|
2387
|
+
}
|
|
2388
|
+
} catch (err) {
|
|
2389
|
+
const errorValue = toError(err);
|
|
2390
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2391
|
+
setError(errorValue);
|
|
2392
|
+
}
|
|
2393
|
+
} finally {
|
|
2394
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2395
|
+
setLoading(false);
|
|
2396
|
+
}
|
|
2397
|
+
}
|
|
2398
|
+
}, [contextId, mero, mountedRef]);
|
|
2399
|
+
useEffect(() => {
|
|
2400
|
+
setAppVersion(void 0);
|
|
2401
|
+
setError(null);
|
|
2402
|
+
}, [contextId]);
|
|
2403
|
+
useEffect(() => {
|
|
2404
|
+
void refetch();
|
|
2405
|
+
}, [refetch]);
|
|
2406
|
+
useEffect(() => {
|
|
2407
|
+
if (!mero?.events || !contextId) return;
|
|
2408
|
+
const off = mero.events.onAppVersionChanged((event) => {
|
|
2409
|
+
if (event.contextId !== contextId) return;
|
|
2410
|
+
if (mountedRef.current && event.toVersion) {
|
|
2411
|
+
reqRef.current += 1;
|
|
2412
|
+
setAppVersion(event.toVersion);
|
|
2413
|
+
}
|
|
2414
|
+
});
|
|
2415
|
+
return off;
|
|
2416
|
+
}, [mero, contextId, mountedRef]);
|
|
2417
|
+
const isStale = appVersion != null && expected != null && appVersion !== expected;
|
|
2418
|
+
return { appVersion, expected, isStale, loading, error, refetch };
|
|
2419
|
+
}
|
|
2420
|
+
function useLatestVersion(registryUrl, packageName, currentVersion) {
|
|
2421
|
+
const { mero } = useMero();
|
|
2422
|
+
const [versions, setVersions] = useState([]);
|
|
2423
|
+
const [loading, setLoading] = useState(false);
|
|
2424
|
+
const [error, setError] = useState(null);
|
|
2425
|
+
const mountedRef = useMountedRef();
|
|
2426
|
+
const reqRef = useRef(0);
|
|
2427
|
+
const refetch = useCallback(async () => {
|
|
2428
|
+
if (!mero || !registryUrl || !packageName) {
|
|
2429
|
+
reqRef.current += 1;
|
|
2430
|
+
if (mountedRef.current) {
|
|
2431
|
+
setVersions([]);
|
|
2432
|
+
setError(null);
|
|
2433
|
+
setLoading(false);
|
|
2434
|
+
}
|
|
2435
|
+
return;
|
|
2436
|
+
}
|
|
2437
|
+
const seq = ++reqRef.current;
|
|
2438
|
+
if (mountedRef.current) {
|
|
2439
|
+
setLoading(true);
|
|
2440
|
+
setError(null);
|
|
2441
|
+
}
|
|
2442
|
+
try {
|
|
2443
|
+
const result = await mero.admin.getRegistryVersions(registryUrl, packageName);
|
|
2444
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2445
|
+
setVersions(result);
|
|
2446
|
+
}
|
|
2447
|
+
} catch (err) {
|
|
2448
|
+
const errorValue = toError(err);
|
|
2449
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2450
|
+
setError(errorValue);
|
|
2451
|
+
}
|
|
2452
|
+
} finally {
|
|
2453
|
+
if (mountedRef.current && seq === reqRef.current) {
|
|
2454
|
+
setLoading(false);
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
}, [mero, registryUrl, packageName, mountedRef]);
|
|
2458
|
+
useEffect(() => {
|
|
2459
|
+
setVersions([]);
|
|
2460
|
+
setError(null);
|
|
2461
|
+
}, [registryUrl, packageName]);
|
|
2462
|
+
useEffect(() => {
|
|
2463
|
+
void refetch();
|
|
2464
|
+
}, [refetch]);
|
|
2465
|
+
const latestVersion = versions[0] ?? null;
|
|
2466
|
+
const updateAvailable = latestVersion != null && currentVersion != null && compareSemver(latestVersion, currentVersion) > 0;
|
|
2467
|
+
return { versions, latestVersion, currentVersion, updateAvailable, loading, error, refetch };
|
|
2468
|
+
}
|
|
2469
|
+
function useMyAuthoredMigration(contextId) {
|
|
2470
|
+
const { mero } = useMero();
|
|
2471
|
+
const [summary, setSummary] = useState(null);
|
|
2472
|
+
const [pendingCount, setPendingCount] = useState(0);
|
|
2473
|
+
const mountedRef = useMountedRef();
|
|
2474
|
+
const { loading, error, run } = useAsyncMutation();
|
|
2475
|
+
const reqRef = useRef(0);
|
|
2476
|
+
const refresh = useCallback(async () => {
|
|
2477
|
+
if (!mero || !contextId) {
|
|
2478
|
+
if (mountedRef.current) setPendingCount(0);
|
|
2479
|
+
return;
|
|
2480
|
+
}
|
|
2481
|
+
const seq = ++reqRef.current;
|
|
2482
|
+
try {
|
|
2483
|
+
const count = await mero.rpc.countMyPending(contextId);
|
|
2484
|
+
if (mountedRef.current && seq === reqRef.current) setPendingCount(count);
|
|
2485
|
+
} catch {
|
|
2486
|
+
}
|
|
2487
|
+
}, [mero, contextId, mountedRef]);
|
|
2488
|
+
useEffect(() => {
|
|
2489
|
+
void refresh();
|
|
2490
|
+
}, [refresh]);
|
|
2491
|
+
const authorize = useCallback(async () => {
|
|
2492
|
+
if (!mero || !contextId) return null;
|
|
2493
|
+
const result = await run(() => mero.rpc.migrateMyEntries(contextId));
|
|
2494
|
+
if (result && mountedRef.current) {
|
|
2495
|
+
reqRef.current += 1;
|
|
2496
|
+
setSummary(result);
|
|
2497
|
+
setPendingCount(result.remaining);
|
|
2498
|
+
}
|
|
2499
|
+
return result;
|
|
2500
|
+
}, [mero, contextId, run, mountedRef]);
|
|
2501
|
+
return {
|
|
2502
|
+
summary,
|
|
2503
|
+
pendingCount,
|
|
2504
|
+
pending: pendingCount > 0,
|
|
2505
|
+
authorize,
|
|
2506
|
+
loading,
|
|
2507
|
+
error,
|
|
2508
|
+
refresh
|
|
2509
|
+
};
|
|
2510
|
+
}
|
|
2511
|
+
function MigrationPendingBanner({
|
|
2512
|
+
contextId,
|
|
2513
|
+
className,
|
|
2514
|
+
children,
|
|
2515
|
+
onMigrated
|
|
2516
|
+
}) {
|
|
2517
|
+
const { pending, pendingCount, authorize, loading } = useMyAuthoredMigration(contextId);
|
|
2518
|
+
if (!pending) return null;
|
|
2519
|
+
const handleClick = async () => {
|
|
2520
|
+
const result = await authorize();
|
|
2521
|
+
if (result && result.remaining === 0) {
|
|
2522
|
+
onMigrated?.();
|
|
2523
|
+
}
|
|
2524
|
+
};
|
|
2525
|
+
const message = children ?? `You have ${pendingCount} ${pendingCount === 1 ? "entry" : "entries"} to re-sign after a recent upgrade.`;
|
|
2526
|
+
return /* @__PURE__ */ jsxs("div", { className, "data-testid": "migration-pending-banner", role: "status", children: [
|
|
2527
|
+
/* @__PURE__ */ jsx("span", { children: message }),
|
|
2528
|
+
/* @__PURE__ */ jsx("button", { type: "button", onClick: handleClick, disabled: loading, children: loading ? "Migrating\u2026" : "Migrate my data" })
|
|
2529
|
+
] });
|
|
2530
|
+
}
|
|
2531
|
+
function MigrationAdminPanel({ namespaceId, pollIntervalMs, className }) {
|
|
2532
|
+
const { status, rollup, members, membersPendingSignature, failed, error } = useMigrationStatus(
|
|
2533
|
+
namespaceId,
|
|
2534
|
+
{ pollIntervalMs }
|
|
2535
|
+
);
|
|
2536
|
+
if (error && !status) {
|
|
2537
|
+
return /* @__PURE__ */ jsxs("div", { className, "data-testid": "migration-admin-panel", children: [
|
|
2538
|
+
"Failed to load migration status: ",
|
|
2539
|
+
error.message
|
|
2540
|
+
] });
|
|
2541
|
+
}
|
|
2542
|
+
if (!status || !rollup) {
|
|
2543
|
+
return /* @__PURE__ */ jsx("div", { className, "data-testid": "migration-admin-panel", children: "Loading migration status\u2026" });
|
|
2544
|
+
}
|
|
2545
|
+
return /* @__PURE__ */ jsxs("div", { className, "data-testid": "migration-admin-panel", children: [
|
|
2546
|
+
error && // A poll failed after data was already loaded — keep showing the last
|
|
2547
|
+
// good rollup but flag that it may be stale.
|
|
2548
|
+
/* @__PURE__ */ jsxs("div", { "data-testid": "migration-status-error", role: "alert", children: [
|
|
2549
|
+
"Could not refresh migration status: ",
|
|
2550
|
+
error.message
|
|
2551
|
+
] }),
|
|
2552
|
+
/* @__PURE__ */ jsxs("dl", { children: [
|
|
2553
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2554
|
+
/* @__PURE__ */ jsx("dt", { children: "Target version" }),
|
|
2555
|
+
/* @__PURE__ */ jsx("dd", { children: status.targetVersion })
|
|
2556
|
+
] }),
|
|
2557
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2558
|
+
/* @__PURE__ */ jsx("dt", { children: "Migrated" }),
|
|
2559
|
+
/* @__PURE__ */ jsx("dd", { children: rollup.migrated })
|
|
2560
|
+
] }),
|
|
2561
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2562
|
+
/* @__PURE__ */ jsx("dt", { children: "In progress" }),
|
|
2563
|
+
/* @__PURE__ */ jsx("dd", { children: rollup.inProgress })
|
|
2564
|
+
] }),
|
|
2565
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2566
|
+
/* @__PURE__ */ jsx("dt", { children: "Unknown" }),
|
|
2567
|
+
/* @__PURE__ */ jsx("dd", { children: rollup.unknown })
|
|
2568
|
+
] }),
|
|
2569
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2570
|
+
/* @__PURE__ */ jsx("dt", { children: "Failed" }),
|
|
2571
|
+
/* @__PURE__ */ jsx("dd", { "data-testid": "migration-failed-count", children: failed })
|
|
2572
|
+
] }),
|
|
2573
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2574
|
+
/* @__PURE__ */ jsx("dt", { children: "Total" }),
|
|
2575
|
+
/* @__PURE__ */ jsx("dd", { children: rollup.total })
|
|
2576
|
+
] }),
|
|
2577
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2578
|
+
/* @__PURE__ */ jsx("dt", { children: "All migrated" }),
|
|
2579
|
+
/* @__PURE__ */ jsx("dd", { children: rollup.allMigrated ? "yes" : "no" })
|
|
2580
|
+
] }),
|
|
2581
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2582
|
+
/* @__PURE__ */ jsx("dt", { children: "Members pending signature" }),
|
|
2583
|
+
/* @__PURE__ */ jsx("dd", { "data-testid": "members-pending-signature", children: membersPendingSignature })
|
|
2584
|
+
] })
|
|
2585
|
+
] }),
|
|
2586
|
+
/* @__PURE__ */ jsxs("table", { children: [
|
|
2587
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
2588
|
+
/* @__PURE__ */ jsx("th", { children: "Peer" }),
|
|
2589
|
+
/* @__PURE__ */ jsx("th", { children: "State" }),
|
|
2590
|
+
/* @__PURE__ */ jsx("th", { children: "Schema" }),
|
|
2591
|
+
/* @__PURE__ */ jsx("th", { children: "Pending" }),
|
|
2592
|
+
/* @__PURE__ */ jsx("th", { children: "Reason" })
|
|
2593
|
+
] }) }),
|
|
2594
|
+
/* @__PURE__ */ jsx("tbody", { children: members.map((m) => /* @__PURE__ */ jsxs("tr", { "data-testid": "migration-member-row", children: [
|
|
2595
|
+
/* @__PURE__ */ jsx("td", { children: m.peer }),
|
|
2596
|
+
/* @__PURE__ */ jsx("td", { children: m.state }),
|
|
2597
|
+
/* @__PURE__ */ jsx("td", { children: m.report?.schemaVersion ?? "\u2014" }),
|
|
2598
|
+
/* @__PURE__ */ jsx("td", { children: m.report?.authoredRemaining ?? "\u2014" }),
|
|
2599
|
+
/* @__PURE__ */ jsx("td", { children: m.report?.migrationFailed ?? "\u2014" })
|
|
2600
|
+
] }, m.peer)) })
|
|
2601
|
+
] })
|
|
2602
|
+
] });
|
|
2603
|
+
}
|
|
2297
2604
|
|
|
2298
|
-
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, useJoinSubgroupInheritance, 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 };
|
|
2605
|
+
export { AppMode, CalimeroLogo, ConnectButton, ConnectionType, LoginModal, MERO_CSS_VARS, MeroContext, MeroProvider, MigrationAdminPanel, MigrationPendingBanner, clearAllStorage, clearApplicationId, clearContextId, clearContextIdentity, clearNodeUrl, cssVar, defaultMeroTheme, getApplicationId, getContextId, getContextIdentity, getNodeUrl, localStorageTokenStorage, resolveMeroTheme, setApplicationId, setContextId, setContextIdentity, setNodeUrl, themeToCssVars, useAddGroupMembers, useAppVersion, useApplicationContexts, useContextDiscovery, useContextGroup, useContexts, useCreateContext, useCreateGroupInNamespace, useCreateNamespace, useCreateNamespaceInvitation, useDefaultCapabilities, useDeleteContext, useDeleteGroup, useDeleteNamespace, useDetachContextFromGroup, useExecute, useGroupCapabilities, useGroupContexts, useGroupInfo, useGroupInvitations, useGroupMembers, useGroupMetadata, useGroupUpgradeStatus, useJoinContext, useJoinGroup, useJoinNamespace, useJoinSubgroupInheritance, useLatestVersion, useMemberMetadata, useMero, useMigrationStatus, useMyAuthoredMigration, useNamespace, useNamespaceGroups, useNamespaceIdentity, useNamespaces, useNamespacesForApplication, useNestGroup, useRegisterGroupSigningKey, useRemoveGroupMembers, useRetryGroupUpgrade, useSetContextMetadata, useSetDefaultCapabilities, useSetGroupMetadata, useSetMemberMetadata, useSetSubgroupVisibility, useSetTeeAdmissionPolicy, useSubgroupVisibility, useSubgroups, useSubscription, useSyncGroup, useUnnestGroup, useUpdateGroupSettings, useUpdateMemberRole, useUpgradeGroup };
|
|
2299
2606
|
//# sourceMappingURL=index.js.map
|
|
2300
2607
|
//# sourceMappingURL=index.js.map
|