git-chopstick-core 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -233,7 +233,7 @@ try {
233
233
  | `reset` | `reset`, `resetPaths`, `unstageAll` | Reset operations |
234
234
  | `revert` | `revertCommit` | Revert a commit |
235
235
  | `rev-list` | `getAheadBehind`, `getBranchAheadBehind`, `revRange`, `revSymmetricDifference` | Commit range queries |
236
- | `rev-parse` | `getRepositoryType`, `getUpstreamRefForRef`, `getCurrentUpstreamRef` | Rev parsing |
236
+ | `rev-parse` | `getRepositoryType`, `getCurrentBranch`, `getUpstreamRefForRef`, `getCurrentUpstreamRef` | Rev parsing / branch detection |
237
237
  | `rm` | `removeConflictedFile` | Remove files |
238
238
  | `squash` | `squash` | Interactive rebase squashing |
239
239
  | `stage` | `stageManualConflictResolution`, `stageResolvedConflictFiles` | Stage conflict resolutions |
@@ -279,12 +279,11 @@ try {
279
279
 
280
280
  This library is extracted directly from [GitHub Desktop](https://github.com/desktop/desktop), a mature Electron application. Some subsystems that depend on GitHub Desktop's specific runtime environment have been extracted as **stubs** — they compile and type-check correctly but don't provide real functionality:
281
281
 
282
- ### 🟡 Progress Reporting (`src/lib/progress/`)
282
+ ### 🟢 Progress Reporting (`src/lib/progress/`)
283
283
 
284
- The progress parsers (`CheckoutProgressParser`, `FetchProgressParser`, `PullProgressParser`, `PushProgressParser`, `CloneProgressParser`, `RevertProgressParser`) are **stubbed**. Their `parse()` methods always return `null`, and `executionOptionsWithProgress` passes options through unchanged. This means:
284
+ The progress parsers (`CheckoutProgressParser`, `FetchProgressParser`, `PullProgressParser`, `PushProgressParser`, `CloneProgressParser`, `RevertProgressParser`) now have real `parse()` methods that extract percentage and description from git's stderr output. Progress callbacks receive updates for clone, fetch, push, pull, and checkout operations.
285
285
 
286
- - Progress callbacks for clone, fetch, push, pull, and checkout will fire the initial `0%` callback but **never receive updates**
287
- - Long-running operations will complete correctly but without intermediate progress reporting
286
+ Note: `git revert` does not produce progress output, so `RevertProgressParser` still returns `null` from its `parse()` method this is correct behavior.
288
287
 
289
288
  ### 🟡 Git Hook Interception (`src/lib/hooks/`)
290
289
 
@@ -294,13 +293,9 @@ The progress parsers (`CheckoutProgressParser`, `FetchProgressParser`, `PullProg
294
293
 
295
294
  `withTrampolineEnv` is a **stub** that calls through without setting up the Git LFS trampoline environment. Git LFS operations may not work correctly as a result.
296
295
 
297
- ### 🟡 No Tests
296
+ ### 🟢 Integration Tests
298
297
 
299
- There are no unit or integration tests yet. While the code is a faithful extraction of the stable GitHub Desktop codebase, there are no automated tests to verify the extraction.
300
-
301
- ### 🟡 Not Published on npm
302
-
303
- The library is currently available only via git URL or `file:` dependency. No npm release has been published.
298
+ Integration tests are available in `src/__tests__/integration.test.ts` and run against real git repositories in temp directories. Run `npm test` to execute them.
304
299
 
305
300
  ---
306
301
 
@@ -322,9 +317,9 @@ src/
322
317
  └── lib/ ← Utilities: parsers, progress reporting, hooks, fs helpers
323
318
  ├── diff-parser.ts ← Full diff parser (text/binary/image)
324
319
  ├── status-parser.ts ← Porcelain v2 status parser
325
- ├── progress/ ← 🟡 Progress parsers (stubbed — see Limitations)
326
- ├── hooks/ ← 🟡 Git hook env (stubbed — see Limitations)
327
- └── trampoline/ ← 🟡 Git LFS trampoline (stubbed — see Limitations)
320
+ ├── progress/ ← 🟢 Progress parsers (real — see Known Limitations)
321
+ ├── hooks/ ← 🟡 Git hook env (stubbed — see Known Limitations)
322
+ └── trampoline/ ← 🟡 Git LFS trampoline (stubbed — see Known Limitations)
328
323
  ```
329
324
 
330
325
  ## Development
@@ -345,6 +340,47 @@ npx tsx examples/branch-operations.ts /path/to/repo
345
340
  npx tsx examples/create-commit.ts /path/to/repo
346
341
  ```
347
342
 
343
+ ## Status
344
+
345
+ > **Pre-1.0** — The public API (`exports` map, barrel exports, error types) is stabilizing but may see minor breaking changes before 1.0. See [CHANGELOG.md](./CHANGELOG.md) for version history. Tested with TypeScript 5.7+.
346
+
347
+ ## Consumption Patterns
348
+
349
+ > Upgrading from v0.1.4? See the [exec → git() migration guide](./docs/exec-to-git-migration.md) if you were using `exec()` from the public API.
350
+
351
+ ### Root barrel (recommended for most use cases)
352
+
353
+ ```typescript
354
+ // All 45+ git operations, domain models, error types
355
+ import { Repository, getStatus, createCommit, getBranches, merge, GitError, GitErrorCodes } from 'git-chopstick-core'
356
+ ```
357
+
358
+ ### Git subpath (low-level access)
359
+
360
+ ```typescript
361
+ // Low-level helpers (parse git errors, spawn streaming git processes)
362
+ import { parseError, spawnGit } from 'git-chopstick-core/git'
363
+
364
+ // Use git() from the root barrel for most operations
365
+ import { git } from 'git-chopstick-core'
366
+
367
+ const result = await git(['rev-parse', '--show-toplevel'], '/path/to/repo', 'my-op')
368
+ console.log(result.stdout)
369
+ ```
370
+
371
+ ### Models only
372
+
373
+ ```typescript
374
+ import { Commit, Branch, BranchType, AppFileStatusKind } from 'git-chopstick-core'
375
+ ```
376
+
377
+ ### Granular (for bundle size)
378
+
379
+ ```typescript
380
+ import { getCommits } from 'git-chopstick-core/git/log'
381
+ import { getBranches } from 'git-chopstick-core/git/for-each-ref'
382
+ ```
383
+
348
384
  ### Consumption Notes
349
385
 
350
386
  - **Compiled consumption** (recommended): Import from `'git-chopstick-core'` — the `exports` field in `package.json` points to the compiled output in `dist/`. Works with Node.js ESM and bundlers alike.
@@ -30,4 +30,4 @@ export declare function checkPatch(workTree: {
30
30
  *
31
31
  * @param selection The selection of changes from the diff to discard
32
32
  */
33
- export declare function discardChangesFromSelection(repository: Repository, filePath: string, diff: ITextDiff, selection: DiffSelection): Promise<void>;
33
+ export declare function discardChangesFromSelection(repository: Repository, filePath: string, _diff: ITextDiff, selection: DiffSelection): Promise<void>;
package/dist/git/apply.js CHANGED
@@ -88,7 +88,7 @@ export async function checkPatch(workTree, patch) {
88
88
  *
89
89
  * @param selection The selection of changes from the diff to discard
90
90
  */
91
- export async function discardChangesFromSelection(repository, filePath, diff, selection) {
91
+ export async function discardChangesFromSelection(repository, filePath, _diff, selection) {
92
92
  const file = new WorkingDirectoryFileChange(filePath, { kind: AppFileStatusKind.Modified }, selection);
93
93
  const patch = await formatPatchToDiscardChanges(repository, file);
94
94
  if (patch === null || patch === '') {
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/git/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/git/apply.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,4 @@ export declare function envForRemoteOperation(remoteUrl: string | null): Promise
48
48
  * @param resolve The method to use when resolving the proxy url,
49
49
  * defaults to `resolveGitProxy`
50
50
  */
51
- export declare function envForProxy(remoteUrl: string, env?: NodeJS.ProcessEnv, resolve?: (url: string) => Promise<string | undefined>): Promise<Record<string, string | undefined> | undefined>;
51
+ export declare function envForProxy(remoteUrl: string, env?: NodeJS.ProcessEnv, resolve?: (_url: string) => Promise<string | undefined>): Promise<Record<string, string | undefined> | undefined>;
@@ -58,7 +58,7 @@ export async function envForRemoteOperation(remoteUrl) {
58
58
  * @param resolve The method to use when resolving the proxy url,
59
59
  * defaults to `resolveGitProxy`
60
60
  */
61
- export async function envForProxy(remoteUrl, env = process.env, resolve = async (url) => resolveGitProxyFn() ?? undefined) {
61
+ export async function envForProxy(remoteUrl, env = process.env, resolve = async (_url) => resolveGitProxyFn() ?? undefined) {
62
62
  const protocolMatch = /^(https?):\/\//i.exec(remoteUrl);
63
63
  // We can only resolve and use a proxy for the protocols where cURL
64
64
  // would be involved (i.e http and https). git:// relies on ssh.
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/git/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAKlF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,WAAuB,EACvB,aAA6B;IAE7B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,GAAG,CAAA;IAC1B,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAwB;IAClE,OAAO;QACL,GAAG,oBAAoB,EAAE;QACzB,GAAG,CAAC,MAAM,WAAW,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;KAC1D,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG,EACpC,UAAwD,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,iBAAiB,EAAE,IAAI,SAAS;IAE/G,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEvD,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,kEAAkE;IAClE,8DAA8D;IAC9D,oEAAoE;IACpE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,CAAC,gBAAgB;IAE7D,6DAA6D;IAC7D,6DAA6D;IAC7D,2DAA2D;IAC3D,8DAA8D;IAC9D,aAAa;IACb,oEAAoE;IACpE,IAAI,WAAW,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,0CAA0C;IAC1C,+EAA+E;IAC/E,MAAM,MAAM,GAAG,GAAG,KAAK,QAAQ,CAAA,CAAC,4BAA4B;IAE5D,gEAAgE;IAChE,gDAAgD;IAChD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,2BAA2B,MAAM,cAAc,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/git/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAIlF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,WAAuB,EACvB,aAA6B;IAE7B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,GAAG,CAAA;IAC1B,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAwB;IAClE,OAAO;QACL,GAAG,oBAAoB,EAAE;QACzB,GAAG,CAAC,MAAM,WAAW,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;KAC1D,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG,EACpC,UAAyD,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,iBAAiB,EAAE,IAAI,SAAS;IAEjH,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEvD,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,kEAAkE;IAClE,8DAA8D;IAC9D,oEAAoE;IACpE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,CAAC,gBAAgB;IAE7D,6DAA6D;IAC7D,6DAA6D;IAC7D,2DAA2D;IAC3D,8DAA8D;IAC9D,aAAa;IACb,oEAAoE;IACpE,IAAI,WAAW,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,0CAA0C;IAC1C,+EAA+E;IAC/E,MAAM,MAAM,GAAG,GAAG,KAAK,QAAQ,CAAA,CAAC,4BAA4B;IAE5D,gEAAgE;IAChE,gDAAgD;IAChD,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,2BAA2B,MAAM,cAAc,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACpD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;AACpE,CAAC"}
@@ -95,7 +95,7 @@ export function escapeGitSpecialCharacters(pattern) {
95
95
  async function formatGitIgnoreContents(text, repository) {
96
96
  const autocrlf = await getConfigValue(repository, 'core.autocrlf');
97
97
  const safecrlf = await getConfigValue(repository, 'core.safecrlf');
98
- return new Promise((resolve, reject) => {
98
+ return new Promise((resolve, _reject) => {
99
99
  if (autocrlf === 'true' && safecrlf === 'true') {
100
100
  // based off https://stackoverflow.com/a/141069/1363815
101
101
  const normalizedText = text.replace(/\r\n|\n\r|\n|\r/g, '\r\n');
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/git/gitignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/git/gitignore.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { spawnGit, parseError, parseBadConfigValueErrorInfo, ExecError, type IGitSpawnOptions } from './exec.js';
1
2
  export * from './add.js';
2
3
  export * from './apply.js';
3
4
  export * from './branch.js';
package/dist/git/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ // ── Low-level execution API (exec is internal — use git() from core.js instead) ──
2
+ export { spawnGit, parseError, parseBadConfigValueErrorInfo, ExecError } from './exec.js';
3
+ // ── Git operations ──
1
4
  export * from './add.js';
2
5
  export * from './apply.js';
3
6
  export * from './branch.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAyB,MAAM,WAAW,CAAC;AAEjH,uBAAuB;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
@@ -22,3 +22,10 @@ export declare function getUpstreamRefForRef(path: string, ref?: string): Promis
22
22
  export declare function getUpstreamRemoteNameForRef(path: string, ref?: string): Promise<string | null>;
23
23
  export declare const getCurrentUpstreamRef: (path: string) => Promise<string | null>;
24
24
  export declare const getCurrentUpstreamRemoteName: (path: string) => Promise<string | null>;
25
+ /**
26
+ * Get the current branch name for the repository at the given path.
27
+ *
28
+ * Returns the branch name (e.g. `"main"`) if on a named branch,
29
+ * or `undefined` if HEAD is detached.
30
+ */
31
+ export declare function getCurrentBranch(path: string): Promise<string | undefined>;
@@ -62,4 +62,17 @@ export async function getUpstreamRemoteNameForRef(path, ref) {
62
62
  }
63
63
  export const getCurrentUpstreamRef = (path) => getUpstreamRefForRef(path);
64
64
  export const getCurrentUpstreamRemoteName = (path) => getUpstreamRemoteNameForRef(path);
65
+ /**
66
+ * Get the current branch name for the repository at the given path.
67
+ *
68
+ * Returns the branch name (e.g. `"main"`) if on a named branch,
69
+ * or `undefined` if HEAD is detached.
70
+ */
71
+ export async function getCurrentBranch(path) {
72
+ const result = await git(['symbolic-ref', '--short', 'HEAD'], path, 'getCurrentBranch', { successExitCodes: new Set([0, 128]) });
73
+ if (result.exitCode === 128) {
74
+ return undefined;
75
+ }
76
+ return result.stdout.trim();
77
+ }
65
78
  //# sourceMappingURL=rev-parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rev-parse.js","sourceRoot":"","sources":["../../src/git/rev-parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rev-parse.js","sourceRoot":"","sources":["../../src/git/rev-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAQ9B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,WAAW,CAAC,EACjE,IAAI,EACJ,mBAAmB,EACnB,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CACxC,CAAA;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,yEAAyE;YACzE,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YACzB,CAAC;YAED,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAEtE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;gBAEtC,OAAO,MAAM,KAAK,MAAM;oBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;oBAClB,CAAC,CAAC;wBACE,IAAI,EAAE,SAAS;wBACf,wBAAwB,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;wBAC7C,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;qBAC9B,CAAA;YACP,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GACf,2DAA2D,CAAC,IAAI,CAC9D,MAAM,CAAC,MAAM,CACd,CAAA;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;QACjD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QAC5B,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,GAAY;IACnE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,aAAa,CAAA;IACvC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAA;IAElE,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAY,EAAE,GAAY;IAC1E,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACvD,OAAO,SAAS,EAAE,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,EAAE,CACpD,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAE5B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAE,EAAE,CAC3D,2BAA2B,CAAC,IAAI,CAAC,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,EACnC,IAAI,EACJ,kBAAkB,EAClB,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CACxC,CAAA;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;AAC7B,CAAC"}
@@ -1,2 +1,20 @@
1
1
  import { IGitExecutionOptions } from '../../git/core.js';
2
- export declare function executionOptionsWithProgress(options: IGitExecutionOptions, _parser: any, _progressCallback: (progress: any) => void): Promise<IGitExecutionOptions>;
2
+ import type { IGitOutput } from './index.js';
3
+ /**
4
+ * Wraps git execution options with a `processCallback` that intercepts
5
+ * stderr output and feeds progress lines to the provided parser.
6
+ *
7
+ * Git writes progress updates to stderr using carriage return (`\r`) to
8
+ * overwrite the current line, producing output like:
9
+ * Receiving objects: 15% (150/1000)
10
+ * Resolving deltas: 100% (2145/2145), done.
11
+ *
12
+ * This function:
13
+ * 1. Buffers stderr chunks split on `\r` to extract individual progress lines
14
+ * 2. Feeds each line to the parser, which extracts percentage + description
15
+ * 3. Calls the progress callback with the parsed result
16
+ * 4. Chains to any existing processCallback set on the options
17
+ */
18
+ export declare function executionOptionsWithProgress(options: IGitExecutionOptions, parser: {
19
+ parse: (line: string) => IGitOutput | null;
20
+ }, progressCallback: (progress: any) => void): Promise<IGitExecutionOptions>;
@@ -1,4 +1,45 @@
1
- export async function executionOptionsWithProgress(options, _parser, _progressCallback) {
2
- return options;
1
+ /**
2
+ * Wraps git execution options with a `processCallback` that intercepts
3
+ * stderr output and feeds progress lines to the provided parser.
4
+ *
5
+ * Git writes progress updates to stderr using carriage return (`\r`) to
6
+ * overwrite the current line, producing output like:
7
+ * Receiving objects: 15% (150/1000)
8
+ * Resolving deltas: 100% (2145/2145), done.
9
+ *
10
+ * This function:
11
+ * 1. Buffers stderr chunks split on `\r` to extract individual progress lines
12
+ * 2. Feeds each line to the parser, which extracts percentage + description
13
+ * 3. Calls the progress callback with the parsed result
14
+ * 4. Chains to any existing processCallback set on the options
15
+ */
16
+ export async function executionOptionsWithProgress(options, parser,
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ progressCallback) {
19
+ return {
20
+ ...options,
21
+ processCallback: (process) => {
22
+ // Chain to any existing processCallback (e.g. from core.ts)
23
+ options.processCallback?.(process);
24
+ // Buffer for stderr chunks — git progress lines are terminated by \r
25
+ let buffer = '';
26
+ process.stderr?.on('data', (chunk) => {
27
+ buffer += chunk.toString();
28
+ // Split on \r to get individual progress lines
29
+ const lines = buffer.split('\r');
30
+ // Keep any incomplete trailing data in the buffer for the next chunk
31
+ buffer = lines.pop() ?? '';
32
+ for (const line of lines) {
33
+ const trimmed = line.trim();
34
+ if (!trimmed)
35
+ continue;
36
+ const output = parser.parse(trimmed);
37
+ if (output !== null) {
38
+ progressCallback(output);
39
+ }
40
+ }
41
+ });
42
+ },
43
+ };
3
44
  }
4
45
  //# sourceMappingURL=from-process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"from-process.js","sourceRoot":"","sources":["../../../src/lib/progress/from-process.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAA6B,EAC7B,OAAY,EACZ,iBAA0C;IAE1C,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"from-process.js","sourceRoot":"","sources":["../../../src/lib/progress/from-process.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAA6B,EAC7B,MAAsD;AACtD,8DAA8D;AAC9D,gBAAyC;IAEzC,OAAO;QACL,GAAG,OAAO;QACV,eAAe,EAAE,CAAC,OAAY,EAAE,EAAE;YAChC,4DAA4D;YAC5D,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAA;YAElC,qEAAqE;YACrE,IAAI,MAAM,GAAG,EAAE,CAAA;YAEf,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAE1B,+CAA+C;gBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAChC,qEAAqE;gBACrE,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;gBAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;oBAC3B,IAAI,CAAC,OAAO;wBAAE,SAAQ;oBAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACpB,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -5,10 +5,13 @@ export interface IGitOutput {
5
5
  percent: number;
6
6
  details?: {
7
7
  text: string;
8
+ title?: string;
8
9
  };
9
10
  }
10
11
  export declare class CheckoutProgressParser {
11
- parse(_line: string): any;
12
+ private _percent;
13
+ private _details;
14
+ parse(line: string): IGitOutput | null;
12
15
  get percent(): number;
13
16
  get details(): {
14
17
  text: string;
@@ -16,7 +19,9 @@ export declare class CheckoutProgressParser {
16
19
  get kind(): string;
17
20
  }
18
21
  export declare class FetchProgressParser {
19
- parse(_line: string): any;
22
+ private _percent;
23
+ private _details;
24
+ parse(line: string): IGitOutput | null;
20
25
  get percent(): number;
21
26
  get details(): {
22
27
  text: string;
@@ -24,7 +29,9 @@ export declare class FetchProgressParser {
24
29
  get kind(): string;
25
30
  }
26
31
  export declare class PullProgressParser {
27
- parse(_line: string): any;
32
+ private _percent;
33
+ private _details;
34
+ parse(line: string): IGitOutput | null;
28
35
  get percent(): number;
29
36
  get details(): {
30
37
  text: string;
@@ -32,7 +39,9 @@ export declare class PullProgressParser {
32
39
  get kind(): string;
33
40
  }
34
41
  export declare class PushProgressParser {
35
- parse(_line: string): any;
42
+ private _percent;
43
+ private _details;
44
+ parse(line: string): IGitOutput | null;
36
45
  get percent(): number;
37
46
  get details(): {
38
47
  text: string;
@@ -40,7 +49,9 @@ export declare class PushProgressParser {
40
49
  get kind(): string;
41
50
  }
42
51
  export declare class CloneProgressParser {
43
- parse(_line: string): any;
52
+ private _percent;
53
+ private _details;
54
+ parse(line: string): IGitOutput | null;
44
55
  get percent(): number;
45
56
  get details(): {
46
57
  text: string;
@@ -1,32 +1,133 @@
1
1
  export { executionOptionsWithProgress } from './from-process.js';
2
+ /**
3
+ * Extract progress percentage from common git progress lines.
4
+ * Matches patterns like:
5
+ * Receiving objects: 15% (150/1000)
6
+ * Resolving deltas: 0% (0/2145)
7
+ * Checking out files: 45% (230/512)
8
+ * Writing objects: 10% (5/50)
9
+ * remote: Counting objects: 100% (15/15)
10
+ */
11
+ function parseProgressLine(line) {
12
+ const match = line.match(/(\d+)%\s*\([\d/]+\)/);
13
+ if (match) {
14
+ return { percent: parseInt(match[1], 10), text: line };
15
+ }
16
+ return null;
17
+ }
2
18
  export class CheckoutProgressParser {
3
- parse(_line) { return null; }
4
- get percent() { return 0; }
5
- get details() { return { text: '' }; }
19
+ _percent = 0;
20
+ _details = { text: '' };
21
+ parse(line) {
22
+ // Checking out files: 45% (230/512)
23
+ const progress = parseProgressLine(line);
24
+ if (progress && line.includes('Checking out files')) {
25
+ this._percent = progress.percent;
26
+ this._details = { text: line };
27
+ return { kind: 'progress', percent: this._percent, details: this._details };
28
+ }
29
+ return null;
30
+ }
31
+ get percent() { return this._percent; }
32
+ get details() { return this._details; }
6
33
  get kind() { return 'progress'; }
7
34
  }
8
35
  export class FetchProgressParser {
9
- parse(_line) { return null; }
10
- get percent() { return 0; }
11
- get details() { return { text: '' }; }
36
+ _percent = 0;
37
+ _details = { text: '' };
38
+ parse(line) {
39
+ // Receiving objects: 15% (150/1000)
40
+ // Resolving deltas: 0% (0/2145)
41
+ const progress = parseProgressLine(line);
42
+ if (progress && (line.includes('Receiving objects') || line.includes('Resolving deltas'))) {
43
+ this._percent = progress.percent;
44
+ this._details = { text: line };
45
+ return { kind: 'progress', percent: this._percent, details: this._details };
46
+ }
47
+ // remote: Counting objects, remote: Compressing objects, etc.
48
+ if (line.startsWith('remote:')) {
49
+ return { kind: 'context', text: line, percent: this._percent };
50
+ }
51
+ return null;
52
+ }
53
+ get percent() { return this._percent; }
54
+ get details() { return this._details; }
12
55
  get kind() { return 'progress'; }
13
56
  }
14
57
  export class PullProgressParser {
15
- parse(_line) { return null; }
16
- get percent() { return 0; }
17
- get details() { return { text: '' }; }
58
+ _percent = 0;
59
+ _details = { text: '' };
60
+ parse(line) {
61
+ // Pull combines fetch + merge, so it can have receiving/resolving deltas
62
+ const progress = parseProgressLine(line);
63
+ if (progress && (line.includes('Receiving objects') || line.includes('Resolving deltas'))) {
64
+ this._percent = progress.percent;
65
+ this._details = { text: line };
66
+ return { kind: 'progress', percent: this._percent, details: this._details };
67
+ }
68
+ // remote: Counting objects, etc.
69
+ if (line.startsWith('remote:')) {
70
+ return { kind: 'context', text: line, percent: this._percent };
71
+ }
72
+ return null;
73
+ }
74
+ get percent() { return this._percent; }
75
+ get details() { return this._details; }
18
76
  get kind() { return 'progress'; }
19
77
  }
20
78
  export class PushProgressParser {
21
- parse(_line) { return null; }
22
- get percent() { return 0; }
23
- get details() { return { text: '' }; }
79
+ _percent = 0;
80
+ _details = { text: '' };
81
+ parse(line) {
82
+ // Writing objects: 10% (5/50)
83
+ const progress = parseProgressLine(line);
84
+ if (progress && line.includes('Writing objects')) {
85
+ this._percent = progress.percent;
86
+ this._details = { text: line };
87
+ return { kind: 'progress', percent: this._percent, details: this._details };
88
+ }
89
+ // remote: Resolving deltas: 100%, remote: Processing references, etc.
90
+ if (line.startsWith('remote:')) {
91
+ const remoteProgress = parseProgressLine(line);
92
+ if (remoteProgress) {
93
+ // remote lines that contain progress (e.g. remote: Resolving deltas: 100% (12/12))
94
+ this._percent = remoteProgress.percent;
95
+ this._details = { text: line };
96
+ return { kind: 'progress', percent: this._percent, details: this._details };
97
+ }
98
+ return { kind: 'context', text: line, percent: this._percent };
99
+ }
100
+ return null;
101
+ }
102
+ get percent() { return this._percent; }
103
+ get details() { return this._details; }
24
104
  get kind() { return 'progress'; }
25
105
  }
26
106
  export class CloneProgressParser {
27
- parse(_line) { return null; }
28
- get percent() { return 0; }
29
- get details() { return { text: '' }; }
107
+ _percent = 0;
108
+ _details = { text: '' };
109
+ parse(line) {
110
+ // Cloning into 'repo-name'...
111
+ if (line.startsWith('Cloning into')) {
112
+ return { kind: 'context', text: line, percent: 0 };
113
+ }
114
+ // Receiving objects: 15% (150/1000) — clone downloads objects
115
+ // Resolving deltas: 0% (0/2145) — clone resolves deltas
116
+ // Checking out files: 45% (230/512) — clone checks out working tree
117
+ const progress = parseProgressLine(line);
118
+ if (progress && (line.includes('Receiving objects') || line.includes('Resolving deltas') || line.includes('Checking out files'))) {
119
+ this._percent = progress.percent;
120
+ this._details = { text: line };
121
+ return { kind: 'progress', percent: this._percent, details: this._details };
122
+ }
123
+ // remote: Enumerating objects, remote: Counting objects, etc.
124
+ if (line.startsWith('remote:')) {
125
+ return { kind: 'context', text: line, percent: this._percent };
126
+ }
127
+ return null;
128
+ }
129
+ get percent() { return this._percent; }
130
+ get details() { return this._details; }
30
131
  get kind() { return 'progress'; }
31
132
  }
32
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/progress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAShE,MAAM,OAAO,sBAAsB;IAC1B,KAAK,CAAC,KAAa,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,CAAC,CAAA,CAAC,CAAC;IAClC,IAAI,OAAO,KAAuB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;CACzC;AAED,MAAM,OAAO,mBAAmB;IACvB,KAAK,CAAC,KAAa,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,CAAC,CAAA,CAAC,CAAC;IAClC,IAAI,OAAO,KAAuB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;CACzC;AAED,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,KAAa,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,CAAC,CAAA,CAAC,CAAC;IAClC,IAAI,OAAO,KAAuB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;CACzC;AAED,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,KAAa,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,CAAC,CAAA,CAAC,CAAC;IAClC,IAAI,OAAO,KAAuB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;CACzC;AAED,MAAM,OAAO,mBAAmB;IACvB,KAAK,CAAC,KAAa,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,CAAC,CAAA,CAAC,CAAC;IAClC,IAAI,OAAO,KAAuB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/progress/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
+ import { IGitOutput } from './index.js';
2
+ /**
3
+ * Git revert does not produce progress output on stderr,
4
+ * so this parser remains effectively a stub for the interface.
5
+ */
1
6
  export declare class RevertProgressParser {
2
- parse(line: string): any;
7
+ parse(_line: string): IGitOutput | null;
3
8
  get percent(): number;
4
9
  get details(): {
5
10
  text: string;
@@ -1,5 +1,9 @@
1
+ /**
2
+ * Git revert does not produce progress output on stderr,
3
+ * so this parser remains effectively a stub for the interface.
4
+ */
1
5
  export class RevertProgressParser {
2
- parse(line) {
6
+ parse(_line) {
3
7
  return null;
4
8
  }
5
9
  get percent() {
@@ -1 +1 @@
1
- {"version":3,"file":"revert.js","sourceRoot":"","sources":["../../../src/lib/progress/revert.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAoB;IACxB,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IACrB,CAAC;IAED,IAAW,IAAI;QACb,OAAO,UAAU,CAAA;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"revert.js","sourceRoot":"","sources":["../../../src/lib/progress/revert.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACxB,KAAK,CAAC,KAAa;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IACrB,CAAC;IAED,IAAW,IAAI;QACb,OAAO,UAAU,CAAA;IACnB,CAAC;CACF"}
@@ -2,6 +2,6 @@ export declare class Repository {
2
2
  readonly path: string;
3
3
  readonly id: number;
4
4
  readonly name: string;
5
- constructor(path: string, id: number);
5
+ constructor(path: string, id?: number);
6
6
  get resolvedGitDir(): string;
7
7
  }
@@ -3,7 +3,7 @@ export class Repository {
3
3
  path;
4
4
  id;
5
5
  name;
6
- constructor(path, id) {
6
+ constructor(path, id = 0) {
7
7
  this.path = path;
8
8
  this.id = id;
9
9
  this.name = Path.basename(path);
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/models/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,OAAO,UAAU;IAIH;IACA;IAJF,IAAI,CAAQ;IAE5B,YACkB,IAAY,EACZ,EAAU;QADV,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/models/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,OAAO,UAAU;IAIH;IACA;IAJF,IAAI,CAAQ;IAE5B,YACkB,IAAY,EACZ,KAAa,CAAC;QADd,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAY;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-chopstick-core",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -38,7 +38,8 @@
38
38
  "clean": "rm -rf dist",
39
39
  "build": "npm run clean && tsc",
40
40
  "typecheck": "tsc --noEmit",
41
- "prepublishOnly": "npm run build"
41
+ "test": "vitest run",
42
+ "prepublishOnly": "npm run typecheck && npm run build"
42
43
  },
43
44
  "dependencies": {
44
45
  "byline": "^5.0.0",
@@ -60,6 +61,7 @@
60
61
  "devDependencies": {
61
62
  "@types/byline": "^4.2.36",
62
63
  "@types/node": "^22.19.20",
63
- "typescript": "^5.9.3"
64
+ "typescript": "^5.9.3",
65
+ "vitest": "^4.1.8"
64
66
  }
65
67
  }