@tinycloud/node-sdk 3.6.0-beta.4 → 3.6.0-beta.6

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.js CHANGED
@@ -2750,7 +2750,7 @@ import {
2750
2750
  KV as KV3,
2751
2751
  SQL as SQL2,
2752
2752
  DUCKDB as DUCKDB2,
2753
- ENCRYPTION as ENCRYPTION3,
2753
+ ENCRYPTION as ENCRYPTION2,
2754
2754
  EXPIRY as EXPIRY3,
2755
2755
  canonicalHashHex,
2756
2756
  canonicalizeEncryptionJson,
@@ -2762,7 +2762,7 @@ import {
2762
2762
  createInMemoryRegistrySequenceStore as createInMemoryRegistrySequenceStore2,
2763
2763
  publishLocationRecord,
2764
2764
  principalDidEquals as principalDidEquals3,
2765
- parseNetworkId as parseNetworkId3,
2765
+ parseNetworkId as parseNetworkId2,
2766
2766
  resolveSecretPath as resolveSecretPath2,
2767
2767
  registerPolicyV3,
2768
2768
  CREDENTIAL_INVITATION_REQUEST_DOMAIN,
@@ -2976,11 +2976,7 @@ function createWasmKeyProvider(sessionManager) {
2976
2976
 
2977
2977
  // src/delegateToHelpers.ts
2978
2978
  import {
2979
- actionContains,
2980
- ENCRYPTION as ENCRYPTION2,
2981
2979
  parseExpiry,
2982
- isNetworkId,
2983
- parseNetworkId as parseNetworkId2,
2984
2980
  SiweMessage as SiweMessage2,
2985
2981
  EXPIRY as EXPIRY2
2986
2982
  } from "@tinycloud/sdk-core";
@@ -3015,16 +3011,6 @@ function legacyParamsToPermissionEntries(actions, path, spaceIdOverride) {
3015
3011
  return entries;
3016
3012
  }
3017
3013
  var DEFAULT_DELEGATION_EXPIRY_MS = EXPIRY2.SESSION_MS;
3018
- var SHARE_NETWORK_NAME_RE = /^share-[a-z0-9][a-z0-9-]{15,35}$/;
3019
- function grantsCappedDecrypt(path, actions) {
3020
- if (!actions.some((action) => actionContains(action, ENCRYPTION2.DECRYPT))) {
3021
- return false;
3022
- }
3023
- return !(isNetworkId(path) && SHARE_NETWORK_NAME_RE.test(parseNetworkId2(path).name));
3024
- }
3025
- function includesDecrypt(entries) {
3026
- return entries.some((entry) => grantsCappedDecrypt(entry.path, entry.actions));
3027
- }
3028
3014
  function resolveExpiryMs(expiry) {
3029
3015
  if (expiry === void 0) {
3030
3016
  return DEFAULT_DELEGATION_EXPIRY_MS;
@@ -3214,8 +3200,7 @@ var NodeSecretsService = class {
3214
3200
  );
3215
3201
  }
3216
3202
  try {
3217
- const grant = action === "get" && this.config.grantGetPermissions !== void 0 ? this.config.grantGetPermissions : this.config.grantPermissions;
3218
- await grant(escalation);
3203
+ await this.config.grantPermissions(escalation);
3219
3204
  return this.restoreUnlockAfterEscalation();
3220
3205
  } catch (error) {
3221
3206
  return this.escalationError(action, target, error);
@@ -3262,8 +3247,8 @@ var NodeSecretsService = class {
3262
3247
  // src/TinyCloudNode.ts
3263
3248
  var DEFAULT_HOST = "https://node.tinycloud.xyz";
3264
3249
  var DEFAULT_ENCRYPTION_NETWORK_NAME = "default";
3265
- var NETWORK_CREATE_ACTION2 = ENCRYPTION3.NETWORK_CREATE;
3266
- var DECRYPT_ACTION2 = ENCRYPTION3.DECRYPT;
3250
+ var NETWORK_CREATE_ACTION2 = ENCRYPTION2.NETWORK_CREATE;
3251
+ var DECRYPT_ACTION2 = ENCRYPTION2.DECRYPT;
3267
3252
  var BOOTSTRAP_COMPLETION_MARKER_KEY = "system/bootstrap/complete";
3268
3253
  var BOOTSTRAP_COMPLETION_MARKER_VERSION = 1;
3269
3254
  var ACCEPTED_MARKER_VERSIONS = [BOOTSTRAP_COMPLETION_MARKER_VERSION];
@@ -3610,7 +3595,7 @@ function ownerDelegationPermissions(params) {
3610
3595
  }
3611
3596
  if (permission.service === ENCRYPTION_PERMISSION_SERVICE2) {
3612
3597
  try {
3613
- parseNetworkId3(permission.path);
3598
+ parseNetworkId2(permission.path);
3614
3599
  } catch {
3615
3600
  throw new Error("Owner delegation encryption permission requires a canonical network URN");
3616
3601
  }
@@ -3633,8 +3618,6 @@ function ownerPermissionsToAbilities(permissions) {
3633
3618
  return { abilities, rawAbilities };
3634
3619
  }
3635
3620
  var TERMINAL_DELEGATION_REQUIRES_SESSION_KEY = "disableSubDelegation requires a session-key delegation to a did:key (not did:pkh); use the session-key DID or drop the flag";
3636
- var DECRYPT_GRANT_MAX_EXPIRY_MS = 60 * 60 * 1e3;
3637
- var SECRET_GET_GRANT_EXPIRY_MS = 59 * 60 * 1e3;
3638
3621
  function base64UrlEncode(bytes) {
3639
3622
  const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
3640
3623
  let output = "";
@@ -5543,7 +5526,7 @@ var _TinyCloudNode = class _TinyCloudNode {
5543
5526
  return;
5544
5527
  }
5545
5528
  for (const networkId of this.requestedEncryptionNetworkIds()) {
5546
- const parsed = parseNetworkId3(networkId);
5529
+ const parsed = parseNetworkId2(networkId);
5547
5530
  if (!didPrincipalMatches2(parsed.ownerDid, this.did)) {
5548
5531
  continue;
5549
5532
  }
@@ -7362,7 +7345,7 @@ var _TinyCloudNode = class _TinyCloudNode {
7362
7345
  if (!session) throw new Error("Owner session is required");
7363
7346
  const ownerDid = pkhDid2(session.address, session.chainId);
7364
7347
  for (const permission of permissions) {
7365
- if (permission.service === ENCRYPTION_PERMISSION_SERVICE2 && !principalDidEquals3(parseNetworkId3(permission.path).ownerDid, ownerDid)) {
7348
+ if (permission.service === ENCRYPTION_PERMISSION_SERVICE2 && !principalDidEquals3(parseNetworkId2(permission.path).ownerDid, ownerDid)) {
7366
7349
  throw new Error("Owner delegation cannot grant a foreign encryption network");
7367
7350
  }
7368
7351
  }
@@ -7724,7 +7707,7 @@ var _TinyCloudNode = class _TinyCloudNode {
7724
7707
  return existing;
7725
7708
  }
7726
7709
  }
7727
- const parsed = parseNetworkId3(networkId);
7710
+ const parsed = parseNetworkId2(networkId);
7728
7711
  if (!didPrincipalMatches2(parsed.ownerDid, this.did)) {
7729
7712
  throw new Error(
7730
7713
  `Cannot create encryption network ${networkId}: owner ${parsed.ownerDid} does not match signed-in DID ${this.did}`
@@ -7757,7 +7740,6 @@ var _TinyCloudNode = class _TinyCloudNode {
7757
7740
  getManifest: () => this.manifest,
7758
7741
  hasPermissions: (permissions) => this.hasRuntimePermissions(permissions),
7759
7742
  grantPermissions: (additional) => this.grantRuntimePermissions(additional),
7760
- grantGetPermissions: (additional) => this.grantRuntimePermissions(additional, { expiry: SECRET_GET_GRANT_EXPIRY_MS }),
7761
7743
  uncoveredEntries: (permissions) => permissions.filter((entry) => !this.hasRuntimePermissions([entry])),
7762
7744
  canEscalate: () => this.signer !== void 0 && this.tc !== void 0,
7763
7745
  getEncryptionNetworkId: () => this.getEncryptionNetworkIdForSpace(resolvedSpace),
@@ -8106,13 +8088,6 @@ var _TinyCloudNode = class _TinyCloudNode {
8106
8088
  }
8107
8089
  }
8108
8090
  const expanded = this.expandPermissionEntries(permissions);
8109
- const requestsDecrypt = includesDecrypt(expanded);
8110
- const requestedExpiryMs = requestsDecrypt && options?.expiry === void 0 ? DECRYPT_GRANT_MAX_EXPIRY_MS : resolveExpiryMs(options?.expiry);
8111
- if (requestsDecrypt && requestedExpiryMs > DECRYPT_GRANT_MAX_EXPIRY_MS) {
8112
- throw Object.assign(new Error("decrypt grants last at most one hour"), {
8113
- code: "DECRYPT_EXPIRY_TOO_LONG"
8114
- });
8115
- }
8116
8091
  if (this.sessionCoversPermissionEntries(session, expanded)) {
8117
8092
  return [];
8118
8093
  }
@@ -8143,6 +8118,7 @@ var _TinyCloudNode = class _TinyCloudNode {
8143
8118
  bySpace.set(session.spaceId, []);
8144
8119
  }
8145
8120
  const now = /* @__PURE__ */ new Date();
8121
+ const requestedExpiryMs = resolveExpiryMs(options?.expiry);
8146
8122
  let expiresAt = new Date(now.getTime() + requestedExpiryMs);
8147
8123
  if (sessionExpiry !== void 0 && sessionExpiry < expiresAt) {
8148
8124
  expiresAt = sessionExpiry;