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,19 +1,130 @@
1
- // Type guards
1
+ /**
2
+ * @fileoverview Git Object Types and Serialization
3
+ *
4
+ * This module defines the core Git object types (blob, tree, commit, tag) and provides
5
+ * functions for serializing and deserializing these objects in the Git format.
6
+ *
7
+ * Git uses a content-addressable storage model where each object is identified by
8
+ * its SHA-1 hash. The format for each object type is:
9
+ * - Header: "{type} {size}\0"
10
+ * - Content: type-specific binary data
11
+ *
12
+ * @module types/objects
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { serializeBlob, parseBlob, isBlob } from './types/objects'
17
+ *
18
+ * // Create and serialize a blob
19
+ * const content = new TextEncoder().encode('Hello, World!')
20
+ * const serialized = serializeBlob(content)
21
+ *
22
+ * // Parse it back
23
+ * const blob = parseBlob(serialized)
24
+ * console.log(blob.type) // 'blob'
25
+ * ```
26
+ */
27
+ // ============================================================================
28
+ // Type Guards
29
+ // ============================================================================
30
+ /**
31
+ * Type guard to check if a GitObject is a BlobObject.
32
+ *
33
+ * @description
34
+ * Narrows the type of a GitObject to BlobObject based on the type field.
35
+ *
36
+ * @param obj - The Git object to check
37
+ * @returns True if the object is a blob, false otherwise
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const obj: GitObject = getObject(sha)
42
+ * if (isBlob(obj)) {
43
+ * // obj is now typed as BlobObject
44
+ * const content = new TextDecoder().decode(obj.data)
45
+ * }
46
+ * ```
47
+ */
2
48
  export function isBlob(obj) {
3
49
  return obj.type === 'blob';
4
50
  }
51
+ /**
52
+ * Type guard to check if a GitObject is a TreeObject.
53
+ *
54
+ * @description
55
+ * Narrows the type of a GitObject to TreeObject based on the type field.
56
+ *
57
+ * @param obj - The Git object to check
58
+ * @returns True if the object is a tree, false otherwise
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const obj: GitObject = getObject(sha)
63
+ * if (isTree(obj)) {
64
+ * // obj is now typed as TreeObject
65
+ * for (const entry of obj.entries) {
66
+ * console.log(entry.name, entry.mode)
67
+ * }
68
+ * }
69
+ * ```
70
+ */
5
71
  export function isTree(obj) {
6
72
  return obj.type === 'tree';
7
73
  }
74
+ /**
75
+ * Type guard to check if a GitObject is a CommitObject.
76
+ *
77
+ * @description
78
+ * Narrows the type of a GitObject to CommitObject based on the type field.
79
+ *
80
+ * @param obj - The Git object to check
81
+ * @returns True if the object is a commit, false otherwise
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const obj: GitObject = getObject(sha)
86
+ * if (isCommit(obj)) {
87
+ * // obj is now typed as CommitObject
88
+ * console.log(obj.message, obj.author.name)
89
+ * }
90
+ * ```
91
+ */
8
92
  export function isCommit(obj) {
9
93
  return obj.type === 'commit';
10
94
  }
95
+ /**
96
+ * Type guard to check if a GitObject is a TagObject.
97
+ *
98
+ * @description
99
+ * Narrows the type of a GitObject to TagObject based on the type field.
100
+ *
101
+ * @param obj - The Git object to check
102
+ * @returns True if the object is a tag, false otherwise
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const obj: GitObject = getObject(sha)
107
+ * if (isTag(obj)) {
108
+ * // obj is now typed as TagObject
109
+ * console.log(obj.name, obj.message)
110
+ * }
111
+ * ```
112
+ */
11
113
  export function isTag(obj) {
12
114
  return obj.type === 'tag';
13
115
  }
14
- // Helper functions
116
+ // ============================================================================
117
+ // Helper Functions (internal)
118
+ // ============================================================================
15
119
  const encoder = new TextEncoder();
16
120
  const decoder = new TextDecoder();
121
+ /**
122
+ * Convert a hexadecimal string to a Uint8Array.
123
+ *
124
+ * @param hex - Hexadecimal string (must have even length)
125
+ * @returns Binary representation as Uint8Array
126
+ * @internal
127
+ */
17
128
  function hexToBytes(hex) {
18
129
  const bytes = new Uint8Array(hex.length / 2);
19
130
  for (let i = 0; i < hex.length; i += 2) {
@@ -21,12 +132,35 @@ function hexToBytes(hex) {
21
132
  }
22
133
  return bytes;
23
134
  }
135
+ /**
136
+ * Convert a Uint8Array to a lowercase hexadecimal string.
137
+ *
138
+ * @param bytes - Binary data to convert
139
+ * @returns Lowercase hexadecimal string
140
+ * @internal
141
+ */
24
142
  function bytesToHex(bytes) {
25
143
  return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
26
144
  }
145
+ /**
146
+ * Format an Author object as a Git author/committer/tagger line.
147
+ *
148
+ * @param prefix - Line prefix ('author', 'committer', or 'tagger')
149
+ * @param author - Author information
150
+ * @returns Formatted line string
151
+ * @internal
152
+ */
27
153
  function formatAuthor(prefix, author) {
28
154
  return `${prefix} ${author.name} <${author.email}> ${author.timestamp} ${author.timezone}`;
29
155
  }
156
+ /**
157
+ * Parse a Git author/committer/tagger line into an Author object.
158
+ *
159
+ * @param line - The full line including prefix
160
+ * @returns Parsed Author object
161
+ * @throws Error if the line format is invalid
162
+ * @internal
163
+ */
30
164
  function parseAuthorLine(line) {
31
165
  // Format: "author Name <email> timestamp timezone"
32
166
  // or "committer Name <email> timestamp timezone"
@@ -42,7 +176,29 @@ function parseAuthorLine(line) {
42
176
  timezone: match[4]
43
177
  };
44
178
  }
45
- // Serialization
179
+ // ============================================================================
180
+ // Serialization Functions
181
+ // ============================================================================
182
+ /**
183
+ * Serialize raw blob data into Git blob object format.
184
+ *
185
+ * @description
186
+ * Creates a complete Git blob object with header: "blob {size}\0{content}"
187
+ * This format is used for hashing and storage.
188
+ *
189
+ * @param data - Raw file content as binary data
190
+ * @returns Complete blob object with Git header
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const content = new TextEncoder().encode('Hello, World!')
195
+ * const blob = serializeBlob(content)
196
+ * // blob contains: "blob 13\0Hello, World!"
197
+ *
198
+ * // Hash it to get the SHA
199
+ * const sha = await sha1(blob)
200
+ * ```
201
+ */
46
202
  export function serializeBlob(data) {
47
203
  // Git format: "blob <size>\0<content>"
48
204
  const header = encoder.encode(`blob ${data.length}\0`);
@@ -51,6 +207,27 @@ export function serializeBlob(data) {
51
207
  result.set(data, header.length);
52
208
  return result;
53
209
  }
210
+ /**
211
+ * Serialize tree entries into Git tree object format.
212
+ *
213
+ * @description
214
+ * Creates a complete Git tree object with header and sorted entries.
215
+ * Each entry format: "{mode} {name}\0{20-byte-sha}"
216
+ * Entries are sorted by name with directories treated as having trailing slashes.
217
+ *
218
+ * @param entries - Array of tree entries to serialize
219
+ * @returns Complete tree object with Git header
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * const entries: TreeEntry[] = [
224
+ * { mode: '100644', name: 'file.txt', sha: 'abc...' },
225
+ * { mode: '040000', name: 'src', sha: 'def...' }
226
+ * ]
227
+ * const tree = serializeTree(entries)
228
+ * const sha = await sha1(tree)
229
+ * ```
230
+ */
54
231
  export function serializeTree(entries) {
55
232
  // Git format: "tree <size>\0<entries>"
56
233
  // Each entry: "<mode> <name>\0<20-byte-sha>"
@@ -85,6 +262,28 @@ export function serializeTree(entries) {
85
262
  result.set(content, header.length);
86
263
  return result;
87
264
  }
265
+ /**
266
+ * Serialize commit data into Git commit object format.
267
+ *
268
+ * @description
269
+ * Creates a complete Git commit object with header and formatted content.
270
+ * The content includes tree SHA, parent SHAs, author, committer, and message.
271
+ *
272
+ * @param commit - Commit data (without 'type' and 'data' fields)
273
+ * @returns Complete commit object with Git header
274
+ *
275
+ * @example
276
+ * ```typescript
277
+ * const commit = serializeCommit({
278
+ * tree: 'abc123...',
279
+ * parents: ['parent1...'],
280
+ * author: { name: 'Alice', email: 'alice@example.com', timestamp: 1704067200, timezone: '+0000' },
281
+ * committer: { name: 'Alice', email: 'alice@example.com', timestamp: 1704067200, timezone: '+0000' },
282
+ * message: 'Initial commit'
283
+ * })
284
+ * const sha = await sha1(commit)
285
+ * ```
286
+ */
88
287
  export function serializeCommit(commit) {
89
288
  // Git format: "commit <size>\0<content>"
90
289
  // Content:
@@ -107,6 +306,28 @@ export function serializeCommit(commit) {
107
306
  const header = `commit ${encoder.encode(content).length}\0`;
108
307
  return encoder.encode(header + content);
109
308
  }
309
+ /**
310
+ * Serialize tag data into Git tag object format.
311
+ *
312
+ * @description
313
+ * Creates a complete Git tag object with header and formatted content.
314
+ * The content includes object SHA, object type, tag name, tagger (optional), and message.
315
+ *
316
+ * @param tag - Tag data (without 'type' and 'data' fields)
317
+ * @returns Complete tag object with Git header
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * const tag = serializeTag({
322
+ * object: 'commitsha...',
323
+ * objectType: 'commit',
324
+ * name: 'v1.0.0',
325
+ * tagger: { name: 'Bob', email: 'bob@example.com', timestamp: 1704067200, timezone: '+0000' },
326
+ * message: 'Release v1.0.0'
327
+ * })
328
+ * const sha = await sha1(tag)
329
+ * ```
330
+ */
110
331
  export function serializeTag(tag) {
111
332
  // Git format: "tag <size>\0<content>"
112
333
  // Content:
@@ -129,7 +350,27 @@ export function serializeTag(tag) {
129
350
  const header = `tag ${encoder.encode(content).length}\0`;
130
351
  return encoder.encode(header + content);
131
352
  }
132
- // Deserialization
353
+ // ============================================================================
354
+ // Deserialization (Parsing) Functions
355
+ // ============================================================================
356
+ /**
357
+ * Parse a Git blob object from its serialized format.
358
+ *
359
+ * @description
360
+ * Parses a complete Git blob object (with header) back into a BlobObject.
361
+ * Validates the header format and extracts the content.
362
+ *
363
+ * @param data - Complete blob object data including Git header
364
+ * @returns Parsed BlobObject
365
+ * @throws Error if the data is not a valid blob object (missing null byte or invalid header)
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const rawBlob = await storage.getObject(sha)
370
+ * const blob = parseBlob(rawBlob)
371
+ * const content = new TextDecoder().decode(blob.data)
372
+ * ```
373
+ */
133
374
  export function parseBlob(data) {
134
375
  // Git format: "blob <size>\0<content>"
135
376
  // Find the null byte to separate header from content
@@ -148,6 +389,26 @@ export function parseBlob(data) {
148
389
  data: content
149
390
  };
150
391
  }
392
+ /**
393
+ * Parse a Git tree object from its serialized format.
394
+ *
395
+ * @description
396
+ * Parses a complete Git tree object (with header) back into a TreeObject.
397
+ * Extracts all tree entries with their modes, names, and SHA references.
398
+ *
399
+ * @param data - Complete tree object data including Git header
400
+ * @returns Parsed TreeObject with entries array
401
+ * @throws Error if the data is not a valid tree object (missing null byte or invalid header)
402
+ *
403
+ * @example
404
+ * ```typescript
405
+ * const rawTree = await storage.getObject(sha)
406
+ * const tree = parseTree(rawTree)
407
+ * for (const entry of tree.entries) {
408
+ * console.log(`${entry.mode} ${entry.name} ${entry.sha}`)
409
+ * }
410
+ * ```
411
+ */
151
412
  export function parseTree(data) {
152
413
  // Git format: "tree <size>\0<entries>"
153
414
  // Each entry: "<mode> <name>\0<20-byte-sha>"
@@ -184,6 +445,26 @@ export function parseTree(data) {
184
445
  entries
185
446
  };
186
447
  }
448
+ /**
449
+ * Parse a Git commit object from its serialized format.
450
+ *
451
+ * @description
452
+ * Parses a complete Git commit object (with header) back into a CommitObject.
453
+ * Extracts tree SHA, parent SHAs, author, committer, and message.
454
+ *
455
+ * @param data - Complete commit object data including Git header
456
+ * @returns Parsed CommitObject
457
+ * @throws Error if the data is not a valid commit object (missing null byte, invalid header, or missing author/committer)
458
+ *
459
+ * @example
460
+ * ```typescript
461
+ * const rawCommit = await storage.getObject(sha)
462
+ * const commit = parseCommit(rawCommit)
463
+ * console.log(`Author: ${commit.author.name}`)
464
+ * console.log(`Message: ${commit.message}`)
465
+ * console.log(`Parents: ${commit.parents.length}`)
466
+ * ```
467
+ */
187
468
  export function parseCommit(data) {
188
469
  // Git format: "commit <size>\0<content>"
189
470
  const nullIndex = data.indexOf(0);
@@ -236,6 +517,26 @@ export function parseCommit(data) {
236
517
  message
237
518
  };
238
519
  }
520
+ /**
521
+ * Parse a Git tag object from its serialized format.
522
+ *
523
+ * @description
524
+ * Parses a complete Git tag object (with header) back into a TagObject.
525
+ * Extracts object SHA, object type, tag name, tagger, and message.
526
+ *
527
+ * @param data - Complete tag object data including Git header
528
+ * @returns Parsed TagObject
529
+ * @throws Error if the data is not a valid tag object (missing null byte, invalid header, or missing tagger)
530
+ *
531
+ * @example
532
+ * ```typescript
533
+ * const rawTag = await storage.getObject(sha)
534
+ * const tag = parseTag(rawTag)
535
+ * console.log(`Tag: ${tag.name}`)
536
+ * console.log(`Points to: ${tag.object} (${tag.objectType})`)
537
+ * console.log(`Message: ${tag.message}`)
538
+ * ```
539
+ */
239
540
  export function parseTag(data) {
240
541
  // Git format: "tag <size>\0<content>"
241
542
  const nullIndex = data.indexOf(0);
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/types/objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/types/objects.ts"],"names":[],"mappings":"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"}