@tinycloud/sdk-core 3.1.0-beta.4 → 3.1.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/delegations/index.cjs +22 -7
- package/dist/delegations/index.cjs.map +1 -1
- package/dist/delegations/index.d.cts +2 -2
- package/dist/delegations/index.d.ts +2 -2
- package/dist/delegations/index.js +20 -5
- package/dist/delegations/index.js.map +1 -1
- package/dist/index.cjs +354 -340
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +177 -161
- package/dist/index.js.map +1 -1
- package/dist/policy/index.cjs +27 -10
- package/dist/policy/index.cjs.map +1 -1
- package/dist/policy/index.js +27 -10
- package/dist/policy/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/{recipient-types.schema-D9AI8tjN.d.cts → recipient-types.schema-_JkBDZB6.d.cts} +2 -2
- package/dist/{recipient-types.schema-D9AI8tjN.d.ts → recipient-types.schema-_JkBDZB6.d.ts} +2 -2
package/dist/index.cjs
CHANGED
|
@@ -73,13 +73,13 @@ __export(index_exports, {
|
|
|
73
73
|
ClientSessionSchema: () => ClientSessionSchema,
|
|
74
74
|
CloudLocationResolutionError: () => CloudLocationResolutionError,
|
|
75
75
|
CredentialError: () => CredentialError,
|
|
76
|
-
DECRYPT_ACTION: () =>
|
|
77
|
-
DECRYPT_FACT_TYPE: () =>
|
|
78
|
-
DECRYPT_RESULT_TYPE: () =>
|
|
76
|
+
DECRYPT_ACTION: () => import_sdk_services9.DECRYPT_ACTION,
|
|
77
|
+
DECRYPT_FACT_TYPE: () => import_sdk_services9.DECRYPT_FACT_TYPE,
|
|
78
|
+
DECRYPT_RESULT_TYPE: () => import_sdk_services9.DECRYPT_RESULT_TYPE,
|
|
79
79
|
DEFAULT_DEFAULTS: () => DEFAULT_DEFAULTS,
|
|
80
|
-
DEFAULT_ENCRYPTION_ALG: () =>
|
|
80
|
+
DEFAULT_ENCRYPTION_ALG: () => import_sdk_services9.DEFAULT_ENCRYPTION_ALG,
|
|
81
81
|
DEFAULT_EXPIRY: () => DEFAULT_EXPIRY,
|
|
82
|
-
DEFAULT_KEY_VERSION: () =>
|
|
82
|
+
DEFAULT_KEY_VERSION: () => import_sdk_services9.DEFAULT_KEY_VERSION,
|
|
83
83
|
DEFAULT_KNOWLEDGE_ROOT: () => DEFAULT_KNOWLEDGE_ROOT,
|
|
84
84
|
DEFAULT_LOCAL_NODE_PIN_STORAGE_KEY: () => DEFAULT_LOCAL_NODE_PIN_STORAGE_KEY,
|
|
85
85
|
DEFAULT_LOCAL_NODE_URL: () => DEFAULT_LOCAL_NODE_URL,
|
|
@@ -90,36 +90,36 @@ __export(index_exports, {
|
|
|
90
90
|
DEFAULT_TINYCLOUD_LOCATION_REGISTRY_URL: () => DEFAULT_TINYCLOUD_LOCATION_REGISTRY_URL,
|
|
91
91
|
DELIVERY_ADMISSION_DOMAIN: () => DELIVERY_ADMISSION_DOMAIN,
|
|
92
92
|
DUCKDB: () => import_bootstrap4.DUCKDB,
|
|
93
|
-
DataVaultService: () =>
|
|
94
|
-
DatabaseHandle: () =>
|
|
95
|
-
DecryptTransportResponseError: () =>
|
|
93
|
+
DataVaultService: () => import_sdk_services9.DataVaultService,
|
|
94
|
+
DatabaseHandle: () => import_sdk_services9.DatabaseHandle,
|
|
95
|
+
DecryptTransportResponseError: () => import_sdk_services9.DecryptTransportResponseError,
|
|
96
96
|
DelegationErrorCodes: () => DelegationErrorCodes,
|
|
97
97
|
DelegationManager: () => DelegationManager,
|
|
98
|
-
DuckDbAction: () =>
|
|
99
|
-
DuckDbDatabaseHandle: () =>
|
|
100
|
-
DuckDbService: () =>
|
|
98
|
+
DuckDbAction: () => import_sdk_services9.DuckDbAction,
|
|
99
|
+
DuckDbDatabaseHandle: () => import_sdk_services9.DuckDbDatabaseHandle,
|
|
100
|
+
DuckDbService: () => import_sdk_services9.DuckDbService,
|
|
101
101
|
ED25519_JCS_SIGNATURE_SUITE: () => ED25519_JCS_SIGNATURE_SUITE,
|
|
102
102
|
EIP191_JCS_SIGNATURE_SUITE: () => EIP191_JCS_SIGNATURE_SUITE,
|
|
103
103
|
EMAIL_CREDENTIAL_MAX_AGE_SECONDS: () => EMAIL_CREDENTIAL_MAX_AGE_SECONDS,
|
|
104
104
|
EMAIL_DOMAIN_CREDENTIAL_MAX_AGE_SECONDS: () => EMAIL_DOMAIN_CREDENTIAL_MAX_AGE_SECONDS,
|
|
105
105
|
ENCRYPTION: () => import_bootstrap4.ENCRYPTION,
|
|
106
106
|
ENCRYPTION_MANIFEST_SPACE: () => ENCRYPTION_MANIFEST_SPACE,
|
|
107
|
-
ENCRYPTION_NETWORK_URN_PREFIX: () =>
|
|
107
|
+
ENCRYPTION_NETWORK_URN_PREFIX: () => import_sdk_services9.ENCRYPTION_NETWORK_URN_PREFIX,
|
|
108
108
|
ENCRYPTION_PERMISSION_SERVICE: () => ENCRYPTION_PERMISSION_SERVICE,
|
|
109
|
-
ENCRYPTION_SERVICE: () =>
|
|
110
|
-
ENCRYPTION_SERVICE_SHORT: () =>
|
|
111
|
-
ENVELOPE_VERSION: () =>
|
|
109
|
+
ENCRYPTION_SERVICE: () => import_sdk_services9.ENCRYPTION_SERVICE,
|
|
110
|
+
ENCRYPTION_SERVICE_SHORT: () => import_sdk_services9.ENCRYPTION_SERVICE_SHORT,
|
|
111
|
+
ENVELOPE_VERSION: () => import_sdk_services9.ENVELOPE_VERSION,
|
|
112
112
|
EXPIRY: () => EXPIRY,
|
|
113
|
-
EncryptionService: () =>
|
|
113
|
+
EncryptionService: () => import_sdk_services9.EncryptionService,
|
|
114
114
|
EnsDataSchema: () => EnsDataSchema,
|
|
115
|
-
ErrorCodes: () =>
|
|
115
|
+
ErrorCodes: () => import_sdk_services9.ErrorCodes,
|
|
116
116
|
HOLDER_BINDING_DOMAIN: () => HOLDER_BINDING_DOMAIN,
|
|
117
117
|
HOLDER_KEY_BINDING_PRESENTATION_SCHEMA: () => HOLDER_KEY_BINDING_PRESENTATION_SCHEMA,
|
|
118
118
|
HOOKS: () => import_bootstrap4.HOOKS,
|
|
119
|
-
HooksService: () =>
|
|
119
|
+
HooksService: () => import_sdk_services9.HooksService,
|
|
120
120
|
IdentityParseError: () => IdentityParseError,
|
|
121
121
|
KV: () => import_bootstrap4.KV,
|
|
122
|
-
KVService: () =>
|
|
122
|
+
KVService: () => import_sdk_services9.KVService,
|
|
123
123
|
LAST_V2_CREATE_AT: () => LAST_V2_CREATE_AT,
|
|
124
124
|
LAST_V2_READ_AT: () => LAST_V2_READ_AT,
|
|
125
125
|
LISTEN_SQL_STATEMENT_CATALOG: () => LISTEN_SQL_STATEMENT_CATALOG,
|
|
@@ -138,8 +138,8 @@ __export(index_exports, {
|
|
|
138
138
|
MemorySenderShareRecordStorage: () => MemorySenderShareRecordStorage,
|
|
139
139
|
MemoryShareCache: () => MemoryShareCache,
|
|
140
140
|
NATIVE_PROJECTION_V1_DOMAIN: () => NATIVE_PROJECTION_V1_DOMAIN,
|
|
141
|
-
NETWORK_NAME_PATTERN: () =>
|
|
142
|
-
NetworkIdError: () =>
|
|
141
|
+
NETWORK_NAME_PATTERN: () => import_sdk_services9.NETWORK_NAME_PATTERN,
|
|
142
|
+
NetworkIdError: () => import_sdk_services9.NetworkIdError,
|
|
143
143
|
OPENKEY_ACTION_ID_SEPARATOR: () => OPENKEY_ACTION_ID_SEPARATOR,
|
|
144
144
|
OWNER_NODE_BINDING_TIMEOUT_MS: () => OWNER_NODE_BINDING_TIMEOUT_MS,
|
|
145
145
|
OpenKeyManageKeyError: () => OpenKeyManageKeyError,
|
|
@@ -166,7 +166,7 @@ __export(index_exports, {
|
|
|
166
166
|
POLICY_V2_SCHEMA: () => POLICY_V2_SCHEMA,
|
|
167
167
|
PORTABLE_DELEGATION_SCHEMA: () => PORTABLE_DELEGATION_SCHEMA,
|
|
168
168
|
PermissionNotInManifestError: () => PermissionNotInManifestError,
|
|
169
|
-
PrefixedKVService: () =>
|
|
169
|
+
PrefixedKVService: () => import_sdk_services9.PrefixedKVService,
|
|
170
170
|
ProtocolMismatchError: () => ProtocolMismatchError,
|
|
171
171
|
REQUESTER_ENGINE_RETRY_ATTEMPTS: () => REQUESTER_ENGINE_RETRY_ATTEMPTS,
|
|
172
172
|
REQUESTER_ENGINE_RETRY_MAX_DELAY_MS: () => REQUESTER_ENGINE_RETRY_MAX_DELAY_MS,
|
|
@@ -177,19 +177,19 @@ __export(index_exports, {
|
|
|
177
177
|
ROOT_STATUS_RENEWAL_V1_DOMAIN: () => ROOT_STATUS_RENEWAL_V1_DOMAIN,
|
|
178
178
|
ROOT_STATUS_V1_DOMAIN: () => ROOT_STATUS_V1_DOMAIN,
|
|
179
179
|
SECRETS_SPACE: () => SECRETS_SPACE,
|
|
180
|
-
SECRET_NAME_RE: () =>
|
|
180
|
+
SECRET_NAME_RE: () => import_sdk_services9.SECRET_NAME_RE,
|
|
181
181
|
SECRET_RECORDS_SCHEMA: () => import_bootstrap4.SECRET_RECORDS_SCHEMA,
|
|
182
182
|
SERVICE_LONG_TO_SHORT: () => SERVICE_LONG_TO_SHORT,
|
|
183
183
|
SERVICE_SHORT_TO_LONG: () => SERVICE_SHORT_TO_LONG,
|
|
184
184
|
SPACE: () => import_bootstrap4.SPACE,
|
|
185
185
|
SQL: () => import_bootstrap4.SQL,
|
|
186
|
-
SQLAction: () =>
|
|
187
|
-
SQLService: () =>
|
|
188
|
-
STORAGE_FULL_MESSAGE: () =>
|
|
189
|
-
STORAGE_WRITE_TOO_LARGE_MESSAGE: () =>
|
|
190
|
-
SecretsService: () =>
|
|
186
|
+
SQLAction: () => import_sdk_services9.SQLAction,
|
|
187
|
+
SQLService: () => import_sdk_services9.SQLService,
|
|
188
|
+
STORAGE_FULL_MESSAGE: () => import_sdk_services9.STORAGE_FULL_MESSAGE,
|
|
189
|
+
STORAGE_WRITE_TOO_LARGE_MESSAGE: () => import_sdk_services9.STORAGE_WRITE_TOO_LARGE_MESSAGE,
|
|
190
|
+
SecretsService: () => import_sdk_services9.SecretsService,
|
|
191
191
|
SenderShareStore: () => SenderShareStore,
|
|
192
|
-
ServiceContext: () =>
|
|
192
|
+
ServiceContext: () => import_sdk_services9.ServiceContext,
|
|
193
193
|
SessionExpiredError: () => SessionExpiredError,
|
|
194
194
|
ShareAccessError: () => ShareAccessError,
|
|
195
195
|
ShareAddressedDelegationEnvelopeV2Schema: () => ShareAddressedDelegationEnvelopeV2Schema,
|
|
@@ -222,14 +222,14 @@ __export(index_exports, {
|
|
|
222
222
|
TINYCLOUD_PUBLIC_SPACE_MANIFEST: () => import_bootstrap4.TINYCLOUD_PUBLIC_SPACE_MANIFEST,
|
|
223
223
|
TINYCLOUD_SECRETS_BOOTSTRAP_MANIFEST: () => import_bootstrap4.TINYCLOUD_SECRETS_BOOTSTRAP_MANIFEST,
|
|
224
224
|
TinyCloud: () => TinyCloud,
|
|
225
|
-
TinyCloudDebugLogger: () =>
|
|
225
|
+
TinyCloudDebugLogger: () => import_sdk_services9.TinyCloudDebugLogger,
|
|
226
226
|
TranscriptRequester: () => TranscriptRequester,
|
|
227
227
|
TranscriptRequesterError: () => TranscriptRequesterError,
|
|
228
228
|
UnsupportedFeatureError: () => UnsupportedFeatureError,
|
|
229
229
|
UnsupportedSignatureSuiteError: () => UnsupportedSignatureSuiteError,
|
|
230
230
|
VAULT_PERMISSION_SERVICE: () => VAULT_PERMISSION_SERVICE,
|
|
231
|
-
VaultHeaders: () =>
|
|
232
|
-
VaultPublicSpaceKVActions: () =>
|
|
231
|
+
VaultHeaders: () => import_sdk_services9.VaultHeaders,
|
|
232
|
+
VaultPublicSpaceKVActions: () => import_sdk_services9.VaultPublicSpaceKVActions,
|
|
233
233
|
VersionCheckError: () => VersionCheckError,
|
|
234
234
|
actionContains: () => actionContains,
|
|
235
235
|
activateSessionWithHost: () => activateSessionWithHost,
|
|
@@ -237,37 +237,37 @@ __export(index_exports, {
|
|
|
237
237
|
admitPolicyCredentialV3: () => admitPolicyCredentialV3,
|
|
238
238
|
admitPolicyCredentialV4: () => admitPolicyCredentialV4,
|
|
239
239
|
applyPrefix: () => applyPrefix,
|
|
240
|
-
authorizationVerdictOf: () =>
|
|
240
|
+
authorizationVerdictOf: () => import_sdk_services9.authorizationVerdictOf,
|
|
241
241
|
bootstrapEncryptionNetworkId: () => import_bootstrap4.bootstrapEncryptionNetworkId,
|
|
242
242
|
bootstrapSpaceId: () => import_bootstrap4.bootstrapSpaceId,
|
|
243
243
|
bootstrapSteps: () => import_bootstrap4.bootstrapSteps,
|
|
244
|
-
buildCanonicalDecryptRequest: () =>
|
|
245
|
-
buildDecryptAttenuation: () =>
|
|
246
|
-
buildDecryptFacts: () =>
|
|
247
|
-
buildDecryptInvocation: () =>
|
|
248
|
-
buildNetworkId: () =>
|
|
244
|
+
buildCanonicalDecryptRequest: () => import_sdk_services9.buildCanonicalDecryptRequest,
|
|
245
|
+
buildDecryptAttenuation: () => import_sdk_services9.buildDecryptAttenuation,
|
|
246
|
+
buildDecryptFacts: () => import_sdk_services9.buildDecryptFacts,
|
|
247
|
+
buildDecryptInvocation: () => import_sdk_services9.buildDecryptInvocation,
|
|
248
|
+
buildNetworkId: () => import_sdk_services9.buildNetworkId,
|
|
249
249
|
buildPolicyCredentialPresentationV3: () => buildPolicyCredentialPresentationV3,
|
|
250
250
|
buildPolicyCredentialPresentationV4: () => buildPolicyCredentialPresentationV4,
|
|
251
251
|
buildSpaceUri: () => buildSpaceUri,
|
|
252
252
|
canonicalDigest: () => canonicalDigest,
|
|
253
253
|
canonicalEmailDomain: () => import_share_envelope.canonicalEmailDomain,
|
|
254
|
-
canonicalHashHex: () =>
|
|
254
|
+
canonicalHashHex: () => import_sdk_services9.canonicalHashHex,
|
|
255
255
|
canonicalLocationPayload: () => canonicalLocationPayload,
|
|
256
256
|
canonicalMailbox: () => import_share_envelope.canonicalMailbox,
|
|
257
257
|
canonicalOwnerSharePolicy: () => canonicalOwnerSharePolicy,
|
|
258
|
-
canonicalSignedResponse: () =>
|
|
258
|
+
canonicalSignedResponse: () => import_sdk_services9.canonicalSignedResponse,
|
|
259
259
|
canonicalizeAddress: () => canonicalizeAddress,
|
|
260
260
|
canonicalizeDid: () => canonicalizeDid,
|
|
261
261
|
canonicalizeDidUrl: () => canonicalizeDidUrl,
|
|
262
|
-
canonicalizeEncryptionJson: () =>
|
|
262
|
+
canonicalizeEncryptionJson: () => import_sdk_services9.canonicalizeEncryptionJson,
|
|
263
263
|
canonicalizeNetworkId: () => canonicalizeNetworkId,
|
|
264
264
|
canonicalizeRecapCaveats: () => canonicalizeRecapCaveats,
|
|
265
|
-
canonicalizeSecretScope: () =>
|
|
265
|
+
canonicalizeSecretScope: () => import_sdk_services9.canonicalizeSecretScope,
|
|
266
266
|
canonicalizeSignedObjectUnsigned: () => canonicalizeSignedObjectUnsigned,
|
|
267
267
|
canonicalizeUnifiedPolicyCapability: () => canonicalizeUnifiedPolicyCapability,
|
|
268
|
-
checkDecryptInvocationInput: () =>
|
|
268
|
+
checkDecryptInvocationInput: () => import_sdk_services9.checkDecryptInvocationInput,
|
|
269
269
|
checkNodeInfo: () => checkNodeInfo,
|
|
270
|
-
clearTinyCloudDebugLogs: () =>
|
|
270
|
+
clearTinyCloudDebugLogs: () => import_sdk_services9.clearTinyCloudDebugLogs,
|
|
271
271
|
compactAttenuationContains: () => compactAttenuationContains,
|
|
272
272
|
composeBootstrapSpaceManifest: () => import_bootstrap4.composeBootstrapSpaceManifest,
|
|
273
273
|
composeManifestRequest: () => composeManifestRequest,
|
|
@@ -296,7 +296,7 @@ __export(index_exports, {
|
|
|
296
296
|
createStorageReceipt: () => createStorageReceipt,
|
|
297
297
|
createStoredCredentialRecord: () => createStoredCredentialRecord,
|
|
298
298
|
createTranscriptRequester: () => createTranscriptRequester,
|
|
299
|
-
createVaultCrypto: () =>
|
|
299
|
+
createVaultCrypto: () => import_sdk_services9.createVaultCrypto,
|
|
300
300
|
credentialEndpointPath: () => credentialEndpointPath,
|
|
301
301
|
credentialError: () => credentialError,
|
|
302
302
|
credentialIndexKey: () => credentialIndexKey,
|
|
@@ -304,37 +304,37 @@ __export(index_exports, {
|
|
|
304
304
|
credentialRecordKey: () => credentialRecordKey,
|
|
305
305
|
credentialRequirementDigest: () => credentialRequirementDigest,
|
|
306
306
|
decodeBase64Url: () => decodeBase64Url,
|
|
307
|
-
decryptEnvelopeWithKey: () =>
|
|
307
|
+
decryptEnvelopeWithKey: () => import_sdk_services9.decryptEnvelopeWithKey,
|
|
308
308
|
decryptShareBytesAsync: () => decryptShareBytesAsync,
|
|
309
|
-
defaultRetryPolicy: () =>
|
|
309
|
+
defaultRetryPolicy: () => import_sdk_services9.defaultRetryPolicy,
|
|
310
310
|
defaultSignStrategy: () => defaultSignStrategy,
|
|
311
311
|
defaultSpaceCreationHandler: () => defaultSpaceCreationHandler,
|
|
312
312
|
delegatePortablePolicySession: () => delegatePortablePolicySession,
|
|
313
313
|
deriveDelegationCid: () => deriveDelegationCid,
|
|
314
314
|
deriveSignedObjectMaterial: () => deriveSignedObjectMaterial,
|
|
315
|
-
deriveSignedReceiverKey: () =>
|
|
315
|
+
deriveSignedReceiverKey: () => import_sdk_services9.deriveSignedReceiverKey,
|
|
316
316
|
descriptorSatisfiesRequirement: () => descriptorSatisfiesRequirement,
|
|
317
317
|
didCacheKey: () => didCacheKey,
|
|
318
318
|
didEquals: () => didEquals,
|
|
319
319
|
diffImmutableSiweFields: () => diffImmutableSiweFields,
|
|
320
|
-
disableTinyCloudDebug: () =>
|
|
320
|
+
disableTinyCloudDebug: () => import_sdk_services9.disableTinyCloudDebug,
|
|
321
321
|
discoverLocalTinyCloudNode: () => discoverLocalTinyCloudNode,
|
|
322
|
-
discoverNetwork: () =>
|
|
323
|
-
enableTinyCloudDebug: () =>
|
|
322
|
+
discoverNetwork: () => import_sdk_services9.discoverNetwork,
|
|
323
|
+
enableTinyCloudDebug: () => import_sdk_services9.enableTinyCloudDebug,
|
|
324
324
|
encodeBase64Url: () => encodeBase64Url,
|
|
325
325
|
encodeInlineShareUrl: () => encodeInlineShareUrl,
|
|
326
326
|
encodeShareArtifact: () => encodeShareArtifact,
|
|
327
327
|
encodeShareUrl: () => encodeShareUrl,
|
|
328
328
|
encryptShareBytes: () => encryptShareBytes,
|
|
329
329
|
encryptShareBytesAsync: () => encryptShareBytesAsync,
|
|
330
|
-
encryptToNetwork: () =>
|
|
331
|
-
encryptionBase64Decode: () =>
|
|
332
|
-
encryptionBase64Encode: () =>
|
|
333
|
-
encryptionError: () =>
|
|
334
|
-
encryptionUtf8Decode: () =>
|
|
335
|
-
encryptionUtf8Encode: () =>
|
|
336
|
-
ensureNetworkUsableForDecrypt: () =>
|
|
337
|
-
err: () =>
|
|
330
|
+
encryptToNetwork: () => import_sdk_services9.encryptToNetwork,
|
|
331
|
+
encryptionBase64Decode: () => import_sdk_services9.base64Decode,
|
|
332
|
+
encryptionBase64Encode: () => import_sdk_services9.base64Encode,
|
|
333
|
+
encryptionError: () => import_sdk_services9.encryptionError,
|
|
334
|
+
encryptionUtf8Decode: () => import_sdk_services9.utf8Decode,
|
|
335
|
+
encryptionUtf8Encode: () => import_sdk_services9.utf8Encode,
|
|
336
|
+
ensureNetworkUsableForDecrypt: () => import_sdk_services9.ensureNetworkUsableForDecrypt,
|
|
337
|
+
err: () => import_sdk_services9.err,
|
|
338
338
|
expandActionShortNames: () => expandActionShortNames,
|
|
339
339
|
expandPermissionEntries: () => expandPermissionEntries,
|
|
340
340
|
expandPermissionEntry: () => expandPermissionEntry,
|
|
@@ -342,25 +342,26 @@ __export(index_exports, {
|
|
|
342
342
|
extractRecapAttenuations: () => extractRecapAttenuations,
|
|
343
343
|
fetchLocationRecord: () => fetchLocationRecord,
|
|
344
344
|
fetchPeerId: () => fetchPeerId,
|
|
345
|
-
generateRandomReceiverKey: () =>
|
|
345
|
+
generateRandomReceiverKey: () => import_sdk_services9.generateRandomReceiverKey,
|
|
346
346
|
getPolicyRootStatusV3: () => getPolicyRootStatusV3,
|
|
347
|
-
getTinyCloudDebugLogs: () =>
|
|
347
|
+
getTinyCloudDebugLogs: () => import_sdk_services9.getTinyCloudDebugLogs,
|
|
348
348
|
hasTinyCloudManageKeyScope: () => hasTinyCloudManageKeyScope,
|
|
349
|
-
hexDecode: () =>
|
|
350
|
-
hexEncode: () =>
|
|
349
|
+
hexDecode: () => import_sdk_services9.hexDecode,
|
|
350
|
+
hexEncode: () => import_sdk_services9.hexEncode,
|
|
351
351
|
holderBindingCanonicalBytes: () => holderBindingCanonicalBytes,
|
|
352
352
|
holderBindingSigningBytes: () => holderBindingSigningBytes,
|
|
353
|
+
httpResponseError: () => httpResponseError,
|
|
353
354
|
httpUrlToMultiaddr: () => httpUrlToMultiaddr,
|
|
354
355
|
importPortableDelegation: () => importPortableDelegation,
|
|
355
|
-
installTinyCloudDebugGlobals: () =>
|
|
356
|
+
installTinyCloudDebugGlobals: () => import_sdk_services9.installTinyCloudDebugGlobals,
|
|
356
357
|
intersectShareCapabilities: () => intersectShareCapabilities,
|
|
357
358
|
isCanonicalEmailDomain: () => import_share_envelope.isCanonicalEmailDomain,
|
|
358
359
|
isCapabilitySubset: () => isCapabilitySubset,
|
|
359
360
|
isDigest: () => isDigest,
|
|
360
361
|
isEvmAddress: () => isEvmAddress,
|
|
361
|
-
isNetworkId: () =>
|
|
362
|
+
isNetworkId: () => import_sdk_services9.isNetworkId,
|
|
362
363
|
isPlausibleOpenKeyActionId: () => isPlausibleOpenKeyActionId,
|
|
363
|
-
isStorageFullError: () =>
|
|
364
|
+
isStorageFullError: () => import_sdk_services9.isStorageFullError,
|
|
364
365
|
isV2ShareLink: () => isV2ShareLink,
|
|
365
366
|
issuedCredentialEnvelopeFromVerified: () => issuedCredentialEnvelopeFromVerified,
|
|
366
367
|
jcsCanonicalize: () => jcsCanonicalize,
|
|
@@ -371,28 +372,29 @@ __export(index_exports, {
|
|
|
371
372
|
makePublicSpaceId: () => makePublicSpaceId,
|
|
372
373
|
manifestAbilitiesUnion: () => manifestAbilitiesUnion,
|
|
373
374
|
multiaddrToHttpUrl: () => multiaddrToHttpUrl,
|
|
374
|
-
networkDiscoveryKey: () =>
|
|
375
|
+
networkDiscoveryKey: () => import_sdk_services9.networkDiscoveryKey,
|
|
375
376
|
normalizeDefaults: () => normalizeDefaults,
|
|
376
377
|
normalizeJson: () => normalizeJson,
|
|
377
378
|
normalizeShareActions: () => normalizeShareActions,
|
|
378
379
|
normalizeShareRecipientTarget: () => normalizeShareRecipientTarget,
|
|
379
380
|
normalizeShareResource: () => normalizeShareResource,
|
|
380
381
|
normalizeUnifiedPolicyCapability: () => normalizeUnifiedPolicyCapability,
|
|
381
|
-
ok: () =>
|
|
382
|
-
openWrappedKey: () =>
|
|
382
|
+
ok: () => import_sdk_services9.ok,
|
|
383
|
+
openWrappedKey: () => import_sdk_services9.openWrappedKey,
|
|
383
384
|
parseCanonicalNetworkId: () => parseCanonicalNetworkId,
|
|
384
385
|
parseCanonicalRecapResource: () => parseCanonicalRecapResource,
|
|
385
386
|
parseCanonicalTinyCloudIdentity: () => parseCanonicalTinyCloudIdentity,
|
|
386
387
|
parseCanonicalTinyCloudIdentityClaims: () => parseCanonicalTinyCloudIdentityClaims,
|
|
388
|
+
parseCapabilityResource: () => import_sdk_services9.parseCapabilityResource,
|
|
387
389
|
parseCompactUcanAuthorization: () => parseCompactUcanAuthorization,
|
|
388
390
|
parseExpiry: () => parseExpiry,
|
|
389
|
-
parseNetworkId: () =>
|
|
391
|
+
parseNetworkId: () => import_sdk_services9.parseNetworkId,
|
|
390
392
|
parseNodeNativePortableDelegation: () => parseNodeNativePortableDelegation,
|
|
391
393
|
parsePkhDid: () => parsePkhDid,
|
|
392
394
|
parsePolicySessionUcan: () => parsePolicySessionUcan,
|
|
393
395
|
parsePortableDelegation: () => parsePortableDelegation,
|
|
394
396
|
parseRecapCapabilities: () => parseRecapCapabilities,
|
|
395
|
-
parseSecretCatalogKey: () =>
|
|
397
|
+
parseSecretCatalogKey: () => import_sdk_services9.parseSecretCatalogKey,
|
|
396
398
|
parseShareArtifact: () => parseShareArtifact,
|
|
397
399
|
parseShareUrl: () => parseShareUrl,
|
|
398
400
|
parseSpaceUri: () => parseSpaceUri,
|
|
@@ -413,8 +415,8 @@ __export(index_exports, {
|
|
|
413
415
|
resolveCloudLocation: () => resolveCloudLocation,
|
|
414
416
|
resolveManifest: () => resolveManifest,
|
|
415
417
|
resolveManifestKnowledgeRoot: () => resolveManifestKnowledgeRoot,
|
|
416
|
-
resolveSecretListPrefix: () =>
|
|
417
|
-
resolveSecretPath: () =>
|
|
418
|
+
resolveSecretListPrefix: () => import_sdk_services9.resolveSecretListPrefix,
|
|
419
|
+
resolveSecretPath: () => import_sdk_services9.resolveSecretPath,
|
|
418
420
|
resolveTinyCloudHosts: () => resolveTinyCloudHosts,
|
|
419
421
|
resourceCapabilitiesToAbilitiesMap: () => resourceCapabilitiesToAbilitiesMap,
|
|
420
422
|
resourceCapabilitiesToSpaceAbilitiesMap: () => resourceCapabilitiesToSpaceAbilitiesMap,
|
|
@@ -422,7 +424,7 @@ __export(index_exports, {
|
|
|
422
424
|
revokePolicyRootV3: () => revokePolicyRootV3,
|
|
423
425
|
serializeJcsJson: () => serialize,
|
|
424
426
|
serializePortableDelegation: () => serializePortableDelegation,
|
|
425
|
-
serviceError: () =>
|
|
427
|
+
serviceError: () => import_sdk_services9.serviceError,
|
|
426
428
|
sha256Base64Url: () => sha256Base64Url,
|
|
427
429
|
shareCapabilityAllows: () => shareCapabilityAllows,
|
|
428
430
|
signCompactPolicyDescendant: () => signCompactPolicyDescendant,
|
|
@@ -433,7 +435,7 @@ __export(index_exports, {
|
|
|
433
435
|
signShareEnvelope: () => signShareEnvelope,
|
|
434
436
|
signedObjectIdFor: () => signedObjectIdFor,
|
|
435
437
|
submitHostDelegation: () => submitHostDelegation,
|
|
436
|
-
tinyCloudDebugLogger: () =>
|
|
438
|
+
tinyCloudDebugLogger: () => import_sdk_services9.tinyCloudDebugLogger,
|
|
437
439
|
toSignedObjectError: () => toSignedObjectError,
|
|
438
440
|
unauthorizedRecapCapabilities: () => unauthorizedRecapCapabilities,
|
|
439
441
|
unifiedNativeProjectionHashHex: () => unifiedNativeProjectionHashHex,
|
|
@@ -445,7 +447,7 @@ __export(index_exports, {
|
|
|
445
447
|
validateCredentialFlowDescriptor: () => validateCredentialFlowDescriptor,
|
|
446
448
|
validateCredentialHolderBinding: () => validateCredentialHolderBinding,
|
|
447
449
|
validateCredentialRequirement: () => validateCredentialRequirement,
|
|
448
|
-
validateEnvelope: () =>
|
|
450
|
+
validateEnvelope: () => import_sdk_services9.validateEnvelope,
|
|
449
451
|
validateLocationRecord: () => validateLocationRecord,
|
|
450
452
|
validateLocationRecordPayload: () => validateLocationRecordPayload,
|
|
451
453
|
validateManifest: () => validateManifest,
|
|
@@ -464,7 +466,8 @@ __export(index_exports, {
|
|
|
464
466
|
validatePolicyUnsigned: () => validatePolicyUnsigned,
|
|
465
467
|
validateShareDeliveryAuthorizationV3Bytes: () => validateShareDeliveryAuthorizationV3Bytes,
|
|
466
468
|
validateUnifiedPolicyV2: () => validateUnifiedPolicyV2,
|
|
467
|
-
|
|
469
|
+
validatedCapabilityOf: () => import_sdk_services9.validatedCapabilityOf,
|
|
470
|
+
verifyDecryptResponse: () => import_sdk_services9.verifyDecryptResponse,
|
|
468
471
|
verifyDidKeyEd25519Signature: () => verifyDidKeyEd25519Signature,
|
|
469
472
|
verifyEip191MessageSignature: () => verifyEip191MessageSignature,
|
|
470
473
|
verifyIssuedCredential: () => verifyIssuedCredential,
|
|
@@ -3906,6 +3909,32 @@ var import_sha256 = require("@noble/hashes/sha256");
|
|
|
3906
3909
|
var import_blake3 = require("@noble/hashes/blake3");
|
|
3907
3910
|
var import_ed255193 = require("@noble/curves/ed25519");
|
|
3908
3911
|
var import_zod2 = require("zod");
|
|
3912
|
+
|
|
3913
|
+
// src/http-error.ts
|
|
3914
|
+
var import_sdk_services = require("@tinycloud/sdk-services");
|
|
3915
|
+
async function httpResponseError(response, context) {
|
|
3916
|
+
let body;
|
|
3917
|
+
try {
|
|
3918
|
+
body = await response.text();
|
|
3919
|
+
} catch {
|
|
3920
|
+
body = response.statusText;
|
|
3921
|
+
}
|
|
3922
|
+
body = body.trim().slice(0, 512);
|
|
3923
|
+
return Object.assign(new Error(`${context}: HTTP ${response.status}${body ? ` - ${body}` : ""}`), {
|
|
3924
|
+
status: response.status
|
|
3925
|
+
});
|
|
3926
|
+
}
|
|
3927
|
+
async function serviceHttpError(response, code3, context, service) {
|
|
3928
|
+
const failure = await httpResponseError(response, context);
|
|
3929
|
+
return (0, import_sdk_services.serviceError)(
|
|
3930
|
+
response.status === 401 || response.status === 403 ? import_sdk_services.ErrorCodes.AUTH_UNAUTHORIZED : code3,
|
|
3931
|
+
failure.message,
|
|
3932
|
+
service,
|
|
3933
|
+
{ meta: { status: response.status } }
|
|
3934
|
+
);
|
|
3935
|
+
}
|
|
3936
|
+
|
|
3937
|
+
// src/policy/unified.ts
|
|
3909
3938
|
var POLICY_V1_SCHEMA = "xyz.tinycloud.policy/policy/v1";
|
|
3910
3939
|
var POLICY_CAPABILITY_V1_SCHEMA = "xyz.tinycloud.policy/capability/v1";
|
|
3911
3940
|
var POLICY_ENFORCEMENT_DELEGATION_V2_SCHEMA = "xyz.tinycloud.policy/enforcement-delegation/v2";
|
|
@@ -3933,7 +3962,7 @@ async function requestPolicyChallengeV3(input) {
|
|
|
3933
3962
|
headers: { accept: "application/json", "content-type": "application/json" },
|
|
3934
3963
|
body: JSON.stringify({ policyCid: input.policyCid, recipientDid: input.recipientDid, requestedCapabilities: input.requestedCapabilities.map(normalizeUnifiedPolicyCapability) })
|
|
3935
3964
|
});
|
|
3936
|
-
if (!response.ok) throw
|
|
3965
|
+
if (!response.ok) throw await httpResponseError(response, "policy challenge rejected");
|
|
3937
3966
|
const value = object2(await response.json(), "policy challenge");
|
|
3938
3967
|
if (typeof value.challengeId !== "string" || typeof value.nonce !== "string" || value.policyCid !== input.policyCid || value.recipientDid !== input.recipientDid)
|
|
3939
3968
|
throw new Error("policy challenge binding is invalid");
|
|
@@ -3996,7 +4025,7 @@ async function getPolicyRootStatusV3(input) {
|
|
|
3996
4025
|
redirect: "error",
|
|
3997
4026
|
headers: { accept: "application/json" }
|
|
3998
4027
|
});
|
|
3999
|
-
if (!response.ok) throw
|
|
4028
|
+
if (!response.ok) throw await httpResponseError(response, "policy root status rejected");
|
|
4000
4029
|
const value = object2(await response.json(), "policy root status");
|
|
4001
4030
|
const checkpoint = object2(value.checkpoint, "policy root checkpoint");
|
|
4002
4031
|
if (value.rootCid !== input.rootCid || value.state !== "active" && value.state !== "revoked" || value.state !== checkpoint.state || !verifyPolicyRootStatusCheckpointV3({ rootCid: input.rootCid, checkpoint, expectedNodeAudience: input.expectedNodeAudience, now: input.now }))
|
|
@@ -4056,7 +4085,7 @@ async function renewPolicyRootStatusV3(input) {
|
|
|
4056
4085
|
headers: { accept: "application/json", "content-type": "application/json" },
|
|
4057
4086
|
body: JSON.stringify({ rootCid: input.rootCid, renewal: { ...unsigned, signature: { suite: "Ed25519", signerDid: input.ownerDid, value: encodeBase64Url2(signature) } } })
|
|
4058
4087
|
});
|
|
4059
|
-
if (!response.ok) throw
|
|
4088
|
+
if (!response.ok) throw await httpResponseError(response, "policy root renewal rejected");
|
|
4060
4089
|
return object2(await response.json(), "policy root renewal");
|
|
4061
4090
|
}
|
|
4062
4091
|
function rfc3339Seconds(value) {
|
|
@@ -4083,7 +4112,7 @@ async function revokePolicyRootV3(input) {
|
|
|
4083
4112
|
headers: { accept: "application/json", "content-type": "application/json" },
|
|
4084
4113
|
body: JSON.stringify({ revocation: { ...unsigned, signature: { suite: "Ed25519", signerDid: input.issuerDid, value: encodeBase64Url2(signature) } } })
|
|
4085
4114
|
});
|
|
4086
|
-
if (!response.ok) throw
|
|
4115
|
+
if (!response.ok) throw await httpResponseError(response, "policy root revocation rejected");
|
|
4087
4116
|
return object2(await response.json(), "policy root revocation");
|
|
4088
4117
|
}
|
|
4089
4118
|
var POLICY_SESSION_FACT_KEYS = [
|
|
@@ -4352,7 +4381,7 @@ async function registerPolicyV3(input) {
|
|
|
4352
4381
|
}
|
|
4353
4382
|
);
|
|
4354
4383
|
if (!bindingResponse.ok) {
|
|
4355
|
-
throw
|
|
4384
|
+
throw await httpResponseError(bindingResponse, "policy enforcer binding rejected");
|
|
4356
4385
|
}
|
|
4357
4386
|
const binding = exactObject(
|
|
4358
4387
|
await bindingResponse.json(),
|
|
@@ -4418,7 +4447,7 @@ async function registerPolicyV3(input) {
|
|
|
4418
4447
|
}
|
|
4419
4448
|
);
|
|
4420
4449
|
if (!response.ok) {
|
|
4421
|
-
throw
|
|
4450
|
+
throw await httpResponseError(response, "policy registration rejected");
|
|
4422
4451
|
}
|
|
4423
4452
|
const receipt = exactObject(
|
|
4424
4453
|
await response.json(),
|
|
@@ -5104,7 +5133,7 @@ async function admitPolicyCredentialV3(input) {
|
|
|
5104
5133
|
requestedSessionExpiry(input.requestedExpiresAt, policy),
|
|
5105
5134
|
input.signal
|
|
5106
5135
|
);
|
|
5107
|
-
if (!response.ok) throw
|
|
5136
|
+
if (!response.ok) throw await httpResponseError(response, "policy delegation rejected");
|
|
5108
5137
|
const value = record(await response.json(), "policy delegation");
|
|
5109
5138
|
if (value.admitted !== true || typeof value.sessionCid !== "string" || typeof value.authorization !== "string") {
|
|
5110
5139
|
throw new Error("policy delegation response is invalid");
|
|
@@ -5157,7 +5186,7 @@ async function admitPolicyCredentialV4(input) {
|
|
|
5157
5186
|
requestedSessionExpiry(input.requestedExpiresAt, policy),
|
|
5158
5187
|
input.signal
|
|
5159
5188
|
);
|
|
5160
|
-
if (!response.ok) throw
|
|
5189
|
+
if (!response.ok) throw await httpResponseError(response, "policy delegation rejected");
|
|
5161
5190
|
const value = record(await response.json(), "policy delegation");
|
|
5162
5191
|
if (value.admitted !== true || typeof value.sessionCid !== "string" || typeof value.authorization !== "string") throw new Error("policy delegation response is invalid");
|
|
5163
5192
|
const session = parsePolicySessionUcan(value.authorization, [
|
|
@@ -5176,7 +5205,7 @@ async function admitPolicyCredentialV4(input) {
|
|
|
5176
5205
|
signal: input.signal,
|
|
5177
5206
|
headers: { Authorization: session.authorization }
|
|
5178
5207
|
});
|
|
5179
|
-
if (!importResponse.ok) throw
|
|
5208
|
+
if (!importResponse.ok) throw await httpResponseError(importResponse, "delegation import rejected");
|
|
5180
5209
|
input.signal?.throwIfAborted();
|
|
5181
5210
|
return Object.freeze({ challenge, presentation, session, delegationImported: true });
|
|
5182
5211
|
}
|
|
@@ -7760,7 +7789,7 @@ function validateEncodedShareData(data) {
|
|
|
7760
7789
|
// src/manifest.ts
|
|
7761
7790
|
var import_ms = __toESM(require("ms"), 1);
|
|
7762
7791
|
var import_bootstrap2 = require("@tinycloud/bootstrap");
|
|
7763
|
-
var
|
|
7792
|
+
var import_sdk_services2 = require("@tinycloud/sdk-services");
|
|
7764
7793
|
var DEFAULT_KNOWLEDGE_ROOT = "knowledge/index.md";
|
|
7765
7794
|
var ManifestValidationError = class extends Error {
|
|
7766
7795
|
constructor(message) {
|
|
@@ -8031,13 +8060,13 @@ function validateManifestSecrets(secrets) {
|
|
|
8031
8060
|
throw new ManifestValidationError("manifest.secrets must be an object");
|
|
8032
8061
|
}
|
|
8033
8062
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8034
|
-
if (!
|
|
8063
|
+
if (!import_sdk_services2.SECRET_NAME_RE.test(name2)) {
|
|
8035
8064
|
throw new ManifestValidationError(
|
|
8036
|
-
`manifest.secrets.${name2} must match ${
|
|
8065
|
+
`manifest.secrets.${name2} must match ${import_sdk_services2.SECRET_NAME_RE.source}`
|
|
8037
8066
|
);
|
|
8038
8067
|
}
|
|
8039
8068
|
try {
|
|
8040
|
-
(0,
|
|
8069
|
+
(0, import_sdk_services2.resolveSecretPath)(
|
|
8041
8070
|
secretNameFromSpec(name2, spec),
|
|
8042
8071
|
{ scope: secretScopeFromSpec(spec) }
|
|
8043
8072
|
);
|
|
@@ -8254,7 +8283,7 @@ function secretEntriesForManifest(secrets) {
|
|
|
8254
8283
|
const entries = [];
|
|
8255
8284
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8256
8285
|
const actions = secretActionsFromSpec(name2, spec);
|
|
8257
|
-
const secretPath = (0,
|
|
8286
|
+
const secretPath = (0, import_sdk_services2.resolveSecretPath)(
|
|
8258
8287
|
secretNameFromSpec(name2, spec),
|
|
8259
8288
|
{ scope: secretScopeFromSpec(spec) }
|
|
8260
8289
|
);
|
|
@@ -8696,7 +8725,7 @@ function parseRecapCapabilities(parseWasm, siwe) {
|
|
|
8696
8725
|
var import_ed255197 = require("@noble/curves/ed25519");
|
|
8697
8726
|
|
|
8698
8727
|
// src/delegations/ShareRecipientClient.ts
|
|
8699
|
-
var
|
|
8728
|
+
var import_sdk_services3 = require("@tinycloud/sdk-services");
|
|
8700
8729
|
var import_ed255196 = require("@noble/curves/ed25519");
|
|
8701
8730
|
var import_sha2565 = require("@noble/hashes/sha256");
|
|
8702
8731
|
|
|
@@ -9814,7 +9843,7 @@ async function importPortableDelegation(fetchFn, host, delegation) {
|
|
|
9814
9843
|
headers: { Authorization: parsed.delegationHeader.Authorization }
|
|
9815
9844
|
});
|
|
9816
9845
|
if (!response.ok)
|
|
9817
|
-
throw
|
|
9846
|
+
throw await httpResponseError(response, "node rejected delegation import");
|
|
9818
9847
|
const body = await response.json().catch(() => ({}));
|
|
9819
9848
|
if (body === null || typeof body !== "object" || Array.isArray(body))
|
|
9820
9849
|
return {};
|
|
@@ -9883,7 +9912,7 @@ function redactedCode(error) {
|
|
|
9883
9912
|
if (error instanceof ShareConflict) return error.code;
|
|
9884
9913
|
const code3 = error && typeof error === "object" && "code" in error ? error.code : void 0;
|
|
9885
9914
|
if (typeof code3 !== "string") return "SHARE_INVALID";
|
|
9886
|
-
if (code3 ===
|
|
9915
|
+
if (code3 === import_sdk_services3.ErrorCodes.KV_PRECONDITION_FAILED || code3 === import_sdk_services3.ErrorCodes.KV_CONFLICT || code3 === "412") return "SHARE_CONFLICT";
|
|
9887
9916
|
if (code3 === "KV_NOT_FOUND" || code3 === "NOT_FOUND" || code3 === "404") return "SHARE_NOT_FOUND";
|
|
9888
9917
|
if (code3.includes("EXPIRED") || code3 === "expired") return "SHARE_EXPIRED";
|
|
9889
9918
|
if (code3.includes("REVOK")) return "SHARE_REVOKED";
|
|
@@ -10122,7 +10151,7 @@ var ShareRecipientClient = class {
|
|
|
10122
10151
|
if (portableDelegation !== void 0 && kv !== void 0) {
|
|
10123
10152
|
const result2 = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10124
10153
|
if (!result2.ok) {
|
|
10125
|
-
if (result2.error.code ===
|
|
10154
|
+
if (result2.error.code === import_sdk_services3.ErrorCodes.KV_PRECONDITION_FAILED || result2.error.code === import_sdk_services3.ErrorCodes.KV_CONFLICT) throw new ShareConflict(resolvedPath, result2.error.meta?.etag);
|
|
10126
10155
|
throw result2.error;
|
|
10127
10156
|
}
|
|
10128
10157
|
return { etag: result2.data.headers.etag };
|
|
@@ -10130,7 +10159,7 @@ var ShareRecipientClient = class {
|
|
|
10130
10159
|
if (policySession !== void 0) return this.nativeSave(envelope, policySession, resolvedPath, bytes2, input);
|
|
10131
10160
|
const result = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10132
10161
|
if (!result.ok) {
|
|
10133
|
-
if (result.error.code ===
|
|
10162
|
+
if (result.error.code === import_sdk_services3.ErrorCodes.KV_PRECONDITION_FAILED || result.error.code === import_sdk_services3.ErrorCodes.KV_CONFLICT) throw new ShareConflict(resolvedPath, result.error.meta?.etag);
|
|
10134
10163
|
throw result.error;
|
|
10135
10164
|
}
|
|
10136
10165
|
return { etag: result.data.headers.etag };
|
|
@@ -10214,8 +10243,8 @@ var ShareRecipientClient = class {
|
|
|
10214
10243
|
if (this.options.createKVService !== void 0) {
|
|
10215
10244
|
return this.options.createKVService({ hosts: [origin2], session, invoke, fetch: this.fetchFn });
|
|
10216
10245
|
}
|
|
10217
|
-
const context = new
|
|
10218
|
-
const service = new
|
|
10246
|
+
const context = new import_sdk_services3.ServiceContext({ hosts: [origin2], session, invoke, fetch: this.fetchFn });
|
|
10247
|
+
const service = new import_sdk_services3.KVService({ prefix: "" });
|
|
10219
10248
|
context.registerService("kv", service);
|
|
10220
10249
|
service.initialize(context);
|
|
10221
10250
|
return service;
|
|
@@ -12474,14 +12503,14 @@ var import_share_sdk = require("@tinycloud/share-sdk");
|
|
|
12474
12503
|
var import_share_sdk2 = require("@tinycloud/share-sdk");
|
|
12475
12504
|
|
|
12476
12505
|
// src/networkId.ts
|
|
12477
|
-
var
|
|
12506
|
+
var import_sdk_services4 = require("@tinycloud/sdk-services");
|
|
12478
12507
|
function canonicalizeNetworkId(networkId) {
|
|
12479
|
-
const parsed = (0,
|
|
12480
|
-
return (0,
|
|
12508
|
+
const parsed = (0, import_sdk_services4.parseNetworkId)(networkId);
|
|
12509
|
+
return (0, import_sdk_services4.buildNetworkId)(canonicalizeDid(parsed.ownerDid), parsed.name);
|
|
12481
12510
|
}
|
|
12482
12511
|
function parseCanonicalNetworkId(networkId) {
|
|
12483
12512
|
const canonical = canonicalizeNetworkId(networkId);
|
|
12484
|
-
return (0,
|
|
12513
|
+
return (0, import_sdk_services4.parseNetworkId)(canonical);
|
|
12485
12514
|
}
|
|
12486
12515
|
|
|
12487
12516
|
// src/storage.schema.ts
|
|
@@ -12580,10 +12609,10 @@ function validatePersistedSessionData(data) {
|
|
|
12580
12609
|
}
|
|
12581
12610
|
|
|
12582
12611
|
// src/TinyCloud.ts
|
|
12583
|
-
var
|
|
12612
|
+
var import_sdk_services6 = require("@tinycloud/sdk-services");
|
|
12584
12613
|
|
|
12585
12614
|
// src/spaces/SpaceService.ts
|
|
12586
|
-
var
|
|
12615
|
+
var import_sdk_services5 = require("@tinycloud/sdk-services");
|
|
12587
12616
|
|
|
12588
12617
|
// src/spaces/Space.ts
|
|
12589
12618
|
function unavailableSecretsService() {
|
|
@@ -13012,8 +13041,8 @@ var SpaceService = class {
|
|
|
13012
13041
|
*/
|
|
13013
13042
|
async list() {
|
|
13014
13043
|
if (!this.session) {
|
|
13015
|
-
return (0,
|
|
13016
|
-
(0,
|
|
13044
|
+
return (0, import_sdk_services5.err)(
|
|
13045
|
+
(0, import_sdk_services5.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13017
13046
|
);
|
|
13018
13047
|
}
|
|
13019
13048
|
try {
|
|
@@ -13021,6 +13050,9 @@ var SpaceService = class {
|
|
|
13021
13050
|
const ownedResult = await this.listOwnedSpaces();
|
|
13022
13051
|
if (ownedResult.ok) {
|
|
13023
13052
|
spaces.push(...ownedResult.data);
|
|
13053
|
+
} else {
|
|
13054
|
+
const verdict = (0, import_sdk_services5.authorizationVerdictOf)(ownedResult.error);
|
|
13055
|
+
if (verdict === "unauthenticated" || verdict === "forbidden") return (0, import_sdk_services5.err)(ownedResult.error);
|
|
13024
13056
|
}
|
|
13025
13057
|
if (this.capabilityRegistry) {
|
|
13026
13058
|
const delegatedSpaces = this.discoverDelegatedSpaces();
|
|
@@ -13030,10 +13062,10 @@ var SpaceService = class {
|
|
|
13030
13062
|
for (const space of uniqueSpaces) {
|
|
13031
13063
|
this.notifySpaceRegistered(space);
|
|
13032
13064
|
}
|
|
13033
|
-
return (0,
|
|
13065
|
+
return (0, import_sdk_services5.ok)(uniqueSpaces);
|
|
13034
13066
|
} catch (error) {
|
|
13035
|
-
return (0,
|
|
13036
|
-
(0,
|
|
13067
|
+
return (0, import_sdk_services5.err)(
|
|
13068
|
+
(0, import_sdk_services5.serviceError)(
|
|
13037
13069
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13038
13070
|
`Failed to list spaces: ${String(error)}`,
|
|
13039
13071
|
SERVICE_NAME,
|
|
@@ -13053,21 +13085,18 @@ var SpaceService = class {
|
|
|
13053
13085
|
headers
|
|
13054
13086
|
});
|
|
13055
13087
|
if (!response.ok) {
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
{ meta: { status: response.status } }
|
|
13063
|
-
)
|
|
13064
|
-
);
|
|
13088
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13089
|
+
response,
|
|
13090
|
+
SpaceErrorCodes.NETWORK_ERROR,
|
|
13091
|
+
"Failed to list owned spaces",
|
|
13092
|
+
SERVICE_NAME
|
|
13093
|
+
));
|
|
13065
13094
|
}
|
|
13066
13095
|
const rawData = await response.json();
|
|
13067
13096
|
const validationResult = validateServerOwnedSpacesResponse(rawData);
|
|
13068
13097
|
if (!validationResult.ok) {
|
|
13069
|
-
return (0,
|
|
13070
|
-
(0,
|
|
13098
|
+
return (0, import_sdk_services5.err)(
|
|
13099
|
+
(0, import_sdk_services5.serviceError)(
|
|
13071
13100
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13072
13101
|
validationResult.error.message,
|
|
13073
13102
|
SERVICE_NAME,
|
|
@@ -13083,10 +13112,10 @@ var SpaceService = class {
|
|
|
13083
13112
|
permissions: ["*"]
|
|
13084
13113
|
// Full permissions for owned spaces
|
|
13085
13114
|
}));
|
|
13086
|
-
return (0,
|
|
13115
|
+
return (0, import_sdk_services5.ok)(spaces);
|
|
13087
13116
|
} catch (error) {
|
|
13088
|
-
return (0,
|
|
13089
|
-
(0,
|
|
13117
|
+
return (0, import_sdk_services5.err)(
|
|
13118
|
+
(0, import_sdk_services5.serviceError)(
|
|
13090
13119
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13091
13120
|
`Network error listing owned spaces: ${String(error)}`,
|
|
13092
13121
|
SERVICE_NAME,
|
|
@@ -13167,13 +13196,13 @@ var SpaceService = class {
|
|
|
13167
13196
|
*/
|
|
13168
13197
|
async create(name2) {
|
|
13169
13198
|
if (!this.session) {
|
|
13170
|
-
return (0,
|
|
13171
|
-
(0,
|
|
13199
|
+
return (0, import_sdk_services5.err)(
|
|
13200
|
+
(0, import_sdk_services5.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13172
13201
|
);
|
|
13173
13202
|
}
|
|
13174
13203
|
if (!name2 || !/^[a-zA-Z0-9_-]+$/.test(name2)) {
|
|
13175
|
-
return (0,
|
|
13176
|
-
(0,
|
|
13204
|
+
return (0, import_sdk_services5.err)(
|
|
13205
|
+
(0, import_sdk_services5.serviceError)(
|
|
13177
13206
|
SpaceErrorCodes.INVALID_NAME,
|
|
13178
13207
|
"Space name must contain only alphanumeric characters, underscores, and hyphens",
|
|
13179
13208
|
SERVICE_NAME
|
|
@@ -13188,30 +13217,26 @@ var SpaceService = class {
|
|
|
13188
13217
|
body: JSON.stringify({ name: name2 })
|
|
13189
13218
|
});
|
|
13190
13219
|
if (!response.ok) {
|
|
13191
|
-
const errorText = await response.text();
|
|
13192
13220
|
if (response.status === 409) {
|
|
13193
|
-
return (0,
|
|
13194
|
-
|
|
13195
|
-
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
|
|
13199
|
-
);
|
|
13221
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13222
|
+
response,
|
|
13223
|
+
SpaceErrorCodes.ALREADY_EXISTS,
|
|
13224
|
+
`Space "${name2}" already exists`,
|
|
13225
|
+
SERVICE_NAME
|
|
13226
|
+
));
|
|
13200
13227
|
}
|
|
13201
|
-
return (0,
|
|
13202
|
-
|
|
13203
|
-
|
|
13204
|
-
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
)
|
|
13208
|
-
);
|
|
13228
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13229
|
+
response,
|
|
13230
|
+
SpaceErrorCodes.CREATION_FAILED,
|
|
13231
|
+
"Failed to create space",
|
|
13232
|
+
SERVICE_NAME
|
|
13233
|
+
));
|
|
13209
13234
|
}
|
|
13210
13235
|
const rawData = await response.json();
|
|
13211
13236
|
const validationResult = validateServerCreateSpaceResponse(rawData);
|
|
13212
13237
|
if (!validationResult.ok) {
|
|
13213
|
-
return (0,
|
|
13214
|
-
(0,
|
|
13238
|
+
return (0, import_sdk_services5.err)(
|
|
13239
|
+
(0, import_sdk_services5.serviceError)(
|
|
13215
13240
|
SpaceErrorCodes.CREATION_FAILED,
|
|
13216
13241
|
validationResult.error.message,
|
|
13217
13242
|
SERVICE_NAME,
|
|
@@ -13228,10 +13253,10 @@ var SpaceService = class {
|
|
|
13228
13253
|
};
|
|
13229
13254
|
this.infoCache.set(spaceInfo.id, { info: spaceInfo, cachedAt: Date.now() });
|
|
13230
13255
|
this.notifySpaceRegistered(spaceInfo);
|
|
13231
|
-
return (0,
|
|
13256
|
+
return (0, import_sdk_services5.ok)(spaceInfo);
|
|
13232
13257
|
} catch (error) {
|
|
13233
|
-
return (0,
|
|
13234
|
-
(0,
|
|
13258
|
+
return (0, import_sdk_services5.err)(
|
|
13259
|
+
(0, import_sdk_services5.serviceError)(
|
|
13235
13260
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13236
13261
|
`Network error creating space: ${String(error)}`,
|
|
13237
13262
|
SERVICE_NAME,
|
|
@@ -13301,10 +13326,10 @@ var SpaceService = class {
|
|
|
13301
13326
|
const spaceId = this.resolveSpaceId(nameOrUri);
|
|
13302
13327
|
const cached = this.infoCache.get(spaceId);
|
|
13303
13328
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13304
|
-
return (0,
|
|
13329
|
+
return (0, import_sdk_services5.ok)(true);
|
|
13305
13330
|
}
|
|
13306
13331
|
const infoResult = await this.getSpaceInfo(spaceId);
|
|
13307
|
-
return (0,
|
|
13332
|
+
return (0, import_sdk_services5.ok)(infoResult.ok);
|
|
13308
13333
|
}
|
|
13309
13334
|
// ===========================================================================
|
|
13310
13335
|
// Space Info
|
|
@@ -13315,11 +13340,11 @@ var SpaceService = class {
|
|
|
13315
13340
|
async getSpaceInfo(spaceId) {
|
|
13316
13341
|
const cached = this.infoCache.get(spaceId);
|
|
13317
13342
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13318
|
-
return (0,
|
|
13343
|
+
return (0, import_sdk_services5.ok)(cached.info);
|
|
13319
13344
|
}
|
|
13320
13345
|
if (!this.session) {
|
|
13321
|
-
return (0,
|
|
13322
|
-
(0,
|
|
13346
|
+
return (0, import_sdk_services5.err)(
|
|
13347
|
+
(0, import_sdk_services5.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13323
13348
|
);
|
|
13324
13349
|
}
|
|
13325
13350
|
try {
|
|
@@ -13331,24 +13356,25 @@ var SpaceService = class {
|
|
|
13331
13356
|
});
|
|
13332
13357
|
if (!response.ok) {
|
|
13333
13358
|
if (response.status === 404) {
|
|
13334
|
-
return (0,
|
|
13335
|
-
|
|
13336
|
-
|
|
13337
|
-
|
|
13338
|
-
const errorText = await response.text();
|
|
13339
|
-
return (0, import_sdk_services4.err)(
|
|
13340
|
-
(0, import_sdk_services4.serviceError)(
|
|
13341
|
-
SpaceErrorCodes.NETWORK_ERROR,
|
|
13342
|
-
`Failed to get space info: ${response.status} - ${errorText}`,
|
|
13359
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13360
|
+
response,
|
|
13361
|
+
SpaceErrorCodes.NOT_FOUND,
|
|
13362
|
+
`Space not found: ${spaceId}`,
|
|
13343
13363
|
SERVICE_NAME
|
|
13344
|
-
)
|
|
13345
|
-
|
|
13364
|
+
));
|
|
13365
|
+
}
|
|
13366
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13367
|
+
response,
|
|
13368
|
+
SpaceErrorCodes.NETWORK_ERROR,
|
|
13369
|
+
"Failed to get space info",
|
|
13370
|
+
SERVICE_NAME
|
|
13371
|
+
));
|
|
13346
13372
|
}
|
|
13347
13373
|
const rawData = await response.json();
|
|
13348
13374
|
const validationResult = validateServerSpaceInfoResponse(rawData);
|
|
13349
13375
|
if (!validationResult.ok) {
|
|
13350
|
-
return (0,
|
|
13351
|
-
(0,
|
|
13376
|
+
return (0, import_sdk_services5.err)(
|
|
13377
|
+
(0, import_sdk_services5.serviceError)(
|
|
13352
13378
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13353
13379
|
validationResult.error.message,
|
|
13354
13380
|
SERVICE_NAME,
|
|
@@ -13366,10 +13392,10 @@ var SpaceService = class {
|
|
|
13366
13392
|
expiresAt: data.expiresAt ? new Date(data.expiresAt) : void 0
|
|
13367
13393
|
};
|
|
13368
13394
|
this.infoCache.set(spaceId, { info: spaceInfo, cachedAt: Date.now() });
|
|
13369
|
-
return (0,
|
|
13395
|
+
return (0, import_sdk_services5.ok)(spaceInfo);
|
|
13370
13396
|
} catch (error) {
|
|
13371
|
-
return (0,
|
|
13372
|
-
(0,
|
|
13397
|
+
return (0, import_sdk_services5.err)(
|
|
13398
|
+
(0, import_sdk_services5.serviceError)(
|
|
13373
13399
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13374
13400
|
`Network error getting space info: ${String(error)}`,
|
|
13375
13401
|
SERVICE_NAME,
|
|
@@ -13454,20 +13480,18 @@ var SpaceService = class {
|
|
|
13454
13480
|
headers
|
|
13455
13481
|
});
|
|
13456
13482
|
if (!response.ok) {
|
|
13457
|
-
|
|
13458
|
-
|
|
13459
|
-
|
|
13460
|
-
|
|
13461
|
-
|
|
13462
|
-
|
|
13463
|
-
)
|
|
13464
|
-
);
|
|
13483
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13484
|
+
response,
|
|
13485
|
+
SpaceErrorCodes.NETWORK_ERROR,
|
|
13486
|
+
"Failed to list delegations",
|
|
13487
|
+
SERVICE_NAME
|
|
13488
|
+
));
|
|
13465
13489
|
}
|
|
13466
13490
|
const rawData = await response.json();
|
|
13467
13491
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13468
13492
|
if (!validationResult.ok) {
|
|
13469
|
-
return (0,
|
|
13470
|
-
(0,
|
|
13493
|
+
return (0, import_sdk_services5.err)(
|
|
13494
|
+
(0, import_sdk_services5.serviceError)(
|
|
13471
13495
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13472
13496
|
validationResult.error.message,
|
|
13473
13497
|
SERVICE_NAME,
|
|
@@ -13476,10 +13500,10 @@ var SpaceService = class {
|
|
|
13476
13500
|
);
|
|
13477
13501
|
}
|
|
13478
13502
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13479
|
-
return (0,
|
|
13503
|
+
return (0, import_sdk_services5.ok)(delegations);
|
|
13480
13504
|
} catch (error) {
|
|
13481
|
-
return (0,
|
|
13482
|
-
(0,
|
|
13505
|
+
return (0, import_sdk_services5.err)(
|
|
13506
|
+
(0, import_sdk_services5.serviceError)(
|
|
13483
13507
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13484
13508
|
`Network error listing delegations: ${String(error)}`,
|
|
13485
13509
|
SERVICE_NAME
|
|
@@ -13509,20 +13533,18 @@ var SpaceService = class {
|
|
|
13509
13533
|
headers
|
|
13510
13534
|
});
|
|
13511
13535
|
if (!response.ok) {
|
|
13512
|
-
|
|
13513
|
-
|
|
13514
|
-
|
|
13515
|
-
|
|
13516
|
-
|
|
13517
|
-
|
|
13518
|
-
)
|
|
13519
|
-
);
|
|
13536
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13537
|
+
response,
|
|
13538
|
+
SpaceErrorCodes.NETWORK_ERROR,
|
|
13539
|
+
"Failed to list received delegations",
|
|
13540
|
+
SERVICE_NAME
|
|
13541
|
+
));
|
|
13520
13542
|
}
|
|
13521
13543
|
const rawData = await response.json();
|
|
13522
13544
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13523
13545
|
if (!validationResult.ok) {
|
|
13524
|
-
return (0,
|
|
13525
|
-
(0,
|
|
13546
|
+
return (0, import_sdk_services5.err)(
|
|
13547
|
+
(0, import_sdk_services5.serviceError)(
|
|
13526
13548
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13527
13549
|
validationResult.error.message,
|
|
13528
13550
|
SERVICE_NAME,
|
|
@@ -13531,10 +13553,10 @@ var SpaceService = class {
|
|
|
13531
13553
|
);
|
|
13532
13554
|
}
|
|
13533
13555
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13534
|
-
return (0,
|
|
13556
|
+
return (0, import_sdk_services5.ok)(delegations);
|
|
13535
13557
|
} catch (error) {
|
|
13536
|
-
return (0,
|
|
13537
|
-
(0,
|
|
13558
|
+
return (0, import_sdk_services5.err)(
|
|
13559
|
+
(0, import_sdk_services5.serviceError)(
|
|
13538
13560
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13539
13561
|
`Network error listing received delegations: ${String(error)}`,
|
|
13540
13562
|
SERVICE_NAME
|
|
@@ -13546,8 +13568,8 @@ var SpaceService = class {
|
|
|
13546
13568
|
if (self.createDelegationFn) {
|
|
13547
13569
|
return self.createDelegationFn({ ...params, spaceId });
|
|
13548
13570
|
}
|
|
13549
|
-
return (0,
|
|
13550
|
-
(0,
|
|
13571
|
+
return (0, import_sdk_services5.err)(
|
|
13572
|
+
(0, import_sdk_services5.serviceError)(
|
|
13551
13573
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13552
13574
|
"Delegation creation requires a createDelegation function. This should be provided by the platform SDK (web-sdk or node-sdk).",
|
|
13553
13575
|
SERVICE_NAME
|
|
@@ -13568,19 +13590,17 @@ var SpaceService = class {
|
|
|
13568
13590
|
body: JSON.stringify({ cid: cid2, spaceId })
|
|
13569
13591
|
});
|
|
13570
13592
|
if (!response.ok) {
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
|
|
13575
|
-
|
|
13576
|
-
|
|
13577
|
-
)
|
|
13578
|
-
);
|
|
13593
|
+
return (0, import_sdk_services5.err)(await serviceHttpError(
|
|
13594
|
+
response,
|
|
13595
|
+
SpaceErrorCodes.NETWORK_ERROR,
|
|
13596
|
+
"Failed to revoke delegation",
|
|
13597
|
+
SERVICE_NAME
|
|
13598
|
+
));
|
|
13579
13599
|
}
|
|
13580
|
-
return (0,
|
|
13600
|
+
return (0, import_sdk_services5.ok)(void 0);
|
|
13581
13601
|
} catch (error) {
|
|
13582
|
-
return (0,
|
|
13583
|
-
(0,
|
|
13602
|
+
return (0, import_sdk_services5.err)(
|
|
13603
|
+
(0, import_sdk_services5.serviceError)(
|
|
13584
13604
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13585
13605
|
`Network error revoking delegation: ${String(error)}`,
|
|
13586
13606
|
SERVICE_NAME
|
|
@@ -13603,18 +13623,18 @@ var SpaceService = class {
|
|
|
13603
13623
|
if (self.sharingService) {
|
|
13604
13624
|
const result = await self.sharingService.generate(params);
|
|
13605
13625
|
if (!result.ok) {
|
|
13606
|
-
return (0,
|
|
13607
|
-
(0,
|
|
13626
|
+
return (0, import_sdk_services5.err)(
|
|
13627
|
+
(0, import_sdk_services5.serviceError)(
|
|
13608
13628
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13609
13629
|
result.error.message || "Failed to generate share link",
|
|
13610
13630
|
SERVICE_NAME
|
|
13611
13631
|
)
|
|
13612
13632
|
);
|
|
13613
13633
|
}
|
|
13614
|
-
return (0,
|
|
13634
|
+
return (0, import_sdk_services5.ok)(result.data);
|
|
13615
13635
|
}
|
|
13616
|
-
return (0,
|
|
13617
|
-
(0,
|
|
13636
|
+
return (0, import_sdk_services5.err)(
|
|
13637
|
+
(0, import_sdk_services5.serviceError)(
|
|
13618
13638
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13619
13639
|
"SharingService not configured. V2 sharing requires a SharingService instance.",
|
|
13620
13640
|
SERVICE_NAME
|
|
@@ -13622,8 +13642,8 @@ var SpaceService = class {
|
|
|
13622
13642
|
);
|
|
13623
13643
|
},
|
|
13624
13644
|
async list() {
|
|
13625
|
-
return (0,
|
|
13626
|
-
(0,
|
|
13645
|
+
return (0, import_sdk_services5.err)(
|
|
13646
|
+
(0, import_sdk_services5.serviceError)(
|
|
13627
13647
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13628
13648
|
"Listing share links is not supported in v2. Share links are self-contained tokens that are not tracked on the server.",
|
|
13629
13649
|
SERVICE_NAME
|
|
@@ -13631,8 +13651,8 @@ var SpaceService = class {
|
|
|
13631
13651
|
);
|
|
13632
13652
|
},
|
|
13633
13653
|
async revoke(token) {
|
|
13634
|
-
return (0,
|
|
13635
|
-
(0,
|
|
13654
|
+
return (0, import_sdk_services5.err)(
|
|
13655
|
+
(0, import_sdk_services5.serviceError)(
|
|
13636
13656
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13637
13657
|
"Revoking share links by token is not supported in v2. To revoke access, revoke the underlying delegation using space.delegations.revoke(cid).",
|
|
13638
13658
|
SERVICE_NAME
|
|
@@ -13692,7 +13712,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
13692
13712
|
"hosts are required to initialize services. Provide them via config.hosts or initializeServices()."
|
|
13693
13713
|
);
|
|
13694
13714
|
}
|
|
13695
|
-
this._serviceContext = new
|
|
13715
|
+
this._serviceContext = new import_sdk_services6.ServiceContext({
|
|
13696
13716
|
invoke: effectiveInvoke,
|
|
13697
13717
|
invokeAny: this.config.invokeAny,
|
|
13698
13718
|
fetch: fetchFn ?? this.config.fetch ?? globalThis.fetch.bind(globalThis),
|
|
@@ -13701,10 +13721,10 @@ var TinyCloud = class _TinyCloud {
|
|
|
13701
13721
|
telemetry: this.config.telemetry
|
|
13702
13722
|
});
|
|
13703
13723
|
const serviceConstructors = {
|
|
13704
|
-
kv:
|
|
13705
|
-
sql:
|
|
13706
|
-
duckdb:
|
|
13707
|
-
hooks:
|
|
13724
|
+
kv: import_sdk_services6.KVService,
|
|
13725
|
+
sql: import_sdk_services6.SQLService,
|
|
13726
|
+
duckdb: import_sdk_services6.DuckDbService,
|
|
13727
|
+
hooks: import_sdk_services6.HooksService,
|
|
13708
13728
|
...this.config.services
|
|
13709
13729
|
};
|
|
13710
13730
|
for (const [name2, ServiceClass] of Object.entries(serviceConstructors)) {
|
|
@@ -13968,18 +13988,18 @@ var TinyCloud = class _TinyCloud {
|
|
|
13968
13988
|
const address = this.address();
|
|
13969
13989
|
const chainId = this.chainId();
|
|
13970
13990
|
if (!address || !chainId) {
|
|
13971
|
-
return (0,
|
|
13972
|
-
(0,
|
|
13973
|
-
|
|
13991
|
+
return (0, import_sdk_services6.err)(
|
|
13992
|
+
(0, import_sdk_services6.serviceError)(
|
|
13993
|
+
import_sdk_services6.ErrorCodes.AUTH_REQUIRED,
|
|
13974
13994
|
"Must be signed in to ensure public space",
|
|
13975
13995
|
"public-space"
|
|
13976
13996
|
)
|
|
13977
13997
|
);
|
|
13978
13998
|
}
|
|
13979
13999
|
if (!this._serviceContext) {
|
|
13980
|
-
return (0,
|
|
13981
|
-
(0,
|
|
13982
|
-
|
|
14000
|
+
return (0, import_sdk_services6.err)(
|
|
14001
|
+
(0, import_sdk_services6.serviceError)(
|
|
14002
|
+
import_sdk_services6.ErrorCodes.AUTH_REQUIRED,
|
|
13983
14003
|
"Services not initialized. Call initializeServices() or signIn() first.",
|
|
13984
14004
|
"public-space"
|
|
13985
14005
|
)
|
|
@@ -13989,9 +14009,9 @@ var TinyCloud = class _TinyCloud {
|
|
|
13989
14009
|
try {
|
|
13990
14010
|
const session = this._serviceContext.session;
|
|
13991
14011
|
if (!session) {
|
|
13992
|
-
return (0,
|
|
13993
|
-
(0,
|
|
13994
|
-
|
|
14012
|
+
return (0, import_sdk_services6.err)(
|
|
14013
|
+
(0, import_sdk_services6.serviceError)(
|
|
14014
|
+
import_sdk_services6.ErrorCodes.AUTH_REQUIRED,
|
|
13995
14015
|
"No active session",
|
|
13996
14016
|
"public-space"
|
|
13997
14017
|
)
|
|
@@ -14008,7 +14028,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14008
14028
|
{ method: "POST", headers, body: JSON.stringify({ spaceId }) }
|
|
14009
14029
|
);
|
|
14010
14030
|
if (response.ok) {
|
|
14011
|
-
return (0,
|
|
14031
|
+
return (0, import_sdk_services6.ok)(void 0);
|
|
14012
14032
|
}
|
|
14013
14033
|
if (response.status === 404) {
|
|
14014
14034
|
const createHeaders = this._serviceContext.invoke(
|
|
@@ -14027,31 +14047,27 @@ var TinyCloud = class _TinyCloud {
|
|
|
14027
14047
|
);
|
|
14028
14048
|
if (!createResponse.ok) {
|
|
14029
14049
|
if (createResponse.status === 409) {
|
|
14030
|
-
return (0,
|
|
14050
|
+
return (0, import_sdk_services6.ok)(void 0);
|
|
14031
14051
|
}
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
|
|
14037
|
-
|
|
14038
|
-
)
|
|
14039
|
-
);
|
|
14052
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
14053
|
+
createResponse,
|
|
14054
|
+
import_sdk_services6.ErrorCodes.NETWORK_ERROR,
|
|
14055
|
+
"Failed to create public space",
|
|
14056
|
+
"public-space"
|
|
14057
|
+
));
|
|
14040
14058
|
}
|
|
14041
|
-
return (0,
|
|
14059
|
+
return (0, import_sdk_services6.ok)(void 0);
|
|
14042
14060
|
}
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
|
|
14046
|
-
|
|
14047
|
-
|
|
14048
|
-
|
|
14049
|
-
)
|
|
14050
|
-
);
|
|
14061
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
14062
|
+
response,
|
|
14063
|
+
import_sdk_services6.ErrorCodes.NETWORK_ERROR,
|
|
14064
|
+
"Failed to check public space",
|
|
14065
|
+
"public-space"
|
|
14066
|
+
));
|
|
14051
14067
|
} catch (error) {
|
|
14052
|
-
return (0,
|
|
14053
|
-
(0,
|
|
14054
|
-
|
|
14068
|
+
return (0, import_sdk_services6.err)(
|
|
14069
|
+
(0, import_sdk_services6.serviceError)(
|
|
14070
|
+
import_sdk_services6.ErrorCodes.NETWORK_ERROR,
|
|
14055
14071
|
`Network error ensuring public space: ${String(error)}`,
|
|
14056
14072
|
"public-space",
|
|
14057
14073
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14084,8 +14100,8 @@ var TinyCloud = class _TinyCloud {
|
|
|
14084
14100
|
if (!session) {
|
|
14085
14101
|
throw new Error("No active session. Sign in first.");
|
|
14086
14102
|
}
|
|
14087
|
-
const publicKV = new
|
|
14088
|
-
const publicContext = new
|
|
14103
|
+
const publicKV = new import_sdk_services6.KVService({ prefix: "" });
|
|
14104
|
+
const publicContext = new import_sdk_services6.ServiceContext({
|
|
14089
14105
|
invoke: this._serviceContext.invoke,
|
|
14090
14106
|
fetch: this._serviceContext.fetch,
|
|
14091
14107
|
hosts: this._serviceContext.hosts,
|
|
@@ -14118,23 +14134,19 @@ var TinyCloud = class _TinyCloud {
|
|
|
14118
14134
|
const response = await doFetch(url, { method: "GET" });
|
|
14119
14135
|
if (!response.ok) {
|
|
14120
14136
|
if (response.status === 404) {
|
|
14121
|
-
return (0,
|
|
14122
|
-
|
|
14123
|
-
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14127
|
-
);
|
|
14137
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
14138
|
+
response,
|
|
14139
|
+
import_sdk_services6.ErrorCodes.NOT_FOUND,
|
|
14140
|
+
`Key not found: ${key} in space ${spaceId}`,
|
|
14141
|
+
"public-space"
|
|
14142
|
+
));
|
|
14128
14143
|
}
|
|
14129
|
-
|
|
14130
|
-
|
|
14131
|
-
|
|
14132
|
-
|
|
14133
|
-
|
|
14134
|
-
|
|
14135
|
-
{ meta: { status: response.status } }
|
|
14136
|
-
)
|
|
14137
|
-
);
|
|
14144
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
14145
|
+
response,
|
|
14146
|
+
import_sdk_services6.ErrorCodes.NETWORK_ERROR,
|
|
14147
|
+
"Failed to read public space",
|
|
14148
|
+
"public-space"
|
|
14149
|
+
));
|
|
14138
14150
|
}
|
|
14139
14151
|
const contentType = response.headers.get("content-type");
|
|
14140
14152
|
let data;
|
|
@@ -14148,11 +14160,11 @@ var TinyCloud = class _TinyCloud {
|
|
|
14148
14160
|
data = text2;
|
|
14149
14161
|
}
|
|
14150
14162
|
}
|
|
14151
|
-
return (0,
|
|
14163
|
+
return (0, import_sdk_services6.ok)(data);
|
|
14152
14164
|
} catch (error) {
|
|
14153
|
-
return (0,
|
|
14154
|
-
(0,
|
|
14155
|
-
|
|
14165
|
+
return (0, import_sdk_services6.err)(
|
|
14166
|
+
(0, import_sdk_services6.serviceError)(
|
|
14167
|
+
import_sdk_services6.ErrorCodes.NETWORK_ERROR,
|
|
14156
14168
|
`Network error reading public space: ${String(error)}`,
|
|
14157
14169
|
"public-space",
|
|
14158
14170
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14178,7 +14190,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14178
14190
|
};
|
|
14179
14191
|
|
|
14180
14192
|
// src/account/AccountService.ts
|
|
14181
|
-
var
|
|
14193
|
+
var import_sdk_services7 = require("@tinycloud/sdk-services");
|
|
14182
14194
|
var import_bootstrap3 = require("@tinycloud/bootstrap");
|
|
14183
14195
|
var SERVICE_NAME2 = "account";
|
|
14184
14196
|
var ACCOUNT_INDEX_DB = "account";
|
|
@@ -14226,7 +14238,7 @@ var AccountService = class {
|
|
|
14226
14238
|
applications.push(applicationFromRecord(key, loaded.data.data));
|
|
14227
14239
|
}
|
|
14228
14240
|
applications.sort((a, b) => a.appId.localeCompare(b.appId));
|
|
14229
|
-
return (0,
|
|
14241
|
+
return (0, import_sdk_services7.ok)(applications);
|
|
14230
14242
|
},
|
|
14231
14243
|
get: async (appId) => {
|
|
14232
14244
|
const kvResult = this.accountKV();
|
|
@@ -14234,14 +14246,14 @@ var AccountService = class {
|
|
|
14234
14246
|
const key = applicationKey(appId);
|
|
14235
14247
|
const loaded = await kvResult.data.get(key);
|
|
14236
14248
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14237
|
-
return (0,
|
|
14249
|
+
return (0, import_sdk_services7.ok)(applicationFromRecord(key, loaded.data.data));
|
|
14238
14250
|
},
|
|
14239
14251
|
register: async (manifest, options2 = {}) => {
|
|
14240
14252
|
const manifests = Array.isArray(manifest) ? manifest : [manifest];
|
|
14241
14253
|
const request = composeManifestRequest(manifests);
|
|
14242
14254
|
if (request.registryRecords.length === 0) {
|
|
14243
|
-
return (0,
|
|
14244
|
-
(0,
|
|
14255
|
+
return (0, import_sdk_services7.err)(
|
|
14256
|
+
(0, import_sdk_services7.serviceError)(
|
|
14245
14257
|
"INVALID_MANIFEST",
|
|
14246
14258
|
"Manifest did not produce an account application registry record",
|
|
14247
14259
|
SERVICE_NAME2
|
|
@@ -14275,7 +14287,7 @@ var AccountService = class {
|
|
|
14275
14287
|
registered = applicationFromRecord(record2.key, stored);
|
|
14276
14288
|
await this.upsertApplicationIndexQuietly(registered);
|
|
14277
14289
|
}
|
|
14278
|
-
return (0,
|
|
14290
|
+
return (0, import_sdk_services7.ok)(registered);
|
|
14279
14291
|
},
|
|
14280
14292
|
remove: async (appId) => {
|
|
14281
14293
|
const kvResult = this.accountKV();
|
|
@@ -14283,7 +14295,7 @@ var AccountService = class {
|
|
|
14283
14295
|
const removed = await kvResult.data.delete(applicationKey(appId));
|
|
14284
14296
|
if (!removed.ok) return accountErr(removed.error);
|
|
14285
14297
|
await this.deleteApplicationIndexQuietly(appId);
|
|
14286
|
-
return (0,
|
|
14298
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14287
14299
|
}
|
|
14288
14300
|
};
|
|
14289
14301
|
this.spaces = {
|
|
@@ -14297,7 +14309,7 @@ var AccountService = class {
|
|
|
14297
14309
|
if (canonical.data.allRegistered && options2.refreshIndex !== false) {
|
|
14298
14310
|
await this.replaceSpacesIndexQuietly(canonical.data.spaces);
|
|
14299
14311
|
}
|
|
14300
|
-
return (0,
|
|
14312
|
+
return (0, import_sdk_services7.ok)(canonical.data.spaces);
|
|
14301
14313
|
}
|
|
14302
14314
|
const kvResult = this.accountKV();
|
|
14303
14315
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14310,14 +14322,14 @@ var AccountService = class {
|
|
|
14310
14322
|
spaces.push(spaceFromRecord(key, loaded.data.data));
|
|
14311
14323
|
}
|
|
14312
14324
|
spaces.sort((a, b) => a.name.localeCompare(b.name) || a.spaceId.localeCompare(b.spaceId));
|
|
14313
|
-
return (0,
|
|
14325
|
+
return (0, import_sdk_services7.ok)(spaces);
|
|
14314
14326
|
},
|
|
14315
14327
|
get: async (spaceId) => {
|
|
14316
14328
|
const kvResult = this.accountKV();
|
|
14317
14329
|
if (!kvResult.ok) return kvResult;
|
|
14318
14330
|
const loaded = await kvResult.data.get(spaceKey(spaceId));
|
|
14319
14331
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14320
|
-
return (0,
|
|
14332
|
+
return (0, import_sdk_services7.ok)(spaceFromRecord(spaceKey(spaceId), loaded.data.data));
|
|
14321
14333
|
},
|
|
14322
14334
|
register: async (space) => {
|
|
14323
14335
|
await this.config.ensureAccountSpaceHosted?.();
|
|
@@ -14328,7 +14340,7 @@ var AccountService = class {
|
|
|
14328
14340
|
if (!written.ok) return accountErr(written.error);
|
|
14329
14341
|
const registered = spaceFromRecord(spaceKey(stored.space_id), stored);
|
|
14330
14342
|
await this.upsertSpaceIndexQuietly(registered);
|
|
14331
|
-
return (0,
|
|
14343
|
+
return (0, import_sdk_services7.ok)(registered);
|
|
14332
14344
|
},
|
|
14333
14345
|
/**
|
|
14334
14346
|
* Register multiple spaces in one KV batch write + one multi-row index
|
|
@@ -14341,7 +14353,7 @@ var AccountService = class {
|
|
|
14341
14353
|
* leave the first attempt's blocks orphaned.
|
|
14342
14354
|
*/
|
|
14343
14355
|
registerBatch: async (spaces) => {
|
|
14344
|
-
if (spaces.length === 0) return (0,
|
|
14356
|
+
if (spaces.length === 0) return (0, import_sdk_services7.ok)({ spaces: [] });
|
|
14345
14357
|
await this.config.ensureAccountSpaceHosted?.();
|
|
14346
14358
|
const kvResult = this.accountKV();
|
|
14347
14359
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14356,7 +14368,7 @@ var AccountService = class {
|
|
|
14356
14368
|
const batchResult = await kvResult.data.batchPut(items);
|
|
14357
14369
|
if (batchResult.ok) {
|
|
14358
14370
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14359
|
-
return (0,
|
|
14371
|
+
return (0, import_sdk_services7.ok)({ spaces: registered });
|
|
14360
14372
|
}
|
|
14361
14373
|
if (!isAmbiguousBatchFailure(batchResult.error)) {
|
|
14362
14374
|
return accountErr(batchResult.error);
|
|
@@ -14369,8 +14381,8 @@ var AccountService = class {
|
|
|
14369
14381
|
}
|
|
14370
14382
|
}
|
|
14371
14383
|
if (reconcileFailures.length > 0) {
|
|
14372
|
-
return (0,
|
|
14373
|
-
(0,
|
|
14384
|
+
return (0, import_sdk_services7.err)(
|
|
14385
|
+
(0, import_sdk_services7.serviceError)(
|
|
14374
14386
|
"KV_BATCH_RECONCILE_FAILED",
|
|
14375
14387
|
`KV batch write for ${items.length} space(s) failed ambiguously (${batchResult.error.message}) and per-space reconciliation also failed for: ${reconcileFailures.join("; ")}`,
|
|
14376
14388
|
SERVICE_NAME2,
|
|
@@ -14382,11 +14394,11 @@ var AccountService = class {
|
|
|
14382
14394
|
`[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}`
|
|
14383
14395
|
);
|
|
14384
14396
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14385
|
-
return (0,
|
|
14397
|
+
return (0, import_sdk_services7.ok)({ spaces: registered, recoveredFromBatchError: batchResult.error });
|
|
14386
14398
|
},
|
|
14387
14399
|
syncAccessible: async () => {
|
|
14388
14400
|
const synced = await this.syncAccessibleSpaces({ tolerateStorageFull: false });
|
|
14389
|
-
return synced.ok ? (0,
|
|
14401
|
+
return synced.ok ? (0, import_sdk_services7.ok)(synced.data.spaces) : synced;
|
|
14390
14402
|
},
|
|
14391
14403
|
remove: async (spaceId) => {
|
|
14392
14404
|
const kvResult = this.accountKV();
|
|
@@ -14394,21 +14406,21 @@ var AccountService = class {
|
|
|
14394
14406
|
const removed = await kvResult.data.delete(spaceKey(spaceId));
|
|
14395
14407
|
if (!removed.ok) return accountErr(removed.error);
|
|
14396
14408
|
await this.deleteSpaceIndexQuietly(spaceId);
|
|
14397
|
-
return (0,
|
|
14409
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14398
14410
|
}
|
|
14399
14411
|
};
|
|
14400
14412
|
this.delegations = {
|
|
14401
14413
|
query: async (options2 = {}) => {
|
|
14402
14414
|
const manager = this.config.getDelegationManager?.();
|
|
14403
14415
|
if (!manager) {
|
|
14404
|
-
return (0,
|
|
14416
|
+
return (0, import_sdk_services7.err)((0, import_sdk_services7.serviceError)(
|
|
14405
14417
|
"NOT_INITIALIZED",
|
|
14406
14418
|
"Delegation history requires an authenticated delegation manager",
|
|
14407
14419
|
SERVICE_NAME2
|
|
14408
14420
|
));
|
|
14409
14421
|
}
|
|
14410
14422
|
const queried = await manager.query(options2);
|
|
14411
|
-
return queried.ok ? (0,
|
|
14423
|
+
return queried.ok ? (0, import_sdk_services7.ok)(queried.data) : accountErr(queried.error);
|
|
14412
14424
|
},
|
|
14413
14425
|
list: async (options2 = {}) => {
|
|
14414
14426
|
if (options2.preferIndex) {
|
|
@@ -14442,17 +14454,17 @@ var AccountService = class {
|
|
|
14442
14454
|
}
|
|
14443
14455
|
}
|
|
14444
14456
|
delegations.sort((a, b) => a.spaceId.localeCompare(b.spaceId) || a.cid.localeCompare(b.cid));
|
|
14445
|
-
return (0,
|
|
14457
|
+
return (0, import_sdk_services7.ok)(delegations);
|
|
14446
14458
|
},
|
|
14447
14459
|
revoke: async (input) => {
|
|
14448
14460
|
const cid2 = typeof input === "string" ? input : input.cid;
|
|
14449
14461
|
const manager = this.config.getDelegationManager?.();
|
|
14450
14462
|
if (manager) {
|
|
14451
14463
|
const revoked2 = await manager.revoke(cid2);
|
|
14452
|
-
return revoked2.ok ? (0,
|
|
14464
|
+
return revoked2.ok ? (0, import_sdk_services7.ok)(revoked2.data) : accountErr(revoked2.error);
|
|
14453
14465
|
}
|
|
14454
14466
|
if (typeof input === "string") {
|
|
14455
|
-
return (0,
|
|
14467
|
+
return (0, import_sdk_services7.err)((0, import_sdk_services7.serviceError)(
|
|
14456
14468
|
"NOT_INITIALIZED",
|
|
14457
14469
|
"CID-only revocation requires an authenticated delegation manager",
|
|
14458
14470
|
SERVICE_NAME2
|
|
@@ -14462,7 +14474,7 @@ var AccountService = class {
|
|
|
14462
14474
|
if (!space.ok) return space;
|
|
14463
14475
|
const revoked = await this.config.getSpaces().get(space.data.id).delegations.revoke(cid2);
|
|
14464
14476
|
if (!revoked.ok) return accountErr(revoked.error);
|
|
14465
|
-
return (0,
|
|
14477
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14466
14478
|
}
|
|
14467
14479
|
};
|
|
14468
14480
|
this.index = {
|
|
@@ -14471,7 +14483,7 @@ var AccountService = class {
|
|
|
14471
14483
|
if (!dbResult.ok) return dbResult;
|
|
14472
14484
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14473
14485
|
if (!schema.ok) return schema;
|
|
14474
|
-
return (0,
|
|
14486
|
+
return (0, import_sdk_services7.ok)({ database: ACCOUNT_INDEX_DB });
|
|
14475
14487
|
},
|
|
14476
14488
|
rebuild: async () => {
|
|
14477
14489
|
const dbResult = this.accountDb();
|
|
@@ -14553,7 +14565,7 @@ var AccountService = class {
|
|
|
14553
14565
|
];
|
|
14554
14566
|
const rebuilt = await dbResult.data.batch(statements);
|
|
14555
14567
|
if (!rebuilt.ok) return accountErr(rebuilt.error);
|
|
14556
|
-
return (0,
|
|
14568
|
+
return (0, import_sdk_services7.ok)({
|
|
14557
14569
|
database: ACCOUNT_INDEX_DB,
|
|
14558
14570
|
applications: applications.data.length,
|
|
14559
14571
|
spaces: spaces.data.length,
|
|
@@ -14569,7 +14581,7 @@ var AccountService = class {
|
|
|
14569
14581
|
"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"
|
|
14570
14582
|
);
|
|
14571
14583
|
if (!queried.ok) return accountErr(queried.error);
|
|
14572
|
-
return (0,
|
|
14584
|
+
return (0, import_sdk_services7.ok)(queried.data.rows.map(indexedApplicationFromRow));
|
|
14573
14585
|
}
|
|
14574
14586
|
},
|
|
14575
14587
|
spaces: {
|
|
@@ -14580,7 +14592,7 @@ var AccountService = class {
|
|
|
14580
14592
|
"SELECT space_id, name, owner_did, type, permissions_json, status, registered_at, updated_at, expires_at FROM spaces ORDER BY name, space_id"
|
|
14581
14593
|
);
|
|
14582
14594
|
if (!queried.ok) return accountErr(queried.error);
|
|
14583
|
-
return (0,
|
|
14595
|
+
return (0, import_sdk_services7.ok)(queried.data.rows.map(indexedSpaceFromRow));
|
|
14584
14596
|
}
|
|
14585
14597
|
},
|
|
14586
14598
|
delegations: {
|
|
@@ -14602,7 +14614,7 @@ var AccountService = class {
|
|
|
14602
14614
|
params
|
|
14603
14615
|
);
|
|
14604
14616
|
if (!queried.ok) return accountErr(queried.error);
|
|
14605
|
-
return (0,
|
|
14617
|
+
return (0, import_sdk_services7.ok)(queried.data.rows.map(indexedDelegationFromRow));
|
|
14606
14618
|
}
|
|
14607
14619
|
},
|
|
14608
14620
|
query: async (sql, params) => {
|
|
@@ -14610,7 +14622,7 @@ var AccountService = class {
|
|
|
14610
14622
|
if (!dbResult.ok) return dbResult;
|
|
14611
14623
|
const queried = await dbResult.data.query(sql, params);
|
|
14612
14624
|
if (!queried.ok) return accountErr(queried.error);
|
|
14613
|
-
return (0,
|
|
14625
|
+
return (0, import_sdk_services7.ok)(queried.data);
|
|
14614
14626
|
},
|
|
14615
14627
|
status: async () => {
|
|
14616
14628
|
const dbResult = this.accountDb();
|
|
@@ -14620,11 +14632,11 @@ var AccountService = class {
|
|
|
14620
14632
|
);
|
|
14621
14633
|
if (!queried.ok) {
|
|
14622
14634
|
if (isMissingIndexError(queried.error)) {
|
|
14623
|
-
return (0,
|
|
14635
|
+
return (0, import_sdk_services7.ok)({ database: ACCOUNT_INDEX_DB, state: "missing", sources: [] });
|
|
14624
14636
|
}
|
|
14625
14637
|
return accountErr(queried.error);
|
|
14626
14638
|
}
|
|
14627
|
-
return (0,
|
|
14639
|
+
return (0, import_sdk_services7.ok)({
|
|
14628
14640
|
database: ACCOUNT_INDEX_DB,
|
|
14629
14641
|
state: "ready",
|
|
14630
14642
|
sources: queried.data.rows.map(([source, syncedAt, count]) => ({
|
|
@@ -14643,7 +14655,7 @@ var AccountService = class {
|
|
|
14643
14655
|
if (!delegations.ok) return delegations;
|
|
14644
14656
|
const spaces = await this.spaces.list();
|
|
14645
14657
|
if (!spaces.ok) return spaces;
|
|
14646
|
-
return (0,
|
|
14658
|
+
return (0, import_sdk_services7.ok)({
|
|
14647
14659
|
did: this.config.getDid(),
|
|
14648
14660
|
host: this.config.getHost(),
|
|
14649
14661
|
primarySpaceId: this.config.getPrimarySpaceId(),
|
|
@@ -14657,28 +14669,28 @@ var AccountService = class {
|
|
|
14657
14669
|
accountKV() {
|
|
14658
14670
|
const accountSpaceId = this.config.getAccountSpaceId();
|
|
14659
14671
|
if (!accountSpaceId) {
|
|
14660
|
-
return (0,
|
|
14661
|
-
(0,
|
|
14672
|
+
return (0, import_sdk_services7.err)(
|
|
14673
|
+
(0, import_sdk_services7.serviceError)(
|
|
14662
14674
|
"ACCOUNT_SPACE_UNAVAILABLE",
|
|
14663
14675
|
"Account space is unavailable. Sign in with a wallet-backed profile first.",
|
|
14664
14676
|
SERVICE_NAME2
|
|
14665
14677
|
)
|
|
14666
14678
|
);
|
|
14667
14679
|
}
|
|
14668
|
-
return (0,
|
|
14680
|
+
return (0, import_sdk_services7.ok)(this.config.getSpaces().get(accountSpaceId).kv);
|
|
14669
14681
|
}
|
|
14670
14682
|
accountDb() {
|
|
14671
14683
|
const db = this.config.getAccountDb?.();
|
|
14672
14684
|
if (!db) {
|
|
14673
|
-
return (0,
|
|
14674
|
-
(0,
|
|
14685
|
+
return (0, import_sdk_services7.err)(
|
|
14686
|
+
(0, import_sdk_services7.serviceError)(
|
|
14675
14687
|
"ACCOUNT_INDEX_UNAVAILABLE",
|
|
14676
14688
|
"Account index database is unavailable. Sign in with a wallet-backed profile first.",
|
|
14677
14689
|
SERVICE_NAME2
|
|
14678
14690
|
)
|
|
14679
14691
|
);
|
|
14680
14692
|
}
|
|
14681
|
-
return (0,
|
|
14693
|
+
return (0, import_sdk_services7.ok)(db);
|
|
14682
14694
|
}
|
|
14683
14695
|
async indexHasApplicationHash(appId, manifestHash) {
|
|
14684
14696
|
const dbResult = this.accountDb();
|
|
@@ -14696,7 +14708,7 @@ var AccountService = class {
|
|
|
14696
14708
|
}
|
|
14697
14709
|
async upsertApplicationIndex(app) {
|
|
14698
14710
|
const dbResult = this.accountDb();
|
|
14699
|
-
if (!dbResult.ok) return (0,
|
|
14711
|
+
if (!dbResult.ok) return (0, import_sdk_services7.ok)(void 0);
|
|
14700
14712
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14701
14713
|
if (!schema.ok) return schema;
|
|
14702
14714
|
const updatedAt = app.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -14718,14 +14730,14 @@ var AccountService = class {
|
|
|
14718
14730
|
}
|
|
14719
14731
|
]);
|
|
14720
14732
|
if (!written.ok) return accountErr(written.error);
|
|
14721
|
-
return (0,
|
|
14733
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14722
14734
|
}
|
|
14723
14735
|
async deleteApplicationIndexQuietly(appId) {
|
|
14724
14736
|
await ignoreIndexFailure(() => this.deleteApplicationIndex(appId));
|
|
14725
14737
|
}
|
|
14726
14738
|
async deleteApplicationIndex(appId) {
|
|
14727
14739
|
const dbResult = this.accountDb();
|
|
14728
|
-
if (!dbResult.ok) return (0,
|
|
14740
|
+
if (!dbResult.ok) return (0, import_sdk_services7.ok)(void 0);
|
|
14729
14741
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14730
14742
|
if (!schema.ok) return schema;
|
|
14731
14743
|
const deleted = await dbResult.data.batch([
|
|
@@ -14733,14 +14745,14 @@ var AccountService = class {
|
|
|
14733
14745
|
{ sql: "DELETE FROM application_state WHERE app_id = ?", params: [appId] }
|
|
14734
14746
|
]);
|
|
14735
14747
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
14736
|
-
return (0,
|
|
14748
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14737
14749
|
}
|
|
14738
14750
|
async upsertSpaceIndexQuietly(space) {
|
|
14739
14751
|
await ignoreIndexFailure(() => this.upsertSpaceIndex(space));
|
|
14740
14752
|
}
|
|
14741
14753
|
async upsertSpaceIndex(space) {
|
|
14742
14754
|
const dbResult = this.accountDb();
|
|
14743
|
-
if (!dbResult.ok) return (0,
|
|
14755
|
+
if (!dbResult.ok) return (0, import_sdk_services7.ok)(void 0);
|
|
14744
14756
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14745
14757
|
if (!schema.ok) return schema;
|
|
14746
14758
|
const updatedAt = space.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -14761,7 +14773,7 @@ var AccountService = class {
|
|
|
14761
14773
|
}
|
|
14762
14774
|
]);
|
|
14763
14775
|
if (!written.ok) return accountErr(written.error);
|
|
14764
|
-
return (0,
|
|
14776
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14765
14777
|
}
|
|
14766
14778
|
async upsertSpacesIndexQuietly(spaces) {
|
|
14767
14779
|
await ignoreIndexFailure(() => this.upsertSpacesIndex(spaces));
|
|
@@ -14775,9 +14787,9 @@ var AccountService = class {
|
|
|
14775
14787
|
* atomically: all rows or none.
|
|
14776
14788
|
*/
|
|
14777
14789
|
async upsertSpacesIndex(spaces) {
|
|
14778
|
-
if (spaces.length === 0) return (0,
|
|
14790
|
+
if (spaces.length === 0) return (0, import_sdk_services7.ok)(void 0);
|
|
14779
14791
|
const dbResult = this.accountDb();
|
|
14780
|
-
if (!dbResult.ok) return (0,
|
|
14792
|
+
if (!dbResult.ok) return (0, import_sdk_services7.ok)(void 0);
|
|
14781
14793
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14782
14794
|
if (!schema.ok) return schema;
|
|
14783
14795
|
const placeholders = spaces.map(() => "(?, ?, ?, ?, ?, ?, ?, ?, ?)").join(", ");
|
|
@@ -14802,21 +14814,21 @@ var AccountService = class {
|
|
|
14802
14814
|
}
|
|
14803
14815
|
]);
|
|
14804
14816
|
if (!written.ok) return accountErr(written.error);
|
|
14805
|
-
return (0,
|
|
14817
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14806
14818
|
}
|
|
14807
14819
|
async deleteSpaceIndexQuietly(spaceId) {
|
|
14808
14820
|
await ignoreIndexFailure(() => this.deleteSpaceIndex(spaceId));
|
|
14809
14821
|
}
|
|
14810
14822
|
async deleteSpaceIndex(spaceId) {
|
|
14811
14823
|
const dbResult = this.accountDb();
|
|
14812
|
-
if (!dbResult.ok) return (0,
|
|
14824
|
+
if (!dbResult.ok) return (0, import_sdk_services7.ok)(void 0);
|
|
14813
14825
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14814
14826
|
if (!schema.ok) return schema;
|
|
14815
14827
|
const deleted = await dbResult.data.batch([
|
|
14816
14828
|
{ sql: "DELETE FROM spaces WHERE space_id = ?", params: [spaceId] }
|
|
14817
14829
|
]);
|
|
14818
14830
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
14819
|
-
return (0,
|
|
14831
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14820
14832
|
}
|
|
14821
14833
|
/**
|
|
14822
14834
|
* Register every space the session can reach and return them. With
|
|
@@ -14836,7 +14848,7 @@ var AccountService = class {
|
|
|
14836
14848
|
spaces.push(result.data);
|
|
14837
14849
|
continue;
|
|
14838
14850
|
}
|
|
14839
|
-
if (!options2.tolerateStorageFull || !(0,
|
|
14851
|
+
if (!options2.tolerateStorageFull || !(0, import_sdk_services7.isStorageFullError)(result.error)) {
|
|
14840
14852
|
return result;
|
|
14841
14853
|
}
|
|
14842
14854
|
allRegistered = false;
|
|
@@ -14844,18 +14856,18 @@ var AccountService = class {
|
|
|
14844
14856
|
const record2 = spaceRecordFromInput(space);
|
|
14845
14857
|
spaces.push(spaceFromRecord(spaceKey(record2.space_id), record2));
|
|
14846
14858
|
}
|
|
14847
|
-
return (0,
|
|
14859
|
+
return (0, import_sdk_services7.ok)({ spaces, allRegistered });
|
|
14848
14860
|
}
|
|
14849
14861
|
async resolveSpace(space) {
|
|
14850
14862
|
const listed = await this.config.getSpaces().list();
|
|
14851
14863
|
if (!listed.ok) return accountErr(listed.error);
|
|
14852
14864
|
const found = listed.data.find((candidate) => candidate.id === space || candidate.name === space);
|
|
14853
14865
|
if (!found) {
|
|
14854
|
-
return (0,
|
|
14855
|
-
(0,
|
|
14866
|
+
return (0, import_sdk_services7.err)(
|
|
14867
|
+
(0, import_sdk_services7.serviceError)("SPACE_NOT_FOUND", `No account space found for ${JSON.stringify(space)}`, SERVICE_NAME2)
|
|
14856
14868
|
);
|
|
14857
14869
|
}
|
|
14858
|
-
return (0,
|
|
14870
|
+
return (0, import_sdk_services7.ok)(found);
|
|
14859
14871
|
}
|
|
14860
14872
|
async replaceApplicationsIndexQuietly(applications) {
|
|
14861
14873
|
await ignoreIndexFailure(async () => {
|
|
@@ -14997,7 +15009,7 @@ var AccountService = class {
|
|
|
14997
15009
|
]
|
|
14998
15010
|
});
|
|
14999
15011
|
if (!migrated.ok) return accountErr(migrated.error);
|
|
15000
|
-
return (0,
|
|
15012
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
15001
15013
|
}
|
|
15002
15014
|
};
|
|
15003
15015
|
function applicationKey(appId) {
|
|
@@ -15153,17 +15165,17 @@ function mapDelegation(delegation, space, direction) {
|
|
|
15153
15165
|
};
|
|
15154
15166
|
}
|
|
15155
15167
|
function accountErr(error) {
|
|
15156
|
-
return (0,
|
|
15168
|
+
return (0, import_sdk_services7.err)((0, import_sdk_services7.serviceError)(error.code, error.message, SERVICE_NAME2, { cause: error.cause, meta: error.meta }));
|
|
15157
15169
|
}
|
|
15158
15170
|
function isMissingIndexError(error) {
|
|
15159
15171
|
return /no such table:/i.test(error.message);
|
|
15160
15172
|
}
|
|
15161
15173
|
var AMBIGUOUS_WRITE_STATUSES = /* @__PURE__ */ new Set([500, 502, 503, 504, 520, 522, 524]);
|
|
15162
15174
|
function isAmbiguousBatchFailure(error) {
|
|
15163
|
-
if (error.code ===
|
|
15175
|
+
if (error.code === import_sdk_services7.ErrorCodes.NETWORK_ERROR || error.code === import_sdk_services7.ErrorCodes.TIMEOUT) {
|
|
15164
15176
|
return error.meta?.requestMayHaveDispatched === true;
|
|
15165
15177
|
}
|
|
15166
|
-
if (error.code ===
|
|
15178
|
+
if (error.code === import_sdk_services7.ErrorCodes.KV_WRITE_FAILED) {
|
|
15167
15179
|
const status = error.meta?.status;
|
|
15168
15180
|
return typeof status === "number" && AMBIGUOUS_WRITE_STATUSES.has(status);
|
|
15169
15181
|
}
|
|
@@ -15177,7 +15189,7 @@ async function ignoreIndexFailure(task) {
|
|
|
15177
15189
|
}
|
|
15178
15190
|
|
|
15179
15191
|
// src/index.ts
|
|
15180
|
-
var
|
|
15192
|
+
var import_sdk_services9 = require("@tinycloud/sdk-services");
|
|
15181
15193
|
|
|
15182
15194
|
// src/space.ts
|
|
15183
15195
|
async function fetchPeerId(host, spaceId) {
|
|
@@ -15186,7 +15198,9 @@ async function fetchPeerId(host, spaceId) {
|
|
|
15186
15198
|
);
|
|
15187
15199
|
if (!res.ok) {
|
|
15188
15200
|
const error = await res.text().catch(() => res.statusText);
|
|
15189
|
-
throw new Error(`Failed to get peer ID: ${res.status} - ${error}`)
|
|
15201
|
+
throw Object.assign(new Error(`Failed to get peer ID: ${res.status} - ${error}`), {
|
|
15202
|
+
status: res.status
|
|
15203
|
+
});
|
|
15190
15204
|
}
|
|
15191
15205
|
return res.text();
|
|
15192
15206
|
}
|
|
@@ -15276,7 +15290,7 @@ async function postSessionActivation(host, delegationHeader) {
|
|
|
15276
15290
|
}
|
|
15277
15291
|
|
|
15278
15292
|
// src/authorization/CapabilityKeyRegistry.ts
|
|
15279
|
-
var
|
|
15293
|
+
var import_sdk_services8 = require("@tinycloud/sdk-services");
|
|
15280
15294
|
var SERVICE_NAME3 = "capability-key-registry";
|
|
15281
15295
|
var CapabilityKeyRegistryErrorCodes = {
|
|
15282
15296
|
/** Key not found in registry */
|
|
@@ -15501,8 +15515,8 @@ var CapabilityKeyRegistry = class {
|
|
|
15501
15515
|
revokeDelegation(cid2) {
|
|
15502
15516
|
const stored = this.store.byCid.get(cid2);
|
|
15503
15517
|
if (!stored || stored.length === 0) {
|
|
15504
|
-
return (0,
|
|
15505
|
-
(0,
|
|
15518
|
+
return (0, import_sdk_services8.err)(
|
|
15519
|
+
(0, import_sdk_services8.serviceError)(
|
|
15506
15520
|
CapabilityKeyRegistryErrorCodes.KEY_NOT_FOUND,
|
|
15507
15521
|
`Delegation not found: ${cid2}`,
|
|
15508
15522
|
SERVICE_NAME3
|
|
@@ -15522,7 +15536,7 @@ var CapabilityKeyRegistry = class {
|
|
|
15522
15536
|
}
|
|
15523
15537
|
}
|
|
15524
15538
|
}
|
|
15525
|
-
return (0,
|
|
15539
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15526
15540
|
}
|
|
15527
15541
|
// ===========================================================================
|
|
15528
15542
|
// Search
|