apex-code-coverage-transformer 2.11.3 → 2.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@
5
5
 
6
6
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
7
7
 
8
+ ## [2.11.5](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.11.4...v2.11.5) (2025-05-26)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * correct complex binary expressions in type guards ([#174](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/174)) ([291672b](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/291672bc6a148252b1c8c40e4de8865adae5ab37))
14
+
15
+ ## [2.11.4](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.11.3...v2.11.4) (2025-05-26)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * merge coverage transformer functions ([5eadaac](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/5eadaacff9e20cc72e330a3dcd44aa05dd6bf5a4))
21
+
8
22
  ## [2.11.3](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.11.2...v2.11.3) (2025-05-22)
9
23
 
10
24
 
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # `apex-code-coverage-transformer`
2
2
 
3
- [![NPM](https://img.shields.io/npm/v/apex-code-coverage-transformer.svg?label=apex-code-coverage-transformer)](https://www.npmjs.com/package/apex-code-coverage-transformer) [![Downloads/week](https://img.shields.io/npm/dw/apex-code-coverage-transformer.svg)](https://npmjs.org/package/apex-code-coverage-transformer) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md) [![Maintainability](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/maintainability.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
3
+ [![NPM](https://img.shields.io/npm/v/apex-code-coverage-transformer.svg?label=apex-code-coverage-transformer)](https://www.npmjs.com/package/apex-code-coverage-transformer)
4
+ [![Downloads/week](https://img.shields.io/npm/dw/apex-code-coverage-transformer.svg)](https://npmjs.org/package/apex-code-coverage-transformer)
5
+ [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md)
6
+ [![Maintainability](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/maintainability.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
7
+
4
8
  <!-- TABLE OF CONTENTS -->
5
9
  <details>
6
10
  <summary>Table of Contents</summary>
@@ -3,9 +3,7 @@ import { resolve } from 'node:path';
3
3
  import { writeFile, readFile } from 'node:fs/promises';
4
4
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
5
5
  import { Messages } from '@salesforce/core';
6
- import { transformDeployCoverageReport } from '../../transformers/deployTransformer.js';
7
- import { transformTestCoverageReport } from '../../transformers/testTransformer.js';
8
- import { checkCoverageDataType } from '../../utils/setCoverageDataType.js';
6
+ import { transformCoverageReport } from '../../transformers/coverageTransformer.js';
9
7
  import { formatOptions } from '../../utils/constants.js';
10
8
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
11
9
  const messages = Messages.loadMessages('apex-code-coverage-transformer', 'transformer.transform');
@@ -58,21 +56,13 @@ export default class TransformerTransform extends SfCommand {
58
56
  let warnings = [];
59
57
  let filesProcessed = 0;
60
58
  const parsedData = JSON.parse(jsonData);
61
- const commandType = checkCoverageDataType(parsedData);
62
- // Determine the type of coverage data using type guards
63
- if (commandType === 'TestCoverageData') {
64
- const result = await transformTestCoverageReport(parsedData, format, ignoreDirs);
65
- xmlData = result.xml;
66
- warnings = result.warnings;
67
- filesProcessed = result.filesProcessed;
68
- }
69
- else if (commandType === 'DeployCoverageData') {
70
- const result = await transformDeployCoverageReport(parsedData, format, ignoreDirs);
59
+ try {
60
+ const result = await transformCoverageReport(parsedData, format, ignoreDirs);
71
61
  xmlData = result.xml;
72
62
  warnings = result.warnings;
73
63
  filesProcessed = result.filesProcessed;
74
64
  }
75
- else {
65
+ catch (err) {
76
66
  this.error('The provided JSON does not match a known coverage data format from the Salesforce deploy or test command.');
77
67
  }
78
68
  // Print warnings if any
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DeployCoverageData, TestCoverageData } from '../utils/types.js';
2
+ type CoverageInput = DeployCoverageData | TestCoverageData[];
3
+ export declare function transformCoverageReport(data: CoverageInput, format: string, ignoreDirs: string[]): Promise<{
4
+ xml: string;
5
+ warnings: string[];
6
+ filesProcessed: number;
7
+ }>;
8
+ export {};
@@ -0,0 +1,54 @@
1
+ import { mapLimit } from 'async';
2
+ import { getCoverageHandler } from '../handlers/getHandler.js';
3
+ import { getPackageDirectories } from '../utils/getPackageDirectories.js';
4
+ import { findFilePath } from '../utils/findFilePath.js';
5
+ import { setCoveredLines } from '../utils/setCoveredLines.js';
6
+ import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
7
+ import { checkCoverageDataType } from '../utils/setCoverageDataType.js';
8
+ import { generateReport } from './reportGenerator.js';
9
+ export async function transformCoverageReport(data, format, ignoreDirs) {
10
+ const warnings = [];
11
+ let filesProcessed = 0;
12
+ const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
13
+ const handler = getCoverageHandler(format);
14
+ const commandType = checkCoverageDataType(data);
15
+ const concurrencyLimit = getConcurrencyThreshold();
16
+ if (commandType === 'DeployCoverageData') {
17
+ await mapLimit(Object.keys(data), concurrencyLimit, async (fileName) => {
18
+ const fileInfo = data[fileName];
19
+ const formattedFileName = fileName.replace(/no-map[\\/]+/, '');
20
+ const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
21
+ if (!relativeFilePath) {
22
+ warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
23
+ return;
24
+ }
25
+ const updatedLines = await setCoveredLines(relativeFilePath, repoRoot, fileInfo.s);
26
+ fileInfo.s = updatedLines;
27
+ handler.processFile(relativeFilePath, formattedFileName, fileInfo.s);
28
+ filesProcessed++;
29
+ });
30
+ }
31
+ else if (commandType === 'TestCoverageData') {
32
+ await mapLimit(data, concurrencyLimit, async (entry) => {
33
+ const name = entry?.name;
34
+ const lines = entry?.lines;
35
+ if (!name || !lines)
36
+ return;
37
+ const formattedFileName = name.replace(/no-map[\\/]+/, '');
38
+ const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
39
+ if (!relativeFilePath) {
40
+ warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
41
+ return;
42
+ }
43
+ handler.processFile(relativeFilePath, formattedFileName, lines);
44
+ filesProcessed++;
45
+ });
46
+ }
47
+ else {
48
+ throw new Error('Unknown coverage data type. Cannot generate report.');
49
+ }
50
+ const coverageObj = handler.finalize();
51
+ const xml = generateReport(coverageObj, format);
52
+ return { xml, warnings, filesProcessed };
53
+ }
54
+ //# sourceMappingURL=coverageTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverageTransformer.js","sourceRoot":"","sources":["../../src/transformers/coverageTransformer.ts"],"names":[],"mappings":"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"}
@@ -19,14 +19,16 @@ function isValidDeployItem(item) {
19
19
  if (!isObject(item))
20
20
  return false;
21
21
  const { path, fnMap, branchMap, f, b, s, statementMap } = item;
22
- const hasValidPath = typeof path === 'string';
23
- const hasValidFnMap = isObject(fnMap);
24
- const hasValidBranchMap = isObject(branchMap);
25
- const hasValidF = isObject(f);
26
- const hasValidB = isObject(b);
27
- const hasValidS = isObject(s);
28
- const hasValidStatementMap = isValidStatementMap(statementMap);
29
- return (hasValidPath && hasValidFnMap && hasValidBranchMap && hasValidF && hasValidB && hasValidS && hasValidStatementMap);
22
+ const checks = [
23
+ typeof path === 'string',
24
+ isObject(fnMap),
25
+ isObject(branchMap),
26
+ isObject(f),
27
+ isObject(b),
28
+ isObject(s),
29
+ isValidStatementMap(statementMap),
30
+ ];
31
+ return checks.every(Boolean);
30
32
  }
31
33
  function isDeployCoverageData(data) {
32
34
  if (!isObject(data))
@@ -37,20 +39,16 @@ function isSingleTestCoverageData(data) {
37
39
  if (!isObject(data))
38
40
  return false;
39
41
  const { id, name, totalLines, lines, totalCovered, coveredPercent } = data;
40
- const hasValidId = typeof id === 'string';
41
- const hasValidName = typeof name === 'string';
42
- const hasValidTotalLines = typeof totalLines === 'number';
43
- const hasValidLines = isObject(lines);
44
- const hasValidTotalCovered = typeof totalCovered === 'number';
45
- const hasValidCoveredPercent = typeof coveredPercent === 'number';
46
- const allLinesAreNumbers = hasValidLines && Object.values(lines).every((line) => typeof line === 'number');
47
- return (hasValidId &&
48
- hasValidName &&
49
- hasValidTotalLines &&
50
- hasValidLines &&
51
- hasValidTotalCovered &&
52
- hasValidCoveredPercent &&
53
- allLinesAreNumbers);
42
+ const checks = [
43
+ typeof id === 'string',
44
+ typeof name === 'string',
45
+ typeof totalLines === 'number',
46
+ typeof totalCovered === 'number',
47
+ typeof coveredPercent === 'number',
48
+ isObject(lines),
49
+ isObject(lines) && Object.values(lines).every((line) => typeof line === 'number'),
50
+ ];
51
+ return checks.every(Boolean);
54
52
  }
55
53
  function isTestCoverageDataArray(data) {
56
54
  return Array.isArray(data) && data.every(isSingleTestCoverageData);
@@ -1 +1 @@
1
- {"version":3,"file":"setCoverageDataType.js","sourceRoot":"","sources":["../../src/utils/setCoverageDataType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setCoverageDataType.js","sourceRoot":"","sources":["../../src/utils/setCoverageDataType.ts"],"names":[],"mappings":"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"}
@@ -96,5 +96,5 @@
96
96
  ]
97
97
  }
98
98
  },
99
- "version": "2.11.3"
99
+ "version": "2.11.5"
100
100
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "apex-code-coverage-transformer",
3
3
  "description": "Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.",
4
- "version": "2.11.3",
4
+ "version": "2.11.5",
5
5
  "dependencies": {
6
6
  "@oclif/core": "^4.3.0",
7
7
  "@salesforce/core": "^8.8.6",
@@ -1,6 +0,0 @@
1
- import { DeployCoverageData } from '../utils/types.js';
2
- export declare function transformDeployCoverageReport(data: DeployCoverageData, format: string, ignoreDirs: string[]): Promise<{
3
- xml: string;
4
- warnings: string[];
5
- filesProcessed: number;
6
- }>;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
- import { mapLimit } from 'async';
3
- import { getCoverageHandler } from '../handlers/getHandler.js';
4
- import { getPackageDirectories } from '../utils/getPackageDirectories.js';
5
- import { findFilePath } from '../utils/findFilePath.js';
6
- import { setCoveredLines } from '../utils/setCoveredLines.js';
7
- import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
8
- import { generateReport } from './reportGenerator.js';
9
- export async function transformDeployCoverageReport(data, format, ignoreDirs) {
10
- const warnings = [];
11
- let filesProcessed = 0;
12
- const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
13
- const handler = getCoverageHandler(format);
14
- const processFile = async (fileName) => {
15
- const fileInfo = data[fileName];
16
- const formattedFileName = fileName.replace(/no-map[\\/]+/, '');
17
- const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
18
- if (!relativeFilePath) {
19
- warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
20
- return false;
21
- }
22
- const updatedLines = await setCoveredLines(relativeFilePath, repoRoot, fileInfo.s);
23
- fileInfo.s = updatedLines;
24
- handler.processFile(relativeFilePath, formattedFileName, fileInfo.s);
25
- return true;
26
- };
27
- const concurrencyLimit = getConcurrencyThreshold();
28
- await mapLimit(Object.keys(data).filter((fileName) => Object.hasOwn(data, fileName)), concurrencyLimit, async (fileName) => {
29
- const result = await processFile(fileName);
30
- if (result) {
31
- filesProcessed++;
32
- }
33
- });
34
- const coverageObj = handler.finalize();
35
- const xml = generateReport(coverageObj, format);
36
- return { xml, warnings, filesProcessed };
37
- }
38
- //# sourceMappingURL=deployTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployTransformer.js","sourceRoot":"","sources":["../../src/transformers/deployTransformer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAwB,EACxB,MAAc,EACd,UAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAoB,EAAE;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAE7F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,0CAA0C,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnF,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC;QAE1B,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;IACnD,MAAM,QAAQ,CACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EACrE,gBAAgB,EAChB,KAAK,EAAE,QAAgB,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}
@@ -1,6 +0,0 @@
1
- import { TestCoverageData } from '../utils/types.js';
2
- export declare function transformTestCoverageReport(testCoverageData: TestCoverageData[], format: string, ignoreDirs: string[]): Promise<{
3
- xml: string;
4
- warnings: string[];
5
- filesProcessed: number;
6
- }>;
@@ -1,40 +0,0 @@
1
- 'use strict';
2
- import { mapLimit } from 'async';
3
- import { getCoverageHandler } from '../handlers/getHandler.js';
4
- import { getPackageDirectories } from '../utils/getPackageDirectories.js';
5
- import { findFilePath } from '../utils/findFilePath.js';
6
- import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
7
- import { generateReport } from './reportGenerator.js';
8
- export async function transformTestCoverageReport(testCoverageData, format, ignoreDirs) {
9
- const warnings = [];
10
- let filesProcessed = 0;
11
- const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
12
- const handler = getCoverageHandler(format);
13
- // Ensure testCoverageData is an array
14
- const coverageData = Array.isArray(testCoverageData) ? testCoverageData : [testCoverageData];
15
- const processFile = async (data) => {
16
- const name = data?.name;
17
- const lines = data?.lines;
18
- if (!name || !lines)
19
- return false;
20
- const formattedFileName = name.replace(/no-map[\\/]+/, '');
21
- const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
22
- if (!relativeFilePath) {
23
- warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
24
- return false;
25
- }
26
- handler.processFile(relativeFilePath, formattedFileName, lines);
27
- return true;
28
- };
29
- const concurrencyLimit = getConcurrencyThreshold();
30
- await mapLimit(coverageData, concurrencyLimit, async (data) => {
31
- const result = await processFile(data);
32
- if (result) {
33
- filesProcessed++;
34
- }
35
- });
36
- const coverageObj = handler.finalize();
37
- const xml = generateReport(coverageObj, format);
38
- return { xml, warnings, filesProcessed };
39
- }
40
- //# sourceMappingURL=testTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testTransformer.js","sourceRoot":"","sources":["../../src/transformers/testTransformer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,gBAAoC,EACpC,MAAc,EACd,UAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3C,sCAAsC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE7F,MAAM,WAAW,GAAG,KAAK,EAAE,IAAsB,EAAoB,EAAE;QACrE,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAE7F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,0CAA0C,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;IACnD,MAAM,QAAQ,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAsB,EAAE,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}