@fireproof/core 0.20.0-dev-preview-60 → 0.20.0-dev-preview-62
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/cli/main.js +26114 -0
- package/index.cjs +74 -33
- package/index.cjs.map +1 -1
- package/index.d.cts +5 -1
- package/index.d.ts +5 -1
- package/index.js +74 -33
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +4 -1
- package/react/index.cjs +21 -32
- package/react/index.cjs.map +1 -1
- package/react/index.js +21 -32
- package/react/index.js.map +1 -1
- package/react/metafile-cjs.json +1 -1
- package/react/metafile-esm.json +1 -1
- package/tests/blockstore/store.test.ts +9 -4
- package/tests/fireproof/attachable.test.ts +3 -3
- package/tests/react/use-fireproof-db-switch.test.tsx +0 -91
package/index.cjs
CHANGED
@@ -84,7 +84,7 @@ var import_cement = require("@adviser/cement");
|
|
84
84
|
|
85
85
|
// src/types.ts
|
86
86
|
function isFalsy(value) {
|
87
|
-
return value === false
|
87
|
+
return value === false || value === null || value === void 0;
|
88
88
|
}
|
89
89
|
var PARAM = {
|
90
90
|
SUFFIX: "suffix",
|
@@ -112,7 +112,8 @@ var PARAM = {
|
|
112
112
|
CAR_CACHE_SIZE: "carCacheSize",
|
113
113
|
CAR_COMPACT_CACHE_SIZE: "carCompactCacheSize",
|
114
114
|
CAR_META_CACHE_SIZE: "carMetaCacheSize",
|
115
|
-
GENESIS_CID: "baembeiarootfireproofgenesisblockaaaafireproofgenesisblocka"
|
115
|
+
GENESIS_CID: "baembeiarootfireproofgenesisblockaaaafireproofgenesisblocka",
|
116
|
+
LOCAL_NAME: "localName"
|
116
117
|
// FS = "fs",
|
117
118
|
};
|
118
119
|
function throwFalsy(value) {
|
@@ -487,11 +488,11 @@ function storeType2DataMetaWal(store) {
|
|
487
488
|
throw new Error(`unknown store ${store}`);
|
488
489
|
}
|
489
490
|
}
|
490
|
-
function ensureURIDefaults(sthis,
|
491
|
+
function ensureURIDefaults(sthis, names, curi, uri, store, ctx) {
|
491
492
|
ctx = ctx || {};
|
492
|
-
const ret = (curi ? import_cement.URI.from(curi) : uri).build().setParam(PARAM.STORE, store).defParam(PARAM.NAME, name);
|
493
|
-
if (
|
494
|
-
|
493
|
+
const ret = (curi ? import_cement.URI.from(curi) : uri).build().setParam(PARAM.STORE, store).defParam(PARAM.NAME, names.name);
|
494
|
+
if (names.local) {
|
495
|
+
ret.defParam(PARAM.LOCAL_NAME, names.local);
|
495
496
|
}
|
496
497
|
if (ctx.idx) {
|
497
498
|
ret.defParam(PARAM.INDEX, "idx");
|
@@ -1291,6 +1292,13 @@ var import_cement7 = require("@adviser/cement");
|
|
1291
1292
|
var MEMORY_VERSION = "v0.19-memory";
|
1292
1293
|
|
1293
1294
|
// src/runtime/gateways/memory/gateway.ts
|
1295
|
+
function cleanURI(uri) {
|
1296
|
+
return uri.build().cleanParams(
|
1297
|
+
PARAM.VERSION,
|
1298
|
+
// PARAM.STORE,
|
1299
|
+
PARAM.LOCAL_NAME
|
1300
|
+
).URI();
|
1301
|
+
}
|
1294
1302
|
var MemoryGateway = class {
|
1295
1303
|
// readonly logger: Logger;
|
1296
1304
|
constructor(sthis, memorys) {
|
@@ -1308,33 +1316,33 @@ var MemoryGateway = class {
|
|
1308
1316
|
return Promise.resolve(import_cement7.Result.Ok(void 0));
|
1309
1317
|
}
|
1310
1318
|
destroy(baseUrl) {
|
1311
|
-
const keyUrl = baseUrl
|
1319
|
+
const keyUrl = cleanURI(baseUrl);
|
1320
|
+
const match = keyUrl.match(keyUrl);
|
1312
1321
|
for (const key of this.memorys.keys()) {
|
1313
|
-
if (
|
1322
|
+
if (keyUrl.match(key).score >= match.score) {
|
1314
1323
|
this.memorys.delete(key);
|
1315
1324
|
}
|
1316
1325
|
}
|
1317
|
-
this.memorys.clear();
|
1318
1326
|
return Promise.resolve(import_cement7.Result.Ok(void 0));
|
1319
1327
|
}
|
1320
1328
|
async put(url, bytes) {
|
1321
|
-
this.memorys.set(url.toString(), bytes);
|
1329
|
+
this.memorys.set(cleanURI(url).toString(), bytes);
|
1322
1330
|
return import_cement7.Result.Ok(void 0);
|
1323
1331
|
}
|
1324
1332
|
// get could return a NotFoundError if the key is not found
|
1325
1333
|
get(url) {
|
1326
|
-
const x = this.memorys.get(url.toString());
|
1334
|
+
const x = this.memorys.get(cleanURI(url).toString());
|
1327
1335
|
if (!x) {
|
1328
1336
|
return Promise.resolve(import_cement7.Result.Err(new NotFoundError(`not found: ${url.toString()}`)));
|
1329
1337
|
}
|
1330
1338
|
return Promise.resolve(import_cement7.Result.Ok(x));
|
1331
1339
|
}
|
1332
1340
|
delete(url) {
|
1333
|
-
this.memorys.delete(url.toString());
|
1341
|
+
this.memorys.delete(cleanURI(url).toString());
|
1334
1342
|
return Promise.resolve(import_cement7.Result.Ok(void 0));
|
1335
1343
|
}
|
1336
1344
|
async getPlain(url, key) {
|
1337
|
-
const x = this.memorys.get(url.build().setParam(PARAM.KEY, key).toString());
|
1345
|
+
const x = this.memorys.get(cleanURI(url).build().setParam(PARAM.KEY, key).toString());
|
1338
1346
|
if (!x) {
|
1339
1347
|
return import_cement7.Result.Err(new NotFoundError("not found"));
|
1340
1348
|
}
|
@@ -3017,19 +3025,44 @@ var AttachedRemotesImpl = class {
|
|
3017
3025
|
const gws = {
|
3018
3026
|
car: {
|
3019
3027
|
...gwp.car,
|
3020
|
-
url: ensureURIDefaults(
|
3028
|
+
url: ensureURIDefaults(
|
3029
|
+
this.loadable.sthis,
|
3030
|
+
{ name: attached.name, local: this._local?.gatewayUrls.car.url.getParam(PARAM.NAME) },
|
3031
|
+
void 0,
|
3032
|
+
import_cement14.URI.from(gwp.car.url),
|
3033
|
+
"car"
|
3034
|
+
)
|
3021
3035
|
},
|
3022
3036
|
file: {
|
3023
3037
|
...gwp.file,
|
3024
|
-
url: ensureURIDefaults(
|
3038
|
+
url: ensureURIDefaults(
|
3039
|
+
this.loadable.sthis,
|
3040
|
+
{ name: attached.name, local: this._local?.gatewayUrls.file.url.getParam(PARAM.NAME) },
|
3041
|
+
void 0,
|
3042
|
+
import_cement14.URI.from(gwp.file.url),
|
3043
|
+
"file",
|
3044
|
+
{ file: true }
|
3045
|
+
)
|
3025
3046
|
},
|
3026
3047
|
meta: {
|
3027
3048
|
...gwp.meta,
|
3028
|
-
url: ensureURIDefaults(
|
3049
|
+
url: ensureURIDefaults(
|
3050
|
+
this.loadable.sthis,
|
3051
|
+
{ name: attached.name, local: this._local?.gatewayUrls.meta.url.getParam(PARAM.NAME) },
|
3052
|
+
void 0,
|
3053
|
+
import_cement14.URI.from(gwp.meta.url),
|
3054
|
+
"meta"
|
3055
|
+
)
|
3029
3056
|
},
|
3030
3057
|
wal: gwp.wal ? {
|
3031
3058
|
...gwp.wal,
|
3032
|
-
url: ensureURIDefaults(
|
3059
|
+
url: ensureURIDefaults(
|
3060
|
+
this.loadable.sthis,
|
3061
|
+
{ name: attached.name, local: this._local?.gatewayUrls.wal?.url.getParam(PARAM.NAME) },
|
3062
|
+
void 0,
|
3063
|
+
import_cement14.URI.from(gwp.wal.url),
|
3064
|
+
"wal"
|
3065
|
+
)
|
3033
3066
|
} : void 0
|
3034
3067
|
};
|
3035
3068
|
const key = JSON.stringify(
|
@@ -3054,7 +3087,7 @@ var AttachedRemotesImpl = class {
|
|
3054
3087
|
);
|
3055
3088
|
if (result.stores.wal) {
|
3056
3089
|
if (this._local) {
|
3057
|
-
throw this.loadable.sthis.logger.Error().Msg("local store could only set once").AsError();
|
3090
|
+
throw this.loadable.sthis.logger.Error().Any({ urls: result.gatewayUrls }).Msg("local store could only set once").AsError();
|
3058
3091
|
}
|
3059
3092
|
this._local = result;
|
3060
3093
|
}
|
@@ -3121,10 +3154,11 @@ var Loader = class {
|
|
3121
3154
|
if (!at.stores.wal) {
|
3122
3155
|
try {
|
3123
3156
|
const dbMeta = await at.stores.meta.load();
|
3124
|
-
if (
|
3125
|
-
|
3157
|
+
if (Array.isArray(dbMeta)) {
|
3158
|
+
await this.handleDbMetasFromStore(dbMeta, this.attachedStores.activate(at.stores));
|
3159
|
+
} else if (!isFalsy(dbMeta)) {
|
3160
|
+
throw this.logger.Error().Any({ dbMeta }).Msg("missing dbMeta").AsError();
|
3126
3161
|
}
|
3127
|
-
await this.handleDbMetasFromStore(dbMeta, this.attachedStores.activate(at.stores));
|
3128
3162
|
} catch (e) {
|
3129
3163
|
this.logger.Error().Err(e).Msg("error attaching store");
|
3130
3164
|
at.detach();
|
@@ -5253,19 +5287,26 @@ function toStoreURIRuntime(sthis, name, sopts) {
|
|
5253
5287
|
const base = import_cement21.URI.from(sopts.base);
|
5254
5288
|
return {
|
5255
5289
|
idx: {
|
5256
|
-
car: ensureURIDefaults(sthis, name, sopts.idx?.car ?? sopts.data?.car, base, "car", { idx: true }),
|
5257
|
-
file: ensureURIDefaults(
|
5258
|
-
|
5259
|
-
|
5260
|
-
|
5261
|
-
|
5262
|
-
|
5290
|
+
car: ensureURIDefaults(sthis, { name }, sopts.idx?.car ?? sopts.data?.car, base, "car", { idx: true }),
|
5291
|
+
file: ensureURIDefaults(
|
5292
|
+
sthis,
|
5293
|
+
{ name },
|
5294
|
+
sopts.idx?.file ?? sopts.idx?.car ?? sopts.data?.file ?? sopts.data?.car,
|
5295
|
+
base,
|
5296
|
+
"file",
|
5297
|
+
{
|
5298
|
+
file: true,
|
5299
|
+
idx: true
|
5300
|
+
}
|
5301
|
+
),
|
5302
|
+
meta: ensureURIDefaults(sthis, { name }, sopts.idx?.meta ?? sopts.data?.meta, base, "meta", { idx: true }),
|
5303
|
+
wal: ensureURIDefaults(sthis, { name }, sopts.idx?.wal ?? sopts.data?.wal, base, "wal", { idx: true })
|
5263
5304
|
},
|
5264
5305
|
data: {
|
5265
|
-
car: ensureURIDefaults(sthis, name, sopts.data?.car, base, "car"),
|
5266
|
-
file: ensureURIDefaults(sthis, name, sopts.data?.file ?? sopts.data?.car, base, "file", { file: true }),
|
5267
|
-
meta: ensureURIDefaults(sthis, name, sopts.data?.meta, base, "meta"),
|
5268
|
-
wal: ensureURIDefaults(sthis, name, sopts.data?.wal, base, "wal")
|
5306
|
+
car: ensureURIDefaults(sthis, { name }, sopts.data?.car, base, "car"),
|
5307
|
+
file: ensureURIDefaults(sthis, { name }, sopts.data?.file ?? sopts.data?.car, base, "file", { file: true }),
|
5308
|
+
meta: ensureURIDefaults(sthis, { name }, sopts.data?.meta, base, "meta"),
|
5309
|
+
wal: ensureURIDefaults(sthis, { name }, sopts.data?.wal, base, "wal")
|
5269
5310
|
}
|
5270
5311
|
};
|
5271
5312
|
}
|
@@ -7263,6 +7304,6 @@ function buildResDelWAL(msgCtx, req, ctx) {
|
|
7263
7304
|
|
7264
7305
|
// src/version.ts
|
7265
7306
|
var PACKAGE_VERSION = Object.keys({
|
7266
|
-
"0.20.0-dev-preview-
|
7307
|
+
"0.20.0-dev-preview-62": "xxxx"
|
7267
7308
|
})[0];
|
7268
7309
|
//# sourceMappingURL=index.cjs.map
|