sfdx-git-delta 7.1.0 → 7.3.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 (134) hide show
  1. package/README.md +27 -5
  2. package/lib/adapter/GitAdapter.d.ts +26 -12
  3. package/lib/adapter/GitAdapter.js +162 -175
  4. package/lib/adapter/GitAdapter.js.map +1 -1
  5. package/lib/adapter/ioExecutor.d.ts +6 -7
  6. package/lib/adapter/ioExecutor.js +22 -22
  7. package/lib/adapter/ioExecutor.js.map +1 -1
  8. package/lib/adapter/pathMatching.d.ts +9 -0
  9. package/lib/adapter/pathMatching.js +83 -0
  10. package/lib/adapter/pathMatching.js.map +1 -0
  11. package/lib/adapter/treeIndex.d.ts +7 -4
  12. package/lib/adapter/treeIndex.js +34 -0
  13. package/lib/adapter/treeIndex.js.map +1 -1
  14. package/lib/adapter/treeReader.d.ts +8 -0
  15. package/lib/adapter/treeReader.js +22 -0
  16. package/lib/adapter/treeReader.js.map +1 -0
  17. package/lib/commands/sgd/source/delta.d.ts +1 -0
  18. package/lib/commands/sgd/source/delta.js +5 -0
  19. package/lib/commands/sgd/source/delta.js.map +1 -1
  20. package/lib/main.d.ts +2 -2
  21. package/lib/main.js +84 -37
  22. package/lib/main.js.map +1 -1
  23. package/lib/post-processor/baseProcessor.d.ts +11 -8
  24. package/lib/post-processor/baseProcessor.js +8 -8
  25. package/lib/post-processor/baseProcessor.js.map +1 -1
  26. package/lib/post-processor/changesManifestProcessor.d.ts +3 -2
  27. package/lib/post-processor/changesManifestProcessor.js +5 -4
  28. package/lib/post-processor/changesManifestProcessor.js.map +1 -1
  29. package/lib/post-processor/flowTranslationProcessor.d.ts +6 -8
  30. package/lib/post-processor/flowTranslationProcessor.js +18 -20
  31. package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
  32. package/lib/post-processor/includeProcessor.d.ts +6 -6
  33. package/lib/post-processor/includeProcessor.js +8 -7
  34. package/lib/post-processor/includeProcessor.js.map +1 -1
  35. package/lib/post-processor/packageGenerator.d.ts +3 -2
  36. package/lib/post-processor/packageGenerator.js +5 -4
  37. package/lib/post-processor/packageGenerator.js.map +1 -1
  38. package/lib/post-processor/postProcessorManager.d.ts +5 -8
  39. package/lib/post-processor/postProcessorManager.js +24 -32
  40. package/lib/post-processor/postProcessorManager.js.map +1 -1
  41. package/lib/service/botHandler.d.ts +1 -2
  42. package/lib/service/botHandler.js +17 -10
  43. package/lib/service/botHandler.js.map +1 -1
  44. package/lib/service/containedDecomposedHandler.d.ts +4 -5
  45. package/lib/service/containedDecomposedHandler.js +14 -13
  46. package/lib/service/containedDecomposedHandler.js.map +1 -1
  47. package/lib/service/customFieldHandler.d.ts +1 -2
  48. package/lib/service/customFieldHandler.js +7 -6
  49. package/lib/service/customFieldHandler.js.map +1 -1
  50. package/lib/service/customLabelHandler.d.ts +1 -2
  51. package/lib/service/customLabelHandler.js +3 -3
  52. package/lib/service/customLabelHandler.js.map +1 -1
  53. package/lib/service/customObjectHandler.d.ts +3 -4
  54. package/lib/service/customObjectHandler.js +11 -10
  55. package/lib/service/customObjectHandler.js.map +1 -1
  56. package/lib/service/decomposedHandler.d.ts +3 -4
  57. package/lib/service/decomposedHandler.js +5 -4
  58. package/lib/service/decomposedHandler.js.map +1 -1
  59. package/lib/service/diffLineInterpreter.d.ts +3 -5
  60. package/lib/service/diffLineInterpreter.js +17 -16
  61. package/lib/service/diffLineInterpreter.js.map +1 -1
  62. package/lib/service/flowHandler.d.ts +1 -2
  63. package/lib/service/flowHandler.js +9 -4
  64. package/lib/service/flowHandler.js.map +1 -1
  65. package/lib/service/inFileHandler.d.ts +8 -9
  66. package/lib/service/inFileHandler.js +25 -25
  67. package/lib/service/inFileHandler.js.map +1 -1
  68. package/lib/service/inFolderHandler.d.ts +4 -5
  69. package/lib/service/inFolderHandler.js +7 -6
  70. package/lib/service/inFolderHandler.js.map +1 -1
  71. package/lib/service/inResourceHandler.d.ts +4 -5
  72. package/lib/service/inResourceHandler.js +11 -9
  73. package/lib/service/inResourceHandler.js.map +1 -1
  74. package/lib/service/objectTranslationHandler.d.ts +1 -2
  75. package/lib/service/objectTranslationHandler.js +6 -5
  76. package/lib/service/objectTranslationHandler.js.map +1 -1
  77. package/lib/service/reportingFolderHandler.d.ts +6 -7
  78. package/lib/service/reportingFolderHandler.js +6 -6
  79. package/lib/service/reportingFolderHandler.js.map +1 -1
  80. package/lib/service/sharedFolderHandler.d.ts +4 -5
  81. package/lib/service/sharedFolderHandler.js +6 -6
  82. package/lib/service/sharedFolderHandler.js.map +1 -1
  83. package/lib/service/standardHandler.d.ts +8 -10
  84. package/lib/service/standardHandler.js +34 -36
  85. package/lib/service/standardHandler.js.map +1 -1
  86. package/lib/service/typeHandlerFactory.d.ts +7 -5
  87. package/lib/service/typeHandlerFactory.js +13 -12
  88. package/lib/service/typeHandlerFactory.js.map +1 -1
  89. package/lib/types/config.d.ts +6 -1
  90. package/lib/types/handlerResult.d.ts +7 -7
  91. package/lib/types/handlerResult.js +10 -1
  92. package/lib/types/handlerResult.js.map +1 -1
  93. package/lib/types/runContext.d.ts +21 -0
  94. package/lib/types/runContext.js +12 -0
  95. package/lib/types/runContext.js.map +1 -0
  96. package/lib/types/work.d.ts +1 -1
  97. package/lib/utils/arrayUtils.d.ts +1 -1
  98. package/lib/utils/arrayUtils.js.map +1 -1
  99. package/lib/utils/bundleRollup.d.ts +6 -0
  100. package/lib/utils/bundleRollup.js +62 -0
  101. package/lib/utils/bundleRollup.js.map +1 -0
  102. package/lib/utils/changeSet.d.ts +12 -15
  103. package/lib/utils/changeSet.js +23 -120
  104. package/lib/utils/changeSet.js.map +1 -1
  105. package/lib/utils/changesAssembly.d.ts +8 -0
  106. package/lib/utils/changesAssembly.js +21 -0
  107. package/lib/utils/changesAssembly.js.map +1 -0
  108. package/lib/utils/configValidator.d.ts +8 -6
  109. package/lib/utils/configValidator.js +56 -13
  110. package/lib/utils/configValidator.js.map +1 -1
  111. package/lib/utils/fsHelper.d.ts +5 -3
  112. package/lib/utils/fsHelper.js +12 -9
  113. package/lib/utils/fsHelper.js.map +1 -1
  114. package/lib/utils/messageSanitizer.d.ts +1 -0
  115. package/lib/utils/messageSanitizer.js +48 -0
  116. package/lib/utils/messageSanitizer.js.map +1 -0
  117. package/lib/utils/metadataBoundaryResolver.d.ts +7 -5
  118. package/lib/utils/metadataBoundaryResolver.js +18 -21
  119. package/lib/utils/metadataBoundaryResolver.js.map +1 -1
  120. package/lib/utils/pathspec.d.ts +15 -0
  121. package/lib/utils/pathspec.js +71 -0
  122. package/lib/utils/pathspec.js.map +1 -0
  123. package/lib/utils/renameResolver.d.ts +6 -7
  124. package/lib/utils/renameResolver.js +10 -9
  125. package/lib/utils/renameResolver.js.map +1 -1
  126. package/lib/utils/repoGitDiff.d.ts +3 -0
  127. package/lib/utils/repoGitDiff.js +30 -1
  128. package/lib/utils/repoGitDiff.js.map +1 -1
  129. package/messages/delta.md +38 -0
  130. package/oclif.manifest.json +10 -3
  131. package/package.json +23 -22
  132. package/lib/post-processor/bundleRollupProcessor.d.ts +0 -7
  133. package/lib/post-processor/bundleRollupProcessor.js +0 -81
  134. package/lib/post-processor/bundleRollupProcessor.js.map +0 -1
@@ -17,36 +17,41 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
17
17
  * detectRenames, ignoreWhitespace })
18
18
  * git archive --format=tar -> tree walk + streamBlob
19
19
  * git grep -l -> tree walk + readBlob + RegExp
20
- * git config core.* -> no-op (nothing to configure)
20
+ * (grepBlobs, shared by
21
+ * grepUnderPaths and
22
+ * grepMatchingPathspecs)
23
+ * git merge-base <from> <to> -> repo.primitives.mergeBase
21
24
  *
22
- * Fidelity note: gitGrep matches with JS RegExp semantics, not POSIX basic
23
- * regex. Callers are expected to pass metacharacter-free literals so the two
24
- * semantics agree; the known pattern set is pinned by
25
+ * Fidelity note: grepBlobs matches content with JS RegExp semantics, not
26
+ * POSIX basic regex. Callers are expected to pass metacharacter-free
27
+ * literals so the two semantics agree; the known pattern set is pinned by
25
28
  * gitGrepPatternInventory.test.ts (new callers must extend that inventory).
29
+ * A second fidelity axis follows from the path-matching split: path
30
+ * matching is literal-prefix on grepUnderPaths' concrete-path surface and
31
+ * wildmatch on grepMatchingPathspecs' pattern surface — only sgd-constructed
32
+ * values, already validated to carry no wildcard metacharacters, reach the
33
+ * latter.
26
34
  */
27
35
  import { once } from 'node:events';
28
36
  import { createReadStream } from 'node:fs';
29
37
  import { readFile, stat } from 'node:fs/promises';
30
38
  import { join } from 'node:path/posix';
31
39
  import { PassThrough, Readable } from 'node:stream';
32
- import { openRepository, toSimilarityPercent, } from '@scolladon/tsgit';
33
- import { TAB } from '../constant/cliConstants.js';
40
+ import { openRepository, } from '@scolladon/tsgit';
34
41
  import { UTF8_ENCODING } from '../constant/fsConstants.js';
35
- import { ADDITION, DELETION, HEAD, MODIFICATION, RENAMED, } from '../constant/gitConstants.js';
36
- import { pushAll } from '../utils/arrayUtils.js';
42
+ import { HEAD } from '../constant/gitConstants.js';
37
43
  import { getErrorMessage } from '../utils/errorUtils.js';
38
- import { treatPathSep } from '../utils/fsUtils.js';
44
+ import { sanitizePath, treatPathSep } from '../utils/fsUtils.js';
39
45
  import { getLFSObjectContentPath, isLFS } from '../utils/gitLfsHelper.js';
40
46
  import { log } from '../utils/LoggingDecorator.js';
41
47
  import { Logger, lazy } from '../utils/LoggingService.js';
42
48
  import { EscalateToStreamingSignal, SIZE_THRESHOLD, } from './gitBlobReader.js';
49
+ import { buildLiteralMatcher, buildPathspecMatcher, hasRootScope, inScope, nonRootScopes, ROOT_PATHS, toDiffLines, } from './pathMatching.js';
43
50
  import { TreeIndex } from './treeIndex.js';
44
51
  import { mapTsgitError } from './tsgitErrorMap.js';
45
- const ROOT_PATHS = new Set(['', '.', './']);
46
52
  // walkTree yields directories and gitlinks too; only blob-bearing modes
47
53
  // belong in the path -> blob id index (ls-tree -r parity).
48
54
  const BLOB_MODES = new Set(['100644', '100755', '120000']);
49
- const GITLINK_MODE = '160000';
50
55
  // Maps sgd's whitespace-ignoring diff request onto tsgit's data-mode
51
56
  // whitespace knobs: whitespace-only modifications drop out of the TreeDiff.
52
57
  const IGNORE_WHITESPACE_OPTIONS = {
@@ -60,15 +65,21 @@ const IGNORE_WHITESPACE_OPTIONS = {
60
65
  const LFS_MAGIC = Buffer.from('version https://git-lfs.github.com/spec/v1\n');
61
66
  const LFS_POINTER_CAP = 1024;
62
67
  export default class GitAdapter {
63
- config;
68
+ repo;
64
69
  static instances = new Map();
70
+ // Normalises the pool key the same way ConfigValidator eventually
71
+ // normalises config.repo (fsUtils#sanitizePath), so two configs that
72
+ // differ only by an unnormalised repo path (e.g. `./repo` vs `repo`)
73
+ // still resolve to one instance. ConfigValidator pools an adapter on the
74
+ // raw config.repo before _sanitizeConfig runs, so without this a single
75
+ // `--repo-dir ./repo` invocation would still allocate two instances.
65
76
  static keyFor(config) {
66
- return `${config.repo}\0${config.to}`;
77
+ return sanitizePath(config.repo);
67
78
  }
68
79
  static getInstance(config) {
69
80
  const key = GitAdapter.keyFor(config);
70
81
  if (!GitAdapter.instances.has(key)) {
71
- GitAdapter.instances.set(key, new GitAdapter(config));
82
+ GitAdapter.instances.set(key, new GitAdapter(key));
72
83
  }
73
84
  return GitAdapter.instances.get(key);
74
85
  }
@@ -78,19 +89,20 @@ export default class GitAdapter {
78
89
  }
79
90
  GitAdapter.instances.clear();
80
91
  }
81
- treeIndex;
82
92
  // Per revision: repo-relative path -> blob ObjectId. The tsgit counterpart
83
- // of `git cat-file --batch` oid:path resolution.
93
+ // of `git cat-file --batch` oid:path resolution. Deterministic per
94
+ // revision and safe to share across every run against this repository —
95
+ // unlike the tree index (see buildTreeIndex), nothing here varies by
96
+ // caller-supplied scope.
84
97
  blobIdIndex;
85
98
  repoHandle = null;
86
- constructor(config) {
87
- this.config = config;
88
- this.treeIndex = new Map();
99
+ constructor(repo) {
100
+ this.repo = repo;
89
101
  this.blobIdIndex = new Map();
90
102
  }
91
103
  getRepo() {
92
104
  if (!this.repoHandle) {
93
- this.repoHandle = openRepository({ cwd: this.config.repo });
105
+ this.repoHandle = openRepository({ cwd: this.repo });
94
106
  }
95
107
  return this.repoHandle;
96
108
  }
@@ -101,11 +113,6 @@ export default class GitAdapter {
101
113
  this.repoHandle = null;
102
114
  }
103
115
  }
104
- async configureRepository() {
105
- // core.longpaths / core.quotepath exist to fix `git` CLI output and
106
- // Windows path handling in subprocesses. tsgit reads the object store
107
- // directly: nothing to configure.
108
- }
109
116
  async parseRev(ref) {
110
117
  try {
111
118
  const repo = await this.getRepo();
@@ -115,25 +122,46 @@ export default class GitAdapter {
115
122
  throw mapTsgitError(error, ref);
116
123
  }
117
124
  }
118
- async preBuildTreeIndex(revision, scopePaths) {
119
- if (this.treeIndex.has(revision)) {
120
- return;
121
- }
125
+ // Builds and RETURNS a tree index for (revision, scopePaths) instead of
126
+ // caching it: the caller (main.ts) owns the result and threads it to
127
+ // every reader, so a builder/reader scope mismatch becomes structurally
128
+ // impossible rather than a silently-missed cache key. On failure this
129
+ // degrades exactly like the old preBuildTreeIndex did — debug-log and
130
+ // return undefined, leaving the caller with no index for that revision
131
+ // (readers treat "no index" as an empty read, never a throw).
132
+ async buildTreeIndex(revision, scopePaths) {
122
133
  try {
123
134
  const blobIds = await this.indexRevision(revision);
124
135
  const index = new TreeIndex();
125
- const scopes = scopePaths.filter(scope => !ROOT_PATHS.has(scope));
136
+ const scopes = scopePaths.filter(path => !ROOT_PATHS.has(path));
126
137
  for (const path of blobIds.keys()) {
127
138
  if (scopes.length === 0 || inScope(path, scopes)) {
128
139
  index.add(path);
129
140
  }
130
141
  }
131
- this.treeIndex.set(revision, index);
142
+ return index;
132
143
  }
133
144
  catch (error) {
134
- Logger.debug(lazy `preBuildTreeIndex: tree walk for '${revision}' failed: ${() => getErrorMessage(error)}`);
145
+ Logger.debug(lazy `buildTreeIndex: tree walk for '${revision}' failed: ${() => getErrorMessage(error)}`);
146
+ return undefined;
135
147
  }
136
148
  }
149
+ // revParse returns the tag OBJECT oid for annotated tags (no auto-peel),
150
+ // so follow the tag chain down to the tagged commit — matching
151
+ // `git ls-tree -r <tag>` / `git merge-base` peeling semantics. `label`
152
+ // identifies the original ref/oid for the error message (it can differ
153
+ // from `oid` itself, e.g. a revision string vs. its resolved object id).
154
+ async peelToCommit(oid, label) {
155
+ const repo = await this.getRepo();
156
+ let target = await repo.primitives.readObject(oid);
157
+ while (target.type === 'tag') {
158
+ target = await repo.primitives.readObject(target.data.object);
159
+ }
160
+ if (target.type !== 'commit') {
161
+ throw new Error(`'${label}' does not resolve to a commit`);
162
+ }
163
+ return target;
164
+ }
137
165
  // Flattens the full tree at `revision` once and caches path -> blob oid.
138
166
  // Shared by the tree index, blob reads, archive streaming and grep.
139
167
  // flattenTree is the bulk traversal path (one call, no per-entry yields);
@@ -145,17 +173,8 @@ export default class GitAdapter {
145
173
  }
146
174
  const repo = await this.getRepo();
147
175
  const revisionId = await repo.revParse(revision);
148
- // revParse returns the tag OBJECT oid for annotated tags (no auto-peel),
149
- // so follow the tag chain down to the tagged commit before reading its
150
- // tree — matching `git ls-tree -r <tag>` semantics.
151
- let target = await repo.primitives.readObject(revisionId);
152
- while (target.type === 'tag') {
153
- target = await repo.primitives.readObject(target.data.object);
154
- }
155
- if (target.type !== 'commit') {
156
- throw new Error(`'${revision}' does not resolve to a commit`);
157
- }
158
- const { entries } = await repo.primitives.flattenTree(target.data.tree);
176
+ const commit = await this.peelToCommit(revisionId, revision);
177
+ const { entries } = await repo.primitives.flattenTree(commit.data.tree);
159
178
  const blobIds = new Map();
160
179
  for (const [path, entry] of entries) {
161
180
  if (BLOB_MODES.has(entry.mode)) {
@@ -165,16 +184,39 @@ export default class GitAdapter {
165
184
  this.blobIdIndex.set(revision, blobIds);
166
185
  return blobIds;
167
186
  }
168
- pathExistsImpl(path, revision) {
169
- const index = this.treeIndex.get(revision);
170
- if (!index)
171
- return false;
172
- if (ROOT_PATHS.has(path))
173
- return index.size > 0;
174
- return index.hasPath(path);
175
- }
176
- async pathExists(path, revision = this.config.to) {
177
- return this.pathExistsImpl(path, revision);
187
+ // Equivalent to `git merge-base <from> <to>`, resolved in-process via
188
+ // tsgit no local git binary needed. `from`/`to` are resolved through
189
+ // revParse the same way indexRevision does, so this method is total over
190
+ // any revision string (ref, short SHA, `HEAD~2`, …) rather than encoding
191
+ // an "already an ObjectId" precondition in a comment. tsgit's `[]` result
192
+ // (no common ancestor / unrelated histories) is a legitimate git answer,
193
+ // not an exception — surfacing it as a user-facing error is the caller's
194
+ // job (ConfigValidator), not this adapter's.
195
+ async getMergeBase(from, to) {
196
+ try {
197
+ const repo = await this.getRepo();
198
+ const [fromId, toId] = await Promise.all([
199
+ repo.revParse(from),
200
+ repo.revParse(to),
201
+ ]);
202
+ const [fromCommit, toCommit] = await Promise.all([
203
+ this.peelToCommit(fromId, from),
204
+ this.peelToCommit(toId, to),
205
+ ]);
206
+ // Criss-cross histories can legitimately have several common
207
+ // ancestors; tsgit's mergeBase primitive returns all of them. Taking
208
+ // only the first matches `git merge-base`'s own default (without
209
+ // --all, which returns just one candidate), so this is a deliberate
210
+ // choice, not an oversight.
211
+ const [base] = await repo.primitives.mergeBase([
212
+ fromCommit.id,
213
+ toCommit.id,
214
+ ]);
215
+ return base;
216
+ }
217
+ catch (error) {
218
+ throw mapTsgitError(error, `${from}...${to}`);
219
+ }
178
220
  }
179
221
  async getFirstCommitRef() {
180
222
  try {
@@ -214,7 +256,7 @@ export default class GitAdapter {
214
256
  let content = await this.readBlobBuffer(forRef);
215
257
  if (isLFS(content)) {
216
258
  const lfsPath = getLFSObjectContentPath(content);
217
- content = await readFile(join(this.config.repo, lfsPath));
259
+ content = await readFile(join(this.repo, lfsPath));
218
260
  }
219
261
  return content;
220
262
  }
@@ -244,7 +286,7 @@ export default class GitAdapter {
244
286
  // The pointer itself is tiny, so the accumulated-length guard above
245
287
  // never fires for LFS-backed files — size the resolved object instead
246
288
  // and escalate oversized ones onto the streaming path.
247
- const lfsFile = join(this.config.repo, getLFSObjectContentPath(content));
289
+ const lfsFile = join(this.repo, getLFSObjectContentPath(content));
248
290
  const { size } = await stat(lfsFile);
249
291
  if (size > SIZE_THRESHOLD) {
250
292
  throw new EscalateToStreamingSignal(size, forRef);
@@ -280,7 +322,7 @@ export default class GitAdapter {
280
322
  async pipeLfsObject(chunks, head, out) {
281
323
  const pointer = await accumulatePointer(chunks, head);
282
324
  const lfsPath = getLFSObjectContentPath(pointer);
283
- createReadStream(join(this.config.repo, lfsPath))
325
+ createReadStream(join(this.repo, lfsPath))
284
326
  .on('error', (error) => out.destroy(error))
285
327
  .pipe(out);
286
328
  }
@@ -303,42 +345,30 @@ export default class GitAdapter {
303
345
  const content = await this.getBufferContent(forRef);
304
346
  return content.toString(UTF8_ENCODING);
305
347
  }
306
- getFilesPathCached(path, revision) {
307
- const index = this.treeIndex.get(revision);
308
- if (!index)
309
- return [];
310
- if (ROOT_PATHS.has(path))
311
- return index.allPaths();
312
- if (index.has(path))
313
- return [path];
314
- return index.getFilesUnder(path);
315
- }
316
- async getFilesPath(paths, revision = this.config.to) {
317
- if (typeof paths === 'string') {
318
- return this.getFilesPathCached(paths, revision);
319
- }
320
- const result = [];
321
- for (const path of paths) {
322
- pushAll(result, this.getFilesPathCached(path, revision));
323
- }
324
- return result;
325
- }
326
- async listDirAtRevision(dir, revision) {
327
- const index = this.treeIndex.get(revision);
328
- if (!index)
329
- return [];
330
- return index.listChildren(dir);
331
- }
332
- async gitGrep(pattern, path, revision = this.config.to) {
348
+ // Concrete-path surface: `path` comes straight off the repository (a git
349
+ // diff path run through treatPathSep, or MetadataElement.basePath) and is
350
+ // matched by literal directory prefix — never as a wildmatch pathspec, so
351
+ // a metacharacter incidentally present in a real path (e.g. an object
352
+ // folder named `Custom[1]__c`) can never be misread as a glob.
353
+ async grepUnderPaths(pattern, path, revision) {
354
+ return this.grepBlobs(pattern, path, revision, buildLiteralMatcher);
355
+ }
356
+ // Pattern surface: `path` is an sgd-constructed pathspec (e.g.
357
+ // `<source>/*.translation-meta.xml`) and is matched with git pathspec
358
+ // wildmatch semantics (literal + glob).
359
+ async grepMatchingPathspecs(pattern, path, revision) {
360
+ return this.grepBlobs(pattern, path, revision, buildPathspecMatcher);
361
+ }
362
+ async grepBlobs(pattern, path, revision, buildMatcher) {
333
363
  try {
334
364
  const repo = await this.getRepo();
335
365
  const paths = Array.isArray(path) ? path : [path];
336
366
  const blobIds = await this.indexRevision(revision);
337
367
  const matcher = new RegExp(pattern);
338
- const matchesPathspec = buildPathspecMatcher(paths);
368
+ const matchesPath = buildMatcher(paths);
339
369
  const matches = [];
340
370
  for (const [filePath, blobId] of blobIds) {
341
- if (!matchesPathspec(filePath))
371
+ if (!matchesPath(filePath))
342
372
  continue;
343
373
  const blob = await repo.primitives.readBlob(blobId);
344
374
  if (matcher.test(Buffer.from(blob.content).toString(UTF8_ENCODING))) {
@@ -348,7 +378,7 @@ export default class GitAdapter {
348
378
  return matches;
349
379
  }
350
380
  catch (error) {
351
- Logger.debug(lazy `gitGrep: grep for '${pattern}' in '${path}' at '${revision}' failed: ${() => getErrorMessage(error)}`);
381
+ Logger.debug(lazy `grepBlobs: grep for '${pattern}' in '${path}' at '${revision}' failed: ${() => getErrorMessage(error)}`);
352
382
  return [];
353
383
  }
354
384
  }
@@ -357,41 +387,63 @@ export default class GitAdapter {
357
387
  // behind `config.changesManifest` like the subprocess `-M`), and the
358
388
  // whitespace options drop whitespace-only modifications the way the
359
389
  // subprocess numstat path does.
360
- async *streamDiffLines() {
361
- const { changes } = await this.requestDiff();
362
- const scopes = this.config.source.filter(scope => !ROOT_PATHS.has(scope));
390
+ async *streamDiffLines(request) {
391
+ const { spec, verdict, scopes } = request;
392
+ const { changes } = await this.requestDiff(spec);
393
+ // git unions pathspecs (`-- . src` matches everything), so a root scope
394
+ // must not be filtered out here even when non-root scopes are also
395
+ // configured — the full, unfiltered source list is what `inScope`
396
+ // (via toDiffLines) expects to reproduce that union.
363
397
  for (const change of changes) {
364
- yield* toDiffLines(change, scopes);
398
+ verdict.changesSeen++;
399
+ for (const line of toDiffLines(change, scopes)) {
400
+ verdict.linesYielded++;
401
+ yield line;
402
+ }
365
403
  }
366
404
  }
367
- async requestDiff() {
405
+ // Every non-root scope matched nothing in the drained diff. A path can
406
+ // match several scopes, so this is all-or-nothing rather than per-scope
407
+ // — per-scope attribution needs bookkeeping that buys nothing. A root
408
+ // scope alongside non-root ones still means "everything is in scope"
409
+ // (union), so naming the non-root scopes as unmatched would be
410
+ // misleading — suppress the verdict entirely when one is present.
411
+ getUnmatchedSourceScopes(verdict, scopes) {
412
+ if (hasRootScope(scopes))
413
+ return [];
414
+ const unmatchable = nonRootScopes(scopes);
415
+ // Stryker disable next-line ConditionalExpression,EqualityOperator -- equivalent: `.length` is never negative so `>= 0` is a tautology, and forcing this operand true only changes the ternary when unmatchable.length === 0 — in which case `unmatchable` is itself [], deep-equal to the `: []` branch it would take instead
416
+ return unmatchable.length > 0 &&
417
+ verdict.changesSeen > 0 &&
418
+ verdict.linesYielded === 0
419
+ ? unmatchable
420
+ : [];
421
+ }
422
+ async requestDiff(spec) {
368
423
  try {
369
424
  const repo = await this.getRepo();
370
425
  return await repo.diff({
371
- from: this.config.from,
372
- to: this.config.to,
426
+ from: spec.from,
427
+ to: spec.to,
373
428
  recursive: true,
374
- detectRenames: Boolean(this.config.changesManifest),
375
- ...(this.config.ignoreWhitespace ? IGNORE_WHITESPACE_OPTIONS : {}),
429
+ detectRenames: spec.detectRenames,
430
+ ...(spec.ignoreWhitespace ? IGNORE_WHITESPACE_OPTIONS : {}),
376
431
  });
377
432
  }
378
433
  catch (error) {
379
- throw mapTsgitError(error, `${this.config.from}..${this.config.to}`);
434
+ throw mapTsgitError(error, `${spec.from}..${spec.to}`);
380
435
  }
381
436
  }
382
437
  }
383
- __decorate([
384
- log
385
- ], GitAdapter.prototype, "configureRepository", null);
386
438
  __decorate([
387
439
  log
388
440
  ], GitAdapter.prototype, "parseRev", null);
389
441
  __decorate([
390
442
  log
391
- ], GitAdapter.prototype, "preBuildTreeIndex", null);
443
+ ], GitAdapter.prototype, "buildTreeIndex", null);
392
444
  __decorate([
393
445
  log
394
- ], GitAdapter.prototype, "pathExists", null);
446
+ ], GitAdapter.prototype, "getMergeBase", null);
395
447
  __decorate([
396
448
  log
397
449
  ], GitAdapter.prototype, "getFirstCommitRef", null);
@@ -400,13 +452,10 @@ __decorate([
400
452
  ], GitAdapter.prototype, "getStringContent", null);
401
453
  __decorate([
402
454
  log
403
- ], GitAdapter.prototype, "getFilesPath", null);
404
- __decorate([
405
- log
406
- ], GitAdapter.prototype, "listDirAtRevision", null);
455
+ ], GitAdapter.prototype, "grepUnderPaths", null);
407
456
  __decorate([
408
457
  log
409
- ], GitAdapter.prototype, "gitGrep", null);
458
+ ], GitAdapter.prototype, "grepMatchingPathspecs", null);
410
459
  __decorate([
411
460
  log
412
461
  ], GitAdapter.prototype, "streamDiffLines", null);
@@ -417,14 +466,18 @@ __decorate([
417
466
  async function* normalizeChunks(source) {
418
467
  yield* source;
419
468
  }
420
- const isLfsPointer = (head) => head.length >= LFS_MAGIC.length &&
469
+ const isLfsPointer = (head) =>
470
+ // Stryker disable next-line ConditionalExpression -- equivalent: the length guard is redundant. Buffer#subarray clamps rather than throwing when the end index exceeds the buffer, and Buffer#equals is false for operands of differing length, so the comparison alone already returns false for any head shorter than the magic
471
+ head.length >= LFS_MAGIC.length &&
421
472
  head.subarray(0, LFS_MAGIC.length).equals(LFS_MAGIC);
422
473
  const peekHead = async (chunks) => {
423
474
  const parts = [];
424
475
  let length = 0;
476
+ // Stryker disable next-line EqualityOperator -- equivalent: `<=` only shifts where the peek stops versus what the caller's remaining-chunk iteration picks up; the same total bytes reach forwardChunks/accumulatePointer either way, so the streamed output is byte-identical
425
477
  while (length < LFS_MAGIC.length) {
426
478
  const result = await chunks.next();
427
479
  if (result.done) {
480
+ // Stryker disable next-line BooleanLiteral -- equivalent: `exhausted` only gates whether forwardChunks re-enters a `for await` over the generator, and per the async-generator protocol a generator that has returned done keeps returning done — so re-entering when already exhausted is a guaranteed zero-iteration no-op
428
481
  return { head: Buffer.concat(parts, length), exhausted: true };
429
482
  }
430
483
  parts.push(result.value);
@@ -438,9 +491,11 @@ const writeChunk = async (out, chunk) => {
438
491
  }
439
492
  };
440
493
  const forwardChunks = async (chunks, out, head, exhausted) => {
494
+ // Stryker disable next-line ConditionalExpression,EqualityOperator -- equivalent: writing a zero-length Buffer to a PassThrough is a no-op (no 'data' event, readableLength/writableLength unchanged, write() returns true), so calling writeChunk unconditionally when head is empty is indistinguishable from skipping it
441
495
  if (head.length > 0) {
442
496
  await writeChunk(out, head);
443
497
  }
498
+ // Stryker disable next-line ConditionalExpression -- equivalent: same reasoning as the `exhausted: true` return in peekHead — entering this loop on an already-exhausted generator iterates zero times
444
499
  if (!exhausted) {
445
500
  for await (const chunk of chunks) {
446
501
  await writeChunk(out, chunk);
@@ -464,72 +519,4 @@ const accumulatePointer = async (chunks, head) => {
464
519
  }
465
520
  return Buffer.concat(parts, length);
466
521
  };
467
- const inScope = (path, scopes) => scopes.some(scope => ROOT_PATHS.has(scope) || path === scope || path.startsWith(`${scope}/`));
468
- const keepSide = (mode, path, scopes) => mode !== GITLINK_MODE && (scopes.length === 0 || inScope(path, scopes));
469
- // git prints rename similarity as a zero-padded three-digit percent (R087).
470
- const similarityPercent = (similarity) => String(toSimilarityPercent(similarity.score)).padStart(3, '0');
471
- // The facade diff takes no pathspec, so `-- <source>` scoping is replicated
472
- // per side. Gitlink changes are skipped (submodule pointer moves are not
473
- // deployable metadata) and `type-change`/`copy` entries are dropped for
474
- // parity with the subprocess `--diff-filter=AMD(R)`. A rename with only one
475
- // side in scope degrades to that side's A/D line, matching what the
476
- // subprocess pathspec does to a broken rename pair.
477
- function* toDiffLines(change, scopes) {
478
- switch (change.type) {
479
- case 'add':
480
- if (keepSide(change.newMode, change.newPath, scopes)) {
481
- yield `${ADDITION}${TAB}${treatPathSep(change.newPath)}`;
482
- }
483
- break;
484
- case 'delete':
485
- if (keepSide(change.oldMode, change.oldPath, scopes)) {
486
- yield `${DELETION}${TAB}${treatPathSep(change.oldPath)}`;
487
- }
488
- break;
489
- case 'modify':
490
- if (change.oldMode !== GITLINK_MODE &&
491
- keepSide(change.newMode, change.path, scopes)) {
492
- yield `${MODIFICATION}${TAB}${treatPathSep(change.path)}`;
493
- }
494
- break;
495
- case 'rename': {
496
- const oldKept = keepSide(change.oldMode, change.oldPath, scopes);
497
- const newKept = keepSide(change.newMode, change.newPath, scopes);
498
- if (oldKept && newKept) {
499
- yield `${RENAMED}${similarityPercent(change.similarity)}${TAB}${treatPathSep(change.oldPath)}${TAB}${treatPathSep(change.newPath)}`;
500
- }
501
- else if (newKept) {
502
- yield `${ADDITION}${TAB}${treatPathSep(change.newPath)}`;
503
- }
504
- else if (oldKept) {
505
- yield `${DELETION}${TAB}${treatPathSep(change.oldPath)}`;
506
- }
507
- break;
508
- }
509
- }
510
- }
511
- const GLOB_CHARS = /[*?[]/;
512
- const REGEXP_SPECIALS = /[.+^${}()|\\\]]/g;
513
- // Git pathspec semantics: a literal pathspec matches by directory prefix; a
514
- // pathspec containing wildcards uses wildmatch where `*` also crosses `/`
515
- // (no `:(glob)` magic). Callers mix both shapes (e.g. flow translations use
516
- // `<source>/*.translation-meta.xml`).
517
- const buildPathspecMatcher = (specs) => {
518
- // Git normalizes leading `./` (and the `.//*` shape produced by the
519
- // default `./` source dir) away before matching; repo paths never carry
520
- // either prefix.
521
- const normalized = specs.map(spec => spec.replace(/^(\.\/)+/, '').replace(/^\/+/, ''));
522
- const literals = normalized.filter(spec => !GLOB_CHARS.test(spec));
523
- const globs = normalized
524
- .filter(spec => GLOB_CHARS.test(spec))
525
- .map(spec => {
526
- const escaped = spec
527
- .replace(REGEXP_SPECIALS, '\\$&')
528
- .replace(/\*/g, '.*')
529
- .replace(/\?/g, '.');
530
- return new RegExp(`^${escaped}$`);
531
- });
532
- return (path) => (literals.length > 0 && inScope(path, literals)) ||
533
- globs.some(glob => glob.test(path));
534
- };
535
522
  //# sourceMappingURL=GitAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAIL,cAAc,GAEf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EACL,yBAAyB,EAEzB,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,wEAAwE;AACxE,2DAA2D;AAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AA6B1D,qEAAqE;AACrE,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG;IAChC,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;CACd,CAAA;AAEV,uEAAuE;AACvE,qEAAqE;AACrE,wEAAwE;AACxE,8DAA8D;AAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;AAC7E,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,CAAC,OAAO,OAAO,UAAU;IAoCQ,IAAI;IAnCjC,MAAM,CAAC,SAAS,GAA4B,IAAI,GAAG,EAAE,CAAA;IAE7D,kEAAkE;IAClE,qEAAqE;IACrE,qEAAqE;IACrE,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IAC7D,MAAM,CAAC,MAAM,CAAC,MAAc;QAClC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAE,CAAA;IACnC,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAc;QACtC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;IACvC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC1B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;QACD,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED,2EAA2E;IAC3E,mEAAmE;IACnE,wEAAwE;IACxE,qEAAqE;IACrE,yBAAyB;IACN,WAAW,CAAoC;IAC1D,UAAU,GAA+B,IAAI,CAAA;IAErD,YAAqC,IAAY;oBAAZ,IAAI;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAA;IAC7D,CAAC;IAES,OAAO;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAA;YAClC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,sEAAsE;IACtE,uEAAuE;IACvE,8DAA8D;IAEjD,AAAN,KAAK,CAAC,cAAc,CACzB,QAAgB,EAChB,UAA6B;QAE7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,IAAI,CAAA,kCAAkC,QAAQ,aAAa,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAA;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,+DAA+D;IAC/D,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IAC/D,KAAK,CAAC,YAAY,CAAC,GAAa,EAAE,KAAa;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAClD,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAgC,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,yEAAyE;IACzE,oEAAoE;IACpE,0EAA0E;IAC1E,sDAAsD;IAC5C,KAAK,CAAC,aAAa,CAC3B,QAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACpC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACvC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,sEAAsE;IACtE,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,6CAA6C;IAEhC,AAAN,KAAK,CAAC,YAAY,CACvB,IAAY,EACZ,EAAU;QAEV,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACjC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;aAClB,CAAC,CAAA;YACF,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5B,CAAC,CAAA;YACF,6DAA6D;YAC7D,qEAAqE;YACrE,iEAAiE;YACjE,oEAAoE;YACpE,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC7C,UAAU,CAAC,EAAE;gBACb,QAAQ,CAAC,EAAE;aACZ,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,iBAAiB;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,WAAW,GAAG,IAAI,CAAA;YACtB,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBACrD,IAAI,EAAE,CAAC,IAAI,CAAC;aACb,CAAC,EAAE,CAAC;gBACH,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;oBACvB,MAAK;gBACP,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,MAAkB;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,mBAAmB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAAkB;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAkB;QAC9C,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;gBAChD,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,uEAAuE;IACvE,iEAAiE;IAC1D,KAAK,CAAC,0BAA0B,CAAC,MAAkB;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAiB,EAAE,CAAA;QAC9B,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;YACtB,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;gBAC5B,MAAM,IAAI,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,oEAAoE;YACpE,sEAAsE;YACtE,uDAAuD;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAA;YACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;gBAC1B,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACnD,CAAC;YACD,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IACpE,kEAAkE;IAC3D,aAAa,CAAC,MAAkB;QACrC,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;QAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzD,GAAG,CAAC,OAAO,CACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CACnE,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,MAAkB,EAClB,GAAgB;QAEhB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QACD,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IACnD,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,MAAkC,EAClC,IAAY,EACZ,GAAgB;QAEhB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAChD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACjD,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,CAAC,aAAa,CACzB,IAAY,EACZ,QAAgB;QAEhB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAClD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAQ;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM;gBACJ,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;aACnD,CAAA;QACH,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB,CAAC,MAAkB;QAC9C,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACxC,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,+DAA+D;IAElD,AAAN,KAAK,CAAC,cAAc,CACzB,OAAe,EACf,IAAuB,EACvB,QAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAA;IACrE,CAAC;IAED,+DAA+D;IAC/D,sEAAsE;IACtE,wCAAwC;IAE3B,AAAN,KAAK,CAAC,qBAAqB,CAChC,OAAe,EACf,IAAuB,EACvB,QAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAA;IACtE,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,OAAe,EACf,IAAuB,EACvB,QAAgB,EAChB,YAAiE;QAEjE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAClD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;YACvC,MAAM,OAAO,GAAa,EAAE,CAAA;YAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAAE,SAAQ;gBACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACnD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,IAAI,CAAA,wBAAwB,OAAO,SAAS,IAAI,SAAS,QAAQ,aAAa,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC7G,CAAA;YACD,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,gCAAgC;IAElB,AAAP,KAAK,CAAC,CAAC,eAAe,CAAC,OAAoB;QAChD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QACzC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAChD,wEAAwE;QACxE,mEAAmE;QACnE,kEAAkE;QAClE,qDAAqD;QACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,WAAW,EAAE,CAAA;YACrB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,YAAY,EAAE,CAAA;gBACtB,MAAM,IAAI,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,+DAA+D;IAC/D,kEAAkE;IAC3D,wBAAwB,CAC7B,OAAyB,EACzB,MAA2B;QAE3B,IAAI,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAA;QACnC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,+TAA+T;QAC/T,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC;YAC3B,OAAO,CAAC,WAAW,GAAG,CAAC;YACvB,OAAO,CAAC,YAAY,KAAK,CAAC;YAC1B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,IAAc;QAEd,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACjC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;CACF;AA5Xc;IADZ,GAAG;0CAQH;AAUY;IADZ,GAAG;gDAqBH;AAqDY;IADZ,GAAG;8CA4BH;AAGY;IADZ,GAAG;mDAkBH;AA2HY;IADZ,GAAG;kDAMH;AAQY;IADZ,GAAG;gDAOH;AAMY;IADZ,GAAG;uDAOH;AAqCa;IADb,GAAG;iDAeH;AAwCH,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,uDAAuD;AACvD,KAAK,SAAS,CAAC,CAAC,eAAe,CAC7B,MAAiC;IAEjC,KAAK,CAAC,CAAC,MAAM,CAAA;AACf,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;AAC7C,kUAAkU;AAClU,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;IAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAEtD,MAAM,QAAQ,GAAG,KAAK,EACpB,MAAkC,EACa,EAAE;IACjD,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,+QAA+Q;IAC/Q,OAAO,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,6TAA6T;YAC7T,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QAChE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;IAC/B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,EACtB,GAAgB,EAChB,KAAiB,EACF,EAAE;IACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EACzB,MAAkC,EAClC,GAAgB,EAChB,IAAY,EACZ,SAAkB,EACH,EAAE;IACjB,4TAA4T;IAC5T,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;IACD,uMAAuM;IACvM,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IACD,GAAG,CAAC,GAAG,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAQ,EAAE;IACtD,IAAI,MAAM,GAAG,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,KAAK,EAC7B,MAAkC,EAClC,IAAY,EACK,EAAE;IACnB,MAAM,KAAK,GAAiB,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IACxB,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;QACtB,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AACrC,CAAC,CAAA"}
@@ -2,19 +2,18 @@ import type { Writable } from 'node:stream';
2
2
  import type { Config } from '../types/config.js';
3
3
  import type { FileGitRef } from '../types/git.js';
4
4
  import type { CopyOperation, StreamedContentOperation } from '../types/handlerResult.js';
5
+ import type { RunContext } from '../types/runContext.js';
5
6
  import { type IgnoreHelper } from '../utils/ignoreHelper.js';
6
- import GitAdapter from './GitAdapter.js';
7
7
  import { type GitBlobReader } from './gitBlobReader.js';
8
8
  export default class IOExecutor {
9
- protected readonly config: Config;
10
- protected readonly blobReaderForRevision: (revision: string) => GitBlobReader;
9
+ protected readonly ctx: RunContext;
10
+ protected readonly blobReader: GitBlobReader;
11
11
  protected readonly processedPaths: Set<string>;
12
12
  protected ignoreHelper: IgnoreHelper;
13
- constructor(config: Config, blobReaderForRevision?: (revision: string) => GitBlobReader);
14
- private static _defaultBlobReaderForRevision;
15
- execute(copies: CopyOperation[]): Promise<void>;
13
+ constructor(ctx: RunContext, blobReader?: GitBlobReader);
14
+ protected get config(): Config;
15
+ execute(copies: readonly CopyOperation[]): Promise<void>;
16
16
  protected _executeOperation(op: CopyOperation): Promise<void>;
17
- protected _getGitAdapter(revision: string): GitAdapter;
18
17
  private _isWithinOutput;
19
18
  protected _executeGitFileCopy(op: {
20
19
  path: string;