sfdx-git-delta 7.3.0 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -4
- package/lib/adapter/GitAdapter.d.ts +9 -4
- package/lib/adapter/GitAdapter.js +147 -52
- package/lib/adapter/GitAdapter.js.map +1 -1
- package/lib/adapter/pathMatching.d.ts +2 -1
- package/lib/adapter/pathMatching.js +35 -3
- package/lib/adapter/pathMatching.js.map +1 -1
- package/lib/adapter/treeReader.d.ts +1 -0
- package/lib/adapter/treeReader.js +10 -0
- package/lib/adapter/treeReader.js.map +1 -1
- package/lib/adapter/tsgitErrorMap.d.ts +6 -3
- package/lib/adapter/tsgitErrorMap.js +55 -16
- package/lib/adapter/tsgitErrorMap.js.map +1 -1
- package/lib/constant/metadataConstants.d.ts +9 -1
- package/lib/constant/metadataConstants.js +17 -3
- package/lib/constant/metadataConstants.js.map +1 -1
- package/lib/main.js +66 -63
- package/lib/main.js.map +1 -1
- package/lib/metadata/MetadataRepositoryImpl.d.ts +14 -2
- package/lib/metadata/MetadataRepositoryImpl.js +192 -50
- package/lib/metadata/MetadataRepositoryImpl.js.map +1 -1
- package/lib/post-processor/includeProcessor.js +8 -9
- package/lib/post-processor/includeProcessor.js.map +1 -1
- package/lib/service/botHandler.js +1 -1
- package/lib/service/botHandler.js.map +1 -1
- package/lib/service/inBundleHandler.js +10 -23
- package/lib/service/inBundleHandler.js.map +1 -1
- package/lib/service/inFolderHandler.js +1 -2
- package/lib/service/inFolderHandler.js.map +1 -1
- package/lib/service/objectTranslationHandler.d.ts +0 -1
- package/lib/service/objectTranslationHandler.js +11 -4
- package/lib/service/objectTranslationHandler.js.map +1 -1
- package/lib/types/runContext.d.ts +16 -5
- package/lib/types/runContext.js +17 -5
- package/lib/types/runContext.js.map +1 -1
- package/lib/utils/__mocks__/LoggingService.d.ts +2 -7
- package/lib/utils/__mocks__/LoggingService.js.map +1 -1
- package/lib/utils/changeSet.d.ts +1 -0
- package/lib/utils/changeSet.js +26 -1
- package/lib/utils/changeSet.js.map +1 -1
- package/lib/utils/configValidator.d.ts +14 -1
- package/lib/utils/configValidator.js +144 -72
- package/lib/utils/configValidator.js.map +1 -1
- package/lib/utils/errorUtils.d.ts +8 -0
- package/lib/utils/errorUtils.js +14 -0
- package/lib/utils/errorUtils.js.map +1 -1
- package/lib/utils/messageSanitizer.d.ts +1 -0
- package/lib/utils/messageSanitizer.js +46 -0
- package/lib/utils/messageSanitizer.js.map +1 -1
- package/lib/utils/metadataDiff/xmlEventReader.js +1 -1
- package/lib/utils/metadataDiff/xmlEventReader.js.map +1 -1
- package/lib/utils/repoGitDiff.d.ts +17 -2
- package/lib/utils/repoGitDiff.js +93 -12
- package/lib/utils/repoGitDiff.js.map +1 -1
- package/lib/utils/treeIndexScope.js +5 -14
- package/lib/utils/treeIndexScope.js.map +1 -1
- package/lib/utils/treeReaderBuilder.d.ts +8 -0
- package/lib/utils/treeReaderBuilder.js +34 -0
- package/lib/utils/treeReaderBuilder.js.map +1 -0
- package/lib/utils/txmlAdapter.js +1 -1
- package/lib/utils/txmlAdapter.js.map +1 -1
- package/messages/delta.md +16 -5
- package/oclif.manifest.json +1 -1
- package/package.json +105 -49
package/README.md
CHANGED
|
@@ -122,7 +122,7 @@ It's also important to implement a way to switch back to full deployment in case
|
|
|
122
122
|
|
|
123
123
|
### Prerequisites
|
|
124
124
|
|
|
125
|
-
No `git` binary is required: the plugin reads the repository's git object store in-process.
|
|
125
|
+
No `git` binary is required: the plugin reads the repository's git object store in-process, including `--ref-format=reftable` and `--object-format=sha256` repositories (the latter isn't hosted by GitHub or GitLab today, so you're unlikely to run into one).
|
|
126
126
|
|
|
127
127
|
**Node v22 or above is required**.
|
|
128
128
|
To check if Salesforce CLI runs under a supported node version for SGD, run `sf --version`. You should see a node version of v22 or above to use SGD.
|
|
@@ -214,7 +214,7 @@ FLAG DESCRIPTIONS
|
|
|
214
214
|
`--source-dir force-app` does not match `nested/force-app/...`.
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
_See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.
|
|
217
|
+
_See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v7.4.1/src/commands/sgd/source/delta.ts)_
|
|
218
218
|
<!-- commandsstop -->
|
|
219
219
|
|
|
220
220
|
### Windows users
|
|
@@ -269,7 +269,7 @@ It is the user responsibility to ensure LFS content is present when the plugin i
|
|
|
269
269
|
|
|
270
270
|
### Use cases
|
|
271
271
|
|
|
272
|
-
Any git sha pointer is supported: commit sha, branch, tag, git expression (HEAD
|
|
272
|
+
Any git sha pointer is supported as long as it resolves to a commit: commit sha, branch, tag (an annotated tag is followed to the commit it points at), git expression (`HEAD`, `HEAD~1`, etc.). A tree or blob expression such as `HEAD^{tree}` or `HEAD:path` is rejected with an error naming the flag and the value you typed.
|
|
273
273
|
|
|
274
274
|
`--from` parameter is the base commit (the first, the oldest, the closest)
|
|
275
275
|
`--to` parameter is the target commit (the last, the youngest, the farthest)
|
|
@@ -448,6 +448,21 @@ sf project deploy start -p change-sources
|
|
|
448
448
|
The `--ignore-file [-i]` parameter allows you to specify an [ignore file](https://git-scm.com/docs/gitignore) to filter the
|
|
449
449
|
element on the diff to ignore. SGD ignores every diff line matching the pattern from the ignore file specified in the `--ignore-file [-i]`. `package.xml` generation, `destructiveChanges.xml` generation and `--delta-generate` will ignore those lines.
|
|
450
450
|
|
|
451
|
+
Moving a component into a directory `--ignore-file [-i]` covers is treated as a move, not a deletion: SGD holds the ignored addition and, when nothing else of that component is visible at `--to`, cancels the matching deletion so neither manifest gets an entry. If the component still has a file outside the ignored patterns at `--to`, the ignored copy is stale and the deletion is reported as usual.
|
|
452
|
+
|
|
453
|
+
```sh
|
|
454
|
+
# ignorefile
|
|
455
|
+
force-app/recycle-bin/**
|
|
456
|
+
|
|
457
|
+
$ git mv force-app/main/default/classes/AccountService.cls force-app/recycle-bin/classes/AccountService.cls
|
|
458
|
+
$ git mv force-app/main/default/classes/AccountService.cls-meta.xml force-app/recycle-bin/classes/AccountService.cls-meta.xml
|
|
459
|
+
$ git commit -m "retire AccountService"
|
|
460
|
+
|
|
461
|
+
$ sf sgd source delta --from HEAD~1 --ignore-file ignorefile
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Before this behavior, `destructiveChanges.xml` listed `ApexClass/AccountService` and `package.xml` was empty. Now both are empty: the class moved into a directory SGD ignores, it wasn't deleted.
|
|
465
|
+
|
|
451
466
|
Sometimes you may need to have two different ignore policies. One for the `package.xml` and another one for `destructiveChanges.xml` files. This is where the `--ignore-destructive-file [-D]` option comes handy!
|
|
452
467
|
Use the `--ignore-destructive-file` parameter to specify a dedicated ignore file to handle deletions. It will apply to metadata listed in the `destructiveChanges.xml`. In other words, this will override the `--ignore-file [-i]` parameter for deleted items.
|
|
453
468
|
|
|
@@ -466,6 +481,10 @@ $ sf sgd source delta --from commit --ignore-destructive-file destructiveignore
|
|
|
466
481
|
|
|
467
482
|
```
|
|
468
483
|
|
|
484
|
+
`--ignore-destructive-file [-D]` does not affect the move detection described above. Whether a moved addition can cancel its deletion is decided purely against the `--ignore-file [-i]` patterns — the same file that held the addition in the first place — never the destructive-only one. A permissive `--ignore-destructive-file [-D]` does not turn the move back into a destructive change: as long as the component has no file outside `--ignore-file [-i]`'s patterns at `--to`, the deletion still cancels.
|
|
485
|
+
|
|
486
|
+
If SGD cannot read the file listing at `--to`, the move check is skipped, the deletion is reported as usual, and SGD emits a warning noting the check could not run.
|
|
487
|
+
|
|
469
488
|
Note: when only using the `--ignore-file [-i]` parameter (and not `--ignore-destructive-file [-D]`) the plugin will apply it to added/changed/deleted elements.
|
|
470
489
|
|
|
471
490
|
### Explicitly including specific files for inclusion or destruction regardless of diff
|
|
@@ -623,7 +642,7 @@ const work = await sgd({
|
|
|
623
642
|
from: '', // (required) commit sha from where the diff is done. [default : git rev-list --max-parents=0 HEAD]
|
|
624
643
|
mergeBase: false, // (required) resolve `from` to the merge base of `from`/`to` first. [default : false]
|
|
625
644
|
output: '', // source package specific output. [default : "./output"]
|
|
626
|
-
apiVersion:
|
|
645
|
+
apiVersion: undefined, // salesforce API version, as a number (e.g. 67). [default : sfdx-project.json "sourceApiVersion", else latest]
|
|
627
646
|
repo: '', // git repository location. [default : "."]
|
|
628
647
|
source: ['.'], // (required) one or more repo-relative folders to scope the diff to; '.' (or an empty array) means the whole repository
|
|
629
648
|
})
|
|
@@ -21,20 +21,25 @@ export type DiffRequest = Readonly<{
|
|
|
21
21
|
scopes: readonly Pathspec[];
|
|
22
22
|
}>;
|
|
23
23
|
export default class GitAdapter implements GitBlobReader {
|
|
24
|
-
private readonly
|
|
24
|
+
private readonly key;
|
|
25
|
+
private readonly repoPath;
|
|
25
26
|
private static instances;
|
|
26
27
|
private static keyFor;
|
|
27
28
|
static getInstance(config: Config): GitAdapter;
|
|
28
29
|
static closeAll(): Promise<void>;
|
|
29
|
-
protected readonly blobIdIndex: Map<string,
|
|
30
|
+
protected readonly blobIdIndex: Map<string, Promise<ReadonlyMap<string, ObjectId>>>;
|
|
30
31
|
private repoHandle;
|
|
31
32
|
private constructor();
|
|
33
|
+
get repositoryKey(): string;
|
|
34
|
+
private mapError;
|
|
32
35
|
protected getRepo(): Promise<Repository>;
|
|
33
36
|
close(): Promise<void>;
|
|
34
|
-
|
|
37
|
+
resolveCommit(ref: string): Promise<string>;
|
|
35
38
|
buildTreeIndex(revision: string, scopePaths: readonly string[]): Promise<TreeIndex | undefined>;
|
|
36
39
|
protected peelToCommit(oid: ObjectId, label: string): Promise<Commit>;
|
|
37
|
-
|
|
40
|
+
private peelRevision;
|
|
41
|
+
protected indexRevision(revision: string): Promise<ReadonlyMap<string, ObjectId>>;
|
|
42
|
+
protected flattenRevision(revision: string): Promise<ReadonlyMap<string, ObjectId>>;
|
|
38
43
|
getMergeBase(from: string, to: string): Promise<string | undefined>;
|
|
39
44
|
getFirstCommitRef(): Promise<string>;
|
|
40
45
|
protected resolveObjectId(forRef: FileGitRef): Promise<ObjectId>;
|
|
@@ -9,7 +9,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
9
9
|
* (zero-dependency, no `git` binary, no subprocess). Object-store reads,
|
|
10
10
|
* diffs, tree walks and blob content all go through the tsgit facade:
|
|
11
11
|
*
|
|
12
|
-
* git rev-parse --verify <ref
|
|
12
|
+
* git rev-parse --verify <ref>^{commit} -> repo.revParse(ref) + peelToCommit
|
|
13
13
|
* git ls-tree --name-only -r <rev> -> repo.primitives.flattenTree
|
|
14
14
|
* git rev-list --max-parents=0 HEAD -> repo.primitives.walkCommits
|
|
15
15
|
* git cat-file --batch / blob -> repo.primitives.readBlob / streamBlob
|
|
@@ -35,18 +35,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
35
35
|
import { once } from 'node:events';
|
|
36
36
|
import { createReadStream } from 'node:fs';
|
|
37
37
|
import { readFile, stat } from 'node:fs/promises';
|
|
38
|
-
import { join } from 'node:path
|
|
38
|
+
import { join, resolve } from 'node:path';
|
|
39
39
|
import { PassThrough, Readable } from 'node:stream';
|
|
40
40
|
import { openRepository, } from '@scolladon/tsgit';
|
|
41
41
|
import { UTF8_ENCODING } from '../constant/fsConstants.js';
|
|
42
42
|
import { HEAD } from '../constant/gitConstants.js';
|
|
43
|
-
import { getErrorMessage } from '../utils/errorUtils.js';
|
|
43
|
+
import { getErrorMessage, NotACommitError } from '../utils/errorUtils.js';
|
|
44
44
|
import { sanitizePath, treatPathSep } from '../utils/fsUtils.js';
|
|
45
45
|
import { getLFSObjectContentPath, isLFS } from '../utils/gitLfsHelper.js';
|
|
46
46
|
import { log } from '../utils/LoggingDecorator.js';
|
|
47
47
|
import { Logger, lazy } from '../utils/LoggingService.js';
|
|
48
48
|
import { EscalateToStreamingSignal, SIZE_THRESHOLD, } from './gitBlobReader.js';
|
|
49
|
-
import { buildLiteralMatcher, buildPathspecMatcher,
|
|
49
|
+
import { buildLiteralMatcher, buildPathspecMatcher, buildScopeMatcher, hasRootScope, nonRootScopes, ROOT_PATHS, toDiffLines, } from './pathMatching.js';
|
|
50
50
|
import { TreeIndex } from './treeIndex.js';
|
|
51
51
|
import { mapTsgitError } from './tsgitErrorMap.js';
|
|
52
52
|
// walkTree yields directories and gitlinks too; only blob-bearing modes
|
|
@@ -65,7 +65,8 @@ const IGNORE_WHITESPACE_OPTIONS = {
|
|
|
65
65
|
const LFS_MAGIC = Buffer.from('version https://git-lfs.github.com/spec/v1\n');
|
|
66
66
|
const LFS_POINTER_CAP = 1024;
|
|
67
67
|
export default class GitAdapter {
|
|
68
|
-
|
|
68
|
+
key;
|
|
69
|
+
repoPath;
|
|
69
70
|
static instances = new Map();
|
|
70
71
|
// Normalises the pool key the same way ConfigValidator eventually
|
|
71
72
|
// normalises config.repo (fsUtils#sanitizePath), so two configs that
|
|
@@ -73,13 +74,24 @@ export default class GitAdapter {
|
|
|
73
74
|
// still resolve to one instance. ConfigValidator pools an adapter on the
|
|
74
75
|
// raw config.repo before _sanitizeConfig runs, so without this a single
|
|
75
76
|
// `--repo-dir ./repo` invocation would still allocate two instances.
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
// Takes the already-resolved (platform-form) path rather than resolving
|
|
78
|
+
// again, so the key and the repository path it is derived from can never
|
|
79
|
+
// drift onto two different resolutions of the same config.repo.
|
|
80
|
+
static keyFor(resolvedRepo) {
|
|
81
|
+
return sanitizePath(resolvedRepo);
|
|
78
82
|
}
|
|
79
83
|
static getInstance(config) {
|
|
80
|
-
|
|
84
|
+
// Resolved to an absolute path first: tsgit's openRepository validates
|
|
85
|
+
// `cwd` eagerly and refuses anything relative outright, which sgd's own
|
|
86
|
+
// CLI default ('./') would otherwise be. This platform-form value is
|
|
87
|
+
// threaded straight through to repository reads (see getRepo and the
|
|
88
|
+
// LFS reads below); the pool key instead takes its posix-sanitized
|
|
89
|
+
// form, since sanitizePath's separator normalisation — safe for an
|
|
90
|
+
// identity key — would corrupt a win32 UNC root if reads used it too.
|
|
91
|
+
const resolvedRepo = resolve(config.repo);
|
|
92
|
+
const key = GitAdapter.keyFor(resolvedRepo);
|
|
81
93
|
if (!GitAdapter.instances.has(key)) {
|
|
82
|
-
GitAdapter.instances.set(key, new GitAdapter(key));
|
|
94
|
+
GitAdapter.instances.set(key, new GitAdapter(key, resolvedRepo));
|
|
83
95
|
}
|
|
84
96
|
return GitAdapter.instances.get(key);
|
|
85
97
|
}
|
|
@@ -89,37 +101,93 @@ export default class GitAdapter {
|
|
|
89
101
|
}
|
|
90
102
|
GitAdapter.instances.clear();
|
|
91
103
|
}
|
|
92
|
-
// Per revision: repo-relative path ->
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
//
|
|
104
|
+
// Per revision: the pending (or settled) build of repo-relative path ->
|
|
105
|
+
// blob ObjectId. Stored as the promise, not the resolved map, and written
|
|
106
|
+
// before the first await, so every caller that arrives while the first
|
|
107
|
+
// walk is still running awaits that same walk instead of starting its own
|
|
108
|
+
// (the DiffLineInterpreter queue and IOExecutor both fan out at
|
|
109
|
+
// getConcurrencyThreshold(); buildRunTreeReader asks for `to` and `from`
|
|
110
|
+
// under one Promise.all). Deterministic per revision and safe to share
|
|
111
|
+
// across every run against this repository — unlike the tree index (see
|
|
112
|
+
// buildTreeIndex), nothing here varies by caller-supplied scope. The map
|
|
113
|
+
// is handed out read-only: one instance is shared by every caller, and two
|
|
114
|
+
// consumers iterate it across an await.
|
|
97
115
|
blobIdIndex;
|
|
98
116
|
repoHandle = null;
|
|
99
|
-
|
|
100
|
-
|
|
117
|
+
// `key` identifies the repository — the pool map key and every
|
|
118
|
+
// user-facing message (mapTsgitError, the debug log below) render it, so
|
|
119
|
+
// a repository that fails the same way twice always reads identically.
|
|
120
|
+
// `repoPath` is the platform-native path actually opened and read from
|
|
121
|
+
// (openRepository's cwd, the LFS reads) — never sanitized, since
|
|
122
|
+
// sanitizePath's posix-only normalisation would corrupt a win32 UNC root.
|
|
123
|
+
constructor(key, repoPath) {
|
|
124
|
+
this.key = key;
|
|
125
|
+
this.repoPath = repoPath;
|
|
101
126
|
this.blobIdIndex = new Map();
|
|
102
127
|
}
|
|
128
|
+
// Read by ConfigValidator to render `error.PathIsNotGit` from the exact
|
|
129
|
+
// same absolute value this adapter renders its own repository-refusal
|
|
130
|
+
// messages from (see mapError below), so the two collapse to one sentence
|
|
131
|
+
// through validateConfig's `new Set(errors)` dedupe instead of reporting
|
|
132
|
+
// the same missing repository twice in different forms.
|
|
133
|
+
get repositoryKey() {
|
|
134
|
+
return this.key;
|
|
135
|
+
}
|
|
136
|
+
// Binds the repository argument every mapTsgitError call site needs so a
|
|
137
|
+
// transposition between it and the adjacent `context: string` argument
|
|
138
|
+
// can no longer compile — mapTsgitError itself stays a pure 3-argument
|
|
139
|
+
// function for its own unit surface.
|
|
140
|
+
mapError(error, context) {
|
|
141
|
+
return mapTsgitError(error, context, this.key);
|
|
142
|
+
}
|
|
103
143
|
getRepo() {
|
|
104
144
|
if (!this.repoHandle) {
|
|
105
|
-
|
|
145
|
+
// sgd only ever reads a repository (revParse, diff, tree walks,
|
|
146
|
+
// blobs) and never runs a verb that fires a hook or a merge driver,
|
|
147
|
+
// so both execution surfaces are switched off outright. The
|
|
148
|
+
// ownership gate is opted out of for the same reason: it would
|
|
149
|
+
// refuse the container-mounted checkouts README.md documents as
|
|
150
|
+
// supported, and tsgit cannot see the `safe.directory` those users
|
|
151
|
+
// already configured for git itself.
|
|
152
|
+
this.repoHandle = openRepository({
|
|
153
|
+
cwd: this.repoPath,
|
|
154
|
+
trust: 'always',
|
|
155
|
+
hooks: false,
|
|
156
|
+
command: false,
|
|
157
|
+
});
|
|
106
158
|
}
|
|
107
159
|
return this.repoHandle;
|
|
108
160
|
}
|
|
109
161
|
async close() {
|
|
110
|
-
if (this.repoHandle)
|
|
111
|
-
|
|
162
|
+
if (!this.repoHandle)
|
|
163
|
+
return;
|
|
164
|
+
const handle = this.repoHandle;
|
|
165
|
+
// A failed open is cached like any other handle, so awaiting it here
|
|
166
|
+
// would rethrow the raw engine error out of main.ts's finally and
|
|
167
|
+
// replace the mapped error the caller already reported. There is
|
|
168
|
+
// nothing to dispose when the open never produced a repository.
|
|
169
|
+
this.repoHandle = null;
|
|
170
|
+
try {
|
|
171
|
+
const repo = await handle;
|
|
112
172
|
await repo.dispose();
|
|
113
|
-
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
Logger.debug(lazy `GitAdapter.close: releasing '${this.key}' failed: ${() => getErrorMessage(error)}`);
|
|
114
176
|
}
|
|
115
177
|
}
|
|
116
|
-
|
|
178
|
+
// Equivalent to `git rev-parse --verify <ref>^{commit}`: resolves the
|
|
179
|
+
// revision and follows any tag chain down to the commit it names, so an
|
|
180
|
+
// annotated tag is accepted while a tree-ish or blob (`HEAD^{tree}`,
|
|
181
|
+
// `HEAD:path`, a bare tree oid, a tag pointing at a tree) is refused here
|
|
182
|
+
// instead of being accepted and left to degrade every later read. Returns
|
|
183
|
+
// the peeled COMMIT id, not the tag object's, so every consumer downstream
|
|
184
|
+
// is handed a commit.
|
|
185
|
+
async resolveCommit(ref) {
|
|
117
186
|
try {
|
|
118
|
-
|
|
119
|
-
return await repo.revParse(ref);
|
|
187
|
+
return (await this.peelRevision(ref)).id;
|
|
120
188
|
}
|
|
121
189
|
catch (error) {
|
|
122
|
-
throw
|
|
190
|
+
throw this.mapError(error, ref);
|
|
123
191
|
}
|
|
124
192
|
}
|
|
125
193
|
// Builds and RETURNS a tree index for (revision, scopePaths) instead of
|
|
@@ -134,8 +202,9 @@ export default class GitAdapter {
|
|
|
134
202
|
const blobIds = await this.indexRevision(revision);
|
|
135
203
|
const index = new TreeIndex();
|
|
136
204
|
const scopes = scopePaths.filter(path => !ROOT_PATHS.has(path));
|
|
205
|
+
const matchesScope = buildScopeMatcher(scopes);
|
|
137
206
|
for (const path of blobIds.keys()) {
|
|
138
|
-
if (scopes.length === 0 ||
|
|
207
|
+
if (scopes.length === 0 || matchesScope(path)) {
|
|
139
208
|
index.add(path);
|
|
140
209
|
}
|
|
141
210
|
}
|
|
@@ -151,6 +220,10 @@ export default class GitAdapter {
|
|
|
151
220
|
// `git ls-tree -r <tag>` / `git merge-base` peeling semantics. `label`
|
|
152
221
|
// identifies the original ref/oid for the error message (it can differ
|
|
153
222
|
// from `oid` itself, e.g. a revision string vs. its resolved object id).
|
|
223
|
+
// Reached through peelRevision by resolveCommit as well, now that
|
|
224
|
+
// validation peels every --from/--to up front — the typed error is what
|
|
225
|
+
// lets ConfigValidator name the kind of object a revision resolved to
|
|
226
|
+
// instead of just reporting a failure.
|
|
154
227
|
async peelToCommit(oid, label) {
|
|
155
228
|
const repo = await this.getRepo();
|
|
156
229
|
let target = await repo.primitives.readObject(oid);
|
|
@@ -158,22 +231,48 @@ export default class GitAdapter {
|
|
|
158
231
|
target = await repo.primitives.readObject(target.data.object);
|
|
159
232
|
}
|
|
160
233
|
if (target.type !== 'commit') {
|
|
161
|
-
throw new
|
|
234
|
+
throw new NotACommitError(label, target.type);
|
|
162
235
|
}
|
|
163
236
|
return target;
|
|
164
237
|
}
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
238
|
+
// The shared resolve-then-peel invariant behind resolveCommit,
|
|
239
|
+
// flattenRevision and getMergeBase. Centralizing it also pins the part
|
|
240
|
+
// no test can catch: the label handed to peelToCommit must stay the
|
|
241
|
+
// caller's revision string, never the oid revParse just returned, or the
|
|
242
|
+
// error names a hash instead of what the user typed.
|
|
243
|
+
async peelRevision(revision) {
|
|
244
|
+
const repo = await this.getRepo();
|
|
245
|
+
const oid = await repo.revParse(revision);
|
|
246
|
+
return await this.peelToCommit(oid, revision);
|
|
247
|
+
}
|
|
248
|
+
// Not `async` on purpose: an `await` between the memo read and the memo
|
|
249
|
+
// write is what let concurrent callers each re-walk the tree, and a
|
|
250
|
+
// non-async function cannot contain one.
|
|
251
|
+
indexRevision(revision) {
|
|
252
|
+
const memoised = this.blobIdIndex.get(revision);
|
|
253
|
+
if (memoised) {
|
|
254
|
+
return memoised;
|
|
173
255
|
}
|
|
256
|
+
const build = this.flattenRevision(revision).catch((error) => {
|
|
257
|
+
// Evict so a later caller retries rather than inheriting the failure.
|
|
258
|
+
// No identity check is needed: the slot holds this build until this
|
|
259
|
+
// handler deletes it, so nothing can replace it first, and the
|
|
260
|
+
// reaction cannot run before the synchronous set below, so the delete
|
|
261
|
+
// never outruns the write.
|
|
262
|
+
this.blobIdIndex.delete(revision);
|
|
263
|
+
throw error;
|
|
264
|
+
});
|
|
265
|
+
this.blobIdIndex.set(revision, build);
|
|
266
|
+
return build;
|
|
267
|
+
}
|
|
268
|
+
// flattenTree is the bulk traversal path (one call, no per-entry yields);
|
|
269
|
+
// it takes a tree oid, so the commit is peeled first. Declared protected
|
|
270
|
+
// to mark it as the test seam the integration memo guards spy: it is the
|
|
271
|
+
// one call that runs only on a memo miss, and peelToCommit stopped being
|
|
272
|
+
// that proxy once validation started peeling every --from/--to up front.
|
|
273
|
+
async flattenRevision(revision) {
|
|
174
274
|
const repo = await this.getRepo();
|
|
175
|
-
const
|
|
176
|
-
const commit = await this.peelToCommit(revisionId, revision);
|
|
275
|
+
const commit = await this.peelRevision(revision);
|
|
177
276
|
const { entries } = await repo.primitives.flattenTree(commit.data.tree);
|
|
178
277
|
const blobIds = new Map();
|
|
179
278
|
for (const [path, entry] of entries) {
|
|
@@ -181,7 +280,6 @@ export default class GitAdapter {
|
|
|
181
280
|
blobIds.set(treatPathSep(path), entry.id);
|
|
182
281
|
}
|
|
183
282
|
}
|
|
184
|
-
this.blobIdIndex.set(revision, blobIds);
|
|
185
283
|
return blobIds;
|
|
186
284
|
}
|
|
187
285
|
// Equivalent to `git merge-base <from> <to>`, resolved in-process via
|
|
@@ -195,13 +293,9 @@ export default class GitAdapter {
|
|
|
195
293
|
async getMergeBase(from, to) {
|
|
196
294
|
try {
|
|
197
295
|
const repo = await this.getRepo();
|
|
198
|
-
const [fromId, toId] = await Promise.all([
|
|
199
|
-
repo.revParse(from),
|
|
200
|
-
repo.revParse(to),
|
|
201
|
-
]);
|
|
202
296
|
const [fromCommit, toCommit] = await Promise.all([
|
|
203
|
-
this.
|
|
204
|
-
this.
|
|
297
|
+
this.peelRevision(from),
|
|
298
|
+
this.peelRevision(to),
|
|
205
299
|
]);
|
|
206
300
|
// Criss-cross histories can legitimately have several common
|
|
207
301
|
// ancestors; tsgit's mergeBase primitive returns all of them. Taking
|
|
@@ -215,7 +309,7 @@ export default class GitAdapter {
|
|
|
215
309
|
return base;
|
|
216
310
|
}
|
|
217
311
|
catch (error) {
|
|
218
|
-
throw
|
|
312
|
+
throw this.mapError(error, `${from}...${to}`);
|
|
219
313
|
}
|
|
220
314
|
}
|
|
221
315
|
async getFirstCommitRef() {
|
|
@@ -234,7 +328,7 @@ export default class GitAdapter {
|
|
|
234
328
|
return firstCommit;
|
|
235
329
|
}
|
|
236
330
|
catch (error) {
|
|
237
|
-
throw
|
|
331
|
+
throw this.mapError(error, HEAD);
|
|
238
332
|
}
|
|
239
333
|
}
|
|
240
334
|
async resolveObjectId(forRef) {
|
|
@@ -256,12 +350,12 @@ export default class GitAdapter {
|
|
|
256
350
|
let content = await this.readBlobBuffer(forRef);
|
|
257
351
|
if (isLFS(content)) {
|
|
258
352
|
const lfsPath = getLFSObjectContentPath(content);
|
|
259
|
-
content = await readFile(join(this.
|
|
353
|
+
content = await readFile(join(this.repoPath, lfsPath));
|
|
260
354
|
}
|
|
261
355
|
return content;
|
|
262
356
|
}
|
|
263
357
|
catch (error) {
|
|
264
|
-
throw
|
|
358
|
+
throw this.mapError(error, forRef.oid);
|
|
265
359
|
}
|
|
266
360
|
}
|
|
267
361
|
// tsgit's Blob/BlobStream carry no size field, so the only way to know a
|
|
@@ -286,7 +380,7 @@ export default class GitAdapter {
|
|
|
286
380
|
// The pointer itself is tiny, so the accumulated-length guard above
|
|
287
381
|
// never fires for LFS-backed files — size the resolved object instead
|
|
288
382
|
// and escalate oversized ones onto the streaming path.
|
|
289
|
-
const lfsFile = join(this.
|
|
383
|
+
const lfsFile = join(this.repoPath, getLFSObjectContentPath(content));
|
|
290
384
|
const { size } = await stat(lfsFile);
|
|
291
385
|
if (size > SIZE_THRESHOLD) {
|
|
292
386
|
throw new EscalateToStreamingSignal(size, forRef);
|
|
@@ -322,15 +416,16 @@ export default class GitAdapter {
|
|
|
322
416
|
async pipeLfsObject(chunks, head, out) {
|
|
323
417
|
const pointer = await accumulatePointer(chunks, head);
|
|
324
418
|
const lfsPath = getLFSObjectContentPath(pointer);
|
|
325
|
-
createReadStream(join(this.
|
|
419
|
+
createReadStream(join(this.repoPath, lfsPath))
|
|
326
420
|
.on('error', (error) => out.destroy(error))
|
|
327
421
|
.pipe(out);
|
|
328
422
|
}
|
|
329
423
|
async *streamArchive(path, revision) {
|
|
330
424
|
const repo = await this.getRepo();
|
|
331
425
|
const blobIds = await this.indexRevision(revision);
|
|
426
|
+
const inArchiveScope = buildScopeMatcher([path]);
|
|
332
427
|
for (const [filePath, blobId] of blobIds) {
|
|
333
|
-
if (!
|
|
428
|
+
if (!inArchiveScope(filePath))
|
|
334
429
|
continue;
|
|
335
430
|
const blob = await repo.primitives.streamBlob(blobId);
|
|
336
431
|
yield {
|
|
@@ -431,13 +526,13 @@ export default class GitAdapter {
|
|
|
431
526
|
});
|
|
432
527
|
}
|
|
433
528
|
catch (error) {
|
|
434
|
-
throw
|
|
529
|
+
throw this.mapError(error, `${spec.from}..${spec.to}`);
|
|
435
530
|
}
|
|
436
531
|
}
|
|
437
532
|
}
|
|
438
533
|
__decorate([
|
|
439
534
|
log
|
|
440
|
-
], GitAdapter.prototype, "
|
|
535
|
+
], GitAdapter.prototype, "resolveCommit", null);
|
|
441
536
|
__decorate([
|
|
442
537
|
log
|
|
443
538
|
], GitAdapter.prototype, "buildTreeIndex", null);
|
|
@@ -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":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type DiffChange } from '@scolladon/tsgit';
|
|
2
2
|
import type { Pathspec } from '../utils/pathspec.js';
|
|
3
3
|
export declare const ROOT_PATHS: Set<string>;
|
|
4
|
+
export declare const buildScopeMatcher: (scopes: readonly string[]) => ((path: string) => boolean);
|
|
4
5
|
export declare const inScope: (path: string, scopes: readonly string[]) => boolean;
|
|
5
6
|
export declare const hasRootScope: (scopes: readonly Pathspec[]) => boolean;
|
|
6
7
|
export declare const nonRootScopes: (scopes: readonly Pathspec[]) => Pathspec[];
|
|
7
8
|
export declare function toDiffLines(change: DiffChange, scopes: readonly string[]): Generator<string>;
|
|
8
|
-
export declare const buildLiteralMatcher: (specs: string[]) => (path: string) => boolean;
|
|
9
|
+
export declare const buildLiteralMatcher: (specs: string[]) => ((path: string) => boolean);
|
|
9
10
|
export declare const buildPathspecMatcher: (specs: string[]) => ((path: string) => boolean);
|
|
@@ -1,10 +1,41 @@
|
|
|
1
1
|
import { toSimilarityPercent } from '@scolladon/tsgit';
|
|
2
2
|
import { TAB } from '../constant/cliConstants.js';
|
|
3
|
+
import { PATH_SEP } from '../constant/fsConstants.js';
|
|
3
4
|
import { ADDITION, DELETION, MODIFICATION, RENAMED, } from '../constant/gitConstants.js';
|
|
4
5
|
import { treatPathSep } from '../utils/fsUtils.js';
|
|
5
6
|
export const ROOT_PATHS = new Set(['', '.', './']);
|
|
6
7
|
const GITLINK_MODE = '160000';
|
|
7
|
-
|
|
8
|
+
// A path is in scope when it equals a scope, or descends from one — i.e. any
|
|
9
|
+
// ancestor-directory prefix of the path is itself a scope. Walking the
|
|
10
|
+
// path's own prefixes against a Set is O(depth) per path regardless of scope
|
|
11
|
+
// count, replacing a naive O(scopes) scan per path. Slicing at each
|
|
12
|
+
// separator (rather than a naive `startsWith(scope + '/')` scan) is what
|
|
13
|
+
// keeps a sibling like `lwc/foobar` from matching scope `lwc/foo`.
|
|
14
|
+
//
|
|
15
|
+
// A factory, not a cache: `hasRoot` and `paths` derive from the scopes'
|
|
16
|
+
// contents, so a caller with a hot loop over the same scopes (buildTreeIndex)
|
|
17
|
+
// builds the matcher once and calls it per path, while a fresh-array-per-call
|
|
18
|
+
// site (streamArchive's per-file `[path]`) hoists its own single matcher out
|
|
19
|
+
// of its loop instead of paying a reference-keyed cache's lookup cost on
|
|
20
|
+
// every miss.
|
|
21
|
+
export const buildScopeMatcher = (scopes) => {
|
|
22
|
+
const hasRoot = scopes.some(scope => ROOT_PATHS.has(scope));
|
|
23
|
+
const paths = new Set(scopes);
|
|
24
|
+
return (path) => {
|
|
25
|
+
if (hasRoot)
|
|
26
|
+
return true;
|
|
27
|
+
let separatorIndex = path.indexOf(PATH_SEP);
|
|
28
|
+
while (separatorIndex !== -1) {
|
|
29
|
+
if (paths.has(path.slice(0, separatorIndex)))
|
|
30
|
+
return true;
|
|
31
|
+
separatorIndex = path.indexOf(PATH_SEP, separatorIndex + 1);
|
|
32
|
+
}
|
|
33
|
+
return paths.has(path);
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
// One-shot check for callers with no hot loop to hoist a matcher out of
|
|
37
|
+
// (toDiffLines/keepSide: one call per side per change).
|
|
38
|
+
export const inScope = (path, scopes) => buildScopeMatcher(scopes)(path);
|
|
8
39
|
const keepSide = (mode, path, scopes) => mode !== GITLINK_MODE && (scopes.length === 0 || inScope(path, scopes));
|
|
9
40
|
export const hasRootScope = (scopes) => scopes.some(scope => ROOT_PATHS.has(scope));
|
|
10
41
|
export const nonRootScopes = (scopes) => scopes.filter(scope => !ROOT_PATHS.has(scope));
|
|
@@ -57,7 +88,7 @@ const REGEXP_SPECIALS = /[.+^${}()|\\\]]/g;
|
|
|
57
88
|
// never carry a leading './' or '/' (treatPathSep and basePath already rule
|
|
58
89
|
// those out), and treating `[` as a glob-class opener would misread real
|
|
59
90
|
// path segments like an object folder named `Custom[1]__c`.
|
|
60
|
-
export const buildLiteralMatcher = (specs) => (
|
|
91
|
+
export const buildLiteralMatcher = (specs) => buildScopeMatcher(specs);
|
|
61
92
|
// Git pathspec semantics: a literal pathspec matches by directory prefix; a
|
|
62
93
|
// pathspec containing wildcards uses wildmatch where `*` also crosses `/`
|
|
63
94
|
// (no `:(glob)` magic). Callers mix both shapes (e.g. flow translations use
|
|
@@ -77,7 +108,8 @@ export const buildPathspecMatcher = (specs) => {
|
|
|
77
108
|
.replace(/\?/g, '.');
|
|
78
109
|
return new RegExp(`^${escaped}$`);
|
|
79
110
|
});
|
|
80
|
-
|
|
111
|
+
const matchesLiteral = buildScopeMatcher(literals);
|
|
112
|
+
return (path) => (literals.length > 0 && matchesLiteral(path)) ||
|
|
81
113
|
globs.some(glob => glob.test(path));
|
|
82
114
|
};
|
|
83
115
|
//# sourceMappingURL=pathMatching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathMatching.js","sourceRoot":"","sources":["../../src/adapter/pathMatching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEvE,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAElD,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"pathMatching.js","sourceRoot":"","sources":["../../src/adapter/pathMatching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEvE,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAElD,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,6EAA6E;AAC7E,uEAAuE;AACvE,6EAA6E;AAC7E,oEAAoE;AACpE,yEAAyE;AACzE,mEAAmE;AACnE,EAAE;AACF,wEAAwE;AACxE,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,cAAc;AACd,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAyB,EACI,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,OAAO,CAAC,IAAY,EAAW,EAAE;QAC/B,IAAI,OAAO;YAAE,OAAO,IAAI,CAAA;QAExB,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC3C,OAAO,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;YACzD,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,wEAAwE;AACxE,wDAAwD;AACxD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,MAAyB,EAAW,EAAE,CAC1E,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAEjC,MAAM,QAAQ,GAAG,CACf,IAAY,EACZ,IAAY,EACZ,MAAyB,EAChB,EAAE,CACX,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAW,EAAE,CACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAc,EAAE,CACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAEhD,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,CAAC,UAA6B,EAAU,EAAE,CAClE,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAEhE,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,4EAA4E;AAC5E,oEAAoE;AACpE,oDAAoD;AACpD,MAAM,SAAS,CAAC,CAAC,WAAW,CAC1B,MAAkB,EAClB,MAAyB;IAEzB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK;YACR,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrD,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1D,CAAC;YACD,MAAK;QACP,KAAK,QAAQ;YACX,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrD,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1D,CAAC;YACD,MAAK;QACP,KAAK,QAAQ;YACX,IACE,MAAM,CAAC,OAAO,KAAK,YAAY;gBAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAC7C,CAAC;gBACD,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;YAC3D,CAAC;YACD,MAAK;QACP,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAChE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBACvB,MAAM,GAAG,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YACrI,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1D,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1D,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAA;AAC1B,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAE1C,sEAAsE;AACtE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAe,EACc,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE1D,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,sCAAsC;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAe,EACc,EAAE;IAC/B,oEAAoE;IACpE,wEAAwE;IACxE,iBAAiB;IACjB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CACjD,CAAA;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,MAAM,KAAK,GAAG,UAAU;SACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,OAAO,GAAG,IAAI;aACjB,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACtB,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACJ,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,CAAC,IAAY,EAAW,EAAE,CAC/B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACvC,CAAC,CAAA"}
|