@fireproof/core 0.19.8-dev → 0.19.8-dev-alldocs

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. package/{chunk-QHSXUST7.js → chunk-5UFCF36O.js} +3 -3
  2. package/{chunk-HCXR2M5B.js → chunk-DG6XSV44.js} +175 -7
  3. package/chunk-DG6XSV44.js.map +1 -0
  4. package/{chunk-H3A2HMMM.js → chunk-OWQAHX2V.js} +2 -2
  5. package/chunk-OWQAHX2V.js.map +1 -0
  6. package/{chunk-7OGPZSGT.js → chunk-PRQHQG4I.js} +2 -2
  7. package/index.cjs +248 -191
  8. package/index.cjs.map +1 -1
  9. package/index.d.cts +174 -68
  10. package/index.d.ts +174 -68
  11. package/index.global.js +24688 -0
  12. package/index.global.js.map +1 -0
  13. package/index.js +60 -127
  14. package/index.js.map +1 -1
  15. package/metafile-cjs.json +1 -1
  16. package/metafile-esm.json +1 -1
  17. package/metafile-iife.json +1 -0
  18. package/{node-sys-container-E7LADX2Z.js → node-sys-container-TTGEC66A.js} +2 -2
  19. package/package.json +1 -1
  20. package/{sqlite-data-store-YS4U7AQ4.js → sqlite-data-store-MA55LVQE.js} +4 -4
  21. package/{sqlite-meta-store-FJZSZG4R.js → sqlite-meta-store-UNQKVYRM.js} +4 -4
  22. package/{sqlite-wal-store-6JZ4URNS.js → sqlite-wal-store-KVUOC4PO.js} +4 -4
  23. package/{store-file-HMHPQTUV.js → store-file-WD746RSY.js} +3 -3
  24. package/{store-indexdb-MRVZG4OG.js → store-indexdb-NG45BU3Q.js} +4 -4
  25. package/{store-sql-5XMJ5OWJ.js → store-sql-QVFNIGND.js} +7 -69
  26. package/store-sql-QVFNIGND.js.map +1 -0
  27. package/tests/blockstore/loader.test.ts +265 -0
  28. package/tests/blockstore/store.test.ts +164 -0
  29. package/tests/blockstore/transaction.test.ts +121 -0
  30. package/tests/fireproof/config.test.ts +212 -0
  31. package/tests/fireproof/crdt.test.ts +434 -0
  32. package/tests/fireproof/database.test.ts +466 -0
  33. package/tests/fireproof/fireproof.test.ts +602 -0
  34. package/tests/fireproof/hello.test.ts +54 -0
  35. package/tests/fireproof/indexer.test.ts +389 -0
  36. package/tests/helpers.ts +81 -0
  37. package/tests/react/useFireproof.test.tsx +19 -0
  38. package/tests/www/gallery.html +132 -0
  39. package/tests/www/iife.html +42 -0
  40. package/tests/www/todo-aws.html +232 -0
  41. package/tests/www/todo-ipfs.html +213 -0
  42. package/tests/www/todo-local.html +214 -0
  43. package/tests/www/todo-netlify.html +227 -0
  44. package/tests/www/todo.html +236 -0
  45. package/chunk-H3A2HMMM.js.map +0 -1
  46. package/chunk-HCXR2M5B.js.map +0 -1
  47. package/store-sql-5XMJ5OWJ.js.map +0 -1
  48. /package/{chunk-QHSXUST7.js.map → chunk-5UFCF36O.js.map} +0 -0
  49. /package/{chunk-7OGPZSGT.js.map → chunk-PRQHQG4I.js.map} +0 -0
  50. /package/{node-sys-container-E7LADX2Z.js.map → node-sys-container-TTGEC66A.js.map} +0 -0
  51. /package/{sqlite-data-store-YS4U7AQ4.js.map → sqlite-data-store-MA55LVQE.js.map} +0 -0
  52. /package/{sqlite-meta-store-FJZSZG4R.js.map → sqlite-meta-store-UNQKVYRM.js.map} +0 -0
  53. /package/{sqlite-wal-store-6JZ4URNS.js.map → sqlite-wal-store-KVUOC4PO.js.map} +0 -0
  54. /package/{store-file-HMHPQTUV.js.map → store-file-WD746RSY.js.map} +0 -0
  55. /package/{store-indexdb-MRVZG4OG.js.map → store-indexdb-NG45BU3Q.js.map} +0 -0
package/index.js CHANGED
@@ -1,27 +1,30 @@
1
1
  import {
2
2
  guardVersion
3
- } from "./chunk-QHSXUST7.js";
3
+ } from "./chunk-5UFCF36O.js";
4
4
  import {
5
5
  NotFoundError,
6
6
  isNotFoundError
7
7
  } from "./chunk-VZGT7ZYP.js";
8
8
  import {
9
9
  dataDir,
10
+ decodeFile,
11
+ encodeFile,
10
12
  ensureLogger,
11
13
  exception2Result,
12
14
  exceptionWrapper,
13
15
  getKey,
14
16
  getName,
15
17
  getStore,
16
- runtime_exports
17
- } from "./chunk-HCXR2M5B.js";
18
+ runtime_exports,
19
+ toCryptoOpts
20
+ } from "./chunk-DG6XSV44.js";
18
21
  import {
19
22
  SysContainer,
20
23
  __export,
21
24
  falsyToUndef,
22
25
  isFalsy,
23
26
  throwFalsy
24
- } from "./chunk-H3A2HMMM.js";
27
+ } from "./chunk-OWQAHX2V.js";
25
28
 
26
29
  // src/database.ts
27
30
  import { uuidv7 } from "uuidv7";
@@ -274,72 +277,6 @@ var ConnectREST = class extends ConnectionBase {
274
277
  // src/blockstore/store-factory.ts
275
278
  import { KeyedResolvOnce } from "@adviser/cement";
276
279
 
277
- // src/runtime/files.ts
278
- import * as UnixFS from "@ipld/unixfs";
279
- import * as raw from "multiformats/codecs/raw";
280
- import { withMaxChunkSize } from "@ipld/unixfs/file/chunker/fixed";
281
- import { withWidth } from "@ipld/unixfs/file/layout/balanced";
282
- import { exporter } from "ipfs-unixfs-exporter";
283
- var queuingStrategy = UnixFS.withCapacity();
284
- var settings = UnixFS.configure({
285
- fileChunkEncoder: raw,
286
- smallFileEncoder: raw,
287
- chunker: withMaxChunkSize(1024 * 1024),
288
- fileLayout: withWidth(1024)
289
- });
290
- async function collect(collectable) {
291
- const chunks = [];
292
- await collectable.pipeTo(
293
- new WritableStream({
294
- write(chunk) {
295
- chunks.push(chunk);
296
- }
297
- })
298
- );
299
- return chunks;
300
- }
301
- async function encodeFile(blob) {
302
- const readable = createFileEncoderStream(blob);
303
- const blocks = await collect(readable);
304
- return { cid: blocks.at(-1).cid, blocks };
305
- }
306
- async function decodeFile(blocks, cid, meta) {
307
- const entry = await exporter(cid.toString(), blocks, { length: meta.size });
308
- const chunks = [];
309
- for await (const chunk of entry.content()) {
310
- chunks.push(chunk);
311
- }
312
- return new File(chunks, entry.name, { type: meta.type, lastModified: 0 });
313
- }
314
- function createFileEncoderStream(blob) {
315
- const { readable, writable } = new TransformStream({}, queuingStrategy);
316
- const unixfsWriter = UnixFS.createWriter({ writable, settings });
317
- const fileBuilder = new UnixFSFileBuilder("", blob);
318
- void (async () => {
319
- await fileBuilder.finalize(unixfsWriter);
320
- await unixfsWriter.close();
321
- })();
322
- return readable;
323
- }
324
- var UnixFSFileBuilder = class {
325
- #file;
326
- constructor(name, file) {
327
- this.name = name;
328
- this.#file = file;
329
- }
330
- async finalize(writer) {
331
- const unixfsFileWriter = UnixFS.createFileWriter(writer);
332
- await this.#file.stream().pipeTo(
333
- new WritableStream({
334
- async write(chunk) {
335
- await unixfsFileWriter.write(chunk);
336
- }
337
- })
338
- );
339
- return await unixfsFileWriter.close();
340
- }
341
- };
342
-
343
280
  // src/blockstore/store.ts
344
281
  import pLimit2 from "p-limit";
345
282
  import { format, parse } from "@ipld/dag-json";
@@ -358,7 +295,7 @@ function toCIDBlock(block) {
358
295
  // src/blockstore/loader-helpers.ts
359
296
  import { encode, decode } from "multiformats/block";
360
297
  import { sha256 as hasher } from "multiformats/hashes/sha2";
361
- import * as raw2 from "multiformats/codecs/raw";
298
+ import * as raw from "multiformats/codecs/raw";
362
299
  import * as CBW from "@ipld/car/buffer-writer";
363
300
  import * as codec from "@ipld/dag-cbor";
364
301
  async function encodeCarFile(roots, t) {
@@ -377,7 +314,7 @@ async function encodeCarFile(roots, t) {
377
314
  writer.write({ cid, bytes });
378
315
  }
379
316
  writer.close();
380
- return await encode({ value: writer.bytes, hasher, codec: raw2 });
317
+ return await encode({ value: writer.bytes, hasher, codec: raw });
381
318
  }
382
319
  async function encodeCarHeader(fp) {
383
320
  return await encode({
@@ -410,7 +347,7 @@ import { create, load } from "prolly-trees/cid-set";
410
347
 
411
348
  // src/blockstore/encrypt-codec.ts
412
349
  import { CID } from "multiformats";
413
- function makeCodec(ilogger, crypto2, randomBytes2) {
350
+ function makeCodec(ilogger, crypto, randomBytes) {
414
351
  const logger = ensureLogger(ilogger, "makeCodec");
415
352
  const enc32 = (value) => {
416
353
  value = +value;
@@ -444,7 +381,7 @@ function makeCodec(ilogger, crypto2, randomBytes2) {
444
381
  };
445
382
  const code = 3145728 + 1337;
446
383
  async function subtleKey(key) {
447
- return await crypto2.importKey(
384
+ return await crypto.importKey(
448
385
  "raw",
449
386
  // raw or jwk
450
387
  key,
@@ -458,7 +395,7 @@ function makeCodec(ilogger, crypto2, randomBytes2) {
458
395
  const decrypt = async ({ key, value }) => {
459
396
  const { bytes: inBytes, iv } = value;
460
397
  const cryKey = await subtleKey(key);
461
- const deBytes = await crypto2.decrypt(
398
+ const deBytes = await crypto.decrypt(
462
399
  {
463
400
  name: "AES-GCM",
464
401
  iv,
@@ -474,11 +411,11 @@ function makeCodec(ilogger, crypto2, randomBytes2) {
474
411
  };
475
412
  const encrypt = async ({ key, cid, bytes }) => {
476
413
  const len = enc32(cid.bytes.byteLength);
477
- const iv = randomBytes2(12);
414
+ const iv = randomBytes(12);
478
415
  const msg = concat([len, cid.bytes, bytes]);
479
416
  try {
480
417
  const cryKey = await subtleKey(key);
481
- const deBytes = await crypto2.encrypt(
418
+ const deBytes = await crypto.encrypt(
482
419
  {
483
420
  name: "AES-GCM",
484
421
  iv,
@@ -506,8 +443,8 @@ function carLogIncludesGroup(list, cidMatch) {
506
443
  return cid.toString() === cidMatch.toString();
507
444
  });
508
445
  }
509
- function makeEncDec(logger, crypto2, randomBytes2) {
510
- const codec4 = makeCodec(logger, crypto2, randomBytes2);
446
+ function makeEncDec(logger, crypto, randomBytes) {
447
+ const codec4 = makeCodec(logger, crypto, randomBytes);
511
448
  const encrypt = async function* ({
512
449
  get: get2,
513
450
  cids,
@@ -600,7 +537,7 @@ function hexStringToUint8Array(hexString) {
600
537
  }
601
538
  return uint8Array;
602
539
  }
603
- async function encryptedEncodeCarFile(logger, crypto2, key, rootCid, t) {
540
+ async function encryptedEncodeCarFile(logger, crypto, key, rootCid, t) {
604
541
  const encryptionKey = hexStringToUint8Array(key);
605
542
  const encryptedBlocks = new MemoryBlockstore2();
606
543
  const cidsToEncrypt = [];
@@ -610,7 +547,7 @@ async function encryptedEncodeCarFile(logger, crypto2, key, rootCid, t) {
610
547
  if (!g) throw logger.Error().Ref("cid", cid).Int("bytes", bytes.length).Msg("missing cid block").AsError();
611
548
  }
612
549
  let last = null;
613
- const { encrypt } = makeEncDec(logger, crypto2, crypto2.randomBytes);
550
+ const { encrypt } = makeEncDec(logger, crypto, crypto.randomBytes);
614
551
  for await (const block of encrypt({
615
552
  cids: cidsToEncrypt,
616
553
  get: t.get.bind(t),
@@ -627,17 +564,17 @@ async function encryptedEncodeCarFile(logger, crypto2, key, rootCid, t) {
627
564
  const encryptedCar = await encodeCarFile([last.cid], encryptedBlocks);
628
565
  return encryptedCar;
629
566
  }
630
- async function decodeEncryptedCar(logger, crypto2, key, reader) {
567
+ async function decodeEncryptedCar(logger, crypto, key, reader) {
631
568
  const roots = await reader.getRoots();
632
569
  const root3 = roots[0];
633
- return await decodeCarBlocks(logger, crypto2, root3, reader.get.bind(reader), key);
570
+ return await decodeCarBlocks(logger, crypto, root3, reader.get.bind(reader), key);
634
571
  }
635
- async function decodeCarBlocks(logger, crypto2, root3, get2, keyMaterial) {
572
+ async function decodeCarBlocks(logger, crypto, root3, get2, keyMaterial) {
636
573
  const decryptionKeyUint8 = hexStringToUint8Array(keyMaterial);
637
574
  const decryptionKey = decryptionKeyUint8.buffer.slice(0, decryptionKeyUint8.byteLength);
638
575
  const decryptedBlocks = new MemoryBlockstore2();
639
576
  let last = null;
640
- const { decrypt } = makeEncDec(logger, crypto2, crypto2.randomBytes);
577
+ const { decrypt } = makeEncDec(logger, crypto, crypto.randomBytes);
641
578
  for await (const block of decrypt({
642
579
  root: root3,
643
580
  get: get2,
@@ -655,30 +592,6 @@ async function decodeCarBlocks(logger, crypto2, root3, get2, keyMaterial) {
655
592
 
656
593
  // src/blockstore/transaction.ts
657
594
  import { MemoryBlockstore as MemoryBlockstore3 } from "@web3-storage/pail/block";
658
-
659
- // src/runtime/crypto.ts
660
- function randomBytes(size) {
661
- const bytes = new Uint8Array(size);
662
- if (size > 0) {
663
- crypto.getRandomValues(bytes);
664
- }
665
- return bytes;
666
- }
667
- function digestSHA256(data) {
668
- return Promise.resolve(crypto.subtle.digest("SHA-256", data));
669
- }
670
- function toCryptoOpts(cryptoOpts = {}) {
671
- const opts = {
672
- importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),
673
- encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),
674
- decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),
675
- randomBytes: cryptoOpts.randomBytes || randomBytes,
676
- digestSHA256: cryptoOpts.digestSHA256 || digestSHA256
677
- };
678
- return opts;
679
- }
680
-
681
- // src/blockstore/transaction.ts
682
595
  var CarTransaction = class extends MemoryBlockstore3 {
683
596
  constructor(parent, opts = { add: true }) {
684
597
  super();
@@ -1688,16 +1601,34 @@ function toURL(pathOrUrl, isIndex) {
1688
1601
  return ensureIsIndex(url, isIndex);
1689
1602
  }
1690
1603
  }
1604
+ var storeFactory = /* @__PURE__ */ new Map();
1605
+ function ensureName(name, url) {
1606
+ if (!url.searchParams.has("name")) {
1607
+ url.searchParams.set("name", name);
1608
+ }
1609
+ }
1691
1610
  function buildURL(optURL, loader) {
1692
1611
  const storeOpts = loader.ebOpts.store;
1693
- return toURL(optURL || dataDir(loader.name, storeOpts.stores?.base), storeOpts.isIndex);
1612
+ const obuItem = Array.from(storeFactory.values()).find((items) => items.overrideBaseURL);
1613
+ let obuUrl;
1614
+ if (obuItem && obuItem.overrideBaseURL) {
1615
+ obuUrl = new URL(obuItem.overrideBaseURL);
1616
+ }
1617
+ return toURL(optURL || obuUrl || dataDir(loader.name, storeOpts.stores?.base), storeOpts.isIndex);
1694
1618
  }
1695
- var storeFactory = /* @__PURE__ */ new Map();
1696
1619
  function registerStoreProtocol(item) {
1697
1620
  if (storeFactory.has(item.protocol)) {
1698
1621
  throw new Error(`protocol ${item.protocol} already registered`);
1699
1622
  }
1623
+ if (item.overrideBaseURL) {
1624
+ Array.from(storeFactory.values()).forEach((items) => {
1625
+ items.overrideBaseURL = void 0;
1626
+ });
1627
+ }
1700
1628
  storeFactory.set(item.protocol, item);
1629
+ return () => {
1630
+ storeFactory.delete(item.protocol);
1631
+ };
1701
1632
  }
1702
1633
  function runStoreFactory(url, logger, run) {
1703
1634
  const item = storeFactory.get(url.protocol);
@@ -1716,6 +1647,7 @@ function loadDataGateway(url, logger) {
1716
1647
  var onceDataStoreFactory = new KeyedResolvOnce();
1717
1648
  async function dataStoreFactory(loader) {
1718
1649
  const url = buildURL(loader.ebOpts.store.stores?.data, loader);
1650
+ ensureName(loader.name, url);
1719
1651
  const logger = ensureLogger(loader.logger, "dataStoreFactory", { url: url.toString() });
1720
1652
  url.searchParams.set("store", "data");
1721
1653
  return onceDataStoreFactory.get(url.toString()).once(async () => {
@@ -1735,15 +1667,14 @@ function loadMetaGateway(url, logger) {
1735
1667
  var onceMetaStoreFactory = new KeyedResolvOnce();
1736
1668
  async function metaStoreFactory(loader) {
1737
1669
  const url = buildURL(loader.ebOpts.store.stores?.meta, loader);
1670
+ ensureName(loader.name, url);
1738
1671
  const logger = ensureLogger(loader.logger, "metaStoreFactory", { url: () => url.toString() });
1739
1672
  url.searchParams.set("store", "meta");
1740
1673
  return onceMetaStoreFactory.get(url.toString()).once(async () => {
1741
1674
  logger.Debug().Str("protocol", url.protocol).Msg("pre-protocol switch");
1742
1675
  const gateway = await loadMetaGateway(url, logger);
1743
1676
  const store = new MetaStore(loader.name, url, loader.logger, gateway);
1744
- logger.Debug().Msg("pre-start");
1745
1677
  await store.start();
1746
- logger.Debug().Msg("post-start");
1747
1678
  return store;
1748
1679
  });
1749
1680
  }
@@ -1756,6 +1687,7 @@ function loadWalGateway(url, logger) {
1756
1687
  var onceRemoteWalFactory = new KeyedResolvOnce();
1757
1688
  async function remoteWalFactory(loader) {
1758
1689
  const url = buildURL(loader.ebOpts.store.stores?.meta, loader);
1690
+ ensureName(loader.name, url);
1759
1691
  const logger = ensureLogger(loader.logger, "remoteWalFactory", { url: url.toString() });
1760
1692
  url.searchParams.set("store", "wal");
1761
1693
  return onceRemoteWalFactory.get(url.toString()).once(async () => {
@@ -1797,57 +1729,57 @@ function toStoreRuntime(opts, ilogger) {
1797
1729
  registerStoreProtocol({
1798
1730
  protocol: "file:",
1799
1731
  data: async (logger) => {
1800
- const { FileDataGateway } = await import("./store-file-HMHPQTUV.js");
1732
+ const { FileDataGateway } = await import("./store-file-WD746RSY.js");
1801
1733
  return new FileDataGateway(logger);
1802
1734
  },
1803
1735
  meta: async (logger) => {
1804
- const { FileMetaGateway } = await import("./store-file-HMHPQTUV.js");
1736
+ const { FileMetaGateway } = await import("./store-file-WD746RSY.js");
1805
1737
  return new FileMetaGateway(logger);
1806
1738
  },
1807
1739
  wal: async (logger) => {
1808
- const { FileWALGateway } = await import("./store-file-HMHPQTUV.js");
1740
+ const { FileWALGateway } = await import("./store-file-WD746RSY.js");
1809
1741
  return new FileWALGateway(logger);
1810
1742
  },
1811
1743
  test: async (logger) => {
1812
- const { FileTestStore } = await import("./store-file-HMHPQTUV.js");
1744
+ const { FileTestStore } = await import("./store-file-WD746RSY.js");
1813
1745
  return new FileTestStore(logger);
1814
1746
  }
1815
1747
  });
1816
1748
  registerStoreProtocol({
1817
1749
  protocol: "indexdb:",
1818
1750
  data: async (logger) => {
1819
- const { IndexDBDataGateway } = await import("./store-indexdb-MRVZG4OG.js");
1751
+ const { IndexDBDataGateway } = await import("./store-indexdb-NG45BU3Q.js");
1820
1752
  return new IndexDBDataGateway(logger);
1821
1753
  },
1822
1754
  meta: async (logger) => {
1823
- const { IndexDBMetaGateway } = await import("./store-indexdb-MRVZG4OG.js");
1755
+ const { IndexDBMetaGateway } = await import("./store-indexdb-NG45BU3Q.js");
1824
1756
  return new IndexDBMetaGateway(logger);
1825
1757
  },
1826
1758
  wal: async (logger) => {
1827
- const { IndexDBMetaGateway } = await import("./store-indexdb-MRVZG4OG.js");
1759
+ const { IndexDBMetaGateway } = await import("./store-indexdb-NG45BU3Q.js");
1828
1760
  return new IndexDBMetaGateway(logger);
1829
1761
  },
1830
1762
  test: async (logger) => {
1831
- const { IndexDBTestStore } = await import("./store-indexdb-MRVZG4OG.js");
1763
+ const { IndexDBTestStore } = await import("./store-indexdb-NG45BU3Q.js");
1832
1764
  return new IndexDBTestStore(logger);
1833
1765
  }
1834
1766
  });
1835
1767
  registerStoreProtocol({
1836
1768
  protocol: "sqlite:",
1837
1769
  data: async (logger) => {
1838
- const { SQLDataGateway } = await import("./store-sql-5XMJ5OWJ.js");
1770
+ const { SQLDataGateway } = await import("./store-sql-QVFNIGND.js");
1839
1771
  return new SQLDataGateway(logger);
1840
1772
  },
1841
1773
  meta: async (logger) => {
1842
- const { SQLMetaGateway } = await import("./store-sql-5XMJ5OWJ.js");
1774
+ const { SQLMetaGateway } = await import("./store-sql-QVFNIGND.js");
1843
1775
  return new SQLMetaGateway(logger);
1844
1776
  },
1845
1777
  wal: async (logger) => {
1846
- const { SQLWalGateway } = await import("./store-sql-5XMJ5OWJ.js");
1778
+ const { SQLWalGateway } = await import("./store-sql-QVFNIGND.js");
1847
1779
  return new SQLWalGateway(logger);
1848
1780
  },
1849
1781
  test: async (logger) => {
1850
- const { SQLTestStore } = await import("./store-sql-5XMJ5OWJ.js");
1782
+ const { SQLTestStore } = await import("./store-sql-QVFNIGND.js");
1851
1783
  return new SQLTestStore(logger);
1852
1784
  }
1853
1785
  });
@@ -2795,7 +2727,7 @@ var Database = class {
2795
2727
  }));
2796
2728
  return { rows, clock: head };
2797
2729
  }
2798
- async allDocs() {
2730
+ async allDocs(opts = {}) {
2799
2731
  await this.ready();
2800
2732
  const { result, head } = await this._crdt.allDocs();
2801
2733
  const rows = result.map(({ id: key, value, del }) => ({
@@ -2898,7 +2830,7 @@ function makeName(fnString) {
2898
2830
 
2899
2831
  // src/version.ts
2900
2832
  var PACKAGE_VERSION = Object.keys({
2901
- "0.19.8-dev": "xxxx"
2833
+ "0.0.0-dev": "xxxx"
2902
2834
  })[0];
2903
2835
  export {
2904
2836
  CRDT,
@@ -2918,6 +2850,7 @@ export {
2918
2850
  index,
2919
2851
  isFalsy,
2920
2852
  runtime_exports as rt,
2853
+ runtime_exports as runtime,
2921
2854
  throwFalsy
2922
2855
  };
2923
2856
  //# sourceMappingURL=index.js.map