@fireproof/core 0.19.112-dev-web → 0.19.112-dev-dyn
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
})();
|