@salesforce/apex-node 8.4.2 → 8.4.3

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.
@@ -2,6 +2,6 @@ export { CancellationToken, CancellationTokenSource, Progress } from './common';
2
2
  export { ExecuteAnonymousResponse, ApexExecuteOptions } from './execute/types';
3
3
  export { ExecuteService } from './execute/executeService';
4
4
  export { LogService, ApexLogGetOptions, LogRecord, LogResult } from './logs';
5
- export { JUnitReporter, JUnitFormatTransformer, TapReporter, TapFormatTransformer, HumanReporter, CoverageReporterOptions, CoverageReporter, CoverageReportFormats, DefaultReportOptions, DefaultWatermarks } from './reporters';
5
+ export { JUnitReporter, JUnitFormatTransformer, TapReporter, TapFormatTransformer, HumanReporter, CoverageReporterOptions, CoverageReporter, CoverageReportFormats, DefaultReportOptions, DefaultWatermarks, MarkdownTextReporterOptions, MarkdownTextFormatTransformer, OutputFormat, TestSortOrder } from './reporters';
6
6
  export { ApexCodeCoverageAggregate, ApexCodeCoverageAggregateRecord, ApexTestProgressValue, ApexTestResultData, ApexTestResultOutcome, ApexTestRunResultStatus, ApexTestSetupData, AsyncTestArrayConfiguration, AsyncTestConfiguration, CodeCoverageResult, OutputDirConfig, ResultFormat, SyncTestConfiguration, TestItem, TestLevel, TestResult, TestService, TestRunIdResult, writeResultFiles, writeAsyncResultsToFile, PerClassCoverage } from './tests';
7
7
  export { ApexDiagnostic, Row, Table } from './utils';
package/lib/src/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Table = exports.writeAsyncResultsToFile = exports.writeResultFiles = exports.TestService = exports.TestLevel = exports.ResultFormat = exports.ApexTestRunResultStatus = exports.ApexTestResultOutcome = exports.DefaultWatermarks = exports.DefaultReportOptions = exports.CoverageReporter = exports.HumanReporter = exports.TapFormatTransformer = exports.TapReporter = exports.JUnitFormatTransformer = exports.JUnitReporter = exports.LogService = exports.ExecuteService = exports.CancellationTokenSource = void 0;
9
+ exports.Table = exports.writeAsyncResultsToFile = exports.writeResultFiles = exports.TestService = exports.TestLevel = exports.ResultFormat = exports.ApexTestRunResultStatus = exports.ApexTestResultOutcome = exports.MarkdownTextFormatTransformer = exports.DefaultWatermarks = exports.DefaultReportOptions = exports.CoverageReporter = exports.HumanReporter = exports.TapFormatTransformer = exports.TapReporter = exports.JUnitFormatTransformer = exports.JUnitReporter = exports.LogService = exports.ExecuteService = exports.CancellationTokenSource = void 0;
10
10
  var common_1 = require("./common");
11
11
  Object.defineProperty(exports, "CancellationTokenSource", { enumerable: true, get: function () { return common_1.CancellationTokenSource; } });
12
12
  var executeService_1 = require("./execute/executeService");
@@ -22,6 +22,7 @@ Object.defineProperty(exports, "HumanReporter", { enumerable: true, get: functio
22
22
  Object.defineProperty(exports, "CoverageReporter", { enumerable: true, get: function () { return reporters_1.CoverageReporter; } });
23
23
  Object.defineProperty(exports, "DefaultReportOptions", { enumerable: true, get: function () { return reporters_1.DefaultReportOptions; } });
24
24
  Object.defineProperty(exports, "DefaultWatermarks", { enumerable: true, get: function () { return reporters_1.DefaultWatermarks; } });
25
+ Object.defineProperty(exports, "MarkdownTextFormatTransformer", { enumerable: true, get: function () { return reporters_1.MarkdownTextFormatTransformer; } });
25
26
  var tests_1 = require("./tests");
26
27
  Object.defineProperty(exports, "ApexTestResultOutcome", { enumerable: true, get: function () { return tests_1.ApexTestResultOutcome; } });
27
28
  Object.defineProperty(exports, "ApexTestRunResultStatus", { enumerable: true, get: function () { return tests_1.ApexTestRunResultStatus; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAgF;AAApD,iHAAA,uBAAuB,OAAA;AAEnD,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,+BAA6E;AAApE,kGAAA,UAAU,OAAA;AACnB,yCAWqB;AAVnB,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,wGAAA,WAAW,OAAA;AACX,iHAAA,oBAAoB,OAAA;AACpB,0GAAA,aAAa,OAAA;AAEb,6GAAA,gBAAgB,OAAA;AAEhB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AAEnB,iCAsBiB;AAjBf,8GAAA,qBAAqB,OAAA;AACrB,gHAAA,uBAAuB,OAAA;AAMvB,qGAAA,YAAY,OAAA;AAGZ,kGAAA,SAAS,OAAA;AAET,oGAAA,WAAW,OAAA;AAEX,yGAAA,gBAAgB,OAAA;AAChB,gHAAA,uBAAuB,OAAA;AAGzB,iCAAqD;AAAvB,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAgF;AAApD,iHAAA,uBAAuB,OAAA;AAEnD,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,+BAA6E;AAApE,kGAAA,UAAU,OAAA;AACnB,yCAeqB;AAdnB,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,wGAAA,WAAW,OAAA;AACX,iHAAA,oBAAoB,OAAA;AACpB,0GAAA,aAAa,OAAA;AAEb,6GAAA,gBAAgB,OAAA;AAEhB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AAEjB,0HAAA,6BAA6B,OAAA;AAI/B,iCAsBiB;AAjBf,8GAAA,qBAAqB,OAAA;AACrB,gHAAA,uBAAuB,OAAA;AAMvB,qGAAA,YAAY,OAAA;AAGZ,kGAAA,SAAS,OAAA;AAET,oGAAA,WAAW,OAAA;AAEX,yGAAA,gBAAgB,OAAA;AAChB,gHAAA,uBAAuB,OAAA;AAGzB,iCAAqD;AAAvB,8FAAA,KAAK,OAAA"}
@@ -4,3 +4,5 @@ export { JUnitFormatTransformer } from './junitFormatTransformer';
4
4
  export { HumanReporter } from './humanReporter';
5
5
  export { CoverageReporter, CoverageReporterOptions, CoverageReportFormats, DefaultReportOptions, DefaultWatermarks } from './coverageReporter';
6
6
  export { TapFormatTransformer } from './tapFormatTransform';
7
+ export { MarkdownTextReporterOptions, OutputFormat, TestSortOrder } from './markdownTextReporter';
8
+ export { MarkdownTextFormatTransformer } from './markdownTextFormatTransformer';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TapFormatTransformer = exports.DefaultWatermarks = exports.DefaultReportOptions = exports.CoverageReporter = exports.HumanReporter = exports.JUnitFormatTransformer = exports.JUnitReporter = exports.TapReporter = void 0;
3
+ exports.MarkdownTextFormatTransformer = exports.TapFormatTransformer = exports.DefaultWatermarks = exports.DefaultReportOptions = exports.CoverageReporter = exports.HumanReporter = exports.JUnitFormatTransformer = exports.JUnitReporter = exports.TapReporter = void 0;
4
4
  /*
5
5
  * Copyright (c) 2020, salesforce.com, inc.
6
6
  * All rights reserved.
@@ -21,4 +21,6 @@ Object.defineProperty(exports, "DefaultReportOptions", { enumerable: true, get:
21
21
  Object.defineProperty(exports, "DefaultWatermarks", { enumerable: true, get: function () { return coverageReporter_1.DefaultWatermarks; } });
22
22
  var tapFormatTransform_1 = require("./tapFormatTransform");
23
23
  Object.defineProperty(exports, "TapFormatTransformer", { enumerable: true, get: function () { return tapFormatTransform_1.TapFormatTransformer; } });
24
+ var markdownTextFormatTransformer_1 = require("./markdownTextFormatTransformer");
25
+ Object.defineProperty(exports, "MarkdownTextFormatTransformer", { enumerable: true, get: function () { return markdownTextFormatTransformer_1.MarkdownTextFormatTransformer; } });
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reporters/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAGhB,wHAAA,oBAAoB,OAAA;AACpB,qHAAA,iBAAiB,OAAA;AAEnB,2DAA4D;AAAnD,0HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reporters/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAGhB,wHAAA,oBAAoB,OAAA;AACpB,qHAAA,iBAAiB,OAAA;AAEnB,2DAA4D;AAAnD,0HAAA,oBAAoB,OAAA;AAM7B,iFAAgF;AAAvE,8IAAA,6BAA6B,OAAA"}
@@ -0,0 +1,66 @@
1
+ export interface ReportSection {
2
+ type: 'header' | 'summary' | 'failures' | 'warnings' | 'table' | 'list' | 'coverage';
3
+ content: string;
4
+ }
5
+ export interface FailureTest {
6
+ testName: string;
7
+ duration?: string;
8
+ message?: string;
9
+ stackTrace?: string;
10
+ }
11
+ export interface WarningTest {
12
+ testName: string;
13
+ value: string;
14
+ type: 'performance' | 'coverage';
15
+ }
16
+ export interface TestTableRow {
17
+ testName: string;
18
+ className: string;
19
+ outcome: string;
20
+ outcomeEmoji: string;
21
+ coverage?: string;
22
+ runtime: string;
23
+ hasWarning: boolean;
24
+ }
25
+ export interface CoverageTableRow {
26
+ className: string;
27
+ percentage: string;
28
+ uncoveredLines: string;
29
+ }
30
+ export interface ReportData {
31
+ timestamp: string;
32
+ summary: {
33
+ total: number;
34
+ passed: number;
35
+ failed: number;
36
+ skipped: number;
37
+ duration: string;
38
+ };
39
+ failures: FailureTest[];
40
+ warnings: {
41
+ poorlyPerforming: WarningTest[];
42
+ poorlyCovered: WarningTest[];
43
+ };
44
+ testTable?: {
45
+ rows: TestTableRow[];
46
+ note?: string;
47
+ };
48
+ passedTests: Array<{
49
+ testName: string;
50
+ runtime?: string;
51
+ coverage?: string;
52
+ isSlow: boolean;
53
+ hasLowCoverage: boolean;
54
+ }>;
55
+ skippedTests: Array<{
56
+ testName: string;
57
+ }>;
58
+ coverageTable?: {
59
+ rows: CoverageTableRow[];
60
+ note?: string;
61
+ };
62
+ }
63
+ /**
64
+ * Renders markdown report from structured data
65
+ */
66
+ export declare const renderMarkdownReport: (data: ReportData) => string;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.renderMarkdownReport = void 0;
10
+ /**
11
+ * Renders markdown report from structured data
12
+ */
13
+ const renderMarkdownReport = (data) => {
14
+ const sections = [
15
+ '# Apex Test Results\n',
16
+ `**Run completed:** ${data.timestamp}\n`,
17
+ '## Summary\n',
18
+ `- **Total Tests:** ${data.summary.total}\n`,
19
+ `- ✅ **Passed:** ${data.summary.passed}\n`,
20
+ `- ❌ **Failed:** ${data.summary.failed}\n`,
21
+ ...(data.summary.skipped > 0
22
+ ? [`- ⏭️ **Skipped:** ${data.summary.skipped}\n`]
23
+ : []),
24
+ `- ⏱️ **Duration:** ${data.summary.duration}\n`
25
+ ];
26
+ // Failures section
27
+ if (data.failures.length > 0) {
28
+ sections.push(`\n## ❌ Failures (${data.failures.length})\n\n`);
29
+ sections.push(...data.failures.flatMap((failure) => [
30
+ `### ${failure.testName}\n\n`,
31
+ ...(failure.duration ? [`*Duration: ${failure.duration}*\n\n`] : []),
32
+ ...(failure.message
33
+ ? [
34
+ '**Error Message**\n\n',
35
+ '```\n',
36
+ `${failure.message}\n`,
37
+ '```\n\n'
38
+ ]
39
+ : []),
40
+ ...(failure.stackTrace
41
+ ? [
42
+ '**Stack Trace**\n\n',
43
+ '```\n',
44
+ `${failure.stackTrace}\n`,
45
+ '```\n\n'
46
+ ]
47
+ : []),
48
+ '---\n\n'
49
+ ]));
50
+ }
51
+ // Warnings section
52
+ const hasWarnings = data.warnings.poorlyPerforming.length > 0 ||
53
+ data.warnings.poorlyCovered.length > 0;
54
+ if (hasWarnings) {
55
+ sections.push('## ⚠️ Test Quality Warnings\n\n');
56
+ if (data.warnings.poorlyPerforming.length > 0) {
57
+ sections.push(`### 🐌 Poorly Performing Tests (${data.warnings.poorlyPerforming.length})\n\n`, `*Tests taking longer than ${data.warnings.poorlyPerforming[0]?.value || 'threshold'} (sorted by runtime, slowest first)*\n\n`, ...data.warnings.poorlyPerforming.map((test) => `- **${test.testName}** - **${test.value}**\n`), '\n');
58
+ }
59
+ if (data.warnings.poorlyCovered.length > 0) {
60
+ sections.push(`### 📉 Poorly Covered Tests (${data.warnings.poorlyCovered.length})\n\n`, `*Tests with coverage below threshold%*\n\n`, ...data.warnings.poorlyCovered.map((test) => `- **${test.testName}** - ${test.value} coverage\n`), '\n');
61
+ }
62
+ }
63
+ // Test results table
64
+ if (data.testTable && data.testTable.rows.length > 0) {
65
+ sections.push('## Test Results with Coverage\n\n');
66
+ if (data.testTable.note) {
67
+ sections.push(`*${data.testTable.note}*\n\n`);
68
+ }
69
+ sections.push('<table style="width: 100%; border-collapse: collapse;">\n', '<thead>\n', '<tr style="border-bottom: 2px solid;">\n', '<th style="text-align: left; padding: 8px; width: 45%;">Test Name</th>\n', '<th style="text-align: left; padding: 8px; width: 20%;">Class Being Tested</th>\n', '<th style="text-align: left; padding: 8px; width: 12%;">Outcome</th>\n', '<th style="text-align: left; padding: 8px; width: 10%;">Per-Test Coverage</th>\n', '<th style="text-align: left; padding: 8px; width: 13%;">Runtime</th>\n', '</tr>\n', '</thead>\n', '<tbody>\n', ...data.testTable.rows
70
+ .map((row) => {
71
+ const coverageStyle = row.coverage && row.hasWarning
72
+ ? 'padding: 8px; font-weight: bold; color: #d32f2f;'
73
+ : 'padding: 8px;';
74
+ const runtimeStyle = row.hasWarning
75
+ ? 'padding: 8px; font-weight: bold; color: #d32f2f;'
76
+ : 'padding: 8px;';
77
+ return [
78
+ '<tr style="border-bottom: 1px solid #ddd;">\n',
79
+ `<td style="padding: 8px;"><code>${row.testName}</code>${row.hasWarning ? ' ⚠️' : ''}</td>\n`,
80
+ `<td style="padding: 8px;">${row.className}</td>\n`,
81
+ `<td style="padding: 8px;">${row.outcomeEmoji} ${row.outcome}</td>\n`,
82
+ `<td style="${coverageStyle}">${row.coverage || 'N/A'}</td>\n`,
83
+ `<td style="${runtimeStyle}">${row.runtime}</td>\n`,
84
+ '</tr>\n'
85
+ ];
86
+ })
87
+ .flat(), '</tbody>\n', '</table>\n\n');
88
+ }
89
+ // Passed tests section
90
+ if (data.passedTests.length > 0) {
91
+ sections.push(`## ✅ Passed Tests (${data.passedTests.length})\n\n`);
92
+ sections.push(...data.passedTests.map((test) => {
93
+ const parts = [`- ${test.testName}`];
94
+ if (test.runtime) {
95
+ parts.push(test.isSlow
96
+ ? ` (🐌 **${test.runtime}** - slow)`
97
+ : ` (${test.runtime})`);
98
+ }
99
+ if (test.coverage) {
100
+ parts.push(test.hasLowCoverage
101
+ ? ` (📉 **${test.coverage}** coverage - low)`
102
+ : ` - ${test.coverage} coverage`);
103
+ }
104
+ return parts.join('') + '\n';
105
+ }), '\n');
106
+ }
107
+ // Skipped tests section
108
+ if (data.skippedTests.length > 0) {
109
+ sections.push(`## ⏭️ Skipped Tests (${data.skippedTests.length})\n\n`);
110
+ sections.push(...data.skippedTests.map((test) => `- ${test.testName}\n`), '\n');
111
+ }
112
+ // Code coverage table
113
+ if (data.coverageTable && data.coverageTable.rows.length > 0) {
114
+ sections.push('## Code Coverage by Class\n\n');
115
+ if (data.coverageTable.note) {
116
+ sections.push(`*${data.coverageTable.note}*\n\n`);
117
+ }
118
+ sections.push('<table style="width: 100%; border-collapse: collapse;">\n', '<thead>\n', '<tr style="border-bottom: 2px solid;">\n', '<th style="text-align: left; padding: 8px; width: 30%;">Class</th>\n', '<th style="text-align: left; padding: 8px; width: 15%;">Coverage</th>\n', '<th style="text-align: left; padding: 8px; width: 55%;">Uncovered Lines</th>\n', '</tr>\n', '</thead>\n', '<tbody>\n', ...data.coverageTable.rows
119
+ .map((row) => [
120
+ '<tr style="border-bottom: 1px solid #ddd;">\n',
121
+ `<td style="padding: 8px;"><code>${row.className}</code></td>\n`,
122
+ `<td style="padding: 8px;">${row.percentage}</td>\n`,
123
+ `<td style="padding: 8px;">${row.uncoveredLines}</td>\n`,
124
+ '</tr>\n'
125
+ ])
126
+ .flat(), '</tbody>\n', '</table>\n\n');
127
+ }
128
+ return sections.join('');
129
+ };
130
+ exports.renderMarkdownReport = renderMarkdownReport;
131
+ //# sourceMappingURL=markdownReportTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownReportTemplate.js","sourceRoot":"","sources":["../../../src/reporters/markdownReportTemplate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { TestResult } from '../tests/types';
2
+ import { Readable, ReadableOptions } from 'node:stream';
3
+ type MarkdownTextFormatTransformerOptions = ReadableOptions & {
4
+ bufferSize?: number;
5
+ format?: 'markdown' | 'text';
6
+ sortOrder?: 'runtime' | 'coverage' | 'severity';
7
+ performanceThresholdMs?: number;
8
+ coverageThresholdPercent?: number;
9
+ codeCoverage?: boolean;
10
+ timestamp?: Date;
11
+ };
12
+ export declare class MarkdownTextFormatTransformer extends Readable {
13
+ private readonly logger;
14
+ private buffer;
15
+ private readonly bufferSize;
16
+ private readonly testResult;
17
+ private readonly outputFormat;
18
+ private readonly sortOrder;
19
+ private readonly performanceThresholdMs;
20
+ private readonly coverageThresholdPercent;
21
+ private readonly codeCoverage;
22
+ private readonly timestamp;
23
+ constructor(testResult: TestResult, options?: MarkdownTextFormatTransformerOptions);
24
+ private pushToBuffer;
25
+ _read(): void;
26
+ private format;
27
+ private formatMarkdown;
28
+ private formatText;
29
+ private buildReportData;
30
+ private renderMarkdown;
31
+ private renderText;
32
+ }
33
+ export {};
@@ -0,0 +1,467 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2026, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MarkdownTextFormatTransformer = void 0;
16
+ const node_stream_1 = require("node:stream");
17
+ const core_1 = require("@salesforce/core");
18
+ const utils_1 = require("../utils");
19
+ const markdownTextReporter_1 = require("./markdownTextReporter");
20
+ class MarkdownTextFormatTransformer extends node_stream_1.Readable {
21
+ logger;
22
+ buffer;
23
+ bufferSize;
24
+ testResult;
25
+ outputFormat;
26
+ sortOrder;
27
+ performanceThresholdMs;
28
+ coverageThresholdPercent;
29
+ codeCoverage;
30
+ timestamp;
31
+ constructor(testResult, options) {
32
+ super(options);
33
+ this.testResult = testResult;
34
+ this.logger = core_1.Logger.childFromRoot('MarkdownTextFormatTransformer');
35
+ this.buffer = '';
36
+ this.bufferSize = options?.bufferSize || 256;
37
+ this.outputFormat = options?.format ?? 'markdown';
38
+ this.sortOrder = options?.sortOrder ?? 'runtime';
39
+ this.performanceThresholdMs = options?.performanceThresholdMs ?? 5000;
40
+ this.coverageThresholdPercent = options?.coverageThresholdPercent ?? 75;
41
+ this.codeCoverage = options?.codeCoverage ?? false;
42
+ this.timestamp = options?.timestamp ?? new Date();
43
+ }
44
+ pushToBuffer(chunk) {
45
+ this.buffer += chunk;
46
+ if (this.buffer.length >= this.bufferSize) {
47
+ this.push(this.buffer);
48
+ this.buffer = '';
49
+ }
50
+ }
51
+ _read() {
52
+ this.logger.trace('starting format');
53
+ utils_1.HeapMonitor.getInstance().checkHeapSize('MarkdownTextFormatTransformer._read');
54
+ this.format();
55
+ if (this.buffer.length > 0) {
56
+ this.push(this.buffer);
57
+ }
58
+ this.push(null); // Signal the end of the stream
59
+ this.logger.trace('finishing format');
60
+ utils_1.HeapMonitor.getInstance().checkHeapSize('MarkdownTextFormatTransformer._read');
61
+ }
62
+ format() {
63
+ if (this.outputFormat === 'markdown') {
64
+ this.formatMarkdown();
65
+ }
66
+ else {
67
+ this.formatText();
68
+ }
69
+ }
70
+ formatMarkdown() {
71
+ const reportData = this.buildReportData();
72
+ this.renderMarkdown(reportData);
73
+ }
74
+ formatText() {
75
+ const reportData = this.buildReportData();
76
+ this.renderText(reportData);
77
+ }
78
+ buildReportData() {
79
+ const { passed, failed, skipped, total, duration } = (0, markdownTextReporter_1.getSummaryInfo)(this.testResult.summary);
80
+ const timestampStr = (0, markdownTextReporter_1.formatTimestamp)(this.timestamp);
81
+ // Helper function to sort tests based on sort order
82
+ const sortTests = (tests) => {
83
+ if (!tests) {
84
+ return tests;
85
+ }
86
+ return [...tests].sort((a, b) => {
87
+ const runtimeA = a.runTime ?? 0;
88
+ const runtimeB = b.runTime ?? 0;
89
+ const coverageA = this.codeCoverage
90
+ ? ((0, markdownTextReporter_1.getCoveragePercentage)(a.perClassCoverage?.[0]?.percentage) ?? 100)
91
+ : 100;
92
+ const coverageB = this.codeCoverage
93
+ ? ((0, markdownTextReporter_1.getCoveragePercentage)(b.perClassCoverage?.[0]?.percentage) ?? 100)
94
+ : 100;
95
+ if (this.sortOrder === 'runtime') {
96
+ return runtimeB !== runtimeA
97
+ ? runtimeB - runtimeA
98
+ : coverageA - coverageB;
99
+ }
100
+ else if (this.sortOrder === 'coverage') {
101
+ return coverageA !== coverageB
102
+ ? coverageA - coverageB
103
+ : runtimeB - runtimeA;
104
+ }
105
+ else {
106
+ const scoreA = (0, markdownTextReporter_1.getSeverityScore)(a, this.codeCoverage, this.performanceThresholdMs, this.coverageThresholdPercent);
107
+ const scoreB = (0, markdownTextReporter_1.getSeverityScore)(b, this.codeCoverage, this.performanceThresholdMs, this.coverageThresholdPercent);
108
+ return scoreB - scoreA;
109
+ }
110
+ });
111
+ };
112
+ // Build data structures using spread operators
113
+ const failedTests = this.testResult.tests?.filter((test) => test.outcome?.toString() === 'Fail') ?? [];
114
+ const passedTests = this.testResult.tests?.filter((test) => test.outcome?.toString() === 'Pass') ?? [];
115
+ const skippedTests = this.testResult.tests?.filter((test) => test.outcome?.toString() === 'Skip') ?? [];
116
+ // Build failures data
117
+ const failures = failedTests.map((test) => {
118
+ const { testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
119
+ return {
120
+ testName: (0, markdownTextReporter_1.escapeMarkdown)(testName),
121
+ ...(test.runTime !== undefined && {
122
+ duration: (0, markdownTextReporter_1.formatDuration)(test.runTime)
123
+ }),
124
+ ...(test.message && { message: test.message }),
125
+ ...(test.stackTrace && { stackTrace: test.stackTrace })
126
+ };
127
+ });
128
+ // Identify poorly performing and poorly covered tests
129
+ const poorlyPerformingTests = this.testResult.tests?.filter((test) => (0, markdownTextReporter_1.isPoorlyPerforming)(test.runTime, this.performanceThresholdMs)) ?? [];
130
+ const poorlyCoveredTests = this.codeCoverage
131
+ ? (this.testResult.tests?.filter((test) => (0, markdownTextReporter_1.hasPoorCoverage)(test.perClassCoverage?.[0]?.percentage, this.coverageThresholdPercent)) ?? [])
132
+ : [];
133
+ // Build warnings data
134
+ const poorlyPerformingWarnings = [...poorlyPerformingTests]
135
+ .sort((a, b) => (b.runTime ?? 0) - (a.runTime ?? 0))
136
+ .map((test) => {
137
+ const { testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
138
+ return {
139
+ testName: (0, markdownTextReporter_1.escapeMarkdown)(testName),
140
+ value: test.runTime !== undefined ? (0, markdownTextReporter_1.formatDuration)(test.runTime) : 'N/A',
141
+ type: 'performance'
142
+ };
143
+ });
144
+ const poorlyCoveredWarnings = [...poorlyCoveredTests]
145
+ .sort((a, b) => {
146
+ const coverageA = (0, markdownTextReporter_1.getCoveragePercentage)(a.perClassCoverage?.[0]?.percentage) ?? 0;
147
+ const coverageB = (0, markdownTextReporter_1.getCoveragePercentage)(b.perClassCoverage?.[0]?.percentage) ?? 0;
148
+ return coverageA - coverageB;
149
+ })
150
+ .map((test) => {
151
+ const { testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
152
+ const coverage = test.perClassCoverage?.[0]?.percentage ?? 'N/A';
153
+ return {
154
+ testName: (0, markdownTextReporter_1.escapeMarkdown)(testName),
155
+ value: typeof coverage === 'string' ? coverage : String(coverage),
156
+ type: 'coverage'
157
+ };
158
+ });
159
+ // Build test table data
160
+ const testTableRows = this.codeCoverage && this.testResult.tests
161
+ ? sortTests(this.testResult.tests).map((test) => {
162
+ const { fullClassName, testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
163
+ const outcome = test.outcome?.toString() ?? 'Unknown';
164
+ const coverage = test.perClassCoverage?.[0]?.percentage ?? 'N/A';
165
+ const coverageStr = typeof coverage === 'string' ? coverage : 'N/A';
166
+ const runtime = test.runTime !== undefined ? (0, markdownTextReporter_1.formatDuration)(test.runTime) : 'N/A';
167
+ const outcomeEmoji = outcome === 'Pass' ? '✅' : outcome === 'Fail' ? '❌' : '⏭️';
168
+ const isSlow = (0, markdownTextReporter_1.isPoorlyPerforming)(test.runTime, this.performanceThresholdMs);
169
+ const hasLowCoverage = (0, markdownTextReporter_1.hasPoorCoverage)(coverage, this.coverageThresholdPercent);
170
+ return {
171
+ testName: (0, markdownTextReporter_1.escapeMarkdown)(testName),
172
+ className: (0, markdownTextReporter_1.escapeMarkdown)(fullClassName),
173
+ outcome,
174
+ outcomeEmoji,
175
+ coverage: coverageStr,
176
+ runtime,
177
+ hasWarning: isSlow || hasLowCoverage
178
+ };
179
+ })
180
+ : [];
181
+ // Build passed tests data
182
+ const passedTestsData = sortTests(passedTests).map((test) => {
183
+ const { testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
184
+ const isSlow = (0, markdownTextReporter_1.isPoorlyPerforming)(test.runTime, this.performanceThresholdMs);
185
+ const hasLowCoverage = this.codeCoverage &&
186
+ (0, markdownTextReporter_1.hasPoorCoverage)(test.perClassCoverage?.[0]?.percentage, this.coverageThresholdPercent);
187
+ return {
188
+ testName: (0, markdownTextReporter_1.escapeMarkdown)(testName),
189
+ ...(test.runTime !== undefined && {
190
+ runtime: (0, markdownTextReporter_1.formatDuration)(test.runTime)
191
+ }),
192
+ ...(this.codeCoverage &&
193
+ test.perClassCoverage?.[0]?.percentage && {
194
+ coverage: String(test.perClassCoverage[0].percentage)
195
+ }),
196
+ isSlow,
197
+ hasLowCoverage
198
+ };
199
+ });
200
+ // Build skipped tests data
201
+ const skippedTestsData = skippedTests.map((test) => {
202
+ const { testName } = (0, markdownTextReporter_1.getTestNameInfo)(test);
203
+ return { testName: (0, markdownTextReporter_1.escapeMarkdown)(testName) };
204
+ });
205
+ // Build coverage table data
206
+ const coverageTableRows = this.codeCoverage && this.testResult.codecoverage
207
+ ? [...this.testResult.codecoverage]
208
+ .sort((a, b) => {
209
+ const percentageA = (0, markdownTextReporter_1.getCoveragePercentage)(a.percentage) ?? 0;
210
+ const percentageB = (0, markdownTextReporter_1.getCoveragePercentage)(b.percentage) ?? 0;
211
+ return percentageA - percentageB;
212
+ })
213
+ .map((coverageItem) => {
214
+ const className = coverageItem.name ?? 'Unknown';
215
+ const percentage = coverageItem.percentage ?? '0%';
216
+ const uncoveredLines = coverageItem.uncoveredLines ?? [];
217
+ return {
218
+ className: (0, markdownTextReporter_1.escapeMarkdown)(className),
219
+ percentage,
220
+ uncoveredLines: uncoveredLines.length > 0 ? uncoveredLines.join(', ') : 'None'
221
+ };
222
+ })
223
+ : [];
224
+ // Build report data object
225
+ const reportData = {
226
+ timestamp: timestampStr,
227
+ summary: {
228
+ total,
229
+ passed,
230
+ failed,
231
+ skipped,
232
+ duration: (0, markdownTextReporter_1.formatDuration)(duration)
233
+ },
234
+ failures,
235
+ warnings: {
236
+ poorlyPerforming: poorlyPerformingWarnings,
237
+ poorlyCovered: poorlyCoveredWarnings
238
+ },
239
+ ...(testTableRows.length > 0 && {
240
+ testTable: {
241
+ rows: testTableRows,
242
+ note: 'Note: Coverage shown is per-test coverage for the class being tested. Overall class coverage is shown in the "Code Coverage by Class" section below.'
243
+ }
244
+ }),
245
+ passedTests: passedTestsData,
246
+ skippedTests: skippedTestsData,
247
+ ...(coverageTableRows.length > 0 && {
248
+ coverageTable: {
249
+ rows: coverageTableRows,
250
+ note: 'This section shows the overall code coverage for each class after all tests have run. This may differ from per-test coverage shown in the table above.'
251
+ }
252
+ })
253
+ };
254
+ return reportData;
255
+ }
256
+ renderMarkdown(data) {
257
+ this.pushToBuffer('# Apex Test Results\n');
258
+ this.pushToBuffer(`**Run completed:** ${data.timestamp}\n`);
259
+ this.pushToBuffer('\n## Summary\n\n');
260
+ this.pushToBuffer(`- **Total Tests:** ${data.summary.total}\n`);
261
+ this.pushToBuffer(`- ✅ **Passed:** ${data.summary.passed}\n`);
262
+ this.pushToBuffer(`- ❌ **Failed:** ${data.summary.failed}\n`);
263
+ if (data.summary.skipped > 0) {
264
+ this.pushToBuffer(`- ⏭️ **Skipped:** ${data.summary.skipped}\n`);
265
+ }
266
+ this.pushToBuffer(`- ⏱️ **Duration:** ${data.summary.duration}\n\n`);
267
+ // Failures section
268
+ if (data.failures.length > 0) {
269
+ this.pushToBuffer(`## ❌ Failures (${data.failures.length})\n\n`);
270
+ for (const failure of data.failures) {
271
+ this.pushToBuffer(`### ${failure.testName}\n\n`);
272
+ if (failure.duration) {
273
+ this.pushToBuffer(`*Duration: ${failure.duration}*\n\n`);
274
+ }
275
+ if (failure.message) {
276
+ this.pushToBuffer('**Error Message**\n\n');
277
+ this.pushToBuffer('```\n');
278
+ this.pushToBuffer(`${failure.message}\n`);
279
+ this.pushToBuffer('```\n\n');
280
+ }
281
+ if (failure.stackTrace) {
282
+ this.pushToBuffer('**Stack Trace**\n\n');
283
+ this.pushToBuffer('```\n');
284
+ this.pushToBuffer(`${failure.stackTrace}\n`);
285
+ this.pushToBuffer('```\n\n');
286
+ }
287
+ this.pushToBuffer('---\n\n');
288
+ }
289
+ }
290
+ // Warnings section
291
+ const hasWarnings = data.warnings.poorlyPerforming.length > 0 ||
292
+ data.warnings.poorlyCovered.length > 0;
293
+ if (hasWarnings) {
294
+ this.pushToBuffer('## ⚠️ Test Quality Warnings\n\n');
295
+ if (data.warnings.poorlyPerforming.length > 0) {
296
+ this.pushToBuffer(`### 🐌 Poorly Performing Tests (${data.warnings.poorlyPerforming.length})\n\n`);
297
+ this.pushToBuffer(`*Tests taking longer than ${(0, markdownTextReporter_1.formatDuration)(this.performanceThresholdMs)} (sorted by runtime, slowest first)*\n\n`);
298
+ for (const test of data.warnings.poorlyPerforming) {
299
+ this.pushToBuffer(`- **${test.testName}** - **${test.value}**\n`);
300
+ }
301
+ this.pushToBuffer('\n');
302
+ }
303
+ if (data.warnings.poorlyCovered.length > 0) {
304
+ this.pushToBuffer(`### 📉 Poorly Covered Tests (${data.warnings.poorlyCovered.length})\n\n`);
305
+ this.pushToBuffer(`*Tests with coverage below ${this.coverageThresholdPercent}%*\n\n`);
306
+ for (const test of data.warnings.poorlyCovered) {
307
+ this.pushToBuffer(`- **${test.testName}** - ${test.value} coverage\n`);
308
+ }
309
+ this.pushToBuffer('\n');
310
+ }
311
+ }
312
+ // Test results table with coverage
313
+ if (data.testTable && data.testTable.rows.length > 0) {
314
+ this.pushToBuffer('## Test Results with Coverage\n\n');
315
+ if (data.testTable.note) {
316
+ this.pushToBuffer(`*${data.testTable.note}*\n\n`);
317
+ }
318
+ this.pushToBuffer('<table style="width: 100%; border-collapse: collapse;">\n');
319
+ this.pushToBuffer('<thead>\n');
320
+ this.pushToBuffer('<tr style="border-bottom: 2px solid;">\n');
321
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 45%;">Test Name</th>\n');
322
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 20%;">Class Being Tested</th>\n');
323
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 12%;">Outcome</th>\n');
324
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 10%;">Per-Test Coverage</th>\n');
325
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 13%;">Runtime</th>\n');
326
+ this.pushToBuffer('</tr>\n');
327
+ this.pushToBuffer('</thead>\n');
328
+ this.pushToBuffer('<tbody>\n');
329
+ for (const row of data.testTable.rows) {
330
+ const coverageStyle = row.coverage && row.hasWarning
331
+ ? 'padding: 8px; font-weight: bold; color: #d32f2f;'
332
+ : 'padding: 8px;';
333
+ const runtimeStyle = row.hasWarning
334
+ ? 'padding: 8px; font-weight: bold; color: #d32f2f;'
335
+ : 'padding: 8px;';
336
+ this.pushToBuffer('<tr style="border-bottom: 1px solid #ddd;">\n');
337
+ this.pushToBuffer(`<td style="padding: 8px;"><code>${row.testName}</code>${row.hasWarning ? ' ⚠️' : ''}</td>\n`);
338
+ this.pushToBuffer(`<td style="padding: 8px;">${row.className}</td>\n`);
339
+ this.pushToBuffer(`<td style="padding: 8px;">${row.outcomeEmoji} ${row.outcome}</td>\n`);
340
+ this.pushToBuffer(`<td style="${coverageStyle}">${row.coverage || 'N/A'}</td>\n`);
341
+ this.pushToBuffer(`<td style="${runtimeStyle}">${row.runtime}</td>\n`);
342
+ this.pushToBuffer('</tr>\n');
343
+ }
344
+ this.pushToBuffer('</tbody>\n');
345
+ this.pushToBuffer('</table>\n\n');
346
+ }
347
+ // Passed tests section
348
+ if (data.passedTests.length > 0) {
349
+ this.pushToBuffer(`## ✅ Passed Tests (${data.passedTests.length})\n\n`);
350
+ for (const test of data.passedTests) {
351
+ this.pushToBuffer(`- ${test.testName}`);
352
+ if (test.runtime) {
353
+ this.pushToBuffer(test.isSlow
354
+ ? ` (🐌 **${test.runtime}** - slow)`
355
+ : ` (${test.runtime})`);
356
+ }
357
+ if (test.coverage) {
358
+ this.pushToBuffer(test.hasLowCoverage
359
+ ? ` (📉 **${test.coverage}** coverage - low)`
360
+ : ` - ${test.coverage} coverage`);
361
+ }
362
+ this.pushToBuffer('\n');
363
+ }
364
+ this.pushToBuffer('\n');
365
+ }
366
+ // Skipped tests section
367
+ if (data.skippedTests.length > 0) {
368
+ this.pushToBuffer(`## ⏭️ Skipped Tests (${data.skippedTests.length})\n\n`);
369
+ for (const test of data.skippedTests) {
370
+ this.pushToBuffer(`- ${test.testName}\n`);
371
+ }
372
+ this.pushToBuffer('\n');
373
+ }
374
+ // Code coverage table
375
+ if (data.coverageTable && data.coverageTable.rows.length > 0) {
376
+ this.pushToBuffer('## Code Coverage by Class\n\n');
377
+ if (data.coverageTable.note) {
378
+ this.pushToBuffer(`*${data.coverageTable.note}*\n\n`);
379
+ }
380
+ this.pushToBuffer('<table style="width: 100%; border-collapse: collapse;">\n');
381
+ this.pushToBuffer('<thead>\n');
382
+ this.pushToBuffer('<tr style="border-bottom: 2px solid;">\n');
383
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 30%;">Class</th>\n');
384
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 15%;">Coverage</th>\n');
385
+ this.pushToBuffer('<th style="text-align: left; padding: 8px; width: 55%;">Uncovered Lines</th>\n');
386
+ this.pushToBuffer('</tr>\n');
387
+ this.pushToBuffer('</thead>\n');
388
+ this.pushToBuffer('<tbody>\n');
389
+ for (const row of data.coverageTable.rows) {
390
+ this.pushToBuffer('<tr style="border-bottom: 1px solid #ddd;">\n');
391
+ this.pushToBuffer(`<td style="padding: 8px;"><code>${row.className}</code></td>\n`);
392
+ this.pushToBuffer(`<td style="padding: 8px;">${row.percentage}</td>\n`);
393
+ this.pushToBuffer(`<td style="padding: 8px;">${row.uncoveredLines}</td>\n`);
394
+ this.pushToBuffer('</tr>\n');
395
+ }
396
+ this.pushToBuffer('</tbody>\n');
397
+ this.pushToBuffer('</table>\n\n');
398
+ }
399
+ }
400
+ renderText(data) {
401
+ this.pushToBuffer('Apex Test Results\n');
402
+ this.pushToBuffer('==================\n\n');
403
+ this.pushToBuffer(`Run completed: ${data.timestamp}\n\n`);
404
+ // Summary
405
+ this.pushToBuffer('Summary:\n');
406
+ this.pushToBuffer(` Passed: ${data.summary.passed}\n`);
407
+ this.pushToBuffer(` Failed: ${data.summary.failed}\n`);
408
+ this.pushToBuffer(` Skipped: ${data.summary.skipped}\n`);
409
+ this.pushToBuffer(` Total: ${data.summary.total}\n`);
410
+ this.pushToBuffer(` Duration: ${data.summary.duration}\n\n`);
411
+ // Failures section
412
+ if (data.failures.length > 0) {
413
+ this.pushToBuffer('Failures:\n');
414
+ this.pushToBuffer('=========\n\n');
415
+ for (const failure of data.failures) {
416
+ this.pushToBuffer(`${failure.testName}\n`);
417
+ this.pushToBuffer(`${'-'.repeat(failure.testName.length)}\n`);
418
+ if (failure.message) {
419
+ this.pushToBuffer(`Error:\n${failure.message}\n\n`);
420
+ }
421
+ if (failure.stackTrace) {
422
+ this.pushToBuffer(`Stack Trace:\n${failure.stackTrace}\n\n`);
423
+ }
424
+ if (failure.duration) {
425
+ this.pushToBuffer(`Duration: ${failure.duration}\n\n`);
426
+ }
427
+ this.pushToBuffer('\n');
428
+ }
429
+ }
430
+ // Passed tests section
431
+ if (data.passedTests.length > 0) {
432
+ this.pushToBuffer('Passed Tests:\n');
433
+ this.pushToBuffer('==============\n\n');
434
+ for (const test of data.passedTests) {
435
+ this.pushToBuffer(` - ${test.testName}`);
436
+ if (test.runtime) {
437
+ this.pushToBuffer(` (${test.runtime})`);
438
+ }
439
+ this.pushToBuffer('\n');
440
+ }
441
+ this.pushToBuffer('\n');
442
+ }
443
+ // Skipped tests section
444
+ if (data.skippedTests.length > 0) {
445
+ this.pushToBuffer('Skipped Tests:\n');
446
+ this.pushToBuffer('===============\n\n');
447
+ for (const test of data.skippedTests) {
448
+ this.pushToBuffer(` - ${test.testName}\n`);
449
+ }
450
+ this.pushToBuffer('\n');
451
+ }
452
+ // Code coverage by class section
453
+ if (data.coverageTable && data.coverageTable.rows.length > 0) {
454
+ this.pushToBuffer('Code Coverage by Class:\n');
455
+ this.pushToBuffer('=======================\n\n');
456
+ for (const row of data.coverageTable.rows) {
457
+ this.pushToBuffer(` ${row.className}: ${row.percentage} (Uncovered: ${row.uncoveredLines})\n`);
458
+ }
459
+ this.pushToBuffer('\n');
460
+ }
461
+ }
462
+ }
463
+ exports.MarkdownTextFormatTransformer = MarkdownTextFormatTransformer;
464
+ __decorate([
465
+ (0, utils_1.elapsedTime)()
466
+ ], MarkdownTextFormatTransformer.prototype, "format", null);
467
+ //# sourceMappingURL=markdownTextFormatTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownTextFormatTransformer.js","sourceRoot":"","sources":["../../../src/reporters/markdownTextFormatTransformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { TestResult, ApexTestResultData } from '../tests/types';
2
+ export type OutputFormat = 'markdown' | 'text';
3
+ export type TestSortOrder = 'runtime' | 'coverage' | 'severity';
4
+ export interface MarkdownTextReporterOptions {
5
+ /**
6
+ * Output format: 'markdown' or 'text'
7
+ */
8
+ format?: OutputFormat;
9
+ /**
10
+ * Sort order for tests: 'runtime', 'coverage', or 'severity'
11
+ */
12
+ sortOrder?: TestSortOrder;
13
+ /**
14
+ * Performance threshold in milliseconds. Tests exceeding this will be flagged as poorly performing.
15
+ */
16
+ performanceThresholdMs?: number;
17
+ /**
18
+ * Coverage threshold as a percentage. Tests below this will be flagged as poorly covered.
19
+ */
20
+ coverageThresholdPercent?: number;
21
+ /**
22
+ * Whether to include code coverage information in the report
23
+ */
24
+ codeCoverage?: boolean;
25
+ /**
26
+ * Timestamp for the test run. If not provided, current time will be used.
27
+ */
28
+ timestamp?: Date;
29
+ }
30
+ /** Escapes markdown special characters */
31
+ export declare const escapeMarkdown: (text: string) => string;
32
+ /** Formats duration in milliseconds to a human-readable string */
33
+ export declare const formatDuration: (ms: number) => string;
34
+ /** Checks if a test is poorly performing (takes too long) */
35
+ export declare const isPoorlyPerforming: (runTime: number | undefined, thresholdMs: number) => boolean;
36
+ /** Checks if a test has poor coverage */
37
+ export declare const hasPoorCoverage: (coverage: string | number | undefined, thresholdPercent: number) => boolean;
38
+ /** Extracts numeric coverage percentage from coverage value */
39
+ export declare const getCoveragePercentage: (coverage?: string | number) => number | null;
40
+ /** Extracts test name information from a test */
41
+ export declare const getTestNameInfo: (test: ApexTestResultData) => {
42
+ className: string;
43
+ namespacePrefix: string;
44
+ fullClassName: string;
45
+ methodName: string;
46
+ testName: string;
47
+ };
48
+ /** Formats timestamp to a string */
49
+ export declare const formatTimestamp: (timestamp: Date) => string;
50
+ /** Extracts summary information from test result */
51
+ export declare const getSummaryInfo: (summary: TestResult["summary"]) => {
52
+ passed: number;
53
+ failed: number;
54
+ skipped: number;
55
+ total: number;
56
+ duration: number;
57
+ };
58
+ /** Calculates a severity score for sorting (higher = worse) */
59
+ export declare const getSeverityScore: (test: ApexTestResultData, codeCoverage: boolean, performanceThresholdMs: number, coverageThresholdPercent: number) => number;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2025, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getSeverityScore = exports.getSummaryInfo = exports.formatTimestamp = exports.getTestNameInfo = exports.getCoveragePercentage = exports.hasPoorCoverage = exports.isPoorlyPerforming = exports.formatDuration = exports.escapeMarkdown = void 0;
10
+ /** Escapes markdown special characters */
11
+ const escapeMarkdown = (text) => text.replaceAll(/[\\`*_{}[\]()#+\-!]/g, '\\$&');
12
+ exports.escapeMarkdown = escapeMarkdown;
13
+ /** Formats duration in milliseconds to a human-readable string */
14
+ const formatDuration = (ms) => {
15
+ if (ms < 1000) {
16
+ return `${ms}ms`;
17
+ }
18
+ const seconds = Math.floor(ms / 1000);
19
+ const minutes = Math.floor(seconds / 60);
20
+ if (minutes > 0) {
21
+ return `${minutes}m ${seconds % 60}s`;
22
+ }
23
+ return `${seconds}s`;
24
+ };
25
+ exports.formatDuration = formatDuration;
26
+ /** Checks if a test is poorly performing (takes too long) */
27
+ const isPoorlyPerforming = (runTime, thresholdMs) => runTime !== undefined && runTime > thresholdMs;
28
+ exports.isPoorlyPerforming = isPoorlyPerforming;
29
+ /** Checks if a test has poor coverage */
30
+ const hasPoorCoverage = (coverage, thresholdPercent) => {
31
+ if (coverage === undefined || coverage === 'N/A') {
32
+ return false;
33
+ }
34
+ if (typeof coverage === 'string') {
35
+ const numericValue = parseFloat(coverage.replace('%', ''));
36
+ return !isNaN(numericValue) && numericValue < thresholdPercent;
37
+ }
38
+ return coverage < thresholdPercent;
39
+ };
40
+ exports.hasPoorCoverage = hasPoorCoverage;
41
+ /** Extracts numeric coverage percentage from coverage value */
42
+ const getCoveragePercentage = (coverage) => {
43
+ if (coverage === undefined || coverage === 'N/A') {
44
+ return null;
45
+ }
46
+ if (typeof coverage === 'string') {
47
+ const numericValue = parseFloat(coverage.replace('%', ''));
48
+ return isNaN(numericValue) ? null : numericValue;
49
+ }
50
+ return coverage;
51
+ };
52
+ exports.getCoveragePercentage = getCoveragePercentage;
53
+ /** Extracts test name information from a test */
54
+ const getTestNameInfo = (test) => {
55
+ const className = test.apexClass?.name ?? 'Unknown';
56
+ const namespacePrefix = test.apexClass?.namespacePrefix;
57
+ const fullClassName = namespacePrefix
58
+ ? `${namespacePrefix}.${className}`
59
+ : className;
60
+ const methodName = test.methodName ?? 'Unknown';
61
+ const testName = `${fullClassName}.${methodName}`;
62
+ return { className, namespacePrefix, fullClassName, methodName, testName };
63
+ };
64
+ exports.getTestNameInfo = getTestNameInfo;
65
+ /** Formats timestamp to a string */
66
+ const formatTimestamp = (timestamp) => timestamp.toLocaleString('en-US', {
67
+ year: 'numeric',
68
+ month: '2-digit',
69
+ day: '2-digit',
70
+ hour: '2-digit',
71
+ minute: '2-digit',
72
+ second: '2-digit',
73
+ hour12: false
74
+ });
75
+ exports.formatTimestamp = formatTimestamp;
76
+ /** Extracts summary information from test result */
77
+ const getSummaryInfo = (summary) => {
78
+ const passed = summary?.passing ?? 0;
79
+ const failed = summary?.failing ?? 0;
80
+ const skipped = summary?.skipped ?? 0;
81
+ const total = summary?.testsRan ?? 0;
82
+ const duration = summary?.outcome === 'Passed' || summary?.outcome === 'Failed'
83
+ ? (summary?.testExecutionTimeInMs ?? 0)
84
+ : 0;
85
+ return { passed, failed, skipped, total, duration };
86
+ };
87
+ exports.getSummaryInfo = getSummaryInfo;
88
+ /** Calculates a severity score for sorting (higher = worse) */
89
+ const getSeverityScore = (test, codeCoverage, performanceThresholdMs, coverageThresholdPercent) => {
90
+ let score = 0;
91
+ // Both issues = highest priority (score 10000+)
92
+ const isSlow = (0, exports.isPoorlyPerforming)(test.runTime, performanceThresholdMs);
93
+ const hasLowCoverage = codeCoverage &&
94
+ (0, exports.hasPoorCoverage)(test.perClassCoverage?.[0]?.percentage, coverageThresholdPercent);
95
+ if (isSlow && hasLowCoverage) {
96
+ score += 10_000;
97
+ }
98
+ else if (isSlow) {
99
+ score += 5000;
100
+ }
101
+ else if (hasLowCoverage) {
102
+ score += 5000;
103
+ }
104
+ // Add runtime (longer = worse, but only if it's a problem)
105
+ if (test.runTime !== undefined) {
106
+ score += test.runTime;
107
+ }
108
+ // Subtract coverage (lower = worse, but only if it's a problem)
109
+ if (codeCoverage && hasLowCoverage) {
110
+ const coverage = (0, exports.getCoveragePercentage)(test.perClassCoverage?.[0]?.percentage);
111
+ if (coverage !== null) {
112
+ score += (100 - coverage) * 100; // Lower coverage = higher score
113
+ }
114
+ }
115
+ return score;
116
+ };
117
+ exports.getSeverityScore = getSeverityScore;
118
+ //# sourceMappingURL=markdownTextReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownTextReporter.js","sourceRoot":"","sources":["../../../src/reporters/markdownTextReporter.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,22 @@ const writeResultFiles = async (result, outputDirConfig, codeCoverage = false, r
67
67
  bufferSize: (0, utils_1.getBufferSize)()
68
68
  });
69
69
  break;
70
+ case types_1.ResultFormat.markdown:
71
+ filePath = (0, path_1.join)(dirPath, `test-result-${testRunId || 'default'}.md`);
72
+ readable = new reporters_1.MarkdownTextFormatTransformer(result, {
73
+ bufferSize: (0, utils_1.getBufferSize)(),
74
+ format: 'markdown',
75
+ codeCoverage
76
+ });
77
+ break;
78
+ case types_1.ResultFormat.text:
79
+ filePath = (0, path_1.join)(dirPath, `test-result-${testRunId || 'default'}.txt`);
80
+ readable = new reporters_1.MarkdownTextFormatTransformer(result, {
81
+ bufferSize: (0, utils_1.getBufferSize)(),
82
+ format: 'text',
83
+ codeCoverage
84
+ });
85
+ break;
70
86
  default:
71
87
  throw new Error(i18n_1.nls.localize('resultFormatErr'));
72
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testService.js","sourceRoot":"","sources":["../../../src/tests/testService.ts"],"names":[],"mappings":";;;;;;;;;AAOA,mCAaiB;AACjB,+BAA4B;AAE5B,kCAA8B;AAC9B,4CAA4E;AAC5E,mCAKiB;AACjB,6CAA0C;AAC1C,2CAAwC;AACxC,qDAAoD;AAEpD,+CAAoD;AACpD,6CAAiD;AACjD,4CAAyD;AACzD,oCAAoD;AACpD,4CAAgE;AAGhE,mDAAgD;AAChD,qCAA4C;AAE5C,iEAA4D;AAE5D;;GAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAAoC,EACpC,eAAgC,EAChC,YAAY,GAAG,KAAK,EACpB,WAIoB,EACD,EAAE;IACrB,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IAE9D,IACE,aAAa;QACb,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,oBAAY,CAAC,EACxD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,MAAM,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;QAC1B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAErB,IAAI,CAAC;QACH,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7D,YAAY,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa,IAAI,IAAA,wBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC;YACb,IAAI,QAAQ,CAAC;YACb,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,oBAAY,CAAC,IAAI;oBACpB,QAAQ,GAAG,IAAA,WAAI,EACb,OAAO,EACP,eAAe,SAAS,IAAI,SAAS,OAAO,CAC7C,CAAC;oBACF,QAAQ,GAAG,qCAAyB,CAAC,cAAc,CAAC,MAAM,EAAE;wBAC1D,UAAU,EAAE,IAAA,qBAAa,GAAE;qBAC5B,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,oBAAY,CAAC,GAAG;oBACnB,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,eAAe,SAAS,UAAU,CAAC,CAAC;oBAC7D,QAAQ,GAAG,IAAI,gCAAoB,CAAC,MAAM,EAAE,SAAS,EAAE;wBACrD,UAAU,EAAE,IAAA,qBAAa,GAAE;qBAC5B,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,oBAAY,CAAC,KAAK;oBACrB,QAAQ,GAAG,IAAA,WAAI,EACb,OAAO,EACP,eAAe,SAAS,IAAI,SAAS,YAAY,CAClD,CAAC;oBACF,QAAQ,GAAG,IAAI,kCAAsB,CAAC,MAAM,EAAE;wBAC5C,UAAU,EAAE,IAAA,qBAAa,GAAE;qBAC5B,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,YAAY,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,IAAI,IAAA,wBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAA,WAAI,EACnB,OAAO,EACP,eAAe,SAAS,oBAAoB,CAC7C,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK;aACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACxC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,YAAY,CAAC,IAAI,CACf,MAAM,WAAW,CACf,IAAI,2CAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAA,qBAAa,GAAE,CAAC,EACjD,QAAQ,CACT,CACF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,QAAQ,GACZ,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAClC,CAAC,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC,CAAC,IAAI,2CAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAA,qBAAa,GAAE,CAAC,CAAC;YACvE,YAAY,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAnGW,QAAA,gBAAgB,oBAmG3B;AAEF,MAAa,WAAW;IACL,UAAU,CAAa;IACxB,YAAY,CAAa;IACxB,WAAW,CAAY;IAExC,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IAEU,AAAN,KAAK,CAAC,iBAAiB;QAG5B,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAC3D,6CAA6C,CAC9C,CAAuD,CAAC;QAEzD,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAClC,CAAC;IAGa,AAAN,KAAK,CAAC,eAAe,CAC3B,SAAiB;QAEjB,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CACtD,uDAAuD,SAAS,GAAG,CACpE,CAAgB,CAAC;QAElB,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IAEW,AAAN,KAAK,CAAC,mBAAmB,CAAC,UAAoB;QACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE;oBACpE,aAAa,EAAE,KAAK;iBACrB,CAAC,CAAmB,CAAC;gBACtB,OAAO,MAAM,CAAC,EAAE,CAAC;YACnB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,eAAe,CAC1B,SAAkB,EAClB,OAAgB;QAEhB,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CACvD,wEAAwE,OAAO,GAAG,CACnF,CAA2C,CAAC;QAE7C,OAAO,YAAY,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,eAAe,CAAC,WAAqB;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CACpD,gDAAgD,SAAS,GAAG,CAC7D,CAAgB,CAAC;YAClB,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,UAAU,CACrB,SAAiB,EACjB,WAAqB;QAErB,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjC,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CACrC,CAAC;YAEF,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,UAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE;oBAC1D,WAAW,EAAE,OAAO;oBACpB,eAAe,EAAE,WAAW;iBAC7B,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,UAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,kBAAkB,CAC7B,OAA8B,EAC9B,YAAY,GAAG,KAAK,EACpB,KAAyB;QAEzB,mBAAW,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;gBAAS,CAAC;YACT,mBAAW,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,mBAAmB,CAC9B,OAA6D,EAC7D,YAAY,GAAG,KAAK,EACpB,iBAAiB,GAAG,KAAK,EACzB,QAA0C,EAC1C,KAAyB,EACzB,OAAkB,EAClB,QAAmB;QAEnB,mBAAW,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CACrC,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,CACT,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,mBAAW,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,kBAAkB,CAC7B,SAAiB,EACjB,YAAY,GAAG,KAAK,EACpB,KAAyB;QAEzB,mBAAW,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAC/C,SAAS,EACT,YAAY,EACZ,KAAK,CACN,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,mBAAW,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IAEU,AAAN,KAAK,CAAC,gBAAgB,CAC3B,MAAoC,EACpC,eAAgC,EAChC,YAAY,GAAG,KAAK;QAEpB,mBAAW,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;QAC5C,mBAAW,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,wBAAgB,EAC3B,MAAM,EACN,eAAe,EACf,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,mBAAW,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;YACxE,mBAAW,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IAEU,AAAN,KAAK,CAAC,gBAAgB,CAC3B,SAAoB,EACpB,KAAc,EACd,UAAmB;IACnB;;OAEG;IACH,QAAiB;IACjB;;;OAGG;IACH,gBAAgB,GAAG,KAAK;QAExB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBACrE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK;oBAC3B,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;qBACzC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACjD,UAAU,EACV,gBAAgB,CACjB,CAAC;oBACF,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;yBAClC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;yBACxC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACzC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBAChC,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;oBACtE,OAAO;wBACL,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;wBAC/B,SAAS;wBACT,gBAAgB;qBACjB,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,SAAS;oBACT,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC7B,gBAAgB;iBACjB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,UAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,iCAAgB,EAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IAEU,AAAN,KAAK,CAAC,iBAAiB,CAC5B,SAAoB,EACpB,KAAc,EACd,UAAmB,EACnB,UAAmB;IACnB;;OAEG;IACH,QAAiB;IACjB;;;OAGG;IACH,gBAAgB,GAAG,KAAK;QAExB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CACjC,KAAK,EACL,gBAAgB,CACjB,CAAgC,CAAC;YACpC,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,UAAU,EACV,gBAAgB,CACjB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,IAAI,CAAC,sBAAsB,CACtC,UAAU,EACV,gBAAgB,CACjB,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,UAAU;oBACV,SAAS;oBACT,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI;wBAChC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;qBAC9B,CAAC;oBACF,gBAAgB;iBACjB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,iCAAgB,EAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAGa,AAAN,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,gBAAyB;QAEzB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YAChE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAc,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,SAAS,uDAA6B;YACtC,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAGa,AAAN,KAAK,CAAC,wBAAwB,CACpC,UAAkB,EAClB,gBAAyB;QAEzB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CACnC,CAAC,IAAI,EAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAC1C,CAAC;QACF,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,SAAS,uDAA6B;YACtC,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAGa,AAAN,KAAK,CAAC,gBAAgB,CAC5B,SAAiB,EACjB,gBAAyB;QAEzB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,cAA+B,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,MAAM,EAAE,CAAC;oBACX,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CACzC,SAAS,EACT,SAAS,EACT,OAAO,EACP,cAAc,CACf,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CACzC,SAAS,EACT,SAAS,EACT,OAAO,EACP,cAAc,CACf,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;gBAChE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,SAAS,uDAA6B;YACtC,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,SAAmB,EACnB,SAAqB,EACrB,OAAiB,EACjB,cAA+B;QAE/B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,4CAA4C;YAC5C,MAAM,aAAa,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAExE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC5C,SAAS,EAAE,aAAa;oBACxB,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5B,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;wBACxC,OAAO,CAAC,SAAS,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC1C,cAAc,GAAG,MAAM,IAAA,uBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAC1C,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5D,CAAC;YAEF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBACjC,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;qBAC7D,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;wBAC5C,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;qBAC7D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrC,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,aAAa;wBACxB,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBAC5B,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;4BACxC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,SAAmB,EACnB,SAAqB,EACrB,OAAiB,EACjB,cAA+B;QAE/B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,iCAAiC;YACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC5B,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC5B,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5B,IAAI,OAAO,CAAC,SAAS,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;wBAC5C,OAAO,CAAC,SAAS,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC1C,cAAc,GAAG,MAAM,IAAA,uBAAe,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAC1C,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5D,CAAC;YAEF,gGAAgG;YAChG,8DAA8D;YAC9D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBACjC,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;qBAC7C,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;wBAC5B,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;qBAC7B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;wBACvB,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBAC5B,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;4BACvC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,QAAkB,EAClB,QAAgB,EAChB,SAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAA,2BAAiB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACO,WAAW,CAAC,QAAiB;QACnC,OAAO,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF;AAjlBD,kCAilBC;AAjkBc;IADZ,IAAA,mBAAW,GAAE;oDASb;AAGa;IADb,IAAA,mBAAW,GAAE;kDAYb;AAQa;IADb,IAAA,mBAAW,GAAE;sDAcb;AASY;IADZ,IAAA,mBAAW,GAAE;kDAoBb;AAQY;IADZ,IAAA,mBAAW,GAAE;kDAYb;AAQY;IADZ,IAAA,mBAAW,GAAE;6CA4Bb;AASY;IADZ,IAAA,mBAAW,GAAE;qDAYb;AAYY;IADZ,IAAA,mBAAW,GAAE;sDAwBb;AASY;IADZ,IAAA,mBAAW,GAAE;qDAgBb;AAUY;IADZ,IAAA,mBAAW,GAAE;mDAmBb;AAMY;IADZ,IAAA,mBAAW,GAAE;mDAyDb;AAMY;IADZ,IAAA,mBAAW,GAAE;oDA+Cb;AAGa;IADb,IAAA,mBAAW,GAAE;yDAmBb;AAGa;IADb,IAAA,mBAAW,GAAE;2DAcb;AAGa;IADb,IAAA,mBAAW,GAAE;mDAyCb"}
1
+ {"version":3,"file":"testService.js","sourceRoot":"","sources":["../../../src/tests/testService.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,9 @@ export declare enum ResultFormat {
72
72
  junit = "junit",
73
73
  tap = "tap",
74
74
  json = "json",
75
- human = "human"
75
+ human = "human",
76
+ markdown = "markdown",
77
+ text = "text"
76
78
  }
77
79
  export type OutputDirConfig = {
78
80
  dirPath: string;
@@ -46,6 +46,8 @@ var ResultFormat;
46
46
  ResultFormat["tap"] = "tap";
47
47
  ResultFormat["json"] = "json";
48
48
  ResultFormat["human"] = "human";
49
+ ResultFormat["markdown"] = "markdown";
50
+ ResultFormat["text"] = "text";
49
51
  })(ResultFormat || (exports.ResultFormat = ResultFormat = {}));
50
52
  var ApexTestResultOutcome;
51
53
  (function (ApexTestResultOutcome) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tests/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,IAAkB,SAajB;AAbD,WAAkB,SAAS;IACzB;;OAEG;IACH,4CAA+B,CAAA;IAC/B;;OAEG;IACH,kDAAqC,CAAA;IACrC;;OAEG;IACH,oDAAuC,CAAA;AACzC,CAAC,EAbiB,SAAS,yBAAT,SAAS,QAa1B;AAED,IAAkB,YASjB;AATD,WAAkB,YAAY;IAC5B;;OAEG;IACH,6BAAa,CAAA;IACb;;OAEG;IACH,6BAAa,CAAA;AACf,CAAC,EATiB,YAAY,4BAAZ,YAAY,QAS7B;AAED,IAAkB,kBAKjB;AALD,WAAkB,kBAAkB;IAClC;;OAEG;IACH,+CAAyB,CAAA;AAC3B,CAAC,EALiB,kBAAkB,kCAAlB,kBAAkB,QAKnC;AA2CD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AA+GD,IAAkB,qBAKjB;AALD,WAAkB,qBAAqB;IACrC,sCAAa,CAAA;IACb,sCAAa,CAAA;IACb,oDAA2B,CAAA;IAC3B,sCAAa,CAAA;AACf,CAAC,EALiB,qBAAqB,qCAArB,qBAAqB,QAKtC;AAgGD,IAAkB,uBAQjB;AARD,WAAkB,uBAAuB;IACvC,4CAAiB,CAAA;IACjB,oDAAyB,CAAA;IACzB,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;AACrB,CAAC,EARiB,uBAAuB,uCAAvB,uBAAuB,QAQxC;AA6CD,IAAkB,uBAQjB;AARD,WAAkB,uBAAuB;IACvC,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,kDAAuB,CAAA;IACvB,oDAAyB,CAAA;IACzB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,4CAAiB,CAAA;AACnB,CAAC,EARiB,uBAAuB,uCAAvB,uBAAuB,QAQxC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tests/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,IAAkB,SAajB;AAbD,WAAkB,SAAS;IACzB;;OAEG;IACH,4CAA+B,CAAA;IAC/B;;OAEG;IACH,kDAAqC,CAAA;IACrC;;OAEG;IACH,oDAAuC,CAAA;AACzC,CAAC,EAbiB,SAAS,yBAAT,SAAS,QAa1B;AAED,IAAkB,YASjB;AATD,WAAkB,YAAY;IAC5B;;OAEG;IACH,6BAAa,CAAA;IACb;;OAEG;IACH,6BAAa,CAAA;AACf,CAAC,EATiB,YAAY,4BAAZ,YAAY,QAS7B;AAED,IAAkB,kBAKjB;AALD,WAAkB,kBAAkB;IAClC;;OAEG;IACH,+CAAyB,CAAA;AAC3B,CAAC,EALiB,kBAAkB,kCAAlB,kBAAkB,QAKnC;AA2CD,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,qCAAqB,CAAA;IACrB,6BAAa,CAAA;AACf,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AA+GD,IAAkB,qBAKjB;AALD,WAAkB,qBAAqB;IACrC,sCAAa,CAAA;IACb,sCAAa,CAAA;IACb,oDAA2B,CAAA;IAC3B,sCAAa,CAAA;AACf,CAAC,EALiB,qBAAqB,qCAArB,qBAAqB,QAKtC;AAgGD,IAAkB,uBAQjB;AARD,WAAkB,uBAAuB;IACvC,4CAAiB,CAAA;IACjB,oDAAyB,CAAA;IACzB,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;AACrB,CAAC,EARiB,uBAAuB,uCAAvB,uBAAuB,QAQxC;AA6CD,IAAkB,uBAQjB;AARD,WAAkB,uBAAuB;IACvC,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,kDAAuB,CAAA;IACvB,oDAAyB,CAAA;IACzB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,4CAAiB,CAAA;AACnB,CAAC,EARiB,uBAAuB,uCAAvB,uBAAuB,QAQxC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@salesforce/apex-node",
3
3
  "description": "Salesforce JS library for Apex",
4
- "version": "8.4.2",
4
+ "version": "8.4.3",
5
5
  "author": "Salesforce",
6
6
  "bugs": "https://github.com/forcedotcom/salesforcedx-apex/issues",
7
7
  "main": "lib/src/index.js",
@@ -31,7 +31,7 @@
31
31
  "@typescript-eslint/parser": "^6.21.0",
32
32
  "chai": "^4.5.0",
33
33
  "commitlint": "^18.6.1",
34
- "esbuild": "^0.27.0",
34
+ "esbuild": "^0.27.2",
35
35
  "eslint": "^8.57.1",
36
36
  "eslint-config-prettier": "^9.1.2",
37
37
  "eslint-plugin-header": "^3.0.0",
@@ -43,7 +43,7 @@
43
43
  "mocha-junit-reporter": "^2.2.1",
44
44
  "mocha-snap": "^5.0.1",
45
45
  "nyc": "^15.1.0",
46
- "prettier": "^3.7.3",
46
+ "prettier": "^3.7.4",
47
47
  "shx": "^0.4.0",
48
48
  "sinon": "^17.0.1",
49
49
  "source-map-support": "^0.5.16",