@fireproof/core 0.21.0-dev-preview-6 → 0.22.0-dev-preview
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/index.d.ts +2 -16
- package/index.js +2 -15
- package/index.js.map +1 -1
- package/index.ts +2 -0
- package/package.json +11 -70
- package/tsconfig.json +18 -0
- package/README.md +0 -269
- package/apply-head-queue.d.ts +0 -18
- package/apply-head-queue.d.ts.map +0 -1
- package/apply-head-queue.js +0 -47
- package/apply-head-queue.js.map +0 -1
- package/blockstore/attachable-store.d.ts +0 -19
- package/blockstore/attachable-store.d.ts.map +0 -1
- package/blockstore/attachable-store.js +0 -317
- package/blockstore/attachable-store.js.map +0 -1
- package/blockstore/commit-queue.d.ts +0 -17
- package/blockstore/commit-queue.d.ts.map +0 -1
- package/blockstore/commit-queue.js +0 -60
- package/blockstore/commit-queue.js.map +0 -1
- package/blockstore/commitor.d.ts +0 -21
- package/blockstore/commitor.d.ts.map +0 -1
- package/blockstore/commitor.js +0 -95
- package/blockstore/commitor.js.map +0 -1
- package/blockstore/connect-raw.d.ts +0 -2
- package/blockstore/connect-raw.d.ts.map +0 -1
- package/blockstore/connect-raw.js +0 -2
- package/blockstore/connect-raw.js.map +0 -1
- package/blockstore/connection-base.d.ts +0 -2
- package/blockstore/connection-base.d.ts.map +0 -1
- package/blockstore/connection-base.js +0 -2
- package/blockstore/connection-base.js.map +0 -1
- package/blockstore/encrypt-helpers.d.ts +0 -2
- package/blockstore/encrypt-helpers.d.ts.map +0 -1
- package/blockstore/encrypt-helpers.js +0 -2
- package/blockstore/encrypt-helpers.js.map +0 -1
- package/blockstore/fp-envelope.d.ts +0 -32
- package/blockstore/fp-envelope.d.ts.map +0 -1
- package/blockstore/fp-envelope.js +0 -14
- package/blockstore/fp-envelope.js.map +0 -1
- package/blockstore/gateway.d.ts +0 -20
- package/blockstore/gateway.d.ts.map +0 -1
- package/blockstore/gateway.js +0 -2
- package/blockstore/gateway.js.map +0 -1
- package/blockstore/index.d.ts +0 -16
- package/blockstore/index.d.ts.map +0 -1
- package/blockstore/index.js +0 -16
- package/blockstore/index.js.map +0 -1
- package/blockstore/interceptor-gateway.d.ts +0 -29
- package/blockstore/interceptor-gateway.d.ts.map +0 -1
- package/blockstore/interceptor-gateway.js +0 -137
- package/blockstore/interceptor-gateway.js.map +0 -1
- package/blockstore/loader-helpers.d.ts +0 -10
- package/blockstore/loader-helpers.d.ts.map +0 -1
- package/blockstore/loader-helpers.js +0 -115
- package/blockstore/loader-helpers.js.map +0 -1
- package/blockstore/loader.d.ts +0 -61
- package/blockstore/loader.d.ts.map +0 -1
- package/blockstore/loader.js +0 -493
- package/blockstore/loader.js.map +0 -1
- package/blockstore/register-store-protocol.d.ts +0 -22
- package/blockstore/register-store-protocol.d.ts.map +0 -1
- package/blockstore/register-store-protocol.js +0 -125
- package/blockstore/register-store-protocol.js.map +0 -1
- package/blockstore/serde-gateway.d.ts +0 -78
- package/blockstore/serde-gateway.d.ts.map +0 -1
- package/blockstore/serde-gateway.js +0 -2
- package/blockstore/serde-gateway.js.map +0 -1
- package/blockstore/store-factory.d.ts +0 -11
- package/blockstore/store-factory.d.ts.map +0 -1
- package/blockstore/store-factory.js +0 -104
- package/blockstore/store-factory.js.map +0 -1
- package/blockstore/store-remote.d.ts +0 -2
- package/blockstore/store-remote.d.ts.map +0 -1
- package/blockstore/store-remote.js +0 -2
- package/blockstore/store-remote.js.map +0 -1
- package/blockstore/store.d.ts +0 -86
- package/blockstore/store.d.ts.map +0 -1
- package/blockstore/store.js +0 -437
- package/blockstore/store.js.map +0 -1
- package/blockstore/task-manager.d.ts +0 -19
- package/blockstore/task-manager.d.ts.map +0 -1
- package/blockstore/task-manager.js +0 -50
- package/blockstore/task-manager.js.map +0 -1
- package/blockstore/transaction.d.ts +0 -62
- package/blockstore/transaction.d.ts.map +0 -1
- package/blockstore/transaction.js +0 -256
- package/blockstore/transaction.js.map +0 -1
- package/blockstore/types.d.ts +0 -510
- package/blockstore/types.d.ts.map +0 -1
- package/blockstore/types.js +0 -83
- package/blockstore/types.js.map +0 -1
- package/blockstore/uri-interceptor.d.ts +0 -19
- package/blockstore/uri-interceptor.d.ts.map +0 -1
- package/blockstore/uri-interceptor.js +0 -61
- package/blockstore/uri-interceptor.js.map +0 -1
- package/bundle-not-impl.d.ts +0 -2
- package/bundle-not-impl.d.ts.map +0 -1
- package/bundle-not-impl.js +0 -4
- package/bundle-not-impl.js.map +0 -1
- package/cli/main.js +0 -26613
- package/crdt-clock.d.ts +0 -26
- package/crdt-clock.d.ts.map +0 -1
- package/crdt-clock.js +0 -133
- package/crdt-clock.js.map +0 -1
- package/crdt-helpers.d.ts +0 -19
- package/crdt-helpers.d.ts.map +0 -1
- package/crdt-helpers.js +0 -332
- package/crdt-helpers.js.map +0 -1
- package/crdt.d.ts +0 -41
- package/crdt.d.ts.map +0 -1
- package/crdt.js +0 -164
- package/crdt.js.map +0 -1
- package/database.d.ts +0 -34
- package/database.d.ts.map +0 -1
- package/database.js +0 -133
- package/database.js.map +0 -1
- package/deno.json +0 -20
- package/index.d.ts.map +0 -1
- package/indexer-helpers.d.ts +0 -68
- package/indexer-helpers.d.ts.map +0 -1
- package/indexer-helpers.js +0 -157
- package/indexer-helpers.js.map +0 -1
- package/indexer.d.ts +0 -24
- package/indexer.d.ts.map +0 -1
- package/indexer.js +0 -239
- package/indexer.js.map +0 -1
- package/ledger.d.ts +0 -55
- package/ledger.d.ts.map +0 -1
- package/ledger.js +0 -240
- package/ledger.js.map +0 -1
- package/protocols/cloud/http-connection.d.ts +0 -25
- package/protocols/cloud/http-connection.d.ts.map +0 -1
- package/protocols/cloud/http-connection.js +0 -153
- package/protocols/cloud/http-connection.js.map +0 -1
- package/protocols/cloud/index.d.ts +0 -10
- package/protocols/cloud/index.d.ts.map +0 -1
- package/protocols/cloud/index.js +0 -10
- package/protocols/cloud/index.js.map +0 -1
- package/protocols/cloud/msg-raw-connection-base.d.ts +0 -16
- package/protocols/cloud/msg-raw-connection-base.d.ts.map +0 -1
- package/protocols/cloud/msg-raw-connection-base.js +0 -22
- package/protocols/cloud/msg-raw-connection-base.js.map +0 -1
- package/protocols/cloud/msg-types-data.d.ts +0 -36
- package/protocols/cloud/msg-types-data.d.ts.map +0 -1
- package/protocols/cloud/msg-types-data.js +0 -38
- package/protocols/cloud/msg-types-data.js.map +0 -1
- package/protocols/cloud/msg-types-meta.d.ts +0 -41
- package/protocols/cloud/msg-types-meta.d.ts.map +0 -1
- package/protocols/cloud/msg-types-meta.js +0 -98
- package/protocols/cloud/msg-types-meta.js.map +0 -1
- package/protocols/cloud/msg-types-wal.d.ts +0 -33
- package/protocols/cloud/msg-types-wal.d.ts.map +0 -1
- package/protocols/cloud/msg-types-wal.js +0 -38
- package/protocols/cloud/msg-types-wal.js.map +0 -1
- package/protocols/cloud/msg-types.d.ts +0 -296
- package/protocols/cloud/msg-types.d.ts.map +0 -1
- package/protocols/cloud/msg-types.js +0 -296
- package/protocols/cloud/msg-types.js.map +0 -1
- package/protocols/cloud/msger.d.ts +0 -79
- package/protocols/cloud/msger.d.ts.map +0 -1
- package/protocols/cloud/msger.js +0 -198
- package/protocols/cloud/msger.js.map +0 -1
- package/protocols/cloud/ws-connection.d.ts +0 -29
- package/protocols/cloud/ws-connection.d.ts.map +0 -1
- package/protocols/cloud/ws-connection.js +0 -166
- package/protocols/cloud/ws-connection.js.map +0 -1
- package/protocols/index.d.ts +0 -2
- package/protocols/index.d.ts.map +0 -1
- package/protocols/index.js +0 -2
- package/protocols/index.js.map +0 -1
- package/react/img-file.d.ts +0 -303
- package/react/img-file.d.ts.map +0 -1
- package/react/img-file.js +0 -92
- package/react/img-file.js.map +0 -1
- package/react/index.d.ts +0 -5
- package/react/index.d.ts.map +0 -1
- package/react/index.js +0 -5
- package/react/index.js.map +0 -1
- package/react/types.d.ts +0 -71
- package/react/types.d.ts.map +0 -1
- package/react/types.js +0 -2
- package/react/types.js.map +0 -1
- package/react/use-all-docs.d.ts +0 -4
- package/react/use-all-docs.d.ts.map +0 -1
- package/react/use-all-docs.js +0 -25
- package/react/use-all-docs.js.map +0 -1
- package/react/use-attach.d.ts +0 -6
- package/react/use-attach.d.ts.map +0 -1
- package/react/use-attach.js +0 -75
- package/react/use-attach.js.map +0 -1
- package/react/use-changes.d.ts +0 -4
- package/react/use-changes.d.ts.map +0 -1
- package/react/use-changes.js +0 -19
- package/react/use-changes.js.map +0 -1
- package/react/use-document.d.ts +0 -4
- package/react/use-document.d.ts.map +0 -1
- package/react/use-document.js +0 -109
- package/react/use-document.js.map +0 -1
- package/react/use-fireproof.d.ts +0 -6
- package/react/use-fireproof.d.ts.map +0 -1
- package/react/use-fireproof.js +0 -20
- package/react/use-fireproof.js.map +0 -1
- package/react/use-live-query.d.ts +0 -4
- package/react/use-live-query.d.ts.map +0 -1
- package/react/use-live-query.js +0 -24
- package/react/use-live-query.js.map +0 -1
- package/runtime/files.d.ts +0 -12
- package/runtime/files.d.ts.map +0 -1
- package/runtime/files.js +0 -29
- package/runtime/files.js.map +0 -1
- package/runtime/gateways/cloud/gateway.d.ts +0 -41
- package/runtime/gateways/cloud/gateway.d.ts.map +0 -1
- package/runtime/gateways/cloud/gateway.js +0 -512
- package/runtime/gateways/cloud/gateway.js.map +0 -1
- package/runtime/gateways/cloud/index.d.ts +0 -3
- package/runtime/gateways/cloud/index.d.ts.map +0 -1
- package/runtime/gateways/cloud/index.js +0 -3
- package/runtime/gateways/cloud/index.js.map +0 -1
- package/runtime/gateways/cloud/to-cloud.d.ts +0 -46
- package/runtime/gateways/cloud/to-cloud.d.ts.map +0 -1
- package/runtime/gateways/cloud/to-cloud.js +0 -159
- package/runtime/gateways/cloud/to-cloud.js.map +0 -1
- package/runtime/gateways/def-serde-gateway.d.ts +0 -18
- package/runtime/gateways/def-serde-gateway.d.ts.map +0 -1
- package/runtime/gateways/def-serde-gateway.js +0 -92
- package/runtime/gateways/def-serde-gateway.js.map +0 -1
- package/runtime/gateways/file/deno/deno-filesystem.d.ts +0 -27
- package/runtime/gateways/file/deno/deno-filesystem.d.ts.map +0 -1
- package/runtime/gateways/file/deno/deno-filesystem.js +0 -52
- package/runtime/gateways/file/deno/deno-filesystem.js.map +0 -1
- package/runtime/gateways/file/deno/get-sys-file-system.d.ts +0 -4
- package/runtime/gateways/file/deno/get-sys-file-system.d.ts.map +0 -1
- package/runtime/gateways/file/deno/get-sys-file-system.js +0 -11
- package/runtime/gateways/file/deno/get-sys-file-system.js.map +0 -1
- package/runtime/gateways/file/deno/index.d.ts +0 -2
- package/runtime/gateways/file/deno/index.d.ts.map +0 -1
- package/runtime/gateways/file/deno/index.js +0 -2
- package/runtime/gateways/file/deno/index.js.map +0 -1
- package/runtime/gateways/file/gateway-impl.d.ts +0 -18
- package/runtime/gateways/file/gateway-impl.d.ts.map +0 -1
- package/runtime/gateways/file/gateway-impl.js +0 -121
- package/runtime/gateways/file/gateway-impl.js.map +0 -1
- package/runtime/gateways/file/index.d.ts +0 -3
- package/runtime/gateways/file/index.d.ts.map +0 -1
- package/runtime/gateways/file/index.js +0 -3
- package/runtime/gateways/file/index.js.map +0 -1
- package/runtime/gateways/file/key-bag-file.d.ts +0 -19
- package/runtime/gateways/file/key-bag-file.d.ts.map +0 -1
- package/runtime/gateways/file/key-bag-file.js +0 -40
- package/runtime/gateways/file/key-bag-file.js.map +0 -1
- package/runtime/gateways/file/node/get-sys-file-system.d.ts +0 -4
- package/runtime/gateways/file/node/get-sys-file-system.d.ts.map +0 -1
- package/runtime/gateways/file/node/get-sys-file-system.js +0 -11
- package/runtime/gateways/file/node/get-sys-file-system.js.map +0 -1
- package/runtime/gateways/file/node/index.d.ts +0 -2
- package/runtime/gateways/file/node/index.d.ts.map +0 -1
- package/runtime/gateways/file/node/index.js +0 -2
- package/runtime/gateways/file/node/index.js.map +0 -1
- package/runtime/gateways/file/node/node-filesystem.d.ts +0 -32
- package/runtime/gateways/file/node/node-filesystem.d.ts.map +0 -1
- package/runtime/gateways/file/node/node-filesystem.js +0 -33
- package/runtime/gateways/file/node/node-filesystem.js.map +0 -1
- package/runtime/gateways/file/node/to-array-buffer.d.ts +0 -2
- package/runtime/gateways/file/node/to-array-buffer.d.ts.map +0 -1
- package/runtime/gateways/file/node/to-array-buffer.js +0 -12
- package/runtime/gateways/file/node/to-array-buffer.js.map +0 -1
- package/runtime/gateways/file/sys-file-system-factory.d.ts +0 -4
- package/runtime/gateways/file/sys-file-system-factory.d.ts.map +0 -1
- package/runtime/gateways/file/sys-file-system-factory.js +0 -13
- package/runtime/gateways/file/sys-file-system-factory.js.map +0 -1
- package/runtime/gateways/file/utils.d.ts +0 -5
- package/runtime/gateways/file/utils.d.ts.map +0 -1
- package/runtime/gateways/file/utils.js +0 -27
- package/runtime/gateways/file/utils.js.map +0 -1
- package/runtime/gateways/file/version.d.ts +0 -2
- package/runtime/gateways/file/version.d.ts.map +0 -1
- package/runtime/gateways/file/version.js +0 -2
- package/runtime/gateways/file/version.js.map +0 -1
- package/runtime/gateways/fp-envelope-serialize.d.ts +0 -50
- package/runtime/gateways/fp-envelope-serialize.d.ts.map +0 -1
- package/runtime/gateways/fp-envelope-serialize.js +0 -141
- package/runtime/gateways/fp-envelope-serialize.js.map +0 -1
- package/runtime/gateways/index.d.ts +0 -6
- package/runtime/gateways/index.d.ts.map +0 -1
- package/runtime/gateways/index.js +0 -6
- package/runtime/gateways/index.js.map +0 -1
- package/runtime/gateways/indexeddb/gateway-impl.d.ts +0 -22
- package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +0 -1
- package/runtime/gateways/indexeddb/gateway-impl.js +0 -147
- package/runtime/gateways/indexeddb/gateway-impl.js.map +0 -1
- package/runtime/gateways/indexeddb/index.d.ts +0 -6
- package/runtime/gateways/indexeddb/index.d.ts.map +0 -1
- package/runtime/gateways/indexeddb/index.js +0 -6
- package/runtime/gateways/indexeddb/index.js.map +0 -1
- package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -15
- package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +0 -1
- package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -42
- package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +0 -1
- package/runtime/gateways/indexeddb-version.d.ts +0 -2
- package/runtime/gateways/indexeddb-version.d.ts.map +0 -1
- package/runtime/gateways/indexeddb-version.js +0 -2
- package/runtime/gateways/indexeddb-version.js.map +0 -1
- package/runtime/gateways/memory/gateway.d.ts +0 -18
- package/runtime/gateways/memory/gateway.d.ts.map +0 -1
- package/runtime/gateways/memory/gateway.js +0 -73
- package/runtime/gateways/memory/gateway.js.map +0 -1
- package/runtime/gateways/memory/version.d.ts +0 -2
- package/runtime/gateways/memory/version.d.ts.map +0 -1
- package/runtime/gateways/memory/version.js +0 -2
- package/runtime/gateways/memory/version.js.map +0 -1
- package/runtime/index.d.ts +0 -13
- package/runtime/index.d.ts.map +0 -1
- package/runtime/index.js +0 -13
- package/runtime/index.js.map +0 -1
- package/runtime/key-bag-memory.d.ts +0 -12
- package/runtime/key-bag-memory.d.ts.map +0 -1
- package/runtime/key-bag-memory.js +0 -23
- package/runtime/key-bag-memory.js.map +0 -1
- package/runtime/key-bag.d.ts +0 -85
- package/runtime/key-bag.d.ts.map +0 -1
- package/runtime/key-bag.js +0 -411
- package/runtime/key-bag.js.map +0 -1
- package/runtime/keyed-crypto.d.ts +0 -19
- package/runtime/keyed-crypto.d.ts.map +0 -1
- package/runtime/keyed-crypto.js +0 -192
- package/runtime/keyed-crypto.js.map +0 -1
- package/runtime/memory-sys-container.d.ts +0 -2
- package/runtime/memory-sys-container.d.ts.map +0 -1
- package/runtime/memory-sys-container.js +0 -2
- package/runtime/memory-sys-container.js.map +0 -1
- package/runtime/meta-key-hack.d.ts +0 -42
- package/runtime/meta-key-hack.d.ts.map +0 -1
- package/runtime/meta-key-hack.js +0 -201
- package/runtime/meta-key-hack.js.map +0 -1
- package/runtime/sts-service/index.d.ts +0 -40
- package/runtime/sts-service/index.d.ts.map +0 -1
- package/runtime/sts-service/index.js +0 -108
- package/runtime/sts-service/index.js.map +0 -1
- package/runtime/sys-container.d.ts +0 -2
- package/runtime/sys-container.d.ts.map +0 -1
- package/runtime/sys-container.js +0 -2
- package/runtime/sys-container.js.map +0 -1
- package/runtime/wait-pr-multiformats/block.d.ts +0 -47
- package/runtime/wait-pr-multiformats/block.d.ts.map +0 -1
- package/runtime/wait-pr-multiformats/block.js +0 -64
- package/runtime/wait-pr-multiformats/block.js.map +0 -1
- package/runtime/wait-pr-multiformats/codec-interface.d.ts +0 -29
- package/runtime/wait-pr-multiformats/codec-interface.d.ts.map +0 -1
- package/runtime/wait-pr-multiformats/codec-interface.js +0 -2
- package/runtime/wait-pr-multiformats/codec-interface.js.map +0 -1
- package/runtime/wait-pr-multiformats/index.d.ts +0 -3
- package/runtime/wait-pr-multiformats/index.d.ts.map +0 -1
- package/runtime/wait-pr-multiformats/index.js +0 -3
- package/runtime/wait-pr-multiformats/index.js.map +0 -1
- package/tests/blockstore/fp-envelope.test.ts-off +0 -65
- package/tests/blockstore/fragment-gateway.test.ts-off +0 -106
- package/tests/blockstore/interceptor-gateway.test.ts +0 -254
- package/tests/blockstore/keyed-crypto-indexeddb-file.test.ts +0 -128
- package/tests/blockstore/keyed-crypto.test.ts +0 -526
- package/tests/blockstore/loader.test.ts +0 -297
- package/tests/blockstore/standalone.test.ts +0 -152
- package/tests/blockstore/store.test.ts +0 -192
- package/tests/blockstore/transaction.test.ts +0 -130
- package/tests/fireproof/all-gateway.test.ts +0 -461
- package/tests/fireproof/attachable.test.ts +0 -686
- package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.car +0 -0
- package/tests/fireproof/cars/bafkreidxwt2nhvbl4fnqfw3ctlt6zbrir4kqwmjo5im6rf4q5si27kgo2i.ts +0 -324
- package/tests/fireproof/charwise-boolean.test.ts +0 -66
- package/tests/fireproof/crdt.test.ts +0 -570
- package/tests/fireproof/database.test.ts +0 -779
- package/tests/fireproof/deleted-docs-handling.test.ts +0 -111
- package/tests/fireproof/fireproof.test.fixture.ts +0 -133
- package/tests/fireproof/fireproof.test.ts +0 -777
- package/tests/fireproof/hello.test.ts +0 -74
- package/tests/fireproof/indexer.test.ts +0 -458
- package/tests/fireproof/multiple-ledger.test.ts +0 -65
- package/tests/fireproof/query-docs.test.ts +0 -116
- package/tests/fireproof/query-limit-issue.test.ts +0 -147
- package/tests/fireproof/query-property-inconsistency.test.ts +0 -89
- package/tests/fireproof/query-result-properties.test.ts +0 -42
- package/tests/fireproof/stable-cid.test.ts +0 -69
- package/tests/fireproof/utils.test.ts +0 -135
- package/tests/gateway/file/loader-config.test.ts +0 -307
- package/tests/gateway/indexeddb/loader-config.test.ts +0 -79
- package/tests/helpers.ts +0 -174
- package/tests/react/img-file.test.tsx +0 -190
- package/tests/react/use-all-docs.test.tsx +0 -173
- package/tests/react/use-document-with-nonexistent-id.test.tsx +0 -96
- package/tests/react/use-fireproof-db-switch.test.tsx +0 -91
- package/tests/react/use-fireproof-stability.test.tsx +0 -145
- package/tests/react/use-fireproof.test.tsx +0 -645
- package/tests/runtime/fp-envelope-serialize.test.ts +0 -254
- package/tests/runtime/meta-key-hack.test.ts +0 -95
- package/tests/setup.file.ts +0 -1
- package/tests/setup.indexeddb.ts +0 -0
- package/tests/setup.memory.ts +0 -2
- package/tests/utils.test.ts +0 -192
- package/tests/vitest.file.config.ts +0 -14
- package/tests/vitest.indexeddb.config.ts +0 -37
- package/tests/vitest.memory.config.ts +0 -25
- package/types.d.ts +0 -462
- package/types.d.ts.map +0 -1
- package/types.js +0 -60
- package/types.js.map +0 -1
- package/use-fireproof/iframe-strategy.d.ts +0 -13
- package/use-fireproof/iframe-strategy.d.ts.map +0 -1
- package/use-fireproof/iframe-strategy.js +0 -83
- package/use-fireproof/iframe-strategy.js.map +0 -1
- package/use-fireproof/index.d.ts +0 -10
- package/use-fireproof/index.d.ts.map +0 -1
- package/use-fireproof/index.js +0 -16
- package/use-fireproof/index.js.map +0 -1
- package/use-fireproof/redirect-strategy.d.ts +0 -8
- package/use-fireproof/redirect-strategy.d.ts.map +0 -1
- package/use-fireproof/redirect-strategy.js +0 -31
- package/use-fireproof/redirect-strategy.js.map +0 -1
- package/utils.d.ts +0 -49
- package/utils.d.ts.map +0 -1
- package/utils.js +0 -454
- package/utils.js.map +0 -1
- package/version.d.ts +0 -2
- package/version.d.ts.map +0 -1
- package/version.js +0 -4
- package/version.js.map +0 -1
- package/write-queue.d.ts +0 -9
- package/write-queue.d.ts.map +0 -1
- package/write-queue.js +0 -70
- package/write-queue.js.map +0 -1
@@ -1 +0,0 @@
|
|
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"}
|
@@ -1,65 +0,0 @@
|
|
1
|
-
|
2
|
-
describe("FPEnvelope", () => {
|
3
|
-
// const sthis = mockSuperThis();
|
4
|
-
// it("unknown bytes", () => {
|
5
|
-
// expect(bs.FPMsgMatch2Envelope(Uint8Array.from([1, 2, 3]), "bla").Err().message).toStrictEqual(
|
6
|
-
// "failed to decode envelope: Error: CBOR decode error: too many terminals, data makes no sense"
|
7
|
-
// );
|
8
|
-
// });
|
9
|
-
|
10
|
-
// it("unknown type", () => {
|
11
|
-
// expect(bs.FPMsgMatch2Envelope(encode({ type: "blax", payload: 4 }), "bla"))
|
12
|
-
// .toStrictEqual(Result.Err("expected type to be bla"));
|
13
|
-
// })
|
14
|
-
|
15
|
-
// it("no type", () => {
|
16
|
-
// expect(bs.FPMsgMatch2Envelope(encode({ type: "blax", payload: 4 })))
|
17
|
-
// .toStrictEqual(Result.Ok({ type: "blax", payload: 4 }));
|
18
|
-
// })
|
19
|
-
|
20
|
-
// it("car type", () => {
|
21
|
-
// expect(bs.FPMsg2Car(bs.Car2FPMsg(Uint8Array.from([1, 2, 3])).Ok().payload).Ok()).toStrictEqual(Uint8Array.from([1, 2, 3]));
|
22
|
-
// })
|
23
|
-
|
24
|
-
// it("file type", () => {
|
25
|
-
// expect(bs.FPMsg2File(bs.File2FPMsg(Uint8Array.from([1, 2, 3])).Ok().payload).Ok()).toStrictEqual(Uint8Array.from([1, 2, 3]));
|
26
|
-
// })
|
27
|
-
|
28
|
-
// it("meta type", async () => {
|
29
|
-
// const ref = {
|
30
|
-
// eventCid: await simpleCID(sthis),
|
31
|
-
// dbMeta: {
|
32
|
-
// cars: [
|
33
|
-
// await simpleCID(sthis)
|
34
|
-
// ]
|
35
|
-
// },
|
36
|
-
// parents: [
|
37
|
-
// await simpleCID(sthis),
|
38
|
-
// await simpleCID(sthis)
|
39
|
-
// ]
|
40
|
-
// } satisfies DbMetaEvent;
|
41
|
-
// expect(bs.FPMsg2Meta(bs.Meta2FPMsg([ref])).Ok()).toEqual(ref);
|
42
|
-
// })
|
43
|
-
|
44
|
-
// it("wal type", () => {
|
45
|
-
// const ref: bs.WALState = {
|
46
|
-
// fileOperations: [],
|
47
|
-
// noLoaderOps: [],
|
48
|
-
// operations: [
|
49
|
-
// {
|
50
|
-
// cars: [
|
51
|
-
// CID.parse("bag4yvqabciqdzvfxrxfi6feubspyz666zegmp3z5w556mr4ykya2kkdm22r7pyy")
|
52
|
-
// ]
|
53
|
-
// },
|
54
|
-
// {
|
55
|
-
// cars: [
|
56
|
-
// CID.parse("bag4yvqabciqd2ul2tw4mdcpvfq2pdqhvnqp2ktuyrtcl3j3gwhxbjzjt62xzeaq")
|
57
|
-
// ]
|
58
|
-
// }
|
59
|
-
// ]
|
60
|
-
// };
|
61
|
-
// const res = bs.FPMsg2WAL(bs.WAL2FPMsg(sthis, ref).Ok()).Ok();
|
62
|
-
// expect(res).toStrictEqual(ref);
|
63
|
-
// expect(res.operations[0].cars[0].version).toStrictEqual(1);
|
64
|
-
// })
|
65
|
-
})
|
@@ -1,106 +0,0 @@
|
|
1
|
-
import { Result, URI } from "@adviser/cement";
|
2
|
-
import { bs, ensureSuperThis } from "@fireproof/core";
|
3
|
-
|
4
|
-
class TraceGateway implements bs.Gateway {
|
5
|
-
readonly buildUrlFn = vitest.fn();
|
6
|
-
|
7
|
-
readonly fragSize: number;
|
8
|
-
constructor(fragSize = 0) {
|
9
|
-
this.fragSize = fragSize;
|
10
|
-
}
|
11
|
-
|
12
|
-
buildUrl(baseUrl: URI, key: string): Promise<Result<URI>> {
|
13
|
-
this.buildUrlFn(baseUrl, key);
|
14
|
-
return Promise.resolve(Result.Ok(baseUrl.build().setParam("key", key).URI()));
|
15
|
-
}
|
16
|
-
readonly startFn = vitest.fn();
|
17
|
-
start(baseUrl: URI): Promise<Result<URI>> {
|
18
|
-
this.startFn(baseUrl);
|
19
|
-
const burl = baseUrl.build();
|
20
|
-
if (this.fragSize) {
|
21
|
-
burl.setParam("fragSize", this.fragSize.toString());
|
22
|
-
}
|
23
|
-
return Promise.resolve(Result.Ok(burl.URI()));
|
24
|
-
}
|
25
|
-
readonly closeFn = vitest.fn();
|
26
|
-
close(baseUrl: URI): Promise<bs.VoidResult> {
|
27
|
-
this.closeFn(baseUrl);
|
28
|
-
return Promise.resolve(Result.Ok(undefined));
|
29
|
-
}
|
30
|
-
readonly destroyFn = vitest.fn();
|
31
|
-
destroy(baseUrl: URI): Promise<bs.VoidResult> {
|
32
|
-
this.destroyFn(baseUrl);
|
33
|
-
return Promise.resolve(Result.Ok(undefined));
|
34
|
-
}
|
35
|
-
readonly getFn = vitest.fn();
|
36
|
-
putCalls = 0;
|
37
|
-
async get(url: URI): Promise<Result<Uint8Array>> {
|
38
|
-
const idx = this.putCalls++;
|
39
|
-
this.getFn(url);
|
40
|
-
return Result.Ok(this.putFn.mock.calls[idx][1]);
|
41
|
-
}
|
42
|
-
readonly putFn = vitest.fn();
|
43
|
-
async put(url: URI, data: Uint8Array): Promise<Result<void>> {
|
44
|
-
this.putFn(url, data);
|
45
|
-
return Result.Ok(undefined);
|
46
|
-
}
|
47
|
-
readonly deleteFn = vitest.fn();
|
48
|
-
async delete(url: URI): Promise<Result<void>> {
|
49
|
-
this.deleteFn(url);
|
50
|
-
return Result.Ok(undefined);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
describe("FragmentGateway", () => {
|
55
|
-
const sthis = ensureSuperThis();
|
56
|
-
it("passthrough", async () => {
|
57
|
-
const innerGW = new TraceGateway();
|
58
|
-
const fgw = new bs.FragmentGateway(sthis, innerGW);
|
59
|
-
const url = URI.from("http://example.com?key=3333");
|
60
|
-
|
61
|
-
expect(await fgw.put(url, new Uint8Array([1, 2, 3, 4]))).toEqual(Result.Ok(undefined));
|
62
|
-
expect(innerGW.putFn).toHaveBeenCalledWith(url, new Uint8Array([1, 2, 3, 4]));
|
63
|
-
|
64
|
-
expect(await fgw.get(url)).toEqual(Result.Ok(new Uint8Array([1, 2, 3, 4])));
|
65
|
-
expect(innerGW.getFn).toHaveBeenCalledWith(url);
|
66
|
-
});
|
67
|
-
|
68
|
-
function slice(total: number, headerSize: number, fragSize: number): { len?: string; ofs: string }[] {
|
69
|
-
const res = [];
|
70
|
-
for (let ofs = 0; ofs < total; ofs += fragSize - headerSize) {
|
71
|
-
res.push({ len: total.toString(), ofs: ofs.toString() });
|
72
|
-
}
|
73
|
-
return res;
|
74
|
-
}
|
75
|
-
|
76
|
-
it("enable frag", async () => {
|
77
|
-
const innerGW = new TraceGateway(128);
|
78
|
-
const fgw = new bs.FragmentGateway(sthis, innerGW);
|
79
|
-
const url = (await fgw.start(URI.from("http://example.com?key=3333"))).Ok();
|
80
|
-
const buf = new Uint8Array(1024).fill(1).map((_, i) => i);
|
81
|
-
|
82
|
-
expect(await fgw.put(url, buf)).toEqual(Result.Ok(undefined));
|
83
|
-
|
84
|
-
const ref = slice(1024, fgw.headerSize, 128);
|
85
|
-
|
86
|
-
expect(
|
87
|
-
innerGW.putFn.mock.calls.map((i) => {
|
88
|
-
return {
|
89
|
-
len: i[0].getParam("len"),
|
90
|
-
ofs: i[0].getParam("ofs"),
|
91
|
-
};
|
92
|
-
}),
|
93
|
-
).toEqual(ref);
|
94
|
-
|
95
|
-
expect((await fgw.get(url)).Ok()).toEqual(buf);
|
96
|
-
ref[0].len = undefined;
|
97
|
-
expect(
|
98
|
-
innerGW.getFn.mock.calls.map((i) => {
|
99
|
-
return {
|
100
|
-
len: i[0].getParam("len"),
|
101
|
-
ofs: i[0].getParam("ofs"),
|
102
|
-
};
|
103
|
-
}),
|
104
|
-
).toEqual(ref);
|
105
|
-
});
|
106
|
-
});
|
@@ -1,254 +0,0 @@
|
|
1
|
-
import { BuildURI, Result, URI } from "@adviser/cement";
|
2
|
-
import { bs, rt, fireproof, SuperThis } from "@fireproof/core";
|
3
|
-
|
4
|
-
class TestInterceptor extends bs.PassThroughGateway {
|
5
|
-
readonly fn = vitest.fn();
|
6
|
-
|
7
|
-
async buildUrl(ctx: bs.SerdeGatewayCtx, baseUrl: URI, key: string): Promise<Result<bs.SerdeGatewayBuildUrlReturn>> {
|
8
|
-
const ret = await super.buildUrl(ctx, baseUrl, key);
|
9
|
-
this.fn("buildUrl", ret);
|
10
|
-
return ret;
|
11
|
-
}
|
12
|
-
|
13
|
-
async start(ctx: bs.SerdeGatewayCtx, baseUrl: URI): Promise<Result<bs.SerdeGatewayStartReturn>> {
|
14
|
-
const ret = await super.start(ctx, baseUrl);
|
15
|
-
this.fn("start", ret);
|
16
|
-
return ret;
|
17
|
-
}
|
18
|
-
async close(ctx: bs.SerdeGatewayCtx, baseUrl: URI): Promise<Result<bs.SerdeGatewayCloseReturn>> {
|
19
|
-
const ret = await super.close(ctx, baseUrl);
|
20
|
-
this.fn("close", ret);
|
21
|
-
return ret;
|
22
|
-
}
|
23
|
-
async delete(ctx: bs.SerdeGatewayCtx, baseUrl: URI): Promise<Result<bs.SerdeGatewayDeleteReturn>> {
|
24
|
-
const ret = await super.delete(ctx, baseUrl);
|
25
|
-
this.fn("delete", ret);
|
26
|
-
return ret;
|
27
|
-
}
|
28
|
-
async destroy(ctx: bs.SerdeGatewayCtx, baseUrl: URI): Promise<Result<bs.SerdeGatewayDestroyReturn>> {
|
29
|
-
const ret = await super.destroy(ctx, baseUrl);
|
30
|
-
this.fn("destroy", ret);
|
31
|
-
return ret;
|
32
|
-
}
|
33
|
-
async put<T>(ctx: bs.SerdeGatewayCtx, url: URI, body: bs.FPEnvelope<T>): Promise<Result<bs.SerdeGatewayPutReturn<T>>> {
|
34
|
-
const ret = await super.put<T>(ctx, url, body);
|
35
|
-
this.fn("put", ret);
|
36
|
-
return ret;
|
37
|
-
}
|
38
|
-
async get<S>(ctx: bs.SerdeGatewayCtx, url: URI): Promise<Result<bs.SerdeGatewayGetReturn<S>>> {
|
39
|
-
const ret = await super.get<S>(ctx, url);
|
40
|
-
this.fn("get", ret);
|
41
|
-
return ret;
|
42
|
-
}
|
43
|
-
async subscribe(
|
44
|
-
ctx: bs.SerdeGatewayCtx,
|
45
|
-
url: URI,
|
46
|
-
callback: (meta: bs.FPEnvelopeMeta) => Promise<void>,
|
47
|
-
): Promise<Result<bs.SerdeGatewaySubscribeReturn>> {
|
48
|
-
const ret = await super.subscribe(ctx, url, callback);
|
49
|
-
this.fn("subscribe", ret);
|
50
|
-
return ret;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
export class URITrackGateway implements bs.Gateway {
|
55
|
-
readonly uris: Set<string>;
|
56
|
-
readonly memgw: rt.gw.memory.MemoryGateway;
|
57
|
-
|
58
|
-
constructor(sthis: SuperThis, memorys: Map<string, Uint8Array>, uris: Set<string>) {
|
59
|
-
this.memgw = new rt.gw.memory.MemoryGateway(sthis, memorys);
|
60
|
-
this.uris = uris;
|
61
|
-
}
|
62
|
-
|
63
|
-
uriAdd(uri: URI) {
|
64
|
-
if (!uri.getParam("itis")) {
|
65
|
-
throw new Error("itis not set");
|
66
|
-
}
|
67
|
-
if (this.uris.has(uri.toString())) {
|
68
|
-
throw new Error(`uri already added:${uri.toString()}`);
|
69
|
-
}
|
70
|
-
this.uris.add(uri.toString());
|
71
|
-
}
|
72
|
-
|
73
|
-
buildUrl(baseUrl: URI, key: string): Promise<Result<URI>> {
|
74
|
-
this.uriAdd(baseUrl);
|
75
|
-
return this.memgw.buildUrl(baseUrl, key);
|
76
|
-
}
|
77
|
-
start(baseUrl: URI): Promise<Result<URI>> {
|
78
|
-
this.uriAdd(baseUrl);
|
79
|
-
return this.memgw.start(baseUrl);
|
80
|
-
}
|
81
|
-
close(uri: URI): Promise<bs.VoidResult> {
|
82
|
-
this.uriAdd(uri);
|
83
|
-
return this.memgw.close(uri);
|
84
|
-
}
|
85
|
-
destroy(baseUrl: URI): Promise<bs.VoidResult> {
|
86
|
-
this.uriAdd(baseUrl);
|
87
|
-
return this.memgw.destroy(baseUrl);
|
88
|
-
}
|
89
|
-
|
90
|
-
put(url: URI, bytes: Uint8Array, sthis: SuperThis): Promise<bs.VoidResult> {
|
91
|
-
// console.log("put", url.getParam(PARAM.KEY), url.toString());
|
92
|
-
this.uriAdd(url);
|
93
|
-
return this.memgw.put(url.build().cleanParams("itis").URI(), bytes, sthis);
|
94
|
-
}
|
95
|
-
|
96
|
-
async get(url: URI, sthis: SuperThis): Promise<bs.GetResult> {
|
97
|
-
this.uriAdd(url);
|
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;
|
103
|
-
}
|
104
|
-
delete(url: URI): Promise<bs.VoidResult> {
|
105
|
-
this.uriAdd(url);
|
106
|
-
return this.memgw.delete(url);
|
107
|
-
}
|
108
|
-
|
109
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
110
|
-
subscribe(url: URI, callback: (meta: Uint8Array) => void, sthis: SuperThis): Promise<bs.UnsubscribeResult> {
|
111
|
-
this.uriAdd(url);
|
112
|
-
return Promise.resolve(
|
113
|
-
Result.Ok(() => {
|
114
|
-
/* noop */
|
115
|
-
}),
|
116
|
-
);
|
117
|
-
}
|
118
|
-
|
119
|
-
async getPlain(url: URI, key: string): Promise<Result<Uint8Array>> {
|
120
|
-
this.uriAdd(url);
|
121
|
-
return this.memgw.getPlain(url, key);
|
122
|
-
}
|
123
|
-
}
|
124
|
-
|
125
|
-
describe("InterceptorGateway", () => {
|
126
|
-
it("passthrough", async () => {
|
127
|
-
const gwi = new TestInterceptor();
|
128
|
-
const db = fireproof("interceptor-gateway", {
|
129
|
-
gatewayInterceptor: gwi,
|
130
|
-
});
|
131
|
-
expect(
|
132
|
-
await db.put({
|
133
|
-
_id: "foo",
|
134
|
-
foo: 4,
|
135
|
-
}),
|
136
|
-
);
|
137
|
-
expect(await db.get("foo")).toEqual({
|
138
|
-
_id: "foo",
|
139
|
-
foo: 4,
|
140
|
-
});
|
141
|
-
await db.close();
|
142
|
-
await db.destroy();
|
143
|
-
// await sleep(1000);
|
144
|
-
expect(gwi.fn.mock.calls.length).toBe(54);
|
145
|
-
// might be a stupid test
|
146
|
-
expect(gwi.fn.mock.calls.map((i) => i[0]).sort() /* not ok there are some operation */).toEqual(
|
147
|
-
[
|
148
|
-
"start",
|
149
|
-
"start",
|
150
|
-
"buildUrl",
|
151
|
-
"get",
|
152
|
-
"buildUrl",
|
153
|
-
"buildUrl",
|
154
|
-
"buildUrl",
|
155
|
-
"buildUrl",
|
156
|
-
"buildUrl",
|
157
|
-
"buildUrl",
|
158
|
-
"buildUrl",
|
159
|
-
"buildUrl",
|
160
|
-
"get",
|
161
|
-
"get",
|
162
|
-
"start",
|
163
|
-
"start",
|
164
|
-
"buildUrl",
|
165
|
-
"get",
|
166
|
-
"get",
|
167
|
-
"buildUrl",
|
168
|
-
"put",
|
169
|
-
"put",
|
170
|
-
"buildUrl",
|
171
|
-
"put",
|
172
|
-
"buildUrl",
|
173
|
-
"put",
|
174
|
-
"put",
|
175
|
-
"put",
|
176
|
-
"put",
|
177
|
-
"put",
|
178
|
-
"start",
|
179
|
-
"start",
|
180
|
-
"start",
|
181
|
-
"start",
|
182
|
-
"close",
|
183
|
-
"close",
|
184
|
-
"close",
|
185
|
-
"close",
|
186
|
-
"buildUrl",
|
187
|
-
"get",
|
188
|
-
"close",
|
189
|
-
"close",
|
190
|
-
"close",
|
191
|
-
"close",
|
192
|
-
"destroy",
|
193
|
-
"destroy",
|
194
|
-
"destroy",
|
195
|
-
"destroy",
|
196
|
-
"destroy",
|
197
|
-
"destroy",
|
198
|
-
"destroy",
|
199
|
-
"destroy",
|
200
|
-
"subscribe",
|
201
|
-
"subscribe",
|
202
|
-
].sort() /* not ok there are some operation */,
|
203
|
-
);
|
204
|
-
});
|
205
|
-
|
206
|
-
it("use the uri-interceptor", async () => {
|
207
|
-
let callCount = 0;
|
208
|
-
const gwUris = new Set<string>();
|
209
|
-
const unreg = bs.registerStoreProtocol({
|
210
|
-
protocol: "uriTest:",
|
211
|
-
isDefault: false,
|
212
|
-
defaultURI: () => {
|
213
|
-
return BuildURI.from("uriTest://").pathname("ram").URI();
|
214
|
-
},
|
215
|
-
gateway: async (sthis) => {
|
216
|
-
return new URITrackGateway(sthis, new Map<string, Uint8Array>(), gwUris);
|
217
|
-
},
|
218
|
-
});
|
219
|
-
const db = fireproof("interceptor-gateway", {
|
220
|
-
storeUrls: {
|
221
|
-
base: "uriTest://inspector-gateway",
|
222
|
-
},
|
223
|
-
gatewayInterceptor: bs.URIInterceptor.withMapper(async (uri: URI) =>
|
224
|
-
uri
|
225
|
-
.build()
|
226
|
-
.setParam("itis", "" + ++callCount)
|
227
|
-
.URI(),
|
228
|
-
),
|
229
|
-
});
|
230
|
-
await Promise.all(
|
231
|
-
Array(5)
|
232
|
-
.fill(0)
|
233
|
-
.map((_, i) => db.put({ _id: "foo" + i, foo: i })),
|
234
|
-
);
|
235
|
-
expect((await db.allDocs<{ foo: number }>()).rows.map((i) => i.value.foo)).toEqual(
|
236
|
-
Array(5)
|
237
|
-
.fill(0)
|
238
|
-
.map((_, i) => i),
|
239
|
-
);
|
240
|
-
await db.close();
|
241
|
-
expect(callCount).toBe(gwUris.size);
|
242
|
-
expect(
|
243
|
-
Array.from(gwUris)
|
244
|
-
.map((i) => URI.from(i).getParam("itis"))
|
245
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
246
|
-
.sort((a, b) => +a! - +b!),
|
247
|
-
).toEqual(
|
248
|
-
Array(gwUris.size)
|
249
|
-
.fill(1)
|
250
|
-
.map((_, i) => "" + (i + 1)),
|
251
|
-
);
|
252
|
-
unreg();
|
253
|
-
});
|
254
|
-
});
|
@@ -1,128 +0,0 @@
|
|
1
|
-
import { bs, ensureSuperThis, PARAM, rt } from "@fireproof/core";
|
2
|
-
import { runtimeFn, toCryptoRuntime, URI } from "@adviser/cement";
|
3
|
-
import { base58btc } from "multiformats/bases/base58";
|
4
|
-
import { mockLoader, mockSuperThis } from "../helpers.js";
|
5
|
-
import { KeyBagProviderIndexedDB } from "@fireproof/core/indexeddb";
|
6
|
-
|
7
|
-
describe("KeyBag indexeddb and file", () => {
|
8
|
-
let url: URI;
|
9
|
-
const sthis = mockSuperThis();
|
10
|
-
beforeAll(async () => {
|
11
|
-
await sthis.start();
|
12
|
-
if (runtimeFn().isBrowser) {
|
13
|
-
url = URI.from("indexeddb://fp-keybag");
|
14
|
-
} else {
|
15
|
-
url = URI.merge(`file://./dist/tests/key.bag`, sthis.env.get("FP_KEYBAG_URL"));
|
16
|
-
}
|
17
|
-
});
|
18
|
-
it("default-path", async () => {
|
19
|
-
const old = sthis.env.get("FP_KEYBAG_URL");
|
20
|
-
sthis.env.delete("FP_KEYBAG_URL");
|
21
|
-
const kb = await rt.kb.getKeyBag(sthis);
|
22
|
-
if (runtimeFn().isBrowser) {
|
23
|
-
expect(kb.rt.url.toString()).toBe(`indexeddb://fp-keybag`);
|
24
|
-
} else {
|
25
|
-
expect(kb.rt.url.toString()).toBe(`file://${sthis.env.get("HOME")}/.fireproof/keybag`);
|
26
|
-
}
|
27
|
-
sthis.env.set("FP_KEYBAG_URL", old);
|
28
|
-
});
|
29
|
-
it("from env", async () => {
|
30
|
-
const old = sthis.env.get("FP_KEYBAG_URL");
|
31
|
-
sthis.env.set("FP_KEYBAG_URL", url.toString());
|
32
|
-
const kb = await rt.kb.getKeyBag(sthis);
|
33
|
-
expect(kb.rt.url.toString()).toBe(url.toString());
|
34
|
-
sthis.env.set("FP_KEYBAG_URL", old);
|
35
|
-
});
|
36
|
-
it("simple add", async () => {
|
37
|
-
const kb = await rt.kb.getKeyBag(sthis, {
|
38
|
-
url: url.toString(),
|
39
|
-
crypto: toCryptoRuntime({
|
40
|
-
randomBytes: (size) => new Uint8Array(size).map((_, i) => i),
|
41
|
-
}),
|
42
|
-
});
|
43
|
-
const name = "setkey" + Math.random();
|
44
|
-
expect((await kb.getNamedKey(name, true)).isErr()).toBeTruthy();
|
45
|
-
|
46
|
-
const key = base58btc.encode(kb.rt.crypto.randomBytes(kb.rt.keyLength));
|
47
|
-
const res = await kb.getNamedKey(name, false, key);
|
48
|
-
expect(res.isOk()).toBeTruthy();
|
49
|
-
expect((await kb.getNamedKey(name, true)).Ok()).toEqual(res.Ok());
|
50
|
-
|
51
|
-
const name2 = "implicit" + Math.random();
|
52
|
-
const created = await kb.getNamedKey(name2);
|
53
|
-
expect(created.isOk()).toBeTruthy();
|
54
|
-
|
55
|
-
expect((await kb.getNamedKey(name2)).Ok()).toEqual(created.Ok());
|
56
|
-
|
57
|
-
let diskBag: rt.kb.KeysItem;
|
58
|
-
let diskBag2: rt.kb.KeysItem;
|
59
|
-
const provider = await kb.rt.getBagProvider();
|
60
|
-
if (runtimeFn().isBrowser) {
|
61
|
-
const p = provider as KeyBagProviderIndexedDB;
|
62
|
-
diskBag = await p._prepare().then((db) => db.get("bag", name));
|
63
|
-
diskBag2 = await p._prepare().then((db) => db.get("bag", name2));
|
64
|
-
} else {
|
65
|
-
const p = provider as rt.gw.file.KeyBagProviderFile;
|
66
|
-
const { sysFS } = await p._prepare(name);
|
67
|
-
|
68
|
-
diskBag = await sysFS.readfile((await p._prepare(name)).fName).then((data) => {
|
69
|
-
return JSON.parse(sthis.txt.decode(data)) as rt.kb.KeysItem;
|
70
|
-
});
|
71
|
-
diskBag2 = await sysFS.readfile((await p._prepare(name2)).fName).then((data) => {
|
72
|
-
return JSON.parse(sthis.txt.decode(data)) as rt.kb.KeysItem;
|
73
|
-
});
|
74
|
-
}
|
75
|
-
expect((await rt.kb.toKeyWithFingerPrint(kb, Object.values(diskBag.keys)[0].key)).Ok().fingerPrint).toEqual(
|
76
|
-
(await res.Ok().get())?.fingerPrint,
|
77
|
-
);
|
78
|
-
expect((await rt.kb.toKeyWithFingerPrint(kb, Object.values(diskBag2.keys)[0].key)).Ok().fingerPrint).toEqual(
|
79
|
-
(await created.Ok().get())?.fingerPrint,
|
80
|
-
);
|
81
|
-
const algo = {
|
82
|
-
name: "AES-GCM",
|
83
|
-
iv: kb.rt.crypto.randomBytes(12),
|
84
|
-
tagLength: 128,
|
85
|
-
};
|
86
|
-
const data = kb.rt.crypto.randomBytes(122);
|
87
|
-
const rkc = (await res.Ok().get()) as bs.KeyWithFingerPrint;
|
88
|
-
const ckc = (await created.Ok().get()) as bs.KeyWithFingerPrint;
|
89
|
-
expect(await kb.rt.crypto.encrypt(algo, rkc.key, data)).toEqual(await kb.rt.crypto.encrypt(algo, ckc.key, data));
|
90
|
-
expect(await kb.rt.crypto.encrypt(algo, await kb.subtleKey(Object.values(diskBag.keys)[0].key), data)).toEqual(
|
91
|
-
await kb.rt.crypto.encrypt(algo, ckc.key, data),
|
92
|
-
);
|
93
|
-
expect(await kb.rt.crypto.encrypt(algo, await kb.subtleKey(Object.values(diskBag2.keys)[0].key), data)).toEqual(
|
94
|
-
await kb.rt.crypto.encrypt(algo, ckc.key, data),
|
95
|
-
);
|
96
|
-
});
|
97
|
-
});
|
98
|
-
|
99
|
-
describe("KeyedCryptoStore", () => {
|
100
|
-
let loader: bs.Loadable;
|
101
|
-
// let logger: Logger;
|
102
|
-
let baseUrl: URI;
|
103
|
-
const sthis = ensureSuperThis();
|
104
|
-
beforeEach(async () => {
|
105
|
-
await sthis.start();
|
106
|
-
// logger = MockLogger().logger;
|
107
|
-
// let kbUrl: URI;
|
108
|
-
if (runtimeFn().isBrowser) {
|
109
|
-
// kbUrl = URI.from("indexeddb://fp-keybag");
|
110
|
-
baseUrl = URI.from("indexeddb://fp-keyed-crypto-store");
|
111
|
-
} else {
|
112
|
-
// kbUrl = URI.merge(`file://./dist/tests/key.bag`, sthis.env.get("FP_KEYBAG_URL"));
|
113
|
-
baseUrl = URI.merge("file://./dist/tests/keyed-crypto-store", sthis.env.get("FP_STORAGE_URL"));
|
114
|
-
}
|
115
|
-
baseUrl = baseUrl.build().defParam(PARAM.NAME, "test").URI();
|
116
|
-
loader = mockLoader(sthis);
|
117
|
-
});
|
118
|
-
it("no crypto", async () => {
|
119
|
-
const url = baseUrl.build().setParam(PARAM.STORE_KEY, "insecure").URI();
|
120
|
-
for (const pstore of (await bs.createAttachedStores(url, loader, "insecure")).stores.baseStores) {
|
121
|
-
const store = await pstore;
|
122
|
-
// await store.start();
|
123
|
-
const kc = await store.keyedCrypto();
|
124
|
-
expect(kc.constructor.name).toBe("noCrypto");
|
125
|
-
// expect(kc.isEncrypting).toBe(false);
|
126
|
-
}
|
127
|
-
});
|
128
|
-
});
|