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,97 +1,259 @@
1
1
  /**
2
- * Commit Creation Operations
2
+ * @fileoverview Commit Creation Operations
3
3
  *
4
4
  * Provides functionality for creating, formatting, and amending git commits.
5
5
  * Supports author/committer info, parent handling, GPG signing, and message formatting.
6
+ *
7
+ * ## Features
8
+ *
9
+ * - Create new commits with full metadata
10
+ * - Amend existing commits
11
+ * - GPG signature support
12
+ * - Message formatting and validation
13
+ * - Empty commit detection
14
+ * - Author/committer timestamp handling
15
+ *
16
+ * ## Usage Example
17
+ *
18
+ * ```typescript
19
+ * import { createCommit, formatCommitMessage } from './ops/commit'
20
+ *
21
+ * // Create a commit
22
+ * const result = await createCommit(store, {
23
+ * message: 'Add new feature',
24
+ * tree: treeHash,
25
+ * parents: [parentHash],
26
+ * author: { name: 'John Doe', email: 'john@example.com' }
27
+ * })
28
+ *
29
+ * console.log('Created commit:', result.sha)
30
+ * ```
31
+ *
32
+ * @module ops/commit
6
33
  */
7
34
  import { Author, CommitObject } from '../types/objects';
8
35
  import type { BasicObjectStore as ObjectStore } from '../types/storage';
9
36
  /**
10
- * Author/Committer information for creating commits
37
+ * Author/Committer information for creating commits.
38
+ *
39
+ * Represents the identity and timestamp for a commit author or committer.
40
+ * Timestamp and timezone are optional and will be auto-filled if not provided.
41
+ *
42
+ * @interface CommitAuthor
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const author: CommitAuthor = {
47
+ * name: 'Jane Developer',
48
+ * email: 'jane@example.com',
49
+ * timestamp: Math.floor(Date.now() / 1000),
50
+ * timezone: '-0800'
51
+ * }
52
+ * ```
11
53
  */
12
54
  export interface CommitAuthor {
13
- /** Author's name */
55
+ /** Author's display name */
14
56
  name: string;
15
57
  /** Author's email address */
16
58
  email: string;
17
- /** Unix timestamp in seconds */
59
+ /**
60
+ * Unix timestamp in seconds.
61
+ * If not provided, current time will be used.
62
+ */
18
63
  timestamp?: number;
19
- /** Timezone offset (e.g., '+0000', '-0500', '+0530') */
64
+ /**
65
+ * Timezone offset string (e.g., '+0000', '-0500', '+0530').
66
+ * If not provided, local timezone will be used.
67
+ */
20
68
  timezone?: string;
21
69
  }
22
70
  /**
23
- * GPG signature options for signed commits
71
+ * Options for GPG signing commits.
72
+ *
73
+ * @interface SigningOptions
24
74
  */
25
75
  export interface SigningOptions {
26
- /** Whether to sign the commit */
76
+ /**
77
+ * Whether to sign the commit.
78
+ * Must be true for signing to occur.
79
+ */
27
80
  sign: boolean;
28
- /** GPG key ID to use for signing (optional, uses default if not specified) */
81
+ /**
82
+ * GPG key ID to use for signing.
83
+ * If not specified, the default key will be used.
84
+ */
29
85
  keyId?: string;
30
- /** Callback to perform the actual signing */
86
+ /**
87
+ * Callback function that performs the actual signing.
88
+ * Receives the commit data and should return the signature string.
89
+ *
90
+ * @param data - The commit data to sign
91
+ * @returns Promise resolving to the signature string
92
+ */
31
93
  signer?: (data: Uint8Array) => Promise<string>;
32
94
  }
33
95
  /**
34
- * Options for creating a commit
96
+ * Options for creating a new commit.
97
+ *
98
+ * @interface CommitOptions
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const options: CommitOptions = {
103
+ * message: 'Fix critical bug\n\nThis fixes issue #123',
104
+ * tree: 'abc123...', // 40-char SHA
105
+ * parents: ['def456...'],
106
+ * author: {
107
+ * name: 'Developer',
108
+ * email: 'dev@example.com'
109
+ * },
110
+ * allowEmpty: false
111
+ * }
112
+ * ```
35
113
  */
36
114
  export interface CommitOptions {
37
- /** Commit message (required) */
115
+ /**
116
+ * The commit message (required).
117
+ * Should follow Git conventions: short subject, blank line, body.
118
+ */
38
119
  message: string;
39
- /** Tree SHA for the commit (required) */
120
+ /**
121
+ * Tree SHA for the commit (required).
122
+ * This is the root tree object representing the repository state.
123
+ */
40
124
  tree: string;
41
- /** Parent commit SHA(s) - empty array for initial commit, one for normal, multiple for merge */
125
+ /**
126
+ * Parent commit SHA(s).
127
+ * - Empty array for initial commit
128
+ * - Single SHA for normal commit
129
+ * - Multiple SHAs for merge commit
130
+ */
42
131
  parents?: string[];
43
- /** Author information */
132
+ /**
133
+ * Author information (required).
134
+ * The person who originally wrote the code.
135
+ */
44
136
  author?: CommitAuthor;
45
- /** Committer information (defaults to author if not specified) */
137
+ /**
138
+ * Committer information.
139
+ * The person who created the commit. Defaults to author if not specified.
140
+ */
46
141
  committer?: CommitAuthor;
47
142
  /** GPG signing options */
48
143
  signing?: SigningOptions;
49
- /** Allow creating empty commits (no changes from parent) */
144
+ /**
145
+ * Allow creating empty commits (no changes from parent).
146
+ * @default true
147
+ */
50
148
  allowEmpty?: boolean;
51
- /** Whether this is an amend of a previous commit */
149
+ /**
150
+ * Whether this is an amend of a previous commit.
151
+ * @internal
152
+ */
52
153
  amend?: boolean;
53
154
  }
54
155
  /**
55
- * Options for amending a commit
156
+ * Options for amending an existing commit.
157
+ *
158
+ * All fields are optional - only specified fields will be changed.
159
+ *
160
+ * @interface AmendOptions
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * // Change just the message
165
+ * await amendCommit(store, commitSha, {
166
+ * message: 'Better commit message'
167
+ * })
168
+ *
169
+ * // Change author and reset date
170
+ * await amendCommit(store, commitSha, {
171
+ * author: { name: 'New Author', email: 'new@example.com' },
172
+ * resetAuthorDate: true
173
+ * })
174
+ * ```
56
175
  */
57
176
  export interface AmendOptions {
58
- /** New commit message (if not provided, keeps the original) */
177
+ /**
178
+ * New commit message.
179
+ * If not provided, keeps the original message.
180
+ */
59
181
  message?: string;
60
- /** New tree SHA (if not provided, keeps the original) */
182
+ /**
183
+ * New tree SHA.
184
+ * If not provided, keeps the original tree.
185
+ */
61
186
  tree?: string;
62
- /** New author info (if not provided, keeps the original) */
187
+ /**
188
+ * New author information.
189
+ * If not provided, keeps the original author.
190
+ */
63
191
  author?: CommitAuthor;
64
- /** New committer info (defaults to current user with current time) */
192
+ /**
193
+ * New committer information.
194
+ * Defaults to current user with current time if not provided.
195
+ */
65
196
  committer?: CommitAuthor;
66
- /** Whether to reset author timestamp to current time */
197
+ /**
198
+ * Whether to reset the author timestamp to current time.
199
+ * Only applies if author is not explicitly provided.
200
+ */
67
201
  resetAuthorDate?: boolean;
68
202
  /** GPG signing options */
69
203
  signing?: SigningOptions;
70
204
  }
71
205
  /**
72
- * Options for formatting commit messages
206
+ * Options for formatting commit messages.
207
+ *
208
+ * @interface FormatOptions
73
209
  */
74
210
  export interface FormatOptions {
75
- /** Strip leading/trailing whitespace from lines */
211
+ /**
212
+ * Strip leading/trailing whitespace from lines.
213
+ * @default true (for most cleanup modes)
214
+ */
76
215
  stripWhitespace?: boolean;
77
- /** Strip comment lines (starting with #) */
216
+ /**
217
+ * Strip comment lines (starting with comment character).
218
+ * @default true (for 'strip' mode)
219
+ */
78
220
  stripComments?: boolean;
79
- /** Comment character (defaults to '#') */
221
+ /**
222
+ * Character that starts comment lines.
223
+ * @default '#'
224
+ */
80
225
  commentChar?: string;
81
- /** Wrap message body at column (0 = no wrap) */
226
+ /**
227
+ * Wrap message body at this column width.
228
+ * Set to 0 to disable wrapping.
229
+ * @default 0
230
+ */
82
231
  wrapColumn?: number;
83
- /** Clean up mode: 'verbatim' | 'whitespace' | 'strip' | 'scissors' | 'default' */
232
+ /**
233
+ * Message cleanup mode:
234
+ * - 'verbatim': Keep message exactly as-is
235
+ * - 'whitespace': Collapse whitespace, strip trailing lines
236
+ * - 'strip': Also remove comment lines
237
+ * - 'scissors': Remove everything after scissors line
238
+ * - 'default': Same as 'strip' but preserves initial blank lines
239
+ * @default 'default'
240
+ */
84
241
  cleanup?: 'verbatim' | 'whitespace' | 'strip' | 'scissors' | 'default';
85
242
  }
86
243
  /**
87
- * Result of creating a commit
244
+ * Result of creating a commit.
245
+ *
246
+ * @interface CommitResult
88
247
  */
89
248
  export interface CommitResult {
90
249
  /** SHA of the created commit */
91
250
  sha: string;
92
251
  /** The commit object */
93
252
  commit: CommitObject;
94
- /** Whether the commit was actually created (false if empty and allowEmpty=false) */
253
+ /**
254
+ * Whether the commit was actually created.
255
+ * Will be false if empty and allowEmpty=false.
256
+ */
95
257
  created: boolean;
96
258
  }
97
259
  /**
@@ -100,61 +262,135 @@ export interface CommitResult {
100
262
  */
101
263
  export type { ObjectStore };
102
264
  /**
103
- * Get the current timezone offset string
265
+ * Gets the current timezone offset string.
104
266
  *
105
- * @returns Timezone offset like '+0000' or '-0500'
267
+ * Returns the local timezone in Git's format (e.g., '+0000', '-0500').
268
+ *
269
+ * @returns Timezone offset string
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * const tz = getCurrentTimezone()
274
+ * // Returns something like '-0800' for Pacific time
275
+ * ```
106
276
  */
107
277
  export declare function getCurrentTimezone(): string;
108
278
  /**
109
- * Format a timestamp and timezone as git author/committer format
279
+ * Formats a timestamp and timezone as git author/committer format.
110
280
  *
111
281
  * @param timestamp - Unix timestamp in seconds
112
282
  * @param timezone - Timezone offset string (e.g., '+0000', '-0500')
113
283
  * @returns Formatted string like "1234567890 +0000"
284
+ *
285
+ * @example
286
+ * ```typescript
287
+ * const formatted = formatTimestamp(1609459200, '+0000')
288
+ * // Returns "1609459200 +0000"
289
+ * ```
114
290
  */
115
291
  export declare function formatTimestamp(timestamp: number, timezone: string): string;
116
292
  /**
117
- * Parse a git timestamp string
293
+ * Parses a git timestamp string.
118
294
  *
119
295
  * @param timestampStr - Timestamp string like "1234567890 +0000"
120
- * @returns Object with timestamp and timezone
296
+ * @returns Object with parsed timestamp and timezone
297
+ *
298
+ * @throws {Error} If the format is invalid
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const { timestamp, timezone } = parseTimestamp("1609459200 -0500")
303
+ * // timestamp = 1609459200, timezone = "-0500"
304
+ * ```
121
305
  */
122
306
  export declare function parseTimestamp(timestampStr: string): {
123
307
  timestamp: number;
124
308
  timezone: string;
125
309
  };
126
310
  /**
127
- * Create an Author object with current timestamp
311
+ * Creates an Author object with current timestamp.
312
+ *
313
+ * Convenience function for creating author information with
314
+ * the current time and local timezone.
128
315
  *
129
316
  * @param name - Author name
130
317
  * @param email - Author email
131
318
  * @param timezone - Optional timezone (defaults to local timezone)
132
319
  * @returns Author object with current timestamp
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * const author = createAuthor('John Doe', 'john@example.com')
324
+ * // { name: 'John Doe', email: 'john@example.com', timestamp: <now>, timezone: <local> }
325
+ * ```
133
326
  */
134
327
  export declare function createAuthor(name: string, email: string, timezone?: string): Author;
135
328
  /**
136
- * Format a commit message according to git conventions
329
+ * Formats a commit message according to git conventions.
330
+ *
331
+ * Applies various transformations based on the cleanup mode:
332
+ * - Strips comments
333
+ * - Normalizes whitespace
334
+ * - Wraps long lines
335
+ * - Removes scissors markers
137
336
  *
138
337
  * @param message - The raw commit message
139
338
  * @param options - Formatting options
140
339
  * @returns The formatted commit message
340
+ *
341
+ * @example
342
+ * ```typescript
343
+ * // Clean up a message
344
+ * const formatted = formatCommitMessage(`
345
+ * Add feature
346
+ *
347
+ * # This is a comment
348
+ * Long description here
349
+ * `, { cleanup: 'strip' })
350
+ * // Returns: "Add feature\n\nLong description here"
351
+ * ```
141
352
  */
142
353
  export declare function formatCommitMessage(message: string, options?: FormatOptions): string;
143
354
  /**
144
- * Parse a commit message into subject and body
355
+ * Parses a commit message into subject and body.
356
+ *
357
+ * The subject is the first line. The body starts after the first
358
+ * blank line following the subject.
145
359
  *
146
360
  * @param message - The commit message
147
361
  * @returns Object with subject (first line) and body (rest)
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * const { subject, body } = parseCommitMessage(
366
+ * 'Add feature\n\nThis adds the new feature'
367
+ * )
368
+ * // subject = 'Add feature'
369
+ * // body = 'This adds the new feature'
370
+ * ```
148
371
  */
149
372
  export declare function parseCommitMessage(message: string): {
150
373
  subject: string;
151
374
  body: string;
152
375
  };
153
376
  /**
154
- * Validate a commit message format
377
+ * Validates a commit message format.
378
+ *
379
+ * Checks for common issues and provides warnings for style violations.
380
+ * Returns errors for critical issues that would prevent commit creation.
155
381
  *
156
382
  * @param message - The commit message to validate
157
- * @returns Object with valid flag and any error messages
383
+ * @returns Object with valid flag and any error/warning messages
384
+ *
385
+ * @example
386
+ * ```typescript
387
+ * const result = validateCommitMessage('Fix bug.')
388
+ * // {
389
+ * // valid: true,
390
+ * // errors: [],
391
+ * // warnings: ['Subject line should not end with a period']
392
+ * // }
393
+ * ```
158
394
  */
159
395
  export declare function validateCommitMessage(message: string): {
160
396
  valid: boolean;
@@ -162,60 +398,158 @@ export declare function validateCommitMessage(message: string): {
162
398
  warnings: string[];
163
399
  };
164
400
  /**
165
- * Check if a commit is signed
401
+ * Checks if a commit is signed.
166
402
  *
167
403
  * @param commit - The commit object
168
404
  * @returns true if the commit has a GPG signature
405
+ *
406
+ * @example
407
+ * ```typescript
408
+ * if (isCommitSigned(commit)) {
409
+ * const sig = extractCommitSignature(commit)
410
+ * // Verify signature...
411
+ * }
412
+ * ```
169
413
  */
170
414
  export declare function isCommitSigned(commit: CommitObject): boolean;
171
415
  /**
172
- * Extract the GPG signature from a signed commit
416
+ * Extracts the GPG signature from a signed commit.
173
417
  *
174
418
  * @param commit - The commit object
175
- * @returns The signature if present, null otherwise
419
+ * @returns The signature string if present, null otherwise
176
420
  */
177
421
  export declare function extractCommitSignature(commit: CommitObject): string | null;
178
422
  /**
179
- * Add a GPG signature to a commit
423
+ * Adds a GPG signature to a commit.
424
+ *
425
+ * Creates a new commit object with the signature attached.
426
+ * Does not modify the original commit object.
180
427
  *
181
428
  * @param commit - The unsigned commit object
182
- * @param signature - The GPG signature
429
+ * @param signature - The GPG signature string
183
430
  * @returns The signed commit object
184
431
  */
185
432
  export declare function addSignatureToCommit(commit: CommitObject, signature: string): CommitObject;
186
433
  /**
187
- * Check if a commit would be empty (same tree as parent)
434
+ * Checks if a commit would be empty (same tree as parent).
435
+ *
436
+ * A commit is considered empty if its tree SHA is identical to
437
+ * its parent's tree SHA, meaning no files were changed.
188
438
  *
189
439
  * @param store - The object store for reading objects
190
440
  * @param tree - The tree SHA for the new commit
191
441
  * @param parent - The parent commit SHA (or null for initial commit)
192
442
  * @returns true if the commit would have no changes
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * const isEmpty = await isEmptyCommit(store, newTreeSha, parentSha)
447
+ * if (isEmpty && !options.allowEmpty) {
448
+ * throw new Error('Nothing to commit')
449
+ * }
450
+ * ```
193
451
  */
194
452
  export declare function isEmptyCommit(store: ObjectStore, tree: string, parent: string | null): Promise<boolean>;
195
453
  /**
196
- * Create a new commit from raw data without storing
454
+ * Builds a commit object from options without storing it.
455
+ *
456
+ * Useful for creating commit objects for inspection or testing
457
+ * without actually persisting them to the object store.
197
458
  *
198
459
  * @param options - Commit creation options
199
460
  * @returns The commit object (not stored)
461
+ *
462
+ * @example
463
+ * ```typescript
464
+ * const commit = buildCommitObject({
465
+ * message: 'Test commit',
466
+ * tree: treeSha,
467
+ * parents: [parentSha],
468
+ * author: { name: 'Test', email: 'test@example.com' }
469
+ * })
470
+ *
471
+ * console.log(commit.message) // 'Test commit'
472
+ * ```
200
473
  */
201
474
  export declare function buildCommitObject(options: CommitOptions): CommitObject;
202
475
  /**
203
- * Create a new commit
476
+ * Creates a new commit.
477
+ *
478
+ * Creates a commit object with the specified options and stores it
479
+ * in the object store. Handles validation, empty commit detection,
480
+ * and optional GPG signing.
204
481
  *
205
482
  * @param store - The object store for reading/writing objects
206
483
  * @param options - Commit creation options
207
484
  * @returns The created commit result with SHA and commit object
208
- * @throws Error if required options are missing or invalid
485
+ *
486
+ * @throws {Error} If tree SHA is missing or invalid
487
+ * @throws {Error} If author is missing or invalid
488
+ * @throws {Error} If commit message is empty
489
+ * @throws {Error} If commit would be empty and allowEmpty is false
490
+ *
491
+ * @example
492
+ * ```typescript
493
+ * // Basic commit
494
+ * const result = await createCommit(store, {
495
+ * message: 'Add new feature',
496
+ * tree: treeSha,
497
+ * parents: [headSha],
498
+ * author: { name: 'John', email: 'john@example.com' }
499
+ * })
500
+ *
501
+ * // Signed commit
502
+ * const signedResult = await createCommit(store, {
503
+ * message: 'Signed commit',
504
+ * tree: treeSha,
505
+ * parents: [headSha],
506
+ * author: { name: 'John', email: 'john@example.com' },
507
+ * signing: {
508
+ * sign: true,
509
+ * signer: async (data) => myGpgSign(data)
510
+ * }
511
+ * })
512
+ *
513
+ * // Initial commit (no parents)
514
+ * const initialResult = await createCommit(store, {
515
+ * message: 'Initial commit',
516
+ * tree: treeSha,
517
+ * parents: [],
518
+ * author: { name: 'John', email: 'john@example.com' }
519
+ * })
520
+ * ```
209
521
  */
210
522
  export declare function createCommit(store: ObjectStore, options: CommitOptions): Promise<CommitResult>;
211
523
  /**
212
- * Amend an existing commit
524
+ * Amends an existing commit.
525
+ *
526
+ * Creates a new commit that replaces the specified commit.
527
+ * The original commit is not modified. Only specified fields
528
+ * in options will be changed from the original.
529
+ *
530
+ * Note: This does not update any refs. The caller is responsible
531
+ * for updating HEAD or branch refs to point to the new commit.
213
532
  *
214
533
  * @param store - The object store for reading/writing objects
215
534
  * @param commitSha - SHA of the commit to amend
216
- * @param options - Amendment options
535
+ * @param options - Amendment options (only specified fields are changed)
217
536
  * @returns The new commit result (original commit is not modified)
218
- * @throws Error if the commit doesn't exist or options are invalid
537
+ *
538
+ * @throws {Error} If the commit doesn't exist
539
+ *
540
+ * @example
541
+ * ```typescript
542
+ * // Change just the message
543
+ * const newCommit = await amendCommit(store, headSha, {
544
+ * message: 'Better commit message'
545
+ * })
546
+ *
547
+ * // Update tree and committer
548
+ * const newCommit = await amendCommit(store, headSha, {
549
+ * tree: newTreeSha,
550
+ * committer: { name: 'New Name', email: 'new@example.com' }
551
+ * })
552
+ * ```
219
553
  */
220
554
  export declare function amendCommit(store: ObjectStore, commitSha: string, options: AmendOptions): Promise<CommitResult>;
221
555
  //# sourceMappingURL=commit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/ops/commit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,sEAAsE;IACtE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,wBAAwB;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,oFAAoF;IACpF,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;GAGG;AACH,YAAY,EAAE,WAAW,EAAE,CAAA;AAW3B;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CASA;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAkCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAoFR;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAoBA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CA4BA;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAG1E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,YAAY,CAMd;AAgBD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,OAAO,CAAC,CAelB;AA+HD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAyBtE;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAkDvB;AA2FD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC,CA6CvB"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/ops/commit.ts"],"names":[],"mappings":"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"}