@yydb/light-db 0.0.0 → 0.0.10

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 (230) hide show
  1. package/dist/api/database.d.ts +48 -0
  2. package/dist/api/database.d.ts.map +1 -0
  3. package/dist/api/database.js +120 -0
  4. package/dist/api/database.js.map +1 -0
  5. package/dist/api/index.d.ts +7 -22
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +5 -52
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/schema.d.ts +33 -0
  10. package/dist/api/schema.d.ts.map +1 -0
  11. package/dist/api/schema.js +80 -0
  12. package/dist/api/schema.js.map +1 -0
  13. package/dist/api/transaction.d.ts +26 -0
  14. package/dist/api/transaction.d.ts.map +1 -0
  15. package/dist/api/transaction.js +52 -0
  16. package/dist/api/transaction.js.map +1 -0
  17. package/dist/api/types.d.ts +55 -148
  18. package/dist/api/types.d.ts.map +1 -1
  19. package/dist/api/types.js +6 -5
  20. package/dist/api/types.js.map +1 -1
  21. package/dist/codec/binary.d.ts +196 -0
  22. package/dist/codec/binary.d.ts.map +1 -0
  23. package/dist/codec/binary.js +342 -0
  24. package/dist/codec/binary.js.map +1 -0
  25. package/dist/codec/checksum.d.ts +21 -0
  26. package/dist/codec/checksum.d.ts.map +1 -0
  27. package/dist/codec/checksum.js +46 -0
  28. package/dist/codec/checksum.js.map +1 -0
  29. package/dist/codec/index.d.ts +12 -0
  30. package/dist/codec/index.d.ts.map +1 -0
  31. package/dist/codec/index.js +10 -0
  32. package/dist/codec/index.js.map +1 -0
  33. package/dist/codec/page.d.ts +114 -0
  34. package/dist/codec/page.d.ts.map +1 -0
  35. package/dist/codec/page.js +225 -0
  36. package/dist/codec/page.js.map +1 -0
  37. package/dist/codec/record.d.ts +62 -0
  38. package/dist/codec/record.d.ts.map +1 -0
  39. package/dist/codec/record.js +82 -0
  40. package/dist/codec/record.js.map +1 -0
  41. package/dist/core/broadcast.d.ts +39 -0
  42. package/dist/core/broadcast.d.ts.map +1 -0
  43. package/dist/core/broadcast.js +54 -0
  44. package/dist/core/broadcast.js.map +1 -0
  45. package/dist/core/checkpoint.d.ts +23 -0
  46. package/dist/core/checkpoint.d.ts.map +1 -0
  47. package/dist/core/checkpoint.js +49 -0
  48. package/dist/core/checkpoint.js.map +1 -0
  49. package/dist/core/engine.d.ts +142 -0
  50. package/dist/core/engine.d.ts.map +1 -0
  51. package/dist/core/engine.js +304 -0
  52. package/dist/core/engine.js.map +1 -0
  53. package/dist/core/index.d.ts +17 -0
  54. package/dist/core/index.d.ts.map +1 -0
  55. package/dist/core/index.js +13 -0
  56. package/dist/core/index.js.map +1 -0
  57. package/dist/core/lease.d.ts +32 -0
  58. package/dist/core/lease.d.ts.map +1 -0
  59. package/dist/core/lease.js +81 -0
  60. package/dist/core/lease.js.map +1 -0
  61. package/dist/core/records.d.ts +49 -0
  62. package/dist/core/records.d.ts.map +1 -0
  63. package/dist/core/records.js +70 -0
  64. package/dist/core/records.js.map +1 -0
  65. package/dist/core/recovery.d.ts +43 -0
  66. package/dist/core/recovery.d.ts.map +1 -0
  67. package/dist/core/recovery.js +99 -0
  68. package/dist/core/recovery.js.map +1 -0
  69. package/dist/core/wal.d.ts +50 -0
  70. package/dist/core/wal.d.ts.map +1 -0
  71. package/dist/core/wal.js +114 -0
  72. package/dist/core/wal.js.map +1 -0
  73. package/dist/errors/index.d.ts +44 -66
  74. package/dist/errors/index.d.ts.map +1 -1
  75. package/dist/errors/index.js +43 -128
  76. package/dist/errors/index.js.map +1 -1
  77. package/dist/index.d.ts +14 -215
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +14 -724
  80. package/dist/index.js.map +1 -1
  81. package/dist/storage/StorageAdapter.d.ts +97 -0
  82. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  83. package/dist/storage/StorageAdapter.js +9 -0
  84. package/dist/storage/StorageAdapter.js.map +1 -0
  85. package/dist/storage/index.d.ts +9 -8
  86. package/dist/storage/index.d.ts.map +1 -1
  87. package/dist/storage/index.js +8 -151
  88. package/dist/storage/index.js.map +1 -1
  89. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts +140 -0
  90. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts.map +1 -0
  91. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js +403 -0
  92. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js.map +1 -0
  93. package/dist/storage/memory/MemoryStorageAdapter.d.ts +76 -0
  94. package/dist/storage/memory/MemoryStorageAdapter.d.ts.map +1 -0
  95. package/dist/storage/memory/MemoryStorageAdapter.js +212 -0
  96. package/dist/storage/memory/MemoryStorageAdapter.js.map +1 -0
  97. package/dist/storage/opfs/OpfsStorageAdapter.d.ts +141 -0
  98. package/dist/storage/opfs/OpfsStorageAdapter.d.ts.map +1 -0
  99. package/dist/storage/opfs/OpfsStorageAdapter.js +400 -0
  100. package/dist/storage/opfs/OpfsStorageAdapter.js.map +1 -0
  101. package/package.json +48 -36
  102. package/readme.md +80 -94
  103. package/dist/api/LightDB.d.ts +0 -194
  104. package/dist/api/LightDB.d.ts.map +0 -1
  105. package/dist/api/LightDB.js +0 -299
  106. package/dist/api/LightDB.js.map +0 -1
  107. package/dist/api/Transaction.d.ts +0 -100
  108. package/dist/api/Transaction.d.ts.map +0 -1
  109. package/dist/api/Transaction.js +0 -263
  110. package/dist/api/Transaction.js.map +0 -1
  111. package/dist/collection/Collection.d.ts +0 -235
  112. package/dist/collection/Collection.d.ts.map +0 -1
  113. package/dist/collection/Collection.js +0 -671
  114. package/dist/collection/Collection.js.map +0 -1
  115. package/dist/collection/QueryBuilder.d.ts +0 -225
  116. package/dist/collection/QueryBuilder.d.ts.map +0 -1
  117. package/dist/collection/QueryBuilder.js +0 -475
  118. package/dist/collection/QueryBuilder.js.map +0 -1
  119. package/dist/collection/QueryParser.d.ts +0 -117
  120. package/dist/collection/QueryParser.d.ts.map +0 -1
  121. package/dist/collection/QueryParser.js +0 -438
  122. package/dist/collection/QueryParser.js.map +0 -1
  123. package/dist/collection/index.d.ts +0 -42
  124. package/dist/collection/index.d.ts.map +0 -1
  125. package/dist/collection/index.js +0 -41
  126. package/dist/collection/index.js.map +0 -1
  127. package/dist/collection/types.d.ts +0 -365
  128. package/dist/collection/types.d.ts.map +0 -1
  129. package/dist/collection/types.js +0 -7
  130. package/dist/collection/types.js.map +0 -1
  131. package/dist/constants/index.d.ts +0 -51
  132. package/dist/constants/index.d.ts.map +0 -1
  133. package/dist/constants/index.js +0 -68
  134. package/dist/constants/index.js.map +0 -1
  135. package/dist/indexes/BPlusTree.d.ts +0 -181
  136. package/dist/indexes/BPlusTree.d.ts.map +0 -1
  137. package/dist/indexes/BPlusTree.js +0 -528
  138. package/dist/indexes/BPlusTree.js.map +0 -1
  139. package/dist/indexes/IndexManager.d.ts +0 -236
  140. package/dist/indexes/IndexManager.d.ts.map +0 -1
  141. package/dist/indexes/IndexManager.js +0 -502
  142. package/dist/indexes/IndexManager.js.map +0 -1
  143. package/dist/indexes/PrimaryIndex.d.ts +0 -240
  144. package/dist/indexes/PrimaryIndex.d.ts.map +0 -1
  145. package/dist/indexes/PrimaryIndex.js +0 -354
  146. package/dist/indexes/PrimaryIndex.js.map +0 -1
  147. package/dist/indexes/SecondaryIndex.d.ts +0 -204
  148. package/dist/indexes/SecondaryIndex.d.ts.map +0 -1
  149. package/dist/indexes/SecondaryIndex.js +0 -480
  150. package/dist/indexes/SecondaryIndex.js.map +0 -1
  151. package/dist/indexes/errors.d.ts +0 -66
  152. package/dist/indexes/errors.d.ts.map +0 -1
  153. package/dist/indexes/errors.js +0 -117
  154. package/dist/indexes/errors.js.map +0 -1
  155. package/dist/indexes/index.d.ts +0 -52
  156. package/dist/indexes/index.d.ts.map +0 -1
  157. package/dist/indexes/index.js +0 -131
  158. package/dist/indexes/index.js.map +0 -1
  159. package/dist/indexes/types.d.ts +0 -246
  160. package/dist/indexes/types.d.ts.map +0 -1
  161. package/dist/indexes/types.js +0 -30
  162. package/dist/indexes/types.js.map +0 -1
  163. package/dist/performance/BatchWALWriter.d.ts +0 -185
  164. package/dist/performance/BatchWALWriter.d.ts.map +0 -1
  165. package/dist/performance/BatchWALWriter.js +0 -490
  166. package/dist/performance/BatchWALWriter.js.map +0 -1
  167. package/dist/performance/ColumnarStorage.d.ts +0 -138
  168. package/dist/performance/ColumnarStorage.d.ts.map +0 -1
  169. package/dist/performance/ColumnarStorage.js +0 -875
  170. package/dist/performance/ColumnarStorage.js.map +0 -1
  171. package/dist/performance/LazyQuery.d.ts +0 -307
  172. package/dist/performance/LazyQuery.d.ts.map +0 -1
  173. package/dist/performance/LazyQuery.js +0 -588
  174. package/dist/performance/LazyQuery.js.map +0 -1
  175. package/dist/performance/OptimizedBuffer.d.ts +0 -375
  176. package/dist/performance/OptimizedBuffer.d.ts.map +0 -1
  177. package/dist/performance/OptimizedBuffer.js +0 -730
  178. package/dist/performance/OptimizedBuffer.js.map +0 -1
  179. package/dist/performance/RWLock.d.ts +0 -260
  180. package/dist/performance/RWLock.d.ts.map +0 -1
  181. package/dist/performance/RWLock.js +0 -570
  182. package/dist/performance/RWLock.js.map +0 -1
  183. package/dist/performance/index.d.ts +0 -41
  184. package/dist/performance/index.d.ts.map +0 -1
  185. package/dist/performance/index.js +0 -162
  186. package/dist/performance/index.js.map +0 -1
  187. package/dist/performance/types.d.ts +0 -247
  188. package/dist/performance/types.d.ts.map +0 -1
  189. package/dist/performance/types.js +0 -26
  190. package/dist/performance/types.js.map +0 -1
  191. package/dist/storage/Checkpoint.d.ts +0 -128
  192. package/dist/storage/Checkpoint.d.ts.map +0 -1
  193. package/dist/storage/Checkpoint.js +0 -251
  194. package/dist/storage/Checkpoint.js.map +0 -1
  195. package/dist/storage/LightFile.d.ts +0 -227
  196. package/dist/storage/LightFile.d.ts.map +0 -1
  197. package/dist/storage/LightFile.js +0 -526
  198. package/dist/storage/LightFile.js.map +0 -1
  199. package/dist/storage/Recovery.d.ts +0 -172
  200. package/dist/storage/Recovery.d.ts.map +0 -1
  201. package/dist/storage/Recovery.js +0 -399
  202. package/dist/storage/Recovery.js.map +0 -1
  203. package/dist/storage/SHMFile.d.ts +0 -243
  204. package/dist/storage/SHMFile.d.ts.map +0 -1
  205. package/dist/storage/SHMFile.js +0 -436
  206. package/dist/storage/SHMFile.js.map +0 -1
  207. package/dist/storage/StorageEngine.d.ts +0 -146
  208. package/dist/storage/StorageEngine.d.ts.map +0 -1
  209. package/dist/storage/StorageEngine.js +0 -353
  210. package/dist/storage/StorageEngine.js.map +0 -1
  211. package/dist/storage/WALFile.d.ts +0 -248
  212. package/dist/storage/WALFile.d.ts.map +0 -1
  213. package/dist/storage/WALFile.js +0 -597
  214. package/dist/storage/WALFile.js.map +0 -1
  215. package/dist/types/index.d.ts +0 -220
  216. package/dist/types/index.d.ts.map +0 -1
  217. package/dist/types/index.js +0 -7
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/utils/binary.d.ts +0 -271
  220. package/dist/utils/binary.d.ts.map +0 -1
  221. package/dist/utils/binary.js +0 -454
  222. package/dist/utils/binary.js.map +0 -1
  223. package/dist/utils/file.d.ts +0 -166
  224. package/dist/utils/file.d.ts.map +0 -1
  225. package/dist/utils/file.js +0 -346
  226. package/dist/utils/file.js.map +0 -1
  227. package/dist/utils/index.d.ts +0 -6
  228. package/dist/utils/index.d.ts.map +0 -1
  229. package/dist/utils/index.js +0 -39
  230. package/dist/utils/index.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG3D,MAAM;AACN,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAClB,MAAM,SAAS,CAAC;AAGjB,SAAS;AACT,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,GACvB,MAAM,WAAW,CAAC;AAGnB,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAaxG,MAAM;AACN,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACf,MAAM,OAAO,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * 存储适配器合同
3
+ *
4
+ * 这是 `@yydb/light-db` 唯一的平台边界。上层只认识逻辑文件名与随机访问句柄,
5
+ * 不认识本地路径、OPFS 目录结构或任何 Node 文件 API。
6
+ */
7
+ /** 逻辑文件名,对外不暴露扩展名与目录结构 */
8
+ export type StorageFile = 'main' | 'main.tmp' | 'wal' | 'shm';
9
+ /** 所有逻辑文件 */
10
+ export declare const STORAGE_FILES: readonly StorageFile[];
11
+ /** 打开模式 */
12
+ export type StorageOpenMode = 'read' | 'readwrite';
13
+ /** 适配器类型 */
14
+ export type StorageAdapterKind = 'opfs' | 'indexeddb' | 'memory';
15
+ /**
16
+ * 随机访问句柄
17
+ *
18
+ * 语义参照 OPFS `FileSystemSyncAccessHandle`:按位置读写、可截断、可 flush,
19
+ * 不提供路径、目录或文件重命名能力。
20
+ */
21
+ export interface StorageHandle {
22
+ /**
23
+ * 读取指定区间
24
+ * @param position 起始位置
25
+ * @param length 期望长度,超出文件末尾时返回实际可读部分
26
+ */
27
+ read(position: number, length: number): Promise<Uint8Array>;
28
+ /**
29
+ * 写入指定位置,必要时扩展文件
30
+ * @param position 起始位置
31
+ * @param data 数据
32
+ */
33
+ write(position: number, data: Uint8Array): Promise<void>;
34
+ /**
35
+ * 截断到指定大小
36
+ * @param size 目标大小
37
+ */
38
+ truncate(size: number): Promise<void>;
39
+ /** 将已写入的数据持久化到宿主 */
40
+ sync(): Promise<void>;
41
+ /** 当前文件大小 */
42
+ size(): Promise<number>;
43
+ /** 关闭句柄 */
44
+ close(): Promise<void>;
45
+ }
46
+ /**
47
+ * 单个数据库的存储适配器
48
+ *
49
+ * 适配器只管理四个逻辑文件,原子发布由 `rename` 完成。
50
+ */
51
+ export interface StorageAdapter {
52
+ /** 适配器类型 */
53
+ readonly kind: StorageAdapterKind;
54
+ /** 数据是否在会话结束后仍然存在 */
55
+ readonly persistent: boolean;
56
+ /**
57
+ * 打开逻辑文件
58
+ * @param file 逻辑文件名
59
+ * @param mode 打开模式,默认 `readwrite`
60
+ */
61
+ open(file: StorageFile, mode?: StorageOpenMode): Promise<StorageHandle>;
62
+ /**
63
+ * 判断逻辑文件是否存在
64
+ * @param file 逻辑文件名
65
+ */
66
+ exists(file: StorageFile): Promise<boolean>;
67
+ /**
68
+ * 删除逻辑文件,不存在时视为成功
69
+ * @param file 逻辑文件名
70
+ */
71
+ delete(file: StorageFile): Promise<void>;
72
+ /**
73
+ * 原子重命名,用于发布快照
74
+ * @param from 源文件
75
+ * @param to 目标文件
76
+ */
77
+ rename(from: StorageFile, to: StorageFile): Promise<void>;
78
+ /** 列出已存在的逻辑文件 */
79
+ list(): Promise<StorageFile[]>;
80
+ /** 关闭适配器 */
81
+ close(): Promise<void>;
82
+ }
83
+ /**
84
+ * 按数据库名打开适配器的工厂
85
+ */
86
+ export interface StorageAdapterFactory {
87
+ /** 适配器类型 */
88
+ readonly kind: StorageAdapterKind;
89
+ /** 数据是否在会话结束后仍然存在 */
90
+ readonly persistent: boolean;
91
+ /**
92
+ * 打开指定数据库的适配器
93
+ * @param name 数据库名(浏览器 storage namespace)
94
+ */
95
+ openDatabase(name: string): Promise<StorageAdapter>;
96
+ }
97
+ //# sourceMappingURL=StorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageAdapter.d.ts","sourceRoot":"","sources":["../../src/storage/StorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,aAAa;AACb,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAuC,CAAC;AAExF,WAAW;AACX,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,CAAC;AAEnD,YAAY;AACZ,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5D;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,oBAAoB;IACpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,aAAa;IACb,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAExB,WAAW;IACX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,YAAY;IACZ,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAElC,qBAAqB;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAExE;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,iBAAiB;IACjB,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE/B,YAAY;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,YAAY;IACZ,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAElC,qBAAqB;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 存储适配器合同
3
+ *
4
+ * 这是 `@yydb/light-db` 唯一的平台边界。上层只认识逻辑文件名与随机访问句柄,
5
+ * 不认识本地路径、OPFS 目录结构或任何 Node 文件 API。
6
+ */
7
+ /** 所有逻辑文件 */
8
+ export const STORAGE_FILES = ['main', 'main.tmp', 'wal', 'shm'];
9
+ //# sourceMappingURL=StorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageAdapter.js","sourceRoot":"","sources":["../../src/storage/StorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,aAAa;AACb,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * 存储模块导出
2
+ * storage 层导出
3
+ *
4
+ * `StorageAdapter` 是唯一平台边界;OPFS 为默认后端,内存后端用于测试与一次性会话。
3
5
  */
4
- export { LightFileSerializer, LightFileManager, PageManager } from "./LightFile";
5
- export { WalRecordSerializer, WalWriter, WalReader, WalManager } from "./WALFile";
6
- export { ShmSerializer, ShmHashTable, ShmFileManager, WalIndexManager } from "./SHMFile";
7
- export { CheckpointManager, AutoCheckpointScheduler, IncrementalCheckpointManager, CheckpointOptions } from "./Checkpoint";
8
- export { RecoveryManager, FastRecoveryManager, RecoveryValidator, RecoveryPhase, RecoveryContext } from "./Recovery";
9
- export { StorageEngine, createStorageEngine } from "./StorageEngine";
10
- //# sourceMappingURL=index.d.ts.map
6
+ export { STORAGE_FILES } from './StorageAdapter';
7
+ export type { StorageAdapter, StorageAdapterFactory, StorageAdapterKind, StorageFile, StorageHandle, StorageOpenMode } from './StorageAdapter';
8
+ export { MemoryStorageAdapter, MemoryStorageBackend } from './memory/MemoryStorageAdapter';
9
+ export { OpfsStorageAdapter, OpfsStorageAdapterFactory, isOpfsAvailable } from './opfs/OpfsStorageAdapter';
10
+ export { IndexedDbStorageAdapter, IndexedDbStorageAdapterFactory, isIndexedDbAvailable } from './indexeddb/IndexedDbStorageAdapter';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,UAAU,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/I,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,153 +1,10 @@
1
- "use strict";
2
1
  /**
3
- * 存储模块导出
2
+ * storage 层导出
3
+ *
4
+ * `StorageAdapter` 是唯一平台边界;OPFS 为默认后端,内存后端用于测试与一次性会话。
4
5
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createStorageEngine =
7
- exports.StorageEngine =
8
- exports.RecoveryPhase =
9
- exports.RecoveryValidator =
10
- exports.FastRecoveryManager =
11
- exports.RecoveryManager =
12
- exports.IncrementalCheckpointManager =
13
- exports.AutoCheckpointScheduler =
14
- exports.CheckpointManager =
15
- exports.WalIndexManager =
16
- exports.ShmFileManager =
17
- exports.ShmHashTable =
18
- exports.ShmSerializer =
19
- exports.WalManager =
20
- exports.WalReader =
21
- exports.WalWriter =
22
- exports.WalRecordSerializer =
23
- exports.PageManager =
24
- exports.LightFileManager =
25
- exports.LightFileSerializer =
26
- void 0;
27
- var LightFile_1 = require("./LightFile");
28
- Object.defineProperty(exports, "LightFileSerializer", {
29
- enumerable: true,
30
- get: function () {
31
- return LightFile_1.LightFileSerializer;
32
- },
33
- });
34
- Object.defineProperty(exports, "LightFileManager", {
35
- enumerable: true,
36
- get: function () {
37
- return LightFile_1.LightFileManager;
38
- },
39
- });
40
- Object.defineProperty(exports, "PageManager", {
41
- enumerable: true,
42
- get: function () {
43
- return LightFile_1.PageManager;
44
- },
45
- });
46
- var WALFile_1 = require("./WALFile");
47
- Object.defineProperty(exports, "WalRecordSerializer", {
48
- enumerable: true,
49
- get: function () {
50
- return WALFile_1.WalRecordSerializer;
51
- },
52
- });
53
- Object.defineProperty(exports, "WalWriter", {
54
- enumerable: true,
55
- get: function () {
56
- return WALFile_1.WalWriter;
57
- },
58
- });
59
- Object.defineProperty(exports, "WalReader", {
60
- enumerable: true,
61
- get: function () {
62
- return WALFile_1.WalReader;
63
- },
64
- });
65
- Object.defineProperty(exports, "WalManager", {
66
- enumerable: true,
67
- get: function () {
68
- return WALFile_1.WalManager;
69
- },
70
- });
71
- var SHMFile_1 = require("./SHMFile");
72
- Object.defineProperty(exports, "ShmSerializer", {
73
- enumerable: true,
74
- get: function () {
75
- return SHMFile_1.ShmSerializer;
76
- },
77
- });
78
- Object.defineProperty(exports, "ShmHashTable", {
79
- enumerable: true,
80
- get: function () {
81
- return SHMFile_1.ShmHashTable;
82
- },
83
- });
84
- Object.defineProperty(exports, "ShmFileManager", {
85
- enumerable: true,
86
- get: function () {
87
- return SHMFile_1.ShmFileManager;
88
- },
89
- });
90
- Object.defineProperty(exports, "WalIndexManager", {
91
- enumerable: true,
92
- get: function () {
93
- return SHMFile_1.WalIndexManager;
94
- },
95
- });
96
- var Checkpoint_1 = require("./Checkpoint");
97
- Object.defineProperty(exports, "CheckpointManager", {
98
- enumerable: true,
99
- get: function () {
100
- return Checkpoint_1.CheckpointManager;
101
- },
102
- });
103
- Object.defineProperty(exports, "AutoCheckpointScheduler", {
104
- enumerable: true,
105
- get: function () {
106
- return Checkpoint_1.AutoCheckpointScheduler;
107
- },
108
- });
109
- Object.defineProperty(exports, "IncrementalCheckpointManager", {
110
- enumerable: true,
111
- get: function () {
112
- return Checkpoint_1.IncrementalCheckpointManager;
113
- },
114
- });
115
- var Recovery_1 = require("./Recovery");
116
- Object.defineProperty(exports, "RecoveryManager", {
117
- enumerable: true,
118
- get: function () {
119
- return Recovery_1.RecoveryManager;
120
- },
121
- });
122
- Object.defineProperty(exports, "FastRecoveryManager", {
123
- enumerable: true,
124
- get: function () {
125
- return Recovery_1.FastRecoveryManager;
126
- },
127
- });
128
- Object.defineProperty(exports, "RecoveryValidator", {
129
- enumerable: true,
130
- get: function () {
131
- return Recovery_1.RecoveryValidator;
132
- },
133
- });
134
- Object.defineProperty(exports, "RecoveryPhase", {
135
- enumerable: true,
136
- get: function () {
137
- return Recovery_1.RecoveryPhase;
138
- },
139
- });
140
- var StorageEngine_1 = require("./StorageEngine");
141
- Object.defineProperty(exports, "StorageEngine", {
142
- enumerable: true,
143
- get: function () {
144
- return StorageEngine_1.StorageEngine;
145
- },
146
- });
147
- Object.defineProperty(exports, "createStorageEngine", {
148
- enumerable: true,
149
- get: function () {
150
- return StorageEngine_1.createStorageEngine;
151
- },
152
- });
153
- //# sourceMappingURL=index.js.map
6
+ export { STORAGE_FILES } from './StorageAdapter';
7
+ export { MemoryStorageAdapter, MemoryStorageBackend } from './memory/MemoryStorageAdapter';
8
+ export { OpfsStorageAdapter, OpfsStorageAdapterFactory, isOpfsAvailable } from './opfs/OpfsStorageAdapter';
9
+ export { IndexedDbStorageAdapter, IndexedDbStorageAdapterFactory, isIndexedDbAvailable } from './indexeddb/IndexedDbStorageAdapter';
10
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAIqB;AAHjB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AAEf,qCAKmB;AAJf,8GAAA,mBAAmB,OAAA;AACnB,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,qGAAA,UAAU,OAAA;AAEd,qCAKmB;AAJf,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AAEnB,2CAKsB;AAJlB,+GAAA,iBAAiB,OAAA;AACjB,qHAAA,uBAAuB,OAAA;AACvB,0HAAA,4BAA4B,OAAA;AAGhC,uCAMoB;AALhB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AAGjB,iDAAqE;AAA5D,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * IndexedDB 存储适配器
3
+ *
4
+ * 兼容后端:宿主没有 OPFS,或需要在同一浏览器配置里复用既有存储时使用。
5
+ * 它只实现 `StorageAdapter` 合同,事务、恢复与检查点语义仍由 `core` 决定,
6
+ * 两套后端不各自实现一套数据库语义。
7
+ *
8
+ * IndexedDB 没有按位置随机写的原生能力,因此句柄在内存中维护整份文件内容,
9
+ * `sync()` 与 `close()` 负责把它写回对象仓库。这牺牲了 OPFS 那样的细粒度
10
+ * 原子性,属于兼容后端的已知取舍。
11
+ */
12
+ import type { StorageAdapter, StorageAdapterFactory, StorageFile, StorageHandle, StorageOpenMode } from '../StorageAdapter';
13
+ /** IndexedDB 请求的结构化视图 */
14
+ interface IdbRequestLike<T> {
15
+ result: T;
16
+ error: unknown;
17
+ onsuccess: (() => void) | null;
18
+ onerror: (() => void) | null;
19
+ }
20
+ /** 对象仓库的结构化视图 */
21
+ interface IdbObjectStoreLike {
22
+ get(key: string): IdbRequestLike<ArrayBuffer | undefined>;
23
+ put(value: ArrayBuffer, key: string): IdbRequestLike<unknown>;
24
+ delete(key: string): IdbRequestLike<unknown>;
25
+ getAllKeys(): IdbRequestLike<string[]>;
26
+ }
27
+ /** 事务的结构化视图 */
28
+ interface IdbTransactionLike {
29
+ error: unknown;
30
+ oncomplete: (() => void) | null;
31
+ onerror: (() => void) | null;
32
+ onabort: (() => void) | null;
33
+ objectStore(name: string): IdbObjectStoreLike;
34
+ abort(): void;
35
+ }
36
+ /** 数据库的结构化视图 */
37
+ interface IdbDatabaseLike {
38
+ objectStoreNames: {
39
+ contains(name: string): boolean;
40
+ };
41
+ createObjectStore(name: string): IdbObjectStoreLike;
42
+ transaction(name: string, mode?: 'readonly' | 'readwrite'): IdbTransactionLike;
43
+ close(): void;
44
+ }
45
+ /**
46
+ * 判断当前宿主是否提供 IndexedDB
47
+ */
48
+ export declare function isIndexedDbAvailable(): boolean;
49
+ /**
50
+ * IndexedDB 适配器工厂
51
+ */
52
+ export declare class IndexedDbStorageAdapterFactory implements StorageAdapterFactory {
53
+ /** 适配器类型 */
54
+ readonly kind: "indexeddb";
55
+ /** 数据持久化 */
56
+ readonly persistent = true;
57
+ /**
58
+ * 打开数据库适配器
59
+ * @param name 数据库名
60
+ */
61
+ openDatabase(name: string): Promise<StorageAdapter>;
62
+ }
63
+ /**
64
+ * IndexedDB 存储适配器
65
+ */
66
+ export declare class IndexedDbStorageAdapter implements StorageAdapter {
67
+ /** 适配器类型 */
68
+ readonly kind: "indexeddb";
69
+ /** 数据持久化 */
70
+ readonly persistent = true;
71
+ private readonly name;
72
+ private readonly db;
73
+ private closed;
74
+ constructor(name: string, db: IdbDatabaseLike);
75
+ /**
76
+ * 打开逻辑文件
77
+ * @param file 逻辑文件名
78
+ * @param mode 打开模式
79
+ */
80
+ open(file: StorageFile, mode?: StorageOpenMode): Promise<StorageHandle>;
81
+ /**
82
+ * 判断文件是否存在
83
+ * @param file 逻辑文件名
84
+ */
85
+ exists(file: StorageFile): Promise<boolean>;
86
+ /**
87
+ * 删除文件,不存在时视为成功
88
+ * @param file 逻辑文件名
89
+ */
90
+ delete(file: StorageFile): Promise<void>;
91
+ /**
92
+ * 原子重命名:同一事务内写入目标并删除源
93
+ * @param from 源文件
94
+ * @param to 目标文件
95
+ */
96
+ rename(from: StorageFile, to: StorageFile): Promise<void>;
97
+ /**
98
+ * 列出已存在的文件
99
+ */
100
+ list(): Promise<StorageFile[]>;
101
+ /** 关闭适配器 */
102
+ close(): Promise<void>;
103
+ /**
104
+ * 写回逻辑文件内容
105
+ * @param file 逻辑文件名
106
+ * @param data 文件内容
107
+ */
108
+ persist(file: StorageFile, data: Uint8Array): Promise<void>;
109
+ /**
110
+ * 读取逻辑文件内容
111
+ * @param file 逻辑文件名
112
+ * @returns 内容,文件不存在时返回 null
113
+ */
114
+ private readFile;
115
+ /**
116
+ * 执行只读事务
117
+ * @param operation 操作名
118
+ * @param action 请求构造
119
+ */
120
+ private readTransaction;
121
+ /**
122
+ * 执行读写事务
123
+ * @param operation 操作名
124
+ * @param action 请求构造
125
+ */
126
+ private writeTransaction;
127
+ /**
128
+ * 创建事务
129
+ * @param mode 事务模式
130
+ * @param operation 操作名
131
+ */
132
+ private beginTransaction;
133
+ /**
134
+ * 断言适配器未关闭
135
+ * @param operation 操作名
136
+ */
137
+ private assertOpen;
138
+ }
139
+ export {};
140
+ //# sourceMappingURL=IndexedDbStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDbStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/storage/indexeddb/IndexedDbStorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAY5H,yBAAyB;AACzB,UAAU,cAAc,CAAC,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CAChC;AAQD,iBAAiB;AACjB,UAAU,kBAAkB;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC1D,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,UAAU,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,eAAe;AACf,UAAU,kBAAkB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAC9C,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,gBAAgB;AAChB,UAAU,eAAe;IACrB,gBAAgB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,kBAAkB,CAAC;IAC/E,KAAK,IAAI,IAAI,CAAC;CACjB;AAOD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED;;GAEG;AACH,qBAAa,8BAA+B,YAAW,qBAAqB;IACxE,YAAY;IACZ,SAAgB,IAAI,cAAwB;IAE5C,YAAY;IACZ,SAAgB,UAAU,QAAQ;IAElC;;;OAGG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAInE;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC1D,YAAY;IACZ,SAAgB,IAAI,cAAwB;IAE5C,YAAY;IACZ,SAAgB,UAAU,QAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe;IAK7C;;;;OAIG;IACU,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,eAA6B,GAAG,OAAO,CAAC,aAAa,CAAC;IAajG;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;OAGG;IACU,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;;;OAIG;IACU,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ3C,YAAY;IACC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC;;;;OAIG;IACU,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;;OAIG;YACW,eAAe;IAQ7B;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;IACH,OAAO,CAAC,UAAU;CAOrB"}