@fireproof/core 0.20.0-dev-preview-14 → 0.20.0-dev-preview-16
Sign up to get free protection for your applications and to get access to all the features.
- package/index.cjs +88 -48
- package/index.cjs.map +1 -1
- package/index.d.cts +43 -19
- package/index.d.ts +43 -19
- package/index.js +78 -38
- package/index.js.map +1 -1
- package/{web → indexdb}/index.cjs +5 -5
- package/indexdb/index.cjs.map +1 -0
- package/{web → indexdb}/index.d.cts +1 -1
- package/{web → indexdb}/index.d.ts +1 -1
- package/{web → indexdb}/index.js +4 -4
- package/indexdb/index.js.map +1 -0
- package/indexdb/metafile-cjs.json +1 -0
- package/indexdb/metafile-esm.json +1 -0
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +10 -10
- package/react/index.d.cts +1 -1
- package/react/index.d.ts +1 -1
- package/tests/blockstore/keyed-crypto-indexdb-file.test.ts +1 -1
- package/tests/blockstore/keyed-crypto.test.ts +1 -1
- package/web/index.cjs.map +0 -1
- package/web/index.js.map +0 -1
- package/web/metafile-cjs.json +0 -1
- package/web/metafile-esm.json +0 -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");
|
@@ -786,7 +786,7 @@ var keyBagProviderFactories = new Map(
|
|
786
786
|
{
|
787
787
|
protocol: "indexdb:",
|
788
788
|
factory: async (url, sthis) => {
|
789
|
-
const { KeyBagProviderImpl } = await import("@fireproof/core/
|
789
|
+
const { KeyBagProviderImpl } = await import("@fireproof/core/indexdb");
|
790
790
|
return new KeyBagProviderImpl(url, sthis);
|
791
791
|
}
|
792
792
|
},
|
@@ -880,7 +880,7 @@ var import_cement10 = require("@adviser/cement");
|
|
880
880
|
// src/runtime/gateways/file/version.ts
|
881
881
|
var FILESTORE_VERSION = "v0.19-file";
|
882
882
|
|
883
|
-
// src/runtime/gateways/indexdb
|
883
|
+
// src/runtime/gateways/indexdb-version.ts
|
884
884
|
var INDEXDB_VERSION = "v0.19-indexdb";
|
885
885
|
|
886
886
|
// src/runtime/gateways/file/gateway-impl.ts
|
@@ -1023,6 +1023,10 @@ var FileGateway = class {
|
|
1023
1023
|
};
|
1024
1024
|
|
1025
1025
|
// src/runtime/gateways/memory/gateway.ts
|
1026
|
+
var gateway_exports = {};
|
1027
|
+
__export(gateway_exports, {
|
1028
|
+
MemoryGateway: () => MemoryGateway
|
1029
|
+
});
|
1026
1030
|
var import_cement6 = require("@adviser/cement");
|
1027
1031
|
|
1028
1032
|
// src/runtime/gateways/memory/version.ts
|
@@ -1251,16 +1255,20 @@ var DefSerdeGateway = class {
|
|
1251
1255
|
this.subscribeFn = /* @__PURE__ */ new Map();
|
1252
1256
|
this.gw = gw;
|
1253
1257
|
}
|
1254
|
-
|
1258
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1259
|
+
start(sthis, baseURL, loader) {
|
1255
1260
|
return this.gw.start(baseURL, sthis);
|
1256
1261
|
}
|
1257
|
-
|
1262
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1263
|
+
async buildUrl(sthis, baseUrl, key, loader) {
|
1258
1264
|
return this.gw.buildUrl(baseUrl, key, sthis);
|
1259
1265
|
}
|
1260
|
-
|
1266
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1267
|
+
async close(sthis, uri, loader) {
|
1261
1268
|
return this.gw.close(uri, sthis);
|
1262
1269
|
}
|
1263
|
-
|
1270
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1271
|
+
async put(sthis, url, env, loader) {
|
1264
1272
|
const rUint8 = await fpSerialize(sthis, env);
|
1265
1273
|
if (rUint8.isErr()) return rUint8;
|
1266
1274
|
const ret = this.gw.put(url, rUint8.Ok(), sthis);
|
@@ -1271,12 +1279,13 @@ var DefSerdeGateway = class {
|
|
1271
1279
|
}
|
1272
1280
|
return ret;
|
1273
1281
|
}
|
1274
|
-
|
1282
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1283
|
+
async get(sthis, url, loader) {
|
1275
1284
|
const res = await this.gw.get(url, sthis);
|
1276
1285
|
if (res.isErr()) return import_cement9.Result.Err(res.Err());
|
1277
1286
|
return fpDeserialize(sthis, url, res);
|
1278
1287
|
}
|
1279
|
-
async subscribe(sthis, url, callback) {
|
1288
|
+
async subscribe(sthis, url, callback, loader) {
|
1280
1289
|
if (!this.gw.subscribe) {
|
1281
1290
|
this.subscribeFn.set(url.toString(), callback);
|
1282
1291
|
return import_cement9.Result.Ok(() => {
|
@@ -1295,13 +1304,16 @@ var DefSerdeGateway = class {
|
|
1295
1304
|
);
|
1296
1305
|
return unreg;
|
1297
1306
|
}
|
1298
|
-
|
1307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1308
|
+
async delete(sthis, url, loader) {
|
1299
1309
|
return this.gw.delete(url, sthis);
|
1300
1310
|
}
|
1301
|
-
|
1311
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1312
|
+
async destroy(sthis, baseURL, loader) {
|
1302
1313
|
return this.gw.destroy(baseURL, sthis);
|
1303
1314
|
}
|
1304
|
-
|
1315
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
1316
|
+
async getPlain(sthis, iurl, key, loader) {
|
1305
1317
|
return this.gw.getPlain(iurl, key, sthis);
|
1306
1318
|
}
|
1307
1319
|
};
|
@@ -1386,7 +1398,7 @@ if ((0, import_cement10.runtimeFn)().isBrowser) {
|
|
1386
1398
|
return import_cement10.BuildURI.from("indexdb://").pathname("fp").setParam("version" /* VERSION */, INDEXDB_VERSION).setParam("runtime" /* RUNTIME */, "browser").URI();
|
1387
1399
|
},
|
1388
1400
|
gateway: async () => {
|
1389
|
-
const { GatewayImpl } = await import("@fireproof/core/
|
1401
|
+
const { GatewayImpl } = await import("@fireproof/core/indexdb");
|
1390
1402
|
return new GatewayImpl();
|
1391
1403
|
}
|
1392
1404
|
});
|
@@ -1936,7 +1948,7 @@ var DatabaseImpl = class {
|
|
1936
1948
|
};
|
1937
1949
|
|
1938
1950
|
// src/crdt.ts
|
1939
|
-
var
|
1951
|
+
var import_cement19 = require("@adviser/cement");
|
1940
1952
|
|
1941
1953
|
// src/blockstore/index.ts
|
1942
1954
|
var blockstore_exports = {};
|
@@ -3687,6 +3699,9 @@ function toStoreRuntime(sthis, endeOpts = {}) {
|
|
3687
3699
|
};
|
3688
3700
|
}
|
3689
3701
|
|
3702
|
+
// src/blockstore/connection-base.ts
|
3703
|
+
var import_cement17 = require("@adviser/cement");
|
3704
|
+
|
3690
3705
|
// src/blockstore/store-remote.ts
|
3691
3706
|
async function RemoteDataStore(sthis, url, opts) {
|
3692
3707
|
const ds = new DataStoreImpl(sthis, url, opts);
|
@@ -3699,6 +3714,22 @@ async function RemoteMetaStore(sthis, url, opts) {
|
|
3699
3714
|
return ms;
|
3700
3715
|
}
|
3701
3716
|
|
3717
|
+
// src/context.ts
|
3718
|
+
var Context = class {
|
3719
|
+
constructor() {
|
3720
|
+
this.ctx = /* @__PURE__ */ new Map();
|
3721
|
+
}
|
3722
|
+
set(key, value) {
|
3723
|
+
this.ctx.set(key, value);
|
3724
|
+
}
|
3725
|
+
get(key) {
|
3726
|
+
return this.ctx.get(key);
|
3727
|
+
}
|
3728
|
+
delete(key) {
|
3729
|
+
this.ctx.delete(key);
|
3730
|
+
}
|
3731
|
+
};
|
3732
|
+
|
3702
3733
|
// src/blockstore/connection-base.ts
|
3703
3734
|
function coerceLoader(ref) {
|
3704
3735
|
const refl = ref;
|
@@ -3713,10 +3744,22 @@ function coerceLoader(ref) {
|
|
3713
3744
|
}
|
3714
3745
|
var ConnectionBase = class {
|
3715
3746
|
constructor(url, logger) {
|
3716
|
-
|
3747
|
+
// loaded: Promise<void> = Promise.resolve();
|
3748
|
+
this.context = new Context();
|
3749
|
+
this._loaded = /* @__PURE__ */ new Set();
|
3750
|
+
this._metaIsLoading = false;
|
3717
3751
|
this.logger = logger;
|
3718
3752
|
this.url = url;
|
3719
3753
|
}
|
3754
|
+
loaded() {
|
3755
|
+
const f = new import_cement17.Future();
|
3756
|
+
if (!this._metaIsLoading) {
|
3757
|
+
f.resolve();
|
3758
|
+
} else {
|
3759
|
+
this._loaded.add(f);
|
3760
|
+
}
|
3761
|
+
return f;
|
3762
|
+
}
|
3720
3763
|
async refresh() {
|
3721
3764
|
await throwFalsy(throwFalsy(this.loader).remoteMetaStore).load();
|
3722
3765
|
await (await throwFalsy(this.loader).WALStore()).process();
|
@@ -3744,22 +3787,34 @@ var ConnectionBase = class {
|
|
3744
3787
|
loader
|
3745
3788
|
});
|
3746
3789
|
this.loader.remoteMetaStore = remote;
|
3747
|
-
this.
|
3790
|
+
this._metaIsLoading = true;
|
3791
|
+
this.loader.ready().then(async () => {
|
3748
3792
|
return remote.load().then(async () => {
|
3749
|
-
|
3793
|
+
const res = await (0, import_cement17.exception2Result)(async () => {
|
3794
|
+
return await (await throwFalsy(this.loader).WALStore()).process();
|
3795
|
+
});
|
3796
|
+
this._metaIsLoading = false;
|
3797
|
+
for (const f of this._loaded) {
|
3798
|
+
if (res.isErr()) {
|
3799
|
+
f.reject(res.Err());
|
3800
|
+
} else {
|
3801
|
+
f.resolve();
|
3802
|
+
}
|
3803
|
+
}
|
3804
|
+
this._loaded.clear();
|
3750
3805
|
});
|
3751
3806
|
});
|
3752
3807
|
}
|
3753
3808
|
async connectStorage(refl) {
|
3754
3809
|
const loader = coerceLoader(refl);
|
3755
|
-
if (!loader) throw this.logger.Error().Msg("
|
3810
|
+
if (!loader) throw this.logger.Error().Msg("connectStorage: loader is required").AsError();
|
3756
3811
|
this.loader = loader;
|
3757
3812
|
const dataUrl = this.url.build().defParam("store" /* STORE */, "data").URI();
|
3758
3813
|
const rgateway = await getStartedGateway(loader.sthis, dataUrl);
|
3759
3814
|
if (rgateway.isErr())
|
3760
|
-
throw this.logger.Error().Result("err", rgateway).Url(dataUrl).Msg("
|
3815
|
+
throw this.logger.Error().Result("err", rgateway).Url(dataUrl).Msg("connectStorage: gateway is required").AsError();
|
3761
3816
|
const name = dataUrl.getParam("name" /* NAME */);
|
3762
|
-
if (!name) throw this.logger.Error().Url(dataUrl).Msg("
|
3817
|
+
if (!name) throw this.logger.Error().Url(dataUrl).Msg("connectStorage: name is required").AsError;
|
3763
3818
|
loader.remoteCarStore = await RemoteDataStore(loader.sthis, this.url, {
|
3764
3819
|
gateway: rgateway.Ok().gateway,
|
3765
3820
|
loader
|
@@ -4074,7 +4129,7 @@ async function getBlock(blocks, cidString) {
|
|
4074
4129
|
// src/crdt-clock.ts
|
4075
4130
|
var import_clock4 = require("@fireproof/vendor/@web3-storage/pail/clock");
|
4076
4131
|
var import_crdt2 = require("@fireproof/vendor/@web3-storage/pail/crdt");
|
4077
|
-
var
|
4132
|
+
var import_cement18 = require("@adviser/cement");
|
4078
4133
|
|
4079
4134
|
// src/apply-head-queue.ts
|
4080
4135
|
function applyHeadQueue(worker, logger) {
|
@@ -4131,7 +4186,7 @@ var CRDTClockImpl = class {
|
|
4131
4186
|
this.zoomers = /* @__PURE__ */ new Map();
|
4132
4187
|
this.watchers = /* @__PURE__ */ new Map();
|
4133
4188
|
this.emptyWatchers = /* @__PURE__ */ new Map();
|
4134
|
-
this._ready = new
|
4189
|
+
this._ready = new import_cement18.ResolveOnce();
|
4135
4190
|
this.sthis = blockstore.sthis;
|
4136
4191
|
this.blockstore = blockstore;
|
4137
4192
|
this.logger = ensureLogger(blockstore.sthis, "CRDTClock");
|
@@ -4257,7 +4312,7 @@ async function advanceBlocks(logger, newHead, tblocks, head) {
|
|
4257
4312
|
var CRDTImpl = class {
|
4258
4313
|
constructor(sthis, opts) {
|
4259
4314
|
this.indexers = /* @__PURE__ */ new Map();
|
4260
|
-
this.onceReady = new
|
4315
|
+
this.onceReady = new import_cement19.ResolveOnce();
|
4261
4316
|
this.sthis = sthis;
|
4262
4317
|
this.crdt = this;
|
4263
4318
|
this.logger = ensureLogger(sthis, "CRDT");
|
@@ -4375,24 +4430,8 @@ var CRDTImpl = class {
|
|
4375
4430
|
}
|
4376
4431
|
};
|
4377
4432
|
|
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
4433
|
// src/ledger.ts
|
4395
|
-
var ledgers = new
|
4434
|
+
var ledgers = new import_cement20.KeyedResolvOnce();
|
4396
4435
|
function keyConfigOpts(sthis, name, opts) {
|
4397
4436
|
return JSON.stringify(
|
4398
4437
|
toSortedArray({
|
@@ -4478,7 +4517,7 @@ var LedgerImpl = class {
|
|
4478
4517
|
this.shells = /* @__PURE__ */ new Set();
|
4479
4518
|
this.context = new Context();
|
4480
4519
|
this._onClosedFns = /* @__PURE__ */ new Map();
|
4481
|
-
this._ready = new
|
4520
|
+
this._ready = new import_cement20.ResolveOnce();
|
4482
4521
|
this.opts = opts;
|
4483
4522
|
this.sthis = sthis;
|
4484
4523
|
this.id = sthis.timeOrderedNextId().str;
|
@@ -4578,7 +4617,7 @@ var LedgerImpl = class {
|
|
4578
4617
|
};
|
4579
4618
|
function defaultURI2(sthis, curi, uri, store, ctx) {
|
4580
4619
|
ctx = ctx || {};
|
4581
|
-
const ret = (curi ?
|
4620
|
+
const ret = (curi ? import_cement20.URI.from(curi) : uri).build().setParam("store" /* STORE */, store);
|
4582
4621
|
if (!ret.hasParam("name" /* NAME */)) {
|
4583
4622
|
const name = sthis.pathOps.basename(ret.URI().pathname);
|
4584
4623
|
if (!name) {
|
@@ -4605,12 +4644,12 @@ function toStoreURIRuntime(sthis, name, sopts) {
|
|
4605
4644
|
if (!sopts.base) {
|
4606
4645
|
const fp_env = sthis.env.get("FP_STORAGE_URL");
|
4607
4646
|
if (fp_env) {
|
4608
|
-
sopts = { ...sopts, base:
|
4647
|
+
sopts = { ...sopts, base: import_cement20.BuildURI.from(fp_env).setParam("urlGen" /* URL_GEN */, "fromEnv") };
|
4609
4648
|
} else {
|
4610
4649
|
sopts = { ...sopts, base: getDefaultURI(sthis).build().setParam("urlGen" /* URL_GEN */, "default") };
|
4611
4650
|
}
|
4612
4651
|
}
|
4613
|
-
const bbase =
|
4652
|
+
const bbase = import_cement20.BuildURI.from(sopts.base);
|
4614
4653
|
if (name) {
|
4615
4654
|
bbase.setParam("name" /* NAME */, name);
|
4616
4655
|
}
|
@@ -4651,7 +4690,7 @@ __export(runtime_exports, {
|
|
4651
4690
|
kc: () => keyed_crypto_exports,
|
4652
4691
|
mf: () => wait_pr_multiformats_exports,
|
4653
4692
|
registerKeyBagProviderFactory: () => registerKeyBagProviderFactory,
|
4654
|
-
runtimeFn: () =>
|
4693
|
+
runtimeFn: () => import_cement21.runtimeFn
|
4655
4694
|
});
|
4656
4695
|
|
4657
4696
|
// src/runtime/wait-pr-multiformats/index.ts
|
@@ -4665,7 +4704,7 @@ __export(wait_pr_multiformats_exports, {
|
|
4665
4704
|
var codec_interface_exports = {};
|
4666
4705
|
|
4667
4706
|
// src/runtime/index.ts
|
4668
|
-
var
|
4707
|
+
var import_cement21 = require("@adviser/cement");
|
4669
4708
|
|
4670
4709
|
// src/runtime/gateways/index.ts
|
4671
4710
|
var gateways_exports = {};
|
@@ -4673,7 +4712,8 @@ __export(gateways_exports, {
|
|
4673
4712
|
DefSerdeGateway: () => DefSerdeGateway,
|
4674
4713
|
file: () => file_exports,
|
4675
4714
|
fpDeserialize: () => fpDeserialize,
|
4676
|
-
fpSerialize: () => fpSerialize
|
4715
|
+
fpSerialize: () => fpSerialize,
|
4716
|
+
memory: () => gateway_exports
|
4677
4717
|
});
|
4678
4718
|
|
4679
4719
|
// src/runtime/gateways/file/index.ts
|
@@ -4685,6 +4725,6 @@ __export(file_exports, {
|
|
4685
4725
|
|
4686
4726
|
// src/version.ts
|
4687
4727
|
var PACKAGE_VERSION = Object.keys({
|
4688
|
-
"0.20.0-dev-preview-
|
4728
|
+
"0.20.0-dev-preview-16": "xxxx"
|
4689
4729
|
})[0];
|
4690
4730
|
//# sourceMappingURL=index.cjs.map
|