@fireproof/core 0.19.112-dev-web → 0.19.112-dev-dyn
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/{chunk-GZANCVTS.js → chunk-D4E6UX6S.js} +1 -8
- package/{chunk-GZANCVTS.js.map → chunk-D4E6UX6S.js.map} +1 -1
- package/{web/chunk-S4HRSKEO.js → chunk-PWEDYV5H.js} +26 -30
- package/chunk-PWEDYV5H.js.map +1 -0
- package/chunk-PZ5AY32C.js +10 -0
- package/{gateway@skip-iife-OZ2V32XH.js → gateway-72EUHYEL.js} +5 -4
- package/gateway-72EUHYEL.js.map +1 -0
- package/gateway-SK2ERWD3.js +70 -0
- package/gateway-SK2ERWD3.js.map +1 -0
- package/index.cjs +105 -286
- package/index.cjs.map +1 -1
- package/index.d.cts +2 -3
- package/index.d.ts +2 -3
- package/index.global.js +233 -188
- package/index.global.js.map +1 -1
- package/index.js +17 -17
- package/index.js.map +1 -1
- package/{key-bag-file-4TYN2H7F.js → key-bag-file-VP6Y7N26.js} +4 -3
- package/{key-bag-file-4TYN2H7F.js.map → key-bag-file-VP6Y7N26.js.map} +1 -1
- package/{key-bag-indexdb-JEOAS4WM.js → key-bag-indexdb-N5GQ5GSH.js} +4 -3
- package/{key-bag-indexdb-JEOAS4WM.js.map → key-bag-indexdb-N5GQ5GSH.js.map} +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/metafile-iife.json +1 -1
- package/node/chunk-4A4RAVNS.js +17 -0
- package/node/chunk-4A4RAVNS.js.map +1 -0
- package/node/mem-filesystem.cjs +72 -0
- package/node/mem-filesystem.cjs.map +1 -0
- package/node/mem-filesystem.d.cts +25 -0
- package/node/mem-filesystem.d.ts +25 -0
- package/{mem-filesystem@skip-iife-CJI7IIKV.js → node/mem-filesystem.js} +3 -4
- package/node/mem-filesystem.js.map +1 -0
- package/node/metafile-cjs.json +1 -0
- package/node/metafile-esm.json +1 -0
- package/node/node-filesystem.cjs +86 -0
- package/node/node-filesystem.cjs.map +1 -0
- package/node/node-filesystem.d.cts +36 -0
- package/node/node-filesystem.d.ts +36 -0
- package/{node-filesystem@skip-iife-O74VAABQ.js → node/node-filesystem.js} +3 -4
- package/node/node-filesystem.js.map +1 -0
- package/node/types-DARSfXlb.d.cts +23 -0
- package/node/types-DARSfXlb.d.ts +23 -0
- package/package.json +1 -1
- package/utils-WS4AZWA7.js +13 -0
- package/web/gateway-impl.cjs +319 -0
- package/web/gateway-impl.cjs.map +1 -0
- package/web/gateway-impl.d.cts +86 -0
- package/web/gateway-impl.d.ts +86 -0
- package/{gateway@skip-esm-O655UEIP.js → web/gateway-impl.js} +165 -20
- package/web/gateway-impl.js.map +1 -0
- package/web/metafile-cjs.json +1 -1
- package/web/metafile-esm.json +1 -1
- package/chunk-LNFBDD6E.js +0 -75
- package/chunk-LNFBDD6E.js.map +0 -1
- package/chunk-PB4BKL4O.js +0 -7
- package/chunk-PB4BKL4O.js.map +0 -1
- package/gateway@skip-esm-O655UEIP.js.map +0 -1
- package/gateway@skip-iife-OZ2V32XH.js.map +0 -1
- package/mem-filesystem@skip-iife-CJI7IIKV.js.map +0 -1
- package/node-filesystem@skip-iife-O74VAABQ.js.map +0 -1
- package/utils-L7MUZUJX.js +0 -14
- package/web/bundle-not-impl-UH74NK5L.js +0 -5
- package/web/bundle-not-impl-UH74NK5L.js.map +0 -1
- package/web/chunk-2DC5ZIR4.js +0 -7
- package/web/chunk-2DC5ZIR4.js.map +0 -1
- package/web/chunk-Q5W7UNMP.js +0 -292
- package/web/chunk-Q5W7UNMP.js.map +0 -1
- package/web/chunk-S4HRSKEO.js.map +0 -1
- package/web/gateway@skip-esm-GI5PRACF.js +0 -165
- package/web/gateway@skip-esm-GI5PRACF.js.map +0 -1
- package/web/index.cjs +0 -4138
- package/web/index.cjs.map +0 -1
- package/web/index.d.cts +0 -1139
- package/web/index.d.ts +0 -1139
- package/web/index.js +0 -3478
- package/web/index.js.map +0 -1
- package/web/key-bag-file-4SJQGORQ.js +0 -54
- package/web/key-bag-file-4SJQGORQ.js.map +0 -1
- package/web/key-bag-indexdb-GSQOUUVQ.js +0 -50
- package/web/key-bag-indexdb-GSQOUUVQ.js.map +0 -1
- package/web/utils-EFZJNXH5.js +0 -14
- /package/{utils-L7MUZUJX.js.map → chunk-PZ5AY32C.js.map} +0 -0
- /package/{web/utils-EFZJNXH5.js.map → utils-WS4AZWA7.js.map} +0 -0
package/index.d.cts
CHANGED
@@ -1035,9 +1035,9 @@ declare class Database<DT extends DocTypes = NonNullable<unknown>> implements Co
|
|
1035
1035
|
declare function fireproof(name: string, opts?: ConfigOpts): Database;
|
1036
1036
|
|
1037
1037
|
declare function getFileSystem(url: URI): Promise<SysFileSystem>;
|
1038
|
+
|
1038
1039
|
declare function getPath(url: URI, sthis: SuperThis): string;
|
1039
1040
|
declare function getFileName(url: URI, sthis: SuperThis): string;
|
1040
|
-
declare function toArrayBuffer(buffer: Buffer | string): Uint8Array;
|
1041
1041
|
|
1042
1042
|
declare function encodeFile(blob: BlobLike): Promise<{
|
1043
1043
|
cid: AnyLink;
|
@@ -1128,9 +1128,8 @@ declare const index_getFileName: typeof getFileName;
|
|
1128
1128
|
declare const index_getFileSystem: typeof getFileSystem;
|
1129
1129
|
declare const index_getPath: typeof getPath;
|
1130
1130
|
declare const index_runtimeFn: typeof runtimeFn;
|
1131
|
-
declare const index_toArrayBuffer: typeof toArrayBuffer;
|
1132
1131
|
declare namespace index {
|
1133
|
-
export { index_FILESTORE_VERSION as FILESTORE_VERSION, index_INDEXDB_VERSION as INDEXDB_VERSION, index_files as files, index_getFileName as getFileName, index_getFileSystem as getFileSystem, index_getPath as getPath, keyBag as kb, keyedCrypto as kc, index$1 as mf, index_runtimeFn as runtimeFn
|
1132
|
+
export { index_FILESTORE_VERSION as FILESTORE_VERSION, index_INDEXDB_VERSION as INDEXDB_VERSION, index_files as files, index_getFileName as getFileName, index_getFileSystem as getFileSystem, index_getPath as getPath, keyBag as kb, keyedCrypto as kc, index$1 as mf, index_runtimeFn as runtimeFn };
|
1134
1133
|
}
|
1135
1134
|
|
1136
1135
|
declare const PACKAGE_VERSION: string;
|
package/index.d.ts
CHANGED
@@ -1035,9 +1035,9 @@ declare class Database<DT extends DocTypes = NonNullable<unknown>> implements Co
|
|
1035
1035
|
declare function fireproof(name: string, opts?: ConfigOpts): Database;
|
1036
1036
|
|
1037
1037
|
declare function getFileSystem(url: URI): Promise<SysFileSystem>;
|
1038
|
+
|
1038
1039
|
declare function getPath(url: URI, sthis: SuperThis): string;
|
1039
1040
|
declare function getFileName(url: URI, sthis: SuperThis): string;
|
1040
|
-
declare function toArrayBuffer(buffer: Buffer | string): Uint8Array;
|
1041
1041
|
|
1042
1042
|
declare function encodeFile(blob: BlobLike): Promise<{
|
1043
1043
|
cid: AnyLink;
|
@@ -1128,9 +1128,8 @@ declare const index_getFileName: typeof getFileName;
|
|
1128
1128
|
declare const index_getFileSystem: typeof getFileSystem;
|
1129
1129
|
declare const index_getPath: typeof getPath;
|
1130
1130
|
declare const index_runtimeFn: typeof runtimeFn;
|
1131
|
-
declare const index_toArrayBuffer: typeof toArrayBuffer;
|
1132
1131
|
declare namespace index {
|
1133
|
-
export { index_FILESTORE_VERSION as FILESTORE_VERSION, index_INDEXDB_VERSION as INDEXDB_VERSION, index_files as files, index_getFileName as getFileName, index_getFileSystem as getFileSystem, index_getPath as getPath, keyBag as kb, keyedCrypto as kc, index$1 as mf, index_runtimeFn as runtimeFn
|
1132
|
+
export { index_FILESTORE_VERSION as FILESTORE_VERSION, index_INDEXDB_VERSION as INDEXDB_VERSION, index_files as files, index_getFileName as getFileName, index_getFileSystem as getFileSystem, index_getPath as getPath, keyBag as kb, keyedCrypto as kc, index$1 as mf, index_runtimeFn as runtimeFn };
|
1134
1133
|
}
|
1135
1134
|
|
1136
1135
|
declare const PACKAGE_VERSION: string;
|
package/index.global.js
CHANGED
@@ -12416,51 +12416,54 @@ ${end.comment}` : end.comment;
|
|
12416
12416
|
}
|
12417
12417
|
});
|
12418
12418
|
|
12419
|
-
// src/
|
12420
|
-
var require_bundle_not_impl = __commonJS({
|
12421
|
-
"src/bundle-not-impl.ts"() {
|
12422
|
-
"use strict";
|
12423
|
-
var err = new Error("store-file not implemented");
|
12424
|
-
console.error(err.stack);
|
12425
|
-
throw err;
|
12426
|
-
}
|
12427
|
-
});
|
12428
|
-
|
12429
|
-
// src/runtime/gateways/file/utils.ts
|
12430
|
-
var utils_exports2 = {};
|
12431
|
-
__export(utils_exports2, {
|
12432
|
-
getFileName: () => getFileName,
|
12433
|
-
getFileSystem: () => getFileSystem,
|
12434
|
-
getPath: () => getPath,
|
12435
|
-
toArrayBuffer: () => toArrayBuffer
|
12436
|
-
});
|
12419
|
+
// src/runtime/gateways/file/get-file-system-dynamic.ts
|
12437
12420
|
async function getFileSystem(url) {
|
12438
|
-
const name6 = url.getParam("fs");
|
12421
|
+
const name6 = url.getParam("fs", "node");
|
12439
12422
|
let fs;
|
12440
12423
|
switch (name6) {
|
12441
12424
|
case "mem":
|
12442
|
-
{
|
12443
|
-
const
|
12444
|
-
|
12445
|
-
|
12425
|
+
fs = await externalLoaders.get(name6).once(async () => {
|
12426
|
+
const memjs = "./node/mem-filesystem.js";
|
12427
|
+
const { MemFileSystem } = await import(
|
12428
|
+
/* @vite-ignore */
|
12429
|
+
memjs
|
12430
|
+
);
|
12431
|
+
return new MemFileSystem();
|
12432
|
+
});
|
12446
12433
|
break;
|
12447
12434
|
// case 'deno': {
|
12448
12435
|
// const { DenoFileSystem } = await import("./deno-filesystem.js");
|
12449
12436
|
// fs = new DenoFileSystem();
|
12450
12437
|
// break;
|
12451
12438
|
// }
|
12452
|
-
|
12453
|
-
|
12454
|
-
|
12455
|
-
|
12456
|
-
|
12457
|
-
|
12458
|
-
|
12459
|
-
|
12460
|
-
|
12439
|
+
default:
|
12440
|
+
fs = await externalLoaders.get(name6).once(async () => {
|
12441
|
+
const nodejs = "./node/node-filesystem.js";
|
12442
|
+
const { NodeFileSystem } = await import(
|
12443
|
+
/* @vite-ignore */
|
12444
|
+
nodejs
|
12445
|
+
);
|
12446
|
+
return new NodeFileSystem();
|
12447
|
+
});
|
12461
12448
|
}
|
12462
12449
|
return fs.start();
|
12463
12450
|
}
|
12451
|
+
var externalLoaders;
|
12452
|
+
var init_get_file_system_dynamic = __esm({
|
12453
|
+
"src/runtime/gateways/file/get-file-system-dynamic.ts"() {
|
12454
|
+
"use strict";
|
12455
|
+
init_cement();
|
12456
|
+
externalLoaders = new KeyedResolvOnce();
|
12457
|
+
}
|
12458
|
+
});
|
12459
|
+
|
12460
|
+
// src/runtime/gateways/file/utils.ts
|
12461
|
+
var utils_exports2 = {};
|
12462
|
+
__export(utils_exports2, {
|
12463
|
+
getFileName: () => getFileName,
|
12464
|
+
getFileSystem: () => getFileSystem,
|
12465
|
+
getPath: () => getPath
|
12466
|
+
});
|
12464
12467
|
function getPath(url, sthis) {
|
12465
12468
|
const basePath = url.pathname;
|
12466
12469
|
const name6 = url.getParam("name");
|
@@ -12485,21 +12488,11 @@ ${end.comment}` : end.comment;
|
|
12485
12488
|
throw sthis.logger.Error().Url(url).Msg(`unsupported store type`).AsError();
|
12486
12489
|
}
|
12487
12490
|
}
|
12488
|
-
function toArrayBuffer(buffer2) {
|
12489
|
-
if (typeof buffer2 === "string") {
|
12490
|
-
buffer2 = Buffer.from(buffer2);
|
12491
|
-
}
|
12492
|
-
const ab = new ArrayBuffer(buffer2.length);
|
12493
|
-
const view = new Uint8Array(ab);
|
12494
|
-
for (let i = 0; i < buffer2.length; ++i) {
|
12495
|
-
view[i] = buffer2[i];
|
12496
|
-
}
|
12497
|
-
return view;
|
12498
|
-
}
|
12499
12491
|
var init_utils2 = __esm({
|
12500
12492
|
"src/runtime/gateways/file/utils.ts"() {
|
12501
12493
|
"use strict";
|
12502
12494
|
init_utils();
|
12495
|
+
init_get_file_system_dynamic();
|
12503
12496
|
}
|
12504
12497
|
});
|
12505
12498
|
|
@@ -13084,173 +13077,228 @@ ${end.comment}` : end.comment;
|
|
13084
13077
|
}
|
13085
13078
|
});
|
13086
13079
|
|
13087
|
-
// src/runtime/gateways/
|
13088
|
-
var
|
13080
|
+
// src/runtime/gateways/file/version.ts
|
13081
|
+
var FILESTORE_VERSION;
|
13089
13082
|
var init_version = __esm({
|
13090
|
-
"src/runtime/gateways/
|
13083
|
+
"src/runtime/gateways/file/version.ts"() {
|
13091
13084
|
"use strict";
|
13092
|
-
|
13085
|
+
FILESTORE_VERSION = "v0.19-file";
|
13093
13086
|
}
|
13094
13087
|
});
|
13095
13088
|
|
13096
|
-
// src/runtime/gateways/
|
13097
|
-
var
|
13098
|
-
__export(
|
13099
|
-
|
13100
|
-
|
13101
|
-
getIndexDBName: () => getIndexDBName
|
13089
|
+
// src/runtime/gateways/file/gateway.ts
|
13090
|
+
var gateway_exports = {};
|
13091
|
+
__export(gateway_exports, {
|
13092
|
+
FileGateway: () => FileGateway,
|
13093
|
+
FileTestStore: () => FileTestStore
|
13102
13094
|
});
|
13103
|
-
|
13104
|
-
|
13105
|
-
|
13106
|
-
function sanitzeKey(key) {
|
13107
|
-
if (key.length === 1) {
|
13108
|
-
key = key[0];
|
13109
|
-
}
|
13110
|
-
return key;
|
13111
|
-
}
|
13112
|
-
async function connectIdb(url, sthis) {
|
13113
|
-
const dbName = getIndexDBName(url, sthis);
|
13114
|
-
const once = await onceIndexDB.get(dbName.fullDb).once(async () => {
|
13115
|
-
const db = await openDB(dbName.fullDb, 1, {
|
13116
|
-
upgrade(db2) {
|
13117
|
-
["version", "data", "wal", "meta", "idx.data", "idx.wal", "idx.meta"].map((store) => {
|
13118
|
-
db2.createObjectStore(store, {
|
13119
|
-
autoIncrement: false
|
13120
|
-
});
|
13121
|
-
});
|
13122
|
-
}
|
13123
|
-
});
|
13124
|
-
const found = await db.get("version", "version");
|
13125
|
-
const version = ensureVersion(url).getParam("version");
|
13126
|
-
if (!found) {
|
13127
|
-
await db.put("version", { version }, "version");
|
13128
|
-
} else if (found.version !== version) {
|
13129
|
-
sthis.logger.Warn().Str("url", url.toString()).Str("version", version).Str("found", found.version).Msg("version mismatch");
|
13130
|
-
}
|
13131
|
-
return { db, dbName, version, url };
|
13132
|
-
});
|
13133
|
-
return {
|
13134
|
-
...once,
|
13135
|
-
url: url.build().setParam("version", once.version).URI()
|
13136
|
-
};
|
13137
|
-
}
|
13138
|
-
function joinDBName(...names) {
|
13139
|
-
return names.map((i) => i.replace(/^[^a-zA-Z0-9]+/g, "").replace(/[^a-zA-Z0-9]+/g, "_")).filter((i) => i.length).join(".");
|
13140
|
-
}
|
13141
|
-
function getIndexDBName(iurl, sthis) {
|
13142
|
-
const url = ensureVersion(iurl);
|
13143
|
-
const fullDb = url.pathname.replace(/^\/+/, "").replace(/\?.*$/, "");
|
13144
|
-
const dbName = url.getParam("name");
|
13145
|
-
if (!dbName) throw sthis.logger.Error().Str("url", url.toString()).Msg(`name not found`).AsError();
|
13146
|
-
const result = joinDBName(fullDb, dbName);
|
13147
|
-
const objStore = getStore(url, sthis, joinDBName).name;
|
13148
|
-
const connectionKey = [result, objStore].join(":");
|
13149
|
-
return {
|
13150
|
-
fullDb: result,
|
13151
|
-
objStore,
|
13152
|
-
connectionKey,
|
13153
|
-
dbName
|
13154
|
-
};
|
13155
|
-
}
|
13156
|
-
var onceIndexDB, IndexDBGateway, IndexDBTestStore;
|
13157
|
-
var init_gateway_skip_esm = __esm({
|
13158
|
-
"src/runtime/gateways/indexdb/gateway@skip-esm.ts"() {
|
13095
|
+
var versionFiles, FileGateway, FileTestStore;
|
13096
|
+
var init_gateway = __esm({
|
13097
|
+
"src/runtime/gateways/file/gateway.ts"() {
|
13159
13098
|
"use strict";
|
13160
|
-
init_build();
|
13161
|
-
init_cement();
|
13162
13099
|
init_version();
|
13100
|
+
init_cement();
|
13163
13101
|
init_utils();
|
13164
|
-
|
13165
|
-
|
13102
|
+
init_utils2();
|
13103
|
+
versionFiles = new KeyedResolvOnce();
|
13104
|
+
FileGateway = class {
|
13105
|
+
get fs() {
|
13106
|
+
if (!this._fs) throw this.logger.Error().Msg("fs not initialized").AsError();
|
13107
|
+
return this._fs;
|
13108
|
+
}
|
13166
13109
|
constructor(sthis) {
|
13167
|
-
this._db = {};
|
13168
|
-
this.logger = ensureLogger(sthis, "IndexDBGateway");
|
13169
13110
|
this.sthis = sthis;
|
13111
|
+
this.logger = sthis.logger;
|
13112
|
+
}
|
13113
|
+
async getVersionFromFile(path, logger) {
|
13114
|
+
return versionFiles.get(path).once(async () => {
|
13115
|
+
await this.fs.mkdir(path, { recursive: true });
|
13116
|
+
const vFile = this.sthis.pathOps.join(path, "version");
|
13117
|
+
const vFileStat = await this.fs.stat(vFile).catch(() => void 0);
|
13118
|
+
if (!vFileStat) {
|
13119
|
+
await this.fs.writefile(this.sthis.pathOps.join(path, "version"), FILESTORE_VERSION);
|
13120
|
+
return FILESTORE_VERSION;
|
13121
|
+
} else if (!vFileStat.isFile()) {
|
13122
|
+
throw logger.Error().Str("file", vFile).Msg(`version file is a directory`).AsError();
|
13123
|
+
}
|
13124
|
+
const v = await this.fs.readfile(vFile);
|
13125
|
+
const vStr = this.sthis.txt.decode(v);
|
13126
|
+
if (vStr !== FILESTORE_VERSION) {
|
13127
|
+
logger.Warn().Str("file", vFile).Str("from", vStr).Str("expected", FILESTORE_VERSION).Msg(`version mismatch`);
|
13128
|
+
}
|
13129
|
+
return vStr;
|
13130
|
+
});
|
13170
13131
|
}
|
13171
|
-
|
13132
|
+
start(baseURL) {
|
13172
13133
|
return exception2Result(async () => {
|
13173
|
-
this.
|
13174
|
-
await this.
|
13175
|
-
const
|
13176
|
-
|
13177
|
-
this.
|
13178
|
-
|
13134
|
+
this._fs = await getFileSystem(baseURL);
|
13135
|
+
await this.fs.start();
|
13136
|
+
const url = baseURL.build();
|
13137
|
+
url.defParam("version", FILESTORE_VERSION);
|
13138
|
+
const dbUrl = await this.buildUrl(url.URI(), "dummy");
|
13139
|
+
const dbdirFile = this.getFilePath(dbUrl.Ok());
|
13140
|
+
await this.fs.mkdir(this.sthis.pathOps.dirname(dbdirFile), { recursive: true });
|
13141
|
+
const dbroot = this.sthis.pathOps.dirname(dbdirFile);
|
13142
|
+
this.logger.Debug().Url(url.URI()).Str("dbroot", dbroot).Msg("start");
|
13143
|
+
url.setParam("version", await this.getVersionFromFile(dbroot, this.logger));
|
13144
|
+
return url.URI();
|
13179
13145
|
});
|
13180
13146
|
}
|
13147
|
+
async buildUrl(baseUrl, key) {
|
13148
|
+
return Result.Ok(baseUrl.build().setParam("key", key).URI());
|
13149
|
+
}
|
13181
13150
|
async close() {
|
13182
13151
|
return Result.Ok(void 0);
|
13183
13152
|
}
|
13184
|
-
|
13153
|
+
// abstract buildUrl(baseUrl: URL, key: string): Promise<Result<URL>>;
|
13154
|
+
getFilePath(url) {
|
13155
|
+
const key = url.getParam("key");
|
13156
|
+
if (!key) throw this.logger.Error().Url(url).Msg(`key not found`).AsError();
|
13157
|
+
return this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));
|
13158
|
+
}
|
13159
|
+
async put(url, body) {
|
13185
13160
|
return exception2Result(async () => {
|
13186
|
-
const
|
13187
|
-
|
13188
|
-
|
13189
|
-
const object_store = trans.objectStore(type2);
|
13190
|
-
const toDelete = [];
|
13191
|
-
for (let cursor = await object_store.openCursor(); cursor; cursor = await cursor.continue()) {
|
13192
|
-
toDelete.push(cursor.primaryKey);
|
13193
|
-
}
|
13194
|
-
for (const key of toDelete) {
|
13195
|
-
await trans.db.delete(type2, key);
|
13196
|
-
}
|
13197
|
-
await trans.done;
|
13161
|
+
const file = await this.getFilePath(url);
|
13162
|
+
this.logger.Debug().Str("url", url.toString()).Str("file", file).Msg("put");
|
13163
|
+
await this.fs.writefile(file, body);
|
13198
13164
|
});
|
13199
13165
|
}
|
13200
|
-
buildUrl(baseUrl, key) {
|
13201
|
-
return Promise.resolve(Result.Ok(baseUrl.build().setParam("key", key).URI()));
|
13202
|
-
}
|
13203
13166
|
async get(url) {
|
13204
13167
|
return exceptionWrapper(async () => {
|
13205
|
-
const
|
13206
|
-
|
13207
|
-
|
13208
|
-
|
13209
|
-
|
13210
|
-
|
13211
|
-
|
13212
|
-
|
13168
|
+
const file = this.getFilePath(url);
|
13169
|
+
try {
|
13170
|
+
const res = await this.fs.readfile(file);
|
13171
|
+
this.logger.Debug().Url(url.asURL()).Str("file", file).Msg("get");
|
13172
|
+
return Result.Ok(new Uint8Array(res));
|
13173
|
+
} catch (e) {
|
13174
|
+
if (isNotFoundError(e)) {
|
13175
|
+
return Result.Err(new NotFoundError2(`file not found: ${file}`));
|
13176
|
+
}
|
13177
|
+
return Result.Err(e);
|
13213
13178
|
}
|
13214
|
-
return Result.Ok(bytes);
|
13215
13179
|
});
|
13216
13180
|
}
|
13217
|
-
async
|
13181
|
+
async delete(url) {
|
13218
13182
|
return exception2Result(async () => {
|
13219
|
-
|
13220
|
-
const store = getStore(url, this.sthis, joinDBName).name;
|
13221
|
-
this.logger.Debug().Url(url).Str("key", key).Str("store", store).Msg("putting");
|
13222
|
-
const tx = this._db.transaction([store], "readwrite");
|
13223
|
-
await tx.objectStore(store).put(value, sanitzeKey(key));
|
13224
|
-
await tx.done;
|
13183
|
+
await this.fs.unlink(this.getFilePath(url));
|
13225
13184
|
});
|
13226
13185
|
}
|
13227
|
-
async
|
13228
|
-
|
13229
|
-
|
13230
|
-
|
13231
|
-
|
13232
|
-
|
13233
|
-
await
|
13234
|
-
|
13235
|
-
|
13186
|
+
async destroy(baseURL) {
|
13187
|
+
const url = await this.buildUrl(baseURL, "x");
|
13188
|
+
if (url.isErr()) return url;
|
13189
|
+
const filepath = this.sthis.pathOps.dirname(this.getFilePath(url.Ok()));
|
13190
|
+
let files = [];
|
13191
|
+
try {
|
13192
|
+
files = await this.fs.readdir(filepath);
|
13193
|
+
} catch (e) {
|
13194
|
+
if (!isNotFoundError(e)) {
|
13195
|
+
throw this.logger.Error().Err(e).Str("dir", filepath).Msg("destroy:readdir").AsError();
|
13196
|
+
}
|
13197
|
+
}
|
13198
|
+
for (const file of files) {
|
13199
|
+
const pathed = this.sthis.pathOps.join(filepath, file);
|
13200
|
+
try {
|
13201
|
+
await this.fs.unlink(pathed);
|
13202
|
+
} catch (e) {
|
13203
|
+
if (!isNotFoundError(e)) {
|
13204
|
+
throw this.logger.Error().Err(e).Str("file", pathed).Msg("destroy:unlink").AsError();
|
13205
|
+
}
|
13206
|
+
}
|
13207
|
+
}
|
13208
|
+
return Result.Ok(void 0);
|
13209
|
+
}
|
13210
|
+
};
|
13211
|
+
FileTestStore = class {
|
13212
|
+
constructor(sthis) {
|
13213
|
+
this.logger = ensureLogger(sthis, "FileTestStore");
|
13214
|
+
this.sthis = sthis;
|
13215
|
+
}
|
13216
|
+
async get(iurl, key) {
|
13217
|
+
const url = iurl.build().setParam("key", key).URI();
|
13218
|
+
const dbFile = this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));
|
13219
|
+
this.logger.Debug().Url(url).Str("dbFile", dbFile).Msg("get");
|
13220
|
+
const buffer2 = await (await getFileSystem(url)).readfile(dbFile);
|
13221
|
+
this.logger.Debug().Url(url).Str("dbFile", dbFile).Len(buffer2).Msg("got");
|
13222
|
+
return buffer2;
|
13223
|
+
}
|
13224
|
+
};
|
13225
|
+
}
|
13226
|
+
});
|
13227
|
+
|
13228
|
+
// src/runtime/gateways/indexdb/gateway-import-dynamic.ts
|
13229
|
+
function gatewayImport() {
|
13230
|
+
const gwimpl = "./web/gateway-impl.js";
|
13231
|
+
return import(
|
13232
|
+
/* @vite-ignore */
|
13233
|
+
gwimpl
|
13234
|
+
);
|
13235
|
+
}
|
13236
|
+
var init_gateway_import_dynamic = __esm({
|
13237
|
+
"src/runtime/gateways/indexdb/gateway-import-dynamic.ts"() {
|
13238
|
+
"use strict";
|
13239
|
+
}
|
13240
|
+
});
|
13241
|
+
|
13242
|
+
// src/runtime/gateways/indexdb/gateway.ts
|
13243
|
+
var gateway_exports2 = {};
|
13244
|
+
__export(gateway_exports2, {
|
13245
|
+
IndexDBGateway: () => IndexDBGateway,
|
13246
|
+
IndexDBTestStore: () => IndexDBTestStore
|
13247
|
+
});
|
13248
|
+
var loadExternal, IndexDBGateway, IndexDBTestStore;
|
13249
|
+
var init_gateway2 = __esm({
|
13250
|
+
"src/runtime/gateways/indexdb/gateway.ts"() {
|
13251
|
+
"use strict";
|
13252
|
+
init_cement();
|
13253
|
+
init_gateway_import_dynamic();
|
13254
|
+
loadExternal = new ResolveOnce();
|
13255
|
+
IndexDBGateway = class {
|
13256
|
+
constructor(sthis) {
|
13257
|
+
this.sthis = sthis;
|
13258
|
+
}
|
13259
|
+
getGateway() {
|
13260
|
+
return loadExternal.once(() => {
|
13261
|
+
return gatewayImport().then(({ IndexDBGatewayImpl }) => new IndexDBGatewayImpl(this.sthis));
|
13236
13262
|
});
|
13237
13263
|
}
|
13264
|
+
buildUrl(baseUrl, key) {
|
13265
|
+
return this.getGateway().then((gw) => gw.buildUrl(baseUrl, key));
|
13266
|
+
}
|
13267
|
+
start(baseUrl) {
|
13268
|
+
return this.getGateway().then((gw) => gw.start(baseUrl));
|
13269
|
+
}
|
13270
|
+
close(baseUrl) {
|
13271
|
+
return this.getGateway().then((gw) => gw.close(baseUrl));
|
13272
|
+
}
|
13273
|
+
destroy(baseUrl) {
|
13274
|
+
return this.getGateway().then((gw) => gw.destroy(baseUrl));
|
13275
|
+
}
|
13276
|
+
put(url, body) {
|
13277
|
+
return this.getGateway().then((gw) => gw.put(url, body));
|
13278
|
+
}
|
13279
|
+
get(url) {
|
13280
|
+
return this.getGateway().then((gw) => gw.get(url));
|
13281
|
+
}
|
13282
|
+
delete(url) {
|
13283
|
+
return this.getGateway().then((gw) => gw.delete(url));
|
13284
|
+
}
|
13285
|
+
// subscribe?(url: URI, callback: (meta: Uint8Array) => void): Promise<UnsubscribeResult> {
|
13286
|
+
// // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
13287
|
+
// return this.getGateway().then(gw => gw.subscribe!(url, callback));
|
13288
|
+
// }
|
13238
13289
|
};
|
13239
13290
|
IndexDBTestStore = class {
|
13240
13291
|
constructor(sthis) {
|
13292
|
+
this.loadExternal = new ResolveOnce();
|
13241
13293
|
this.sthis = sthis;
|
13242
|
-
this.logger = ensureLogger(sthis, "IndexDBTestStore", {});
|
13243
13294
|
}
|
13244
|
-
|
13245
|
-
|
13246
|
-
|
13247
|
-
|
13248
|
-
|
13249
|
-
|
13250
|
-
|
13251
|
-
bytes = this.sthis.txt.encode(bytes);
|
13252
|
-
}
|
13253
|
-
return bytes;
|
13295
|
+
getGateway() {
|
13296
|
+
return this.loadExternal.once(() => {
|
13297
|
+
return gatewayImport().then(({ IndexDBTestStore: IndexDBTestStore2 }) => new IndexDBTestStore2(this.sthis));
|
13298
|
+
});
|
13299
|
+
}
|
13300
|
+
get(url, key) {
|
13301
|
+
return this.getGateway().then((gw) => gw.get(url, key));
|
13254
13302
|
}
|
13255
13303
|
};
|
13256
13304
|
}
|
@@ -28370,22 +28418,22 @@ You can use close({ resize: true }) to resize header`);
|
|
28370
28418
|
registerStoreProtocol({
|
28371
28419
|
protocol: "file:",
|
28372
28420
|
gateway: async (sthis) => {
|
28373
|
-
const { FileGateway } = await Promise.resolve().then(() =>
|
28374
|
-
return new
|
28421
|
+
const { FileGateway: FileGateway2 } = await Promise.resolve().then(() => (init_gateway(), gateway_exports));
|
28422
|
+
return new FileGateway2(sthis);
|
28375
28423
|
},
|
28376
28424
|
test: async (sthis) => {
|
28377
|
-
const { FileTestStore } = await Promise.resolve().then(() =>
|
28378
|
-
return new
|
28425
|
+
const { FileTestStore: FileTestStore2 } = await Promise.resolve().then(() => (init_gateway(), gateway_exports));
|
28426
|
+
return new FileTestStore2(sthis);
|
28379
28427
|
}
|
28380
28428
|
});
|
28381
28429
|
registerStoreProtocol({
|
28382
28430
|
protocol: "indexdb:",
|
28383
28431
|
gateway: async (sthis) => {
|
28384
|
-
const { IndexDBGateway: IndexDBGateway2 } = await Promise.resolve().then(() => (
|
28432
|
+
const { IndexDBGateway: IndexDBGateway2 } = await Promise.resolve().then(() => (init_gateway2(), gateway_exports2));
|
28385
28433
|
return new IndexDBGateway2(sthis);
|
28386
28434
|
},
|
28387
28435
|
test: async (sthis) => {
|
28388
|
-
const { IndexDBTestStore: IndexDBTestStore2 } = await Promise.resolve().then(() => (
|
28436
|
+
const { IndexDBTestStore: IndexDBTestStore2 } = await Promise.resolve().then(() => (init_gateway2(), gateway_exports2));
|
28389
28437
|
return new IndexDBTestStore2(sthis);
|
28390
28438
|
}
|
28391
28439
|
});
|
@@ -30758,8 +30806,7 @@ You can use close({ resize: true }) to resize header`);
|
|
30758
30806
|
kb: () => key_bag_exports,
|
30759
30807
|
kc: () => keyed_crypto_exports,
|
30760
30808
|
mf: () => wait_pr_multiformats_exports,
|
30761
|
-
runtimeFn: () => runtimeFn
|
30762
|
-
toArrayBuffer: () => toArrayBuffer
|
30809
|
+
runtimeFn: () => runtimeFn
|
30763
30810
|
});
|
30764
30811
|
init_utils2();
|
30765
30812
|
|
@@ -30775,19 +30822,17 @@ You can use close({ resize: true }) to resize header`);
|
|
30775
30822
|
|
30776
30823
|
// src/runtime/index.ts
|
30777
30824
|
init_cement();
|
30778
|
-
|
30779
|
-
// src/runtime/gateways/file/version.ts
|
30780
|
-
var FILESTORE_VERSION = "v0.19-file";
|
30781
|
-
|
30782
|
-
// src/runtime/index.ts
|
30783
30825
|
init_version();
|
30784
30826
|
|
30827
|
+
// src/runtime/gateways/indexdb/version.ts
|
30828
|
+
var INDEXDB_VERSION = "v0.19-indexdb";
|
30829
|
+
|
30785
30830
|
// src/index.ts
|
30786
30831
|
init_utils();
|
30787
30832
|
|
30788
30833
|
// src/version.ts
|
30789
30834
|
var PACKAGE_VERSION = Object.keys({
|
30790
|
-
"0.19.112-dev-
|
30835
|
+
"0.19.112-dev-dyn": "xxxx"
|
30791
30836
|
})[0];
|
30792
30837
|
return __toCommonJS(src_exports6);
|
30793
30838
|
})();
|