@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,333 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let _aigne_afs = require("@aigne/afs");
|
|
3
|
+
|
|
4
|
+
//#region src/tree-index.ts
|
|
5
|
+
/**
|
|
6
|
+
* TreeIndex — typed interface for file metadata indexing.
|
|
7
|
+
*
|
|
8
|
+
* Replaces KeyValueStore for DID Space tree entries.
|
|
9
|
+
* Implementations: MemoryTreeIndex (testing), D1TreeIndex (production).
|
|
10
|
+
*/
|
|
11
|
+
const log = (0, _aigne_afs.makeNsLog)("provider:did-space");
|
|
12
|
+
/**
|
|
13
|
+
* Stable code on a per-scope quota rejection (file-count OR byte quota,
|
|
14
|
+
* upload-limits Phase 5 / T5.2). Surfaced via the thrown Error's `.code`
|
|
15
|
+
* (single-put/delete) and the batch result entry's `.code` (batchPut) so a
|
|
16
|
+
* consumer can distinguish quota from other failures — previously these were
|
|
17
|
+
* message-only. The message text is preserved verbatim for parity.
|
|
18
|
+
*/
|
|
19
|
+
const STORAGE_QUOTA_EXCEEDED_CODE = "STORAGE_QUOTA_EXCEEDED";
|
|
20
|
+
/** Build a quota-rejection Error carrying {@link STORAGE_QUOTA_EXCEEDED_CODE}. */
|
|
21
|
+
function storageQuotaError(message) {
|
|
22
|
+
return Object.assign(new Error(message), { code: STORAGE_QUOTA_EXCEEDED_CODE });
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parse a raw `entries.metadata` column value back into an object.
|
|
26
|
+
*
|
|
27
|
+
* Contract:
|
|
28
|
+
* - NULL / empty / non-string → undefined (no metadata)
|
|
29
|
+
* - valid JSON object → that object
|
|
30
|
+
* - parse error or non-object JSON → undefined + console.warn (best-effort:
|
|
31
|
+
* one bad row must not break list/read of the whole collection)
|
|
32
|
+
*/
|
|
33
|
+
function parseTreeEntryMetadata(raw) {
|
|
34
|
+
if (raw == null) return void 0;
|
|
35
|
+
if (typeof raw !== "string" || raw.length === 0) return void 0;
|
|
36
|
+
try {
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
38
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
39
|
+
log.warn(`[did-space] entries.metadata is not a JSON object; treating as empty`);
|
|
40
|
+
return;
|
|
41
|
+
} catch (err) {
|
|
42
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
43
|
+
log.warn(`[did-space] failed to parse entries.metadata (${msg}); treating as empty`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Serialize a TreeEntry.metadata object for storage in the
|
|
49
|
+
* `entries.metadata` column.
|
|
50
|
+
*
|
|
51
|
+
* Contract:
|
|
52
|
+
* - undefined / null / empty object → null (don't waste a JSON literal)
|
|
53
|
+
* - non-empty object → JSON.stringify result
|
|
54
|
+
*/
|
|
55
|
+
function serializeTreeEntryMetadata(metadata) {
|
|
56
|
+
if (metadata == null) return null;
|
|
57
|
+
if (Object.keys(metadata).length === 0) return null;
|
|
58
|
+
return JSON.stringify(metadata);
|
|
59
|
+
}
|
|
60
|
+
/** Order-insensitive deep equality: object keys are unordered, array order matters. */
|
|
61
|
+
function deepEqual(a, b) {
|
|
62
|
+
if (a === b) return true;
|
|
63
|
+
if (a === null || b === null || typeof a !== "object" || typeof b !== "object") return false;
|
|
64
|
+
const aArr = Array.isArray(a);
|
|
65
|
+
const bArr = Array.isArray(b);
|
|
66
|
+
if (aArr !== bArr) return false;
|
|
67
|
+
if (aArr && bArr) {
|
|
68
|
+
if (a.length !== b.length) return false;
|
|
69
|
+
for (let i = 0; i < a.length; i++) if (!deepEqual(a[i], b[i])) return false;
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
const ao = a;
|
|
73
|
+
const bo = b;
|
|
74
|
+
const ak = Object.keys(ao);
|
|
75
|
+
if (ak.length !== Object.keys(bo).length) return false;
|
|
76
|
+
for (const k of ak) {
|
|
77
|
+
if (!Object.hasOwn(bo, k)) return false;
|
|
78
|
+
if (!deepEqual(ao[k], bo[k])) return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Are two TreeEntry.metadata objects equivalent for skip-if-unchanged purposes?
|
|
84
|
+
* (did-space-metadata G4). This MUST be order-insensitive for object keys —
|
|
85
|
+
* {@link serializeTreeEntryMetadata} is a bare `JSON.stringify` that preserves
|
|
86
|
+
* insertion order, so its string equality would treat a key reorder as a
|
|
87
|
+
* "change" and forge a phantom changelog row / sync churn (the very thing skip
|
|
88
|
+
* exists to avoid). Empty / null / undefined all compare equal because they all
|
|
89
|
+
* serialize to a NULL column. Used ONLY for the skip decision; storage still
|
|
90
|
+
* uses {@link serializeTreeEntryMetadata} verbatim.
|
|
91
|
+
*/
|
|
92
|
+
function treeEntryMetadataEqual(a, b) {
|
|
93
|
+
const aEmpty = a == null || Object.keys(a).length === 0;
|
|
94
|
+
const bEmpty = b == null || Object.keys(b).length === 0;
|
|
95
|
+
if (aEmpty || bEmpty) return aEmpty && bEmpty;
|
|
96
|
+
return deepEqual(a, b);
|
|
97
|
+
}
|
|
98
|
+
/** UTF-8 safe base64 (btoa alone corrupts non-latin1 file names). */
|
|
99
|
+
function b64encode(s) {
|
|
100
|
+
const bytes = new TextEncoder().encode(s);
|
|
101
|
+
let bin = "";
|
|
102
|
+
for (const b of bytes) bin += String.fromCharCode(b);
|
|
103
|
+
return btoa(bin);
|
|
104
|
+
}
|
|
105
|
+
function b64decode(s) {
|
|
106
|
+
const bin = atob(s);
|
|
107
|
+
return new TextDecoder().decode(Uint8Array.from(bin, (c) => c.charCodeAt(0)));
|
|
108
|
+
}
|
|
109
|
+
/** Build a v2 keyset cursor: `v2:<b64(json(sortValue))>:<b64(tie)>`. */
|
|
110
|
+
function buildKeysetCursor(sortValue, tie) {
|
|
111
|
+
return `v2:${b64encode(JSON.stringify(sortValue))}:${b64encode(tie)}`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Parse a list cursor. Shared by all three TreeIndex impls so the
|
|
115
|
+
* legacy-vs-v2 dance can never drift between them.
|
|
116
|
+
*
|
|
117
|
+
* - undefined → none
|
|
118
|
+
* - `v2:`-prefixed → keyset cursor; REQUIRES `hasOrderBy` (a keyset cursor
|
|
119
|
+
* replayed onto a default-order listing would be a wrong page); malformed
|
|
120
|
+
* payloads throw a clean error instead of producing a wrong page.
|
|
121
|
+
* - anything else → legacy plain cursor, accepted ONLY for default
|
|
122
|
+
* (no-orderBy) order.
|
|
123
|
+
*/
|
|
124
|
+
function parseTreeCursor(cursor, hasOrderBy) {
|
|
125
|
+
if (!cursor) return { kind: "none" };
|
|
126
|
+
if (cursor.startsWith("v2:")) {
|
|
127
|
+
if (!hasOrderBy) throw new Error("Invalid cursor: v2 keyset cursor requires a matching orderBy");
|
|
128
|
+
const parts = cursor.split(":");
|
|
129
|
+
if (parts.length !== 3 || !parts[1] || !parts[2]) throw new Error("Invalid cursor: malformed v2 keyset cursor");
|
|
130
|
+
let sortValue;
|
|
131
|
+
let tie;
|
|
132
|
+
try {
|
|
133
|
+
sortValue = JSON.parse(b64decode(parts[1]));
|
|
134
|
+
tie = b64decode(parts[2]);
|
|
135
|
+
} catch {
|
|
136
|
+
throw new Error("Invalid cursor: malformed v2 keyset cursor");
|
|
137
|
+
}
|
|
138
|
+
if (sortValue !== null && typeof sortValue !== "string" && typeof sortValue !== "number") throw new Error("Invalid cursor: malformed v2 keyset cursor");
|
|
139
|
+
return {
|
|
140
|
+
kind: "v2",
|
|
141
|
+
cursor: {
|
|
142
|
+
sortValue,
|
|
143
|
+
tie
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (hasOrderBy) throw new Error("Invalid cursor: legacy cursor cannot be combined with orderBy");
|
|
148
|
+
return {
|
|
149
|
+
kind: "legacy",
|
|
150
|
+
value: cursor
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Build the ORDER BY + keyset-resume WHERE for an ordered listing. Shared
|
|
155
|
+
* by SQLiteTreeIndex and D1TreeIndex (identical SQL dialect).
|
|
156
|
+
*
|
|
157
|
+
* - Missing values sort LAST regardless of direction: nullable columns get
|
|
158
|
+
* a leading `(col IS NULL) ASC` term. Non-nullable columns skip it so the
|
|
159
|
+
* `(scope, parent, col, name)` indexes stay usable.
|
|
160
|
+
* - Resume uses the expansion `col > ? OR (col = ? AND tie > ?)` (row-value
|
|
161
|
+
* free — works on every SQLite the runtimes target) plus NULL-run
|
|
162
|
+
* handling for nullable columns.
|
|
163
|
+
*/
|
|
164
|
+
function buildOrderedQueryParts(opts) {
|
|
165
|
+
const { col, nullable, tieCol, cursor } = opts;
|
|
166
|
+
const dir = opts.order === "desc" ? "DESC" : "ASC";
|
|
167
|
+
const op = opts.order === "desc" ? "<" : ">";
|
|
168
|
+
const orderSql = nullable ? `(${col} IS NULL) ASC, ${col} ${dir}, ${tieCol} ${dir}` : `${col} ${dir}, ${tieCol} ${dir}`;
|
|
169
|
+
if (!cursor) return {
|
|
170
|
+
cursorWhereSql: "",
|
|
171
|
+
cursorArgs: [],
|
|
172
|
+
orderSql
|
|
173
|
+
};
|
|
174
|
+
if (cursor.sortValue === null) {
|
|
175
|
+
if (!nullable) throw new Error("Invalid cursor: malformed v2 keyset cursor");
|
|
176
|
+
return {
|
|
177
|
+
cursorWhereSql: `(${col} IS NULL AND ${tieCol} ${op} ?)`,
|
|
178
|
+
cursorArgs: [cursor.tie],
|
|
179
|
+
orderSql
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (nullable) return {
|
|
183
|
+
cursorWhereSql: `((${col} IS NOT NULL AND (${col} ${op} ? OR (${col} = ? AND ${tieCol} ${op} ?))) OR ${col} IS NULL)`,
|
|
184
|
+
cursorArgs: [
|
|
185
|
+
cursor.sortValue,
|
|
186
|
+
cursor.sortValue,
|
|
187
|
+
cursor.tie
|
|
188
|
+
],
|
|
189
|
+
orderSql
|
|
190
|
+
};
|
|
191
|
+
return {
|
|
192
|
+
cursorWhereSql: `(${col} ${op} ? OR (${col} = ? AND ${tieCol} ${op} ?))`,
|
|
193
|
+
cursorArgs: [
|
|
194
|
+
cursor.sortValue,
|
|
195
|
+
cursor.sortValue,
|
|
196
|
+
cursor.tie
|
|
197
|
+
],
|
|
198
|
+
orderSql
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* In-memory equivalents of the SQL ordering semantics, used by
|
|
203
|
+
* MemoryTreeIndex so all three impls stay in lockstep.
|
|
204
|
+
*/
|
|
205
|
+
function compareTreeSortValues(a, b, order) {
|
|
206
|
+
if (a === null && b === null) return 0;
|
|
207
|
+
if (a === null) return 1;
|
|
208
|
+
if (b === null) return -1;
|
|
209
|
+
let cmp;
|
|
210
|
+
if (typeof a === "number" && typeof b === "number") cmp = a === b ? 0 : a < b ? -1 : 1;
|
|
211
|
+
else {
|
|
212
|
+
const as = String(a);
|
|
213
|
+
const bs = String(b);
|
|
214
|
+
cmp = as === bs ? 0 : as < bs ? -1 : 1;
|
|
215
|
+
}
|
|
216
|
+
return order === "desc" ? -cmp : cmp;
|
|
217
|
+
}
|
|
218
|
+
/** Keyset predicate mirroring {@link buildOrderedQueryParts}'s WHERE. */
|
|
219
|
+
function keysetAfter(rowSort, rowTie, cursor, order) {
|
|
220
|
+
const tieAfter = order === "desc" ? rowTie < cursor.tie : rowTie > cursor.tie;
|
|
221
|
+
if (cursor.sortValue === null) return rowSort === null && tieAfter;
|
|
222
|
+
if (rowSort === null) return true;
|
|
223
|
+
const cmp = compareTreeSortValues(rowSort, cursor.sortValue, order);
|
|
224
|
+
if (cmp !== 0) return cmp > 0;
|
|
225
|
+
return tieAfter;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Loop reference implementation of `batchPutEntries` — single-op semantics
|
|
229
|
+
* per entry, in order. SQLite/memory indexes delegate here (semantic
|
|
230
|
+
* equivalence with the merged D1 path is pinned by conformance).
|
|
231
|
+
*/
|
|
232
|
+
async function loopBatchPutEntries(index, entries, ctx) {
|
|
233
|
+
const results = [];
|
|
234
|
+
for (const { path, entry, opts } of entries) {
|
|
235
|
+
const existing = ctx?.preread?.has(path) ? ctx.preread.get(path) ?? null : await index.get(path);
|
|
236
|
+
if (opts.ifMatch !== void 0 && (!existing || existing.cid !== opts.ifMatch)) {
|
|
237
|
+
results.push({
|
|
238
|
+
path,
|
|
239
|
+
conflict: {
|
|
240
|
+
currentCid: existing?.cid ?? null,
|
|
241
|
+
currentMtime: existing?.mtime ?? null,
|
|
242
|
+
currentDeviceId: null
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
if (existing && existing.cid === entry.cid && existing.mimeType === entry.mimeType && treeEntryMetadataEqual(existing.metadata, entry.metadata)) {
|
|
248
|
+
const wouldBeInline = index.inlineForEntry ? await index.inlineForEntry(entry) : void 0;
|
|
249
|
+
if (wouldBeInline === void 0 || (existing.content ?? null) === wouldBeInline) {
|
|
250
|
+
results.push({
|
|
251
|
+
path,
|
|
252
|
+
oldCid: existing.cid,
|
|
253
|
+
skipped: true
|
|
254
|
+
});
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
const { oldCid } = await index.put(path, entry, { deviceId: opts.deviceId });
|
|
260
|
+
const liveSeq = await index.getPrefixWatermark?.(path) ?? void 0;
|
|
261
|
+
results.push({
|
|
262
|
+
path,
|
|
263
|
+
...oldCid !== void 0 ? { oldCid } : {},
|
|
264
|
+
...typeof liveSeq === "number" && liveSeq > 0 ? { liveSeq } : {}
|
|
265
|
+
});
|
|
266
|
+
} catch (err) {
|
|
267
|
+
const code = err?.code;
|
|
268
|
+
results.push({
|
|
269
|
+
path,
|
|
270
|
+
error: err instanceof Error ? err.message : String(err),
|
|
271
|
+
...typeof code === "string" ? { code } : {}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return results;
|
|
276
|
+
}
|
|
277
|
+
/** Loop reference implementation of `batchDeleteEntries` — see {@link loopBatchPutEntries}. */
|
|
278
|
+
async function loopBatchDeleteEntries(index, entries, ctx) {
|
|
279
|
+
const results = [];
|
|
280
|
+
for (const { path, opts } of entries) {
|
|
281
|
+
const existing = ctx?.preread?.has(path) ? ctx.preread.get(path) ?? null : await index.get(path);
|
|
282
|
+
if (opts.ifMatch !== void 0 && (!existing || existing.cid !== opts.ifMatch)) {
|
|
283
|
+
results.push({
|
|
284
|
+
path,
|
|
285
|
+
conflict: {
|
|
286
|
+
currentCid: existing?.cid ?? null,
|
|
287
|
+
currentMtime: existing?.mtime ?? null,
|
|
288
|
+
currentDeviceId: null
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
if (!existing) {
|
|
294
|
+
results.push({
|
|
295
|
+
path,
|
|
296
|
+
notFound: true
|
|
297
|
+
});
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
try {
|
|
301
|
+
await index.delete(path, {
|
|
302
|
+
deviceId: opts.deviceId,
|
|
303
|
+
...opts.mtime !== void 0 ? { mtime: opts.mtime } : {}
|
|
304
|
+
});
|
|
305
|
+
const liveSeq = await index.getPrefixWatermark?.(path) ?? void 0;
|
|
306
|
+
results.push({
|
|
307
|
+
path,
|
|
308
|
+
deletedCid: existing.cid,
|
|
309
|
+
...typeof liveSeq === "number" && liveSeq > 0 ? { liveSeq } : {}
|
|
310
|
+
});
|
|
311
|
+
} catch (err) {
|
|
312
|
+
results.push({
|
|
313
|
+
path,
|
|
314
|
+
error: err instanceof Error ? err.message : String(err)
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return results;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
//#endregion
|
|
322
|
+
exports.STORAGE_QUOTA_EXCEEDED_CODE = STORAGE_QUOTA_EXCEEDED_CODE;
|
|
323
|
+
exports.buildKeysetCursor = buildKeysetCursor;
|
|
324
|
+
exports.buildOrderedQueryParts = buildOrderedQueryParts;
|
|
325
|
+
exports.compareTreeSortValues = compareTreeSortValues;
|
|
326
|
+
exports.keysetAfter = keysetAfter;
|
|
327
|
+
exports.loopBatchDeleteEntries = loopBatchDeleteEntries;
|
|
328
|
+
exports.loopBatchPutEntries = loopBatchPutEntries;
|
|
329
|
+
exports.parseTreeCursor = parseTreeCursor;
|
|
330
|
+
exports.parseTreeEntryMetadata = parseTreeEntryMetadata;
|
|
331
|
+
exports.serializeTreeEntryMetadata = serializeTreeEntryMetadata;
|
|
332
|
+
exports.storageQuotaError = storageQuotaError;
|
|
333
|
+
exports.treeEntryMetadataEqual = treeEntryMetadataEqual;
|