@graphrefly/graphrefly 0.37.0 → 0.38.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.
Files changed (248) hide show
  1. package/dist/{chunk-CZIQ6JCE.js → chunk-2YFDSYEF.js} +1 -1
  2. package/dist/{chunk-YVYSO5CW.js → chunk-4BDQXBXE.js} +1 -1
  3. package/dist/chunk-5BGFS2XH.js +1 -0
  4. package/dist/chunk-6773HURD.js +1 -0
  5. package/dist/{chunk-U3COB5WU.js → chunk-6KZZ6XQE.js} +1 -1
  6. package/dist/{chunk-5CPPC75H.js → chunk-6VFC334U.js} +1 -1
  7. package/dist/{chunk-KUVDFOJH.js → chunk-7KZZLWZ6.js} +1 -1
  8. package/dist/{chunk-Q7EUZ6NN.js → chunk-B5S7KTGP.js} +1 -1
  9. package/dist/chunk-CMTN3KPT.js +80 -0
  10. package/dist/chunk-DQJLC6YY.js +1 -0
  11. package/dist/chunk-DSOVKKTI.js +1 -0
  12. package/dist/chunk-FAYEMS5M.js +1 -0
  13. package/dist/chunk-FWGIZP3W.js +1 -0
  14. package/dist/{chunk-FMI4CWFL.js → chunk-G7JN6LCB.js} +1 -1
  15. package/dist/{chunk-PCD2MU7X.js → chunk-IBGE62GZ.js} +1 -1
  16. package/dist/{chunk-MYFR67PY.js → chunk-K5C67OGE.js} +1 -1
  17. package/dist/chunk-KJEAIIIY.js +43 -0
  18. package/dist/chunk-LV3ACS5J.js +1 -0
  19. package/dist/{chunk-LOQRPP4Y.js → chunk-NBGPXQSP.js} +1 -1
  20. package/dist/chunk-NN3QPJ6U.js +1 -0
  21. package/dist/{chunk-QWVQIL3T.js → chunk-NSAZ6PR6.js} +1 -1
  22. package/dist/{chunk-MC5LZG3U.js → chunk-NV63VQHI.js} +1 -1
  23. package/dist/{chunk-2C4NESZE.js → chunk-O245YLM5.js} +1 -1
  24. package/dist/{chunk-TLS7M7H4.js → chunk-O2BLVQU4.js} +1 -1
  25. package/dist/chunk-PHXZRR6C.js +1 -0
  26. package/dist/{chunk-K6ZFJ473.js → chunk-POCWFIJ7.js} +1 -1
  27. package/dist/{chunk-C5CBVOCB.js → chunk-QEVSIVSF.js} +1 -1
  28. package/dist/chunk-QMC2PLNM.js +7 -0
  29. package/dist/chunk-QOJFR6GS.js +1 -0
  30. package/dist/{chunk-MQZWA3DF.js → chunk-RZ5HKPGI.js} +1 -1
  31. package/dist/{chunk-WSLN4JFO.js → chunk-SFK7MN7S.js} +1 -1
  32. package/dist/{chunk-QP5TH523.js → chunk-SP5O2MIX.js} +1 -1
  33. package/dist/chunk-TB7JKSVS.js +61 -0
  34. package/dist/{chunk-T4U24DXX.js → chunk-TMVY7OWG.js} +1 -1
  35. package/dist/{chunk-UODQF4EY.js → chunk-UAXFKMAG.js} +1 -1
  36. package/dist/{chunk-TFK4P4CX.js → chunk-UVLZX2OU.js} +1 -1
  37. package/dist/chunk-XIMFHEKV.js +1 -0
  38. package/dist/{chunk-XIJKEXWR.js → chunk-XLMYQB6F.js} +1 -1
  39. package/dist/{chunk-4EATTNAE.js → chunk-XLYF4LBH.js} +1 -1
  40. package/dist/compat/index.cjs +9 -9
  41. package/dist/compat/index.d.cts +7 -7
  42. package/dist/compat/index.d.ts +7 -7
  43. package/dist/compat/index.js +1 -1
  44. package/dist/compat/nestjs/index.cjs +11 -11
  45. package/dist/compat/nestjs/index.d.cts +5 -5
  46. package/dist/compat/nestjs/index.d.ts +5 -5
  47. package/dist/compat/nestjs/index.js +1 -1
  48. package/dist/compat/zustand/index.cjs +7 -7
  49. package/dist/compat/zustand/index.d.cts +3 -3
  50. package/dist/compat/zustand/index.d.ts +3 -3
  51. package/dist/compat/zustand/index.js +1 -1
  52. package/dist/{composite-_XckYx2e.d.cts → composite-CgG0MqHm.d.cts} +8 -1
  53. package/dist/{composite-CT_mApQD.d.ts → composite-DTOlDuch.d.ts} +8 -1
  54. package/dist/core/index.cjs +1 -1
  55. package/dist/core/index.d.cts +2 -2
  56. package/dist/core/index.d.ts +2 -2
  57. package/dist/core/index.js +1 -1
  58. package/dist/extra/index.cjs +19 -19
  59. package/dist/extra/index.d.cts +5 -5
  60. package/dist/extra/index.d.ts +5 -5
  61. package/dist/extra/index.js +1 -1
  62. package/dist/extra/node.cjs +2 -2
  63. package/dist/extra/node.d.cts +107 -1
  64. package/dist/extra/node.d.ts +107 -1
  65. package/dist/extra/node.js +2 -2
  66. package/dist/extra/operators.cjs +1 -1
  67. package/dist/extra/operators.js +1 -1
  68. package/dist/extra/reactive.d.cts +1 -1
  69. package/dist/extra/reactive.d.ts +1 -1
  70. package/dist/extra/reactive.js +1 -1
  71. package/dist/extra/sources.cjs +1 -1
  72. package/dist/extra/sources.js +1 -1
  73. package/dist/extra/storage-tiers-browser.d.cts +76 -5
  74. package/dist/extra/storage-tiers-browser.d.ts +76 -5
  75. package/dist/extra/storage-tiers-node.d.cts +137 -13
  76. package/dist/extra/storage-tiers-node.d.ts +137 -13
  77. package/dist/extra/storage-tiers.d.cts +151 -23
  78. package/dist/extra/storage-tiers.d.ts +151 -23
  79. package/dist/graph/index.cjs +7 -7
  80. package/dist/graph/index.d.cts +4 -4
  81. package/dist/graph/index.d.ts +4 -4
  82. package/dist/graph/index.js +1 -1
  83. package/dist/{graph-YQXDndFy.d.ts → graph-BjW1taJl.d.ts} +217 -10
  84. package/dist/{graph-CaNXUc3c.d.cts → graph-CHsVwf9S.d.cts} +217 -10
  85. package/dist/{index-CUTHDZ7Q.d.ts → index-5dNRlW7J.d.ts} +3 -3
  86. package/dist/{index-Bpzw8hx3.d.ts → index-AUqWe_fX.d.ts} +7 -4
  87. package/dist/{index-fHKHdAso.d.ts → index-B-ORMr3k.d.ts} +2 -2
  88. package/dist/{index-DcWbx58m.d.cts → index-B2IUcH13.d.cts} +2 -2
  89. package/dist/{index-DuhOdNyg.d.ts → index-BFaALJxR.d.ts} +2 -2
  90. package/dist/{index-DPqR3wdW.d.ts → index-BI1wMfyc.d.ts} +2 -2
  91. package/dist/{index-D0ZxFXYl.d.ts → index-BUFCHvOR.d.ts} +2 -2
  92. package/dist/{index-CLPQyYY5.d.cts → index-BWUMIt7J.d.cts} +3 -3
  93. package/dist/{index-CkN8CZlT.d.cts → index-BaSy4L6w.d.cts} +37 -17
  94. package/dist/{index-B1IcU--K.d.cts → index-BgzPO43H.d.cts} +2 -2
  95. package/dist/{index-D6tRNEKz.d.cts → index-BhzwpIJc.d.cts} +1 -1
  96. package/dist/{index-4IwO4mH2.d.cts → index-BkQqf1EF.d.cts} +80 -7
  97. package/dist/{index-CajEOoAN.d.ts → index-BmWuVdER.d.ts} +2 -2
  98. package/dist/{index-0qOD-421.d.ts → index-Bn0uZEL4.d.ts} +2 -2
  99. package/dist/{index-DAKm44My.d.cts → index-BpMZzX9P.d.cts} +2 -2
  100. package/dist/{index-CrpjECS6.d.cts → index-Bpr0Pwgl.d.cts} +2 -2
  101. package/dist/{index-BECJ8M0T.d.cts → index-BqcgiSQg.d.cts} +2 -2
  102. package/dist/{index-DfAo9WKr.d.ts → index-BsZk9T8y.d.ts} +1 -1
  103. package/dist/{index-CU3z8Cel.d.cts → index-BsgxnHN8.d.cts} +2 -2
  104. package/dist/index-Bub6x_D4.d.cts +427 -0
  105. package/dist/{index-C-pFD_FV.d.ts → index-BwOsJfLJ.d.ts} +2 -2
  106. package/dist/{index-CRycrNfn.d.ts → index-Byp771zP.d.ts} +1 -1
  107. package/dist/{index-e1m3ZHgc.d.cts → index-C-3UXnHT.d.cts} +1 -1
  108. package/dist/{index-DTYIRT_v.d.cts → index-C56XZiDe.d.cts} +2 -2
  109. package/dist/{index-D11pGlaI.d.cts → index-CAV-3RpJ.d.cts} +2 -2
  110. package/dist/{index-D_DThl_J.d.cts → index-CAbHN_rP.d.cts} +1 -1
  111. package/dist/{index-BhLA9feT.d.ts → index-CEVzBWeB.d.ts} +2 -2
  112. package/dist/{index-Ci358GSC.d.cts → index-CM-i58FY.d.cts} +2 -2
  113. package/dist/{index-B9qJmmv3.d.cts → index-CQsqqEVz.d.cts} +1 -1
  114. package/dist/{index-C0tga1_x.d.ts → index-CijfwEWx.d.ts} +2 -2
  115. package/dist/{index-BwtIbzSV.d.cts → index-Ckil6miL.d.cts} +2 -2
  116. package/dist/{index-BokynmA4.d.cts → index-CpdnP-0y.d.cts} +1 -1
  117. package/dist/{index-BmLkcDlj.d.ts → index-CrlHFsiT.d.ts} +37 -17
  118. package/dist/{index-DCAuN9u5.d.cts → index-Czk3r0yA.d.cts} +37 -3
  119. package/dist/{index-C4N-dg5U.d.cts → index-D-B7U42V.d.cts} +2 -2
  120. package/dist/{index-CKcnuQ2c.d.ts → index-D-HZ7sP4.d.ts} +2 -2
  121. package/dist/{index-D6pwWiOc.d.cts → index-D7-RSD93.d.cts} +2 -2
  122. package/dist/{index-9mbs_PIG.d.ts → index-D9vBTuzo.d.ts} +2 -2
  123. package/dist/{index-C_qi0WlF.d.cts → index-DJNAWzcH.d.cts} +2 -2
  124. package/dist/{index-Ae6L8liv.d.ts → index-DJVQ-t07.d.ts} +2 -2
  125. package/dist/{index-D_d1erkR.d.ts → index-DKrIuF-r.d.ts} +2 -2
  126. package/dist/{index-DXz9uwcs.d.ts → index-DOU1Ee_k.d.ts} +1 -1
  127. package/dist/{index-D1E1tqHT.d.ts → index-DTDVDzhA.d.ts} +37 -3
  128. package/dist/{index-B5UR87KG.d.ts → index-DY2f2b9z.d.ts} +4 -2
  129. package/dist/{index-D8IyqHvT.d.cts → index-DeSsvHDD.d.cts} +4 -2
  130. package/dist/index-Di7OdwlO.d.ts +427 -0
  131. package/dist/{index-CzIWlnPp.d.ts → index-DqICM_I7.d.ts} +80 -7
  132. package/dist/{index-BOfHwQc1.d.ts → index-ML6vHKXK.d.ts} +1 -1
  133. package/dist/{index-DqtXA3yX.d.cts → index-UsU9ptzs.d.cts} +7 -4
  134. package/dist/{index-B46GWgk3.d.ts → index-Vz7KPfgz.d.ts} +1 -1
  135. package/dist/index.cjs +50 -50
  136. package/dist/index.d.cts +32 -32
  137. package/dist/index.d.ts +32 -32
  138. package/dist/index.js +1 -1
  139. package/dist/meta-BYqlATmg.d.ts +98 -0
  140. package/dist/meta-DreaEM_a.d.cts +98 -0
  141. package/dist/patterns/ai/browser.cjs +2 -2
  142. package/dist/patterns/ai/browser.js +1 -1
  143. package/dist/patterns/ai/index.cjs +21 -21
  144. package/dist/patterns/ai/index.d.cts +9 -9
  145. package/dist/patterns/ai/index.d.ts +9 -9
  146. package/dist/patterns/ai/index.js +1 -1
  147. package/dist/patterns/ai/node.js +1 -1
  148. package/dist/patterns/audit/index.cjs +7 -7
  149. package/dist/patterns/audit/index.d.cts +5 -5
  150. package/dist/patterns/audit/index.d.ts +5 -5
  151. package/dist/patterns/audit/index.js +1 -1
  152. package/dist/patterns/cqrs/index.cjs +7 -7
  153. package/dist/patterns/cqrs/index.d.cts +4 -4
  154. package/dist/patterns/cqrs/index.d.ts +4 -4
  155. package/dist/patterns/cqrs/index.js +1 -1
  156. package/dist/patterns/demo-shell/index.cjs +8 -8
  157. package/dist/patterns/demo-shell/index.d.cts +4 -4
  158. package/dist/patterns/demo-shell/index.d.ts +4 -4
  159. package/dist/patterns/demo-shell/index.js +1 -1
  160. package/dist/patterns/domain-templates/index.cjs +7 -7
  161. package/dist/patterns/domain-templates/index.d.cts +3 -3
  162. package/dist/patterns/domain-templates/index.d.ts +3 -3
  163. package/dist/patterns/domain-templates/index.js +1 -1
  164. package/dist/patterns/graphspec/index.cjs +21 -21
  165. package/dist/patterns/graphspec/index.d.cts +3 -3
  166. package/dist/patterns/graphspec/index.d.ts +3 -3
  167. package/dist/patterns/graphspec/index.js +1 -1
  168. package/dist/patterns/guarded-execution/index.cjs +7 -7
  169. package/dist/patterns/guarded-execution/index.d.cts +6 -6
  170. package/dist/patterns/guarded-execution/index.d.ts +6 -6
  171. package/dist/patterns/guarded-execution/index.js +1 -1
  172. package/dist/patterns/harness/index.cjs +12 -12
  173. package/dist/patterns/harness/index.d.cts +8 -8
  174. package/dist/patterns/harness/index.d.ts +8 -8
  175. package/dist/patterns/harness/index.js +1 -1
  176. package/dist/patterns/job-queue/index.cjs +7 -7
  177. package/dist/patterns/job-queue/index.d.cts +4 -4
  178. package/dist/patterns/job-queue/index.d.ts +4 -4
  179. package/dist/patterns/job-queue/index.js +1 -1
  180. package/dist/patterns/lens/index.cjs +7 -7
  181. package/dist/patterns/lens/index.d.cts +4 -4
  182. package/dist/patterns/lens/index.d.ts +4 -4
  183. package/dist/patterns/lens/index.js +1 -1
  184. package/dist/patterns/memory/index.cjs +7 -7
  185. package/dist/patterns/memory/index.d.cts +6 -4
  186. package/dist/patterns/memory/index.d.ts +6 -4
  187. package/dist/patterns/memory/index.js +1 -1
  188. package/dist/patterns/messaging/index.cjs +7 -7
  189. package/dist/patterns/messaging/index.d.cts +4 -4
  190. package/dist/patterns/messaging/index.d.ts +4 -4
  191. package/dist/patterns/messaging/index.js +1 -1
  192. package/dist/patterns/orchestration/index.cjs +7 -7
  193. package/dist/patterns/orchestration/index.d.cts +4 -4
  194. package/dist/patterns/orchestration/index.d.ts +4 -4
  195. package/dist/patterns/orchestration/index.js +1 -1
  196. package/dist/patterns/process/index.d.cts +5 -5
  197. package/dist/patterns/process/index.d.ts +5 -5
  198. package/dist/patterns/process/index.js +1 -1
  199. package/dist/patterns/reactive-layout/index.cjs +8 -8
  200. package/dist/patterns/reactive-layout/index.d.cts +4 -4
  201. package/dist/patterns/reactive-layout/index.d.ts +4 -4
  202. package/dist/patterns/reactive-layout/index.js +1 -1
  203. package/dist/patterns/reduction/index.cjs +7 -7
  204. package/dist/patterns/reduction/index.d.cts +3 -3
  205. package/dist/patterns/reduction/index.d.ts +3 -3
  206. package/dist/patterns/reduction/index.js +1 -1
  207. package/dist/patterns/refine-loop/index.cjs +8 -8
  208. package/dist/patterns/refine-loop/index.d.cts +5 -5
  209. package/dist/patterns/refine-loop/index.d.ts +5 -5
  210. package/dist/patterns/refine-loop/index.js +1 -1
  211. package/dist/patterns/resilient-pipeline/index.cjs +1 -1
  212. package/dist/patterns/resilient-pipeline/index.d.cts +4 -4
  213. package/dist/patterns/resilient-pipeline/index.d.ts +4 -4
  214. package/dist/patterns/resilient-pipeline/index.js +1 -1
  215. package/dist/patterns/surface/index.cjs +14 -14
  216. package/dist/patterns/surface/index.d.cts +4 -4
  217. package/dist/patterns/surface/index.d.ts +4 -4
  218. package/dist/patterns/surface/index.js +1 -1
  219. package/dist/{pipeline-graph-DX2Twdj-.d.ts → pipeline-graph-9JBbmRxA.d.ts} +2 -2
  220. package/dist/{pipeline-graph-BrrYGjuZ.d.cts → pipeline-graph-DuHpXSOn.d.cts} +2 -2
  221. package/dist/{reactive-layout-DrGjuwyC.d.cts → reactive-layout-BMLDB4Vd.d.cts} +1 -1
  222. package/dist/{reactive-layout-BDdngW56.d.ts → reactive-layout-D-tRiNhg.d.ts} +1 -1
  223. package/dist/{reactive-log-jirQsxMY.d.ts → reactive-log-BgWSA1fg.d.ts} +28 -1
  224. package/dist/{reactive-log-ScpWyqny.d.cts → reactive-log-C3IMAGpT.d.cts} +28 -1
  225. package/dist/resilience-LGBK236C.js +1 -0
  226. package/dist/{topology-tree-BI665P0L.d.ts → topology-tree-D47-nI6Z.d.ts} +1 -1
  227. package/dist/{topology-tree-BkhmMg2a.d.cts → topology-tree-jrZue3ao.d.cts} +1 -1
  228. package/package.json +1 -1
  229. package/dist/chunk-533RQFF6.js +0 -1
  230. package/dist/chunk-6SVKZ7VI.js +0 -1
  231. package/dist/chunk-A5HZZYRK.js +0 -1
  232. package/dist/chunk-B4L5X2QO.js +0 -7
  233. package/dist/chunk-FJ6IEMOS.js +0 -1
  234. package/dist/chunk-G6Q3DUMJ.js +0 -1
  235. package/dist/chunk-GDDPCDLG.js +0 -1
  236. package/dist/chunk-GFOT6UBB.js +0 -1
  237. package/dist/chunk-JJTF75VS.js +0 -1
  238. package/dist/chunk-K2WYIVHM.js +0 -1
  239. package/dist/chunk-KTWBUJO5.js +0 -61
  240. package/dist/chunk-M27MVZCP.js +0 -1
  241. package/dist/chunk-NKKUUKPD.js +0 -43
  242. package/dist/chunk-QKBCTKH7.js +0 -1
  243. package/dist/chunk-WGST56ZH.js +0 -80
  244. package/dist/index-BCq12BqB.d.ts +0 -139
  245. package/dist/index-DbWwMWiB.d.cts +0 -139
  246. package/dist/meta-BGO6C7K9.d.cts +0 -41
  247. package/dist/meta-CC6EPdpK.d.ts +0 -41
  248. package/dist/resilience-OBU472D2.js +0 -1
@@ -15,14 +15,48 @@ type IndexedDbBackendSpec = {
15
15
  version?: number;
16
16
  };
17
17
  /**
18
- * IndexedDB backend. Async by nature — `read` / `write` / `delete` / `list`
19
- * all return `Promise`.
18
+ * Creates an IndexedDB backend for browser-based persistent storage.
19
+ *
20
+ * All operations (`read`, `write`, `delete`, `list`) are async and return
21
+ * `Promise`. The backing object store is created automatically on first open
22
+ * if it does not already exist.
23
+ *
24
+ * @param spec - Database name, object store name, and optional schema version.
25
+ * @returns `StorageBackend` backed by an IndexedDB object store.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { indexedDbBackend, snapshotStorage } from "@graphrefly/graphrefly/extra/browser";
30
+ *
31
+ * const backend = indexedDbBackend({ dbName: "my-app", storeName: "snapshots" });
32
+ * const tier = snapshotStorage(backend, { name: "graph1" });
33
+ * await tier.save({ name: "graph1", state: {} });
34
+ * ```
20
35
  *
21
36
  * @category extra
22
37
  */
23
38
  declare function indexedDbBackend(spec: IndexedDbBackendSpec): StorageBackend;
24
39
  /**
25
- * IndexedDB snapshot tier `snapshotStorage(indexedDbBackend(spec), opts)`.
40
+ * Creates an IndexedDB snapshot tier backed by an `indexedDbBackend`.
41
+ *
42
+ * Convenience wrapper for `snapshotStorage(indexedDbBackend(spec), opts)`.
43
+ * All reads and writes are async via IndexedDB. Requires a browser or
44
+ * browser-compatible environment.
45
+ *
46
+ * @param spec - Database name, object store name, and optional schema version.
47
+ * @param opts - Optional snapshot storage options (name, codec, filter, keyOf, debounce, compactEvery).
48
+ * @returns `SnapshotStorageTier<T>` backed by IndexedDB.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { indexedDbSnapshot } from "@graphrefly/graphrefly/extra/browser";
53
+ *
54
+ * const tier = indexedDbSnapshot<{ count: number }>(
55
+ * { dbName: "my-app", storeName: "snapshots" },
56
+ * { name: "counter" },
57
+ * );
58
+ * await tier.save({ count: 1 });
59
+ * ```
26
60
  *
27
61
  * @category extra
28
62
  */
@@ -30,7 +64,25 @@ declare function indexedDbSnapshot<T>(spec: IndexedDbBackendSpec, opts?: Omit<Sn
30
64
  name?: string;
31
65
  }): SnapshotStorageTier<T>;
32
66
  /**
33
- * IndexedDB append-log tier `appendLogStorage(indexedDbBackend(spec), opts)`.
67
+ * Creates an IndexedDB append-log tier backed by an `indexedDbBackend`.
68
+ *
69
+ * Convenience wrapper for `appendLogStorage(indexedDbBackend(spec), opts)`.
70
+ * All reads and writes are async via IndexedDB. Requires a browser or
71
+ * browser-compatible environment.
72
+ *
73
+ * @param spec - Database name, object store name, and optional schema version.
74
+ * @param opts - Optional append-log storage options (name, codec, keyOf, debounce, compactEvery).
75
+ * @returns `AppendLogStorageTier<T>` backed by IndexedDB.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * import { indexedDbAppendLog } from "@graphrefly/graphrefly/extra/browser";
80
+ *
81
+ * const tier = indexedDbAppendLog<{ type: string }>(
82
+ * { dbName: "my-app", storeName: "events" },
83
+ * );
84
+ * await tier.appendEntries([{ type: "init" }]);
85
+ * ```
34
86
  *
35
87
  * @category extra
36
88
  */
@@ -38,7 +90,26 @@ declare function indexedDbAppendLog<T>(spec: IndexedDbBackendSpec, opts?: Omit<A
38
90
  name?: string;
39
91
  }): AppendLogStorageTier<T>;
40
92
  /**
41
- * IndexedDB kv tier `kvStorage(indexedDbBackend(spec), opts)`.
93
+ * Creates an IndexedDB key-value tier backed by an `indexedDbBackend`.
94
+ *
95
+ * Convenience wrapper for `kvStorage(indexedDbBackend(spec), opts)`.
96
+ * All reads and writes are async via IndexedDB. Requires a browser or
97
+ * browser-compatible environment.
98
+ *
99
+ * @param spec - Database name, object store name, and optional schema version.
100
+ * @param opts - Optional kv storage options (name, codec, filter, debounce, compactEvery).
101
+ * @returns `KvStorageTier<T>` backed by IndexedDB.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * import { indexedDbKv } from "@graphrefly/graphrefly/extra/browser";
106
+ *
107
+ * const kv = indexedDbKv<{ score: number }>(
108
+ * { dbName: "my-app", storeName: "scores" },
109
+ * );
110
+ * await kv.save("player1", { score: 100 });
111
+ * const val = await kv.load("player1");
112
+ * ```
42
113
  *
43
114
  * @category extra
44
115
  */
@@ -10,15 +10,45 @@ import { AppendLogStorageOptions, AppendLogStorageTier, StorageBackend, KvStorag
10
10
  */
11
11
 
12
12
  /**
13
- * Filesystem backend. Each key becomes a file under `dir`; values are written
14
- * via temp + rename for atomic replace.
13
+ * Creates a filesystem backend that maps each key to a file under `dir`.
14
+ *
15
+ * Writes are atomic via temp + rename. Keys are percent-encoded to safe
16
+ * filenames; `list(prefix)` enumerates `.bin` files in the directory.
17
+ *
18
+ * @param dir - Directory path where key files are stored (created on first write).
19
+ * @returns `StorageBackend` backed by the filesystem under `dir`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { fileBackend, snapshotStorage } from "@graphrefly/graphrefly/extra/node";
24
+ *
25
+ * const backend = fileBackend("./checkpoints");
26
+ * const tier = snapshotStorage(backend, { name: "my-graph" });
27
+ * await tier.save({ name: "my-graph", state: { count: 1 } });
28
+ * ```
15
29
  *
16
30
  * @category extra
17
31
  */
18
32
  declare function fileBackend(dir: string): StorageBackend;
19
33
  /**
20
- * SQLite backend (Node 22.5+ `node:sqlite`). Stores byte values under string
21
- * keys in a single table; caller owns the connection lifetime via `close()`.
34
+ * Creates a SQLite backend using Node 22.5+ `node:sqlite`.
35
+ *
36
+ * Stores byte values under string keys in a single `graphrefly_storage` table.
37
+ * The caller owns the connection lifetime — call `.close()` for explicit teardown.
38
+ * Requires Node 22.5 or later for `node:sqlite`.
39
+ *
40
+ * @param path - Filesystem path to the SQLite database file (created if absent).
41
+ * @returns `StorageBackend` with an extra `close()` method for explicit teardown.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { sqliteBackend, snapshotStorage } from "@graphrefly/graphrefly/extra/node";
46
+ *
47
+ * const backend = sqliteBackend("./state.db");
48
+ * const tier = snapshotStorage(backend, { name: "my-graph" });
49
+ * await tier.save({ name: "my-graph", state: { count: 1 } });
50
+ * backend.close();
51
+ * ```
22
52
  *
23
53
  * @category extra
24
54
  */
@@ -26,7 +56,22 @@ declare function sqliteBackend(path: string): StorageBackend & {
26
56
  close(): void;
27
57
  };
28
58
  /**
29
- * Filesystem snapshot tier `snapshotStorage(fileBackend(dir), opts)`.
59
+ * Creates a filesystem snapshot tier backed by a `fileBackend` under `dir`.
60
+ *
61
+ * Convenience wrapper for `snapshotStorage(fileBackend(dir), opts)`.
62
+ * Writes are atomic (temp + rename). Requires Node.js with filesystem access.
63
+ *
64
+ * @param dir - Directory path where snapshot files are stored.
65
+ * @param opts - Optional snapshot storage options (name, codec, filter, keyOf, debounce, compactEvery).
66
+ * @returns `SnapshotStorageTier<T>` backed by the filesystem.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * import { fileSnapshot } from "@graphrefly/graphrefly/extra/node";
71
+ *
72
+ * const tier = fileSnapshot<{ count: number }>("./checkpoints", { name: "counter" });
73
+ * await tier.save({ count: 1 });
74
+ * ```
30
75
  *
31
76
  * @category extra
32
77
  */
@@ -34,7 +79,22 @@ declare function fileSnapshot<T>(dir: string, opts?: Omit<SnapshotStorageOptions
34
79
  name?: string;
35
80
  }): SnapshotStorageTier<T>;
36
81
  /**
37
- * Filesystem append-log tier `appendLogStorage(fileBackend(dir), opts)`.
82
+ * Creates a filesystem append-log tier backed by a `fileBackend` under `dir`.
83
+ *
84
+ * Convenience wrapper for `appendLogStorage(fileBackend(dir), opts)`.
85
+ * Writes are atomic (temp + rename). Requires Node.js with filesystem access.
86
+ *
87
+ * @param dir - Directory path where append-log files are stored.
88
+ * @param opts - Optional append-log storage options (name, codec, keyOf, debounce, compactEvery).
89
+ * @returns `AppendLogStorageTier<T>` backed by the filesystem.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * import { fileAppendLog } from "@graphrefly/graphrefly/extra/node";
94
+ *
95
+ * const tier = fileAppendLog<{ type: string; id: number }>("./events");
96
+ * await tier.appendEntries([{ type: "created", id: 1 }]);
97
+ * ```
38
98
  *
39
99
  * @category extra
40
100
  */
@@ -42,8 +102,24 @@ declare function fileAppendLog<T>(dir: string, opts?: Omit<AppendLogStorageOptio
42
102
  name?: string;
43
103
  }): AppendLogStorageTier<T>;
44
104
  /**
45
- * SQLite snapshot tier caller owns the connection. Use the underlying
46
- * backend's `close()` for explicit teardown.
105
+ * Creates a SQLite snapshot tier; caller owns the connection lifetime.
106
+ *
107
+ * Convenience wrapper for `snapshotStorage(sqliteBackend(path), opts)`.
108
+ * The returned tier exposes an extra `close()` method — call it for explicit
109
+ * teardown of the underlying SQLite connection.
110
+ *
111
+ * @param path - Filesystem path to the SQLite database file.
112
+ * @param opts - Optional snapshot storage options (name, codec, filter, keyOf, debounce, compactEvery).
113
+ * @returns `SnapshotStorageTier<T>` with a `close()` method for connection teardown.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * import { sqliteSnapshot } from "@graphrefly/graphrefly/extra/node";
118
+ *
119
+ * const tier = sqliteSnapshot<{ count: number }>("./state.db", { name: "counter" });
120
+ * await tier.save({ count: 42 });
121
+ * tier.close();
122
+ * ```
47
123
  *
48
124
  * @category extra
49
125
  */
@@ -53,8 +129,24 @@ declare function sqliteSnapshot<T>(path: string, opts?: Omit<SnapshotStorageOpti
53
129
  close(): void;
54
130
  };
55
131
  /**
56
- * SQLite append-log tier caller owns the connection. Use the underlying
57
- * backend's `close()` for explicit teardown.
132
+ * Creates a SQLite append-log tier; caller owns the connection lifetime.
133
+ *
134
+ * Convenience wrapper for `appendLogStorage(sqliteBackend(path), opts)`.
135
+ * The returned tier exposes an extra `close()` method — call it for explicit
136
+ * teardown of the underlying SQLite connection.
137
+ *
138
+ * @param path - Filesystem path to the SQLite database file.
139
+ * @param opts - Optional append-log storage options (name, codec, keyOf, debounce, compactEvery).
140
+ * @returns `AppendLogStorageTier<T>` with a `close()` method for connection teardown.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import { sqliteAppendLog } from "@graphrefly/graphrefly/extra/node";
145
+ *
146
+ * const tier = sqliteAppendLog<{ type: string }>("./events.db", { name: "events" });
147
+ * await tier.appendEntries([{ type: "created" }]);
148
+ * tier.close();
149
+ * ```
58
150
  *
59
151
  * @category extra
60
152
  */
@@ -64,7 +156,23 @@ declare function sqliteAppendLog<T>(path: string, opts?: Omit<AppendLogStorageOp
64
156
  close(): void;
65
157
  };
66
158
  /**
67
- * Filesystem kv tier `kvStorage(fileBackend(dir), opts)`.
159
+ * Creates a filesystem key-value tier backed by a `fileBackend` under `dir`.
160
+ *
161
+ * Convenience wrapper for `kvStorage(fileBackend(dir), opts)`.
162
+ * Each key is stored as a separate file; writes are atomic (temp + rename).
163
+ *
164
+ * @param dir - Directory path where key files are stored.
165
+ * @param opts - Optional kv storage options (name, codec, filter, debounce, compactEvery).
166
+ * @returns `KvStorageTier<T>` backed by the filesystem.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * import { fileKv } from "@graphrefly/graphrefly/extra/node";
171
+ *
172
+ * const kv = fileKv<{ score: number }>("./scores");
173
+ * await kv.save("player1", { score: 100 });
174
+ * const val = await kv.load("player1");
175
+ * ```
68
176
  *
69
177
  * @category extra
70
178
  */
@@ -72,8 +180,24 @@ declare function fileKv<T>(dir: string, opts?: Omit<KvStorageOptions<T>, "name">
72
180
  name?: string;
73
181
  }): KvStorageTier<T>;
74
182
  /**
75
- * SQLite kv tier caller owns the connection. Use the underlying
76
- * backend's `close()` for explicit teardown.
183
+ * Creates a SQLite key-value tier; caller owns the connection lifetime.
184
+ *
185
+ * Convenience wrapper for `kvStorage(sqliteBackend(path), opts)`.
186
+ * The returned tier exposes an extra `close()` method — call it for explicit
187
+ * teardown of the underlying SQLite connection.
188
+ *
189
+ * @param path - Filesystem path to the SQLite database file.
190
+ * @param opts - Optional kv storage options (name, codec, filter, debounce, compactEvery).
191
+ * @returns `KvStorageTier<T>` with a `close()` method for connection teardown.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * import { sqliteKv } from "@graphrefly/graphrefly/extra/node";
196
+ *
197
+ * const kv = sqliteKv<{ score: number }>("./scores.db");
198
+ * await kv.save("player1", { score: 100 });
199
+ * kv.close();
200
+ * ```
77
201
  *
78
202
  * @category extra
79
203
  */
@@ -10,15 +10,45 @@ import { AppendLogStorageOptions, AppendLogStorageTier, StorageBackend, KvStorag
10
10
  */
11
11
 
12
12
  /**
13
- * Filesystem backend. Each key becomes a file under `dir`; values are written
14
- * via temp + rename for atomic replace.
13
+ * Creates a filesystem backend that maps each key to a file under `dir`.
14
+ *
15
+ * Writes are atomic via temp + rename. Keys are percent-encoded to safe
16
+ * filenames; `list(prefix)` enumerates `.bin` files in the directory.
17
+ *
18
+ * @param dir - Directory path where key files are stored (created on first write).
19
+ * @returns `StorageBackend` backed by the filesystem under `dir`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { fileBackend, snapshotStorage } from "@graphrefly/graphrefly/extra/node";
24
+ *
25
+ * const backend = fileBackend("./checkpoints");
26
+ * const tier = snapshotStorage(backend, { name: "my-graph" });
27
+ * await tier.save({ name: "my-graph", state: { count: 1 } });
28
+ * ```
15
29
  *
16
30
  * @category extra
17
31
  */
18
32
  declare function fileBackend(dir: string): StorageBackend;
19
33
  /**
20
- * SQLite backend (Node 22.5+ `node:sqlite`). Stores byte values under string
21
- * keys in a single table; caller owns the connection lifetime via `close()`.
34
+ * Creates a SQLite backend using Node 22.5+ `node:sqlite`.
35
+ *
36
+ * Stores byte values under string keys in a single `graphrefly_storage` table.
37
+ * The caller owns the connection lifetime — call `.close()` for explicit teardown.
38
+ * Requires Node 22.5 or later for `node:sqlite`.
39
+ *
40
+ * @param path - Filesystem path to the SQLite database file (created if absent).
41
+ * @returns `StorageBackend` with an extra `close()` method for explicit teardown.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { sqliteBackend, snapshotStorage } from "@graphrefly/graphrefly/extra/node";
46
+ *
47
+ * const backend = sqliteBackend("./state.db");
48
+ * const tier = snapshotStorage(backend, { name: "my-graph" });
49
+ * await tier.save({ name: "my-graph", state: { count: 1 } });
50
+ * backend.close();
51
+ * ```
22
52
  *
23
53
  * @category extra
24
54
  */
@@ -26,7 +56,22 @@ declare function sqliteBackend(path: string): StorageBackend & {
26
56
  close(): void;
27
57
  };
28
58
  /**
29
- * Filesystem snapshot tier `snapshotStorage(fileBackend(dir), opts)`.
59
+ * Creates a filesystem snapshot tier backed by a `fileBackend` under `dir`.
60
+ *
61
+ * Convenience wrapper for `snapshotStorage(fileBackend(dir), opts)`.
62
+ * Writes are atomic (temp + rename). Requires Node.js with filesystem access.
63
+ *
64
+ * @param dir - Directory path where snapshot files are stored.
65
+ * @param opts - Optional snapshot storage options (name, codec, filter, keyOf, debounce, compactEvery).
66
+ * @returns `SnapshotStorageTier<T>` backed by the filesystem.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * import { fileSnapshot } from "@graphrefly/graphrefly/extra/node";
71
+ *
72
+ * const tier = fileSnapshot<{ count: number }>("./checkpoints", { name: "counter" });
73
+ * await tier.save({ count: 1 });
74
+ * ```
30
75
  *
31
76
  * @category extra
32
77
  */
@@ -34,7 +79,22 @@ declare function fileSnapshot<T>(dir: string, opts?: Omit<SnapshotStorageOptions
34
79
  name?: string;
35
80
  }): SnapshotStorageTier<T>;
36
81
  /**
37
- * Filesystem append-log tier `appendLogStorage(fileBackend(dir), opts)`.
82
+ * Creates a filesystem append-log tier backed by a `fileBackend` under `dir`.
83
+ *
84
+ * Convenience wrapper for `appendLogStorage(fileBackend(dir), opts)`.
85
+ * Writes are atomic (temp + rename). Requires Node.js with filesystem access.
86
+ *
87
+ * @param dir - Directory path where append-log files are stored.
88
+ * @param opts - Optional append-log storage options (name, codec, keyOf, debounce, compactEvery).
89
+ * @returns `AppendLogStorageTier<T>` backed by the filesystem.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * import { fileAppendLog } from "@graphrefly/graphrefly/extra/node";
94
+ *
95
+ * const tier = fileAppendLog<{ type: string; id: number }>("./events");
96
+ * await tier.appendEntries([{ type: "created", id: 1 }]);
97
+ * ```
38
98
  *
39
99
  * @category extra
40
100
  */
@@ -42,8 +102,24 @@ declare function fileAppendLog<T>(dir: string, opts?: Omit<AppendLogStorageOptio
42
102
  name?: string;
43
103
  }): AppendLogStorageTier<T>;
44
104
  /**
45
- * SQLite snapshot tier caller owns the connection. Use the underlying
46
- * backend's `close()` for explicit teardown.
105
+ * Creates a SQLite snapshot tier; caller owns the connection lifetime.
106
+ *
107
+ * Convenience wrapper for `snapshotStorage(sqliteBackend(path), opts)`.
108
+ * The returned tier exposes an extra `close()` method — call it for explicit
109
+ * teardown of the underlying SQLite connection.
110
+ *
111
+ * @param path - Filesystem path to the SQLite database file.
112
+ * @param opts - Optional snapshot storage options (name, codec, filter, keyOf, debounce, compactEvery).
113
+ * @returns `SnapshotStorageTier<T>` with a `close()` method for connection teardown.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * import { sqliteSnapshot } from "@graphrefly/graphrefly/extra/node";
118
+ *
119
+ * const tier = sqliteSnapshot<{ count: number }>("./state.db", { name: "counter" });
120
+ * await tier.save({ count: 42 });
121
+ * tier.close();
122
+ * ```
47
123
  *
48
124
  * @category extra
49
125
  */
@@ -53,8 +129,24 @@ declare function sqliteSnapshot<T>(path: string, opts?: Omit<SnapshotStorageOpti
53
129
  close(): void;
54
130
  };
55
131
  /**
56
- * SQLite append-log tier caller owns the connection. Use the underlying
57
- * backend's `close()` for explicit teardown.
132
+ * Creates a SQLite append-log tier; caller owns the connection lifetime.
133
+ *
134
+ * Convenience wrapper for `appendLogStorage(sqliteBackend(path), opts)`.
135
+ * The returned tier exposes an extra `close()` method — call it for explicit
136
+ * teardown of the underlying SQLite connection.
137
+ *
138
+ * @param path - Filesystem path to the SQLite database file.
139
+ * @param opts - Optional append-log storage options (name, codec, keyOf, debounce, compactEvery).
140
+ * @returns `AppendLogStorageTier<T>` with a `close()` method for connection teardown.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import { sqliteAppendLog } from "@graphrefly/graphrefly/extra/node";
145
+ *
146
+ * const tier = sqliteAppendLog<{ type: string }>("./events.db", { name: "events" });
147
+ * await tier.appendEntries([{ type: "created" }]);
148
+ * tier.close();
149
+ * ```
58
150
  *
59
151
  * @category extra
60
152
  */
@@ -64,7 +156,23 @@ declare function sqliteAppendLog<T>(path: string, opts?: Omit<AppendLogStorageOp
64
156
  close(): void;
65
157
  };
66
158
  /**
67
- * Filesystem kv tier `kvStorage(fileBackend(dir), opts)`.
159
+ * Creates a filesystem key-value tier backed by a `fileBackend` under `dir`.
160
+ *
161
+ * Convenience wrapper for `kvStorage(fileBackend(dir), opts)`.
162
+ * Each key is stored as a separate file; writes are atomic (temp + rename).
163
+ *
164
+ * @param dir - Directory path where key files are stored.
165
+ * @param opts - Optional kv storage options (name, codec, filter, debounce, compactEvery).
166
+ * @returns `KvStorageTier<T>` backed by the filesystem.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * import { fileKv } from "@graphrefly/graphrefly/extra/node";
171
+ *
172
+ * const kv = fileKv<{ score: number }>("./scores");
173
+ * await kv.save("player1", { score: 100 });
174
+ * const val = await kv.load("player1");
175
+ * ```
68
176
  *
69
177
  * @category extra
70
178
  */
@@ -72,8 +180,24 @@ declare function fileKv<T>(dir: string, opts?: Omit<KvStorageOptions<T>, "name">
72
180
  name?: string;
73
181
  }): KvStorageTier<T>;
74
182
  /**
75
- * SQLite kv tier caller owns the connection. Use the underlying
76
- * backend's `close()` for explicit teardown.
183
+ * Creates a SQLite key-value tier; caller owns the connection lifetime.
184
+ *
185
+ * Convenience wrapper for `kvStorage(sqliteBackend(path), opts)`.
186
+ * The returned tier exposes an extra `close()` method — call it for explicit
187
+ * teardown of the underlying SQLite connection.
188
+ *
189
+ * @param path - Filesystem path to the SQLite database file.
190
+ * @param opts - Optional kv storage options (name, codec, filter, debounce, compactEvery).
191
+ * @returns `KvStorageTier<T>` with a `close()` method for connection teardown.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * import { sqliteKv } from "@graphrefly/graphrefly/extra/node";
196
+ *
197
+ * const kv = sqliteKv<{ score: number }>("./scores.db");
198
+ * await kv.save("player1", { score: 100 });
199
+ * kv.close();
200
+ * ```
77
201
  *
78
202
  * @category extra
79
203
  */