@fireproof/core 0.20.5-dev-preview-1 → 0.20.5-dev-preview-3
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/apply-head-queue.d.ts +18 -0
- package/apply-head-queue.d.ts.map +1 -0
- package/apply-head-queue.js +47 -0
- package/apply-head-queue.js.map +1 -0
- package/blockstore/attachable-store.d.ts +19 -0
- package/blockstore/attachable-store.d.ts.map +1 -0
- package/blockstore/attachable-store.js +316 -0
- package/blockstore/attachable-store.js.map +1 -0
- package/blockstore/commit-queue.d.ts +17 -0
- package/blockstore/commit-queue.d.ts.map +1 -0
- package/blockstore/commit-queue.js +60 -0
- package/blockstore/commit-queue.js.map +1 -0
- package/blockstore/commitor.d.ts +21 -0
- package/blockstore/commitor.d.ts.map +1 -0
- package/blockstore/commitor.js +95 -0
- package/blockstore/commitor.js.map +1 -0
- package/blockstore/connect-raw.d.ts +2 -0
- package/blockstore/connect-raw.d.ts.map +1 -0
- package/blockstore/connect-raw.js +2 -0
- package/blockstore/connect-raw.js.map +1 -0
- package/blockstore/connection-base.d.ts +2 -0
- package/blockstore/connection-base.d.ts.map +1 -0
- package/blockstore/connection-base.js +2 -0
- package/blockstore/connection-base.js.map +1 -0
- package/blockstore/encrypt-helpers.d.ts +2 -0
- package/blockstore/encrypt-helpers.d.ts.map +1 -0
- package/blockstore/encrypt-helpers.js +2 -0
- package/blockstore/encrypt-helpers.js.map +1 -0
- package/blockstore/fp-envelope.d.ts +32 -0
- package/blockstore/fp-envelope.d.ts.map +1 -0
- package/blockstore/fp-envelope.js +14 -0
- package/blockstore/fp-envelope.js.map +1 -0
- package/blockstore/gateway.d.ts +20 -0
- package/blockstore/gateway.d.ts.map +1 -0
- package/blockstore/gateway.js +2 -0
- package/blockstore/gateway.js.map +1 -0
- package/blockstore/index.d.ts +16 -0
- package/blockstore/index.d.ts.map +1 -0
- package/blockstore/index.js +16 -0
- package/blockstore/index.js.map +1 -0
- package/blockstore/interceptor-gateway.d.ts +29 -0
- package/blockstore/interceptor-gateway.d.ts.map +1 -0
- package/blockstore/interceptor-gateway.js +137 -0
- package/blockstore/interceptor-gateway.js.map +1 -0
- package/blockstore/loader-helpers.d.ts +10 -0
- package/blockstore/loader-helpers.d.ts.map +1 -0
- package/blockstore/loader-helpers.js +115 -0
- package/blockstore/loader-helpers.js.map +1 -0
- package/blockstore/loader.d.ts +61 -0
- package/blockstore/loader.d.ts.map +1 -0
- package/blockstore/loader.js +494 -0
- package/blockstore/loader.js.map +1 -0
- package/blockstore/register-store-protocol.d.ts +22 -0
- package/blockstore/register-store-protocol.d.ts.map +1 -0
- package/blockstore/register-store-protocol.js +114 -0
- package/blockstore/register-store-protocol.js.map +1 -0
- package/blockstore/serde-gateway.d.ts +78 -0
- package/blockstore/serde-gateway.d.ts.map +1 -0
- package/blockstore/serde-gateway.js +2 -0
- package/blockstore/serde-gateway.js.map +1 -0
- package/blockstore/store-factory.d.ts +11 -0
- package/blockstore/store-factory.d.ts.map +1 -0
- package/blockstore/store-factory.js +104 -0
- package/blockstore/store-factory.js.map +1 -0
- package/blockstore/store-remote.d.ts +2 -0
- package/blockstore/store-remote.d.ts.map +1 -0
- package/blockstore/store-remote.js +2 -0
- package/blockstore/store-remote.js.map +1 -0
- package/blockstore/store.d.ts +86 -0
- package/blockstore/store.d.ts.map +1 -0
- package/blockstore/store.js +439 -0
- package/blockstore/store.js.map +1 -0
- package/blockstore/task-manager.d.ts +19 -0
- package/blockstore/task-manager.d.ts.map +1 -0
- package/blockstore/task-manager.js +50 -0
- package/blockstore/task-manager.js.map +1 -0
- package/blockstore/transaction.d.ts +62 -0
- package/blockstore/transaction.d.ts.map +1 -0
- package/blockstore/transaction.js +261 -0
- package/blockstore/transaction.js.map +1 -0
- package/blockstore/types.d.ts +508 -0
- package/blockstore/types.d.ts.map +1 -0
- package/blockstore/types.js +83 -0
- package/blockstore/types.js.map +1 -0
- package/blockstore/uri-interceptor.d.ts +19 -0
- package/blockstore/uri-interceptor.d.ts.map +1 -0
- package/blockstore/uri-interceptor.js +61 -0
- package/blockstore/uri-interceptor.js.map +1 -0
- package/bundle-not-impl.d.ts +2 -0
- package/bundle-not-impl.d.ts.map +1 -0
- package/bundle-not-impl.js +4 -0
- package/bundle-not-impl.js.map +1 -0
- package/cli/main.js +26616 -0
- package/crdt-clock.d.ts +27 -0
- package/crdt-clock.d.ts.map +1 -0
- package/crdt-clock.js +138 -0
- package/crdt-clock.js.map +1 -0
- package/crdt-helpers.d.ts +19 -0
- package/crdt-helpers.d.ts.map +1 -0
- package/crdt-helpers.js +332 -0
- package/crdt-helpers.js.map +1 -0
- package/crdt.d.ts +41 -0
- package/crdt.d.ts.map +1 -0
- package/crdt.js +164 -0
- package/crdt.js.map +1 -0
- package/database.d.ts +34 -0
- package/database.d.ts.map +1 -0
- package/database.js +124 -0
- package/database.js.map +1 -0
- package/deno.json +2 -2
- package/index.d.ts +15 -2741
- package/index.d.ts.map +1 -0
- package/index.js +14 -7274
- package/index.js.map +1 -1
- package/indexer-helpers.d.ts +69 -0
- package/indexer-helpers.d.ts.map +1 -0
- package/indexer-helpers.js +136 -0
- package/indexer-helpers.js.map +1 -0
- package/indexer.d.ts +24 -0
- package/indexer.d.ts.map +1 -0
- package/indexer.js +230 -0
- package/indexer.js.map +1 -0
- package/ledger.d.ts +55 -0
- package/ledger.d.ts.map +1 -0
- package/ledger.js +234 -0
- package/ledger.js.map +1 -0
- package/package.json +26 -17
- package/protocols/cloud/http-connection.d.ts +25 -0
- package/protocols/cloud/http-connection.d.ts.map +1 -0
- package/protocols/cloud/http-connection.js +153 -0
- package/protocols/cloud/http-connection.js.map +1 -0
- package/protocols/cloud/index.d.ts +10 -0
- package/protocols/cloud/index.d.ts.map +1 -0
- package/protocols/cloud/index.js +10 -0
- package/protocols/cloud/index.js.map +1 -0
- package/protocols/cloud/msg-raw-connection-base.d.ts +16 -0
- package/protocols/cloud/msg-raw-connection-base.d.ts.map +1 -0
- package/protocols/cloud/msg-raw-connection-base.js +22 -0
- package/protocols/cloud/msg-raw-connection-base.js.map +1 -0
- package/protocols/cloud/msg-types-data.d.ts +36 -0
- package/protocols/cloud/msg-types-data.d.ts.map +1 -0
- package/protocols/cloud/msg-types-data.js +38 -0
- package/protocols/cloud/msg-types-data.js.map +1 -0
- package/protocols/cloud/msg-types-meta.d.ts +41 -0
- package/protocols/cloud/msg-types-meta.d.ts.map +1 -0
- package/protocols/cloud/msg-types-meta.js +98 -0
- package/protocols/cloud/msg-types-meta.js.map +1 -0
- package/protocols/cloud/msg-types-wal.d.ts +33 -0
- package/protocols/cloud/msg-types-wal.d.ts.map +1 -0
- package/protocols/cloud/msg-types-wal.js +38 -0
- package/protocols/cloud/msg-types-wal.js.map +1 -0
- package/protocols/cloud/msg-types.d.ts +282 -0
- package/protocols/cloud/msg-types.d.ts.map +1 -0
- package/protocols/cloud/msg-types.js +278 -0
- package/protocols/cloud/msg-types.js.map +1 -0
- package/protocols/cloud/msger.d.ts +79 -0
- package/protocols/cloud/msger.d.ts.map +1 -0
- package/protocols/cloud/msger.js +198 -0
- package/protocols/cloud/msger.js.map +1 -0
- package/protocols/cloud/ws-connection.d.ts +29 -0
- package/protocols/cloud/ws-connection.d.ts.map +1 -0
- package/protocols/cloud/ws-connection.js +166 -0
- package/protocols/cloud/ws-connection.js.map +1 -0
- package/protocols/index.d.ts +2 -0
- package/protocols/index.d.ts.map +1 -0
- package/protocols/index.js +2 -0
- package/protocols/index.js.map +1 -0
- package/react/create-attach.d.ts +6 -0
- package/react/create-attach.d.ts.map +1 -0
- package/react/create-attach.js +75 -0
- package/react/create-attach.js.map +1 -0
- package/react/{index.d.cts → img-file.d.ts} +6 -53
- package/react/img-file.d.ts.map +1 -0
- package/react/img-file.js +57 -0
- package/react/img-file.js.map +1 -0
- package/react/index.d.ts +5 -336
- package/react/index.d.ts.map +1 -0
- package/react/index.js +4 -358
- package/react/index.js.map +1 -1
- package/react/types.d.ts +71 -0
- package/react/types.d.ts.map +1 -0
- package/react/types.js +2 -0
- package/react/types.js.map +1 -0
- package/react/use-all-docs.d.ts +4 -0
- package/react/use-all-docs.d.ts.map +1 -0
- package/react/use-all-docs.js +25 -0
- package/react/use-all-docs.js.map +1 -0
- package/react/use-attach.d.ts +6 -0
- package/react/use-attach.d.ts.map +1 -0
- package/react/use-attach.js +75 -0
- package/react/use-attach.js.map +1 -0
- package/react/use-changes.d.ts +4 -0
- package/react/use-changes.d.ts.map +1 -0
- package/react/use-changes.js +19 -0
- package/react/use-changes.js.map +1 -0
- package/react/use-document.d.ts +4 -0
- package/react/use-document.d.ts.map +1 -0
- package/react/use-document.js +109 -0
- package/react/use-document.js.map +1 -0
- package/react/use-fireproof.d.ts +6 -0
- package/react/use-fireproof.d.ts.map +1 -0
- package/react/use-fireproof.js +20 -0
- package/react/use-fireproof.js.map +1 -0
- package/react/use-live-query.d.ts +4 -0
- package/react/use-live-query.d.ts.map +1 -0
- package/react/use-live-query.js +27 -0
- package/react/use-live-query.js.map +1 -0
- package/runtime/files.d.ts +12 -0
- package/runtime/files.d.ts.map +1 -0
- package/runtime/files.js +29 -0
- package/runtime/files.js.map +1 -0
- package/runtime/gateways/cloud/gateway.d.ts +42 -0
- package/runtime/gateways/cloud/gateway.d.ts.map +1 -0
- package/runtime/gateways/cloud/gateway.js +528 -0
- package/runtime/gateways/cloud/gateway.js.map +1 -0
- package/runtime/gateways/cloud/index.d.ts +3 -0
- package/runtime/gateways/cloud/index.d.ts.map +1 -0
- package/runtime/gateways/cloud/index.js +3 -0
- package/runtime/gateways/cloud/index.js.map +1 -0
- package/runtime/gateways/cloud/to-cloud.d.ts +46 -0
- package/runtime/gateways/cloud/to-cloud.d.ts.map +1 -0
- package/runtime/gateways/cloud/to-cloud.js +159 -0
- package/runtime/gateways/cloud/to-cloud.js.map +1 -0
- package/runtime/gateways/def-serde-gateway.d.ts +18 -0
- package/runtime/gateways/def-serde-gateway.d.ts.map +1 -0
- package/runtime/gateways/def-serde-gateway.js +89 -0
- package/runtime/gateways/def-serde-gateway.js.map +1 -0
- package/runtime/gateways/file/deno/deno-filesystem.d.ts +27 -0
- package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +1 -0
- package/runtime/gateways/file/deno/deno-filesystem.js +52 -0
- package/runtime/gateways/file/deno/deno-filesystem.js.map +1 -0
- package/runtime/gateways/file/deno/get-sys-file-system.d.ts +4 -0
- package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +1 -0
- package/runtime/gateways/file/deno/get-sys-file-system.js +11 -0
- package/runtime/gateways/file/deno/get-sys-file-system.js.map +1 -0
- package/runtime/gateways/file/deno/index.d.ts +2 -0
- package/runtime/gateways/file/deno/index.d.ts.map +1 -0
- package/runtime/gateways/file/deno/index.js +2 -0
- package/runtime/gateways/file/deno/index.js.map +1 -0
- package/runtime/gateways/file/gateway-impl.d.ts +18 -0
- package/runtime/gateways/file/gateway-impl.d.ts.map +1 -0
- package/runtime/gateways/file/gateway-impl.js +121 -0
- package/runtime/gateways/file/gateway-impl.js.map +1 -0
- package/runtime/gateways/file/index.d.ts +3 -0
- package/runtime/gateways/file/index.d.ts.map +1 -0
- package/runtime/gateways/file/index.js +3 -0
- package/runtime/gateways/file/index.js.map +1 -0
- package/runtime/gateways/file/key-bag-file.d.ts +19 -0
- package/runtime/gateways/file/key-bag-file.d.ts.map +1 -0
- package/runtime/gateways/file/key-bag-file.js +40 -0
- package/runtime/gateways/file/key-bag-file.js.map +1 -0
- package/runtime/gateways/file/node/get-sys-file-system.d.ts +4 -0
- package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +1 -0
- package/runtime/gateways/file/node/get-sys-file-system.js +11 -0
- package/runtime/gateways/file/node/get-sys-file-system.js.map +1 -0
- package/runtime/gateways/file/node/index.d.ts +2 -0
- package/runtime/gateways/file/node/index.d.ts.map +1 -0
- package/runtime/gateways/file/node/index.js +2 -0
- package/runtime/gateways/file/node/index.js.map +1 -0
- package/runtime/gateways/file/node/node-filesystem.d.ts +32 -0
- package/runtime/gateways/file/node/node-filesystem.d.ts.map +1 -0
- package/runtime/gateways/file/node/node-filesystem.js +33 -0
- package/runtime/gateways/file/node/node-filesystem.js.map +1 -0
- package/runtime/gateways/file/node/to-array-buffer.d.ts +2 -0
- package/runtime/gateways/file/node/to-array-buffer.d.ts.map +1 -0
- package/runtime/gateways/file/node/to-array-buffer.js +12 -0
- package/runtime/gateways/file/node/to-array-buffer.js.map +1 -0
- package/runtime/gateways/file/sys-file-system-factory.d.ts +4 -0
- package/runtime/gateways/file/sys-file-system-factory.d.ts.map +1 -0
- package/runtime/gateways/file/sys-file-system-factory.js +13 -0
- package/runtime/gateways/file/sys-file-system-factory.js.map +1 -0
- package/runtime/gateways/file/utils.d.ts +5 -0
- package/runtime/gateways/file/utils.d.ts.map +1 -0
- package/runtime/gateways/file/utils.js +27 -0
- package/runtime/gateways/file/utils.js.map +1 -0
- package/runtime/gateways/file/version.d.ts +2 -0
- package/runtime/gateways/file/version.d.ts.map +1 -0
- package/runtime/gateways/file/version.js +2 -0
- package/runtime/gateways/file/version.js.map +1 -0
- package/runtime/gateways/fp-envelope-serialize.d.ts +50 -0
- package/runtime/gateways/fp-envelope-serialize.d.ts.map +1 -0
- package/runtime/gateways/fp-envelope-serialize.js +141 -0
- package/runtime/gateways/fp-envelope-serialize.js.map +1 -0
- package/runtime/gateways/index.d.ts +6 -0
- package/runtime/gateways/index.d.ts.map +1 -0
- package/runtime/gateways/index.js +6 -0
- package/runtime/gateways/index.js.map +1 -0
- package/runtime/gateways/indexeddb/gateway-impl.d.ts +22 -0
- package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -0
- package/runtime/gateways/indexeddb/gateway-impl.js +147 -0
- package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -0
- package/runtime/gateways/indexeddb/index.d.ts +6 -0
- package/runtime/gateways/indexeddb/index.d.ts.map +1 -0
- package/runtime/gateways/indexeddb/index.js +6 -0
- package/runtime/gateways/indexeddb/index.js.map +1 -0
- package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +15 -0
- package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -0
- package/runtime/gateways/indexeddb/key-bag-indexeddb.js +42 -0
- package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -0
- package/runtime/gateways/indexeddb-version.d.ts +2 -0
- package/runtime/gateways/indexeddb-version.d.ts.map +1 -0
- package/runtime/gateways/indexeddb-version.js +2 -0
- package/runtime/gateways/indexeddb-version.js.map +1 -0
- package/runtime/gateways/memory/gateway.d.ts +18 -0
- package/runtime/gateways/memory/gateway.d.ts.map +1 -0
- package/runtime/gateways/memory/gateway.js +73 -0
- package/runtime/gateways/memory/gateway.js.map +1 -0
- package/runtime/gateways/memory/version.d.ts +2 -0
- package/runtime/gateways/memory/version.d.ts.map +1 -0
- package/runtime/gateways/memory/version.js +2 -0
- package/runtime/gateways/memory/version.js.map +1 -0
- package/runtime/index.d.ts +13 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +13 -0
- package/runtime/index.js.map +1 -0
- package/runtime/key-bag-memory.d.ts +12 -0
- package/runtime/key-bag-memory.d.ts.map +1 -0
- package/runtime/key-bag-memory.js +23 -0
- package/runtime/key-bag-memory.js.map +1 -0
- package/runtime/key-bag.d.ts +85 -0
- package/runtime/key-bag.d.ts.map +1 -0
- package/runtime/key-bag.js +411 -0
- package/runtime/key-bag.js.map +1 -0
- package/runtime/keyed-crypto.d.ts +19 -0
- package/runtime/keyed-crypto.d.ts.map +1 -0
- package/runtime/keyed-crypto.js +192 -0
- package/runtime/keyed-crypto.js.map +1 -0
- package/runtime/memory-sys-container.d.ts +2 -0
- package/runtime/memory-sys-container.d.ts.map +1 -0
- package/runtime/memory-sys-container.js +2 -0
- package/runtime/memory-sys-container.js.map +1 -0
- package/runtime/meta-key-hack.d.ts +42 -0
- package/runtime/meta-key-hack.d.ts.map +1 -0
- package/runtime/meta-key-hack.js +201 -0
- package/runtime/meta-key-hack.js.map +1 -0
- package/runtime/sts-service/index.d.ts +40 -0
- package/runtime/sts-service/index.d.ts.map +1 -0
- package/runtime/sts-service/index.js +102 -0
- package/runtime/sts-service/index.js.map +1 -0
- package/runtime/sys-container.d.ts +2 -0
- package/runtime/sys-container.d.ts.map +1 -0
- package/runtime/sys-container.js +2 -0
- package/runtime/sys-container.js.map +1 -0
- package/runtime/wait-pr-multiformats/block.d.ts +47 -0
- package/runtime/wait-pr-multiformats/block.d.ts.map +1 -0
- package/runtime/wait-pr-multiformats/block.js +64 -0
- package/runtime/wait-pr-multiformats/block.js.map +1 -0
- package/runtime/wait-pr-multiformats/codec-interface.d.ts +29 -0
- package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +1 -0
- package/runtime/wait-pr-multiformats/codec-interface.js +2 -0
- package/runtime/wait-pr-multiformats/codec-interface.js.map +1 -0
- package/runtime/wait-pr-multiformats/index.d.ts +3 -0
- package/runtime/wait-pr-multiformats/index.d.ts.map +1 -0
- package/runtime/wait-pr-multiformats/index.js +3 -0
- package/runtime/wait-pr-multiformats/index.js.map +1 -0
- package/tests/blockstore/interceptor-gateway.test.ts +10 -9
- package/tests/blockstore/keyed-crypto.test.ts +2 -2
- package/tests/blockstore/loader.test.ts +68 -51
- package/tests/blockstore/standalone.test.ts +152 -0
- package/tests/blockstore/store.test.ts +16 -9
- package/tests/blockstore/transaction.test.ts +19 -16
- package/tests/fireproof/all-gateway.test.ts +12 -27
- package/tests/fireproof/attachable.test.ts +426 -97
- package/tests/fireproof/crdt.test.ts +23 -0
- package/tests/fireproof/database.test.ts +13 -12
- package/tests/fireproof/fireproof.test.ts +2 -5
- package/tests/fireproof/indexer.test.ts +4 -0
- package/tests/helpers.ts +30 -14
- package/tests/react/img-file.test.tsx +0 -9
- package/tests/react/use-fireproof-stability.test.tsx +5 -5
- package/tests/react/use-fireproof.test.tsx +18 -13
- package/tests/runtime/meta-key-hack.test.ts +7 -6
- package/tests/setup.indexeddb.ts +0 -9
- package/types.d.ts +460 -0
- package/types.d.ts.map +1 -0
- package/types.js +60 -0
- package/types.js.map +1 -0
- package/use-fireproof/iframe-strategy.d.ts +13 -0
- package/use-fireproof/iframe-strategy.d.ts.map +1 -0
- package/use-fireproof/iframe-strategy.js +83 -0
- package/use-fireproof/iframe-strategy.js.map +1 -0
- package/use-fireproof/index.d.ts +10 -0
- package/use-fireproof/index.d.ts.map +1 -0
- package/use-fireproof/index.js +16 -0
- package/use-fireproof/index.js.map +1 -0
- package/use-fireproof/redirect-strategy.d.ts +8 -0
- package/use-fireproof/redirect-strategy.d.ts.map +1 -0
- package/use-fireproof/redirect-strategy.js +31 -0
- package/use-fireproof/redirect-strategy.js.map +1 -0
- package/utils.d.ts +45 -0
- package/utils.d.ts.map +1 -0
- package/utils.js +406 -0
- package/utils.js.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +4 -0
- package/version.js.map +1 -0
- package/write-queue.d.ts +9 -0
- package/write-queue.d.ts.map +1 -0
- package/write-queue.js +70 -0
- package/write-queue.js.map +1 -0
- package/deno/index.d.ts +0 -7
- package/deno/index.js +0 -67
- package/deno/index.js.map +0 -1
- package/deno/metafile-esm.json +0 -1
- package/index.cjs +0 -7275
- package/index.cjs.map +0 -1
- package/index.d.cts +0 -2741
- package/indexeddb/index.cjs +0 -218
- package/indexeddb/index.cjs.map +0 -1
- package/indexeddb/index.d.cts +0 -30
- package/indexeddb/index.d.ts +0 -30
- package/indexeddb/index.js +0 -195
- package/indexeddb/index.js.map +0 -1
- package/indexeddb/metafile-cjs.json +0 -1
- package/indexeddb/metafile-esm.json +0 -1
- package/metafile-cjs.json +0 -1
- package/metafile-esm.json +0 -1
- package/node/index.cjs +0 -93
- package/node/index.cjs.map +0 -1
- package/node/index.d.cts +0 -7
- package/node/index.d.ts +0 -7
- package/node/index.js +0 -60
- package/node/index.js.map +0 -1
- package/node/metafile-cjs.json +0 -1
- package/node/metafile-esm.json +0 -1
- package/react/index.cjs +0 -392
- package/react/index.cjs.map +0 -1
- package/react/metafile-cjs.json +0 -1
- package/react/metafile-esm.json +0 -1
- package/tests/www/gallery.html +0 -132
- package/tests/www/iife.html +0 -42
- package/tests/www/todo-aws.html +0 -232
- package/tests/www/todo-ipfs.html +0 -213
- package/tests/www/todo-local.html +0 -214
- package/tests/www/todo-netlify.html +0 -227
- package/tests/www/todo.html +0 -254
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/runtime/wait-pr-multiformats/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC"}
|
@@ -87,14 +87,19 @@ export class URITrackGateway implements bs.Gateway {
|
|
87
87
|
return this.memgw.destroy(baseUrl);
|
88
88
|
}
|
89
89
|
|
90
|
-
put(url: URI, bytes: Uint8Array): Promise<bs.VoidResult> {
|
90
|
+
put(url: URI, bytes: Uint8Array, sthis: SuperThis): Promise<bs.VoidResult> {
|
91
|
+
// console.log("put", url.getParam(PARAM.KEY), url.toString());
|
91
92
|
this.uriAdd(url);
|
92
|
-
return this.memgw.put(url, bytes);
|
93
|
+
return this.memgw.put(url.build().cleanParams("itis").URI(), bytes, sthis);
|
93
94
|
}
|
94
95
|
|
95
|
-
get(url: URI): Promise<bs.GetResult> {
|
96
|
+
async get(url: URI, sthis: SuperThis): Promise<bs.GetResult> {
|
96
97
|
this.uriAdd(url);
|
97
|
-
|
98
|
+
const ret = await this.memgw.get(url.build().cleanParams("itis").URI(), sthis);
|
99
|
+
// if (ret.isErr()) {
|
100
|
+
// console.log("get-err", url.getParam(PARAM.KEY), url.toString());
|
101
|
+
// }
|
102
|
+
return ret;
|
98
103
|
}
|
99
104
|
delete(url: URI): Promise<bs.VoidResult> {
|
100
105
|
this.uriAdd(url);
|
@@ -136,7 +141,7 @@ describe("InterceptorGateway", () => {
|
|
136
141
|
await db.close();
|
137
142
|
await db.destroy();
|
138
143
|
// await sleep(1000);
|
139
|
-
expect(gwi.fn.mock.calls.length).toBe(
|
144
|
+
expect(gwi.fn.mock.calls.length).toBe(54);
|
140
145
|
// might be a stupid test
|
141
146
|
expect(gwi.fn.mock.calls.map((i) => i[0]).sort() /* not ok there are some operation */).toEqual(
|
142
147
|
[
|
@@ -178,10 +183,6 @@ describe("InterceptorGateway", () => {
|
|
178
183
|
"close",
|
179
184
|
"close",
|
180
185
|
"close",
|
181
|
-
"close",
|
182
|
-
"close",
|
183
|
-
"close",
|
184
|
-
"close",
|
185
186
|
"buildUrl",
|
186
187
|
"get",
|
187
188
|
"close",
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { bs, ensureSuperThis, PARAM, rt, StoreType, storeType2DataMetaWal } from "@fireproof/core";
|
2
|
-
import { BuildURI, runtimeFn, toCryptoRuntime, URI } from "@adviser/cement";
|
2
|
+
import { BuildURI, LogCollector, runtimeFn, toCryptoRuntime, URI } from "@adviser/cement";
|
3
3
|
import { base58btc } from "multiformats/bases/base58";
|
4
4
|
// import { sha256 as hasher } from "multiformats/hashes/sha2";
|
5
5
|
// import * as dagCodec from "@ipld/dag-cbor";
|
@@ -64,7 +64,7 @@ describe("KeyBag", () => {
|
|
64
64
|
});
|
65
65
|
sthis.env.set("FP_KEYBAG_URL", old);
|
66
66
|
await sthis.logger.Flush();
|
67
|
-
expect(sthis.ctx.logCollector
|
67
|
+
expect(sthis.ctx.get<LogCollector>("logCollector")?.Logs()).toEqual([
|
68
68
|
{
|
69
69
|
level: "warn",
|
70
70
|
module: "KeyBag",
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import * as codec from "@ipld/dag-cbor";
|
2
2
|
import { sha256 as hasher } from "multiformats/hashes/sha2";
|
3
|
-
import { BlockView } from "multiformats";
|
4
3
|
import { CID } from "multiformats/cid";
|
5
|
-
import { MemoryBlockstore } from "@web3-storage/pail/block";
|
6
4
|
import { CRDTMeta, CarTransaction, IndexTransactionMeta, SuperThis, bs, ensureSuperThis, rt } from "@fireproof/core";
|
7
5
|
import { simpleBlockOpts } from "../helpers.js";
|
6
|
+
import { FPBlock, isCarBlockItemReady, isCarBlockItemStale } from "../../src/blockstore/index.js";
|
7
|
+
import { anyBlock2FPBlock } from "../../src/blockstore/loader-helpers.js";
|
8
8
|
|
9
9
|
class MyMemoryBlockStore extends bs.EncryptedBlockstore {
|
10
|
-
readonly memblock = new
|
10
|
+
readonly memblock = new Map<string, FPBlock>();
|
11
11
|
loader: bs.Loader;
|
12
12
|
constructor(sthis: SuperThis) {
|
13
13
|
const ebOpts = simpleBlockOpts(sthis, "MyMemoryBlockStore"); //, "MyMemoryBlockStore");
|
@@ -27,8 +27,8 @@ class MyMemoryBlockStore extends bs.EncryptedBlockstore {
|
|
27
27
|
// readonly lastTxMeta?: TransactionMeta;
|
28
28
|
readonly compacting: boolean = false;
|
29
29
|
|
30
|
-
override async put(
|
31
|
-
|
30
|
+
override async put(fp: FPBlock): Promise<void> {
|
31
|
+
this.memblock.set(fp.cid.toString(), fp);
|
32
32
|
}
|
33
33
|
|
34
34
|
// transaction<M ext(fn: (t: CarTransaction) => Promise<MetaType>, opts?: { noLoader: boolean }): Promise<MetaType> {
|
@@ -50,7 +50,7 @@ class MyMemoryBlockStore extends bs.EncryptedBlockstore {
|
|
50
50
|
|
51
51
|
describe("basic Loader simple", function () {
|
52
52
|
let loader: bs.Loader;
|
53
|
-
let block:
|
53
|
+
let block: FPBlock;
|
54
54
|
let t: CarTransaction;
|
55
55
|
const sthis = ensureSuperThis();
|
56
56
|
|
@@ -69,13 +69,15 @@ describe("basic Loader simple", function () {
|
|
69
69
|
public: true,
|
70
70
|
});
|
71
71
|
await loader.ready();
|
72
|
-
block = await
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
72
|
+
block = await anyBlock2FPBlock(
|
73
|
+
await rt.mf.block.encode({
|
74
|
+
value: { hello: "world" },
|
75
|
+
hasher,
|
76
|
+
codec,
|
77
|
+
}),
|
78
|
+
);
|
79
|
+
await t.put(block);
|
80
|
+
await mockM.put(block);
|
79
81
|
});
|
80
82
|
it("should have an empty car log", function () {
|
81
83
|
expect(loader.carLog.length).toBe(0);
|
@@ -84,6 +86,7 @@ describe("basic Loader simple", function () {
|
|
84
86
|
const carGroup = await loader.commit(t, { head: [block.cid] });
|
85
87
|
expect(loader.carLog.length).toBe(1);
|
86
88
|
const reader = await loader.loadCar(carGroup[0], loader.attachedStores.local());
|
89
|
+
assert(isCarBlockItemReady(reader));
|
87
90
|
expect(reader).toBeTruthy();
|
88
91
|
const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
|
89
92
|
expect(parsed.cars).toBeTruthy();
|
@@ -95,10 +98,10 @@ describe("basic Loader simple", function () {
|
|
95
98
|
|
96
99
|
describe("basic Loader with two commits", function () {
|
97
100
|
let loader: bs.Loader;
|
98
|
-
let block:
|
99
|
-
let block2:
|
100
|
-
let block3:
|
101
|
-
let block4:
|
101
|
+
let block: FPBlock;
|
102
|
+
let block2: FPBlock;
|
103
|
+
let block3: FPBlock;
|
104
|
+
let block4: FPBlock;
|
102
105
|
let t: CarTransaction;
|
103
106
|
let carCid: bs.CarGroup;
|
104
107
|
let carCid0: bs.CarGroup;
|
@@ -120,36 +123,44 @@ describe("basic Loader with two commits", function () {
|
|
120
123
|
});
|
121
124
|
await loader.ready();
|
122
125
|
|
123
|
-
block = await
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
126
|
+
block = await anyBlock2FPBlock(
|
127
|
+
await rt.mf.block.encode({
|
128
|
+
value: { hello: "world" },
|
129
|
+
hasher,
|
130
|
+
codec,
|
131
|
+
}),
|
132
|
+
);
|
133
|
+
await t.put(block);
|
129
134
|
carCid0 = await loader.commit(t, { head: [block.cid] });
|
130
135
|
|
131
|
-
block2 = await
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
136
|
+
block2 = await anyBlock2FPBlock(
|
137
|
+
await rt.mf.block.encode({
|
138
|
+
value: { hello: "universe" },
|
139
|
+
hasher,
|
140
|
+
codec,
|
141
|
+
}),
|
142
|
+
);
|
143
|
+
await t.put(block2);
|
137
144
|
carCid = await loader.commit(t, { head: [block2.cid] });
|
138
145
|
|
139
|
-
block3 = await
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
146
|
+
block3 = await anyBlock2FPBlock(
|
147
|
+
await rt.mf.block.encode({
|
148
|
+
value: { hello: "multiverse" },
|
149
|
+
hasher,
|
150
|
+
codec,
|
151
|
+
}),
|
152
|
+
);
|
153
|
+
await t.put(block3);
|
145
154
|
|
146
|
-
block4 = await
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
155
|
+
block4 = await anyBlock2FPBlock(
|
156
|
+
await rt.mf.block.encode({
|
157
|
+
value: { hello: "megaverse" },
|
158
|
+
hasher,
|
159
|
+
codec,
|
160
|
+
}),
|
161
|
+
);
|
151
162
|
|
152
|
-
await t.put(block4
|
163
|
+
await t.put(block4);
|
153
164
|
});
|
154
165
|
|
155
166
|
it("should have a car log", function () {
|
@@ -161,6 +172,7 @@ describe("basic Loader with two commits", function () {
|
|
161
172
|
it("should commit", async () => {
|
162
173
|
const reader = await loader.loadCar(carCid[0], loader.attachedStores.local());
|
163
174
|
expect(reader).toBeTruthy();
|
175
|
+
assert(isCarBlockItemReady(reader));
|
164
176
|
const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
|
165
177
|
expect(parsed.cars).toBeTruthy();
|
166
178
|
expect(parsed.compact.length).toBe(0);
|
@@ -175,6 +187,7 @@ describe("basic Loader with two commits", function () {
|
|
175
187
|
|
176
188
|
const reader = await loader.loadCar(compactCid[0], loader.attachedStores.local());
|
177
189
|
expect(reader).toBeTruthy();
|
190
|
+
assert(isCarBlockItemReady(reader));
|
178
191
|
const parsed = await bs.parseCarFile<CRDTMeta>(reader, loader.logger);
|
179
192
|
expect(parsed.cars).toBeTruthy();
|
180
193
|
expect(parsed.compact.length).toBe(2);
|
@@ -197,15 +210,16 @@ describe("basic Loader with two commits", function () {
|
|
197
210
|
await loader.commit(t, { head: [block4.cid] }, { compact: false });
|
198
211
|
expect(loader.carLog.length).toBe(2);
|
199
212
|
|
200
|
-
const e = await loader.loadCar(carCid[0], loader.attachedStores.local())
|
213
|
+
const e = await loader.loadCar(carCid[0], loader.attachedStores.local());
|
201
214
|
expect(e).toBeTruthy();
|
202
|
-
|
203
|
-
expect(e.
|
215
|
+
assert(isCarBlockItemStale(e));
|
216
|
+
expect(e.item.status).toBe("stale");
|
217
|
+
expect(e.item.statusCause.message).toMatch(/(missing car file)|(not found)/);
|
204
218
|
}, 10000);
|
205
219
|
});
|
206
220
|
|
207
221
|
describe("basic Loader with index commits", function () {
|
208
|
-
let block:
|
222
|
+
let block: FPBlock;
|
209
223
|
let ib: bs.EncryptedBlockstore;
|
210
224
|
let indexerResult: IndexTransactionMeta;
|
211
225
|
let cid: CID;
|
@@ -223,11 +237,13 @@ describe("basic Loader with index commits", function () {
|
|
223
237
|
// t = new CarTransaction()
|
224
238
|
ib = new bs.EncryptedBlockstore(sthis, simpleBlockOpts(sthis, name));
|
225
239
|
await ib.ready();
|
226
|
-
block = await
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
240
|
+
block = await anyBlock2FPBlock(
|
241
|
+
await rt.mf.block.encode({
|
242
|
+
value: { hello: "world" },
|
243
|
+
hasher,
|
244
|
+
codec,
|
245
|
+
}),
|
246
|
+
);
|
231
247
|
// console.log('block', block.cid)
|
232
248
|
|
233
249
|
cid = CID.parse("bafybeia4luuns6dgymy5kau5rm7r4qzrrzg6cglpzpogussprpy42cmcn4");
|
@@ -253,7 +269,7 @@ describe("basic Loader with index commits", function () {
|
|
253
269
|
it("should commit the index metadata", async () => {
|
254
270
|
const { cars: carCid } = await ib.transaction<IndexTransactionMeta>(
|
255
271
|
async (t) => {
|
256
|
-
await t.put(block
|
272
|
+
await t.put(block);
|
257
273
|
return indexerResult;
|
258
274
|
} /* , indexMap */,
|
259
275
|
);
|
@@ -266,6 +282,7 @@ describe("basic Loader with index commits", function () {
|
|
266
282
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
267
283
|
const reader = await ib.loader.loadCar(carCid![0], ib.loader.attachedStores.local());
|
268
284
|
expect(reader).toBeTruthy();
|
285
|
+
assert(isCarBlockItemReady(reader));
|
269
286
|
const parsed = await bs.parseCarFile<IndexTransactionMeta>(reader, sthis.logger);
|
270
287
|
expect(parsed.cars).toBeTruthy();
|
271
288
|
expect(parsed.cars.length).toBe(0);
|
@@ -0,0 +1,152 @@
|
|
1
|
+
import { BuildURI, runtimeFn, URI } from "@adviser/cement";
|
2
|
+
import { ensureSuperThis, PARAM, CRDTImpl, CRDT, LedgerOpts, fireproof, bs, sleep } from "@fireproof/core";
|
3
|
+
import { Link } from "multiformats";
|
4
|
+
import { stripper } from "@adviser/cement/utils";
|
5
|
+
import pLimit from "p-limit";
|
6
|
+
|
7
|
+
describe("standalone", () => {
|
8
|
+
const sthis = ensureSuperThis();
|
9
|
+
|
10
|
+
describe("howto-loader", () => {
|
11
|
+
// beforeAll(async () => {
|
12
|
+
// const db = fireproof("howto-loader", {
|
13
|
+
// storeUrls: {
|
14
|
+
// base: "file://dist/how-to-loader?store-key=insecure",
|
15
|
+
// },
|
16
|
+
// });
|
17
|
+
// for (let cid = 0; cid < 1; cid++) {
|
18
|
+
// const blk = new Array(3)
|
19
|
+
// .fill(0)
|
20
|
+
// .map((_, peer) => ({ _id: `test-${cid}:peer-${peer}`, value: { cid: `test-${cid}`, peer: `peer-${peer}` } }));
|
21
|
+
// await db.bulk(blk);
|
22
|
+
// }
|
23
|
+
// // await db.compact()
|
24
|
+
// await db.close();
|
25
|
+
// });
|
26
|
+
|
27
|
+
it("understand the writer", async () => {
|
28
|
+
const db = fireproof("howto-writer", {
|
29
|
+
storeUrls: {
|
30
|
+
base: "memory://how-to-writer",
|
31
|
+
},
|
32
|
+
});
|
33
|
+
await db.put({ _id: "test-1", value: { cid: "test-1", peer: "peer-1" } });
|
34
|
+
await db.close();
|
35
|
+
});
|
36
|
+
|
37
|
+
it.skip("understand loader", async () => {
|
38
|
+
const db = fireproof("howto-loader", {
|
39
|
+
storeUrls: {
|
40
|
+
base: "file://dist/how-to-loader?store-key=insecure",
|
41
|
+
},
|
42
|
+
});
|
43
|
+
const fn = vi.fn();
|
44
|
+
const loader = db.ledger.crdt.blockstore.loader as bs.Loader;
|
45
|
+
loader.cidCache.onSet(fn);
|
46
|
+
expect(fn).toHaveBeenCalledTimes(0);
|
47
|
+
await db.ready();
|
48
|
+
expect(
|
49
|
+
loader.cidCache.values().map((i) => {
|
50
|
+
const v = i.value.Ok();
|
51
|
+
return {
|
52
|
+
type: v.item.type,
|
53
|
+
cid: v.cid,
|
54
|
+
value: stripper(/(type|cid)/, v.item),
|
55
|
+
};
|
56
|
+
}),
|
57
|
+
).toEqual([]);
|
58
|
+
// let last = 0
|
59
|
+
// for (let i = 0; i < 100; i++) {
|
60
|
+
// if (last !== fn.mock.calls.length) {
|
61
|
+
// console.log("fn", i, fn.mock.calls.length);
|
62
|
+
// last = fn.mock.calls.length
|
63
|
+
// }
|
64
|
+
// await sleep(10);
|
65
|
+
// }
|
66
|
+
const ret = await db.allDocs();
|
67
|
+
expect(ret.rows.length).toBe(100);
|
68
|
+
expect(fn).toHaveBeenCalledTimes(109393);
|
69
|
+
await db.close();
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
73
|
+
describe("test-plimit", () => {
|
74
|
+
it("should work with plimit", async () => {
|
75
|
+
const limiter = pLimit(2);
|
76
|
+
let concurrent = 0;
|
77
|
+
const ret = await Promise.all(
|
78
|
+
Array(10)
|
79
|
+
.fill(0)
|
80
|
+
.map((_, i) => {
|
81
|
+
return limiter(async () => {
|
82
|
+
concurrent++;
|
83
|
+
expect(concurrent).toBeLessThanOrEqual(2);
|
84
|
+
await sleep(100);
|
85
|
+
concurrent--;
|
86
|
+
return i;
|
87
|
+
});
|
88
|
+
}),
|
89
|
+
);
|
90
|
+
expect(ret).toEqual(Array.from(Array(10).keys()));
|
91
|
+
});
|
92
|
+
});
|
93
|
+
|
94
|
+
describe.skip("crdt-stack", () => {
|
95
|
+
let crdt: CRDT;
|
96
|
+
beforeEach(async () => {
|
97
|
+
let uri: URI;
|
98
|
+
switch (true) {
|
99
|
+
case runtimeFn().isBrowser:
|
100
|
+
uri = BuildURI.from("indexeddb://standalone-peer-log").setParam(PARAM.NAME, "peer-log").URI();
|
101
|
+
break;
|
102
|
+
default:
|
103
|
+
uri = BuildURI.from("file://dist/standalone")
|
104
|
+
.setParam(PARAM.NAME, "peer-log")
|
105
|
+
.setParam(PARAM.STORE_KEY, "insecure")
|
106
|
+
.URI();
|
107
|
+
break;
|
108
|
+
}
|
109
|
+
// console.log("uri", uri.toString());
|
110
|
+
crdt = new CRDTImpl(sthis, {
|
111
|
+
name: "peer-log",
|
112
|
+
writeQueue: { chunkSize: 32 },
|
113
|
+
storeUrls: {
|
114
|
+
data: {
|
115
|
+
meta: uri.build().setParam(PARAM.STORE, "meta").setParam(PARAM.STORE_KEY, "insecure").URI(),
|
116
|
+
car: uri.build().setParam(PARAM.STORE, "car").setParam(PARAM.STORE_KEY, "insecure").URI(),
|
117
|
+
file: uri.build().setParam(PARAM.STORE, "file").setParam(PARAM.STORE_KEY, "insecure").URI(),
|
118
|
+
wal: uri.build().setParam(PARAM.STORE, "wal").setParam(PARAM.STORE_KEY, "insecure").URI(),
|
119
|
+
},
|
120
|
+
},
|
121
|
+
} as LedgerOpts);
|
122
|
+
await crdt.ready();
|
123
|
+
});
|
124
|
+
afterEach(async () => {
|
125
|
+
await crdt.close();
|
126
|
+
});
|
127
|
+
|
128
|
+
it.each(new Array(10).fill(0).map((_, i) => ({ cid: i })))("write:$cid", async ({ cid }) => {
|
129
|
+
const peers = new Array(10).fill(0).map((_, peer) => {
|
130
|
+
return { id: `test-${cid}:peer-${peer}`, value: { cid: `test-${cid}`, peer: `peer-${peer}` } };
|
131
|
+
});
|
132
|
+
await crdt.bulk(peers);
|
133
|
+
});
|
134
|
+
it("read", async () => {
|
135
|
+
for (let cid = 0; cid < 10; cid++) {
|
136
|
+
for (let peer = 0; peer < 10; peer++) {
|
137
|
+
const id = `test-${cid}:peer-${peer}`;
|
138
|
+
const res = (await crdt.get(id)) as unknown as { cid: Link; doc: { cid: string; peer: string } };
|
139
|
+
expect(res.doc).toEqual({ cid: `test-${cid}`, peer: `peer-${peer}` });
|
140
|
+
}
|
141
|
+
}
|
142
|
+
});
|
143
|
+
// for (let cid = 0; cid < 10; cid++) {
|
144
|
+
// const gte = `test-${cid}`;
|
145
|
+
// const ret = [];
|
146
|
+
// for await (const [key, link] of entries(blk, root, { gte })) {
|
147
|
+
// ret.push([key, link]);
|
148
|
+
// }
|
149
|
+
// expect(ret.length).toEqual(10);
|
150
|
+
// }
|
151
|
+
});
|
152
|
+
});
|
@@ -19,7 +19,8 @@ import { mockLoader, noopUrl } from "../helpers.js";
|
|
19
19
|
describe("CarStore", function () {
|
20
20
|
let store: bs.CarStore;
|
21
21
|
const sthis = ensureSuperThis();
|
22
|
-
|
22
|
+
|
23
|
+
let loader: bs.Loadable;
|
23
24
|
|
24
25
|
afterEach(async () => {
|
25
26
|
await store.close();
|
@@ -27,6 +28,7 @@ describe("CarStore", function () {
|
|
27
28
|
});
|
28
29
|
|
29
30
|
beforeEach(async () => {
|
31
|
+
loader = mockLoader(sthis);
|
30
32
|
await sthis.start();
|
31
33
|
const at = await bs.createAttachedStores(noopUrl("test"), loader);
|
32
34
|
store = at.stores.car;
|
@@ -51,9 +53,9 @@ describe("CarStore", function () {
|
|
51
53
|
describe("CarStore with a saved car", function () {
|
52
54
|
let store: bs.CarStore;
|
53
55
|
let car: bs.AnyBlock;
|
56
|
+
let loader: bs.Loadable;
|
54
57
|
|
55
58
|
const sthis = ensureSuperThis();
|
56
|
-
const loader = mockLoader(sthis);
|
57
59
|
|
58
60
|
afterEach(async () => {
|
59
61
|
await store.close();
|
@@ -61,6 +63,7 @@ describe("CarStore with a saved car", function () {
|
|
61
63
|
});
|
62
64
|
|
63
65
|
beforeEach(async () => {
|
66
|
+
loader = mockLoader(sthis);
|
64
67
|
await sthis.start();
|
65
68
|
|
66
69
|
const at = await bs.createAttachedStores(noopUrl("test2"), loader);
|
@@ -95,7 +98,7 @@ describe("CarStore with a saved car", function () {
|
|
95
98
|
describe("MetaStore", function () {
|
96
99
|
let store: bs.MetaStore;
|
97
100
|
const sthis = ensureSuperThis();
|
98
|
-
|
101
|
+
let loader: bs.Loadable;
|
99
102
|
|
100
103
|
afterEach(async () => {
|
101
104
|
await store.close();
|
@@ -103,6 +106,7 @@ describe("MetaStore", function () {
|
|
103
106
|
});
|
104
107
|
|
105
108
|
beforeEach(async () => {
|
109
|
+
loader = mockLoader(sthis);
|
106
110
|
await sthis.start();
|
107
111
|
const at = await bs.createAttachedStores(noopUrl("test"), loader);
|
108
112
|
store = at.stores.meta;
|
@@ -135,7 +139,7 @@ describe("MetaStore with a saved header", function () {
|
|
135
139
|
let store: bs.MetaStore;
|
136
140
|
let cid: CID;
|
137
141
|
const sthis = ensureSuperThis();
|
138
|
-
|
142
|
+
let loader: bs.Loadable;
|
139
143
|
|
140
144
|
afterEach(async () => {
|
141
145
|
await store.close();
|
@@ -143,6 +147,7 @@ describe("MetaStore with a saved header", function () {
|
|
143
147
|
});
|
144
148
|
|
145
149
|
beforeEach(async () => {
|
150
|
+
loader = mockLoader(sthis);
|
146
151
|
await sthis.start();
|
147
152
|
const at = await bs.createAttachedStores(noopUrl("test3-meta"), loader);
|
148
153
|
store = at.stores.meta;
|
@@ -176,10 +181,12 @@ describe("MetaStore with a saved header", function () {
|
|
176
181
|
});
|
177
182
|
|
178
183
|
it("should load a header", async () => {
|
179
|
-
const
|
180
|
-
const
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
+
const metaStream = store.stream();
|
185
|
+
for await (const cars of metaStream) {
|
186
|
+
// expect(loaded).toBeTruthy();
|
187
|
+
expect(cars).toBeTruthy();
|
188
|
+
expect(cars.map((i) => i.cars.map((i) => i.toString())).flat(2)).toEqual([cid.toString()]);
|
189
|
+
break;
|
190
|
+
}
|
184
191
|
});
|
185
192
|
});
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import { CID } from "multiformats";
|
2
|
-
import { BaseBlockstore, bs, CarTransaction, ensureSuperThis
|
2
|
+
import { BaseBlockstore, bs, CarTransaction, ensureSuperThis } from "@fireproof/core";
|
3
3
|
import { simpleBlockOpts } from "../helpers.js";
|
4
|
+
import { anyBlock2FPBlock } from "../../src/blockstore/loader-helpers.js";
|
5
|
+
import { AnyLink } from "../../src/blockstore/index.js";
|
6
|
+
import { to_uint8 } from "@adviser/cement";
|
4
7
|
|
5
8
|
describe("Fresh TransactionBlockstore", function () {
|
6
9
|
let blocks: BaseBlockstore;
|
@@ -17,7 +20,7 @@ describe("Fresh TransactionBlockstore", function () {
|
|
17
20
|
// });
|
18
21
|
it("should not put", async () => {
|
19
22
|
const value = sthis.txt.encode("value");
|
20
|
-
const e = await blocks.put("key" as unknown as
|
23
|
+
const e = await blocks.put(await anyBlock2FPBlock({ cid: "key" as unknown as AnyLink, bytes: value })).catch((e) => e);
|
21
24
|
expect(e.message).toMatch(/transaction/g);
|
22
25
|
});
|
23
26
|
it("should yield a transaction", async () => {
|
@@ -49,7 +52,7 @@ describe("TransactionBlockstore with name", function () {
|
|
49
52
|
const bytes = sthis.txt.encode("bytes");
|
50
53
|
expect(blocks.loader).toBeTruthy();
|
51
54
|
blocks.loader.getBlock = async (cid) => {
|
52
|
-
return { cid, bytes };
|
55
|
+
return anyBlock2FPBlock({ cid, bytes });
|
53
56
|
};
|
54
57
|
const value = await blocks.get("key" as unknown as bs.AnyAnyLink);
|
55
58
|
expect(value).toEqual({ cid: "key" as unknown as bs.AnyAnyLink, bytes });
|
@@ -68,18 +71,18 @@ describe("A transaction", function () {
|
|
68
71
|
it("should put and get", async () => {
|
69
72
|
const cid = CID.parse("bafybeia4luuns6dgymy5kau5rm7r4qzrrzg6cglpzpogussprpy42cmcn4");
|
70
73
|
const bytes = sthis.txt.encode("bytes");
|
71
|
-
await tblocks.put(cid, bytes);
|
74
|
+
await tblocks.put(await anyBlock2FPBlock({ cid, bytes }));
|
72
75
|
expect(blocks.transactions.has(tblocks)).toBeTruthy();
|
73
76
|
const got = await tblocks.get(cid);
|
74
|
-
|
75
|
-
expect(got
|
76
|
-
expect(got
|
77
|
+
assert(got, "missing block");
|
78
|
+
expect(got.cid).toEqual(cid);
|
79
|
+
expect(got.bytes).toEqual(bytes);
|
77
80
|
});
|
78
81
|
});
|
79
82
|
|
80
|
-
function asUInt8Array(str: string, sthis: SuperThis) {
|
81
|
-
|
82
|
-
}
|
83
|
+
// function asUInt8Array(str: string, sthis: SuperThis) {
|
84
|
+
// return sthis.txt.encode(str);
|
85
|
+
// }
|
83
86
|
|
84
87
|
describe("TransactionBlockstore with a completed transaction", function () {
|
85
88
|
let blocks: BaseBlockstore;
|
@@ -93,13 +96,13 @@ describe("TransactionBlockstore with a completed transaction", function () {
|
|
93
96
|
|
94
97
|
blocks = new bs.BaseBlockstoreImpl(simpleBlockOpts(sthis));
|
95
98
|
await blocks.transaction(async (tblocks) => {
|
96
|
-
await tblocks.put(cid,
|
97
|
-
await tblocks.put(cid,
|
99
|
+
await tblocks.put(await anyBlock2FPBlock({ cid, bytes: to_uint8("value") }));
|
100
|
+
await tblocks.put(await anyBlock2FPBlock({ cid, bytes: to_uint8("value") }));
|
98
101
|
return { head: [] };
|
99
102
|
});
|
100
103
|
await blocks.transaction(async (tblocks) => {
|
101
|
-
await tblocks.put(cid,
|
102
|
-
await tblocks.put(cid2,
|
104
|
+
await tblocks.put(await anyBlock2FPBlock({ cid, bytes: to_uint8("value") }));
|
105
|
+
await tblocks.put(await anyBlock2FPBlock({ cid: cid2, bytes: to_uint8("value2") }));
|
103
106
|
return { head: [] };
|
104
107
|
});
|
105
108
|
});
|
@@ -110,10 +113,10 @@ describe("TransactionBlockstore with a completed transaction", function () {
|
|
110
113
|
it("should get", async () => {
|
111
114
|
const value = (await blocks.get(cid)) as bs.AnyBlock;
|
112
115
|
expect(value.cid).toEqual(cid);
|
113
|
-
expect(value.bytes.toString()).toEqual(
|
116
|
+
expect(value.bytes.toString()).toEqual(to_uint8("value").toString());
|
114
117
|
|
115
118
|
const value2 = (await blocks.get(cid2)) as bs.AnyBlock;
|
116
|
-
expect(value2.bytes.toString()).toEqual(
|
119
|
+
expect(value2.bytes.toString()).toEqual(to_uint8("value2").toString());
|
117
120
|
});
|
118
121
|
it("should yield entries", async () => {
|
119
122
|
const blz = [];
|
@@ -2,33 +2,7 @@ import { Database, Ledger, LedgerFactory, PARAM, bs, ensureSuperThis, fireproof
|
|
2
2
|
|
3
3
|
import { fileContent } from "./cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.js";
|
4
4
|
import { simpleCID } from "../helpers.js";
|
5
|
-
import { Future } from "@adviser/cement";
|
6
|
-
|
7
|
-
// import { DataStore, MetaStore, WALState, WALStore } from "../../src/blockstore/types.js";
|
8
|
-
// import { Gateway } from "../../src/blockstore/gateway.js";
|
9
|
-
// import { FPEnvelopeMeta, FPEnvelopeType } from "../../src/blockstore/fp-envelope.js";
|
10
|
-
|
11
|
-
// function customExpect(value: unknown, matcher: (val: unknown) => void, message: string): void {
|
12
|
-
// try {
|
13
|
-
// matcher(value);
|
14
|
-
// } catch (error) {
|
15
|
-
// void error;
|
16
|
-
// // console.error(error);
|
17
|
-
// throw new Error(message);
|
18
|
-
// }
|
19
|
-
// }
|
20
|
-
|
21
|
-
// interface ExtendedGateway extends bs.Gateway {
|
22
|
-
// readonly logger: Logger;
|
23
|
-
// readonly headerSize: number;
|
24
|
-
// readonly fidLength: number;
|
25
|
-
// }
|
26
|
-
|
27
|
-
// interface ExtendedStore {
|
28
|
-
// readonly gateway: ExtendedGateway;
|
29
|
-
// readonly _url: URI;
|
30
|
-
// readonly name: string;
|
31
|
-
// }
|
5
|
+
import { BuildURI, Future } from "@adviser/cement";
|
32
6
|
|
33
7
|
describe("noop Gateway", function () {
|
34
8
|
let db: Ledger;
|
@@ -381,6 +355,17 @@ describe("noop Gateway subscribe", function () {
|
|
381
355
|
});
|
382
356
|
beforeEach(async () => {
|
383
357
|
db = fireproof("test-gateway-" + sthis.nextId().str);
|
358
|
+
await db.close();
|
359
|
+
|
360
|
+
db = fireproof("test-gateway-" + sthis.nextId().str, {
|
361
|
+
storeUrls: {
|
362
|
+
...db.ledger.opts.storeUrls,
|
363
|
+
data: {
|
364
|
+
...db.ledger.opts.storeUrls.data,
|
365
|
+
meta: BuildURI.from(db.ledger.opts.storeUrls.data.meta).setParam(PARAM.SELF_REFLECT, "x").URI(),
|
366
|
+
},
|
367
|
+
},
|
368
|
+
});
|
384
369
|
|
385
370
|
await db.ready();
|
386
371
|
|