@tinycloud/sdk-core 3.8.0-beta.15 → 3.8.0-beta.17
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 +9 -8
- package/dist/delegations/index.cjs.map +1 -1
- package/dist/delegations/index.js +1 -0
- package/dist/delegations/index.js.map +1 -1
- package/dist/index.cjs +288 -285
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -8
- 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,37 +329,37 @@ __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
364
|
expandDelegationPermissionEntries: () => expandDelegationPermissionEntries,
|
|
365
365
|
expandPermissionEntries: () => expandPermissionEntries,
|
|
@@ -368,27 +368,27 @@ __export(index_exports, {
|
|
|
368
368
|
extractRecapAttenuations: () => extractRecapAttenuations,
|
|
369
369
|
fetchLocationRecord: () => fetchLocationRecord,
|
|
370
370
|
fetchPeerId: () => fetchPeerId,
|
|
371
|
-
generateRandomReceiverKey: () =>
|
|
371
|
+
generateRandomReceiverKey: () => import_sdk_services10.generateRandomReceiverKey,
|
|
372
372
|
getPolicyRootStatusV3: () => getPolicyRootStatusV3,
|
|
373
|
-
getTinyCloudDebugLogs: () =>
|
|
373
|
+
getTinyCloudDebugLogs: () => import_sdk_services10.getTinyCloudDebugLogs,
|
|
374
374
|
hasTinyCloudManageKeyScope: () => hasTinyCloudManageKeyScope,
|
|
375
|
-
hexDecode: () =>
|
|
376
|
-
hexEncode: () =>
|
|
375
|
+
hexDecode: () => import_sdk_services10.hexDecode,
|
|
376
|
+
hexEncode: () => import_sdk_services10.hexEncode,
|
|
377
377
|
holderBindingCanonicalBytes: () => holderBindingCanonicalBytes,
|
|
378
378
|
holderBindingSigningBytes: () => holderBindingSigningBytes,
|
|
379
379
|
httpResponseError: () => httpResponseError,
|
|
380
380
|
httpUrlToMultiaddr: () => httpUrlToMultiaddr,
|
|
381
381
|
importPortableDelegation: () => importPortableDelegation,
|
|
382
|
-
installTinyCloudDebugGlobals: () =>
|
|
382
|
+
installTinyCloudDebugGlobals: () => import_sdk_services10.installTinyCloudDebugGlobals,
|
|
383
383
|
intersectShareCapabilities: () => intersectShareCapabilities,
|
|
384
384
|
isCanonicalEmailDomain: () => import_share_envelope.isCanonicalEmailDomain,
|
|
385
385
|
isCapabilitySubset: () => isCapabilitySubset,
|
|
386
386
|
isDigest: () => isDigest,
|
|
387
387
|
isEvmAddress: () => isEvmAddress,
|
|
388
388
|
isExplicitOnlyAction: () => isExplicitOnlyAction,
|
|
389
|
-
isNetworkId: () =>
|
|
389
|
+
isNetworkId: () => import_sdk_services10.isNetworkId,
|
|
390
390
|
isPlausibleOpenKeyActionId: () => isPlausibleOpenKeyActionId,
|
|
391
|
-
isStorageFullError: () =>
|
|
391
|
+
isStorageFullError: () => import_sdk_services10.isStorageFullError,
|
|
392
392
|
isV2ShareLink: () => isV2ShareLink,
|
|
393
393
|
issuedCredentialEnvelopeFromVerified: () => issuedCredentialEnvelopeFromVerified,
|
|
394
394
|
jcsCanonicalize: () => jcsCanonicalize,
|
|
@@ -401,36 +401,36 @@ __export(index_exports, {
|
|
|
401
401
|
manifestAbilitiesUnion: () => manifestAbilitiesUnion,
|
|
402
402
|
markDelegationTerminal: () => markDelegationTerminal,
|
|
403
403
|
multiaddrToHttpUrl: () => multiaddrToHttpUrl,
|
|
404
|
-
networkDiscoveryKey: () =>
|
|
404
|
+
networkDiscoveryKey: () => import_sdk_services10.networkDiscoveryKey,
|
|
405
405
|
normalizeDefaults: () => normalizeDefaults,
|
|
406
406
|
normalizeJson: () => normalizeJson,
|
|
407
407
|
normalizeShareActions: () => normalizeShareActions,
|
|
408
408
|
normalizeShareRecipientTarget: () => normalizeShareRecipientTarget,
|
|
409
409
|
normalizeShareResource: () => normalizeShareResource,
|
|
410
410
|
normalizeUnifiedPolicyCapability: () => normalizeUnifiedPolicyCapability,
|
|
411
|
-
ok: () =>
|
|
412
|
-
openWrappedKey: () =>
|
|
411
|
+
ok: () => import_sdk_services10.ok,
|
|
412
|
+
openWrappedKey: () => import_sdk_services10.openWrappedKey,
|
|
413
413
|
parseCanonicalNetworkId: () => parseCanonicalNetworkId,
|
|
414
414
|
parseCanonicalRecapResource: () => parseCanonicalRecapResource,
|
|
415
415
|
parseCanonicalTinyCloudIdentity: () => parseCanonicalTinyCloudIdentity,
|
|
416
416
|
parseCanonicalTinyCloudIdentityClaims: () => parseCanonicalTinyCloudIdentityClaims,
|
|
417
|
-
parseCapabilityResource: () =>
|
|
417
|
+
parseCapabilityResource: () => import_sdk_services10.parseCapabilityResource,
|
|
418
418
|
parseCompactUcanAuthorization: () => parseCompactUcanAuthorization,
|
|
419
419
|
parseExpiry: () => parseExpiry,
|
|
420
|
-
parseNetworkId: () =>
|
|
420
|
+
parseNetworkId: () => import_sdk_services10.parseNetworkId,
|
|
421
421
|
parseNodeNativePortableDelegation: () => parseNodeNativePortableDelegation,
|
|
422
422
|
parsePkhDid: () => parsePkhDid,
|
|
423
423
|
parsePolicySessionUcan: () => parsePolicySessionUcan,
|
|
424
424
|
parsePortableDelegation: () => parsePortableDelegation,
|
|
425
425
|
parseRecapCapabilities: () => parseRecapCapabilities,
|
|
426
|
-
parseSecretCatalogKey: () =>
|
|
426
|
+
parseSecretCatalogKey: () => import_sdk_services10.parseSecretCatalogKey,
|
|
427
427
|
parseShareArtifact: () => parseShareArtifact,
|
|
428
428
|
parseShareUrl: () => parseShareUrl,
|
|
429
429
|
parseSignedCompactUcanAttenuation: () => parseSignedCompactUcanAttenuation,
|
|
430
430
|
parseSignedSiweCacao: () => parseSignedSiweCacao,
|
|
431
431
|
parseSpaceUri: () => parseSpaceUri,
|
|
432
|
-
parseStorageRejection: () =>
|
|
433
|
-
parseStorageStatus: () =>
|
|
432
|
+
parseStorageRejection: () => import_sdk_services10.parseStorageRejection,
|
|
433
|
+
parseStorageStatus: () => import_sdk_services10.parseStorageStatus,
|
|
434
434
|
pkhDid: () => pkhDid,
|
|
435
435
|
policyCidFromCanonicalBytes: () => policyCidFromCanonicalBytes,
|
|
436
436
|
policyDigestHex: () => policyDigestHex,
|
|
@@ -451,8 +451,8 @@ __export(index_exports, {
|
|
|
451
451
|
resolveManifest: () => resolveManifest,
|
|
452
452
|
resolveManifestKnowledgeRoot: () => resolveManifestKnowledgeRoot,
|
|
453
453
|
resolveOwnerHosts: () => resolveOwnerHosts,
|
|
454
|
-
resolveSecretListPrefix: () =>
|
|
455
|
-
resolveSecretPath: () =>
|
|
454
|
+
resolveSecretListPrefix: () => import_sdk_services10.resolveSecretListPrefix,
|
|
455
|
+
resolveSecretPath: () => import_sdk_services10.resolveSecretPath,
|
|
456
456
|
resolveTinyCloudHosts: () => resolveTinyCloudHosts,
|
|
457
457
|
resourceCapabilitiesToAbilitiesMap: () => resourceCapabilitiesToAbilitiesMap,
|
|
458
458
|
resourceCapabilitiesToSpaceAbilitiesMap: () => resourceCapabilitiesToSpaceAbilitiesMap,
|
|
@@ -460,7 +460,7 @@ __export(index_exports, {
|
|
|
460
460
|
revokePolicyRootV3: () => revokePolicyRootV3,
|
|
461
461
|
serializeJcsJson: () => serialize,
|
|
462
462
|
serializePortableDelegation: () => serializePortableDelegation,
|
|
463
|
-
serviceError: () =>
|
|
463
|
+
serviceError: () => import_sdk_services10.serviceError,
|
|
464
464
|
sha256Base64Url: () => sha256Base64Url,
|
|
465
465
|
shareCapabilityAllows: () => shareCapabilityAllows,
|
|
466
466
|
shortDeliveryLinkBodyCid: () => shortDeliveryLinkBodyCid,
|
|
@@ -471,9 +471,9 @@ __export(index_exports, {
|
|
|
471
471
|
signPolicyCredentialPresentationV4: () => signPolicyCredentialPresentationV4,
|
|
472
472
|
signShareEnvelope: () => signShareEnvelope,
|
|
473
473
|
signedObjectIdFor: () => signedObjectIdFor,
|
|
474
|
-
storageUsageState: () =>
|
|
474
|
+
storageUsageState: () => import_sdk_services10.storageUsageState,
|
|
475
475
|
submitHostDelegation: () => submitHostDelegation,
|
|
476
|
-
tinyCloudDebugLogger: () =>
|
|
476
|
+
tinyCloudDebugLogger: () => import_sdk_services10.tinyCloudDebugLogger,
|
|
477
477
|
toSignedObjectError: () => toSignedObjectError,
|
|
478
478
|
unauthorizedRecapCapabilities: () => unauthorizedRecapCapabilities,
|
|
479
479
|
unifiedNativeProjectionHashHex: () => unifiedNativeProjectionHashHex,
|
|
@@ -485,7 +485,7 @@ __export(index_exports, {
|
|
|
485
485
|
validateCredentialFlowDescriptor: () => validateCredentialFlowDescriptor,
|
|
486
486
|
validateCredentialHolderBinding: () => validateCredentialHolderBinding,
|
|
487
487
|
validateCredentialRequirement: () => validateCredentialRequirement,
|
|
488
|
-
validateEnvelope: () =>
|
|
488
|
+
validateEnvelope: () => import_sdk_services10.validateEnvelope,
|
|
489
489
|
validateLocationRecord: () => validateLocationRecord,
|
|
490
490
|
validateLocationRecordPayload: () => validateLocationRecordPayload,
|
|
491
491
|
validateManifest: () => validateManifest,
|
|
@@ -503,8 +503,8 @@ __export(index_exports, {
|
|
|
503
503
|
validatePolicyStatusUnsigned: () => validatePolicyStatusUnsigned,
|
|
504
504
|
validatePolicyUnsigned: () => validatePolicyUnsigned,
|
|
505
505
|
validateUnifiedPolicyV2: () => validateUnifiedPolicyV2,
|
|
506
|
-
validatedCapabilityOf: () =>
|
|
507
|
-
verifyDecryptResponse: () =>
|
|
506
|
+
validatedCapabilityOf: () => import_sdk_services10.validatedCapabilityOf,
|
|
507
|
+
verifyDecryptResponse: () => import_sdk_services10.verifyDecryptResponse,
|
|
508
508
|
verifyDidKeyEd25519Signature: () => verifyDidKeyEd25519Signature,
|
|
509
509
|
verifyEip191MessageSignature: () => verifyEip191MessageSignature,
|
|
510
510
|
verifyIssuedCredential: () => verifyIssuedCredential,
|
|
@@ -3948,6 +3948,7 @@ var import_sha256 = require("@noble/hashes/sha256");
|
|
|
3948
3948
|
var import_blake3 = require("@noble/hashes/blake3");
|
|
3949
3949
|
var import_ed255193 = require("@noble/curves/ed25519");
|
|
3950
3950
|
var import_zod2 = require("zod");
|
|
3951
|
+
var import_sdk_services2 = require("@tinycloud/sdk-services");
|
|
3951
3952
|
|
|
3952
3953
|
// src/http-error.ts
|
|
3953
3954
|
var import_sdk_services = require("@tinycloud/sdk-services");
|
|
@@ -4216,12 +4217,9 @@ function parseKvResource(resource) {
|
|
|
4216
4217
|
return { space, path };
|
|
4217
4218
|
}
|
|
4218
4219
|
function parseEncryptionResource(resource) {
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
const ownerDid = separator < 0 ? "" : rest.slice(0, separator);
|
|
4223
|
-
const network = separator < 0 ? "" : rest.slice(separator + 1);
|
|
4224
|
-
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 {
|
|
4225
4223
|
throw new Error("encryption capability is invalid");
|
|
4226
4224
|
}
|
|
4227
4225
|
}
|
|
@@ -7769,7 +7767,7 @@ function validateEncodedShareData(data) {
|
|
|
7769
7767
|
// src/manifest.ts
|
|
7770
7768
|
var import_ms = __toESM(require("ms"), 1);
|
|
7771
7769
|
var import_bootstrap2 = require("@tinycloud/bootstrap");
|
|
7772
|
-
var
|
|
7770
|
+
var import_sdk_services3 = require("@tinycloud/sdk-services");
|
|
7773
7771
|
var import_resource = require("@tinycloud/sdk-services/encryption/resource");
|
|
7774
7772
|
var DEFAULT_KNOWLEDGE_ROOT = "knowledge/index.md";
|
|
7775
7773
|
var ManifestValidationError = class extends Error {
|
|
@@ -7893,11 +7891,13 @@ function expandEncryptionPermissionEntry(entry) {
|
|
|
7893
7891
|
`tinycloud.encryption entries require path to be a networkId URN (got ${JSON.stringify(entry.path)})`
|
|
7894
7892
|
);
|
|
7895
7893
|
}
|
|
7896
|
-
|
|
7894
|
+
const sharePrefix = entry.path.endsWith("/share/");
|
|
7895
|
+
if (entry.path.includes("/") && !sharePrefix) {
|
|
7897
7896
|
throw new ManifestValidationError("named keys go in manifest.keys");
|
|
7898
7897
|
}
|
|
7899
7898
|
try {
|
|
7900
|
-
(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");
|
|
7901
7901
|
} catch {
|
|
7902
7902
|
throw new ManifestValidationError("tinycloud.encryption entries require a valid networkId URN");
|
|
7903
7903
|
}
|
|
@@ -7932,6 +7932,9 @@ function expandEncryptionPermissionEntry(entry) {
|
|
|
7932
7932
|
seen.add(a);
|
|
7933
7933
|
}
|
|
7934
7934
|
}
|
|
7935
|
+
if (sharePrefix && dedupedActions.some((action) => action !== "tinycloud.encryption/decrypt")) {
|
|
7936
|
+
throw new ManifestValidationError("share prefix only supports decrypt");
|
|
7937
|
+
}
|
|
7935
7938
|
return [
|
|
7936
7939
|
{
|
|
7937
7940
|
service: ENCRYPTION_PERMISSION_SERVICE,
|
|
@@ -8122,13 +8125,13 @@ function validateManifestSecrets(secrets) {
|
|
|
8122
8125
|
throw new ManifestValidationError("manifest.secrets must be an object");
|
|
8123
8126
|
}
|
|
8124
8127
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8125
|
-
if (!
|
|
8128
|
+
if (!import_sdk_services3.SECRET_NAME_RE.test(name2)) {
|
|
8126
8129
|
throw new ManifestValidationError(
|
|
8127
|
-
`manifest.secrets.${name2} must match ${
|
|
8130
|
+
`manifest.secrets.${name2} must match ${import_sdk_services3.SECRET_NAME_RE.source}`
|
|
8128
8131
|
);
|
|
8129
8132
|
}
|
|
8130
8133
|
try {
|
|
8131
|
-
(0,
|
|
8134
|
+
(0, import_sdk_services3.resolveSecretPath)(
|
|
8132
8135
|
secretNameFromSpec(name2, spec),
|
|
8133
8136
|
{ scope: secretScopeFromSpec(spec) }
|
|
8134
8137
|
);
|
|
@@ -8345,7 +8348,7 @@ function secretEntriesForManifest(secrets) {
|
|
|
8345
8348
|
const entries = [];
|
|
8346
8349
|
for (const [name2, spec] of Object.entries(secrets)) {
|
|
8347
8350
|
const actions = secretActionsFromSpec(name2, spec);
|
|
8348
|
-
const secretPath = (0,
|
|
8351
|
+
const secretPath = (0, import_sdk_services3.resolveSecretPath)(
|
|
8349
8352
|
secretNameFromSpec(name2, spec),
|
|
8350
8353
|
{ scope: secretScopeFromSpec(spec) }
|
|
8351
8354
|
);
|
|
@@ -8798,7 +8801,7 @@ function parseRecapCapabilities(parseWasm, siwe) {
|
|
|
8798
8801
|
var import_ed255197 = require("@noble/curves/ed25519");
|
|
8799
8802
|
|
|
8800
8803
|
// src/delegations/ShareRecipientClient.ts
|
|
8801
|
-
var
|
|
8804
|
+
var import_sdk_services4 = require("@tinycloud/sdk-services");
|
|
8802
8805
|
var import_ed255196 = require("@noble/curves/ed25519");
|
|
8803
8806
|
var import_sha2565 = require("@noble/hashes/sha256");
|
|
8804
8807
|
|
|
@@ -9985,9 +9988,9 @@ function redactedCode(error) {
|
|
|
9985
9988
|
if (error instanceof ShareConflict) return error.code;
|
|
9986
9989
|
const code3 = error && typeof error === "object" && "code" in error ? error.code : void 0;
|
|
9987
9990
|
if (typeof code3 !== "string") return "SHARE_INVALID";
|
|
9988
|
-
if (code3 ===
|
|
9989
|
-
if (code3 ===
|
|
9990
|
-
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";
|
|
9991
9994
|
if (code3 === "KV_NOT_FOUND" || code3 === "NOT_FOUND" || code3 === "404") return "SHARE_NOT_FOUND";
|
|
9992
9995
|
if (code3.includes("EXPIRED") || code3 === "expired") return "SHARE_EXPIRED";
|
|
9993
9996
|
if (code3.includes("REVOK")) return "SHARE_REVOKED";
|
|
@@ -10226,7 +10229,7 @@ var ShareRecipientClient = class {
|
|
|
10226
10229
|
if (portableDelegation !== void 0 && kv !== void 0) {
|
|
10227
10230
|
const result2 = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10228
10231
|
if (!result2.ok) {
|
|
10229
|
-
if (result2.error.code ===
|
|
10232
|
+
if (result2.error.code === import_sdk_services4.ErrorCodes.KV_PRECONDITION_FAILED) throw new ShareConflict(resolvedPath, result2.error.meta?.etag);
|
|
10230
10233
|
throw result2.error;
|
|
10231
10234
|
}
|
|
10232
10235
|
return { etag: result2.data.headers.etag };
|
|
@@ -10234,7 +10237,7 @@ var ShareRecipientClient = class {
|
|
|
10234
10237
|
if (policySession !== void 0) return this.nativeSave(envelope, policySession, resolvedPath, bytes2, input);
|
|
10235
10238
|
const result = await kv.put(resolvedPath, bytes2, { contentType: input.contentType ?? envelope.content.mimeType, ifMatch: input.etag });
|
|
10236
10239
|
if (!result.ok) {
|
|
10237
|
-
if (result.error.code ===
|
|
10240
|
+
if (result.error.code === import_sdk_services4.ErrorCodes.KV_PRECONDITION_FAILED) throw new ShareConflict(resolvedPath, result.error.meta?.etag);
|
|
10238
10241
|
throw result.error;
|
|
10239
10242
|
}
|
|
10240
10243
|
return { etag: result.data.headers.etag };
|
|
@@ -10318,8 +10321,8 @@ var ShareRecipientClient = class {
|
|
|
10318
10321
|
if (this.options.createKVService !== void 0) {
|
|
10319
10322
|
return this.options.createKVService({ hosts: [origin2], session, invoke, fetch: this.fetchFn });
|
|
10320
10323
|
}
|
|
10321
|
-
const context = new
|
|
10322
|
-
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: "" });
|
|
10323
10326
|
context.registerService("kv", service);
|
|
10324
10327
|
service.initialize(context);
|
|
10325
10328
|
return service;
|
|
@@ -12867,14 +12870,14 @@ function markDelegationTerminal(token, key) {
|
|
|
12867
12870
|
}
|
|
12868
12871
|
|
|
12869
12872
|
// src/networkId.ts
|
|
12870
|
-
var
|
|
12873
|
+
var import_sdk_services5 = require("@tinycloud/sdk-services");
|
|
12871
12874
|
function canonicalizeNetworkId(networkId) {
|
|
12872
|
-
const parsed = (0,
|
|
12873
|
-
return (0,
|
|
12875
|
+
const parsed = (0, import_sdk_services5.parseNetworkId)(networkId);
|
|
12876
|
+
return (0, import_sdk_services5.buildNetworkId)(canonicalizeDid(parsed.ownerDid), parsed.name);
|
|
12874
12877
|
}
|
|
12875
12878
|
function parseCanonicalNetworkId(networkId) {
|
|
12876
12879
|
const canonical = canonicalizeNetworkId(networkId);
|
|
12877
|
-
return (0,
|
|
12880
|
+
return (0, import_sdk_services5.parseNetworkId)(canonical);
|
|
12878
12881
|
}
|
|
12879
12882
|
|
|
12880
12883
|
// src/storage.schema.ts
|
|
@@ -12982,10 +12985,10 @@ function validatePersistedSessionData(data) {
|
|
|
12982
12985
|
}
|
|
12983
12986
|
|
|
12984
12987
|
// src/TinyCloud.ts
|
|
12985
|
-
var
|
|
12988
|
+
var import_sdk_services7 = require("@tinycloud/sdk-services");
|
|
12986
12989
|
|
|
12987
12990
|
// src/spaces/SpaceService.ts
|
|
12988
|
-
var
|
|
12991
|
+
var import_sdk_services6 = require("@tinycloud/sdk-services");
|
|
12989
12992
|
|
|
12990
12993
|
// src/spaces/Space.ts
|
|
12991
12994
|
function unavailableSecretsService() {
|
|
@@ -13420,8 +13423,8 @@ var SpaceService = class {
|
|
|
13420
13423
|
*/
|
|
13421
13424
|
async list() {
|
|
13422
13425
|
if (!this.session) {
|
|
13423
|
-
return (0,
|
|
13424
|
-
(0,
|
|
13426
|
+
return (0, import_sdk_services6.err)(
|
|
13427
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13425
13428
|
);
|
|
13426
13429
|
}
|
|
13427
13430
|
try {
|
|
@@ -13430,8 +13433,8 @@ var SpaceService = class {
|
|
|
13430
13433
|
if (ownedResult.ok) {
|
|
13431
13434
|
spaces.push(...ownedResult.data);
|
|
13432
13435
|
} else {
|
|
13433
|
-
const verdict = (0,
|
|
13434
|
-
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);
|
|
13435
13438
|
}
|
|
13436
13439
|
if (this.capabilityRegistry) {
|
|
13437
13440
|
const delegatedSpaces = this.discoverDelegatedSpaces();
|
|
@@ -13443,10 +13446,10 @@ var SpaceService = class {
|
|
|
13443
13446
|
this.notifySpaceRegistered(space);
|
|
13444
13447
|
}
|
|
13445
13448
|
}
|
|
13446
|
-
return (0,
|
|
13449
|
+
return (0, import_sdk_services6.ok)(uniqueSpaces);
|
|
13447
13450
|
} catch (error) {
|
|
13448
|
-
return (0,
|
|
13449
|
-
(0,
|
|
13451
|
+
return (0, import_sdk_services6.err)(
|
|
13452
|
+
(0, import_sdk_services6.serviceError)(
|
|
13450
13453
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13451
13454
|
`Failed to list spaces: ${String(error)}`,
|
|
13452
13455
|
SERVICE_NAME,
|
|
@@ -13466,7 +13469,7 @@ var SpaceService = class {
|
|
|
13466
13469
|
headers
|
|
13467
13470
|
});
|
|
13468
13471
|
if (!response.ok) {
|
|
13469
|
-
return (0,
|
|
13472
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13470
13473
|
response,
|
|
13471
13474
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13472
13475
|
"Failed to list owned spaces",
|
|
@@ -13476,8 +13479,8 @@ var SpaceService = class {
|
|
|
13476
13479
|
const rawData = await response.json();
|
|
13477
13480
|
const validationResult = validateServerOwnedSpacesResponse(rawData);
|
|
13478
13481
|
if (!validationResult.ok) {
|
|
13479
|
-
return (0,
|
|
13480
|
-
(0,
|
|
13482
|
+
return (0, import_sdk_services6.err)(
|
|
13483
|
+
(0, import_sdk_services6.serviceError)(
|
|
13481
13484
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13482
13485
|
validationResult.error.message,
|
|
13483
13486
|
SERVICE_NAME,
|
|
@@ -13493,10 +13496,10 @@ var SpaceService = class {
|
|
|
13493
13496
|
permissions: ["*"]
|
|
13494
13497
|
// Full permissions for owned spaces
|
|
13495
13498
|
}));
|
|
13496
|
-
return (0,
|
|
13499
|
+
return (0, import_sdk_services6.ok)(spaces);
|
|
13497
13500
|
} catch (error) {
|
|
13498
|
-
return (0,
|
|
13499
|
-
(0,
|
|
13501
|
+
return (0, import_sdk_services6.err)(
|
|
13502
|
+
(0, import_sdk_services6.serviceError)(
|
|
13500
13503
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13501
13504
|
`Network error listing owned spaces: ${String(error)}`,
|
|
13502
13505
|
SERVICE_NAME,
|
|
@@ -13577,13 +13580,13 @@ var SpaceService = class {
|
|
|
13577
13580
|
*/
|
|
13578
13581
|
async create(name2) {
|
|
13579
13582
|
if (!this.session) {
|
|
13580
|
-
return (0,
|
|
13581
|
-
(0,
|
|
13583
|
+
return (0, import_sdk_services6.err)(
|
|
13584
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13582
13585
|
);
|
|
13583
13586
|
}
|
|
13584
13587
|
if (!name2 || !/^[a-zA-Z0-9_-]+$/.test(name2)) {
|
|
13585
|
-
return (0,
|
|
13586
|
-
(0,
|
|
13588
|
+
return (0, import_sdk_services6.err)(
|
|
13589
|
+
(0, import_sdk_services6.serviceError)(
|
|
13587
13590
|
SpaceErrorCodes.INVALID_NAME,
|
|
13588
13591
|
"Space name must contain only alphanumeric characters, underscores, and hyphens",
|
|
13589
13592
|
SERVICE_NAME
|
|
@@ -13599,14 +13602,14 @@ var SpaceService = class {
|
|
|
13599
13602
|
});
|
|
13600
13603
|
if (!response.ok) {
|
|
13601
13604
|
if (response.status === 409) {
|
|
13602
|
-
return (0,
|
|
13605
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13603
13606
|
response,
|
|
13604
13607
|
SpaceErrorCodes.ALREADY_EXISTS,
|
|
13605
13608
|
`Space "${name2}" already exists`,
|
|
13606
13609
|
SERVICE_NAME
|
|
13607
13610
|
));
|
|
13608
13611
|
}
|
|
13609
|
-
return (0,
|
|
13612
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13610
13613
|
response,
|
|
13611
13614
|
SpaceErrorCodes.CREATION_FAILED,
|
|
13612
13615
|
"Failed to create space",
|
|
@@ -13616,8 +13619,8 @@ var SpaceService = class {
|
|
|
13616
13619
|
const rawData = await response.json();
|
|
13617
13620
|
const validationResult = validateServerCreateSpaceResponse(rawData);
|
|
13618
13621
|
if (!validationResult.ok) {
|
|
13619
|
-
return (0,
|
|
13620
|
-
(0,
|
|
13622
|
+
return (0, import_sdk_services6.err)(
|
|
13623
|
+
(0, import_sdk_services6.serviceError)(
|
|
13621
13624
|
SpaceErrorCodes.CREATION_FAILED,
|
|
13622
13625
|
validationResult.error.message,
|
|
13623
13626
|
SERVICE_NAME,
|
|
@@ -13634,10 +13637,10 @@ var SpaceService = class {
|
|
|
13634
13637
|
};
|
|
13635
13638
|
this.infoCache.set(spaceInfo.id, { info: spaceInfo, cachedAt: Date.now() });
|
|
13636
13639
|
this.notifySpaceRegistered(spaceInfo);
|
|
13637
|
-
return (0,
|
|
13640
|
+
return (0, import_sdk_services6.ok)(spaceInfo);
|
|
13638
13641
|
} catch (error) {
|
|
13639
|
-
return (0,
|
|
13640
|
-
(0,
|
|
13642
|
+
return (0, import_sdk_services6.err)(
|
|
13643
|
+
(0, import_sdk_services6.serviceError)(
|
|
13641
13644
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13642
13645
|
`Network error creating space: ${String(error)}`,
|
|
13643
13646
|
SERVICE_NAME,
|
|
@@ -13707,10 +13710,10 @@ var SpaceService = class {
|
|
|
13707
13710
|
const spaceId = this.resolveSpaceId(nameOrUri);
|
|
13708
13711
|
const cached = this.infoCache.get(spaceId);
|
|
13709
13712
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13710
|
-
return (0,
|
|
13713
|
+
return (0, import_sdk_services6.ok)(true);
|
|
13711
13714
|
}
|
|
13712
13715
|
const infoResult = await this.getSpaceInfo(spaceId);
|
|
13713
|
-
return (0,
|
|
13716
|
+
return (0, import_sdk_services6.ok)(infoResult.ok);
|
|
13714
13717
|
}
|
|
13715
13718
|
// ===========================================================================
|
|
13716
13719
|
// Space Info
|
|
@@ -13721,11 +13724,11 @@ var SpaceService = class {
|
|
|
13721
13724
|
async getSpaceInfo(spaceId) {
|
|
13722
13725
|
const cached = this.infoCache.get(spaceId);
|
|
13723
13726
|
if (cached && Date.now() - cached.cachedAt < this.cacheTTL) {
|
|
13724
|
-
return (0,
|
|
13727
|
+
return (0, import_sdk_services6.ok)(cached.info);
|
|
13725
13728
|
}
|
|
13726
13729
|
if (!this.session) {
|
|
13727
|
-
return (0,
|
|
13728
|
-
(0,
|
|
13730
|
+
return (0, import_sdk_services6.err)(
|
|
13731
|
+
(0, import_sdk_services6.serviceError)(SpaceErrorCodes.AUTH_REQUIRED, "Authentication required", SERVICE_NAME)
|
|
13729
13732
|
);
|
|
13730
13733
|
}
|
|
13731
13734
|
try {
|
|
@@ -13737,14 +13740,14 @@ var SpaceService = class {
|
|
|
13737
13740
|
});
|
|
13738
13741
|
if (!response.ok) {
|
|
13739
13742
|
if (response.status === 404) {
|
|
13740
|
-
return (0,
|
|
13743
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13741
13744
|
response,
|
|
13742
13745
|
SpaceErrorCodes.NOT_FOUND,
|
|
13743
13746
|
`Space not found: ${spaceId}`,
|
|
13744
13747
|
SERVICE_NAME
|
|
13745
13748
|
));
|
|
13746
13749
|
}
|
|
13747
|
-
return (0,
|
|
13750
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13748
13751
|
response,
|
|
13749
13752
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13750
13753
|
"Failed to get space info",
|
|
@@ -13754,8 +13757,8 @@ var SpaceService = class {
|
|
|
13754
13757
|
const rawData = await response.json();
|
|
13755
13758
|
const validationResult = validateServerSpaceInfoResponse(rawData);
|
|
13756
13759
|
if (!validationResult.ok) {
|
|
13757
|
-
return (0,
|
|
13758
|
-
(0,
|
|
13760
|
+
return (0, import_sdk_services6.err)(
|
|
13761
|
+
(0, import_sdk_services6.serviceError)(
|
|
13759
13762
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13760
13763
|
validationResult.error.message,
|
|
13761
13764
|
SERVICE_NAME,
|
|
@@ -13773,10 +13776,10 @@ var SpaceService = class {
|
|
|
13773
13776
|
expiresAt: data.expiresAt ? new Date(data.expiresAt) : void 0
|
|
13774
13777
|
};
|
|
13775
13778
|
this.infoCache.set(spaceId, { info: spaceInfo, cachedAt: Date.now() });
|
|
13776
|
-
return (0,
|
|
13779
|
+
return (0, import_sdk_services6.ok)(spaceInfo);
|
|
13777
13780
|
} catch (error) {
|
|
13778
|
-
return (0,
|
|
13779
|
-
(0,
|
|
13781
|
+
return (0, import_sdk_services6.err)(
|
|
13782
|
+
(0, import_sdk_services6.serviceError)(
|
|
13780
13783
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13781
13784
|
`Network error getting space info: ${String(error)}`,
|
|
13782
13785
|
SERVICE_NAME,
|
|
@@ -13861,7 +13864,7 @@ var SpaceService = class {
|
|
|
13861
13864
|
headers
|
|
13862
13865
|
});
|
|
13863
13866
|
if (!response.ok) {
|
|
13864
|
-
return (0,
|
|
13867
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13865
13868
|
response,
|
|
13866
13869
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13867
13870
|
"Failed to list delegations",
|
|
@@ -13871,8 +13874,8 @@ var SpaceService = class {
|
|
|
13871
13874
|
const rawData = await response.json();
|
|
13872
13875
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13873
13876
|
if (!validationResult.ok) {
|
|
13874
|
-
return (0,
|
|
13875
|
-
(0,
|
|
13877
|
+
return (0, import_sdk_services6.err)(
|
|
13878
|
+
(0, import_sdk_services6.serviceError)(
|
|
13876
13879
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13877
13880
|
validationResult.error.message,
|
|
13878
13881
|
SERVICE_NAME,
|
|
@@ -13881,10 +13884,10 @@ var SpaceService = class {
|
|
|
13881
13884
|
);
|
|
13882
13885
|
}
|
|
13883
13886
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13884
|
-
return (0,
|
|
13887
|
+
return (0, import_sdk_services6.ok)(delegations);
|
|
13885
13888
|
} catch (error) {
|
|
13886
|
-
return (0,
|
|
13887
|
-
(0,
|
|
13889
|
+
return (0, import_sdk_services6.err)(
|
|
13890
|
+
(0, import_sdk_services6.serviceError)(
|
|
13888
13891
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13889
13892
|
`Network error listing delegations: ${String(error)}`,
|
|
13890
13893
|
SERVICE_NAME
|
|
@@ -13914,7 +13917,7 @@ var SpaceService = class {
|
|
|
13914
13917
|
headers
|
|
13915
13918
|
});
|
|
13916
13919
|
if (!response.ok) {
|
|
13917
|
-
return (0,
|
|
13920
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13918
13921
|
response,
|
|
13919
13922
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13920
13923
|
"Failed to list received delegations",
|
|
@@ -13924,8 +13927,8 @@ var SpaceService = class {
|
|
|
13924
13927
|
const rawData = await response.json();
|
|
13925
13928
|
const validationResult = validateServerDelegationsResponse(rawData);
|
|
13926
13929
|
if (!validationResult.ok) {
|
|
13927
|
-
return (0,
|
|
13928
|
-
(0,
|
|
13930
|
+
return (0, import_sdk_services6.err)(
|
|
13931
|
+
(0, import_sdk_services6.serviceError)(
|
|
13929
13932
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13930
13933
|
validationResult.error.message,
|
|
13931
13934
|
SERVICE_NAME,
|
|
@@ -13934,10 +13937,10 @@ var SpaceService = class {
|
|
|
13934
13937
|
);
|
|
13935
13938
|
}
|
|
13936
13939
|
const delegations = transformServerDelegations(validationResult.data, spaceId);
|
|
13937
|
-
return (0,
|
|
13940
|
+
return (0, import_sdk_services6.ok)(delegations);
|
|
13938
13941
|
} catch (error) {
|
|
13939
|
-
return (0,
|
|
13940
|
-
(0,
|
|
13942
|
+
return (0, import_sdk_services6.err)(
|
|
13943
|
+
(0, import_sdk_services6.serviceError)(
|
|
13941
13944
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13942
13945
|
`Network error listing received delegations: ${String(error)}`,
|
|
13943
13946
|
SERVICE_NAME
|
|
@@ -13949,8 +13952,8 @@ var SpaceService = class {
|
|
|
13949
13952
|
if (self.createDelegationFn) {
|
|
13950
13953
|
return self.createDelegationFn({ ...params, spaceId });
|
|
13951
13954
|
}
|
|
13952
|
-
return (0,
|
|
13953
|
-
(0,
|
|
13955
|
+
return (0, import_sdk_services6.err)(
|
|
13956
|
+
(0, import_sdk_services6.serviceError)(
|
|
13954
13957
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
13955
13958
|
"Delegation creation requires a createDelegation function. This should be provided by the platform SDK (web-sdk or node-sdk).",
|
|
13956
13959
|
SERVICE_NAME
|
|
@@ -13971,17 +13974,17 @@ var SpaceService = class {
|
|
|
13971
13974
|
body: JSON.stringify({ cid: cid2, spaceId })
|
|
13972
13975
|
});
|
|
13973
13976
|
if (!response.ok) {
|
|
13974
|
-
return (0,
|
|
13977
|
+
return (0, import_sdk_services6.err)(await serviceHttpError(
|
|
13975
13978
|
response,
|
|
13976
13979
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13977
13980
|
"Failed to revoke delegation",
|
|
13978
13981
|
SERVICE_NAME
|
|
13979
13982
|
));
|
|
13980
13983
|
}
|
|
13981
|
-
return (0,
|
|
13984
|
+
return (0, import_sdk_services6.ok)(void 0);
|
|
13982
13985
|
} catch (error) {
|
|
13983
|
-
return (0,
|
|
13984
|
-
(0,
|
|
13986
|
+
return (0, import_sdk_services6.err)(
|
|
13987
|
+
(0, import_sdk_services6.serviceError)(
|
|
13985
13988
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
13986
13989
|
`Network error revoking delegation: ${String(error)}`,
|
|
13987
13990
|
SERVICE_NAME
|
|
@@ -14004,18 +14007,18 @@ var SpaceService = class {
|
|
|
14004
14007
|
if (self.sharingService) {
|
|
14005
14008
|
const result = await self.sharingService.generate(params);
|
|
14006
14009
|
if (!result.ok) {
|
|
14007
|
-
return (0,
|
|
14008
|
-
(0,
|
|
14010
|
+
return (0, import_sdk_services6.err)(
|
|
14011
|
+
(0, import_sdk_services6.serviceError)(
|
|
14009
14012
|
SpaceErrorCodes.NETWORK_ERROR,
|
|
14010
14013
|
result.error.message || "Failed to generate share link",
|
|
14011
14014
|
SERVICE_NAME
|
|
14012
14015
|
)
|
|
14013
14016
|
);
|
|
14014
14017
|
}
|
|
14015
|
-
return (0,
|
|
14018
|
+
return (0, import_sdk_services6.ok)(result.data);
|
|
14016
14019
|
}
|
|
14017
|
-
return (0,
|
|
14018
|
-
(0,
|
|
14020
|
+
return (0, import_sdk_services6.err)(
|
|
14021
|
+
(0, import_sdk_services6.serviceError)(
|
|
14019
14022
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
14020
14023
|
"SharingService not configured. V2 sharing requires a SharingService instance.",
|
|
14021
14024
|
SERVICE_NAME
|
|
@@ -14023,8 +14026,8 @@ var SpaceService = class {
|
|
|
14023
14026
|
);
|
|
14024
14027
|
},
|
|
14025
14028
|
async list() {
|
|
14026
|
-
return (0,
|
|
14027
|
-
(0,
|
|
14029
|
+
return (0, import_sdk_services6.err)(
|
|
14030
|
+
(0, import_sdk_services6.serviceError)(
|
|
14028
14031
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
14029
14032
|
"Listing share links is not supported in v2. Share links are self-contained tokens that are not tracked on the server.",
|
|
14030
14033
|
SERVICE_NAME
|
|
@@ -14032,8 +14035,8 @@ var SpaceService = class {
|
|
|
14032
14035
|
);
|
|
14033
14036
|
},
|
|
14034
14037
|
async revoke(token) {
|
|
14035
|
-
return (0,
|
|
14036
|
-
(0,
|
|
14038
|
+
return (0, import_sdk_services6.err)(
|
|
14039
|
+
(0, import_sdk_services6.serviceError)(
|
|
14037
14040
|
SpaceErrorCodes.NOT_INITIALIZED,
|
|
14038
14041
|
"Revoking share links by token is not supported in v2. To revoke access, revoke the underlying delegation using space.delegations.revoke(cid).",
|
|
14039
14042
|
SERVICE_NAME
|
|
@@ -14093,7 +14096,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14093
14096
|
"hosts are required to initialize services. Provide them via config.hosts or initializeServices()."
|
|
14094
14097
|
);
|
|
14095
14098
|
}
|
|
14096
|
-
this._serviceContext = new
|
|
14099
|
+
this._serviceContext = new import_sdk_services7.ServiceContext({
|
|
14097
14100
|
invoke: effectiveInvoke,
|
|
14098
14101
|
invokeAny: this.config.invokeAny,
|
|
14099
14102
|
fetch: fetchFn ?? this.config.fetch ?? globalThis.fetch.bind(globalThis),
|
|
@@ -14102,10 +14105,10 @@ var TinyCloud = class _TinyCloud {
|
|
|
14102
14105
|
telemetry: this.config.telemetry
|
|
14103
14106
|
});
|
|
14104
14107
|
const serviceConstructors = {
|
|
14105
|
-
kv:
|
|
14106
|
-
sql:
|
|
14107
|
-
duckdb:
|
|
14108
|
-
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,
|
|
14109
14112
|
...this.config.services
|
|
14110
14113
|
};
|
|
14111
14114
|
for (const [name2, ServiceClass] of Object.entries(serviceConstructors)) {
|
|
@@ -14369,18 +14372,18 @@ var TinyCloud = class _TinyCloud {
|
|
|
14369
14372
|
const address = this.address();
|
|
14370
14373
|
const chainId = this.chainId();
|
|
14371
14374
|
if (!address || !chainId) {
|
|
14372
|
-
return (0,
|
|
14373
|
-
(0,
|
|
14374
|
-
|
|
14375
|
+
return (0, import_sdk_services7.err)(
|
|
14376
|
+
(0, import_sdk_services7.serviceError)(
|
|
14377
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14375
14378
|
"Must be signed in to ensure public space",
|
|
14376
14379
|
"public-space"
|
|
14377
14380
|
)
|
|
14378
14381
|
);
|
|
14379
14382
|
}
|
|
14380
14383
|
if (!this._serviceContext) {
|
|
14381
|
-
return (0,
|
|
14382
|
-
(0,
|
|
14383
|
-
|
|
14384
|
+
return (0, import_sdk_services7.err)(
|
|
14385
|
+
(0, import_sdk_services7.serviceError)(
|
|
14386
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14384
14387
|
"Services not initialized. Call initializeServices() or signIn() first.",
|
|
14385
14388
|
"public-space"
|
|
14386
14389
|
)
|
|
@@ -14390,9 +14393,9 @@ var TinyCloud = class _TinyCloud {
|
|
|
14390
14393
|
try {
|
|
14391
14394
|
const session = this._serviceContext.session;
|
|
14392
14395
|
if (!session) {
|
|
14393
|
-
return (0,
|
|
14394
|
-
(0,
|
|
14395
|
-
|
|
14396
|
+
return (0, import_sdk_services7.err)(
|
|
14397
|
+
(0, import_sdk_services7.serviceError)(
|
|
14398
|
+
import_sdk_services7.ErrorCodes.AUTH_REQUIRED,
|
|
14396
14399
|
"No active session",
|
|
14397
14400
|
"public-space"
|
|
14398
14401
|
)
|
|
@@ -14409,7 +14412,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14409
14412
|
{ method: "POST", headers, body: JSON.stringify({ spaceId }) }
|
|
14410
14413
|
);
|
|
14411
14414
|
if (response.ok) {
|
|
14412
|
-
return (0,
|
|
14415
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14413
14416
|
}
|
|
14414
14417
|
if (response.status === 404) {
|
|
14415
14418
|
const createHeaders = this._serviceContext.invoke(
|
|
@@ -14428,27 +14431,27 @@ var TinyCloud = class _TinyCloud {
|
|
|
14428
14431
|
);
|
|
14429
14432
|
if (!createResponse.ok) {
|
|
14430
14433
|
if (createResponse.status === 409) {
|
|
14431
|
-
return (0,
|
|
14434
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14432
14435
|
}
|
|
14433
|
-
return (0,
|
|
14436
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14434
14437
|
createResponse,
|
|
14435
|
-
|
|
14438
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14436
14439
|
"Failed to create public space",
|
|
14437
14440
|
"public-space"
|
|
14438
14441
|
));
|
|
14439
14442
|
}
|
|
14440
|
-
return (0,
|
|
14443
|
+
return (0, import_sdk_services7.ok)(void 0);
|
|
14441
14444
|
}
|
|
14442
|
-
return (0,
|
|
14445
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14443
14446
|
response,
|
|
14444
|
-
|
|
14447
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14445
14448
|
"Failed to check public space",
|
|
14446
14449
|
"public-space"
|
|
14447
14450
|
));
|
|
14448
14451
|
} catch (error) {
|
|
14449
|
-
return (0,
|
|
14450
|
-
(0,
|
|
14451
|
-
|
|
14452
|
+
return (0, import_sdk_services7.err)(
|
|
14453
|
+
(0, import_sdk_services7.serviceError)(
|
|
14454
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14452
14455
|
`Network error ensuring public space: ${String(error)}`,
|
|
14453
14456
|
"public-space",
|
|
14454
14457
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14481,8 +14484,8 @@ var TinyCloud = class _TinyCloud {
|
|
|
14481
14484
|
if (!session) {
|
|
14482
14485
|
throw new Error("No active session. Sign in first.");
|
|
14483
14486
|
}
|
|
14484
|
-
const publicKV = new
|
|
14485
|
-
const publicContext = new
|
|
14487
|
+
const publicKV = new import_sdk_services7.KVService({ prefix: "" });
|
|
14488
|
+
const publicContext = new import_sdk_services7.ServiceContext({
|
|
14486
14489
|
invoke: this._serviceContext.invoke,
|
|
14487
14490
|
fetch: this._serviceContext.fetch,
|
|
14488
14491
|
hosts: this._serviceContext.hosts,
|
|
@@ -14515,16 +14518,16 @@ var TinyCloud = class _TinyCloud {
|
|
|
14515
14518
|
const response = await doFetch(url, { method: "GET" });
|
|
14516
14519
|
if (!response.ok) {
|
|
14517
14520
|
if (response.status === 404) {
|
|
14518
|
-
return (0,
|
|
14521
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14519
14522
|
response,
|
|
14520
|
-
|
|
14523
|
+
import_sdk_services7.ErrorCodes.NOT_FOUND,
|
|
14521
14524
|
`Key not found: ${key} in space ${spaceId}`,
|
|
14522
14525
|
"public-space"
|
|
14523
14526
|
));
|
|
14524
14527
|
}
|
|
14525
|
-
return (0,
|
|
14528
|
+
return (0, import_sdk_services7.err)(await serviceHttpError(
|
|
14526
14529
|
response,
|
|
14527
|
-
|
|
14530
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14528
14531
|
"Failed to read public space",
|
|
14529
14532
|
"public-space"
|
|
14530
14533
|
));
|
|
@@ -14541,11 +14544,11 @@ var TinyCloud = class _TinyCloud {
|
|
|
14541
14544
|
data = text3;
|
|
14542
14545
|
}
|
|
14543
14546
|
}
|
|
14544
|
-
return (0,
|
|
14547
|
+
return (0, import_sdk_services7.ok)(data);
|
|
14545
14548
|
} catch (error) {
|
|
14546
|
-
return (0,
|
|
14547
|
-
(0,
|
|
14548
|
-
|
|
14549
|
+
return (0, import_sdk_services7.err)(
|
|
14550
|
+
(0, import_sdk_services7.serviceError)(
|
|
14551
|
+
import_sdk_services7.ErrorCodes.NETWORK_ERROR,
|
|
14549
14552
|
`Network error reading public space: ${String(error)}`,
|
|
14550
14553
|
"public-space",
|
|
14551
14554
|
{ cause: error instanceof Error ? error : void 0 }
|
|
@@ -14571,7 +14574,7 @@ var TinyCloud = class _TinyCloud {
|
|
|
14571
14574
|
};
|
|
14572
14575
|
|
|
14573
14576
|
// src/account/AccountService.ts
|
|
14574
|
-
var
|
|
14577
|
+
var import_sdk_services8 = require("@tinycloud/sdk-services");
|
|
14575
14578
|
var import_bootstrap3 = require("@tinycloud/bootstrap");
|
|
14576
14579
|
var SERVICE_NAME2 = "account";
|
|
14577
14580
|
var ACCOUNT_INDEX_DB = "account";
|
|
@@ -14619,7 +14622,7 @@ var AccountService = class {
|
|
|
14619
14622
|
applications.push(applicationFromRecord(key, loaded.data.data));
|
|
14620
14623
|
}
|
|
14621
14624
|
applications.sort((a, b) => a.appId.localeCompare(b.appId));
|
|
14622
|
-
return (0,
|
|
14625
|
+
return (0, import_sdk_services8.ok)(applications);
|
|
14623
14626
|
},
|
|
14624
14627
|
get: async (appId) => {
|
|
14625
14628
|
const kvResult = this.accountKV();
|
|
@@ -14627,14 +14630,14 @@ var AccountService = class {
|
|
|
14627
14630
|
const key = applicationKey(appId);
|
|
14628
14631
|
const loaded = await kvResult.data.get(key);
|
|
14629
14632
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14630
|
-
return (0,
|
|
14633
|
+
return (0, import_sdk_services8.ok)(applicationFromRecord(key, loaded.data.data));
|
|
14631
14634
|
},
|
|
14632
14635
|
register: async (manifest, options2 = {}) => {
|
|
14633
14636
|
const manifests = Array.isArray(manifest) ? manifest : [manifest];
|
|
14634
14637
|
const request = composeManifestRequest(manifests);
|
|
14635
14638
|
if (request.registryRecords.length === 0) {
|
|
14636
|
-
return (0,
|
|
14637
|
-
(0,
|
|
14639
|
+
return (0, import_sdk_services8.err)(
|
|
14640
|
+
(0, import_sdk_services8.serviceError)(
|
|
14638
14641
|
"INVALID_MANIFEST",
|
|
14639
14642
|
"Manifest did not produce an account application registry record",
|
|
14640
14643
|
SERVICE_NAME2
|
|
@@ -14668,7 +14671,7 @@ var AccountService = class {
|
|
|
14668
14671
|
registered = applicationFromRecord(record2.key, stored);
|
|
14669
14672
|
await this.upsertApplicationIndexQuietly(registered);
|
|
14670
14673
|
}
|
|
14671
|
-
return (0,
|
|
14674
|
+
return (0, import_sdk_services8.ok)(registered);
|
|
14672
14675
|
},
|
|
14673
14676
|
remove: async (appId) => {
|
|
14674
14677
|
const kvResult = this.accountKV();
|
|
@@ -14676,7 +14679,7 @@ var AccountService = class {
|
|
|
14676
14679
|
const removed = await kvResult.data.delete(applicationKey(appId));
|
|
14677
14680
|
if (!removed.ok) return accountErr(removed.error);
|
|
14678
14681
|
await this.deleteApplicationIndexQuietly(appId);
|
|
14679
|
-
return (0,
|
|
14682
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14680
14683
|
}
|
|
14681
14684
|
};
|
|
14682
14685
|
this.spaces = {
|
|
@@ -14690,7 +14693,7 @@ var AccountService = class {
|
|
|
14690
14693
|
if (canonical.data.allRegistered && options2.refreshIndex !== false) {
|
|
14691
14694
|
await this.replaceSpacesIndexQuietly(canonical.data.spaces);
|
|
14692
14695
|
}
|
|
14693
|
-
return (0,
|
|
14696
|
+
return (0, import_sdk_services8.ok)(canonical.data.spaces);
|
|
14694
14697
|
}
|
|
14695
14698
|
const kvResult = this.accountKV();
|
|
14696
14699
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14703,14 +14706,14 @@ var AccountService = class {
|
|
|
14703
14706
|
spaces.push(spaceFromRecord(key, loaded.data.data));
|
|
14704
14707
|
}
|
|
14705
14708
|
spaces.sort((a, b) => a.name.localeCompare(b.name) || a.spaceId.localeCompare(b.spaceId));
|
|
14706
|
-
return (0,
|
|
14709
|
+
return (0, import_sdk_services8.ok)(spaces);
|
|
14707
14710
|
},
|
|
14708
14711
|
get: async (spaceId) => {
|
|
14709
14712
|
const kvResult = this.accountKV();
|
|
14710
14713
|
if (!kvResult.ok) return kvResult;
|
|
14711
14714
|
const loaded = await kvResult.data.get(spaceKey(spaceId));
|
|
14712
14715
|
if (!loaded.ok) return accountErr(loaded.error);
|
|
14713
|
-
return (0,
|
|
14716
|
+
return (0, import_sdk_services8.ok)(spaceFromRecord(spaceKey(spaceId), loaded.data.data));
|
|
14714
14717
|
},
|
|
14715
14718
|
register: async (space) => {
|
|
14716
14719
|
await this.config.ensureAccountSpaceHosted?.();
|
|
@@ -14721,7 +14724,7 @@ var AccountService = class {
|
|
|
14721
14724
|
if (!written.ok) return accountErr(written.error);
|
|
14722
14725
|
const registered = spaceFromRecord(spaceKey(stored.space_id), stored);
|
|
14723
14726
|
await this.upsertSpaceIndexQuietly(registered);
|
|
14724
|
-
return (0,
|
|
14727
|
+
return (0, import_sdk_services8.ok)(registered);
|
|
14725
14728
|
},
|
|
14726
14729
|
/**
|
|
14727
14730
|
* Register multiple spaces in one KV batch write + one multi-row index
|
|
@@ -14734,7 +14737,7 @@ var AccountService = class {
|
|
|
14734
14737
|
* leave the first attempt's blocks orphaned.
|
|
14735
14738
|
*/
|
|
14736
14739
|
registerBatch: async (spaces) => {
|
|
14737
|
-
if (spaces.length === 0) return (0,
|
|
14740
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)({ spaces: [] });
|
|
14738
14741
|
await this.config.ensureAccountSpaceHosted?.();
|
|
14739
14742
|
const kvResult = this.accountKV();
|
|
14740
14743
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14749,7 +14752,7 @@ var AccountService = class {
|
|
|
14749
14752
|
const batchResult = await kvResult.data.batchPut(items);
|
|
14750
14753
|
if (batchResult.ok) {
|
|
14751
14754
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14752
|
-
return (0,
|
|
14755
|
+
return (0, import_sdk_services8.ok)({ spaces: registered });
|
|
14753
14756
|
}
|
|
14754
14757
|
if (!isAmbiguousBatchFailure(batchResult.error)) {
|
|
14755
14758
|
return accountErr(batchResult.error);
|
|
@@ -14762,8 +14765,8 @@ var AccountService = class {
|
|
|
14762
14765
|
}
|
|
14763
14766
|
}
|
|
14764
14767
|
if (reconcileFailures.length > 0) {
|
|
14765
|
-
return (0,
|
|
14766
|
-
(0,
|
|
14768
|
+
return (0, import_sdk_services8.err)(
|
|
14769
|
+
(0, import_sdk_services8.serviceError)(
|
|
14767
14770
|
"KV_BATCH_RECONCILE_FAILED",
|
|
14768
14771
|
`KV batch write for ${items.length} space(s) failed ambiguously (${batchResult.error.message}) and per-space reconciliation also failed for: ${reconcileFailures.join("; ")}`,
|
|
14769
14772
|
SERVICE_NAME2,
|
|
@@ -14775,7 +14778,7 @@ var AccountService = class {
|
|
|
14775
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}`
|
|
14776
14779
|
);
|
|
14777
14780
|
await this.upsertSpacesIndexQuietly(registered);
|
|
14778
|
-
return (0,
|
|
14781
|
+
return (0, import_sdk_services8.ok)({ spaces: registered, recoveredFromBatchError: batchResult.error });
|
|
14779
14782
|
},
|
|
14780
14783
|
/**
|
|
14781
14784
|
* Register only spaces without a registry record (TC-800). Existing
|
|
@@ -14783,7 +14786,7 @@ var AccountService = class {
|
|
|
14783
14786
|
* Bootstrap repair uses this on populated accounts.
|
|
14784
14787
|
*/
|
|
14785
14788
|
registerMissing: async (spaces) => {
|
|
14786
|
-
if (spaces.length === 0) return (0,
|
|
14789
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)([]);
|
|
14787
14790
|
await this.config.ensureAccountSpaceHosted?.();
|
|
14788
14791
|
const kvResult = this.accountKV();
|
|
14789
14792
|
if (!kvResult.ok) return kvResult;
|
|
@@ -14799,15 +14802,15 @@ var AccountService = class {
|
|
|
14799
14802
|
const key = keys[i];
|
|
14800
14803
|
const result = byKey.get(key);
|
|
14801
14804
|
if (!result) {
|
|
14802
|
-
return (0,
|
|
14803
|
-
|
|
14805
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14806
|
+
import_sdk_services8.ErrorCodes.NETWORK_ERROR,
|
|
14804
14807
|
`KV batch read omitted requested key ${JSON.stringify(key)}`,
|
|
14805
14808
|
SERVICE_NAME2
|
|
14806
14809
|
));
|
|
14807
14810
|
}
|
|
14808
14811
|
if (result.ok) {
|
|
14809
14812
|
final[i] = spaceFromRecord(key, result.data.data);
|
|
14810
|
-
} else if (result.error.code ===
|
|
14813
|
+
} else if (result.error.code === import_sdk_services8.ErrorCodes.KV_NOT_FOUND) {
|
|
14811
14814
|
missing.push({ index: i, key, record: stored[i] });
|
|
14812
14815
|
} else {
|
|
14813
14816
|
return accountErr(result.error);
|
|
@@ -14815,21 +14818,21 @@ var AccountService = class {
|
|
|
14815
14818
|
}
|
|
14816
14819
|
const creates = await Promise.all(missing.map(async ({ index, key, record: record2 }) => {
|
|
14817
14820
|
const written = await kv.put(key, record2, { ifNoneMatch: "*" });
|
|
14818
|
-
if (written.ok) return { index, result: (0,
|
|
14821
|
+
if (written.ok) return { index, result: (0, import_sdk_services8.ok)(spaceFromRecord(key, record2)) };
|
|
14819
14822
|
const raced = await kv.get(key);
|
|
14820
|
-
if (raced.ok) return { index, result: (0,
|
|
14821
|
-
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) };
|
|
14822
14825
|
}));
|
|
14823
14826
|
for (const { index, result } of creates) {
|
|
14824
14827
|
if (!result.ok) return accountErr(result.error);
|
|
14825
14828
|
final[index] = result.data;
|
|
14826
14829
|
}
|
|
14827
14830
|
await this.upsertSpacesIndexQuietly(final);
|
|
14828
|
-
return (0,
|
|
14831
|
+
return (0, import_sdk_services8.ok)(final);
|
|
14829
14832
|
},
|
|
14830
14833
|
syncAccessible: async () => {
|
|
14831
14834
|
const synced = await this.syncAccessibleSpaces({ tolerateStorageFull: false });
|
|
14832
|
-
return synced.ok ? (0,
|
|
14835
|
+
return synced.ok ? (0, import_sdk_services8.ok)(synced.data.spaces) : synced;
|
|
14833
14836
|
},
|
|
14834
14837
|
remove: async (spaceId) => {
|
|
14835
14838
|
const kvResult = this.accountKV();
|
|
@@ -14837,21 +14840,21 @@ var AccountService = class {
|
|
|
14837
14840
|
const removed = await kvResult.data.delete(spaceKey(spaceId));
|
|
14838
14841
|
if (!removed.ok) return accountErr(removed.error);
|
|
14839
14842
|
await this.deleteSpaceIndexQuietly(spaceId);
|
|
14840
|
-
return (0,
|
|
14843
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14841
14844
|
}
|
|
14842
14845
|
};
|
|
14843
14846
|
this.delegations = {
|
|
14844
14847
|
query: async (options2 = {}) => {
|
|
14845
14848
|
const manager = this.config.getDelegationManager?.();
|
|
14846
14849
|
if (!manager) {
|
|
14847
|
-
return (0,
|
|
14850
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14848
14851
|
"NOT_INITIALIZED",
|
|
14849
14852
|
"Delegation history requires an authenticated delegation manager",
|
|
14850
14853
|
SERVICE_NAME2
|
|
14851
14854
|
));
|
|
14852
14855
|
}
|
|
14853
14856
|
const queried = await manager.query(options2);
|
|
14854
|
-
return queried.ok ? (0,
|
|
14857
|
+
return queried.ok ? (0, import_sdk_services8.ok)(queried.data) : accountErr(queried.error);
|
|
14855
14858
|
},
|
|
14856
14859
|
list: async (options2 = {}) => {
|
|
14857
14860
|
if (options2.preferIndex) {
|
|
@@ -14885,17 +14888,17 @@ var AccountService = class {
|
|
|
14885
14888
|
}
|
|
14886
14889
|
}
|
|
14887
14890
|
delegations.sort((a, b) => a.spaceId.localeCompare(b.spaceId) || a.cid.localeCompare(b.cid));
|
|
14888
|
-
return (0,
|
|
14891
|
+
return (0, import_sdk_services8.ok)(delegations);
|
|
14889
14892
|
},
|
|
14890
14893
|
revoke: async (input) => {
|
|
14891
14894
|
const cid2 = typeof input === "string" ? input : input.cid;
|
|
14892
14895
|
const manager = this.config.getDelegationManager?.();
|
|
14893
14896
|
if (manager) {
|
|
14894
14897
|
const revoked2 = await manager.revoke(cid2);
|
|
14895
|
-
return revoked2.ok ? (0,
|
|
14898
|
+
return revoked2.ok ? (0, import_sdk_services8.ok)(revoked2.data) : accountErr(revoked2.error);
|
|
14896
14899
|
}
|
|
14897
14900
|
if (typeof input === "string") {
|
|
14898
|
-
return (0,
|
|
14901
|
+
return (0, import_sdk_services8.err)((0, import_sdk_services8.serviceError)(
|
|
14899
14902
|
"NOT_INITIALIZED",
|
|
14900
14903
|
"CID-only revocation requires an authenticated delegation manager",
|
|
14901
14904
|
SERVICE_NAME2
|
|
@@ -14905,7 +14908,7 @@ var AccountService = class {
|
|
|
14905
14908
|
if (!space.ok) return space;
|
|
14906
14909
|
const revoked = await this.config.getSpaces().get(space.data.id).delegations.revoke(cid2);
|
|
14907
14910
|
if (!revoked.ok) return accountErr(revoked.error);
|
|
14908
|
-
return (0,
|
|
14911
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
14909
14912
|
}
|
|
14910
14913
|
};
|
|
14911
14914
|
this.index = {
|
|
@@ -14914,7 +14917,7 @@ var AccountService = class {
|
|
|
14914
14917
|
if (!dbResult.ok) return dbResult;
|
|
14915
14918
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
14916
14919
|
if (!schema.ok) return schema;
|
|
14917
|
-
return (0,
|
|
14920
|
+
return (0, import_sdk_services8.ok)({ database: ACCOUNT_INDEX_DB });
|
|
14918
14921
|
},
|
|
14919
14922
|
rebuild: async () => {
|
|
14920
14923
|
const dbResult = this.accountDb();
|
|
@@ -14996,7 +14999,7 @@ var AccountService = class {
|
|
|
14996
14999
|
];
|
|
14997
15000
|
const rebuilt = await dbResult.data.batch(statements);
|
|
14998
15001
|
if (!rebuilt.ok) return accountErr(rebuilt.error);
|
|
14999
|
-
return (0,
|
|
15002
|
+
return (0, import_sdk_services8.ok)({
|
|
15000
15003
|
database: ACCOUNT_INDEX_DB,
|
|
15001
15004
|
applications: applications.data.length,
|
|
15002
15005
|
spaces: spaces.data.length,
|
|
@@ -15012,7 +15015,7 @@ var AccountService = class {
|
|
|
15012
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"
|
|
15013
15016
|
);
|
|
15014
15017
|
if (!queried.ok) return accountErr(queried.error);
|
|
15015
|
-
return (0,
|
|
15018
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedApplicationFromRow));
|
|
15016
15019
|
}
|
|
15017
15020
|
},
|
|
15018
15021
|
spaces: {
|
|
@@ -15023,7 +15026,7 @@ var AccountService = class {
|
|
|
15023
15026
|
"SELECT space_id, name, owner_did, type, permissions_json, status, registered_at, updated_at, expires_at FROM spaces ORDER BY name, space_id"
|
|
15024
15027
|
);
|
|
15025
15028
|
if (!queried.ok) return accountErr(queried.error);
|
|
15026
|
-
return (0,
|
|
15029
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedSpaceFromRow));
|
|
15027
15030
|
}
|
|
15028
15031
|
},
|
|
15029
15032
|
delegations: {
|
|
@@ -15045,7 +15048,7 @@ var AccountService = class {
|
|
|
15045
15048
|
params
|
|
15046
15049
|
);
|
|
15047
15050
|
if (!queried.ok) return accountErr(queried.error);
|
|
15048
|
-
return (0,
|
|
15051
|
+
return (0, import_sdk_services8.ok)(queried.data.rows.map(indexedDelegationFromRow));
|
|
15049
15052
|
}
|
|
15050
15053
|
},
|
|
15051
15054
|
query: async (sql, params) => {
|
|
@@ -15053,7 +15056,7 @@ var AccountService = class {
|
|
|
15053
15056
|
if (!dbResult.ok) return dbResult;
|
|
15054
15057
|
const queried = await dbResult.data.query(sql, params);
|
|
15055
15058
|
if (!queried.ok) return accountErr(queried.error);
|
|
15056
|
-
return (0,
|
|
15059
|
+
return (0, import_sdk_services8.ok)(queried.data);
|
|
15057
15060
|
},
|
|
15058
15061
|
status: async () => {
|
|
15059
15062
|
const dbResult = this.accountDb();
|
|
@@ -15063,11 +15066,11 @@ var AccountService = class {
|
|
|
15063
15066
|
);
|
|
15064
15067
|
if (!queried.ok) {
|
|
15065
15068
|
if (isMissingIndexError(queried.error)) {
|
|
15066
|
-
return (0,
|
|
15069
|
+
return (0, import_sdk_services8.ok)({ database: ACCOUNT_INDEX_DB, state: "missing", sources: [] });
|
|
15067
15070
|
}
|
|
15068
15071
|
return accountErr(queried.error);
|
|
15069
15072
|
}
|
|
15070
|
-
return (0,
|
|
15073
|
+
return (0, import_sdk_services8.ok)({
|
|
15071
15074
|
database: ACCOUNT_INDEX_DB,
|
|
15072
15075
|
state: "ready",
|
|
15073
15076
|
sources: queried.data.rows.map(([source, syncedAt, count]) => ({
|
|
@@ -15086,7 +15089,7 @@ var AccountService = class {
|
|
|
15086
15089
|
if (!delegations.ok) return delegations;
|
|
15087
15090
|
const spaces = await this.spaces.list();
|
|
15088
15091
|
if (!spaces.ok) return spaces;
|
|
15089
|
-
return (0,
|
|
15092
|
+
return (0, import_sdk_services8.ok)({
|
|
15090
15093
|
did: this.config.getDid(),
|
|
15091
15094
|
host: this.config.getHost(),
|
|
15092
15095
|
primarySpaceId: this.config.getPrimarySpaceId(),
|
|
@@ -15100,28 +15103,28 @@ var AccountService = class {
|
|
|
15100
15103
|
accountKV() {
|
|
15101
15104
|
const accountSpaceId = this.config.getAccountSpaceId();
|
|
15102
15105
|
if (!accountSpaceId) {
|
|
15103
|
-
return (0,
|
|
15104
|
-
(0,
|
|
15106
|
+
return (0, import_sdk_services8.err)(
|
|
15107
|
+
(0, import_sdk_services8.serviceError)(
|
|
15105
15108
|
"ACCOUNT_SPACE_UNAVAILABLE",
|
|
15106
15109
|
"Account space is unavailable. Sign in with a wallet-backed profile first.",
|
|
15107
15110
|
SERVICE_NAME2
|
|
15108
15111
|
)
|
|
15109
15112
|
);
|
|
15110
15113
|
}
|
|
15111
|
-
return (0,
|
|
15114
|
+
return (0, import_sdk_services8.ok)(this.config.getSpaces().get(accountSpaceId).kv);
|
|
15112
15115
|
}
|
|
15113
15116
|
accountDb() {
|
|
15114
15117
|
const db = this.config.getAccountDb?.();
|
|
15115
15118
|
if (!db) {
|
|
15116
|
-
return (0,
|
|
15117
|
-
(0,
|
|
15119
|
+
return (0, import_sdk_services8.err)(
|
|
15120
|
+
(0, import_sdk_services8.serviceError)(
|
|
15118
15121
|
"ACCOUNT_INDEX_UNAVAILABLE",
|
|
15119
15122
|
"Account index database is unavailable. Sign in with a wallet-backed profile first.",
|
|
15120
15123
|
SERVICE_NAME2
|
|
15121
15124
|
)
|
|
15122
15125
|
);
|
|
15123
15126
|
}
|
|
15124
|
-
return (0,
|
|
15127
|
+
return (0, import_sdk_services8.ok)(db);
|
|
15125
15128
|
}
|
|
15126
15129
|
async indexHasApplicationHash(appId, manifestHash) {
|
|
15127
15130
|
const dbResult = this.accountDb();
|
|
@@ -15139,7 +15142,7 @@ var AccountService = class {
|
|
|
15139
15142
|
}
|
|
15140
15143
|
async upsertApplicationIndex(app) {
|
|
15141
15144
|
const dbResult = this.accountDb();
|
|
15142
|
-
if (!dbResult.ok) return (0,
|
|
15145
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15143
15146
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15144
15147
|
if (!schema.ok) return schema;
|
|
15145
15148
|
const updatedAt = app.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -15161,14 +15164,14 @@ var AccountService = class {
|
|
|
15161
15164
|
}
|
|
15162
15165
|
]);
|
|
15163
15166
|
if (!written.ok) return accountErr(written.error);
|
|
15164
|
-
return (0,
|
|
15167
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15165
15168
|
}
|
|
15166
15169
|
async deleteApplicationIndexQuietly(appId) {
|
|
15167
15170
|
await ignoreIndexFailure(() => this.deleteApplicationIndex(appId));
|
|
15168
15171
|
}
|
|
15169
15172
|
async deleteApplicationIndex(appId) {
|
|
15170
15173
|
const dbResult = this.accountDb();
|
|
15171
|
-
if (!dbResult.ok) return (0,
|
|
15174
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15172
15175
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15173
15176
|
if (!schema.ok) return schema;
|
|
15174
15177
|
const deleted = await dbResult.data.batch([
|
|
@@ -15176,14 +15179,14 @@ var AccountService = class {
|
|
|
15176
15179
|
{ sql: "DELETE FROM application_state WHERE app_id = ?", params: [appId] }
|
|
15177
15180
|
]);
|
|
15178
15181
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
15179
|
-
return (0,
|
|
15182
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15180
15183
|
}
|
|
15181
15184
|
async upsertSpaceIndexQuietly(space) {
|
|
15182
15185
|
await ignoreIndexFailure(() => this.upsertSpaceIndex(space));
|
|
15183
15186
|
}
|
|
15184
15187
|
async upsertSpaceIndex(space) {
|
|
15185
15188
|
const dbResult = this.accountDb();
|
|
15186
|
-
if (!dbResult.ok) return (0,
|
|
15189
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15187
15190
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15188
15191
|
if (!schema.ok) return schema;
|
|
15189
15192
|
const updatedAt = space.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -15204,7 +15207,7 @@ var AccountService = class {
|
|
|
15204
15207
|
}
|
|
15205
15208
|
]);
|
|
15206
15209
|
if (!written.ok) return accountErr(written.error);
|
|
15207
|
-
return (0,
|
|
15210
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15208
15211
|
}
|
|
15209
15212
|
async upsertSpacesIndexQuietly(spaces) {
|
|
15210
15213
|
await ignoreIndexFailure(() => this.upsertSpacesIndex(spaces));
|
|
@@ -15218,9 +15221,9 @@ var AccountService = class {
|
|
|
15218
15221
|
* atomically: all rows or none.
|
|
15219
15222
|
*/
|
|
15220
15223
|
async upsertSpacesIndex(spaces) {
|
|
15221
|
-
if (spaces.length === 0) return (0,
|
|
15224
|
+
if (spaces.length === 0) return (0, import_sdk_services8.ok)(void 0);
|
|
15222
15225
|
const dbResult = this.accountDb();
|
|
15223
|
-
if (!dbResult.ok) return (0,
|
|
15226
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15224
15227
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15225
15228
|
if (!schema.ok) return schema;
|
|
15226
15229
|
const placeholders = spaces.map(() => "(?, ?, ?, ?, ?, ?, ?, ?, ?)").join(", ");
|
|
@@ -15245,21 +15248,21 @@ var AccountService = class {
|
|
|
15245
15248
|
}
|
|
15246
15249
|
]);
|
|
15247
15250
|
if (!written.ok) return accountErr(written.error);
|
|
15248
|
-
return (0,
|
|
15251
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15249
15252
|
}
|
|
15250
15253
|
async deleteSpaceIndexQuietly(spaceId) {
|
|
15251
15254
|
await ignoreIndexFailure(() => this.deleteSpaceIndex(spaceId));
|
|
15252
15255
|
}
|
|
15253
15256
|
async deleteSpaceIndex(spaceId) {
|
|
15254
15257
|
const dbResult = this.accountDb();
|
|
15255
|
-
if (!dbResult.ok) return (0,
|
|
15258
|
+
if (!dbResult.ok) return (0, import_sdk_services8.ok)(void 0);
|
|
15256
15259
|
const schema = await this.ensureAccountIndex(dbResult.data);
|
|
15257
15260
|
if (!schema.ok) return schema;
|
|
15258
15261
|
const deleted = await dbResult.data.batch([
|
|
15259
15262
|
{ sql: "DELETE FROM spaces WHERE space_id = ?", params: [spaceId] }
|
|
15260
15263
|
]);
|
|
15261
15264
|
if (!deleted.ok) return accountErr(deleted.error);
|
|
15262
|
-
return (0,
|
|
15265
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15263
15266
|
}
|
|
15264
15267
|
/**
|
|
15265
15268
|
* Register every space the session can reach and return them. With
|
|
@@ -15279,7 +15282,7 @@ var AccountService = class {
|
|
|
15279
15282
|
spaces.push(result.data);
|
|
15280
15283
|
continue;
|
|
15281
15284
|
}
|
|
15282
|
-
if (!options2.tolerateStorageFull || !(0,
|
|
15285
|
+
if (!options2.tolerateStorageFull || !(0, import_sdk_services8.isStorageFullError)(result.error)) {
|
|
15283
15286
|
return result;
|
|
15284
15287
|
}
|
|
15285
15288
|
allRegistered = false;
|
|
@@ -15287,18 +15290,18 @@ var AccountService = class {
|
|
|
15287
15290
|
const record2 = spaceRecordFromInput(space);
|
|
15288
15291
|
spaces.push(spaceFromRecord(spaceKey(record2.space_id), record2));
|
|
15289
15292
|
}
|
|
15290
|
-
return (0,
|
|
15293
|
+
return (0, import_sdk_services8.ok)({ spaces, allRegistered });
|
|
15291
15294
|
}
|
|
15292
15295
|
async resolveSpace(space) {
|
|
15293
15296
|
const listed = await this.config.getSpaces().list();
|
|
15294
15297
|
if (!listed.ok) return accountErr(listed.error);
|
|
15295
15298
|
const found = listed.data.find((candidate) => candidate.id === space || candidate.name === space);
|
|
15296
15299
|
if (!found) {
|
|
15297
|
-
return (0,
|
|
15298
|
-
(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)
|
|
15299
15302
|
);
|
|
15300
15303
|
}
|
|
15301
|
-
return (0,
|
|
15304
|
+
return (0, import_sdk_services8.ok)(found);
|
|
15302
15305
|
}
|
|
15303
15306
|
async replaceApplicationsIndexQuietly(applications) {
|
|
15304
15307
|
await ignoreIndexFailure(async () => {
|
|
@@ -15440,7 +15443,7 @@ var AccountService = class {
|
|
|
15440
15443
|
]
|
|
15441
15444
|
});
|
|
15442
15445
|
if (!migrated.ok) return accountErr(migrated.error);
|
|
15443
|
-
return (0,
|
|
15446
|
+
return (0, import_sdk_services8.ok)(void 0);
|
|
15444
15447
|
}
|
|
15445
15448
|
};
|
|
15446
15449
|
function applicationKey(appId) {
|
|
@@ -15596,17 +15599,17 @@ function mapDelegation(delegation, space, direction) {
|
|
|
15596
15599
|
};
|
|
15597
15600
|
}
|
|
15598
15601
|
function accountErr(error) {
|
|
15599
|
-
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 }));
|
|
15600
15603
|
}
|
|
15601
15604
|
function isMissingIndexError(error) {
|
|
15602
15605
|
return /no such table:/i.test(error.message);
|
|
15603
15606
|
}
|
|
15604
15607
|
var AMBIGUOUS_WRITE_STATUSES = /* @__PURE__ */ new Set([500, 502, 503, 504, 520, 522, 524]);
|
|
15605
15608
|
function isAmbiguousBatchFailure(error) {
|
|
15606
|
-
if (error.code ===
|
|
15609
|
+
if (error.code === import_sdk_services8.ErrorCodes.NETWORK_ERROR || error.code === import_sdk_services8.ErrorCodes.TIMEOUT) {
|
|
15607
15610
|
return error.meta?.requestMayHaveDispatched === true;
|
|
15608
15611
|
}
|
|
15609
|
-
if (error.code ===
|
|
15612
|
+
if (error.code === import_sdk_services8.ErrorCodes.KV_WRITE_FAILED) {
|
|
15610
15613
|
const status = error.meta?.status;
|
|
15611
15614
|
return typeof status === "number" && AMBIGUOUS_WRITE_STATUSES.has(status);
|
|
15612
15615
|
}
|
|
@@ -15620,7 +15623,7 @@ async function ignoreIndexFailure(task) {
|
|
|
15620
15623
|
}
|
|
15621
15624
|
|
|
15622
15625
|
// src/index.ts
|
|
15623
|
-
var
|
|
15626
|
+
var import_sdk_services10 = require("@tinycloud/sdk-services");
|
|
15624
15627
|
|
|
15625
15628
|
// src/space.ts
|
|
15626
15629
|
async function fetchPeerId(host, spaceId, signal) {
|
|
@@ -15725,7 +15728,7 @@ async function postSessionActivation(host, delegationHeader, signal) {
|
|
|
15725
15728
|
}
|
|
15726
15729
|
|
|
15727
15730
|
// src/authorization/CapabilityKeyRegistry.ts
|
|
15728
|
-
var
|
|
15731
|
+
var import_sdk_services9 = require("@tinycloud/sdk-services");
|
|
15729
15732
|
var SERVICE_NAME3 = "capability-key-registry";
|
|
15730
15733
|
var CapabilityKeyRegistryErrorCodes = {
|
|
15731
15734
|
/** Key not found in registry */
|
|
@@ -15950,8 +15953,8 @@ var CapabilityKeyRegistry = class {
|
|
|
15950
15953
|
revokeDelegation(cid2) {
|
|
15951
15954
|
const stored = this.store.byCid.get(cid2);
|
|
15952
15955
|
if (!stored || stored.length === 0) {
|
|
15953
|
-
return (0,
|
|
15954
|
-
(0,
|
|
15956
|
+
return (0, import_sdk_services9.err)(
|
|
15957
|
+
(0, import_sdk_services9.serviceError)(
|
|
15955
15958
|
CapabilityKeyRegistryErrorCodes.KEY_NOT_FOUND,
|
|
15956
15959
|
`Delegation not found: ${cid2}`,
|
|
15957
15960
|
SERVICE_NAME3
|
|
@@ -15971,7 +15974,7 @@ var CapabilityKeyRegistry = class {
|
|
|
15971
15974
|
}
|
|
15972
15975
|
}
|
|
15973
15976
|
}
|
|
15974
|
-
return (0,
|
|
15977
|
+
return (0, import_sdk_services9.ok)(void 0);
|
|
15975
15978
|
}
|
|
15976
15979
|
// ===========================================================================
|
|
15977
15980
|
// Search
|