@fireproof/core 0.20.0-dev-preview-14 → 0.20.0-dev-preview-15

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/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 import_cement19 = require("@adviser/cement");
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
- start(sthis, baseURL) {
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
- async buildUrl(sthis, baseUrl, key) {
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
- async close(sthis, uri) {
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
- async put(sthis, url, env) {
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
- async get(sthis, url) {
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
- async delete(sthis, url) {
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
- async destroy(sthis, baseURL) {
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
- async getPlain(sthis, iurl, key) {
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 import_cement18 = require("@adviser/cement");
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
- this.loaded = Promise.resolve();
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.loaded = this.loader.ready().then(async () => {
3786
+ this._metaIsLoading = true;
3787
+ this.loader.ready().then(async () => {
3748
3788
  return remote.load().then(async () => {
3749
- return (await throwFalsy(this.loader).WALStore()).process();
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("connectStorage_X: loader is required").AsError();
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("connectStorage_X: gateway is required").AsError();
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("connectStorage_X: name is required").AsError;
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 import_cement17 = require("@adviser/cement");
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 import_cement17.ResolveOnce();
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 import_cement18.ResolveOnce();
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 import_cement19.KeyedResolvOnce();
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 import_cement19.ResolveOnce();
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 ? import_cement19.URI.from(curi) : uri).build().setParam("store" /* STORE */, store);
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: import_cement19.BuildURI.from(fp_env).setParam("urlGen" /* URL_GEN */, "fromEnv") };
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 = import_cement19.BuildURI.from(sopts.base);
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: () => import_cement20.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 import_cement20 = require("@adviser/cement");
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-14": "xxxx"
4723
+ "0.20.0-dev-preview-15": "xxxx"
4689
4724
  })[0];
4690
4725
  //# sourceMappingURL=index.cjs.map