@fireproof/core 0.19.112-dev-web → 0.19.112-dev-iife

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.
Files changed (83) hide show
  1. package/{chunk-GZANCVTS.js → chunk-D4E6UX6S.js} +1 -8
  2. package/{chunk-GZANCVTS.js.map → chunk-D4E6UX6S.js.map} +1 -1
  3. package/{web/chunk-S4HRSKEO.js → chunk-OKACCIGZ.js} +15 -29
  4. package/chunk-OKACCIGZ.js.map +1 -0
  5. package/chunk-PZ5AY32C.js +10 -0
  6. package/gateway-3YJXDXD3.js +59 -0
  7. package/gateway-3YJXDXD3.js.map +1 -0
  8. package/{gateway@skip-iife-OZ2V32XH.js → gateway-HUSQCAA7.js} +5 -4
  9. package/gateway-HUSQCAA7.js.map +1 -0
  10. package/index.cjs +73 -285
  11. package/index.cjs.map +1 -1
  12. package/index.d.cts +1 -3
  13. package/index.d.ts +1 -3
  14. package/index.global.js +195 -171
  15. package/index.global.js.map +1 -1
  16. package/index.js +17 -17
  17. package/index.js.map +1 -1
  18. package/{key-bag-file-4TYN2H7F.js → key-bag-file-QCOF7UFH.js} +4 -3
  19. package/{key-bag-file-4TYN2H7F.js.map → key-bag-file-QCOF7UFH.js.map} +1 -1
  20. package/{key-bag-indexdb-JEOAS4WM.js → key-bag-indexdb-VHX3MZ66.js} +4 -3
  21. package/{key-bag-indexdb-JEOAS4WM.js.map → key-bag-indexdb-VHX3MZ66.js.map} +1 -1
  22. package/metafile-cjs.json +1 -1
  23. package/metafile-esm.json +1 -1
  24. package/metafile-iife.json +1 -1
  25. package/node/chunk-4A4RAVNS.js +17 -0
  26. package/node/chunk-4A4RAVNS.js.map +1 -0
  27. package/node/mem-filesystem.cjs +72 -0
  28. package/node/mem-filesystem.cjs.map +1 -0
  29. package/node/mem-filesystem.d.cts +25 -0
  30. package/node/mem-filesystem.d.ts +25 -0
  31. package/{mem-filesystem@skip-iife-CJI7IIKV.js → node/mem-filesystem.js} +3 -4
  32. package/node/mem-filesystem.js.map +1 -0
  33. package/node/metafile-cjs.json +1 -0
  34. package/node/metafile-esm.json +1 -0
  35. package/node/node-filesystem.cjs +86 -0
  36. package/node/node-filesystem.cjs.map +1 -0
  37. package/node/node-filesystem.d.cts +36 -0
  38. package/node/node-filesystem.d.ts +36 -0
  39. package/{node-filesystem@skip-iife-O74VAABQ.js → node/node-filesystem.js} +3 -4
  40. package/node/node-filesystem.js.map +1 -0
  41. package/node/types-DARSfXlb.d.cts +23 -0
  42. package/node/types-DARSfXlb.d.ts +23 -0
  43. package/package.json +1 -1
  44. package/utils-GYG2FMCZ.js +13 -0
  45. package/web/gateway-impl.cjs +319 -0
  46. package/web/gateway-impl.cjs.map +1 -0
  47. package/web/gateway-impl.d.cts +86 -0
  48. package/web/gateway-impl.d.ts +86 -0
  49. package/{gateway@skip-esm-O655UEIP.js → web/gateway-impl.js} +165 -20
  50. package/web/gateway-impl.js.map +1 -0
  51. package/web/metafile-cjs.json +1 -1
  52. package/web/metafile-esm.json +1 -1
  53. package/chunk-LNFBDD6E.js +0 -75
  54. package/chunk-LNFBDD6E.js.map +0 -1
  55. package/chunk-PB4BKL4O.js +0 -7
  56. package/chunk-PB4BKL4O.js.map +0 -1
  57. package/gateway@skip-esm-O655UEIP.js.map +0 -1
  58. package/gateway@skip-iife-OZ2V32XH.js.map +0 -1
  59. package/mem-filesystem@skip-iife-CJI7IIKV.js.map +0 -1
  60. package/node-filesystem@skip-iife-O74VAABQ.js.map +0 -1
  61. package/utils-L7MUZUJX.js +0 -14
  62. package/web/bundle-not-impl-UH74NK5L.js +0 -5
  63. package/web/bundle-not-impl-UH74NK5L.js.map +0 -1
  64. package/web/chunk-2DC5ZIR4.js +0 -7
  65. package/web/chunk-2DC5ZIR4.js.map +0 -1
  66. package/web/chunk-Q5W7UNMP.js +0 -292
  67. package/web/chunk-Q5W7UNMP.js.map +0 -1
  68. package/web/chunk-S4HRSKEO.js.map +0 -1
  69. package/web/gateway@skip-esm-GI5PRACF.js +0 -165
  70. package/web/gateway@skip-esm-GI5PRACF.js.map +0 -1
  71. package/web/index.cjs +0 -4138
  72. package/web/index.cjs.map +0 -1
  73. package/web/index.d.cts +0 -1139
  74. package/web/index.d.ts +0 -1139
  75. package/web/index.js +0 -3478
  76. package/web/index.js.map +0 -1
  77. package/web/key-bag-file-4SJQGORQ.js +0 -54
  78. package/web/key-bag-file-4SJQGORQ.js.map +0 -1
  79. package/web/key-bag-indexdb-GSQOUUVQ.js +0 -50
  80. package/web/key-bag-indexdb-GSQOUUVQ.js.map +0 -1
  81. package/web/utils-EFZJNXH5.js +0 -14
  82. /package/{utils-L7MUZUJX.js.map → chunk-PZ5AY32C.js.map} +0 -0
  83. /package/{web/utils-EFZJNXH5.js.map → utils-GYG2FMCZ.js.map} +0 -0
package/index.d.cts CHANGED
@@ -1037,7 +1037,6 @@ declare function fireproof(name: string, opts?: ConfigOpts): Database;
1037
1037
  declare function getFileSystem(url: URI): Promise<SysFileSystem>;
1038
1038
  declare function getPath(url: URI, sthis: SuperThis): string;
1039
1039
  declare function getFileName(url: URI, sthis: SuperThis): string;
1040
- declare function toArrayBuffer(buffer: Buffer | string): Uint8Array;
1041
1040
 
1042
1041
  declare function encodeFile(blob: BlobLike): Promise<{
1043
1042
  cid: AnyLink;
@@ -1128,9 +1127,8 @@ declare const index_getFileName: typeof getFileName;
1128
1127
  declare const index_getFileSystem: typeof getFileSystem;
1129
1128
  declare const index_getPath: typeof getPath;
1130
1129
  declare const index_runtimeFn: typeof runtimeFn;
1131
- declare const index_toArrayBuffer: typeof toArrayBuffer;
1132
1130
  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, index_toArrayBuffer as toArrayBuffer };
1131
+ 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
1132
  }
1135
1133
 
1136
1134
  declare const PACKAGE_VERSION: string;
package/index.d.ts CHANGED
@@ -1037,7 +1037,6 @@ declare function fireproof(name: string, opts?: ConfigOpts): Database;
1037
1037
  declare function getFileSystem(url: URI): Promise<SysFileSystem>;
1038
1038
  declare function getPath(url: URI, sthis: SuperThis): string;
1039
1039
  declare function getFileName(url: URI, sthis: SuperThis): string;
1040
- declare function toArrayBuffer(buffer: Buffer | string): Uint8Array;
1041
1040
 
1042
1041
  declare function encodeFile(blob: BlobLike): Promise<{
1043
1042
  cid: AnyLink;
@@ -1128,9 +1127,8 @@ declare const index_getFileName: typeof getFileName;
1128
1127
  declare const index_getFileSystem: typeof getFileSystem;
1129
1128
  declare const index_getPath: typeof getPath;
1130
1129
  declare const index_runtimeFn: typeof runtimeFn;
1131
- declare const index_toArrayBuffer: typeof toArrayBuffer;
1132
1130
  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, index_toArrayBuffer as toArrayBuffer };
1131
+ 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
1132
  }
1135
1133
 
1136
1134
  declare const PACKAGE_VERSION: string;
package/index.global.js CHANGED
@@ -12431,33 +12431,28 @@ ${end.comment}` : end.comment;
12431
12431
  __export(utils_exports2, {
12432
12432
  getFileName: () => getFileName,
12433
12433
  getFileSystem: () => getFileSystem,
12434
- getPath: () => getPath,
12435
- toArrayBuffer: () => toArrayBuffer
12434
+ getPath: () => getPath
12436
12435
  });
12437
12436
  async function getFileSystem(url) {
12438
- const name6 = url.getParam("fs");
12437
+ const name6 = url.getParam("fs", "node");
12439
12438
  let fs;
12440
12439
  switch (name6) {
12441
12440
  case "mem":
12442
- {
12441
+ fs = await externalLoaders.get(name6).once(async () => {
12443
12442
  const { MemFileSystem } = await Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1));
12444
- fs = new MemFileSystem();
12445
- }
12443
+ return new MemFileSystem();
12444
+ });
12446
12445
  break;
12447
12446
  // case 'deno': {
12448
12447
  // const { DenoFileSystem } = await import("./deno-filesystem.js");
12449
12448
  // fs = new DenoFileSystem();
12450
12449
  // break;
12451
12450
  // }
12452
- case "node": {
12453
- const { NodeFileSystem } = await Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1));
12454
- fs = new NodeFileSystem();
12455
- break;
12456
- }
12457
- case "sys":
12458
- default: {
12459
- return getFileSystem(url.build().setParam("fs", "node").URI());
12460
- }
12451
+ default:
12452
+ fs = await externalLoaders.get(name6).once(async () => {
12453
+ const { NodeFileSystem } = await Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1));
12454
+ return new NodeFileSystem();
12455
+ });
12461
12456
  }
12462
12457
  return fs.start();
12463
12458
  }
@@ -12485,21 +12480,13 @@ ${end.comment}` : end.comment;
12485
12480
  throw sthis.logger.Error().Url(url).Msg(`unsupported store type`).AsError();
12486
12481
  }
12487
12482
  }
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
- }
12483
+ var externalLoaders;
12499
12484
  var init_utils2 = __esm({
12500
12485
  "src/runtime/gateways/file/utils.ts"() {
12501
12486
  "use strict";
12487
+ init_cement();
12502
12488
  init_utils();
12489
+ externalLoaders = new KeyedResolvOnce();
12503
12490
  }
12504
12491
  });
12505
12492
 
@@ -13084,173 +13071,213 @@ ${end.comment}` : end.comment;
13084
13071
  }
13085
13072
  });
13086
13073
 
13087
- // src/runtime/gateways/indexdb/version.ts
13088
- var INDEXDB_VERSION;
13074
+ // src/runtime/gateways/file/version.ts
13075
+ var FILESTORE_VERSION;
13089
13076
  var init_version = __esm({
13090
- "src/runtime/gateways/indexdb/version.ts"() {
13077
+ "src/runtime/gateways/file/version.ts"() {
13091
13078
  "use strict";
13092
- INDEXDB_VERSION = "v0.19-indexdb";
13079
+ FILESTORE_VERSION = "v0.19-file";
13093
13080
  }
13094
13081
  });
13095
13082
 
13096
- // src/runtime/gateways/indexdb/gateway@skip-esm.ts
13097
- var gateway_skip_esm_exports = {};
13098
- __export(gateway_skip_esm_exports, {
13099
- IndexDBGateway: () => IndexDBGateway,
13100
- IndexDBTestStore: () => IndexDBTestStore,
13101
- getIndexDBName: () => getIndexDBName
13083
+ // src/runtime/gateways/file/gateway.ts
13084
+ var gateway_exports = {};
13085
+ __export(gateway_exports, {
13086
+ FileGateway: () => FileGateway,
13087
+ FileTestStore: () => FileTestStore
13102
13088
  });
13103
- function ensureVersion(url) {
13104
- return url.build().defParam("version", INDEXDB_VERSION).URI();
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"() {
13089
+ var versionFiles, FileGateway, FileTestStore;
13090
+ var init_gateway = __esm({
13091
+ "src/runtime/gateways/file/gateway.ts"() {
13159
13092
  "use strict";
13160
- init_build();
13161
- init_cement();
13162
13093
  init_version();
13094
+ init_cement();
13163
13095
  init_utils();
13164
- onceIndexDB = new KeyedResolvOnce();
13165
- IndexDBGateway = class {
13096
+ init_utils2();
13097
+ versionFiles = new KeyedResolvOnce();
13098
+ FileGateway = class {
13099
+ get fs() {
13100
+ if (!this._fs) throw this.logger.Error().Msg("fs not initialized").AsError();
13101
+ return this._fs;
13102
+ }
13166
13103
  constructor(sthis) {
13167
- this._db = {};
13168
- this.logger = ensureLogger(sthis, "IndexDBGateway");
13169
13104
  this.sthis = sthis;
13105
+ this.logger = sthis.logger;
13170
13106
  }
13171
- async start(baseURL) {
13107
+ async getVersionFromFile(path, logger) {
13108
+ return versionFiles.get(path).once(async () => {
13109
+ await this.fs.mkdir(path, { recursive: true });
13110
+ const vFile = this.sthis.pathOps.join(path, "version");
13111
+ const vFileStat = await this.fs.stat(vFile).catch(() => void 0);
13112
+ if (!vFileStat) {
13113
+ await this.fs.writefile(this.sthis.pathOps.join(path, "version"), FILESTORE_VERSION);
13114
+ return FILESTORE_VERSION;
13115
+ } else if (!vFileStat.isFile()) {
13116
+ throw logger.Error().Str("file", vFile).Msg(`version file is a directory`).AsError();
13117
+ }
13118
+ const v = await this.fs.readfile(vFile);
13119
+ const vStr = this.sthis.txt.decode(v);
13120
+ if (vStr !== FILESTORE_VERSION) {
13121
+ logger.Warn().Str("file", vFile).Str("from", vStr).Str("expected", FILESTORE_VERSION).Msg(`version mismatch`);
13122
+ }
13123
+ return vStr;
13124
+ });
13125
+ }
13126
+ start(baseURL) {
13172
13127
  return exception2Result(async () => {
13173
- this.logger.Debug().Url(baseURL).Msg("starting");
13174
- await this.sthis.start();
13175
- const ic = await connectIdb(baseURL, this.sthis);
13176
- this._db = ic.db;
13177
- this.logger.Debug().Url(ic.url).Msg("started");
13178
- return ic.url;
13128
+ this._fs = await getFileSystem(baseURL);
13129
+ await this.fs.start();
13130
+ const url = baseURL.build();
13131
+ url.defParam("version", FILESTORE_VERSION);
13132
+ const dbUrl = await this.buildUrl(url.URI(), "dummy");
13133
+ const dbdirFile = this.getFilePath(dbUrl.Ok());
13134
+ await this.fs.mkdir(this.sthis.pathOps.dirname(dbdirFile), { recursive: true });
13135
+ const dbroot = this.sthis.pathOps.dirname(dbdirFile);
13136
+ this.logger.Debug().Url(url.URI()).Str("dbroot", dbroot).Msg("start");
13137
+ url.setParam("version", await this.getVersionFromFile(dbroot, this.logger));
13138
+ return url.URI();
13179
13139
  });
13180
13140
  }
13141
+ async buildUrl(baseUrl, key) {
13142
+ return Result.Ok(baseUrl.build().setParam("key", key).URI());
13143
+ }
13181
13144
  async close() {
13182
13145
  return Result.Ok(void 0);
13183
13146
  }
13184
- async destroy(baseUrl) {
13147
+ // abstract buildUrl(baseUrl: URL, key: string): Promise<Result<URL>>;
13148
+ getFilePath(url) {
13149
+ const key = url.getParam("key");
13150
+ if (!key) throw this.logger.Error().Url(url).Msg(`key not found`).AsError();
13151
+ return this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));
13152
+ }
13153
+ async put(url, body) {
13185
13154
  return exception2Result(async () => {
13186
- const type2 = getStore(baseUrl, this.sthis, joinDBName).name;
13187
- const idb = this._db;
13188
- const trans = idb.transaction(type2, "readwrite");
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;
13155
+ const file = await this.getFilePath(url);
13156
+ this.logger.Debug().Str("url", url.toString()).Str("file", file).Msg("put");
13157
+ await this.fs.writefile(file, body);
13198
13158
  });
13199
13159
  }
13200
- buildUrl(baseUrl, key) {
13201
- return Promise.resolve(Result.Ok(baseUrl.build().setParam("key", key).URI()));
13202
- }
13203
13160
  async get(url) {
13204
13161
  return exceptionWrapper(async () => {
13205
- const key = getKey(url, this.logger);
13206
- const store = getStore(url, this.sthis, joinDBName).name;
13207
- this.logger.Debug().Url(url).Str("key", key).Str("store", store).Msg("getting");
13208
- const tx = this._db.transaction([store], "readonly");
13209
- const bytes = await tx.objectStore(store).get(sanitzeKey(key));
13210
- await tx.done;
13211
- if (!bytes) {
13212
- return Result.Err(new NotFoundError2(`missing ${key}`));
13162
+ const file = this.getFilePath(url);
13163
+ try {
13164
+ const res = await this.fs.readfile(file);
13165
+ this.logger.Debug().Url(url.asURL()).Str("file", file).Msg("get");
13166
+ return Result.Ok(new Uint8Array(res));
13167
+ } catch (e) {
13168
+ if (isNotFoundError(e)) {
13169
+ return Result.Err(new NotFoundError2(`file not found: ${file}`));
13170
+ }
13171
+ return Result.Err(e);
13213
13172
  }
13214
- return Result.Ok(bytes);
13215
13173
  });
13216
13174
  }
13217
- async put(url, value) {
13175
+ async delete(url) {
13218
13176
  return exception2Result(async () => {
13219
- const key = getKey(url, this.logger);
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;
13177
+ await this.fs.unlink(this.getFilePath(url));
13225
13178
  });
13226
13179
  }
13227
- async delete(url) {
13228
- return exception2Result(async () => {
13229
- const key = getKey(url, this.logger);
13230
- const store = getStore(url, this.sthis, joinDBName).name;
13231
- this.logger.Debug().Url(url).Str("key", key).Str("store", store).Msg("deleting");
13232
- const tx = this._db.transaction([store], "readwrite");
13233
- await tx.objectStore(store).delete(sanitzeKey(key));
13234
- await tx.done;
13235
- return Result.Ok(void 0);
13180
+ async destroy(baseURL) {
13181
+ const url = await this.buildUrl(baseURL, "x");
13182
+ if (url.isErr()) return url;
13183
+ const filepath = this.sthis.pathOps.dirname(this.getFilePath(url.Ok()));
13184
+ let files = [];
13185
+ try {
13186
+ files = await this.fs.readdir(filepath);
13187
+ } catch (e) {
13188
+ if (!isNotFoundError(e)) {
13189
+ throw this.logger.Error().Err(e).Str("dir", filepath).Msg("destroy:readdir").AsError();
13190
+ }
13191
+ }
13192
+ for (const file of files) {
13193
+ const pathed = this.sthis.pathOps.join(filepath, file);
13194
+ try {
13195
+ await this.fs.unlink(pathed);
13196
+ } catch (e) {
13197
+ if (!isNotFoundError(e)) {
13198
+ throw this.logger.Error().Err(e).Str("file", pathed).Msg("destroy:unlink").AsError();
13199
+ }
13200
+ }
13201
+ }
13202
+ return Result.Ok(void 0);
13203
+ }
13204
+ };
13205
+ FileTestStore = class {
13206
+ constructor(sthis) {
13207
+ this.logger = ensureLogger(sthis, "FileTestStore");
13208
+ this.sthis = sthis;
13209
+ }
13210
+ async get(iurl, key) {
13211
+ const url = iurl.build().setParam("key", key).URI();
13212
+ const dbFile = this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));
13213
+ this.logger.Debug().Url(url).Str("dbFile", dbFile).Msg("get");
13214
+ const buffer2 = await (await getFileSystem(url)).readfile(dbFile);
13215
+ this.logger.Debug().Url(url).Str("dbFile", dbFile).Len(buffer2).Msg("got");
13216
+ return buffer2;
13217
+ }
13218
+ };
13219
+ }
13220
+ });
13221
+
13222
+ // src/runtime/gateways/indexdb/gateway.ts
13223
+ var gateway_exports2 = {};
13224
+ __export(gateway_exports2, {
13225
+ IndexDBGateway: () => IndexDBGateway,
13226
+ IndexDBTestStore: () => IndexDBTestStore
13227
+ });
13228
+ var loadExternal, IndexDBGateway, IndexDBTestStore;
13229
+ var init_gateway2 = __esm({
13230
+ "src/runtime/gateways/indexdb/gateway.ts"() {
13231
+ "use strict";
13232
+ init_cement();
13233
+ loadExternal = new ResolveOnce();
13234
+ IndexDBGateway = class {
13235
+ constructor(sthis) {
13236
+ this.sthis = sthis;
13237
+ }
13238
+ getGateway() {
13239
+ return loadExternal.once(() => {
13240
+ return Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1)).then(({ IndexDBGatewayImpl }) => new IndexDBGatewayImpl(this.sthis));
13236
13241
  });
13237
13242
  }
13243
+ buildUrl(baseUrl, key) {
13244
+ return this.getGateway().then((gw) => gw.buildUrl(baseUrl, key));
13245
+ }
13246
+ start(baseUrl) {
13247
+ return this.getGateway().then((gw) => gw.start(baseUrl));
13248
+ }
13249
+ close(baseUrl) {
13250
+ return this.getGateway().then((gw) => gw.close(baseUrl));
13251
+ }
13252
+ destroy(baseUrl) {
13253
+ return this.getGateway().then((gw) => gw.destroy(baseUrl));
13254
+ }
13255
+ put(url, body) {
13256
+ return this.getGateway().then((gw) => gw.put(url, body));
13257
+ }
13258
+ get(url) {
13259
+ return this.getGateway().then((gw) => gw.get(url));
13260
+ }
13261
+ delete(url) {
13262
+ return this.getGateway().then((gw) => gw.delete(url));
13263
+ }
13264
+ // subscribe?(url: URI, callback: (meta: Uint8Array) => void): Promise<UnsubscribeResult> {
13265
+ // // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
13266
+ // return this.getGateway().then(gw => gw.subscribe!(url, callback));
13267
+ // }
13238
13268
  };
13239
13269
  IndexDBTestStore = class {
13240
13270
  constructor(sthis) {
13271
+ this.loadExternal = new ResolveOnce();
13241
13272
  this.sthis = sthis;
13242
- this.logger = ensureLogger(sthis, "IndexDBTestStore", {});
13243
13273
  }
13244
- async get(url, key) {
13245
- const ic = await connectIdb(url, this.sthis);
13246
- const store = getStore(ic.url, this.sthis, joinDBName).name;
13247
- this.logger.Debug().Str("key", key).Str("store", store).Msg("getting");
13248
- let bytes = await ic.db.get(store, sanitzeKey(key));
13249
- this.logger.Debug().Str("key", key).Str("store", store).Int("len", bytes.length).Msg("got");
13250
- if (typeof bytes === "string") {
13251
- bytes = this.sthis.txt.encode(bytes);
13252
- }
13253
- return bytes;
13274
+ getGateway() {
13275
+ return this.loadExternal.once(() => {
13276
+ return Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1)).then(({ IndexDBTestStore: IndexDBTestStore2 }) => new IndexDBTestStore2(this.sthis));
13277
+ });
13278
+ }
13279
+ get(url, key) {
13280
+ return this.getGateway().then((gw) => gw.get(url, key));
13254
13281
  }
13255
13282
  };
13256
13283
  }
@@ -28370,22 +28397,22 @@ You can use close({ resize: true }) to resize header`);
28370
28397
  registerStoreProtocol({
28371
28398
  protocol: "file:",
28372
28399
  gateway: async (sthis) => {
28373
- const { FileGateway } = await Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1));
28374
- return new FileGateway(sthis);
28400
+ const { FileGateway: FileGateway2 } = await Promise.resolve().then(() => (init_gateway(), gateway_exports));
28401
+ return new FileGateway2(sthis);
28375
28402
  },
28376
28403
  test: async (sthis) => {
28377
- const { FileTestStore } = await Promise.resolve().then(() => __toESM(require_bundle_not_impl(), 1));
28378
- return new FileTestStore(sthis);
28404
+ const { FileTestStore: FileTestStore2 } = await Promise.resolve().then(() => (init_gateway(), gateway_exports));
28405
+ return new FileTestStore2(sthis);
28379
28406
  }
28380
28407
  });
28381
28408
  registerStoreProtocol({
28382
28409
  protocol: "indexdb:",
28383
28410
  gateway: async (sthis) => {
28384
- const { IndexDBGateway: IndexDBGateway2 } = await Promise.resolve().then(() => (init_gateway_skip_esm(), gateway_skip_esm_exports));
28411
+ const { IndexDBGateway: IndexDBGateway2 } = await Promise.resolve().then(() => (init_gateway2(), gateway_exports2));
28385
28412
  return new IndexDBGateway2(sthis);
28386
28413
  },
28387
28414
  test: async (sthis) => {
28388
- const { IndexDBTestStore: IndexDBTestStore2 } = await Promise.resolve().then(() => (init_gateway_skip_esm(), gateway_skip_esm_exports));
28415
+ const { IndexDBTestStore: IndexDBTestStore2 } = await Promise.resolve().then(() => (init_gateway2(), gateway_exports2));
28389
28416
  return new IndexDBTestStore2(sthis);
28390
28417
  }
28391
28418
  });
@@ -30758,8 +30785,7 @@ You can use close({ resize: true }) to resize header`);
30758
30785
  kb: () => key_bag_exports,
30759
30786
  kc: () => keyed_crypto_exports,
30760
30787
  mf: () => wait_pr_multiformats_exports,
30761
- runtimeFn: () => runtimeFn,
30762
- toArrayBuffer: () => toArrayBuffer
30788
+ runtimeFn: () => runtimeFn
30763
30789
  });
30764
30790
  init_utils2();
30765
30791
 
@@ -30775,19 +30801,17 @@ You can use close({ resize: true }) to resize header`);
30775
30801
 
30776
30802
  // src/runtime/index.ts
30777
30803
  init_cement();
30778
-
30779
- // src/runtime/gateways/file/version.ts
30780
- var FILESTORE_VERSION = "v0.19-file";
30781
-
30782
- // src/runtime/index.ts
30783
30804
  init_version();
30784
30805
 
30806
+ // src/runtime/gateways/indexdb/version.ts
30807
+ var INDEXDB_VERSION = "v0.19-indexdb";
30808
+
30785
30809
  // src/index.ts
30786
30810
  init_utils();
30787
30811
 
30788
30812
  // src/version.ts
30789
30813
  var PACKAGE_VERSION = Object.keys({
30790
- "0.19.112-dev-web": "xxxx"
30814
+ "0.19.112-dev-iife": "xxxx"
30791
30815
  })[0];
30792
30816
  return __toCommonJS(src_exports6);
30793
30817
  })();