@fireproof/core 0.20.0-dev-preview-14 → 0.20.0-dev-preview-15
Sign up to get free protection for your applications and to get access to all the features.
- package/index.cjs +79 -44
- package/index.cjs.map +1 -1
- package/index.d.cts +22 -18
- package/index.d.ts +22 -18
- package/index.js +69 -34
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +1 -1
package/index.cjs
CHANGED
@@ -71,7 +71,7 @@ __export(index_exports, {
|
|
71
71
|
module.exports = __toCommonJS(index_exports);
|
72
72
|
|
73
73
|
// src/ledger.ts
|
74
|
-
var
|
74
|
+
var import_cement20 = require("@adviser/cement");
|
75
75
|
|
76
76
|
// src/utils.ts
|
77
77
|
var import_cement = require("@adviser/cement");
|
@@ -1251,16 +1251,20 @@ var DefSerdeGateway = class {
|
|
1251
1251
|
this.subscribeFn = /* @__PURE__ */ new Map();
|
1252
1252
|
this.gw = gw;
|
1253
1253
|
}
|
1254
|
-
|
1254
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1255
|
+
start(sthis, baseURL, loader) {
|
1255
1256
|
return this.gw.start(baseURL, sthis);
|
1256
1257
|
}
|
1257
|
-
|
1258
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1259
|
+
async buildUrl(sthis, baseUrl, key, loader) {
|
1258
1260
|
return this.gw.buildUrl(baseUrl, key, sthis);
|
1259
1261
|
}
|
1260
|
-
|
1262
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1263
|
+
async close(sthis, uri, loader) {
|
1261
1264
|
return this.gw.close(uri, sthis);
|
1262
1265
|
}
|
1263
|
-
|
1266
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1267
|
+
async put(sthis, url, env, loader) {
|
1264
1268
|
const rUint8 = await fpSerialize(sthis, env);
|
1265
1269
|
if (rUint8.isErr()) return rUint8;
|
1266
1270
|
const ret = this.gw.put(url, rUint8.Ok(), sthis);
|
@@ -1271,12 +1275,13 @@ var DefSerdeGateway = class {
|
|
1271
1275
|
}
|
1272
1276
|
return ret;
|
1273
1277
|
}
|
1274
|
-
|
1278
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1279
|
+
async get(sthis, url, loader) {
|
1275
1280
|
const res = await this.gw.get(url, sthis);
|
1276
1281
|
if (res.isErr()) return import_cement9.Result.Err(res.Err());
|
1277
1282
|
return fpDeserialize(sthis, url, res);
|
1278
1283
|
}
|
1279
|
-
async subscribe(sthis, url, callback) {
|
1284
|
+
async subscribe(sthis, url, callback, loader) {
|
1280
1285
|
if (!this.gw.subscribe) {
|
1281
1286
|
this.subscribeFn.set(url.toString(), callback);
|
1282
1287
|
return import_cement9.Result.Ok(() => {
|
@@ -1295,13 +1300,16 @@ var DefSerdeGateway = class {
|
|
1295
1300
|
);
|
1296
1301
|
return unreg;
|
1297
1302
|
}
|
1298
|
-
|
1303
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1304
|
+
async delete(sthis, url, loader) {
|
1299
1305
|
return this.gw.delete(url, sthis);
|
1300
1306
|
}
|
1301
|
-
|
1307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1308
|
+
async destroy(sthis, baseURL, loader) {
|
1302
1309
|
return this.gw.destroy(baseURL, sthis);
|
1303
1310
|
}
|
1304
|
-
|
1311
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1312
|
+
async getPlain(sthis, iurl, key, loader) {
|
1305
1313
|
return this.gw.getPlain(iurl, key, sthis);
|
1306
1314
|
}
|
1307
1315
|
};
|
@@ -1936,7 +1944,7 @@ var DatabaseImpl = class {
|
|
1936
1944
|
};
|
1937
1945
|
|
1938
1946
|
// src/crdt.ts
|
1939
|
-
var
|
1947
|
+
var import_cement19 = require("@adviser/cement");
|
1940
1948
|
|
1941
1949
|
// src/blockstore/index.ts
|
1942
1950
|
var blockstore_exports = {};
|
@@ -3687,6 +3695,9 @@ function toStoreRuntime(sthis, endeOpts = {}) {
|
|
3687
3695
|
};
|
3688
3696
|
}
|
3689
3697
|
|
3698
|
+
// src/blockstore/connection-base.ts
|
3699
|
+
var import_cement17 = require("@adviser/cement");
|
3700
|
+
|
3690
3701
|
// src/blockstore/store-remote.ts
|
3691
3702
|
async function RemoteDataStore(sthis, url, opts) {
|
3692
3703
|
const ds = new DataStoreImpl(sthis, url, opts);
|
@@ -3699,6 +3710,22 @@ async function RemoteMetaStore(sthis, url, opts) {
|
|
3699
3710
|
return ms;
|
3700
3711
|
}
|
3701
3712
|
|
3713
|
+
// src/context.ts
|
3714
|
+
var Context = class {
|
3715
|
+
constructor() {
|
3716
|
+
this.ctx = /* @__PURE__ */ new Map();
|
3717
|
+
}
|
3718
|
+
set(key, value) {
|
3719
|
+
this.ctx.set(key, value);
|
3720
|
+
}
|
3721
|
+
get(key) {
|
3722
|
+
return this.ctx.get(key);
|
3723
|
+
}
|
3724
|
+
delete(key) {
|
3725
|
+
this.ctx.delete(key);
|
3726
|
+
}
|
3727
|
+
};
|
3728
|
+
|
3702
3729
|
// src/blockstore/connection-base.ts
|
3703
3730
|
function coerceLoader(ref) {
|
3704
3731
|
const refl = ref;
|
@@ -3713,10 +3740,22 @@ function coerceLoader(ref) {
|
|
3713
3740
|
}
|
3714
3741
|
var ConnectionBase = class {
|
3715
3742
|
constructor(url, logger) {
|
3716
|
-
|
3743
|
+
// loaded: Promise<void> = Promise.resolve();
|
3744
|
+
this.context = new Context();
|
3745
|
+
this._loaded = /* @__PURE__ */ new Set();
|
3746
|
+
this._metaIsLoading = false;
|
3717
3747
|
this.logger = logger;
|
3718
3748
|
this.url = url;
|
3719
3749
|
}
|
3750
|
+
loaded() {
|
3751
|
+
const f = new import_cement17.Future();
|
3752
|
+
if (!this._metaIsLoading) {
|
3753
|
+
f.resolve();
|
3754
|
+
} else {
|
3755
|
+
this._loaded.add(f);
|
3756
|
+
}
|
3757
|
+
return f;
|
3758
|
+
}
|
3720
3759
|
async refresh() {
|
3721
3760
|
await throwFalsy(throwFalsy(this.loader).remoteMetaStore).load();
|
3722
3761
|
await (await throwFalsy(this.loader).WALStore()).process();
|
@@ -3744,22 +3783,34 @@ var ConnectionBase = class {
|
|
3744
3783
|
loader
|
3745
3784
|
});
|
3746
3785
|
this.loader.remoteMetaStore = remote;
|
3747
|
-
this.
|
3786
|
+
this._metaIsLoading = true;
|
3787
|
+
this.loader.ready().then(async () => {
|
3748
3788
|
return remote.load().then(async () => {
|
3749
|
-
|
3789
|
+
const res = await (0, import_cement17.exception2Result)(async () => {
|
3790
|
+
return await (await throwFalsy(this.loader).WALStore()).process();
|
3791
|
+
});
|
3792
|
+
this._metaIsLoading = false;
|
3793
|
+
for (const f of this._loaded) {
|
3794
|
+
if (res.isErr()) {
|
3795
|
+
f.reject(res.Err());
|
3796
|
+
} else {
|
3797
|
+
f.resolve();
|
3798
|
+
}
|
3799
|
+
}
|
3800
|
+
this._loaded.clear();
|
3750
3801
|
});
|
3751
3802
|
});
|
3752
3803
|
}
|
3753
3804
|
async connectStorage(refl) {
|
3754
3805
|
const loader = coerceLoader(refl);
|
3755
|
-
if (!loader) throw this.logger.Error().Msg("
|
3806
|
+
if (!loader) throw this.logger.Error().Msg("connectStorage: loader is required").AsError();
|
3756
3807
|
this.loader = loader;
|
3757
3808
|
const dataUrl = this.url.build().defParam("store" /* STORE */, "data").URI();
|
3758
3809
|
const rgateway = await getStartedGateway(loader.sthis, dataUrl);
|
3759
3810
|
if (rgateway.isErr())
|
3760
|
-
throw this.logger.Error().Result("err", rgateway).Url(dataUrl).Msg("
|
3811
|
+
throw this.logger.Error().Result("err", rgateway).Url(dataUrl).Msg("connectStorage: gateway is required").AsError();
|
3761
3812
|
const name = dataUrl.getParam("name" /* NAME */);
|
3762
|
-
if (!name) throw this.logger.Error().Url(dataUrl).Msg("
|
3813
|
+
if (!name) throw this.logger.Error().Url(dataUrl).Msg("connectStorage: name is required").AsError;
|
3763
3814
|
loader.remoteCarStore = await RemoteDataStore(loader.sthis, this.url, {
|
3764
3815
|
gateway: rgateway.Ok().gateway,
|
3765
3816
|
loader
|
@@ -4074,7 +4125,7 @@ async function getBlock(blocks, cidString) {
|
|
4074
4125
|
// src/crdt-clock.ts
|
4075
4126
|
var import_clock4 = require("@fireproof/vendor/@web3-storage/pail/clock");
|
4076
4127
|
var import_crdt2 = require("@fireproof/vendor/@web3-storage/pail/crdt");
|
4077
|
-
var
|
4128
|
+
var import_cement18 = require("@adviser/cement");
|
4078
4129
|
|
4079
4130
|
// src/apply-head-queue.ts
|
4080
4131
|
function applyHeadQueue(worker, logger) {
|
@@ -4131,7 +4182,7 @@ var CRDTClockImpl = class {
|
|
4131
4182
|
this.zoomers = /* @__PURE__ */ new Map();
|
4132
4183
|
this.watchers = /* @__PURE__ */ new Map();
|
4133
4184
|
this.emptyWatchers = /* @__PURE__ */ new Map();
|
4134
|
-
this._ready = new
|
4185
|
+
this._ready = new import_cement18.ResolveOnce();
|
4135
4186
|
this.sthis = blockstore.sthis;
|
4136
4187
|
this.blockstore = blockstore;
|
4137
4188
|
this.logger = ensureLogger(blockstore.sthis, "CRDTClock");
|
@@ -4257,7 +4308,7 @@ async function advanceBlocks(logger, newHead, tblocks, head) {
|
|
4257
4308
|
var CRDTImpl = class {
|
4258
4309
|
constructor(sthis, opts) {
|
4259
4310
|
this.indexers = /* @__PURE__ */ new Map();
|
4260
|
-
this.onceReady = new
|
4311
|
+
this.onceReady = new import_cement19.ResolveOnce();
|
4261
4312
|
this.sthis = sthis;
|
4262
4313
|
this.crdt = this;
|
4263
4314
|
this.logger = ensureLogger(sthis, "CRDT");
|
@@ -4375,24 +4426,8 @@ var CRDTImpl = class {
|
|
4375
4426
|
}
|
4376
4427
|
};
|
4377
4428
|
|
4378
|
-
// src/context.ts
|
4379
|
-
var Context = class {
|
4380
|
-
constructor() {
|
4381
|
-
this.ctx = /* @__PURE__ */ new Map();
|
4382
|
-
}
|
4383
|
-
set(key, value) {
|
4384
|
-
this.ctx.set(key, value);
|
4385
|
-
}
|
4386
|
-
get(key) {
|
4387
|
-
return this.ctx.get(key);
|
4388
|
-
}
|
4389
|
-
delete(key) {
|
4390
|
-
this.ctx.delete(key);
|
4391
|
-
}
|
4392
|
-
};
|
4393
|
-
|
4394
4429
|
// src/ledger.ts
|
4395
|
-
var ledgers = new
|
4430
|
+
var ledgers = new import_cement20.KeyedResolvOnce();
|
4396
4431
|
function keyConfigOpts(sthis, name, opts) {
|
4397
4432
|
return JSON.stringify(
|
4398
4433
|
toSortedArray({
|
@@ -4478,7 +4513,7 @@ var LedgerImpl = class {
|
|
4478
4513
|
this.shells = /* @__PURE__ */ new Set();
|
4479
4514
|
this.context = new Context();
|
4480
4515
|
this._onClosedFns = /* @__PURE__ */ new Map();
|
4481
|
-
this._ready = new
|
4516
|
+
this._ready = new import_cement20.ResolveOnce();
|
4482
4517
|
this.opts = opts;
|
4483
4518
|
this.sthis = sthis;
|
4484
4519
|
this.id = sthis.timeOrderedNextId().str;
|
@@ -4578,7 +4613,7 @@ var LedgerImpl = class {
|
|
4578
4613
|
};
|
4579
4614
|
function defaultURI2(sthis, curi, uri, store, ctx) {
|
4580
4615
|
ctx = ctx || {};
|
4581
|
-
const ret = (curi ?
|
4616
|
+
const ret = (curi ? import_cement20.URI.from(curi) : uri).build().setParam("store" /* STORE */, store);
|
4582
4617
|
if (!ret.hasParam("name" /* NAME */)) {
|
4583
4618
|
const name = sthis.pathOps.basename(ret.URI().pathname);
|
4584
4619
|
if (!name) {
|
@@ -4605,12 +4640,12 @@ function toStoreURIRuntime(sthis, name, sopts) {
|
|
4605
4640
|
if (!sopts.base) {
|
4606
4641
|
const fp_env = sthis.env.get("FP_STORAGE_URL");
|
4607
4642
|
if (fp_env) {
|
4608
|
-
sopts = { ...sopts, base:
|
4643
|
+
sopts = { ...sopts, base: import_cement20.BuildURI.from(fp_env).setParam("urlGen" /* URL_GEN */, "fromEnv") };
|
4609
4644
|
} else {
|
4610
4645
|
sopts = { ...sopts, base: getDefaultURI(sthis).build().setParam("urlGen" /* URL_GEN */, "default") };
|
4611
4646
|
}
|
4612
4647
|
}
|
4613
|
-
const bbase =
|
4648
|
+
const bbase = import_cement20.BuildURI.from(sopts.base);
|
4614
4649
|
if (name) {
|
4615
4650
|
bbase.setParam("name" /* NAME */, name);
|
4616
4651
|
}
|
@@ -4651,7 +4686,7 @@ __export(runtime_exports, {
|
|
4651
4686
|
kc: () => keyed_crypto_exports,
|
4652
4687
|
mf: () => wait_pr_multiformats_exports,
|
4653
4688
|
registerKeyBagProviderFactory: () => registerKeyBagProviderFactory,
|
4654
|
-
runtimeFn: () =>
|
4689
|
+
runtimeFn: () => import_cement21.runtimeFn
|
4655
4690
|
});
|
4656
4691
|
|
4657
4692
|
// src/runtime/wait-pr-multiformats/index.ts
|
@@ -4665,7 +4700,7 @@ __export(wait_pr_multiformats_exports, {
|
|
4665
4700
|
var codec_interface_exports = {};
|
4666
4701
|
|
4667
4702
|
// src/runtime/index.ts
|
4668
|
-
var
|
4703
|
+
var import_cement21 = require("@adviser/cement");
|
4669
4704
|
|
4670
4705
|
// src/runtime/gateways/index.ts
|
4671
4706
|
var gateways_exports = {};
|
@@ -4685,6 +4720,6 @@ __export(file_exports, {
|
|
4685
4720
|
|
4686
4721
|
// src/version.ts
|
4687
4722
|
var PACKAGE_VERSION = Object.keys({
|
4688
|
-
"0.20.0-dev-preview-
|
4723
|
+
"0.20.0-dev-preview-15": "xxxx"
|
4689
4724
|
})[0];
|
4690
4725
|
//# sourceMappingURL=index.cjs.map
|