@yydb/light-db 0.0.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 (150) hide show
  1. package/dist/api/LightDB.d.ts +194 -0
  2. package/dist/api/LightDB.d.ts.map +1 -0
  3. package/dist/api/LightDB.js +299 -0
  4. package/dist/api/LightDB.js.map +1 -0
  5. package/dist/api/Transaction.d.ts +100 -0
  6. package/dist/api/Transaction.d.ts.map +1 -0
  7. package/dist/api/Transaction.js +263 -0
  8. package/dist/api/Transaction.js.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +54 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/types.d.ts +154 -0
  14. package/dist/api/types.d.ts.map +1 -0
  15. package/dist/api/types.js +7 -0
  16. package/dist/api/types.js.map +1 -0
  17. package/dist/collection/Collection.d.ts +235 -0
  18. package/dist/collection/Collection.d.ts.map +1 -0
  19. package/dist/collection/Collection.js +671 -0
  20. package/dist/collection/Collection.js.map +1 -0
  21. package/dist/collection/QueryBuilder.d.ts +225 -0
  22. package/dist/collection/QueryBuilder.d.ts.map +1 -0
  23. package/dist/collection/QueryBuilder.js +475 -0
  24. package/dist/collection/QueryBuilder.js.map +1 -0
  25. package/dist/collection/QueryParser.d.ts +117 -0
  26. package/dist/collection/QueryParser.d.ts.map +1 -0
  27. package/dist/collection/QueryParser.js +438 -0
  28. package/dist/collection/QueryParser.js.map +1 -0
  29. package/dist/collection/index.d.ts +42 -0
  30. package/dist/collection/index.d.ts.map +1 -0
  31. package/dist/collection/index.js +41 -0
  32. package/dist/collection/index.js.map +1 -0
  33. package/dist/collection/types.d.ts +365 -0
  34. package/dist/collection/types.d.ts.map +1 -0
  35. package/dist/collection/types.js +7 -0
  36. package/dist/collection/types.js.map +1 -0
  37. package/dist/constants/index.d.ts +51 -0
  38. package/dist/constants/index.d.ts.map +1 -0
  39. package/dist/constants/index.js +68 -0
  40. package/dist/constants/index.js.map +1 -0
  41. package/dist/errors/index.d.ts +69 -0
  42. package/dist/errors/index.d.ts.map +1 -0
  43. package/dist/errors/index.js +132 -0
  44. package/dist/errors/index.js.map +1 -0
  45. package/dist/index.d.ts +220 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +729 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/indexes/BPlusTree.d.ts +181 -0
  50. package/dist/indexes/BPlusTree.d.ts.map +1 -0
  51. package/dist/indexes/BPlusTree.js +528 -0
  52. package/dist/indexes/BPlusTree.js.map +1 -0
  53. package/dist/indexes/IndexManager.d.ts +236 -0
  54. package/dist/indexes/IndexManager.d.ts.map +1 -0
  55. package/dist/indexes/IndexManager.js +502 -0
  56. package/dist/indexes/IndexManager.js.map +1 -0
  57. package/dist/indexes/PrimaryIndex.d.ts +240 -0
  58. package/dist/indexes/PrimaryIndex.d.ts.map +1 -0
  59. package/dist/indexes/PrimaryIndex.js +354 -0
  60. package/dist/indexes/PrimaryIndex.js.map +1 -0
  61. package/dist/indexes/SecondaryIndex.d.ts +204 -0
  62. package/dist/indexes/SecondaryIndex.d.ts.map +1 -0
  63. package/dist/indexes/SecondaryIndex.js +480 -0
  64. package/dist/indexes/SecondaryIndex.js.map +1 -0
  65. package/dist/indexes/errors.d.ts +66 -0
  66. package/dist/indexes/errors.d.ts.map +1 -0
  67. package/dist/indexes/errors.js +117 -0
  68. package/dist/indexes/errors.js.map +1 -0
  69. package/dist/indexes/index.d.ts +52 -0
  70. package/dist/indexes/index.d.ts.map +1 -0
  71. package/dist/indexes/index.js +131 -0
  72. package/dist/indexes/index.js.map +1 -0
  73. package/dist/indexes/types.d.ts +246 -0
  74. package/dist/indexes/types.d.ts.map +1 -0
  75. package/dist/indexes/types.js +30 -0
  76. package/dist/indexes/types.js.map +1 -0
  77. package/dist/performance/BatchWALWriter.d.ts +185 -0
  78. package/dist/performance/BatchWALWriter.d.ts.map +1 -0
  79. package/dist/performance/BatchWALWriter.js +490 -0
  80. package/dist/performance/BatchWALWriter.js.map +1 -0
  81. package/dist/performance/ColumnarStorage.d.ts +138 -0
  82. package/dist/performance/ColumnarStorage.d.ts.map +1 -0
  83. package/dist/performance/ColumnarStorage.js +875 -0
  84. package/dist/performance/ColumnarStorage.js.map +1 -0
  85. package/dist/performance/LazyQuery.d.ts +307 -0
  86. package/dist/performance/LazyQuery.d.ts.map +1 -0
  87. package/dist/performance/LazyQuery.js +588 -0
  88. package/dist/performance/LazyQuery.js.map +1 -0
  89. package/dist/performance/OptimizedBuffer.d.ts +375 -0
  90. package/dist/performance/OptimizedBuffer.d.ts.map +1 -0
  91. package/dist/performance/OptimizedBuffer.js +730 -0
  92. package/dist/performance/OptimizedBuffer.js.map +1 -0
  93. package/dist/performance/RWLock.d.ts +260 -0
  94. package/dist/performance/RWLock.d.ts.map +1 -0
  95. package/dist/performance/RWLock.js +570 -0
  96. package/dist/performance/RWLock.js.map +1 -0
  97. package/dist/performance/index.d.ts +41 -0
  98. package/dist/performance/index.d.ts.map +1 -0
  99. package/dist/performance/index.js +162 -0
  100. package/dist/performance/index.js.map +1 -0
  101. package/dist/performance/types.d.ts +247 -0
  102. package/dist/performance/types.d.ts.map +1 -0
  103. package/dist/performance/types.js +26 -0
  104. package/dist/performance/types.js.map +1 -0
  105. package/dist/storage/Checkpoint.d.ts +128 -0
  106. package/dist/storage/Checkpoint.d.ts.map +1 -0
  107. package/dist/storage/Checkpoint.js +251 -0
  108. package/dist/storage/Checkpoint.js.map +1 -0
  109. package/dist/storage/LightFile.d.ts +227 -0
  110. package/dist/storage/LightFile.d.ts.map +1 -0
  111. package/dist/storage/LightFile.js +526 -0
  112. package/dist/storage/LightFile.js.map +1 -0
  113. package/dist/storage/Recovery.d.ts +172 -0
  114. package/dist/storage/Recovery.d.ts.map +1 -0
  115. package/dist/storage/Recovery.js +399 -0
  116. package/dist/storage/Recovery.js.map +1 -0
  117. package/dist/storage/SHMFile.d.ts +243 -0
  118. package/dist/storage/SHMFile.d.ts.map +1 -0
  119. package/dist/storage/SHMFile.js +436 -0
  120. package/dist/storage/SHMFile.js.map +1 -0
  121. package/dist/storage/StorageEngine.d.ts +146 -0
  122. package/dist/storage/StorageEngine.d.ts.map +1 -0
  123. package/dist/storage/StorageEngine.js +353 -0
  124. package/dist/storage/StorageEngine.js.map +1 -0
  125. package/dist/storage/WALFile.d.ts +248 -0
  126. package/dist/storage/WALFile.d.ts.map +1 -0
  127. package/dist/storage/WALFile.js +597 -0
  128. package/dist/storage/WALFile.js.map +1 -0
  129. package/dist/storage/index.d.ts +10 -0
  130. package/dist/storage/index.d.ts.map +1 -0
  131. package/dist/storage/index.js +153 -0
  132. package/dist/storage/index.js.map +1 -0
  133. package/dist/types/index.d.ts +220 -0
  134. package/dist/types/index.d.ts.map +1 -0
  135. package/dist/types/index.js +7 -0
  136. package/dist/types/index.js.map +1 -0
  137. package/dist/utils/binary.d.ts +271 -0
  138. package/dist/utils/binary.d.ts.map +1 -0
  139. package/dist/utils/binary.js +454 -0
  140. package/dist/utils/binary.js.map +1 -0
  141. package/dist/utils/file.d.ts +166 -0
  142. package/dist/utils/file.d.ts.map +1 -0
  143. package/dist/utils/file.js +346 -0
  144. package/dist/utils/file.js.map +1 -0
  145. package/dist/utils/index.d.ts +6 -0
  146. package/dist/utils/index.d.ts.map +1 -0
  147. package/dist/utils/index.js +39 -0
  148. package/dist/utils/index.js.map +1 -0
  149. package/package.json +37 -0
  150. package/readme.md +124 -0
@@ -0,0 +1,454 @@
1
+ "use strict";
2
+ /**
3
+ * 二进制序列化工具类
4
+ * 提供 Buffer 读写、校验和计算等核心功能
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BufferReader = exports.BufferWriter = exports.BinaryUtils = void 0;
8
+ const errors_1 = require("../errors");
9
+ /**
10
+ * CRC32 查找表
11
+ * 用于快速计算校验和
12
+ */
13
+ const CRC32_TABLE = new Uint32Array(256);
14
+ /** 初始化 CRC32 查找表 */
15
+ function initCRC32Table() {
16
+ for (let i = 0; i < 256; i++) {
17
+ let crc = i;
18
+ for (let j = 0; j < 8; j++) {
19
+ crc = crc & 1 ? 0xedb88320 ^ (crc >>> 1) : crc >>> 1;
20
+ }
21
+ CRC32_TABLE[i] = crc;
22
+ }
23
+ }
24
+ initCRC32Table();
25
+ /**
26
+ * 二进制工具类
27
+ * 提供静态方法用于 Buffer 操作和校验和计算
28
+ */
29
+ class BinaryUtils {
30
+ /**
31
+ * 计算 Buffer 的 CRC32 校验和
32
+ * @param data 要计算校验和的数据
33
+ * @param offset 起始偏移量,默认 0
34
+ * @param length 数据长度,默认到末尾
35
+ * @returns CRC32 校验和(无符号 32 位整数)
36
+ */
37
+ static calculateChecksum(data, offset = 0, length) {
38
+ const len = length ?? data.length - offset;
39
+ let crc = 0xffffffff;
40
+ for (let i = offset; i < offset + len; i++) {
41
+ const tableIndex = (crc ^ data[i]) & 0xff;
42
+ const tableValue = CRC32_TABLE[tableIndex];
43
+ crc = tableValue ^ (crc >>> 8);
44
+ }
45
+ return (crc ^ 0xffffffff) >>> 0;
46
+ }
47
+ /**
48
+ * 验证校验和
49
+ * @param data 数据内容
50
+ * @param expectedChecksum 期望的校验和
51
+ * @param offset 数据起始偏移量
52
+ * @param length 数据长度
53
+ * @throws ChecksumError 如果校验和不匹配
54
+ */
55
+ static verifyChecksum(data, expectedChecksum, offset = 0, length) {
56
+ const actual = BinaryUtils.calculateChecksum(data, offset, length);
57
+ if (actual !== expectedChecksum) {
58
+ throw new errors_1.ChecksumError(
59
+ `Checksum verification failed: expected ${expectedChecksum}, got ${actual}`,
60
+ expectedChecksum,
61
+ actual,
62
+ offset,
63
+ );
64
+ }
65
+ }
66
+ /**
67
+ * 读取无符号 8 位整数
68
+ * @param buffer 数据缓冲区
69
+ * @param offset 偏移量
70
+ */
71
+ static readUInt8(buffer, offset) {
72
+ return buffer.readUInt8(offset);
73
+ }
74
+ /**
75
+ * 写入无符号 8 位整数
76
+ * @param buffer 数据缓冲区
77
+ * @param value 值
78
+ * @param offset 偏移量
79
+ */
80
+ static writeUInt8(buffer, value, offset) {
81
+ buffer.writeUInt8(value, offset);
82
+ }
83
+ /**
84
+ * 读取无符号 16 位整数(Little-Endian)
85
+ * @param buffer 数据缓冲区
86
+ * @param offset 偏移量
87
+ */
88
+ static readUInt16LE(buffer, offset) {
89
+ return buffer.readUInt16LE(offset);
90
+ }
91
+ /**
92
+ * 写入无符号 16 位整数(Little-Endian)
93
+ * @param buffer 数据缓冲区
94
+ * @param value 值
95
+ * @param offset 偏移量
96
+ */
97
+ static writeUInt16LE(buffer, value, offset) {
98
+ buffer.writeUInt16LE(value, offset);
99
+ }
100
+ /**
101
+ * 读取无符号 32 位整数(Little-Endian)
102
+ * @param buffer 数据缓冲区
103
+ * @param offset 偏移量
104
+ */
105
+ static readUInt32LE(buffer, offset) {
106
+ return buffer.readUInt32LE(offset);
107
+ }
108
+ /**
109
+ * 写入无符号 32 位整数(Little-Endian)
110
+ * @param buffer 数据缓冲区
111
+ * @param value 值
112
+ * @param offset 偏移量
113
+ */
114
+ static writeUInt32LE(buffer, value, offset) {
115
+ buffer.writeUInt32LE(value, offset);
116
+ }
117
+ /**
118
+ * 读取有符号 32 位整数(Little-Endian)
119
+ * @param buffer 数据缓冲区
120
+ * @param offset 偏移量
121
+ */
122
+ static readInt32LE(buffer, offset) {
123
+ return buffer.readInt32LE(offset);
124
+ }
125
+ /**
126
+ * 写入有符号 32 位整数(Little-Endian)
127
+ * @param buffer 数据缓冲区
128
+ * @param value 值
129
+ * @param offset 偏移量
130
+ */
131
+ static writeInt32LE(buffer, value, offset) {
132
+ buffer.writeInt32LE(value, offset);
133
+ }
134
+ /**
135
+ * 读取无符号 64 位整数(Little-Endian)
136
+ * 返回 BigInt 类型
137
+ * @param buffer 数据缓冲区
138
+ * @param offset 偏移量
139
+ */
140
+ static readBigUInt64LE(buffer, offset) {
141
+ return buffer.readBigUInt64LE(offset);
142
+ }
143
+ /**
144
+ * 写入无符号 64 位整数(Little-Endian)
145
+ * @param buffer 数据缓冲区
146
+ * @param value 值
147
+ * @param offset 偏移量
148
+ */
149
+ static writeBigUInt64LE(buffer, value, offset) {
150
+ buffer.writeBigUInt64LE(value, offset);
151
+ }
152
+ /**
153
+ * 读取字符串(UTF-8 编码)
154
+ * @param buffer 数据缓冲区
155
+ * @param offset 起始偏移量
156
+ * @param length 字符串字节长度
157
+ */
158
+ static readString(buffer, offset, length) {
159
+ return buffer.toString("utf8", offset, offset + length);
160
+ }
161
+ /**
162
+ * 写入字符串(UTF-8 编码)
163
+ * @param buffer 数据缓冲区
164
+ * @param value 字符串值
165
+ * @param offset 起始偏移量
166
+ * @returns 实际写入的字节数
167
+ */
168
+ static writeString(buffer, value, offset) {
169
+ return buffer.write(value, offset, "utf8");
170
+ }
171
+ /**
172
+ * 计算字符串的字节长度(UTF-8 编码)
173
+ * @param value 字符串值
174
+ */
175
+ static stringByteLength(value) {
176
+ return Buffer.byteLength(value, "utf8");
177
+ }
178
+ /**
179
+ * 分配指定大小的 Buffer(未初始化)
180
+ * 比 Buffer.alloc 更快,但内容未定义
181
+ * @param size Buffer 大小
182
+ */
183
+ static allocUnsafe(size) {
184
+ return Buffer.allocUnsafe(size);
185
+ }
186
+ /**
187
+ * 分配指定大小的 Buffer(初始化为零)
188
+ * @param size Buffer 大小
189
+ */
190
+ static alloc(size) {
191
+ return Buffer.alloc(size);
192
+ }
193
+ /**
194
+ * 连接多个 Buffer
195
+ * @param buffers Buffer 数组
196
+ */
197
+ static concat(buffers) {
198
+ return Buffer.concat(buffers);
199
+ }
200
+ /**
201
+ * 复制 Buffer 的一部分
202
+ * @param source 源 Buffer
203
+ * @param start 起始位置
204
+ * @param end 结束位置
205
+ */
206
+ static slice(source, start, end) {
207
+ return source.subarray(start, end);
208
+ }
209
+ /**
210
+ * 比较两个 Buffer 是否相等
211
+ * @param a 第一个 Buffer
212
+ * @param b 第二个 Buffer
213
+ */
214
+ static equals(a, b) {
215
+ if (a.length !== b.length) {
216
+ return false;
217
+ }
218
+ return a.equals(b);
219
+ }
220
+ }
221
+ exports.BinaryUtils = BinaryUtils;
222
+ /**
223
+ * Buffer 写入器
224
+ * 提供便捷的顺序写入功能
225
+ */
226
+ class BufferWriter {
227
+ /**
228
+ * 创建 Buffer 写入器
229
+ * @param size 初始 Buffer 大小
230
+ */
231
+ constructor(size) {
232
+ this.buffer = Buffer.allocUnsafe(size);
233
+ this.offset = 0;
234
+ }
235
+ /**
236
+ * 获取当前写入位置
237
+ */
238
+ get position() {
239
+ return this.offset;
240
+ }
241
+ /**
242
+ * 获取已写入的数据
243
+ */
244
+ get data() {
245
+ return this.buffer.subarray(0, this.offset);
246
+ }
247
+ /**
248
+ * 确保有足够的空间
249
+ * @param additional 需要的额外空间
250
+ */
251
+ ensureCapacity(additional) {
252
+ const required = this.offset + additional;
253
+ if (required > this.buffer.length) {
254
+ const newBuffer = Buffer.allocUnsafe(Math.max(required, this.buffer.length * 2));
255
+ this.buffer.copy(newBuffer, 0, 0, this.offset);
256
+ this.buffer = newBuffer;
257
+ }
258
+ }
259
+ /**
260
+ * 写入无符号 8 位整数
261
+ */
262
+ writeUInt8(value) {
263
+ this.ensureCapacity(1);
264
+ this.buffer.writeUInt8(value, this.offset);
265
+ this.offset += 1;
266
+ return this;
267
+ }
268
+ /**
269
+ * 写入无符号 16 位整数(Little-Endian)
270
+ */
271
+ writeUInt16LE(value) {
272
+ this.ensureCapacity(2);
273
+ this.buffer.writeUInt16LE(value, this.offset);
274
+ this.offset += 2;
275
+ return this;
276
+ }
277
+ /**
278
+ * 写入无符号 32 位整数(Little-Endian)
279
+ */
280
+ writeUInt32LE(value) {
281
+ this.ensureCapacity(4);
282
+ this.buffer.writeUInt32LE(value, this.offset);
283
+ this.offset += 4;
284
+ return this;
285
+ }
286
+ /**
287
+ * 写入无符号 64 位整数(Little-Endian)
288
+ */
289
+ writeBigUInt64LE(value) {
290
+ this.ensureCapacity(8);
291
+ this.buffer.writeBigUInt64LE(value, this.offset);
292
+ this.offset += 8;
293
+ return this;
294
+ }
295
+ /**
296
+ * 写入字符串(带长度前缀)
297
+ */
298
+ writeString(value) {
299
+ const byteLength = BinaryUtils.stringByteLength(value);
300
+ this.writeUInt32LE(byteLength);
301
+ this.ensureCapacity(byteLength);
302
+ BinaryUtils.writeString(this.buffer, value, this.offset);
303
+ this.offset += byteLength;
304
+ return this;
305
+ }
306
+ /**
307
+ * 写入字符串(不带长度前缀)
308
+ */
309
+ writeStringRaw(value) {
310
+ const byteLength = BinaryUtils.stringByteLength(value);
311
+ this.ensureCapacity(byteLength);
312
+ BinaryUtils.writeString(this.buffer, value, this.offset);
313
+ this.offset += byteLength;
314
+ return this;
315
+ }
316
+ /**
317
+ * 写入 Buffer
318
+ */
319
+ writeBuffer(value) {
320
+ this.ensureCapacity(value.length);
321
+ value.copy(this.buffer, this.offset);
322
+ this.offset += value.length;
323
+ return this;
324
+ }
325
+ /**
326
+ * 写入带长度前缀的 Buffer
327
+ */
328
+ writeBufferWithLength(value) {
329
+ this.writeUInt32LE(value.length);
330
+ this.writeBuffer(value);
331
+ return this;
332
+ }
333
+ /**
334
+ * 写入校验和(计算从起始位置到当前位置的数据)
335
+ */
336
+ writeChecksum(startOffset = 0) {
337
+ const checksum = BinaryUtils.calculateChecksum(this.buffer, startOffset, this.offset - startOffset);
338
+ this.writeUInt32LE(checksum);
339
+ return this;
340
+ }
341
+ }
342
+ exports.BufferWriter = BufferWriter;
343
+ /**
344
+ * Buffer 读取器
345
+ * 提供便捷的顺序读取功能
346
+ */
347
+ class BufferReader {
348
+ /**
349
+ * 创建 Buffer 读取器
350
+ * @param buffer 要读取的 Buffer
351
+ * @param startOffset 起始偏移量,默认 0
352
+ */
353
+ constructor(buffer, startOffset = 0) {
354
+ this.buffer = buffer;
355
+ this.offset = startOffset;
356
+ }
357
+ /**
358
+ * 获取当前读取位置
359
+ */
360
+ get position() {
361
+ return this.offset;
362
+ }
363
+ /**
364
+ * 设置读取位置
365
+ */
366
+ set position(value) {
367
+ this.offset = value;
368
+ }
369
+ /**
370
+ * 获取剩余可读字节数
371
+ */
372
+ get remaining() {
373
+ return this.buffer.length - this.offset;
374
+ }
375
+ /**
376
+ * 检查是否有足够的可读数据
377
+ */
378
+ hasRemaining(required) {
379
+ return this.remaining >= required;
380
+ }
381
+ /**
382
+ * 读取无符号 8 位整数
383
+ */
384
+ readUInt8() {
385
+ const value = this.buffer.readUInt8(this.offset);
386
+ this.offset += 1;
387
+ return value;
388
+ }
389
+ /**
390
+ * 读取无符号 16 位整数(Little-Endian)
391
+ */
392
+ readUInt16LE() {
393
+ const value = this.buffer.readUInt16LE(this.offset);
394
+ this.offset += 2;
395
+ return value;
396
+ }
397
+ /**
398
+ * 读取无符号 32 位整数(Little-Endian)
399
+ */
400
+ readUInt32LE() {
401
+ const value = this.buffer.readUInt32LE(this.offset);
402
+ this.offset += 4;
403
+ return value;
404
+ }
405
+ /**
406
+ * 读取无符号 64 位整数(Little-Endian)
407
+ */
408
+ readBigUInt64LE() {
409
+ const value = this.buffer.readBigUInt64LE(this.offset);
410
+ this.offset += 8;
411
+ return value;
412
+ }
413
+ /**
414
+ * 读取字符串(带长度前缀)
415
+ */
416
+ readString() {
417
+ const length = this.readUInt32LE();
418
+ const value = BinaryUtils.readString(this.buffer, this.offset, length);
419
+ this.offset += length;
420
+ return value;
421
+ }
422
+ /**
423
+ * 读取指定长度的 Buffer
424
+ */
425
+ readBuffer(length) {
426
+ const value = this.buffer.subarray(this.offset, this.offset + length);
427
+ this.offset += length;
428
+ return value;
429
+ }
430
+ /**
431
+ * 读取带长度前缀的 Buffer
432
+ */
433
+ readBufferWithLength() {
434
+ const length = this.readUInt32LE();
435
+ return this.readBuffer(length);
436
+ }
437
+ /**
438
+ * 读取并验证校验和
439
+ */
440
+ readAndVerifyChecksum(startOffset) {
441
+ const checksum = this.readUInt32LE();
442
+ BinaryUtils.verifyChecksum(this.buffer, checksum, startOffset, this.offset - startOffset - 4);
443
+ return checksum;
444
+ }
445
+ /**
446
+ * 跳过指定字节数
447
+ */
448
+ skip(bytes) {
449
+ this.offset += bytes;
450
+ return this;
451
+ }
452
+ }
453
+ exports.BufferReader = BufferReader;
454
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/utils/binary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sCAA0C;AAE1C;;;GAGG;AACH,MAAM,WAAW,GAAgB,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AAEtD,oBAAoB;AACpB,SAAS,cAAc;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACzB,CAAC;AACL,CAAC;AAED,cAAc,EAAE,CAAC;AAEjB;;;GAGG;AACH,MAAa,WAAW;IACpB;;;;;;OAMG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,SAAiB,CAAC,EAAE,MAAe;QAC7E,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3C,IAAI,GAAG,GAAG,UAAU,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,IAAI,CAAC;YAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAE,CAAC;YAC5C,GAAG,GAAG,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,cAAc,CAAC,IAAY,EAAE,gBAAwB,EAAE,SAAiB,CAAC,EAAE,MAAe;QACpG,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,sBAAa,CACnB,0CAA0C,gBAAgB,SAAS,MAAM,EAAE,EAC3E,gBAAgB,EAChB,MAAM,EACN,MAAM,CACT,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc;QAClD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QAClE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc;QACrD,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QACrE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc;QACrD,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QACrE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,MAAc,EAAE,MAAc;QACpD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QACpE,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,MAAc;QACxD,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QACxE,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,MAAc;QACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QACnE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,KAAa;QACxC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,IAAY;QAClC,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,IAAY;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,OAAiB;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,GAAY;QAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,CAAS;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;CACJ;AApND,kCAoNC;AAED;;;GAGG;AACH,MAAa,YAAY;IAIrB;;;OAGG;IACH,YAAY,IAAY;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,UAAkB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,CAAC;IACL,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAa;QAC3B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,KAAa;QACjC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa;QAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAa;QAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,KAAa;QACtC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,cAAsB,CAAC;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAlID,oCAkIC;AAED;;;GAGG;AACH,MAAa,YAAY;IAIrB;;;;OAIG;IACH,YAAY,MAAc,EAAE,cAAsB,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,UAAU;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,MAAc;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,WAAmB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC;QAC9F,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAzHD,oCAyHC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * 文件操作工具类
3
+ * 提供文件系统操作的封装
4
+ */
5
+ import { promises as fs } from "fs";
6
+ /**
7
+ * 文件操作工具类
8
+ * 提供静态方法用于文件系统操作
9
+ */
10
+ export declare class FileUtils {
11
+ /**
12
+ * 检查文件是否存在
13
+ * @param filePath 文件路径
14
+ */
15
+ static exists(filePath: string): Promise<boolean>;
16
+ /**
17
+ * 确保目录存在,不存在则创建
18
+ * @param dirPath 目录路径
19
+ */
20
+ static ensureDir(dirPath: string): Promise<void>;
21
+ /**
22
+ * 读取文件内容
23
+ * @param filePath 文件路径
24
+ */
25
+ static readFile(filePath: string): Promise<Buffer>;
26
+ /**
27
+ * 写入文件内容
28
+ * @param filePath 文件路径
29
+ * @param data 文件内容
30
+ */
31
+ static writeFile(filePath: string, data: Buffer): Promise<void>;
32
+ /**
33
+ * 追加写入文件
34
+ * @param filePath 文件路径
35
+ * @param data 要追加的数据
36
+ */
37
+ static appendFile(filePath: string, data: Buffer): Promise<void>;
38
+ /**
39
+ * 删除文件
40
+ * @param filePath 文件路径
41
+ */
42
+ static deleteFile(filePath: string): Promise<void>;
43
+ /**
44
+ * 原子性重命名文件
45
+ * @param oldPath 原文件路径
46
+ * @param newPath 新文件路径
47
+ */
48
+ static rename(oldPath: string, newPath: string): Promise<void>;
49
+ /**
50
+ * 获取文件大小
51
+ * @param filePath 文件路径
52
+ */
53
+ static getFileSize(filePath: string): Promise<number>;
54
+ /**
55
+ * 同步文件到磁盘
56
+ * @param filePath 文件路径
57
+ */
58
+ static syncFile(filePath: string): Promise<void>;
59
+ /**
60
+ * 打开文件句柄
61
+ * @param filePath 文件路径
62
+ * @param flags 打开标志
63
+ */
64
+ static openFile(filePath: string, flags: string): Promise<fs.FileHandle>;
65
+ /**
66
+ * 从指定位置读取文件
67
+ * @param handle 文件句柄
68
+ * @param buffer 目标缓冲区
69
+ * @param offset 缓冲区偏移
70
+ * @param length 读取长度
71
+ * @param position 文件位置
72
+ */
73
+ static readFromPosition(handle: fs.FileHandle, buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
74
+ /**
75
+ * 在指定位置写入文件
76
+ * @param handle 文件句柄
77
+ * @param buffer 源缓冲区
78
+ * @param offset 缓冲区偏移
79
+ * @param length 写入长度
80
+ * @param position 文件位置
81
+ */
82
+ static writeToPosition(handle: fs.FileHandle, buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
83
+ /**
84
+ * 截断文件到指定大小
85
+ * @param filePath 文件路径
86
+ * @param size 目标大小
87
+ */
88
+ static truncateFile(filePath: string, size: number): Promise<void>;
89
+ /**
90
+ * 构建完整文件路径
91
+ * @param basePath 基础路径
92
+ * @param name 文件名(不含扩展名)
93
+ * @param extension 文件扩展名
94
+ */
95
+ static buildFilePath(basePath: string, name: string, extension: string): string;
96
+ /**
97
+ * 解析文件名(不含扩展名)
98
+ * @param filePath 文件路径
99
+ */
100
+ static getFileName(filePath: string): string;
101
+ /**
102
+ * 获取目录路径
103
+ * @param filePath 文件路径
104
+ */
105
+ static getDirPath(filePath: string): string;
106
+ }
107
+ /**
108
+ * 文件句柄包装类
109
+ * 提供更高级的文件操作接口
110
+ */
111
+ export declare class FileHandleWrapper {
112
+ private handle;
113
+ private readonly filePath;
114
+ private readonly flags;
115
+ /**
116
+ * 创建文件句柄包装
117
+ * @param filePath 文件路径
118
+ * @param flags 打开标志
119
+ */
120
+ constructor(filePath: string, flags: string);
121
+ /**
122
+ * 打开文件
123
+ */
124
+ open(): Promise<void>;
125
+ /**
126
+ * 关闭文件
127
+ */
128
+ close(): Promise<void>;
129
+ /**
130
+ * 确保文件已打开
131
+ */
132
+ private ensureOpen;
133
+ /**
134
+ * 读取数据
135
+ * @param buffer 目标缓冲区
136
+ * @param offset 缓冲区偏移
137
+ * @param length 读取长度
138
+ * @param position 文件位置
139
+ */
140
+ read(buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
141
+ /**
142
+ * 写入数据
143
+ * @param buffer 源缓冲区
144
+ * @param offset 缓冲区偏移
145
+ * @param length 写入长度
146
+ * @param position 文件位置
147
+ */
148
+ write(buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
149
+ /**
150
+ * 同步到磁盘
151
+ */
152
+ sync(): Promise<void>;
153
+ /**
154
+ * 获取文件大小
155
+ */
156
+ size(): Promise<number>;
157
+ /**
158
+ * 获取文件路径
159
+ */
160
+ get path(): string;
161
+ /**
162
+ * 检查是否已打开
163
+ */
164
+ get isOpen(): boolean;
165
+ }
166
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"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"}