@aigne/afs-did-space 1.12.0-beta.5
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/LICENSE.md +26 -0
- package/README.md +129 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/afs-metadata-context.cjs +20 -0
- package/dist/afs-metadata-context.d.cts +21 -0
- package/dist/afs-metadata-context.d.cts.map +1 -0
- package/dist/afs-metadata-context.d.mts +21 -0
- package/dist/afs-metadata-context.d.mts.map +1 -0
- package/dist/afs-metadata-context.mjs +18 -0
- package/dist/afs-metadata-context.mjs.map +1 -0
- package/dist/blocklet-hook.cjs +180 -0
- package/dist/blocklet-hook.d.cts +29 -0
- package/dist/blocklet-hook.d.cts.map +1 -0
- package/dist/blocklet-hook.d.mts +29 -0
- package/dist/blocklet-hook.d.mts.map +1 -0
- package/dist/blocklet-hook.mjs +178 -0
- package/dist/blocklet-hook.mjs.map +1 -0
- package/dist/changelog-schema.cjs +603 -0
- package/dist/changelog-schema.d.cts +395 -0
- package/dist/changelog-schema.d.cts.map +1 -0
- package/dist/changelog-schema.d.mts +395 -0
- package/dist/changelog-schema.d.mts.map +1 -0
- package/dist/changelog-schema.mjs +570 -0
- package/dist/changelog-schema.mjs.map +1 -0
- package/dist/changelog-write.cjs +80 -0
- package/dist/changelog-write.d.cts +70 -0
- package/dist/changelog-write.d.cts.map +1 -0
- package/dist/changelog-write.d.mts +70 -0
- package/dist/changelog-write.d.mts.map +1 -0
- package/dist/changelog-write.mjs +77 -0
- package/dist/changelog-write.mjs.map +1 -0
- package/dist/cid-byte-cache.cjs +126 -0
- package/dist/cid-byte-cache.d.cts +46 -0
- package/dist/cid-byte-cache.d.cts.map +1 -0
- package/dist/cid-byte-cache.d.mts +47 -0
- package/dist/cid-byte-cache.d.mts.map +1 -0
- package/dist/cid-byte-cache.mjs +125 -0
- package/dist/cid-byte-cache.mjs.map +1 -0
- package/dist/cid.cjs +68 -0
- package/dist/cid.d.cts +22 -0
- package/dist/cid.d.cts.map +1 -0
- package/dist/cid.d.mts +22 -0
- package/dist/cid.d.mts.map +1 -0
- package/dist/cid.mjs +65 -0
- package/dist/cid.mjs.map +1 -0
- package/dist/client.cjs +221 -0
- package/dist/client.d.cts +72 -0
- package/dist/client.d.cts.map +1 -0
- package/dist/client.d.mts +72 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +220 -0
- package/dist/client.mjs.map +1 -0
- package/dist/cloudflare.cjs +510 -0
- package/dist/cloudflare.d.cts +307 -0
- package/dist/cloudflare.d.cts.map +1 -0
- package/dist/cloudflare.d.mts +308 -0
- package/dist/cloudflare.d.mts.map +1 -0
- package/dist/cloudflare.mjs +507 -0
- package/dist/cloudflare.mjs.map +1 -0
- package/dist/ctime-backfill.cjs +272 -0
- package/dist/ctime-backfill.d.cts +169 -0
- package/dist/ctime-backfill.d.cts.map +1 -0
- package/dist/ctime-backfill.d.mts +169 -0
- package/dist/ctime-backfill.d.mts.map +1 -0
- package/dist/ctime-backfill.mjs +267 -0
- package/dist/ctime-backfill.mjs.map +1 -0
- package/dist/d1-gc-queue.cjs +80 -0
- package/dist/d1-gc-queue.d.cts +59 -0
- package/dist/d1-gc-queue.d.cts.map +1 -0
- package/dist/d1-gc-queue.d.mts +59 -0
- package/dist/d1-gc-queue.d.mts.map +1 -0
- package/dist/d1-gc-queue.mjs +81 -0
- package/dist/d1-gc-queue.mjs.map +1 -0
- package/dist/d1-resolve-store.cjs +189 -0
- package/dist/d1-resolve-store.d.cts +93 -0
- package/dist/d1-resolve-store.d.cts.map +1 -0
- package/dist/d1-resolve-store.d.mts +93 -0
- package/dist/d1-resolve-store.d.mts.map +1 -0
- package/dist/d1-resolve-store.mjs +190 -0
- package/dist/d1-resolve-store.mjs.map +1 -0
- package/dist/d1-schema.cjs +361 -0
- package/dist/d1-schema.d.cts +237 -0
- package/dist/d1-schema.d.cts.map +1 -0
- package/dist/d1-schema.d.mts +237 -0
- package/dist/d1-schema.d.mts.map +1 -0
- package/dist/d1-schema.mjs +341 -0
- package/dist/d1-schema.mjs.map +1 -0
- package/dist/d1-share-store.cjs +0 -0
- package/dist/d1-share-store.d.cts +53 -0
- package/dist/d1-share-store.d.cts.map +1 -0
- package/dist/d1-share-store.d.mts +53 -0
- package/dist/d1-share-store.d.mts.map +1 -0
- package/dist/d1-share-store.mjs +0 -0
- package/dist/d1-share-store.mjs.map +1 -0
- package/dist/d1-tree-index.cjs +1098 -0
- package/dist/d1-tree-index.d.cts +203 -0
- package/dist/d1-tree-index.d.cts.map +1 -0
- package/dist/d1-tree-index.d.mts +203 -0
- package/dist/d1-tree-index.d.mts.map +1 -0
- package/dist/d1-tree-index.mjs +1094 -0
- package/dist/d1-tree-index.mjs.map +1 -0
- package/dist/data-backend.cjs +147 -0
- package/dist/data-backend.d.cts +30 -0
- package/dist/data-backend.d.cts.map +1 -0
- package/dist/data-backend.d.mts +30 -0
- package/dist/data-backend.d.mts.map +1 -0
- package/dist/data-backend.mjs +148 -0
- package/dist/data-backend.mjs.map +1 -0
- package/dist/dedup-backfill.cjs +278 -0
- package/dist/dedup-backfill.d.cts +165 -0
- package/dist/dedup-backfill.d.cts.map +1 -0
- package/dist/dedup-backfill.d.mts +165 -0
- package/dist/dedup-backfill.d.mts.map +1 -0
- package/dist/dedup-backfill.mjs +273 -0
- package/dist/dedup-backfill.mjs.map +1 -0
- package/dist/did-space-like.d.cts +2 -0
- package/dist/did-space-like.d.mts +2 -0
- package/dist/did-utils.cjs +44 -0
- package/dist/did-utils.d.cts +25 -0
- package/dist/did-utils.d.cts.map +1 -0
- package/dist/did-utils.d.mts +25 -0
- package/dist/did-utils.d.mts.map +1 -0
- package/dist/did-utils.mjs +43 -0
- package/dist/did-utils.mjs.map +1 -0
- package/dist/dirty-path-queue.cjs +31 -0
- package/dist/dirty-path-queue.d.cts +104 -0
- package/dist/dirty-path-queue.d.cts.map +1 -0
- package/dist/dirty-path-queue.d.mts +104 -0
- package/dist/dirty-path-queue.d.mts.map +1 -0
- package/dist/dirty-path-queue.mjs +31 -0
- package/dist/dirty-path-queue.mjs.map +1 -0
- package/dist/dirty-path-schema.cjs +142 -0
- package/dist/dirty-path-schema.d.cts +90 -0
- package/dist/dirty-path-schema.d.cts.map +1 -0
- package/dist/dirty-path-schema.d.mts +90 -0
- package/dist/dirty-path-schema.d.mts.map +1 -0
- package/dist/dirty-path-schema.mjs +136 -0
- package/dist/dirty-path-schema.mjs.map +1 -0
- package/dist/download-actions.cjs +43 -0
- package/dist/download-actions.mjs +40 -0
- package/dist/download-actions.mjs.map +1 -0
- package/dist/fs-object-store.cjs +153 -0
- package/dist/fs-object-store.d.cts +21 -0
- package/dist/fs-object-store.d.cts.map +1 -0
- package/dist/fs-object-store.d.mts +22 -0
- package/dist/fs-object-store.d.mts.map +1 -0
- package/dist/fs-object-store.mjs +153 -0
- package/dist/fs-object-store.mjs.map +1 -0
- package/dist/gc-queue.d.cts +43 -0
- package/dist/gc-queue.d.cts.map +1 -0
- package/dist/gc-queue.d.mts +43 -0
- package/dist/gc-queue.d.mts.map +1 -0
- package/dist/index.cjs +2712 -0
- package/dist/index.d.cts +504 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +505 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2537 -0
- package/dist/index.mjs.map +1 -0
- package/dist/inline-content-migration.cjs +212 -0
- package/dist/inline-content-migration.d.cts +110 -0
- package/dist/inline-content-migration.d.cts.map +1 -0
- package/dist/inline-content-migration.d.mts +111 -0
- package/dist/inline-content-migration.d.mts.map +1 -0
- package/dist/inline-content-migration.mjs +207 -0
- package/dist/inline-content-migration.mjs.map +1 -0
- package/dist/inline-content.cjs +145 -0
- package/dist/inline-content.d.cts +98 -0
- package/dist/inline-content.d.cts.map +1 -0
- package/dist/inline-content.d.mts +98 -0
- package/dist/inline-content.d.mts.map +1 -0
- package/dist/inline-content.mjs +137 -0
- package/dist/inline-content.mjs.map +1 -0
- package/dist/local-changelog.cjs +241 -0
- package/dist/local-changelog.d.cts +119 -0
- package/dist/local-changelog.d.cts.map +1 -0
- package/dist/local-changelog.d.mts +119 -0
- package/dist/local-changelog.d.mts.map +1 -0
- package/dist/local-changelog.mjs +240 -0
- package/dist/local-changelog.mjs.map +1 -0
- package/dist/local.cjs +435 -0
- package/dist/local.d.cts +254 -0
- package/dist/local.d.cts.map +1 -0
- package/dist/local.d.mts +254 -0
- package/dist/local.d.mts.map +1 -0
- package/dist/local.mjs +427 -0
- package/dist/local.mjs.map +1 -0
- package/dist/memory-gc-queue.cjs +36 -0
- package/dist/memory-gc-queue.d.cts +22 -0
- package/dist/memory-gc-queue.d.cts.map +1 -0
- package/dist/memory-gc-queue.d.mts +22 -0
- package/dist/memory-gc-queue.d.mts.map +1 -0
- package/dist/memory-gc-queue.mjs +36 -0
- package/dist/memory-gc-queue.mjs.map +1 -0
- package/dist/memory-tree-index.cjs +734 -0
- package/dist/memory-tree-index.d.cts +159 -0
- package/dist/memory-tree-index.d.cts.map +1 -0
- package/dist/memory-tree-index.d.mts +159 -0
- package/dist/memory-tree-index.d.mts.map +1 -0
- package/dist/memory-tree-index.mjs +735 -0
- package/dist/memory-tree-index.mjs.map +1 -0
- package/dist/metadata-db.cjs +562 -0
- package/dist/metadata-db.d.cts +102 -0
- package/dist/metadata-db.d.cts.map +1 -0
- package/dist/metadata-db.d.mts +102 -0
- package/dist/metadata-db.d.mts.map +1 -0
- package/dist/metadata-db.mjs +562 -0
- package/dist/metadata-db.mjs.map +1 -0
- package/dist/mime-utils.cjs +2 -0
- package/dist/mime-utils.d.cts +2 -0
- package/dist/mime-utils.d.mts +2 -0
- package/dist/mime-utils.mjs +3 -0
- package/dist/object-key.cjs +41 -0
- package/dist/object-key.d.cts +25 -0
- package/dist/object-key.d.cts.map +1 -0
- package/dist/object-key.d.mts +25 -0
- package/dist/object-key.d.mts.map +1 -0
- package/dist/object-key.mjs +40 -0
- package/dist/object-key.mjs.map +1 -0
- package/dist/packages/session/dist/index.cjs +788 -0
- package/dist/packages/session/dist/index.mjs +782 -0
- package/dist/packages/session/dist/index.mjs.map +1 -0
- package/dist/platform/r2/dist/types.d.cts +49 -0
- package/dist/platform/r2/dist/types.d.cts.map +1 -0
- package/dist/prefix-range.cjs +33 -0
- package/dist/prefix-range.d.cts +29 -0
- package/dist/prefix-range.d.cts.map +1 -0
- package/dist/prefix-range.d.mts +29 -0
- package/dist/prefix-range.d.mts.map +1 -0
- package/dist/prefix-range.mjs +33 -0
- package/dist/prefix-range.mjs.map +1 -0
- package/dist/prefixed-tree-index.cjs +238 -0
- package/dist/prefixed-tree-index.d.cts +85 -0
- package/dist/prefixed-tree-index.d.cts.map +1 -0
- package/dist/prefixed-tree-index.d.mts +85 -0
- package/dist/prefixed-tree-index.d.mts.map +1 -0
- package/dist/prefixed-tree-index.mjs +239 -0
- package/dist/prefixed-tree-index.mjs.map +1 -0
- package/dist/presign-signer.cjs +7 -0
- package/dist/presign-signer.d.cts +99 -0
- package/dist/presign-signer.d.cts.map +1 -0
- package/dist/presign-signer.d.mts +99 -0
- package/dist/presign-signer.d.mts.map +1 -0
- package/dist/presign-signer.mjs +7 -0
- package/dist/presign-signer.mjs.map +1 -0
- package/dist/providers/platform/r2/dist/index.d.mts +3 -0
- package/dist/providers/platform/r2/dist/types.d.mts +49 -0
- package/dist/providers/platform/r2/dist/types.d.mts.map +1 -0
- package/dist/reconcile.cjs +184 -0
- package/dist/reconcile.d.cts +26 -0
- package/dist/reconcile.d.cts.map +1 -0
- package/dist/reconcile.d.mts +26 -0
- package/dist/reconcile.d.mts.map +1 -0
- package/dist/reconcile.mjs +184 -0
- package/dist/reconcile.mjs.map +1 -0
- package/dist/reference-check.cjs +49 -0
- package/dist/reference-check.d.cts +10 -0
- package/dist/reference-check.d.cts.map +1 -0
- package/dist/reference-check.d.mts +10 -0
- package/dist/reference-check.d.mts.map +1 -0
- package/dist/reference-check.mjs +48 -0
- package/dist/reference-check.mjs.map +1 -0
- package/dist/remote-afs.cjs +681 -0
- package/dist/remote-afs.d.cts +236 -0
- package/dist/remote-afs.d.cts.map +1 -0
- package/dist/remote-afs.d.mts +236 -0
- package/dist/remote-afs.d.mts.map +1 -0
- package/dist/remote-afs.mjs +676 -0
- package/dist/remote-afs.mjs.map +1 -0
- package/dist/rename-guard.cjs +18 -0
- package/dist/rename-guard.mjs +18 -0
- package/dist/rename-guard.mjs.map +1 -0
- package/dist/resolve.cjs +260 -0
- package/dist/resolve.d.cts +113 -0
- package/dist/resolve.d.cts.map +1 -0
- package/dist/resolve.d.mts +113 -0
- package/dist/resolve.d.mts.map +1 -0
- package/dist/resolve.mjs +260 -0
- package/dist/resolve.mjs.map +1 -0
- package/dist/rsync-content.cjs +33 -0
- package/dist/rsync-content.mjs +33 -0
- package/dist/rsync-content.mjs.map +1 -0
- package/dist/rsync.cjs +400 -0
- package/dist/rsync.d.cts +157 -0
- package/dist/rsync.d.cts.map +1 -0
- package/dist/rsync.d.mts +157 -0
- package/dist/rsync.d.mts.map +1 -0
- package/dist/rsync.mjs +397 -0
- package/dist/rsync.mjs.map +1 -0
- package/dist/run-gc.cjs +57 -0
- package/dist/run-gc.d.cts +40 -0
- package/dist/run-gc.d.cts.map +1 -0
- package/dist/run-gc.d.mts +41 -0
- package/dist/run-gc.d.mts.map +1 -0
- package/dist/run-gc.mjs +57 -0
- package/dist/run-gc.mjs.map +1 -0
- package/dist/scope-id.cjs +70 -0
- package/dist/scope-id.d.cts +35 -0
- package/dist/scope-id.d.cts.map +1 -0
- package/dist/scope-id.d.mts +35 -0
- package/dist/scope-id.d.mts.map +1 -0
- package/dist/scope-id.mjs +68 -0
- package/dist/scope-id.mjs.map +1 -0
- package/dist/scope-migration-node.cjs +172 -0
- package/dist/scope-migration-node.d.cts +44 -0
- package/dist/scope-migration-node.d.cts.map +1 -0
- package/dist/scope-migration-node.d.mts +44 -0
- package/dist/scope-migration-node.d.mts.map +1 -0
- package/dist/scope-migration-node.mjs +171 -0
- package/dist/scope-migration-node.mjs.map +1 -0
- package/dist/scope-migration.cjs +155 -0
- package/dist/scope-migration.d.cts +65 -0
- package/dist/scope-migration.d.cts.map +1 -0
- package/dist/scope-migration.d.mts +65 -0
- package/dist/scope-migration.d.mts.map +1 -0
- package/dist/scope-migration.mjs +154 -0
- package/dist/scope-migration.mjs.map +1 -0
- package/dist/share-declaration.cjs +225 -0
- package/dist/share-declaration.d.cts +30 -0
- package/dist/share-declaration.d.cts.map +1 -0
- package/dist/share-declaration.d.mts +32 -0
- package/dist/share-declaration.d.mts.map +1 -0
- package/dist/share-declaration.mjs +221 -0
- package/dist/share-declaration.mjs.map +1 -0
- package/dist/share-hook.cjs +63 -0
- package/dist/share-hook.mjs +62 -0
- package/dist/share-hook.mjs.map +1 -0
- package/dist/share-resolve.cjs +176 -0
- package/dist/share-resolve.d.cts +36 -0
- package/dist/share-resolve.d.cts.map +1 -0
- package/dist/share-resolve.d.mts +36 -0
- package/dist/share-resolve.d.mts.map +1 -0
- package/dist/share-resolve.mjs +177 -0
- package/dist/share-resolve.mjs.map +1 -0
- package/dist/share-serve.cjs +145 -0
- package/dist/share-serve.d.cts +30 -0
- package/dist/share-serve.d.cts.map +1 -0
- package/dist/share-serve.d.mts +30 -0
- package/dist/share-serve.d.mts.map +1 -0
- package/dist/share-serve.mjs +144 -0
- package/dist/share-serve.mjs.map +1 -0
- package/dist/share-store.cjs +25 -0
- package/dist/share-store.d.cts +65 -0
- package/dist/share-store.d.cts.map +1 -0
- package/dist/share-store.d.mts +65 -0
- package/dist/share-store.d.mts.map +1 -0
- package/dist/share-store.mjs +25 -0
- package/dist/share-store.mjs.map +1 -0
- package/dist/share-virtual-path.cjs +102 -0
- package/dist/share-virtual-path.mjs +101 -0
- package/dist/share-virtual-path.mjs.map +1 -0
- package/dist/space-resolver.cjs +54 -0
- package/dist/space-resolver.d.cts +34 -0
- package/dist/space-resolver.d.cts.map +1 -0
- package/dist/space-resolver.d.mts +34 -0
- package/dist/space-resolver.d.mts.map +1 -0
- package/dist/space-resolver.mjs +55 -0
- package/dist/space-resolver.mjs.map +1 -0
- package/dist/sqlite-gc-queue.cjs +51 -0
- package/dist/sqlite-gc-queue.d.cts +22 -0
- package/dist/sqlite-gc-queue.d.cts.map +1 -0
- package/dist/sqlite-gc-queue.d.mts +22 -0
- package/dist/sqlite-gc-queue.d.mts.map +1 -0
- package/dist/sqlite-gc-queue.mjs +52 -0
- package/dist/sqlite-gc-queue.mjs.map +1 -0
- package/dist/sqlite-resolve-store.cjs +163 -0
- package/dist/sqlite-resolve-store.d.cts +50 -0
- package/dist/sqlite-resolve-store.d.cts.map +1 -0
- package/dist/sqlite-resolve-store.d.mts +50 -0
- package/dist/sqlite-resolve-store.d.mts.map +1 -0
- package/dist/sqlite-resolve-store.mjs +164 -0
- package/dist/sqlite-resolve-store.mjs.map +1 -0
- package/dist/sqlite-share-store.cjs +157 -0
- package/dist/sqlite-share-store.d.cts +31 -0
- package/dist/sqlite-share-store.d.cts.map +1 -0
- package/dist/sqlite-share-store.d.mts +31 -0
- package/dist/sqlite-share-store.d.mts.map +1 -0
- package/dist/sqlite-share-store.mjs +157 -0
- package/dist/sqlite-share-store.mjs.map +1 -0
- package/dist/sqlite-tree-index.cjs +901 -0
- package/dist/sqlite-tree-index.d.cts +107 -0
- package/dist/sqlite-tree-index.d.cts.map +1 -0
- package/dist/sqlite-tree-index.d.mts +107 -0
- package/dist/sqlite-tree-index.d.mts.map +1 -0
- package/dist/sqlite-tree-index.mjs +902 -0
- package/dist/sqlite-tree-index.mjs.map +1 -0
- package/dist/sync-engine.cjs +1324 -0
- package/dist/sync-engine.d.cts +473 -0
- package/dist/sync-engine.d.cts.map +1 -0
- package/dist/sync-engine.d.mts +473 -0
- package/dist/sync-engine.d.mts.map +1 -0
- package/dist/sync-engine.mjs +1315 -0
- package/dist/sync-engine.mjs.map +1 -0
- package/dist/sync-state.cjs +303 -0
- package/dist/sync-state.d.cts +224 -0
- package/dist/sync-state.d.cts.map +1 -0
- package/dist/sync-state.d.mts +224 -0
- package/dist/sync-state.d.mts.map +1 -0
- package/dist/sync-state.mjs +297 -0
- package/dist/sync-state.mjs.map +1 -0
- package/dist/timestamp.cjs +92 -0
- package/dist/timestamp.mjs +91 -0
- package/dist/timestamp.mjs.map +1 -0
- package/dist/transports/http.cjs +54 -0
- package/dist/transports/http.d.cts +26 -0
- package/dist/transports/http.d.cts.map +1 -0
- package/dist/transports/http.d.mts +26 -0
- package/dist/transports/http.d.mts.map +1 -0
- package/dist/transports/http.mjs +54 -0
- package/dist/transports/http.mjs.map +1 -0
- package/dist/transports/static.cjs +55 -0
- package/dist/transports/static.d.cts +28 -0
- package/dist/transports/static.d.cts.map +1 -0
- package/dist/transports/static.d.mts +28 -0
- package/dist/transports/static.d.mts.map +1 -0
- package/dist/transports/static.mjs +55 -0
- package/dist/transports/static.mjs.map +1 -0
- package/dist/transports/types.cjs +13 -0
- package/dist/transports/types.d.cts +72 -0
- package/dist/transports/types.d.cts.map +1 -0
- package/dist/transports/types.d.mts +72 -0
- package/dist/transports/types.d.mts.map +1 -0
- package/dist/transports/types.mjs +13 -0
- package/dist/transports/types.mjs.map +1 -0
- package/dist/transports/ws.cjs +207 -0
- package/dist/transports/ws.d.cts +47 -0
- package/dist/transports/ws.d.cts.map +1 -0
- package/dist/transports/ws.d.mts +47 -0
- package/dist/transports/ws.d.mts.map +1 -0
- package/dist/transports/ws.mjs +206 -0
- package/dist/transports/ws.mjs.map +1 -0
- package/dist/tree-index.cjs +333 -0
- package/dist/tree-index.d.cts +524 -0
- package/dist/tree-index.d.cts.map +1 -0
- package/dist/tree-index.d.mts +524 -0
- package/dist/tree-index.d.mts.map +1 -0
- package/dist/tree-index.mjs +322 -0
- package/dist/tree-index.mjs.map +1 -0
- package/dist/tree-query.cjs +655 -0
- package/dist/tree-query.d.cts +70 -0
- package/dist/tree-query.d.cts.map +1 -0
- package/dist/tree-query.d.mts +70 -0
- package/dist/tree-query.d.mts.map +1 -0
- package/dist/tree-query.mjs +648 -0
- package/dist/tree-query.mjs.map +1 -0
- package/dist/upload-actions.cjs +97 -0
- package/dist/upload-actions.d.cts +19 -0
- package/dist/upload-actions.d.cts.map +1 -0
- package/dist/upload-actions.d.mts +21 -0
- package/dist/upload-actions.d.mts.map +1 -0
- package/dist/upload-actions.mjs +90 -0
- package/dist/upload-actions.mjs.map +1 -0
- package/dist/upload-session-store.cjs +185 -0
- package/dist/upload-session-store.d.cts +99 -0
- package/dist/upload-session-store.d.cts.map +1 -0
- package/dist/upload-session-store.d.mts +99 -0
- package/dist/upload-session-store.d.mts.map +1 -0
- package/dist/upload-session-store.mjs +184 -0
- package/dist/upload-session-store.mjs.map +1 -0
- package/dist/url-normalize.cjs +61 -0
- package/dist/url-normalize.d.cts +33 -0
- package/dist/url-normalize.d.cts.map +1 -0
- package/dist/url-normalize.d.mts +33 -0
- package/dist/url-normalize.d.mts.map +1 -0
- package/dist/url-normalize.mjs +61 -0
- package/dist/url-normalize.mjs.map +1 -0
- package/dist/versioned-content-backends.cjs +155 -0
- package/dist/versioned-content-backends.d.cts +49 -0
- package/dist/versioned-content-backends.d.cts.map +1 -0
- package/dist/versioned-content-backends.d.mts +49 -0
- package/dist/versioned-content-backends.d.mts.map +1 -0
- package/dist/versioned-content-backends.mjs +154 -0
- package/dist/versioned-content-backends.mjs.map +1 -0
- package/dist/versioned-content-index.cjs +102 -0
- package/dist/versioned-content-index.d.cts +46 -0
- package/dist/versioned-content-index.d.cts.map +1 -0
- package/dist/versioned-content-index.d.mts +46 -0
- package/dist/versioned-content-index.d.mts.map +1 -0
- package/dist/versioned-content-index.mjs +103 -0
- package/dist/versioned-content-index.mjs.map +1 -0
- package/dist/versioned-content-store.cjs +121 -0
- package/dist/versioned-content-store.d.cts +90 -0
- package/dist/versioned-content-store.d.cts.map +1 -0
- package/dist/versioned-content-store.d.mts +90 -0
- package/dist/versioned-content-store.d.mts.map +1 -0
- package/dist/versioned-content-store.mjs +122 -0
- package/dist/versioned-content-store.mjs.map +1 -0
- package/dist/versioned-scope.cjs +39 -0
- package/dist/versioned-scope.d.cts +57 -0
- package/dist/versioned-scope.d.cts.map +1 -0
- package/dist/versioned-scope.d.mts +57 -0
- package/dist/versioned-scope.d.mts.map +1 -0
- package/dist/versioned-scope.mjs +37 -0
- package/dist/versioned-scope.mjs.map +1 -0
- package/migrations/0001_tree_entries.sql +17 -0
- package/migrations/0002_resolve_entries.sql +7 -0
- package/migrations/0003_entries_v2.sql +38 -0
- package/migrations/0004_gc_queue.sql +5 -0
- package/migrations/0006_resolve_enhance.sql +14 -0
- package/migrations/0007_resolve_created_at.sql +10 -0
- package/migrations/0008_changelog.sql +34 -0
- package/migrations/0009_device_sync_state.sql +29 -0
- package/migrations/0010_scope_meta.sql +33 -0
- package/migrations/0011_shares.sql +25 -0
- package/migrations/0012_scope_meta_file_count.sql +41 -0
- package/migrations/0013_scope_meta_total_bytes.sql +47 -0
- package/migrations/0014_rename_tables.sql +62 -0
- package/package.json +102 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_index = require('../packages/session/dist/index.cjs');
|
|
3
|
+
let _aigne_afs = require("@aigne/afs");
|
|
4
|
+
|
|
5
|
+
//#region src/transports/ws.ts
|
|
6
|
+
const DEFAULT_NAMESPACE = "did-space-client";
|
|
7
|
+
const DEFAULT_REQUEST_TIMEOUT = 3e4;
|
|
8
|
+
const ALLOWED_WS_SCHEMES = new Set(["ws:", "wss:"]);
|
|
9
|
+
function parseWsUrl(rawUrl) {
|
|
10
|
+
let parsed;
|
|
11
|
+
try {
|
|
12
|
+
parsed = new URL(rawUrl);
|
|
13
|
+
} catch {
|
|
14
|
+
throw new Error(`WsTransport: invalid URL: ${rawUrl}`);
|
|
15
|
+
}
|
|
16
|
+
if (!ALLOWED_WS_SCHEMES.has(parsed.protocol)) throw new Error(`WsTransport: only ws(s) is supported, got ${parsed.protocol} (URL: ${rawUrl})`);
|
|
17
|
+
const port = parsed.port ? Number(parsed.port) : parsed.protocol === "wss:" ? 443 : 80;
|
|
18
|
+
return {
|
|
19
|
+
host: parsed.hostname,
|
|
20
|
+
port
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function mapWireError(code, message, path) {
|
|
24
|
+
switch (code) {
|
|
25
|
+
case "not_found": return new _aigne_afs.AFSNotFoundError(path, message);
|
|
26
|
+
case "conflict": return new _aigne_afs.AFSConflictError(path, {
|
|
27
|
+
cid: null,
|
|
28
|
+
mtime: null,
|
|
29
|
+
deviceId: null
|
|
30
|
+
});
|
|
31
|
+
case "compacted": return new _aigne_afs.AFSCompactedError(path, "0");
|
|
32
|
+
case "validation": return new _aigne_afs.AFSValidationError(message);
|
|
33
|
+
default: return /* @__PURE__ */ new Error(`WsTransport ${code}: ${message}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var WsTransport = class {
|
|
37
|
+
kind = "ws";
|
|
38
|
+
url;
|
|
39
|
+
token;
|
|
40
|
+
namespace;
|
|
41
|
+
requestTimeout;
|
|
42
|
+
ws = null;
|
|
43
|
+
rpc;
|
|
44
|
+
pendingBinary = new require_index.PendingBinaryBuffer();
|
|
45
|
+
subs = /* @__PURE__ */ new Map();
|
|
46
|
+
connected = false;
|
|
47
|
+
closed = false;
|
|
48
|
+
constructor(options) {
|
|
49
|
+
parseWsUrl(options.url);
|
|
50
|
+
this.url = options.url;
|
|
51
|
+
this.token = options.token;
|
|
52
|
+
this.namespace = options.namespace ?? DEFAULT_NAMESPACE;
|
|
53
|
+
this.requestTimeout = options.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT;
|
|
54
|
+
this.rpc = new require_index.RPCHandler({
|
|
55
|
+
startId: 1,
|
|
56
|
+
idIncrement: 2,
|
|
57
|
+
timeout: this.requestTimeout
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async connect() {
|
|
61
|
+
if (this.closed) throw new Error("WsTransport: already closed");
|
|
62
|
+
if (this.connected) return;
|
|
63
|
+
const { host, port } = parseWsUrl(this.url);
|
|
64
|
+
const ws = new require_index.WebSocketClient({
|
|
65
|
+
host,
|
|
66
|
+
port,
|
|
67
|
+
authToken: this.token
|
|
68
|
+
});
|
|
69
|
+
await ws.connect();
|
|
70
|
+
this.ws = ws;
|
|
71
|
+
this.connected = true;
|
|
72
|
+
ws.on("frame", (frame) => this.handleFrame(frame));
|
|
73
|
+
ws.on("close", () => {
|
|
74
|
+
this.connected = false;
|
|
75
|
+
this.rpc.rejectAll(/* @__PURE__ */ new Error("WsTransport: connection closed"));
|
|
76
|
+
this.pendingBinary.clear();
|
|
77
|
+
});
|
|
78
|
+
ws.on("error", (err) => {
|
|
79
|
+
this.rpc.rejectAll(err);
|
|
80
|
+
});
|
|
81
|
+
await this.rpc.sendRequest(ws, "session.attach", {
|
|
82
|
+
version: require_index.PROTOCOL_VERSION,
|
|
83
|
+
namespace: this.namespace
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async close() {
|
|
87
|
+
if (this.closed) return;
|
|
88
|
+
this.closed = true;
|
|
89
|
+
this.connected = false;
|
|
90
|
+
this.subs.clear();
|
|
91
|
+
this.rpc.rejectAll(/* @__PURE__ */ new Error("WsTransport: closed"));
|
|
92
|
+
this.pendingBinary.clear();
|
|
93
|
+
if (this.ws) {
|
|
94
|
+
try {
|
|
95
|
+
await this.ws.close();
|
|
96
|
+
} catch {}
|
|
97
|
+
this.ws = null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
list(path, options) {
|
|
101
|
+
return this.afs("list", path, { options });
|
|
102
|
+
}
|
|
103
|
+
read(path, options) {
|
|
104
|
+
return this.afs("read", path, { options });
|
|
105
|
+
}
|
|
106
|
+
write(path, payload, options) {
|
|
107
|
+
return this.afs("write", path, {
|
|
108
|
+
payload,
|
|
109
|
+
options
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
delete(path, options) {
|
|
113
|
+
return this.afs("delete", path, { options });
|
|
114
|
+
}
|
|
115
|
+
stat(path, options) {
|
|
116
|
+
return this.afs("stat", path, { options });
|
|
117
|
+
}
|
|
118
|
+
search(path, query, options) {
|
|
119
|
+
return this.afs("search", path, {
|
|
120
|
+
query,
|
|
121
|
+
options
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
exec(path, args, options) {
|
|
125
|
+
return this.afs("exec", path, {
|
|
126
|
+
args,
|
|
127
|
+
options
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
explain(path, options) {
|
|
131
|
+
return this.afs("explain", path, { options });
|
|
132
|
+
}
|
|
133
|
+
async subscribe(path, onEvent) {
|
|
134
|
+
this.requireConnected();
|
|
135
|
+
const result = await this.rpc.sendRequest(this.ws, "afs.subscribe", { path });
|
|
136
|
+
if (!result?.subId) throw new Error("WsTransport: subscribe returned no subId");
|
|
137
|
+
this.subs.set(result.subId, {
|
|
138
|
+
subId: result.subId,
|
|
139
|
+
callback: onEvent
|
|
140
|
+
});
|
|
141
|
+
return async () => {
|
|
142
|
+
if (!this.subs.has(result.subId)) return;
|
|
143
|
+
this.subs.delete(result.subId);
|
|
144
|
+
if (this.connected && this.ws) try {
|
|
145
|
+
await this.rpc.sendRequest(this.ws, "afs.unsubscribe", { subId: result.subId });
|
|
146
|
+
} catch {}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
async afs(op, path, extra) {
|
|
150
|
+
this.requireConnected();
|
|
151
|
+
try {
|
|
152
|
+
return await this.rpc.sendRequest(this.ws, `afs.${op}`, {
|
|
153
|
+
path,
|
|
154
|
+
...extra
|
|
155
|
+
}) ?? null;
|
|
156
|
+
} catch (err) {
|
|
157
|
+
if (err && typeof err === "object" && "code" in err && "message" in err && typeof err.code === "string") {
|
|
158
|
+
const code = err.code;
|
|
159
|
+
throw mapWireError(code, String(err.message), path);
|
|
160
|
+
}
|
|
161
|
+
throw err;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
requireConnected() {
|
|
165
|
+
if (!this.connected || !this.ws) throw new Error("WsTransport: not connected (call connect() first or after close)");
|
|
166
|
+
}
|
|
167
|
+
handleFrame(frame) {
|
|
168
|
+
if (frame.type === require_index.FrameType.Binary) {
|
|
169
|
+
this.pendingBinary.set(frame.reqId, frame.payload);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (frame.type !== require_index.FrameType.JSON) return;
|
|
173
|
+
const binary = this.pendingBinary.take(frame.reqId);
|
|
174
|
+
let msg;
|
|
175
|
+
try {
|
|
176
|
+
msg = require_index.deserializeMessage(frame.payload);
|
|
177
|
+
} catch {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (msg.type === "response") {
|
|
181
|
+
const r = msg;
|
|
182
|
+
if (binary && r.result !== void 0) r.result = require_index.injectBinary(r.result, binary);
|
|
183
|
+
this.rpc.handleResponse(r);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (msg.type === "event") this.handleEvent(msg);
|
|
187
|
+
}
|
|
188
|
+
handleEvent(event) {
|
|
189
|
+
if (event.event !== "afs.event") return;
|
|
190
|
+
const data = event.data ?? {};
|
|
191
|
+
if (!data.subId || !data.event) return;
|
|
192
|
+
const sub = this.subs.get(data.subId);
|
|
193
|
+
if (!sub) return;
|
|
194
|
+
try {
|
|
195
|
+
sub.callback(data.event);
|
|
196
|
+
} catch {}
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
async function createWsTransport(options) {
|
|
200
|
+
const t = new WsTransport(options);
|
|
201
|
+
await t.connect();
|
|
202
|
+
return t;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
//#endregion
|
|
206
|
+
exports.WsTransport = WsTransport;
|
|
207
|
+
exports.createWsTransport = createWsTransport;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Transport, Unsubscribe } from "./types.cjs";
|
|
2
|
+
import { AFSDeleteOptions, AFSDeleteResult, AFSEvent, AFSExecOptions, AFSExecResult, AFSExplainOptions, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSSearchOptions, AFSSearchResult, AFSStatOptions, AFSStatResult, AFSWriteEntryPayload, AFSWriteOptions, AFSWriteResult } from "@aigne/afs";
|
|
3
|
+
|
|
4
|
+
//#region src/transports/ws.d.ts
|
|
5
|
+
interface WsTransportOptions {
|
|
6
|
+
/** WebSocket URL of the DID Space server. */
|
|
7
|
+
url: string;
|
|
8
|
+
/** Bearer token. Sent inside the `bearer.<hex>` WebSocket subprotocol. */
|
|
9
|
+
token: string;
|
|
10
|
+
/** Session namespace for `session.attach`. Default: `"did-space-client"`. */
|
|
11
|
+
namespace?: string;
|
|
12
|
+
/** RPC request timeout (ms). Default: 30000. */
|
|
13
|
+
requestTimeout?: number;
|
|
14
|
+
}
|
|
15
|
+
declare class WsTransport implements Transport {
|
|
16
|
+
readonly kind: "ws";
|
|
17
|
+
private readonly url;
|
|
18
|
+
private readonly token;
|
|
19
|
+
private readonly namespace;
|
|
20
|
+
private readonly requestTimeout;
|
|
21
|
+
private ws;
|
|
22
|
+
private rpc;
|
|
23
|
+
private pendingBinary;
|
|
24
|
+
private subs;
|
|
25
|
+
private connected;
|
|
26
|
+
private closed;
|
|
27
|
+
constructor(options: WsTransportOptions);
|
|
28
|
+
connect(): Promise<void>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
|
|
31
|
+
read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
|
|
32
|
+
write(path: string, payload: AFSWriteEntryPayload, options?: AFSWriteOptions): Promise<AFSWriteResult>;
|
|
33
|
+
delete(path: string, options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
|
|
34
|
+
stat(path: string, options?: AFSStatOptions): Promise<AFSStatResult>;
|
|
35
|
+
search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult>;
|
|
36
|
+
exec(path: string, args: Record<string, unknown>, options?: AFSExecOptions): Promise<AFSExecResult>;
|
|
37
|
+
explain(path: string, options?: AFSExplainOptions): Promise<AFSExplainResult>;
|
|
38
|
+
subscribe(path: string, onEvent: (event: AFSEvent) => void): Promise<Unsubscribe>;
|
|
39
|
+
private afs;
|
|
40
|
+
private requireConnected;
|
|
41
|
+
private handleFrame;
|
|
42
|
+
private handleEvent;
|
|
43
|
+
}
|
|
44
|
+
declare function createWsTransport(options: WsTransportOptions): Promise<WsTransport>;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { WsTransport, WsTransportOptions, createWsTransport };
|
|
47
|
+
//# sourceMappingURL=ws.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.d.cts","names":[],"sources":["../../src/transports/ws.ts"],"mappings":";;;;UA2EiB,kBAAA;EAsJJ;EApJX,GAAA;EAwJ+B;EAtJ/B,KAAA;EAsJkD;EApJlD,SAAA;EAwJsD;EAtJtD,cAAA;AAAA;AAAA,cAmDW,WAAA,YAAuB,SAAA;EAAA,SACzB,IAAA;EAAA,iBAEQ,GAAA;EAAA,iBACA,KAAA;EAAA,iBACA,SAAA;EAAA,iBACA,cAAA;EAAA,QAET,EAAA;EAAA,QACA,GAAA;EAAA,QACA,aAAA;EAAA,QACA,IAAA;EAAA,QACA,SAAA;EAAA,QACA,MAAA;cAEI,OAAA,EAAS,kBAAA;EAef,OAAA,CAAA,GAAW,OAAA;EA2BX,KAAA,CAAA,GAAS,OAAA;EAsBf,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,KAAA,CACE,IAAA,UACA,OAAA,EAAS,oBAAA,EACT,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,cAAA;EAIX,MAAA,CAAO,IAAA,UAAc,OAAA,GAAU,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAI1D,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,MAAA,CAAO,IAAA,UAAc,KAAA,UAAe,OAAA,GAAU,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAIzE,IAAA,CACE,IAAA,UACA,IAAA,EAAM,MAAA,mBACN,OAAA,GAAU,cAAA,GACT,OAAA,CAAQ,aAAA;EAIX,OAAA,CAAQ,IAAA,UAAc,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,gBAAA;EAItD,SAAA,CAAU,IAAA,UAAc,OAAA,GAAU,KAAA,EAAO,QAAA,YAAoB,OAAA,CAAQ,WAAA;EAAA,QA0B7D,GAAA;EAAA,QA0BN,gBAAA;EAAA,QAMA,WAAA;EAAA,QA6BA,WAAA;AAAA;AAAA,iBAqBY,iBAAA,CAAkB,OAAA,EAAS,kBAAA,GAAqB,OAAA,CAAQ,WAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Transport, Unsubscribe } from "./types.mjs";
|
|
2
|
+
import { AFSDeleteOptions, AFSDeleteResult, AFSEvent, AFSExecOptions, AFSExecResult, AFSExplainOptions, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSSearchOptions, AFSSearchResult, AFSStatOptions, AFSStatResult, AFSWriteEntryPayload, AFSWriteOptions, AFSWriteResult } from "@aigne/afs";
|
|
3
|
+
|
|
4
|
+
//#region src/transports/ws.d.ts
|
|
5
|
+
interface WsTransportOptions {
|
|
6
|
+
/** WebSocket URL of the DID Space server. */
|
|
7
|
+
url: string;
|
|
8
|
+
/** Bearer token. Sent inside the `bearer.<hex>` WebSocket subprotocol. */
|
|
9
|
+
token: string;
|
|
10
|
+
/** Session namespace for `session.attach`. Default: `"did-space-client"`. */
|
|
11
|
+
namespace?: string;
|
|
12
|
+
/** RPC request timeout (ms). Default: 30000. */
|
|
13
|
+
requestTimeout?: number;
|
|
14
|
+
}
|
|
15
|
+
declare class WsTransport implements Transport {
|
|
16
|
+
readonly kind: "ws";
|
|
17
|
+
private readonly url;
|
|
18
|
+
private readonly token;
|
|
19
|
+
private readonly namespace;
|
|
20
|
+
private readonly requestTimeout;
|
|
21
|
+
private ws;
|
|
22
|
+
private rpc;
|
|
23
|
+
private pendingBinary;
|
|
24
|
+
private subs;
|
|
25
|
+
private connected;
|
|
26
|
+
private closed;
|
|
27
|
+
constructor(options: WsTransportOptions);
|
|
28
|
+
connect(): Promise<void>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
|
|
31
|
+
read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
|
|
32
|
+
write(path: string, payload: AFSWriteEntryPayload, options?: AFSWriteOptions): Promise<AFSWriteResult>;
|
|
33
|
+
delete(path: string, options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
|
|
34
|
+
stat(path: string, options?: AFSStatOptions): Promise<AFSStatResult>;
|
|
35
|
+
search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult>;
|
|
36
|
+
exec(path: string, args: Record<string, unknown>, options?: AFSExecOptions): Promise<AFSExecResult>;
|
|
37
|
+
explain(path: string, options?: AFSExplainOptions): Promise<AFSExplainResult>;
|
|
38
|
+
subscribe(path: string, onEvent: (event: AFSEvent) => void): Promise<Unsubscribe>;
|
|
39
|
+
private afs;
|
|
40
|
+
private requireConnected;
|
|
41
|
+
private handleFrame;
|
|
42
|
+
private handleEvent;
|
|
43
|
+
}
|
|
44
|
+
declare function createWsTransport(options: WsTransportOptions): Promise<WsTransport>;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { WsTransport, WsTransportOptions, createWsTransport };
|
|
47
|
+
//# sourceMappingURL=ws.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.d.mts","names":[],"sources":["../../src/transports/ws.ts"],"mappings":";;;;UA2EiB,kBAAA;EAsJJ;EApJX,GAAA;EAwJ+B;EAtJ/B,KAAA;EAsJkD;EApJlD,SAAA;EAwJsD;EAtJtD,cAAA;AAAA;AAAA,cAmDW,WAAA,YAAuB,SAAA;EAAA,SACzB,IAAA;EAAA,iBAEQ,GAAA;EAAA,iBACA,KAAA;EAAA,iBACA,SAAA;EAAA,iBACA,cAAA;EAAA,QAET,EAAA;EAAA,QACA,GAAA;EAAA,QACA,aAAA;EAAA,QACA,IAAA;EAAA,QACA,SAAA;EAAA,QACA,MAAA;cAEI,OAAA,EAAS,kBAAA;EAef,OAAA,CAAA,GAAW,OAAA;EA2BX,KAAA,CAAA,GAAS,OAAA;EAsBf,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,KAAA,CACE,IAAA,UACA,OAAA,EAAS,oBAAA,EACT,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,cAAA;EAIX,MAAA,CAAO,IAAA,UAAc,OAAA,GAAU,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAI1D,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAItD,MAAA,CAAO,IAAA,UAAc,KAAA,UAAe,OAAA,GAAU,gBAAA,GAAmB,OAAA,CAAQ,eAAA;EAIzE,IAAA,CACE,IAAA,UACA,IAAA,EAAM,MAAA,mBACN,OAAA,GAAU,cAAA,GACT,OAAA,CAAQ,aAAA;EAIX,OAAA,CAAQ,IAAA,UAAc,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,gBAAA;EAItD,SAAA,CAAU,IAAA,UAAc,OAAA,GAAU,KAAA,EAAO,QAAA,YAAoB,OAAA,CAAQ,WAAA;EAAA,QA0B7D,GAAA;EAAA,QA0BN,gBAAA;EAAA,QAMA,WAAA;EAAA,QA6BA,WAAA;AAAA;AAAA,iBAqBY,iBAAA,CAAkB,OAAA,EAAS,kBAAA,GAAqB,OAAA,CAAQ,WAAA"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { FrameType, PROTOCOL_VERSION, PendingBinaryBuffer, RPCHandler, WebSocketClient, deserializeMessage, injectBinary } from "../packages/session/dist/index.mjs";
|
|
2
|
+
import { AFSCompactedError, AFSConflictError, AFSNotFoundError, AFSValidationError } from "@aigne/afs";
|
|
3
|
+
|
|
4
|
+
//#region src/transports/ws.ts
|
|
5
|
+
const DEFAULT_NAMESPACE = "did-space-client";
|
|
6
|
+
const DEFAULT_REQUEST_TIMEOUT = 3e4;
|
|
7
|
+
const ALLOWED_WS_SCHEMES = new Set(["ws:", "wss:"]);
|
|
8
|
+
function parseWsUrl(rawUrl) {
|
|
9
|
+
let parsed;
|
|
10
|
+
try {
|
|
11
|
+
parsed = new URL(rawUrl);
|
|
12
|
+
} catch {
|
|
13
|
+
throw new Error(`WsTransport: invalid URL: ${rawUrl}`);
|
|
14
|
+
}
|
|
15
|
+
if (!ALLOWED_WS_SCHEMES.has(parsed.protocol)) throw new Error(`WsTransport: only ws(s) is supported, got ${parsed.protocol} (URL: ${rawUrl})`);
|
|
16
|
+
const port = parsed.port ? Number(parsed.port) : parsed.protocol === "wss:" ? 443 : 80;
|
|
17
|
+
return {
|
|
18
|
+
host: parsed.hostname,
|
|
19
|
+
port
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function mapWireError(code, message, path) {
|
|
23
|
+
switch (code) {
|
|
24
|
+
case "not_found": return new AFSNotFoundError(path, message);
|
|
25
|
+
case "conflict": return new AFSConflictError(path, {
|
|
26
|
+
cid: null,
|
|
27
|
+
mtime: null,
|
|
28
|
+
deviceId: null
|
|
29
|
+
});
|
|
30
|
+
case "compacted": return new AFSCompactedError(path, "0");
|
|
31
|
+
case "validation": return new AFSValidationError(message);
|
|
32
|
+
default: return /* @__PURE__ */ new Error(`WsTransport ${code}: ${message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
var WsTransport = class {
|
|
36
|
+
kind = "ws";
|
|
37
|
+
url;
|
|
38
|
+
token;
|
|
39
|
+
namespace;
|
|
40
|
+
requestTimeout;
|
|
41
|
+
ws = null;
|
|
42
|
+
rpc;
|
|
43
|
+
pendingBinary = new PendingBinaryBuffer();
|
|
44
|
+
subs = /* @__PURE__ */ new Map();
|
|
45
|
+
connected = false;
|
|
46
|
+
closed = false;
|
|
47
|
+
constructor(options) {
|
|
48
|
+
parseWsUrl(options.url);
|
|
49
|
+
this.url = options.url;
|
|
50
|
+
this.token = options.token;
|
|
51
|
+
this.namespace = options.namespace ?? DEFAULT_NAMESPACE;
|
|
52
|
+
this.requestTimeout = options.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT;
|
|
53
|
+
this.rpc = new RPCHandler({
|
|
54
|
+
startId: 1,
|
|
55
|
+
idIncrement: 2,
|
|
56
|
+
timeout: this.requestTimeout
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async connect() {
|
|
60
|
+
if (this.closed) throw new Error("WsTransport: already closed");
|
|
61
|
+
if (this.connected) return;
|
|
62
|
+
const { host, port } = parseWsUrl(this.url);
|
|
63
|
+
const ws = new WebSocketClient({
|
|
64
|
+
host,
|
|
65
|
+
port,
|
|
66
|
+
authToken: this.token
|
|
67
|
+
});
|
|
68
|
+
await ws.connect();
|
|
69
|
+
this.ws = ws;
|
|
70
|
+
this.connected = true;
|
|
71
|
+
ws.on("frame", (frame) => this.handleFrame(frame));
|
|
72
|
+
ws.on("close", () => {
|
|
73
|
+
this.connected = false;
|
|
74
|
+
this.rpc.rejectAll(/* @__PURE__ */ new Error("WsTransport: connection closed"));
|
|
75
|
+
this.pendingBinary.clear();
|
|
76
|
+
});
|
|
77
|
+
ws.on("error", (err) => {
|
|
78
|
+
this.rpc.rejectAll(err);
|
|
79
|
+
});
|
|
80
|
+
await this.rpc.sendRequest(ws, "session.attach", {
|
|
81
|
+
version: PROTOCOL_VERSION,
|
|
82
|
+
namespace: this.namespace
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async close() {
|
|
86
|
+
if (this.closed) return;
|
|
87
|
+
this.closed = true;
|
|
88
|
+
this.connected = false;
|
|
89
|
+
this.subs.clear();
|
|
90
|
+
this.rpc.rejectAll(/* @__PURE__ */ new Error("WsTransport: closed"));
|
|
91
|
+
this.pendingBinary.clear();
|
|
92
|
+
if (this.ws) {
|
|
93
|
+
try {
|
|
94
|
+
await this.ws.close();
|
|
95
|
+
} catch {}
|
|
96
|
+
this.ws = null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
list(path, options) {
|
|
100
|
+
return this.afs("list", path, { options });
|
|
101
|
+
}
|
|
102
|
+
read(path, options) {
|
|
103
|
+
return this.afs("read", path, { options });
|
|
104
|
+
}
|
|
105
|
+
write(path, payload, options) {
|
|
106
|
+
return this.afs("write", path, {
|
|
107
|
+
payload,
|
|
108
|
+
options
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
delete(path, options) {
|
|
112
|
+
return this.afs("delete", path, { options });
|
|
113
|
+
}
|
|
114
|
+
stat(path, options) {
|
|
115
|
+
return this.afs("stat", path, { options });
|
|
116
|
+
}
|
|
117
|
+
search(path, query, options) {
|
|
118
|
+
return this.afs("search", path, {
|
|
119
|
+
query,
|
|
120
|
+
options
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
exec(path, args, options) {
|
|
124
|
+
return this.afs("exec", path, {
|
|
125
|
+
args,
|
|
126
|
+
options
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
explain(path, options) {
|
|
130
|
+
return this.afs("explain", path, { options });
|
|
131
|
+
}
|
|
132
|
+
async subscribe(path, onEvent) {
|
|
133
|
+
this.requireConnected();
|
|
134
|
+
const result = await this.rpc.sendRequest(this.ws, "afs.subscribe", { path });
|
|
135
|
+
if (!result?.subId) throw new Error("WsTransport: subscribe returned no subId");
|
|
136
|
+
this.subs.set(result.subId, {
|
|
137
|
+
subId: result.subId,
|
|
138
|
+
callback: onEvent
|
|
139
|
+
});
|
|
140
|
+
return async () => {
|
|
141
|
+
if (!this.subs.has(result.subId)) return;
|
|
142
|
+
this.subs.delete(result.subId);
|
|
143
|
+
if (this.connected && this.ws) try {
|
|
144
|
+
await this.rpc.sendRequest(this.ws, "afs.unsubscribe", { subId: result.subId });
|
|
145
|
+
} catch {}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
async afs(op, path, extra) {
|
|
149
|
+
this.requireConnected();
|
|
150
|
+
try {
|
|
151
|
+
return await this.rpc.sendRequest(this.ws, `afs.${op}`, {
|
|
152
|
+
path,
|
|
153
|
+
...extra
|
|
154
|
+
}) ?? null;
|
|
155
|
+
} catch (err) {
|
|
156
|
+
if (err && typeof err === "object" && "code" in err && "message" in err && typeof err.code === "string") {
|
|
157
|
+
const code = err.code;
|
|
158
|
+
throw mapWireError(code, String(err.message), path);
|
|
159
|
+
}
|
|
160
|
+
throw err;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
requireConnected() {
|
|
164
|
+
if (!this.connected || !this.ws) throw new Error("WsTransport: not connected (call connect() first or after close)");
|
|
165
|
+
}
|
|
166
|
+
handleFrame(frame) {
|
|
167
|
+
if (frame.type === FrameType.Binary) {
|
|
168
|
+
this.pendingBinary.set(frame.reqId, frame.payload);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (frame.type !== FrameType.JSON) return;
|
|
172
|
+
const binary = this.pendingBinary.take(frame.reqId);
|
|
173
|
+
let msg;
|
|
174
|
+
try {
|
|
175
|
+
msg = deserializeMessage(frame.payload);
|
|
176
|
+
} catch {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (msg.type === "response") {
|
|
180
|
+
const r = msg;
|
|
181
|
+
if (binary && r.result !== void 0) r.result = injectBinary(r.result, binary);
|
|
182
|
+
this.rpc.handleResponse(r);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (msg.type === "event") this.handleEvent(msg);
|
|
186
|
+
}
|
|
187
|
+
handleEvent(event) {
|
|
188
|
+
if (event.event !== "afs.event") return;
|
|
189
|
+
const data = event.data ?? {};
|
|
190
|
+
if (!data.subId || !data.event) return;
|
|
191
|
+
const sub = this.subs.get(data.subId);
|
|
192
|
+
if (!sub) return;
|
|
193
|
+
try {
|
|
194
|
+
sub.callback(data.event);
|
|
195
|
+
} catch {}
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
async function createWsTransport(options) {
|
|
199
|
+
const t = new WsTransport(options);
|
|
200
|
+
await t.connect();
|
|
201
|
+
return t;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
//#endregion
|
|
205
|
+
export { WsTransport, createWsTransport };
|
|
206
|
+
//# sourceMappingURL=ws.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.mjs","names":[],"sources":["../../src/transports/ws.ts"],"sourcesContent":["/**\n * WsTransport — DID Space transport over WebSocket via @aigne/afs-session.\n *\n * Wire layout:\n *\n * 1. Connect with `WebSocketClient` using a hex-encoded bearer\n * subprotocol (`bearer.<hex>` — RFC 6455 token-safe). The mock\n * cloud server and production WS gateway both speak this.\n * 2. Issue a `session.attach { version, namespace }` RPC to enter the\n * AFS routing tier. Without `attached=true` the server rejects\n * every `afs.*` request with `invalid_session`.\n * 3. Each AFS operation (`afs.list`, `afs.read`, …) is a single RPC\n * with `{ path, options? }` params. Binary content roundtrips via\n * the session sidecar frames (Frame.Binary / Frame.JSON pair —\n * handled transparently by `extractBinary` / `injectBinary`).\n * 4. `subscribe(path, cb)` issues `afs.subscribe { path }` and listens\n * for one-way `afs.event { subId, event }` notifications. The\n * returned `Unsubscribe` issues `afs.unsubscribe { subId }`.\n * 5. `close()` disconnects the underlying WebSocket. RPCs in flight\n * reject with the transport closure error.\n *\n * The transport is *thin* by design — it does not retry or buffer\n * across reconnects. Callers (`DIDSpaceClient`) layer reliability\n * concerns above.\n */\n\nimport type {\n AFSDeleteOptions,\n AFSDeleteResult,\n AFSEvent,\n AFSExecOptions,\n AFSExecResult,\n AFSExplainOptions,\n AFSExplainResult,\n AFSListOptions,\n AFSListResult,\n AFSReadOptions,\n AFSReadResult,\n AFSSearchOptions,\n AFSSearchResult,\n AFSStatOptions,\n AFSStatResult,\n AFSWriteEntryPayload,\n AFSWriteOptions,\n AFSWriteResult,\n} from \"@aigne/afs\";\nimport {\n AFSCompactedError,\n AFSConflictError,\n AFSNotFoundError,\n AFSValidationError,\n} from \"@aigne/afs\";\nimport {\n deserializeMessage,\n type Frame,\n FrameType,\n injectBinary,\n PendingBinaryBuffer,\n PROTOCOL_VERSION,\n RPCHandler,\n type Event as RpcEvent,\n type Response as RpcResponse,\n WebSocketClient,\n} from \"@aigne/afs-session\";\nimport type { Transport, Unsubscribe } from \"./types.js\";\n\n// ---------------------------------------------------------------------------\n// Options\n// ---------------------------------------------------------------------------\n\nconst DEFAULT_NAMESPACE = \"did-space-client\";\nconst DEFAULT_REQUEST_TIMEOUT = 30_000;\n\nconst ALLOWED_WS_SCHEMES = new Set([\"ws:\", \"wss:\"]);\n\nexport interface WsTransportOptions {\n /** WebSocket URL of the DID Space server. */\n url: string;\n /** Bearer token. Sent inside the `bearer.<hex>` WebSocket subprotocol. */\n token: string;\n /** Session namespace for `session.attach`. Default: `\"did-space-client\"`. */\n namespace?: string;\n /** RPC request timeout (ms). Default: 30000. */\n requestTimeout?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction parseWsUrl(rawUrl: string): { host: string; port: number } {\n let parsed: URL;\n try {\n parsed = new URL(rawUrl);\n } catch {\n throw new Error(`WsTransport: invalid URL: ${rawUrl}`);\n }\n if (!ALLOWED_WS_SCHEMES.has(parsed.protocol)) {\n throw new Error(\n `WsTransport: only ws(s) is supported, got ${parsed.protocol} (URL: ${rawUrl})`,\n );\n }\n const port = parsed.port ? Number(parsed.port) : parsed.protocol === \"wss:\" ? 443 : 80;\n return { host: parsed.hostname, port };\n}\n\nfunction mapWireError(code: string, message: string, path: string): Error {\n switch (code) {\n case \"not_found\":\n return new AFSNotFoundError(path, message);\n case \"conflict\":\n return new AFSConflictError(path, {\n cid: null,\n mtime: null,\n deviceId: null,\n });\n case \"compacted\":\n return new AFSCompactedError(path, \"0\");\n case \"validation\":\n return new AFSValidationError(message);\n default:\n return new Error(`WsTransport ${code}: ${message}`);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Transport\n// ---------------------------------------------------------------------------\n\ninterface SubscriptionState {\n subId: string;\n callback: (event: AFSEvent) => void;\n}\n\nexport class WsTransport implements Transport {\n readonly kind = \"ws\" as const;\n\n private readonly url: string;\n private readonly token: string;\n private readonly namespace: string;\n private readonly requestTimeout: number;\n\n private ws: WebSocketClient | null = null;\n private rpc: RPCHandler;\n private pendingBinary = new PendingBinaryBuffer();\n private subs = new Map<string, SubscriptionState>();\n private connected = false;\n private closed = false;\n\n constructor(options: WsTransportOptions) {\n parseWsUrl(options.url);\n this.url = options.url;\n this.token = options.token;\n this.namespace = options.namespace ?? DEFAULT_NAMESPACE;\n this.requestTimeout = options.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT;\n this.rpc = new RPCHandler({\n startId: 1,\n idIncrement: 2,\n timeout: this.requestTimeout,\n });\n }\n\n // ───── Lifecycle ─────────────────────────────────────────────────────────\n\n async connect(): Promise<void> {\n if (this.closed) throw new Error(\"WsTransport: already closed\");\n if (this.connected) return;\n\n const { host, port } = parseWsUrl(this.url);\n const ws = new WebSocketClient({ host, port, authToken: this.token });\n await ws.connect();\n this.ws = ws;\n this.connected = true;\n\n ws.on(\"frame\", (frame: Frame) => this.handleFrame(frame));\n ws.on(\"close\", () => {\n this.connected = false;\n this.rpc.rejectAll(new Error(\"WsTransport: connection closed\"));\n this.pendingBinary.clear();\n });\n ws.on(\"error\", (err) => {\n this.rpc.rejectAll(err);\n });\n\n // Attach to enter the AFS RPC tier.\n await this.rpc.sendRequest(ws, \"session.attach\", {\n version: PROTOCOL_VERSION,\n namespace: this.namespace,\n });\n }\n\n async close(): Promise<void> {\n if (this.closed) return;\n this.closed = true;\n this.connected = false;\n\n // Cancel local subscriptions; server-side will be cleaned up by close.\n this.subs.clear();\n this.rpc.rejectAll(new Error(\"WsTransport: closed\"));\n this.pendingBinary.clear();\n\n if (this.ws) {\n try {\n await this.ws.close();\n } catch {\n // Ignore — socket may already be down.\n }\n this.ws = null;\n }\n }\n\n // ───── AFS surface ───────────────────────────────────────────────────────\n\n list(path: string, options?: AFSListOptions): Promise<AFSListResult> {\n return this.afs<AFSListResult>(\"list\", path, { options });\n }\n\n read(path: string, options?: AFSReadOptions): Promise<AFSReadResult> {\n return this.afs<AFSReadResult>(\"read\", path, { options });\n }\n\n write(\n path: string,\n payload: AFSWriteEntryPayload,\n options?: AFSWriteOptions,\n ): Promise<AFSWriteResult> {\n return this.afs<AFSWriteResult>(\"write\", path, { payload, options });\n }\n\n delete(path: string, options?: AFSDeleteOptions): Promise<AFSDeleteResult> {\n return this.afs<AFSDeleteResult>(\"delete\", path, { options });\n }\n\n stat(path: string, options?: AFSStatOptions): Promise<AFSStatResult> {\n return this.afs<AFSStatResult>(\"stat\", path, { options });\n }\n\n search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult> {\n return this.afs<AFSSearchResult>(\"search\", path, { query, options });\n }\n\n exec(\n path: string,\n args: Record<string, unknown>,\n options?: AFSExecOptions,\n ): Promise<AFSExecResult> {\n return this.afs<AFSExecResult>(\"exec\", path, { args, options });\n }\n\n explain(path: string, options?: AFSExplainOptions): Promise<AFSExplainResult> {\n return this.afs<AFSExplainResult>(\"explain\", path, { options });\n }\n\n async subscribe(path: string, onEvent: (event: AFSEvent) => void): Promise<Unsubscribe> {\n this.requireConnected();\n const result = (await this.rpc.sendRequest(this.ws!, \"afs.subscribe\", { path })) as {\n subId: string;\n };\n if (!result?.subId) {\n throw new Error(\"WsTransport: subscribe returned no subId\");\n }\n this.subs.set(result.subId, { subId: result.subId, callback: onEvent });\n return async () => {\n if (!this.subs.has(result.subId)) return;\n this.subs.delete(result.subId);\n // Best-effort — if the connection is gone, we already removed the\n // local listener above and the server will clean up on close.\n if (this.connected && this.ws) {\n try {\n await this.rpc.sendRequest(this.ws, \"afs.unsubscribe\", { subId: result.subId });\n } catch {\n /* swallow */\n }\n }\n };\n }\n\n // ───── Internals ─────────────────────────────────────────────────────────\n\n private async afs<T>(op: string, path: string, extra: Record<string, unknown>): Promise<T> {\n this.requireConnected();\n try {\n const result = (await this.rpc.sendRequest(this.ws!, `afs.${op}`, {\n path,\n ...extra,\n })) as T;\n return result ?? (null as unknown as T);\n } catch (err) {\n // RPC errors arrive as `{ code, message }`; translate to the AFS\n // typed errors so callers get one coherent error model.\n if (\n err &&\n typeof err === \"object\" &&\n \"code\" in err &&\n \"message\" in err &&\n typeof (err as { code: unknown }).code === \"string\"\n ) {\n const code = (err as { code: string }).code;\n const message = String((err as { message: unknown }).message);\n throw mapWireError(code, message, path);\n }\n throw err;\n }\n }\n\n private requireConnected(): void {\n if (!this.connected || !this.ws) {\n throw new Error(\"WsTransport: not connected (call connect() first or after close)\");\n }\n }\n\n private handleFrame(frame: Frame): void {\n if (frame.type === FrameType.Binary) {\n this.pendingBinary.set(frame.reqId, frame.payload);\n return;\n }\n if (frame.type !== FrameType.JSON) return;\n\n const binary = this.pendingBinary.take(frame.reqId);\n let msg: ReturnType<typeof deserializeMessage>;\n try {\n msg = deserializeMessage(frame.payload);\n } catch {\n return;\n }\n\n if (msg.type === \"response\") {\n const r = msg as RpcResponse;\n if (binary && r.result !== undefined) {\n r.result = injectBinary(r.result, binary);\n }\n this.rpc.handleResponse(r);\n return;\n }\n\n if (msg.type === \"event\") {\n this.handleEvent(msg as RpcEvent);\n }\n }\n\n private handleEvent(event: RpcEvent): void {\n if (event.event !== \"afs.event\") return;\n const data = (event.data ?? {}) as { subId?: string; event?: AFSEvent };\n if (!data.subId || !data.event) return;\n const sub = this.subs.get(data.subId);\n if (!sub) return;\n try {\n sub.callback(data.event);\n } catch {\n // Swallow — subscribers must not break the transport.\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Re-exports\n// ---------------------------------------------------------------------------\n\nexport type { Transport, Unsubscribe } from \"./types.js\";\n\n// Convenience: a connected transport you can pass straight to DIDSpaceClient.\nexport async function createWsTransport(options: WsTransportOptions): Promise<WsTransport> {\n const t = new WsTransport(options);\n await t.connect();\n return t;\n}\n"],"mappings":"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"}
|