@fireproof/core 0.19.119 → 0.19.121-dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. package/{chunk-WVN66YAN.js → chunk-F4FC6B2T.js} +5 -13
  2. package/chunk-F4FC6B2T.js.map +1 -0
  3. package/{chunk-2D2X6HIB.js → chunk-RXC4JGJT.js} +13 -2
  4. package/chunk-RXC4JGJT.js.map +1 -0
  5. package/deno.json +2 -2
  6. package/{gateway-G4CPXEQF.js → gateway-C62S56GY.js} +2 -2
  7. package/{gateway-G4CPXEQF.js.map → gateway-C62S56GY.js.map} +1 -1
  8. package/{gateway-2O7QPHGW.js → gateway-VVS4QWDA.js} +3 -3
  9. package/gateway-VVS4QWDA.js.map +1 -0
  10. package/index.cjs +22 -18
  11. package/index.cjs.map +1 -1
  12. package/index.d.cts +2 -1
  13. package/index.d.ts +2 -1
  14. package/index.js +12 -10
  15. package/index.js.map +1 -1
  16. package/{key-bag-file-CBCAWTVG.js → key-bag-file-PWZ3QE7B.js} +3 -3
  17. package/{key-bag-indexdb-RTSMSGM7.js → key-bag-indexdb-SYG3YD4D.js} +3 -3
  18. package/metafile-cjs.json +1 -1
  19. package/metafile-esm.json +1 -1
  20. package/node/mem-filesystem.cjs.map +1 -1
  21. package/node/mem-filesystem.d.cts +1 -1
  22. package/node/mem-filesystem.d.ts +1 -1
  23. package/node/mem-filesystem.js.map +1 -1
  24. package/node/metafile-cjs.json +1 -1
  25. package/node/metafile-esm.json +1 -1
  26. package/node/node-filesystem.cjs.map +1 -1
  27. package/node/node-filesystem.d.cts +1 -2
  28. package/node/node-filesystem.d.ts +1 -2
  29. package/node/node-filesystem.js.map +1 -1
  30. package/package.json +14 -14
  31. package/react/index.cjs.map +1 -1
  32. package/react/index.d.cts +4 -33
  33. package/react/index.d.ts +4 -33
  34. package/react/index.js.map +1 -1
  35. package/react/metafile-cjs.json +1 -1
  36. package/react/metafile-esm.json +1 -1
  37. package/tests/fireproof/config.test.ts +1 -0
  38. package/tests/fireproof/multiple-ledger.test.ts +1 -1
  39. package/{utils-XESRUKDJ.js → utils-ZVVGAXFE.js} +3 -3
  40. package/web/gateway-impl.cjs +24 -167
  41. package/web/gateway-impl.cjs.map +1 -1
  42. package/web/gateway-impl.d.cts +5 -59
  43. package/web/gateway-impl.d.ts +5 -59
  44. package/web/gateway-impl.js +7 -162
  45. package/web/gateway-impl.js.map +1 -1
  46. package/web/metafile-cjs.json +1 -1
  47. package/web/metafile-esm.json +1 -1
  48. package/chunk-2D2X6HIB.js.map +0 -1
  49. package/chunk-WVN66YAN.js.map +0 -1
  50. package/gateway-2O7QPHGW.js.map +0 -1
  51. package/node/types-DARSfXlb.d.cts +0 -23
  52. package/node/types-DARSfXlb.d.ts +0 -23
  53. /package/{key-bag-file-CBCAWTVG.js.map → key-bag-file-PWZ3QE7B.js.map} +0 -0
  54. /package/{key-bag-indexdb-RTSMSGM7.js.map → key-bag-indexdb-SYG3YD4D.js.map} +0 -0
  55. /package/{utils-XESRUKDJ.js.map → utils-ZVVGAXFE.js.map} +0 -0
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  getStore
3
- } from "./chunk-2D2X6HIB.js";
3
+ } from "./chunk-RXC4JGJT.js";
4
4
 
5
- // src/runtime/gateways/file/get-file-system-dynamic.ts
5
+ // src/runtime/gateways/file/get-file-system-static.ts
6
6
  import { KeyedResolvOnce } from "@adviser/cement";
7
7
  var externalLoaders = new KeyedResolvOnce();
8
8
  async function getFileSystem(url) {
@@ -11,11 +11,7 @@ async function getFileSystem(url) {
11
11
  switch (name) {
12
12
  case "mem":
13
13
  fs = await externalLoaders.get(name).once(async () => {
14
- const memjs = "./node/mem-filesystem.js";
15
- const { MemFileSystem } = await import(
16
- /* @vite-ignore */
17
- memjs
18
- );
14
+ const { MemFileSystem } = await import("@fireproof/core/mem");
19
15
  return new MemFileSystem();
20
16
  });
21
17
  break;
@@ -26,11 +22,7 @@ async function getFileSystem(url) {
26
22
  // }
27
23
  default:
28
24
  fs = await externalLoaders.get(name).once(async () => {
29
- const nodejs = "./node/node-filesystem.js";
30
- const { NodeFileSystem } = await import(
31
- /* @vite-ignore */
32
- nodejs
33
- );
25
+ const { NodeFileSystem } = await import("@fireproof/core/node");
34
26
  return new NodeFileSystem();
35
27
  });
36
28
  }
@@ -68,4 +60,4 @@ export {
68
60
  getPath,
69
61
  getFileName
70
62
  };
71
- //# sourceMappingURL=chunk-WVN66YAN.js.map
63
+ //# sourceMappingURL=chunk-F4FC6B2T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/gateways/file/get-file-system-static.ts","../../src/runtime/gateways/file/utils.ts"],"sourcesContent":["import { KeyedResolvOnce, type URI } from \"@adviser/cement\";\nimport type { SysFileSystem } from \"../../../types.js\";\n\nconst externalLoaders = new KeyedResolvOnce<SysFileSystem>();\nexport async function getFileSystem(url: URI): Promise<SysFileSystem> {\n const name = url.getParam(\"fs\", \"node\");\n let fs: SysFileSystem;\n switch (name) {\n case \"mem\":\n fs = await externalLoaders.get(name).once(async () => {\n const { MemFileSystem } = await import(\"@fireproof/core/mem\");\n return new MemFileSystem();\n });\n break;\n // case 'deno': {\n // const { DenoFileSystem } = await import(\"./deno-filesystem.js\");\n // fs = new DenoFileSystem();\n // break;\n // }\n default:\n fs = await externalLoaders.get(name).once(async () => {\n const { NodeFileSystem } = await import(\"@fireproof/core/node\");\n return new NodeFileSystem();\n });\n }\n return fs.start();\n}\n","import { URI } from \"@adviser/cement\";\nimport { getStore } from \"../../../utils.js\";\nimport { SuperThis } from \"../../../types.js\";\nexport * from \"./get-file-system-static.js\";\n\nexport function getPath(url: URI, sthis: SuperThis): string {\n const basePath = url.pathname;\n // .toString()\n // .replace(new RegExp(`^${url.protocol}//`), \"\")\n // .replace(/\\?.*$/, \"\");\n const name = url.getParam(\"name\");\n if (name) {\n const version = url.getParam(\"version\");\n if (!version) throw sthis.logger.Error().Url(url).Msg(`version not found`).AsError();\n return sthis.pathOps.join(basePath, version, name);\n }\n return sthis.pathOps.join(basePath);\n}\n\nexport function getFileName(url: URI, sthis: SuperThis): string {\n const key = url.getParam(\"key\");\n if (!key) throw sthis.logger.Error().Url(url).Msg(`key not found`).AsError();\n const res = getStore(url, sthis, (...a: string[]) => a.join(\"-\"));\n switch (res.store) {\n case \"data\":\n return sthis.pathOps.join(res.name, key + \".car\");\n case \"wal\":\n case \"meta\":\n return sthis.pathOps.join(res.name, key + \".json\");\n default:\n throw sthis.logger.Error().Url(url).Msg(`unsupported store type`).AsError();\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,uBAAiC;AAG1C,IAAM,kBAAkB,IAAI,gBAA+B;AAC3D,eAAsB,cAAc,KAAkC;AACpE,QAAM,OAAO,IAAI,SAAS,MAAM,MAAM;AACtC,MAAI;AACJ,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,WAAK,MAAM,gBAAgB,IAAI,IAAI,EAAE,KAAK,YAAY;AACpD,cAAM,EAAE,cAAc,IAAI,MAAM,OAAO,qBAAqB;AAC5D,eAAO,IAAI,cAAc;AAAA,MAC3B,CAAC;AACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMF;AACE,WAAK,MAAM,gBAAgB,IAAI,IAAI,EAAE,KAAK,YAAY;AACpD,cAAM,EAAE,eAAe,IAAI,MAAM,OAAO,sBAAsB;AAC9D,eAAO,IAAI,eAAe;AAAA,MAC5B,CAAC;AAAA,EACL;AACA,SAAO,GAAG,MAAM;AAClB;;;ACrBO,SAAS,QAAQ,KAAU,OAA0B;AAC1D,QAAM,WAAW,IAAI;AAIrB,QAAM,OAAO,IAAI,SAAS,MAAM;AAChC,MAAI,MAAM;AACR,UAAM,UAAU,IAAI,SAAS,SAAS;AACtC,QAAI,CAAC,QAAS,OAAM,MAAM,OAAO,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,mBAAmB,EAAE,QAAQ;AACnF,WAAO,MAAM,QAAQ,KAAK,UAAU,SAAS,IAAI;AAAA,EACnD;AACA,SAAO,MAAM,QAAQ,KAAK,QAAQ;AACpC;AAEO,SAAS,YAAY,KAAU,OAA0B;AAC9D,QAAM,MAAM,IAAI,SAAS,KAAK;AAC9B,MAAI,CAAC,IAAK,OAAM,MAAM,OAAO,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,eAAe,EAAE,QAAQ;AAC3E,QAAM,MAAM,SAAS,KAAK,OAAO,IAAI,MAAgB,EAAE,KAAK,GAAG,CAAC;AAChE,UAAQ,IAAI,OAAO;AAAA,IACjB,KAAK;AACH,aAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,MAAM;AAAA,IAClD,KAAK;AAAA,IACL,KAAK;AACH,aAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,OAAO;AAAA,IACnD;AACE,YAAM,MAAM,OAAO,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,wBAAwB,EAAE,QAAQ;AAAA,EAC9E;AACF;","names":[]}
@@ -90,12 +90,20 @@ var txtOps = {
90
90
  // eslint-disable-next-line no-restricted-globals
91
91
  decode: (input) => new TextDecoder().decode(input)
92
92
  };
93
+ var _onSuperThis = /* @__PURE__ */ new Map();
94
+ function onSuperThis(fn) {
95
+ const key = `onSuperThis-${Math.random().toString(36).slice(2)}`;
96
+ _onSuperThis.set(key, fn);
97
+ return () => {
98
+ _onSuperThis.delete(key);
99
+ };
100
+ }
93
101
  function ensureSuperThis(osthis) {
94
102
  const env = envFactory({
95
103
  symbol: osthis?.env?.symbol || "FP_ENV",
96
104
  presetEnv: osthis?.env?.presetEnv || presetEnv()
97
105
  });
98
- return new SuperThisImpl({
106
+ const ret = new SuperThisImpl({
99
107
  logger: osthis?.logger || globalLogger(),
100
108
  env,
101
109
  crypto: osthis?.crypto || toCryptoRuntime(),
@@ -103,6 +111,8 @@ function ensureSuperThis(osthis) {
103
111
  pathOps,
104
112
  txt: osthis?.txt || txtOps
105
113
  });
114
+ _onSuperThis.forEach((fn) => fn(ret));
115
+ return ret;
106
116
  }
107
117
  function ensureSuperLog(sthis, componentName, ctx) {
108
118
  return sthis.clone({
@@ -275,6 +285,7 @@ function UInt8ArrayEqual(a, b) {
275
285
 
276
286
  export {
277
287
  Result,
288
+ onSuperThis,
278
289
  ensureSuperThis,
279
290
  ensureSuperLog,
280
291
  ensureLogger,
@@ -287,4 +298,4 @@ export {
287
298
  dataDir,
288
299
  UInt8ArrayEqual
289
300
  };
290
- //# sourceMappingURL=chunk-2D2X6HIB.js.map
301
+ //# sourceMappingURL=chunk-RXC4JGJT.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\nconst _onSuperThis = new Map<string, (sthis: SuperThis) => void>();\nexport function onSuperThis(fn: (sthis: SuperThis) => void): () => void {\n const key = `onSuperThis-${Math.random().toString(36).slice(2)}`;\n _onSuperThis.set(key, fn);\n return () => {\n _onSuperThis.delete(key);\n };\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 const ret = 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 _onSuperThis.forEach((fn) => fn(ret));\n return ret;\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":[]}
package/deno.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "imports": {
3
3
  "@fireproof/core": "./index.js",
4
- "@adviser/cement": "npm:@adviser/cement@^0.3.0",
5
- "@fireproof/vendor": "npm:@fireproof/vendor@^1.0.0",
4
+ "@adviser/cement": "npm:@adviser/cement@^0.3.3",
5
+ "@fireproof/vendor": "npm:@fireproof/vendor@^1.0.3",
6
6
  "@ipld/unixfs": "npm:@ipld/unixfs@^3.0.0",
7
7
  "multiformats": "npm:multiformats@^13.3.1",
8
8
  "charwise": "npm:charwise@^3.0.1",
@@ -5,7 +5,7 @@ import { ResolveOnce } from "@adviser/cement";
5
5
 
6
6
  // src/runtime/gateways/indexdb/gateway-import-static.ts
7
7
  function gatewayImport() {
8
- return import("./web/gateway-impl.js");
8
+ return import("@fireproof/core/web");
9
9
  }
10
10
 
11
11
  // src/runtime/gateways/indexdb/gateway.ts
@@ -63,4 +63,4 @@ export {
63
63
  IndexDBGateway,
64
64
  IndexDBTestStore
65
65
  };
66
- //# sourceMappingURL=gateway-G4CPXEQF.js.map
66
+ //# sourceMappingURL=gateway-C62S56GY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtime/gateways/indexdb/gateway.ts","../../src/runtime/gateways/indexdb/gateway-import-static.ts"],"sourcesContent":["import { ResolveOnce, Result, URI } from \"@adviser/cement\";\nimport { Gateway, GetResult, TestGateway, VoidResult } from \"../../../blockstore/gateway.js\";\nimport { SuperThis } from \"../../../types.js\";\nimport { gatewayImport } from \"./gateway-import-static.js\";\n\nconst loadExternal = new ResolveOnce<Gateway>();\nexport class IndexDBGateway implements Gateway {\n readonly sthis: SuperThis;\n\n constructor(sthis: SuperThis) {\n this.sthis = sthis;\n }\n private getGateway(): Promise<Gateway> {\n return loadExternal.once(() => {\n return gatewayImport().then(({ IndexDBGatewayImpl }) => new IndexDBGatewayImpl(this.sthis));\n });\n }\n buildUrl(baseUrl: URI, key: string): Promise<Result<URI>> {\n return this.getGateway().then((gw) => gw.buildUrl(baseUrl, key));\n }\n start(baseUrl: URI): Promise<Result<URI>> {\n return this.getGateway().then((gw) => gw.start(baseUrl));\n }\n close(baseUrl: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.close(baseUrl));\n }\n destroy(baseUrl: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.destroy(baseUrl));\n }\n put(url: URI, body: Uint8Array): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.put(url, body));\n }\n get(url: URI): Promise<GetResult> {\n return this.getGateway().then((gw) => gw.get(url));\n }\n delete(url: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.delete(url));\n }\n // subscribe?(url: URI, callback: (meta: Uint8Array) => void): Promise<UnsubscribeResult> {\n // // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n // return this.getGateway().then(gw => gw.subscribe!(url, callback));\n // }\n}\n\nexport class IndexDBTestStore implements TestGateway {\n readonly sthis: SuperThis;\n constructor(sthis: SuperThis) {\n this.sthis = sthis;\n }\n readonly loadExternal = new ResolveOnce<TestGateway>();\n private getGateway(): Promise<TestGateway> {\n return this.loadExternal.once(() => {\n return gatewayImport().then(({ IndexDBTestStore }) => new IndexDBTestStore(this.sthis));\n });\n }\n\n get(url: URI, key: string) {\n return this.getGateway().then((gw) => gw.get(url, key));\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function gatewayImport(): Promise<any> {\n return import(\"./web/gateway-impl.js\");\n}\n"],"mappings":";;;AAAA,SAAS,mBAAgC;;;ACClC,SAAS,gBAA8B;AAC5C,SAAO,OAAO,uBAAuB;AACvC;;;ADEA,IAAM,eAAe,IAAI,YAAqB;AACvC,IAAM,iBAAN,MAAwC;AAAA,EAG7C,YAAY,OAAkB;AAC5B,SAAK,QAAQ;AAAA,EACf;AAAA,EACQ,aAA+B;AACrC,WAAO,aAAa,KAAK,MAAM;AAC7B,aAAO,cAAc,EAAE,KAAK,CAAC,EAAE,mBAAmB,MAAM,IAAI,mBAAmB,KAAK,KAAK,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH;AAAA,EACA,SAAS,SAAc,KAAmC;AACxD,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,SAAS,GAAG,CAAC;AAAA,EACjE;AAAA,EACA,MAAM,SAAoC;AACxC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC;AAAA,EACzD;AAAA,EACA,MAAM,SAAmC;AACvC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC;AAAA,EACzD;AAAA,EACA,QAAQ,SAAmC;AACzC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,QAAQ,OAAO,CAAC;AAAA,EAC3D;AAAA,EACA,IAAI,KAAU,MAAuC;AACnD,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;AAAA,EACzD;AAAA,EACA,IAAI,KAA8B;AAChC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC;AAAA,EACnD;AAAA,EACA,OAAO,KAA+B;AACpC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAKF;AAEO,IAAM,mBAAN,MAA8C;AAAA,EAEnD,YAAY,OAAkB;AAG9B,SAAS,eAAe,IAAI,YAAyB;AAFnD,SAAK,QAAQ;AAAA,EACf;AAAA,EAEQ,aAAmC;AACzC,WAAO,KAAK,aAAa,KAAK,MAAM;AAClC,aAAO,cAAc,EAAE,KAAK,CAAC,EAAE,kBAAAA,kBAAiB,MAAM,IAAIA,kBAAiB,KAAK,KAAK,CAAC;AAAA,IACxF,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,KAAU,KAAa;AACzB,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC;AAAA,EACxD;AACF;","names":["IndexDBTestStore"]}
1
+ {"version":3,"sources":["../../src/runtime/gateways/indexdb/gateway.ts","../../src/runtime/gateways/indexdb/gateway-import-static.ts"],"sourcesContent":["import { ResolveOnce, Result, URI } from \"@adviser/cement\";\nimport { Gateway, GetResult, TestGateway, VoidResult } from \"../../../blockstore/gateway.js\";\nimport { SuperThis } from \"../../../types.js\";\nimport { gatewayImport } from \"./gateway-import-static.js\";\n\nconst loadExternal = new ResolveOnce<Gateway>();\nexport class IndexDBGateway implements Gateway {\n readonly sthis: SuperThis;\n\n constructor(sthis: SuperThis) {\n this.sthis = sthis;\n }\n private getGateway(): Promise<Gateway> {\n return loadExternal.once(() => {\n return gatewayImport().then(({ IndexDBGatewayImpl }) => new IndexDBGatewayImpl(this.sthis));\n });\n }\n buildUrl(baseUrl: URI, key: string): Promise<Result<URI>> {\n return this.getGateway().then((gw) => gw.buildUrl(baseUrl, key));\n }\n start(baseUrl: URI): Promise<Result<URI>> {\n return this.getGateway().then((gw) => gw.start(baseUrl));\n }\n close(baseUrl: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.close(baseUrl));\n }\n destroy(baseUrl: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.destroy(baseUrl));\n }\n put(url: URI, body: Uint8Array): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.put(url, body));\n }\n get(url: URI): Promise<GetResult> {\n return this.getGateway().then((gw) => gw.get(url));\n }\n delete(url: URI): Promise<VoidResult> {\n return this.getGateway().then((gw) => gw.delete(url));\n }\n // subscribe?(url: URI, callback: (meta: Uint8Array) => void): Promise<UnsubscribeResult> {\n // // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n // return this.getGateway().then(gw => gw.subscribe!(url, callback));\n // }\n}\n\nexport class IndexDBTestStore implements TestGateway {\n readonly sthis: SuperThis;\n constructor(sthis: SuperThis) {\n this.sthis = sthis;\n }\n readonly loadExternal = new ResolveOnce<TestGateway>();\n private getGateway(): Promise<TestGateway> {\n return this.loadExternal.once(() => {\n return gatewayImport().then(({ IndexDBTestStore }) => new IndexDBTestStore(this.sthis));\n });\n }\n\n get(url: URI, key: string) {\n return this.getGateway().then((gw) => gw.get(url, key));\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function gatewayImport(): Promise<any> {\n return import(\"@fireproof/core/web\");\n}\n"],"mappings":";;;AAAA,SAAS,mBAAgC;;;ACClC,SAAS,gBAA8B;AAC5C,SAAO,OAAO,qBAAqB;AACrC;;;ADEA,IAAM,eAAe,IAAI,YAAqB;AACvC,IAAM,iBAAN,MAAwC;AAAA,EAG7C,YAAY,OAAkB;AAC5B,SAAK,QAAQ;AAAA,EACf;AAAA,EACQ,aAA+B;AACrC,WAAO,aAAa,KAAK,MAAM;AAC7B,aAAO,cAAc,EAAE,KAAK,CAAC,EAAE,mBAAmB,MAAM,IAAI,mBAAmB,KAAK,KAAK,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH;AAAA,EACA,SAAS,SAAc,KAAmC;AACxD,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,SAAS,GAAG,CAAC;AAAA,EACjE;AAAA,EACA,MAAM,SAAoC;AACxC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC;AAAA,EACzD;AAAA,EACA,MAAM,SAAmC;AACvC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC;AAAA,EACzD;AAAA,EACA,QAAQ,SAAmC;AACzC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,QAAQ,OAAO,CAAC;AAAA,EAC3D;AAAA,EACA,IAAI,KAAU,MAAuC;AACnD,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;AAAA,EACzD;AAAA,EACA,IAAI,KAA8B;AAChC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC;AAAA,EACnD;AAAA,EACA,OAAO,KAA+B;AACpC,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAKF;AAEO,IAAM,mBAAN,MAA8C;AAAA,EAEnD,YAAY,OAAkB;AAG9B,SAAS,eAAe,IAAI,YAAyB;AAFnD,SAAK,QAAQ;AAAA,EACf;AAAA,EAEQ,aAAmC;AACzC,WAAO,KAAK,aAAa,KAAK,MAAM;AAClC,aAAO,cAAc,EAAE,KAAK,CAAC,EAAE,kBAAAA,kBAAiB,MAAM,IAAIA,kBAAiB,KAAK,KAAK,CAAC;AAAA,IACxF,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,KAAU,KAAa;AACzB,WAAO,KAAK,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC;AAAA,EACxD;AACF;","names":["IndexDBTestStore"]}
@@ -5,13 +5,13 @@ import {
5
5
  getFileName,
6
6
  getFileSystem,
7
7
  getPath
8
- } from "./chunk-WVN66YAN.js";
8
+ } from "./chunk-F4FC6B2T.js";
9
9
  import {
10
10
  NotFoundError,
11
11
  ensureLogger,
12
12
  exceptionWrapper,
13
13
  isNotFoundError
14
- } from "./chunk-2D2X6HIB.js";
14
+ } from "./chunk-RXC4JGJT.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-2O7QPHGW.js.map
145
+ //# sourceMappingURL=gateway-VVS4QWDA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/gateways/file/gateway.ts"],"sourcesContent":["import { FILESTORE_VERSION } from \"./version.js\";\nimport { exception2Result, KeyedResolvOnce, Logger, Result, URI } from \"@adviser/cement\";\nimport { ensureLogger, exceptionWrapper, isNotFoundError, NotFoundError } from \"../../../utils.js\";\nimport { Gateway, GetResult, TestGateway } from \"../../../blockstore/gateway.js\";\nimport { getFileName, getPath } from \"./utils.js\";\nimport { getFileSystem } from \"./get-file-system-static.js\";\nimport { SuperThis, SysFileSystem } from \"../../../types.js\";\n\nconst versionFiles = new KeyedResolvOnce<string>();\n\nexport class FileGateway implements Gateway {\n // abstract readonly storeType: StoreType;\n readonly logger: Logger;\n readonly sthis: SuperThis;\n\n _fs?: SysFileSystem;\n\n get fs(): SysFileSystem {\n if (!this._fs) throw this.logger.Error().Msg(\"fs not initialized\").AsError();\n return this._fs;\n }\n\n constructor(sthis: SuperThis) {\n this.sthis = sthis;\n this.logger = sthis.logger;\n }\n\n async getVersionFromFile(path: string, logger: Logger): Promise<string> {\n return versionFiles.get(path).once(async () => {\n await this.fs.mkdir(path, { recursive: true });\n const vFile = this.sthis.pathOps.join(path, \"version\");\n const vFileStat = await this.fs.stat(vFile).catch(() => undefined);\n if (!vFileStat) {\n await this.fs.writefile(this.sthis.pathOps.join(path, \"version\"), FILESTORE_VERSION);\n return FILESTORE_VERSION;\n } else if (!vFileStat.isFile()) {\n throw logger.Error().Str(\"file\", vFile).Msg(`version file is a directory`).AsError();\n }\n const v = await this.fs.readfile(vFile);\n const vStr = this.sthis.txt.decode(v);\n if (vStr !== FILESTORE_VERSION) {\n logger.Warn().Str(\"file\", vFile).Str(\"from\", vStr).Str(\"expected\", FILESTORE_VERSION).Msg(`version mismatch`);\n }\n return vStr;\n });\n }\n\n start(baseURL: URI): Promise<Result<URI>> {\n return exception2Result(async () => {\n this._fs = await getFileSystem(baseURL);\n await this.fs.start();\n const url = baseURL.build();\n url.defParam(\"version\", FILESTORE_VERSION);\n // url.defParam(\"store\", this.storeType);\n const dbUrl = await this.buildUrl(url.URI(), \"dummy\");\n const dbdirFile = this.getFilePath(dbUrl.Ok());\n await this.fs.mkdir(this.sthis.pathOps.dirname(dbdirFile), { recursive: true });\n const dbroot = this.sthis.pathOps.dirname(dbdirFile);\n this.logger.Debug().Url(url.URI()).Str(\"dbroot\", dbroot).Msg(\"start\");\n url.setParam(\"version\", await this.getVersionFromFile(dbroot, this.logger));\n return url.URI();\n });\n }\n\n async buildUrl(baseUrl: URI, key: string): Promise<Result<URI>> {\n return Result.Ok(baseUrl.build().setParam(\"key\", key).URI());\n }\n\n async close(): Promise<Result<void>> {\n return Result.Ok(undefined);\n }\n // abstract buildUrl(baseUrl: URL, key: string): Promise<Result<URL>>;\n\n getFilePath(url: URI): string {\n const key = url.getParam(\"key\");\n if (!key) throw this.logger.Error().Url(url).Msg(`key not found`).AsError();\n return this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));\n }\n\n async put(url: URI, body: Uint8Array): Promise<Result<void>> {\n return exception2Result(async () => {\n const file = await this.getFilePath(url);\n this.logger.Debug().Str(\"url\", url.toString()).Str(\"file\", file).Msg(\"put\");\n await this.fs.writefile(file, body);\n });\n }\n\n async get(url: URI): Promise<GetResult> {\n return exceptionWrapper(async () => {\n const file = this.getFilePath(url);\n try {\n const res = await this.fs.readfile(file);\n this.logger.Debug().Url(url.asURL()).Str(\"file\", file).Msg(\"get\");\n return Result.Ok(new Uint8Array(res));\n } catch (e: unknown) {\n // this.logger.Error().Err(e).Str(\"file\", file).Msg(\"get\");\n if (isNotFoundError(e)) {\n return Result.Err(new NotFoundError(`file not found: ${file}`));\n }\n return Result.Err(e as Error);\n }\n });\n }\n\n async delete(url: URI): Promise<Result<void>> {\n return exception2Result(async () => {\n await this.fs.unlink(this.getFilePath(url));\n });\n }\n\n async destroy(baseURL: URI): Promise<Result<void>> {\n const url = await this.buildUrl(baseURL, \"x\");\n if (url.isErr()) return url;\n const filepath = this.sthis.pathOps.dirname(this.getFilePath(url.Ok()));\n let files: string[] = [];\n try {\n files = await this.fs.readdir(filepath);\n } catch (e: unknown) {\n if (!isNotFoundError(e)) {\n throw this.logger.Error().Err(e).Str(\"dir\", filepath).Msg(\"destroy:readdir\").AsError();\n }\n }\n for (const file of files) {\n const pathed = this.sthis.pathOps.join(filepath, file);\n try {\n await this.fs.unlink(pathed);\n } catch (e: unknown) {\n if (!isNotFoundError(e)) {\n throw this.logger.Error().Err(e).Str(\"file\", pathed).Msg(\"destroy:unlink\").AsError();\n }\n }\n }\n return Result.Ok(undefined);\n }\n}\n\nexport class FileTestStore implements TestGateway {\n readonly logger: Logger;\n readonly sthis: SuperThis;\n constructor(sthis: SuperThis) {\n this.logger = ensureLogger(sthis, \"FileTestStore\");\n this.sthis = sthis;\n }\n\n async get(iurl: URI, key: string) {\n const url = iurl.build().setParam(\"key\", key).URI();\n const dbFile = this.sthis.pathOps.join(getPath(url, this.sthis), getFileName(url, this.sthis));\n this.logger.Debug().Url(url).Str(\"dbFile\", dbFile).Msg(\"get\");\n const buffer = await (await getFileSystem(url)).readfile(dbFile);\n this.logger.Debug().Url(url).Str(\"dbFile\", dbFile).Len(buffer).Msg(\"got\");\n return buffer;\n }\n}\n"],"mappings":"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","names":[]}
package/index.cjs CHANGED
@@ -48,12 +48,19 @@ function presetEnv() {
48
48
  ]);
49
49
  return penv;
50
50
  }
51
+ function onSuperThis(fn) {
52
+ const key = `onSuperThis-${Math.random().toString(36).slice(2)}`;
53
+ _onSuperThis.set(key, fn);
54
+ return () => {
55
+ _onSuperThis.delete(key);
56
+ };
57
+ }
51
58
  function ensureSuperThis(osthis) {
52
59
  const env = (0, import_cement.envFactory)({
53
60
  symbol: osthis?.env?.symbol || "FP_ENV",
54
61
  presetEnv: osthis?.env?.presetEnv || presetEnv()
55
62
  });
56
- return new SuperThisImpl({
63
+ const ret = new SuperThisImpl({
57
64
  logger: osthis?.logger || globalLogger(),
58
65
  env,
59
66
  crypto: osthis?.crypto || (0, import_cement.toCryptoRuntime)(),
@@ -61,6 +68,8 @@ function ensureSuperThis(osthis) {
61
68
  pathOps,
62
69
  txt: osthis?.txt || txtOps
63
70
  });
71
+ _onSuperThis.forEach((fn) => fn(ret));
72
+ return ret;
64
73
  }
65
74
  function ensureSuperLog(sthis, componentName, ctx) {
66
75
  return sthis.clone({
@@ -224,7 +233,7 @@ function UInt8ArrayEqual(a, b) {
224
233
  }
225
234
  return true;
226
235
  }
227
- var import_cement, import_base58, _globalLogger, registerFP_DEBUG, SuperThisImpl, pathOpsImpl, pathOps, txtOps, NotFoundError;
236
+ var import_cement, import_base58, _globalLogger, registerFP_DEBUG, SuperThisImpl, pathOpsImpl, pathOps, txtOps, _onSuperThis, NotFoundError;
228
237
  var init_utils = __esm({
229
238
  "src/utils.ts"() {
230
239
  "use strict";
@@ -290,6 +299,7 @@ var init_utils = __esm({
290
299
  // eslint-disable-next-line no-restricted-globals
291
300
  decode: (input) => new TextDecoder().decode(input)
292
301
  };
302
+ _onSuperThis = /* @__PURE__ */ new Map();
293
303
  NotFoundError = class extends Error {
294
304
  constructor() {
295
305
  super(...arguments);
@@ -299,18 +309,14 @@ var init_utils = __esm({
299
309
  }
300
310
  });
301
311
 
302
- // src/runtime/gateways/file/get-file-system-dynamic.ts
312
+ // src/runtime/gateways/file/get-file-system-static.ts
303
313
  async function getFileSystem(url) {
304
314
  const name = url.getParam("fs", "node");
305
315
  let fs;
306
316
  switch (name) {
307
317
  case "mem":
308
318
  fs = await externalLoaders.get(name).once(async () => {
309
- const memjs = "./node/mem-filesystem.js";
310
- const { MemFileSystem } = await import(
311
- /* @vite-ignore */
312
- memjs
313
- );
319
+ const { MemFileSystem } = await import("@fireproof/core/mem");
314
320
  return new MemFileSystem();
315
321
  });
316
322
  break;
@@ -321,19 +327,15 @@ async function getFileSystem(url) {
321
327
  // }
322
328
  default:
323
329
  fs = await externalLoaders.get(name).once(async () => {
324
- const nodejs = "./node/node-filesystem.js";
325
- const { NodeFileSystem } = await import(
326
- /* @vite-ignore */
327
- nodejs
328
- );
330
+ const { NodeFileSystem } = await import("@fireproof/core/node");
329
331
  return new NodeFileSystem();
330
332
  });
331
333
  }
332
334
  return fs.start();
333
335
  }
334
336
  var import_cement4, externalLoaders;
335
- var init_get_file_system_dynamic = __esm({
336
- "src/runtime/gateways/file/get-file-system-dynamic.ts"() {
337
+ var init_get_file_system_static = __esm({
338
+ "src/runtime/gateways/file/get-file-system-static.ts"() {
337
339
  "use strict";
338
340
  import_cement4 = require("@adviser/cement");
339
341
  externalLoaders = new import_cement4.KeyedResolvOnce();
@@ -375,7 +377,7 @@ var init_utils2 = __esm({
375
377
  "src/runtime/gateways/file/utils.ts"() {
376
378
  "use strict";
377
379
  init_utils();
378
- init_get_file_system_dynamic();
380
+ init_get_file_system_static();
379
381
  }
380
382
  });
381
383
 
@@ -513,6 +515,7 @@ var init_gateway = __esm({
513
515
  import_cement11 = require("@adviser/cement");
514
516
  init_utils();
515
517
  init_utils2();
518
+ init_get_file_system_static();
516
519
  versionFiles = new import_cement11.KeyedResolvOnce();
517
520
  FileGateway = class {
518
521
  get fs() {
@@ -640,7 +643,7 @@ var init_gateway = __esm({
640
643
 
641
644
  // src/runtime/gateways/indexdb/gateway-import-static.ts
642
645
  function gatewayImport() {
643
- return import("./web/gateway-impl.js");
646
+ return import("@fireproof/core/web");
644
647
  }
645
648
  var init_gateway_import_static = __esm({
646
649
  "src/runtime/gateways/indexdb/gateway-import-static.ts"() {
@@ -738,6 +741,7 @@ __export(index_exports, {
738
741
  index: () => index,
739
742
  isFalsy: () => isFalsy,
740
743
  isNotFoundError: () => isNotFoundError,
744
+ onSuperThis: () => onSuperThis,
741
745
  rt: () => runtime_exports,
742
746
  runtime: () => runtime_exports,
743
747
  throwFalsy: () => throwFalsy
@@ -4215,6 +4219,6 @@ init_utils();
4215
4219
 
4216
4220
  // src/version.ts
4217
4221
  var PACKAGE_VERSION = Object.keys({
4218
- "0.19.119": "xxxx"
4222
+ "0.19.121-dev": "xxxx"
4219
4223
  })[0];
4220
4224
  //# sourceMappingURL=index.cjs.map