@fireproof/core 0.20.0-dev-preview-52 → 0.20.0-dev-preview-54

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/index.cjs CHANGED
@@ -74,7 +74,7 @@ __export(index_exports, {
74
74
  module.exports = __toCommonJS(index_exports);
75
75
 
76
76
  // src/ledger.ts
77
- var import_cement20 = require("@adviser/cement");
77
+ var import_cement21 = require("@adviser/cement");
78
78
 
79
79
  // src/utils.ts
80
80
  var import_cement = require("@adviser/cement");
@@ -569,70 +569,34 @@ __export(files_exports, {
569
569
  decodeFile: () => decodeFile,
570
570
  encodeFile: () => encodeFile
571
571
  });
572
- var UnixFS = __toESM(require("@ipld/unixfs"), 1);
573
572
  var raw = __toESM(require("multiformats/codecs/raw"), 1);
574
- var import_fixed = require("@ipld/unixfs/file/chunker/fixed");
575
- var import_balanced = require("@ipld/unixfs/file/layout/balanced");
576
- var import_ipfs_unixfs_exporter = require("ipfs-unixfs-exporter");
577
- var queuingStrategy = UnixFS.withCapacity();
578
- var settings = UnixFS.configure({
579
- fileChunkEncoder: raw,
580
- smallFileEncoder: raw,
581
- chunker: (0, import_fixed.withMaxChunkSize)(1024 * 1024),
582
- fileLayout: (0, import_balanced.withWidth)(1024)
583
- });
584
- async function collect(collectable) {
585
- const chunks = [];
586
- await collectable.pipeTo(
587
- new WritableStream({
588
- write(chunk) {
589
- chunks.push(chunk);
590
- }
591
- })
592
- );
593
- return chunks;
594
- }
573
+ var import_cid = require("multiformats/cid");
574
+ var import_sha2 = require("multiformats/hashes/sha2");
575
+ var import_cement3 = require("@adviser/cement");
595
576
  async function encodeFile(blob) {
596
- const readable = createFileEncoderStream(blob);
597
- const blocks = await collect(readable);
598
- return { cid: blocks.at(-1).cid, blocks };
577
+ const data = await (0, import_cement3.top_uint8)(blob);
578
+ const bytes = raw.encode(data);
579
+ const hash = await import_sha2.sha256.digest(bytes);
580
+ const cid = import_cid.CID.create(1, raw.code, hash);
581
+ const block = { cid, bytes };
582
+ return { cid, blocks: [block] };
599
583
  }
600
- async function decodeFile(blocks, cid, meta) {
601
- const entry = await (0, import_ipfs_unixfs_exporter.exporter)(cid.toString(), blocks, { length: meta.size });
602
- const chunks = [];
603
- for await (const chunk of entry.content()) {
604
- chunks.push(chunk);
605
- }
606
- return new File(chunks, entry.name, { type: meta.type, lastModified: 0 });
584
+ function isHasBlockAGet(obj) {
585
+ return typeof obj.get === "function";
607
586
  }
608
- function createFileEncoderStream(blob) {
609
- const { readable, writable } = new TransformStream({}, queuingStrategy);
610
- const unixfsWriter = UnixFS.createWriter({ writable, settings });
611
- const fileBuilder = new UnixFSFileBuilder("", blob);
612
- void (async () => {
613
- await fileBuilder.finalize(unixfsWriter);
614
- await unixfsWriter.close();
615
- })();
616
- return readable;
587
+ async function decodeFile(blocks, cid, meta) {
588
+ if (!isHasBlockAGet(blocks)) {
589
+ return import_cement3.Result.Err(new Error("Invalid block storage"));
590
+ }
591
+ return (0, import_cement3.exception2Result)(async () => {
592
+ const bytes = await blocks.get(cid);
593
+ const data = raw.decode(bytes);
594
+ return new File([data], "file", {
595
+ type: meta.type,
596
+ lastModified: meta.lastModified || 0
597
+ });
598
+ });
617
599
  }
618
- var UnixFSFileBuilder = class {
619
- #file;
620
- constructor(name, file) {
621
- this.name = name;
622
- this.#file = file;
623
- }
624
- async finalize(writer) {
625
- const unixfsFileWriter = UnixFS.createFileWriter(writer);
626
- await this.#file.stream().pipeTo(
627
- new WritableStream({
628
- async write(chunk) {
629
- await unixfsFileWriter.write(chunk);
630
- }
631
- })
632
- );
633
- return await unixfsFileWriter.close();
634
- }
635
- };
636
600
 
637
601
  // src/runtime/key-bag.ts
638
602
  var key_bag_exports = {};
@@ -645,13 +609,13 @@ __export(key_bag_exports, {
645
609
  registerKeyBagProviderFactory: () => registerKeyBagProviderFactory,
646
610
  toKeyWithFingerPrint: () => toKeyWithFingerPrint
647
611
  });
648
- var import_cement4 = require("@adviser/cement");
612
+ var import_cement5 = require("@adviser/cement");
649
613
  var import_base582 = require("multiformats/bases/base58");
650
614
 
651
615
  // src/runtime/gateways/file/sys-file-system-factory.ts
652
- var import_cement3 = require("@adviser/cement");
616
+ var import_cement4 = require("@adviser/cement");
653
617
  function sysFileSystemFactory(uri) {
654
- const rt = (0, import_cement3.runtimeFn)();
618
+ const rt = (0, import_cement4.runtimeFn)();
655
619
  switch (true) {
656
620
  case rt.isNodeIsh:
657
621
  return import("@fireproof/core/node").then((m) => m.getSysFileSystem(uri));
@@ -771,7 +735,7 @@ async function toKeyWithFingerPrint(keybag, materialStrOrUint8) {
771
735
  }
772
736
  const key = await keybag.subtleKey(material);
773
737
  const fpr = await keybag.rt.crypto.digestSHA256(material);
774
- return import_cement4.Result.Ok({
738
+ return import_cement5.Result.Ok({
775
739
  key,
776
740
  fingerPrint: import_base582.base58btc.encode(new Uint8Array(fpr)),
777
741
  extract: async () => {
@@ -827,13 +791,13 @@ var keysByFingerprint = class _keysByFingerprint {
827
791
  def = !!def;
828
792
  const rKfp = await toKeyWithFingerPrint(this.keybag, materialStrOrUint8);
829
793
  if (rKfp.isErr()) {
830
- return import_cement4.Result.Err(rKfp);
794
+ return import_cement5.Result.Err(rKfp);
831
795
  }
832
796
  const kfp = rKfp.Ok();
833
797
  let found = this.keys[kfp.fingerPrint];
834
798
  if (found) {
835
799
  if (found.default === def) {
836
- return import_cement4.Result.Ok({
800
+ return import_cement5.Result.Ok({
837
801
  modified: false,
838
802
  kfp: found
839
803
  });
@@ -853,7 +817,7 @@ var keysByFingerprint = class _keysByFingerprint {
853
817
  if (keyBagAction) {
854
818
  this.keybag._upsertNamedKey(this);
855
819
  }
856
- return import_cement4.Result.Ok({
820
+ return import_cement5.Result.Ok({
857
821
  modified: keyBagAction && true,
858
822
  kfp: found
859
823
  });
@@ -883,8 +847,8 @@ var keysByFingerprint = class _keysByFingerprint {
883
847
  };
884
848
  var KeyBag = class {
885
849
  constructor(rt) {
886
- this._warnOnce = new import_cement4.ResolveOnce();
887
- this._seq = new import_cement4.ResolveSeq();
850
+ this._warnOnce = new import_cement5.ResolveOnce();
851
+ this._seq = new import_cement5.ResolveSeq();
888
852
  // async getNamedExtractableKey(name: string, failIfNotFound = false): Promise<Result<KeysByFingerprint>> {
889
853
  // const ret = await this.getNamedKey(name, failIfNotFound);
890
854
  // if (ret.isErr()) {
@@ -902,7 +866,7 @@ var KeyBag = class {
902
866
  // },
903
867
  // });
904
868
  // }
905
- this._namedKeyCache = new import_cement4.KeyedResolvOnce();
869
+ this._namedKeyCache = new import_cement5.KeyedResolvOnce();
906
870
  this.rt = rt;
907
871
  this.logger = ensureLogger(rt.sthis, "KeyBag");
908
872
  }
@@ -932,24 +896,24 @@ var KeyBag = class {
932
896
  async ensureKeyFromUrl(url, keyFactory) {
933
897
  const storeKey = url.getParam(PARAM.STORE_KEY);
934
898
  if (storeKey === "insecure") {
935
- return import_cement4.Result.Ok(url);
899
+ return import_cement5.Result.Ok(url);
936
900
  }
937
901
  if (!storeKey) {
938
902
  const keyName = `@${keyFactory()}@`;
939
903
  const ret = await this.getNamedKey(keyName);
940
904
  if (ret.isErr()) {
941
- return import_cement4.Result.Err(ret);
905
+ return import_cement5.Result.Err(ret);
942
906
  }
943
907
  const urb = url.build().setParam(PARAM.STORE_KEY, keyName);
944
- return import_cement4.Result.Ok(urb.URI());
908
+ return import_cement5.Result.Ok(urb.URI());
945
909
  }
946
910
  if (storeKey.startsWith("@") && storeKey.endsWith("@")) {
947
911
  const ret = await this.getNamedKey(storeKey);
948
912
  if (ret.isErr()) {
949
- return import_cement4.Result.Err(ret);
913
+ return import_cement5.Result.Err(ret);
950
914
  }
951
915
  }
952
- return import_cement4.Result.Ok(url);
916
+ return import_cement5.Result.Ok(url);
953
917
  }
954
918
  async toKeysItem(ki) {
955
919
  if (!ki) return void 0;
@@ -1008,7 +972,7 @@ var KeyBag = class {
1008
972
  this._namedKeyCache.unget(ksi.name);
1009
973
  }
1010
974
  await bag.set(await ksi.asKeysItem());
1011
- return import_cement4.Result.Ok(ksi);
975
+ return import_cement5.Result.Ok(ksi);
1012
976
  });
1013
977
  }
1014
978
  async _getNamedKey(name, failIfNotFound, material) {
@@ -1018,7 +982,7 @@ var KeyBag = class {
1018
982
  const named = await this.toKeysItem(await bag.get(name));
1019
983
  if (named) {
1020
984
  this.logger.Debug().Str("id", id).Str("name", name).Any("fprs", Object.keys(named.keys)).Msg("fingerPrint getNamedKey");
1021
- return import_cement4.Result.Ok(await keysByFingerprint.from(this, named));
985
+ return import_cement5.Result.Ok(await keysByFingerprint.from(this, named));
1022
986
  }
1023
987
  if (!named && failIfNotFound) {
1024
988
  this._namedKeyCache.unget(name);
@@ -1039,10 +1003,10 @@ var KeyBag = class {
1039
1003
  }
1040
1004
  const res = await kp.upsert(keyMaterial, true);
1041
1005
  if (res.isErr()) {
1042
- return import_cement4.Result.Err(res);
1006
+ return import_cement5.Result.Err(res);
1043
1007
  }
1044
1008
  this.logger.Debug().Str("id", id).Str("name", name).Str("fpr", res.Ok().kfp.fingerPrint).Msg("createKey getNamedKey-post");
1045
- return import_cement4.Result.Ok(kp);
1009
+ return import_cement5.Result.Ok(kp);
1046
1010
  });
1047
1011
  }
1048
1012
  async getNamedKey(name, failIfNotFound = false, material) {
@@ -1084,15 +1048,15 @@ function registerKeyBagProviderFactory(item) {
1084
1048
  function defaultKeyBagUrl(sthis) {
1085
1049
  let bagFnameOrUrl = sthis.env.get("FP_KEYBAG_URL");
1086
1050
  let url;
1087
- if ((0, import_cement4.runtimeFn)().isBrowser) {
1088
- url = import_cement4.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
1051
+ if ((0, import_cement5.runtimeFn)().isBrowser) {
1052
+ url = import_cement5.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
1089
1053
  } else {
1090
1054
  if (!bagFnameOrUrl) {
1091
1055
  const home = sthis.env.get("HOME");
1092
1056
  bagFnameOrUrl = `${home}/.fireproof/keybag`;
1093
- url = import_cement4.URI.from(`file://${bagFnameOrUrl}`);
1057
+ url = import_cement5.URI.from(`file://${bagFnameOrUrl}`);
1094
1058
  } else {
1095
- url = import_cement4.URI.from(bagFnameOrUrl);
1059
+ url = import_cement5.URI.from(bagFnameOrUrl);
1096
1060
  }
1097
1061
  }
1098
1062
  const logger = ensureLogger(sthis, "defaultKeyBagUrl");
@@ -1107,19 +1071,19 @@ function defaultKeyBagOpts(sthis, kbo) {
1107
1071
  const logger = ensureLogger(sthis, "KeyBag");
1108
1072
  let url;
1109
1073
  if (kbo.url) {
1110
- url = import_cement4.URI.from(kbo.url);
1074
+ url = import_cement5.URI.from(kbo.url);
1111
1075
  logger.Debug().Url(url).Msg("from opts");
1112
1076
  } else {
1113
1077
  let bagFnameOrUrl = sthis.env.get("FP_KEYBAG_URL");
1114
- if ((0, import_cement4.runtimeFn)().isBrowser) {
1115
- url = import_cement4.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
1078
+ if ((0, import_cement5.runtimeFn)().isBrowser) {
1079
+ url = import_cement5.URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
1116
1080
  } else {
1117
1081
  if (!bagFnameOrUrl) {
1118
1082
  const home = sthis.env.get("HOME");
1119
1083
  bagFnameOrUrl = `${home}/.fireproof/keybag`;
1120
- url = import_cement4.URI.from(`file://${bagFnameOrUrl}`);
1084
+ url = import_cement5.URI.from(`file://${bagFnameOrUrl}`);
1121
1085
  } else {
1122
- url = import_cement4.URI.from(bagFnameOrUrl);
1086
+ url = import_cement5.URI.from(bagFnameOrUrl);
1123
1087
  }
1124
1088
  }
1125
1089
  logger.Debug().Url(url).Msg("from env");
@@ -1133,7 +1097,7 @@ function defaultKeyBagOpts(sthis, kbo) {
1133
1097
  }
1134
1098
  return {
1135
1099
  url,
1136
- crypto: kbo.crypto || (0, import_cement4.toCryptoRuntime)({}),
1100
+ crypto: kbo.crypto || (0, import_cement5.toCryptoRuntime)({}),
1137
1101
  sthis,
1138
1102
  logger,
1139
1103
  keyLength: kbo.keyLength || 16,
@@ -1143,7 +1107,7 @@ function defaultKeyBagOpts(sthis, kbo) {
1143
1107
  }
1144
1108
  };
1145
1109
  }
1146
- var _keyBags = new import_cement4.KeyedResolvOnce();
1110
+ var _keyBags = new import_cement5.KeyedResolvOnce();
1147
1111
  async function getKeyBag(sthis, kbo = {}) {
1148
1112
  await sthis.start();
1149
1113
  const rt = defaultKeyBagOpts(sthis, kbo);
@@ -1151,7 +1115,7 @@ async function getKeyBag(sthis, kbo = {}) {
1151
1115
  }
1152
1116
 
1153
1117
  // src/blockstore/register-store-protocol.ts
1154
- var import_cement10 = require("@adviser/cement");
1118
+ var import_cement11 = require("@adviser/cement");
1155
1119
 
1156
1120
  // src/runtime/gateways/file/version.ts
1157
1121
  var FILESTORE_VERSION = "v0.19-file";
@@ -1160,10 +1124,9 @@ var FILESTORE_VERSION = "v0.19-file";
1160
1124
  var INDEXEDDB_VERSION = "v0.19-indexeddb";
1161
1125
 
1162
1126
  // src/runtime/gateways/file/gateway-impl.ts
1163
- var import_cement5 = require("@adviser/cement");
1127
+ var import_cement6 = require("@adviser/cement");
1164
1128
 
1165
1129
  // src/runtime/gateways/file/utils.ts
1166
- var import_core = require("@fireproof/core");
1167
1130
  function getPath(url, sthis) {
1168
1131
  const basePath = url.pathname;
1169
1132
  const name = url.getParam("name");
@@ -1175,7 +1138,7 @@ function getPath(url, sthis) {
1175
1138
  function getFileName(url, sthis) {
1176
1139
  const key = url.getParam("key");
1177
1140
  if (!key) throw sthis.logger.Error().Url(url).Msg(`key not found`).AsError();
1178
- const res = (0, import_core.getStore)(url, sthis, (...a) => a.join("-"));
1141
+ const res = getStore(url, sthis, (...a) => a.join("-"));
1179
1142
  switch (res.fromUrl) {
1180
1143
  case "file":
1181
1144
  return sthis.pathOps.join(res.name, key);
@@ -1190,7 +1153,7 @@ function getFileName(url, sthis) {
1190
1153
  }
1191
1154
 
1192
1155
  // src/runtime/gateways/file/gateway-impl.ts
1193
- var versionFiles = new import_cement5.KeyedResolvOnce();
1156
+ var versionFiles = new import_cement6.KeyedResolvOnce();
1194
1157
  var FileGateway = class {
1195
1158
  constructor(sthis, fs) {
1196
1159
  this.fs = fs;
@@ -1215,7 +1178,7 @@ var FileGateway = class {
1215
1178
  });
1216
1179
  }
1217
1180
  start(baseURL, sthis) {
1218
- return (0, import_cement5.exception2Result)(async () => {
1181
+ return (0, import_cement6.exception2Result)(async () => {
1219
1182
  await this.fs.start();
1220
1183
  const url = baseURL.build();
1221
1184
  url.defParam(PARAM.VERSION, FILESTORE_VERSION);
@@ -1229,10 +1192,10 @@ var FileGateway = class {
1229
1192
  });
1230
1193
  }
1231
1194
  async buildUrl(baseUrl, key) {
1232
- return import_cement5.Result.Ok(baseUrl.build().setParam(PARAM.KEY, key).URI());
1195
+ return import_cement6.Result.Ok(baseUrl.build().setParam(PARAM.KEY, key).URI());
1233
1196
  }
1234
1197
  async close() {
1235
- return import_cement5.Result.Ok(void 0);
1198
+ return import_cement6.Result.Ok(void 0);
1236
1199
  }
1237
1200
  getFilePath(url, sthis) {
1238
1201
  const key = url.getParam(PARAM.KEY);
@@ -1240,7 +1203,7 @@ var FileGateway = class {
1240
1203
  return sthis.pathOps.join(getPath(url, sthis), getFileName(url, sthis));
1241
1204
  }
1242
1205
  async put(url, bytes, sthis) {
1243
- return (0, import_cement5.exception2Result)(async () => {
1206
+ return (0, import_cement6.exception2Result)(async () => {
1244
1207
  const file = await this.getFilePath(url, sthis);
1245
1208
  sthis.logger.Debug().Str("url", url.toString()).Str("file", file).Msg("put");
1246
1209
  await this.fs.writefile(file, bytes);
@@ -1252,17 +1215,17 @@ var FileGateway = class {
1252
1215
  try {
1253
1216
  sthis.logger.Debug().Url(url).Str("file", file).Msg("get");
1254
1217
  const res = await this.fs.readfile(file);
1255
- return import_cement5.Result.Ok(res);
1218
+ return import_cement6.Result.Ok(res);
1256
1219
  } catch (e) {
1257
1220
  if (isNotFoundError(e)) {
1258
- return import_cement5.Result.Err(new NotFoundError(`file not found: ${file}`));
1221
+ return import_cement6.Result.Err(new NotFoundError(`file not found: ${file}`));
1259
1222
  }
1260
- return import_cement5.Result.Err(e);
1223
+ return import_cement6.Result.Err(e);
1261
1224
  }
1262
1225
  });
1263
1226
  }
1264
1227
  async delete(url, sthis) {
1265
- return (0, import_cement5.exception2Result)(async () => {
1228
+ return (0, import_cement6.exception2Result)(async () => {
1266
1229
  await this.fs.unlink(this.getFilePath(url, sthis));
1267
1230
  });
1268
1231
  }
@@ -1288,7 +1251,7 @@ var FileGateway = class {
1288
1251
  }
1289
1252
  }
1290
1253
  }
1291
- return import_cement5.Result.Ok(void 0);
1254
+ return import_cement6.Result.Ok(void 0);
1292
1255
  }
1293
1256
  async getPlain(iurl, key, sthis) {
1294
1257
  const url = iurl.build().setParam(PARAM.KEY, key).URI();
@@ -1296,7 +1259,7 @@ var FileGateway = class {
1296
1259
  sthis.logger.Debug().Url(url).Str("dbFile", dbFile).Msg("get");
1297
1260
  const buffer = await this.fs.readfile(dbFile);
1298
1261
  sthis.logger.Debug().Url(url).Str("dbFile", dbFile).Len(buffer).Msg("got");
1299
- return import_cement5.Result.Ok(buffer);
1262
+ return import_cement6.Result.Ok(buffer);
1300
1263
  }
1301
1264
  };
1302
1265
 
@@ -1305,7 +1268,7 @@ var gateway_exports = {};
1305
1268
  __export(gateway_exports, {
1306
1269
  MemoryGateway: () => MemoryGateway
1307
1270
  });
1308
- var import_cement6 = require("@adviser/cement");
1271
+ var import_cement7 = require("@adviser/cement");
1309
1272
 
1310
1273
  // src/runtime/gateways/memory/version.ts
1311
1274
  var MEMORY_VERSION = "v0.19-memory";
@@ -1318,14 +1281,14 @@ var MemoryGateway = class {
1318
1281
  this.sthis = sthis;
1319
1282
  }
1320
1283
  buildUrl(baseUrl, key) {
1321
- return Promise.resolve(import_cement6.Result.Ok(baseUrl.build().setParam(PARAM.KEY, key).URI()));
1284
+ return Promise.resolve(import_cement7.Result.Ok(baseUrl.build().setParam(PARAM.KEY, key).URI()));
1322
1285
  }
1323
1286
  start(baseUrl) {
1324
- return Promise.resolve(import_cement6.Result.Ok(baseUrl.build().setParam(PARAM.VERSION, MEMORY_VERSION).URI()));
1287
+ return Promise.resolve(import_cement7.Result.Ok(baseUrl.build().setParam(PARAM.VERSION, MEMORY_VERSION).URI()));
1325
1288
  }
1326
1289
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1327
1290
  close(baseUrl) {
1328
- return Promise.resolve(import_cement6.Result.Ok(void 0));
1291
+ return Promise.resolve(import_cement7.Result.Ok(void 0));
1329
1292
  }
1330
1293
  destroy(baseUrl) {
1331
1294
  const keyUrl = baseUrl.toString();
@@ -1335,38 +1298,38 @@ var MemoryGateway = class {
1335
1298
  }
1336
1299
  }
1337
1300
  this.memorys.clear();
1338
- return Promise.resolve(import_cement6.Result.Ok(void 0));
1301
+ return Promise.resolve(import_cement7.Result.Ok(void 0));
1339
1302
  }
1340
1303
  async put(url, bytes) {
1341
1304
  this.memorys.set(url.toString(), bytes);
1342
- return import_cement6.Result.Ok(void 0);
1305
+ return import_cement7.Result.Ok(void 0);
1343
1306
  }
1344
1307
  // get could return a NotFoundError if the key is not found
1345
1308
  get(url) {
1346
1309
  const x = this.memorys.get(url.toString());
1347
1310
  if (!x) {
1348
- return Promise.resolve(import_cement6.Result.Err(new NotFoundError(`not found: ${url.toString()}`)));
1311
+ return Promise.resolve(import_cement7.Result.Err(new NotFoundError(`not found: ${url.toString()}`)));
1349
1312
  }
1350
- return Promise.resolve(import_cement6.Result.Ok(x));
1313
+ return Promise.resolve(import_cement7.Result.Ok(x));
1351
1314
  }
1352
1315
  delete(url) {
1353
1316
  this.memorys.delete(url.toString());
1354
- return Promise.resolve(import_cement6.Result.Ok(void 0));
1317
+ return Promise.resolve(import_cement7.Result.Ok(void 0));
1355
1318
  }
1356
1319
  async getPlain(url, key) {
1357
1320
  const x = this.memorys.get(url.build().setParam(PARAM.KEY, key).toString());
1358
1321
  if (!x) {
1359
- return import_cement6.Result.Err(new NotFoundError("not found"));
1322
+ return import_cement7.Result.Err(new NotFoundError("not found"));
1360
1323
  }
1361
- return import_cement6.Result.Ok(x);
1324
+ return import_cement7.Result.Ok(x);
1362
1325
  }
1363
1326
  };
1364
1327
 
1365
1328
  // src/runtime/gateways/def-serde-gateway.ts
1366
- var import_cement9 = require("@adviser/cement");
1329
+ var import_cement10 = require("@adviser/cement");
1367
1330
 
1368
1331
  // src/blockstore/fp-envelope.ts
1369
- var import_cement7 = require("@adviser/cement");
1332
+ var import_cement8 = require("@adviser/cement");
1370
1333
  var FPEnvelopeTypes = {
1371
1334
  CAR: "car",
1372
1335
  FILE: "file",
@@ -1374,14 +1337,14 @@ var FPEnvelopeTypes = {
1374
1337
  WAL: "wal"
1375
1338
  };
1376
1339
  function Car2FPMsg(fpcar) {
1377
- return import_cement7.Result.Ok({ type: FPEnvelopeTypes.CAR, payload: fpcar });
1340
+ return import_cement8.Result.Ok({ type: FPEnvelopeTypes.CAR, payload: fpcar });
1378
1341
  }
1379
1342
  function File2FPMsg(fpfile) {
1380
- return import_cement7.Result.Ok({ type: FPEnvelopeTypes.FILE, payload: fpfile });
1343
+ return import_cement8.Result.Ok({ type: FPEnvelopeTypes.FILE, payload: fpfile });
1381
1344
  }
1382
1345
 
1383
1346
  // src/runtime/gateways/fp-envelope-serialize.ts
1384
- var import_cement8 = require("@adviser/cement");
1347
+ var import_cement9 = require("@adviser/cement");
1385
1348
  var import_clock = require("@fireproof/vendor/@web3-storage/pail/clock");
1386
1349
  var import_base64 = require("multiformats/bases/base64");
1387
1350
  var import_multiformats = require("multiformats");
@@ -1420,10 +1383,10 @@ function WALState2Serialized(sthis, wal) {
1420
1383
  return serializedWAL;
1421
1384
  }
1422
1385
  var defaultEncoder = {
1423
- car: async (sthis, payload) => import_cement8.Result.Ok(payload),
1424
- file: async (sthis, payload) => import_cement8.Result.Ok(payload),
1425
- meta: async (sthis, payload) => import_cement8.Result.Ok(sthis.txt.encode(JSON.stringify(payload))),
1426
- wal: async (sthis, payload) => import_cement8.Result.Ok(sthis.txt.encode(JSON.stringify(payload)))
1386
+ car: async (sthis, payload) => import_cement9.Result.Ok(payload),
1387
+ file: async (sthis, payload) => import_cement9.Result.Ok(payload),
1388
+ meta: async (sthis, payload) => import_cement9.Result.Ok(sthis.txt.encode(JSON.stringify(payload))),
1389
+ wal: async (sthis, payload) => import_cement9.Result.Ok(sthis.txt.encode(JSON.stringify(payload)))
1427
1390
  };
1428
1391
  async function fpSerialize(sthis, env, pencoder) {
1429
1392
  const encoder = {
@@ -1445,13 +1408,13 @@ async function fpSerialize(sthis, env, pencoder) {
1445
1408
  }
1446
1409
  async function decode2DbMetaEvents(sthis, rserializedMeta) {
1447
1410
  if (rserializedMeta.isErr()) {
1448
- return import_cement8.Result.Err(rserializedMeta.Err());
1411
+ return import_cement9.Result.Err(rserializedMeta.Err());
1449
1412
  }
1450
1413
  const serializedMeta = rserializedMeta.unwrap();
1451
1414
  if (!Array.isArray(serializedMeta)) {
1452
1415
  return sthis.logger.Debug().Any("metaEntries", serializedMeta).Msg("No data in MetaEntries").ResultError();
1453
1416
  }
1454
- return import_cement8.Result.Ok(
1417
+ return import_cement9.Result.Ok(
1455
1418
  await Promise.all(
1456
1419
  serializedMeta.map(async (metaEntry) => {
1457
1420
  const eventBlock = await (0, import_clock.decodeEventBlock)(import_base64.base64pad.decode(metaEntry.data));
@@ -1473,10 +1436,10 @@ function toCid(sthis, link) {
1473
1436
  }
1474
1437
  async function decode2WalState(sthis, rserializedWAL) {
1475
1438
  if (rserializedWAL.isErr()) {
1476
- return import_cement8.Result.Err(rserializedWAL.Err());
1439
+ return import_cement9.Result.Err(rserializedWAL.Err());
1477
1440
  }
1478
1441
  const serializedWAL = rserializedWAL.unwrap();
1479
- return import_cement8.Result.Ok({
1442
+ return import_cement9.Result.Ok({
1480
1443
  fileOperations: (serializedWAL.fileOperations || []).map((fop) => ({
1481
1444
  cid: toCid(sthis, fop.cid),
1482
1445
  public: !!fop.public
@@ -1490,16 +1453,16 @@ async function decode2WalState(sthis, rserializedWAL) {
1490
1453
  });
1491
1454
  }
1492
1455
  var defaultDecoder = {
1493
- car: async (sthis, payload) => import_cement8.Result.Ok(payload),
1494
- file: async (sthis, payload) => import_cement8.Result.Ok(payload),
1495
- meta: async (sthis, payload) => (0, import_cement8.exception2Result)(() => JSON.parse(sthis.txt.decode(payload))),
1496
- wal: async (sthis, payload) => (0, import_cement8.exception2Result)(() => JSON.parse(sthis.txt.decode(payload)))
1456
+ car: async (sthis, payload) => import_cement9.Result.Ok(payload),
1457
+ file: async (sthis, payload) => import_cement9.Result.Ok(payload),
1458
+ meta: async (sthis, payload) => (0, import_cement9.exception2Result)(() => JSON.parse(sthis.txt.decode(payload))),
1459
+ wal: async (sthis, payload) => (0, import_cement9.exception2Result)(() => JSON.parse(sthis.txt.decode(payload)))
1497
1460
  };
1498
1461
  function makeFPEnvelope(type, payload) {
1499
1462
  if (payload.isErr()) {
1500
- return import_cement8.Result.Err(payload.Err());
1463
+ return import_cement9.Result.Err(payload.Err());
1501
1464
  }
1502
- return import_cement8.Result.Ok({
1465
+ return import_cement9.Result.Ok({
1503
1466
  type,
1504
1467
  payload: payload.unwrap()
1505
1468
  });
@@ -1507,7 +1470,7 @@ function makeFPEnvelope(type, payload) {
1507
1470
  async function fpDeserialize(sthis, url, intoRaw, pdecoder) {
1508
1471
  const rraw = await coercePromiseIntoUint8(intoRaw);
1509
1472
  if (rraw.isErr()) {
1510
- return import_cement8.Result.Err(rraw.Err());
1473
+ return import_cement9.Result.Err(rraw.Err());
1511
1474
  }
1512
1475
  const raw2 = rraw.unwrap();
1513
1476
  const decoder = {
@@ -1558,12 +1521,12 @@ var DefSerdeGateway = class {
1558
1521
  }
1559
1522
  async get({ loader: { sthis }, decoder }, url) {
1560
1523
  const res = await this.gw.get(url, sthis);
1561
- if (res.isErr()) return import_cement9.Result.Err(res.Err());
1524
+ if (res.isErr()) return import_cement10.Result.Err(res.Err());
1562
1525
  return fpDeserialize(sthis, url, res, decoder);
1563
1526
  }
1564
1527
  async subscribe({ loader: { sthis }, decoder }, url, callback) {
1565
1528
  function rawCallback(raw2) {
1566
- return fpDeserialize(sthis, url, import_cement9.Result.Ok(raw2), decoder).then((res) => {
1529
+ return fpDeserialize(sthis, url, import_cement10.Result.Ok(raw2), decoder).then((res) => {
1567
1530
  if (res.isErr()) {
1568
1531
  sthis.logger.Error().Err(res).Msg("Failed to deserialize");
1569
1532
  return;
@@ -1573,12 +1536,12 @@ var DefSerdeGateway = class {
1573
1536
  }
1574
1537
  if (!this.gw.subscribe) {
1575
1538
  if (!url.hasParam(PARAM.SELF_REFLECT)) {
1576
- return import_cement9.Result.Ok(() => {
1539
+ return import_cement10.Result.Ok(() => {
1577
1540
  });
1578
1541
  }
1579
1542
  const urlWithoutKey = url.build().delParam(PARAM.KEY).delParam(PARAM.SELF_REFLECT).toString();
1580
1543
  this.subscribeFn.set(urlWithoutKey, rawCallback);
1581
- return import_cement9.Result.Ok(() => {
1544
+ return import_cement10.Result.Ok(() => {
1582
1545
  this.subscribeFn.delete(urlWithoutKey);
1583
1546
  });
1584
1547
  }
@@ -1655,10 +1618,10 @@ function defaultGatewayFactoryItem() {
1655
1618
  return found;
1656
1619
  }
1657
1620
  function defaultURI(sthis) {
1658
- const rt = (0, import_cement10.runtimeFn)();
1659
- return import_cement10.BuildURI.from("file://").pathname(`${sthis.env.get("HOME")}/.fireproof/${FILESTORE_VERSION.replace(/-.*$/, "")}`).setParam(PARAM.VERSION, FILESTORE_VERSION).setParam(PARAM.URL_GEN, "default").setParam(PARAM.RUNTIME, rt.isNodeIsh ? "node" : rt.isDeno ? "deno" : "unknown").URI();
1621
+ const rt = (0, import_cement11.runtimeFn)();
1622
+ return import_cement11.BuildURI.from("file://").pathname(`${sthis.env.get("HOME")}/.fireproof/${FILESTORE_VERSION.replace(/-.*$/, "")}`).setParam(PARAM.VERSION, FILESTORE_VERSION).setParam(PARAM.URL_GEN, "default").setParam(PARAM.RUNTIME, rt.isNodeIsh ? "node" : rt.isDeno ? "deno" : "unknown").URI();
1660
1623
  }
1661
- if ((0, import_cement10.runtimeFn)().isNodeIsh || (0, import_cement10.runtimeFn)().isDeno) {
1624
+ if ((0, import_cement11.runtimeFn)().isNodeIsh || (0, import_cement11.runtimeFn)().isDeno) {
1662
1625
  registerStoreProtocol({
1663
1626
  protocol: "file:",
1664
1627
  isDefault: true,
@@ -1668,12 +1631,12 @@ if ((0, import_cement10.runtimeFn)().isNodeIsh || (0, import_cement10.runtimeFn)
1668
1631
  }
1669
1632
  });
1670
1633
  }
1671
- if ((0, import_cement10.runtimeFn)().isBrowser) {
1634
+ if ((0, import_cement11.runtimeFn)().isBrowser) {
1672
1635
  registerStoreProtocol({
1673
1636
  protocol: "indexeddb:",
1674
1637
  isDefault: true,
1675
1638
  defaultURI: () => {
1676
- return import_cement10.BuildURI.from("indexeddb://").pathname("fp").setParam(PARAM.VERSION, INDEXEDDB_VERSION).setParam(PARAM.RUNTIME, "browser").URI();
1639
+ return import_cement11.BuildURI.from("indexeddb://").pathname("fp").setParam(PARAM.VERSION, INDEXEDDB_VERSION).setParam(PARAM.RUNTIME, "browser").URI();
1677
1640
  },
1678
1641
  gateway: async () => {
1679
1642
  const { GatewayImpl } = await import("@fireproof/core/indexeddb");
@@ -1686,7 +1649,7 @@ registerStoreProtocol({
1686
1649
  protocol: "memory:",
1687
1650
  isDefault: false,
1688
1651
  defaultURI: () => {
1689
- return import_cement10.BuildURI.from("memory://").pathname("ram").URI();
1652
+ return import_cement11.BuildURI.from("memory://").pathname("ram").URI();
1690
1653
  },
1691
1654
  gateway: async (sthis) => {
1692
1655
  return new MemoryGateway(sthis, memory);
@@ -1699,44 +1662,44 @@ __export(block_exports, {
1699
1662
  Block: () => Block,
1700
1663
  create: () => create,
1701
1664
  createUnsafe: () => createUnsafe,
1702
- decode: () => decode,
1703
- encode: () => encode
1665
+ decode: () => decode2,
1666
+ encode: () => encode2
1704
1667
  });
1705
1668
  var import_multiformats2 = require("multiformats");
1706
1669
  var import_block = require("multiformats/block");
1707
1670
  var Block = import_block.Block;
1708
- async function decode({
1671
+ async function decode2({
1709
1672
  bytes,
1710
1673
  codec: codec3,
1711
- hasher: hasher6
1674
+ hasher: hasher7
1712
1675
  }) {
1713
1676
  if (bytes == null) throw new Error('Missing required argument "bytes"');
1714
- if (codec3 == null || hasher6 == null) throw new Error("Missing required argument: codec or hasher");
1677
+ if (codec3 == null || hasher7 == null) throw new Error("Missing required argument: codec or hasher");
1715
1678
  const value = await Promise.resolve(codec3.decode(bytes));
1716
1679
  let toHash = bytes;
1717
1680
  if (codec3.valueToHashBytes) {
1718
1681
  toHash = await Promise.resolve(codec3.valueToHashBytes(value));
1719
1682
  }
1720
- const hash = await hasher6.digest(toHash);
1683
+ const hash = await hasher7.digest(toHash);
1721
1684
  const cid = import_multiformats2.CID.create(1, codec3.code, hash);
1722
1685
  return new import_block.Block({ value, bytes: toHash, cid });
1723
1686
  }
1724
- async function encode({
1687
+ async function encode2({
1725
1688
  value,
1726
1689
  codec: codec3,
1727
- hasher: hasher6
1690
+ hasher: hasher7
1728
1691
  }) {
1729
1692
  if (typeof value === "undefined") throw new Error('Missing required argument "value"');
1730
- if (codec3 == null || hasher6 == null) throw new Error("Missing required argument: codec or hasher");
1693
+ if (codec3 == null || hasher7 == null) throw new Error("Missing required argument: codec or hasher");
1731
1694
  let bytes;
1732
1695
  let hash;
1733
1696
  if (codec3.bytesToHash) {
1734
1697
  const hashable = await Promise.resolve(codec3.bytesToHash(value));
1735
- hash = await hasher6.digest(hashable);
1698
+ hash = await hasher7.digest(hashable);
1736
1699
  bytes = await Promise.resolve(codec3.encode(value));
1737
1700
  } else {
1738
1701
  bytes = await Promise.resolve(codec3.encode(value));
1739
- hash = await hasher6.digest(bytes);
1702
+ hash = await hasher7.digest(bytes);
1740
1703
  }
1741
1704
  const cid = import_multiformats2.CID.create(1, codec3.code, hash);
1742
1705
  return new Block({ value, bytes, cid });
@@ -1744,13 +1707,13 @@ async function encode({
1744
1707
  async function create({
1745
1708
  bytes,
1746
1709
  cid,
1747
- hasher: hasher6,
1710
+ hasher: hasher7,
1748
1711
  codec: codec3
1749
1712
  }) {
1750
1713
  if (bytes == null) throw new Error('Missing required argument "bytes"');
1751
- if (hasher6 == null) throw new Error('Missing required argument "hasher"');
1714
+ if (hasher7 == null) throw new Error('Missing required argument "hasher"');
1752
1715
  const value = await Promise.resolve(codec3.decode(bytes));
1753
- const hash = await hasher6.digest(bytes);
1716
+ const hash = await hasher7.digest(bytes);
1754
1717
  if (!import_multiformats2.bytes.equals(cid.multihash.bytes, hash.bytes)) {
1755
1718
  throw new Error("CID hash does not match bytes");
1756
1719
  }
@@ -1777,11 +1740,11 @@ async function createUnsafe({
1777
1740
  }
1778
1741
 
1779
1742
  // src/indexer-helpers.ts
1780
- var import_sha2 = require("multiformats/hashes/sha2");
1743
+ var import_sha22 = require("multiformats/hashes/sha2");
1781
1744
  var codec = __toESM(require("@ipld/dag-cbor"), 1);
1782
1745
  var import_charwise = __toESM(require("charwise"), 1);
1783
1746
  var DbIndex = __toESM(require("prolly-trees/db-index"), 1);
1784
- var import_utils8 = require("prolly-trees/utils");
1747
+ var import_utils9 = require("prolly-trees/utils");
1785
1748
  var import_cache = require("prolly-trees/cache");
1786
1749
  var IndexTree = class {
1787
1750
  };
@@ -1789,17 +1752,17 @@ function refCompare(aRef, bRef) {
1789
1752
  if (Number.isNaN(aRef)) return -1;
1790
1753
  if (Number.isNaN(bRef)) throw new Error("ref may not be Infinity or NaN");
1791
1754
  if (aRef === Infinity) return 1;
1792
- return (0, import_utils8.simpleCompare)(aRef, bRef);
1755
+ return (0, import_utils9.simpleCompare)(aRef, bRef);
1793
1756
  }
1794
1757
  function compare(a, b) {
1795
1758
  const [aKey, aRef] = a;
1796
1759
  const [bKey, bRef] = b;
1797
- const comp = (0, import_utils8.simpleCompare)(aKey, bKey);
1760
+ const comp = (0, import_utils9.simpleCompare)(aKey, bKey);
1798
1761
  if (comp !== 0) return comp;
1799
1762
  return refCompare(aRef, bRef);
1800
1763
  }
1801
- var byKeyOpts = { cache: import_cache.nocache, chunker: (0, import_utils8.bf)(30), codec, hasher: import_sha2.sha256, compare };
1802
- var byIdOpts = { cache: import_cache.nocache, chunker: (0, import_utils8.bf)(30), codec, hasher: import_sha2.sha256, compare: import_utils8.simpleCompare };
1764
+ var byKeyOpts = { cache: import_cache.nocache, chunker: (0, import_utils9.bf)(30), codec, hasher: import_sha22.sha256, compare };
1765
+ var byIdOpts = { cache: import_cache.nocache, chunker: (0, import_utils9.bf)(30), codec, hasher: import_sha22.sha256, compare: import_utils9.simpleCompare };
1803
1766
  function indexEntriesForChanges(changes, mapFn) {
1804
1767
  const indexEntries = [];
1805
1768
  changes.forEach(({ id: key, value, del }) => {
@@ -1827,7 +1790,7 @@ function makeProllyGetBlock(blocks) {
1827
1790
  const block = await blocks.get(address);
1828
1791
  if (!block) throw new Error(`Missing block ${address.toString()}`);
1829
1792
  const { cid, bytes } = block;
1830
- return create({ cid, bytes, hasher: import_sha2.sha256, codec });
1793
+ return create({ cid, bytes, hasher: import_sha22.sha256, codec });
1831
1794
  };
1832
1795
  }
1833
1796
  async function bulkIndex(logger, tblocks, inIndex, indexEntries, opts) {
@@ -2213,6 +2176,7 @@ var DatabaseImpl = class {
2213
2176
  }
2214
2177
  async allDocs(opts = {}) {
2215
2178
  await this.ready();
2179
+ void opts;
2216
2180
  this.logger.Debug().Msg("allDocs");
2217
2181
  const { result, head } = await this.ledger.crdt.allDocs();
2218
2182
  const rows = result.map(({ id: key, value, del }) => ({
@@ -2241,7 +2205,7 @@ var DatabaseImpl = class {
2241
2205
  };
2242
2206
 
2243
2207
  // src/crdt.ts
2244
- var import_cement19 = require("@adviser/cement");
2208
+ var import_cement20 = require("@adviser/cement");
2245
2209
 
2246
2210
  // src/blockstore/index.ts
2247
2211
  var blockstore_exports = {};
@@ -2332,24 +2296,24 @@ var WALActiveStore = class extends BaseActiveStore {
2332
2296
  };
2333
2297
 
2334
2298
  // src/blockstore/store-factory.ts
2335
- var import_cement17 = require("@adviser/cement");
2299
+ var import_cement18 = require("@adviser/cement");
2336
2300
 
2337
2301
  // src/blockstore/store.ts
2338
- var import_cement16 = require("@adviser/cement");
2302
+ var import_cement17 = require("@adviser/cement");
2339
2303
 
2340
2304
  // src/blockstore/loader.ts
2341
2305
  var import_p_limit = __toESM(require("p-limit"), 1);
2342
2306
  var import_reader = require("@ipld/car/reader");
2343
- var import_cement14 = require("@adviser/cement");
2307
+ var import_cement15 = require("@adviser/cement");
2344
2308
 
2345
2309
  // src/blockstore/loader-helpers.ts
2346
- var import_sha22 = require("multiformats/hashes/sha2");
2310
+ var import_sha23 = require("multiformats/hashes/sha2");
2347
2311
  var dagCodec = __toESM(require("@ipld/dag-cbor"), 1);
2348
2312
  async function parseCarFile(reader, logger) {
2349
2313
  const roots = await reader.roots;
2350
2314
  const header = reader.blocks.find((i) => i.cid.equals(roots[0]));
2351
2315
  if (!header) throw logger.Error().Msg("missing header block").AsError();
2352
- const dec = await decode({ bytes: header.bytes, hasher: import_sha22.sha256, codec: dagCodec });
2316
+ const dec = await decode2({ bytes: header.bytes, hasher: import_sha23.sha256, codec: dagCodec });
2353
2317
  const fpvalue = dec.value;
2354
2318
  if (fpvalue && !fpvalue.fp) {
2355
2319
  throw logger.Error().Msg("missing fp").AsError();
@@ -2359,7 +2323,7 @@ async function parseCarFile(reader, logger) {
2359
2323
 
2360
2324
  // src/blockstore/transaction.ts
2361
2325
  var import_block4 = require("@fireproof/vendor/@web3-storage/pail/block");
2362
- var import_cement11 = require("@adviser/cement");
2326
+ var import_cement12 = require("@adviser/cement");
2363
2327
  var CarTransactionImpl = class {
2364
2328
  #memblock = new import_block4.MemoryBlockstore();
2365
2329
  #hackUnshift;
@@ -2414,7 +2378,7 @@ function defaultedBlockstoreRuntime(sthis, opts, component, ctx) {
2414
2378
  ...opts,
2415
2379
  logger,
2416
2380
  keyBag: opts.keyBag || {},
2417
- crypto: (0, import_cement11.toCryptoRuntime)(opts.crypto),
2381
+ crypto: (0, import_cement12.toCryptoRuntime)(opts.crypto),
2418
2382
  storeUrls: opts.storeUrls,
2419
2383
  taskManager: {
2420
2384
  removeAfter: 3,
@@ -2590,7 +2554,7 @@ var CompactionFetcher = class {
2590
2554
  };
2591
2555
 
2592
2556
  // src/blockstore/commit-queue.ts
2593
- var import_cement12 = require("@adviser/cement");
2557
+ var import_cement13 = require("@adviser/cement");
2594
2558
  var CommitQueue = class {
2595
2559
  constructor() {
2596
2560
  this.queue = [];
@@ -2601,7 +2565,7 @@ var CommitQueue = class {
2601
2565
  if (this.queue.length === 0 && !this.processing) {
2602
2566
  return Promise.resolve();
2603
2567
  }
2604
- const fn = new import_cement12.Future();
2568
+ const fn = new import_cement13.Future();
2605
2569
  this._waitIdleItems.add(fn);
2606
2570
  return fn.asPromise();
2607
2571
  }
@@ -2643,7 +2607,7 @@ var CommitQueue = class {
2643
2607
  // src/blockstore/commitor.ts
2644
2608
  var CBW = __toESM(require("@ipld/car/buffer-writer"), 1);
2645
2609
  var dagCodec2 = __toESM(require("@ipld/dag-cbor"), 1);
2646
- var import_sha23 = require("multiformats/hashes/sha2");
2610
+ var import_sha24 = require("multiformats/hashes/sha2");
2647
2611
  async function encodeCarFile(roots, t, codec3) {
2648
2612
  let size = 0;
2649
2613
  const headerSize = CBW.headerLength({ roots });
@@ -2660,7 +2624,7 @@ async function encodeCarFile(roots, t, codec3) {
2660
2624
  writer.write({ cid, bytes });
2661
2625
  }
2662
2626
  writer.close();
2663
- return await encode({ value: writer.bytes, hasher: import_sha23.sha256, codec: codec3 });
2627
+ return await encode2({ value: writer.bytes, hasher: import_sha24.sha256, codec: codec3 });
2664
2628
  }
2665
2629
  async function createCarFile(encoder, cid, t) {
2666
2630
  return encodeCarFile([cid], t, encoder);
@@ -2698,9 +2662,9 @@ function makeCarHeader(meta, cars, compact = false) {
2698
2662
  return { ...coreHeader, meta };
2699
2663
  }
2700
2664
  async function encodeCarHeader(fp) {
2701
- return await encode({
2665
+ return await encode2({
2702
2666
  value: { fp },
2703
- hasher: import_sha23.sha256,
2667
+ hasher: import_sha24.sha256,
2704
2668
  codec: dagCodec2
2705
2669
  });
2706
2670
  }
@@ -2743,7 +2707,7 @@ async function prepareCarFiles(encoder, threshold, rootBlock, t) {
2743
2707
  }
2744
2708
 
2745
2709
  // src/blockstore/loader.ts
2746
- var import_sha24 = require("multiformats/hashes/sha2");
2710
+ var import_sha25 = require("multiformats/hashes/sha2");
2747
2711
 
2748
2712
  // src/blockstore/task-manager.ts
2749
2713
  var TaskManager = class {
@@ -2794,7 +2758,7 @@ var TaskManager = class {
2794
2758
  };
2795
2759
 
2796
2760
  // src/blockstore/attachable-store.ts
2797
- var import_cement13 = require("@adviser/cement");
2761
+ var import_cement14 = require("@adviser/cement");
2798
2762
  var AttachedImpl = class {
2799
2763
  constructor(gws, stores, unreg) {
2800
2764
  this.gatewayUrls = gws;
@@ -2961,7 +2925,7 @@ async function createAttachedStores(urlOrGup, arOrLoadable, name = "local") {
2961
2925
  if (!urlOrGup) {
2962
2926
  throw new Error("urlOrGup is required");
2963
2927
  }
2964
- if ((0, import_cement13.isCoerceURI)(urlOrGup)) {
2928
+ if ((0, import_cement14.isCoerceURI)(urlOrGup)) {
2965
2929
  const url = urlOrGup;
2966
2930
  gup = {
2967
2931
  car: { url },
@@ -2979,7 +2943,7 @@ async function createAttachedStores(urlOrGup, arOrLoadable, name = "local") {
2979
2943
  }
2980
2944
  var AttachedRemotesImpl = class {
2981
2945
  constructor(loadable) {
2982
- this._remotes = new import_cement13.KeyedResolvOnce();
2946
+ this._remotes = new import_cement14.KeyedResolvOnce();
2983
2947
  this.loadable = loadable;
2984
2948
  }
2985
2949
  forRemotes(action) {
@@ -2995,8 +2959,8 @@ var AttachedRemotesImpl = class {
2995
2959
  return new ActiveStoreImpl(this._local.stores, this);
2996
2960
  }
2997
2961
  activate(store) {
2998
- if ((0, import_cement13.isCoerceURI)(store)) {
2999
- const activateUrl = import_cement13.URI.from(store);
2962
+ if ((0, import_cement14.isCoerceURI)(store)) {
2963
+ const activateUrl = import_cement14.URI.from(store);
3000
2964
  let maxScore = 0;
3001
2965
  let maxStore;
3002
2966
  for (const { value } of this._remotes.values()) {
@@ -3032,19 +2996,19 @@ var AttachedRemotesImpl = class {
3032
2996
  const gws = {
3033
2997
  car: {
3034
2998
  ...gwp.car,
3035
- url: ensureURIDefaults(this.loadable.sthis, attached.name, gwp.car.url, import_cement13.URI.from(gwp.car.url), "car")
2999
+ url: ensureURIDefaults(this.loadable.sthis, attached.name, gwp.car.url, import_cement14.URI.from(gwp.car.url), "car")
3036
3000
  },
3037
3001
  file: {
3038
3002
  ...gwp.file,
3039
- url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement13.URI.from(gwp.file.url), "file", { file: true })
3003
+ url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement14.URI.from(gwp.file.url), "file", { file: true })
3040
3004
  },
3041
3005
  meta: {
3042
3006
  ...gwp.meta,
3043
- url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement13.URI.from(gwp.meta.url), "meta")
3007
+ url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement14.URI.from(gwp.meta.url), "meta")
3044
3008
  },
3045
3009
  wal: gwp.wal ? {
3046
3010
  ...gwp.wal,
3047
- url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement13.URI.from(gwp.wal.url), "wal")
3011
+ url: ensureURIDefaults(this.loadable.sthis, attached.name, void 0, import_cement14.URI.from(gwp.wal.url), "wal")
3048
3012
  } : void 0
3049
3013
  };
3050
3014
  const key = JSON.stringify(
@@ -3085,7 +3049,7 @@ function carLogIncludesGroup(list, cids) {
3085
3049
  (arr) => cidSet === arr.map((cid) => cid.toString()).sort().join(",")
3086
3050
  );
3087
3051
  }
3088
- function uniqueCids(list, remove = new import_cement14.LRUSet()) {
3052
+ function uniqueCids(list, remove = new import_cement15.LRUSet()) {
3089
3053
  const byString = /* @__PURE__ */ new Map();
3090
3054
  for (const cid of list) {
3091
3055
  if (remove.has(cid.toString())) continue;
@@ -3099,7 +3063,7 @@ var Loader = class {
3099
3063
  this.isCompacting = false;
3100
3064
  this.maxConcurrentWrite = (0, import_p_limit.default)(1);
3101
3065
  this.carLog = new CarLog();
3102
- this.onceReady = new import_cement14.ResolveOnce();
3066
+ this.onceReady = new import_cement15.ResolveOnce();
3103
3067
  this.sthis = sthis;
3104
3068
  this.ebOpts = defaultedBlockstoreRuntime(
3105
3069
  sthis,
@@ -3110,15 +3074,15 @@ var Loader = class {
3110
3074
  "Loader"
3111
3075
  );
3112
3076
  this.logger = ensureLogger(sthis, "Loader");
3113
- this.cidCache = new import_cement14.KeyedResolvOnce({
3077
+ this.cidCache = new import_cement15.KeyedResolvOnce({
3114
3078
  lru: {
3115
3079
  maxEntries: parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_CACHE_SIZE, "1000"), 10)
3116
3080
  }
3117
3081
  });
3118
- this.seenMeta = new import_cement14.LRUSet({
3082
+ this.seenMeta = new import_cement15.LRUSet({
3119
3083
  maxEntries: parseInt(this.ebOpts.storeUrls.meta.getParam(PARAM.CAR_META_CACHE_SIZE, "1000"), 10)
3120
3084
  });
3121
- this.seenCompacted = new import_cement14.LRUSet({
3085
+ this.seenCompacted = new import_cement15.LRUSet({
3122
3086
  maxEntries: parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_COMPACT_CACHE_SIZE, "1000"), 10)
3123
3087
  });
3124
3088
  this.maxConcurrentCarReader = (0, import_p_limit.default)(parseInt(this.ebOpts.storeUrls.car.getParam(PARAM.CAR_PARALLEL, "5"), 10));
@@ -3423,7 +3387,7 @@ var Loader = class {
3423
3387
  if (!loadedCar) {
3424
3388
  throw this.logger.Error().Url(store.local().url()).Str("cid", carCidStr).Msg("missing car files").AsError();
3425
3389
  }
3426
- const bytes = await decode({ bytes: loadedCar.bytes, hasher: import_sha24.sha256, codec: (await activeStore.keyedCrypto()).codec() });
3390
+ const bytes = await decode2({ bytes: loadedCar.bytes, hasher: import_sha25.sha256, codec: (await activeStore.keyedCrypto()).codec() });
3427
3391
  const rawReader = await import_reader.CarReader.fromBytes(bytes.value.data);
3428
3392
  const blocks = [];
3429
3393
  for await (const block of rawReader.blocks()) {
@@ -3464,7 +3428,7 @@ __export(keyed_crypto_exports, {
3464
3428
  keyedCryptoFactory: () => keyedCryptoFactory
3465
3429
  });
3466
3430
  var import_base583 = require("multiformats/bases/base58");
3467
- var import_sha25 = require("multiformats/hashes/sha2");
3431
+ var import_sha26 = require("multiformats/hashes/sha2");
3468
3432
  var CBOR = __toESM(require("cborg"), 1);
3469
3433
  var generateIV = {
3470
3434
  random: {
@@ -3479,7 +3443,7 @@ var generateIV = {
3479
3443
  },
3480
3444
  hash: {
3481
3445
  calc: async (ko, crypto, data) => {
3482
- const hash = await import_sha25.sha256.digest(data);
3446
+ const hash = await import_sha26.sha256.digest(data);
3483
3447
  const hashBytes = new Uint8Array(hash.bytes);
3484
3448
  const hashArray = new Uint8Array(ko.ivLength);
3485
3449
  for (let i = 0; i < hashBytes.length; i++) {
@@ -3667,39 +3631,39 @@ var import_p_retry = __toESM(require("p-retry"), 1);
3667
3631
  var import_p_map = __toESM(require("p-map"), 1);
3668
3632
 
3669
3633
  // src/blockstore/interceptor-gateway.ts
3670
- var import_cement15 = require("@adviser/cement");
3634
+ var import_cement16 = require("@adviser/cement");
3671
3635
  var PassThroughGateway = class {
3672
3636
  async buildUrl(ctx, url, key) {
3673
3637
  const op = { url, key };
3674
- return import_cement15.Result.Ok({ op });
3638
+ return import_cement16.Result.Ok({ op });
3675
3639
  }
3676
3640
  async start(ctx, url) {
3677
3641
  const op = { url };
3678
- return import_cement15.Result.Ok({ op });
3642
+ return import_cement16.Result.Ok({ op });
3679
3643
  }
3680
3644
  async close(ctx, url) {
3681
3645
  const op = { url };
3682
- return import_cement15.Result.Ok({ op });
3646
+ return import_cement16.Result.Ok({ op });
3683
3647
  }
3684
3648
  async delete(ctx, url) {
3685
3649
  const op = { url };
3686
- return import_cement15.Result.Ok({ op });
3650
+ return import_cement16.Result.Ok({ op });
3687
3651
  }
3688
3652
  async destroy(ctx, url) {
3689
3653
  const op = { url };
3690
- return import_cement15.Result.Ok({ op });
3654
+ return import_cement16.Result.Ok({ op });
3691
3655
  }
3692
3656
  async put(ctx, url, body) {
3693
3657
  const op = { url, body };
3694
- return import_cement15.Result.Ok({ op });
3658
+ return import_cement16.Result.Ok({ op });
3695
3659
  }
3696
3660
  async get(ctx, url) {
3697
3661
  const op = { url };
3698
- return import_cement15.Result.Ok({ op });
3662
+ return import_cement16.Result.Ok({ op });
3699
3663
  }
3700
3664
  async subscribe(ctx, url, callback) {
3701
3665
  const op = { url, callback };
3702
- return import_cement15.Result.Ok({ op });
3666
+ return import_cement16.Result.Ok({ op });
3703
3667
  }
3704
3668
  };
3705
3669
  var passThrougthGateway = new PassThroughGateway();
@@ -3711,7 +3675,7 @@ var InterceptorGateway = class {
3711
3675
  async buildUrl(ctx, baseUrl, key) {
3712
3676
  const rret = await this.interceptor.buildUrl(ctx, baseUrl, key);
3713
3677
  if (rret.isErr()) {
3714
- return import_cement15.Result.Err(rret.Err());
3678
+ return import_cement16.Result.Err(rret.Err());
3715
3679
  }
3716
3680
  const ret = rret.unwrap();
3717
3681
  if (ret.stop && ret.value) {
@@ -3722,7 +3686,7 @@ var InterceptorGateway = class {
3722
3686
  async destroy(ctx, iurl) {
3723
3687
  const rret = await this.interceptor.destroy(ctx, iurl);
3724
3688
  if (rret.isErr()) {
3725
- return import_cement15.Result.Err(rret.Err());
3689
+ return import_cement16.Result.Err(rret.Err());
3726
3690
  }
3727
3691
  const ret = rret.unwrap();
3728
3692
  if (ret.stop && ret.value) {
@@ -3733,7 +3697,7 @@ var InterceptorGateway = class {
3733
3697
  async start(ctx, url) {
3734
3698
  const rret = await this.interceptor.start(ctx, url);
3735
3699
  if (rret.isErr()) {
3736
- return import_cement15.Result.Err(rret.Err());
3700
+ return import_cement16.Result.Err(rret.Err());
3737
3701
  }
3738
3702
  const ret = rret.unwrap();
3739
3703
  if (ret.stop && ret.value) {
@@ -3744,7 +3708,7 @@ var InterceptorGateway = class {
3744
3708
  async close(ctx, url) {
3745
3709
  const rret = await this.interceptor.close(ctx, url);
3746
3710
  if (rret.isErr()) {
3747
- return import_cement15.Result.Err(rret.Err());
3711
+ return import_cement16.Result.Err(rret.Err());
3748
3712
  }
3749
3713
  const ret = rret.unwrap();
3750
3714
  if (ret.stop && ret.value) {
@@ -3755,7 +3719,7 @@ var InterceptorGateway = class {
3755
3719
  async put(ctx, url, fpEnv) {
3756
3720
  const rret = await this.interceptor.put(ctx, url, fpEnv);
3757
3721
  if (rret.isErr()) {
3758
- return import_cement15.Result.Err(rret.Err());
3722
+ return import_cement16.Result.Err(rret.Err());
3759
3723
  }
3760
3724
  const ret = rret.unwrap();
3761
3725
  if (ret.stop && ret.value) {
@@ -3766,7 +3730,7 @@ var InterceptorGateway = class {
3766
3730
  async get(ctx, url) {
3767
3731
  const rret = await this.interceptor.get(ctx, url);
3768
3732
  if (rret.isErr()) {
3769
- return import_cement15.Result.Err(rret.Err());
3733
+ return import_cement16.Result.Err(rret.Err());
3770
3734
  }
3771
3735
  const ret = rret.unwrap();
3772
3736
  if (ret.stop && ret.value) {
@@ -3776,11 +3740,11 @@ var InterceptorGateway = class {
3776
3740
  }
3777
3741
  async subscribe(ctx, url, callback) {
3778
3742
  if (!this.innerGW.subscribe) {
3779
- return import_cement15.Result.Err(ctx.loader.sthis.logger.Error().Url(url).Msg("subscribe not supported").AsError());
3743
+ return import_cement16.Result.Err(ctx.loader.sthis.logger.Error().Url(url).Msg("subscribe not supported").AsError());
3780
3744
  }
3781
3745
  const rret = await this.interceptor.subscribe(ctx, url, callback);
3782
3746
  if (rret.isErr()) {
3783
- return import_cement15.Result.Err(rret.Err());
3747
+ return import_cement16.Result.Err(rret.Err());
3784
3748
  }
3785
3749
  const ret = rret.unwrap();
3786
3750
  if (ret.stop && ret.value) {
@@ -3791,7 +3755,7 @@ var InterceptorGateway = class {
3791
3755
  async delete(ctx, url) {
3792
3756
  const rret = await this.interceptor.delete(ctx, url);
3793
3757
  if (rret.isErr()) {
3794
- return import_cement15.Result.Err(rret.Err());
3758
+ return import_cement16.Result.Err(rret.Err());
3795
3759
  }
3796
3760
  const ret = rret.unwrap();
3797
3761
  if (ret.stop && ret.value) {
@@ -3807,9 +3771,9 @@ var InterceptorGateway = class {
3807
3771
  // src/blockstore/store.ts
3808
3772
  function guardVersion(url) {
3809
3773
  if (!url.hasParam("version")) {
3810
- return import_cement16.Result.Err(`missing version: ${url.toString()}`);
3774
+ return import_cement17.Result.Err(`missing version: ${url.toString()}`);
3811
3775
  }
3812
- return import_cement16.Result.Ok(url);
3776
+ return import_cement17.Result.Ok(url);
3813
3777
  }
3814
3778
  var BaseStoreImpl = class {
3815
3779
  // readonly loader: Loadable;
@@ -3869,7 +3833,7 @@ var BaseStoreImpl = class {
3869
3833
  }
3870
3834
  if (this.ready) {
3871
3835
  const fn = this.ready.bind(this);
3872
- const ready = await (0, import_cement16.exception2Result)(fn);
3836
+ const ready = await (0, import_cement17.exception2Result)(fn);
3873
3837
  if (ready.isErr()) {
3874
3838
  await this.close();
3875
3839
  return ready;
@@ -3976,7 +3940,7 @@ var MetaStoreImpl = class extends BaseStoreImpl {
3976
3940
  async close() {
3977
3941
  await this.gateway.close({ loader: this.loader }, this.url());
3978
3942
  this._onClosed.forEach((fn) => fn());
3979
- return import_cement16.Result.Ok(void 0);
3943
+ return import_cement17.Result.Ok(void 0);
3980
3944
  }
3981
3945
  async destroy() {
3982
3946
  this.logger.Debug().Msg("destroy");
@@ -4043,7 +4007,7 @@ var DataStoreImpl = class extends BaseStoreImpl {
4043
4007
  async close() {
4044
4008
  await this.gateway.close({ loader: this.loader }, this.url());
4045
4009
  this._onClosed.forEach((fn) => fn());
4046
- return import_cement16.Result.Ok(void 0);
4010
+ return import_cement17.Result.Ok(void 0);
4047
4011
  }
4048
4012
  destroy() {
4049
4013
  this.logger.Debug().Msg("destroy");
@@ -4068,7 +4032,7 @@ var WALStoreImpl = class extends BaseStoreImpl {
4068
4032
  this.storeType = "wal";
4069
4033
  // readonly tag: string = "rwal-base";
4070
4034
  // readonly loader: Loadable;
4071
- this._ready = new import_cement16.ResolveOnce();
4035
+ this._ready = new import_cement17.ResolveOnce();
4072
4036
  this.walState = { operations: [], noLoaderOps: [], fileOperations: [] };
4073
4037
  this.processing = void 0;
4074
4038
  this.processQueue = new CommitQueue();
@@ -4245,7 +4209,7 @@ var WALStoreImpl = class extends BaseStoreImpl {
4245
4209
  async close() {
4246
4210
  await this.gateway.close({ loader: this.loader }, this.url());
4247
4211
  this._onClosed.forEach((fn) => fn());
4248
- return import_cement16.Result.Ok(void 0);
4212
+ return import_cement17.Result.Ok(void 0);
4249
4213
  }
4250
4214
  destroy() {
4251
4215
  this.logger.Debug().Msg("destroy");
@@ -4254,8 +4218,8 @@ var WALStoreImpl = class extends BaseStoreImpl {
4254
4218
  };
4255
4219
 
4256
4220
  // src/blockstore/store-factory.ts
4257
- var onceGateway = new import_cement17.KeyedResolvOnce();
4258
- var gatewayInstances = new import_cement17.KeyedResolvOnce();
4221
+ var onceGateway = new import_cement18.KeyedResolvOnce();
4222
+ var gatewayInstances = new import_cement18.KeyedResolvOnce();
4259
4223
  async function getStartedGateway(ctx, url) {
4260
4224
  return onceGateway.get(url.toString()).once(async () => {
4261
4225
  const item = getGatewayFactoryItem(url.protocol);
@@ -4268,12 +4232,12 @@ async function getStartedGateway(ctx, url) {
4268
4232
  };
4269
4233
  const res = await ret.gateway.start(ctx, url);
4270
4234
  if (res.isErr()) {
4271
- return import_cement17.Result.Err(ctx.loader.sthis.logger.Error().Result("start", res).Msg("start failed").AsError());
4235
+ return import_cement18.Result.Err(ctx.loader.sthis.logger.Error().Result("start", res).Msg("start failed").AsError());
4272
4236
  }
4273
4237
  ret.url = res.Ok();
4274
- return import_cement17.Result.Ok(ret);
4238
+ return import_cement18.Result.Ok(ret);
4275
4239
  }
4276
- return import_cement17.Result.Err(ctx.loader.sthis.logger.Warn().Url(url).Msg("unsupported protocol").AsError());
4240
+ return import_cement18.Result.Err(ctx.loader.sthis.logger.Warn().Url(url).Msg("unsupported protocol").AsError());
4277
4241
  });
4278
4242
  }
4279
4243
  async function carStoreFactory(ctx, uai) {
@@ -4377,7 +4341,7 @@ function toStoreRuntime(sthis, endeOpts = {}) {
4377
4341
 
4378
4342
  // src/crdt-helpers.ts
4379
4343
  var import_link2 = require("multiformats/link");
4380
- var import_sha26 = require("multiformats/hashes/sha2");
4344
+ var import_sha27 = require("multiformats/hashes/sha2");
4381
4345
  var codec2 = __toESM(require("@ipld/dag-cbor"), 1);
4382
4346
  var import_crdt = require("@fireproof/vendor/@web3-storage/pail/crdt");
4383
4347
  var import_clock3 = require("@fireproof/vendor/@web3-storage/pail/clock");
@@ -4464,7 +4428,7 @@ async function writeDocContent(store, blocks, update, logger) {
4464
4428
  await processFiles(store, blocks, update.value, logger);
4465
4429
  value = { doc: update.value };
4466
4430
  }
4467
- const block = await encode({ value, hasher: import_sha26.sha256, codec: codec2 });
4431
+ const block = await encode2({ value, hasher: import_sha27.sha256, codec: codec2 });
4468
4432
  blocks.putSync(block.cid, block.bytes);
4469
4433
  return block.cid;
4470
4434
  }
@@ -4495,11 +4459,11 @@ async function processFileset(logger, store, blocks, files) {
4495
4459
  for (const block of fileBlocks) {
4496
4460
  t.putSync(block.cid, block.bytes);
4497
4461
  }
4498
- files[filename] = { cid, type: file.type, size: file.size };
4462
+ files[filename] = { cid, type: file.type, size: file.size, lastModified: file.lastModified };
4499
4463
  } else {
4500
- const { cid, type, size, car } = files[filename];
4464
+ const { cid, type, size, car, lastModified } = files[filename];
4501
4465
  if (cid && type && size && car) {
4502
- files[filename] = { cid, type, size, car };
4466
+ files[filename] = { cid, type, size, car, lastModified };
4503
4467
  }
4504
4468
  }
4505
4469
  }
@@ -4539,15 +4503,21 @@ function readFileset(blocks, files, isPublic = false) {
4539
4503
  fileMeta.url = `https://${fileMeta.cid.toString()}.ipfs.w3s.link/`;
4540
4504
  }
4541
4505
  if (fileMeta.car) {
4542
- fileMeta.file = async () => await blocks.ebOpts.storeRuntime.decodeFile(
4543
- {
4544
- get: async (cid) => {
4545
- return await blocks.getFile(throwFalsy(fileMeta.car), cid);
4546
- }
4547
- },
4548
- fileMeta.cid,
4549
- fileMeta
4550
- );
4506
+ fileMeta.file = async () => {
4507
+ const result = await blocks.ebOpts.storeRuntime.decodeFile(
4508
+ {
4509
+ get: async (cid) => {
4510
+ return await blocks.getFile(throwFalsy(fileMeta.car), cid);
4511
+ }
4512
+ },
4513
+ fileMeta.cid,
4514
+ fileMeta
4515
+ );
4516
+ if (result.isErr()) {
4517
+ throw blocks.logger.Error().Any("error", result.Err()).Any("cid", fileMeta.cid).Msg("Error decoding file").AsError();
4518
+ }
4519
+ return result.unwrap();
4520
+ };
4551
4521
  }
4552
4522
  }
4553
4523
  files[filename] = fileMeta;
@@ -4556,7 +4526,7 @@ function readFileset(blocks, files, isPublic = false) {
4556
4526
  async function getValueFromLink(blocks, link, logger) {
4557
4527
  const block = await blocks.get(link);
4558
4528
  if (!block) throw logger.Error().Str("link", link.toString()).Msg(`Missing linked block`).AsError();
4559
- const { value } = await decode({ bytes: block.bytes, hasher: import_sha26.sha256, codec: codec2 });
4529
+ const { value } = await decode2({ bytes: block.bytes, hasher: import_sha27.sha256, codec: codec2 });
4560
4530
  const cvalue = {
4561
4531
  ...value,
4562
4532
  cid: link
@@ -4682,14 +4652,14 @@ async function doCompact(blockLog, head, logger) {
4682
4652
  async function getBlock(blocks, cidString) {
4683
4653
  const block = await blocks.get((0, import_link2.parse)(cidString));
4684
4654
  if (!block) throw new Error(`Missing block ${cidString}`);
4685
- const { cid, value } = await decode({ bytes: block.bytes, codec: codec2, hasher: import_sha26.sha256 });
4655
+ const { cid, value } = await decode2({ bytes: block.bytes, codec: codec2, hasher: import_sha27.sha256 });
4686
4656
  return new Block({ cid, value, bytes: block.bytes });
4687
4657
  }
4688
4658
 
4689
4659
  // src/crdt-clock.ts
4690
4660
  var import_clock4 = require("@fireproof/vendor/@web3-storage/pail/clock");
4691
4661
  var import_crdt2 = require("@fireproof/vendor/@web3-storage/pail/crdt");
4692
- var import_cement18 = require("@adviser/cement");
4662
+ var import_cement19 = require("@adviser/cement");
4693
4663
 
4694
4664
  // src/apply-head-queue.ts
4695
4665
  function applyHeadQueue(worker, logger) {
@@ -4746,7 +4716,7 @@ var CRDTClockImpl = class {
4746
4716
  this.zoomers = /* @__PURE__ */ new Map();
4747
4717
  this.watchers = /* @__PURE__ */ new Map();
4748
4718
  this.emptyWatchers = /* @__PURE__ */ new Map();
4749
- this._ready = new import_cement18.ResolveOnce();
4719
+ this._ready = new import_cement19.ResolveOnce();
4750
4720
  this.sthis = blockstore.sthis;
4751
4721
  this.blockstore = blockstore;
4752
4722
  this.logger = ensureLogger(blockstore.sthis, "CRDTClock");
@@ -4876,7 +4846,7 @@ async function advanceBlocks(logger, newHead, tblocks, head) {
4876
4846
  var CRDTImpl = class {
4877
4847
  constructor(sthis, opts) {
4878
4848
  this.indexers = /* @__PURE__ */ new Map();
4879
- this.onceReady = new import_cement19.ResolveOnce();
4849
+ this.onceReady = new import_cement20.ResolveOnce();
4880
4850
  this.sthis = sthis;
4881
4851
  this.crdt = this;
4882
4852
  this.logger = ensureLogger(sthis, "CRDT");
@@ -5022,7 +4992,7 @@ var Context = class {
5022
4992
  };
5023
4993
 
5024
4994
  // src/ledger.ts
5025
- var ledgers = new import_cement20.KeyedResolvOnce();
4995
+ var ledgers = new import_cement21.KeyedResolvOnce();
5026
4996
  function keyConfigOpts(sthis, name, opts) {
5027
4997
  return JSON.stringify(
5028
4998
  toSortedArray({
@@ -5114,7 +5084,7 @@ var LedgerImpl = class {
5114
5084
  this.shells = /* @__PURE__ */ new Set();
5115
5085
  this.context = new Context();
5116
5086
  this._onClosedFns = /* @__PURE__ */ new Map();
5117
- this._ready = new import_cement20.ResolveOnce();
5087
+ this._ready = new import_cement21.ResolveOnce();
5118
5088
  this.opts = opts;
5119
5089
  this.sthis = sthis;
5120
5090
  this.id = sthis.timeOrderedNextId().str;
@@ -5222,12 +5192,12 @@ function toStoreURIRuntime(sthis, name, sopts) {
5222
5192
  if (!sopts.base) {
5223
5193
  const fp_env = sthis.env.get("FP_STORAGE_URL");
5224
5194
  if (fp_env) {
5225
- sopts = { ...sopts, base: import_cement20.BuildURI.from(fp_env).setParam(PARAM.URL_GEN, "fromEnv") };
5195
+ sopts = { ...sopts, base: import_cement21.BuildURI.from(fp_env).setParam(PARAM.URL_GEN, "fromEnv") };
5226
5196
  } else {
5227
5197
  sopts = { ...sopts, base: getDefaultURI(sthis).build().setParam(PARAM.URL_GEN, "default") };
5228
5198
  }
5229
5199
  }
5230
- const base = import_cement20.URI.from(sopts.base);
5200
+ const base = import_cement21.URI.from(sopts.base);
5231
5201
  return {
5232
5202
  idx: {
5233
5203
  car: ensureURIDefaults(sthis, name, sopts.idx?.car ?? sopts.data?.car, base, "car", { idx: true }),
@@ -5268,7 +5238,7 @@ __export(runtime_exports, {
5268
5238
  keysByFingerprint: () => keysByFingerprint,
5269
5239
  mf: () => wait_pr_multiformats_exports,
5270
5240
  registerKeyBagProviderFactory: () => registerKeyBagProviderFactory,
5271
- runtimeFn: () => import_cement21.runtimeFn,
5241
+ runtimeFn: () => import_cement22.runtimeFn,
5272
5242
  toKeyWithFingerPrint: () => toKeyWithFingerPrint
5273
5243
  });
5274
5244
 
@@ -5283,7 +5253,7 @@ __export(wait_pr_multiformats_exports, {
5283
5253
  var codec_interface_exports = {};
5284
5254
 
5285
5255
  // src/runtime/index.ts
5286
- var import_cement21 = require("@adviser/cement");
5256
+ var import_cement22 = require("@adviser/cement");
5287
5257
 
5288
5258
  // src/runtime/gateways/index.ts
5289
5259
  var gateways_exports = {};
@@ -5306,6 +5276,6 @@ __export(file_exports, {
5306
5276
 
5307
5277
  // src/version.ts
5308
5278
  var PACKAGE_VERSION = Object.keys({
5309
- "0.20.0-dev-preview-52": "xxxx"
5279
+ "0.20.0-dev-preview-54": "xxxx"
5310
5280
  })[0];
5311
5281
  //# sourceMappingURL=index.cjs.map