@tinycloud/sdk-core 3.8.0-beta.14 → 3.8.0-beta.16
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/{credential-admission-Cg1M9uyV.d.cts → credential-admission-B7_F6Yb3.d.cts} +1 -0
- package/dist/{credential-admission-7I_ymo-C.d.ts → credential-admission-DCJhDFFv.d.ts} +1 -0
- package/dist/delegations/index.cjs +11 -8
- package/dist/delegations/index.cjs.map +1 -1
- package/dist/delegations/index.js +3 -0
- package/dist/delegations/index.js.map +1 -1
- package/dist/index.cjs +319 -289
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +42 -12
- package/dist/index.js.map +1 -1
- package/dist/policy/index.cjs +4 -6
- package/dist/policy/index.cjs.map +1 -1
- package/dist/policy/index.d.cts +2 -2
- package/dist/policy/index.d.ts +2 -2
- package/dist/policy/index.js +4 -6
- package/dist/policy/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -74,13 +74,13 @@ __export(index_exports, {
|
|
|
74
74
|
ClientSessionSchema: () => ClientSessionSchema,
|
|
75
75
|
CloudLocationResolutionError: () => CloudLocationResolutionError,
|
|
76
76
|
CredentialError: () => CredentialError,
|
|
77
|
-
DECRYPT_ACTION: () =>
|
|
78
|
-
DECRYPT_FACT_TYPE: () =>
|
|
79
|
-
DECRYPT_RESULT_TYPE: () =>
|
|
77
|
+
DECRYPT_ACTION: () => import_sdk_services10.DECRYPT_ACTION,
|
|
78
|
+
DECRYPT_FACT_TYPE: () => import_sdk_services10.DECRYPT_FACT_TYPE,
|
|
79
|
+
DECRYPT_RESULT_TYPE: () => import_sdk_services10.DECRYPT_RESULT_TYPE,
|
|
80
80
|
DEFAULT_DEFAULTS: () => DEFAULT_DEFAULTS,
|
|
81
|
-
DEFAULT_ENCRYPTION_ALG: () =>
|
|
81
|
+
DEFAULT_ENCRYPTION_ALG: () => import_sdk_services10.DEFAULT_ENCRYPTION_ALG,
|
|
82
82
|
DEFAULT_EXPIRY: () => DEFAULT_EXPIRY,
|
|
83
|
-
DEFAULT_KEY_VERSION: () =>
|
|
83
|
+
DEFAULT_KEY_VERSION: () => import_sdk_services10.DEFAULT_KEY_VERSION,
|
|
84
84
|
DEFAULT_KNOWLEDGE_ROOT: () => DEFAULT_KNOWLEDGE_ROOT,
|
|
85
85
|
DEFAULT_LOCAL_NODE_PIN_STORAGE_KEY: () => DEFAULT_LOCAL_NODE_PIN_STORAGE_KEY,
|
|
86
86
|
DEFAULT_LOCAL_NODE_URL: () => DEFAULT_LOCAL_NODE_URL,
|
|
@@ -95,36 +95,36 @@ __export(index_exports, {
|
|
|
95
95
|
DEFAULT_TINYCLOUD_LOCATION_REGISTRY_URL: () => DEFAULT_TINYCLOUD_LOCATION_REGISTRY_URL,
|
|
96
96
|
DELIVERY_ADMISSION_DOMAIN: () => DELIVERY_ADMISSION_DOMAIN,
|
|
97
97
|
DUCKDB: () => import_bootstrap4.DUCKDB,
|
|
98
|
-
DataVaultService: () =>
|
|
99
|
-
DatabaseHandle: () =>
|
|
100
|
-
DecryptTransportResponseError: () =>
|
|
98
|
+
DataVaultService: () => import_sdk_services10.DataVaultService,
|
|
99
|
+
DatabaseHandle: () => import_sdk_services10.DatabaseHandle,
|
|
100
|
+
DecryptTransportResponseError: () => import_sdk_services10.DecryptTransportResponseError,
|
|
101
101
|
DelegationErrorCodes: () => DelegationErrorCodes,
|
|
102
102
|
DelegationManager: () => DelegationManager,
|
|
103
|
-
DuckDbAction: () =>
|
|
104
|
-
DuckDbDatabaseHandle: () =>
|
|
105
|
-
DuckDbService: () =>
|
|
103
|
+
DuckDbAction: () => import_sdk_services10.DuckDbAction,
|
|
104
|
+
DuckDbDatabaseHandle: () => import_sdk_services10.DuckDbDatabaseHandle,
|
|
105
|
+
DuckDbService: () => import_sdk_services10.DuckDbService,
|
|
106
106
|
ED25519_JCS_SIGNATURE_SUITE: () => ED25519_JCS_SIGNATURE_SUITE,
|
|
107
107
|
EIP191_JCS_SIGNATURE_SUITE: () => EIP191_JCS_SIGNATURE_SUITE,
|
|
108
108
|
EMAIL_CREDENTIAL_MAX_AGE_SECONDS: () => EMAIL_CREDENTIAL_MAX_AGE_SECONDS,
|
|
109
109
|
EMAIL_DOMAIN_CREDENTIAL_MAX_AGE_SECONDS: () => EMAIL_DOMAIN_CREDENTIAL_MAX_AGE_SECONDS,
|
|
110
110
|
ENCRYPTION: () => import_bootstrap4.ENCRYPTION,
|
|
111
111
|
ENCRYPTION_MANIFEST_SPACE: () => ENCRYPTION_MANIFEST_SPACE,
|
|
112
|
-
ENCRYPTION_NETWORK_URN_PREFIX: () =>
|
|
112
|
+
ENCRYPTION_NETWORK_URN_PREFIX: () => import_sdk_services10.ENCRYPTION_NETWORK_URN_PREFIX,
|
|
113
113
|
ENCRYPTION_PERMISSION_SERVICE: () => ENCRYPTION_PERMISSION_SERVICE,
|
|
114
|
-
ENCRYPTION_SERVICE: () =>
|
|
115
|
-
ENCRYPTION_SERVICE_SHORT: () =>
|
|
116
|
-
ENVELOPE_VERSION: () =>
|
|
114
|
+
ENCRYPTION_SERVICE: () => import_sdk_services10.ENCRYPTION_SERVICE,
|
|
115
|
+
ENCRYPTION_SERVICE_SHORT: () => import_sdk_services10.ENCRYPTION_SERVICE_SHORT,
|
|
116
|
+
ENVELOPE_VERSION: () => import_sdk_services10.ENVELOPE_VERSION,
|
|
117
117
|
EXPIRY: () => EXPIRY,
|
|
118
|
-
EncryptionService: () =>
|
|
118
|
+
EncryptionService: () => import_sdk_services10.EncryptionService,
|
|
119
119
|
EnsDataSchema: () => EnsDataSchema,
|
|
120
|
-
ErrorCodes: () =>
|
|
120
|
+
ErrorCodes: () => import_sdk_services10.ErrorCodes,
|
|
121
121
|
HOLDER_BINDING_DOMAIN: () => HOLDER_BINDING_DOMAIN,
|
|
122
122
|
HOLDER_KEY_BINDING_PRESENTATION_SCHEMA: () => HOLDER_KEY_BINDING_PRESENTATION_SCHEMA,
|
|
123
123
|
HOOKS: () => import_bootstrap4.HOOKS,
|
|
124
|
-
HooksService: () =>
|
|
124
|
+
HooksService: () => import_sdk_services10.HooksService,
|
|
125
125
|
IdentityParseError: () => IdentityParseError,
|
|
126
126
|
KV: () => import_bootstrap4.KV,
|
|
127
|
-
KVService: () =>
|
|
127
|
+
KVService: () => import_sdk_services10.KVService,
|
|
128
128
|
LAST_V2_CREATE_AT: () => LAST_V2_CREATE_AT,
|
|
129
129
|
LAST_V2_READ_AT: () => LAST_V2_READ_AT,
|
|
130
130
|
LISTEN_SQL_STATEMENT_CATALOG: () => LISTEN_SQL_STATEMENT_CATALOG,
|
|
@@ -136,7 +136,7 @@ __export(index_exports, {
|
|
|
136
136
|
MAX_CONTENT_BYTES: () => MAX_CONTENT_BYTES,
|
|
137
137
|
MAX_LEGACY_ENVELOPE_EXPIRES_AT: () => MAX_LEGACY_ENVELOPE_EXPIRES_AT,
|
|
138
138
|
MAX_SEALED_SHARE_CONTENT_BYTES: () => MAX_SEALED_SHARE_CONTENT_BYTES,
|
|
139
|
-
MAX_SECRET_SCOPE_LENGTH: () =>
|
|
139
|
+
MAX_SECRET_SCOPE_LENGTH: () => import_sdk_services10.MAX_SECRET_SCOPE_LENGTH,
|
|
140
140
|
MAX_SHARE_ARTIFACT_BYTES: () => MAX_SHARE_ARTIFACT_BYTES,
|
|
141
141
|
MAX_SHARE_CONTENT_BYTES: () => MAX_SHARE_CONTENT_BYTES,
|
|
142
142
|
ManifestValidationError: () => ManifestValidationError,
|
|
@@ -144,8 +144,8 @@ __export(index_exports, {
|
|
|
144
144
|
MemorySenderShareRecordStorage: () => MemorySenderShareRecordStorage,
|
|
145
145
|
MemoryShareCache: () => MemoryShareCache,
|
|
146
146
|
NATIVE_PROJECTION_V1_DOMAIN: () => NATIVE_PROJECTION_V1_DOMAIN,
|
|
147
|
-
NETWORK_NAME_PATTERN: () =>
|
|
148
|
-
NetworkIdError: () =>
|
|
147
|
+
NETWORK_NAME_PATTERN: () => import_sdk_services10.NETWORK_NAME_PATTERN,
|
|
148
|
+
NetworkIdError: () => import_sdk_services10.NetworkIdError,
|
|
149
149
|
NodeNotFoundError: () => NodeNotFoundError,
|
|
150
150
|
NodeRegistryEntryExistsError: () => NodeRegistryEntryExistsError,
|
|
151
151
|
OPENKEY_ACTION_ID_SEPARATOR: () => OPENKEY_ACTION_ID_SEPARATOR,
|
|
@@ -174,7 +174,7 @@ __export(index_exports, {
|
|
|
174
174
|
POLICY_V2_SCHEMA: () => POLICY_V2_SCHEMA,
|
|
175
175
|
PORTABLE_DELEGATION_SCHEMA: () => PORTABLE_DELEGATION_SCHEMA,
|
|
176
176
|
PermissionNotInManifestError: () => PermissionNotInManifestError,
|
|
177
|
-
PrefixedKVService: () =>
|
|
177
|
+
PrefixedKVService: () => import_sdk_services10.PrefixedKVService,
|
|
178
178
|
ProtocolMismatchError: () => ProtocolMismatchError,
|
|
179
179
|
REGISTRY_LOOKUP_MAX_BODY_BYTES: () => REGISTRY_LOOKUP_MAX_BODY_BYTES,
|
|
180
180
|
REGISTRY_NOT_FOUND_BODY: () => REGISTRY_NOT_FOUND_BODY,
|
|
@@ -189,22 +189,22 @@ __export(index_exports, {
|
|
|
189
189
|
RegistryLookupInputError: () => RegistryLookupInputError,
|
|
190
190
|
RegistryUnavailableError: () => RegistryUnavailableError,
|
|
191
191
|
SECRETS_SPACE: () => SECRETS_SPACE,
|
|
192
|
-
SECRET_NAME_RE: () =>
|
|
192
|
+
SECRET_NAME_RE: () => import_sdk_services10.SECRET_NAME_RE,
|
|
193
193
|
SECRET_RECORDS_SCHEMA: () => import_bootstrap4.SECRET_RECORDS_SCHEMA,
|
|
194
|
-
SECRET_SCOPE_RE: () =>
|
|
194
|
+
SECRET_SCOPE_RE: () => import_sdk_services10.SECRET_SCOPE_RE,
|
|
195
195
|
SERVICE_LONG_TO_SHORT: () => SERVICE_LONG_TO_SHORT,
|
|
196
196
|
SERVICE_SHORT_TO_LONG: () => SERVICE_SHORT_TO_LONG,
|
|
197
197
|
SPACE: () => import_bootstrap4.SPACE,
|
|
198
198
|
SQL: () => import_bootstrap4.SQL,
|
|
199
|
-
SQLAction: () =>
|
|
200
|
-
SQLService: () =>
|
|
201
|
-
STORAGE_FULL_MESSAGE: () =>
|
|
202
|
-
STORAGE_MANAGE_URL: () =>
|
|
203
|
-
STORAGE_NEARLY_FULL_RATIO: () =>
|
|
204
|
-
STORAGE_WRITE_TOO_LARGE_MESSAGE: () =>
|
|
205
|
-
SecretsService: () =>
|
|
199
|
+
SQLAction: () => import_sdk_services10.SQLAction,
|
|
200
|
+
SQLService: () => import_sdk_services10.SQLService,
|
|
201
|
+
STORAGE_FULL_MESSAGE: () => import_sdk_services10.STORAGE_FULL_MESSAGE,
|
|
202
|
+
STORAGE_MANAGE_URL: () => import_sdk_services10.STORAGE_MANAGE_URL,
|
|
203
|
+
STORAGE_NEARLY_FULL_RATIO: () => import_sdk_services10.STORAGE_NEARLY_FULL_RATIO,
|
|
204
|
+
STORAGE_WRITE_TOO_LARGE_MESSAGE: () => import_sdk_services10.STORAGE_WRITE_TOO_LARGE_MESSAGE,
|
|
205
|
+
SecretsService: () => import_sdk_services10.SecretsService,
|
|
206
206
|
SenderShareStore: () => SenderShareStore,
|
|
207
|
-
ServiceContext: () =>
|
|
207
|
+
ServiceContext: () => import_sdk_services10.ServiceContext,
|
|
208
208
|
SessionExpiredError: () => SessionExpiredError,
|
|
209
209
|
ShareAccessError: () => ShareAccessError,
|
|
210
210
|
ShareAddressedDelegationEnvelopeV2Schema: () => ShareAddressedDelegationEnvelopeV2Schema,
|
|
@@ -230,8 +230,8 @@ __export(index_exports, {
|
|
|
230
230
|
Space: () => Space,
|
|
231
231
|
SpaceErrorCodes: () => SpaceErrorCodes,
|
|
232
232
|
SpaceService: () => SpaceService,
|
|
233
|
-
StorageFullMonitor: () =>
|
|
234
|
-
TC832_RESERVED_SCOPES: () =>
|
|
233
|
+
StorageFullMonitor: () => import_sdk_services10.StorageFullMonitor,
|
|
234
|
+
TC832_RESERVED_SCOPES: () => import_sdk_services10.TC832_RESERVED_SCOPES,
|
|
235
235
|
TERMINAL_DELEGATION_FACT: () => TERMINAL_DELEGATION_FACT,
|
|
236
236
|
TINYCLOUD_ACCOUNT_SPACE_MANIFEST: () => import_bootstrap4.TINYCLOUD_ACCOUNT_SPACE_MANIFEST,
|
|
237
237
|
TINYCLOUD_AGENTS_SPACE_MANIFEST: () => import_bootstrap4.TINYCLOUD_AGENTS_SPACE_MANIFEST,
|
|
@@ -242,55 +242,55 @@ __export(index_exports, {
|
|
|
242
242
|
TINYCLOUD_PUBLIC_SPACE_MANIFEST: () => import_bootstrap4.TINYCLOUD_PUBLIC_SPACE_MANIFEST,
|
|
243
243
|
TINYCLOUD_SECRETS_BOOTSTRAP_MANIFEST: () => import_bootstrap4.TINYCLOUD_SECRETS_BOOTSTRAP_MANIFEST,
|
|
244
244
|
TinyCloud: () => TinyCloud,
|
|
245
|
-
TinyCloudDebugLogger: () =>
|
|
245
|
+
TinyCloudDebugLogger: () => import_sdk_services10.TinyCloudDebugLogger,
|
|
246
246
|
TranscriptRequester: () => TranscriptRequester,
|
|
247
247
|
TranscriptRequesterError: () => TranscriptRequesterError,
|
|
248
248
|
UnsupportedFeatureError: () => UnsupportedFeatureError,
|
|
249
249
|
UnsupportedSignatureSuiteError: () => UnsupportedSignatureSuiteError,
|
|
250
250
|
VAULT_PERMISSION_SERVICE: () => VAULT_PERMISSION_SERVICE,
|
|
251
|
-
VaultHeaders: () =>
|
|
252
|
-
VaultPublicSpaceKVActions: () =>
|
|
251
|
+
VaultHeaders: () => import_sdk_services10.VaultHeaders,
|
|
252
|
+
VaultPublicSpaceKVActions: () => import_sdk_services10.VaultPublicSpaceKVActions,
|
|
253
253
|
VersionCheckError: () => VersionCheckError,
|
|
254
254
|
actionContains: () => actionContains,
|
|
255
255
|
activateSessionWithHost: () => activateSessionWithHost,
|
|
256
256
|
addressStorageKey: () => addressStorageKey,
|
|
257
257
|
admitPolicyCredentialV3: () => admitPolicyCredentialV3,
|
|
258
258
|
admitPolicyCredentialV4: () => admitPolicyCredentialV4,
|
|
259
|
-
appSecretScope: () =>
|
|
259
|
+
appSecretScope: () => import_sdk_services10.appSecretScope,
|
|
260
260
|
applyPrefix: () => applyPrefix,
|
|
261
261
|
assertSpaceCreationAllowed: () => assertSpaceCreationAllowed,
|
|
262
|
-
authorizationVerdictOf: () =>
|
|
262
|
+
authorizationVerdictOf: () => import_sdk_services10.authorizationVerdictOf,
|
|
263
263
|
bootstrapEncryptionNetworkId: () => import_bootstrap4.bootstrapEncryptionNetworkId,
|
|
264
264
|
bootstrapSpaceId: () => import_bootstrap4.bootstrapSpaceId,
|
|
265
265
|
bootstrapSteps: () => import_bootstrap4.bootstrapSteps,
|
|
266
|
-
buildCanonicalDecryptRequest: () =>
|
|
267
|
-
buildDecryptAttenuation: () =>
|
|
268
|
-
buildDecryptFacts: () =>
|
|
269
|
-
buildDecryptInvocation: () =>
|
|
270
|
-
buildNetworkId: () =>
|
|
266
|
+
buildCanonicalDecryptRequest: () => import_sdk_services10.buildCanonicalDecryptRequest,
|
|
267
|
+
buildDecryptAttenuation: () => import_sdk_services10.buildDecryptAttenuation,
|
|
268
|
+
buildDecryptFacts: () => import_sdk_services10.buildDecryptFacts,
|
|
269
|
+
buildDecryptInvocation: () => import_sdk_services10.buildDecryptInvocation,
|
|
270
|
+
buildNetworkId: () => import_sdk_services10.buildNetworkId,
|
|
271
271
|
buildPolicyCredentialPresentationV3: () => buildPolicyCredentialPresentationV3,
|
|
272
272
|
buildPolicyCredentialPresentationV4: () => buildPolicyCredentialPresentationV4,
|
|
273
273
|
buildSpaceUri: () => buildSpaceUri,
|
|
274
274
|
canonicalDigest: () => canonicalDigest,
|
|
275
275
|
canonicalEmailDomain: () => import_share_envelope.canonicalEmailDomain,
|
|
276
|
-
canonicalHashHex: () =>
|
|
276
|
+
canonicalHashHex: () => import_sdk_services10.canonicalHashHex,
|
|
277
277
|
canonicalLocationPayload: () => canonicalLocationPayload,
|
|
278
278
|
canonicalMailbox: () => import_share_envelope.canonicalMailbox,
|
|
279
279
|
canonicalOwnerSharePolicy: () => canonicalOwnerSharePolicy,
|
|
280
|
-
canonicalSignedResponse: () =>
|
|
280
|
+
canonicalSignedResponse: () => import_sdk_services10.canonicalSignedResponse,
|
|
281
281
|
canonicalizeAddress: () => canonicalizeAddress,
|
|
282
282
|
canonicalizeDid: () => canonicalizeDid,
|
|
283
283
|
canonicalizeDidUrl: () => canonicalizeDidUrl,
|
|
284
|
-
canonicalizeEncryptionJson: () =>
|
|
284
|
+
canonicalizeEncryptionJson: () => import_sdk_services10.canonicalizeEncryptionJson,
|
|
285
285
|
canonicalizeNetworkId: () => canonicalizeNetworkId,
|
|
286
286
|
canonicalizeRecapCaveats: () => canonicalizeRecapCaveats,
|
|
287
|
-
canonicalizeSecretScope: () =>
|
|
287
|
+
canonicalizeSecretScope: () => import_sdk_services10.canonicalizeSecretScope,
|
|
288
288
|
canonicalizeSignedObjectUnsigned: () => canonicalizeSignedObjectUnsigned,
|
|
289
289
|
canonicalizeUnifiedPolicyCapability: () => canonicalizeUnifiedPolicyCapability,
|
|
290
|
-
checkDecryptInvocationInput: () =>
|
|
290
|
+
checkDecryptInvocationInput: () => import_sdk_services10.checkDecryptInvocationInput,
|
|
291
291
|
checkNodeInfo: () => checkNodeInfo,
|
|
292
292
|
classifyRegistryLookup: () => classifyRegistryLookup,
|
|
293
|
-
clearTinyCloudDebugLogs: () =>
|
|
293
|
+
clearTinyCloudDebugLogs: () => import_sdk_services10.clearTinyCloudDebugLogs,
|
|
294
294
|
compactAttenuationContains: () => compactAttenuationContains,
|
|
295
295
|
composeBootstrapSpaceManifest: () => import_bootstrap4.composeBootstrapSpaceManifest,
|
|
296
296
|
composeManifestRequest: () => composeManifestRequest,
|
|
@@ -321,7 +321,7 @@ __export(index_exports, {
|
|
|
321
321
|
createStorageReceipt: () => createStorageReceipt,
|
|
322
322
|
createStoredCredentialRecord: () => createStoredCredentialRecord,
|
|
323
323
|
createTranscriptRequester: () => createTranscriptRequester,
|
|
324
|
-
createVaultCrypto: () =>
|
|
324
|
+
createVaultCrypto: () => import_sdk_services10.createVaultCrypto,
|
|
325
325
|
credentialEndpointPath: () => credentialEndpointPath,
|
|
326
326
|
credentialError: () => credentialError,
|
|
327
327
|
credentialIndexKey: () => credentialIndexKey,
|
|
@@ -329,65 +329,66 @@ __export(index_exports, {
|
|
|
329
329
|
credentialRecordKey: () => credentialRecordKey,
|
|
330
330
|
credentialRequirementDigest: () => credentialRequirementDigest,
|
|
331
331
|
decodeBase64Url: () => decodeBase64Url,
|
|
332
|
-
decryptEnvelopeWithKey: () =>
|
|
332
|
+
decryptEnvelopeWithKey: () => import_sdk_services10.decryptEnvelopeWithKey,
|
|
333
333
|
decryptShareBytesAsync: () => decryptShareBytesAsync,
|
|
334
|
-
defaultRetryPolicy: () =>
|
|
334
|
+
defaultRetryPolicy: () => import_sdk_services10.defaultRetryPolicy,
|
|
335
335
|
defaultSignStrategy: () => defaultSignStrategy,
|
|
336
336
|
defaultSpaceCreationHandler: () => defaultSpaceCreationHandler,
|
|
337
337
|
delegatePortablePolicySession: () => delegatePortablePolicySession,
|
|
338
338
|
deriveDelegationCid: () => deriveDelegationCid,
|
|
339
339
|
deriveSignedObjectMaterial: () => deriveSignedObjectMaterial,
|
|
340
|
-
deriveSignedReceiverKey: () =>
|
|
340
|
+
deriveSignedReceiverKey: () => import_sdk_services10.deriveSignedReceiverKey,
|
|
341
341
|
descriptorSatisfiesRequirement: () => descriptorSatisfiesRequirement,
|
|
342
342
|
didCacheKey: () => didCacheKey,
|
|
343
343
|
didEquals: () => didEquals,
|
|
344
344
|
diffImmutableSiweFields: () => diffImmutableSiweFields,
|
|
345
|
-
disableTinyCloudDebug: () =>
|
|
345
|
+
disableTinyCloudDebug: () => import_sdk_services10.disableTinyCloudDebug,
|
|
346
346
|
discoverLocalTinyCloudNode: () => discoverLocalTinyCloudNode,
|
|
347
|
-
discoverNetwork: () =>
|
|
348
|
-
enableTinyCloudDebug: () =>
|
|
347
|
+
discoverNetwork: () => import_sdk_services10.discoverNetwork,
|
|
348
|
+
enableTinyCloudDebug: () => import_sdk_services10.enableTinyCloudDebug,
|
|
349
349
|
encodeBase64Url: () => encodeBase64Url,
|
|
350
350
|
encodeInlineShareUrl: () => encodeInlineShareUrl,
|
|
351
351
|
encodeShareArtifact: () => encodeShareArtifact,
|
|
352
352
|
encodeShareUrl: () => encodeShareUrl,
|
|
353
353
|
encryptShareBytes: () => encryptShareBytes,
|
|
354
354
|
encryptShareBytesAsync: () => encryptShareBytesAsync,
|
|
355
|
-
encryptToNetwork: () =>
|
|
356
|
-
encryptionBase64Decode: () =>
|
|
357
|
-
encryptionBase64Encode: () =>
|
|
358
|
-
encryptionError: () =>
|
|
359
|
-
encryptionUtf8Decode: () =>
|
|
360
|
-
encryptionUtf8Encode: () =>
|
|
361
|
-
ensureNetworkUsableForDecrypt: () =>
|
|
362
|
-
err: () =>
|
|
355
|
+
encryptToNetwork: () => import_sdk_services10.encryptToNetwork,
|
|
356
|
+
encryptionBase64Decode: () => import_sdk_services10.base64Decode,
|
|
357
|
+
encryptionBase64Encode: () => import_sdk_services10.base64Encode,
|
|
358
|
+
encryptionError: () => import_sdk_services10.encryptionError,
|
|
359
|
+
encryptionUtf8Decode: () => import_sdk_services10.utf8Decode,
|
|
360
|
+
encryptionUtf8Encode: () => import_sdk_services10.utf8Encode,
|
|
361
|
+
ensureNetworkUsableForDecrypt: () => import_sdk_services10.ensureNetworkUsableForDecrypt,
|
|
362
|
+
err: () => import_sdk_services10.err,
|
|
363
363
|
expandActionShortNames: () => expandActionShortNames,
|
|
364
|
+
expandDelegationPermissionEntries: () => expandDelegationPermissionEntries,
|
|
364
365
|
expandPermissionEntries: () => expandPermissionEntries,
|
|
365
366
|
expandPermissionEntry: () => expandPermissionEntry,
|
|
366
367
|
extractImmutableSiweFields: () => extractImmutableSiweFields,
|
|
367
368
|
extractRecapAttenuations: () => extractRecapAttenuations,
|
|
368
369
|
fetchLocationRecord: () => fetchLocationRecord,
|
|
369
370
|
fetchPeerId: () => fetchPeerId,
|
|
370
|
-
generateRandomReceiverKey: () =>
|
|
371
|
+
generateRandomReceiverKey: () => import_sdk_services10.generateRandomReceiverKey,
|
|
371
372
|
getPolicyRootStatusV3: () => getPolicyRootStatusV3,
|
|
372
|
-
getTinyCloudDebugLogs: () =>
|
|
373
|
+
getTinyCloudDebugLogs: () => import_sdk_services10.getTinyCloudDebugLogs,
|
|
373
374
|
hasTinyCloudManageKeyScope: () => hasTinyCloudManageKeyScope,
|
|
374
|
-
hexDecode: () =>
|
|
375
|
-
hexEncode: () =>
|
|
375
|
+
hexDecode: () => import_sdk_services10.hexDecode,
|
|
376
|
+
hexEncode: () => import_sdk_services10.hexEncode,
|
|
376
377
|
holderBindingCanonicalBytes: () => holderBindingCanonicalBytes,
|
|
377
378
|
holderBindingSigningBytes: () => holderBindingSigningBytes,
|
|
378
379
|
httpResponseError: () => httpResponseError,
|
|
379
380
|
httpUrlToMultiaddr: () => httpUrlToMultiaddr,
|
|
380
381
|
importPortableDelegation: () => importPortableDelegation,
|
|
381
|
-
installTinyCloudDebugGlobals: () =>
|
|
382
|
+
installTinyCloudDebugGlobals: () => import_sdk_services10.installTinyCloudDebugGlobals,
|
|
382
383
|
intersectShareCapabilities: () => intersectShareCapabilities,
|
|
383
384
|
isCanonicalEmailDomain: () => import_share_envelope.isCanonicalEmailDomain,
|
|
384
385
|
isCapabilitySubset: () => isCapabilitySubset,
|
|
385
386
|
isDigest: () => isDigest,
|
|
386
387
|
isEvmAddress: () => isEvmAddress,
|
|
387
388
|
isExplicitOnlyAction: () => isExplicitOnlyAction,
|
|
388
|
-
isNetworkId: () =>
|
|
389
|
+
isNetworkId: () => import_sdk_services10.isNetworkId,
|
|
389
390
|
isPlausibleOpenKeyActionId: () => isPlausibleOpenKeyActionId,
|
|
390
|
-
isStorageFullError: () =>
|
|
391
|
+
isStorageFullError: () => import_sdk_services10.isStorageFullError,
|
|
391
392
|
isV2ShareLink: () => isV2ShareLink,
|
|
392
393
|
issuedCredentialEnvelopeFromVerified: () => issuedCredentialEnvelopeFromVerified,
|
|
393
394
|
jcsCanonicalize: () => jcsCanonicalize,
|
|
@@ -400,36 +401,36 @@ __export(index_exports, {
|
|
|
400
401
|
manifestAbilitiesUnion: () => manifestAbilitiesUnion,
|
|
401
402
|
markDelegationTerminal: () => markDelegationTerminal,
|
|
402
403
|
multiaddrToHttpUrl: () => multiaddrToHttpUrl,
|
|
403
|
-
networkDiscoveryKey: () =>
|
|
404
|
+
networkDiscoveryKey: () => import_sdk_services10.networkDiscoveryKey,
|
|
404
405
|
normalizeDefaults: () => normalizeDefaults,
|
|
405
406
|
normalizeJson: () => normalizeJson,
|
|
406
407
|
normalizeShareActions: () => normalizeShareActions,
|
|
407
408
|
normalizeShareRecipientTarget: () => normalizeShareRecipientTarget,
|
|
408
409
|
normalizeShareResource: () => normalizeShareResource,
|
|
409
410
|
normalizeUnifiedPolicyCapability: () => normalizeUnifiedPolicyCapability,
|
|
410
|
-
ok: () =>
|
|
411
|
-
openWrappedKey: () =>
|
|
411
|
+
ok: () => import_sdk_services10.ok,
|
|
412
|
+
openWrappedKey: () => import_sdk_services10.openWrappedKey,
|
|
412
413
|
parseCanonicalNetworkId: () => parseCanonicalNetworkId,
|
|
413
414
|
parseCanonicalRecapResource: () => parseCanonicalRecapResource,
|
|
414
415
|
parseCanonicalTinyCloudIdentity: () => parseCanonicalTinyCloudIdentity,
|
|
415
416
|
parseCanonicalTinyCloudIdentityClaims: () => parseCanonicalTinyCloudIdentityClaims,
|
|
416
|
-
parseCapabilityResource: () =>
|
|
417
|
+
parseCapabilityResource: () => import_sdk_services10.parseCapabilityResource,
|
|
417
418
|
parseCompactUcanAuthorization: () => parseCompactUcanAuthorization,
|
|
418
419
|
parseExpiry: () => parseExpiry,
|
|
419
|
-
parseNetworkId: () =>
|
|
420
|
+
parseNetworkId: () => import_sdk_services10.parseNetworkId,
|
|
420
421
|
parseNodeNativePortableDelegation: () => parseNodeNativePortableDelegation,
|
|
421
422
|
parsePkhDid: () => parsePkhDid,
|
|
422
423
|
parsePolicySessionUcan: () => parsePolicySessionUcan,
|
|
423
424
|
parsePortableDelegation: () => parsePortableDelegation,
|
|
424
425
|
parseRecapCapabilities: () => parseRecapCapabilities,
|
|
425
|
-
parseSecretCatalogKey: () =>
|
|
426
|
+
parseSecretCatalogKey: () => import_sdk_services10.parseSecretCatalogKey,
|
|
426
427
|
parseShareArtifact: () => parseShareArtifact,
|
|
427
428
|
parseShareUrl: () => parseShareUrl,
|
|
428
429
|
parseSignedCompactUcanAttenuation: () => parseSignedCompactUcanAttenuation,
|
|
429
430
|
parseSignedSiweCacao: () => parseSignedSiweCacao,
|
|
430
431
|
parseSpaceUri: () => parseSpaceUri,
|
|
431
|
-
parseStorageRejection: () =>
|
|
432
|
-
parseStorageStatus: () =>
|
|
432
|
+
parseStorageRejection: () => import_sdk_services10.parseStorageRejection,
|
|
433
|
+
parseStorageStatus: () => import_sdk_services10.parseStorageStatus,
|
|
433
434
|
pkhDid: () => pkhDid,
|
|
434
435
|
policyCidFromCanonicalBytes: () => policyCidFromCanonicalBytes,
|
|
435
436
|
policyDigestHex: () => policyDigestHex,
|
|
@@ -450,8 +451,8 @@ __export(index_exports, {
|
|
|
450
451
|
resolveManifest: () => resolveManifest,
|
|
451
452
|
resolveManifestKnowledgeRoot: () => resolveManifestKnowledgeRoot,
|
|
452
453
|
resolveOwnerHosts: () => resolveOwnerHosts,
|
|
453
|
-
resolveSecretListPrefix: () =>
|
|
454
|
-
resolveSecretPath: () =>
|
|
454
|
+
resolveSecretListPrefix: () => import_sdk_services10.resolveSecretListPrefix,
|
|
455
|
+
resolveSecretPath: () => import_sdk_services10.resolveSecretPath,
|
|
455
456
|
resolveTinyCloudHosts: () => resolveTinyCloudHosts,
|
|
456
457
|
resourceCapabilitiesToAbilitiesMap: () => resourceCapabilitiesToAbilitiesMap,
|
|
457
458
|
resourceCapabilitiesToSpaceAbilitiesMap: () => resourceCapabilitiesToSpaceAbilitiesMap,
|
|
@@ -459,7 +460,7 @@ __export(index_exports, {
|
|
|
459
460
|
revokePolicyRootV3: () => revokePolicyRootV3,
|
|
460
461
|
serializeJcsJson: () => serialize,
|
|
461
462
|
serializePortableDelegation: () => serializePortableDelegation,
|
|
462
|
-
serviceError: () =>
|
|
463
|
+
serviceError: () => import_sdk_services10.serviceError,
|
|
463
464
|
sha256Base64Url: () => sha256Base64Url,
|
|
464
465
|
shareCapabilityAllows: () => shareCapabilityAllows,
|
|
465
466
|
shortDeliveryLinkBodyCid: () => shortDeliveryLinkBodyCid,
|
|
@@ -470,9 +471,9 @@ __export(index_exports, {
|
|
|
470
471
|
signPolicyCredentialPresentationV4: () => signPolicyCredentialPresentationV4,
|
|
471
472
|
signShareEnvelope: () => signShareEnvelope,
|
|
472
473
|
signedObjectIdFor: () => signedObjectIdFor,
|
|
473
|
-
storageUsageState: () =>
|
|
474
|
+
storageUsageState: () => import_sdk_services10.storageUsageState,
|
|
474
475
|
submitHostDelegation: () => submitHostDelegation,
|
|
475
|
-
tinyCloudDebugLogger: () =>
|
|
476
|
+
tinyCloudDebugLogger: () => import_sdk_services10.tinyCloudDebugLogger,
|
|
476
477
|
toSignedObjectError: () => toSignedObjectError,
|
|
477
478
|
unauthorizedRecapCapabilities: () => unauthorizedRecapCapabilities,
|
|
478
479
|
unifiedNativeProjectionHashHex: () => unifiedNativeProjectionHashHex,
|
|
@@ -484,7 +485,7 @@ __export(index_exports, {
|
|
|
484
485
|
validateCredentialFlowDescriptor: () => validateCredentialFlowDescriptor,
|
|
485
486
|
validateCredentialHolderBinding: () => validateCredentialHolderBinding,
|
|
486
487
|
validateCredentialRequirement: () => validateCredentialRequirement,
|
|
487
|
-
validateEnvelope: () =>
|
|
488
|
+
validateEnvelope: () => import_sdk_services10.validateEnvelope,
|
|
488
489
|
validateLocationRecord: () => validateLocationRecord,
|
|
489
490
|
validateLocationRecordPayload: () => validateLocationRecordPayload,
|
|
490
491
|
validateManifest: () => validateManifest,
|
|
@@ -502,8 +503,8 @@ __export(index_exports, {
|
|
|
502
503
|
validatePolicyStatusUnsigned: () => validatePolicyStatusUnsigned,
|
|
503
504
|
validatePolicyUnsigned: () => validatePolicyUnsigned,
|
|
504
505
|
validateUnifiedPolicyV2: () => validateUnifiedPolicyV2,
|
|
505
|
-
validatedCapabilityOf: () =>
|
|
506
|
-
verifyDecryptResponse: () =>
|
|
506
|
+
validatedCapabilityOf: () => import_sdk_services10.validatedCapabilityOf,
|
|
507
|
+
verifyDecryptResponse: () => import_sdk_services10.verifyDecryptResponse,
|
|
507
508
|
verifyDidKeyEd25519Signature: () => verifyDidKeyEd25519Signature,
|
|
508
509
|
verifyEip191MessageSignature: () => verifyEip191MessageSignature,
|
|
509
510
|
verifyIssuedCredential: () => verifyIssuedCredential,
|
|
@@ -3947,6 +3948,7 @@ var import_sha256 = require("@noble/hashes/sha256");
|
|
|
3947
3948
|
var import_blake3 = require("@noble/hashes/blake3");
|
|
3948
3949
|
var import_ed255193 = require("@noble/curves/ed25519");
|
|
3949
3950
|
var import_zod2 = require("zod");
|
|
3951
|
+
var import_sdk_services2 = require("@tinycloud/sdk-services");
|
|
3950
3952
|
|
|
3951
3953
|
// src/http-error.ts
|
|
3952
3954
|
var import_sdk_services = require("@tinycloud/sdk-services");
|
|
@@ -4215,12 +4217,9 @@ function parseKvResource(resource) {
|
|
|
4215
4217
|
return { space, path };
|
|
4216
4218
|
}
|
|
4217
4219
|
function parseEncryptionResource(resource) {
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
const ownerDid = separator < 0 ? "" : rest.slice(0, separator);
|
|
4222
|
-
const network = separator < 0 ? "" : rest.slice(separator + 1);
|
|
4223
|
-
if (!ownerDid.startsWith("did:") || network.length === 0 || network.includes(":") || network.includes("/") || network.includes("%") || network.includes("?") || network.includes("#")) {
|
|
4220
|
+
try {
|
|
4221
|
+
if ((0, import_sdk_services2.parseEncryptionResource)(resource).keyPath?.endsWith("/")) throw new Error("prefix");
|
|
4222
|
+
} catch {
|
|
4224
4223
|
throw new Error("encryption capability is invalid");
|
|
4225
4224
|
}
|
|
4226
4225
|
}
|
|
@@ -7768,7 +7767,8 @@ function validateEncodedShareData(data) {
|
|
|
7768
7767
|
// src/manifest.ts
|
|
7769
7768
|
var import_ms = __toESM(require("ms"), 1);
|
|
7770
7769
|
var import_bootstrap2 = require("@tinycloud/bootstrap");
|
|
7771
|
-
var
|
|
7770
|
+
var import_sdk_services3 = require("@tinycloud/sdk-services");
|
|
7771
|
+
var import_resource = require("@tinycloud/sdk-services/encryption/resource");
|
|
7772
7772
|
var DEFAULT_KNOWLEDGE_ROOT = "knowledge/index.md";
|
|
7773
7773
|
var ManifestValidationError = class extends Error {
|
|
7774
7774
|
constructor(message) {
|
|
@@ -7891,11 +7891,13 @@ function expandEncryptionPermissionEntry(entry) {
|
|
|
7891
7891
|
`tinycloud.encryption entries require path to be a networkId URN (got ${JSON.stringify(entry.path)})`
|
|
7892
7892
|
);
|
|
7893
7893
|
}
|
|
7894
|
-
|
|
7894
|
+
const sharePrefix = entry.path.endsWith("/share/");
|
|
7895
|
+
if (entry.path.includes("/") && !sharePrefix) {
|
|
7895
7896
|
throw new ManifestValidationError("named keys go in manifest.keys");
|
|
7896
7897
|
}
|
|
7897
7898
|
try {
|
|
7898
|
-
(0,
|
|
7899
|
+
const network = (0, import_sdk_services3.parseNetworkId)(sharePrefix ? entry.path.slice(0, -"/share/".length) : entry.path);
|
|
7900
|
+
if (sharePrefix && network.name !== "default") throw new Error("share prefix requires default network");
|
|
7899
7901
|
} catch {
|
|
7900
7902
|
throw new ManifestValidationError("tinycloud.encryption entries require a valid networkId URN");
|
|
7901
7903
|
}
|
|
@@ -7930,6 +7932,9 @@ function expandEncryptionPermissionEntry(entry) {
|
|
|
7930
7932
|
seen.add(a);
|
|
7931
7933
|
}
|
|
7932
7934
|
}
|
|
7935
|
+
if (sharePrefix && dedupedActions.some((action) => action !== "tinycloud.encryption/decrypt")) {
|
|
7936
|
+
throw new ManifestValidationError("share prefix only supports decrypt");
|
|
7937
|
+
}
|
|
7933
7938
|
return [
|
|
7934
7939
|
{
|
|
7935
7940
|
service: ENCRYPTION_PERMISSION_SERVICE,
|
|
@@ -7945,6 +7950,29 @@ function expandEncryptionPermissionEntry(entry) {
|
|
|
7945
7950
|
function expandPermissionEntries(entries) {
|
|
7946
7951
|
return entries.flatMap(expandPermissionEntry);
|
|
7947
7952
|
}
|
|
7953
|
+
function expandDelegationPermissionEntries(entries) {
|
|
7954
|
+
return entries.flatMap((entry) => {
|
|
7955
|
+
if (entry.service !== ENCRYPTION_PERMISSION_SERVICE || typeof entry.path !== "string" || !entry.path.includes("/")) {
|
|
7956
|
+
return expandPermissionEntry(entry);
|
|
7957
|
+
}
|
|
7958
|
+
let resource;
|
|
7959
|
+
try {
|
|
7960
|
+
resource = (0, import_resource.parseEncryptionResource)(entry.path);
|
|
7961
|
+
} catch {
|
|
7962
|
+
throw new ManifestValidationError("delegation requires a canonical exact named-key resource");
|
|
7963
|
+
}
|
|
7964
|
+
if (resource.kind !== "key" || !Array.isArray(entry.actions) || entry.actions.length === 0 || entry.actions.some((action) => action !== "decrypt" && action !== "tinycloud.encryption/decrypt")) {
|
|
7965
|
+
throw new ManifestValidationError("named-key delegation requires an exact key and decrypt only");
|
|
7966
|
+
}
|
|
7967
|
+
return [{
|
|
7968
|
+
...entry,
|
|
7969
|
+
space: ENCRYPTION_MANIFEST_SPACE,
|
|
7970
|
+
path: `${resource.networkId}/${resource.path}`,
|
|
7971
|
+
actions: ["tinycloud.encryption/decrypt"],
|
|
7972
|
+
skipPrefix: true
|
|
7973
|
+
}];
|
|
7974
|
+
});
|
|
7975
|
+
}
|
|
7948
7976
|
function applyPrefix(prefix, path, skipPrefix) {
|
|
7949
7977
|
if (skipPrefix) {
|
|
7950
7978
|
return path;
|
|
@@ -8097,13 +8125,13 @@ function validateManifestSecrets(secrets) {
|
|
|
8097
8125
|
throw new ManifestValidationError("manifest.secrets must be an object");
|
|
8098
8126
|
}
|
|
8099
8127
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8100
|
-
if (!
|
|
8128
|
+
if (!import_sdk_services3.SECRET_NAME_RE.test(name2)) {
|
|
8101
8129
|
throw new ManifestValidationError(
|
|
8102
|
-
`manifest.secrets.${name2} must match ${
|
|
8130
|
+
`manifest.secrets.${name2} must match ${import_sdk_services3.SECRET_NAME_RE.source}`
|
|
8103
8131
|
);
|
|
8104
8132
|
}
|
|
8105
8133
|
try {
|
|
8106
|
-
(0,
|
|
8134
|
+
(0, import_sdk_services3.resolveSecretPath)(
|
|
8107
8135
|
secretNameFromSpec(name2, spec),
|
|
8108
8136
|
{ scope: secretScopeFromSpec(spec) }
|
|
8109
8137
|
);
|
|
@@ -8320,7 +8348,7 @@ function secretEntriesForManifest(secrets) {
|
|
|
8320
8348
|
const entries = [];
|
|
8321
8349
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8322
8350
|
const actions = secretActionsFromSpec(name2, spec);
|
|
8323
|
-
const secretPath = (0,
|
|
8351
|
+
const secretPath = (0, import_sdk_services3.resolveSecretPath)(
|
|
8324
8352
|
secretNameFromSpec(name2, spec),
|
|
8325
8353
|
{ scope: secretScopeFromSpec(spec) }
|
|
8326
8354
|
);
|
|
@@ -8590,6 +8618,7 @@ function manifestAbilitiesUnion(resolved) {
|
|
|
8590
8618
|
}
|
|
8591
8619
|
|
|
8592
8620
|
// src/capabilities.ts
|
|
8621
|
+
var import_resource2 = require("@tinycloud/sdk-services/encryption/resource");
|
|
8593
8622
|
var PermissionNotInManifestError = class extends Error {
|
|
8594
8623
|
constructor(missing, granted) {
|
|
8595
8624
|
super(
|
|
@@ -8641,10 +8670,9 @@ function isCapabilitySubset(requested, granted) {
|
|
|
8641
8670
|
const grantedActions = matchingScope.flatMap(
|
|
8642
8671
|
(entry) => expandActionShortNames(entry.service, entry.actions)
|
|
8643
8672
|
);
|
|
8673
|
+
const namedKeyRequest = req.service === "tinycloud.encryption" && req.path.startsWith("urn:tinycloud:encryption:") && req.path.includes("/");
|
|
8644
8674
|
const covered = requestedActions.every(
|
|
8645
|
-
(requestedAction) => grantedActions.some(
|
|
8646
|
-
(grantedAction) => actionContains(grantedAction, requestedAction)
|
|
8647
|
-
)
|
|
8675
|
+
(requestedAction) => grantedActions.some((grantedAction) => namedKeyRequest ? grantedAction === requestedAction : actionContains(grantedAction, requestedAction))
|
|
8648
8676
|
);
|
|
8649
8677
|
if (!covered) {
|
|
8650
8678
|
missing.push(cloneEntry(req));
|
|
@@ -8659,7 +8687,9 @@ function canonicalizeEntryScopeMatches(requested, granted) {
|
|
|
8659
8687
|
if (normalizeSpace(requested.space ?? DEFAULT_MANIFEST_SPACE) !== normalizeSpace(granted.space ?? DEFAULT_MANIFEST_SPACE)) {
|
|
8660
8688
|
return false;
|
|
8661
8689
|
}
|
|
8662
|
-
|
|
8690
|
+
const namedKeyRequest = requested.service === "tinycloud.encryption" && requested.path.startsWith("urn:tinycloud:encryption:") && requested.path.includes("/");
|
|
8691
|
+
const coveredPath = namedKeyRequest ? (0, import_resource2.encryptionResourceContains)(granted.path, requested.path) : pathContains2(granted.path, requested.path);
|
|
8692
|
+
if (!coveredPath) {
|
|
8663
8693
|
return false;
|
|
8664
8694
|
}
|
|
8665
8695
|
if (!recapCaveatsEqual(requested.caveats, granted.caveats)) {
|
|
@@ -8771,7 +8801,7 @@ function parseRecapCapabilities(parseWasm, siwe) {
|
|
|
8771
8801
|
var import_ed255197 = require("@noble/curves/ed25519");
|
|
8772
8802
|
|
|
8773
8803
|
// src/delegations/ShareRecipientClient.ts
|
|
8774
|
-
var
|
|
8804
|
+
var import_sdk_services4 = require("@tinycloud/sdk-services");
|
|
8775
8805
|
var import_ed255196 = require("@noble/curves/ed25519");
|
|
8776
8806
|
var import_sha2565 = require("@noble/hashes/sha256");
|
|
8777
8807
|
|
|
@@ -9958,9 +9988,9 @@ function redactedCode(error) {
|
|
|
9958
9988
|
if (error instanceof ShareConflict) return error.code;
|
|
9959
9989
|
const code3 = error && typeof error === "object" && "code" in error ? error.code : void 0;
|
|
9960
9990
|
if (typeof code3 !== "string") return "SHARE_INVALID";
|
|
9961
|
-
if (code3 ===
|
|
9962
|
-
if (code3 ===
|
|
9963
|
-
if (code3 ===
|
|
9991
|
+
if (code3 === import_sdk_services4.ErrorCodes.KV_PRECONDITION_FAILED || code3 === "412") return "SHARE_CONFLICT";
|
|
9992
|
+
if (code3 === import_sdk_services4.ErrorCodes.NODE_BUSY || code3 === import_sdk_services4.ErrorCodes.REQUEST_TIMEOUT) return "SHARE_OFFLINE";
|
|
9993
|
+
if (code3 === import_sdk_services4.ErrorCodes.OUTCOME_UNKNOWN) return "SHARE_WRITE_FAILED";
|
|
9964
9994
|
if (code3 === "KV_NOT_FOUND" || code3 === "NOT_FOUND" || code3 === "404") return "SHARE_NOT_FOUND";
|
|
9965
9995
|
if (code3.includes("EXPIRED") || code3 === "expired") return "SHARE_EXPIRED";
|
|
9966
9996
|
if (code3.includes("REVOK")) return "SHARE_REVOKED";
|
|
@@ -10199,7 +10229,7 @@ var ShareRecipientClient = class {
|
|
|
10199
10229
|
if (portableDelegation !== void 0 && kv !== void 0) {
|
|
10200
10230
|
const result2 = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10201
10231
|
if (!result2.ok) {
|
|
10202
|
-
if (result2.error.code ===
|
|
10232
|
+
if (result2.error.code === import_sdk_services4.ErrorCodes.KV_PRECONDITION_FAILED) throw new ShareConflict(resolvedPath, result2.error.meta?.etag);
|
|
10203
10233
|
throw result2.error;
|
|
10204
10234
|
}
|
|
10205
10235
|
return { etag: result2.data.headers.etag };
|
|
@@ -10207,7 +10237,7 @@ var ShareRecipientClient = class {
|
|
|
10207
10237
|
if (policySession !== void 0) return this.nativeSave(envelope, policySession, resolvedPath, bytes2, input);
|
|
10208
10238
|
const result = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10209
10239
|
if (!result.ok) {
|
|
10210
|
-
if (result.error.code ===
|
|
10240
|
+
if (result.error.code === import_sdk_services4.ErrorCodes.KV_PRECONDITION_FAILED) throw new ShareConflict(resolvedPath, result.error.meta?.etag);
|
|
10211
10241
|
throw result.error;
|
|
10212
10242
|
}
|
|
10213
10243
|
return { etag: result.data.headers.etag };
|
|
@@ -10291,8 +10321,8 @@ var ShareRecipientClient = class {
|
|
|
10291
10321
|
if (this.options.createKVService !== void 0) {
|
|
10292
10322
|
return this.options.createKVService({ hosts: [origin2], session, invoke, fetch: this.fetchFn });
|
|
10293
10323
|
}
|
|
10294
|
-
const context = new
|
|
10295
|
-
const service = new
|
|
10324
|
+
const context = new import_sdk_services4.ServiceContext({ hosts: [origin2], session, invoke, fetch: this.fetchFn });
|
|
10325
|
+
const service = new import_sdk_services4.KVService({ prefix: "" });
|
|
10296
10326
|
context.registerService("kv", service);
|
|
10297
10327
|
service.initialize(context);
|
|
10298
10328
|
return service;
|
|
@@ -12840,14 +12870,14 @@ function markDelegationTerminal(token, key) {
|
|
|
12840
12870
|
}
|
|
12841
12871
|
|
|
12842
12872
|
// src/networkId.ts
|
|
12843
|
-
var
|
|
12873
|
+
var import_sdk_services5 = require("@tinycloud/sdk-services");
|
|
12844
12874
|
function canonicalizeNetworkId(networkId) {
|
|
12845
|
-
const parsed = (0,
|
|
12846
|
-
return (0,
|
|
12875
|
+
const parsed = (0, import_sdk_services5.parseNetworkId)(networkId);
|
|
12876
|
+
return (0, import_sdk_services5.buildNetworkId)(canonicalizeDid(parsed.ownerDid), parsed.name);
|
|
12847
12877
|
}
|
|
12848
12878
|
function parseCanonicalNetworkId(networkId) {
|
|
12849
12879
|
const canonical = canonicalizeNetworkId(networkId);
|
|
12850
|
-
return (0,
|
|
12880
|
+
return (0, import_sdk_services5.parseNetworkId)(canonical);
|
|
12851
12881
|
}
|
|
12852
12882
|
|
|
12853
12883
|
// src/storage.schema.ts
|
|
@@ -12955,10 +12985,10 @@ function validatePersistedSessionData(data) {
|
|
|
12955
12985
|
}
|
|
12956
12986
|
|
|
12957
12987
|
// src/TinyCloud.ts
|
|
12958
|
-
var
|
|
12988
|
+
var import_sdk_services7 = require("@tinycloud/sdk-services");
|
|
12959
12989
|
|
|
12960
12990
|
// src/spaces/SpaceService.ts
|
|
12961
|
-
var
|
|
12991
|
+
var import_sdk_services6 = require("@tinycloud/sdk-services");
|
|
12962
12992
|
|
|
12963
12993
|
// src/spaces/Space.ts
|
|
12964
12994
|
function unavailableSecretsService() {
|
|
@@ -13393,8 +13423,8 @@ var SpaceService = class {
|
|
|
13393
13423
|
*/
|
|
13394
13424
|
async list() {
|
|
13395
13425
|
if (!this.session) {
|
|
13396
|
-
return (0,
|
|
13397
|
-
(0,
|
|
13426
|
+
return (0, import_sdk_services6.err)(
|
|
13427
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13398
13428
|
);
|
|
13399
13429
|
}
|
|
13400
13430
|
try {
|
|
@@ -13403,8 +13433,8 @@ var SpaceService = class {
|
|
|
13403
13433
|
if (ownedResult.ok) {
|
|
13404
13434
|
spaces.push(...ownedResult.data);
|
|
13405
13435
|
} else {
|
|
13406
|
-
const verdict = (0,
|
|
13407
|
-
if (verdict === "unauthenticated" || verdict === "forbidden") return (0,
|
|
13436
|
+
const verdict = (0, import_sdk_services6.authorizationVerdictOf)(ownedResult.error);
|
|
13437
|
+
if (verdict === "unauthenticated" || verdict === "forbidden") return (0, import_sdk_services6.err)(ownedResult.error);
|
|
13408
13438
|
}
|
|
13409
13439
|
if (this.capabilityRegistry) {
|
|
13410
13440
|
const delegatedSpaces = this.discoverDelegatedSpaces();
|
|
@@ -13416,10 +13446,10 @@ var SpaceService = class {
|
|
|
13416
13446
|
this.notifySpaceRegistered(space);
|
|
13417
13447
|
}
|
|
13418
13448
|
}
|
|
13419
|
-
return (0,
|
|
13449
|
+
return (0, import_sdk_services6.ok)(uniqueSpaces);
|
|
13420
13450
|
} catch (error) {
|
|
13421
|
-
return (0,
|
|
13422
|
-
(0,
|
|
13451
|
+
return (0, import_sdk_services6.err)(
|
|
13452
|
+
(0, import_sdk_services6.serviceError)(
|
|
13423
13453
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13424
13454
|
`Failed to list spaces: ${String(error)}`,
|
|
13425
13455
|
SERVICE_NAME,
|
|
@@ -13439,7 +13469,7 @@ var SpaceService = class {
|
|
|
13439
13469
|
headers
|
|
13440
13470
|
});
|
|
13441
13471
|
if (!response.ok) {
|
|
13442
|
-
return (0,
|
|
13472
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13443
13473
|
response,
|
|
13444
13474
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13445
13475
|
"Failed to list owned spaces",
|
|
@@ -13449,8 +13479,8 @@ var SpaceService = class {
|
|
|
13449
13479
|
const rawData = await response.json();
|
|
13450
13480
|
const validationResult = validateServerOwnedSpacesResponse(rawData);
|
|
13451
13481
|
if (!validationResult.ok) {
|
|
13452
|
-
return (0,
|
|
13453
|
-
(0,
|
|
13482
|
+
return (0, import_sdk_services6.err)(
|
|
13483
|
+
(0, import_sdk_services6.serviceError)(
|
|
13454
13484
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13455
13485
|
validationResult.error.message,
|
|
13456
13486
|
SERVICE_NAME,
|
|
@@ -13466,10 +13496,10 @@ var SpaceService = class {
|
|
|
13466
13496
|
permissions: ["*"]
|
|
13467
13497
|
// Full permissions for owned spaces
|
|
13468
13498
|
}));
|
|
13469
|
-
return (0,
|
|
13499
|
+
return (0, import_sdk_services6.ok)(spaces);
|
|
13470
13500
|
} catch (error) {
|
|
13471
|
-
return (0,
|
|
13472
|
-
(0,
|
|
13501
|
+
return (0, import_sdk_services6.err)(
|
|
13502
|
+
(0, import_sdk_services6.serviceError)(
|
|
13473
13503
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13474
13504
|
`Network error listing owned spaces: ${String(error)}`,
|
|
13475
13505
|
SERVICE_NAME,
|
|
@@ -13550,13 +13580,13 @@ var SpaceService = class {
|
|
|
13550
13580
|
*/
|
|
13551
13581
|
async create(name2) {
|
|
13552
13582
|
if (!this.session) {
|
|
13553
|
-
return (0,
|
|
13554
|
-
(0,
|
|
13583
|
+
return (0, import_sdk_services6.err)(
|
|
13584
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13555
13585
|
);
|
|
13556
13586
|
}
|
|
13557
13587
|
if (!name2 || !/^[a-zA-Z0-9_-]+$/.test(name2)) {
|
|
13558
|
-
return (0,
|
|
13559
|
-
(0,
|
|
13588
|
+
return (0, import_sdk_services6.err)(
|
|
13589
|
+
(0, import_sdk_services6.serviceError)(
|
|
13560
13590
|
SpaceErrorCodes.INVALID_NAME,
|
|
13561
13591
|
"Space name must contain only alphanumeric characters, underscores, and hyphens",
|
|
13562
13592
|
SERVICE_NAME
|
|
@@ -13572,14 +13602,14 @@ var SpaceService = class {
|
|
|
13572
13602
|
});
|
|
13573
13603
|
if (!response.ok) {
|
|
13574
13604
|
if (response.status === 409) {
|
|
13575
|
-
return (0,
|
|
13605
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13576
13606
|
response,
|
|
13577
13607
|
SpaceErrorCodes.ALREADY_EXISTS,
|
|
13578
13608
|
`Space "${name2}" already exists`,
|
|
13579
13609
|
SERVICE_NAME
|
|
13580
13610
|
));
|
|
13581
13611
|
}
|
|
13582
|
-
return (0,
|
|
13612
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13583
13613
|
response,
|
|
13584
13614
|
SpaceErrorCodes.CREATION_FAILED,
|
|
13585
13615
|
"Failed to create space",
|
|
@@ -13589,8 +13619,8 @@ var SpaceService = class {
|
|
|
13589
13619
|
const rawData = await response.json();
|
|
13590
13620
|
const validationResult = validateServerCreateSpaceResponse(rawData);
|
|
13591
13621
|
if (!validationResult.ok) {
|
|
13592
|
-
return (0,
|
|
13593
|
-
(0,
|
|
13622
|
+
return (0, import_sdk_services6.err)(
|
|
13623
|
+
(0, import_sdk_services6.serviceError)(
|
|
13594
13624
|
SpaceErrorCodes.CREATION_FAILED,
|
|
13595
13625
|
validationResult.error.message,
|
|
13596
13626
|
SERVICE_NAME,
|
|
@@ -13607,10 +13637,10 @@ var SpaceService = class {
|
|
|
13607
13637
|
};
|
|
13608
13638
|
this.infoCache.set(spaceInfo.id, { info: spaceInfo, cachedAt: Date.now() });
|
|
13609
13639
|
this.notifySpaceRegistered(spaceInfo);
|
|
13610
|
-
return (0,
|
|
13640
|
+
return (0, import_sdk_services6.ok)(spaceInfo);
|
|
13611
13641
|
} catch (error) {
|
|
13612
|
-
return (0,
|
|
13613
|
-
(0,
|
|
13642
|
+
return (0, import_sdk_services6.err)(
|
|
13643
|
+
(0, import_sdk_services6.serviceError)(
|
|
13614
13644
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13615
13645
|
`Network error creating space: ${String(error)}`,
|
|
13616
13646
|
SERVICE_NAME,
|
|
@@ -13680,10 +13710,10 @@ var SpaceService = class {
|
|
|
13680
13710
|
const spaceId = this.resolveSpaceId(nameOrUri);
|
|
13681
13711
|
const cached = this.infoCache.get(spaceId);
|
|
13682
13712
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13683
|
-
return (0,
|
|
13713
|
+
return (0, import_sdk_services6.ok)(true);
|
|
13684
13714
|
}
|
|
13685
13715
|
const infoResult = await this.getSpaceInfo(spaceId);
|
|
13686
|
-
return (0,
|
|
13716
|
+
return (0, import_sdk_services6.ok)(infoResult.ok);
|
|
13687
13717
|
}
|
|
13688
13718
|
// ===========================================================================
|
|
13689
13719
|
// Space Info
|
|
@@ -13694,11 +13724,11 @@ var SpaceService = class {
|
|
|
13694
13724
|
async getSpaceInfo(spaceId) {
|
|
13695
13725
|
const cached = this.infoCache.get(spaceId);
|
|
13696
13726
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13697
|
-
return (0,
|
|
13727
|
+
return (0, import_sdk_services6.ok)(cached.info);
|
|
13698
13728
|
}
|
|
13699
13729
|
if (!this.session) {
|
|
13700
|
-
return (0,
|
|
13701
|
-
(0,
|
|
13730
|
+
return (0, import_sdk_services6.err)(
|
|
13731
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13702
13732
|
);
|
|
13703
13733
|
}
|
|
13704
13734
|
try {
|
|
@@ -13710,14 +13740,14 @@ var SpaceService = class {
|
|
|
13710
13740
|
});
|
|
13711
13741
|
if (!response.ok) {
|
|
13712
13742
|
if (response.status === 404) {
|
|
13713
|
-
return (0,
|
|
13743
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13714
13744
|
response,
|
|
13715
13745
|
SpaceErrorCodes.NOT_FOUND,
|
|
13716
13746
|
`Space not found: ${spaceId}`,
|
|
13717
13747
|
SERVICE_NAME
|
|
13718
13748
|
));
|
|
13719
13749
|
}
|
|
13720
|
-
return (0,
|
|
13750
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13721
13751
|
response,
|
|
13722
13752
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13723
13753
|
"Failed to get space info",
|
|
@@ -13727,8 +13757,8 @@ var SpaceService = class {
|
|
|
13727
13757
|
const rawData = await response.json();
|
|
13728
13758
|
const validationResult = validateServerSpaceInfoResponse(rawData);
|
|
13729
13759
|
if (!validationResult.ok) {
|
|
13730
|
-
return (0,
|
|
13731
|
-
(0,
|
|
13760
|
+
return (0, import_sdk_services6.err)(
|
|
13761
|
+
(0, import_sdk_services6.serviceError)(
|
|
13732
13762
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13733
13763
|
validationResult.error.message,
|
|
13734
13764
|
SERVICE_NAME,
|
|
@@ -13746,10 +13776,10 @@ var SpaceService = class {
|
|
|
13746
13776
|
expiresAt: data.expiresAt ? new Date(data.expiresAt) : void 0
|
|
13747
13777
|
};
|
|
13748
13778
|
this.infoCache.set(spaceId, { info: spaceInfo, cachedAt: Date.now() });
|
|
13749
|
-
return (0,
|
|
13779
|
+
return (0, import_sdk_services6.ok)(spaceInfo);
|
|
13750
13780
|
} catch (error) {
|
|
13751
|
-
return (0,
|
|
13752
|
-
(0,
|
|
13781
|
+
return (0, import_sdk_services6.err)(
|
|
13782
|
+
(0, import_sdk_services6.serviceError)(
|
|
13753
13783
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13754
13784
|
`Network error getting space info: ${String(error)}`,
|
|
13755
13785
|
SERVICE_NAME,
|
|
@@ -13834,7 +13864,7 @@ var SpaceService = class {
|
|
|
13834
13864
|
headers
|
|
13835
13865
|
});
|
|
13836
13866
|
if (!response.ok) {
|
|
13837
|
-
return (0,
|
|
13867
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13838
13868
|
response,
|
|
13839
13869
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13840
13870
|
"Failed to list delegations",
|
|
@@ -13844,8 +13874,8 @@ var SpaceService = class {
|
|
|
13844
13874
|
const rawData = await response.json();
|
|
13845
13875
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13846
13876
|
if (!validationResult.ok) {
|
|
13847
|
-
return (0,
|
|
13848
|
-
(0,
|
|
13877
|
+
return (0, import_sdk_services6.err)(
|
|
13878
|
+
(0, import_sdk_services6.serviceError)(
|
|
13849
13879
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13850
13880
|
validationResult.error.message,
|
|
13851
13881
|
SERVICE_NAME,
|
|
@@ -13854,10 +13884,10 @@ var SpaceService = class {
|
|
|
13854
13884
|
);
|
|
13855
13885
|
}
|
|
13856
13886
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13857
|
-
return (0,
|
|
13887
|
+
return (0, import_sdk_services6.ok)(delegations);
|
|
13858
13888
|
} catch (error) {
|
|
13859
|
-
return (0,
|
|
13860
|
-
(0,
|
|
13889
|
+
return (0, import_sdk_services6.err)(
|
|
13890
|
+
(0, import_sdk_services6.serviceError)(
|
|
13861
13891
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13862
13892
|
`Network error listing delegations: ${String(error)}`,
|
|
13863
13893
|
SERVICE_NAME
|
|
@@ -13887,7 +13917,7 @@ var SpaceService = class {
|
|
|
13887
13917
|
headers
|
|
13888
13918
|
});
|
|
13889
13919
|
if (!response.ok) {
|
|
13890
|
-
return (0,
|
|
13920
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13891
13921
|
response,
|
|
13892
13922
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13893
13923
|
"Failed to list received delegations",
|
|
@@ -13897,8 +13927,8 @@ var SpaceService = class {
|
|
|
13897
13927
|
const rawData = await response.json();
|
|
13898
13928
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13899
13929
|
if (!validationResult.ok) {
|
|
13900
|
-
return (0,
|
|
13901
|
-
(0,
|
|
13930
|
+
return (0, import_sdk_services6.err)(
|
|
13931
|
+
(0, import_sdk_services6.serviceError)(
|
|
13902
13932
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13903
13933
|
validationResult.error.message,
|
|
13904
13934
|
SERVICE_NAME,
|
|
@@ -13907,10 +13937,10 @@ var SpaceService = class {
|
|
|
13907
13937
|
);
|
|
13908
13938
|
}
|
|
13909
13939
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13910
|
-
return (0,
|
|
13940
|
+
return (0, import_sdk_services6.ok)(delegations);
|
|
13911
13941
|
} catch (error) {
|
|
13912
|
-
return (0,
|
|
13913
|
-
(0,
|
|
13942
|
+
return (0, import_sdk_services6.err)(
|
|
13943
|
+
(0, import_sdk_services6.serviceError)(
|
|
13914
13944
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13915
13945
|
`Network error listing received delegations: ${String(error)}`,
|
|
13916
13946
|
SERVICE_NAME
|
|
@@ -13922,8 +13952,8 @@ var SpaceService = class {
|
|
|
13922
13952
|
if (self.createDelegationFn) {
|
|
13923
13953
|
return self.createDelegationFn({ ...params, spaceId });
|
|
13924
13954
|
}
|
|
13925
|
-
return (0,
|
|
13926
|
-
(0,
|
|
13955
|
+
return (0, import_sdk_services6.err)(
|
|
13956
|
+
(0, import_sdk_services6.serviceError)(
|
|
13927
13957
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13928
13958
|
"Delegation creation requires a createDelegation function. This should be provided by the platform SDK (web-sdk or node-sdk).",
|
|
13929
13959
|
SERVICE_NAME
|
|
@@ -13944,17 +13974,17 @@ var SpaceService = class {
|
|
|
13944
13974
|
body: JSON.stringify({ cid: cid2, spaceId })
|
|
13945
13975
|
});
|
|
13946
13976
|
if (!response.ok) {
|
|
13947
|
-
return (0,
|
|
13977
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13948
13978
|
response,
|
|
13949
13979
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13950
13980
|
"Failed to revoke delegation",
|
|
13951
13981
|
SERVICE_NAME
|
|
13952
13982
|
));
|
|
13953
13983
|
}
|
|
13954
|
-
return (0,
|
|
13984
|
+
return (0, import_sdk_services6.ok)(void 0);
|
|
13955
13985
|
} catch (error) {
|
|
13956
|
-
return (0,
|
|
13957
|
-
(0,
|
|
13986
|
+
return (0, import_sdk_services6.err)(
|
|
13987
|
+
(0, import_sdk_services6.serviceError)(
|
|
13958
13988
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13959
13989
|
`Network error revoking delegation: ${String(error)}`,
|
|
13960
13990
|
SERVICE_NAME
|
|
@@ -13977,18 +14007,18 @@ var SpaceService = class {
|
|
|
13977
14007
|
if (self.sharingService) {
|
|
13978
14008
|
const result = await self.sharingService.generate(params);
|
|
13979
14009
|
if (!result.ok) {
|
|
13980
|
-
return (0,
|
|
13981
|
-
(0,
|
|
14010
|
+
return (0, import_sdk_services6.err)(
|
|
14011
|
+
(0, import_sdk_services6.serviceError)(
|
|
13982
14012
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13983
14013
|
result.error.message || "Failed to generate share link",
|
|
13984
14014
|
SERVICE_NAME
|
|
13985
14015
|
)
|
|
13986
14016
|
);
|
|
13987
14017
|
}
|
|
13988
|
-
return (0,
|
|
14018
|
+
return (0, import_sdk_services6.ok)(result.data);
|
|
13989
14019
|
}
|
|
13990
|
-
return (0,
|
|
13991
|
-
(0,
|
|
14020
|
+
return (0, import_sdk_services6.err)(
|
|
14021
|
+
(0, import_sdk_services6.serviceError)(
|
|
13992
14022
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13993
14023
|
"SharingService not configured. V2 sharing requires a SharingService instance.",
|
|
13994
14024
|
SERVICE_NAME
|
|
@@ -13996,8 +14026,8 @@ var SpaceService = class {
|
|
|
13996
14026
|
);
|
|
13997
14027
|
},
|
|
13998
14028
|
async list() {
|
|
13999
|
-
return (0,
|
|
14000
|
-
(0,
|
|
14029
|
+
return (0, import_sdk_services6.err)(
|
|
14030
|
+
(0, import_sdk_services6.serviceError)(
|
|
14001
14031
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
14002
14032
|
"Listing share links is not supported in v2. Share links are self-contained tokens that are not tracked on the server.",
|
|
14003
14033
|
SERVICE_NAME
|
|
@@ -14005,8 +14035,8 @@ var SpaceService = class {
|
|
|
14005
14035
|
);
|
|
14006
14036
|
},
|
|
14007
14037
|
async revoke(token) {
|
|
14008
|
-
return (0,
|
|
14009
|
-
(0,
|
|
14038
|
+
return (0, import_sdk_services6.err)(
|
|
14039
|
+
(0, import_sdk_services6.serviceError)(
|
|
14010
14040
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
14011
14041
|
"Revoking share links by token is not supported in v2. To revoke access, revoke the underlying delegation using space.delegations.revoke(cid).",
|
|
14012
14042
|
SERVICE_NAME
|
|
@@ -14066,7 +14096,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14066
14096
|
"hosts are required to initialize services. Provide them via config.hosts or initializeServices()."
|
|
14067
14097
|
);
|
|
14068
14098
|
}
|
|
14069
|
-
this._serviceContext = new
|
|
14099
|
+
this._serviceContext = new import_sdk_services7.ServiceContext({
|
|
14070
14100
|
invoke: effectiveInvoke,
|
|
14071
14101
|
invokeAny: this.config.invokeAny,
|
|
14072
14102
|
fetch: fetchFn ?? this.config.fetch ?? globalThis.fetch.bind(globalThis),
|
|
@@ -14075,10 +14105,10 @@ var TinyCloud = class _TinyCloud {
|
|
|
14075
14105
|
telemetry: this.config.telemetry
|
|
14076
14106
|
});
|
|
14077
14107
|
const serviceConstructors = {
|
|
14078
|
-
kv:
|
|
14079
|
-
sql:
|
|
14080
|
-
duckdb:
|
|
14081
|
-
hooks:
|
|
14108
|
+
kv: import_sdk_services7.KVService,
|
|
14109
|
+
sql: import_sdk_services7.SQLService,
|
|
14110
|
+
duckdb: import_sdk_services7.DuckDbService,
|
|
14111
|
+
hooks: import_sdk_services7.HooksService,
|
|
14082
14112
|
...this.config.services
|
|
14083
14113
|
};
|
|
14084
14114
|
for (const [name2, ServiceClass] of Object.entries(serviceConstructors)) {
|
|
@@ -14342,18 +14372,18 @@ var TinyCloud = class _TinyCloud {
|
|
|
14342
14372
|
const address = this.address();
|
|
14343
14373
|
const chainId = this.chainId();
|
|
14344
14374
|
if (!address || !chainId) {
|
|
14345
|
-
return (0,
|
|
14346
|
-
(0,
|
|
14347
|
-
|
|
14375
|
+
return (0, import_sdk_services7.err)(
|
|
14376
|
+
(0, import_sdk_services7.serviceError)(
|
|
14377
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14348
14378
|
"Must be signed in to ensure public space",
|
|
14349
14379
|
"public-space"
|
|
14350
14380
|
)
|
|
14351
14381
|
);
|
|
14352
14382
|
}
|
|
14353
14383
|
if (!this._serviceContext) {
|
|
14354
|
-
return (0,
|
|
14355
|
-
(0,
|
|
14356
|
-
|
|
14384
|
+
return (0, import_sdk_services7.err)(
|
|
14385
|
+
(0, import_sdk_services7.serviceError)(
|
|
14386
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14357
14387
|
"Services not initialized. Call initializeServices() or signIn() first.",
|
|
14358
14388
|
"public-space"
|
|
14359
14389
|
)
|
|
@@ -14363,9 +14393,9 @@ var TinyCloud = class _TinyCloud {
|
|
|
14363
14393
|
try {
|
|
14364
14394
|
const session = this._serviceContext.session;
|
|
14365
14395
|
if (!session) {
|
|
14366
|
-
return (0,
|
|
14367
|
-
(0,
|
|
14368
|
-
|
|
14396
|
+
return (0, import_sdk_services7.err)(
|
|
14397
|
+
(0, import_sdk_services7.serviceError)(
|
|
14398
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14369
14399
|
"No active session",
|
|
14370
14400
|
"public-space"
|
|
14371
14401
|
)
|
|
@@ -14382,7 +14412,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14382
14412
|
{ method: "POST", headers, body: JSON.stringify({ spaceId }) }
|
|
14383
14413
|
);
|
|
14384
14414
|
if (response.ok) {
|
|
14385
|
-
return (0,
|
|
14415
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14386
14416
|
}
|
|
14387
14417
|
if (response.status === 404) {
|
|
14388
14418
|
const createHeaders = this._serviceContext.invoke(
|
|
@@ -14401,27 +14431,27 @@ var TinyCloud = class _TinyCloud {
|
|
|
14401
14431
|
);
|
|
14402
14432
|
if (!createResponse.ok) {
|
|
14403
14433
|
if (createResponse.status === 409) {
|
|
14404
|
-
return (0,
|
|
14434
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14405
14435
|
}
|
|
14406
|
-
return (0,
|
|
14436
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14407
14437
|
createResponse,
|
|
14408
|
-
|
|
14438
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14409
14439
|
"Failed to create public space",
|
|
14410
14440
|
"public-space"
|
|
14411
14441
|
));
|
|
14412
14442
|
}
|
|
14413
|
-
return (0,
|
|
14443
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14414
14444
|
}
|
|
14415
|
-
return (0,
|
|
14445
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14416
14446
|
response,
|
|
14417
|
-
|
|
14447
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14418
14448
|
"Failed to check public space",
|
|
14419
14449
|
"public-space"
|
|
14420
14450
|
));
|
|
14421
14451
|
} catch (error) {
|
|
14422
|
-
return (0,
|
|
14423
|
-
(0,
|
|
14424
|
-
|
|
14452
|
+
return (0, import_sdk_services7.err)(
|
|
14453
|
+
(0, import_sdk_services7.serviceError)(
|
|
14454
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14425
14455
|
`Network error ensuring public space: ${String(error)}`,
|
|
14426
14456
|
"public-space",
|
|
14427
14457
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14454,8 +14484,8 @@ var TinyCloud = class _TinyCloud {
|
|
|
14454
14484
|
if (!session) {
|
|
14455
14485
|
throw new Error("No active session. Sign in first.");
|
|
14456
14486
|
}
|
|
14457
|
-
const publicKV = new
|
|
14458
|
-
const publicContext = new
|
|
14487
|
+
const publicKV = new import_sdk_services7.KVService({ prefix: "" });
|
|
14488
|
+
const publicContext = new import_sdk_services7.ServiceContext({
|
|
14459
14489
|
invoke: this._serviceContext.invoke,
|
|
14460
14490
|
fetch: this._serviceContext.fetch,
|
|
14461
14491
|
hosts: this._serviceContext.hosts,
|
|
@@ -14488,16 +14518,16 @@ var TinyCloud = class _TinyCloud {
|
|
|
14488
14518
|
const response = await doFetch(url, { method: "GET" });
|
|
14489
14519
|
if (!response.ok) {
|
|
14490
14520
|
if (response.status === 404) {
|
|
14491
|
-
return (0,
|
|
14521
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14492
14522
|
response,
|
|
14493
|
-
|
|
14523
|
+
import_sdk_services7.ErrorCodes.NOT_FOUND,
|
|
14494
14524
|
`Key not found: ${key} in space ${spaceId}`,
|
|
14495
14525
|
"public-space"
|
|
14496
14526
|
));
|
|
14497
14527
|
}
|
|
14498
|
-
return (0,
|
|
14528
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14499
14529
|
response,
|
|
14500
|
-
|
|
14530
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14501
14531
|
"Failed to read public space",
|
|
14502
14532
|
"public-space"
|
|
14503
14533
|
));
|
|
@@ -14514,11 +14544,11 @@ var TinyCloud = class _TinyCloud {
|
|
|
14514
14544
|
data = text3;
|
|
14515
14545
|
}
|
|
14516
14546
|
}
|
|
14517
|
-
return (0,
|
|
14547
|
+
return (0, import_sdk_services7.ok)(data);
|
|
14518
14548
|
} catch (error) {
|
|
14519
|
-
return (0,
|
|
14520
|
-
(0,
|
|
14521
|
-
|
|
14549
|
+
return (0, import_sdk_services7.err)(
|
|
14550
|
+
(0, import_sdk_services7.serviceError)(
|
|
14551
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14522
14552
|
`Network error reading public space: ${String(error)}`,
|
|
14523
14553
|
"public-space",
|
|
14524
14554
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14544,7 +14574,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14544
14574
|
};
|
|
14545
14575
|
|
|
14546
14576
|
// src/account/AccountService.ts
|
|
14547
|
-
var
|
|
14577
|
+
var import_sdk_services8 = require("@tinycloud/sdk-services");
|
|
14548
14578
|
var import_bootstrap3 = require("@tinycloud/bootstrap");
|
|
14549
14579
|
var SERVICE_NAME2 = "account";
|
|
14550
14580
|
var ACCOUNT_INDEX_DB = "account";
|
|
@@ -14592,7 +14622,7 @@ var AccountService = class {
|
|
|
14592
14622
|
applications.push(applicationFromRecord(key, loaded.data.data));
|
|
14593
14623
|
}
|
|
14594
14624
|
applications.sort((a, b) => a.appId.localeCompare(b.appId));
|
|
14595
|
-
return (0,
|
|
14625
|
+
return (0, import_sdk_services8.ok)(applications);
|
|
14596
14626
|
},
|
|
14597
14627
|
get: async (appId) => {
|
|
14598
14628
|
const kvResult = this.accountKV();
|
|
@@ -14600,14 +14630,14 @@ var AccountService = class {
|
|
|
14600
14630
|
const key = applicationKey(appId);
|
|
14601
14631
|
const loaded = await kvResult.data.get(key);
|
|
14602
14632
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14603
|
-
return (0,
|
|
14633
|
+
return (0, import_sdk_services8.ok)(applicationFromRecord(key, loaded.data.data));
|
|
14604
14634
|
},
|
|
14605
14635
|
register: async (manifest, options2 = {}) => {
|
|
14606
14636
|
const manifests = Array.isArray(manifest) ? manifest : [manifest];
|
|
14607
14637
|
const request = composeManifestRequest(manifests);
|
|
14608
14638
|
if (request.registryRecords.length === 0) {
|
|
14609
|
-
return (0,
|
|
14610
|
-
(0,
|
|
14639
|
+
return (0, import_sdk_services8.err)(
|
|
14640
|
+
(0, import_sdk_services8.serviceError)(
|
|
14611
14641
|
"INVALID_MANIFEST",
|
|
14612
14642
|
"Manifest did not produce an account application registry record",
|
|
14613
14643
|
SERVICE_NAME2
|
|
@@ -14641,7 +14671,7 @@ var AccountService = class {
|
|
|
14641
14671
|
registered = applicationFromRecord(record2.key, stored);
|
|
14642
14672
|
await this.upsertApplicationIndexQuietly(registered);
|
|
14643
14673
|
}
|
|
14644
|
-
return (0,
|
|
14674
|
+
return (0, import_sdk_services8.ok)(registered);
|
|
14645
14675
|
},
|
|
14646
14676
|
remove: async (appId) => {
|
|
14647
14677
|
const kvResult = this.accountKV();
|
|
@@ -14649,7 +14679,7 @@ var AccountService = class {
|
|
|
14649
14679
|
const removed = await kvResult.data.delete(applicationKey(appId));
|
|
14650
14680
|
if (!removed.ok) return accountErr(removed.error);
|
|
14651
14681
|
await this.deleteApplicationIndexQuietly(appId);
|
|
14652
|
-
return (0,
|
|
14682
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14653
14683
|
}
|
|
14654
14684
|
};
|
|
14655
14685
|
this.spaces = {
|
|
@@ -14663,7 +14693,7 @@ var AccountService = class {
|
|
|
14663
14693
|
if (canonical.data.allRegistered && options2.refreshIndex !== false) {
|
|
14664
14694
|
await this.replaceSpacesIndexQuietly(canonical.data.spaces);
|
|
14665
14695
|
}
|
|
14666
|
-
return (0,
|
|
14696
|
+
return (0, import_sdk_services8.ok)(canonical.data.spaces);
|
|
14667
14697
|
}
|
|
14668
14698
|
const kvResult = this.accountKV();
|
|
14669
14699
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14676,14 +14706,14 @@ var AccountService = class {
|
|
|
14676
14706
|
spaces.push(spaceFromRecord(key, loaded.data.data));
|
|
14677
14707
|
}
|
|
14678
14708
|
spaces.sort((a, b) => a.name.localeCompare(b.name) || a.spaceId.localeCompare(b.spaceId));
|
|
14679
|
-
return (0,
|
|
14709
|
+
return (0, import_sdk_services8.ok)(spaces);
|
|
14680
14710
|
},
|
|
14681
14711
|
get: async (spaceId) => {
|
|
14682
14712
|
const kvResult = this.accountKV();
|
|
14683
14713
|
if (!kvResult.ok) return kvResult;
|
|
14684
14714
|
const loaded = await kvResult.data.get(spaceKey(spaceId));
|
|
14685
14715
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14686
|
-
return (0,
|
|
14716
|
+
return (0, import_sdk_services8.ok)(spaceFromRecord(spaceKey(spaceId), loaded.data.data));
|
|
14687
14717
|
},
|
|
14688
14718
|
register: async (space) => {
|
|
14689
14719
|
await this.config.ensureAccountSpaceHosted?.();
|
|
@@ -14694,7 +14724,7 @@ var AccountService = class {
|
|
|
14694
14724
|
if (!written.ok) return accountErr(written.error);
|
|
14695
14725
|
const registered = spaceFromRecord(spaceKey(stored.space_id), stored);
|
|
14696
14726
|
await this.upsertSpaceIndexQuietly(registered);
|
|
14697
|
-
return (0,
|
|
14727
|
+
return (0, import_sdk_services8.ok)(registered);
|
|
14698
14728
|
},
|
|
14699
14729
|
/**
|
|
14700
14730
|
* Register multiple spaces in one KV batch write + one multi-row index
|
|
@@ -14707,7 +14737,7 @@ var AccountService = class {
|
|
|
14707
14737
|
* leave the first attempt's blocks orphaned.
|
|
14708
14738
|
*/
|
|
14709
14739
|
registerBatch: async (spaces) => {
|
|
14710
|
-
if (spaces.length === 0) return (0,
|
|
14740
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)({ spaces: [] });
|
|
14711
14741
|
await this.config.ensureAccountSpaceHosted?.();
|
|
14712
14742
|
const kvResult = this.accountKV();
|
|
14713
14743
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14722,7 +14752,7 @@ var AccountService = class {
|
|
|
14722
14752
|
const batchResult = await kvResult.data.batchPut(items);
|
|
14723
14753
|
if (batchResult.ok) {
|
|
14724
14754
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14725
|
-
return (0,
|
|
14755
|
+
return (0, import_sdk_services8.ok)({ spaces: registered });
|
|
14726
14756
|
}
|
|
14727
14757
|
if (!isAmbiguousBatchFailure(batchResult.error)) {
|
|
14728
14758
|
return accountErr(batchResult.error);
|
|
@@ -14735,8 +14765,8 @@ var AccountService = class {
|
|
|
14735
14765
|
}
|
|
14736
14766
|
}
|
|
14737
14767
|
if (reconcileFailures.length > 0) {
|
|
14738
|
-
return (0,
|
|
14739
|
-
(0,
|
|
14768
|
+
return (0, import_sdk_services8.err)(
|
|
14769
|
+
(0, import_sdk_services8.serviceError)(
|
|
14740
14770
|
"KV_BATCH_RECONCILE_FAILED",
|
|
14741
14771
|
`KV batch write for ${items.length} space(s) failed ambiguously (${batchResult.error.message}) and per-space reconciliation also failed for: ${reconcileFailures.join("; ")}`,
|
|
14742
14772
|
SERVICE_NAME2,
|
|
@@ -14748,7 +14778,7 @@ var AccountService = class {
|
|
|
14748
14778
|
`[AccountService] KV batch write for ${items.length} space(s) returned an ambiguous error and was reconciled via per-space fallback. Original error: ${batchResult.error.message}`
|
|
14749
14779
|
);
|
|
14750
14780
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14751
|
-
return (0,
|
|
14781
|
+
return (0, import_sdk_services8.ok)({ spaces: registered, recoveredFromBatchError: batchResult.error });
|
|
14752
14782
|
},
|
|
14753
14783
|
/**
|
|
14754
14784
|
* Register only spaces without a registry record (TC-800). Existing
|
|
@@ -14756,7 +14786,7 @@ var AccountService = class {
|
|
|
14756
14786
|
* Bootstrap repair uses this on populated accounts.
|
|
14757
14787
|
*/
|
|
14758
14788
|
registerMissing: async (spaces) => {
|
|
14759
|
-
if (spaces.length === 0) return (0,
|
|
14789
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)([]);
|
|
14760
14790
|
await this.config.ensureAccountSpaceHosted?.();
|
|
14761
14791
|
const kvResult = this.accountKV();
|
|
14762
14792
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14772,15 +14802,15 @@ var AccountService = class {
|
|
|
14772
14802
|
const key = keys[i];
|
|
14773
14803
|
const result = byKey.get(key);
|
|
14774
14804
|
if (!result) {
|
|
14775
|
-
return (0,
|
|
14776
|
-
|
|
14805
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14806
|
+
import_sdk_services8.ErrorCodes.NETWORK_ERROR,
|
|
14777
14807
|
`KV batch read omitted requested key ${JSON.stringify(key)}`,
|
|
14778
14808
|
SERVICE_NAME2
|
|
14779
14809
|
));
|
|
14780
14810
|
}
|
|
14781
14811
|
if (result.ok) {
|
|
14782
14812
|
final[i] = spaceFromRecord(key, result.data.data);
|
|
14783
|
-
} else if (result.error.code ===
|
|
14813
|
+
} else if (result.error.code === import_sdk_services8.ErrorCodes.KV_NOT_FOUND) {
|
|
14784
14814
|
missing.push({ index: i, key, record: stored[i] });
|
|
14785
14815
|
} else {
|
|
14786
14816
|
return accountErr(result.error);
|
|
@@ -14788,21 +14818,21 @@ var AccountService = class {
|
|
|
14788
14818
|
}
|
|
14789
14819
|
const creates = await Promise.all(missing.map(async ({ index, key, record: record2 }) => {
|
|
14790
14820
|
const written = await kv.put(key, record2, { ifNoneMatch: "*" });
|
|
14791
|
-
if (written.ok) return { index, result: (0,
|
|
14821
|
+
if (written.ok) return { index, result: (0, import_sdk_services8.ok)(spaceFromRecord(key, record2)) };
|
|
14792
14822
|
const raced = await kv.get(key);
|
|
14793
|
-
if (raced.ok) return { index, result: (0,
|
|
14794
|
-
return { index, result: (0,
|
|
14823
|
+
if (raced.ok) return { index, result: (0, import_sdk_services8.ok)(spaceFromRecord(key, raced.data.data)) };
|
|
14824
|
+
return { index, result: (0, import_sdk_services8.err)(written.error) };
|
|
14795
14825
|
}));
|
|
14796
14826
|
for (const { index, result } of creates) {
|
|
14797
14827
|
if (!result.ok) return accountErr(result.error);
|
|
14798
14828
|
final[index] = result.data;
|
|
14799
14829
|
}
|
|
14800
14830
|
await this.upsertSpacesIndexQuietly(final);
|
|
14801
|
-
return (0,
|
|
14831
|
+
return (0, import_sdk_services8.ok)(final);
|
|
14802
14832
|
},
|
|
14803
14833
|
syncAccessible: async () => {
|
|
14804
14834
|
const synced = await this.syncAccessibleSpaces({ tolerateStorageFull: false });
|
|
14805
|
-
return synced.ok ? (0,
|
|
14835
|
+
return synced.ok ? (0, import_sdk_services8.ok)(synced.data.spaces) : synced;
|
|
14806
14836
|
},
|
|
14807
14837
|
remove: async (spaceId) => {
|
|
14808
14838
|
const kvResult = this.accountKV();
|
|
@@ -14810,21 +14840,21 @@ var AccountService = class {
|
|
|
14810
14840
|
const removed = await kvResult.data.delete(spaceKey(spaceId));
|
|
14811
14841
|
if (!removed.ok) return accountErr(removed.error);
|
|
14812
14842
|
await this.deleteSpaceIndexQuietly(spaceId);
|
|
14813
|
-
return (0,
|
|
14843
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14814
14844
|
}
|
|
14815
14845
|
};
|
|
14816
14846
|
this.delegations = {
|
|
14817
14847
|
query: async (options2 = {}) => {
|
|
14818
14848
|
const manager = this.config.getDelegationManager?.();
|
|
14819
14849
|
if (!manager) {
|
|
14820
|
-
return (0,
|
|
14850
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14821
14851
|
"NOT_INITIALIZED",
|
|
14822
14852
|
"Delegation history requires an authenticated delegation manager",
|
|
14823
14853
|
SERVICE_NAME2
|
|
14824
14854
|
));
|
|
14825
14855
|
}
|
|
14826
14856
|
const queried = await manager.query(options2);
|
|
14827
|
-
return queried.ok ? (0,
|
|
14857
|
+
return queried.ok ? (0, import_sdk_services8.ok)(queried.data) : accountErr(queried.error);
|
|
14828
14858
|
},
|
|
14829
14859
|
list: async (options2 = {}) => {
|
|
14830
14860
|
if (options2.preferIndex) {
|
|
@@ -14858,17 +14888,17 @@ var AccountService = class {
|
|
|
14858
14888
|
}
|
|
14859
14889
|
}
|
|
14860
14890
|
delegations.sort((a, b) => a.spaceId.localeCompare(b.spaceId) || a.cid.localeCompare(b.cid));
|
|
14861
|
-
return (0,
|
|
14891
|
+
return (0, import_sdk_services8.ok)(delegations);
|
|
14862
14892
|
},
|
|
14863
14893
|
revoke: async (input) => {
|
|
14864
14894
|
const cid2 = typeof input === "string" ? input : input.cid;
|
|
14865
14895
|
const manager = this.config.getDelegationManager?.();
|
|
14866
14896
|
if (manager) {
|
|
14867
14897
|
const revoked2 = await manager.revoke(cid2);
|
|
14868
|
-
return revoked2.ok ? (0,
|
|
14898
|
+
return revoked2.ok ? (0, import_sdk_services8.ok)(revoked2.data) : accountErr(revoked2.error);
|
|
14869
14899
|
}
|
|
14870
14900
|
if (typeof input === "string") {
|
|
14871
|
-
return (0,
|
|
14901
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14872
14902
|
"NOT_INITIALIZED",
|
|
14873
14903
|
"CID-only revocation requires an authenticated delegation manager",
|
|
14874
14904
|
SERVICE_NAME2
|
|
@@ -14878,7 +14908,7 @@ var AccountService = class {
|
|
|
14878
14908
|
if (!space.ok) return space;
|
|
14879
14909
|
const revoked = await this.config.getSpaces().get(space.data.id).delegations.revoke(cid2);
|
|
14880
14910
|
if (!revoked.ok) return accountErr(revoked.error);
|
|
14881
|
-
return (0,
|
|
14911
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14882
14912
|
}
|
|
14883
14913
|
};
|
|
14884
14914
|
this.index = {
|
|
@@ -14887,7 +14917,7 @@ var AccountService = class {
|
|
|
14887
14917
|
if (!dbResult.ok) return dbResult;
|
|
14888
14918
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14889
14919
|
if (!schema.ok) return schema;
|
|
14890
|
-
return (0,
|
|
14920
|
+
return (0, import_sdk_services8.ok)({ database: ACCOUNT_INDEX_DB });
|
|
14891
14921
|
},
|
|
14892
14922
|
rebuild: async () => {
|
|
14893
14923
|
const dbResult = this.accountDb();
|
|
@@ -14969,7 +14999,7 @@ var AccountService = class {
|
|
|
14969
14999
|
];
|
|
14970
15000
|
const rebuilt = await dbResult.data.batch(statements);
|
|
14971
15001
|
if (!rebuilt.ok) return accountErr(rebuilt.error);
|
|
14972
|
-
return (0,
|
|
15002
|
+
return (0, import_sdk_services8.ok)({
|
|
14973
15003
|
database: ACCOUNT_INDEX_DB,
|
|
14974
15004
|
applications: applications.data.length,
|
|
14975
15005
|
spaces: spaces.data.length,
|
|
@@ -14985,7 +15015,7 @@ var AccountService = class {
|
|
|
14985
15015
|
"SELECT applications.app_id, name, description, updated_at, manifest_json, application_state.manifest_hash FROM applications LEFT JOIN application_state ON applications.app_id = application_state.app_id ORDER BY applications.app_id"
|
|
14986
15016
|
);
|
|
14987
15017
|
if (!queried.ok) return accountErr(queried.error);
|
|
14988
|
-
return (0,
|
|
15018
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedApplicationFromRow));
|
|
14989
15019
|
}
|
|
14990
15020
|
},
|
|
14991
15021
|
spaces: {
|
|
@@ -14996,7 +15026,7 @@ var AccountService = class {
|
|
|
14996
15026
|
"SELECT space_id, name, owner_did, type, permissions_json, status, registered_at, updated_at, expires_at FROM spaces ORDER BY name, space_id"
|
|
14997
15027
|
);
|
|
14998
15028
|
if (!queried.ok) return accountErr(queried.error);
|
|
14999
|
-
return (0,
|
|
15029
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedSpaceFromRow));
|
|
15000
15030
|
}
|
|
15001
15031
|
},
|
|
15002
15032
|
delegations: {
|
|
@@ -15018,7 +15048,7 @@ var AccountService = class {
|
|
|
15018
15048
|
params
|
|
15019
15049
|
);
|
|
15020
15050
|
if (!queried.ok) return accountErr(queried.error);
|
|
15021
|
-
return (0,
|
|
15051
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedDelegationFromRow));
|
|
15022
15052
|
}
|
|
15023
15053
|
},
|
|
15024
15054
|
query: async (sql, params) => {
|
|
@@ -15026,7 +15056,7 @@ var AccountService = class {
|
|
|
15026
15056
|
if (!dbResult.ok) return dbResult;
|
|
15027
15057
|
const queried = await dbResult.data.query(sql, params);
|
|
15028
15058
|
if (!queried.ok) return accountErr(queried.error);
|
|
15029
|
-
return (0,
|
|
15059
|
+
return (0, import_sdk_services8.ok)(queried.data);
|
|
15030
15060
|
},
|
|
15031
15061
|
status: async () => {
|
|
15032
15062
|
const dbResult = this.accountDb();
|
|
@@ -15036,11 +15066,11 @@ var AccountService = class {
|
|
|
15036
15066
|
);
|
|
15037
15067
|
if (!queried.ok) {
|
|
15038
15068
|
if (isMissingIndexError(queried.error)) {
|
|
15039
|
-
return (0,
|
|
15069
|
+
return (0, import_sdk_services8.ok)({ database: ACCOUNT_INDEX_DB, state: "missing", sources: [] });
|
|
15040
15070
|
}
|
|
15041
15071
|
return accountErr(queried.error);
|
|
15042
15072
|
}
|
|
15043
|
-
return (0,
|
|
15073
|
+
return (0, import_sdk_services8.ok)({
|
|
15044
15074
|
database: ACCOUNT_INDEX_DB,
|
|
15045
15075
|
state: "ready",
|
|
15046
15076
|
sources: queried.data.rows.map(([source, syncedAt, count]) => ({
|
|
@@ -15059,7 +15089,7 @@ var AccountService = class {
|
|
|
15059
15089
|
if (!delegations.ok) return delegations;
|
|
15060
15090
|
const spaces = await this.spaces.list();
|
|
15061
15091
|
if (!spaces.ok) return spaces;
|
|
15062
|
-
return (0,
|
|
15092
|
+
return (0, import_sdk_services8.ok)({
|
|
15063
15093
|
did: this.config.getDid(),
|
|
15064
15094
|
host: this.config.getHost(),
|
|
15065
15095
|
primarySpaceId: this.config.getPrimarySpaceId(),
|
|
@@ -15073,28 +15103,28 @@ var AccountService = class {
|
|
|
15073
15103
|
accountKV() {
|
|
15074
15104
|
const accountSpaceId = this.config.getAccountSpaceId();
|
|
15075
15105
|
if (!accountSpaceId) {
|
|
15076
|
-
return (0,
|
|
15077
|
-
(0,
|
|
15106
|
+
return (0, import_sdk_services8.err)(
|
|
15107
|
+
(0, import_sdk_services8.serviceError)(
|
|
15078
15108
|
"ACCOUNT_SPACE_UNAVAILABLE",
|
|
15079
15109
|
"Account space is unavailable. Sign in with a wallet-backed profile first.",
|
|
15080
15110
|
SERVICE_NAME2
|
|
15081
15111
|
)
|
|
15082
15112
|
);
|
|
15083
15113
|
}
|
|
15084
|
-
return (0,
|
|
15114
|
+
return (0, import_sdk_services8.ok)(this.config.getSpaces().get(accountSpaceId).kv);
|
|
15085
15115
|
}
|
|
15086
15116
|
accountDb() {
|
|
15087
15117
|
const db = this.config.getAccountDb?.();
|
|
15088
15118
|
if (!db) {
|
|
15089
|
-
return (0,
|
|
15090
|
-
(0,
|
|
15119
|
+
return (0, import_sdk_services8.err)(
|
|
15120
|
+
(0, import_sdk_services8.serviceError)(
|
|
15091
15121
|
"ACCOUNT_INDEX_UNAVAILABLE",
|
|
15092
15122
|
"Account index database is unavailable. Sign in with a wallet-backed profile first.",
|
|
15093
15123
|
SERVICE_NAME2
|
|
15094
15124
|
)
|
|
15095
15125
|
);
|
|
15096
15126
|
}
|
|
15097
|
-
return (0,
|
|
15127
|
+
return (0, import_sdk_services8.ok)(db);
|
|
15098
15128
|
}
|
|
15099
15129
|
async indexHasApplicationHash(appId, manifestHash) {
|
|
15100
15130
|
const dbResult = this.accountDb();
|
|
@@ -15112,7 +15142,7 @@ var AccountService = class {
|
|
|
15112
15142
|
}
|
|
15113
15143
|
async upsertApplicationIndex(app) {
|
|
15114
15144
|
const dbResult = this.accountDb();
|
|
15115
|
-
if (!dbResult.ok) return (0,
|
|
15145
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15116
15146
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15117
15147
|
if (!schema.ok) return schema;
|
|
15118
15148
|
const updatedAt = app.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -15134,14 +15164,14 @@ var AccountService = class {
|
|
|
15134
15164
|
}
|
|
15135
15165
|
]);
|
|
15136
15166
|
if (!written.ok) return accountErr(written.error);
|
|
15137
|
-
return (0,
|
|
15167
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15138
15168
|
}
|
|
15139
15169
|
async deleteApplicationIndexQuietly(appId) {
|
|
15140
15170
|
await ignoreIndexFailure(() => this.deleteApplicationIndex(appId));
|
|
15141
15171
|
}
|
|
15142
15172
|
async deleteApplicationIndex(appId) {
|
|
15143
15173
|
const dbResult = this.accountDb();
|
|
15144
|
-
if (!dbResult.ok) return (0,
|
|
15174
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15145
15175
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15146
15176
|
if (!schema.ok) return schema;
|
|
15147
15177
|
const deleted = await dbResult.data.batch([
|
|
@@ -15149,14 +15179,14 @@ var AccountService = class {
|
|
|
15149
15179
|
{ sql: "DELETE FROM application_state WHERE app_id = ?", params: [appId] }
|
|
15150
15180
|
]);
|
|
15151
15181
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
15152
|
-
return (0,
|
|
15182
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15153
15183
|
}
|
|
15154
15184
|
async upsertSpaceIndexQuietly(space) {
|
|
15155
15185
|
await ignoreIndexFailure(() => this.upsertSpaceIndex(space));
|
|
15156
15186
|
}
|
|
15157
15187
|
async upsertSpaceIndex(space) {
|
|
15158
15188
|
const dbResult = this.accountDb();
|
|
15159
|
-
if (!dbResult.ok) return (0,
|
|
15189
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15160
15190
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15161
15191
|
if (!schema.ok) return schema;
|
|
15162
15192
|
const updatedAt = space.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -15177,7 +15207,7 @@ var AccountService = class {
|
|
|
15177
15207
|
}
|
|
15178
15208
|
]);
|
|
15179
15209
|
if (!written.ok) return accountErr(written.error);
|
|
15180
|
-
return (0,
|
|
15210
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15181
15211
|
}
|
|
15182
15212
|
async upsertSpacesIndexQuietly(spaces) {
|
|
15183
15213
|
await ignoreIndexFailure(() => this.upsertSpacesIndex(spaces));
|
|
@@ -15191,9 +15221,9 @@ var AccountService = class {
|
|
|
15191
15221
|
* atomically: all rows or none.
|
|
15192
15222
|
*/
|
|
15193
15223
|
async upsertSpacesIndex(spaces) {
|
|
15194
|
-
if (spaces.length === 0) return (0,
|
|
15224
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)(void 0);
|
|
15195
15225
|
const dbResult = this.accountDb();
|
|
15196
|
-
if (!dbResult.ok) return (0,
|
|
15226
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15197
15227
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15198
15228
|
if (!schema.ok) return schema;
|
|
15199
15229
|
const placeholders = spaces.map(() => "(?, ?, ?, ?, ?, ?, ?, ?, ?)").join(", ");
|
|
@@ -15218,21 +15248,21 @@ var AccountService = class {
|
|
|
15218
15248
|
}
|
|
15219
15249
|
]);
|
|
15220
15250
|
if (!written.ok) return accountErr(written.error);
|
|
15221
|
-
return (0,
|
|
15251
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15222
15252
|
}
|
|
15223
15253
|
async deleteSpaceIndexQuietly(spaceId) {
|
|
15224
15254
|
await ignoreIndexFailure(() => this.deleteSpaceIndex(spaceId));
|
|
15225
15255
|
}
|
|
15226
15256
|
async deleteSpaceIndex(spaceId) {
|
|
15227
15257
|
const dbResult = this.accountDb();
|
|
15228
|
-
if (!dbResult.ok) return (0,
|
|
15258
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15229
15259
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15230
15260
|
if (!schema.ok) return schema;
|
|
15231
15261
|
const deleted = await dbResult.data.batch([
|
|
15232
15262
|
{ sql: "DELETE FROM spaces WHERE space_id = ?", params: [spaceId] }
|
|
15233
15263
|
]);
|
|
15234
15264
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
15235
|
-
return (0,
|
|
15265
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15236
15266
|
}
|
|
15237
15267
|
/**
|
|
15238
15268
|
* Register every space the session can reach and return them. With
|
|
@@ -15252,7 +15282,7 @@ var AccountService = class {
|
|
|
15252
15282
|
spaces.push(result.data);
|
|
15253
15283
|
continue;
|
|
15254
15284
|
}
|
|
15255
|
-
if (!options2.tolerateStorageFull || !(0,
|
|
15285
|
+
if (!options2.tolerateStorageFull || !(0, import_sdk_services8.isStorageFullError)(result.error)) {
|
|
15256
15286
|
return result;
|
|
15257
15287
|
}
|
|
15258
15288
|
allRegistered = false;
|
|
@@ -15260,18 +15290,18 @@ var AccountService = class {
|
|
|
15260
15290
|
const record2 = spaceRecordFromInput(space);
|
|
15261
15291
|
spaces.push(spaceFromRecord(spaceKey(record2.space_id), record2));
|
|
15262
15292
|
}
|
|
15263
|
-
return (0,
|
|
15293
|
+
return (0, import_sdk_services8.ok)({ spaces, allRegistered });
|
|
15264
15294
|
}
|
|
15265
15295
|
async resolveSpace(space) {
|
|
15266
15296
|
const listed = await this.config.getSpaces().list();
|
|
15267
15297
|
if (!listed.ok) return accountErr(listed.error);
|
|
15268
15298
|
const found = listed.data.find((candidate) => candidate.id === space || candidate.name === space);
|
|
15269
15299
|
if (!found) {
|
|
15270
|
-
return (0,
|
|
15271
|
-
(0,
|
|
15300
|
+
return (0, import_sdk_services8.err)(
|
|
15301
|
+
(0, import_sdk_services8.serviceError)("SPACE_NOT_FOUND", `No account space found for ${JSON.stringify(space)}`, SERVICE_NAME2)
|
|
15272
15302
|
);
|
|
15273
15303
|
}
|
|
15274
|
-
return (0,
|
|
15304
|
+
return (0, import_sdk_services8.ok)(found);
|
|
15275
15305
|
}
|
|
15276
15306
|
async replaceApplicationsIndexQuietly(applications) {
|
|
15277
15307
|
await ignoreIndexFailure(async () => {
|
|
@@ -15413,7 +15443,7 @@ var AccountService = class {
|
|
|
15413
15443
|
]
|
|
15414
15444
|
});
|
|
15415
15445
|
if (!migrated.ok) return accountErr(migrated.error);
|
|
15416
|
-
return (0,
|
|
15446
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15417
15447
|
}
|
|
15418
15448
|
};
|
|
15419
15449
|
function applicationKey(appId) {
|
|
@@ -15569,17 +15599,17 @@ function mapDelegation(delegation, space, direction) {
|
|
|
15569
15599
|
};
|
|
15570
15600
|
}
|
|
15571
15601
|
function accountErr(error) {
|
|
15572
|
-
return (0,
|
|
15602
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(error.code, error.message, SERVICE_NAME2, { cause: error.cause, meta: error.meta }));
|
|
15573
15603
|
}
|
|
15574
15604
|
function isMissingIndexError(error) {
|
|
15575
15605
|
return /no such table:/i.test(error.message);
|
|
15576
15606
|
}
|
|
15577
15607
|
var AMBIGUOUS_WRITE_STATUSES = /* @__PURE__ */ new Set([500, 502, 503, 504, 520, 522, 524]);
|
|
15578
15608
|
function isAmbiguousBatchFailure(error) {
|
|
15579
|
-
if (error.code ===
|
|
15609
|
+
if (error.code === import_sdk_services8.ErrorCodes.NETWORK_ERROR || error.code === import_sdk_services8.ErrorCodes.TIMEOUT) {
|
|
15580
15610
|
return error.meta?.requestMayHaveDispatched === true;
|
|
15581
15611
|
}
|
|
15582
|
-
if (error.code ===
|
|
15612
|
+
if (error.code === import_sdk_services8.ErrorCodes.KV_WRITE_FAILED) {
|
|
15583
15613
|
const status = error.meta?.status;
|
|
15584
15614
|
return typeof status === "number" && AMBIGUOUS_WRITE_STATUSES.has(status);
|
|
15585
15615
|
}
|
|
@@ -15593,7 +15623,7 @@ async function ignoreIndexFailure(task) {
|
|
|
15593
15623
|
}
|
|
15594
15624
|
|
|
15595
15625
|
// src/index.ts
|
|
15596
|
-
var
|
|
15626
|
+
var import_sdk_services10 = require("@tinycloud/sdk-services");
|
|
15597
15627
|
|
|
15598
15628
|
// src/space.ts
|
|
15599
15629
|
async function fetchPeerId(host, spaceId, signal) {
|
|
@@ -15698,7 +15728,7 @@ async function postSessionActivation(host, delegationHeader, signal) {
|
|
|
15698
15728
|
}
|
|
15699
15729
|
|
|
15700
15730
|
// src/authorization/CapabilityKeyRegistry.ts
|
|
15701
|
-
var
|
|
15731
|
+
var import_sdk_services9 = require("@tinycloud/sdk-services");
|
|
15702
15732
|
var SERVICE_NAME3 = "capability-key-registry";
|
|
15703
15733
|
var CapabilityKeyRegistryErrorCodes = {
|
|
15704
15734
|
/** Key not found in registry */
|
|
@@ -15923,8 +15953,8 @@ var CapabilityKeyRegistry = class {
|
|
|
15923
15953
|
revokeDelegation(cid2) {
|
|
15924
15954
|
const stored = this.store.byCid.get(cid2);
|
|
15925
15955
|
if (!stored || stored.length === 0) {
|
|
15926
|
-
return (0,
|
|
15927
|
-
(0,
|
|
15956
|
+
return (0, import_sdk_services9.err)(
|
|
15957
|
+
(0, import_sdk_services9.serviceError)(
|
|
15928
15958
|
CapabilityKeyRegistryErrorCodes.KEY_NOT_FOUND,
|
|
15929
15959
|
`Delegation not found: ${cid2}`,
|
|
15930
15960
|
SERVICE_NAME3
|
|
@@ -15944,7 +15974,7 @@ var CapabilityKeyRegistry = class {
|
|
|
15944
15974
|
}
|
|
15945
15975
|
}
|
|
15946
15976
|
}
|
|
15947
|
-
return (0,
|
|
15977
|
+
return (0, import_sdk_services9.ok)(void 0);
|
|
15948
15978
|
}
|
|
15949
15979
|
// ===========================================================================
|
|
15950
15980
|
// Search
|