@fireproof/core 0.19.100 → 0.19.102
Sign up to get free protection for your applications and to get access to all the features.
- package/index.cjs +35 -16
- package/index.cjs.map +1 -1
- package/index.d.cts +4 -0
- package/index.d.ts +4 -0
- package/index.global.js +35 -16
- package/index.global.js.map +1 -1
- package/index.js +35 -16
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/metafile-iife.json +1 -1
- package/package.json +1 -1
package/index.d.cts
CHANGED
@@ -232,12 +232,15 @@ declare class BaseBlockstore implements BlockFetcher {
|
|
232
232
|
ready(): Promise<void>;
|
233
233
|
close(): Promise<void>;
|
234
234
|
destroy(): Promise<void>;
|
235
|
+
compact(): Promise<void>;
|
235
236
|
readonly logger: Logger;
|
236
237
|
constructor(ebOpts?: BlockstoreOpts);
|
237
238
|
get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block$1<T, C, A, V> | undefined>;
|
238
239
|
put(cid: AnyAnyLink, block: Uint8Array): Promise<void>;
|
239
240
|
lastTxMeta?: unknown;
|
240
241
|
transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, _opts?: CarTransactionOpts): Promise<TransactionWrapper<M>>;
|
242
|
+
openTransaction(opts?: CarTransactionOpts): CarTransaction;
|
243
|
+
commitTransaction<M extends TransactionMeta>(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise<TransactionWrapper<M>>;
|
241
244
|
entries(): AsyncIterableIterator<AnyBlock>;
|
242
245
|
}
|
243
246
|
declare class EncryptedBlockstore extends BaseBlockstore {
|
@@ -948,6 +951,7 @@ declare class CRDTClock<T extends DocTypes> {
|
|
948
951
|
readonly emptyWatchers: Set<() => void>;
|
949
952
|
readonly blockstore: BaseBlockstore;
|
950
953
|
readonly applyHeadQueue: ApplyHeadQueue<T>;
|
954
|
+
transaction?: CarTransaction;
|
951
955
|
readonly _ready: ResolveOnce<void>;
|
952
956
|
ready(): Promise<void>;
|
953
957
|
close(): Promise<void>;
|
package/index.d.ts
CHANGED
@@ -232,12 +232,15 @@ declare class BaseBlockstore implements BlockFetcher {
|
|
232
232
|
ready(): Promise<void>;
|
233
233
|
close(): Promise<void>;
|
234
234
|
destroy(): Promise<void>;
|
235
|
+
compact(): Promise<void>;
|
235
236
|
readonly logger: Logger;
|
236
237
|
constructor(ebOpts?: BlockstoreOpts);
|
237
238
|
get<T, C extends number, A extends number, V extends Version>(cid: AnyAnyLink): Promise<Block$1<T, C, A, V> | undefined>;
|
238
239
|
put(cid: AnyAnyLink, block: Uint8Array): Promise<void>;
|
239
240
|
lastTxMeta?: unknown;
|
240
241
|
transaction<M extends TransactionMeta>(fn: (t: CarTransaction) => Promise<M>, _opts?: CarTransactionOpts): Promise<TransactionWrapper<M>>;
|
242
|
+
openTransaction(opts?: CarTransactionOpts): CarTransaction;
|
243
|
+
commitTransaction<M extends TransactionMeta>(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise<TransactionWrapper<M>>;
|
241
244
|
entries(): AsyncIterableIterator<AnyBlock>;
|
242
245
|
}
|
243
246
|
declare class EncryptedBlockstore extends BaseBlockstore {
|
@@ -948,6 +951,7 @@ declare class CRDTClock<T extends DocTypes> {
|
|
948
951
|
readonly emptyWatchers: Set<() => void>;
|
949
952
|
readonly blockstore: BaseBlockstore;
|
950
953
|
readonly applyHeadQueue: ApplyHeadQueue<T>;
|
954
|
+
transaction?: CarTransaction;
|
951
955
|
readonly _ready: ResolveOnce<void>;
|
952
956
|
ready(): Promise<void>;
|
953
957
|
close(): Promise<void>;
|
package/index.global.js
CHANGED
@@ -26050,6 +26050,8 @@ You can use close({ resize: true }) to resize header`);
|
|
26050
26050
|
}
|
26051
26051
|
async destroy() {
|
26052
26052
|
}
|
26053
|
+
async compact() {
|
26054
|
+
}
|
26053
26055
|
async get(cid) {
|
26054
26056
|
if (!cid) throw this.logger.Error().Msg("required cid").AsError();
|
26055
26057
|
for (const f of this.transactions) {
|
@@ -26068,6 +26070,21 @@ You can use close({ resize: true }) to resize header`);
|
|
26068
26070
|
this.lastTxMeta = done;
|
26069
26071
|
return { t, meta: done };
|
26070
26072
|
}
|
26073
|
+
openTransaction(opts = { add: true, noLoader: false }) {
|
26074
|
+
return new CarTransaction(this, opts);
|
26075
|
+
}
|
26076
|
+
async commitTransaction(t, done, opts) {
|
26077
|
+
if (!this.loader) throw this.logger.Error().Msg("loader required to commit").AsError();
|
26078
|
+
const cars = await this.loader?.commit(t, done, opts);
|
26079
|
+
if (this.ebOpts.autoCompact && this.loader.carLog.length > this.ebOpts.autoCompact) {
|
26080
|
+
setTimeout(() => void this.compact(), 10);
|
26081
|
+
}
|
26082
|
+
if (cars) {
|
26083
|
+
this.transactions.delete(t);
|
26084
|
+
return { meta: done, cars, t };
|
26085
|
+
}
|
26086
|
+
throw this.logger.Error().Msg("failed to commit car files").AsError();
|
26087
|
+
}
|
26071
26088
|
async *entries() {
|
26072
26089
|
const seen = /* @__PURE__ */ new Set();
|
26073
26090
|
for (const t of this.transactions) {
|
@@ -30140,21 +30157,23 @@ You can use close({ resize: true }) to resize header`);
|
|
30140
30157
|
throw this.logger.Error().Msg("missing blockstore").AsError();
|
30141
30158
|
}
|
30142
30159
|
await validateBlocks(this.logger, newHead, this.blockstore);
|
30143
|
-
|
30144
|
-
|
30145
|
-
|
30146
|
-
|
30147
|
-
|
30148
|
-
|
30149
|
-
|
30150
|
-
|
30151
|
-
|
30152
|
-
|
30153
|
-
|
30154
|
-
|
30155
|
-
|
30156
|
-
|
30157
|
-
|
30160
|
+
if (!this.transaction) {
|
30161
|
+
this.transaction = this.blockstore.openTransaction({ noLoader, add: false });
|
30162
|
+
}
|
30163
|
+
const tblocks = this.transaction;
|
30164
|
+
const advancedHead = await advanceBlocks(this.logger, newHead, tblocks, this.head);
|
30165
|
+
const result = await root(tblocks, advancedHead);
|
30166
|
+
for (const { cid, bytes } of [
|
30167
|
+
...result.additions
|
30168
|
+
// ...result.removals
|
30169
|
+
]) {
|
30170
|
+
tblocks.putSync(cid, bytes);
|
30171
|
+
}
|
30172
|
+
if (!noLoader) {
|
30173
|
+
await this.blockstore.commitTransaction(tblocks, { head: advancedHead }, { add: false, noLoader });
|
30174
|
+
this.transaction = void 0;
|
30175
|
+
}
|
30176
|
+
this.setHead(advancedHead);
|
30158
30177
|
}
|
30159
30178
|
};
|
30160
30179
|
function sortClockHead(clockHead) {
|
@@ -30529,7 +30548,7 @@ You can use close({ resize: true }) to resize header`);
|
|
30529
30548
|
|
30530
30549
|
// src/version.ts
|
30531
30550
|
var PACKAGE_VERSION = Object.keys({
|
30532
|
-
"0.19.
|
30551
|
+
"0.19.102": "xxxx"
|
30533
30552
|
})[0];
|
30534
30553
|
return __toCommonJS(src_exports6);
|
30535
30554
|
})();
|