@fireproof/core 0.20.4 → 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 -269
- 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 -66
- 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 -97
- 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 -64
- 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 -303
- 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,166 @@
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
5
|
+
};
|
6
|
+
var _WSConnection_onMsg, _WSConnection_onClose, _WSConnection_wsOnMessage;
|
7
|
+
import { exception2Result, Future, Result, top_uint8 } from "@adviser/cement";
|
8
|
+
import { MsgIsError, buildErrorMsg, MsgIsTid } from "./msg-types.js";
|
9
|
+
import { MsgRawConnectionBase } from "./msg-raw-connection-base.js";
|
10
|
+
import { ensureLogger } from "../../utils.js";
|
11
|
+
export class WSConnection extends MsgRawConnectionBase {
|
12
|
+
constructor(sthis, ws, msgP, exGestalt) {
|
13
|
+
super(sthis, exGestalt);
|
14
|
+
_WSConnection_onMsg.set(this, new Map());
|
15
|
+
_WSConnection_onClose.set(this, new Map());
|
16
|
+
this.waitForTid = new Map();
|
17
|
+
this.opened = false;
|
18
|
+
_WSConnection_wsOnMessage.set(this, async (event) => {
|
19
|
+
const rMsg = await exception2Result(async () => {
|
20
|
+
const msg = this.msgP.ende.decode(await top_uint8(event.data));
|
21
|
+
return msg;
|
22
|
+
});
|
23
|
+
if (rMsg.isErr()) {
|
24
|
+
this.logger.Error().Err(rMsg).Any({ event }).Msg("Invalid message");
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
const msg = rMsg.Ok();
|
28
|
+
const waitFor = this.waitForTid.get(msg.tid);
|
29
|
+
Array.from(__classPrivateFieldGet(this, _WSConnection_onMsg, "f").values()).forEach((cb) => {
|
30
|
+
cb(msg);
|
31
|
+
});
|
32
|
+
if (waitFor) {
|
33
|
+
if (MsgIsError(msg)) {
|
34
|
+
this.waitForTid.delete(msg.tid);
|
35
|
+
waitFor.future.resolve(msg);
|
36
|
+
}
|
37
|
+
else if (waitFor.waitFor(msg)) {
|
38
|
+
this.waitForTid.delete(msg.tid);
|
39
|
+
waitFor.future.resolve(msg);
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
this.waitForTid.delete(msg.tid);
|
43
|
+
waitFor.future.resolve(msg);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
});
|
47
|
+
this.activeBinds = new Map();
|
48
|
+
this.id = sthis.nextId().str;
|
49
|
+
this.logger = ensureLogger(sthis, "WSConnection");
|
50
|
+
this.msgP = msgP;
|
51
|
+
this.ws = ws;
|
52
|
+
}
|
53
|
+
async start() {
|
54
|
+
const onOpenFuture = new Future();
|
55
|
+
const timer = setTimeout(() => {
|
56
|
+
const err = this.logger.Error().Dur("timeout", this.msgP.timeout).Msg("Timeout").AsError();
|
57
|
+
this.toMsg(buildErrorMsg(this, {}, err));
|
58
|
+
onOpenFuture.resolve(Result.Err(err));
|
59
|
+
}, this.msgP.timeout);
|
60
|
+
this.ws.onopen = () => {
|
61
|
+
onOpenFuture.resolve(Result.Ok(undefined));
|
62
|
+
this.opened = true;
|
63
|
+
};
|
64
|
+
this.ws.onerror = (ierr) => {
|
65
|
+
const err = this.logger.Error().Err(ierr).Msg("WS Error").AsError();
|
66
|
+
onOpenFuture.resolve(Result.Err(err));
|
67
|
+
const res = this.buildErrorMsg(this, {}, err);
|
68
|
+
this.toMsg(res);
|
69
|
+
};
|
70
|
+
this.ws.onmessage = (evt) => {
|
71
|
+
if (!this.opened) {
|
72
|
+
this.toMsg(buildErrorMsg(this, {}, this.logger.Error().Msg("Received message before onOpen").AsError()));
|
73
|
+
}
|
74
|
+
__classPrivateFieldGet(this, _WSConnection_wsOnMessage, "f").call(this, evt);
|
75
|
+
};
|
76
|
+
this.ws.onclose = () => {
|
77
|
+
this.opened = false;
|
78
|
+
this.close().catch((ierr) => {
|
79
|
+
const err = this.logger.Error().Err(ierr).Msg("close error").AsError();
|
80
|
+
onOpenFuture.resolve(Result.Err(err));
|
81
|
+
this.toMsg(buildErrorMsg(this, { tid: "internal" }, err));
|
82
|
+
});
|
83
|
+
};
|
84
|
+
const rOpen = await onOpenFuture.asPromise().finally(() => {
|
85
|
+
clearTimeout(timer);
|
86
|
+
});
|
87
|
+
if (rOpen.isErr()) {
|
88
|
+
return rOpen;
|
89
|
+
}
|
90
|
+
return Result.Ok(undefined);
|
91
|
+
}
|
92
|
+
async close() {
|
93
|
+
__classPrivateFieldGet(this, _WSConnection_onClose, "f").forEach((fn) => fn());
|
94
|
+
__classPrivateFieldGet(this, _WSConnection_onClose, "f").clear();
|
95
|
+
__classPrivateFieldGet(this, _WSConnection_onMsg, "f").clear();
|
96
|
+
this.ws.close();
|
97
|
+
return Result.Ok(undefined);
|
98
|
+
}
|
99
|
+
toMsg(msg) {
|
100
|
+
__classPrivateFieldGet(this, _WSConnection_onMsg, "f").forEach((fn) => fn(msg));
|
101
|
+
return msg;
|
102
|
+
}
|
103
|
+
send(msg) {
|
104
|
+
this.ws.send(this.msgP.ende.encode(msg));
|
105
|
+
return Promise.resolve(msg);
|
106
|
+
}
|
107
|
+
onMsg(fn) {
|
108
|
+
const key = this.sthis.nextId().str;
|
109
|
+
__classPrivateFieldGet(this, _WSConnection_onMsg, "f").set(key, fn);
|
110
|
+
return () => __classPrivateFieldGet(this, _WSConnection_onMsg, "f").delete(key);
|
111
|
+
}
|
112
|
+
onClose(fn) {
|
113
|
+
const key = this.sthis.nextId().str;
|
114
|
+
__classPrivateFieldGet(this, _WSConnection_onClose, "f").set(key, fn);
|
115
|
+
return () => __classPrivateFieldGet(this, _WSConnection_onClose, "f").delete(key);
|
116
|
+
}
|
117
|
+
bind(req, opts) {
|
118
|
+
const state = {
|
119
|
+
id: this.sthis.nextId().str,
|
120
|
+
bind: {
|
121
|
+
msg: req,
|
122
|
+
opts,
|
123
|
+
},
|
124
|
+
};
|
125
|
+
this.activeBinds.set(state.id, state);
|
126
|
+
return new ReadableStream({
|
127
|
+
cancel: () => {
|
128
|
+
this.activeBinds.delete(state.id);
|
129
|
+
},
|
130
|
+
start: (controller) => {
|
131
|
+
this.onMsg((msg) => {
|
132
|
+
if (MsgIsError(msg)) {
|
133
|
+
controller.enqueue(msg);
|
134
|
+
return;
|
135
|
+
}
|
136
|
+
if (!MsgIsTid(msg, req.tid)) {
|
137
|
+
return;
|
138
|
+
}
|
139
|
+
if (opts.waitFor && opts.waitFor(msg)) {
|
140
|
+
controller.enqueue(msg);
|
141
|
+
}
|
142
|
+
});
|
143
|
+
this.send(req);
|
144
|
+
const future = new Future();
|
145
|
+
this.waitForTid.set(req.tid, { tid: req.tid, future, waitFor: opts.waitFor, timeout: opts.timeout });
|
146
|
+
future.asPromise().then((msg) => {
|
147
|
+
if (MsgIsError(msg)) {
|
148
|
+
controller.enqueue(msg);
|
149
|
+
controller.close();
|
150
|
+
}
|
151
|
+
});
|
152
|
+
},
|
153
|
+
});
|
154
|
+
}
|
155
|
+
async request(req, opts) {
|
156
|
+
if (!this.opened) {
|
157
|
+
return buildErrorMsg(this, req, this.logger.Error().Msg("Connection not open").AsError());
|
158
|
+
}
|
159
|
+
const future = new Future();
|
160
|
+
this.waitForTid.set(req.tid, { tid: req.tid, future, waitFor: opts.waitFor, timeout: opts.timeout });
|
161
|
+
await this.send(req);
|
162
|
+
return future.asPromise();
|
163
|
+
}
|
164
|
+
}
|
165
|
+
_WSConnection_onMsg = new WeakMap(), _WSConnection_onClose = new WeakMap(), _WSConnection_wsOnMessage = new WeakMap();
|
166
|
+
//# sourceMappingURL=ws-connection.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ws-connection.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/ws-connection.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { Database } from "@fireproof/core";
|
2
|
+
import { AttachState, UseFPConfig, WebToCloudCtx } from "./types.js";
|
3
|
+
export declare const WebCtx = "webCtx";
|
4
|
+
export declare function defaultWebToCloudOpts(opts: Partial<WebToCloudCtx>): WebToCloudCtx;
|
5
|
+
export declare function createAttach(database: Database, config: UseFPConfig): AttachState;
|
6
|
+
//# sourceMappingURL=create-attach.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create-attach.d.ts","sourceRoot":"","sources":["../../../../src/react/create-attach.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGrE,eAAO,MAAM,MAAM,WAAW,CAAC;AAmD/B,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAEjF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CA0BjF"}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { falsyToUndef } from "@fireproof/core";
|
2
|
+
import { useEffect, useState } from "react";
|
3
|
+
export const WebCtx = "webCtx";
|
4
|
+
class WebCtxImpl {
|
5
|
+
constructor(opts) {
|
6
|
+
this.dashboardURI = opts.dashboardURI || "https://dev.connect.fireproof.direct/fp/cloud/api/token";
|
7
|
+
this.uiURI = opts.uiURI || "https://dev.connect.fireproof.direct/api";
|
8
|
+
this.tokenKey = opts.tokenKey || "fpToken";
|
9
|
+
this.opts = opts;
|
10
|
+
}
|
11
|
+
onTokenChange(on) {
|
12
|
+
if (this.opts.onTokenChange) {
|
13
|
+
return this.opts.onTokenChange(on);
|
14
|
+
}
|
15
|
+
this.onAction = on;
|
16
|
+
}
|
17
|
+
token() {
|
18
|
+
if (this.opts.token) {
|
19
|
+
return this.opts.token();
|
20
|
+
}
|
21
|
+
return falsyToUndef(localStorage.getItem(this.tokenKey));
|
22
|
+
}
|
23
|
+
resetToken() {
|
24
|
+
if (this.opts.resetToken) {
|
25
|
+
this.opts.resetToken();
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
localStorage.removeItem(this.tokenKey);
|
29
|
+
}
|
30
|
+
this.onAction?.(undefined);
|
31
|
+
}
|
32
|
+
setToken(token) {
|
33
|
+
const oldToken = this.token();
|
34
|
+
if (this.opts.setToken) {
|
35
|
+
this.opts.setToken(token);
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
localStorage.setItem(this.tokenKey, token);
|
39
|
+
}
|
40
|
+
if (oldToken !== token) {
|
41
|
+
this.onAction?.(token);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
export function defaultWebToCloudOpts(opts) {
|
46
|
+
return new WebCtxImpl(opts);
|
47
|
+
}
|
48
|
+
export function createAttach(database, config) {
|
49
|
+
const [attachState, setAttachState] = useState({ state: "initial" });
|
50
|
+
useEffect(() => {
|
51
|
+
if (config.attach && attachState.state === "initial") {
|
52
|
+
setAttachState({ state: "attaching" });
|
53
|
+
database
|
54
|
+
.attach(config.attach)
|
55
|
+
.then((a) => {
|
56
|
+
a
|
57
|
+
.ctx()
|
58
|
+
.get(WebCtx)
|
59
|
+
?.onTokenChange((token) => {
|
60
|
+
if (!token) {
|
61
|
+
setAttachState({ state: "initial" });
|
62
|
+
return;
|
63
|
+
}
|
64
|
+
});
|
65
|
+
setAttachState({ state: "attached", attached: a });
|
66
|
+
})
|
67
|
+
.catch((err) => {
|
68
|
+
database.logger.Error().Err(err).Msg("attach error");
|
69
|
+
setAttachState({ state: "error", error: err });
|
70
|
+
});
|
71
|
+
}
|
72
|
+
}, [database, config.attach, attachState]);
|
73
|
+
return attachState;
|
74
|
+
}
|
75
|
+
//# sourceMappingURL=create-attach.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create-attach.js","sourceRoot":"","sources":["../../../../src/react/create-attach.ts"],"names":[],"mappings":"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"}
|
@@ -1,60 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
import React, { ImgHTMLAttributes } from
|
3
|
-
|
4
|
-
interface LiveQueryResult<T extends DocTypes, K extends IndexKeyType, R extends DocFragment = T> {
|
5
|
-
readonly docs: DocWithId<T>[];
|
6
|
-
readonly rows: IndexRow<K, T, R>[];
|
7
|
-
}
|
8
|
-
type UseLiveQuery = <T extends DocTypes, K extends IndexKeyType = string, R extends DocFragment = T>(mapFn: string | MapFn<T>, query?: QueryOpts<K>, initialRows?: IndexRow<K, T, R>[]) => LiveQueryResult<T, K, R>;
|
9
|
-
interface AllDocsResult<T extends DocTypes> {
|
10
|
-
readonly docs: DocWithId<T>[];
|
11
|
-
}
|
12
|
-
interface ChangesResult<T extends DocTypes> {
|
13
|
-
readonly docs: DocWithId<T>[];
|
14
|
-
}
|
15
|
-
type UseAllDocs = <T extends DocTypes>(query?: AllDocsQueryOpts) => AllDocsResult<T>;
|
16
|
-
type UseChanges = <T extends DocTypes>(since: ClockHead, opts: ChangesOptions) => ChangesResult<T>;
|
17
|
-
interface UpdateDocFnOptions {
|
18
|
-
replace?: boolean;
|
19
|
-
reset?: boolean;
|
20
|
-
}
|
21
|
-
type UpdateDocFn<T extends DocTypes> = (newDoc?: DocSet<T>, options?: UpdateDocFnOptions) => void;
|
22
|
-
type StoreDocFn<T extends DocTypes> = (existingDoc?: DocWithId<T>) => Promise<DocResponse>;
|
23
|
-
type DeleteDocFn<T extends DocTypes> = (existingDoc?: DocWithId<T>) => Promise<DocResponse>;
|
24
|
-
type UseDocumentResultTuple<T extends DocTypes> = [DocWithId<T>, UpdateDocFn<T>, StoreDocFn<T>, DeleteDocFn<T>];
|
25
|
-
interface UseDocumentResultObject<T extends DocTypes> {
|
26
|
-
readonly doc: DocWithId<T>;
|
27
|
-
merge(newDoc: Partial<T>): void;
|
28
|
-
replace(newDoc: T): void;
|
29
|
-
reset(): void;
|
30
|
-
refresh(): Promise<void>;
|
31
|
-
save(existingDoc?: DocWithId<T>): Promise<DocResponse>;
|
32
|
-
remove(existingDoc?: DocWithId<T>): Promise<DocResponse>;
|
33
|
-
submit(e?: Event): Promise<void>;
|
34
|
-
}
|
35
|
-
type UseDocumentResult<T extends DocTypes> = UseDocumentResultObject<T> & UseDocumentResultTuple<T>;
|
36
|
-
type UseDocumentInitialDocOrFn<T extends DocTypes> = DocSet<T> | (() => DocSet<T>);
|
37
|
-
type UseDocument = <T extends DocTypes>(initialDocOrFn: UseDocumentInitialDocOrFn<T>) => UseDocumentResult<T>;
|
38
|
-
interface UseFireproof {
|
39
|
-
readonly database: Database;
|
40
|
-
readonly useDocument: UseDocument;
|
41
|
-
readonly useLiveQuery: UseLiveQuery;
|
42
|
-
readonly useAllDocs: UseAllDocs;
|
43
|
-
readonly useChanges: UseChanges;
|
44
|
-
}
|
45
|
-
|
46
|
-
declare const FireproofCtx: UseFireproof;
|
47
|
-
declare function useFireproof(name?: string | Database, config?: ConfigOpts): UseFireproof;
|
48
|
-
|
1
|
+
import { DocFileMeta } from "@fireproof/core";
|
2
|
+
import React, { ImgHTMLAttributes } from "react";
|
49
3
|
type FileType = File | DocFileMeta;
|
50
4
|
interface ImgFileProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src"> {
|
51
5
|
file?: FileType;
|
52
6
|
meta?: FileType;
|
53
7
|
}
|
54
|
-
declare function ImgFile({ file, meta, ...imgProps }: ImgFileProps): React.DetailedReactHTMLElement<{
|
8
|
+
export declare function ImgFile({ file, meta, ...imgProps }: ImgFileProps): React.DetailedReactHTMLElement<{
|
9
|
+
dir?: string | undefined | undefined;
|
55
10
|
id?: string | undefined | undefined;
|
56
11
|
loading?: "eager" | "lazy" | undefined | undefined;
|
57
|
-
dir?: string | undefined | undefined;
|
58
12
|
alt?: string | undefined | undefined;
|
59
13
|
crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
|
60
14
|
decoding?: "async" | "auto" | "sync" | undefined | undefined;
|
@@ -331,6 +285,5 @@ declare function ImgFile({ file, meta, ...imgProps }: ImgFileProps): React.Detai
|
|
331
285
|
onTransitionEndCapture?: React.TransitionEventHandler<HTMLImageElement> | undefined;
|
332
286
|
src: string;
|
333
287
|
}, HTMLElement> | null;
|
334
|
-
|
335
|
-
|
336
|
-
declare module '@fireproof/core/react'
|
288
|
+
export default ImgFile;
|
289
|
+
//# sourceMappingURL=img-file.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"img-file.d.ts","sourceRoot":"","sources":["../../../../src/react/img-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,EAAuB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGtE,KAAK,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC;AAEnC,UAAU,YAAa,SAAQ,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC;IAC7E,IAAI,CAAC,EAAE,QAAQ,CAAC;IAKhB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAYD,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwDhE;AAED,eAAe,OAAO,CAAC"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import React, { useState, useEffect } from "react";
|
2
|
+
function isFile(obj) {
|
3
|
+
return "type" in obj && "size" in obj && "stream" in obj && typeof obj.stream === "function";
|
4
|
+
}
|
5
|
+
function isFileMeta(obj) {
|
6
|
+
return "type" in obj && "size" in obj && "file" in obj && typeof obj.file === "function";
|
7
|
+
}
|
8
|
+
export function ImgFile({ file, meta, ...imgProps }) {
|
9
|
+
const [imgDataUrl, setImgDataUrl] = useState("");
|
10
|
+
const fileData = file || meta;
|
11
|
+
useEffect(() => {
|
12
|
+
if (!fileData)
|
13
|
+
return;
|
14
|
+
const loadFile = async () => {
|
15
|
+
let fileObj = null;
|
16
|
+
let fileType = "";
|
17
|
+
switch (true) {
|
18
|
+
case isFile(fileData):
|
19
|
+
fileObj = fileData;
|
20
|
+
fileType = fileData.type;
|
21
|
+
break;
|
22
|
+
case isFileMeta(fileData):
|
23
|
+
fileType = fileData.type;
|
24
|
+
fileObj = (await fileData.file?.()) || null;
|
25
|
+
break;
|
26
|
+
}
|
27
|
+
if (fileObj && /image/.test(fileType)) {
|
28
|
+
const src = URL.createObjectURL(fileObj);
|
29
|
+
setImgDataUrl(src);
|
30
|
+
return () => URL.revokeObjectURL(src);
|
31
|
+
}
|
32
|
+
};
|
33
|
+
let isMounted = true;
|
34
|
+
let cleanup;
|
35
|
+
loadFile().then((result) => {
|
36
|
+
if (isMounted) {
|
37
|
+
cleanup = result;
|
38
|
+
}
|
39
|
+
else if (result) {
|
40
|
+
result();
|
41
|
+
}
|
42
|
+
});
|
43
|
+
return () => {
|
44
|
+
isMounted = false;
|
45
|
+
if (cleanup)
|
46
|
+
cleanup();
|
47
|
+
};
|
48
|
+
}, [fileData]);
|
49
|
+
return imgDataUrl
|
50
|
+
? React.createElement("img", {
|
51
|
+
src: imgDataUrl,
|
52
|
+
...imgProps,
|
53
|
+
})
|
54
|
+
: null;
|
55
|
+
}
|
56
|
+
export default ImgFile;
|
57
|
+
//# sourceMappingURL=img-file.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"img-file.js","sourceRoot":"","sources":["../../../../src/react/img-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAetE,SAAS,MAAM,CAAC,GAAa;IAC3B,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;AAC/F,CAAC;AAGD,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAgB;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAGjD,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,OAAO,GAAgB,IAAI,CAAC;YAChC,IAAI,QAAQ,GAAG,EAAE,CAAC;YAElB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM,CAAC,QAAQ,CAAC;oBACnB,OAAO,GAAG,QAAQ,CAAC;oBACnB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACzB,MAAM;gBACR,KAAK,UAAU,CAAC,QAAQ,CAAC;oBACvB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACzB,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;oBAC5C,MAAM;YACV,CAAC;YAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAEtC,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEnB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,OAAiC,CAAC;QAEtC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO;gBAAE,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,UAAU;QACf,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;YACzB,GAAG,EAAE,UAAU;YACf,GAAG,QAAQ;SACZ,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,eAAe,OAAO,CAAC"}
|