gitx.do 0.0.2 → 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 +1 -1
@@ -1,39 +1,115 @@
1
1
  /**
2
- * Git Pack Index (.idx) File Format Implementation
3
- *
4
- * The pack index file provides a mechanism to efficiently locate objects
5
- * within a packfile without scanning the entire pack.
6
- *
7
- * Pack Index Version 2 Format:
8
- * - 4 bytes: magic number (0xff744f63 = "\377tOc")
9
- * - 4 bytes: version number (2)
10
- * - 256 * 4 bytes: fanout table (cumulative count of objects for each first byte)
11
- * - N * 20 bytes: sorted object IDs (N = total objects from fanout[255])
12
- * - N * 4 bytes: CRC32 checksums for each object
13
- * - N * 4 bytes: 4-byte pack file offsets
14
- * - M * 8 bytes: 8-byte pack file offsets for objects > 2GB (M = count of large offsets)
15
- * - 20 bytes: packfile SHA-1 checksum
16
- * - 20 bytes: index file SHA-1 checksum
2
+ * @fileoverview Git Pack Index (.idx) File Format Implementation
3
+ *
4
+ * This module implements the Git pack index (version 2) format, which provides
5
+ * efficient random access to objects within a packfile. Without an index, finding
6
+ * an object in a packfile would require scanning the entire file.
7
+ *
8
+ * ## Pack Index Version 2 Structure
9
+ *
10
+ * | Section | Size | Description |
11
+ * |------------------------|-------------------------|--------------------------------------------|
12
+ * | Magic number | 4 bytes | 0xff744f63 ("\377tOc") |
13
+ * | Version | 4 bytes | Version number (2) |
14
+ * | Fanout table | 256 * 4 bytes | Cumulative object counts by first SHA byte |
15
+ * | Object IDs | N * 20 bytes | Sorted SHA-1 hashes |
16
+ * | CRC32 checksums | N * 4 bytes | CRC32 of each packed object |
17
+ * | 4-byte offsets | N * 4 bytes | Pack file offsets (or large offset index) |
18
+ * | 8-byte large offsets | M * 8 bytes | For objects beyond 2GB |
19
+ * | Packfile checksum | 20 bytes | SHA-1 of the corresponding packfile |
20
+ * | Index checksum | 20 bytes | SHA-1 of this index file |
21
+ *
22
+ * ## Fanout Table
23
+ *
24
+ * The fanout table enables O(1) lookup of the range of objects starting with a given
25
+ * byte value. `fanout[i]` contains the cumulative count of objects whose SHA-1 hash
26
+ * starts with a byte <= i. This enables binary search within a narrow range.
27
+ *
28
+ * ## Large Offset Handling
29
+ *
30
+ * For packfiles larger than 2GB, offsets that don't fit in 4 bytes are stored in
31
+ * a separate 8-byte table. The 4-byte offset slot contains an index into this table
32
+ * with the MSB set to indicate it's an indirect reference.
33
+ *
34
+ * @module pack/index
35
+ * @see {@link https://git-scm.com/docs/pack-format} Git Pack Format Documentation
36
+ *
37
+ * @example
38
+ * // Parse an existing pack index
39
+ * import { parsePackIndex, lookupObject } from './index';
40
+ *
41
+ * const indexData = await readFile('objects/pack/pack-abc123.idx');
42
+ * const index = parsePackIndex(indexData);
43
+ *
44
+ * const entry = lookupObject(index, 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3');
45
+ * if (entry) {
46
+ * console.log(`Object at offset ${entry.offset}`);
47
+ * }
17
48
  */
18
49
  import { sha1, sha1Verify } from '../utils/sha1';
19
- // Pack index v2 signature: 0xff 0x74 0x4f 0x63 ("\377tOc")
50
+ /**
51
+ * The 4-byte signature that identifies a version 2 pack index file.
52
+ * The bytes are: 0xff 0x74 0x4f 0x63 (representing "\377tOc").
53
+ *
54
+ * Version 1 index files don't have this signature and start directly
55
+ * with the fanout table.
56
+ *
57
+ * @constant {Uint8Array}
58
+ */
20
59
  export const PACK_INDEX_SIGNATURE = new Uint8Array([0xff, 0x74, 0x4f, 0x63]);
21
- // Magic number for pack index version 2 (as a 32-bit number)
60
+ /**
61
+ * The magic number as a 32-bit integer for easy comparison.
62
+ * Equivalent to reading the first 4 bytes as big-endian uint32.
63
+ *
64
+ * @constant {number}
65
+ */
22
66
  export const PACK_INDEX_MAGIC = 0xff744f63;
67
+ /**
68
+ * The pack index version number supported by this implementation.
69
+ * Version 2 is the current standard and supports large packfiles (>2GB).
70
+ *
71
+ * @constant {number}
72
+ */
23
73
  export const PACK_INDEX_VERSION = 2;
24
- // Threshold for large offsets (2GB)
74
+ /**
75
+ * The byte threshold for using large offset encoding.
76
+ * Offsets >= 2GB (0x80000000) require 8-byte storage.
77
+ * In the 4-byte offset table, values with MSB set are indices
78
+ * into the large offset table instead of direct offsets.
79
+ *
80
+ * @constant {number}
81
+ */
25
82
  export const LARGE_OFFSET_THRESHOLD = 0x80000000;
26
83
  /**
27
- * Helper to get the object ID from an entry (supports both 'objectId' and 'sha')
84
+ * Gets the object ID from a PackIndexEntry, supporting both property names.
85
+ *
86
+ * @description Helper function that handles the legacy 'sha' property as well as
87
+ * the current 'objectId' property for backward compatibility.
88
+ *
89
+ * @param {PackIndexEntry} entry - The pack index entry
90
+ * @returns {string} The 40-character hex object ID, or empty string if neither is set
91
+ * @internal
28
92
  */
29
93
  function getEntryObjectId(entry) {
30
94
  return entry.objectId || entry.sha || '';
31
95
  }
32
- // Helper to convert bytes to hex string
96
+ /**
97
+ * Converts a byte array to a hexadecimal string.
98
+ *
99
+ * @param {Uint8Array} bytes - The bytes to convert
100
+ * @returns {string} Lowercase hexadecimal string representation
101
+ * @internal
102
+ */
33
103
  function bytesToHex(bytes) {
34
104
  return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
35
105
  }
36
- // Helper to convert hex string to bytes
106
+ /**
107
+ * Converts a hexadecimal string to a byte array.
108
+ *
109
+ * @param {string} hex - The hex string to convert (must be even length)
110
+ * @returns {Uint8Array} The decoded bytes
111
+ * @internal
112
+ */
37
113
  function hexToBytes(hex) {
38
114
  const bytes = new Uint8Array(hex.length / 2);
39
115
  for (let i = 0; i < hex.length; i += 2) {
@@ -42,11 +118,38 @@ function hexToBytes(hex) {
42
118
  return bytes;
43
119
  }
44
120
  /**
45
- * Parse a pack index file (version 2)
121
+ * Parses a pack index file (version 2 format).
122
+ *
123
+ * @description Parses the binary .idx file format and returns a structured
124
+ * representation of the pack index. The function validates:
125
+ * - Magic number and version
126
+ * - Fanout table monotonicity
127
+ * - Index checksum integrity
128
+ *
129
+ * **Performance:** This function parses the entire index into memory,
130
+ * which is suitable for most use cases. For very large indexes,
131
+ * consider streaming approaches.
46
132
  *
47
- * @param data - Raw bytes of the .idx file
48
- * @returns Parsed pack index structure
49
- * @throws Error if the index is invalid or uses unsupported version
133
+ * @param {Uint8Array} data - Raw bytes of the .idx file
134
+ * @returns {PackIndex} Fully parsed pack index structure
135
+ * @throws {Error} If the index data is too short
136
+ * @throws {Error} If the magic signature is invalid
137
+ * @throws {Error} If the version is not 2
138
+ * @throws {Error} If the fanout table is not monotonically non-decreasing
139
+ * @throws {Error} If the checksum verification fails
140
+ *
141
+ * @example
142
+ * // Parse an index file
143
+ * const indexData = await fs.readFile('pack-abc123.idx');
144
+ * const index = parsePackIndex(indexData);
145
+ *
146
+ * console.log(`Version: ${index.version}`);
147
+ * console.log(`Objects: ${index.objectCount}`);
148
+ *
149
+ * // Access entries
150
+ * for (const entry of index.entries) {
151
+ * console.log(`${entry.objectId} at offset ${entry.offset}`);
152
+ * }
50
153
  */
51
154
  export function parsePackIndex(data) {
52
155
  // Need at least 4 bytes for signature
@@ -154,13 +257,41 @@ export function parsePackIndex(data) {
154
257
  };
155
258
  }
156
259
  /**
157
- * Create a pack index from a packfile
260
+ * Creates a pack index file from packfile data or pre-computed entries.
261
+ *
262
+ * @description Generates a valid .idx file that can be used to efficiently
263
+ * locate objects within the corresponding packfile. Supports two calling conventions
264
+ * for backward compatibility.
265
+ *
266
+ * **Generated Index Structure:**
267
+ * - Version 2 header with magic number
268
+ * - Fanout table computed from entry SHA prefixes
269
+ * - Sorted object IDs (binary SHA-1)
270
+ * - CRC32 checksums from entries
271
+ * - Pack file offsets (4-byte or 8-byte for large files)
272
+ * - Pack checksum (from pack trailer)
273
+ * - Self-checksum (SHA-1 of entire index)
158
274
  *
159
- * Supports two calling conventions:
160
- * - createPackIndex(options: CreatePackIndexOptions) - new style
161
- * - createPackIndex(packData: Uint8Array, entries: PackIndexEntry[]) - legacy style
275
+ * @param {CreatePackIndexOptions | Uint8Array} optionsOrPackData - Either options object or packfile data (legacy)
276
+ * @param {PackIndexEntry[]} [legacyEntries] - Pre-computed entries when using legacy calling convention
277
+ * @returns {Uint8Array} Complete .idx file as binary data
162
278
  *
163
- * @returns The raw bytes of the generated .idx file
279
+ * @example
280
+ * // New style: from options
281
+ * const indexData = createPackIndex({ packData: myPackfile });
282
+ *
283
+ * @example
284
+ * // Legacy style: with pre-computed entries
285
+ * const entries = [
286
+ * { objectId: 'abc123...', crc32: 0x12345678, offset: 100 }
287
+ * ];
288
+ * const indexData = createPackIndex(packData, entries);
289
+ *
290
+ * @example
291
+ * // Write index to disk alongside packfile
292
+ * const packName = 'pack-abc123';
293
+ * await fs.writeFile(`${packName}.pack`, packData);
294
+ * await fs.writeFile(`${packName}.idx`, createPackIndex({ packData }));
164
295
  */
165
296
  export function createPackIndex(optionsOrPackData, legacyEntries) {
166
297
  // Handle legacy calling convention: createPackIndex(packData, entries)
@@ -230,13 +361,42 @@ export function createPackIndex(optionsOrPackData, legacyEntries) {
230
361
  return serializePackIndex(index);
231
362
  }
232
363
  /**
233
- * Look up an object in the pack index by its SHA
364
+ * Looks up an object in the pack index by its SHA-1 hash.
365
+ *
366
+ * @description Performs an efficient O(log n) lookup using the fanout table
367
+ * to narrow the search range, followed by binary search within that range.
368
+ *
369
+ * **Algorithm:**
370
+ * 1. Use the first byte of the SHA to find the range via fanout table - O(1)
371
+ * 2. Binary search within the range for exact match - O(log n)
234
372
  *
235
- * Uses binary search through the fanout table for efficient lookup.
373
+ * **Validation:**
374
+ * - SHA must be exactly 40 characters
375
+ * - SHA must contain valid hexadecimal characters
376
+ * - Comparison is case-insensitive
236
377
  *
237
- * @param index - The parsed pack index
238
- * @param sha - The 40-character hex SHA to find
239
- * @returns The entry if found, or null if not found
378
+ * @param {PackIndex} index - The parsed pack index to search
379
+ * @param {string} sha - The 40-character hexadecimal SHA-1 to find
380
+ * @returns {PackIndexEntry | null} The entry if found, or null if not present
381
+ * @throws {Error} If SHA is not exactly 40 characters
382
+ * @throws {Error} If SHA contains no valid hex characters
383
+ *
384
+ * @example
385
+ * // Look up an object
386
+ * const entry = lookupObject(index, 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3');
387
+ * if (entry) {
388
+ * console.log(`Found at offset ${entry.offset}`);
389
+ * } else {
390
+ * console.log('Object not in this pack');
391
+ * }
392
+ *
393
+ * @example
394
+ * // With error handling
395
+ * try {
396
+ * const entry = lookupObject(index, userInputSha);
397
+ * } catch (e) {
398
+ * console.error('Invalid SHA format:', e.message);
399
+ * }
240
400
  */
241
401
  export function lookupObject(index, sha) {
242
402
  // Validate SHA format
@@ -264,17 +424,45 @@ export function lookupObject(index, sha) {
264
424
  return index.entries[position];
265
425
  }
266
426
  /**
267
- * Verify the integrity of a pack index
427
+ * Verifies the integrity of a pack index file.
268
428
  *
269
- * Checks:
270
- * - Magic number and version
271
- * - Fanout table consistency
272
- * - Object ID sorting
273
- * - SHA-1 checksums
429
+ * @description Performs comprehensive validation of a .idx file including:
430
+ * - Magic number verification (0xff744f63)
431
+ * - Version validation (must be 2)
432
+ * - Fanout table monotonicity check
433
+ * - Object ID sort order verification
434
+ * - SHA-1 checksum validation
435
+ *
436
+ * **Validation Order:**
437
+ * The function validates structural integrity before checking the checksum,
438
+ * allowing it to report more specific errors for corrupted data.
439
+ *
440
+ * @param {Uint8Array} data - Raw bytes of the .idx file
441
+ * @returns {boolean} True if all validation checks pass
442
+ * @throws {Error} If the index is too short
443
+ * @throws {Error} If the magic signature is invalid
444
+ * @throws {Error} If the version is not 2
445
+ * @throws {Error} If the fanout table is not monotonically non-decreasing
446
+ * @throws {Error} If object IDs are not in sorted order
447
+ * @throws {Error} If the checksum doesn't match
274
448
  *
275
- * @param data - Raw bytes of the .idx file
276
- * @returns True if the index is valid
277
- * @throws Error with details if verification fails
449
+ * @example
450
+ * // Verify before using an index
451
+ * try {
452
+ * if (verifyPackIndex(indexData)) {
453
+ * const index = parsePackIndex(indexData);
454
+ * // Safe to use index
455
+ * }
456
+ * } catch (e) {
457
+ * console.error('Corrupted index:', e.message);
458
+ * }
459
+ *
460
+ * @example
461
+ * // Quick validation check
462
+ * const isValid = (() => {
463
+ * try { return verifyPackIndex(data); }
464
+ * catch { return false; }
465
+ * })();
278
466
  */
279
467
  export function verifyPackIndex(data) {
280
468
  // Check minimum size for header + fanout table + checksums
@@ -352,18 +540,36 @@ export function verifyPackIndex(data) {
352
540
  return true;
353
541
  }
354
542
  /**
355
- * Get the range of entries in the fanout table for a given first byte
543
+ * Gets the range of entries that could match a given first byte.
544
+ *
545
+ * @description Uses the fanout table to find the start and end indices
546
+ * for objects whose SHA-1 begins with the specified byte value. This
547
+ * is used to narrow the search space before binary searching.
548
+ *
549
+ * The fanout table stores cumulative counts, so:
550
+ * - `fanout[i]` = count of all objects with first byte <= i
551
+ * - Range for byte `b` is [fanout[b-1], fanout[b])
552
+ * - For byte 0, range is [0, fanout[0])
553
+ *
554
+ * @param {Uint32Array} fanout - The 256-entry fanout table
555
+ * @param {number} firstByte - The first byte of the object ID (0-255)
556
+ * @returns {{ start: number; end: number }} Start (inclusive) and end (exclusive) indices
356
557
  *
357
- * @param fanout - The fanout table
358
- * @param firstByte - The first byte of the object ID (0-255)
359
- * @returns Start and end indices for binary search
558
+ * @example
559
+ * // Find range for objects starting with 0xab
560
+ * const { start, end } = getFanoutRange(index.fanout, 0xab);
561
+ * // Now binary search entries[start..end)
360
562
  */
361
563
  export function getFanoutRange(fanout, firstByte) {
362
564
  const end = fanout[firstByte];
363
565
  const start = firstByte === 0 ? 0 : fanout[firstByte - 1];
364
566
  return { start, end };
365
567
  }
366
- // CRC32 lookup table (IEEE 802.3 polynomial 0xEDB88320)
568
+ /**
569
+ * Pre-computed CRC32 lookup table using IEEE 802.3 polynomial.
570
+ * Uses the standard CRC-32 polynomial 0xEDB88320 (bit-reversed 0x04C11DB7).
571
+ * @internal
572
+ */
367
573
  const CRC32_TABLE = (() => {
368
574
  const table = new Uint32Array(256);
369
575
  for (let i = 0; i < 256; i++) {
@@ -376,10 +582,21 @@ const CRC32_TABLE = (() => {
376
582
  return table;
377
583
  })();
378
584
  /**
379
- * Calculate CRC32 checksum for packed object data
585
+ * Calculates the CRC32 checksum of data.
586
+ *
587
+ * @description Computes a CRC32 checksum using the IEEE 802.3 polynomial,
588
+ * which is the same algorithm used by Git for pack index verification.
589
+ * This checksum is stored in the pack index to verify object integrity
590
+ * without full decompression.
380
591
  *
381
- * @param data - The compressed object data
382
- * @returns CRC32 checksum
592
+ * @param {Uint8Array} data - The data to checksum (typically compressed object data)
593
+ * @returns {number} 32-bit unsigned CRC32 checksum
594
+ *
595
+ * @example
596
+ * // Calculate CRC32 of compressed data
597
+ * const compressed = pako.deflate(objectData);
598
+ * const crc = calculateCRC32(compressed);
599
+ * // Store crc in pack index entry
383
600
  */
384
601
  export function calculateCRC32(data) {
385
602
  let crc = 0xffffffff;
@@ -389,13 +606,27 @@ export function calculateCRC32(data) {
389
606
  return (crc ^ 0xffffffff) >>> 0;
390
607
  }
391
608
  /**
392
- * Binary search for an object ID within a range of the index
609
+ * Performs binary search for an object ID within a range of entries.
610
+ *
611
+ * @description Searches for an exact match of the object ID within the
612
+ * specified range of the sorted entries array. Uses string comparison
613
+ * which works correctly for hexadecimal SHA-1 hashes.
393
614
  *
394
- * @param entries - Sorted array of pack index entries
395
- * @param objectId - Object ID (SHA) to search for
396
- * @param start - Start index (inclusive)
397
- * @param end - End index (exclusive)
398
- * @returns Index if found, or -1
615
+ * **Time Complexity:** O(log n) where n = end - start
616
+ *
617
+ * @param {PackIndexEntry[]} entries - Sorted array of pack index entries
618
+ * @param {string} objectId - 40-character hex object ID (SHA) to search for
619
+ * @param {number} start - Start index (inclusive)
620
+ * @param {number} end - End index (exclusive)
621
+ * @returns {number} Index of the entry if found, or -1 if not found
622
+ *
623
+ * @example
624
+ * // Search within a specific range (from fanout lookup)
625
+ * const { start, end } = getFanoutRange(index.fanout, 0xab);
626
+ * const position = binarySearchObjectId(index.entries, targetSha, start, end);
627
+ * if (position !== -1) {
628
+ * const entry = index.entries[position];
629
+ * }
399
630
  */
400
631
  export function binarySearchObjectId(entries, objectId, start, end) {
401
632
  let lo = start;
@@ -415,13 +646,36 @@ export function binarySearchObjectId(entries, objectId, start, end) {
415
646
  }
416
647
  return -1;
417
648
  }
418
- // Alias for backwards compatibility
649
+ /**
650
+ * Alias for {@link binarySearchObjectId} for backward compatibility.
651
+ * @deprecated Use binarySearchObjectId instead
652
+ */
419
653
  export const binarySearchSha = binarySearchObjectId;
420
654
  /**
421
- * Serialize a pack index to binary format
655
+ * Serializes a PackIndex structure to binary .idx format.
422
656
  *
423
- * @param index - The pack index to serialize
424
- * @returns Raw bytes of the .idx file
657
+ * @description Converts a structured PackIndex object into the binary format
658
+ * used by Git for .idx files. This is the inverse of {@link parsePackIndex}.
659
+ *
660
+ * **Output Structure:**
661
+ * 1. Magic number (4 bytes)
662
+ * 2. Version (4 bytes)
663
+ * 3. Fanout table (1024 bytes)
664
+ * 4. Object IDs sorted (N * 20 bytes)
665
+ * 5. CRC32 values (N * 4 bytes)
666
+ * 6. 4-byte offsets (N * 4 bytes)
667
+ * 7. 8-byte large offsets if needed
668
+ * 8. Pack checksum (20 bytes)
669
+ * 9. Index checksum (20 bytes) - computed during serialization
670
+ *
671
+ * @param {PackIndex} index - The pack index to serialize
672
+ * @returns {Uint8Array} Complete .idx file as binary data
673
+ *
674
+ * @example
675
+ * // Serialize an index after modifications
676
+ * const index = parsePackIndex(originalData);
677
+ * // ... modify index ...
678
+ * const newData = serializePackIndex(index);
425
679
  */
426
680
  export function serializePackIndex(index) {
427
681
  const { fanout, entries, packChecksum } = index;
@@ -504,10 +758,26 @@ export function serializePackIndex(index) {
504
758
  return data;
505
759
  }
506
760
  /**
507
- * Parse the fanout table from pack index data
761
+ * Parses the 256-entry fanout table from pack index data.
762
+ *
763
+ * @description The fanout table is a core data structure that enables O(1)
764
+ * range lookup for binary search. Each entry stores the cumulative count
765
+ * of objects whose first SHA byte is <= the entry index.
508
766
  *
509
- * @param data - Raw bytes starting at fanout table
510
- * @returns Parsed fanout table (256 entries)
767
+ * **Table Properties:**
768
+ * - 256 entries (one per possible first byte value)
769
+ * - Each entry is 4 bytes, big-endian
770
+ * - Values must be monotonically non-decreasing
771
+ * - fanout[255] = total object count
772
+ *
773
+ * @param {Uint8Array} data - Raw bytes starting at the fanout table (1024 bytes minimum)
774
+ * @returns {Uint32Array} 256-entry fanout table
775
+ *
776
+ * @example
777
+ * // Parse fanout from index data
778
+ * const fanoutData = indexData.subarray(8, 8 + 256 * 4);
779
+ * const fanout = parseFanoutTable(fanoutData);
780
+ * const totalObjects = fanout[255];
511
781
  */
512
782
  export function parseFanoutTable(data) {
513
783
  const fanout = new Uint32Array(256);
@@ -518,13 +788,24 @@ export function parseFanoutTable(data) {
518
788
  return fanout;
519
789
  }
520
790
  /**
521
- * Read a 4-byte big-endian offset from pack index
791
+ * Reads a pack file offset from the index, handling both small and large offsets.
792
+ *
793
+ * @description Pack index offsets use a special encoding to support files > 2GB:
794
+ * - If MSB is clear: the 4-byte value is the direct offset
795
+ * - If MSB is set: the lower 31 bits are an index into the large offset table
796
+ *
797
+ * The large offset table stores 8-byte offsets for objects beyond the 2GB boundary.
522
798
  *
523
- * If the MSB is set, it's an index into the large offset table.
799
+ * @param {Uint8Array} data - 4 bytes containing the offset or large offset index
800
+ * @param {Uint8Array} [largeOffsets] - The 8-byte large offset table (required for offsets > 2GB)
801
+ * @returns {number} The actual byte offset in the packfile
802
+ * @throws {Error} If a large offset is indicated but largeOffsets is not provided
803
+ * @throws {Error} If the large offset index is out of bounds
524
804
  *
525
- * @param data - Raw bytes at offset position
526
- * @param largeOffsets - Large offset table (for >2GB offsets)
527
- * @returns The actual offset value
805
+ * @example
806
+ * // Read offset for an entry
807
+ * const offsetData = indexData.subarray(offsetsStart + i * 4, offsetsStart + (i + 1) * 4);
808
+ * const offset = readPackOffset(offsetData, largeOffsetsTable);
528
809
  */
529
810
  export function readPackOffset(data, largeOffsets) {
530
811
  const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pack/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pack/index.ts"],"names":[],"mappings":"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"}