@jayree/sfdx-plugin-manifest 2.7.4 → 2.8.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +83 -66
  3. package/lib/SDR-extra/utils/localGitRepo.js +1 -1
  4. package/lib/SDR-extra/utils/localGitRepo.js.map +1 -1
  5. package/lib/commands/jayree/manifest/beta/git/diff.d.ts +8 -6
  6. package/lib/commands/jayree/manifest/beta/git/diff.js +11 -11
  7. package/lib/commands/jayree/manifest/beta/git/diff.js.map +1 -1
  8. package/lib/commands/jayree/manifest/cleanup.d.ts +11 -9
  9. package/lib/commands/jayree/manifest/cleanup.js +78 -18
  10. package/lib/commands/jayree/manifest/cleanup.js.map +1 -1
  11. package/lib/commands/jayree/manifest/generate.d.ts +18 -11
  12. package/lib/commands/jayree/manifest/generate.js +57 -48
  13. package/lib/commands/jayree/manifest/generate.js.map +1 -1
  14. package/lib/commands/jayree/manifest/git/diff.d.ts +17 -11
  15. package/lib/commands/jayree/manifest/git/diff.js +479 -55
  16. package/lib/commands/jayree/manifest/git/diff.js.map +1 -1
  17. package/messages/{gitdiffbeta.md → gitdiff.md} +7 -0
  18. package/messages/manifestcleanup.md +21 -0
  19. package/messages/manifestgenerate.md +43 -0
  20. package/oclif.manifest.json +121 -262
  21. package/package.json +19 -20
  22. package/lib/jayreeSfdxCommand.d.ts +0 -8
  23. package/lib/jayreeSfdxCommand.js +0 -26
  24. package/lib/jayreeSfdxCommand.js.map +0 -1
  25. package/lib/utils/gitdiff.d.ts +0 -57
  26. package/lib/utils/gitdiff.js +0 -442
  27. package/lib/utils/gitdiff.js.map +0 -1
  28. package/lib/utils/manifest.d.ts +0 -1
  29. package/lib/utils/manifest.js +0 -66
  30. package/lib/utils/manifest.js.map +0 -1
  31. package/messages/gitdiff.json +0 -12
  32. package/messages/manifestcleanup.json +0 -6
  33. package/messages/manifestgenerate.json +0 -16
package/package.json CHANGED
@@ -1,20 +1,19 @@
1
1
  {
2
2
  "name": "@jayree/sfdx-plugin-manifest",
3
3
  "description": "A Salesforce CLI plugin containing commands for creating manifest files from Salesforce orgs or git commits of sfdx projects.",
4
- "version": "2.7.4",
4
+ "version": "2.8.1",
5
5
  "author": "jayree",
6
6
  "type": "module",
7
7
  "bugs": "https://github.com/jayree/sfdx-plugin-manifest/issues",
8
8
  "dependencies": {
9
- "@oclif/core": "^1.24.0",
10
- "@salesforce/command": "^5.2.42",
11
- "@salesforce/kit": "^1.8.3",
12
- "@salesforce/sf-plugins-core": "^1.22.2",
13
- "@salesforce/source-deploy-retrieve": "^7.7.5",
14
- "@salesforce/ts-types": "^1.7.2",
9
+ "@oclif/core": "^2.0.8",
10
+ "@salesforce/kit": "^1.8.4",
11
+ "@salesforce/sf-plugins-core": "^2.0.1",
12
+ "@salesforce/source-deploy-retrieve": "^7.8.0",
13
+ "@salesforce/ts-types": "^1.7.3",
15
14
  "debug": "^4.3.4",
16
15
  "fast-deep-equal": "^3.1.3",
17
- "fast-xml-parser": "^4.0.15",
16
+ "fast-xml-parser": "^4.1.1",
18
17
  "fs-extra": "^11.1.0",
19
18
  "graceful-fs": "^4.2.10",
20
19
  "isomorphic-git": "^1.21.0",
@@ -27,12 +26,12 @@
27
26
  "devDependencies": {
28
27
  "@commitlint/cli": "^17.4.2",
29
28
  "@commitlint/config-conventional": "^17.4.2",
30
- "@oclif/plugin-command-snapshot": "^3.3.1",
31
- "@oclif/plugin-help": "^5.2.1",
29
+ "@oclif/plugin-command-snapshot": "^3.3.2",
30
+ "@oclif/plugin-help": "^5.2.2",
32
31
  "@salesforce/dev-config": "^3.1.0",
33
- "@salesforce/dev-scripts": "^3.1.0",
32
+ "@salesforce/dev-scripts": "^3.1.1",
34
33
  "@salesforce/prettier-config": "^0.0.2",
35
- "@salesforce/ts-sinon": "^1.4.4",
34
+ "@salesforce/ts-sinon": "^1.4.5",
36
35
  "@types/chai": "^4.3.4",
37
36
  "@types/debug": "^4.1.7",
38
37
  "@types/fs-extra": "^11.0.1",
@@ -42,24 +41,24 @@
42
41
  "@types/node": "^18.11.18",
43
42
  "@types/semver": "^7.3.13",
44
43
  "@types/sinon": "10.0.13",
45
- "@typescript-eslint/eslint-plugin": "^5.49.0",
46
- "@typescript-eslint/parser": "^5.49.0",
44
+ "@typescript-eslint/eslint-plugin": "^5.50.0",
45
+ "@typescript-eslint/parser": "^5.50.0",
47
46
  "chai": "^4.3.7",
48
- "eslint": "^8.32.0",
47
+ "eslint": "^8.33.0",
49
48
  "eslint-config-oclif": "^4.0",
50
49
  "eslint-config-prettier": "^8.6.0",
51
- "eslint-config-salesforce": "^1.1.0",
50
+ "eslint-config-salesforce": "^1.1.1",
52
51
  "eslint-config-salesforce-typescript": "^1.1.1",
53
52
  "eslint-plugin-header": "^3.1.1",
54
53
  "eslint-plugin-import": "2.27.5",
55
- "eslint-plugin-jsdoc": "^39.6.8",
54
+ "eslint-plugin-jsdoc": "^39.7.5",
56
55
  "eslint-plugin-prettier": "^4.2.1",
57
- "eslint-plugin-sf-plugin": "^1.7.0",
56
+ "eslint-plugin-sf-plugin": "^1.8.0",
58
57
  "husky": "^8.0.3",
59
58
  "is-ci": "^3.0.1",
60
59
  "mocha": "^10.2.0",
61
60
  "nyc": "^15.1.0",
62
- "oclif": "^3.6.1",
61
+ "oclif": "^3.6.2",
63
62
  "patch-package": "^6.5.1",
64
63
  "pinst": "^3.0.0",
65
64
  "prettier": "^2.8.3",
@@ -68,7 +67,7 @@
68
67
  "sinon": "15.0.1",
69
68
  "source-map-support": "~0.5.21",
70
69
  "ts-node": "^10.9.1",
71
- "typescript": "^4.9.4"
70
+ "typescript": "^4.9.5"
72
71
  },
73
72
  "engines": {
74
73
  "node": ">=14.0.0"
@@ -1,8 +0,0 @@
1
- import { SfdxCommand } from '@salesforce/command';
2
- import { Optional } from '@salesforce/ts-types';
3
- export declare abstract class JayreeSfdxCommand extends SfdxCommand {
4
- protected warnIfRunByAlias(aliases: string[], id: string): void;
5
- protected getFlag<T>(flagName: string, defaultVal?: unknown): T;
6
- protected isJsonOutput(): boolean;
7
- protected getSourceApiVersion(): Promise<Optional<string>>;
8
- }
@@ -1,26 +0,0 @@
1
- /*
2
- * Copyright (c) 2022, jayree
3
- * All rights reserved.
4
- * Licensed under the BSD 3-Clause license.
5
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
- */
7
- import { SfdxCommand } from '@salesforce/command';
8
- import { get, getBoolean, getString } from '@salesforce/ts-types';
9
- export class JayreeSfdxCommand extends SfdxCommand {
10
- warnIfRunByAlias(aliases, id) {
11
- if (aliases.some((r) => process.argv.includes(r))) {
12
- this.ux.warn(`You are using a deprecated alias of the command: ${id}`);
13
- }
14
- }
15
- getFlag(flagName, defaultVal) {
16
- return get(this.flags, flagName, defaultVal);
17
- }
18
- isJsonOutput() {
19
- return getBoolean(this.flags, 'json', false);
20
- }
21
- async getSourceApiVersion() {
22
- const projectConfig = await this.project.resolveProjectConfig();
23
- return getString(projectConfig, 'sourceApiVersion');
24
- }
25
- }
26
- //# sourceMappingURL=jayreeSfdxCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jayreeSfdxCommand.js","sourceRoot":"","sources":["../src/jayreeSfdxCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAE5E,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAC/C,gBAAgB,CAAC,OAAiB,EAAE,EAAU;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;IAES,OAAO,CAAI,QAAgB,EAAE,UAAoB;QACzD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAM,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,mBAAmB;QACjC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,57 +0,0 @@
1
- import { ComponentSet, VirtualTreeContainer, SourceComponent, NodeFSTreeContainer as FSTreeContainer } from '@salesforce/source-deploy-retrieve';
2
- import Debug from 'debug';
3
- import git from 'isomorphic-git';
4
- export declare const debug: Debug.Debugger;
5
- type gitResults = {
6
- manifest: ComponentSet;
7
- output: {
8
- unchanged: string[];
9
- ignored: {
10
- ref1: string[];
11
- ref2: string[];
12
- };
13
- counts: {
14
- added: number;
15
- deleted: number;
16
- modified: number;
17
- unchanged: number;
18
- ignored: number;
19
- error: number;
20
- };
21
- errors: string[];
22
- };
23
- };
24
- type git = {
25
- ref1: string;
26
- ref2: string;
27
- refString: string;
28
- };
29
- export type gitLines = Array<{
30
- path: string;
31
- status: string;
32
- }>;
33
- export declare function resolveRef(refOrig: string, dir: string): Promise<string>;
34
- export declare function getGitArgsFromArgv(ref1: string, ref2: string, argv: string[], dir: string): Promise<git>;
35
- export declare function ensureOSPath(path: string): string;
36
- export declare function ensureGitRelPath(dir: string, path: string): string;
37
- export declare function createVirtualTreeContainer(ref: string, dir: string, modifiedFiles: string[]): Promise<VirtualTreeContainer>;
38
- export declare function analyzeFile(path: string, ref1VirtualTreeContainer: VirtualTreeContainer, ref2VirtualTreeContainer: VirtualTreeContainer | FSTreeContainer): Promise<{
39
- path: string;
40
- status: number;
41
- toManifest?: SourceComponent[];
42
- toDestructiveChanges?: SourceComponent[];
43
- }>;
44
- export declare function getUniqueIdentifier(component: SourceComponent): string;
45
- export declare function getFileStateChanges(commitHash1: string, commitHash2: string, dir: string): Promise<[
46
- {
47
- path: string;
48
- status: string;
49
- }
50
- ]>;
51
- export declare function getGitDiff(ref1: string, ref2: string, dir: string): Promise<{
52
- gitlines: gitLines;
53
- warnings: string[];
54
- }>;
55
- export declare function getGitResults(gitLines: gitLines, ref1VirtualTreeContainer: VirtualTreeContainer, ref2VirtualTreeContainer: VirtualTreeContainer | FSTreeContainer, destructiveChangesOnly: boolean, fsPaths: string[]): Promise<gitResults>;
56
- export declare function fixComponentSetChilds(cs: ComponentSet): ComponentSet;
57
- export {};
@@ -1,442 +0,0 @@
1
- /*
2
- * Copyright (c) 2022, jayree
3
- * All rights reserved.
4
- * Licensed under the BSD 3-Clause license.
5
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
- */
7
- import { join, basename, sep, posix, dirname, relative } from 'node:path';
8
- import util from 'util';
9
- import { resolve } from 'node:path';
10
- import fs from 'fs-extra';
11
- import equal from 'fast-deep-equal';
12
- import { ComponentSet, RegistryAccess, registry, VirtualTreeContainer, MetadataResolver, DestructiveChangesType, } from '@salesforce/source-deploy-retrieve';
13
- import { parseMetadataXml } from '@salesforce/source-deploy-retrieve/lib/src/utils/index.js';
14
- import Debug from 'debug';
15
- import git from 'isomorphic-git';
16
- import { SfProject } from '@salesforce/core';
17
- export const debug = Debug('jayree:manifest:git:diff');
18
- const registryAccess = new RegistryAccess();
19
- export async function resolveRef(refOrig, dir) {
20
- if (refOrig === '') {
21
- return '';
22
- }
23
- const getCommitLog = async (ref) => {
24
- try {
25
- const [log] = await git.log({
26
- fs,
27
- dir,
28
- ref,
29
- depth: 1,
30
- });
31
- return { oid: log.oid, parents: log.commit.parent };
32
- }
33
- catch (error) {
34
- throw new Error(`ambiguous argument '${ref}': unknown revision or path not in the working tree.
35
- See more help with --help`);
36
- }
37
- };
38
- if (!['~', '^'].some((el) => refOrig.includes(el))) {
39
- return (await getCommitLog(refOrig)).oid;
40
- }
41
- const firstIndex = [refOrig.indexOf('^'), refOrig.indexOf('~')]
42
- .filter((a) => a >= 0)
43
- .reduce((a, b) => Math.min(a, b));
44
- let path = refOrig.substring(firstIndex);
45
- let ref = refOrig.substring(0, firstIndex);
46
- while (path.length && ref !== undefined) {
47
- if (path.startsWith('^')) {
48
- path = path.substring(1);
49
- let next = Number(path.substring(0, 1));
50
- path = next ? path.substring(1) : path;
51
- next = next ? next : 1;
52
- // eslint-disable-next-line no-await-in-loop
53
- ref = (await getCommitLog(ref)).parents[next - 1];
54
- }
55
- else if (path.startsWith('~')) {
56
- path = path.substring(1);
57
- let next = Number(path.substring(0, 1));
58
- path = next ? path.substring(1) : path;
59
- next = next ? next : 1;
60
- for (let index = 0; index <= next - 1; index++) {
61
- // eslint-disable-next-line no-await-in-loop
62
- ref = (await getCommitLog(ref)).parents[0];
63
- }
64
- }
65
- else {
66
- ref = undefined;
67
- }
68
- }
69
- if (ref === undefined) {
70
- throw new Error(`ambiguous argument '${refOrig}': unknown revision or path not in the working tree.`);
71
- }
72
- return ref;
73
- }
74
- export async function getGitArgsFromArgv(ref1, ref2, argv, dir) {
75
- const newArgv = [];
76
- while (argv.length) {
77
- let [e] = argv.splice(0, 1);
78
- if (e.includes('=')) {
79
- // skip parameter=value
80
- }
81
- else if (e.includes('-')) {
82
- // remove value
83
- if (argv[0] && !argv[0].includes('-') && ![ref1, ref2].includes(argv[0])) {
84
- [e] = argv.splice(0, 1);
85
- }
86
- }
87
- else {
88
- newArgv.push(e);
89
- }
90
- }
91
- argv = newArgv;
92
- let refString = ref1;
93
- const a = argv.join('.').split('.');
94
- if ((a.length === 3 || a.length === 4) && typeof ref2 === 'undefined') {
95
- ref1 = a[0];
96
- ref2 = a[a.length - 1];
97
- }
98
- else if (a.length === 2 && typeof ref2 !== 'undefined') {
99
- refString = `${ref1}..${ref2}`;
100
- }
101
- else if (a.length === 1) {
102
- ref2 = '';
103
- }
104
- else {
105
- throw new Error(`Ambiguous ${util.format('argument%s', argv.length === 1 ? '' : 's')}: ${argv.join(', ')}
106
- See more help with --help`);
107
- }
108
- ref1 = await resolveRef(ref1, dir);
109
- ref2 = await resolveRef(ref2, dir);
110
- if (a.length === 4) {
111
- ref1 = (await git.findMergeBase({
112
- fs,
113
- dir,
114
- oids: [ref2, ref1],
115
- }))[0];
116
- }
117
- return { ref1, ref2, refString };
118
- }
119
- export function ensureOSPath(path) {
120
- return path.split(posix.sep).join(sep);
121
- }
122
- export function ensureGitRelPath(dir, path) {
123
- return relative(dir, path).split(sep).join(posix.sep);
124
- }
125
- export async function createVirtualTreeContainer(ref, dir, modifiedFiles) {
126
- const paths = (await git.listFiles({ fs, dir, ref })).map((p) => join(dir, ensureOSPath(p)));
127
- const oid = ref ? await git.resolveRef({ fs, dir, ref }) : '';
128
- const virtualDirectoryByFullPath = new Map();
129
- for await (const filename of paths) {
130
- let dirPath = dirname(filename);
131
- virtualDirectoryByFullPath.set(dirPath, {
132
- dirPath,
133
- children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add({
134
- name: basename(filename),
135
- data: parseMetadataXml(filename) && modifiedFiles.includes(filename)
136
- ? oid
137
- ? Buffer.from((await git.readBlob({ fs, dir, oid, filepath: ensureGitRelPath(dir, filename) })).blob)
138
- : await fs.readFile(ensureOSPath(filename))
139
- : Buffer.from(''),
140
- })),
141
- });
142
- const splits = filename.split(sep);
143
- for (let i = 1; i < splits.length - 1; i++) {
144
- dirPath = splits.slice(0, i + 1).join(sep);
145
- virtualDirectoryByFullPath.set(dirPath, {
146
- dirPath,
147
- children: Array.from(new Set(virtualDirectoryByFullPath.get(dirPath)?.children ?? []).add(splits[i + 1])),
148
- });
149
- }
150
- }
151
- return new VirtualTreeContainer(Array.from(virtualDirectoryByFullPath.values()));
152
- }
153
- export async function analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer) {
154
- if (!parseMetadataXml(path)) {
155
- return { path, status: 0 };
156
- }
157
- const ref2resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
158
- const [ref2Component] = ref2resolver.getComponentsFromPath(path); // git path only conaints files
159
- const ref1resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
160
- const [ref1Component] = ref1resolver.getComponentsFromPath(path); // git path only conaints files
161
- if (ref1resolver.forceIgnoredPaths.has(path) || ref2resolver.forceIgnoredPaths.has(path)) {
162
- return { path, status: -2 };
163
- }
164
- if (equal(await ref1Component.parseXml(), await ref2Component.parseXml())) {
165
- return { path, status: -1 };
166
- }
167
- if (ref1Component.type.strictDirectoryName === true || !ref1Component.type.children) {
168
- return { path, status: 0 };
169
- }
170
- const ref2ChildUniqueIdArray = ref2Component
171
- .getChildren()
172
- .map((childComponent) => getUniqueIdentifier(childComponent));
173
- const ref1ChildUniqueIdArray = ref1Component
174
- .getChildren()
175
- .map((childComponent) => getUniqueIdentifier(childComponent));
176
- const childComponentsNotInRef2 = ref1Component
177
- .getChildren()
178
- .filter((childComponent) => !ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // deleted
179
- const childComponentsNotInRef1 = ref2Component
180
- .getChildren()
181
- .filter((childComponent) => !ref1ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // added
182
- const childComponentsInRef1AndRef2 = ref1Component
183
- .getChildren()
184
- .filter((childComponent) => ref2ChildUniqueIdArray.includes(getUniqueIdentifier(childComponent))); // modified?
185
- debug({ childComponentsNotInRef2, childComponentsNotInRef1, childComponentsInRef1AndRef2 });
186
- for await (const childComponentRef1 of childComponentsInRef1AndRef2) {
187
- const [childComponentRef2] = ref2Component
188
- .getChildren()
189
- .filter((childComponent) => getUniqueIdentifier(childComponentRef1) === getUniqueIdentifier(childComponent));
190
- if (!equal(await childComponentRef1.parseXml(), await childComponentRef2.parseXml())) {
191
- childComponentsNotInRef1.push(childComponentRef2); // modified! -> add to added
192
- }
193
- }
194
- debug({ childComponentsNotInRef1 });
195
- return {
196
- path,
197
- status: 1 + childComponentsNotInRef2.length + childComponentsNotInRef1.length,
198
- toManifest: childComponentsNotInRef1,
199
- toDestructiveChanges: childComponentsNotInRef2,
200
- };
201
- }
202
- export function getUniqueIdentifier(component) {
203
- return `${component.type.name}#${component[component.type.uniqueIdElement]}`;
204
- }
205
- export async function getFileStateChanges(commitHash1, commitHash2, dir) {
206
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
207
- return git.walk({
208
- fs,
209
- dir,
210
- trees: [git.TREE({ ref: commitHash1 }), git.TREE({ ref: commitHash2 })],
211
- async map(filepath, [A, B]) {
212
- if (filepath === '.' || (await A?.type()) === 'tree' || (await B?.type()) === 'tree') {
213
- return;
214
- }
215
- const Aoid = await A?.oid();
216
- const Boid = await B?.oid();
217
- let type = 'EQ';
218
- if (Aoid !== Boid) {
219
- type = 'M';
220
- }
221
- if (Aoid === undefined) {
222
- type = 'A';
223
- }
224
- if (Boid === undefined) {
225
- type = 'D';
226
- }
227
- if (type !== 'EQ') {
228
- return {
229
- path: join(dir, ensureOSPath(filepath)),
230
- status: type,
231
- };
232
- }
233
- },
234
- });
235
- }
236
- async function getStatusMatrix(dir, ref) {
237
- const getStatus = (row) => {
238
- if ([
239
- [0, 2, 2],
240
- [0, 2, 3], // added, staged, with unstaged changes
241
- ].some((a) => a.every((val, index) => val === row[index]))) {
242
- return 'A';
243
- }
244
- if ([
245
- [1, 0, 0],
246
- [1, 0, 1],
247
- [1, 1, 0],
248
- [1, 2, 0],
249
- [1, 0, 3], // modified, staged, with unstaged deletion
250
- ].some((a) => a.every((val, index) => val === row[index]))) {
251
- return 'D';
252
- }
253
- if ([
254
- [1, 2, 1],
255
- [1, 2, 2],
256
- [1, 2, 3], // modified, staged, with unstaged changes
257
- ].some((a) => a.every((val, index) => val === row[index]))) {
258
- return 'M';
259
- }
260
- };
261
- const statusMatrix = await git.statusMatrix({ fs, dir, ref });
262
- const warnings = statusMatrix
263
- .filter((row) => [
264
- [0, 2, 0],
265
- [0, 0, 3],
266
- [0, 2, 3],
267
- [1, 2, 1],
268
- [1, 0, 3],
269
- [1, 1, 3],
270
- [1, 2, 3],
271
- [1, 1, 0],
272
- [1, 2, 0],
273
- [1, 0, 1], // deleted, unstaged
274
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
275
- .map((row) => join(dir, ensureOSPath(row[0])));
276
- const gitlines = statusMatrix
277
- .filter((row) => ![
278
- [0, 0, 0],
279
- [1, 1, 1],
280
- [0, 0, 3],
281
- [0, 2, 0],
282
- [1, 1, 3], // modified, staged, with unstaged original file
283
- ].some((a) => a.every((val, index) => val === row.slice(1)[index])))
284
- .map((row) => ({
285
- path: join(dir, ensureOSPath(row[0])),
286
- status: getStatus(row.slice(1)),
287
- }));
288
- return { warnings, lines: gitlines };
289
- }
290
- export async function getGitDiff(ref1, ref2, dir) {
291
- let gitlines;
292
- let warnings;
293
- const proj = await SfProject.resolve();
294
- const resolveSourcePaths = proj.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
295
- if (ref2) {
296
- gitlines = (await getFileStateChanges(ref1, ref2, dir)).filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
297
- }
298
- else {
299
- const { warnings: warn, lines } = await getStatusMatrix(dir, ref1);
300
- warnings = warn.filter((l) => resolveSourcePaths.some((f) => l.startsWith(f)));
301
- gitlines = lines.filter((l) => resolveSourcePaths.some((f) => l.path.startsWith(f)));
302
- }
303
- gitlines = gitlines.filter((line) => {
304
- if (line.status === 'D') {
305
- for (const sourcePath of resolveSourcePaths) {
306
- const defaultFolder = join(sourcePath, 'main', 'default');
307
- const filePath = line.path.replace(line.path.startsWith(defaultFolder) ? defaultFolder : sourcePath, '');
308
- const target = gitlines.find((t) => t.path.endsWith(filePath) && t.status === 'A');
309
- if (target) {
310
- debug(`rename: ${line.path} -> ${target.path}`);
311
- return false;
312
- }
313
- }
314
- }
315
- return true;
316
- });
317
- debug({ gitlines, warnings });
318
- return { gitlines, warnings };
319
- }
320
- // eslint-disable-next-line complexity
321
- export async function getGitResults(gitLines, ref1VirtualTreeContainer, ref2VirtualTreeContainer, destructiveChangesOnly, fsPaths) {
322
- const results = {
323
- manifest: new ComponentSet(undefined, registryAccess),
324
- output: {
325
- unchanged: [],
326
- ignored: { ref1: [], ref2: [] },
327
- counts: { added: 0, deleted: 0, modified: 0, unchanged: 0, ignored: 0, error: 0 },
328
- errors: [],
329
- },
330
- };
331
- const ref1Resolver = new MetadataResolver(registryAccess, ref1VirtualTreeContainer);
332
- const ref2Resolver = new MetadataResolver(registryAccess, ref2VirtualTreeContainer);
333
- const getComponentsFromPath = (resolver, path) => {
334
- let result = [];
335
- try {
336
- result = resolver.getComponentsFromPath(path);
337
- }
338
- catch (error) {
339
- results.output.counts.error++;
340
- results.output.errors.push(error);
341
- }
342
- return result;
343
- };
344
- const analyzedFilesPromises = [];
345
- for (const [, { status, path }] of gitLines.entries()) {
346
- if (!fsPaths || fsPaths.some((fsPath) => resolve(path).startsWith(fsPath))) {
347
- if (status === 'D') {
348
- for (const c of getComponentsFromPath(ref1Resolver, path)) {
349
- if (c.xml === path || gitLines.find((x) => x.path === c.xml)) {
350
- results.manifest.add(c, DestructiveChangesType.POST);
351
- results.output.counts.deleted++;
352
- }
353
- else {
354
- try {
355
- // in case a binary source file of a bundle was deleted, check if the bundle ist still valid and update instead of delete
356
- ref2Resolver.getComponentsFromPath(c.xml);
357
- if (!destructiveChangesOnly) {
358
- results.manifest.add(c);
359
- results.output.counts.added++;
360
- }
361
- }
362
- catch (error) {
363
- results.output.counts.error++;
364
- results.output.errors.push(error);
365
- }
366
- }
367
- }
368
- }
369
- else if (status === 'A') {
370
- if (!destructiveChangesOnly) {
371
- for (const c of getComponentsFromPath(ref2Resolver, path)) {
372
- results.manifest.add(c);
373
- results.output.counts.added++;
374
- }
375
- }
376
- }
377
- else {
378
- analyzedFilesPromises.push(analyzeFile(path, ref1VirtualTreeContainer, ref2VirtualTreeContainer));
379
- }
380
- }
381
- else {
382
- debug(`${path} not included in sourcepath`);
383
- }
384
- }
385
- for await (const check of analyzedFilesPromises) {
386
- if (check.status === 0) {
387
- if (!destructiveChangesOnly) {
388
- for (const c of getComponentsFromPath(ref2Resolver, check.path)) {
389
- results.manifest.add(c);
390
- results.output.counts.modified++;
391
- }
392
- }
393
- }
394
- else if (check.status === -1) {
395
- results.output.unchanged.push(check.path);
396
- results.output.counts.unchanged++;
397
- }
398
- else if (check.status === -2) {
399
- results.output.counts.ignored++;
400
- results.output.ignored.ref2.push(check.path);
401
- }
402
- else {
403
- if (check.toDestructiveChanges.length > 0 || (check.toManifest.length > 0 && !destructiveChangesOnly)) {
404
- results.output.counts.modified++;
405
- }
406
- for (const c of check.toDestructiveChanges) {
407
- results.manifest.add(c, DestructiveChangesType.POST);
408
- }
409
- if (!destructiveChangesOnly) {
410
- for (const c of check.toManifest) {
411
- results.manifest.add(c);
412
- }
413
- }
414
- }
415
- }
416
- results.output.ignored = {
417
- ref1: Array.from(ref1Resolver.forceIgnoredPaths),
418
- ref2: results.output.ignored.ref2.concat(Array.from(ref2Resolver.forceIgnoredPaths)),
419
- };
420
- results.output.counts.ignored =
421
- results.output.counts.ignored + ref1Resolver.forceIgnoredPaths.size + ref2Resolver.forceIgnoredPaths.size;
422
- return results;
423
- }
424
- export function fixComponentSetChilds(cs) {
425
- let sourceComponents = cs.getSourceComponents();
426
- // SDR library is more strict and avoids fixes like this
427
- const childsTobeReplacedByParent = [
428
- ...Object.keys(registry.types.workflow.children.types),
429
- ...Object.keys(registry.types.sharingrules.children.types),
430
- ...Object.keys(registry.types.customobjecttranslation.children.types),
431
- ...Object.keys(registry.types.bot.children.types),
432
- ];
433
- sourceComponents = sourceComponents.map((component) => {
434
- if (!component.isMarkedForDelete() && childsTobeReplacedByParent.includes(component.type.id)) {
435
- debug(`replace: ${component.type.name}:${component.fullName} -> ${component.parent.type.name}:${component.parent.fullName}`);
436
- return component.parent;
437
- }
438
- return component;
439
- });
440
- return new ComponentSet(sourceComponents, registryAccess);
441
- }
442
- //# sourceMappingURL=gitdiff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitdiff.js","sourceRoot":"","sources":["../../src/utils/gitdiff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,EAER,oBAAoB,EAGpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAEvD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAoB5C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,GAAW;IAC3D,IAAI,OAAO,KAAK,EAAE,EAAE;QAClB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAA+C,EAAE;QACtF,IAAI;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;gBAC1B,EAAE;gBACF,GAAG;gBACH,GAAG;gBACH,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACrD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG;0BACR,CACnB,CAAC;SACH;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE;QAClD,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;KAC1C;IAED,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,4CAA4C;YAC5C,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC9C,4CAA4C;gBAC5C,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC5C;SACF;aAAM;YACL,GAAG,GAAG,SAAS,CAAC;SACjB;KACF;IACD,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,sDAAsD,CAAC,CAAC;KACvG;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAc,EAAE,GAAW;IAC9F,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,EAAE;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnB,uBAAuB;SACxB;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC1B,eAAe;YACf,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,IAAI,GAAG,OAAO,CAAC;IAEf,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QACrE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACxB;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QACxD,SAAS,GAAG,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;KAChC;SAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,IAAI,GAAG,EAAE,CAAC;KACX;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;0BAClF,CAAC,CAAC;KACzB;IAED,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEnC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,IAAI,GAAG,CACL,MAAM,GAAG,CAAC,aAAa,CAAC;YACtB,EAAE;YACF,GAAG;YACH,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,CAAC,CACH,CAAC,CAAC,CAAW,CAAC;KAChB;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAY;IACxD,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAW,EACX,GAAW,EACX,aAAuB;IAEvB,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvE,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,KAAK,EAAE;QAClC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE;YACtC,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,IAAI,CAClB,IAAI,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;gBACnE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBACxB,IAAI,EACF,gBAAgB,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC5D,CAAC,CAAC,GAAG;wBACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACtB,CAAC,CACH;SACF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtC,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1G,CAAC,CAAC;SACJ;KACF;IACD,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,wBAA8C,EAC9C,wBAAgE;IAOhE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;QAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;KAC5B;IAED,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IACpF,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B;IAEjG,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IACpF,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B;IAEjG,IAAI,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACxF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;KAC7B;IAED,IAAI,KAAK,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE;QACzE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;KAC7B;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;QACnF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;KAC5B;IAED,MAAM,sBAAsB,GAAG,aAAa;SACzC,WAAW,EAAE;SACb,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAChE,MAAM,sBAAsB,GAAG,aAAa;SACzC,WAAW,EAAE;SACb,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAEhE,MAAM,wBAAwB,GAAG,aAAa;SAC3C,WAAW,EAAE;SACb,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;IAChH,MAAM,wBAAwB,GAAG,aAAa;SAC3C,WAAW,EAAE;SACb,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IAC9G,MAAM,4BAA4B,GAAG,aAAa;SAC/C,WAAW,EAAE;SACb,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;IAEjH,KAAK,CAAC,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAE5F,IAAI,KAAK,EAAE,MAAM,kBAAkB,IAAI,4BAA4B,EAAE;QACnE,MAAM,CAAC,kBAAkB,CAAC,GAAG,aAAa;aACvC,WAAW,EAAE;aACb,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,KAAK,CAAC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE;YACpF,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B;SAChF;KACF;IAED,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAEpC,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,GAAG,wBAAwB,CAAC,MAAM;QAC7E,UAAU,EAAE,wBAAwB;QACpC,oBAAoB,EAAE,wBAAwB;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAA0B;IAC5D,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAW,EAAE,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,WAAmB,EACnB,GAAW;IASX,+DAA+D;IAC/D,OAAO,GAAG,CAAC,IAAI,CAAC;QACd,EAAE;QACF,GAAG;QACH,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,QAAQ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,EAAE;gBACpF,OAAO;aACR;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;YAE5B,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,GAAG,GAAG,CAAC;aACZ;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,GAAG,GAAG,CAAC;aACZ;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,GAAG,GAAG,CAAC;aACZ;YAED,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM,EAAE,IAAI;iBACb,CAAC;aACH;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAW,EACX,GAAW;IAEX,MAAM,SAAS,GAAG,CAAC,GAAa,EAAmB,EAAE;QACnD,IACE;YACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uCAAuC;SACnD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D;YACA,OAAO,GAAG,CAAC;SACZ;QACD,IACE;YACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,2CAA2C;SACvD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D;YACA,OAAO,GAAG,CAAC;SACZ;QACD,IACE;YACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,0CAA0C;SACtD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1D;YACA,OAAO,GAAG,CAAC;SACZ;IACH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,YAAY;SAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd;QACE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB;KAChC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACpE;SACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,YAAY;SAC1B,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,CAAC;QACC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gDAAgD;KAC5D,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACtE;SACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;KAC5C,CAAC,CAAC,CAAC;IAEN,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,IAAI,QAAkB,CAAC;IACvB,IAAI,QAAkB,CAAC;IAEvB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE3F,IAAI,IAAI,EAAE;QACR,QAAQ,GAAG,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACnE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;KACH;SAAM;QACL,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF;IAED,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;YACvB,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE;gBAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACzG,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACnF,IAAI,MAAM,EAAE;oBACV,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChD,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAkB,EAClB,wBAA8C,EAC9C,wBAAgE,EAChE,sBAA+B,EAC/B,OAAiB;IAEjB,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,IAAI,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC;QACrD,MAAM,EAAE;YACN,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YACjF,MAAM,EAAE,EAAE;SACX;KACF,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IAEpF,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAE,IAAY,EAAqB,EAAE;QAC5F,IAAI,MAAM,GAAsB,EAAE,CAAC;QACnC,IAAI;YACF,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SAC/C;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAOvB,EAAE,CAAC;IAEP,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;QACrD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAC1E,IAAI,MAAM,KAAK,GAAG,EAAE;gBAClB,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;oBACzD,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;wBAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;wBACrD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;qBACjC;yBAAM;wBACL,IAAI;4BACF,yHAAyH;4BACzH,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC1C,IAAI,CAAC,sBAAsB,EAAE;gCAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;6BAC/B;yBACF;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;4BAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACnC;qBACF;iBACF;aACF;iBAAM,IAAI,MAAM,KAAK,GAAG,EAAE;gBACzB,IAAI,CAAC,sBAAsB,EAAE;oBAC3B,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;wBACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;qBAC/B;iBACF;aACF;iBAAM;gBACL,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAC;aACnG;SACF;aAAM;YACL,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;SAC7C;KACF;IAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,qBAAqB,EAAE;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;oBAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBAClC;aACF;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACnC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9C;aAAM;YACL,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;gBACrG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aAClC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,EAAE;gBAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE;oBAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACzB;aACF;SACF;KACF;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC;QAChD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;KACrF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;QAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAE5G,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAgB;IACpD,IAAI,gBAAgB,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAChD,wDAAwD;IACxD,MAAM,0BAA0B,GAAG;QACjC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtD,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1D,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;KAClD,CAAC;IACF,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACpD,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC5F,KAAK,CACH,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtH,CAAC;YACF,OAAO,SAAS,CAAC,MAAM,CAAC;SACzB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,YAAY,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC"}
@@ -1 +0,0 @@
1
- export declare function cleanupManifestFile(manifest: string, ignoreManifest: string): Promise<void>;