@calimero-network/mero-js 26.3.0 → 26.4.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.
@@ -68,7 +68,7 @@ const EMPTY_READS = {
68
68
  * that administers the namespace (#4400, rc.77), so they go to the relay.
69
69
  */
70
70
  const NODE_ONLY = new Set([
71
- 'upgradeGroup', 'retryGroupUpgrade', 'abortMigration', 'installApplication', 'installDevApplication',
71
+ 'upgradeGroup', 'retryGroupUpgrade', 'activateGroupUpgrade', 'abortMigration', 'installApplication', 'installDevApplication',
72
72
  'uninstallApplication', 'generateContextIdentity', 'deleteContext',
73
73
  // A node's leaveContext is a local opt-out (a tombstone, its own identity rows)
74
74
  // and publishes nothing; an account has nothing local to opt out of, and
@@ -1,5 +1,5 @@
1
1
  import { HttpClient } from '../http-client/index.js';
2
- import type { HealthStatus, ReadinessStatus, AdminAuthStatus, InstallApplicationRequest, InstallApplicationResponseData, InstallDevApplicationRequest, UninstallApplicationResponseData, ListApplicationsResponseData, GetApplicationResponseData, ApplicationVersionEntry, GetApplicationAbiResponseData, GetLatestVersionResponseData, ListPackagesResponseData, ListVersionsResponseData, CreateContextRequest, CreateContextResponseData, DeleteContextResponseData, GetContextsResponseData, Context, GenerateContextIdentityResponseData, GetContextIdentitiesResponseData, JoinContextResponseData, JoinSubgroupInheritanceResponseData, ContextGroupResponseData, ContextStorageResponseData, UpdateContextApplicationRequest, ResyncContextRequest, ResyncContextResponseData, ContextsWithExecutorsResponseData, UploadBlobRequest, UploadBlobResponseData, DeleteBlobResponseData, ListBlobsResponseData, GetBlobInfoResponseData, BlobReadOptions, CreateContextAliasRequest, CreateApplicationAliasRequest, CreateDeviceAliasRequest, CreateAliasResponseData, LookupAliasResponseData, DeleteAliasResponseData, ListAliasesResponseData, ListNamespacesResponseData, CreateNamespaceRequest, CreateNamespaceResponseData, DeleteNamespaceResponseData, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, JoinNamespaceRequest, JoinNamespaceResponseData, CreateGroupInNamespaceRequest, CreateGroupInNamespaceResponseData, SubgroupEntry, Namespace, NodeIdentity, AccountPairInitRequest, AccountPairInitResponseData, AccountPairCompleteRequest, AccountPairCompleteResponseData, AccountSignWithRootRequest, AccountSignWithRootResponseData, RelinkDeviceRequest, RelinkDeviceResponseData, RescopeDeviceRequest, RescopeDeviceResponseData, LabelDeviceRequest, LabelDeviceResponseData, AccountDeviceEntry, AccountApplicationEntry, RevokeAccountDeviceRequest, LinkAccountDeviceRequest, LinkAccountDeviceResponseData, RevokeAccountDeviceResponseData, MemberDevicesEntry, ListMemberDevicesOptions, GroupInfoResponseData, CreateGroupRequest, CreateGroupResponseData, DeleteGroupResponseData, ListGroupMembersResponseData, ListGroupContextsResponseData, AddGroupMembersRequest, RemoveGroupMembersRequest, UpdateMemberRoleRequest, MemberCapabilities, SetMemberCapabilitiesRequest, SetDefaultCapabilitiesRequest, SetMemberAutoFollowRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, GetTeeAdmissionPolicyResponseData, SetTeeAuthoringPolicyRequest, TransferOwnershipRequest, ChangeNamespaceAdminRequest, OwnerDeleteGroupRequest, RootGuardedOpRequest, SetGroupMetadataRequest, SetMemberMetadataRequest, SetContextMetadataRequest, MetadataRecord, SyncGroupResponseData, UpgradeGroupRequest, UpgradeGroupResponseData, GroupUpgradeStatusResponseData, MigrationStatus, NamespaceRevokedDevices, CascadeStatusEntry, RetryGroupUpgradeResponseData, ReparentGroupRequest, ReparentGroupResponseData, IssueOwnershipProofRequest, IssueNamespaceOwnershipProofRequest, IssueOwnershipProofResponseData, CreateGroupInvitationRequest, CreateGroupInvitationResponseData, CreateRecursiveGroupInvitationResponseData, JoinGroupRequest, JoinGroupResponseData, TeeInfoResponseData, TeeAttestRequest, TeeAttestResponseData, PerformIntentRequest, PerformIntentResponseData, IntentRelayInfo, QueryContextRequest, QueryContextResponseData, ListMemberDevicesResponseData, SealToAccountRequest, SealedEnvelope, AdmitJoinRequest, AdmitJoinResponseData } from './admin-types.js';
2
+ import type { HealthStatus, ReadinessStatus, AdminAuthStatus, InstallApplicationRequest, InstallApplicationResponseData, InstallDevApplicationRequest, UninstallApplicationResponseData, ListApplicationsResponseData, GetApplicationResponseData, ApplicationVersionEntry, GetApplicationAbiResponseData, GetLatestVersionResponseData, ListPackagesResponseData, ListVersionsResponseData, CreateContextRequest, CreateContextResponseData, DeleteContextResponseData, GetContextsResponseData, Context, GenerateContextIdentityResponseData, GetContextIdentitiesResponseData, JoinContextResponseData, JoinSubgroupInheritanceResponseData, ContextGroupResponseData, ContextStorageResponseData, UpdateContextApplicationRequest, ResyncContextRequest, ResyncContextResponseData, ContextsWithExecutorsResponseData, UploadBlobRequest, UploadBlobResponseData, DeleteBlobResponseData, ListBlobsResponseData, GetBlobInfoResponseData, BlobReadOptions, CreateContextAliasRequest, CreateApplicationAliasRequest, CreateDeviceAliasRequest, CreateAliasResponseData, LookupAliasResponseData, DeleteAliasResponseData, ListAliasesResponseData, ListNamespacesResponseData, CreateNamespaceRequest, CreateNamespaceResponseData, DeleteNamespaceResponseData, CreateNamespaceInvitationRequest, CreateNamespaceInvitationResponseData, CreateRecursiveInvitationResponseData, JoinNamespaceRequest, JoinNamespaceResponseData, CreateGroupInNamespaceRequest, CreateGroupInNamespaceResponseData, SubgroupEntry, Namespace, NodeIdentity, AccountPairInitRequest, AccountPairInitResponseData, AccountPairCompleteRequest, AccountPairCompleteResponseData, AccountSignWithRootRequest, AccountSignWithRootResponseData, RelinkDeviceRequest, RelinkDeviceResponseData, RescopeDeviceRequest, RescopeDeviceResponseData, LabelDeviceRequest, LabelDeviceResponseData, AccountDeviceEntry, AccountApplicationEntry, RevokeAccountDeviceRequest, LinkAccountDeviceRequest, LinkAccountDeviceResponseData, RevokeAccountDeviceResponseData, MemberDevicesEntry, ListMemberDevicesOptions, GroupInfoResponseData, CreateGroupRequest, CreateGroupResponseData, DeleteGroupResponseData, ListGroupMembersResponseData, ListGroupContextsResponseData, AddGroupMembersRequest, RemoveGroupMembersRequest, UpdateMemberRoleRequest, MemberCapabilities, SetMemberCapabilitiesRequest, SetDefaultCapabilitiesRequest, SetMemberAutoFollowRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, GetTeeAdmissionPolicyResponseData, SetTeeAuthoringPolicyRequest, TransferOwnershipRequest, ChangeNamespaceAdminRequest, OwnerDeleteGroupRequest, RootGuardedOpRequest, SetGroupMetadataRequest, SetMemberMetadataRequest, SetContextMetadataRequest, MetadataRecord, SyncGroupResponseData, ActivateGroupUpgradeRequest, ActivateGroupUpgradeResponseData, UpgradeGroupRequest, UpgradeGroupResponseData, GroupUpgradeStatusResponseData, MigrationStatus, NamespaceRevokedDevices, CascadeStatusEntry, RetryGroupUpgradeResponseData, ReparentGroupRequest, ReparentGroupResponseData, IssueOwnershipProofRequest, IssueNamespaceOwnershipProofRequest, IssueOwnershipProofResponseData, CreateGroupInvitationRequest, CreateGroupInvitationResponseData, CreateRecursiveGroupInvitationResponseData, JoinGroupRequest, JoinGroupResponseData, TeeInfoResponseData, TeeAttestRequest, TeeAttestResponseData, PerformIntentRequest, PerformIntentResponseData, IntentRelayInfo, QueryContextRequest, QueryContextResponseData, ListMemberDevicesResponseData, SealToAccountRequest, SealedEnvelope, AdmitJoinRequest, AdmitJoinResponseData } from './admin-types.js';
3
3
  import { type RedeemOutcome } from './redeem-invitation.js';
4
4
  /**
5
5
  * Compare two version strings by SemVer 2.0 precedence, ascending: negative if
@@ -598,6 +598,8 @@ export declare class AdminApiClient {
598
598
  listNamespaceRevokedDevices(namespaceId: string): Promise<NamespaceRevokedDevices>;
599
599
  /** Per-group cascade-migration snapshots for a namespace. */
600
600
  getCascadeStatus(namespaceId: string): Promise<CascadeStatusEntry[]>;
601
+ /** Switch this node's contexts in a namespace onto its stored upgrade target; 409 if an `expected*` guard differs. */
602
+ activateGroupUpgrade(namespaceId: string, request?: ActivateGroupUpgradeRequest): Promise<ActivateGroupUpgradeResponseData>;
601
603
  retryGroupUpgrade(groupId: string): Promise<RetryGroupUpgradeResponseData>;
602
604
  /** Move `childGroupId` under `request.newParentId`. */
603
605
  reparentGroup(childGroupId: string, request: ReparentGroupRequest): Promise<ReparentGroupResponseData>;
@@ -1075,6 +1075,10 @@ export class AdminApiClient {
1075
1075
  async getCascadeStatus(namespaceId) {
1076
1076
  return unwrap(await this.httpClient.get(`/admin-api/groups/${pathSegment(namespaceId)}/cascade-status`));
1077
1077
  }
1078
+ /** Switch this node's contexts in a namespace onto its stored upgrade target; 409 if an `expected*` guard differs. */
1079
+ async activateGroupUpgrade(namespaceId, request = {}) {
1080
+ return unwrap(await this.httpClient.post(`/admin-api/groups/${pathSegment(namespaceId)}/upgrade/activate`, request));
1081
+ }
1078
1082
  async retryGroupUpgrade(groupId) {
1079
1083
  return unwrap(await this.httpClient.post(`/admin-api/groups/${pathSegment(groupId)}/upgrade/retry`, {}));
1080
1084
  }
@@ -1356,7 +1356,16 @@ export interface GroupInfo {
1356
1356
  contextCount: number;
1357
1357
  activeUpgrade?: GroupUpgradeStatus;
1358
1358
  defaultCapabilities: number;
1359
+ /** How the group takes members: `'open'` inherits the parent's, `'restricted'` admits directly. */
1359
1360
  subgroupVisibility: string;
1361
+ /**
1362
+ * Who outside the group can reach it: `'restricted'` when this group or any
1363
+ * group above it (short of the namespace root) is Restricted, `'open'` only on
1364
+ * an Open chain to the namespace. Draw privacy (a lock) from this, not from
1365
+ * `subgroupVisibility`: an Open folder inside a private one is `'open'` there
1366
+ * and `'restricted'` here. Absent from nodes that predate it.
1367
+ */
1368
+ effectiveVisibility?: 'open' | 'restricted';
1360
1369
  /**
1361
1370
  * The group's generic metadata record (replaces the old `alias` field).
1362
1371
  * `null` if no metadata has ever been set for this group.
@@ -1714,6 +1723,28 @@ export interface UpgradeGroupResponseData {
1714
1723
  }
1715
1724
  export type GroupUpgradeStatusResponseData = GroupUpgradeStatus | null;
1716
1725
  export type RetryGroupUpgradeResponseData = UpgradeGroupResponseData;
1726
+ export interface ActivateGroupUpgradeRequest {
1727
+ /** Refuse with 409 unless this is the namespace's stored target application. */
1728
+ expectedApplicationId?: string;
1729
+ /** Refuse with 409 unless this is the target release's manifest version
1730
+ * (application ids do not change between versions). */
1731
+ expectedVersion?: string;
1732
+ }
1733
+ export interface ActivateGroupUpgradeFailedContext {
1734
+ contextId: string;
1735
+ error: string;
1736
+ /** False when the switch itself failed (a migration or load); a retry repeats it. */
1737
+ retryable: boolean;
1738
+ }
1739
+ export interface ActivateGroupUpgradeResponseData {
1740
+ targetApplicationId: string;
1741
+ /** Contexts this call moved to the target; 0 when all were current. */
1742
+ switchedContexts: number;
1743
+ /** Held deltas replayed into the namespace's contexts. */
1744
+ replayedDeltas: number;
1745
+ /** Calling again retries only these. */
1746
+ failedContexts: ActivateGroupUpgradeFailedContext[];
1747
+ }
1717
1748
  export interface ReparentGroupRequest {
1718
1749
  /** 64-char id of the destination parent group. */
1719
1750
  newParentId: string;