@fireproof/core 0.19.115 → 0.19.116

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/{chunk-JO62JMEP.js → chunk-2D2X6HIB.js} +1 -1
  2. package/chunk-2D2X6HIB.js.map +1 -0
  3. package/{chunk-UUOLR3GZ.js → chunk-WVN66YAN.js} +2 -2
  4. package/deno.json +2 -7
  5. package/{gateway-UT5GFV5R.js → gateway-3WGEEKVQ.js} +3 -3
  6. package/index.cjs +38 -28
  7. package/index.cjs.map +1 -1
  8. package/index.d.cts +6 -6
  9. package/index.d.ts +6 -6
  10. package/index.js +38 -29
  11. package/index.js.map +1 -1
  12. package/{key-bag-file-GTGVZHHM.js → key-bag-file-CBCAWTVG.js} +3 -3
  13. package/{key-bag-indexdb-NZMTNJLK.js → key-bag-indexdb-RTSMSGM7.js} +3 -3
  14. package/metafile-cjs.json +1 -1
  15. package/metafile-esm.json +1 -1
  16. package/package.json +3 -8
  17. package/react/index.cjs.map +1 -1
  18. package/react/index.d.cts +2 -2
  19. package/react/index.d.ts +2 -2
  20. package/react/index.js.map +1 -1
  21. package/react/metafile-cjs.json +1 -1
  22. package/react/metafile-esm.json +1 -1
  23. package/tests/blockstore/fragment-gateway.test.ts +1 -1
  24. package/tests/blockstore/keyed-crypto.test.ts +2 -2
  25. package/tests/blockstore/loader.test.ts +3 -3
  26. package/tests/blockstore/store.test.ts +1 -1
  27. package/tests/blockstore/transaction.test.ts +1 -1
  28. package/tests/fireproof/config.test.ts +1 -1
  29. package/tests/fireproof/crdt.test.ts +1 -1
  30. package/tests/fireproof/indexer.test.ts +1 -1
  31. package/tests/fireproof/utils.test.ts +1 -1
  32. package/{utils-5UEZAKVP.js → utils-XESRUKDJ.js} +3 -3
  33. package/web/gateway-impl.cjs.map +1 -1
  34. package/web/gateway-impl.js.map +1 -1
  35. package/web/metafile-cjs.json +1 -1
  36. package/web/metafile-esm.json +1 -1
  37. package/chunk-JO62JMEP.js.map +0 -1
  38. package/index.global.js +0 -149
  39. package/index.global.js.map +0 -1
  40. package/metafile-iife.json +0 -1
  41. /package/{chunk-UUOLR3GZ.js.map → chunk-WVN66YAN.js.map} +0 -0
  42. /package/{gateway-UT5GFV5R.js.map → gateway-3WGEEKVQ.js.map} +0 -0
  43. /package/{key-bag-file-GTGVZHHM.js.map → key-bag-file-CBCAWTVG.js.map} +0 -0
  44. /package/{key-bag-indexdb-NZMTNJLK.js.map → key-bag-indexdb-RTSMSGM7.js.map} +0 -0
  45. /package/{utils-5UEZAKVP.js.map → utils-XESRUKDJ.js.map} +0 -0
@@ -287,4 +287,4 @@ export {
287
287
  dataDir,
288
288
  UInt8ArrayEqual
289
289
  };
290
- //# sourceMappingURL=chunk-JO62JMEP.js.map
290
+ //# sourceMappingURL=chunk-2D2X6HIB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import {\n Logger,\n LoggerImpl,\n IsLogger,\n Result,\n ResolveOnce,\n isURL,\n URI,\n CoerceURI,\n runtimeFn,\n envFactory,\n Env,\n toCryptoRuntime,\n CryptoRuntime,\n JSONFormatter,\n YAMLFormatter,\n} from \"@adviser/cement\";\nimport { PathOps, StoreType, SuperThis, SuperThisOpts, TextEndeCoder } from \"./types.js\";\nimport { base58btc } from \"multiformats/bases/base58\";\n\nexport type { Logger };\nexport { Result };\n\nconst _globalLogger = new ResolveOnce();\nfunction globalLogger(): Logger {\n return _globalLogger.once(() => new LoggerImpl());\n}\n\nconst registerFP_DEBUG = new ResolveOnce();\n\ninterface superThisOpts {\n readonly logger: Logger;\n readonly env: Env;\n readonly pathOps: PathOps;\n readonly crypto: CryptoRuntime;\n readonly ctx: Record<string, unknown>;\n readonly txt: TextEndeCoder;\n}\n\nclass SuperThisImpl implements SuperThis {\n readonly logger: Logger;\n readonly env: Env;\n readonly pathOps: PathOps;\n readonly ctx: Record<string, unknown>;\n readonly txt: TextEndeCoder;\n readonly crypto: CryptoRuntime;\n\n constructor(opts: superThisOpts) {\n this.logger = opts.logger;\n this.env = opts.env;\n this.crypto = opts.crypto;\n this.pathOps = opts.pathOps;\n this.txt = opts.txt;\n this.ctx = { ...opts.ctx };\n // console.log(\"superThis\", this);\n }\n\n nextId(bytes = 6): { str: string; bin: Uint8Array } {\n const bin = this.crypto.randomBytes(bytes);\n return {\n str: base58btc.encode(bin),\n bin,\n };\n }\n\n timeOrderedNextId(now?: number): { str: string } {\n now = typeof now === \"number\" ? now : new Date().getTime();\n // 49th bit\n const t = (0x1000000000000 + now).toString(16).replace(/^1/, \"\");\n const bin = this.crypto.randomBytes(10);\n bin[1] = (bin[1] & 0xf0) | (bin[1] | 0x08 && 0x0b);\n const hex = Array.from(bin)\n .map((i) => i.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return {\n str: `${t.slice(0, 8)}-${t.slice(8)}-7${hex.slice(0, 3)}-${hex.slice(3, 7)}-${hex.slice(7, 19)}`,\n };\n }\n\n start(): Promise<void> {\n return Promise.resolve();\n }\n\n clone(override: Partial<SuperThisOpts>): SuperThis {\n return new SuperThisImpl({\n logger: override.logger || this.logger,\n env: envFactory(override.env) || this.env,\n crypto: override.crypto || this.crypto,\n pathOps: override.pathOps || this.pathOps,\n txt: override.txt || this.txt,\n ctx: { ...this.ctx, ...override.ctx },\n });\n }\n}\n\n// const pathOps =\nfunction presetEnv() {\n const penv = new Map([\n // [\"FP_DEBUG\", \"xxx\"],\n // [\"FP_ENV\", \"development\"],\n ...Array.from(\n Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((globalThis as any)[Symbol.for(\"FP_PRESET_ENV\")] || {}) as Record<string, string>,\n ),\n ), // .map(([k, v]) => [k, v as string])\n ]);\n // console.log(\">>>>>>\", penv)\n return penv;\n}\n// const envImpl = envFactory({\n// symbol: \"FP_ENV\",\n// presetEnv: presetEnv(),\n// });\nclass pathOpsImpl implements PathOps {\n join(...paths: string[]): string {\n return paths.map((i) => i.replace(/\\/+$/, \"\")).join(\"/\");\n }\n dirname(path: string) {\n return path.split(\"/\").slice(0, -1).join(\"/\");\n }\n // homedir() {\n // throw new Error(\"SysContainer:homedir is not available in seeded state\");\n // }\n}\nconst pathOps = new pathOpsImpl();\nconst txtOps = {\n // eslint-disable-next-line no-restricted-globals\n encode: (input: string) => new TextEncoder().encode(input),\n // eslint-disable-next-line no-restricted-globals\n decode: (input: Uint8Array) => new TextDecoder().decode(input),\n};\n\nexport function ensureSuperThis(osthis?: Partial<SuperThisOpts>): SuperThis {\n const env = envFactory({\n symbol: osthis?.env?.symbol || \"FP_ENV\",\n presetEnv: osthis?.env?.presetEnv || presetEnv(),\n });\n return new SuperThisImpl({\n logger: osthis?.logger || globalLogger(),\n env,\n crypto: osthis?.crypto || toCryptoRuntime(),\n ctx: osthis?.ctx || {},\n pathOps,\n txt: osthis?.txt || txtOps,\n });\n}\n\n// // eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function ensureSuperLog(sthis: SuperThis, componentName: string, ctx?: Record<string, unknown>): SuperThis {\n return sthis.clone({\n logger: ensureLogger(sthis, componentName, ctx),\n });\n}\n\nexport function ensureLogger(\n sthis: SuperThis /* Partial<LoggerOpts> | Logger */,\n componentName: string,\n ctx?: Record<string, unknown>,\n): Logger {\n // if (!opts?.logger) {\n // throw new Error(\"logger is required\");\n // }\n let logger: Logger;\n if (IsLogger(sthis)) {\n logger = sthis;\n } else if (sthis && IsLogger(sthis.logger)) {\n logger = sthis.logger;\n } else {\n logger = globalLogger();\n }\n const cLogger = logger.With().Module(componentName); //.Str(\"this\", uuidv7());\n const debug: string[] = [];\n let exposeStack = false;\n if (ctx) {\n if (\"debug\" in ctx) {\n if (typeof ctx.debug === \"string\" && ctx.debug.length > 0) {\n debug.push(ctx.debug);\n } else {\n debug.push(componentName);\n }\n delete ctx.debug;\n }\n if (\"exposeStack\" in ctx) {\n exposeStack = true;\n delete ctx.exposeStack;\n }\n if (\"this\" in ctx) {\n cLogger.Str(\"this\", sthis.nextId(4).str);\n delete ctx.this;\n }\n for (const [key, value] of Object.entries(ctx)) {\n switch (typeof value) {\n case \"string\":\n cLogger.Str(key, value);\n break;\n case \"number\":\n cLogger.Uint64(key, value);\n break;\n default:\n if (value instanceof Date) {\n cLogger.Str(key, value.toISOString());\n } else if (isURL(value)) {\n cLogger.Str(key, value.toString());\n } else if (typeof value === \"function\") {\n cLogger.Ref(key, value);\n } else {\n cLogger.Any(key, value);\n }\n break;\n }\n }\n }\n registerFP_DEBUG\n .once(async () => {\n // console.log(\"registerFP_DEBUG\", SysContainer.env)\n sthis.env.onSet(\n (key, value) => {\n // console.log(\"FP_DEBUG\", key, value, debug)\n switch (key) {\n case \"FP_FORMAT\": {\n switch (value) {\n case \"jsonice\":\n logger.SetFormatter(new JSONFormatter(logger.TxtEnDe(), 2));\n break;\n case \"yaml\":\n logger.SetFormatter(new YAMLFormatter(logger.TxtEnDe(), 2));\n break;\n case \"json\":\n default:\n logger.SetFormatter(new JSONFormatter(logger.TxtEnDe()));\n break;\n }\n break;\n }\n case \"FP_DEBUG\":\n logger.SetDebug(value || []);\n break;\n case \"FP_STACK\":\n logger.SetExposeStack(!!value);\n break;\n }\n },\n \"FP_FORMAT\",\n \"FP_DEBUG\",\n \"FP_STACK\",\n );\n })\n .finally(() => {\n /* do nothing */\n });\n\n if (debug.length > 0) {\n logger.SetDebug(debug);\n }\n if (exposeStack) {\n logger.SetExposeStack(true);\n }\n const out = cLogger.Logger();\n // out.Debug().Msg(\"logger ready\");\n return out;\n}\n\nexport type Joiner = (...toJoin: string[]) => string;\n\nexport interface Store {\n readonly store: StoreType;\n readonly name: string;\n}\n\nexport function getStore(url: URI, sthis: SuperThis, joiner: Joiner): Store {\n const store = url.getParam(\"store\");\n switch (store) {\n case \"data\":\n case \"wal\":\n case \"meta\":\n break;\n default:\n throw sthis.logger.Error().Url(url).Msg(`store not found`).AsError();\n }\n let name: string = store;\n if (url.hasParam(\"index\")) {\n name = joiner(url.getParam(\"index\") || \"idx\", name);\n }\n return { store, name };\n}\n\nexport function getKey(url: URI, logger: Logger): string {\n const result = url.getParam(\"key\");\n if (!result) throw logger.Error().Str(\"url\", url.toString()).Msg(`key not found`).AsError();\n return result;\n}\n\nexport function getName(sthis: SuperThis, url: URI): string {\n let result = url.getParam(\"name\");\n if (!result) {\n result = sthis.pathOps.dirname(url.pathname);\n if (result.length === 0) {\n throw sthis.logger.Error().Str(\"url\", url.toString()).Msg(`name not found`).AsError();\n }\n }\n return result;\n}\n\n// export function exception2Result<T = void>(fn: () => Promise<T>): Promise<Result<T>> {\n// return fn()\n// .then((value) => Result.Ok(value))\n// .catch((e) => Result.Err(e));\n// }\n\nexport async function exceptionWrapper<T, E extends Error>(fn: () => Promise<Result<T, E>>): Promise<Result<T, E>> {\n return fn().catch((e) => Result.Err(e));\n}\n\n// // the big side effect party --- hate it\n// export function sanitizeURL(url: URL) {\n// url.searchParams.sort();\n// // const searchParams = Object.entries(url.searchParams).sort(([a], [b]) => a.localeCompare(b));\n// // console.log(\"searchParams\", searchParams);\n// // for (const [key] of searchParams) {\n// // url.searchParams.delete(key);\n// // }\n// // for (const [key, value] of searchParams) {\n// // url.searchParams.set(key, value);\n// // }\n// }\n\nexport class NotFoundError extends Error {\n readonly code = \"ENOENT\";\n}\n\nexport function isNotFoundError(e: Error | Result<unknown> | unknown): e is NotFoundError {\n if (Result.Is(e)) {\n if (e.isOk()) return false;\n e = e.Err();\n }\n if ((e as NotFoundError).code === \"ENOENT\") return true;\n return false;\n}\n\nexport function dataDir(sthis: SuperThis, name?: string, base?: CoerceURI): URI {\n if (!base) {\n if (!runtimeFn().isBrowser) {\n const home = sthis.env.get(\"HOME\") || \"./\";\n base = sthis.env.get(\"FP_STORAGE_URL\") || `file://${sthis.pathOps.join(home, \".fireproof\")}`;\n } else {\n base = sthis.env.get(\"FP_STORAGE_URL\") || `indexdb://fp`;\n }\n }\n return URI.from(base.toString())\n .build()\n .setParam(\"name\", name || \"\")\n .URI();\n}\n\nexport function UInt8ArrayEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getStore
3
- } from "./chunk-JO62JMEP.js";
3
+ } from "./chunk-2D2X6HIB.js";
4
4
 
5
5
  // src/runtime/gateways/file/get-file-system-dynamic.ts
6
6
  import { KeyedResolvOnce } from "@adviser/cement";
@@ -68,4 +68,4 @@ export {
68
68
  getPath,
69
69
  getFileName
70
70
  };
71
- //# sourceMappingURL=chunk-UUOLR3GZ.js.map
71
+ //# sourceMappingURL=chunk-WVN66YAN.js.map
package/deno.json CHANGED
@@ -2,17 +2,12 @@
2
2
  "imports": {
3
3
  "@fireproof/core": "./index.js",
4
4
  "@adviser/cement": "npm:@adviser/cement@^0.2.40",
5
- "multiformats": "npm:multiformats@^13.3.1",
5
+ "@fireproof/vendor": "npm:@fireproof/vendor@^1.0.0",
6
6
  "@ipld/unixfs": "npm:@ipld/unixfs@^3.0.0",
7
- "@ipld/car": "npm:@ipld/car@^5.3.3",
8
- "@ipld/dag-json": "npm:@ipld/dag-json@^10.2.3",
9
- "@ipld/dag-cbor": "npm:@ipld/dag-cbor@^9.2.2",
10
- "@web3-storage/pail": "npm:@web3-storage/pail@^0.6.0",
11
- "cborg": "npm:cborg@^4.2.6",
7
+ "multiformats": "npm:multiformats@^13.3.1",
12
8
  "charwise": "npm:charwise@^3.0.1",
13
9
  "prolly-trees": "npm:prolly-trees@^1.0.4",
14
10
  "idb": "npm:idb@^8.0.0",
15
- "ipfs-unixfs-exporter": "npm:ipfs-unixfs-exporter@^13.6.1",
16
11
  "memfs": "npm:memfs@^4.14.1",
17
12
  "p-limit": "npm:p-limit@^6.1.0",
18
13
  "p-map": "npm:p-map@^7.0.2",
@@ -5,13 +5,13 @@ import {
5
5
  getFileName,
6
6
  getFileSystem,
7
7
  getPath
8
- } from "./chunk-UUOLR3GZ.js";
8
+ } from "./chunk-WVN66YAN.js";
9
9
  import {
10
10
  NotFoundError,
11
11
  ensureLogger,
12
12
  exceptionWrapper,
13
13
  isNotFoundError
14
- } from "./chunk-JO62JMEP.js";
14
+ } from "./chunk-2D2X6HIB.js";
15
15
  import "./chunk-PZ5AY32C.js";
16
16
 
17
17
  // src/runtime/gateways/file/gateway.ts
@@ -142,4 +142,4 @@ export {
142
142
  FileGateway,
143
143
  FileTestStore
144
144
  };
145
- //# sourceMappingURL=gateway-UT5GFV5R.js.map
145
+ //# sourceMappingURL=gateway-3WGEEKVQ.js.map
package/index.cjs CHANGED
@@ -864,10 +864,10 @@ async function createUnsafe({
864
864
  // src/crdt-helpers.ts
865
865
  var import_link = require("multiformats/link");
866
866
  var import_sha25 = require("multiformats/hashes/sha2");
867
- var codec = __toESM(require("@ipld/dag-cbor"), 1);
868
- var import_crdt = require("@web3-storage/pail/crdt");
869
- var import_clock2 = require("@web3-storage/pail/clock");
870
- var Batch = __toESM(require("@web3-storage/pail/crdt/batch"), 1);
867
+ var codec = __toESM(require("@fireproof/vendor/@ipld/dag-cbor"), 1);
868
+ var import_crdt = require("@fireproof/vendor/@web3-storage/pail/crdt");
869
+ var import_clock2 = require("@fireproof/vendor/@web3-storage/pail/clock");
870
+ var Batch = __toESM(require("@fireproof/vendor/@web3-storage/pail/crdt/batch"), 1);
871
871
 
872
872
  // src/blockstore/index.ts
873
873
  var blockstore_exports = {};
@@ -908,7 +908,7 @@ var UnixFS = __toESM(require("@ipld/unixfs"), 1);
908
908
  var raw = __toESM(require("multiformats/codecs/raw"), 1);
909
909
  var import_fixed = require("@ipld/unixfs/file/chunker/fixed");
910
910
  var import_balanced = require("@ipld/unixfs/file/layout/balanced");
911
- var import_ipfs_unixfs_exporter = require("ipfs-unixfs-exporter");
911
+ var import_ipfs_unixfs_exporter = require("@fireproof/vendor/ipfs-unixfs-exporter");
912
912
  var queuingStrategy = UnixFS.withCapacity();
913
913
  var settings = UnixFS.configure({
914
914
  fileChunkEncoder: raw,
@@ -970,7 +970,7 @@ var UnixFSFileBuilder = class {
970
970
  };
971
971
 
972
972
  // src/blockstore/store.ts
973
- var import_dag_json2 = require("@ipld/dag-json");
973
+ var import_dag_json2 = require("@fireproof/vendor/@ipld/dag-json");
974
974
  var import_cement10 = require("@adviser/cement");
975
975
 
976
976
  // src/types.ts
@@ -995,12 +995,12 @@ init_utils();
995
995
 
996
996
  // src/blockstore/loader.ts
997
997
  var import_p_limit = __toESM(require("p-limit"), 1);
998
- var import_reader = require("@ipld/car/reader");
998
+ var import_reader = require("@fireproof/vendor/@ipld/car/reader");
999
999
  var import_cement7 = require("@adviser/cement");
1000
1000
 
1001
1001
  // src/blockstore/loader-helpers.ts
1002
1002
  var import_sha2 = require("multiformats/hashes/sha2");
1003
- var dagCodec = __toESM(require("@ipld/dag-cbor"), 1);
1003
+ var dagCodec = __toESM(require("@fireproof/vendor/@ipld/dag-cbor"), 1);
1004
1004
  async function parseCarFile(reader, logger) {
1005
1005
  const roots = await reader.getRoots();
1006
1006
  const header = await reader.get(roots[0]);
@@ -1014,7 +1014,7 @@ async function parseCarFile(reader, logger) {
1014
1014
  }
1015
1015
 
1016
1016
  // src/blockstore/transaction.ts
1017
- var import_block3 = require("@web3-storage/pail/block");
1017
+ var import_block3 = require("@fireproof/vendor/@web3-storage/pail/block");
1018
1018
  var import_cement2 = require("@adviser/cement");
1019
1019
  init_utils();
1020
1020
  var CarTransaction = class extends import_block3.MemoryBlockstore {
@@ -1478,9 +1478,9 @@ async function getKeyBag(sthis, kbo = {}) {
1478
1478
  }
1479
1479
 
1480
1480
  // src/blockstore/commitor.ts
1481
- var CBW = __toESM(require("@ipld/car/buffer-writer"), 1);
1481
+ var CBW = __toESM(require("@fireproof/vendor/@ipld/car/buffer-writer"), 1);
1482
1482
  var import_sha22 = require("multiformats/hashes/sha2");
1483
- var dagCodec2 = __toESM(require("@ipld/dag-cbor"), 1);
1483
+ var dagCodec2 = __toESM(require("@fireproof/vendor/@ipld/dag-cbor"), 1);
1484
1484
  async function encodeCarFile(roots, t, codec3) {
1485
1485
  let size = 0;
1486
1486
  const headerSize = CBW.headerLength({ roots });
@@ -1586,6 +1586,7 @@ var import_sha23 = require("multiformats/hashes/sha2");
1586
1586
  init_utils();
1587
1587
  var TaskManager = class {
1588
1588
  constructor(sthis, callback) {
1589
+ // we need to remove the events after some time
1589
1590
  this.eventsWeHandled = /* @__PURE__ */ new Set();
1590
1591
  this.queue = [];
1591
1592
  this.isProcessing = false;
@@ -1606,6 +1607,7 @@ var TaskManager = class {
1606
1607
  const filteredQueue = this.queue.filter(({ cid }) => !this.eventsWeHandled.has(cid));
1607
1608
  const first = filteredQueue[0];
1608
1609
  if (!first) {
1610
+ this.isProcessing = false;
1609
1611
  return;
1610
1612
  }
1611
1613
  try {
@@ -1981,7 +1983,7 @@ __export(keyed_crypto_exports, {
1981
1983
  init_utils();
1982
1984
  var import_base583 = require("multiformats/bases/base58");
1983
1985
  var import_sha24 = require("multiformats/hashes/sha2");
1984
- var CBOR = __toESM(require("cborg"), 1);
1986
+ var CBOR = __toESM(require("@fireproof/vendor/cborg"), 1);
1985
1987
  var generateIV = {
1986
1988
  random: {
1987
1989
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -2148,7 +2150,7 @@ async function keyedCryptoFactory(url, kb, sthis) {
2148
2150
  // src/blockstore/fragment-gateway.ts
2149
2151
  var import_cement8 = require("@adviser/cement");
2150
2152
  var import_base584 = require("multiformats/bases/base58");
2151
- var import_cborg = require("cborg");
2153
+ var import_cborg = require("@fireproof/vendor/cborg");
2152
2154
  init_utils();
2153
2155
  function getFragSize(url) {
2154
2156
  const fragSize = url.getParam("fragSize");
@@ -2301,25 +2303,33 @@ var FragmentGateway = class {
2301
2303
  };
2302
2304
 
2303
2305
  // src/blockstore/meta-key-helper.ts
2304
- var import_dag_json = require("@ipld/dag-json");
2305
- var import_clock = require("@web3-storage/pail/clock");
2306
+ var import_dag_json = require("@fireproof/vendor/@ipld/dag-json");
2307
+ var import_clock = require("@fireproof/vendor/@web3-storage/pail/clock");
2306
2308
  var import_multiformats2 = require("multiformats");
2307
2309
  var import_base64 = require("multiformats/bases/base64");
2308
2310
  var import_cement9 = require("@adviser/cement");
2311
+ init_utils();
2309
2312
  async function decodeGatewayMetaBytesToDbMeta(sthis, byteHeads) {
2310
2313
  const crdtEntries = JSON.parse(sthis.txt.decode(byteHeads));
2311
- if (!crdtEntries.length) {
2312
- sthis.logger.Debug().Any("byteHeads", byteHeads).Msg("No CRDT entries found");
2314
+ if (!Array.isArray(crdtEntries)) {
2315
+ sthis.logger.Debug().Str("crdtEntries", JSON.stringify(crdtEntries)).Msg("No data in CRDT entries");
2313
2316
  return [];
2314
2317
  }
2315
- if (!crdtEntries.map) {
2316
- sthis.logger.Debug().Str("crdtEntries", JSON.stringify(crdtEntries)).Msg("No data in CRDT entries");
2318
+ if (!crdtEntries.length) {
2319
+ sthis.logger.Debug().Any("byteHeads", byteHeads).Msg("No CRDT entries found");
2317
2320
  return [];
2318
2321
  }
2322
+ const logger = ensureLogger(sthis, "decodeGatewayMetaBytesToDbMeta");
2319
2323
  return Promise.all(
2320
2324
  crdtEntries.map(async (crdtEntry) => {
2321
2325
  const eventBlock = await (0, import_clock.decodeEventBlock)(import_base64.base64pad.decode(crdtEntry.data));
2322
2326
  const dbMeta = (0, import_dag_json.parse)(sthis.txt.decode(eventBlock.value.data.dbMeta));
2327
+ logger.Debug().Any("crdtEntry", {
2328
+ crdtEntry,
2329
+ eventBlock,
2330
+ dbMeta,
2331
+ dbMetaStrings: dbMeta.cars.map((car) => car.toString())
2332
+ }).Msg("CRDT entry");
2323
2333
  return {
2324
2334
  eventCid: eventBlock.cid,
2325
2335
  parents: crdtEntry.parents,
@@ -3345,10 +3355,10 @@ async function getBlock(blocks, cidString) {
3345
3355
 
3346
3356
  // src/indexer-helpers.ts
3347
3357
  var import_sha26 = require("multiformats/hashes/sha2");
3348
- var codec2 = __toESM(require("@ipld/dag-cbor"), 1);
3358
+ var codec2 = __toESM(require("@fireproof/vendor/@ipld/dag-cbor"), 1);
3349
3359
  var import_charwise = __toESM(require("charwise"), 1);
3350
3360
  var DbIndex = __toESM(require("prolly-trees/db-index"), 1);
3351
- var import_utils13 = require("prolly-trees/utils");
3361
+ var import_utils14 = require("prolly-trees/utils");
3352
3362
  var import_cache = require("prolly-trees/cache");
3353
3363
  var IndexTree = class {
3354
3364
  };
@@ -3356,17 +3366,17 @@ function refCompare(aRef, bRef) {
3356
3366
  if (Number.isNaN(aRef)) return -1;
3357
3367
  if (Number.isNaN(bRef)) throw new Error("ref may not be Infinity or NaN");
3358
3368
  if (aRef === Infinity) return 1;
3359
- return (0, import_utils13.simpleCompare)(aRef, bRef);
3369
+ return (0, import_utils14.simpleCompare)(aRef, bRef);
3360
3370
  }
3361
3371
  function compare(a, b) {
3362
3372
  const [aKey, aRef] = a;
3363
3373
  const [bKey, bRef] = b;
3364
- const comp = (0, import_utils13.simpleCompare)(aKey, bKey);
3374
+ const comp = (0, import_utils14.simpleCompare)(aKey, bKey);
3365
3375
  if (comp !== 0) return comp;
3366
3376
  return refCompare(aRef, bRef);
3367
3377
  }
3368
- var byKeyOpts = { cache: import_cache.nocache, chunker: (0, import_utils13.bf)(30), codec: codec2, hasher: import_sha26.sha256, compare };
3369
- var byIdOpts = { cache: import_cache.nocache, chunker: (0, import_utils13.bf)(30), codec: codec2, hasher: import_sha26.sha256, compare: import_utils13.simpleCompare };
3378
+ var byKeyOpts = { cache: import_cache.nocache, chunker: (0, import_utils14.bf)(30), codec: codec2, hasher: import_sha26.sha256, compare };
3379
+ var byIdOpts = { cache: import_cache.nocache, chunker: (0, import_utils14.bf)(30), codec: codec2, hasher: import_sha26.sha256, compare: import_utils14.simpleCompare };
3370
3380
  function indexEntriesForChanges(changes, mapFn) {
3371
3381
  const indexEntries = [];
3372
3382
  changes.forEach(({ id: key, value, del }) => {
@@ -3672,8 +3682,8 @@ var Index = class {
3672
3682
  };
3673
3683
 
3674
3684
  // src/crdt-clock.ts
3675
- var import_clock3 = require("@web3-storage/pail/clock");
3676
- var import_crdt2 = require("@web3-storage/pail/crdt");
3685
+ var import_clock3 = require("@fireproof/vendor/@web3-storage/pail/clock");
3686
+ var import_crdt2 = require("@fireproof/vendor/@web3-storage/pail/crdt");
3677
3687
  var import_cement14 = require("@adviser/cement");
3678
3688
 
3679
3689
  // src/apply-head-queue.ts
@@ -4183,6 +4193,6 @@ init_utils();
4183
4193
 
4184
4194
  // src/version.ts
4185
4195
  var PACKAGE_VERSION = Object.keys({
4186
- "0.19.115": "xxxx"
4196
+ "0.19.116": "xxxx"
4187
4197
  })[0];
4188
4198
  //# sourceMappingURL=index.cjs.map