@fireproof/core 0.17.2 → 0.17.4
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 +10 -6
- package/dist/browser/fireproof.cjs.map +1 -1
- package/dist/browser/fireproof.d.cts +15 -12
- package/dist/browser/fireproof.d.ts +15 -12
- package/dist/browser/fireproof.global.js +174 -107
- package/dist/browser/fireproof.global.js.map +1 -1
- package/dist/browser/fireproof.js +14 -6
- package/dist/browser/fireproof.js.map +1 -1
- package/dist/browser/metafile-cjs.json +1 -1
- package/dist/browser/metafile-esm.json +1 -1
- package/dist/browser/metafile-iife.json +1 -1
- package/dist/memory/fireproof.cjs +10 -6
- package/dist/memory/fireproof.cjs.map +1 -1
- package/dist/memory/fireproof.d.cts +15 -12
- package/dist/memory/fireproof.d.ts +15 -12
- package/dist/memory/fireproof.global.js +174 -107
- package/dist/memory/fireproof.global.js.map +1 -1
- package/dist/memory/fireproof.js +14 -6
- package/dist/memory/fireproof.js.map +1 -1
- package/dist/memory/metafile-cjs.json +1 -1
- package/dist/memory/metafile-esm.json +1 -1
- package/dist/memory/metafile-iife.json +1 -1
- package/dist/node/fireproof.cjs +4 -5
- package/dist/node/fireproof.cjs.map +1 -1
- package/dist/node/fireproof.d.cts +15 -12
- package/dist/node/fireproof.d.ts +15 -12
- package/dist/node/fireproof.global.js +169 -98
- package/dist/node/fireproof.global.js.map +1 -1
- package/dist/node/fireproof.js +4 -5
- package/dist/node/fireproof.js.map +1 -1
- package/dist/node/metafile-cjs.json +1 -1
- package/dist/node/metafile-esm.json +1 -1
- package/dist/node/metafile-iife.json +1 -1
- package/package.json +8 -5
@@ -4129,22 +4129,6 @@ var Fireproof = (() => {
|
|
4129
4129
|
}
|
4130
4130
|
}
|
4131
4131
|
};
|
4132
|
-
var MultiBlockFetcher = class {
|
4133
|
-
/** @type {API.BlockFetcher[]} */
|
4134
|
-
#fetchers;
|
4135
|
-
/** @param {API.BlockFetcher[]} fetchers */
|
4136
|
-
constructor(...fetchers) {
|
4137
|
-
this.#fetchers = fetchers;
|
4138
|
-
}
|
4139
|
-
/** @type {API.BlockFetcher['get']} */
|
4140
|
-
async get(link2) {
|
4141
|
-
for (const f of this.#fetchers) {
|
4142
|
-
const v = await f.get(link2);
|
4143
|
-
if (v)
|
4144
|
-
return v;
|
4145
|
-
}
|
4146
|
-
}
|
4147
|
-
};
|
4148
4132
|
|
4149
4133
|
// ../../node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js
|
4150
4134
|
var Node = class {
|
@@ -9891,8 +9875,7 @@ You can use close({ resize: true }) to resize header`);
|
|
9891
9875
|
return uint8Array;
|
9892
9876
|
}
|
9893
9877
|
async function encryptedEncodeCarFile(crypto2, key, rootCid, t) {
|
9894
|
-
const
|
9895
|
-
const encryptionKey = encryptionKeyUint8.buffer.slice(0, encryptionKeyUint8.byteLength);
|
9878
|
+
const encryptionKey = hexStringToUint8Array(key);
|
9896
9879
|
const encryptedBlocks = new MemoryBlockstore();
|
9897
9880
|
const cidsToEncrypt = [];
|
9898
9881
|
for (const { cid } of t.entries()) {
|
@@ -9969,7 +9952,7 @@ You can use close({ resize: true }) to resize header`);
|
|
9969
9952
|
}
|
9970
9953
|
return bytes;
|
9971
9954
|
}
|
9972
|
-
var PACKAGE_VERSION = "0.
|
9955
|
+
var PACKAGE_VERSION = "0.17.3";
|
9973
9956
|
var match = PACKAGE_VERSION.match(/^([^.]*\.[^.]*)/);
|
9974
9957
|
if (!match)
|
9975
9958
|
throw new Error("invalid version: " + PACKAGE_VERSION);
|
@@ -10045,11 +10028,11 @@ You can use close({ resize: true }) to resize header`);
|
|
10045
10028
|
constructor(name7, ebOpts) {
|
10046
10029
|
this.name = name7;
|
10047
10030
|
this.ebOpts = ebOpts;
|
10048
|
-
this.
|
10049
|
-
this.
|
10050
|
-
this.
|
10051
|
-
this.remoteWAL = new ebOpts.store.RemoteWAL(this);
|
10031
|
+
this.carStore = ebOpts.store.makeDataStore(this.name);
|
10032
|
+
this.fileStore = ebOpts.store.makeDataStore(this.name);
|
10033
|
+
this.remoteWAL = ebOpts.store.makeRemoteWAL(this);
|
10052
10034
|
this.ready = Promise.resolve().then(async () => {
|
10035
|
+
this.metaStore = ebOpts.store.makeMetaStore(this);
|
10053
10036
|
if (!this.metaStore || !this.carStore || !this.remoteWAL)
|
10054
10037
|
throw new Error("stores not initialized");
|
10055
10038
|
const metas = this.ebOpts.meta ? [this.ebOpts.meta] : await this.metaStore.load("main");
|
@@ -10223,19 +10206,30 @@ You can use close({ resize: true }) to resize header`);
|
|
10223
10206
|
const sCid = cid.toString();
|
10224
10207
|
if (this.getBlockCache.has(sCid))
|
10225
10208
|
return this.getBlockCache.get(sCid);
|
10226
|
-
const
|
10227
|
-
|
10228
|
-
|
10229
|
-
|
10230
|
-
|
10231
|
-
|
10232
|
-
|
10233
|
-
|
10234
|
-
|
10235
|
-
|
10236
|
-
|
10237
|
-
|
10238
|
-
|
10209
|
+
const getCarCid = async (carCid) => {
|
10210
|
+
const reader = await this.loadCar(carCid);
|
10211
|
+
if (!reader) {
|
10212
|
+
throw new Error(`missing car reader ${carCid.toString()}`);
|
10213
|
+
}
|
10214
|
+
await this.cacheCarReader(reader);
|
10215
|
+
if (this.getBlockCache.has(sCid))
|
10216
|
+
return this.getBlockCache.get(sCid);
|
10217
|
+
throw new Error(`block not in reader: ${cid.toString()}`);
|
10218
|
+
};
|
10219
|
+
let got;
|
10220
|
+
const batchSize = 5;
|
10221
|
+
for (let i = 0; i < this.carLog.length; i += batchSize) {
|
10222
|
+
const promises = [];
|
10223
|
+
for (let j = i; j < Math.min(i + batchSize, this.carLog.length); j++) {
|
10224
|
+
promises.push(getCarCid(this.carLog[j]));
|
10225
|
+
}
|
10226
|
+
try {
|
10227
|
+
got = await Promise.any(promises);
|
10228
|
+
} catch {
|
10229
|
+
}
|
10230
|
+
if (got)
|
10231
|
+
break;
|
10232
|
+
}
|
10239
10233
|
if (got) {
|
10240
10234
|
this.getBlockCache.set(sCid, got);
|
10241
10235
|
}
|
@@ -10476,14 +10470,6 @@ You can use close({ resize: true }) to resize header`);
|
|
10476
10470
|
return bytes;
|
10477
10471
|
}
|
10478
10472
|
|
10479
|
-
// ../encrypted-blockstore/dist/lib/store-web.js
|
10480
|
-
var store_web_exports = {};
|
10481
|
-
__export(store_web_exports, {
|
10482
|
-
DataStore: () => DataStore2,
|
10483
|
-
MetaStore: () => MetaStore2,
|
10484
|
-
RemoteWAL: () => RemoteWAL2
|
10485
|
-
});
|
10486
|
-
|
10487
10473
|
// ../../node_modules/.pnpm/idb@7.1.1/node_modules/idb/build/wrap-idb-value.js
|
10488
10474
|
var instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
|
10489
10475
|
var idbProxyableTypes;
|
@@ -10692,7 +10678,7 @@ You can use close({ resize: true }) to resize header`);
|
|
10692
10678
|
}));
|
10693
10679
|
|
10694
10680
|
// ../encrypted-blockstore/dist/lib/store-web.js
|
10695
|
-
var PACKAGE_VERSION2 = "0.
|
10681
|
+
var PACKAGE_VERSION2 = "0.17.3";
|
10696
10682
|
var match2 = PACKAGE_VERSION2.match(/^([^.]*\.[^.]*)/);
|
10697
10683
|
if (!match2)
|
10698
10684
|
throw new Error("invalid version: " + PACKAGE_VERSION2);
|
@@ -10780,14 +10766,14 @@ You can use close({ resize: true }) to resize header`);
|
|
10780
10766
|
processQueue = new CommitQueue2();
|
10781
10767
|
constructor(loader) {
|
10782
10768
|
this.loader = loader;
|
10783
|
-
this.ready = (async () => {
|
10769
|
+
this.ready = Promise.resolve().then(async () => {
|
10784
10770
|
const walState = await this.load().catch((e) => {
|
10785
10771
|
console.error("error loading wal", e);
|
10786
10772
|
return null;
|
10787
10773
|
});
|
10788
10774
|
this.walState.operations = walState?.operations || [];
|
10789
10775
|
this.walState.fileOperations = walState?.fileOperations || [];
|
10790
|
-
})
|
10776
|
+
});
|
10791
10777
|
}
|
10792
10778
|
async enqueue(dbMeta, opts) {
|
10793
10779
|
await this.ready;
|
@@ -10886,6 +10872,9 @@ You can use close({ resize: true }) to resize header`);
|
|
10886
10872
|
await rmlp;
|
10887
10873
|
}
|
10888
10874
|
};
|
10875
|
+
var makeDataStore = (name7) => new DataStore2(name7);
|
10876
|
+
var makeMetaStore = (loader) => new MetaStore2(loader.name);
|
10877
|
+
var makeRemoteWAL = (loader) => new RemoteWAL2(loader);
|
10889
10878
|
var DataStore2 = class extends DataStore {
|
10890
10879
|
tag = "car-web-idb";
|
10891
10880
|
idb = null;
|
@@ -10980,7 +10969,14 @@ You can use close({ resize: true }) to resize header`);
|
|
10980
10969
|
}
|
10981
10970
|
};
|
10982
10971
|
|
10983
|
-
//
|
10972
|
+
// src/eb-web.ts
|
10973
|
+
var store = {
|
10974
|
+
makeDataStore,
|
10975
|
+
makeMetaStore,
|
10976
|
+
makeRemoteWAL
|
10977
|
+
};
|
10978
|
+
|
10979
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/clock/index.js
|
10984
10980
|
var advance = async (blocks, head, event) => {
|
10985
10981
|
const events = new EventFetcher(blocks);
|
10986
10982
|
const headmap = new Map(head.map((cid) => [cid.toString(), cid]));
|
@@ -11106,7 +11102,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11106
11102
|
};
|
11107
11103
|
var shortLink = (l) => `${String(l).slice(0, 4)}..${String(l).slice(-4)}`;
|
11108
11104
|
|
11109
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11105
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/shard.js
|
11110
11106
|
var MaxKeyLength = 64;
|
11111
11107
|
var MaxShardSize = 512 * 1024;
|
11112
11108
|
var CID_TAG2 = new Token(Type.tag, 42);
|
@@ -11237,41 +11233,8 @@ You can use close({ resize: true }) to resize header`);
|
|
11237
11233
|
}
|
11238
11234
|
}
|
11239
11235
|
};
|
11240
|
-
var encodedLength = (shard) => {
|
11241
|
-
let entriesLength = 0;
|
11242
|
-
for (const entry of shard.entries) {
|
11243
|
-
entriesLength += entryEncodedLength(entry);
|
11244
|
-
}
|
11245
|
-
const tokens = [
|
11246
|
-
new Token(Type.map, 3),
|
11247
|
-
new Token(Type.string, "entries"),
|
11248
|
-
new Token(Type.array, shard.entries.length),
|
11249
|
-
new Token(Type.string, "maxKeyLength"),
|
11250
|
-
new Token(Type.uint, shard.maxKeyLength),
|
11251
|
-
new Token(Type.string, "maxSize"),
|
11252
|
-
new Token(Type.uint, shard.maxSize)
|
11253
|
-
];
|
11254
|
-
return tokensToLength(tokens) + entriesLength;
|
11255
|
-
};
|
11256
|
-
var entryEncodedLength = (entry) => {
|
11257
|
-
const tokens = [
|
11258
|
-
new Token(Type.array, entry.length),
|
11259
|
-
new Token(Type.string, entry[0])
|
11260
|
-
];
|
11261
|
-
if (Array.isArray(entry[1])) {
|
11262
|
-
tokens.push(new Token(Type.array, entry[1].length));
|
11263
|
-
for (const link2 of entry[1]) {
|
11264
|
-
tokens.push(CID_TAG2);
|
11265
|
-
tokens.push(new Token(Type.bytes, { length: link2.byteLength + 1 }));
|
11266
|
-
}
|
11267
|
-
} else {
|
11268
|
-
tokens.push(CID_TAG2);
|
11269
|
-
tokens.push(new Token(Type.bytes, { length: entry[1].byteLength + 1 }));
|
11270
|
-
}
|
11271
|
-
return tokensToLength(tokens);
|
11272
|
-
};
|
11273
11236
|
|
11274
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11237
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/index.js
|
11275
11238
|
var put = async (blocks, root2, key, value) => {
|
11276
11239
|
const shards = new ShardFetcher(blocks);
|
11277
11240
|
const rshard = await shards.get(root2);
|
@@ -11474,15 +11437,118 @@ You can use close({ resize: true }) to resize header`);
|
|
11474
11437
|
return [shard];
|
11475
11438
|
};
|
11476
11439
|
|
11477
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11440
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/block.js
|
11441
|
+
var MemoryBlockstore2 = class {
|
11442
|
+
/** @type {Map<string, Uint8Array>} */
|
11443
|
+
#blocks = /* @__PURE__ */ new Map();
|
11444
|
+
/**
|
11445
|
+
* @param {Array<import('multiformats').Block>} [blocks]
|
11446
|
+
*/
|
11447
|
+
constructor(blocks) {
|
11448
|
+
if (blocks) {
|
11449
|
+
this.#blocks = new Map(blocks.map((b) => [b.cid.toString(), b.bytes]));
|
11450
|
+
}
|
11451
|
+
}
|
11452
|
+
/** @type {API.BlockFetcher['get']} */
|
11453
|
+
async get(cid) {
|
11454
|
+
const bytes = this.#blocks.get(cid.toString());
|
11455
|
+
if (!bytes)
|
11456
|
+
return;
|
11457
|
+
return { cid, bytes };
|
11458
|
+
}
|
11459
|
+
/**
|
11460
|
+
* @param {API.UnknownLink} cid
|
11461
|
+
* @param {Uint8Array} bytes
|
11462
|
+
*/
|
11463
|
+
async put(cid, bytes) {
|
11464
|
+
this.#blocks.set(cid.toString(), bytes);
|
11465
|
+
}
|
11466
|
+
/**
|
11467
|
+
* @param {API.UnknownLink} cid
|
11468
|
+
* @param {Uint8Array} bytes
|
11469
|
+
*/
|
11470
|
+
putSync(cid, bytes) {
|
11471
|
+
this.#blocks.set(cid.toString(), bytes);
|
11472
|
+
}
|
11473
|
+
/** @param {API.UnknownLink} cid */
|
11474
|
+
async delete(cid) {
|
11475
|
+
this.#blocks.delete(cid.toString());
|
11476
|
+
}
|
11477
|
+
/** @param {API.UnknownLink} cid */
|
11478
|
+
deleteSync(cid) {
|
11479
|
+
this.#blocks.delete(cid.toString());
|
11480
|
+
}
|
11481
|
+
*entries() {
|
11482
|
+
for (const [str, bytes] of this.#blocks) {
|
11483
|
+
yield { cid: parse(str), bytes };
|
11484
|
+
}
|
11485
|
+
}
|
11486
|
+
};
|
11487
|
+
var MultiBlockFetcher = class {
|
11488
|
+
/** @type {API.BlockFetcher[]} */
|
11489
|
+
#fetchers;
|
11490
|
+
/** @param {API.BlockFetcher[]} fetchers */
|
11491
|
+
constructor(...fetchers) {
|
11492
|
+
this.#fetchers = fetchers;
|
11493
|
+
}
|
11494
|
+
/** @type {API.BlockFetcher['get']} */
|
11495
|
+
async get(link2) {
|
11496
|
+
for (const f of this.#fetchers) {
|
11497
|
+
const v = await f.get(link2);
|
11498
|
+
if (v)
|
11499
|
+
return v;
|
11500
|
+
}
|
11501
|
+
}
|
11502
|
+
};
|
11503
|
+
|
11504
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/batch/shard.js
|
11505
|
+
var ShardLinkByteLength = 36;
|
11506
|
+
var CID_TAG3 = new Token(Type.tag, 42);
|
11478
11507
|
var create8 = (init2) => ({
|
11479
11508
|
base: init2?.base,
|
11480
11509
|
prefix: init2?.prefix ?? "",
|
11481
|
-
entries: init2?.entries ?? [],
|
11510
|
+
entries: [...init2?.entries ?? []],
|
11482
11511
|
...configure(init2)
|
11483
11512
|
});
|
11513
|
+
var encodedLength = (shard) => {
|
11514
|
+
let entriesLength = 0;
|
11515
|
+
for (const entry of shard.entries) {
|
11516
|
+
entriesLength += entryEncodedLength(entry);
|
11517
|
+
}
|
11518
|
+
const tokens = [
|
11519
|
+
new Token(Type.map, 3),
|
11520
|
+
new Token(Type.string, "entries"),
|
11521
|
+
new Token(Type.array, shard.entries.length),
|
11522
|
+
new Token(Type.string, "maxKeyLength"),
|
11523
|
+
new Token(Type.uint, shard.maxKeyLength),
|
11524
|
+
new Token(Type.string, "maxSize"),
|
11525
|
+
new Token(Type.uint, shard.maxSize)
|
11526
|
+
];
|
11527
|
+
return tokensToLength(tokens) + entriesLength;
|
11528
|
+
};
|
11529
|
+
var entryEncodedLength = (entry) => {
|
11530
|
+
const tokens = [
|
11531
|
+
new Token(Type.array, entry.length),
|
11532
|
+
new Token(Type.string, entry[0])
|
11533
|
+
];
|
11534
|
+
if (Array.isArray(entry[1])) {
|
11535
|
+
tokens.push(new Token(Type.array, entry[1].length));
|
11536
|
+
for (const item of entry[1]) {
|
11537
|
+
tokens.push(CID_TAG3);
|
11538
|
+
if (isLink(item)) {
|
11539
|
+
tokens.push(new Token(Type.bytes, { length: item.byteLength + 1 }));
|
11540
|
+
} else {
|
11541
|
+
tokens.push(new Token(Type.bytes, { length: ShardLinkByteLength + 1 }));
|
11542
|
+
}
|
11543
|
+
}
|
11544
|
+
} else {
|
11545
|
+
tokens.push(CID_TAG3);
|
11546
|
+
tokens.push(new Token(Type.bytes, { length: entry[1].byteLength + 1 }));
|
11547
|
+
}
|
11548
|
+
return tokensToLength(tokens);
|
11549
|
+
};
|
11484
11550
|
|
11485
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11551
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/batch/index.js
|
11486
11552
|
var Batcher = class _Batcher {
|
11487
11553
|
#committed = false;
|
11488
11554
|
/**
|
@@ -11497,7 +11563,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11497
11563
|
constructor({ blocks, entries: entries3, prefix, maxSize, maxKeyLength, base: base4 }) {
|
11498
11564
|
this.blocks = blocks;
|
11499
11565
|
this.prefix = prefix;
|
11500
|
-
this.entries = entries3;
|
11566
|
+
this.entries = [...entries3];
|
11501
11567
|
this.base = base4;
|
11502
11568
|
this.maxSize = maxSize;
|
11503
11569
|
this.maxKeyLength = maxKeyLength;
|
@@ -11527,7 +11593,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11527
11593
|
static async create({ blocks, link: link2, prefix }) {
|
11528
11594
|
const shards = new ShardFetcher(blocks);
|
11529
11595
|
const base4 = await shards.get(link2);
|
11530
|
-
return new _Batcher({ blocks,
|
11596
|
+
return new _Batcher({ blocks, prefix, base: base4, ...base4.value });
|
11531
11597
|
}
|
11532
11598
|
};
|
11533
11599
|
var put2 = async (blocks, shard, key, value) => {
|
@@ -11564,7 +11630,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11564
11630
|
entry = [pfxskeys[0].key, [batcher]];
|
11565
11631
|
}
|
11566
11632
|
shard.entries = putEntry(asShardEntries(shard.entries), asShardEntry(entry));
|
11567
|
-
const size = encodedLength(
|
11633
|
+
const size = encodedLength(shard);
|
11568
11634
|
if (size > shard.maxSize) {
|
11569
11635
|
const common = findCommonPrefix(
|
11570
11636
|
asShardEntries(shard.entries),
|
@@ -11601,14 +11667,16 @@ You can use close({ resize: true }) to resize header`);
|
|
11601
11667
|
}
|
11602
11668
|
};
|
11603
11669
|
var traverse2 = async (shards, key, shard) => {
|
11604
|
-
for (
|
11605
|
-
const [k, v] =
|
11670
|
+
for (let i = 0; i < shard.entries.length; i++) {
|
11671
|
+
const [k, v] = shard.entries[i];
|
11606
11672
|
if (key <= k)
|
11607
11673
|
break;
|
11608
11674
|
if (key.startsWith(k) && Array.isArray(v)) {
|
11609
11675
|
if (isShardLink(v[0])) {
|
11610
11676
|
const blk = await shards.get(v[0], shard.prefix + k);
|
11611
|
-
|
11677
|
+
const batcher = create8({ base: blk, prefix: blk.prefix, ...blk.value });
|
11678
|
+
shard.entries[i] = [k, v[1] == null ? [batcher] : [batcher, v[1]]];
|
11679
|
+
return traverse2(shards, key.slice(k.length), batcher);
|
11612
11680
|
}
|
11613
11681
|
return traverse2(shards, key.slice(k.length), v[0]);
|
11614
11682
|
}
|
@@ -11662,9 +11730,9 @@ You can use close({ resize: true }) to resize header`);
|
|
11662
11730
|
static code = "ERR_BATCH_COMMITTED";
|
11663
11731
|
};
|
11664
11732
|
|
11665
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11733
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/crdt/index.js
|
11666
11734
|
var put3 = async (blocks, head, key, value) => {
|
11667
|
-
const mblocks = new
|
11735
|
+
const mblocks = new MemoryBlockstore2();
|
11668
11736
|
blocks = new MultiBlockFetcher(mblocks, blocks);
|
11669
11737
|
if (!head.length) {
|
11670
11738
|
const shard = await ShardBlock.create();
|
@@ -11748,7 +11816,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11748
11816
|
var root = async (blocks, head) => {
|
11749
11817
|
if (!head.length)
|
11750
11818
|
throw new Error("cannot determine root of headless clock");
|
11751
|
-
const mblocks = new
|
11819
|
+
const mblocks = new MemoryBlockstore2();
|
11752
11820
|
blocks = new MultiBlockFetcher(mblocks, blocks);
|
11753
11821
|
const events = new EventFetcher(blocks);
|
11754
11822
|
if (head.length === 1) {
|
@@ -11807,7 +11875,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11807
11875
|
return;
|
11808
11876
|
const result = await root(blocks, head);
|
11809
11877
|
if (result.additions.length) {
|
11810
|
-
blocks = new MultiBlockFetcher(new
|
11878
|
+
blocks = new MultiBlockFetcher(new MemoryBlockstore2(result.additions), blocks);
|
11811
11879
|
}
|
11812
11880
|
return get2(blocks, result.root, key);
|
11813
11881
|
};
|
@@ -11816,7 +11884,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11816
11884
|
return;
|
11817
11885
|
const result = await root(blocks, head);
|
11818
11886
|
if (result.additions.length) {
|
11819
|
-
blocks = new MultiBlockFetcher(new
|
11887
|
+
blocks = new MultiBlockFetcher(new MemoryBlockstore2(result.additions), blocks);
|
11820
11888
|
}
|
11821
11889
|
yield* entries(blocks, result.root, options);
|
11822
11890
|
};
|
@@ -11900,7 +11968,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11900
11968
|
return acc.concat(...rest);
|
11901
11969
|
};
|
11902
11970
|
|
11903
|
-
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.
|
11971
|
+
// ../../node_modules/.pnpm/@web3-storage+pail@0.4.1/node_modules/@web3-storage/pail/src/crdt/batch/index.js
|
11904
11972
|
var Batcher2 = class _Batcher {
|
11905
11973
|
#committed = false;
|
11906
11974
|
/**
|
@@ -11919,7 +11987,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11919
11987
|
this.blocks = blocks;
|
11920
11988
|
this.head = head;
|
11921
11989
|
this.prefix = prefix;
|
11922
|
-
this.entries = entries3;
|
11990
|
+
this.entries = [...entries3];
|
11923
11991
|
this.base = base4;
|
11924
11992
|
this.maxSize = maxSize;
|
11925
11993
|
this.maxKeyLength = maxKeyLength;
|
@@ -11945,7 +12013,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11945
12013
|
const res = await commit(this);
|
11946
12014
|
const data = { type: "batch", ops: this.ops, root: res.root };
|
11947
12015
|
const event = await EventBlock.create(data, this.head);
|
11948
|
-
const mblocks = new
|
12016
|
+
const mblocks = new MemoryBlockstore2();
|
11949
12017
|
const blocks = new MultiBlockFetcher(mblocks, this.blocks);
|
11950
12018
|
mblocks.putSync(event.cid, event.bytes);
|
11951
12019
|
const head = await advance(blocks, this.head, event.cid);
|
@@ -11985,7 +12053,7 @@ You can use close({ resize: true }) to resize header`);
|
|
11985
12053
|
* @param {string} init.prefix
|
11986
12054
|
*/
|
11987
12055
|
static async create({ blocks, head, prefix }) {
|
11988
|
-
const mblocks = new
|
12056
|
+
const mblocks = new MemoryBlockstore2();
|
11989
12057
|
blocks = new MultiBlockFetcher(mblocks, blocks);
|
11990
12058
|
if (!head.length) {
|
11991
12059
|
const base5 = await ShardBlock.create();
|
@@ -20431,10 +20499,8 @@ You can use close({ resize: true }) to resize header`);
|
|
20431
20499
|
|
20432
20500
|
// src/crdt-helpers.ts
|
20433
20501
|
function time(tag2) {
|
20434
|
-
console.time(tag2);
|
20435
20502
|
}
|
20436
20503
|
function timeEnd(tag2) {
|
20437
|
-
console.timeEnd(tag2);
|
20438
20504
|
}
|
20439
20505
|
async function applyBulkUpdateToCrdt(tblocks, head, updates) {
|
20440
20506
|
let result = null;
|
@@ -20561,6 +20627,7 @@ You can use close({ resize: true }) to resize header`);
|
|
20561
20627
|
if (!block)
|
20562
20628
|
throw new Error(`Missing linked block ${link2.toString()}`);
|
20563
20629
|
const { value } = await decode11({ bytes: block.bytes, hasher: sha256, codec: src_exports });
|
20630
|
+
value.cid = link2;
|
20564
20631
|
readFiles(blocks, value);
|
20565
20632
|
return value;
|
20566
20633
|
}
|
@@ -21482,7 +21549,7 @@ You can use close({ resize: true }) to resize header`);
|
|
21482
21549
|
try {
|
21483
21550
|
head = await advance(tblocks, head, cid);
|
21484
21551
|
} catch (e) {
|
21485
|
-
console.
|
21552
|
+
console.log("failed to advance head:", cid.toString());
|
21486
21553
|
continue;
|
21487
21554
|
}
|
21488
21555
|
}
|
@@ -21512,8 +21579,8 @@ You can use close({ resize: true }) to resize header`);
|
|
21512
21579
|
return { head: this.clock.head };
|
21513
21580
|
},
|
21514
21581
|
autoCompact: this.opts.autoCompact || 100,
|
21515
|
-
crypto: crypto_web_exports,
|
21516
|
-
store:
|
21582
|
+
crypto: this.opts.crypto || crypto_web_exports,
|
21583
|
+
store: this.opts.store || store,
|
21517
21584
|
public: this.opts.public,
|
21518
21585
|
meta: this.opts.meta
|
21519
21586
|
});
|
@@ -21528,7 +21595,7 @@ You can use close({ resize: true }) to resize header`);
|
|
21528
21595
|
},
|
21529
21596
|
crypto: crypto_web_exports,
|
21530
21597
|
public: this.opts.public,
|
21531
|
-
store
|
21598
|
+
store
|
21532
21599
|
});
|
21533
21600
|
this.ready = Promise.all([this.blockstore.ready, this.indexBlockstore.ready]).then(() => {
|
21534
21601
|
});
|