@fuzdev/fuz_app 0.132.1 → 0.133.0

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/dist/db/CLAUDE.md CHANGED
@@ -178,7 +178,7 @@ DO NOTHING`), `_put_fact_refs`, `_get_fact` / `_get_fact_meta` / `_has_fact`
178
178
  `fsync`ed before the rename publishes it (twins the Rust `fuz_fact` §fsync
179
179
  posture: data-sync before rename, parent-dir fsync waived) — the serve path
180
180
  streams the file without re-hashing, so write-time durability is the guard.
181
- - **`fact_store_errors.ts`** — `PayloadTooLargeError` / `StorageFullError` (+
181
+ - **`fact_store_errors.ts`** — `FactPayloadTooLargeError` / `FactStorageFullError` (+
182
182
  `is_enospc_error`) thrown by `put_stream`, for a consumer route's 413 / 507.
183
183
  - The HTTP serving plumbing lives under `server/` (`serve_fact_route.ts`,
184
184
  `x_accel.ts`).
@@ -78,12 +78,12 @@ export interface StreamFactToDiskResult {
78
78
  * `facts_dir`), the buffer + remaining chunks spill to `<facts_dir>/.tmp/…`,
79
79
  * then `rename` into `<facts_dir>/<shard>/<rest>` once the hash is known —
80
80
  * `{kind: 'disk'}`. A body over the threshold with `facts_dir === undefined`
81
- * throws `PayloadTooLargeError` (matches `PgFactStore.put`).
82
- * - **Cap enforcement.** Aborts with `PayloadTooLargeError` the moment the
81
+ * throws `FactPayloadTooLargeError` (matches `PgFactStore.put`).
82
+ * - **Cap enforcement.** Aborts with `FactPayloadTooLargeError` the moment the
83
83
  * running byte count passes `max_bytes` — the mid-stream backstop for a
84
84
  * chunked or mis-declared `Content-Length`.
85
85
  * - **Disk-full.** An `ENOSPC` from the temp-file write surfaces as
86
- * `StorageFullError`.
86
+ * `FactStorageFullError`.
87
87
  *
88
88
  * @mutates `facts_dir` filesystem
89
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"fact_disk_storage.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/fact_disk_storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAIN,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAG5B,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,GACnF,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,GAC9D,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,GACvC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,IAAI,CACT,mBAAmB,EACnB,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,mBAAmB,GAAG,OAAO,GAAG,MAAM,CACtE,EACD,WAAW,MAAM,GAAG,SAAS,EAC7B,QAAQ,cAAc,CAAC,UAAU,CAAC,EAClC,WAAW,MAAM,EACjB,oBAAoB,MAAM,KACxB,OAAO,CAAC,sBAAsB,CA8GhC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACpC,MAAM,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,EAChG,WAAW,MAAM,EACjB,MAAM,QAAQ,EACd,OAAO,UAAU,KACf,OAAO,CAAC,WAAW,CAgBrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,GACrC,MAAM,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAC5C,WAAW,MAAM,EACjB,KAAK,MAAM,KACT,OAAO,CAAC,UAAU,CAIpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC9B,MAAM,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAC9D,WAAW,MAAM,EACjB,UAAU;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAC3D,OAAO,CAAC,MAAM,CA0BhB,CAAC"}
1
+ {"version":3,"file":"fact_disk_storage.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/fact_disk_storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAIN,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAO5B,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,GACnF,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,GAC9D,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,GACvC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,mBAAmB,GAC/B,MAAM,IAAI,CACT,mBAAmB,EACnB,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,mBAAmB,GAAG,OAAO,GAAG,MAAM,CACtE,EACD,WAAW,MAAM,GAAG,SAAS,EAC7B,QAAQ,cAAc,CAAC,UAAU,CAAC,EAClC,WAAW,MAAM,EACjB,oBAAoB,MAAM,KACxB,OAAO,CAAC,sBAAsB,CA8GhC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACpC,MAAM,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,EAChG,WAAW,MAAM,EACjB,MAAM,QAAQ,EACd,OAAO,UAAU,KACf,OAAO,CAAC,WAAW,CAgBrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,GACrC,MAAM,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAC5C,WAAW,MAAM,EACjB,KAAK,MAAM,KACT,OAAO,CAAC,UAAU,CAIpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC9B,MAAM,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAC9D,WAAW,MAAM,EACjB,UAAU;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAC3D,OAAO,CAAC,MAAM,CA0BhB,CAAC"}
@@ -36,7 +36,7 @@ import { to_hex } from '@fuzdev/fuz_util/hex.ts';
36
36
  import { FACT_HASH_PREFIX } from '@fuzdev/fuz_util/hash_schemas.ts';
37
37
  import { generate_random_base64url } from '../crypto.js';
38
38
  import { fact_disk_path, mint_file_fact_url, parse_file_fact_url } from './file_fact_url.js';
39
- import { is_enospc_error, PayloadTooLargeError, StorageFullError } from './fact_store_errors.js';
39
+ import { is_enospc_error, FactPayloadTooLargeError, FactStorageFullError } from './fact_store_errors.js';
40
40
  /** Subdirectory under `facts_dir` for in-flight atomic temp files. */
41
41
  export const FACT_TMP_DIRNAME = '.tmp';
42
42
  /** Default age (1 hour) past which a `.tmp/*` file is considered orphaned. */
@@ -54,12 +54,12 @@ export const FACT_TMP_ORPHAN_MAX_AGE_MS = 60 * 60 * 1000;
54
54
  * `facts_dir`), the buffer + remaining chunks spill to `<facts_dir>/.tmp/…`,
55
55
  * then `rename` into `<facts_dir>/<shard>/<rest>` once the hash is known —
56
56
  * `{kind: 'disk'}`. A body over the threshold with `facts_dir === undefined`
57
- * throws `PayloadTooLargeError` (matches `PgFactStore.put`).
58
- * - **Cap enforcement.** Aborts with `PayloadTooLargeError` the moment the
57
+ * throws `FactPayloadTooLargeError` (matches `PgFactStore.put`).
58
+ * - **Cap enforcement.** Aborts with `FactPayloadTooLargeError` the moment the
59
59
  * running byte count passes `max_bytes` — the mid-stream backstop for a
60
60
  * chunked or mis-declared `Content-Length`.
61
61
  * - **Disk-full.** An `ENOSPC` from the temp-file write surfaces as
62
- * `StorageFullError`.
62
+ * `FactStorageFullError`.
63
63
  *
64
64
  * @mutates `facts_dir` filesystem
65
65
  */
@@ -76,7 +76,7 @@ export const stream_fact_to_disk = async (deps, facts_dir, source, max_bytes, em
76
76
  const hash_and_count = (chunk) => {
77
77
  size += chunk.length;
78
78
  if (size > max_bytes)
79
- throw new PayloadTooLargeError(size, max_bytes);
79
+ throw new FactPayloadTooLargeError(size, max_bytes);
80
80
  blake3.update(chunk);
81
81
  sha256.update(chunk);
82
82
  };
@@ -111,7 +111,7 @@ export const stream_fact_to_disk = async (deps, facts_dir, source, max_bytes, em
111
111
  if (facts_dir === undefined) {
112
112
  // Over the embedded threshold with nowhere to spill — same shape as the
113
113
  // `PgFactStore.put` oversize-without-disk_root reject.
114
- throw new PayloadTooLargeError(size, embedded_threshold);
114
+ throw new FactPayloadTooLargeError(size, embedded_threshold);
115
115
  }
116
116
  // Phase 2: spill. A combined stream emits the already-hashed buffered
117
117
  // chunks, then continues pulling from `reader`, hashing each remaining
@@ -154,8 +154,8 @@ export const stream_fact_to_disk = async (deps, facts_dir, source, max_bytes, em
154
154
  catch (err) {
155
155
  await deps.remove(tmp_path).catch(() => undefined);
156
156
  if (is_enospc_error(err))
157
- throw new StorageFullError(err);
158
- throw err; // includes a mid-stream PayloadTooLargeError surfaced via the stream
157
+ throw new FactStorageFullError(err);
158
+ throw err; // includes a mid-stream FactPayloadTooLargeError surfaced via the stream
159
159
  }
160
160
  const hash = (FACT_HASH_PREFIX + to_hex(blake3.finalize()));
161
161
  const { shard, rest } = await commit_temp_to_cas(deps, tmp_path, facts_dir, hash);
@@ -197,7 +197,7 @@ export const write_fact_bytes_to_disk = async (deps, facts_dir, hash, bytes) =>
197
197
  catch (err) {
198
198
  await deps.remove(tmp_path).catch(() => undefined);
199
199
  if (is_enospc_error(err))
200
- throw new StorageFullError(err);
200
+ throw new FactStorageFullError(err);
201
201
  throw err;
202
202
  }
203
203
  const { shard, rest } = await commit_temp_to_cas(deps, tmp_path, facts_dir, hash);
@@ -273,7 +273,7 @@ export const sweep_orphan_temps = async (deps, facts_dir, options) => {
273
273
  * the file without re-hashing, so the bytes must be stable before they become
274
274
  * the canonical body), then either drop the temp (byte-identical content already
275
275
  * present — idempotent dedup) or atomically `rename` it into place. On any
276
- * failure the temp is unlinked and an `ENOSPC` is surfaced as `StorageFullError`.
276
+ * failure the temp is unlinked and an `ENOSPC` is surfaced as `FactStorageFullError`.
277
277
  * The single commit path shared by both writers above — twins the Rust `fuz_fact`
278
278
  * `SpillFile::rename_into_cas` (data-sync before rename; parent-dir fsync waived).
279
279
  *
@@ -295,7 +295,7 @@ const commit_temp_to_cas = async (deps, tmp_path, facts_dir, hash) => {
295
295
  catch (err) {
296
296
  await deps.remove(tmp_path).catch(() => undefined);
297
297
  if (is_enospc_error(err))
298
- throw new StorageFullError(err);
298
+ throw new FactStorageFullError(err);
299
299
  throw err;
300
300
  }
301
301
  return { shard, rest };
@@ -24,7 +24,7 @@
24
24
  * oversize `put` throws. `put_stream` needs `fs` for a body of any size — with
25
25
  * none it throws before reading the stream — and `disk_root` for the
26
26
  * over-threshold spill: with none, a body that passes the threshold throws
27
- * `PayloadTooLargeError`.
27
+ * `FactPayloadTooLargeError`.
28
28
  *
29
29
  * Every `external_url` the store writes is a `file:<shard>/<rest>` URL into its
30
30
  * own disk CAS, and that CAS is the only place `get` reads external bytes from
@@ -58,7 +58,7 @@ export declare const FACT_EMBEDDED_THRESHOLD_DEFAULT: number;
58
58
  * reads disk-backed facts from it. When either is unset the store writes
59
59
  * embedded rows only and `get` returns `null` for an external row: an oversize
60
60
  * `put` throws; `put_stream` throws for a body of any size when `fs` is unset,
61
- * and with `fs` but no `disk_root` throws `PayloadTooLargeError` for a body
61
+ * and with `fs` but no `disk_root` throws `FactPayloadTooLargeError` for a body
62
62
  * that passes the threshold. `log` is optional — its call sites are the
63
63
  * warnings on the paths where `get` returns `null` for an external row.
64
64
  */
@@ -91,8 +91,8 @@ export declare class PgFactStore implements FactStore {
91
91
  * BLAKE3 + SHA-256 in one pass, buffer to the embedded threshold, spill to the
92
92
  * disk CAS), then inserts the `fact` row by placement — embedded bytes go to
93
93
  * the PG `bytes` column, disk-spilled bytes record the `file:` `external_url`.
94
- * The cap is enforced mid-stream (`PayloadTooLargeError`); a disk-full mid-
95
- * stream throws `StorageFullError`.
94
+ * The cap is enforced mid-stream (`FactPayloadTooLargeError`); a disk-full mid-
95
+ * stream throws `FactStorageFullError`.
96
96
  *
97
97
  * Refs: explicit `options.refs` are recorded; JSON auto-extraction is NOT
98
98
  * attempted (it would need a buffered re-read, defeating the bounded-memory
@@ -24,7 +24,7 @@
24
24
  * oversize `put` throws. `put_stream` needs `fs` for a body of any size — with
25
25
  * none it throws before reading the stream — and `disk_root` for the
26
26
  * over-threshold spill: with none, a body that passes the threshold throws
27
- * `PayloadTooLargeError`.
27
+ * `FactPayloadTooLargeError`.
28
28
  *
29
29
  * Every `external_url` the store writes is a `file:<shard>/<rest>` URL into its
30
30
  * own disk CAS, and that CAS is the only place `get` reads external bytes from
@@ -100,8 +100,8 @@ export class PgFactStore {
100
100
  * BLAKE3 + SHA-256 in one pass, buffer to the embedded threshold, spill to the
101
101
  * disk CAS), then inserts the `fact` row by placement — embedded bytes go to
102
102
  * the PG `bytes` column, disk-spilled bytes record the `file:` `external_url`.
103
- * The cap is enforced mid-stream (`PayloadTooLargeError`); a disk-full mid-
104
- * stream throws `StorageFullError`.
103
+ * The cap is enforced mid-stream (`FactPayloadTooLargeError`); a disk-full mid-
104
+ * stream throws `FactStorageFullError`.
105
105
  *
106
106
  * Refs: explicit `options.refs` are recorded; JSON auto-extraction is NOT
107
107
  * attempted (it would need a buffered re-read, defeating the bounded-memory
@@ -14,7 +14,7 @@
14
14
  * mis-declared `Content-Length` that the cheap header pre-check can't catch.
15
15
  * A consumer route maps this to `413`.
16
16
  */
17
- export declare class PayloadTooLargeError extends Error {
17
+ export declare class FactPayloadTooLargeError extends Error {
18
18
  /** Bytes read before the cap tripped (may exceed `max_bytes` by one chunk). */
19
19
  readonly bytes_read: number;
20
20
  readonly max_bytes: number;
@@ -26,13 +26,13 @@ export declare class PayloadTooLargeError extends Error {
26
26
  * a best-effort free-space preflight can't promise (chunked uploads, TOCTOU
27
27
  * races). A consumer route maps this to `507`.
28
28
  */
29
- export declare class StorageFullError extends Error {
29
+ export declare class FactStorageFullError extends Error {
30
30
  constructor(cause?: unknown);
31
31
  }
32
32
  /**
33
33
  * Whether a thrown value is a Node filesystem `ENOSPC` (no space left on
34
34
  * device). Used by the streaming disk write to translate the raw FS error
35
- * into a `StorageFullError`.
35
+ * into a `FactStorageFullError`.
36
36
  */
37
37
  export declare const is_enospc_error: (err: unknown) => boolean;
38
38
  //# sourceMappingURL=fact_store_errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fact_store_errors.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/fact_store_errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMjD;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,KAAK,CAAC,EAAE,OAAO;CAI3B;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,KAAG,OAID,CAAC"}
1
+ {"version":3,"file":"fact_store_errors.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/db/fact_store_errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMjD;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBAClC,KAAK,CAAC,EAAE,OAAO;CAI3B;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,KAAG,OAID,CAAC"}
@@ -14,13 +14,13 @@
14
14
  * mis-declared `Content-Length` that the cheap header pre-check can't catch.
15
15
  * A consumer route maps this to `413`.
16
16
  */
17
- export class PayloadTooLargeError extends Error {
17
+ export class FactPayloadTooLargeError extends Error {
18
18
  /** Bytes read before the cap tripped (may exceed `max_bytes` by one chunk). */
19
19
  bytes_read;
20
20
  max_bytes;
21
21
  constructor(bytes_read, max_bytes) {
22
22
  super(`payload too large: read ${bytes_read} bytes, exceeds ${max_bytes} byte limit`);
23
- this.name = 'PayloadTooLargeError';
23
+ this.name = 'FactPayloadTooLargeError';
24
24
  this.bytes_read = bytes_read;
25
25
  this.max_bytes = max_bytes;
26
26
  }
@@ -31,16 +31,16 @@ export class PayloadTooLargeError extends Error {
31
31
  * a best-effort free-space preflight can't promise (chunked uploads, TOCTOU
32
32
  * races). A consumer route maps this to `507`.
33
33
  */
34
- export class StorageFullError extends Error {
34
+ export class FactStorageFullError extends Error {
35
35
  constructor(cause) {
36
36
  super('storage_full', cause === undefined ? undefined : { cause });
37
- this.name = 'StorageFullError';
37
+ this.name = 'FactStorageFullError';
38
38
  }
39
39
  }
40
40
  /**
41
41
  * Whether a thrown value is a Node filesystem `ENOSPC` (no space left on
42
42
  * device). Used by the streaming disk write to translate the raw FS error
43
- * into a `StorageFullError`.
43
+ * into a `FactStorageFullError`.
44
44
  */
45
45
  export const is_enospc_error = (err) => typeof err === 'object' &&
46
46
  err !== null &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_app",
3
- "version": "0.132.1",
3
+ "version": "0.133.0",
4
4
  "description": "fullstack app library",
5
5
  "glyph": "🗝",
6
6
  "logo": "logo.svg",
@@ -86,7 +86,7 @@
86
86
  "devDependencies": {
87
87
  "@electric-sql/pglite": "^0.5.8",
88
88
  "@fuzdev/blake3-wasm": "^0.2.0",
89
- "@fuzdev/fuz_code": "^0.50.0",
89
+ "@fuzdev/fuz_code": "^0.52.1",
90
90
  "@fuzdev/fuz_css": "^0.66.1",
91
91
  "@fuzdev/fuz_ui": "^0.213.0",
92
92
  "@fuzdev/fuz_util": "^0.72.0",
@@ -116,7 +116,7 @@
116
116
  "pg": "^8.20.0",
117
117
  "svelte": "^5.57.2",
118
118
  "svelte-check": "^4.7.6",
119
- "svelte-docinfo": "^0.8.1",
119
+ "svelte-docinfo": "^0.9.0",
120
120
  "svelte2tsx": "^0.7.52",
121
121
  "tslib": "^2.8.1",
122
122
  "typescript": "^6.0.3",