@fireproof/core 0.20.0-dev-preview-18 → 0.20.0-dev-preview-20
Sign up to get free protection for your applications and to get access to all the features.
- package/index.cjs +124 -147
- package/index.cjs.map +1 -1
- package/index.d.cts +102 -97
- package/index.d.ts +102 -97
- package/index.js +124 -147
- package/index.js.map +1 -1
- package/{indexdb → indexeddb}/index.cjs +16 -16
- package/indexeddb/index.cjs.map +1 -0
- package/{indexdb → indexeddb}/index.d.cts +4 -4
- package/{indexdb → indexeddb}/index.d.ts +4 -4
- package/{indexdb → indexeddb}/index.js +15 -15
- package/indexeddb/index.js.map +1 -0
- package/indexeddb/metafile-cjs.json +1 -0
- package/indexeddb/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/interceptor-gateway.test.ts +17 -17
- package/tests/blockstore/{keyed-crypto-indexdb-file.test.ts → keyed-crypto-indexeddb-file.test.ts} +13 -12
- package/tests/blockstore/keyed-crypto.test.ts +20 -19
- package/tests/blockstore/store.test.ts +19 -11
- package/tests/fireproof/all-gateway.test.ts +67 -60
- package/tests/gateway/{indexdb → indexeddb}/loader-config.test.ts +10 -10
- package/tests/helpers.ts +1 -1
- package/indexdb/index.cjs.map +0 -1
- package/indexdb/index.js.map +0 -1
- package/indexdb/metafile-cjs.json +0 -1
- package/indexdb/metafile-esm.json +0 -1
package/index.cjs
CHANGED
@@ -784,9 +784,9 @@ var keyBagProviderFactories = new Map(
|
|
784
784
|
}
|
785
785
|
},
|
786
786
|
{
|
787
|
-
protocol: "
|
787
|
+
protocol: "indexeddb:",
|
788
788
|
factory: async (url, sthis) => {
|
789
|
-
const { KeyBagProviderImpl } = await import("@fireproof/core/
|
789
|
+
const { KeyBagProviderImpl } = await import("@fireproof/core/indexeddb");
|
790
790
|
return new KeyBagProviderImpl(url, sthis);
|
791
791
|
}
|
792
792
|
},
|
@@ -809,7 +809,7 @@ function defaultKeyBagUrl(sthis) {
|
|
809
809
|
let bagFnameOrUrl = sthis.env.get("FP_KEYBAG_URL");
|
810
810
|
let url;
|
811
811
|
if ((0, import_cement4.runtimeFn)().isBrowser) {
|
812
|
-
url = import_cement4.URI.from(bagFnameOrUrl || "
|
812
|
+
url = import_cement4.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
|
813
813
|
} else {
|
814
814
|
if (!bagFnameOrUrl) {
|
815
815
|
const home = sthis.env.get("HOME");
|
@@ -836,7 +836,7 @@ function defaultKeyBagOpts(sthis, kbo) {
|
|
836
836
|
} else {
|
837
837
|
let bagFnameOrUrl = sthis.env.get("FP_KEYBAG_URL");
|
838
838
|
if ((0, import_cement4.runtimeFn)().isBrowser) {
|
839
|
-
url = import_cement4.URI.from(bagFnameOrUrl || "
|
839
|
+
url = import_cement4.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
|
840
840
|
} else {
|
841
841
|
if (!bagFnameOrUrl) {
|
842
842
|
const home = sthis.env.get("HOME");
|
@@ -880,8 +880,8 @@ 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/
|
884
|
-
var
|
883
|
+
// src/runtime/gateways/indexeddb-version.ts
|
884
|
+
var INDEXEDDB_VERSION = "v0.19-indexeddb";
|
885
885
|
|
886
886
|
// src/runtime/gateways/file/gateway-impl.ts
|
887
887
|
var import_cement5 = require("@adviser/cement");
|
@@ -1255,65 +1255,57 @@ var DefSerdeGateway = class {
|
|
1255
1255
|
this.subscribeFn = /* @__PURE__ */ new Map();
|
1256
1256
|
this.gw = gw;
|
1257
1257
|
}
|
1258
|
-
|
1259
|
-
start(sthis, baseURL, loader) {
|
1258
|
+
start({ loader: { sthis } }, baseURL) {
|
1260
1259
|
return this.gw.start(baseURL, sthis);
|
1261
1260
|
}
|
1262
|
-
|
1263
|
-
async buildUrl(sthis, baseUrl, key, loader) {
|
1261
|
+
async buildUrl({ loader: { sthis } }, baseUrl, key) {
|
1264
1262
|
return this.gw.buildUrl(baseUrl, key, sthis);
|
1265
1263
|
}
|
1266
|
-
|
1267
|
-
async close(sthis, uri, loader) {
|
1264
|
+
async close({ loader: { sthis } }, uri) {
|
1268
1265
|
return this.gw.close(uri, sthis);
|
1269
1266
|
}
|
1270
|
-
|
1271
|
-
|
1272
|
-
const rUint8 = await fpSerialize(sthis, env);
|
1267
|
+
async put({ loader: { sthis }, encoder }, url, env) {
|
1268
|
+
const rUint8 = await fpSerialize(sthis, env, encoder);
|
1273
1269
|
if (rUint8.isErr()) return rUint8;
|
1274
1270
|
const ret = this.gw.put(url, rUint8.Ok(), sthis);
|
1275
1271
|
if (env.type === "meta" /* META */) {
|
1276
1272
|
if (this.subscribeFn.has(url.toString())) {
|
1277
|
-
this.subscribeFn.get(url.toString())(
|
1273
|
+
this.subscribeFn.get(url.toString())(rUint8.Ok());
|
1278
1274
|
}
|
1279
1275
|
}
|
1280
1276
|
return ret;
|
1281
1277
|
}
|
1282
|
-
|
1283
|
-
async get(sthis, url, loader) {
|
1278
|
+
async get({ loader: { sthis }, decoder }, url) {
|
1284
1279
|
const res = await this.gw.get(url, sthis);
|
1285
1280
|
if (res.isErr()) return import_cement9.Result.Err(res.Err());
|
1286
|
-
return fpDeserialize(sthis, url, res);
|
1287
|
-
}
|
1288
|
-
async subscribe(sthis, url, callback
|
1281
|
+
return fpDeserialize(sthis, url, res, decoder);
|
1282
|
+
}
|
1283
|
+
async subscribe({ loader: { sthis }, decoder }, url, callback) {
|
1284
|
+
function rawCallback(raw2) {
|
1285
|
+
return fpDeserialize(sthis, url, import_cement9.Result.Ok(raw2), decoder).then((res) => {
|
1286
|
+
if (res.isErr()) {
|
1287
|
+
sthis.logger.Error().Err(res).Msg("Failed to deserialize");
|
1288
|
+
return;
|
1289
|
+
}
|
1290
|
+
callback(res.Ok());
|
1291
|
+
});
|
1292
|
+
}
|
1289
1293
|
if (!this.gw.subscribe) {
|
1290
|
-
this.subscribeFn.set(url.toString(),
|
1294
|
+
this.subscribeFn.set(url.toString(), rawCallback);
|
1291
1295
|
return import_cement9.Result.Ok(() => {
|
1292
1296
|
this.subscribeFn.delete(url.toString());
|
1293
1297
|
});
|
1294
1298
|
}
|
1295
|
-
const unreg = await this.gw.subscribe(
|
1296
|
-
url,
|
1297
|
-
(raw2) => {
|
1298
|
-
fpDeserialize(sthis, url, import_cement9.Result.Ok(raw2)).then((res) => {
|
1299
|
-
if (res.isErr()) return;
|
1300
|
-
callback(res.Ok());
|
1301
|
-
});
|
1302
|
-
},
|
1303
|
-
sthis
|
1304
|
-
);
|
1299
|
+
const unreg = await this.gw.subscribe(url, rawCallback, sthis);
|
1305
1300
|
return unreg;
|
1306
1301
|
}
|
1307
|
-
|
1308
|
-
async delete(sthis, url, loader) {
|
1302
|
+
async delete({ loader: { sthis } }, url) {
|
1309
1303
|
return this.gw.delete(url, sthis);
|
1310
1304
|
}
|
1311
|
-
|
1312
|
-
async destroy(sthis, baseURL, loader) {
|
1305
|
+
async destroy({ loader: { sthis } }, baseURL) {
|
1313
1306
|
return this.gw.destroy(baseURL, sthis);
|
1314
1307
|
}
|
1315
|
-
|
1316
|
-
async getPlain(sthis, iurl, key, loader) {
|
1308
|
+
async getPlain({ loader: { sthis } }, iurl, key) {
|
1317
1309
|
return this.gw.getPlain(iurl, key, sthis);
|
1318
1310
|
}
|
1319
1311
|
};
|
@@ -1392,13 +1384,13 @@ if ((0, import_cement10.runtimeFn)().isNodeIsh || (0, import_cement10.runtimeFn)
|
|
1392
1384
|
}
|
1393
1385
|
if ((0, import_cement10.runtimeFn)().isBrowser) {
|
1394
1386
|
registerStoreProtocol({
|
1395
|
-
protocol: "
|
1387
|
+
protocol: "indexeddb:",
|
1396
1388
|
isDefault: true,
|
1397
1389
|
defaultURI: () => {
|
1398
|
-
return import_cement10.BuildURI.from("
|
1390
|
+
return import_cement10.BuildURI.from("indexeddb://").pathname("fp").setParam("version" /* VERSION */, INDEXEDDB_VERSION).setParam("runtime" /* RUNTIME */, "browser").URI();
|
1399
1391
|
},
|
1400
1392
|
gateway: async () => {
|
1401
|
-
const { GatewayImpl } = await import("@fireproof/core/
|
1393
|
+
const { GatewayImpl } = await import("@fireproof/core/indexeddb");
|
1402
1394
|
return new GatewayImpl();
|
1403
1395
|
}
|
1404
1396
|
});
|
@@ -2487,7 +2479,7 @@ var Loader = class {
|
|
2487
2479
|
async carStore() {
|
2488
2480
|
return this._carStore.once(
|
2489
2481
|
async () => this.ebOpts.storeRuntime.makeDataStore({
|
2490
|
-
sthis: this.sthis,
|
2482
|
+
// sthis: this.sthis,
|
2491
2483
|
gatewayInterceptor: this.ebOpts.gatewayInterceptor,
|
2492
2484
|
url: this.ebOpts.storeUrls.data,
|
2493
2485
|
// keybag: await this.keyBag(),
|
@@ -2498,7 +2490,7 @@ var Loader = class {
|
|
2498
2490
|
async fileStore() {
|
2499
2491
|
return this._fileStore.once(
|
2500
2492
|
async () => this.ebOpts.storeRuntime.makeDataStore({
|
2501
|
-
sthis: this.sthis,
|
2493
|
+
// sthis: this.sthis,
|
2502
2494
|
gatewayInterceptor: this.ebOpts.gatewayInterceptor,
|
2503
2495
|
url: this.ebOpts.storeUrls.file,
|
2504
2496
|
// keybag: await this.keyBag(),
|
@@ -2509,7 +2501,7 @@ var Loader = class {
|
|
2509
2501
|
async WALStore() {
|
2510
2502
|
return this._WALStore.once(
|
2511
2503
|
async () => this.ebOpts.storeRuntime.makeWALStore({
|
2512
|
-
sthis: this.sthis,
|
2504
|
+
// sthis: this.sthis,
|
2513
2505
|
gatewayInterceptor: this.ebOpts.gatewayInterceptor,
|
2514
2506
|
url: this.ebOpts.storeUrls.wal,
|
2515
2507
|
// keybag: await this.keyBag(),
|
@@ -2520,7 +2512,7 @@ var Loader = class {
|
|
2520
2512
|
async metaStore() {
|
2521
2513
|
return this._metaStore.once(
|
2522
2514
|
async () => this.ebOpts.storeRuntime.makeMetaStore({
|
2523
|
-
sthis: this.sthis,
|
2515
|
+
// sthis: this.sthis,
|
2524
2516
|
gatewayInterceptor: this.ebOpts.gatewayInterceptor,
|
2525
2517
|
url: this.ebOpts.storeUrls.meta,
|
2526
2518
|
// keybag: await this.keyBag(),
|
@@ -3000,35 +2992,35 @@ var import_p_map = __toESM(require("p-map"), 1);
|
|
3000
2992
|
// src/blockstore/interceptor-gateway.ts
|
3001
2993
|
var import_cement14 = require("@adviser/cement");
|
3002
2994
|
var PassThroughGateway = class {
|
3003
|
-
async buildUrl(
|
2995
|
+
async buildUrl(ctx, url, key) {
|
3004
2996
|
const op = { url, key };
|
3005
2997
|
return import_cement14.Result.Ok({ op });
|
3006
2998
|
}
|
3007
|
-
async start(
|
2999
|
+
async start(ctx, url) {
|
3008
3000
|
const op = { url };
|
3009
3001
|
return import_cement14.Result.Ok({ op });
|
3010
3002
|
}
|
3011
|
-
async close(
|
3003
|
+
async close(ctx, url) {
|
3012
3004
|
const op = { url };
|
3013
3005
|
return import_cement14.Result.Ok({ op });
|
3014
3006
|
}
|
3015
|
-
async delete(
|
3007
|
+
async delete(ctx, url) {
|
3016
3008
|
const op = { url };
|
3017
3009
|
return import_cement14.Result.Ok({ op });
|
3018
3010
|
}
|
3019
|
-
async destroy(
|
3011
|
+
async destroy(ctx, url) {
|
3020
3012
|
const op = { url };
|
3021
3013
|
return import_cement14.Result.Ok({ op });
|
3022
3014
|
}
|
3023
|
-
async put(
|
3015
|
+
async put(ctx, url, body) {
|
3024
3016
|
const op = { url, body };
|
3025
3017
|
return import_cement14.Result.Ok({ op });
|
3026
3018
|
}
|
3027
|
-
async get(
|
3019
|
+
async get(ctx, url) {
|
3028
3020
|
const op = { url };
|
3029
3021
|
return import_cement14.Result.Ok({ op });
|
3030
3022
|
}
|
3031
|
-
async subscribe(
|
3023
|
+
async subscribe(ctx, url, callback) {
|
3032
3024
|
const op = { url, callback };
|
3033
3025
|
return import_cement14.Result.Ok({ op });
|
3034
3026
|
}
|
@@ -3039,8 +3031,8 @@ var InterceptorGateway = class {
|
|
3039
3031
|
this.innerGW = innerGW;
|
3040
3032
|
this.interceptor = interceptor || passThrougthGateway;
|
3041
3033
|
}
|
3042
|
-
async buildUrl(
|
3043
|
-
const rret = await this.interceptor.buildUrl(
|
3034
|
+
async buildUrl(ctx, baseUrl, key) {
|
3035
|
+
const rret = await this.interceptor.buildUrl(ctx, baseUrl, key);
|
3044
3036
|
if (rret.isErr()) {
|
3045
3037
|
return import_cement14.Result.Err(rret.Err());
|
3046
3038
|
}
|
@@ -3048,10 +3040,10 @@ var InterceptorGateway = class {
|
|
3048
3040
|
if (ret.stop && ret.value) {
|
3049
3041
|
return ret.value;
|
3050
3042
|
}
|
3051
|
-
return this.innerGW.buildUrl(
|
3043
|
+
return this.innerGW.buildUrl(ctx, ret.op.url, ret.op.key);
|
3052
3044
|
}
|
3053
|
-
async destroy(
|
3054
|
-
const rret = await this.interceptor.destroy(
|
3045
|
+
async destroy(ctx, iurl) {
|
3046
|
+
const rret = await this.interceptor.destroy(ctx, iurl);
|
3055
3047
|
if (rret.isErr()) {
|
3056
3048
|
return import_cement14.Result.Err(rret.Err());
|
3057
3049
|
}
|
@@ -3059,10 +3051,10 @@ var InterceptorGateway = class {
|
|
3059
3051
|
if (ret.stop && ret.value) {
|
3060
3052
|
return ret.value;
|
3061
3053
|
}
|
3062
|
-
return this.innerGW.destroy(
|
3054
|
+
return this.innerGW.destroy(ctx, ret.op.url);
|
3063
3055
|
}
|
3064
|
-
async start(
|
3065
|
-
const rret = await this.interceptor.start(
|
3056
|
+
async start(ctx, url) {
|
3057
|
+
const rret = await this.interceptor.start(ctx, url);
|
3066
3058
|
if (rret.isErr()) {
|
3067
3059
|
return import_cement14.Result.Err(rret.Err());
|
3068
3060
|
}
|
@@ -3070,10 +3062,10 @@ var InterceptorGateway = class {
|
|
3070
3062
|
if (ret.stop && ret.value) {
|
3071
3063
|
return ret.value;
|
3072
3064
|
}
|
3073
|
-
return await this.innerGW.start(
|
3065
|
+
return await this.innerGW.start(ctx, ret.op.url);
|
3074
3066
|
}
|
3075
|
-
async close(
|
3076
|
-
const rret = await this.interceptor.close(
|
3067
|
+
async close(ctx, url) {
|
3068
|
+
const rret = await this.interceptor.close(ctx, url);
|
3077
3069
|
if (rret.isErr()) {
|
3078
3070
|
return import_cement14.Result.Err(rret.Err());
|
3079
3071
|
}
|
@@ -3081,10 +3073,10 @@ var InterceptorGateway = class {
|
|
3081
3073
|
if (ret.stop && ret.value) {
|
3082
3074
|
return ret.value;
|
3083
3075
|
}
|
3084
|
-
return await this.innerGW.close(
|
3076
|
+
return await this.innerGW.close(ctx, ret.op.url);
|
3085
3077
|
}
|
3086
|
-
async put(
|
3087
|
-
const rret = await this.interceptor.put(
|
3078
|
+
async put(ctx, url, fpEnv) {
|
3079
|
+
const rret = await this.interceptor.put(ctx, url, fpEnv);
|
3088
3080
|
if (rret.isErr()) {
|
3089
3081
|
return import_cement14.Result.Err(rret.Err());
|
3090
3082
|
}
|
@@ -3092,10 +3084,10 @@ var InterceptorGateway = class {
|
|
3092
3084
|
if (ret.stop && ret.value) {
|
3093
3085
|
return ret.value;
|
3094
3086
|
}
|
3095
|
-
return this.innerGW.put(
|
3087
|
+
return this.innerGW.put(ctx, ret.op.url, ret.op.body);
|
3096
3088
|
}
|
3097
|
-
async get(
|
3098
|
-
const rret = await this.interceptor.get(
|
3089
|
+
async get(ctx, url) {
|
3090
|
+
const rret = await this.interceptor.get(ctx, url);
|
3099
3091
|
if (rret.isErr()) {
|
3100
3092
|
return import_cement14.Result.Err(rret.Err());
|
3101
3093
|
}
|
@@ -3103,13 +3095,13 @@ var InterceptorGateway = class {
|
|
3103
3095
|
if (ret.stop && ret.value) {
|
3104
3096
|
return ret.value;
|
3105
3097
|
}
|
3106
|
-
return this.innerGW.get(
|
3098
|
+
return this.innerGW.get(ctx, ret.op.url);
|
3107
3099
|
}
|
3108
|
-
async subscribe(
|
3100
|
+
async subscribe(ctx, url, callback) {
|
3109
3101
|
if (!this.innerGW.subscribe) {
|
3110
|
-
return import_cement14.Result.Err(sthis.logger.Error().Url(url).Msg("subscribe not supported").AsError());
|
3102
|
+
return import_cement14.Result.Err(ctx.loader.sthis.logger.Error().Url(url).Msg("subscribe not supported").AsError());
|
3111
3103
|
}
|
3112
|
-
const rret = await this.interceptor.subscribe(
|
3104
|
+
const rret = await this.interceptor.subscribe(ctx, url, callback);
|
3113
3105
|
if (rret.isErr()) {
|
3114
3106
|
return import_cement14.Result.Err(rret.Err());
|
3115
3107
|
}
|
@@ -3117,10 +3109,10 @@ var InterceptorGateway = class {
|
|
3117
3109
|
if (ret.stop && ret.value) {
|
3118
3110
|
return ret.value;
|
3119
3111
|
}
|
3120
|
-
return this.innerGW.subscribe(
|
3112
|
+
return this.innerGW.subscribe(ctx, ret.op.url, ret.op.callback);
|
3121
3113
|
}
|
3122
|
-
async delete(
|
3123
|
-
const rret = await this.interceptor.delete(
|
3114
|
+
async delete(ctx, url) {
|
3115
|
+
const rret = await this.interceptor.delete(ctx, url);
|
3124
3116
|
if (rret.isErr()) {
|
3125
3117
|
return import_cement14.Result.Err(rret.Err());
|
3126
3118
|
}
|
@@ -3128,10 +3120,10 @@ var InterceptorGateway = class {
|
|
3128
3120
|
if (ret.stop && ret.value) {
|
3129
3121
|
return ret.value;
|
3130
3122
|
}
|
3131
|
-
return this.innerGW.delete(
|
3123
|
+
return this.innerGW.delete(ctx, url);
|
3132
3124
|
}
|
3133
|
-
async getPlain(
|
3134
|
-
return this.innerGW.getPlain(
|
3125
|
+
async getPlain(ctx, url, key) {
|
3126
|
+
return this.innerGW.getPlain(ctx, url, key);
|
3135
3127
|
}
|
3136
3128
|
};
|
3137
3129
|
|
@@ -3177,7 +3169,7 @@ var BaseStoreImpl = class {
|
|
3177
3169
|
async start() {
|
3178
3170
|
this.logger.Debug().Str("storeType", this.storeType).Msg("starting-gateway-pre");
|
3179
3171
|
this._url = this._url.build().setParam("store" /* STORE */, this.storeType).URI();
|
3180
|
-
const res = await this.gateway.start(this.
|
3172
|
+
const res = await this.gateway.start({ loader: this.loader }, this._url);
|
3181
3173
|
if (res.isErr()) {
|
3182
3174
|
this.logger.Error().Result("gw-start", res).Msg("started-gateway");
|
3183
3175
|
return res;
|
@@ -3242,18 +3234,13 @@ var MetaStoreImpl = class extends BaseStoreImpl {
|
|
3242
3234
|
) {
|
3243
3235
|
this.onStarted(async () => {
|
3244
3236
|
this.logger.Debug().Str("url", this.url().toString()).Msg("Subscribing to the gateway");
|
3245
|
-
opts.gateway.subscribe
|
3246
|
-
this.
|
3247
|
-
|
3248
|
-
|
3249
|
-
|
3250
|
-
|
3251
|
-
|
3252
|
-
);
|
3253
|
-
this.updateParentsFromDbMetas(dbMetas);
|
3254
|
-
},
|
3255
|
-
this.loader
|
3256
|
-
);
|
3237
|
+
opts.gateway.subscribe({ loader: this.loader }, this.url(), async ({ payload: dbMetas }) => {
|
3238
|
+
this.logger.Debug().Msg("Received message from gateway");
|
3239
|
+
await Promise.all(
|
3240
|
+
dbMetas.map((dbMeta) => this.loader.taskManager?.handleEvent(dbMeta.eventCid, dbMeta.parents, dbMeta.dbMeta))
|
3241
|
+
);
|
3242
|
+
this.updateParentsFromDbMetas(dbMetas);
|
3243
|
+
});
|
3257
3244
|
});
|
3258
3245
|
}
|
3259
3246
|
}
|
@@ -3274,11 +3261,11 @@ var MetaStoreImpl = class extends BaseStoreImpl {
|
|
3274
3261
|
// }
|
3275
3262
|
async load() {
|
3276
3263
|
const branch = "main";
|
3277
|
-
const url = await this.gateway.buildUrl(this.
|
3264
|
+
const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), branch);
|
3278
3265
|
if (url.isErr()) {
|
3279
3266
|
throw this.logger.Error().Result("buildUrl", url).Str("branch", branch).Msg("got error from gateway.buildUrl").AsError();
|
3280
3267
|
}
|
3281
|
-
const rfpEnv = await this.gateway.get(this.
|
3268
|
+
const rfpEnv = await this.gateway.get({ loader: this.loader }, url.Ok());
|
3282
3269
|
if (rfpEnv.isErr()) {
|
3283
3270
|
if (isNotFoundError(rfpEnv)) {
|
3284
3271
|
return void 0;
|
@@ -3293,33 +3280,28 @@ var MetaStoreImpl = class extends BaseStoreImpl {
|
|
3293
3280
|
async save(meta, branch) {
|
3294
3281
|
branch = branch || "main";
|
3295
3282
|
this.logger.Debug().Str("branch", branch).Any("meta", meta).Msg("saving meta");
|
3296
|
-
const url = await this.gateway.buildUrl(this.
|
3283
|
+
const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), branch);
|
3297
3284
|
if (url.isErr()) {
|
3298
3285
|
throw this.logger.Error().Err(url.Err()).Str("branch", branch).Msg("got error from gateway.buildUrl").AsError();
|
3299
3286
|
}
|
3300
3287
|
const dbMetaEvent = await createDbMetaEvent(this.sthis, meta, this.parents);
|
3301
|
-
const res = await this.gateway.put(
|
3302
|
-
|
3303
|
-
|
3304
|
-
|
3305
|
-
type: "meta",
|
3306
|
-
payload: [dbMetaEvent]
|
3307
|
-
},
|
3308
|
-
this.loader
|
3309
|
-
);
|
3288
|
+
const res = await this.gateway.put({ loader: this.loader }, url.Ok(), {
|
3289
|
+
type: "meta",
|
3290
|
+
payload: [dbMetaEvent]
|
3291
|
+
});
|
3310
3292
|
if (res.isErr()) {
|
3311
3293
|
throw this.logger.Error().Err(res.Err()).Msg("got error from gateway.put").AsError();
|
3312
3294
|
}
|
3313
3295
|
return res;
|
3314
3296
|
}
|
3315
3297
|
async close() {
|
3316
|
-
await this.gateway.close(this.
|
3298
|
+
await this.gateway.close({ loader: this.loader }, this.url());
|
3317
3299
|
this._onClosed.forEach((fn) => fn());
|
3318
3300
|
return import_cement15.Result.Ok(void 0);
|
3319
3301
|
}
|
3320
3302
|
async destroy() {
|
3321
3303
|
this.logger.Debug().Msg("destroy");
|
3322
|
-
return this.gateway.destroy(this.
|
3304
|
+
return this.gateway.destroy({ loader: this.loader }, this.url());
|
3323
3305
|
}
|
3324
3306
|
};
|
3325
3307
|
var DataStoreImpl = class extends BaseStoreImpl {
|
@@ -3329,11 +3311,11 @@ var DataStoreImpl = class extends BaseStoreImpl {
|
|
3329
3311
|
}
|
3330
3312
|
async load(cid) {
|
3331
3313
|
this.logger.Debug().Any("cid", cid).Msg("loading");
|
3332
|
-
const url = await this.gateway.buildUrl(this.
|
3314
|
+
const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), cid.toString());
|
3333
3315
|
if (url.isErr()) {
|
3334
3316
|
throw this.logger.Error().Err(url.Err()).Str("cid", cid.toString()).Msg("got error from gateway.buildUrl").AsError();
|
3335
3317
|
}
|
3336
|
-
const res = await this.gateway.get(this.
|
3318
|
+
const res = await this.gateway.get({ loader: this.loader }, url.Ok());
|
3337
3319
|
if (res.isErr()) {
|
3338
3320
|
throw res.Err();
|
3339
3321
|
}
|
@@ -3350,7 +3332,7 @@ var DataStoreImpl = class extends BaseStoreImpl {
|
|
3350
3332
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
3351
3333
|
async save(car, opts) {
|
3352
3334
|
this.logger.Debug().Any("cid", car.cid.toString()).Msg("saving");
|
3353
|
-
const url = await this.gateway.buildUrl(this.
|
3335
|
+
const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), car.cid.toString());
|
3354
3336
|
if (url.isErr()) {
|
3355
3337
|
throw this.logger.Error().Err(url.Err()).Ref("cid", car.cid).Msg("got error from gateway.buildUrl").AsError();
|
3356
3338
|
}
|
@@ -3369,27 +3351,27 @@ var DataStoreImpl = class extends BaseStoreImpl {
|
|
3369
3351
|
if (fpMsg.isErr()) {
|
3370
3352
|
throw this.logger.Error().Err(fpMsg).Msg("got error from FPMsg2Car").AsError();
|
3371
3353
|
}
|
3372
|
-
const res = await this.gateway.put(this.
|
3354
|
+
const res = await this.gateway.put({ loader: this.loader }, url.Ok(), fpMsg.Ok());
|
3373
3355
|
if (res.isErr()) {
|
3374
3356
|
throw this.logger.Error().Err(res.Err()).Msg("got error from gateway.put").AsError();
|
3375
3357
|
}
|
3376
3358
|
return res.Ok();
|
3377
3359
|
}
|
3378
3360
|
async remove(cid) {
|
3379
|
-
const url = await this.gateway.buildUrl(this.
|
3361
|
+
const url = await this.gateway.buildUrl({ loader: this.loader }, this.url(), cid.toString());
|
3380
3362
|
if (url.isErr()) {
|
3381
3363
|
return url;
|
3382
3364
|
}
|
3383
|
-
return this.gateway.delete(this.
|
3365
|
+
return this.gateway.delete({ loader: this.loader }, url.Ok());
|
3384
3366
|
}
|
3385
3367
|
async close() {
|
3386
|
-
await this.gateway.close(this.
|
3368
|
+
await this.gateway.close({ loader: this.loader }, this.url());
|
3387
3369
|
this._onClosed.forEach((fn) => fn());
|
3388
3370
|
return import_cement15.Result.Ok(void 0);
|
3389
3371
|
}
|
3390
3372
|
destroy() {
|
3391
3373
|
this.logger.Debug().Msg("destroy");
|
3392
|
-
return this.gateway.destroy(this.
|
3374
|
+
return this.gateway.destroy({ loader: this.loader }, this.url());
|
3393
3375
|
}
|
3394
3376
|
};
|
3395
3377
|
var WALStoreImpl = class extends BaseStoreImpl {
|
@@ -3545,11 +3527,11 @@ var WALStoreImpl = class extends BaseStoreImpl {
|
|
3545
3527
|
}
|
3546
3528
|
async load() {
|
3547
3529
|
this.logger.Debug().Msg("loading");
|
3548
|
-
const filepath = await this.gateway.buildUrl(this.
|
3530
|
+
const filepath = await this.gateway.buildUrl({ loader: this.loader }, this.url(), "main");
|
3549
3531
|
if (filepath.isErr()) {
|
3550
3532
|
throw this.logger.Error().Err(filepath.Err()).Url(this.url()).Msg("error building url").AsError();
|
3551
3533
|
}
|
3552
|
-
const bytes = await this.gateway.get(this.
|
3534
|
+
const bytes = await this.gateway.get({ loader: this.loader }, filepath.Ok());
|
3553
3535
|
if (bytes.isErr()) {
|
3554
3536
|
if (isNotFoundError(bytes)) {
|
3555
3537
|
return void 0;
|
@@ -3562,64 +3544,59 @@ var WALStoreImpl = class extends BaseStoreImpl {
|
|
3562
3544
|
return bytes.Ok().payload;
|
3563
3545
|
}
|
3564
3546
|
async save(state) {
|
3565
|
-
const filepath = await this.gateway.buildUrl(this.
|
3547
|
+
const filepath = await this.gateway.buildUrl({ loader: this.loader }, this.url(), "main");
|
3566
3548
|
if (filepath.isErr()) {
|
3567
3549
|
throw this.logger.Error().Err(filepath.Err()).Url(this.url()).Msg("error building url").AsError();
|
3568
3550
|
}
|
3569
|
-
const res = await this.gateway.put(
|
3570
|
-
|
3571
|
-
|
3572
|
-
|
3573
|
-
type: "wal",
|
3574
|
-
payload: state
|
3575
|
-
},
|
3576
|
-
this.loader
|
3577
|
-
);
|
3551
|
+
const res = await this.gateway.put({ loader: this.loader }, filepath.Ok(), {
|
3552
|
+
type: "wal",
|
3553
|
+
payload: state
|
3554
|
+
});
|
3578
3555
|
if (res.isErr()) {
|
3579
3556
|
throw this.logger.Error().Err(res.Err()).Str("filePath", filepath.Ok().toString()).Msg("error saving").AsError();
|
3580
3557
|
}
|
3581
3558
|
}
|
3582
3559
|
async close() {
|
3583
|
-
await this.gateway.close(this.
|
3560
|
+
await this.gateway.close({ loader: this.loader }, this.url());
|
3584
3561
|
this._onClosed.forEach((fn) => fn());
|
3585
3562
|
return import_cement15.Result.Ok(void 0);
|
3586
3563
|
}
|
3587
3564
|
destroy() {
|
3588
3565
|
this.logger.Debug().Msg("destroy");
|
3589
|
-
return this.gateway.destroy(this.
|
3566
|
+
return this.gateway.destroy({ loader: this.loader }, this.url());
|
3590
3567
|
}
|
3591
3568
|
};
|
3592
3569
|
|
3593
3570
|
// src/blockstore/store-factory.ts
|
3594
3571
|
var onceGateway = new import_cement16.KeyedResolvOnce();
|
3595
3572
|
var gatewayInstances = new import_cement16.KeyedResolvOnce();
|
3596
|
-
async function getStartedGateway(
|
3573
|
+
async function getStartedGateway(ctx, url) {
|
3597
3574
|
return onceGateway.get(url.toString()).once(async () => {
|
3598
3575
|
const item = getGatewayFactoryItem(url.protocol);
|
3599
3576
|
if (item) {
|
3600
3577
|
const ret = {
|
3601
3578
|
url,
|
3602
3579
|
...await gatewayInstances.get(url.protocol).once(async () => ({})),
|
3603
|
-
gateway: await item.serdegateway(sthis)
|
3580
|
+
gateway: await item.serdegateway(ctx.loader.sthis)
|
3604
3581
|
};
|
3605
|
-
const res = await ret.gateway.start(
|
3582
|
+
const res = await ret.gateway.start(ctx, url);
|
3606
3583
|
if (res.isErr()) {
|
3607
|
-
return import_cement16.Result.Err(sthis.logger.Error().Result("start", res).Msg("start failed").AsError());
|
3584
|
+
return import_cement16.Result.Err(ctx.loader.sthis.logger.Error().Result("start", res).Msg("start failed").AsError());
|
3608
3585
|
}
|
3609
3586
|
ret.url = res.Ok();
|
3610
3587
|
return import_cement16.Result.Ok(ret);
|
3611
3588
|
}
|
3612
|
-
return import_cement16.Result.Err(sthis.logger.Warn().Url(url).Msg("unsupported protocol").AsError());
|
3589
|
+
return import_cement16.Result.Err(ctx.loader.sthis.logger.Warn().Url(url).Msg("unsupported protocol").AsError());
|
3613
3590
|
});
|
3614
3591
|
}
|
3615
3592
|
async function dataStoreFactory(sfi) {
|
3616
3593
|
const storeUrl = sfi.url.build().setParam("store" /* STORE */, "data").URI();
|
3617
|
-
const rgateway = await getStartedGateway(sfi
|
3594
|
+
const rgateway = await getStartedGateway(sfi, storeUrl);
|
3618
3595
|
if (rgateway.isErr()) {
|
3619
|
-
throw sfi.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3596
|
+
throw sfi.loader.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3620
3597
|
}
|
3621
3598
|
const gateway = rgateway.Ok();
|
3622
|
-
const store = new DataStoreImpl(sfi.sthis, gateway.url, {
|
3599
|
+
const store = new DataStoreImpl(sfi.loader.sthis, gateway.url, {
|
3623
3600
|
gateway: gateway.gateway,
|
3624
3601
|
gatewayInterceptor: sfi.gatewayInterceptor,
|
3625
3602
|
loader: sfi.loader
|
@@ -3628,12 +3605,12 @@ async function dataStoreFactory(sfi) {
|
|
3628
3605
|
}
|
3629
3606
|
async function metaStoreFactory(sfi) {
|
3630
3607
|
const storeUrl = sfi.url.build().setParam("store" /* STORE */, "meta").URI();
|
3631
|
-
const rgateway = await getStartedGateway(sfi
|
3608
|
+
const rgateway = await getStartedGateway(sfi, storeUrl);
|
3632
3609
|
if (rgateway.isErr()) {
|
3633
|
-
throw sfi.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3610
|
+
throw sfi.loader.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3634
3611
|
}
|
3635
3612
|
const gateway = rgateway.Ok();
|
3636
|
-
const store = new MetaStoreImpl(sfi.sthis, gateway.url, {
|
3613
|
+
const store = new MetaStoreImpl(sfi.loader.sthis, gateway.url, {
|
3637
3614
|
gateway: gateway.gateway,
|
3638
3615
|
gatewayInterceptor: sfi.gatewayInterceptor,
|
3639
3616
|
loader: sfi.loader
|
@@ -3642,12 +3619,12 @@ async function metaStoreFactory(sfi) {
|
|
3642
3619
|
}
|
3643
3620
|
async function WALStoreFactory(sfi) {
|
3644
3621
|
const storeUrl = sfi.url.build().setParam("store" /* STORE */, "wal").URI();
|
3645
|
-
const rgateway = await getStartedGateway(sfi
|
3622
|
+
const rgateway = await getStartedGateway(sfi, storeUrl);
|
3646
3623
|
if (rgateway.isErr()) {
|
3647
|
-
throw sfi.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3624
|
+
throw sfi.loader.sthis.logger.Error().Result("err", rgateway).Url(sfi.url).Msg("notfound").AsError();
|
3648
3625
|
}
|
3649
3626
|
const gateway = rgateway.Ok();
|
3650
|
-
const store = new WALStoreImpl(sfi.sthis, gateway.url, {
|
3627
|
+
const store = new WALStoreImpl(sfi.loader.sthis, gateway.url, {
|
3651
3628
|
gateway: gateway.gateway,
|
3652
3629
|
gatewayInterceptor: sfi.gatewayInterceptor,
|
3653
3630
|
loader: sfi.loader
|
@@ -3774,7 +3751,7 @@ var ConnectionBase = class {
|
|
3774
3751
|
this.loader = loader;
|
3775
3752
|
await this.onConnect();
|
3776
3753
|
const metaUrl = this.url.build().defParam("store" /* STORE */, "meta").URI();
|
3777
|
-
const rgateway = await getStartedGateway(loader
|
3754
|
+
const rgateway = await getStartedGateway({ loader }, metaUrl);
|
3778
3755
|
if (rgateway.isErr())
|
3779
3756
|
throw this.logger.Error().Result("err", rgateway).Url(metaUrl).Msg("connectMeta: gateway is required").AsError();
|
3780
3757
|
const dbName = metaUrl.getParam("name" /* NAME */);
|
@@ -3810,7 +3787,7 @@ var ConnectionBase = class {
|
|
3810
3787
|
if (!loader) throw this.logger.Error().Msg("connectStorage: loader is required").AsError();
|
3811
3788
|
this.loader = loader;
|
3812
3789
|
const dataUrl = this.url.build().defParam("store" /* STORE */, "data").URI();
|
3813
|
-
const rgateway = await getStartedGateway(loader
|
3790
|
+
const rgateway = await getStartedGateway({ loader }, dataUrl);
|
3814
3791
|
if (rgateway.isErr())
|
3815
3792
|
throw this.logger.Error().Result("err", rgateway).Url(dataUrl).Msg("connectStorage: gateway is required").AsError();
|
3816
3793
|
const name = dataUrl.getParam("name" /* NAME */);
|
@@ -4680,7 +4657,7 @@ function fireproof(name, opts) {
|
|
4680
4657
|
var runtime_exports = {};
|
4681
4658
|
__export(runtime_exports, {
|
4682
4659
|
FILESTORE_VERSION: () => FILESTORE_VERSION,
|
4683
|
-
|
4660
|
+
INDEXEDDB_VERSION: () => INDEXEDDB_VERSION,
|
4684
4661
|
KeyBag: () => KeyBag,
|
4685
4662
|
defaultKeyBagOpts: () => defaultKeyBagOpts,
|
4686
4663
|
defaultKeyBagUrl: () => defaultKeyBagUrl,
|
@@ -4730,6 +4707,6 @@ __export(file_exports, {
|
|
4730
4707
|
|
4731
4708
|
// src/version.ts
|
4732
4709
|
var PACKAGE_VERSION = Object.keys({
|
4733
|
-
"0.20.0-dev-preview-
|
4710
|
+
"0.20.0-dev-preview-20": "xxxx"
|
4734
4711
|
})[0];
|
4735
4712
|
//# sourceMappingURL=index.cjs.map
|