gitx.do 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +319 -92
- package/dist/cli/commands/add.d.ts +174 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +131 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/merge.d.ts +106 -0
- package/dist/cli/commands/merge.d.ts.map +1 -0
- package/dist/cli/commands/merge.js +55 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/fsx-cli-adapter.d.ts +359 -0
- package/dist/cli/fsx-cli-adapter.d.ts.map +1 -0
- package/dist/cli/fsx-cli-adapter.js +619 -0
- package/dist/cli/fsx-cli-adapter.js.map +1 -0
- package/dist/cli/index.js +0 -0
- package/dist/do/BashModule.d.ts +871 -0
- package/dist/do/BashModule.d.ts.map +1 -0
- package/dist/do/BashModule.js +1143 -0
- package/dist/do/BashModule.js.map +1 -0
- package/dist/do/FsModule.d.ts +601 -0
- package/dist/do/FsModule.d.ts.map +1 -0
- package/dist/do/FsModule.js +1120 -0
- package/dist/do/FsModule.js.map +1 -0
- package/dist/do/GitModule.d.ts +635 -0
- package/dist/do/GitModule.d.ts.map +1 -0
- package/dist/do/GitModule.js +781 -0
- package/dist/do/GitModule.js.map +1 -0
- package/dist/do/GitRepoDO.d.ts +281 -0
- package/dist/do/GitRepoDO.d.ts.map +1 -0
- package/dist/do/GitRepoDO.js +479 -0
- package/dist/do/GitRepoDO.js.map +1 -0
- package/dist/do/bash-ast.d.ts +246 -0
- package/dist/do/bash-ast.d.ts.map +1 -0
- package/dist/do/bash-ast.js +888 -0
- package/dist/do/bash-ast.js.map +1 -0
- package/dist/do/container-executor.d.ts +491 -0
- package/dist/do/container-executor.d.ts.map +1 -0
- package/dist/do/container-executor.js +730 -0
- package/dist/do/container-executor.js.map +1 -0
- package/dist/do/index.d.ts +53 -0
- package/dist/do/index.d.ts.map +1 -0
- package/dist/do/index.js +91 -0
- package/dist/do/index.js.map +1 -0
- package/dist/do/tiered-storage.d.ts +403 -0
- package/dist/do/tiered-storage.d.ts.map +1 -0
- package/dist/do/tiered-storage.js +689 -0
- package/dist/do/tiered-storage.js.map +1 -0
- package/dist/do/withBash.d.ts +231 -0
- package/dist/do/withBash.d.ts.map +1 -0
- package/dist/do/withBash.js +244 -0
- package/dist/do/withBash.js.map +1 -0
- package/dist/do/withFs.d.ts +237 -0
- package/dist/do/withFs.d.ts.map +1 -0
- package/dist/do/withFs.js +387 -0
- package/dist/do/withFs.js.map +1 -0
- package/dist/do/withGit.d.ts +180 -0
- package/dist/do/withGit.d.ts.map +1 -0
- package/dist/do/withGit.js +271 -0
- package/dist/do/withGit.js.map +1 -0
- package/dist/durable-object/object-store.d.ts +157 -15
- package/dist/durable-object/object-store.d.ts.map +1 -1
- package/dist/durable-object/object-store.js +432 -47
- package/dist/durable-object/object-store.js.map +1 -1
- package/dist/durable-object/schema.d.ts +12 -1
- package/dist/durable-object/schema.d.ts.map +1 -1
- package/dist/durable-object/schema.js +87 -2
- package/dist/durable-object/schema.js.map +1 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts +22 -0
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +1 -0
- package/dist/mcp/sandbox/miniflare-evaluator.js +140 -0
- package/dist/mcp/sandbox/miniflare-evaluator.js.map +1 -0
- package/dist/mcp/sandbox/object-store-proxy.d.ts +32 -0
- package/dist/mcp/sandbox/object-store-proxy.d.ts.map +1 -0
- package/dist/mcp/sandbox/object-store-proxy.js +30 -0
- package/dist/mcp/sandbox/object-store-proxy.js.map +1 -0
- package/dist/mcp/sandbox/template.d.ts +17 -0
- package/dist/mcp/sandbox/template.d.ts.map +1 -0
- package/dist/mcp/sandbox/template.js +71 -0
- package/dist/mcp/sandbox/template.js.map +1 -0
- package/dist/mcp/sandbox.d.ts.map +1 -1
- package/dist/mcp/sandbox.js +16 -4
- package/dist/mcp/sandbox.js.map +1 -1
- package/dist/mcp/tools/do.d.ts +32 -0
- package/dist/mcp/tools/do.d.ts.map +1 -0
- package/dist/mcp/tools/do.js +115 -0
- package/dist/mcp/tools/do.js.map +1 -0
- package/dist/pack/delta.d.ts +8 -0
- package/dist/pack/delta.d.ts.map +1 -1
- package/dist/pack/delta.js +236 -29
- package/dist/pack/delta.js.map +1 -1
- package/dist/refs/branch.d.ts +22 -24
- package/dist/refs/branch.d.ts.map +1 -1
- package/dist/refs/branch.js +409 -66
- package/dist/refs/branch.js.map +1 -1
- package/dist/refs/storage.d.ts +77 -5
- package/dist/refs/storage.d.ts.map +1 -1
- package/dist/refs/storage.js +193 -43
- package/dist/refs/storage.js.map +1 -1
- package/dist/refs/tag.d.ts +44 -24
- package/dist/refs/tag.d.ts.map +1 -1
- package/dist/refs/tag.js +411 -70
- package/dist/refs/tag.js.map +1 -1
- package/dist/storage/backend.d.ts +425 -0
- package/dist/storage/backend.d.ts.map +1 -0
- package/dist/storage/backend.js +41 -0
- package/dist/storage/backend.js.map +1 -0
- package/dist/storage/fsx-adapter.d.ts +204 -0
- package/dist/storage/fsx-adapter.d.ts.map +1 -0
- package/dist/storage/fsx-adapter.js +470 -0
- package/dist/storage/fsx-adapter.js.map +1 -0
- package/dist/types/capability.d.ts +1385 -0
- package/dist/types/capability.d.ts.map +1 -0
- package/dist/types/capability.js +36 -0
- package/dist/types/capability.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/objects.d.ts +182 -0
- package/dist/types/objects.d.ts.map +1 -1
- package/dist/types/objects.js +249 -4
- package/dist/types/objects.js.map +1 -1
- package/dist/types/storage.d.ts +114 -0
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/storage.js +160 -1
- package/dist/types/storage.js.map +1 -1
- package/dist/types/worker-loader.d.ts +60 -0
- package/dist/types/worker-loader.d.ts.map +1 -0
- package/dist/types/worker-loader.js +62 -0
- package/dist/types/worker-loader.js.map +1 -0
- package/dist/utils/hash.d.ts +125 -80
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +187 -100
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/sha1.d.ts +171 -0
- package/dist/utils/sha1.d.ts.map +1 -1
- package/dist/utils/sha1.js +352 -0
- package/dist/utils/sha1.js.map +1 -1
- package/dist/wire/path-security.d.ts +157 -0
- package/dist/wire/path-security.d.ts.map +1 -0
- package/dist/wire/path-security.js +307 -0
- package/dist/wire/path-security.js.map +1 -0
- package/dist/wire/receive-pack.d.ts +7 -0
- package/dist/wire/receive-pack.d.ts.map +1 -1
- package/dist/wire/receive-pack.js +29 -1
- package/dist/wire/receive-pack.js.map +1 -1
- package/package.json +10 -1
package/dist/pack/delta.js
CHANGED
|
@@ -35,6 +35,14 @@
|
|
|
35
35
|
*
|
|
36
36
|
* The instruction byte is followed by that many literal bytes.
|
|
37
37
|
*
|
|
38
|
+
* ## Performance Optimizations
|
|
39
|
+
*
|
|
40
|
+
* This implementation includes several performance optimizations:
|
|
41
|
+
* - **Rabin fingerprint rolling hash**: O(1) hash updates when sliding the window
|
|
42
|
+
* - **Typed arrays for index**: Uses Uint32Array for memory efficiency
|
|
43
|
+
* - **Chunked processing**: Memory-efficient processing for large files
|
|
44
|
+
* - **Optimized match extension**: SIMD-friendly byte comparison
|
|
45
|
+
*
|
|
38
46
|
* @module pack/delta
|
|
39
47
|
* @see {@link https://git-scm.com/docs/pack-format} Git Pack Format Documentation
|
|
40
48
|
*
|
|
@@ -68,6 +76,209 @@ export const COPY_INSTRUCTION = 0x80;
|
|
|
68
76
|
* @constant {number}
|
|
69
77
|
*/
|
|
70
78
|
export const INSERT_INSTRUCTION = 0x00;
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// Rabin Fingerprint Rolling Hash Constants and Implementation
|
|
81
|
+
// =============================================================================
|
|
82
|
+
/**
|
|
83
|
+
* Window size for rolling hash matching.
|
|
84
|
+
* 4 bytes is a good balance between collision rate and match granularity.
|
|
85
|
+
*
|
|
86
|
+
* @constant {number}
|
|
87
|
+
*/
|
|
88
|
+
const WINDOW_SIZE = 4;
|
|
89
|
+
/**
|
|
90
|
+
* Rabin fingerprint polynomial base.
|
|
91
|
+
* Using a prime number provides good hash distribution.
|
|
92
|
+
*
|
|
93
|
+
* @constant {number}
|
|
94
|
+
*/
|
|
95
|
+
const RABIN_BASE = 257;
|
|
96
|
+
/**
|
|
97
|
+
* Modulus for Rabin fingerprint to keep values in 32-bit range.
|
|
98
|
+
* Using a prime close to 2^31 for good distribution.
|
|
99
|
+
*
|
|
100
|
+
* @constant {number}
|
|
101
|
+
*/
|
|
102
|
+
const RABIN_MOD = 0x7fffffff; // 2^31 - 1, a Mersenne prime
|
|
103
|
+
/**
|
|
104
|
+
* Pre-computed power of RABIN_BASE^WINDOW_SIZE mod RABIN_MOD.
|
|
105
|
+
* Used for efficiently removing the contribution of the oldest byte.
|
|
106
|
+
*
|
|
107
|
+
* @constant {number}
|
|
108
|
+
*/
|
|
109
|
+
const RABIN_POW = (() => {
|
|
110
|
+
let pow = 1;
|
|
111
|
+
for (let i = 0; i < WINDOW_SIZE; i++) {
|
|
112
|
+
pow = (pow * RABIN_BASE) % RABIN_MOD;
|
|
113
|
+
}
|
|
114
|
+
return pow;
|
|
115
|
+
})();
|
|
116
|
+
/**
|
|
117
|
+
* Minimum match length to be worth a copy instruction.
|
|
118
|
+
* Smaller matches cost more than they save due to instruction overhead.
|
|
119
|
+
*
|
|
120
|
+
* @constant {number}
|
|
121
|
+
*/
|
|
122
|
+
const MIN_COPY_SIZE = 4;
|
|
123
|
+
/**
|
|
124
|
+
* Chunk size for processing large files.
|
|
125
|
+
* 64KB chunks balance memory usage and cache efficiency.
|
|
126
|
+
*
|
|
127
|
+
* @constant {number}
|
|
128
|
+
*/
|
|
129
|
+
const CHUNK_SIZE = 64 * 1024;
|
|
130
|
+
/**
|
|
131
|
+
* Maximum entries per hash bucket to prevent pathological cases.
|
|
132
|
+
* Limits memory usage when many positions hash to the same value.
|
|
133
|
+
*
|
|
134
|
+
* @constant {number}
|
|
135
|
+
*/
|
|
136
|
+
const MAX_BUCKET_SIZE = 64;
|
|
137
|
+
/**
|
|
138
|
+
* Computes Rabin fingerprint hash for initial window.
|
|
139
|
+
*
|
|
140
|
+
* @description Computes the hash value for the first WINDOW_SIZE bytes.
|
|
141
|
+
* Subsequent positions use rolling updates for O(1) computation.
|
|
142
|
+
*
|
|
143
|
+
* @param {Uint8Array} data - The data buffer
|
|
144
|
+
* @param {number} offset - Starting offset
|
|
145
|
+
* @returns {number} 32-bit hash value
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
function rabinHash(data, offset) {
|
|
149
|
+
let hash = 0;
|
|
150
|
+
for (let i = 0; i < WINDOW_SIZE; i++) {
|
|
151
|
+
hash = (hash * RABIN_BASE + data[offset + i]) % RABIN_MOD;
|
|
152
|
+
}
|
|
153
|
+
return hash;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Updates Rabin fingerprint hash by rolling the window one byte forward.
|
|
157
|
+
*
|
|
158
|
+
* @description This is the key optimization: O(1) hash update instead of O(WINDOW_SIZE).
|
|
159
|
+
* Removes contribution of outgoing byte and adds incoming byte.
|
|
160
|
+
*
|
|
161
|
+
* Formula: hash' = (hash * BASE - outgoing * BASE^WINDOW + incoming) mod MOD
|
|
162
|
+
*
|
|
163
|
+
* @param {number} hash - Current hash value
|
|
164
|
+
* @param {number} outgoing - Byte leaving the window
|
|
165
|
+
* @param {number} incoming - Byte entering the window
|
|
166
|
+
* @returns {number} Updated hash value
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
function rabinRoll(hash, outgoing, incoming) {
|
|
170
|
+
// Remove outgoing byte's contribution and add incoming byte
|
|
171
|
+
// hash = hash * BASE - outgoing * BASE^WINDOW + incoming
|
|
172
|
+
let newHash = ((hash * RABIN_BASE) % RABIN_MOD - (outgoing * RABIN_POW) % RABIN_MOD + incoming) % RABIN_MOD;
|
|
173
|
+
// Ensure positive result
|
|
174
|
+
if (newHash < 0)
|
|
175
|
+
newHash += RABIN_MOD;
|
|
176
|
+
return newHash;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Builds an optimized hash index from the base object using Rabin fingerprints.
|
|
180
|
+
*
|
|
181
|
+
* @description Creates a memory-efficient index for finding matching byte sequences.
|
|
182
|
+
* Uses typed arrays to minimize GC pressure and memory fragmentation.
|
|
183
|
+
*
|
|
184
|
+
* **Memory optimization:**
|
|
185
|
+
* - Uses power-of-2 bucket count for fast modulo (bitwise AND)
|
|
186
|
+
* - Limits bucket size to prevent pathological cases
|
|
187
|
+
* - Uses Uint32Array/Uint16Array instead of object arrays
|
|
188
|
+
*
|
|
189
|
+
* @param {Uint8Array} base - The base object to index
|
|
190
|
+
* @returns {HashIndex} The built index
|
|
191
|
+
* @internal
|
|
192
|
+
*/
|
|
193
|
+
function buildHashIndex(base) {
|
|
194
|
+
// Determine optimal bucket count (power of 2, at least 256)
|
|
195
|
+
// Aim for average load factor of ~4 entries per bucket
|
|
196
|
+
const targetBuckets = Math.max(256, Math.ceil((base.length - WINDOW_SIZE + 1) / 4));
|
|
197
|
+
const bucketCount = 1 << Math.ceil(Math.log2(targetBuckets));
|
|
198
|
+
const bucketMask = bucketCount - 1;
|
|
199
|
+
// Allocate typed arrays
|
|
200
|
+
const offsets = new Uint32Array(bucketCount * MAX_BUCKET_SIZE);
|
|
201
|
+
const counts = new Uint16Array(bucketCount);
|
|
202
|
+
if (base.length < WINDOW_SIZE) {
|
|
203
|
+
return { bucketCount, bucketMask, offsets, counts };
|
|
204
|
+
}
|
|
205
|
+
// Use rolling hash to build index
|
|
206
|
+
let hash = rabinHash(base, 0);
|
|
207
|
+
addToIndex(0);
|
|
208
|
+
for (let i = 1; i <= base.length - WINDOW_SIZE; i++) {
|
|
209
|
+
// Roll the hash forward (O(1) operation)
|
|
210
|
+
hash = rabinRoll(hash, base[i - 1], base[i + WINDOW_SIZE - 1]);
|
|
211
|
+
addToIndex(i);
|
|
212
|
+
}
|
|
213
|
+
return { bucketCount, bucketMask, offsets, counts };
|
|
214
|
+
function addToIndex(offset) {
|
|
215
|
+
const bucket = hash & bucketMask;
|
|
216
|
+
const count = counts[bucket];
|
|
217
|
+
if (count < MAX_BUCKET_SIZE) {
|
|
218
|
+
offsets[bucket * MAX_BUCKET_SIZE + count] = offset;
|
|
219
|
+
counts[bucket] = count + 1;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Looks up potential match positions from the hash index.
|
|
225
|
+
*
|
|
226
|
+
* @param {HashIndex} index - The hash index
|
|
227
|
+
* @param {number} hash - The hash to look up
|
|
228
|
+
* @returns {Generator<number>} Yields matching offsets
|
|
229
|
+
* @internal
|
|
230
|
+
*/
|
|
231
|
+
function* lookupIndex(index, hash) {
|
|
232
|
+
const bucket = hash & index.bucketMask;
|
|
233
|
+
const count = index.counts[bucket];
|
|
234
|
+
const baseOffset = bucket * MAX_BUCKET_SIZE;
|
|
235
|
+
for (let i = 0; i < count; i++) {
|
|
236
|
+
yield index.offsets[baseOffset + i];
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Optimized match length calculation using word-at-a-time comparison.
|
|
241
|
+
*
|
|
242
|
+
* @description Compares bytes in chunks of 4 (as 32-bit integers) where possible,
|
|
243
|
+
* falling back to byte-by-byte for the remaining bytes. This is ~4x faster than
|
|
244
|
+
* pure byte comparison for long matches.
|
|
245
|
+
*
|
|
246
|
+
* @param {Uint8Array} a - First array
|
|
247
|
+
* @param {number} aOffset - Starting offset in first array
|
|
248
|
+
* @param {Uint8Array} b - Second array
|
|
249
|
+
* @param {number} bOffset - Starting offset in second array
|
|
250
|
+
* @param {number} maxLength - Maximum number of bytes to compare
|
|
251
|
+
* @returns {number} Number of matching bytes (0 to maxLength)
|
|
252
|
+
* @internal
|
|
253
|
+
*/
|
|
254
|
+
function getMatchLengthOptimized(a, aOffset, b, bOffset, maxLength) {
|
|
255
|
+
if (maxLength <= 0)
|
|
256
|
+
return 0;
|
|
257
|
+
let length = 0;
|
|
258
|
+
// Compare 4 bytes at a time using DataView for unaligned access
|
|
259
|
+
// This is faster than byte-by-byte for larger matches
|
|
260
|
+
const wordCount = (maxLength - length) >>> 2;
|
|
261
|
+
if (wordCount > 0) {
|
|
262
|
+
const aView = new DataView(a.buffer, a.byteOffset + aOffset, maxLength);
|
|
263
|
+
const bView = new DataView(b.buffer, b.byteOffset + bOffset, maxLength);
|
|
264
|
+
for (let i = 0; i < wordCount; i++) {
|
|
265
|
+
const wordOffset = length;
|
|
266
|
+
if (aView.getUint32(wordOffset, true) !== bView.getUint32(wordOffset, true)) {
|
|
267
|
+
// Found difference in this word, find exact byte
|
|
268
|
+
while (length < maxLength && a[aOffset + length] === b[bOffset + length]) {
|
|
269
|
+
length++;
|
|
270
|
+
}
|
|
271
|
+
return length;
|
|
272
|
+
}
|
|
273
|
+
length += 4;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Compare remaining bytes
|
|
277
|
+
while (length < maxLength && a[aOffset + length] === b[bOffset + length]) {
|
|
278
|
+
length++;
|
|
279
|
+
}
|
|
280
|
+
return length;
|
|
281
|
+
}
|
|
71
282
|
/**
|
|
72
283
|
* Parses a variable-length size value from the delta header.
|
|
73
284
|
*
|
|
@@ -320,45 +531,33 @@ export function createDelta(base, target) {
|
|
|
320
531
|
emitInserts(instructions, target, 0, target.length);
|
|
321
532
|
return concatArrays(instructions);
|
|
322
533
|
}
|
|
323
|
-
// Build hash
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
for (let i = 0; i <= base.length - WINDOW_SIZE; i++) {
|
|
329
|
-
const hash = hashBytes(base, i, WINDOW_SIZE);
|
|
330
|
-
const offsets = hashTable.get(hash);
|
|
331
|
-
if (offsets) {
|
|
332
|
-
offsets.push(i);
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
hashTable.set(hash, [i]);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
// Scan target and find matches
|
|
534
|
+
// Build optimized hash index using Rabin fingerprints
|
|
535
|
+
const index = buildHashIndex(base);
|
|
536
|
+
// For large files, process in chunks to limit memory pressure
|
|
537
|
+
const isLargeFile = target.length > CHUNK_SIZE;
|
|
538
|
+
// Scan target and find matches using rolling hash
|
|
340
539
|
let targetOffset = 0;
|
|
341
540
|
let insertStart = 0;
|
|
541
|
+
// Initialize rolling hash if we have enough bytes
|
|
542
|
+
let currentHash = target.length >= WINDOW_SIZE ? rabinHash(target, 0) : 0;
|
|
342
543
|
while (targetOffset < target.length) {
|
|
343
544
|
let bestMatchOffset = -1;
|
|
344
545
|
let bestMatchLength = 0;
|
|
345
546
|
// Look for a match if we have enough bytes
|
|
346
547
|
if (targetOffset <= target.length - WINDOW_SIZE) {
|
|
347
|
-
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
548
|
+
// Look up candidates from the optimized index
|
|
549
|
+
for (const baseOffset of lookupIndex(index, currentHash)) {
|
|
550
|
+
// Verify the match and extend it using optimized comparison
|
|
551
|
+
const maxLength = Math.min(base.length - baseOffset, target.length - targetOffset);
|
|
552
|
+
const matchLength = isLargeFile
|
|
553
|
+
? getMatchLengthOptimized(base, baseOffset, target, targetOffset, maxLength)
|
|
554
|
+
: getMatchLength(base, baseOffset, target, targetOffset, maxLength);
|
|
555
|
+
if (matchLength >= WINDOW_SIZE && matchLength > bestMatchLength) {
|
|
556
|
+
bestMatchOffset = baseOffset;
|
|
557
|
+
bestMatchLength = matchLength;
|
|
357
558
|
}
|
|
358
559
|
}
|
|
359
560
|
}
|
|
360
|
-
// Minimum match length to be worth a copy instruction
|
|
361
|
-
const MIN_COPY_SIZE = 4;
|
|
362
561
|
if (bestMatchLength >= MIN_COPY_SIZE) {
|
|
363
562
|
// Emit pending inserts
|
|
364
563
|
if (targetOffset > insertStart) {
|
|
@@ -368,9 +567,17 @@ export function createDelta(base, target) {
|
|
|
368
567
|
emitCopy(instructions, bestMatchOffset, bestMatchLength);
|
|
369
568
|
targetOffset += bestMatchLength;
|
|
370
569
|
insertStart = targetOffset;
|
|
570
|
+
// Re-compute hash at new position (skip rolling for long jumps)
|
|
571
|
+
if (targetOffset <= target.length - WINDOW_SIZE) {
|
|
572
|
+
currentHash = rabinHash(target, targetOffset);
|
|
573
|
+
}
|
|
371
574
|
}
|
|
372
575
|
else {
|
|
373
576
|
targetOffset++;
|
|
577
|
+
// Roll the hash forward (O(1) operation)
|
|
578
|
+
if (targetOffset <= target.length - WINDOW_SIZE) {
|
|
579
|
+
currentHash = rabinRoll(currentHash, target[targetOffset - 1], target[targetOffset + WINDOW_SIZE - 1]);
|
|
580
|
+
}
|
|
374
581
|
}
|
|
375
582
|
}
|
|
376
583
|
// Emit any remaining inserts
|
package/dist/pack/delta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/pack/delta.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/pack/delta.ts"],"names":[],"mappings":"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"}
|
package/dist/refs/branch.d.ts
CHANGED
|
@@ -260,9 +260,6 @@ export type BranchErrorCode = 'NOT_FOUND' | 'ALREADY_EXISTS' | 'INVALID_NAME' |
|
|
|
260
260
|
* Provides a comprehensive API for branch management. Uses RefStorage
|
|
261
261
|
* internally for ref manipulation.
|
|
262
262
|
*
|
|
263
|
-
* Note: Many methods are currently stubs (TODO) and will throw 'Not implemented'.
|
|
264
|
-
* These will be implemented in the GREEN phase of TDD development.
|
|
265
|
-
*
|
|
266
263
|
* @example
|
|
267
264
|
* ```typescript
|
|
268
265
|
* const manager = new BranchManager(refStorage)
|
|
@@ -281,6 +278,9 @@ export type BranchErrorCode = 'NOT_FOUND' | 'ALREADY_EXISTS' | 'INVALID_NAME' |
|
|
|
281
278
|
* ```
|
|
282
279
|
*/
|
|
283
280
|
export declare class BranchManager {
|
|
281
|
+
private storage;
|
|
282
|
+
/** Storage for tracking information (simulated config) */
|
|
283
|
+
private trackingInfo;
|
|
284
284
|
/**
|
|
285
285
|
* Create a new BranchManager.
|
|
286
286
|
*
|
|
@@ -313,7 +313,7 @@ export declare class BranchManager {
|
|
|
313
313
|
* const branch = await manager.createBranch('main', { force: true, startPoint: 'HEAD' })
|
|
314
314
|
* ```
|
|
315
315
|
*/
|
|
316
|
-
createBranch(
|
|
316
|
+
createBranch(name: string, options?: CreateBranchOptions): Promise<Branch>;
|
|
317
317
|
/**
|
|
318
318
|
* Delete a branch.
|
|
319
319
|
*
|
|
@@ -335,7 +335,7 @@ export declare class BranchManager {
|
|
|
335
335
|
* await manager.deleteBranch('experiment', { force: true })
|
|
336
336
|
* ```
|
|
337
337
|
*/
|
|
338
|
-
deleteBranch(
|
|
338
|
+
deleteBranch(name: string, options?: DeleteBranchOptions): Promise<void>;
|
|
339
339
|
/**
|
|
340
340
|
* Rename a branch.
|
|
341
341
|
*
|
|
@@ -356,7 +356,7 @@ export declare class BranchManager {
|
|
|
356
356
|
* const branch = await manager.renameBranch('old-name', 'new-name')
|
|
357
357
|
* ```
|
|
358
358
|
*/
|
|
359
|
-
renameBranch(
|
|
359
|
+
renameBranch(oldName: string, newName: string, options?: RenameBranchOptions): Promise<Branch>;
|
|
360
360
|
/**
|
|
361
361
|
* List all branches.
|
|
362
362
|
*
|
|
@@ -379,7 +379,7 @@ export declare class BranchManager {
|
|
|
379
379
|
* const merged = await manager.listBranches({ mergedInto: 'main' })
|
|
380
380
|
* ```
|
|
381
381
|
*/
|
|
382
|
-
listBranches(
|
|
382
|
+
listBranches(options?: ListBranchesOptions): Promise<Branch[]>;
|
|
383
383
|
/**
|
|
384
384
|
* Get the current branch.
|
|
385
385
|
*
|
|
@@ -416,7 +416,7 @@ export declare class BranchManager {
|
|
|
416
416
|
* }
|
|
417
417
|
* ```
|
|
418
418
|
*/
|
|
419
|
-
getBranch(
|
|
419
|
+
getBranch(name: string): Promise<Branch | null>;
|
|
420
420
|
/**
|
|
421
421
|
* Check if a branch exists.
|
|
422
422
|
*
|
|
@@ -433,7 +433,7 @@ export declare class BranchManager {
|
|
|
433
433
|
* }
|
|
434
434
|
* ```
|
|
435
435
|
*/
|
|
436
|
-
branchExists(
|
|
436
|
+
branchExists(name: string): Promise<boolean>;
|
|
437
437
|
/**
|
|
438
438
|
* Set upstream branch for tracking.
|
|
439
439
|
*
|
|
@@ -456,7 +456,7 @@ export declare class BranchManager {
|
|
|
456
456
|
* await manager.setUpstream('feature', { unset: true })
|
|
457
457
|
* ```
|
|
458
458
|
*/
|
|
459
|
-
setUpstream(
|
|
459
|
+
setUpstream(branchName: string, options: SetUpstreamOptions): Promise<void>;
|
|
460
460
|
/**
|
|
461
461
|
* Get tracking info for a branch.
|
|
462
462
|
*
|
|
@@ -474,7 +474,7 @@ export declare class BranchManager {
|
|
|
474
474
|
* }
|
|
475
475
|
* ```
|
|
476
476
|
*/
|
|
477
|
-
getTrackingInfo(
|
|
477
|
+
getTrackingInfo(branchName: string): Promise<BranchTrackingInfo | null>;
|
|
478
478
|
/**
|
|
479
479
|
* Check if a branch is fully merged into another branch.
|
|
480
480
|
*
|
|
@@ -492,7 +492,7 @@ export declare class BranchManager {
|
|
|
492
492
|
* }
|
|
493
493
|
* ```
|
|
494
494
|
*/
|
|
495
|
-
isMerged(
|
|
495
|
+
isMerged(branchName: string, into?: string): Promise<boolean>;
|
|
496
496
|
/**
|
|
497
497
|
* Force delete an unmerged branch.
|
|
498
498
|
*
|
|
@@ -509,7 +509,7 @@ export declare class BranchManager {
|
|
|
509
509
|
* await manager.forceDeleteBranch('abandoned-feature')
|
|
510
510
|
* ```
|
|
511
511
|
*/
|
|
512
|
-
forceDeleteBranch(
|
|
512
|
+
forceDeleteBranch(name: string): Promise<void>;
|
|
513
513
|
}
|
|
514
514
|
/**
|
|
515
515
|
* Validate a branch name according to Git rules.
|
|
@@ -518,8 +518,6 @@ export declare class BranchManager {
|
|
|
518
518
|
* Checks if a branch name is valid and returns detailed validation results
|
|
519
519
|
* including the normalized form of the name.
|
|
520
520
|
*
|
|
521
|
-
* Note: This is a stub implementation. Full validation will be added in GREEN phase.
|
|
522
|
-
*
|
|
523
521
|
* @param name - Branch name to validate
|
|
524
522
|
* @returns Validation result with valid flag, error message, and normalized name
|
|
525
523
|
*
|
|
@@ -535,7 +533,7 @@ export declare class BranchManager {
|
|
|
535
533
|
* }
|
|
536
534
|
* ```
|
|
537
535
|
*/
|
|
538
|
-
export declare function validateBranchName(
|
|
536
|
+
export declare function validateBranchName(name: string): BranchValidationResult;
|
|
539
537
|
/**
|
|
540
538
|
* Check if a string is a valid branch name.
|
|
541
539
|
*
|
|
@@ -552,7 +550,7 @@ export declare function validateBranchName(_name: string): BranchValidationResul
|
|
|
552
550
|
* }
|
|
553
551
|
* ```
|
|
554
552
|
*/
|
|
555
|
-
export declare function isValidBranchName(
|
|
553
|
+
export declare function isValidBranchName(name: string): boolean;
|
|
556
554
|
/**
|
|
557
555
|
* Normalize a branch name.
|
|
558
556
|
*
|
|
@@ -568,7 +566,7 @@ export declare function isValidBranchName(_name: string): boolean;
|
|
|
568
566
|
* normalizeBranchName('main') // 'main'
|
|
569
567
|
* ```
|
|
570
568
|
*/
|
|
571
|
-
export declare function normalizeBranchName(
|
|
569
|
+
export declare function normalizeBranchName(name: string): string;
|
|
572
570
|
/**
|
|
573
571
|
* Get the full ref name for a branch.
|
|
574
572
|
*
|
|
@@ -584,7 +582,7 @@ export declare function normalizeBranchName(_name: string): string;
|
|
|
584
582
|
* getBranchRefName('refs/heads/main') // 'refs/heads/main'
|
|
585
583
|
* ```
|
|
586
584
|
*/
|
|
587
|
-
export declare function getBranchRefName(
|
|
585
|
+
export declare function getBranchRefName(name: string): string;
|
|
588
586
|
/**
|
|
589
587
|
* Create a new branch.
|
|
590
588
|
*
|
|
@@ -601,7 +599,7 @@ export declare function getBranchRefName(_name: string): string;
|
|
|
601
599
|
* const branch = await createBranch(storage, 'feature', { startPoint: 'main' })
|
|
602
600
|
* ```
|
|
603
601
|
*/
|
|
604
|
-
export declare function createBranch(
|
|
602
|
+
export declare function createBranch(storage: RefStorage, name: string, options?: CreateBranchOptions): Promise<Branch>;
|
|
605
603
|
/**
|
|
606
604
|
* Delete a branch.
|
|
607
605
|
*
|
|
@@ -617,7 +615,7 @@ export declare function createBranch(_storage: RefStorage, _name: string, _optio
|
|
|
617
615
|
* await deleteBranch(storage, 'feature', { force: true })
|
|
618
616
|
* ```
|
|
619
617
|
*/
|
|
620
|
-
export declare function deleteBranch(
|
|
618
|
+
export declare function deleteBranch(storage: RefStorage, name: string, options?: DeleteBranchOptions): Promise<void>;
|
|
621
619
|
/**
|
|
622
620
|
* Rename a branch.
|
|
623
621
|
*
|
|
@@ -635,7 +633,7 @@ export declare function deleteBranch(_storage: RefStorage, _name: string, _optio
|
|
|
635
633
|
* const branch = await renameBranch(storage, 'old', 'new')
|
|
636
634
|
* ```
|
|
637
635
|
*/
|
|
638
|
-
export declare function renameBranch(
|
|
636
|
+
export declare function renameBranch(storage: RefStorage, oldName: string, newName: string, options?: RenameBranchOptions): Promise<Branch>;
|
|
639
637
|
/**
|
|
640
638
|
* List all branches.
|
|
641
639
|
*
|
|
@@ -651,7 +649,7 @@ export declare function renameBranch(_storage: RefStorage, _oldName: string, _ne
|
|
|
651
649
|
* const branches = await listBranches(storage, { includeRemotes: true })
|
|
652
650
|
* ```
|
|
653
651
|
*/
|
|
654
|
-
export declare function listBranches(
|
|
652
|
+
export declare function listBranches(storage: RefStorage, options?: ListBranchesOptions): Promise<Branch[]>;
|
|
655
653
|
/**
|
|
656
654
|
* Get the current branch.
|
|
657
655
|
*
|
|
@@ -666,5 +664,5 @@ export declare function listBranches(_storage: RefStorage, _options?: ListBranch
|
|
|
666
664
|
* const current = await getCurrentBranch(storage)
|
|
667
665
|
* ```
|
|
668
666
|
*/
|
|
669
|
-
export declare function getCurrentBranch(
|
|
667
|
+
export declare function getCurrentBranch(storage: RefStorage): Promise<Branch | null>;
|
|
670
668
|
//# sourceMappingURL=branch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/refs/branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/refs/branch.ts"],"names":[],"mappings":"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"}
|