@tinycloud/node-sdk 2.3.0-beta.2 → 2.3.0-beta.4

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/core.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { ACCOUNT_REGISTRY_PATH, ACCOUNT_REGISTRY_SPACE, AutoApproveSpaceCreationHandler, AutoRejectStrategy, AutoSignStrategy, BatchOptions, BatchResponse, CallbackStrategy, CapabilityEntry, CapabilityKeyRegistry, CapabilityKeyRegistryErrorCode, CapabilityKeyRegistryErrorCodes, ClientSession, ColumnInfo, ComposeManifestOptions, ComposedManifestRequest, CreateDelegationParams, DEFAULT_MANIFEST_SPACE, DEFAULT_MANIFEST_VERSION, DEFAULT_SIGNED_READ_URL_EXPIRY_MS, DataVaultConfig, DataVaultService, DatabaseHandle, Delegation, DelegationChain, DelegationChainV2, DelegationDirection, DelegationError, DelegationErrorCode, DelegationErrorCodes, DelegationFilters, DelegationManager, DelegationManagerConfig, DelegationRecord, DelegationResult, DuckDbAction, DuckDbActionType, DuckDbBatchOptions, DuckDbBatchResponse, DuckDbDatabaseHandle, DuckDbExecuteOptions, DuckDbExecuteResponse, DuckDbOptions, DuckDbQueryOptions, DuckDbQueryResponse, DuckDbService, DuckDbServiceConfig, DuckDbStatement, DuckDbValue, EncodedShareData, ExecuteOptions, ExecuteResponse, Extension, FetchFunction, GenerateShareParams, ICapabilityKeyRegistry, IDataVaultService, IDatabaseHandle, IDuckDbDatabaseHandle, IDuckDbService, IENSResolver, IKVService, INotificationHandler, IPrefixedKVService, ISQLService, ISecretsService, ISessionManager, ISessionStorage, ISharingService, ISigner, ISpace, ISpaceCreationHandler, ISpaceScopedDelegations, ISpaceScopedSharing, ISpaceService, IUserAuthorization, IWasmBindings, IngestOptions, InvokeFunction, JWK, KVCreateSignedReadUrlOptions, KVResponse, KVService, KVServiceConfig, KVSignedReadUrlResponse, KeyInfo, KeyProvider, KeyType, Manifest, ManifestDefaults, ManifestRegistryRecord, ManifestSecretActions, ManifestValidationError, PermissionEntry, PermissionNotInManifestError, PersistedSessionData, PrefixedKVService, ProtocolMismatchError, QueryOptions, QueryResponse, ReceiveOptions, ResolvedCapabilities, ResolvedDelegate, ResolvedSecretPath, ResourceCapability, SECRET_NAME_RE, SQLAction, SQLActionType, SQLService, SQLServiceConfig, SchemaInfo, SecretPayload, SecretScopeOptions, SecretsError, SecretsService, ServiceContext, ServiceContextConfig, ServiceSession, SessionExpiredError, ShareAccess, ShareLink, ShareLinkData, ShareSchema, SharingService, SharingServiceConfig, SignCallback, SignInOptions, SignRequest, SignResponse, SilentNotificationHandler, Space, SpaceAbilitiesMap, SpaceConfig, SpaceCreationContext, SpaceErrorCode, SpaceErrorCodes, SpaceInfo, SpaceOwnership, SpaceService, SpaceServiceConfig, SqlStatement, SqlValue, StoredDelegationChain, TableInfo, TinyCloud, TinyCloudConfig, TinyCloudSession, UnsupportedFeatureError, VAULT_PERMISSION_SERVICE, VaultCrypto, VaultEntry, VaultError, VaultGetOptions, VaultGrantOptions, VaultHeaders, VaultListOptions, VaultPublicSpaceKVActions, VaultPutOptions, VersionCheckError, ViewInfo, WasmVaultFunctions, buildSpaceUri, canonicalizeSecretScope, checkNodeInfo, composeManifestRequest, createCapabilityKeyRegistry, createSharingService, createSpaceService, createVaultCrypto, defaultSpaceCreationHandler, expandActionShortNames, expandPermissionEntries, expandPermissionEntry, isCapabilitySubset, loadManifest, makePublicSpaceId, parseExpiry, parseSpaceUri, resolveManifest, resolveSecretListPrefix, resolveSecretPath, resourceCapabilitiesToSpaceAbilitiesMap, validateManifest } from '@tinycloud/sdk-core';
2
- export { D as DelegateToOptions, a as DelegateToResult, b as DelegatedAccess, F as FileSessionStorage, M as MemorySessionStorage, N as NodeEventEmitterStrategy, c as NodeUserAuthorization, d as NodeUserAuthorizationConfig, P as PortableDelegation, e as RuntimePermissionGrantOptions, S as SignStrategy, T as TinyCloudNode, f as TinyCloudNodeConfig, W as WasmKeyProvider, g as WasmKeyProviderConfig, h as createWasmKeyProvider, i as defaultSignStrategy, j as deserializeDelegation, s as serializeDelegation } from './core-CWdCZ8q6.cjs';
1
+ export { ACCOUNT_REGISTRY_PATH, ACCOUNT_REGISTRY_SPACE, AutoApproveSpaceCreationHandler, AutoRejectStrategy, AutoSignStrategy, BatchOptions, BatchResponse, CallbackStrategy, CanonicalAddress, CanonicalParsedNetworkId, CapabilityEntry, CapabilityKeyRegistry, CapabilityKeyRegistryErrorCode, CapabilityKeyRegistryErrorCodes, ClientSession, ColumnInfo, ComposeManifestOptions, ComposedManifestRequest, CreateDelegationParams, DEFAULT_MANIFEST_SPACE, DEFAULT_MANIFEST_VERSION, DEFAULT_SIGNED_READ_URL_EXPIRY_MS, DataVaultConfig, DataVaultService, DatabaseHandle, Delegation, DelegationChain, DelegationChainV2, DelegationDirection, DelegationError, DelegationErrorCode, DelegationErrorCodes, DelegationFilters, DelegationManager, DelegationManagerConfig, DelegationRecord, DelegationResult, DidCacheKeyOptions, DidEqualsOptions, DuckDbAction, DuckDbActionType, DuckDbBatchOptions, DuckDbBatchResponse, DuckDbDatabaseHandle, DuckDbExecuteOptions, DuckDbExecuteResponse, DuckDbOptions, DuckDbQueryOptions, DuckDbQueryResponse, DuckDbService, DuckDbServiceConfig, DuckDbStatement, DuckDbValue, EncodedShareData, ExecuteOptions, ExecuteResponse, Extension, FetchFunction, GenerateShareParams, ICapabilityKeyRegistry, IDataVaultService, IDatabaseHandle, IDuckDbDatabaseHandle, IDuckDbService, IENSResolver, IKVService, INotificationHandler, IPrefixedKVService, ISQLService, ISecretsService, ISessionManager, ISessionStorage, ISharingService, ISigner, ISpace, ISpaceCreationHandler, ISpaceScopedDelegations, ISpaceScopedSharing, ISpaceService, IUserAuthorization, IWasmBindings, IdentityParseError, IngestOptions, InvokeFunction, JWK, KVCreateSignedReadUrlOptions, KVResponse, KVService, KVServiceConfig, KVSignedReadUrlResponse, KeyInfo, KeyProvider, KeyType, Manifest, ManifestDefaults, ManifestRegistryRecord, ManifestSecretActions, ManifestValidationError, PermissionEntry, PermissionNotInManifestError, PersistedSessionData, PkhDidParts, PrefixedKVService, ProtocolMismatchError, QueryOptions, QueryResponse, ReceiveOptions, ResolvedCapabilities, ResolvedDelegate, ResolvedSecretPath, ResourceCapability, SECRET_NAME_RE, SQLAction, SQLActionType, SQLService, SQLServiceConfig, SchemaInfo, SecretPayload, SecretScopeOptions, SecretsError, SecretsService, ServiceContext, ServiceContextConfig, ServiceSession, SessionExpiredError, ShareAccess, ShareLink, ShareLinkData, ShareSchema, SharingService, SharingServiceConfig, SignCallback, SignInOptions, SignRequest, SignResponse, SilentNotificationHandler, Space, SpaceAbilitiesMap, SpaceConfig, SpaceCreationContext, SpaceErrorCode, SpaceErrorCodes, SpaceInfo, SpaceOwnership, SpaceService, SpaceServiceConfig, SqlStatement, SqlValue, StoredDelegationChain, TableInfo, TinyCloud, TinyCloudConfig, TinyCloudSession, UnsupportedFeatureError, VAULT_PERMISSION_SERVICE, VaultCrypto, VaultEntry, VaultError, VaultGetOptions, VaultGrantOptions, VaultHeaders, VaultListOptions, VaultPublicSpaceKVActions, VaultPutOptions, VersionCheckError, ViewInfo, WasmVaultFunctions, addressStorageKey, buildSpaceUri, canonicalizeAddress, canonicalizeDid, canonicalizeDidUrl, canonicalizeNetworkId, canonicalizeSecretScope, checkNodeInfo, composeManifestRequest, createCapabilityKeyRegistry, createSharingService, createSpaceService, createVaultCrypto, defaultSpaceCreationHandler, didCacheKey, didEquals, expandActionShortNames, expandPermissionEntries, expandPermissionEntry, isCapabilitySubset, isEvmAddress, loadManifest, makePkhSpaceId, makePublicSpaceId, parseCanonicalNetworkId, parseExpiry, parsePkhDid, parseSpaceUri, pkhDid, principalDid, principalDidEquals, resolveManifest, resolveSecretListPrefix, resolveSecretPath, resourceCapabilitiesToSpaceAbilitiesMap, validateManifest } from '@tinycloud/sdk-core';
2
+ export { D as DelegateToOptions, a as DelegateToResult, b as DelegatedAccess, F as FileSessionStorage, M as MemorySessionStorage, N as NodeEventEmitterStrategy, c as NodeUserAuthorization, d as NodeUserAuthorizationConfig, P as PortableDelegation, e as RuntimePermissionGrantOptions, S as SignStrategy, T as TinyCloudNode, f as TinyCloudNodeConfig, W as WasmKeyProvider, g as WasmKeyProviderConfig, h as createWasmKeyProvider, i as defaultSignStrategy, j as deserializeDelegation, s as serializeDelegation } from './core-CNyXnUx9.cjs';
3
3
  import 'events';
4
4
  import '@tinycloud/sdk-services';
package/dist/core.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ACCOUNT_REGISTRY_PATH, ACCOUNT_REGISTRY_SPACE, AutoApproveSpaceCreationHandler, AutoRejectStrategy, AutoSignStrategy, BatchOptions, BatchResponse, CallbackStrategy, CapabilityEntry, CapabilityKeyRegistry, CapabilityKeyRegistryErrorCode, CapabilityKeyRegistryErrorCodes, ClientSession, ColumnInfo, ComposeManifestOptions, ComposedManifestRequest, CreateDelegationParams, DEFAULT_MANIFEST_SPACE, DEFAULT_MANIFEST_VERSION, DEFAULT_SIGNED_READ_URL_EXPIRY_MS, DataVaultConfig, DataVaultService, DatabaseHandle, Delegation, DelegationChain, DelegationChainV2, DelegationDirection, DelegationError, DelegationErrorCode, DelegationErrorCodes, DelegationFilters, DelegationManager, DelegationManagerConfig, DelegationRecord, DelegationResult, DuckDbAction, DuckDbActionType, DuckDbBatchOptions, DuckDbBatchResponse, DuckDbDatabaseHandle, DuckDbExecuteOptions, DuckDbExecuteResponse, DuckDbOptions, DuckDbQueryOptions, DuckDbQueryResponse, DuckDbService, DuckDbServiceConfig, DuckDbStatement, DuckDbValue, EncodedShareData, ExecuteOptions, ExecuteResponse, Extension, FetchFunction, GenerateShareParams, ICapabilityKeyRegistry, IDataVaultService, IDatabaseHandle, IDuckDbDatabaseHandle, IDuckDbService, IENSResolver, IKVService, INotificationHandler, IPrefixedKVService, ISQLService, ISecretsService, ISessionManager, ISessionStorage, ISharingService, ISigner, ISpace, ISpaceCreationHandler, ISpaceScopedDelegations, ISpaceScopedSharing, ISpaceService, IUserAuthorization, IWasmBindings, IngestOptions, InvokeFunction, JWK, KVCreateSignedReadUrlOptions, KVResponse, KVService, KVServiceConfig, KVSignedReadUrlResponse, KeyInfo, KeyProvider, KeyType, Manifest, ManifestDefaults, ManifestRegistryRecord, ManifestSecretActions, ManifestValidationError, PermissionEntry, PermissionNotInManifestError, PersistedSessionData, PrefixedKVService, ProtocolMismatchError, QueryOptions, QueryResponse, ReceiveOptions, ResolvedCapabilities, ResolvedDelegate, ResolvedSecretPath, ResourceCapability, SECRET_NAME_RE, SQLAction, SQLActionType, SQLService, SQLServiceConfig, SchemaInfo, SecretPayload, SecretScopeOptions, SecretsError, SecretsService, ServiceContext, ServiceContextConfig, ServiceSession, SessionExpiredError, ShareAccess, ShareLink, ShareLinkData, ShareSchema, SharingService, SharingServiceConfig, SignCallback, SignInOptions, SignRequest, SignResponse, SilentNotificationHandler, Space, SpaceAbilitiesMap, SpaceConfig, SpaceCreationContext, SpaceErrorCode, SpaceErrorCodes, SpaceInfo, SpaceOwnership, SpaceService, SpaceServiceConfig, SqlStatement, SqlValue, StoredDelegationChain, TableInfo, TinyCloud, TinyCloudConfig, TinyCloudSession, UnsupportedFeatureError, VAULT_PERMISSION_SERVICE, VaultCrypto, VaultEntry, VaultError, VaultGetOptions, VaultGrantOptions, VaultHeaders, VaultListOptions, VaultPublicSpaceKVActions, VaultPutOptions, VersionCheckError, ViewInfo, WasmVaultFunctions, buildSpaceUri, canonicalizeSecretScope, checkNodeInfo, composeManifestRequest, createCapabilityKeyRegistry, createSharingService, createSpaceService, createVaultCrypto, defaultSpaceCreationHandler, expandActionShortNames, expandPermissionEntries, expandPermissionEntry, isCapabilitySubset, loadManifest, makePublicSpaceId, parseExpiry, parseSpaceUri, resolveManifest, resolveSecretListPrefix, resolveSecretPath, resourceCapabilitiesToSpaceAbilitiesMap, validateManifest } from '@tinycloud/sdk-core';
2
- export { D as DelegateToOptions, a as DelegateToResult, b as DelegatedAccess, F as FileSessionStorage, M as MemorySessionStorage, N as NodeEventEmitterStrategy, c as NodeUserAuthorization, d as NodeUserAuthorizationConfig, P as PortableDelegation, e as RuntimePermissionGrantOptions, S as SignStrategy, T as TinyCloudNode, f as TinyCloudNodeConfig, W as WasmKeyProvider, g as WasmKeyProviderConfig, h as createWasmKeyProvider, i as defaultSignStrategy, j as deserializeDelegation, s as serializeDelegation } from './core-CWdCZ8q6.js';
1
+ export { ACCOUNT_REGISTRY_PATH, ACCOUNT_REGISTRY_SPACE, AutoApproveSpaceCreationHandler, AutoRejectStrategy, AutoSignStrategy, BatchOptions, BatchResponse, CallbackStrategy, CanonicalAddress, CanonicalParsedNetworkId, CapabilityEntry, CapabilityKeyRegistry, CapabilityKeyRegistryErrorCode, CapabilityKeyRegistryErrorCodes, ClientSession, ColumnInfo, ComposeManifestOptions, ComposedManifestRequest, CreateDelegationParams, DEFAULT_MANIFEST_SPACE, DEFAULT_MANIFEST_VERSION, DEFAULT_SIGNED_READ_URL_EXPIRY_MS, DataVaultConfig, DataVaultService, DatabaseHandle, Delegation, DelegationChain, DelegationChainV2, DelegationDirection, DelegationError, DelegationErrorCode, DelegationErrorCodes, DelegationFilters, DelegationManager, DelegationManagerConfig, DelegationRecord, DelegationResult, DidCacheKeyOptions, DidEqualsOptions, DuckDbAction, DuckDbActionType, DuckDbBatchOptions, DuckDbBatchResponse, DuckDbDatabaseHandle, DuckDbExecuteOptions, DuckDbExecuteResponse, DuckDbOptions, DuckDbQueryOptions, DuckDbQueryResponse, DuckDbService, DuckDbServiceConfig, DuckDbStatement, DuckDbValue, EncodedShareData, ExecuteOptions, ExecuteResponse, Extension, FetchFunction, GenerateShareParams, ICapabilityKeyRegistry, IDataVaultService, IDatabaseHandle, IDuckDbDatabaseHandle, IDuckDbService, IENSResolver, IKVService, INotificationHandler, IPrefixedKVService, ISQLService, ISecretsService, ISessionManager, ISessionStorage, ISharingService, ISigner, ISpace, ISpaceCreationHandler, ISpaceScopedDelegations, ISpaceScopedSharing, ISpaceService, IUserAuthorization, IWasmBindings, IdentityParseError, IngestOptions, InvokeFunction, JWK, KVCreateSignedReadUrlOptions, KVResponse, KVService, KVServiceConfig, KVSignedReadUrlResponse, KeyInfo, KeyProvider, KeyType, Manifest, ManifestDefaults, ManifestRegistryRecord, ManifestSecretActions, ManifestValidationError, PermissionEntry, PermissionNotInManifestError, PersistedSessionData, PkhDidParts, PrefixedKVService, ProtocolMismatchError, QueryOptions, QueryResponse, ReceiveOptions, ResolvedCapabilities, ResolvedDelegate, ResolvedSecretPath, ResourceCapability, SECRET_NAME_RE, SQLAction, SQLActionType, SQLService, SQLServiceConfig, SchemaInfo, SecretPayload, SecretScopeOptions, SecretsError, SecretsService, ServiceContext, ServiceContextConfig, ServiceSession, SessionExpiredError, ShareAccess, ShareLink, ShareLinkData, ShareSchema, SharingService, SharingServiceConfig, SignCallback, SignInOptions, SignRequest, SignResponse, SilentNotificationHandler, Space, SpaceAbilitiesMap, SpaceConfig, SpaceCreationContext, SpaceErrorCode, SpaceErrorCodes, SpaceInfo, SpaceOwnership, SpaceService, SpaceServiceConfig, SqlStatement, SqlValue, StoredDelegationChain, TableInfo, TinyCloud, TinyCloudConfig, TinyCloudSession, UnsupportedFeatureError, VAULT_PERMISSION_SERVICE, VaultCrypto, VaultEntry, VaultError, VaultGetOptions, VaultGrantOptions, VaultHeaders, VaultListOptions, VaultPublicSpaceKVActions, VaultPutOptions, VersionCheckError, ViewInfo, WasmVaultFunctions, addressStorageKey, buildSpaceUri, canonicalizeAddress, canonicalizeDid, canonicalizeDidUrl, canonicalizeNetworkId, canonicalizeSecretScope, checkNodeInfo, composeManifestRequest, createCapabilityKeyRegistry, createSharingService, createSpaceService, createVaultCrypto, defaultSpaceCreationHandler, didCacheKey, didEquals, expandActionShortNames, expandPermissionEntries, expandPermissionEntry, isCapabilitySubset, isEvmAddress, loadManifest, makePkhSpaceId, makePublicSpaceId, parseCanonicalNetworkId, parseExpiry, parsePkhDid, parseSpaceUri, pkhDid, principalDid, principalDidEquals, resolveManifest, resolveSecretListPrefix, resolveSecretPath, resourceCapabilitiesToSpaceAbilitiesMap, validateManifest } from '@tinycloud/sdk-core';
2
+ export { D as DelegateToOptions, a as DelegateToResult, b as DelegatedAccess, F as FileSessionStorage, M as MemorySessionStorage, N as NodeEventEmitterStrategy, c as NodeUserAuthorization, d as NodeUserAuthorizationConfig, P as PortableDelegation, e as RuntimePermissionGrantOptions, S as SignStrategy, T as TinyCloudNode, f as TinyCloudNodeConfig, W as WasmKeyProvider, g as WasmKeyProviderConfig, h as createWasmKeyProvider, i as defaultSignStrategy, j as deserializeDelegation, s as serializeDelegation } from './core-CNyXnUx9.js';
3
3
  import 'events';
4
4
  import '@tinycloud/sdk-services';
package/dist/core.js CHANGED
@@ -3,7 +3,22 @@ import { TinyCloud as TinyCloud2 } from "@tinycloud/sdk-core";
3
3
  import {
4
4
  SilentNotificationHandler as SilentNotificationHandler2,
5
5
  AutoApproveSpaceCreationHandler as AutoApproveSpaceCreationHandler2,
6
- defaultSpaceCreationHandler
6
+ defaultSpaceCreationHandler,
7
+ IdentityParseError,
8
+ addressStorageKey,
9
+ canonicalizeAddress as canonicalizeAddress3,
10
+ canonicalizeDid,
11
+ canonicalizeDidUrl,
12
+ canonicalizeNetworkId,
13
+ didCacheKey,
14
+ didEquals,
15
+ isEvmAddress,
16
+ makePkhSpaceId as makePkhSpaceId2,
17
+ parsePkhDid,
18
+ pkhDid as pkhDid3,
19
+ principalDid,
20
+ principalDidEquals as principalDidEquals2,
21
+ parseCanonicalNetworkId
7
22
  } from "@tinycloud/sdk-core";
8
23
 
9
24
  // src/storage/MemorySessionStorage.ts
@@ -210,7 +225,10 @@ import {
210
225
  resourceCapabilitiesToAbilitiesMap,
211
226
  resourceCapabilitiesToSpaceAbilitiesMap,
212
227
  resolveTinyCloudHosts,
213
- EXPIRY
228
+ EXPIRY,
229
+ canonicalizeAddress,
230
+ makePkhSpaceId,
231
+ pkhDid
214
232
  } from "@tinycloud/sdk-core";
215
233
 
216
234
  // src/authorization/strategies.ts
@@ -336,15 +354,16 @@ var NodeUserAuthorization = class {
336
354
  * expired-at-epoch-zero.
337
355
  */
338
356
  setRestoredTinyCloudSession(session) {
339
- this._tinyCloudSession = session;
340
- this._address = session.address;
357
+ const address = canonicalizeAddress(session.address);
358
+ this._tinyCloudSession = { ...session, address };
359
+ this._address = address;
341
360
  this._chainId = session.chainId;
342
361
  }
343
362
  async resolveTinyCloudHostsForSignIn(address, chainId) {
344
363
  if (this.tinycloudHosts && this.tinycloudHosts.length > 0) {
345
364
  return;
346
365
  }
347
- const subject = `did:pkh:eip155:${chainId}:${address}`;
366
+ const subject = pkhDid(address, chainId);
348
367
  const resolved = await resolveTinyCloudHosts(subject, {
349
368
  registryUrl: this.tinycloudRegistryUrl,
350
369
  fallbackHosts: this.tinycloudFallbackHosts
@@ -408,19 +427,19 @@ var NodeUserAuthorization = class {
408
427
  if (space.startsWith("tinycloud:")) {
409
428
  return space;
410
429
  }
411
- return this.wasm.makeSpaceId(address, chainId, space);
430
+ return makePkhSpaceId(address, chainId, space);
412
431
  }
413
432
  defaultEncryptionNetworkId(address, chainId) {
414
- return `urn:tinycloud:encryption:did:pkh:eip155:${chainId}:${address}:default`;
433
+ return `urn:tinycloud:encryption:${pkhDid(address, chainId)}:default`;
415
434
  }
416
435
  resolveSignInCapabilities(address, chainId) {
417
436
  const request = this.getCapabilityRequest();
418
437
  if (request === void 0) {
419
438
  const defaultNetworkId = this.defaultEncryptionNetworkId(address, chainId);
420
- const secretsSpaceId = this.wasm.makeSpaceId(address, chainId, "secrets");
439
+ const secretsSpaceId = makePkhSpaceId(address, chainId, "secrets");
421
440
  return {
422
441
  abilities: this.defaultActions,
423
- spaceId: this.wasm.makeSpaceId(address, chainId, this.spacePrefix),
442
+ spaceId: makePkhSpaceId(address, chainId, this.spacePrefix),
424
443
  spaceAbilities: {
425
444
  [secretsSpaceId]: {
426
445
  kv: {
@@ -682,9 +701,9 @@ var NodeUserAuthorization = class {
682
701
  * @param options - Optional per-call SIWE overrides for this sign-in only
683
702
  */
684
703
  async signIn(options) {
685
- this._address = await this.signer.getAddress();
704
+ this._address = canonicalizeAddress(await this.signer.getAddress());
686
705
  this._chainId = await this.signer.getChainId();
687
- const address = this.wasm.ensureEip55(this._address);
706
+ const address = this._address;
688
707
  const chainId = this._chainId;
689
708
  await this.resolveTinyCloudHostsForSignIn(address, chainId);
690
709
  const keyId = `session-${Date.now()}`;
@@ -729,7 +748,7 @@ var NodeUserAuthorization = class {
729
748
  siwe: prepared.siwe,
730
749
  signature
731
750
  };
732
- const spacesMetadata = this.enablePublicSpace ? { public: this.wasm.makeSpaceId(address, chainId, "public") } : void 0;
751
+ const spacesMetadata = this.enablePublicSpace ? { public: makePkhSpaceId(address, chainId, "public") } : void 0;
733
752
  const tinyCloudSession = {
734
753
  address,
735
754
  chainId,
@@ -804,7 +823,7 @@ var NodeUserAuthorization = class {
804
823
  */
805
824
  async signMessage(message) {
806
825
  if (!this._address) {
807
- this._address = await this.signer.getAddress();
826
+ this._address = canonicalizeAddress(await this.signer.getAddress());
808
827
  }
809
828
  if (!this._chainId) {
810
829
  this._chainId = await this.signer.getChainId();
@@ -831,7 +850,7 @@ var NodeUserAuthorization = class {
831
850
  * ```
832
851
  */
833
852
  async prepareSessionForSigning() {
834
- const address = this.wasm.ensureEip55(await this.signer.getAddress());
853
+ const address = canonicalizeAddress(await this.signer.getAddress());
835
854
  const chainId = await this.signer.getChainId();
836
855
  const keyId = `session-${Date.now()}`;
837
856
  this.sessionManager.renameSessionKeyId("default", keyId);
@@ -881,7 +900,7 @@ var NodeUserAuthorization = class {
881
900
  ...prepared,
882
901
  signature
883
902
  });
884
- const address = this.wasm.ensureEip55(await this.signer.getAddress());
903
+ const address = canonicalizeAddress(await this.signer.getAddress());
885
904
  const chainId = await this.signer.getChainId();
886
905
  await this.resolveTinyCloudHostsForSignIn(address, chainId);
887
906
  const clientSession = {
@@ -892,7 +911,7 @@ var NodeUserAuthorization = class {
892
911
  siwe: prepared.siwe,
893
912
  signature
894
913
  };
895
- const spacesMetadata = this.enablePublicSpace ? { public: this.wasm.makeSpaceId(address, chainId, "public") } : void 0;
914
+ const spacesMetadata = this.enablePublicSpace ? { public: makePkhSpaceId(address, chainId, "public") } : void 0;
896
915
  const tinyCloudSession = {
897
916
  address,
898
917
  chainId,
@@ -1046,7 +1065,10 @@ import {
1046
1065
  EXPIRY as EXPIRY3,
1047
1066
  canonicalHashHex,
1048
1067
  canonicalizeEncryptionJson,
1049
- verifyDidKeyEd25519Signature
1068
+ verifyDidKeyEd25519Signature,
1069
+ canonicalizeAddress as canonicalizeAddress2,
1070
+ pkhDid as pkhDid2,
1071
+ principalDidEquals
1050
1072
  } from "@tinycloud/sdk-core";
1051
1073
 
1052
1074
  // src/DelegatedAccess.ts
@@ -1469,6 +1491,13 @@ var NETWORK_CREATE_ACTION = "tinycloud.encryption/network.create";
1469
1491
  var DECRYPT_ACTION = "tinycloud.encryption/decrypt";
1470
1492
  var NETWORK_ADMIN_TYPE = "tinycloud.encryption.network-admin/v1";
1471
1493
  var DEFAULT_SESSION_EXPIRATION_MS = EXPIRY3.SESSION_MS;
1494
+ function didPrincipalMatches(actual, expected) {
1495
+ try {
1496
+ return principalDidEquals(actual, expected);
1497
+ } catch {
1498
+ return actual === expected;
1499
+ }
1500
+ }
1472
1501
  function base64UrlEncode(bytes) {
1473
1502
  const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
1474
1503
  let output = "";
@@ -1765,7 +1794,7 @@ var _TinyCloudNode = class _TinyCloudNode {
1765
1794
  */
1766
1795
  get did() {
1767
1796
  if (this._address) {
1768
- return `did:pkh:eip155:${this._chainId}:${this._address}`;
1797
+ return pkhDid2(this._address, this._chainId);
1769
1798
  }
1770
1799
  return this.sessionManager.getDID(this.sessionKeyId);
1771
1800
  }
@@ -1782,7 +1811,7 @@ var _TinyCloudNode = class _TinyCloudNode {
1782
1811
  * Get the Ethereum address for this user.
1783
1812
  */
1784
1813
  get address() {
1785
- return this._address;
1814
+ return this.auth?.address() ?? this._address;
1786
1815
  }
1787
1816
  /**
1788
1817
  * Check if this instance is in session-only mode (no wallet).
@@ -1820,7 +1849,7 @@ var _TinyCloudNode = class _TinyCloudNode {
1820
1849
  );
1821
1850
  }
1822
1851
  await this.wasmBindings.ensureInitialized?.();
1823
- this._address = await this.signer.getAddress();
1852
+ this._address = canonicalizeAddress2(await this.signer.getAddress());
1824
1853
  this._chainId = await this.signer.getChainId();
1825
1854
  this._kv = void 0;
1826
1855
  this._sql = void 0;
@@ -1927,8 +1956,9 @@ var _TinyCloudNode = class _TinyCloudNode {
1927
1956
  this._spaceService = void 0;
1928
1957
  this._serviceContext = void 0;
1929
1958
  this.runtimePermissionGrants = [];
1930
- if (sessionData.address) {
1931
- this._address = sessionData.address;
1959
+ const restoredAddress = sessionData.address ? canonicalizeAddress2(sessionData.address) : void 0;
1960
+ if (restoredAddress) {
1961
+ this._address = restoredAddress;
1932
1962
  }
1933
1963
  if (sessionData.chainId) {
1934
1964
  this._chainId = sessionData.chainId;
@@ -1963,9 +1993,9 @@ var _TinyCloudNode = class _TinyCloudNode {
1963
1993
  this._vault.initialize(this._serviceContext);
1964
1994
  this._serviceContext.registerService("vault", this._vault);
1965
1995
  this.initializeV2Services(serviceSession);
1966
- if (sessionData.siwe && sessionData.address && sessionData.chainId) {
1996
+ if (sessionData.siwe && restoredAddress && sessionData.chainId) {
1967
1997
  const tcSession = {
1968
- address: sessionData.address,
1998
+ address: restoredAddress,
1969
1999
  chainId: sessionData.chainId,
1970
2000
  sessionKey: JSON.stringify(sessionData.jwk),
1971
2001
  spaceId: sessionData.spaceId,
@@ -2304,8 +2334,8 @@ var _TinyCloudNode = class _TinyCloudNode {
2304
2334
  fetchByNetworkId: (networkId) => this.getEncryptionNetwork(networkId)
2305
2335
  },
2306
2336
  wellKnown: {
2307
- fetchWellKnown: async (ownerDid, discoveryKey) => {
2308
- if (!this._address || ownerDid !== this.did) {
2337
+ fetchWellKnown: async (principal, discoveryKey) => {
2338
+ if (!this._address || !didPrincipalMatches(principal, this.did)) {
2309
2339
  return null;
2310
2340
  }
2311
2341
  if (!this.config.host) {
@@ -2629,7 +2659,7 @@ var _TinyCloudNode = class _TinyCloudNode {
2629
2659
  return {
2630
2660
  cid: delegationSession.delegationCid,
2631
2661
  delegateDID: params.shareKeyDID,
2632
- delegatorDID: `did:pkh:eip155:${session.chainId}:${session.address}`,
2662
+ delegatorDID: pkhDid2(session.address, session.chainId),
2633
2663
  spaceId: params.spaceId,
2634
2664
  path: params.path,
2635
2665
  actions: params.actions,
@@ -2961,13 +2991,8 @@ var _TinyCloudNode = class _TinyCloudNode {
2961
2991
  if (delegation.expiry.getTime() <= Date.now()) {
2962
2992
  throw new SessionExpiredError(delegation.expiry);
2963
2993
  }
2964
- const expectedDids = /* @__PURE__ */ new Set([
2965
- session.verificationMethod,
2966
- this.didWithoutFragment(session.verificationMethod),
2967
- this.sessionDid,
2968
- this.didWithoutFragment(this.sessionDid)
2969
- ]);
2970
- if (!expectedDids.has(delegation.delegateDID)) {
2994
+ const expectedDids = [session.verificationMethod, this.sessionDid];
2995
+ if (!expectedDids.some((did) => didPrincipalMatches(delegation.delegateDID, did))) {
2971
2996
  throw new Error(
2972
2997
  `Runtime delegation targets ${delegation.delegateDID} but this session key is ${session.verificationMethod}.`
2973
2998
  );
@@ -3494,7 +3519,9 @@ var _TinyCloudNode = class _TinyCloudNode {
3494
3519
  "materializeDelegation requires a composed manifest request"
3495
3520
  );
3496
3521
  }
3497
- const target = request.delegationTargets.find((entry) => entry.did === did);
3522
+ const target = request.delegationTargets.find(
3523
+ (entry) => didPrincipalMatches(entry.did, did)
3524
+ );
3498
3525
  if (!target) {
3499
3526
  throw new Error(`No manifest delegation target found for DID ${did}`);
3500
3527
  }
@@ -3802,10 +3829,6 @@ var _TinyCloudNode = class _TinyCloudNode {
3802
3829
  expiresAt: delegation.expiry
3803
3830
  };
3804
3831
  }
3805
- didWithoutFragment(did) {
3806
- const fragment = did.indexOf("#");
3807
- return fragment === -1 ? did : did.slice(0, fragment);
3808
- }
3809
3832
  installRuntimeGrantFromServiceSession(delegation, session, expiresAt) {
3810
3833
  const operations = this.operationsFromDelegation(delegation);
3811
3834
  if (operations.length === 0) {
@@ -4001,7 +4024,7 @@ var _TinyCloudNode = class _TinyCloudNode {
4001
4024
  if (resolvedDelegateDID.endsWith(".eth") && this.config.ensResolver) {
4002
4025
  const address = await this.config.ensResolver.resolveAddress(resolvedDelegateDID);
4003
4026
  if (!address) throw new Error(`Could not resolve ENS name: ${resolvedDelegateDID}`);
4004
- resolvedDelegateDID = `did:pkh:eip155:1:${address}`;
4027
+ resolvedDelegateDID = pkhDid2(address, 1);
4005
4028
  }
4006
4029
  const entries = legacyParamsToPermissionEntries(
4007
4030
  params.actions,
@@ -4158,7 +4181,7 @@ var _TinyCloudNode = class _TinyCloudNode {
4158
4181
  const targetHost = delegation.host ?? this.config.host;
4159
4182
  if (this.isSessionOnly) {
4160
4183
  const myDid = this.did;
4161
- if (delegation.delegateDID !== myDid) {
4184
+ if (!didPrincipalMatches(delegation.delegateDID, myDid)) {
4162
4185
  throw new Error(
4163
4186
  `Delegation targets ${delegation.delegateDID} but this user's DID is ${myDid}. The delegation must target this user's DID.`
4164
4187
  );
@@ -4416,7 +4439,11 @@ import {
4416
4439
  PrefixedKVService
4417
4440
  } from "@tinycloud/sdk-core";
4418
4441
  import { SQLService as SQLService3, SQLAction, DatabaseHandle } from "@tinycloud/sdk-core";
4419
- import { DuckDbService as DuckDbService3, DuckDbDatabaseHandle, DuckDbAction } from "@tinycloud/sdk-core";
4442
+ import {
4443
+ DuckDbService as DuckDbService3,
4444
+ DuckDbDatabaseHandle,
4445
+ DuckDbAction
4446
+ } from "@tinycloud/sdk-core";
4420
4447
  import {
4421
4448
  DataVaultService as DataVaultService2,
4422
4449
  VaultHeaders,
@@ -4473,6 +4500,7 @@ export {
4473
4500
  DuckDbDatabaseHandle,
4474
4501
  DuckDbService3 as DuckDbService,
4475
4502
  FileSessionStorage,
4503
+ IdentityParseError,
4476
4504
  KVService3 as KVService,
4477
4505
  ManifestValidationError,
4478
4506
  MemorySessionStorage,
@@ -4499,7 +4527,12 @@ export {
4499
4527
  VaultPublicSpaceKVActions,
4500
4528
  VersionCheckError,
4501
4529
  WasmKeyProvider,
4530
+ addressStorageKey,
4502
4531
  buildSpaceUri,
4532
+ canonicalizeAddress3 as canonicalizeAddress,
4533
+ canonicalizeDid,
4534
+ canonicalizeDidUrl,
4535
+ canonicalizeNetworkId,
4503
4536
  canonicalizeSecretScope,
4504
4537
  checkNodeInfo2 as checkNodeInfo,
4505
4538
  composeManifestRequest2 as composeManifestRequest,
@@ -4511,14 +4544,23 @@ export {
4511
4544
  defaultSignStrategy,
4512
4545
  defaultSpaceCreationHandler,
4513
4546
  deserializeDelegation,
4547
+ didCacheKey,
4548
+ didEquals,
4514
4549
  expandActionShortNames,
4515
4550
  expandPermissionEntries2 as expandPermissionEntries,
4516
4551
  expandPermissionEntry,
4517
4552
  isCapabilitySubset2 as isCapabilitySubset,
4553
+ isEvmAddress,
4518
4554
  loadManifest,
4555
+ makePkhSpaceId2 as makePkhSpaceId,
4519
4556
  makePublicSpaceId2 as makePublicSpaceId,
4557
+ parseCanonicalNetworkId,
4520
4558
  parseExpiry2 as parseExpiry,
4559
+ parsePkhDid,
4521
4560
  parseSpaceUri,
4561
+ pkhDid3 as pkhDid,
4562
+ principalDid,
4563
+ principalDidEquals2 as principalDidEquals,
4522
4564
  resolveManifest2 as resolveManifest,
4523
4565
  resolveSecretListPrefix2 as resolveSecretListPrefix,
4524
4566
  resolveSecretPath2 as resolveSecretPath,