@fireproof/core 0.13.5-dev → 0.14.0
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/dist/browser/fireproof.cjs +68 -34
- package/dist/browser/fireproof.cjs.map +4 -4
- package/dist/browser/fireproof.esm.js +68 -34
- package/dist/browser/fireproof.esm.js.map +4 -4
- package/dist/browser/fireproof.iife.js +68 -34
- package/dist/browser/fireproof.iife.js.map +4 -4
- package/dist/node/fireproof.cjs +68 -34
- package/dist/node/fireproof.cjs.map +4 -4
- package/dist/node/fireproof.esm.js +68 -34
- package/dist/node/fireproof.esm.js.map +4 -4
- package/dist/types/apply-head-queue.d.ts +2 -2
- package/dist/types/crdt-clock.d.ts +3 -3
- package/dist/types/crdt-helpers.d.ts +8 -2
- package/dist/types/crdt.d.ts +2 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
    
        package/dist/node/fireproof.cjs
    CHANGED
    
    | @@ -11618,7 +11618,7 @@ replaceTraps((oldTraps) => ({ | |
| 11618 11618 | 
             
            }));
         | 
| 11619 11619 |  | 
| 11620 11620 | 
             
            // src/version.ts
         | 
| 11621 | 
            -
            var PACKAGE_VERSION = "0. | 
| 11621 | 
            +
            var PACKAGE_VERSION = "0.14.0";
         | 
| 11622 11622 |  | 
| 11623 11623 | 
             
            // src/store.ts
         | 
| 11624 11624 | 
             
            var match = PACKAGE_VERSION.match(/^([^.]*\.[^.]*)/);
         | 
| @@ -12031,9 +12031,6 @@ var Loader = class { | |
| 12031 12031 | 
             
                  const header = await encodeCarHeader(fp);
         | 
| 12032 12032 | 
             
                  await t.put(header.cid, header.bytes);
         | 
| 12033 12033 | 
             
                  roots = [header.cid];
         | 
| 12034 | 
            -
                  const got = await t.get(header.cid);
         | 
| 12035 | 
            -
                  if (!got)
         | 
| 12036 | 
            -
                    throw new Error("missing header!!!");
         | 
| 12037 12034 | 
             
                }
         | 
| 12038 12035 | 
             
                const theKey = opts.public ? null : await this._getKey();
         | 
| 12039 12036 | 
             
                const { cid, bytes } = theKey ? await encryptedEncodeCarFile(theKey, roots[0], t) : await encodeCarFile(roots, t);
         | 
| @@ -12804,6 +12801,9 @@ function makeMapFnFromName(name8) { | |
| 12804 12801 | 
             
              };
         | 
| 12805 12802 | 
             
            }
         | 
| 12806 12803 |  | 
| 12804 | 
            +
            // ../../node_modules/.pnpm/multiformats@12.0.1/node_modules/multiformats/src/link.js
         | 
| 12805 | 
            +
            var parse3 = (source, base3) => CID2.parse(source, base3);
         | 
| 12806 | 
            +
             | 
| 12807 12807 | 
             
            // ../../node_modules/.pnpm/multiformats@11.0.2/node_modules/multiformats/src/hashes/hasher.js
         | 
| 12808 12808 | 
             
            var from4 = ({ name: name8, code: code8, encode: encode19 }) => new Hasher2(name8, code8, encode19);
         | 
| 12809 12809 | 
             
            var Hasher2 = class {
         | 
| @@ -14635,7 +14635,7 @@ var Data = $root.Data = (() => { | |
| 14635 14635 | 
             
                }
         | 
| 14636 14636 | 
             
                return d;
         | 
| 14637 14637 | 
             
              };
         | 
| 14638 | 
            -
              Data3.prototype.toJSON = function  | 
| 14638 | 
            +
              Data3.prototype.toJSON = function toJSON3() {
         | 
| 14639 14639 | 
             
                return this.constructor.toObject(this, import_minimal.default.util.toJSONOptions);
         | 
| 14640 14640 | 
             
              };
         | 
| 14641 14641 | 
             
              Data3.DataType = function() {
         | 
| @@ -14732,7 +14732,7 @@ var UnixTime = $root.UnixTime = (() => { | |
| 14732 14732 | 
             
                }
         | 
| 14733 14733 | 
             
                return d;
         | 
| 14734 14734 | 
             
              };
         | 
| 14735 | 
            -
              UnixTime3.prototype.toJSON = function  | 
| 14735 | 
            +
              UnixTime3.prototype.toJSON = function toJSON3() {
         | 
| 14736 14736 | 
             
                return this.constructor.toObject(this, import_minimal.default.util.toJSONOptions);
         | 
| 14737 14737 | 
             
              };
         | 
| 14738 14738 | 
             
              return UnixTime3;
         | 
| @@ -14791,7 +14791,7 @@ var Metadata = $root.Metadata = (() => { | |
| 14791 14791 | 
             
                }
         | 
| 14792 14792 | 
             
                return d;
         | 
| 14793 14793 | 
             
              };
         | 
| 14794 | 
            -
              Metadata3.prototype.toJSON = function  | 
| 14794 | 
            +
              Metadata3.prototype.toJSON = function toJSON3() {
         | 
| 14795 14795 | 
             
                return this.constructor.toObject(this, import_minimal.default.util.toJSONOptions);
         | 
| 14796 14796 | 
             
              };
         | 
| 14797 14797 | 
             
              return Metadata3;
         | 
| @@ -20944,6 +20944,8 @@ async function doCompact(blocks, head) { | |
| 20944 20944 | 
             
                if (!bl)
         | 
| 20945 20945 | 
             
                  throw new Error("Missing head block: " + cid.toString());
         | 
| 20946 20946 | 
             
              }
         | 
| 20947 | 
            +
              for await (const entry of getAllEntries(blockLog, head)) {
         | 
| 20948 | 
            +
              }
         | 
| 20947 20949 | 
             
              for await (const [, link2] of entries2(blockLog, head)) {
         | 
| 20948 20950 | 
             
                const bl = await blockLog.get(link2);
         | 
| 20949 20951 | 
             
                if (!bl)
         | 
| @@ -20960,6 +20962,18 @@ async function doCompact(blocks, head) { | |
| 20960 20962 | 
             
              isCompacting = false;
         | 
| 20961 20963 | 
             
              return done;
         | 
| 20962 20964 | 
             
            }
         | 
| 20965 | 
            +
            async function getThatBlock({ bytes }) {
         | 
| 20966 | 
            +
              const realBytes = Uint8Array.from(atob(bytes), (c) => c.charCodeAt(0));
         | 
| 20967 | 
            +
              const { cid, value } = await decode12({ bytes: realBytes, codec: src_exports, hasher: sha256 });
         | 
| 20968 | 
            +
              return new Block({ cid, value, bytes: realBytes });
         | 
| 20969 | 
            +
            }
         | 
| 20970 | 
            +
            async function getBlock(blocks, cidString) {
         | 
| 20971 | 
            +
              const block = await blocks.get(parse3(cidString));
         | 
| 20972 | 
            +
              if (!block)
         | 
| 20973 | 
            +
                throw new Error(`Missing block ${cidString}`);
         | 
| 20974 | 
            +
              const { cid, value } = await decode12({ bytes: block.bytes, codec: src_exports, hasher: sha256 });
         | 
| 20975 | 
            +
              return new Block({ cid, value, bytes: block.bytes });
         | 
| 20976 | 
            +
            }
         | 
| 20963 20977 |  | 
| 20964 20978 | 
             
            // src/loaders.ts
         | 
| 20965 20979 | 
             
            var IdxLoader = class _IdxLoader extends Loader {
         | 
| @@ -21023,18 +21037,17 @@ var DbLoader = class _DbLoader extends Loader { | |
| 21023 21037 | 
             
                    return;
         | 
| 21024 21038 | 
             
                  }
         | 
| 21025 21039 | 
             
                  this.isCompacting = true;
         | 
| 21026 | 
            -
                   | 
| 21027 | 
            -
             | 
| 21028 | 
            -
             | 
| 21029 | 
            -
             | 
| 21030 | 
            -
                    return compactingResult;
         | 
| 21031 | 
            -
                  } finally {
         | 
| 21032 | 
            -
                    this.isCompacting = false;
         | 
| 21033 | 
            -
                  }
         | 
| 21040 | 
            +
                  const compactHead = this.clock.head;
         | 
| 21041 | 
            +
                  const compactingResult = await doCompact(blocks, this.clock.head);
         | 
| 21042 | 
            +
                  await this.clock.applyHead(null, compactHead, compactHead, null);
         | 
| 21043 | 
            +
                  return compactingResult;
         | 
| 21034 21044 | 
             
                };
         | 
| 21035 21045 | 
             
                this.compacting = this._setWaitForWrite(compactingFn);
         | 
| 21046 | 
            +
                this.compacting.finally(() => {
         | 
| 21047 | 
            +
                  this.isCompacting = false;
         | 
| 21048 | 
            +
                  this.awaitingCompact = false;
         | 
| 21049 | 
            +
                });
         | 
| 21036 21050 | 
             
                await this.compacting;
         | 
| 21037 | 
            -
                this.awaitingCompact = false;
         | 
| 21038 21051 | 
             
              }
         | 
| 21039 21052 | 
             
              async loadFileCar(cid, isPublic = false) {
         | 
| 21040 21053 | 
             
                return await this.storesLoadCar(cid, this.fileStore, this.remoteFileStore, isPublic);
         | 
| @@ -21245,17 +21258,25 @@ var CRDTClock = class { | |
| 21245 21258 | 
             
              }
         | 
| 21246 21259 | 
             
              async applyHead(tblocks, newHead, prevHead, updates = null) {
         | 
| 21247 21260 | 
             
                const taskId = Math.random().toString().slice(2, 8);
         | 
| 21248 | 
            -
                for await (const { updates: updatesAcc, all } of this.applyHeadQueue.push({ | 
| 21249 | 
            -
                   | 
| 21250 | 
            -
             | 
| 21251 | 
            -
             | 
| 21252 | 
            -
             | 
| 21253 | 
            -
             | 
| 21254 | 
            -
             | 
| 21255 | 
            -
             | 
| 21256 | 
            -
             | 
| 21257 | 
            -
                     | 
| 21258 | 
            -
             | 
| 21261 | 
            +
                for await (const { updates: updatesAcc, all } of this.applyHeadQueue.push({
         | 
| 21262 | 
            +
                  id: taskId,
         | 
| 21263 | 
            +
                  tblocks,
         | 
| 21264 | 
            +
                  newHead,
         | 
| 21265 | 
            +
                  prevHead,
         | 
| 21266 | 
            +
                  updates
         | 
| 21267 | 
            +
                })) {
         | 
| 21268 | 
            +
                  ;
         | 
| 21269 | 
            +
                  (async (updatesAcc2, all2) => {
         | 
| 21270 | 
            +
                    Promise.resolve().then(async () => {
         | 
| 21271 | 
            +
                      let intUpdates = updatesAcc2;
         | 
| 21272 | 
            +
                      if (this.watchers.size && !all2) {
         | 
| 21273 | 
            +
                        const changes = await clockChangesSince(this.blocks, this.head, prevHead, {});
         | 
| 21274 | 
            +
                        intUpdates = changes.result;
         | 
| 21275 | 
            +
                      }
         | 
| 21276 | 
            +
                      this.zoomers.forEach((fn) => fn());
         | 
| 21277 | 
            +
                      this.notifyWatchers(intUpdates || []);
         | 
| 21278 | 
            +
                    });
         | 
| 21279 | 
            +
                  })([...updatesAcc], all);
         | 
| 21259 21280 | 
             
                }
         | 
| 21260 21281 | 
             
              }
         | 
| 21261 21282 | 
             
              async int_applyHead(taskId, tblocks, newHead, prevHead, updates = null) {
         | 
| @@ -21268,13 +21289,11 @@ var CRDTClock = class { | |
| 21268 21289 | 
             
                  }
         | 
| 21269 21290 | 
             
                });
         | 
| 21270 21291 | 
             
                if (ogHead.toString() === newHead.toString()) {
         | 
| 21271 | 
            -
                  this.notifyWatchers(updates || []);
         | 
| 21272 21292 | 
             
                  return;
         | 
| 21273 21293 | 
             
                }
         | 
| 21274 21294 | 
             
                const ogPrev = prevHead.sort((a, b) => a.toString().localeCompare(b.toString()));
         | 
| 21275 21295 | 
             
                if (ogHead.toString() === ogPrev.toString()) {
         | 
| 21276 21296 | 
             
                  this.setHead(newHead);
         | 
| 21277 | 
            -
                  this.notifyWatchers(updates || []);
         | 
| 21278 21297 | 
             
                  return;
         | 
| 21279 21298 | 
             
                }
         | 
| 21280 21299 | 
             
                let head = this.head;
         | 
| @@ -21289,6 +21308,7 @@ var CRDTClock = class { | |
| 21289 21308 | 
             
                    try {
         | 
| 21290 21309 | 
             
                      head = await advance(tblocks2, head, cid);
         | 
| 21291 21310 | 
             
                    } catch (e) {
         | 
| 21311 | 
            +
                      console.error("failed to advance", cid.toString(), e);
         | 
| 21292 21312 | 
             
                      continue;
         | 
| 21293 21313 | 
             
                    }
         | 
| 21294 21314 | 
             
                  }
         | 
| @@ -21359,16 +21379,22 @@ var CRDT = class { | |
| 21359 21379 | 
             
                  if (loader?.isCompacting) {
         | 
| 21360 21380 | 
             
                    throw new Error("cant bulk while compacting");
         | 
| 21361 21381 | 
             
                  }
         | 
| 21362 | 
            -
                  const  | 
| 21363 | 
            -
                    const { head | 
| 21382 | 
            +
                  const got = await this.blocks.transaction(async (tblocks) => {
         | 
| 21383 | 
            +
                    const { head } = await applyBulkUpdateToCrdt(tblocks, this.clock.head, updates, options);
         | 
| 21364 21384 | 
             
                    updates = updates.map(({ key, value, del: del2 }) => {
         | 
| 21365 21385 | 
             
                      readFiles(this.blocks, { doc: value });
         | 
| 21366 21386 | 
             
                      return { key, value, del: del2 };
         | 
| 21367 21387 | 
             
                    });
         | 
| 21368 | 
            -
                     | 
| 21388 | 
            +
                    if (loader?.awaitingCompact) {
         | 
| 21389 | 
            +
                      console.log("missing?", head.toString());
         | 
| 21390 | 
            +
                    }
         | 
| 21391 | 
            +
                    if (loader?.isCompacting) {
         | 
| 21392 | 
            +
                      console.log("compacting?", head.toString());
         | 
| 21393 | 
            +
                    }
         | 
| 21394 | 
            +
                    return { head };
         | 
| 21369 21395 | 
             
                  });
         | 
| 21370 | 
            -
                  await this.clock.applyHead(null, head, prevHead, updates);
         | 
| 21371 | 
            -
                  return  | 
| 21396 | 
            +
                  await this.clock.applyHead(null, got.head, prevHead, updates);
         | 
| 21397 | 
            +
                  return got;
         | 
| 21372 21398 | 
             
                })();
         | 
| 21373 21399 | 
             
                if (loader) {
         | 
| 21374 21400 | 
             
                  const wr = loader.writing;
         | 
| @@ -21397,6 +21423,14 @@ var CRDT = class { | |
| 21397 21423 | 
             
                }
         | 
| 21398 21424 | 
             
                return txt.join("\n");
         | 
| 21399 21425 | 
             
              }
         | 
| 21426 | 
            +
              async getBlock(cidString) {
         | 
| 21427 | 
            +
                await this.ready;
         | 
| 21428 | 
            +
                return await getBlock(this.blocks, cidString);
         | 
| 21429 | 
            +
              }
         | 
| 21430 | 
            +
              async getThatBlock() {
         | 
| 21431 | 
            +
                const blockJson = { "cid": "bafyreib7ee4pscqpuioxobmh3ac5xbbslypmaqqbkugalhw67hnco6dvoa", "bytes": "omRkYXRhpGNrZXl4JDAxOGFmNzdiLWZmMTUtNzI5Ny04ODZiLTYwMjViM2MxODI2ZWRyb2902CpYJQABcRIgKVLI53HO1TFDbPUoSaybd0mop2oX/CRFm1RrpiY4ne9kdHlwZWNwdXRldmFsdWXYKlglAAFxEiAGw53MVtPzeeGT/itfdLBfCVu6MTj96AHU6v9a3K/wYGdwYXJlbnRzgdgqWCUAAXESIJiL5qjdpgghUfbQLpKJeCgMX+ubhoTpYBoZHYdzbQJ/" };
         | 
| 21432 | 
            +
                return await getThatBlock(blockJson);
         | 
| 21433 | 
            +
              }
         | 
| 21400 21434 | 
             
              async get(key) {
         | 
| 21401 21435 | 
             
                await this.ready;
         | 
| 21402 21436 | 
             
                const result = await getValueFromCrdt(this.blocks, this.clock.head, key);
         |