@fireproof/core 0.14.1 → 0.14.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/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
@@ -11605,7 +11605,7 @@ replaceTraps((oldTraps) => ({
|
|
11605
11605
|
}));
|
11606
11606
|
|
11607
11607
|
// src/version.ts
|
11608
|
-
var PACKAGE_VERSION = "0.14.
|
11608
|
+
var PACKAGE_VERSION = "0.14.3";
|
11609
11609
|
|
11610
11610
|
// src/store.ts
|
11611
11611
|
var match = PACKAGE_VERSION.match(/^([^.]*\.[^.]*)/);
|
@@ -20808,11 +20808,9 @@ async function processFileset(blocks, files, publicFiles = false) {
|
|
20808
20808
|
const dbBlockstore = blocks.parent;
|
20809
20809
|
const t = new Transaction(dbBlockstore);
|
20810
20810
|
const didPut = [];
|
20811
|
-
let totalSize = 0;
|
20812
20811
|
for (const filename in files) {
|
20813
20812
|
if (File === files[filename].constructor) {
|
20814
20813
|
const file = files[filename];
|
20815
|
-
totalSize += file.size;
|
20816
20814
|
const { cid, blocks: fileBlocks } = await encodeFile2(file);
|
20817
20815
|
didPut.push(filename);
|
20818
20816
|
for (const block of fileBlocks) {
|
@@ -20821,8 +20819,6 @@ async function processFileset(blocks, files, publicFiles = false) {
|
|
20821
20819
|
files[filename] = { cid, type: file.type, size: file.size };
|
20822
20820
|
}
|
20823
20821
|
}
|
20824
|
-
if (totalSize > 1024 * 1024 * 1)
|
20825
|
-
throw new Error("Sync limit for files in a single update is 1MB");
|
20826
20822
|
if (didPut.length) {
|
20827
20823
|
const car = await dbBlockstore.loader?.commit(t, { files }, { public: publicFiles });
|
20828
20824
|
if (car) {
|
@@ -21048,7 +21044,7 @@ var _DbLoader = class _DbLoader extends Loader {
|
|
21048
21044
|
this.isCompacting = true;
|
21049
21045
|
const compactHead = this.clock.head;
|
21050
21046
|
const compactingResult = await doCompact(blocks, this.clock.head);
|
21051
|
-
await this.clock.applyHead(
|
21047
|
+
await this.clock.applyHead(compactHead, compactHead, null);
|
21052
21048
|
return compactingResult;
|
21053
21049
|
};
|
21054
21050
|
this.compacting = this._setWaitForWrite(compactingFn);
|
@@ -21063,9 +21059,9 @@ var _DbLoader = class _DbLoader extends Loader {
|
|
21063
21059
|
}
|
21064
21060
|
async _applyCarHeader(carHeader, snap = false) {
|
21065
21061
|
if (snap) {
|
21066
|
-
await this.clock.applyHead(
|
21062
|
+
await this.clock.applyHead(carHeader.head, this.clock.head);
|
21067
21063
|
} else {
|
21068
|
-
await this.clock.applyHead(
|
21064
|
+
await this.clock.applyHead(carHeader.head, []);
|
21069
21065
|
}
|
21070
21066
|
}
|
21071
21067
|
makeCarHeader(result, cars, compact = false) {
|
@@ -21224,7 +21220,7 @@ function applyHeadQueue(worker) {
|
|
21224
21220
|
const task = queue.shift();
|
21225
21221
|
if (!task)
|
21226
21222
|
continue;
|
21227
|
-
await worker(task.id, task.
|
21223
|
+
await worker(task.id, task.newHead, task.prevHead, task.updates);
|
21228
21224
|
if (task.updates) {
|
21229
21225
|
allUpdates.push(...task.updates);
|
21230
21226
|
}
|
@@ -21268,18 +21264,18 @@ var CRDTClock = class {
|
|
21268
21264
|
setHead(head) {
|
21269
21265
|
this.head = head;
|
21270
21266
|
}
|
21271
|
-
async applyHead(
|
21267
|
+
async applyHead(newHead, prevHead, updates = null) {
|
21272
21268
|
const taskId = Math.random().toString().slice(2, 8);
|
21273
21269
|
for await (const { updates: updatesAcc, all } of this.applyHeadQueue.push({
|
21274
21270
|
id: taskId,
|
21275
|
-
tblocks,
|
21271
|
+
// tblocks,
|
21276
21272
|
newHead,
|
21277
21273
|
prevHead,
|
21278
21274
|
updates
|
21279
21275
|
})) {
|
21280
21276
|
;
|
21281
|
-
(
|
21282
|
-
Promise.resolve().then(async () => {
|
21277
|
+
((updatesAcc2, all2) => {
|
21278
|
+
void Promise.resolve().then(async () => {
|
21283
21279
|
let intUpdates = updatesAcc2;
|
21284
21280
|
if (this.watchers.size && !all2) {
|
21285
21281
|
const changes = await clockChangesSince(this.blocks, this.head, prevHead, {});
|
@@ -21291,11 +21287,11 @@ var CRDTClock = class {
|
|
21291
21287
|
})([...updatesAcc], all);
|
21292
21288
|
}
|
21293
21289
|
}
|
21294
|
-
async int_applyHead(taskId,
|
21290
|
+
async int_applyHead(taskId, newHead, prevHead) {
|
21295
21291
|
const ogHead = this.head.sort((a, b) => a.toString().localeCompare(b.toString()));
|
21296
21292
|
newHead = newHead.sort((a, b) => a.toString().localeCompare(b.toString()));
|
21297
|
-
newHead.map((cid) => {
|
21298
|
-
const got = this.blocks.get(cid);
|
21293
|
+
newHead.map(async (cid) => {
|
21294
|
+
const got = await this.blocks.get(cid);
|
21299
21295
|
if (!got) {
|
21300
21296
|
throw new Error("int_applyHead missing block: " + cid.toString());
|
21301
21297
|
}
|
@@ -21310,23 +21306,23 @@ var CRDTClock = class {
|
|
21310
21306
|
}
|
21311
21307
|
let head = this.head;
|
21312
21308
|
const noLoader = false;
|
21313
|
-
const withBlocks = async (
|
21309
|
+
const withBlocks = async (fn) => {
|
21314
21310
|
if (!this.blocks)
|
21315
21311
|
throw new Error("missing blocks");
|
21316
21312
|
return await this.blocks.transaction(fn, void 0, { noLoader });
|
21317
21313
|
};
|
21318
|
-
await withBlocks(
|
21314
|
+
await withBlocks(async (tblocks) => {
|
21319
21315
|
for (const cid of newHead) {
|
21320
21316
|
try {
|
21321
|
-
head = await advance(
|
21317
|
+
head = await advance(tblocks, head, cid);
|
21322
21318
|
} catch (e) {
|
21323
21319
|
console.error("failed to advance", cid.toString(), e);
|
21324
21320
|
continue;
|
21325
21321
|
}
|
21326
21322
|
}
|
21327
|
-
const result = await root(
|
21323
|
+
const result = await root(tblocks, head);
|
21328
21324
|
for (const { cid, bytes } of [...result.additions, ...result.removals]) {
|
21329
|
-
|
21325
|
+
tblocks.putSync(cid, bytes);
|
21330
21326
|
}
|
21331
21327
|
return { head };
|
21332
21328
|
});
|
@@ -21405,7 +21401,7 @@ var CRDT = class {
|
|
21405
21401
|
}
|
21406
21402
|
return { head };
|
21407
21403
|
});
|
21408
|
-
await this.clock.applyHead(
|
21404
|
+
await this.clock.applyHead(got.head, prevHead, updates);
|
21409
21405
|
return got;
|
21410
21406
|
})();
|
21411
21407
|
if (loader) {
|
@@ -21440,7 +21436,7 @@ var CRDT = class {
|
|
21440
21436
|
return await getBlock(this.blocks, cidString);
|
21441
21437
|
}
|
21442
21438
|
async getThatBlock() {
|
21443
|
-
const blockJson = {
|
21439
|
+
const blockJson = { cid: "bafyreib7ee4pscqpuioxobmh3ac5xbbslypmaqqbkugalhw67hnco6dvoa", bytes: "omRkYXRhpGNrZXl4JDAxOGFmNzdiLWZmMTUtNzI5Ny04ODZiLTYwMjViM2MxODI2ZWRyb2902CpYJQABcRIgKVLI53HO1TFDbPUoSaybd0mop2oX/CRFm1RrpiY4ne9kdHlwZWNwdXRldmFsdWXYKlglAAFxEiAGw53MVtPzeeGT/itfdLBfCVu6MTj96AHU6v9a3K/wYGdwYXJlbnRzgdgqWCUAAXESIJiL5qjdpgghUfbQLpKJeCgMX+ubhoTpYBoZHYdzbQJ/" };
|
21444
21440
|
return await getThatBlock(blockJson);
|
21445
21441
|
}
|
21446
21442
|
async get(key) {
|