git-chopstick-core 0.1.10 → 0.1.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.11] — 2026-06-13
4
+
5
+ ### Added
6
+ - **`getTags(path)`**: New path-based helper in `tag.ts` returning `ReadonlyArray<TagEntry>` (`{name, sha}[]`). Uses `git show-ref --tags -d` with annotated-tag normalization. Returns `[]` for tag-less repos and non-repo paths.
7
+ - **`getStashesByPath(path)`**: Path-based stash listing in `stash.ts`. `getStashes(repository)` delegates to it internally. `StashResult` type now exported.
8
+ - **`getFileAtCommit(repoPath, sha, file)`**: New helper in `show.ts` returning file content as `string` via `git show ${sha}:${file}`. Throws with descriptive message for non-existent files.
9
+ - **`appFileStatusToString(status)`**: New helper in `models/status.ts` converting `AppFileStatus` to human-readable strings (Added, Modified, Deleted, Renamed, Copied, Conflicted, Untracked).
10
+ - **`getChangedFilesFlat(repository, sha)`**: New helper in `log.ts` returning `ReadonlyArray<FlatFileChange>` (`{path, statusKind, oldPath?}`). Wraps `getChangedFiles` and flattens the `CommittedFileChange.status` union.
11
+ - **`examples/commit-file-browser.ts`**: CLI demo walking through the "Browse file tree at any commit" feature using `getFileAtCommit`, `getChangedFilesFlat`, and `getCommits`.
12
+ - **Integration tests**: 14 new tests covering `getTags` (3), `getFileAtCommit` (4), `getChangedFilesFlat` (3), `getStashesByPath` (3), and `appFileStatusToString` (1). Total: 45 tests.
13
+
14
+ ### Fixed
15
+ - **`show.js` missing from git barrel**: `src/git/index.ts` now exports `show.js`, making `getFileAtCommit` (and `getBlobContents`/`getPartialBlobContents`) available through the root barrel.
16
+ - **`getTags` exit code 128**: Non-repo paths now return `[]` instead of throwing, by adding exit code 128 to `successExitCodes`.
17
+
18
+ ### Changed
19
+ - **README**: Updated API reference for `tag.ts`, `stash.ts`, `show.ts`, `log.ts`, and domain models table.
20
+
21
+ ---
22
+
3
23
  ## [0.1.10] — 2026-06-13
4
24
 
5
25
  ### Added
@@ -155,6 +175,7 @@
155
175
 
156
176
  ---
157
177
 
178
+ [0.1.11]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.11
158
179
  [0.1.10]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.10
159
180
  [0.1.9]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.9
160
181
  [0.1.8]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.8
@@ -166,4 +187,4 @@
166
187
  [0.1.2]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.2
167
188
  [0.1.1]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.1
168
189
  [0.1.0]: https://github.com/parkiyong/git-chopstick-core/releases/tag/v0.1.0
169
- [Unreleased]: https://github.com/parkiyong/git-chopstick-core/compare/v0.1.10...HEAD
190
+ [Unreleased]: https://github.com/parkiyong/git-chopstick-core/compare/v0.1.11...HEAD
package/README.md CHANGED
@@ -220,7 +220,7 @@ try {
220
220
  | `init` | `initGitRepository` | Initialize a repo |
221
221
  | `interpret-trailers` | `parseRawUnfoldedTrailers`, `isCoAuthoredByTrailer`, `getTrailerSeparatorCharacters` | Git trailer parsing |
222
222
  | `lfs` | `installGlobalLFSFilters`, `isUsingLFS`, `isTrackedByLFS`, `filesNotTrackedByLFS` | Git LFS support |
223
- | `log` | `getCommits`, `getCommit`, `getChangedFiles`, `getAuthors` | Commit history |
223
+ | `log` | `getCommits`, `getCommit`, `getChangedFiles`, `getChangedFilesFlat`, `getAuthors` | Commit history |
224
224
  | `merge` | `merge`, `getMergeBase`, `abortMerge` | Merge branches |
225
225
  | `merge-tree` | `determineMergeability` | Test mergeability without merging |
226
226
  | `pull` | `pull` | Pull from remote |
@@ -237,10 +237,10 @@ try {
237
237
  | `rm` | `removeConflictedFile` | Remove files |
238
238
  | `squash` | `squash` | Interactive rebase squashing |
239
239
  | `stage` | `stageManualConflictResolution`, `stageResolvedConflictFiles` | Stage conflict resolutions |
240
- | `stash` | `getStashes`, `createStashEntry`, `popStashEntry`, `getStashedFiles`, `dropStashEntry` | Stash management |
240
+ | `stash` | `getStashes`, `getStashesByPath`, `createStashEntry`, `popStashEntry`, `getStashedFiles`, `dropStashEntry` | Stash management |
241
241
  | `status` | `getStatus` | Repository status |
242
242
  | `submodule` | `updateSubmodulesAfterOperation`, `listSubmodules`, `resetSubmodulePaths` | Submodule operations |
243
- | `tag` | `createTag`, `deleteTag`, `getAllTags` | Tag management |
243
+ | `tag` | `createTag`, `deleteTag`, `getTags`, `getAllTags` | Tag management |
244
244
  | `update-index` | `stageFiles` | Stage files |
245
245
  | `update-ref` | `updateRef`, `deleteRef` | Ref updates |
246
246
  | `var` | `getAuthorIdentity` | Git var queries |
@@ -257,6 +257,8 @@ try {
257
257
  | `Branch` | class | Branch with upstream tracking info |
258
258
  | `BranchType` | enum | `Local` or `Remote` |
259
259
  | `AppFileStatusKind` | enum | `New`, `Modified`, `Deleted`, `Renamed`, `Copied`, `Conflicted`, `Untracked` |
260
+ | `appFileStatusToString` | fn | Converts `AppFileStatus` to human-readable string |
261
+ | `FlatFileChange` | type | `{ path: string; statusKind: AppFileStatusKind; oldPath?: string }` |
260
262
  | `FileChange` | class | Base file change model |
261
263
  | `WorkingDirectoryFileChange` | class | Uncommitted file change with diff selection |
262
264
  | `CommittedFileChange` | class | File change from a commit |
@@ -34,6 +34,7 @@ export * from './reset.js';
34
34
  export * from './rev-list.js';
35
35
  export * from './rev-parse.js';
36
36
  export * from './rm.js';
37
+ export * from './show.js';
37
38
  export * from './squash.js';
38
39
  export * from './stage.js';
39
40
  export * from './stash.js';
package/dist/git/index.js CHANGED
@@ -36,6 +36,7 @@ export * from './reset.js';
36
36
  export * from './rev-list.js';
37
37
  export * from './rev-parse.js';
38
38
  export * from './rm.js';
39
+ export * from './show.js';
39
40
  export * from './squash.js';
40
41
  export * from './stage.js';
41
42
  export * from './stash.js';
@@ -1 +1 @@
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"}
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,WAAW,CAAA;AACzB,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"}
package/dist/git/log.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CommittedFileChange } from '../models/status.js';
1
+ import { CommittedFileChange, AppFileStatusKind } from '../models/status.js';
2
2
  import { Repository } from '../models/repository.js';
3
3
  import { Commit } from '../models/commit.js';
4
4
  import { CommitIdentity } from '../models/commit-identity.js';
@@ -15,6 +15,22 @@ export interface IChangesetData {
15
15
  /** Number of lines deleted in the changeset. */
16
16
  readonly linesDeleted: number;
17
17
  }
18
+ /**
19
+ * A flattened file change record, suitable for serialization or UI lists.
20
+ */
21
+ export type FlatFileChange = {
22
+ path: string;
23
+ statusKind: AppFileStatusKind;
24
+ oldPath?: string;
25
+ };
26
+ /**
27
+ * A flattened variant of `getChangedFiles` that returns simple objects
28
+ * instead of `CommittedFileChange` class instances.
29
+ *
30
+ * Consumers that just need path + status kind + optional old path can use
31
+ * this instead of mapping `CommittedFileChange.status` themselves.
32
+ */
33
+ export declare function getChangedFilesFlat(repository: Repository, sha: string): Promise<ReadonlyArray<FlatFileChange>>;
18
34
  /** Get the files that were changed in the given commit. */
19
35
  export declare function getChangedFiles(repository: Repository, sha: string): Promise<IChangesetData>;
20
36
  /**
package/dist/git/log.js CHANGED
@@ -142,6 +142,23 @@ export async function getCommits(repository, revisionRange, limit, skip, additio
142
142
  parseRawUnfoldedTrailers(commit.trailers.toString(), ':'), tags);
143
143
  });
144
144
  }
145
+ /**
146
+ * A flattened variant of `getChangedFiles` that returns simple objects
147
+ * instead of `CommittedFileChange` class instances.
148
+ *
149
+ * Consumers that just need path + status kind + optional old path can use
150
+ * this instead of mapping `CommittedFileChange.status` themselves.
151
+ */
152
+ export async function getChangedFilesFlat(repository, sha) {
153
+ const { files } = await getChangedFiles(repository, sha);
154
+ return files.map(f => ({
155
+ path: f.path,
156
+ statusKind: f.status.kind,
157
+ ...('oldPath' in f.status && f.status.oldPath !== undefined
158
+ ? { oldPath: f.status.oldPath }
159
+ : {}),
160
+ }));
161
+ }
145
162
  /** Get the files that were changed in the given commit. */
146
163
  export async function getChangedFiles(repository, sha) {
147
164
  // opt-in for rename detection (-M) and copies detection (-C)
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/git/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAMlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,+DAA+D;AAC/D,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AAElC,SAAS,2BAA2B,CAClC,MAAc,EACd,OAAe,EACf,OAAe;IAEf,OAAO,OAAO,KAAK,iBAAiB;QAClC,OAAO,KAAK,iBAAiB;QAC7B,MAAM,KAAK,GAAG;QACd,CAAC,CAAC;YACE,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;SACvB;QACH,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,IAAI,MAAM,KAAK,GAAG,CAAC;YACjD,CAAC,OAAO,KAAK,iBAAiB,IAAI,MAAM,KAAK,GAAG,CAAC;YACnD,CAAC,CAAC;gBACE,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,KAAK;gBACvB,eAAe,EAAE,KAAK;aACvB;YACH,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,SAAiB,EACjB,OAA2B,EAC3B,OAAe,EACf,OAAe;IAEf,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IAC/B,MAAM,eAAe,GAAG,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAE7E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC9D,CAAC,CAAC,WAAW;IACb,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,CAAA;IACzD,CAAC,CAAC,QAAQ;IACV,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,CAAA;IAC/D,CAAC,CAAC,YAAY;IACd,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,CAAA;IAC7D,CAAC,CAAC,UAAU;IACZ,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,iBAAiB,CAAC,OAAO;YAC/B,OAAO;YACP,eAAe;YACf,2BAA2B,EAAE,KAAK;SACnC,CAAA;IACH,CAAC,CAAC,UAAU;IACZ,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,OAAO;YACP,eAAe;YACf,2BAA2B,EAAE,KAAK;SACnC,CAAA;IACH,CAAC,CAAC,SAAS;IAEX,0EAA0E;IAC1E,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL,IAAI,EAAE,iBAAiB,CAAC,OAAO;YAC/B,OAAO;YACP,eAAe;YACf,2BAA2B,EAAE,MAAM,KAAK,MAAM;SAC/C,CAAA;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,OAAO;YACP,eAAe;YACf,2BAA2B,EAAE,KAAK;SACnC,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;AAC9D,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAqB,EACgB,EAAE,CACvC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM;IACxC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAsB,EACtB,aAAsB,EACtB,KAAc,EACd,IAAa,EACb,iBAAwC,EAAE;IAE1C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;QAC5C,GAAG,EAAE,IAAI,EAAE,MAAM;QACjB,QAAQ,EAAE,IAAI,EAAE,YAAY;QAC5B,OAAO,EAAE,IAAI,EAAE,UAAU;QACzB,IAAI,EAAE,IAAI,EAAE,OAAO;QACnB,+DAA+D;QAC/D,6CAA6C;QAC7C,4DAA4D;QAC5D,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,IAAI,EAAE,eAAe;QAC9B,QAAQ,EAAE,yBAAyB;QACnC,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAEpB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,IAAI,CACP,GAAG,UAAU,EACb,qBAAqB,EACrB,YAAY,EACZ,GAAG,cAAc,EACjB,IAAI,CACL,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE;QAC5D,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,2EAA2E;IAC3E,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,KAAK,EAAU,CAAA;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACzB,2HAA2H;QAC3H,6HAA6H;QAC7H,2HAA2H;QAC3H,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;aACrB,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAEpE,OAAO,IAAI,MAAM,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EACrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,EACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAC9C,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACtD,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EACzD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACrE,uEAAuE;QACvE,0DAA0D;QAC1D,EAAE;QACF,qEAAqE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,6BAA6B;QAC7B,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,EACzD,IAAI,CACL,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAcD,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,GAAW;IAEX,6DAA6D;IAC7D,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,IAAI,GAAG;QACX,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,qBAAqB;QACrB,gBAAgB;QAChB,OAAO;QACP,kBAAkB;QAClB,WAAW;QACX,IAAI;QACJ,IAAI;KACL,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACtE,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,GAAW,EACX,eAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAuB,CAAA;IAC9C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,OAAO,GAAG,WAAW,CACzB,8BAA8B,EAC9B,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CACpC,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CACzB,8BAA8B,EAC9B,cAAc,CAAC,CAAC,CAAC,CAClB,CAAA;YACD,MAAM,MAAM,GAAG,WAAW,CACxB,6BAA6B,EAC7B,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACtB,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAEvD,KAAK,CAAC,IAAI,CACR,IAAI,mBAAmB,CACrB,IAAI,EACJ,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAC5C,GAAG,EACH,eAAe,CAChB,CACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YACrE,UAAU,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACrD,YAAY,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;YAE3D,sEAAsE;YACtE,uEAAuE;YACvE,uCAAuC;YACvC,IAAI,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,CAAC,IAAI,CAAC,CAAA;YACR,CAAC;YACD,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;AAC5C,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAsB,EACtB,GAAW;IAEX,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAsB,EAAE,IAAc;IACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAC1B;QACE,KAAK;QACL,+BAA+B;QAC/B,oBAAoB;QACpB,YAAY;QACZ,IAAI;QACJ,SAAS;KACV,EACD,UAAU,CAAC,IAAI,EACf,YAAY,EACZ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3B,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;IAEpE,8EAA8E;IAC9E,uCAAuC;IACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;IAEtE,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/git/log.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,17 @@ import { Repository } from '../models/repository.js';
16
16
  * root from where to read the blob contents
17
17
  */
18
18
  export declare const getBlobContents: (repository: Repository, commitish: string, path: string) => Promise<Buffer<ArrayBufferLike>>;
19
+ /**
20
+ * Get the text contents of a file at a specific commit, using a path string.
21
+ *
22
+ * Returns the file contents as a string, or throws if the file doesn't
23
+ * exist in the given commit.
24
+ *
25
+ * @param repoPath - The repository path on disk
26
+ * @param sha - The commit SHA to read the file from
27
+ * @param file - The file path relative to the repository root
28
+ */
29
+ export declare function getFileAtCommit(repoPath: string, sha: string, file: string): Promise<string>;
19
30
  /**
20
31
  * Retrieve some or all binary contents of a blob from the repository
21
32
  * at a given reference, commit, or tree. This is almost identical
package/dist/git/show.js CHANGED
@@ -21,6 +21,23 @@ export const getBlobContents = (repository, commitish, path) => git(['show', `${
21
21
  successExitCodes: new Set([0, 1]),
22
22
  encoding: 'buffer',
23
23
  }).then(r => r.stdout);
24
+ /**
25
+ * Get the text contents of a file at a specific commit, using a path string.
26
+ *
27
+ * Returns the file contents as a string, or throws if the file doesn't
28
+ * exist in the given commit.
29
+ *
30
+ * @param repoPath - The repository path on disk
31
+ * @param sha - The commit SHA to read the file from
32
+ * @param file - The file path relative to the repository root
33
+ */
34
+ export async function getFileAtCommit(repoPath, sha, file) {
35
+ const result = await git(['show', `${sha}:${file}`], repoPath, 'getFileAtCommit', { successExitCodes: new Set([0, 1]) });
36
+ if (result.exitCode !== 0) {
37
+ throw new Error(`File '${file}' not found at commit ${sha}`);
38
+ }
39
+ return result.stdout;
40
+ }
24
41
  /**
25
42
  * Retrieve some or all binary contents of a blob from the repository
26
43
  * at a given reference, commit, or tree. This is almost identical
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/git/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,EAAE,CACF,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE;IACxE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,OAAO,uCAAuC,CAC5C,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IAE7C,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,yCAAyC,EAAE;QAC3E,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACzD,QAAQ,EAAE,QAAQ;KACnB,CAAC;SACC,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAChE;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,CACT,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3E,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/git/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,EAAE,CACF,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE;IACxE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,GAAW,EACX,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAC1B,QAAQ,EACR,iBAAiB,EACjB,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACtC,CAAA;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yBAAyB,GAAG,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,OAAO,uCAAuC,CAC5C,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,UAAsB,EACtB,SAAiB,EACjB,IAAY,EACZ,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IAE7C,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,yCAAyC,EAAE;QAC3E,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACzD,QAAQ,EAAE,QAAQ;KACnB,CAAC;SACC,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAChE;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,CACT,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3E,CAAA;AACL,CAAC"}
@@ -3,7 +3,8 @@ import { IStashEntry } from '../models/stash-entry.js';
3
3
  import { WorkingDirectoryFileChange, CommittedFileChange } from '../models/status.js';
4
4
  import { Branch } from '../models/branch.js';
5
5
  export declare const DesktopStashEntryMarker = "!!GitHub_Desktop";
6
- type StashResult = {
6
+ /** The result of listing stash entries. */
7
+ export type StashResult = {
7
8
  /** The stash entries created by Desktop */
8
9
  readonly desktopEntries: ReadonlyArray<IStashEntry>;
9
10
  /**
@@ -12,6 +13,12 @@ type StashResult = {
12
13
  */
13
14
  readonly stashEntryCount: number;
14
15
  };
16
+ /**
17
+ * Get the list of stash entries for a repository path.
18
+ * Uses the default ordering of refs (which is LIFO ordering),
19
+ * as well as the total amount of stash entries.
20
+ */
21
+ export declare function getStashesByPath(path: string): Promise<StashResult>;
15
22
  /**
16
23
  * Get the list of stash entries created by Desktop in the current repository
17
24
  * using the default ordering of refs (which is LIFO ordering),
@@ -50,4 +57,3 @@ export declare function dropDesktopStashEntry(repository: Repository, stashSha:
50
57
  export declare function popStashEntry(repository: Repository, stashSha: string): Promise<void>;
51
58
  /** Get the files that were changed in the given stash commit */
52
59
  export declare function getStashedFiles(repository: Repository, stashSha: string): Promise<ReadonlyArray<CommittedFileChange>>;
53
- export {};
package/dist/git/stash.js CHANGED
@@ -14,11 +14,11 @@ export const DesktopStashEntryMarker = '!!GitHub_Desktop';
14
14
  */
15
15
  const desktopStashEntryMessageRe = /!!GitHub_Desktop<(.+)>$/;
16
16
  /**
17
- * Get the list of stash entries created by Desktop in the current repository
18
- * using the default ordering of refs (which is LIFO ordering),
17
+ * Get the list of stash entries for a repository path.
18
+ * Uses the default ordering of refs (which is LIFO ordering),
19
19
  * as well as the total amount of stash entries.
20
20
  */
21
- export async function getStashes(repository) {
21
+ export async function getStashesByPath(path) {
22
22
  const { formatArgs, parse } = createLogParser({
23
23
  name: '%gD',
24
24
  stashSha: '%H',
@@ -26,9 +26,7 @@ export async function getStashes(repository) {
26
26
  tree: '%T',
27
27
  parents: '%P',
28
28
  });
29
- const result = await git(['log', '-g', ...formatArgs, 'refs/stash', '--'], repository.path, 'getStashEntries', { successExitCodes: new Set([0, 128]) });
30
- // There's no refs/stashes reflog in the repository or it's not
31
- // even a repository. In either case we don't care
29
+ const result = await git(['log', '-g', ...formatArgs, 'refs/stash', '--'], path, 'getStashEntries', { successExitCodes: new Set([0, 128]) });
32
30
  if (result.exitCode === 128) {
33
31
  return { desktopEntries: [], stashEntryCount: 0 };
34
32
  }
@@ -50,6 +48,14 @@ export async function getStashes(repository) {
50
48
  }
51
49
  return { desktopEntries, stashEntryCount: entries.length - 1 };
52
50
  }
51
+ /**
52
+ * Get the list of stash entries created by Desktop in the current repository
53
+ * using the default ordering of refs (which is LIFO ordering),
54
+ * as well as the total amount of stash entries.
55
+ */
56
+ export async function getStashes(repository) {
57
+ return getStashesByPath(repository.path);
58
+ }
53
59
  /**
54
60
  * Moves a stash entry to a different branch by means of creating
55
61
  * a new stash entry associated with the new branch and dropping the old
@@ -1 +1 @@
1
- {"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/git/stash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/git/stash.ts"],"names":[],"mappings":"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"}
package/dist/git/tag.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import { Repository } from '../models/repository.js';
2
2
  import { IRemote } from '../models/remote.js';
3
+ /** A tag with its name and the commit SHA it points to. */
4
+ export type TagEntry = {
5
+ name: string;
6
+ sha: string;
7
+ };
3
8
  /**
4
9
  * Create a new tag on the given target commit.
5
10
  *
@@ -15,6 +20,13 @@ export declare function createTag(repository: Repository, name: string, targetCo
15
20
  * @param name - The name of the tag to delete.
16
21
  */
17
22
  export declare function deleteTag(repository: Repository, name: string): Promise<void>;
23
+ /**
24
+ * Get all tags in the repository at the given path.
25
+ *
26
+ * Returns an array of tag entries. Uses the same normalization as
27
+ * `getAllTags` (resolving annotated tag ^{} suffixes).
28
+ */
29
+ export declare function getTags(path: string): Promise<ReadonlyArray<TagEntry>>;
18
30
  /**
19
31
  * Gets all the local tags. Returns a Map with the tag name and the commit it points to.
20
32
  *
package/dist/git/tag.js CHANGED
@@ -21,6 +21,29 @@ export async function deleteTag(repository, name) {
21
21
  const args = ['tag', '-d', name];
22
22
  await git(args, repository.path, 'deleteTag');
23
23
  }
24
+ /**
25
+ * Get all tags in the repository at the given path.
26
+ *
27
+ * Returns an array of tag entries. Uses the same normalization as
28
+ * `getAllTags` (resolving annotated tag ^{} suffixes).
29
+ */
30
+ export async function getTags(path) {
31
+ const result = await git(['show-ref', '--tags', '-d'], path, 'getTags', {
32
+ successExitCodes: new Set([0, 1, 128]),
33
+ });
34
+ if (result.exitCode !== 0 || result.stdout.trim().length === 0) {
35
+ return [];
36
+ }
37
+ const tagMap = new Map();
38
+ for (const line of result.stdout.trim().split('\n')) {
39
+ const [sha, ref] = line.split(' ');
40
+ if (!sha || !ref)
41
+ continue;
42
+ const name = ref.replace(/^refs\/tags\//, '').replace(/\^\{\}$/, '');
43
+ tagMap.set(name, sha);
44
+ }
45
+ return Array.from(tagMap, ([name, sha]) => ({ name, sha }));
46
+ }
24
47
  /**
25
48
  * Gets all the local tags. Returns a Map with the tag name and the commit it points to.
26
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/git/tag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/git/tag.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export * from './worktree.js';
15
15
  export * from './diff/index.js';
16
16
  export { ComputedAction } from './computed-action.js';
17
17
  export type { RebaseInternalState, RebaseProgressOptions } from './rebase.js';
18
- export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
18
+ export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, appFileStatusToString, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
19
19
  export type { AppFileStatus } from './status.js';
20
20
  export type { SubmoduleStatus } from './status.js';
21
21
  export type { SubmoduleEntry } from './submodule.js';
@@ -16,5 +16,5 @@ export * from './diff/index.js';
16
16
  // computed-action and rebase both export ComputedAction — use explicit exports
17
17
  export { ComputedAction } from './computed-action.js';
18
18
  // status and submodule both export SubmoduleStatus — use explicit exports
19
- export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
19
+ export { AppFileStatusKind, CommittedFileChange, WorkingDirectoryFileChange, WorkingDirectoryStatus, FileChange, appFileStatusToString, isConflictedFileStatus, isConflictWithMarkers, GitStatusEntry, UnmergedEntrySummary, } from './status.js';
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAE/B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAE/B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
@@ -48,6 +48,12 @@ export type UntrackedFileStatus = {
48
48
  submoduleStatus?: SubmoduleStatus;
49
49
  };
50
50
  export type AppFileStatus = PlainFileStatus | CopiedOrRenamedFileStatus | ConflictedFileStatus | UntrackedFileStatus;
51
+ /**
52
+ * Convert an AppFileStatus to a human-readable string.
53
+ *
54
+ * Examples: "Added", "Modified", "Deleted", "Renamed", "Copied", "Conflicted", "Untracked"
55
+ */
56
+ export declare function appFileStatusToString(status: AppFileStatus): string;
51
57
  export type SubmoduleStatus = {
52
58
  readonly commitChanged: boolean;
53
59
  readonly modifiedChanges: boolean;
@@ -27,6 +27,29 @@ export function isConflictedFileStatus(appFileStatus) {
27
27
  export function isConflictWithMarkers(conflictedFileStatus) {
28
28
  return 'conflictMarkerCount' in conflictedFileStatus;
29
29
  }
30
+ /**
31
+ * Convert an AppFileStatus to a human-readable string.
32
+ *
33
+ * Examples: "Added", "Modified", "Deleted", "Renamed", "Copied", "Conflicted", "Untracked"
34
+ */
35
+ export function appFileStatusToString(status) {
36
+ switch (status.kind) {
37
+ case AppFileStatusKind.New:
38
+ return 'Added';
39
+ case AppFileStatusKind.Modified:
40
+ return 'Modified';
41
+ case AppFileStatusKind.Deleted:
42
+ return 'Deleted';
43
+ case AppFileStatusKind.Renamed:
44
+ return 'Renamed';
45
+ case AppFileStatusKind.Copied:
46
+ return 'Copied';
47
+ case AppFileStatusKind.Conflicted:
48
+ return 'Conflicted';
49
+ case AppFileStatusKind.Untracked:
50
+ return 'Untracked';
51
+ }
52
+ }
30
53
  export var UnmergedEntrySummary;
31
54
  (function (UnmergedEntrySummary) {
32
55
  UnmergedEntrySummary["AddedByUs"] = "added-by-us";
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/models/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/models/status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-chopstick-core",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -11,7 +11,11 @@ import {
11
11
  addRemote, removeRemote, setRemoteURL,
12
12
  merge, MergeResult,
13
13
  rebase, RebaseResult,
14
- getStashes, createDesktopStashEntry, popStashEntry,
14
+ getStashes, getStashesByPath,
15
+ createDesktopStashEntry, popStashEntry,
16
+ getTags, getFileAtCommit,
17
+ getChangedFilesFlat, getChangedFiles,
18
+ appFileStatusToString, AppFileStatusKind,
15
19
  } from '../index.js'
16
20
  import {
17
21
  setupFixtureRepo, cleanupFixtureRepo, git,
@@ -160,6 +164,181 @@ describe('Tag operations', () => {
160
164
  expect(tags.size).toBeGreaterThanOrEqual(1)
161
165
  expect(tags.has('v0.1.0')).toBe(true)
162
166
  })
167
+
168
+ it('getTags returns the same tags as getAllTags', async () => {
169
+ const tags = await getTags(repoPath)
170
+ expect(tags.length).toBeGreaterThanOrEqual(1)
171
+
172
+ const v010 = tags.find(t => t.name === 'v0.1.0')
173
+ expect(v010).toBeTruthy()
174
+ expect(v010!.sha).toMatch(/^[a-f0-9]{40}$/)
175
+
176
+ // Verify consistency with getAllTags
177
+ const allTags = await getAllTags(repo)
178
+ expect(tags.length).toBe(allTags.size)
179
+ for (const t of tags) {
180
+ expect(allTags.get(t.name)).toBe(t.sha)
181
+ }
182
+ })
183
+
184
+ it('getTags returns empty array for a tag-less repo', async () => {
185
+ const noTagPath = mkdtempSync(join(tmpdir(), 'gcctest-notags-'))
186
+ execSync(`git init ${noTagPath}`, { stdio: 'pipe' })
187
+ execSync(
188
+ `git -C ${noTagPath} commit --allow-empty -m 'init'`,
189
+ { stdio: 'pipe' }
190
+ )
191
+ const tags = await getTags(noTagPath)
192
+ expect(tags).toEqual([])
193
+ execSync(`rm -rf ${noTagPath}`)
194
+ })
195
+
196
+ it('getTags returns empty array for a non-repo path', async () => {
197
+ const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
198
+ const tags = await getTags(nonRepoPath)
199
+ expect(tags).toEqual([])
200
+ execSync(`rm -rf ${nonRepoPath}`)
201
+ })
202
+ })
203
+
204
+ describe('getFileAtCommit', () => {
205
+ it('reads README.md at HEAD', async () => {
206
+ const content = await getFileAtCommit(repoPath, 'HEAD', 'README.md')
207
+ expect(content).toContain('# Test Repo')
208
+ })
209
+
210
+ it('reads a file at the initial commit', async () => {
211
+ const commits = await getCommits(repo, 'HEAD', 10)
212
+ const initialSha = commits[commits.length - 1].sha
213
+ const content = await getFileAtCommit(repoPath, initialSha, 'README.md')
214
+ expect(content).toContain('# Test Repo')
215
+ })
216
+
217
+ it('reads src/index.js at a commit where it exists', async () => {
218
+ // The second commit adds src/index.js with 'console.log("hi")'
219
+ const commits = await getCommits(repo, 'HEAD', 10)
220
+ // Second-to-last commit has the initial version
221
+ const secondCommit = commits[commits.length - 2].sha
222
+ const content = await getFileAtCommit(repoPath, secondCommit, 'src/index.js')
223
+ expect(content.trim()).toBe('console.log("hi")')
224
+ })
225
+
226
+ it('throws for a file that does not exist at the given commit', async () => {
227
+ await expect(
228
+ getFileAtCommit(repoPath, 'HEAD', 'nonexistent-file.txt')
229
+ ).rejects.toThrow()
230
+ })
231
+ })
232
+
233
+ describe('getChangedFilesFlat', () => {
234
+ it('returns flat file changes for the merge commit', async () => {
235
+ const commits = await getCommits(repo, 'HEAD', 10)
236
+ // The merge commit merged feature/one (which added feature-one.txt)
237
+ const mergeSha = commits[0].sha
238
+ const flat = await getChangedFilesFlat(repo, mergeSha)
239
+
240
+ expect(flat.length).toBeGreaterThanOrEqual(1)
241
+
242
+ // Each entry should have path and statusKind
243
+ for (const f of flat) {
244
+ expect(f).toHaveProperty('path')
245
+ expect(f).toHaveProperty('statusKind')
246
+ expect(Object.values(AppFileStatusKind)).toContain(f.statusKind)
247
+ // oldPath should only be present for Renamed/Copied files
248
+ if (f.statusKind === AppFileStatusKind.Renamed || f.statusKind === AppFileStatusKind.Copied) {
249
+ expect(f.oldPath).toBeTruthy()
250
+ } else {
251
+ expect(f.oldPath).toBeUndefined()
252
+ }
253
+ }
254
+ })
255
+
256
+ it('matches structure from getChangedFiles', async () => {
257
+ const commits = await getCommits(repo, 'HEAD', 10)
258
+ const mergeSha = commits[0].sha
259
+
260
+ const [flat, full] = await Promise.all([
261
+ getChangedFilesFlat(repo, mergeSha),
262
+ getChangedFiles(repo, mergeSha),
263
+ ])
264
+
265
+ expect(flat.length).toBe(full.files.length)
266
+
267
+ for (let i = 0; i < flat.length; i++) {
268
+ expect(flat[i].path).toBe(full.files[i].path)
269
+ expect(flat[i].statusKind).toBe(full.files[i].status.kind)
270
+
271
+ if (
272
+ full.files[i].status.kind === AppFileStatusKind.Renamed ||
273
+ full.files[i].status.kind === AppFileStatusKind.Copied
274
+ ) {
275
+ expect(flat[i].oldPath).toBe(full.files[i].status.oldPath)
276
+ }
277
+ }
278
+ })
279
+
280
+ it('throws for an unborn HEAD', async () => {
281
+ const unbornPath = mkdtempSync(join(tmpdir(), 'gcctest-unborn-'))
282
+ execSync(`git init ${unbornPath}`, { stdio: 'pipe' })
283
+ const unbornRepo = new Repository(unbornPath, 1)
284
+ // Cannot get changed files for a commit that doesn't exist
285
+ await expect(
286
+ getChangedFilesFlat(unbornRepo, 'HEAD')
287
+ ).rejects.toThrow()
288
+ execSync(`rm -rf ${unbornPath}`)
289
+ })
290
+ })
291
+
292
+ describe('getStashesByPath', () => {
293
+ it('returns empty stashes when no stash exists', async () => {
294
+ const result = await getStashesByPath(repoPath)
295
+ expect(result.desktopEntries).toEqual([])
296
+ expect(result.stashEntryCount).toBe(0)
297
+ })
298
+
299
+ it('returns same result as getStashes after creating a stash', async () => {
300
+ // Create a working directory change
301
+ writeFileSync(join(repoPath, 'stash-by-path-test.txt'), 'stash me')
302
+ git(repoPath, 'add stash-by-path-test.txt')
303
+
304
+ await createDesktopStashEntry(repo, 'main', [], null)
305
+
306
+ const byPath = await getStashesByPath(repoPath)
307
+ const byRepo = await getStashes(repo)
308
+
309
+ expect(byPath.desktopEntries.length).toBe(byRepo.desktopEntries.length)
310
+ expect(byPath.stashEntryCount).toBe(byRepo.stashEntryCount)
311
+
312
+ // Verify the entry has expected fields
313
+ const entry = byPath.desktopEntries[0]
314
+ expect(entry.branchName).toBe('main')
315
+ expect(entry.stashSha).toMatch(/^[a-f0-9]{40}$/)
316
+
317
+ // Clean up: pop the stash, unstage, and remove the test file
318
+ await popStashEntry(repo, entry.stashSha)
319
+ git(repoPath, 'reset HEAD -- stash-by-path-test.txt')
320
+ execSync(`rm -f ${join(repoPath, 'stash-by-path-test.txt')}`)
321
+ })
322
+
323
+ it('returns empty for a non-repo path', async () => {
324
+ const nonRepoPath = mkdtempSync(join(tmpdir(), 'gcctest-nonrepo-'))
325
+ const result = await getStashesByPath(nonRepoPath)
326
+ expect(result.desktopEntries).toEqual([])
327
+ expect(result.stashEntryCount).toBe(0)
328
+ execSync(`rm -rf ${nonRepoPath}`)
329
+ })
330
+ })
331
+
332
+ describe('appFileStatusToString', () => {
333
+ it('maps each status kind to a human-readable string', () => {
334
+ expect(appFileStatusToString({ kind: AppFileStatusKind.New })).toBe('Added')
335
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Modified })).toBe('Modified')
336
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Deleted })).toBe('Deleted')
337
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Renamed })).toBe('Renamed')
338
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Copied })).toBe('Copied')
339
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Conflicted })).toBe('Conflicted')
340
+ expect(appFileStatusToString({ kind: AppFileStatusKind.Untracked })).toBe('Untracked')
341
+ })
163
342
  })
164
343
 
165
344
  describe('getRepositorySummary', () => {