@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.
- package/{chunk-JO62JMEP.js → chunk-2D2X6HIB.js} +1 -1
- package/chunk-2D2X6HIB.js.map +1 -0
- package/{chunk-UUOLR3GZ.js → chunk-WVN66YAN.js} +2 -2
- package/deno.json +2 -7
- package/{gateway-UT5GFV5R.js → gateway-3WGEEKVQ.js} +3 -3
- package/index.cjs +38 -28
- package/index.cjs.map +1 -1
- package/index.d.cts +6 -6
- package/index.d.ts +6 -6
- package/index.js +38 -29
- package/index.js.map +1 -1
- package/{key-bag-file-GTGVZHHM.js → key-bag-file-CBCAWTVG.js} +3 -3
- package/{key-bag-indexdb-NZMTNJLK.js → key-bag-indexdb-RTSMSGM7.js} +3 -3
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +3 -8
- package/react/index.cjs.map +1 -1
- package/react/index.d.cts +2 -2
- package/react/index.d.ts +2 -2
- package/react/index.js.map +1 -1
- package/react/metafile-cjs.json +1 -1
- package/react/metafile-esm.json +1 -1
- package/tests/blockstore/fragment-gateway.test.ts +1 -1
- package/tests/blockstore/keyed-crypto.test.ts +2 -2
- package/tests/blockstore/loader.test.ts +3 -3
- package/tests/blockstore/store.test.ts +1 -1
- package/tests/blockstore/transaction.test.ts +1 -1
- package/tests/fireproof/config.test.ts +1 -1
- package/tests/fireproof/crdt.test.ts +1 -1
- package/tests/fireproof/indexer.test.ts +1 -1
- package/tests/fireproof/utils.test.ts +1 -1
- package/{utils-5UEZAKVP.js → utils-XESRUKDJ.js} +3 -3
- package/web/gateway-impl.cjs.map +1 -1
- package/web/gateway-impl.js.map +1 -1
- package/web/metafile-cjs.json +1 -1
- package/web/metafile-esm.json +1 -1
- package/chunk-JO62JMEP.js.map +0 -1
- package/index.global.js +0 -149
- package/index.global.js.map +0 -1
- package/metafile-iife.json +0 -1
- /package/{chunk-UUOLR3GZ.js.map → chunk-WVN66YAN.js.map} +0 -0
- /package/{gateway-UT5GFV5R.js.map → gateway-3WGEEKVQ.js.map} +0 -0
- /package/{key-bag-file-GTGVZHHM.js.map → key-bag-file-CBCAWTVG.js.map} +0 -0
- /package/{key-bag-indexdb-NZMTNJLK.js.map → key-bag-indexdb-RTSMSGM7.js.map} +0 -0
- /package/{utils-5UEZAKVP.js.map → utils-XESRUKDJ.js.map} +0 -0
@@ -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-
|
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-
|
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
|
-
"
|
5
|
+
"@fireproof/vendor": "npm:@fireproof/vendor@^1.0.0",
|
6
6
|
"@ipld/unixfs": "npm:@ipld/unixfs@^3.0.0",
|
7
|
-
"
|
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-
|
8
|
+
} from "./chunk-WVN66YAN.js";
|
9
9
|
import {
|
10
10
|
NotFoundError,
|
11
11
|
ensureLogger,
|
12
12
|
exceptionWrapper,
|
13
13
|
isNotFoundError
|
14
|
-
} from "./chunk-
|
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-
|
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
|
2312
|
-
sthis.logger.Debug().
|
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.
|
2316
|
-
sthis.logger.Debug().
|
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
|
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,
|
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,
|
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,
|
3369
|
-
var byIdOpts = { cache: import_cache.nocache, chunker: (0,
|
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.
|
4196
|
+
"0.19.116": "xxxx"
|
4187
4197
|
})[0];
|
4188
4198
|
//# sourceMappingURL=index.cjs.map
|