gitx.do 0.0.1 → 0.0.3

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 (237) hide show
  1. package/dist/cli/commands/blame.d.ts +259 -0
  2. package/dist/cli/commands/blame.d.ts.map +1 -0
  3. package/dist/cli/commands/blame.js +609 -0
  4. package/dist/cli/commands/blame.js.map +1 -0
  5. package/dist/cli/commands/branch.d.ts +249 -0
  6. package/dist/cli/commands/branch.d.ts.map +1 -0
  7. package/dist/cli/commands/branch.js +693 -0
  8. package/dist/cli/commands/branch.js.map +1 -0
  9. package/dist/cli/commands/commit.d.ts +182 -0
  10. package/dist/cli/commands/commit.d.ts.map +1 -0
  11. package/dist/cli/commands/commit.js +437 -0
  12. package/dist/cli/commands/commit.js.map +1 -0
  13. package/dist/cli/commands/diff.d.ts +464 -0
  14. package/dist/cli/commands/diff.d.ts.map +1 -0
  15. package/dist/cli/commands/diff.js +958 -0
  16. package/dist/cli/commands/diff.js.map +1 -0
  17. package/dist/cli/commands/log.d.ts +239 -0
  18. package/dist/cli/commands/log.d.ts.map +1 -0
  19. package/dist/cli/commands/log.js +535 -0
  20. package/dist/cli/commands/log.js.map +1 -0
  21. package/dist/cli/commands/review.d.ts +457 -0
  22. package/dist/cli/commands/review.d.ts.map +1 -0
  23. package/dist/cli/commands/review.js +533 -0
  24. package/dist/cli/commands/review.js.map +1 -0
  25. package/dist/cli/commands/status.d.ts +269 -0
  26. package/dist/cli/commands/status.d.ts.map +1 -0
  27. package/dist/cli/commands/status.js +493 -0
  28. package/dist/cli/commands/status.js.map +1 -0
  29. package/dist/cli/commands/web.d.ts +199 -0
  30. package/dist/cli/commands/web.d.ts.map +1 -0
  31. package/dist/cli/commands/web.js +696 -0
  32. package/dist/cli/commands/web.js.map +1 -0
  33. package/dist/cli/fs-adapter.d.ts +656 -0
  34. package/dist/cli/fs-adapter.d.ts.map +1 -0
  35. package/dist/cli/fs-adapter.js +1179 -0
  36. package/dist/cli/fs-adapter.js.map +1 -0
  37. package/dist/cli/index.d.ts +387 -0
  38. package/dist/cli/index.d.ts.map +1 -0
  39. package/dist/cli/index.js +523 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/cli/ui/components/DiffView.d.ts +7 -0
  42. package/dist/cli/ui/components/DiffView.d.ts.map +1 -0
  43. package/dist/cli/ui/components/DiffView.js +11 -0
  44. package/dist/cli/ui/components/DiffView.js.map +1 -0
  45. package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -0
  46. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -0
  47. package/dist/cli/ui/components/ErrorDisplay.js +11 -0
  48. package/dist/cli/ui/components/ErrorDisplay.js.map +1 -0
  49. package/dist/cli/ui/components/FuzzySearch.d.ts +9 -0
  50. package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -0
  51. package/dist/cli/ui/components/FuzzySearch.js +12 -0
  52. package/dist/cli/ui/components/FuzzySearch.js.map +1 -0
  53. package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -0
  54. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -0
  55. package/dist/cli/ui/components/LoadingSpinner.js +10 -0
  56. package/dist/cli/ui/components/LoadingSpinner.js.map +1 -0
  57. package/dist/cli/ui/components/NavigationList.d.ts +9 -0
  58. package/dist/cli/ui/components/NavigationList.d.ts.map +1 -0
  59. package/dist/cli/ui/components/NavigationList.js +11 -0
  60. package/dist/cli/ui/components/NavigationList.js.map +1 -0
  61. package/dist/cli/ui/components/ScrollableContent.d.ts +8 -0
  62. package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -0
  63. package/dist/cli/ui/components/ScrollableContent.js +11 -0
  64. package/dist/cli/ui/components/ScrollableContent.js.map +1 -0
  65. package/dist/cli/ui/components/index.d.ts +7 -0
  66. package/dist/cli/ui/components/index.d.ts.map +1 -0
  67. package/dist/cli/ui/components/index.js +9 -0
  68. package/dist/cli/ui/components/index.js.map +1 -0
  69. package/dist/cli/ui/terminal-ui.d.ts +52 -0
  70. package/dist/cli/ui/terminal-ui.d.ts.map +1 -0
  71. package/dist/cli/ui/terminal-ui.js +121 -0
  72. package/dist/cli/ui/terminal-ui.js.map +1 -0
  73. package/dist/durable-object/object-store.d.ts +401 -23
  74. package/dist/durable-object/object-store.d.ts.map +1 -1
  75. package/dist/durable-object/object-store.js +414 -25
  76. package/dist/durable-object/object-store.js.map +1 -1
  77. package/dist/durable-object/schema.d.ts +188 -0
  78. package/dist/durable-object/schema.d.ts.map +1 -1
  79. package/dist/durable-object/schema.js +160 -0
  80. package/dist/durable-object/schema.js.map +1 -1
  81. package/dist/durable-object/wal.d.ts +336 -31
  82. package/dist/durable-object/wal.d.ts.map +1 -1
  83. package/dist/durable-object/wal.js +272 -27
  84. package/dist/durable-object/wal.js.map +1 -1
  85. package/dist/index.d.ts +379 -3
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +379 -7
  88. package/dist/index.js.map +1 -1
  89. package/dist/mcp/adapter.d.ts +579 -38
  90. package/dist/mcp/adapter.d.ts.map +1 -1
  91. package/dist/mcp/adapter.js +426 -33
  92. package/dist/mcp/adapter.js.map +1 -1
  93. package/dist/mcp/sandbox.d.ts +532 -29
  94. package/dist/mcp/sandbox.d.ts.map +1 -1
  95. package/dist/mcp/sandbox.js +389 -22
  96. package/dist/mcp/sandbox.js.map +1 -1
  97. package/dist/mcp/sdk-adapter.d.ts +478 -56
  98. package/dist/mcp/sdk-adapter.d.ts.map +1 -1
  99. package/dist/mcp/sdk-adapter.js +346 -44
  100. package/dist/mcp/sdk-adapter.js.map +1 -1
  101. package/dist/mcp/tools.d.ts +445 -30
  102. package/dist/mcp/tools.d.ts.map +1 -1
  103. package/dist/mcp/tools.js +363 -33
  104. package/dist/mcp/tools.js.map +1 -1
  105. package/dist/ops/blame.d.ts +424 -21
  106. package/dist/ops/blame.d.ts.map +1 -1
  107. package/dist/ops/blame.js +303 -20
  108. package/dist/ops/blame.js.map +1 -1
  109. package/dist/ops/branch.d.ts +583 -32
  110. package/dist/ops/branch.d.ts.map +1 -1
  111. package/dist/ops/branch.js +365 -23
  112. package/dist/ops/branch.js.map +1 -1
  113. package/dist/ops/commit-traversal.d.ts +164 -24
  114. package/dist/ops/commit-traversal.d.ts.map +1 -1
  115. package/dist/ops/commit-traversal.js +68 -2
  116. package/dist/ops/commit-traversal.js.map +1 -1
  117. package/dist/ops/commit.d.ts +387 -53
  118. package/dist/ops/commit.d.ts.map +1 -1
  119. package/dist/ops/commit.js +249 -29
  120. package/dist/ops/commit.js.map +1 -1
  121. package/dist/ops/merge-base.d.ts +195 -21
  122. package/dist/ops/merge-base.d.ts.map +1 -1
  123. package/dist/ops/merge-base.js +122 -12
  124. package/dist/ops/merge-base.js.map +1 -1
  125. package/dist/ops/merge.d.ts +600 -130
  126. package/dist/ops/merge.d.ts.map +1 -1
  127. package/dist/ops/merge.js +408 -60
  128. package/dist/ops/merge.js.map +1 -1
  129. package/dist/ops/tag.d.ts +67 -2
  130. package/dist/ops/tag.d.ts.map +1 -1
  131. package/dist/ops/tag.js +42 -1
  132. package/dist/ops/tag.js.map +1 -1
  133. package/dist/ops/tree-builder.d.ts +102 -6
  134. package/dist/ops/tree-builder.d.ts.map +1 -1
  135. package/dist/ops/tree-builder.js +30 -5
  136. package/dist/ops/tree-builder.js.map +1 -1
  137. package/dist/ops/tree-diff.d.ts +50 -2
  138. package/dist/ops/tree-diff.d.ts.map +1 -1
  139. package/dist/ops/tree-diff.js +50 -2
  140. package/dist/ops/tree-diff.js.map +1 -1
  141. package/dist/pack/delta.d.ts +211 -39
  142. package/dist/pack/delta.d.ts.map +1 -1
  143. package/dist/pack/delta.js +232 -46
  144. package/dist/pack/delta.js.map +1 -1
  145. package/dist/pack/format.d.ts +390 -28
  146. package/dist/pack/format.d.ts.map +1 -1
  147. package/dist/pack/format.js +344 -33
  148. package/dist/pack/format.js.map +1 -1
  149. package/dist/pack/full-generation.d.ts +313 -28
  150. package/dist/pack/full-generation.d.ts.map +1 -1
  151. package/dist/pack/full-generation.js +238 -19
  152. package/dist/pack/full-generation.js.map +1 -1
  153. package/dist/pack/generation.d.ts +346 -23
  154. package/dist/pack/generation.d.ts.map +1 -1
  155. package/dist/pack/generation.js +269 -21
  156. package/dist/pack/generation.js.map +1 -1
  157. package/dist/pack/index.d.ts +407 -86
  158. package/dist/pack/index.d.ts.map +1 -1
  159. package/dist/pack/index.js +351 -70
  160. package/dist/pack/index.js.map +1 -1
  161. package/dist/refs/branch.d.ts +517 -71
  162. package/dist/refs/branch.d.ts.map +1 -1
  163. package/dist/refs/branch.js +410 -26
  164. package/dist/refs/branch.js.map +1 -1
  165. package/dist/refs/storage.d.ts +610 -57
  166. package/dist/refs/storage.d.ts.map +1 -1
  167. package/dist/refs/storage.js +481 -29
  168. package/dist/refs/storage.js.map +1 -1
  169. package/dist/refs/tag.d.ts +677 -67
  170. package/dist/refs/tag.d.ts.map +1 -1
  171. package/dist/refs/tag.js +497 -30
  172. package/dist/refs/tag.js.map +1 -1
  173. package/dist/storage/lru-cache.d.ts +556 -53
  174. package/dist/storage/lru-cache.d.ts.map +1 -1
  175. package/dist/storage/lru-cache.js +439 -36
  176. package/dist/storage/lru-cache.js.map +1 -1
  177. package/dist/storage/object-index.d.ts +483 -38
  178. package/dist/storage/object-index.d.ts.map +1 -1
  179. package/dist/storage/object-index.js +388 -22
  180. package/dist/storage/object-index.js.map +1 -1
  181. package/dist/storage/r2-pack.d.ts +957 -94
  182. package/dist/storage/r2-pack.d.ts.map +1 -1
  183. package/dist/storage/r2-pack.js +756 -48
  184. package/dist/storage/r2-pack.js.map +1 -1
  185. package/dist/tiered/cdc-pipeline.d.ts +1610 -38
  186. package/dist/tiered/cdc-pipeline.d.ts.map +1 -1
  187. package/dist/tiered/cdc-pipeline.js +1131 -22
  188. package/dist/tiered/cdc-pipeline.js.map +1 -1
  189. package/dist/tiered/migration.d.ts +903 -41
  190. package/dist/tiered/migration.d.ts.map +1 -1
  191. package/dist/tiered/migration.js +646 -24
  192. package/dist/tiered/migration.js.map +1 -1
  193. package/dist/tiered/parquet-writer.d.ts +944 -47
  194. package/dist/tiered/parquet-writer.d.ts.map +1 -1
  195. package/dist/tiered/parquet-writer.js +667 -39
  196. package/dist/tiered/parquet-writer.js.map +1 -1
  197. package/dist/tiered/read-path.d.ts +728 -34
  198. package/dist/tiered/read-path.d.ts.map +1 -1
  199. package/dist/tiered/read-path.js +310 -27
  200. package/dist/tiered/read-path.js.map +1 -1
  201. package/dist/types/objects.d.ts +457 -0
  202. package/dist/types/objects.d.ts.map +1 -1
  203. package/dist/types/objects.js +305 -4
  204. package/dist/types/objects.js.map +1 -1
  205. package/dist/types/storage.d.ts +407 -35
  206. package/dist/types/storage.d.ts.map +1 -1
  207. package/dist/types/storage.js +27 -3
  208. package/dist/types/storage.js.map +1 -1
  209. package/dist/utils/hash.d.ts +133 -12
  210. package/dist/utils/hash.d.ts.map +1 -1
  211. package/dist/utils/hash.js +133 -12
  212. package/dist/utils/hash.js.map +1 -1
  213. package/dist/utils/sha1.d.ts +102 -9
  214. package/dist/utils/sha1.d.ts.map +1 -1
  215. package/dist/utils/sha1.js +114 -11
  216. package/dist/utils/sha1.js.map +1 -1
  217. package/dist/wire/capabilities.d.ts +896 -88
  218. package/dist/wire/capabilities.d.ts.map +1 -1
  219. package/dist/wire/capabilities.js +566 -62
  220. package/dist/wire/capabilities.js.map +1 -1
  221. package/dist/wire/pkt-line.d.ts +293 -15
  222. package/dist/wire/pkt-line.d.ts.map +1 -1
  223. package/dist/wire/pkt-line.js +251 -15
  224. package/dist/wire/pkt-line.js.map +1 -1
  225. package/dist/wire/receive-pack.d.ts +814 -64
  226. package/dist/wire/receive-pack.d.ts.map +1 -1
  227. package/dist/wire/receive-pack.js +542 -41
  228. package/dist/wire/receive-pack.js.map +1 -1
  229. package/dist/wire/smart-http.d.ts +575 -97
  230. package/dist/wire/smart-http.d.ts.map +1 -1
  231. package/dist/wire/smart-http.js +337 -46
  232. package/dist/wire/smart-http.js.map +1 -1
  233. package/dist/wire/upload-pack.d.ts +492 -98
  234. package/dist/wire/upload-pack.d.ts.map +1 -1
  235. package/dist/wire/upload-pack.js +347 -59
  236. package/dist/wire/upload-pack.js.map +1 -1
  237. package/package.json +10 -2
@@ -1,34 +1,102 @@
1
1
  /**
2
- * Git packfile delta encoding/decoding
3
- *
4
- * Git uses delta compression in packfiles to store objects efficiently.
5
- * A delta is a set of instructions to transform a base object into a target object.
6
- *
7
- * Delta format:
8
- * - Source (base) size: variable-length integer
9
- * - Target size: variable-length integer
10
- * - Instructions: sequence of copy or insert commands
11
- *
12
- * Instruction types:
13
- * - Copy (MSB=1): Copy bytes from source object
14
- * Bits 0-3: which offset bytes are present
15
- * Bits 4-6: which size bytes are present
16
- * - Insert (MSB=0): Insert literal bytes
17
- * Bits 0-6: number of bytes to insert (1-127)
2
+ * @fileoverview Git Packfile Delta Encoding/Decoding
3
+ *
4
+ * This module implements Git's delta compression algorithm, which is used in packfiles
5
+ * to efficiently store objects by encoding only the differences between similar objects.
6
+ *
7
+ * ## Delta Format Overview
8
+ *
9
+ * A delta consists of:
10
+ * 1. **Source size** - Variable-length integer specifying the base object size
11
+ * 2. **Target size** - Variable-length integer specifying the result size
12
+ * 3. **Instructions** - Sequence of copy or insert commands
13
+ *
14
+ * ## Instruction Types
15
+ *
16
+ * ### Copy Instruction (MSB = 1)
17
+ * Copies a range of bytes from the source (base) object.
18
+ *
19
+ * | Bit | Meaning |
20
+ * |--------|-------------------------------------------|
21
+ * | 7 | Always 1 (copy marker) |
22
+ * | 6-4 | Which size bytes follow (bit mask) |
23
+ * | 3-0 | Which offset bytes follow (bit mask) |
24
+ *
25
+ * Following bytes encode offset (up to 4 bytes) and size (up to 3 bytes).
26
+ * If size is 0 after decoding, it means 0x10000 (65536).
27
+ *
28
+ * ### Insert Instruction (MSB = 0)
29
+ * Inserts literal bytes directly into the output.
30
+ *
31
+ * | Bit | Meaning |
32
+ * |--------|-------------------------------------------|
33
+ * | 7 | Always 0 (insert marker) |
34
+ * | 6-0 | Number of bytes to insert (1-127) |
35
+ *
36
+ * The instruction byte is followed by that many literal bytes.
37
+ *
38
+ * @module pack/delta
39
+ * @see {@link https://git-scm.com/docs/pack-format} Git Pack Format Documentation
40
+ *
41
+ * @example
42
+ * // Apply a delta to reconstruct an object
43
+ * import { applyDelta } from './delta';
44
+ *
45
+ * const baseObject = getBaseObject(); // Uint8Array
46
+ * const deltaData = getDeltaData(); // Uint8Array from packfile
47
+ * const targetObject = applyDelta(baseObject, deltaData);
48
+ *
49
+ * @example
50
+ * // Create a delta between two objects
51
+ * import { createDelta } from './delta';
52
+ *
53
+ * const oldVersion = new TextEncoder().encode('Hello, World!');
54
+ * const newVersion = new TextEncoder().encode('Hello, Universe!');
55
+ * const delta = createDelta(oldVersion, newVersion);
56
+ */
57
+ /**
58
+ * Marker byte for copy instructions (MSB set).
59
+ * When the MSB is set, the instruction copies bytes from the base object.
60
+ *
61
+ * @constant {number}
18
62
  */
19
- /** Copy instruction type marker (MSB set) */
20
63
  export const COPY_INSTRUCTION = 0x80;
21
- /** Insert instruction type marker (MSB clear) */
64
+ /**
65
+ * Marker byte for insert instructions (MSB clear).
66
+ * When the MSB is clear, the lower 7 bits indicate how many literal bytes follow.
67
+ *
68
+ * @constant {number}
69
+ */
22
70
  export const INSERT_INSTRUCTION = 0x00;
23
71
  /**
24
- * Parse a variable-length size from delta header
72
+ * Parses a variable-length size value from the delta header.
73
+ *
74
+ * @description Reads the source or target size from a delta's header using
75
+ * Git's variable-length integer encoding. Each byte's MSB indicates whether
76
+ * more bytes follow, and the lower 7 bits contribute to the value.
77
+ *
78
+ * **Encoding Details:**
79
+ * - Bytes are read sequentially
80
+ * - Lower 7 bits of each byte contribute to the result
81
+ * - MSB = 1 means more bytes follow
82
+ * - MSB = 0 means this is the last byte
83
+ * - Maximum of 10 bytes (supports values up to 2^70)
25
84
  *
26
- * Git uses a variable-length encoding where each byte's MSB indicates
27
- * if more bytes follow. The lower 7 bits of each byte contribute to the value.
85
+ * @param {Uint8Array} data - The delta data buffer
86
+ * @param {number} offset - Starting byte offset in the buffer
87
+ * @returns {DeltaHeaderResult} Object with parsed size and bytes consumed
88
+ * @throws {Error} If data ends unexpectedly before size is complete
89
+ * @throws {Error} If size encoding exceeds maximum length (corrupted data)
28
90
  *
29
- * @param data The delta data buffer
30
- * @param offset Starting offset in the buffer
31
- * @returns The parsed size and number of bytes consumed
91
+ * @example
92
+ * // Parse source and target sizes from delta
93
+ * let offset = 0;
94
+ * const source = parseDeltaHeader(delta, offset);
95
+ * offset += source.bytesRead;
96
+ * const target = parseDeltaHeader(delta, offset);
97
+ * offset += target.bytesRead;
98
+ *
99
+ * console.log(`Base size: ${source.size}, Target size: ${target.size}`);
32
100
  */
33
101
  export function parseDeltaHeader(data, offset) {
34
102
  let size = 0;
@@ -56,10 +124,14 @@ export function parseDeltaHeader(data, offset) {
56
124
  return { size, bytesRead };
57
125
  }
58
126
  /**
59
- * Encode a size as a variable-length integer
127
+ * Encodes a size as a variable-length integer for delta headers.
128
+ *
129
+ * @description Internal function that encodes sizes using Git's varint format.
130
+ * Used when creating delta headers that specify source and target sizes.
60
131
  *
61
- * @param size The size to encode
62
- * @returns The encoded bytes
132
+ * @param {number} size - The size value to encode
133
+ * @returns {Uint8Array} The encoded bytes
134
+ * @internal
63
135
  */
64
136
  function encodeDeltaSize(size) {
65
137
  const bytes = [];
@@ -74,12 +146,48 @@ function encodeDeltaSize(size) {
74
146
  return new Uint8Array(bytes);
75
147
  }
76
148
  /**
77
- * Apply a delta to a base object to produce the target object
149
+ * Applies a delta to a base object to produce the target object.
150
+ *
151
+ * @description Reconstructs the target object by executing the delta's copy and
152
+ * insert instructions against the base object. This is the core operation for
153
+ * unpacking delta-compressed objects in packfiles.
154
+ *
155
+ * **Delta Application Process:**
156
+ * 1. Parse source (base) size and verify it matches
157
+ * 2. Parse target size to allocate result buffer
158
+ * 3. Execute instructions sequentially:
159
+ * - Copy: copy bytes from base object to result
160
+ * - Insert: copy literal bytes from delta to result
161
+ * 4. Verify result size matches expected target size
162
+ *
163
+ * **Error Conditions:**
164
+ * - Base object size doesn't match delta's source size
165
+ * - Copy instruction references bytes outside base object
166
+ * - Instructions would overflow the result buffer
167
+ * - Result size doesn't match delta's target size
168
+ * - Invalid instruction byte (0x00)
169
+ *
170
+ * @param {Uint8Array} base - The source/base object to apply delta against
171
+ * @param {Uint8Array} delta - The delta data (decompressed from packfile)
172
+ * @returns {Uint8Array} The reconstructed target object
173
+ * @throws {Error} If base size doesn't match delta's source size
174
+ * @throws {Error} If delta contains invalid instructions
175
+ * @throws {Error} If copy would read beyond base object bounds
176
+ * @throws {Error} If result size doesn't match expected target size
78
177
  *
79
- * @param base The source/base object
80
- * @param delta The delta data
81
- * @returns The reconstructed target object
82
- * @throws Error if delta is invalid or sizes don't match
178
+ * @example
179
+ * // Reconstruct an object from base + delta
180
+ * const base = await getObject(baseSha);
181
+ * const delta = decompressDeltaData(packData, offset);
182
+ * const target = applyDelta(base, delta);
183
+ *
184
+ * @example
185
+ * // Error handling
186
+ * try {
187
+ * const target = applyDelta(base, delta);
188
+ * } catch (e) {
189
+ * console.error('Delta application failed:', e.message);
190
+ * }
83
191
  */
84
192
  export function applyDelta(base, delta) {
85
193
  let offset = 0;
@@ -155,16 +263,48 @@ export function applyDelta(base, delta) {
155
263
  return result;
156
264
  }
157
265
  /**
158
- * Create a delta between two objects
266
+ * Creates a delta that transforms a base object into a target object.
267
+ *
268
+ * @description Generates delta instructions that can reconstruct the target
269
+ * from the base object. Uses a hash-based algorithm to find matching sequences
270
+ * and emits copy/insert instructions accordingly.
271
+ *
272
+ * **Algorithm:**
273
+ * 1. Build a hash table of 4-byte sequences in the base object
274
+ * 2. Scan through the target looking for matches in the hash table
275
+ * 3. For each match found, verify and extend to maximum length
276
+ * 4. Emit copy instructions for matches (4+ bytes)
277
+ * 5. Emit insert instructions for non-matching data
278
+ *
279
+ * **Optimization Notes:**
280
+ * - Uses 4-byte window for hash matching
281
+ * - Minimum copy size is 4 bytes (smaller copies become inserts)
282
+ * - Insert instructions are limited to 127 bytes each
283
+ * - Empty base results in pure insert delta
284
+ * - Empty target results in headers-only delta
285
+ *
286
+ * **Output Format:**
287
+ * - Source size (varint)
288
+ * - Target size (varint)
289
+ * - Sequence of copy/insert instructions
290
+ *
291
+ * @param {Uint8Array} base - The source/base object
292
+ * @param {Uint8Array} target - The target object to encode as delta
293
+ * @returns {Uint8Array} The delta data (can be applied with {@link applyDelta})
159
294
  *
160
- * This uses a simple but effective algorithm:
161
- * 1. Build a hash table of 4-byte sequences in the base
162
- * 2. Scan the target looking for matches
163
- * 3. Emit copy instructions for matches, insert for non-matches
295
+ * @example
296
+ * // Create a delta for similar files
297
+ * const v1 = new TextEncoder().encode('Hello, World!');
298
+ * const v2 = new TextEncoder().encode('Hello, Universe!');
299
+ * const delta = createDelta(v1, v2);
164
300
  *
165
- * @param base The source/base object
166
- * @param target The target object to encode
167
- * @returns The delta data
301
+ * // Delta should be smaller than v2 if there's good overlap
302
+ * console.log(`Original: ${v2.length}, Delta: ${delta.length}`);
303
+ *
304
+ * @example
305
+ * // Verify delta correctness
306
+ * const reconstructed = applyDelta(v1, delta);
307
+ * // reconstructed should equal v2
168
308
  */
169
309
  export function createDelta(base, target) {
170
310
  const instructions = [];
@@ -240,7 +380,16 @@ export function createDelta(base, target) {
240
380
  return concatArrays(instructions);
241
381
  }
242
382
  /**
243
- * Simple hash function for a sequence of bytes
383
+ * Computes a simple hash of a byte sequence for delta matching.
384
+ *
385
+ * @description Uses a fast multiplicative hash (similar to djb2) for
386
+ * building the hash table used in delta creation.
387
+ *
388
+ * @param {Uint8Array} data - The data buffer
389
+ * @param {number} offset - Starting offset
390
+ * @param {number} length - Number of bytes to hash
391
+ * @returns {number} 32-bit hash value
392
+ * @internal
244
393
  */
245
394
  function hashBytes(data, offset, length) {
246
395
  let hash = 0;
@@ -250,7 +399,18 @@ function hashBytes(data, offset, length) {
250
399
  return hash;
251
400
  }
252
401
  /**
253
- * Get the length of matching bytes between two arrays
402
+ * Finds the length of matching bytes between two array regions.
403
+ *
404
+ * @description Compares bytes starting from the given offsets and returns
405
+ * how many consecutive bytes match. Used to extend hash-based matches.
406
+ *
407
+ * @param {Uint8Array} a - First array
408
+ * @param {number} aOffset - Starting offset in first array
409
+ * @param {Uint8Array} b - Second array
410
+ * @param {number} bOffset - Starting offset in second array
411
+ * @param {number} maxLength - Maximum number of bytes to compare
412
+ * @returns {number} Number of matching bytes (0 to maxLength)
413
+ * @internal
254
414
  */
255
415
  function getMatchLength(a, aOffset, b, bOffset, maxLength) {
256
416
  let length = 0;
@@ -260,8 +420,16 @@ function getMatchLength(a, aOffset, b, bOffset, maxLength) {
260
420
  return length;
261
421
  }
262
422
  /**
263
- * Emit insert instructions for a range of bytes
264
- * Insert commands can only handle 1-127 bytes, so we may need multiple
423
+ * Emits insert instructions for a range of literal bytes.
424
+ *
425
+ * @description Insert commands can only encode 1-127 bytes each, so this
426
+ * function splits larger ranges into multiple instructions as needed.
427
+ *
428
+ * @param {Uint8Array[]} instructions - Array to append instructions to
429
+ * @param {Uint8Array} data - Source data buffer
430
+ * @param {number} start - Starting offset (inclusive)
431
+ * @param {number} end - Ending offset (exclusive)
432
+ * @internal
265
433
  */
266
434
  function emitInserts(instructions, data, start, end) {
267
435
  const MAX_INSERT = 127;
@@ -276,7 +444,21 @@ function emitInserts(instructions, data, start, end) {
276
444
  }
277
445
  }
278
446
  /**
279
- * Emit a copy instruction
447
+ * Emits a copy instruction that copies bytes from the base object.
448
+ *
449
+ * @description Encodes a copy instruction using Git's compact format where
450
+ * only non-zero offset and size bytes are included, indicated by bit flags.
451
+ *
452
+ * **Encoding Details:**
453
+ * - Offset bytes (up to 4) are included based on bits 0-3 of command byte
454
+ * - Size bytes (up to 3) are included based on bits 4-6 of command byte
455
+ * - Size of 0x10000 (65536) is encoded as no size bytes (size=0 means 0x10000)
456
+ * - Offset of 0 means no offset bytes are included
457
+ *
458
+ * @param {Uint8Array[]} instructions - Array to append the instruction to
459
+ * @param {number} offset - Byte offset in base object to copy from
460
+ * @param {number} size - Number of bytes to copy
461
+ * @internal
280
462
  */
281
463
  function emitCopy(instructions, offset, size) {
282
464
  const bytes = [];
@@ -325,7 +507,11 @@ function emitCopy(instructions, offset, size) {
325
507
  instructions.push(instruction);
326
508
  }
327
509
  /**
328
- * Concatenate multiple Uint8Arrays into one
510
+ * Concatenates multiple Uint8Arrays into a single array.
511
+ *
512
+ * @param {Uint8Array[]} arrays - Arrays to concatenate
513
+ * @returns {Uint8Array} Combined array
514
+ * @internal
329
515
  */
330
516
  function concatArrays(arrays) {
331
517
  let totalLength = 0;
@@ -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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"}