@fireproof/core 0.14.1 → 0.14.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/fireproof.cjs +19 -23
- package/dist/browser/fireproof.cjs.map +3 -3
- package/dist/browser/fireproof.esm.js +19 -23
- package/dist/browser/fireproof.esm.js.map +3 -3
- package/dist/browser/fireproof.iife.js +19 -23
- package/dist/browser/fireproof.iife.js.map +3 -3
- package/dist/node/fireproof.cjs +19 -23
- package/dist/node/fireproof.cjs.map +3 -3
- package/dist/node/fireproof.esm.js +19 -23
- package/dist/node/fireproof.esm.js.map +3 -3
- package/dist/types/apply-head-queue.d.ts +1 -3
- package/dist/types/crdt-clock.d.ts +3 -3
- package/dist/types/store-memory.d.ts +24 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -2
package/dist/node/fireproof.cjs
CHANGED
@@ -20987,7 +20987,7 @@ var import_os = require("os");
|
|
20987
20987
|
var import_promises = require("fs/promises");
|
20988
20988
|
|
20989
20989
|
// src/version.ts
|
20990
|
-
var PACKAGE_VERSION = "0.14.
|
20990
|
+
var PACKAGE_VERSION = "0.14.3";
|
20991
20991
|
|
20992
20992
|
// src/store.ts
|
20993
20993
|
var match = PACKAGE_VERSION.match(/^([^.]*\.[^.]*)/);
|
@@ -30142,11 +30142,9 @@ async function processFileset(blocks, files, publicFiles = false) {
|
|
30142
30142
|
const dbBlockstore = blocks.parent;
|
30143
30143
|
const t = new Transaction(dbBlockstore);
|
30144
30144
|
const didPut = [];
|
30145
|
-
let totalSize = 0;
|
30146
30145
|
for (const filename in files) {
|
30147
30146
|
if (File === files[filename].constructor) {
|
30148
30147
|
const file = files[filename];
|
30149
|
-
totalSize += file.size;
|
30150
30148
|
const { cid, blocks: fileBlocks } = await encodeFile2(file);
|
30151
30149
|
didPut.push(filename);
|
30152
30150
|
for (const block of fileBlocks) {
|
@@ -30155,8 +30153,6 @@ async function processFileset(blocks, files, publicFiles = false) {
|
|
30155
30153
|
files[filename] = { cid, type: file.type, size: file.size };
|
30156
30154
|
}
|
30157
30155
|
}
|
30158
|
-
if (totalSize > 1024 * 1024 * 1)
|
30159
|
-
throw new Error("Sync limit for files in a single update is 1MB");
|
30160
30156
|
if (didPut.length) {
|
30161
30157
|
const car = await dbBlockstore.loader?.commit(t, { files }, { public: publicFiles });
|
30162
30158
|
if (car) {
|
@@ -30383,7 +30379,7 @@ var DbLoader = class _DbLoader extends Loader {
|
|
30383
30379
|
this.isCompacting = true;
|
30384
30380
|
const compactHead = this.clock.head;
|
30385
30381
|
const compactingResult = await doCompact(blocks, this.clock.head);
|
30386
|
-
await this.clock.applyHead(
|
30382
|
+
await this.clock.applyHead(compactHead, compactHead, null);
|
30387
30383
|
return compactingResult;
|
30388
30384
|
};
|
30389
30385
|
this.compacting = this._setWaitForWrite(compactingFn);
|
@@ -30398,9 +30394,9 @@ var DbLoader = class _DbLoader extends Loader {
|
|
30398
30394
|
}
|
30399
30395
|
async _applyCarHeader(carHeader, snap = false) {
|
30400
30396
|
if (snap) {
|
30401
|
-
await this.clock.applyHead(
|
30397
|
+
await this.clock.applyHead(carHeader.head, this.clock.head);
|
30402
30398
|
} else {
|
30403
|
-
await this.clock.applyHead(
|
30399
|
+
await this.clock.applyHead(carHeader.head, []);
|
30404
30400
|
}
|
30405
30401
|
}
|
30406
30402
|
makeCarHeader(result, cars, compact = false) {
|
@@ -30556,7 +30552,7 @@ function applyHeadQueue(worker) {
|
|
30556
30552
|
const task = queue.shift();
|
30557
30553
|
if (!task)
|
30558
30554
|
continue;
|
30559
|
-
await worker(task.id, task.
|
30555
|
+
await worker(task.id, task.newHead, task.prevHead, task.updates);
|
30560
30556
|
if (task.updates) {
|
30561
30557
|
allUpdates.push(...task.updates);
|
30562
30558
|
}
|
@@ -30600,18 +30596,18 @@ var CRDTClock = class {
|
|
30600
30596
|
setHead(head) {
|
30601
30597
|
this.head = head;
|
30602
30598
|
}
|
30603
|
-
async applyHead(
|
30599
|
+
async applyHead(newHead, prevHead, updates = null) {
|
30604
30600
|
const taskId = Math.random().toString().slice(2, 8);
|
30605
30601
|
for await (const { updates: updatesAcc, all } of this.applyHeadQueue.push({
|
30606
30602
|
id: taskId,
|
30607
|
-
tblocks,
|
30603
|
+
// tblocks,
|
30608
30604
|
newHead,
|
30609
30605
|
prevHead,
|
30610
30606
|
updates
|
30611
30607
|
})) {
|
30612
30608
|
;
|
30613
|
-
(
|
30614
|
-
Promise.resolve().then(async () => {
|
30609
|
+
((updatesAcc2, all2) => {
|
30610
|
+
void Promise.resolve().then(async () => {
|
30615
30611
|
let intUpdates = updatesAcc2;
|
30616
30612
|
if (this.watchers.size && !all2) {
|
30617
30613
|
const changes = await clockChangesSince(this.blocks, this.head, prevHead, {});
|
@@ -30623,11 +30619,11 @@ var CRDTClock = class {
|
|
30623
30619
|
})([...updatesAcc], all);
|
30624
30620
|
}
|
30625
30621
|
}
|
30626
|
-
async int_applyHead(taskId,
|
30622
|
+
async int_applyHead(taskId, newHead, prevHead) {
|
30627
30623
|
const ogHead = this.head.sort((a, b) => a.toString().localeCompare(b.toString()));
|
30628
30624
|
newHead = newHead.sort((a, b) => a.toString().localeCompare(b.toString()));
|
30629
|
-
newHead.map((cid) => {
|
30630
|
-
const got = this.blocks.get(cid);
|
30625
|
+
newHead.map(async (cid) => {
|
30626
|
+
const got = await this.blocks.get(cid);
|
30631
30627
|
if (!got) {
|
30632
30628
|
throw new Error("int_applyHead missing block: " + cid.toString());
|
30633
30629
|
}
|
@@ -30642,23 +30638,23 @@ var CRDTClock = class {
|
|
30642
30638
|
}
|
30643
30639
|
let head = this.head;
|
30644
30640
|
const noLoader = false;
|
30645
|
-
const withBlocks = async (
|
30641
|
+
const withBlocks = async (fn) => {
|
30646
30642
|
if (!this.blocks)
|
30647
30643
|
throw new Error("missing blocks");
|
30648
30644
|
return await this.blocks.transaction(fn, void 0, { noLoader });
|
30649
30645
|
};
|
30650
|
-
await withBlocks(
|
30646
|
+
await withBlocks(async (tblocks) => {
|
30651
30647
|
for (const cid of newHead) {
|
30652
30648
|
try {
|
30653
|
-
head = await advance(
|
30649
|
+
head = await advance(tblocks, head, cid);
|
30654
30650
|
} catch (e) {
|
30655
30651
|
console.error("failed to advance", cid.toString(), e);
|
30656
30652
|
continue;
|
30657
30653
|
}
|
30658
30654
|
}
|
30659
|
-
const result = await root(
|
30655
|
+
const result = await root(tblocks, head);
|
30660
30656
|
for (const { cid, bytes } of [...result.additions, ...result.removals]) {
|
30661
|
-
|
30657
|
+
tblocks.putSync(cid, bytes);
|
30662
30658
|
}
|
30663
30659
|
return { head };
|
30664
30660
|
});
|
@@ -30737,7 +30733,7 @@ var CRDT = class {
|
|
30737
30733
|
}
|
30738
30734
|
return { head };
|
30739
30735
|
});
|
30740
|
-
await this.clock.applyHead(
|
30736
|
+
await this.clock.applyHead(got.head, prevHead, updates);
|
30741
30737
|
return got;
|
30742
30738
|
})();
|
30743
30739
|
if (loader) {
|
@@ -30772,7 +30768,7 @@ var CRDT = class {
|
|
30772
30768
|
return await getBlock(this.blocks, cidString);
|
30773
30769
|
}
|
30774
30770
|
async getThatBlock() {
|
30775
|
-
const blockJson = {
|
30771
|
+
const blockJson = { cid: "bafyreib7ee4pscqpuioxobmh3ac5xbbslypmaqqbkugalhw67hnco6dvoa", bytes: "omRkYXRhpGNrZXl4JDAxOGFmNzdiLWZmMTUtNzI5Ny04ODZiLTYwMjViM2MxODI2ZWRyb2902CpYJQABcRIgKVLI53HO1TFDbPUoSaybd0mop2oX/CRFm1RrpiY4ne9kdHlwZWNwdXRldmFsdWXYKlglAAFxEiAGw53MVtPzeeGT/itfdLBfCVu6MTj96AHU6v9a3K/wYGdwYXJlbnRzgdgqWCUAAXESIJiL5qjdpgghUfbQLpKJeCgMX+ubhoTpYBoZHYdzbQJ/" };
|
30776
30772
|
return await getThatBlock(blockJson);
|
30777
30773
|
}
|
30778
30774
|
async get(key) {
|