@calimero-network/mero-js 19.10.0 → 19.11.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.
@@ -1,5 +1,5 @@
1
1
  import { HttpClient } from '../http-client/index.js';
2
- import type { HealthStatus, AdminAuthStatus, InstallApplicationRequest, InstallApplicationResponseData, InstallDevApplicationRequest, UninstallApplicationResponseData, ListApplicationsResponseData, GetApplicationResponseData, ApplicationVersionEntry, GetApplicationAbiResponseData, GetLatestVersionResponseData, ListPackagesResponseData, ListVersionsResponseData, CreateContextRequest, CreateContextResponseData, DeleteContextResponseData, GetContextsResponseData, Context, GenerateContextIdentityResponseData, GetContextIdentitiesResponseData, JoinContextResponseData, JoinSubgroupInheritanceResponseData, ContextGroupResponseData, ContextStorageResponseData, InviteSpecializedNodeRequest, InviteSpecializedNodeResponseData, 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, NamespaceIdentity, NodeIdentity, AccountPairInitRequest, AccountPairInitResponseData, AccountPairCompleteRequest, AccountPairCompleteResponseData, RelinkDeviceRequest, RelinkDeviceResponseData, AccountDeviceEntry, AccountApplicationEntry, RevokeAccountDeviceRequest, RevokeAccountDeviceResponseData, GroupInfoResponseData, CreateGroupRequest, CreateGroupResponseData, DeleteGroupResponseData, ListGroupMembersResponseData, ListGroupContextsResponseData, AddGroupMembersRequest, RemoveGroupMembersRequest, UpdateMemberRoleRequest, MemberCapabilities, SetMemberCapabilitiesRequest, SetDefaultCapabilitiesRequest, SetMemberAutoFollowRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, GetTeeAdmissionPolicyResponseData, SetGroupMetadataRequest, SetMemberMetadataRequest, SetContextMetadataRequest, MetadataRecord, SyncGroupResponseData, UpgradeGroupRequest, UpgradeGroupResponseData, GroupUpgradeStatusResponseData, MigrationStatus, CascadeStatusEntry, RetryGroupUpgradeResponseData, ReparentGroupRequest, ReparentGroupResponseData, IssueOwnershipProofRequest, IssueNamespaceOwnershipProofRequest, IssueOwnershipProofResponseData, CreateGroupInvitationRequest, CreateGroupInvitationResponseData, CreateRecursiveGroupInvitationResponseData, JoinGroupRequest, JoinGroupResponseData, TeeInfoResponseData, TeeAttestRequest, TeeAttestResponseData, TeeVerifyQuoteRequest, TeeVerifyQuoteResponseData, PerformIntentRequest, PerformIntentResponseData, IntentRelayInfo, AdmitJoinRequest, AdmitJoinResponseData } from './admin-types.js';
2
+ import type { HealthStatus, AdminAuthStatus, InstallApplicationRequest, InstallApplicationResponseData, InstallDevApplicationRequest, UninstallApplicationResponseData, ListApplicationsResponseData, GetApplicationResponseData, ApplicationVersionEntry, GetApplicationAbiResponseData, GetLatestVersionResponseData, ListPackagesResponseData, ListVersionsResponseData, CreateContextRequest, CreateContextResponseData, DeleteContextResponseData, GetContextsResponseData, Context, GenerateContextIdentityResponseData, GetContextIdentitiesResponseData, JoinContextResponseData, JoinSubgroupInheritanceResponseData, ContextGroupResponseData, ContextStorageResponseData, InviteSpecializedNodeRequest, InviteSpecializedNodeResponseData, 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, NamespaceIdentity, NodeIdentity, AccountPairInitRequest, AccountPairInitResponseData, AccountPairCompleteRequest, AccountPairCompleteResponseData, RelinkDeviceRequest, RelinkDeviceResponseData, RescopeDeviceRequest, RescopeDeviceResponseData, AccountDeviceEntry, AccountApplicationEntry, RevokeAccountDeviceRequest, RevokeAccountDeviceResponseData, GroupInfoResponseData, CreateGroupRequest, CreateGroupResponseData, DeleteGroupResponseData, ListGroupMembersResponseData, ListGroupContextsResponseData, AddGroupMembersRequest, RemoveGroupMembersRequest, UpdateMemberRoleRequest, MemberCapabilities, SetMemberCapabilitiesRequest, SetDefaultCapabilitiesRequest, SetMemberAutoFollowRequest, SetSubgroupVisibilityRequest, SetTeeAdmissionPolicyRequest, GetTeeAdmissionPolicyResponseData, SetGroupMetadataRequest, SetMemberMetadataRequest, SetContextMetadataRequest, MetadataRecord, SyncGroupResponseData, UpgradeGroupRequest, UpgradeGroupResponseData, GroupUpgradeStatusResponseData, MigrationStatus, CascadeStatusEntry, RetryGroupUpgradeResponseData, ReparentGroupRequest, ReparentGroupResponseData, IssueOwnershipProofRequest, IssueNamespaceOwnershipProofRequest, IssueOwnershipProofResponseData, CreateGroupInvitationRequest, CreateGroupInvitationResponseData, CreateRecursiveGroupInvitationResponseData, JoinGroupRequest, JoinGroupResponseData, TeeInfoResponseData, TeeAttestRequest, TeeAttestResponseData, TeeVerifyQuoteRequest, TeeVerifyQuoteResponseData, PerformIntentRequest, PerformIntentResponseData, IntentRelayInfo, AdmitJoinRequest, AdmitJoinResponseData } from './admin-types.js';
3
3
  /**
4
4
  * Compare two version strings by SemVer 2.0 precedence, ascending: negative if
5
5
  * `a < b`, positive if `a > b`, `0` if equal. Build metadata (`+...`) is stripped
@@ -272,6 +272,14 @@ export declare class AdminApiClient {
272
272
  * would make the accidental request the widest one.
273
273
  */
274
274
  relinkAccountDevice(deviceId: string, request?: RelinkDeviceRequest): Promise<RelinkDeviceResponseData>;
275
+ /**
276
+ * Replace a device's scope outright, in one root-signed op.
277
+ *
278
+ * {@link relinkAccountDevice} only ever adds applications; this is how a
279
+ * scope is narrowed - or an `all` device is given a fixed list instead. The
280
+ * device need not be online.
281
+ */
282
+ rescopeAccountDevice(deviceId: string, request: RescopeDeviceRequest): Promise<RescopeDeviceResponseData>;
275
283
  /**
276
284
  * Every device of this account, as this node sees them - its own included.
277
285
  *
@@ -587,6 +587,16 @@ export class AdminApiClient {
587
587
  async relinkAccountDevice(deviceId, request) {
588
588
  return unwrap(await this.httpClient.post(`/admin-api/account/devices/${deviceId}/relink`, request ?? {}));
589
589
  }
590
+ /**
591
+ * Replace a device's scope outright, in one root-signed op.
592
+ *
593
+ * {@link relinkAccountDevice} only ever adds applications; this is how a
594
+ * scope is narrowed - or an `all` device is given a fixed list instead. The
595
+ * device need not be online.
596
+ */
597
+ async rescopeAccountDevice(deviceId, request) {
598
+ return unwrap(await this.httpClient.put(`/admin-api/account/devices/${encodeURIComponent(deviceId)}/scope`, request));
599
+ }
590
600
  /**
591
601
  * Every device of this account, as this node sees them - its own included.
592
602
  *
@@ -811,6 +811,25 @@ export interface RelinkDeviceRequest {
811
811
  */
812
812
  applications?: string[];
813
813
  }
814
+ /**
815
+ * The scope to hold: every application, or only the ones named.
816
+ *
817
+ * A tagged shape rather than a list whose emptiness means everything - `all`
818
+ * and `only: []` differ by a whole order of magnitude in what they grant, and
819
+ * an empty `only` is refused rather than treated as `all`.
820
+ */
821
+ export type DeviceScope = 'all' | {
822
+ only: string[];
823
+ };
824
+ /**
825
+ * Replace a device's scope outright, in one root-signed op.
826
+ *
827
+ * {@link relinkAccountDevice} only ever adds applications; this is how a
828
+ * scope is narrowed, or an `all` device is given a fixed list instead.
829
+ */
830
+ export interface RescopeDeviceRequest {
831
+ scope: DeviceScope;
832
+ }
814
833
  /** One namespace the relink published the device's link into. */
815
834
  export interface RelinkOutcomeEntry {
816
835
  /** The namespace id, 64 hex characters. */
@@ -834,6 +853,31 @@ export interface RelinkSkipEntry {
834
853
  */
835
854
  reason: string;
836
855
  }
856
+ /** One namespace a scope replacement no longer reaches. */
857
+ export interface RescopeDescopeEntry {
858
+ /** The namespace id, 64 hex characters. */
859
+ namespaceId: string;
860
+ /**
861
+ * Whether the scope key was rotated. `false` means the device stopped writing
862
+ * there but still holds the key it had, until an admin rotates.
863
+ */
864
+ keyRotated: boolean;
865
+ }
866
+ /** The scope a device now holds, and what each namespace did about it. */
867
+ export interface RescopeDeviceResponseData {
868
+ /** The account the device speaks for, 64 hex characters. */
869
+ accountId: string;
870
+ /** The device that was rescoped, 64 hex characters. */
871
+ deviceId: string;
872
+ /** The scope after the request, 64 hex each. Empty means every application. */
873
+ applications: string[];
874
+ /** Namespaces the new scope no longer reaches. */
875
+ descoped: RescopeDescopeEntry[];
876
+ /** Namespaces the device was linked into by this call. */
877
+ linkedIn: RelinkOutcomeEntry[];
878
+ /** Namespaces nothing was published into, and why. */
879
+ skipped: RelinkSkipEntry[];
880
+ }
837
881
  /** What the relink repaired, and what it left alone. */
838
882
  export interface RelinkDeviceResponseData {
839
883
  /** The account the device speaks for, 64 hex characters. */