@tinycloud/sdk-core 2.11.0-beta.5 → 2.11.0-beta.8

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.
@@ -1,5 +1,6 @@
1
- import { I as ICapabilityKeyRegistry, D as DelegationManager, R as Result, a as DelegationError } from '../recipient-types.schema-CWIt63Qp.cjs';
2
- export { A as AccountDelegationPage, b as AccountDelegationQueryOptions, c as AccountDelegationRecord, d as AccountDelegationResource, C as CapabilityEntry, e as CreateDelegationParams, f as CreateDelegationWasmParams, g as CreateDelegationWasmResult, h as CreateOwnerDelegationParams, i as DelegateReceivedShareParams, j as DelegatedResource, k as DelegatedShareAccess, l as DelegatedShareKey, m as Delegation, n as DelegationApiResponse, o as DelegationChain, p as DelegationChainV2, q as DelegationDirection, r as DelegationErrorCode, s as DelegationErrorCodes, t as DelegationFilters, u as DelegationManagerConfig, v as DelegationRecord, w as DelegationRevocationReceipt, x as DelegationStatus, E as EncodedShareData, G as GenerateShareParams, y as ISharingService, z as IngestOptions, J as JWK, K as KeyInfo, B as KeyProvider, F as KeyType, M as MAX_CONTENT_BYTES, H as MAX_SEALED_SHARE_CONTENT_BYTES, L as MAX_SHARE_ARTIFACT_BYTES, N as MAX_SHARE_CONTENT_BYTES, O as MemorySenderShareKeyStorage, P as MemorySenderShareRecordStorage, Q as MemoryShareCache, S as OwnerDelegationPermission, T as OwnerDelegationReceipt, U as OwnerShareAction, V as OwnerShareDecryption, W as OwnerShareMatcher, X as OwnerSharePolicyRegistration, Y as OwnerSharePolicyRegistrationReceipt, Z as OwnerSharePolicyV2, _ as ReceiveOptions, $ as RegisterOwnerSharePolicyParams, a0 as SHARE_DELIVERY_AUTHORIZATION_DOMAIN, a1 as SenderShareKeyStorage, a2 as SenderShareRecord, a3 as SenderShareRecordStorage, a4 as SenderShareRevocationScope, a5 as SenderShareStore, a6 as ShareAccess, a7 as ShareAccessError, a8 as ShareAccessV2, a9 as ShareAction, aa as ShareActionSchema, ab as ShareAddressedDelegationEnvelopeV2, ac as ShareAddressedDelegationEnvelopeV2Schema, ad as ShareAddressedDelegationRequestV2, ae as ShareAddressedDelegationRequestV2Schema, af as ShareAddressedDelegationResponseV2, ag as ShareAddressedDelegationResponseV2Schema, ah as ShareAddressedRecipientMatcher, ai as ShareArtifactInput, aj as ShareArtifactResult, ak as ShareArtifactV2, al as ShareCache, am as ShareCacheEntry, an as ShareCacheKey, ao as ShareCacheMetadata, ap as ShareCapabilityLike, aq as ShareConflict, ar as ShareContentMetadata, as as ShareContentSource, at as ShareDeliveryAuthorization, au as ShareDeliveryAuthorizationReceipt, av as ShareDeliveryAuthorizationRequest, aw as ShareDetachedProof, ax as ShareEnvelopeError, ay as ShareEnvelopeV2, az as ShareExpiryBounds, aA as ShareKvContentSource, aB as ShareLink, aC as ShareLinkData, aD as ShareLinkLocation, aE as ShareListEntry, aF as ShareListResult, aG as ShareNativeAction, aH as ShareNativeInvokeEnvelopeV1, aI as ShareNativeInvokeErrorResult, aJ as ShareNativeInvokeInput, aK as ShareNativeInvokeResult, aL as ShareNativeInvokeSuccessResult, aM as ShareNativeResponse, aN as ShareNativeResponseSchema, aO as SharePolicy, aP as SharePolicyBinding, aQ as SharePolicySession, aR as SharePolicySessionV1, aS as SharePolicySessionWireV1, aT as ShareReadInvocationV1, aU as ShareReadResult, aV as ShareRecipientClient, aW as ShareRecipientClientOptions, aX as ShareRecipientClientOptionsSchema, aY as ShareRecipientPolicy, aZ as ShareRecipientPolicySchema, a_ as ShareRecipientResult, a$ as ShareRecipientTarget, b0 as ShareRecipientTargetSchema, b1 as ShareResource, b2 as ShareResourceSchema, b3 as ShareSaveOptions, b4 as ShareSchema, b5 as ShareSqlContentSource, b6 as ShareWireAction, b7 as SharingService, b8 as SharingServiceConfig, b9 as SignedDelegation, ba as SpaceInfo, bb as SpaceOwnership, bc as ValidateShareDeliveryAuthorizationExpected, bd as VerifyShareEnvelopeOptions, be as canonicalOwnerSharePolicy, bf as computeOwnerShareRegistrationCid, bg as computeShareCid, bh as createDelegatedShareKey, bi as createPolicyEnforcementDelegation, bj as createShareArtifact, bk as createShareArtifactAsync, bl as createSharePolicy, bm as createSharingService, bn as decryptShareBytesAsync, bo as encodeInlineShareUrl, bp as encodeShareArtifact, bq as encodeShareUrl, br as encryptShareBytes, bs as encryptShareBytesAsync, bt as intersectShareCapabilities, bu as isV2ShareLink, bv as normalizeShareActions, bw as normalizeShareRecipientTarget, bx as normalizeShareResource, by as parseShareArtifact, bz as parseShareUrl, bA as restoreDelegatedShareKey, bB as shareCapabilityAllows, bC as shareDeliveryTrustedKid, bD as signShareEnvelope, bE as validateOwnerSharePolicyRegistration, bF as validateOwnerSharePolicyRegistrationBytes, bG as validateShareDeliveryAuthorizationBytes, bH as verifyShareCid, bI as verifyShareEnvelope } from '../recipient-types.schema-CWIt63Qp.cjs';
1
+ import { I as ICapabilityKeyRegistry, D as DelegationManager, R as Result, a as DelegationError } from '../recipient-types.schema-D5pDlIqn.cjs';
2
+ export { A as AccountDelegationPage, b as AccountDelegationQueryOptions, c as AccountDelegationRecord, d as AccountDelegationResource, C as CapabilityEntry, e as CreateDelegationParams, f as CreateDelegationWasmParams, g as CreateDelegationWasmResult, h as CreateOwnerDelegationParams, i as DelegateReceivedShareParams, j as DelegatedResource, k as DelegatedShareAccess, l as DelegatedShareKey, m as Delegation, n as DelegationApiResponse, o as DelegationChain, p as DelegationChainV2, q as DelegationDirection, r as DelegationErrorCode, s as DelegationErrorCodes, t as DelegationFilters, u as DelegationManagerConfig, v as DelegationRecord, w as DelegationRevocationReceipt, x as DelegationStatus, E as EncodedShareData, G as GenerateShareParams, y as ISharingService, z as IngestOptions, J as JWK, K as KeyInfo, B as KeyProvider, F as KeyType, M as MAX_CONTENT_BYTES, H as MAX_SEALED_SHARE_CONTENT_BYTES, L as MAX_SHARE_ARTIFACT_BYTES, N as MAX_SHARE_CONTENT_BYTES, O as MemorySenderShareKeyStorage, P as MemorySenderShareRecordStorage, Q as MemoryShareCache, S as OwnerDelegationPermission, T as OwnerDelegationReceipt, U as OwnerShareAction, V as OwnerShareDecryption, W as OwnerShareMatcher, X as OwnerSharePolicyRegistration, Y as OwnerSharePolicyRegistrationReceipt, Z as OwnerSharePolicyV2, _ as ReceiveOptions, $ as RegisterOwnerSharePolicyParams, a0 as SHARE_DELIVERY_AUTHORIZATION_DOMAIN, a1 as SenderShareKeyStorage, a2 as SenderShareRecord, a3 as SenderShareRecordStorage, a4 as SenderShareRevocationScope, a5 as SenderShareStore, a6 as ShareAccess, a7 as ShareAccessError, a8 as ShareAccessV2, a9 as ShareAction, aa as ShareActionSchema, ab as ShareAddressedDelegationEnvelopeV2, ac as ShareAddressedDelegationEnvelopeV2Schema, ad as ShareAddressedDelegationRequestV2, ae as ShareAddressedDelegationRequestV2Schema, af as ShareAddressedDelegationResponseV2, ag as ShareAddressedDelegationResponseV2Schema, ah as ShareAddressedRecipientMatcher, ai as ShareArtifactInput, aj as ShareArtifactResult, ak as ShareArtifactV2, al as ShareCache, am as ShareCacheEntry, an as ShareCacheKey, ao as ShareCacheMetadata, ap as ShareCapabilityLike, aq as ShareConflict, ar as ShareContentMetadata, as as ShareContentSource, at as ShareDeliveryAuthorization, au as ShareDeliveryAuthorizationReceipt, av as ShareDeliveryAuthorizationRequest, aw as ShareDetachedProof, ax as ShareEnvelopeError, ay as ShareEnvelopeV2, az as ShareExpiryBounds, aA as ShareKvContentSource, aB as ShareLink, aC as ShareLinkData, aD as ShareLinkLocation, aE as ShareListEntry, aF as ShareListResult, aG as ShareNativeAction, aH as ShareNativeInvokeEnvelopeV1, aI as ShareNativeInvokeErrorResult, aJ as ShareNativeInvokeInput, aK as ShareNativeInvokeResult, aL as ShareNativeInvokeSuccessResult, aM as ShareNativeResponse, aN as ShareNativeResponseSchema, aO as SharePolicy, aP as SharePolicyBinding, aQ as SharePolicySession, aR as SharePolicySessionV1, aS as SharePolicySessionWireV1, aT as ShareReadInvocationV1, aU as ShareReadResult, aV as ShareRecipientClient, aW as ShareRecipientClientOptions, aX as ShareRecipientClientOptionsSchema, aY as ShareRecipientPolicy, aZ as ShareRecipientPolicySchema, a_ as ShareRecipientResult, a$ as ShareRecipientTarget, b0 as ShareRecipientTargetSchema, b1 as ShareResource, b2 as ShareResourceSchema, b3 as ShareSaveOptions, b4 as ShareSchema, b5 as ShareSqlContentSource, b6 as ShareWireAction, b7 as SharingService, b8 as SharingServiceConfig, b9 as SignedDelegation, ba as SpaceInfo, bb as SpaceOwnership, bc as ValidateShareDeliveryAuthorizationExpected, bd as VerifyShareEnvelopeOptions, be as canonicalOwnerSharePolicy, bf as computeOwnerShareRegistrationCid, bg as computeShareCid, bh as createDelegatedShareKey, bi as createPolicyEnforcementDelegation, bj as createShareArtifact, bk as createShareArtifactAsync, bl as createSharePolicy, bm as createSharingService, bn as decryptShareBytesAsync, bo as encodeInlineShareUrl, bp as encodeShareArtifact, bq as encodeShareUrl, br as encryptShareBytes, bs as encryptShareBytesAsync, bt as intersectShareCapabilities, bu as isV2ShareLink, bv as normalizeShareActions, bw as normalizeShareRecipientTarget, bx as normalizeShareResource, by as parseShareArtifact, bz as parseShareUrl, bA as restoreDelegatedShareKey, bB as shareCapabilityAllows, bC as shareDeliveryTrustedKid, bD as signShareEnvelope, bE as validateOwnerSharePolicyRegistration, bF as validateOwnerSharePolicyRegistrationBytes, bG as validateShareDeliveryAuthorizationBytes, bH as verifyShareCid, bI as verifyShareEnvelope } from '../recipient-types.schema-D5pDlIqn.cjs';
3
+ export { EncryptedSenderShareHistory, EncryptedShareHistoryStorage, LegacyMigrationResult, LegacyShareReader, MemoryEncryptedShareHistoryStorage, ShareAuthorizationAdapter, ShareAuthorizationDenied, ShareAuthorizationMethod, ShareAuthorizationReady, ShareAuthorizationRequired, ShareAuthorizationResult, ShareDeliveryAdapter, ShareErrorCode, ShareErrorInfo, ShareFetchOptions, ShareHistoryView, ShareInspection, ShareMetadata, ShareNotifyResult, ShareNotifyState, SharePolicyPublishAdapter, ShareReceiveError, ShareReceiveResult, ShareRevocationAdapter, ShareRevocationResult, ShareTarget, TargetPublishAdapter, TargetPublishInput, TargetPublishOutcome, VerifyBearerEnvelopeOptions, authorizationMethodForTarget, authorizeShare, claimShare, inspectShare, isLegacyShareLink, listShares, migrateShare, notifyShare, publishPolicyShare, publishTargetShare, receiveLegacyShare, receiveShare, resumeShareAuthorization, revokeShare, showShare, toShareErrorInfo, verifyBearerEnvelope } from '@tinycloud/share-sdk';
3
4
  import { z } from 'zod';
4
5
  import { ServiceSession, InvokeFunction, FetchFunction, IKVService } from '@tinycloud/sdk-services';
5
6
 
@@ -1,5 +1,6 @@
1
- import { I as ICapabilityKeyRegistry, D as DelegationManager, R as Result, a as DelegationError } from '../recipient-types.schema-CWIt63Qp.js';
2
- export { A as AccountDelegationPage, b as AccountDelegationQueryOptions, c as AccountDelegationRecord, d as AccountDelegationResource, C as CapabilityEntry, e as CreateDelegationParams, f as CreateDelegationWasmParams, g as CreateDelegationWasmResult, h as CreateOwnerDelegationParams, i as DelegateReceivedShareParams, j as DelegatedResource, k as DelegatedShareAccess, l as DelegatedShareKey, m as Delegation, n as DelegationApiResponse, o as DelegationChain, p as DelegationChainV2, q as DelegationDirection, r as DelegationErrorCode, s as DelegationErrorCodes, t as DelegationFilters, u as DelegationManagerConfig, v as DelegationRecord, w as DelegationRevocationReceipt, x as DelegationStatus, E as EncodedShareData, G as GenerateShareParams, y as ISharingService, z as IngestOptions, J as JWK, K as KeyInfo, B as KeyProvider, F as KeyType, M as MAX_CONTENT_BYTES, H as MAX_SEALED_SHARE_CONTENT_BYTES, L as MAX_SHARE_ARTIFACT_BYTES, N as MAX_SHARE_CONTENT_BYTES, O as MemorySenderShareKeyStorage, P as MemorySenderShareRecordStorage, Q as MemoryShareCache, S as OwnerDelegationPermission, T as OwnerDelegationReceipt, U as OwnerShareAction, V as OwnerShareDecryption, W as OwnerShareMatcher, X as OwnerSharePolicyRegistration, Y as OwnerSharePolicyRegistrationReceipt, Z as OwnerSharePolicyV2, _ as ReceiveOptions, $ as RegisterOwnerSharePolicyParams, a0 as SHARE_DELIVERY_AUTHORIZATION_DOMAIN, a1 as SenderShareKeyStorage, a2 as SenderShareRecord, a3 as SenderShareRecordStorage, a4 as SenderShareRevocationScope, a5 as SenderShareStore, a6 as ShareAccess, a7 as ShareAccessError, a8 as ShareAccessV2, a9 as ShareAction, aa as ShareActionSchema, ab as ShareAddressedDelegationEnvelopeV2, ac as ShareAddressedDelegationEnvelopeV2Schema, ad as ShareAddressedDelegationRequestV2, ae as ShareAddressedDelegationRequestV2Schema, af as ShareAddressedDelegationResponseV2, ag as ShareAddressedDelegationResponseV2Schema, ah as ShareAddressedRecipientMatcher, ai as ShareArtifactInput, aj as ShareArtifactResult, ak as ShareArtifactV2, al as ShareCache, am as ShareCacheEntry, an as ShareCacheKey, ao as ShareCacheMetadata, ap as ShareCapabilityLike, aq as ShareConflict, ar as ShareContentMetadata, as as ShareContentSource, at as ShareDeliveryAuthorization, au as ShareDeliveryAuthorizationReceipt, av as ShareDeliveryAuthorizationRequest, aw as ShareDetachedProof, ax as ShareEnvelopeError, ay as ShareEnvelopeV2, az as ShareExpiryBounds, aA as ShareKvContentSource, aB as ShareLink, aC as ShareLinkData, aD as ShareLinkLocation, aE as ShareListEntry, aF as ShareListResult, aG as ShareNativeAction, aH as ShareNativeInvokeEnvelopeV1, aI as ShareNativeInvokeErrorResult, aJ as ShareNativeInvokeInput, aK as ShareNativeInvokeResult, aL as ShareNativeInvokeSuccessResult, aM as ShareNativeResponse, aN as ShareNativeResponseSchema, aO as SharePolicy, aP as SharePolicyBinding, aQ as SharePolicySession, aR as SharePolicySessionV1, aS as SharePolicySessionWireV1, aT as ShareReadInvocationV1, aU as ShareReadResult, aV as ShareRecipientClient, aW as ShareRecipientClientOptions, aX as ShareRecipientClientOptionsSchema, aY as ShareRecipientPolicy, aZ as ShareRecipientPolicySchema, a_ as ShareRecipientResult, a$ as ShareRecipientTarget, b0 as ShareRecipientTargetSchema, b1 as ShareResource, b2 as ShareResourceSchema, b3 as ShareSaveOptions, b4 as ShareSchema, b5 as ShareSqlContentSource, b6 as ShareWireAction, b7 as SharingService, b8 as SharingServiceConfig, b9 as SignedDelegation, ba as SpaceInfo, bb as SpaceOwnership, bc as ValidateShareDeliveryAuthorizationExpected, bd as VerifyShareEnvelopeOptions, be as canonicalOwnerSharePolicy, bf as computeOwnerShareRegistrationCid, bg as computeShareCid, bh as createDelegatedShareKey, bi as createPolicyEnforcementDelegation, bj as createShareArtifact, bk as createShareArtifactAsync, bl as createSharePolicy, bm as createSharingService, bn as decryptShareBytesAsync, bo as encodeInlineShareUrl, bp as encodeShareArtifact, bq as encodeShareUrl, br as encryptShareBytes, bs as encryptShareBytesAsync, bt as intersectShareCapabilities, bu as isV2ShareLink, bv as normalizeShareActions, bw as normalizeShareRecipientTarget, bx as normalizeShareResource, by as parseShareArtifact, bz as parseShareUrl, bA as restoreDelegatedShareKey, bB as shareCapabilityAllows, bC as shareDeliveryTrustedKid, bD as signShareEnvelope, bE as validateOwnerSharePolicyRegistration, bF as validateOwnerSharePolicyRegistrationBytes, bG as validateShareDeliveryAuthorizationBytes, bH as verifyShareCid, bI as verifyShareEnvelope } from '../recipient-types.schema-CWIt63Qp.js';
1
+ import { I as ICapabilityKeyRegistry, D as DelegationManager, R as Result, a as DelegationError } from '../recipient-types.schema-D5pDlIqn.js';
2
+ export { A as AccountDelegationPage, b as AccountDelegationQueryOptions, c as AccountDelegationRecord, d as AccountDelegationResource, C as CapabilityEntry, e as CreateDelegationParams, f as CreateDelegationWasmParams, g as CreateDelegationWasmResult, h as CreateOwnerDelegationParams, i as DelegateReceivedShareParams, j as DelegatedResource, k as DelegatedShareAccess, l as DelegatedShareKey, m as Delegation, n as DelegationApiResponse, o as DelegationChain, p as DelegationChainV2, q as DelegationDirection, r as DelegationErrorCode, s as DelegationErrorCodes, t as DelegationFilters, u as DelegationManagerConfig, v as DelegationRecord, w as DelegationRevocationReceipt, x as DelegationStatus, E as EncodedShareData, G as GenerateShareParams, y as ISharingService, z as IngestOptions, J as JWK, K as KeyInfo, B as KeyProvider, F as KeyType, M as MAX_CONTENT_BYTES, H as MAX_SEALED_SHARE_CONTENT_BYTES, L as MAX_SHARE_ARTIFACT_BYTES, N as MAX_SHARE_CONTENT_BYTES, O as MemorySenderShareKeyStorage, P as MemorySenderShareRecordStorage, Q as MemoryShareCache, S as OwnerDelegationPermission, T as OwnerDelegationReceipt, U as OwnerShareAction, V as OwnerShareDecryption, W as OwnerShareMatcher, X as OwnerSharePolicyRegistration, Y as OwnerSharePolicyRegistrationReceipt, Z as OwnerSharePolicyV2, _ as ReceiveOptions, $ as RegisterOwnerSharePolicyParams, a0 as SHARE_DELIVERY_AUTHORIZATION_DOMAIN, a1 as SenderShareKeyStorage, a2 as SenderShareRecord, a3 as SenderShareRecordStorage, a4 as SenderShareRevocationScope, a5 as SenderShareStore, a6 as ShareAccess, a7 as ShareAccessError, a8 as ShareAccessV2, a9 as ShareAction, aa as ShareActionSchema, ab as ShareAddressedDelegationEnvelopeV2, ac as ShareAddressedDelegationEnvelopeV2Schema, ad as ShareAddressedDelegationRequestV2, ae as ShareAddressedDelegationRequestV2Schema, af as ShareAddressedDelegationResponseV2, ag as ShareAddressedDelegationResponseV2Schema, ah as ShareAddressedRecipientMatcher, ai as ShareArtifactInput, aj as ShareArtifactResult, ak as ShareArtifactV2, al as ShareCache, am as ShareCacheEntry, an as ShareCacheKey, ao as ShareCacheMetadata, ap as ShareCapabilityLike, aq as ShareConflict, ar as ShareContentMetadata, as as ShareContentSource, at as ShareDeliveryAuthorization, au as ShareDeliveryAuthorizationReceipt, av as ShareDeliveryAuthorizationRequest, aw as ShareDetachedProof, ax as ShareEnvelopeError, ay as ShareEnvelopeV2, az as ShareExpiryBounds, aA as ShareKvContentSource, aB as ShareLink, aC as ShareLinkData, aD as ShareLinkLocation, aE as ShareListEntry, aF as ShareListResult, aG as ShareNativeAction, aH as ShareNativeInvokeEnvelopeV1, aI as ShareNativeInvokeErrorResult, aJ as ShareNativeInvokeInput, aK as ShareNativeInvokeResult, aL as ShareNativeInvokeSuccessResult, aM as ShareNativeResponse, aN as ShareNativeResponseSchema, aO as SharePolicy, aP as SharePolicyBinding, aQ as SharePolicySession, aR as SharePolicySessionV1, aS as SharePolicySessionWireV1, aT as ShareReadInvocationV1, aU as ShareReadResult, aV as ShareRecipientClient, aW as ShareRecipientClientOptions, aX as ShareRecipientClientOptionsSchema, aY as ShareRecipientPolicy, aZ as ShareRecipientPolicySchema, a_ as ShareRecipientResult, a$ as ShareRecipientTarget, b0 as ShareRecipientTargetSchema, b1 as ShareResource, b2 as ShareResourceSchema, b3 as ShareSaveOptions, b4 as ShareSchema, b5 as ShareSqlContentSource, b6 as ShareWireAction, b7 as SharingService, b8 as SharingServiceConfig, b9 as SignedDelegation, ba as SpaceInfo, bb as SpaceOwnership, bc as ValidateShareDeliveryAuthorizationExpected, bd as VerifyShareEnvelopeOptions, be as canonicalOwnerSharePolicy, bf as computeOwnerShareRegistrationCid, bg as computeShareCid, bh as createDelegatedShareKey, bi as createPolicyEnforcementDelegation, bj as createShareArtifact, bk as createShareArtifactAsync, bl as createSharePolicy, bm as createSharingService, bn as decryptShareBytesAsync, bo as encodeInlineShareUrl, bp as encodeShareArtifact, bq as encodeShareUrl, br as encryptShareBytes, bs as encryptShareBytesAsync, bt as intersectShareCapabilities, bu as isV2ShareLink, bv as normalizeShareActions, bw as normalizeShareRecipientTarget, bx as normalizeShareResource, by as parseShareArtifact, bz as parseShareUrl, bA as restoreDelegatedShareKey, bB as shareCapabilityAllows, bC as shareDeliveryTrustedKid, bD as signShareEnvelope, bE as validateOwnerSharePolicyRegistration, bF as validateOwnerSharePolicyRegistrationBytes, bG as validateShareDeliveryAuthorizationBytes, bH as verifyShareCid, bI as verifyShareEnvelope } from '../recipient-types.schema-D5pDlIqn.js';
3
+ export { EncryptedSenderShareHistory, EncryptedShareHistoryStorage, LegacyMigrationResult, LegacyShareReader, MemoryEncryptedShareHistoryStorage, ShareAuthorizationAdapter, ShareAuthorizationDenied, ShareAuthorizationMethod, ShareAuthorizationReady, ShareAuthorizationRequired, ShareAuthorizationResult, ShareDeliveryAdapter, ShareErrorCode, ShareErrorInfo, ShareFetchOptions, ShareHistoryView, ShareInspection, ShareMetadata, ShareNotifyResult, ShareNotifyState, SharePolicyPublishAdapter, ShareReceiveError, ShareReceiveResult, ShareRevocationAdapter, ShareRevocationResult, ShareTarget, TargetPublishAdapter, TargetPublishInput, TargetPublishOutcome, VerifyBearerEnvelopeOptions, authorizationMethodForTarget, authorizeShare, claimShare, inspectShare, isLegacyShareLink, listShares, migrateShare, notifyShare, publishPolicyShare, publishTargetShare, receiveLegacyShare, receiveShare, resumeShareAuthorization, revokeShare, showShare, toShareErrorInfo, verifyBearerEnvelope } from '@tinycloud/share-sdk';
3
4
  import { z } from 'zod';
4
5
  import { ServiceSession, InvokeFunction, FetchFunction, IKVService } from '@tinycloud/sdk-services';
5
6
 
@@ -2733,6 +2733,10 @@ function normalizeRecipient(recipient) {
2733
2733
  }
2734
2734
  return { kind: recipient.kind, value: domain };
2735
2735
  }
2736
+ if (recipient.kind === "recipientDid") {
2737
+ if (!isCanonicalRecipientDid(recipient.value)) throw new ShareEnvelopeError("invalid-envelope", "recipient DID is invalid");
2738
+ return { kind: recipient.kind, value: recipient.value };
2739
+ }
2736
2740
  const exact = recipient.value.trim();
2737
2741
  const at = exact.lastIndexOf("@");
2738
2742
  const normalizedExact = at > 0 ? `${exact.slice(0, at)}@${exact.slice(at + 1).toLowerCase()}` : exact;
@@ -2741,6 +2745,28 @@ function normalizeRecipient(recipient) {
2741
2745
  }
2742
2746
  return { kind: recipient.kind, value: normalizedExact };
2743
2747
  }
2748
+ function isCanonicalRecipientDid(value) {
2749
+ if (value.length === 0 || value.length > 2048 || /[\u0000-\u0020\u007f]/.test(value)) return false;
2750
+ const parts = value.split(":");
2751
+ if (parts.length < 3 || parts[0] !== "did" || !/^[a-z0-9]+$/.test(parts[1] ?? "")) return false;
2752
+ const identifier = parts.slice(2);
2753
+ if (identifier.some((part) => part.length === 0)) return false;
2754
+ if (parts[1] === "web") {
2755
+ const host = identifier[0] ?? "";
2756
+ if (host.length > 253 || host.split(".").some((label) => !label || label.length > 63 || !/^[A-Za-z0-9-]+$/.test(label) || label.startsWith("-") || label.endsWith("-"))) return false;
2757
+ return identifier.slice(1).every((part) => /^[A-Za-z0-9._%-]+$/.test(part));
2758
+ }
2759
+ if (parts[1] === "pkh") return identifier.length >= 3 && identifier.every((part) => /^[A-Za-z0-9._%-]+$/.test(part));
2760
+ if (parts[1] === "key") {
2761
+ try {
2762
+ const bytes2 = base58btc.decode(identifier.join(":"));
2763
+ return bytes2.length === 34 && bytes2[0] === 237 && bytes2[1] === 1;
2764
+ } catch {
2765
+ return false;
2766
+ }
2767
+ }
2768
+ return false;
2769
+ }
2744
2770
  function normalizeShareRecipientTarget(recipient) {
2745
2771
  const normalized = normalizeRecipient(recipient);
2746
2772
  if (normalized === void 0) throw new ShareEnvelopeError("invalid-envelope", "recipient matcher is required");
@@ -2827,9 +2853,9 @@ function verifyShareEnvelope(envelope, options = {}) {
2827
2853
  const recipient = normalizeRecipient(envelope.recipient);
2828
2854
  if (recipient !== void 0 && JSON.stringify(recipient) !== JSON.stringify(envelope.recipient)) throw new ShareEnvelopeError("invalid-envelope", "recipient is not canonical");
2829
2855
  if (recipient?.kind === "exactEmail" || recipient?.kind === "emailDomain") throw new ShareEnvelopeError("unsafe-plaintext", "recipient matchers are not public envelope fields");
2830
- if (envelope.recipientKind !== void 0 && !["exactEmail", "emailDomain", "bearer"].includes(envelope.recipientKind)) throw new ShareEnvelopeError("invalid-envelope", "recipient mode is invalid");
2856
+ if (envelope.recipientKind !== void 0 && !["exactEmail", "emailDomain", "recipientDid", "bearer"].includes(envelope.recipientKind)) throw new ShareEnvelopeError("invalid-envelope", "recipient mode is invalid");
2831
2857
  if (envelope.recipientKind === "bearer" && recipient?.kind !== void 0 && recipient.kind !== "bearer") throw new ShareEnvelopeError("invalid-envelope", "recipient mode does not match recipient");
2832
- if ((envelope.recipientKind === "exactEmail" || envelope.recipientKind === "emailDomain") && !envelope.encrypted) throw new ShareEnvelopeError("unsafe-plaintext", "policy shares require encryption");
2858
+ if ((envelope.recipientKind === "exactEmail" || envelope.recipientKind === "emailDomain" || envelope.recipientKind === "recipientDid") && !envelope.encrypted) throw new ShareEnvelopeError("unsafe-plaintext", "addressed shares require encryption");
2833
2859
  if (typeof envelope.spaceId !== "string" || envelope.spaceId.length === 0 || typeof envelope.content.mimeType !== "string" || envelope.content.mimeType.length === 0 || typeof envelope.content.digest !== "string" || !/^[A-Za-z0-9_-]+$/.test(envelope.content.digest)) throw new ShareEnvelopeError("invalid-envelope", "content metadata is invalid");
2834
2860
  const maxContentBytes = envelope.encrypted ? options.maxSealedContentBytes ?? MAX_SEALED_SHARE_CONTENT_BYTES : options.maxContentBytes ?? MAX_SHARE_CONTENT_BYTES;
2835
2861
  if (!Number.isInteger(envelope.content.size) || envelope.content.size < 0 || envelope.content.size > maxContentBytes) throw new ShareEnvelopeError("content-too-large", "share content exceeds the configured limit");
@@ -2968,7 +2994,7 @@ function parsePolicyMetadata(policyBytes, target, expectedExpiry) {
2968
2994
  assertKeys(policy, ["type", "version", "issuerDid", "recipientMatcher", "target", "delegation", "authority", "actions", "resource", "content-source", "expiresAt"], "published canonical policy material");
2969
2995
  if (typeof policy.issuerDid !== "string" || typeof policy.expiresAt !== "string" || policy.expiresAt !== expectedExpiry) throw new ShareEnvelopeError("invalid-envelope", "policy expiry is not bound to the envelope");
2970
2996
  const matcherValue = policy.recipientMatcher;
2971
- if (!isPlainObject(matcherValue) || matcherValue.kind !== "exactEmail" && matcherValue.kind !== "emailDomain" || typeof matcherValue.value !== "string") throw new ShareEnvelopeError("invalid-envelope", "policy matcher is invalid");
2997
+ if (!isPlainObject(matcherValue) || matcherValue.kind !== "exactEmail" && matcherValue.kind !== "emailDomain" && matcherValue.kind !== "recipientDid" || typeof matcherValue.value !== "string") throw new ShareEnvelopeError("invalid-envelope", "policy matcher is invalid");
2972
2998
  const matcher2 = normalizeRecipient(matcherValue);
2973
2999
  if (matcher2 === void 0 || matcher2.kind === "bearer") throw new ShareEnvelopeError("invalid-envelope", "policy matcher is invalid");
2974
3000
  if (!isPlainObject(policy.target)) throw new ShareEnvelopeError("invalid-envelope", "policy target is invalid");
@@ -3055,7 +3081,7 @@ function parseCanonicalPublishedV2(value, options) {
3055
3081
  if (!Number.isFinite(expiry) || expiry <= (options.now ?? /* @__PURE__ */ new Date()).getTime() || new Date(expiry).toISOString() !== value.expiry) throw new ShareEnvelopeError("expired", "published share envelope has expired");
3056
3082
  if (typeof delegation.cid !== "string" || typeof delegation.issuerDid !== "string" || typeof delegation.audience !== "string" || typeof delegation.expiresAt !== "string" || Date.parse(delegation.expiresAt) > expiry) throw new ShareEnvelopeError("invalid-envelope", "published v2 delegation is invalid");
3057
3083
  const matcher = value.recipientMatcher;
3058
- if (!isPlainObject(matcher) || matcher.kind !== "exactEmail" && matcher.kind !== "emailDomain" || typeof matcher.value !== "string") throw new ShareEnvelopeError("invalid-envelope", "published v2 recipient matcher is invalid");
3084
+ if (!isPlainObject(matcher) || matcher.kind !== "exactEmail" && matcher.kind !== "emailDomain" && matcher.kind !== "recipientDid" || typeof matcher.value !== "string") throw new ShareEnvelopeError("invalid-envelope", "published v2 recipient matcher is invalid");
3059
3085
  const normalizedMatcher = normalizeRecipient(matcher);
3060
3086
  if (normalizedMatcher === void 0 || normalizedMatcher.kind === "bearer") throw new ShareEnvelopeError("invalid-envelope", "published v2 recipient matcher is invalid");
3061
3087
  if (!Array.isArray(value.actions)) throw new ShareEnvelopeError("invalid-envelope", "published v2 actions are invalid");
@@ -3496,10 +3522,11 @@ var ShareConflict = class extends Error {
3496
3522
  }
3497
3523
  };
3498
3524
  var ShareAccessError = class extends Error {
3499
- constructor(code3, message) {
3525
+ constructor(code3, message, details) {
3500
3526
  super(message ?? "shared access could not be completed");
3501
3527
  this.name = "ShareAccessError";
3502
3528
  this.code = code3;
3529
+ this.details = details;
3503
3530
  }
3504
3531
  };
3505
3532
 
@@ -3508,6 +3535,7 @@ import { z as z3 } from "zod";
3508
3535
  var ShareRecipientTargetSchema = z3.discriminatedUnion("kind", [
3509
3536
  z3.object({ kind: z3.literal("exactEmail"), value: z3.string().min(1) }).strict(),
3510
3537
  z3.object({ kind: z3.literal("emailDomain"), value: z3.string().min(1) }).strict(),
3538
+ z3.object({ kind: z3.literal("recipientDid"), value: z3.string().regex(/^did:[a-z0-9]+:.+$/) }).strict(),
3511
3539
  z3.object({ kind: z3.literal("bearer") }).strict()
3512
3540
  ]);
3513
3541
  var ShareResourceSchema = z3.discriminatedUnion("kind", [
@@ -3551,7 +3579,8 @@ var ShareContentSourceSchema = z3.discriminatedUnion("kind", [
3551
3579
  ]);
3552
3580
  var ShareAddressedRecipientSchema = z3.discriminatedUnion("kind", [
3553
3581
  z3.object({ kind: z3.literal("exactEmail"), value: z3.string().min(1) }).strict(),
3554
- z3.object({ kind: z3.literal("emailDomain"), value: z3.string().min(1) }).strict()
3582
+ z3.object({ kind: z3.literal("emailDomain"), value: z3.string().min(1) }).strict(),
3583
+ z3.object({ kind: z3.literal("recipientDid"), value: z3.string().regex(/^did:[a-z0-9]+:.+$/) }).strict()
3555
3584
  ]);
3556
3585
  var ShareAddressedDelegationRequestV2Schema = z3.object({
3557
3586
  version: z3.literal(2),
@@ -3806,12 +3835,21 @@ var ShareRecipientClient = class {
3806
3835
  const { envelope } = resolved.artifact;
3807
3836
  const { location } = resolved;
3808
3837
  const bearer = isBearerEnvelope(envelope);
3809
- const policy = envelope.recipientKind === "exactEmail" || envelope.recipientKind === "emailDomain";
3838
+ const policy = envelope.recipientKind === "exactEmail" || envelope.recipientKind === "emailDomain" || envelope.authorizationTargetKind === "recipientDid";
3810
3839
  const legacyBearer = !policy && envelope.recipientKind === void 0;
3811
- if (envelope.authorizationTargetKind === "recipientDid") throw new ShareAccessError("SHARE_RECIPIENT_DID_UNSUPPORTED");
3840
+ let recipientDidSession;
3841
+ if (envelope.authorizationTargetKind === "recipientDid") {
3842
+ if (this.options.establishRecipientDidSession === void 0) throw new ShareAccessError("SHARE_DEVICE_AUTH_REQUIRED", "an OpenKey device authorization is required");
3843
+ const authorization = await this.options.establishRecipientDidSession({ envelope, recipientDid: envelope.recipient?.kind === "recipientDid" ? envelope.recipient.value : "" });
3844
+ if ("state" in authorization) {
3845
+ if (authorization.state === "authorization-required") throw new ShareAccessError("SHARE_DEVICE_AUTH_REQUIRED", "an OpenKey device authorization is required", authorization);
3846
+ throw new ShareAccessError("SHARE_DENIED", "recipient DID authorization was denied", authorization);
3847
+ }
3848
+ recipientDidSession = authorization;
3849
+ }
3812
3850
  if (policy && this.options.bearerSession !== void 0) throw new ShareAccessError("SHARE_POLICY_BEARER_MISMATCH");
3813
3851
  if (bearer && this.options.presentation !== void 0) throw new ShareAccessError("SHARE_BEARER_PRESENTATION_MISMATCH");
3814
- const session = bearer || legacyBearer ? this.options.bearerSession : policy && this.options.establishPolicySession !== void 0 ? await this.options.establishPolicySession({ envelope, presentation: this.options.presentation }) : policy ? await this.establishPolicySession(envelope) : void 0;
3852
+ const session = bearer || legacyBearer ? this.options.bearerSession : recipientDidSession ? recipientDidSession : policy && this.options.establishPolicySession !== void 0 ? await this.options.establishPolicySession({ envelope, presentation: this.options.presentation }) : policy ? await this.establishPolicySession(envelope) : void 0;
3815
3853
  const kv = bearer || legacyBearer ? session === void 0 ? void 0 : this.createKV(envelope.origin, session) : void 0;
3816
3854
  const policySession = policy ? session : void 0;
3817
3855
  if (policySession !== void 0) this.assertProvidedPolicySession(policySession, envelope);
@@ -5710,15 +5748,11 @@ function verifySignedChild(result, expected, computeCid) {
5710
5748
 
5711
5749
  // src/delegations/owner-policy.ts
5712
5750
  import { ed25519 as ed255195 } from "@noble/curves/ed25519";
5713
- import { sha256 as sha2567 } from "@noble/hashes/sha256";
5751
+ import { sha256 as sha2566 } from "@noble/hashes/sha256";
5714
5752
 
5715
5753
  // src/policy/signed-object.ts
5716
5754
  import { ed25519 as ed255194 } from "@noble/curves/ed25519";
5717
- import { bytesToHex as bytesToHex2, sha256 as sha2566, verifyMessage } from "viem";
5718
-
5719
- // src/policy/capability.ts
5720
- import { CAPABILITY_REGISTRY } from "@tinycloud/bootstrap";
5721
- import { bytesToHex, sha256 as sha2565 } from "viem";
5755
+ import { bytesToHex, sha256 as sha2565, verifyMessage } from "viem";
5722
5756
 
5723
5757
  // src/policy/errors.ts
5724
5758
  var SignedObjectProfileError = class extends Error {
@@ -5916,33 +5950,11 @@ function assertUnicodeScalarString(value, path) {
5916
5950
  }
5917
5951
  }
5918
5952
 
5919
- // src/policy/capability.ts
5953
+ // src/policy/signed-object.ts
5920
5954
  var textEncoder2 = new TextEncoder();
5921
5955
  var objectHasOwn2 = Object.hasOwn ?? Object.prototype.hasOwnProperty.call.bind(
5922
5956
  Object.prototype.hasOwnProperty
5923
5957
  );
5924
- var CEILING_SERVICES = /* @__PURE__ */ new Set(["tinycloud.kv", "tinycloud.sql", "tinycloud.vfs"]);
5925
- var GRANTABLE_ACTIONS = /* @__PURE__ */ new Map();
5926
- for (const entry of CAPABILITY_REGISTRY) {
5927
- if (!CEILING_SERVICES.has(entry.service)) {
5928
- continue;
5929
- }
5930
- if (entry.aliasOf !== void 0 || entry.implies !== void 0 || entry.urn.endsWith("/*")) {
5931
- continue;
5932
- }
5933
- const existing = GRANTABLE_ACTIONS.get(entry.service);
5934
- if (existing === void 0) {
5935
- GRANTABLE_ACTIONS.set(entry.service, /* @__PURE__ */ new Set([entry.urn]));
5936
- continue;
5937
- }
5938
- existing.add(entry.urn);
5939
- }
5940
-
5941
- // src/policy/signed-object.ts
5942
- var textEncoder3 = new TextEncoder();
5943
- var objectHasOwn3 = Object.hasOwn ?? Object.prototype.hasOwnProperty.call.bind(
5944
- Object.prototype.hasOwnProperty
5945
- );
5946
5958
  function canonicalizeSignedObjectUnsigned(input) {
5947
5959
  return jcsCanonicalize(input);
5948
5960
  }
@@ -5974,10 +5986,10 @@ function fromB64(value) {
5974
5986
  throw new Error("base64url decoding is unavailable");
5975
5987
  }
5976
5988
  function cid(bytesValue) {
5977
- return CID.createV1(code, create(sha256.code, sha2567(bytesValue))).toString(base32.encoder);
5989
+ return CID.createV1(code, create(sha256.code, sha2566(bytesValue))).toString(base32.encoder);
5978
5990
  }
5979
5991
  function digest3(bytesValue) {
5980
- return b64(sha2567(bytesValue));
5992
+ return b64(sha2566(bytesValue));
5981
5993
  }
5982
5994
  function didKeyFromEd25519PublicKey(publicKey) {
5983
5995
  if (publicKey.length !== 32) throw new Error("share key public key must be 32 bytes");
@@ -6249,7 +6261,7 @@ function validateShareDeliveryAuthorizationBytes(bytesValue, expected) {
6249
6261
  const authorization = assertObject2(root.authorization, AUTHORIZATION_KEYS, "share delivery authorization");
6250
6262
  const proof = assertObject2(root.proof, ["alg", "kid", "signature"], "share delivery authorization proof");
6251
6263
  const request = expected.request;
6252
- if (authorization.type !== "TinyCloudShareDeliveryAuthorization" || authorization.version !== 2 || authorization.dataAuthority !== false || authorization.jti !== request.jti || authorization.shareCid !== request.shareCid || authorization.shareId !== request.shareId || authorization.registrationCid !== request.registrationCid || authorization.delegationCid !== request.delegationCid || authorization.enforcementDelegationCid !== request.enforcementDelegationCid || authorization.envelopeCid !== request.envelopeCid || authorization.policyCid !== request.policyCid || authorization.deliveryEmail !== request.recipientEmail || authorization.shareUrl !== request.shareUrl || authorization.documentName !== request.documentName || authorization.requestBodyDigest !== request.requestBodyDigest || authorization.expiresAt !== request.expiresAt || authorization.idempotencyKey !== request.jti || authorization.reportAbuseToken !== request.jti || authorization.authorityMaterialHandle !== request.registrationCid) {
6264
+ if (authorization.type !== "TinyCloudShareDeliveryAuthorization" || authorization.version !== 2 || authorization.dataAuthority !== false || authorization.jti !== request.jti || authorization.shareCid !== request.shareCid || authorization.shareId !== request.shareId || authorization.registrationCid !== request.registrationCid || authorization.delegationCid !== request.delegationCid || authorization.enforcementDelegationCid !== request.enforcementDelegationCid || authorization.envelopeCid !== request.envelopeCid || authorization.policyCid !== request.policyCid || authorization.deliveryEmail !== request.recipientEmail || authorization.shareUrl !== request.shareUrl || authorization.documentName !== request.documentName || authorization.requestBodyDigest !== request.requestBodyDigest || authorization.expiresAt !== request.expiresAt || authorization.idempotencyKey !== request.idempotencyKey || authorization.reportAbuseToken !== request.jti || authorization.authorityMaterialHandle !== request.registrationCid) {
6253
6265
  throw new Error("share delivery authorization is not bound to the submitted request");
6254
6266
  }
6255
6267
  if (typeof authorization.issuedAt !== "string" || Date.parse(authorization.issuedAt) > Date.now() + 6e4) throw new Error("share delivery authorization issuedAt is invalid");
@@ -6383,14 +6395,42 @@ var SenderShareStore = class {
6383
6395
  await this.keys.delete(shareId);
6384
6396
  }
6385
6397
  };
6398
+
6399
+ // src/delegations/index.ts
6400
+ import {
6401
+ authorizeShare,
6402
+ authorizationMethodForTarget,
6403
+ notifyShare,
6404
+ revokeShare,
6405
+ listShares,
6406
+ showShare,
6407
+ publishTargetShare,
6408
+ publishPolicyShare,
6409
+ claimShare,
6410
+ resumeShareAuthorization,
6411
+ isLegacyShareLink,
6412
+ receiveLegacyShare,
6413
+ migrateShare,
6414
+ MemoryEncryptedShareHistoryStorage,
6415
+ EncryptedSenderShareHistory
6416
+ } from "@tinycloud/share-sdk";
6417
+ import {
6418
+ inspectShare,
6419
+ receiveShare,
6420
+ ShareReceiveError,
6421
+ toShareErrorInfo,
6422
+ verifyBearerEnvelope
6423
+ } from "@tinycloud/share-sdk";
6386
6424
  export {
6387
6425
  DelegationErrorCodes,
6388
6426
  DelegationManager,
6389
6427
  EncodedShareDataSchema,
6428
+ EncryptedSenderShareHistory,
6390
6429
  MAX_CONTENT_BYTES,
6391
6430
  MAX_SEALED_SHARE_CONTENT_BYTES,
6392
6431
  MAX_SHARE_ARTIFACT_BYTES,
6393
6432
  MAX_SHARE_CONTENT_BYTES,
6433
+ MemoryEncryptedShareHistoryStorage,
6394
6434
  MemorySenderShareKeyStorage,
6395
6435
  MemorySenderShareRecordStorage,
6396
6436
  MemoryShareCache,
@@ -6405,6 +6445,7 @@ export {
6405
6445
  ShareConflict,
6406
6446
  ShareEnvelopeError,
6407
6447
  ShareNativeResponseSchema,
6448
+ ShareReceiveError,
6408
6449
  ShareRecipientClient,
6409
6450
  ShareRecipientClientOptionsSchema,
6410
6451
  ShareRecipientPolicySchema,
@@ -6412,7 +6453,10 @@ export {
6412
6453
  ShareResourceSchema,
6413
6454
  SharingService,
6414
6455
  SharingServiceConfigSchema,
6456
+ authorizationMethodForTarget,
6457
+ authorizeShare,
6415
6458
  canonicalOwnerSharePolicy,
6459
+ claimShare,
6416
6460
  computeOwnerShareRegistrationCid,
6417
6461
  computeShareCid,
6418
6462
  createDelegatedShareKey,
@@ -6427,23 +6471,37 @@ export {
6427
6471
  encodeShareUrl,
6428
6472
  encryptShareBytes,
6429
6473
  encryptShareBytesAsync,
6474
+ inspectShare,
6430
6475
  intersectShareCapabilities,
6476
+ isLegacyShareLink,
6431
6477
  isV2ShareLink,
6478
+ listShares,
6479
+ migrateShare,
6432
6480
  normalizeShareActions,
6433
6481
  normalizeShareRecipientTarget,
6434
6482
  normalizeShareResource,
6483
+ notifyShare,
6435
6484
  parseShareArtifact,
6436
6485
  parseShareUrl,
6486
+ publishPolicyShare,
6487
+ publishTargetShare,
6488
+ receiveLegacyShare,
6489
+ receiveShare,
6437
6490
  restoreDelegatedShareKey,
6491
+ resumeShareAuthorization,
6492
+ revokeShare,
6438
6493
  shareCapabilityAllows,
6439
6494
  shareDeliveryTrustedKid,
6495
+ showShare,
6440
6496
  signShareEnvelope,
6497
+ toShareErrorInfo,
6441
6498
  validateEncodedShareData,
6442
6499
  validateOwnerSharePolicyRegistration,
6443
6500
  validateOwnerSharePolicyRegistrationBytes,
6444
6501
  validateReceiveOptions,
6445
6502
  validateShareDeliveryAuthorizationBytes,
6446
6503
  validateSharingServiceConfig,
6504
+ verifyBearerEnvelope,
6447
6505
  verifyShareCid,
6448
6506
  verifyShareEnvelope
6449
6507
  };