@foss.global/gitmanager 1.7.1 → 2.0.0

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 (231) hide show
  1. package/.smartconfig.json +4 -1
  2. package/changelog.md +33 -0
  3. package/dist_rust/rustgitmanager_linux_amd64 +0 -0
  4. package/dist_rust/rustgitmanager_linux_amd64.tsrust-build.json +5 -5
  5. package/dist_rust/rustgitmanager_linux_arm64 +0 -0
  6. package/dist_rust/rustgitmanager_linux_arm64.tsrust-build.json +5 -5
  7. package/dist_ts/00_commitinfo_data.js +1 -1
  8. package/dist_ts/classes.gitmanager.d.ts +8 -2
  9. package/dist_ts/classes.gitmanager.js +7 -1
  10. package/dist_ts/classes.repositoryservice.d.ts +8 -0
  11. package/dist_ts/classes.repositoryservice.js +38 -12
  12. package/dist_ts/models.d.ts +12 -1
  13. package/dist_ts/rust-gitmanager-bridge.d.ts +2 -2
  14. package/dist_ts/rust-gitmanager-bridge.js +1 -1
  15. package/native-notices/crates/adler2-2.0.1/license-0bsd +12 -0
  16. package/native-notices/crates/adler2-2.0.1/license-apache +201 -0
  17. package/native-notices/crates/adler2-2.0.1/license-mit +23 -0
  18. package/native-notices/crates/aho-corasick-1.1.4/copying +3 -0
  19. package/native-notices/crates/aho-corasick-1.1.4/license-mit +21 -0
  20. package/native-notices/crates/aho-corasick-1.1.4/unlicense +24 -0
  21. package/native-notices/crates/anstream-1.0.0/license-apache +202 -0
  22. package/native-notices/crates/anstream-1.0.0/license-mit +19 -0
  23. package/native-notices/crates/anstyle-1.0.14/license-apache +202 -0
  24. package/native-notices/crates/anstyle-1.0.14/license-mit +19 -0
  25. package/native-notices/crates/anstyle-parse-1.0.0/license-apache +202 -0
  26. package/native-notices/crates/anstyle-parse-1.0.0/license-mit +19 -0
  27. package/native-notices/crates/anstyle-query-1.1.5/license-apache +202 -0
  28. package/native-notices/crates/anstyle-query-1.1.5/license-mit +19 -0
  29. package/native-notices/crates/anyhow-1.0.102/license-apache +176 -0
  30. package/native-notices/crates/anyhow-1.0.102/license-mit +23 -0
  31. package/native-notices/crates/atomic-waker-1.1.2/license-apache +201 -0
  32. package/native-notices/crates/atomic-waker-1.1.2/license-mit +23 -0
  33. package/native-notices/crates/atomic-waker-1.1.2/license-third-party +45 -0
  34. package/native-notices/crates/axum-0.8.9/license +25 -0
  35. package/native-notices/crates/axum-core-0.5.6/license +27 -0
  36. package/native-notices/crates/base64-0.22.1/license-apache +201 -0
  37. package/native-notices/crates/base64-0.22.1/license-mit +21 -0
  38. package/native-notices/crates/block-buffer-0.10.4/license-apache +201 -0
  39. package/native-notices/crates/block-buffer-0.10.4/license-mit +25 -0
  40. package/native-notices/crates/bytes-1.12.0/license +25 -0
  41. package/native-notices/crates/cfg-if-1.0.4/license-apache +201 -0
  42. package/native-notices/crates/cfg-if-1.0.4/license-mit +25 -0
  43. package/native-notices/crates/clap-4.6.1/license-apache +202 -0
  44. package/native-notices/crates/clap-4.6.1/license-mit +19 -0
  45. package/native-notices/crates/clap_builder-4.6.0/license-apache +202 -0
  46. package/native-notices/crates/clap_builder-4.6.0/license-mit +19 -0
  47. package/native-notices/crates/clap_derive-4.6.1/license-apache +202 -0
  48. package/native-notices/crates/clap_derive-4.6.1/license-mit +19 -0
  49. package/native-notices/crates/clap_lex-1.1.0/license-apache +202 -0
  50. package/native-notices/crates/clap_lex-1.1.0/license-mit +19 -0
  51. package/native-notices/crates/colorchoice-1.0.5/license-apache +202 -0
  52. package/native-notices/crates/colorchoice-1.0.5/license-mit +19 -0
  53. package/native-notices/crates/cpufeatures-0.2.17/license-apache +201 -0
  54. package/native-notices/crates/cpufeatures-0.2.17/license-mit +25 -0
  55. package/native-notices/crates/crc32fast-1.5.0/license-apache +202 -0
  56. package/native-notices/crates/crc32fast-1.5.0/license-mit +21 -0
  57. package/native-notices/crates/crypto-common-0.1.7/license-apache +201 -0
  58. package/native-notices/crates/crypto-common-0.1.7/license-mit +25 -0
  59. package/native-notices/crates/digest-0.10.7/license-apache +201 -0
  60. package/native-notices/crates/digest-0.10.7/license-mit +25 -0
  61. package/native-notices/crates/errno-0.3.14/license-apache +201 -0
  62. package/native-notices/crates/errno-0.3.14/license-mit +25 -0
  63. package/native-notices/crates/flate2-1.1.9/license-apache +201 -0
  64. package/native-notices/crates/flate2-1.1.9/license-mit +25 -0
  65. package/native-notices/crates/form_urlencoded-1.2.2/license-apache +201 -0
  66. package/native-notices/crates/form_urlencoded-1.2.2/license-mit +25 -0
  67. package/native-notices/crates/futures-channel-0.3.33/license-apache +202 -0
  68. package/native-notices/crates/futures-channel-0.3.33/license-mit +26 -0
  69. package/native-notices/crates/futures-core-0.3.33/license-apache +202 -0
  70. package/native-notices/crates/futures-core-0.3.33/license-mit +26 -0
  71. package/native-notices/crates/futures-macro-0.3.33/license-apache +202 -0
  72. package/native-notices/crates/futures-macro-0.3.33/license-mit +26 -0
  73. package/native-notices/crates/futures-sink-0.3.33/license-apache +202 -0
  74. package/native-notices/crates/futures-sink-0.3.33/license-mit +26 -0
  75. package/native-notices/crates/futures-task-0.3.33/license-apache +202 -0
  76. package/native-notices/crates/futures-task-0.3.33/license-mit +26 -0
  77. package/native-notices/crates/futures-util-0.3.33/license-apache +202 -0
  78. package/native-notices/crates/futures-util-0.3.33/license-mit +26 -0
  79. package/native-notices/crates/generic-array-0.14.7/license +21 -0
  80. package/native-notices/crates/heck-0.5.0/license-apache +201 -0
  81. package/native-notices/crates/heck-0.5.0/license-mit +25 -0
  82. package/native-notices/crates/http-1.4.2/license-apache +201 -0
  83. package/native-notices/crates/http-1.4.2/license-mit +25 -0
  84. package/native-notices/crates/http-body-1.1.0/license +25 -0
  85. package/native-notices/crates/http-body-util-0.1.4/license +25 -0
  86. package/native-notices/crates/httparse-1.10.1/license-apache +201 -0
  87. package/native-notices/crates/httparse-1.10.1/license-mit +20 -0
  88. package/native-notices/crates/httpdate-1.0.3/license-apache +201 -0
  89. package/native-notices/crates/httpdate-1.0.3/license-mit +19 -0
  90. package/native-notices/crates/hyper-1.10.1/license +19 -0
  91. package/native-notices/crates/hyper-util-0.1.20/license +19 -0
  92. package/native-notices/crates/is_terminal_polyfill-1.70.2/license-apache +202 -0
  93. package/native-notices/crates/is_terminal_polyfill-1.70.2/license-mit +19 -0
  94. package/native-notices/crates/itoa-1.0.18/license-apache +176 -0
  95. package/native-notices/crates/itoa-1.0.18/license-mit +23 -0
  96. package/native-notices/crates/lazy_static-1.5.0/license-apache +201 -0
  97. package/native-notices/crates/lazy_static-1.5.0/license-mit +25 -0
  98. package/native-notices/crates/libc-0.2.186/license-apache +176 -0
  99. package/native-notices/crates/libc-0.2.186/license-mit +25 -0
  100. package/native-notices/crates/lock_api-0.4.14/license-apache +201 -0
  101. package/native-notices/crates/lock_api-0.4.14/license-mit +25 -0
  102. package/native-notices/crates/log-0.4.33/license-apache +201 -0
  103. package/native-notices/crates/log-0.4.33/license-mit +25 -0
  104. package/native-notices/crates/matchers-0.2.0/license +19 -0
  105. package/native-notices/crates/matchit-0.8.4/license +21 -0
  106. package/native-notices/crates/matchit-0.8.4/license.httprouter +29 -0
  107. package/native-notices/crates/memchr-2.8.2/copying +3 -0
  108. package/native-notices/crates/memchr-2.8.2/license-mit +21 -0
  109. package/native-notices/crates/memchr-2.8.2/unlicense +24 -0
  110. package/native-notices/crates/mime-0.3.17/license-apache +201 -0
  111. package/native-notices/crates/mime-0.3.17/license-mit +20 -0
  112. package/native-notices/crates/miniz_oxide-0.8.9/license +25 -0
  113. package/native-notices/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
  114. package/native-notices/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
  115. package/native-notices/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
  116. package/native-notices/crates/mio-1.2.1/license +19 -0
  117. package/native-notices/crates/nu-ansi-term-0.50.3/license +22 -0
  118. package/native-notices/crates/once_cell-1.21.4/license-apache +201 -0
  119. package/native-notices/crates/once_cell-1.21.4/license-mit +23 -0
  120. package/native-notices/crates/parking_lot-0.12.5/license-apache +201 -0
  121. package/native-notices/crates/parking_lot-0.12.5/license-mit +25 -0
  122. package/native-notices/crates/parking_lot_core-0.9.12/license-apache +201 -0
  123. package/native-notices/crates/parking_lot_core-0.9.12/license-mit +25 -0
  124. package/native-notices/crates/percent-encoding-2.3.2/license-apache +201 -0
  125. package/native-notices/crates/percent-encoding-2.3.2/license-mit +25 -0
  126. package/native-notices/crates/pin-project-lite-0.2.17/license-apache +177 -0
  127. package/native-notices/crates/pin-project-lite-0.2.17/license-mit +23 -0
  128. package/native-notices/crates/proc-macro2-1.0.106/license-apache +176 -0
  129. package/native-notices/crates/proc-macro2-1.0.106/license-mit +23 -0
  130. package/native-notices/crates/quote-1.0.45/license-apache +176 -0
  131. package/native-notices/crates/quote-1.0.45/license-mit +23 -0
  132. package/native-notices/crates/regex-automata-0.4.14/license-apache +201 -0
  133. package/native-notices/crates/regex-automata-0.4.14/license-mit +25 -0
  134. package/native-notices/crates/regex-syntax-0.8.11/license-apache +201 -0
  135. package/native-notices/crates/regex-syntax-0.8.11/license-mit +25 -0
  136. package/native-notices/crates/ryu-1.0.23/license-apache +176 -0
  137. package/native-notices/crates/ryu-1.0.23/license-boost +23 -0
  138. package/native-notices/crates/scopeguard-1.2.0/license-apache +201 -0
  139. package/native-notices/crates/scopeguard-1.2.0/license-mit +25 -0
  140. package/native-notices/crates/serde-1.0.228/license-apache +176 -0
  141. package/native-notices/crates/serde-1.0.228/license-mit +23 -0
  142. package/native-notices/crates/serde_core-1.0.228/license-apache +176 -0
  143. package/native-notices/crates/serde_core-1.0.228/license-mit +23 -0
  144. package/native-notices/crates/serde_derive-1.0.228/license-apache +176 -0
  145. package/native-notices/crates/serde_derive-1.0.228/license-mit +23 -0
  146. package/native-notices/crates/serde_json-1.0.150/license-apache +176 -0
  147. package/native-notices/crates/serde_json-1.0.150/license-mit +23 -0
  148. package/native-notices/crates/serde_path_to_error-0.1.20/license-apache +176 -0
  149. package/native-notices/crates/serde_path_to_error-0.1.20/license-mit +23 -0
  150. package/native-notices/crates/serde_urlencoded-0.7.1/license-apache +176 -0
  151. package/native-notices/crates/serde_urlencoded-0.7.1/license-mit +25 -0
  152. package/native-notices/crates/sha2-0.10.9/license-apache +201 -0
  153. package/native-notices/crates/sha2-0.10.9/license-mit +27 -0
  154. package/native-notices/crates/sharded-slab-0.1.7/license +19 -0
  155. package/native-notices/crates/signal-hook-registry-1.4.8/license-apache +201 -0
  156. package/native-notices/crates/signal-hook-registry-1.4.8/license-mit +25 -0
  157. package/native-notices/crates/simd-adler32-0.3.10/license.md +21 -0
  158. package/native-notices/crates/slab-0.4.12/license +25 -0
  159. package/native-notices/crates/smallvec-1.15.2/license-apache +201 -0
  160. package/native-notices/crates/smallvec-1.15.2/license-mit +25 -0
  161. package/native-notices/crates/socket2-0.6.4/license-apache +201 -0
  162. package/native-notices/crates/socket2-0.6.4/license-mit +25 -0
  163. package/native-notices/crates/strsim-0.11.1/license +23 -0
  164. package/native-notices/crates/syn-2.0.118/license-apache +176 -0
  165. package/native-notices/crates/syn-2.0.118/license-mit +23 -0
  166. package/native-notices/crates/sync_wrapper-1.0.2/license +177 -0
  167. package/native-notices/crates/thread_local-1.1.9/license-apache +201 -0
  168. package/native-notices/crates/thread_local-1.1.9/license-mit +25 -0
  169. package/native-notices/crates/tokio-1.52.3/license +21 -0
  170. package/native-notices/crates/tokio-macros-2.7.0/license +22 -0
  171. package/native-notices/crates/tokio-stream-0.1.18/license +21 -0
  172. package/native-notices/crates/tokio-util-0.7.18/license +21 -0
  173. package/native-notices/crates/tower-0.5.3/license +25 -0
  174. package/native-notices/crates/tower-layer-0.3.3/license +25 -0
  175. package/native-notices/crates/tower-service-0.3.3/license +25 -0
  176. package/native-notices/crates/tracing-0.1.44/license +25 -0
  177. package/native-notices/crates/tracing-attributes-0.1.31/license +25 -0
  178. package/native-notices/crates/tracing-core-0.1.36/license +25 -0
  179. package/native-notices/crates/tracing-log-0.2.0/license +25 -0
  180. package/native-notices/crates/tracing-subscriber-0.3.23/license +25 -0
  181. package/native-notices/crates/typenum-1.20.1/license +1 -0
  182. package/native-notices/crates/typenum-1.20.1/license-apache +201 -0
  183. package/native-notices/crates/typenum-1.20.1/license-mit +21 -0
  184. package/native-notices/crates/unicode-ident-1.0.24/license-apache +176 -0
  185. package/native-notices/crates/unicode-ident-1.0.24/license-mit +23 -0
  186. package/native-notices/crates/unicode-ident-1.0.24/license-unicode +39 -0
  187. package/native-notices/crates/utf8parse-0.2.2/license-apache +176 -0
  188. package/native-notices/crates/utf8parse-0.2.2/license-mit +25 -0
  189. package/native-notices/crates/version_check-0.9.5/license-apache +201 -0
  190. package/native-notices/crates/version_check-0.9.5/license-mit +19 -0
  191. package/native-notices/crates/zmij-1.0.21/license-mit +23 -0
  192. package/native-notices/manifest.json +2457 -0
  193. package/native-notices/readme.md +44 -0
  194. package/native-notices/runtime/gcc/gpl-3.0.txt +674 -0
  195. package/native-notices/runtime/gcc/runtime-library-exception-3.1.txt +73 -0
  196. package/native-notices/runtime/glibc/lgpl-2.1.txt +502 -0
  197. package/native-notices/rust/compiler-builtins-license.txt +275 -0
  198. package/native-notices/rust/copyright-library.html +8266 -0
  199. package/native-notices/rust/crates/addr2line-0.25.1/license-apache +201 -0
  200. package/native-notices/rust/crates/addr2line-0.25.1/license-mit +25 -0
  201. package/native-notices/rust/crates/adler2-2.0.1/license-0bsd +12 -0
  202. package/native-notices/rust/crates/adler2-2.0.1/license-apache +201 -0
  203. package/native-notices/rust/crates/adler2-2.0.1/license-mit +23 -0
  204. package/native-notices/rust/crates/memchr-2.7.6/copying +3 -0
  205. package/native-notices/rust/crates/memchr-2.7.6/license-mit +21 -0
  206. package/native-notices/rust/crates/memchr-2.7.6/unlicense +24 -0
  207. package/native-notices/rust/crates/miniz_oxide-0.8.9/license +25 -0
  208. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
  209. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
  210. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
  211. package/native-notices/rust/crates/object-0.37.3/license-apache +201 -0
  212. package/native-notices/rust/crates/object-0.37.3/license-mit +25 -0
  213. package/native-notices/rust/licenses/apache-2.0.txt +73 -0
  214. package/native-notices/rust/licenses/bsd-2-clause.txt +9 -0
  215. package/native-notices/rust/licenses/cc-by-sa-4.0.txt +427 -0
  216. package/native-notices/rust/licenses/gcc-exception-3.1.txt +30 -0
  217. package/native-notices/rust/licenses/gpl-2.0-only.txt +133 -0
  218. package/native-notices/rust/licenses/gpl-3.0-or-later.txt +202 -0
  219. package/native-notices/rust/licenses/isc.txt +7 -0
  220. package/native-notices/rust/licenses/llvm-exception.txt +15 -0
  221. package/native-notices/rust/licenses/mit.txt +9 -0
  222. package/native-notices/rust/licenses/ncsa.txt +29 -0
  223. package/native-notices/rust/licenses/ofl-1.1.txt +43 -0
  224. package/native-notices/rust/licenses/unicode-3.0.txt +39 -0
  225. package/package.json +9 -8
  226. package/readme.md +63 -6
  227. package/ts/00_commitinfo_data.ts +1 -1
  228. package/ts/classes.gitmanager.ts +10 -2
  229. package/ts/classes.repositoryservice.ts +41 -12
  230. package/ts/models.ts +22 -1
  231. package/ts/rust-gitmanager-bridge.ts +5 -3
@@ -3,6 +3,7 @@ import type {
3
3
  IGitManagerRepositoryServiceRequest,
4
4
  IGitManagerRepositoryServiceResult,
5
5
  IRustGitManagerRepositoryServiceDescriptor,
6
+ TGitManagerRepositoryServiceFailure,
6
7
  } from './models.js';
7
8
 
8
9
  class ByteLimitTransform extends plugins.stream.Transform {
@@ -11,7 +12,7 @@ class ByteLimitTransform extends plugins.stream.Transform {
11
12
  constructor(
12
13
  private readonly maximumBytes: number,
13
14
  private readonly label: string,
14
- private readonly onLimit: (errorArg: Error) => void,
15
+ private readonly onLimit: () => void,
15
16
  ) {
16
17
  super();
17
18
  }
@@ -28,9 +29,8 @@ class ByteLimitTransform extends plugins.stream.Transform {
28
29
  : Buffer.from(chunkArg);
29
30
  this.bytes += chunk.byteLength;
30
31
  if (!Number.isSafeInteger(this.bytes) || this.bytes > this.maximumBytes) {
31
- const error = new Error(this.label + ' exceeded the configured size limit');
32
- this.onLimit(error);
33
- callbackArg(error);
32
+ this.onLimit();
33
+ callbackArg(new Error(this.label + ' exceeded the configured size limit'));
34
34
  return;
35
35
  }
36
36
  callbackArg(null, chunk);
@@ -82,6 +82,7 @@ export class GitManagerRepositoryService {
82
82
  public readonly completed: Promise<IGitManagerRepositoryServiceResult>;
83
83
  private readonly child: plugins.childProcess.ChildProcessWithoutNullStreams;
84
84
  private completionSettled = false;
85
+ private failure: TGitManagerRepositoryServiceFailure | null = null;
85
86
  private timeout?: NodeJS.Timeout;
86
87
 
87
88
  constructor(
@@ -134,25 +135,31 @@ export class GitManagerRepositoryService {
134
135
  stdio: ['pipe', 'pipe', 'pipe'],
135
136
  windowsHide: true,
136
137
  });
137
- const fail = (errorArg: Error) => {
138
- this.terminate();
139
- return errorArg;
140
- };
138
+ const failWith = (failureArg: TGitManagerRepositoryServiceFailure) =>
139
+ () => this.fail(failureArg);
141
140
  const input = new ByteLimitTransform(
142
141
  descriptorArg.maxRequestBytes,
143
142
  'Git repository service request',
144
- fail,
143
+ failWith('requestLimitExceeded'),
145
144
  );
146
145
  const output = new ByteLimitTransform(
147
146
  descriptorArg.maxResponseBytes,
148
147
  'Git repository service response',
149
- fail,
148
+ failWith('responseLimitExceeded'),
150
149
  );
151
150
  const stderr = new ByteLimitTransform(
152
151
  128 * 1024,
153
152
  'Git repository service stderr',
154
- fail,
153
+ failWith('stderrLimitExceeded'),
155
154
  );
155
+ // The service owns every stream error: a consumer's pipe() into stdin
156
+ // would otherwise rethrow an unhandled error. Failures surface through
157
+ // `completed`. Git closing its stdin early is reported by its exit
158
+ // status, so write errors on the child's stdin end only the pipe.
159
+ for (const ownedStream of [input, output, stderr, this.child.stdout, this.child.stderr]) {
160
+ ownedStream.on('error', failWith('streamFailed'));
161
+ }
162
+ this.child.stdin.on('error', () => undefined);
156
163
  input.pipe(this.child.stdin);
157
164
  this.child.stdout.pipe(output);
158
165
  this.child.stderr.pipe(stderr);
@@ -173,11 +180,12 @@ export class GitManagerRepositoryService {
173
180
  resolve({
174
181
  exitCode,
175
182
  signal: signal as NodeJS.Signals | null,
183
+ failure: this.failure,
176
184
  });
177
185
  });
178
186
  });
179
187
  this.timeout = setTimeout(() => {
180
- this.terminate();
188
+ this.fail('processTimeout');
181
189
  }, descriptorArg.processTimeoutMs);
182
190
  this.timeout.unref();
183
191
  }
@@ -198,12 +206,33 @@ export class GitManagerRepositoryService {
198
206
  this.child.kill('SIGKILL');
199
207
  }
200
208
 
209
+ /**
210
+ * Kills the Git process tree and releases every stream, including output
211
+ * the caller never read, so `completed` settles without depending on the
212
+ * caller draining it.
213
+ */
201
214
  public async close(): Promise<void> {
202
215
  this.stdin.destroy();
203
216
  this.terminate();
217
+ for (const ownedStream of [
218
+ this.stdout,
219
+ this.stderr,
220
+ this.child.stdout,
221
+ this.child.stderr,
222
+ ]) {
223
+ ownedStream.destroy();
224
+ }
204
225
  await this.completed.catch(() => undefined);
205
226
  }
206
227
 
228
+ /** Records the first failure and terminates the Git process tree. */
229
+ private fail(failureArg: TGitManagerRepositoryServiceFailure): void {
230
+ if (!this.failure && !this.completionSettled) {
231
+ this.failure = failureArg;
232
+ }
233
+ this.terminate();
234
+ }
235
+
207
236
  private clearTimeout(): void {
208
237
  if (this.timeout) {
209
238
  clearTimeout(this.timeout);
package/ts/models.ts CHANGED
@@ -115,9 +115,26 @@ export interface IRustGitManagerRepositoryServiceDescriptor
115
115
  idleTimeoutSeconds: number;
116
116
  }
117
117
 
118
+ /**
119
+ * Why GitManager terminated a repository service process. The value says the
120
+ * transfer was cut, not that the repository is unchanged: an SSH-style
121
+ * receive-pack has no receive gate, so Git updates refs as soon as it has read
122
+ * a complete pack, and excess bytes arriving after that cannot undo those
123
+ * updates. Reconcile refs from the repository after every receive-pack,
124
+ * whatever `failure` says.
125
+ */
126
+ export type TGitManagerRepositoryServiceFailure =
127
+ | 'requestLimitExceeded'
128
+ | 'responseLimitExceeded'
129
+ | 'stderrLimitExceeded'
130
+ | 'streamFailed'
131
+ | 'processTimeout';
132
+
118
133
  export interface IGitManagerRepositoryServiceResult {
119
134
  exitCode: number | null;
120
135
  signal: NodeJS.Signals | null;
136
+ /** The first failure that made GitManager terminate the process; null otherwise. */
137
+ failure: TGitManagerRepositoryServiceFailure | null;
121
138
  }
122
139
 
123
140
  export interface IGitManagerRestoreBundleRequest
@@ -231,6 +248,9 @@ export type {
231
248
  IGitManagerMergeResult,
232
249
  IGitManagerReadFileRequest,
233
250
  IGitManagerRef,
251
+ IGitManagerRefHead,
252
+ IGitManagerRefInventoryPage,
253
+ IGitManagerRefInventoryStale,
234
254
  IGitManagerRefRequest,
235
255
  IGitManagerRepositoryInfo,
236
256
  IGitManagerRepositorySelector,
@@ -243,6 +263,7 @@ export type {
243
263
  TGitManagerMergeMethod,
244
264
  TGitManagerMergeStatus,
245
265
  TGitManagerObjectType,
246
- TGitManagerRefType,
266
+ TGitManagerRefInventoryPagination,
267
+ TGitManagerRefInventoryResult,
247
268
  TGitManagerTreeEntryType,
248
269
  } from '@foss.global/interfaces';
@@ -13,7 +13,6 @@ import type {
13
13
  IGitManagerMergeRequest,
14
14
  IGitManagerMergeResult,
15
15
  IGitManagerReadFileRequest,
16
- IGitManagerRef,
17
16
  IGitManagerRefRequest,
18
17
  IGitManagerProtectedRefsApplyResult,
19
18
  IGitManagerSmartHttpRepositoryProtectedRefs,
@@ -34,6 +33,7 @@ import type {
34
33
  IGitManagerTreeEntry,
35
34
  IGitManagerTreeRequest,
36
35
  IRustGitManagerConfig,
36
+ TGitManagerRefInventoryResult,
37
37
  IRustGitManagerRepositoryServiceDescriptor,
38
38
  } from './models.js';
39
39
 
@@ -69,7 +69,7 @@ type TGitManagerCommands = {
69
69
  prepareRepositoryService: { params: IGitManagerRepositoryServiceRequest; result: IRustGitManagerRepositoryServiceDescriptor };
70
70
  restoreRepositoryBundle: { params: IGitManagerRestoreBundleRequest; result: IGitManagerRepositoryInfo };
71
71
  listRepositories: { params: Record<string, never>; result: IGitManagerRepositoryInfo[] };
72
- listRefs: { params: IGitManagerRefRequest; result: IGitManagerRef[] };
72
+ listRefs: { params: IGitManagerRefRequest; result: TGitManagerRefInventoryResult };
73
73
  listRepositoryLfsPointers: { params: IGitManagerRepositorySelector; result: IGitManagerRepositoryLfsPointer[] };
74
74
  mergeRepository: { params: IGitManagerMergeRequest; result: IGitManagerMergeResult };
75
75
  listTree: { params: IGitManagerTreeRequest; result: IGitManagerTreeEntry[] };
@@ -278,7 +278,9 @@ export class RustGitManagerBridge extends plugins.EventEmitter {
278
278
  return this.bridge.sendCommand('listRepositories', {});
279
279
  }
280
280
 
281
- public async listRefs(requestArg: IGitManagerRefRequest): Promise<IGitManagerRef[]> {
281
+ public async listRefs(
282
+ requestArg: IGitManagerRefRequest,
283
+ ): Promise<TGitManagerRefInventoryResult> {
282
284
  return this.bridge.sendCommand('listRefs', requestArg);
283
285
  }
284
286