@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
@@ -1,154 +1,61 @@
1
1
  /**
2
- * LightDB API 层类型定义
3
- * 包含所有公共 API 接口和类型定义
4
- */
5
- import type { Collection } from "../collection";
6
- import type { CollectionOptions, IndexConfig } from "../collection/types";
7
- import type { StorageEngineOptions, StorageStats, CheckpointResult } from "../types";
8
- /**
9
- * LightDB 配置选项
10
- */
11
- export interface LightDBOptions extends StorageEngineOptions {
12
- /** 数据库名称,默认为 'default' */
13
- dbName?: string;
14
- }
15
- /**
16
- * 集合配置选项
17
- * 用于创建类型安全的集合
18
- */
19
- export interface CollectionCreateOptions<T extends Record<string, unknown>> extends CollectionOptions<T> {
20
- /** 集合名称(必填) */
21
- name: string;
22
- }
23
- /**
24
- * 事务上下文
25
- * 提供事务内的集合访问
26
- */
27
- export interface TransactionContext {
28
- /** 获取集合 */
29
- collection<T extends Record<string, unknown>>(name: string): TransactionCollection<T>;
30
- }
31
- /**
32
- * 事务集合接口
33
- * 提供事务内的集合操作
34
- */
35
- export interface TransactionCollection<T extends Record<string, unknown>> {
36
- /** 查找文档 */
37
- find(filter?: Record<string, unknown>): Promise<T[]>;
38
- /** 查找单个文档 */
39
- findOne(filter: Record<string, unknown>): Promise<T | null>;
40
- /** 插入文档 */
41
- insert(doc: T): Promise<void>;
42
- /** 更新文档 */
43
- update(filter: Record<string, unknown>, update: Partial<T>): Promise<number>;
44
- /** 删除文档 */
45
- delete(filter: Record<string, unknown>): Promise<number>;
46
- }
47
- /**
48
- * 事务回调函数类型
49
- */
50
- export type TransactionCallback = (tx: TransactionContext) => Promise<void>;
51
- /**
52
- * 事务选项
53
- */
54
- export interface TransactionOptions {
55
- /** 事务超时时间(毫秒),默认 5000 */
56
- timeout?: number;
57
- /** 事务隔离级别 */
58
- isolationLevel?: "read_committed" | "repeatable_read" | "serializable";
59
- }
60
- /**
61
- * 事务状态
62
- */
63
- export type TransactionState = "active" | "committed" | "rolled_back" | "failed";
64
- /**
65
- * 事务结果
66
- */
67
- export interface TransactionResult {
68
- /** 事务是否成功 */
69
- success: boolean;
70
- /** 事务状态 */
71
- state: TransactionState;
72
- /** 事务持续时间(毫秒) */
73
- durationMs: number;
74
- /** 错误信息(如果失败) */
75
- error?: string;
76
- }
77
- /**
78
- * 数据库统计信息
79
- */
80
- export interface DatabaseStats extends StorageStats {
81
- /** 数据库名称 */
82
- dbName: string;
83
- /** 集合数量 */
84
- collectionCount: number;
85
- /** 集合统计信息列表 */
86
- collections: Array<{
87
- name: string;
88
- documentCount: number;
89
- indexCount: number;
90
- }>;
91
- }
92
- /**
93
- * 数据库配置信息
94
- */
95
- export interface DatabaseConfig {
96
- /** 数据库名称 */
97
- dbName: string;
98
- /** 数据库路径 */
99
- path: string;
100
- /** 页面大小 */
101
- pageSize: number;
102
- /** WAL 阈值 */
103
- walThreshold: number;
104
- /** 是否启用自动检查点 */
105
- autoCheckpoint: boolean;
106
- }
107
- /**
108
- * LightDB 实例接口
109
- * 定义 LightDB 的公共 API
110
- */
111
- export interface ILightDB {
112
- /** 获取数据库名称 */
113
- readonly dbName: string;
114
- /** 获取数据库路径 */
115
- readonly path: string;
116
- /** 检查数据库是否已打开 */
117
- readonly isOpen: boolean;
118
- /** 获取或创建集合 */
119
- collection<T extends Record<string, unknown>>(name: string, options: CollectionCreateOptions<T>): Collection<T>;
120
- /** 检查集合是否存在 */
121
- hasCollection(name: string): boolean;
122
- /** 删除集合 */
123
- dropCollection(name: string): boolean;
124
- /** 获取所有集合名称 */
125
- getCollectionNames(): string[];
126
- /** 执行事务 */
127
- transaction(callback: TransactionCallback, options?: TransactionOptions): Promise<TransactionResult>;
2
+ * 浏览器数据库作者面类型
3
+ *
4
+ * 这些类型是 `@yydb/light-db` 的稳定合同:二进制一律 `Uint8Array`,
5
+ * 不出现本地路径、文件句柄或 Node 专属类型。
6
+ */
7
+ import type { LeaseMode } from '../core/lease';
8
+ import type { CheckpointResult, StorageEngineStats } from '../core/engine';
9
+ import type { StorageAdapterFactory } from '../storage/StorageAdapter';
10
+ /** Schema 版本与文档,与 `@yydb/yydb` 同构 */
11
+ export interface SchemaVersion {
12
+ /** Schema 版本 */
13
+ version: number;
14
+ /** Schema 文档全文 */
15
+ document: string;
16
+ }
17
+ /** 打开数据库的选项 */
18
+ export interface LightDatabaseOptions {
19
+ /** 页大小,默认 4KB */
20
+ pageSize?: number;
21
+ /** WAL 字节阈值,超过后自动检查点,默认 16MB */
22
+ walThreshold?: number;
23
+ /** 是否自动检查点,默认 true */
24
+ autoCheckpoint?: boolean;
25
+ /** 写租约模式,默认 `web-locks` */
26
+ lease?: LeaseMode;
27
+ /** 存储后端,默认 OPFS */
28
+ storage?: StorageAdapterFactory;
29
+ }
30
+ /**
31
+ * 浏览器数据库
32
+ *
33
+ * 与 `@yydb/yydb` 的 TypeScript 作者面保持同一调用形态与返回语义。
34
+ */
35
+ export interface LightDatabase {
36
+ /** 数据库名 */
37
+ readonly name: string;
38
+ /** 读取已持久化的 schema */
39
+ schema(): Promise<SchemaVersion | null>;
40
+ /** 声明 schema 文档,文档是唯一真相 */
41
+ ensureSchema(document: string): Promise<void>;
42
+ /** 读取键 */
43
+ get(key: string): Promise<Uint8Array | null>;
44
+ /** 写入键 */
45
+ put(key: string, value: Uint8Array): Promise<void>;
46
+ /** 删除键,键存在时返回 true */
47
+ delete(key: string): Promise<boolean>;
48
+ /** 开启事务 */
49
+ begin(): Promise<void>;
50
+ /** 提交事务 */
51
+ commit(): Promise<void>;
52
+ /** 回滚事务 */
53
+ rollback(): Promise<void>;
128
54
  /** 执行检查点 */
129
55
  checkpoint(): Promise<CheckpointResult>;
130
- /** 获取数据库统计信息 */
131
- getStats(): Promise<DatabaseStats>;
132
- /** 获取数据库配置 */
133
- getConfig(): DatabaseConfig;
134
- /** 同步数据到磁盘 */
135
- sync(): Promise<void>;
56
+ /** 数据库统计 */
57
+ stats(): StorageEngineStats;
136
58
  /** 关闭数据库 */
137
59
  close(): Promise<void>;
138
60
  }
139
- /**
140
- * 定义集合 Schema 的辅助类型
141
- */
142
- export type DefineCollectionSchema<T extends Record<string, unknown>> = {
143
- /** 文档类型 */
144
- schema: T;
145
- /** 主键字段 */
146
- primaryKey: keyof T & string;
147
- /** 二级索引配置 */
148
- indexes?: IndexConfig<T>[];
149
- };
150
- /**
151
- * 创建集合 Schema 的辅助函数返回类型
152
- */
153
- export type CollectionSchema<T extends Record<string, unknown>> = DefineCollectionSchema<T>;
154
- //# sourceMappingURL=types.d.ts.map
61
+ //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC1B,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,eAAe;AACf,MAAM,WAAW,oBAAoB;IACjC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mBAAmB;IACnB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,qBAAqB;IACrB,MAAM,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAExC,2BAA2B;IAC3B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,UAAU;IACV,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE7C,UAAU;IACV,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,sBAAsB;IACtB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,WAAW;IACX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,WAAW;IACX,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,WAAW;IACX,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,YAAY;IACZ,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExC,YAAY;IACZ,KAAK,IAAI,kBAAkB,CAAC;IAE5B,YAAY;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
package/dist/api/types.js CHANGED
@@ -1,7 +1,8 @@
1
- "use strict";
2
1
  /**
3
- * LightDB API 层类型定义
4
- * 包含所有公共 API 接口和类型定义
2
+ * 浏览器数据库作者面类型
3
+ *
4
+ * 这些类型是 `@yydb/light-db` 的稳定合同:二进制一律 `Uint8Array`,
5
+ * 不出现本地路径、文件句柄或 Node 专属类型。
5
6
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- //# sourceMappingURL=types.js.map
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * 浏览器原生二进制编解码
3
+ *
4
+ * 公共类型只用 `Uint8Array`,不依赖 Node `Buffer`。
5
+ */
6
+ /**
7
+ * 二进制辅助方法
8
+ */
9
+ export declare class BinaryUtils {
10
+ /**
11
+ * 分配初始化为零的字节数组
12
+ * @param size 大小
13
+ */
14
+ static alloc(size: number): Uint8Array;
15
+ /**
16
+ * 拼接多个字节数组
17
+ * @param parts 字节数组列表
18
+ */
19
+ static concat(parts: readonly Uint8Array[]): Uint8Array;
20
+ /**
21
+ * 计算字符串的 UTF-8 字节长度
22
+ * @param value 字符串
23
+ */
24
+ static byteLength(value: string): number;
25
+ /**
26
+ * 编码字符串为 UTF-8 字节
27
+ * @param value 字符串
28
+ */
29
+ static encode(value: string): Uint8Array;
30
+ /**
31
+ * 解码 UTF-8 字节为字符串
32
+ * @param data 字节
33
+ * @param offset 起始偏移量
34
+ * @param length 长度
35
+ */
36
+ static decode(data: Uint8Array, offset?: number, length?: number): string;
37
+ /**
38
+ * 判断两个字节数组内容是否相同
39
+ * @param a 第一个数组
40
+ * @param b 第二个数组
41
+ */
42
+ static equals(a: Uint8Array, b: Uint8Array): boolean;
43
+ /**
44
+ * 复制字节数组
45
+ * @param source 源数组
46
+ */
47
+ static copy(source: Uint8Array): Uint8Array;
48
+ }
49
+ /**
50
+ * 顺序字节写入器
51
+ *
52
+ * 容量不足时自动扩展,写入 `data` 时返回已写区间视图。
53
+ */
54
+ export declare class ByteWriter {
55
+ private buffer;
56
+ private view;
57
+ private offset;
58
+ /**
59
+ * 创建写入器
60
+ * @param size 初始容量
61
+ */
62
+ constructor(size?: number);
63
+ /** 当前写入位置 */
64
+ get position(): number;
65
+ /** 已写入的数据视图 */
66
+ get data(): Uint8Array;
67
+ /**
68
+ * 确保容量
69
+ * @param additional 需要的额外字节数
70
+ */
71
+ private ensureCapacity;
72
+ /**
73
+ * 写入 8 位无符号整数
74
+ * @param value 值
75
+ */
76
+ writeUInt8(value: number): this;
77
+ /**
78
+ * 写入 16 位无符号整数(小端)
79
+ * @param value 值
80
+ */
81
+ writeUInt16LE(value: number): this;
82
+ /**
83
+ * 写入 32 位无符号整数(小端)
84
+ * @param value 值
85
+ */
86
+ writeUInt32LE(value: number): this;
87
+ /**
88
+ * 写入 64 位无符号整数(小端)
89
+ * @param value 值
90
+ */
91
+ writeBigUInt64LE(value: bigint): this;
92
+ /**
93
+ * 写入原始字节
94
+ * @param value 字节
95
+ */
96
+ writeBytes(value: Uint8Array): this;
97
+ /**
98
+ * 写入带 32 位长度前缀的字节
99
+ * @param value 字节
100
+ */
101
+ writeBytesWithLength(value: Uint8Array): this;
102
+ /**
103
+ * 写入不带长度前缀的 UTF-8 字符串
104
+ * @param value 字符串
105
+ */
106
+ writeStringRaw(value: string): this;
107
+ /**
108
+ * 写入带 32 位长度前缀的 UTF-8 字符串
109
+ * @param value 字符串
110
+ */
111
+ writeString(value: string): this;
112
+ /**
113
+ * 写入从 `startOffset` 到当前位置的 CRC32 校验和
114
+ * @param startOffset 校验范围起点
115
+ */
116
+ writeChecksum(startOffset?: number): this;
117
+ }
118
+ /**
119
+ * 顺序字节读取器
120
+ */
121
+ export declare class ByteReader {
122
+ private readonly buffer;
123
+ private readonly view;
124
+ private offset;
125
+ /**
126
+ * 创建读取器
127
+ * @param buffer 数据
128
+ * @param startOffset 起始偏移量
129
+ */
130
+ constructor(buffer: Uint8Array, startOffset?: number);
131
+ /** 当前读取位置 */
132
+ get position(): number;
133
+ /** 设置读取位置 */
134
+ set position(value: number);
135
+ /** 剩余可读字节数 */
136
+ get remaining(): number;
137
+ /**
138
+ * 是否有足够的可读数据
139
+ * @param required 需要的字节数
140
+ */
141
+ hasRemaining(required: number): boolean;
142
+ /**
143
+ * 读取 8 位无符号整数
144
+ */
145
+ readUInt8(): number;
146
+ /**
147
+ * 读取 16 位无符号整数(小端)
148
+ */
149
+ readUInt16LE(): number;
150
+ /**
151
+ * 读取 32 位无符号整数(小端)
152
+ */
153
+ readUInt32LE(): number;
154
+ /**
155
+ * 读取 64 位无符号整数(小端)
156
+ */
157
+ readBigUInt64LE(): bigint;
158
+ /**
159
+ * 读取指定长度的字节视图
160
+ * @param length 长度
161
+ */
162
+ readBytes(length: number): Uint8Array;
163
+ /**
164
+ * 读取带 32 位长度前缀的字节
165
+ */
166
+ readBytesWithLength(): Uint8Array;
167
+ /**
168
+ * 读取带 32 位长度前缀的 UTF-8 字符串
169
+ */
170
+ readString(): string;
171
+ /**
172
+ * 读取 32 位校验和并校验 `[startOffset, 校验和之前)` 的区间
173
+ * @param startOffset 校验范围起点
174
+ */
175
+ readAndVerifyChecksum(startOffset: number): number;
176
+ /**
177
+ * 跳过指定字节数
178
+ * @param bytes 字节数
179
+ */
180
+ skip(bytes: number): this;
181
+ }
182
+ /**
183
+ * 校验和不匹配
184
+ *
185
+ * codec 层不依赖具体错误模型,由上层转换成稳定错误码。
186
+ */
187
+ export declare class ChecksumMismatchError extends Error {
188
+ /** 期望的校验和 */
189
+ readonly expected: number;
190
+ /** 实际计算出的校验和 */
191
+ readonly actual: number;
192
+ /** 校验区间起点 */
193
+ readonly position: number;
194
+ constructor(expected: number, actual: number, position: number);
195
+ }
196
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/codec/binary.ts"],"names":[],"mappings":"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"}