spec-box-tms-sync 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -2
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/markdown.d.ts +4 -0
- package/dist/commands/markdown.d.ts.map +1 -0
- package/dist/commands/markdown.js +21 -0
- package/dist/commands/markdown.js.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +10 -16
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/upload-stat.d.ts +2 -2
- package/dist/commands/upload-stat.d.ts.map +1 -1
- package/dist/commands/upload-stat.js +15 -8
- package/dist/commands/upload-stat.js.map +1 -1
- package/dist/commands/validate-only.d.ts.map +1 -1
- package/dist/commands/validate-only.js +10 -15
- package/dist/commands/validate-only.js.map +1 -1
- package/dist/lib/config/index.d.ts +4 -0
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/config/index.js +16 -1
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/config/models.d.ts +13 -2
- package/dist/lib/config/models.d.ts.map +1 -1
- package/dist/lib/config/models.js +8 -3
- package/dist/lib/config/models.js.map +1 -1
- package/dist/lib/markdown/build-index.d.ts +3 -0
- package/dist/lib/markdown/build-index.d.ts.map +1 -0
- package/dist/lib/markdown/build-index.js +23 -0
- package/dist/lib/markdown/build-index.js.map +1 -0
- package/dist/lib/markdown/feature-to-markdown.d.ts +3 -0
- package/dist/lib/markdown/feature-to-markdown.d.ts.map +1 -0
- package/dist/lib/markdown/feature-to-markdown.js +42 -0
- package/dist/lib/markdown/feature-to-markdown.js.map +1 -0
- package/dist/lib/markdown/index.d.ts +3 -0
- package/dist/lib/markdown/index.d.ts.map +1 -0
- package/dist/lib/markdown/index.js +37 -0
- package/dist/lib/markdown/index.js.map +1 -0
- package/dist/lib/test-matcher/index.d.ts +7 -0
- package/dist/lib/test-matcher/index.d.ts.map +1 -0
- package/dist/lib/test-matcher/index.js +47 -0
- package/dist/lib/test-matcher/index.js.map +1 -0
- package/dist/lib/test-matcher/jest/index.d.ts +3 -0
- package/dist/lib/test-matcher/jest/index.d.ts.map +1 -0
- package/dist/lib/test-matcher/jest/index.js +40 -0
- package/dist/lib/test-matcher/jest/index.js.map +1 -0
- package/dist/lib/{jest → test-matcher/jest}/models.d.ts +8 -7
- package/dist/lib/test-matcher/jest/models.d.ts.map +1 -0
- package/dist/lib/test-matcher/jest/models.js.map +1 -0
- package/dist/lib/test-matcher/junit/index.d.ts +3 -0
- package/dist/lib/test-matcher/junit/index.d.ts.map +1 -0
- package/dist/lib/test-matcher/junit/index.js +43 -0
- package/dist/lib/test-matcher/junit/index.js.map +1 -0
- package/dist/lib/test-matcher/junit/models.d.ts +40 -0
- package/dist/lib/test-matcher/junit/models.d.ts.map +1 -0
- package/dist/lib/test-matcher/junit/models.js +42 -0
- package/dist/lib/test-matcher/junit/models.js.map +1 -0
- package/dist/lib/test-matcher/models.d.ts +13 -0
- package/dist/lib/test-matcher/models.d.ts.map +1 -0
- package/dist/lib/test-matcher/models.js +3 -0
- package/dist/lib/test-matcher/models.js.map +1 -0
- package/dist/lib/upload/upload-jest-stat.d.ts +2 -2
- package/dist/lib/upload/upload-jest-stat.d.ts.map +1 -1
- package/dist/lib/upload/upload-jest-stat.js +6 -9
- package/dist/lib/upload/upload-jest-stat.js.map +1 -1
- package/dist/lib/validators/validator.d.ts +2 -1
- package/dist/lib/validators/validator.d.ts.map +1 -1
- package/dist/lib/validators/validator.js +5 -5
- package/dist/lib/validators/validator.js.map +1 -1
- package/package.json +3 -1
- package/dist/lib/jest/index.d.ts +0 -24
- package/dist/lib/jest/index.d.ts.map +0 -1
- package/dist/lib/jest/index.js +0 -57
- package/dist/lib/jest/index.js.map +0 -1
- package/dist/lib/jest/models.d.ts.map +0 -1
- package/dist/lib/jest/models.js.map +0 -1
- /package/dist/lib/{jest → test-matcher/jest}/models.js +0 -0
package/README.md
CHANGED
|
@@ -209,10 +209,13 @@ trees:
|
|
|
209
209
|
jest --json --outputFile=jest-report.json
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
-
Чтобы добавить в выгрузку ФТ информацию из отчета jest, добавьте в корень [конфигурационного файла](#формат-конфига) секцию `"jest"
|
|
212
|
+
Чтобы добавить в выгрузку ФТ информацию из отчета jest или JUnit, добавьте в корень [конфигурационного файла](#формат-конфига) секцию `"jest"` или `"JUnit"`
|
|
213
|
+
|
|
214
|
+
Если в проекте один набор тестов, то указать следует только один отчет.
|
|
215
|
+
|
|
216
|
+
Если в проекте выполняется несколько наборов тестов с разными форматами отчетов, то можно указать обе секции
|
|
213
217
|
|
|
214
218
|
```js
|
|
215
|
-
{
|
|
216
219
|
// ...
|
|
217
220
|
"jest": {
|
|
218
221
|
// путь к файлу с отчетом о выполнении тестов
|
|
@@ -221,6 +224,12 @@ jest --json --outputFile=jest-report.json
|
|
|
221
224
|
// сегменты идентификатора для сопоставления автотестов с ФТ
|
|
222
225
|
"keys": ["featureTitle", "groupTitle", "assertionTitle"]
|
|
223
226
|
}
|
|
227
|
+
|
|
228
|
+
"JUnit": {
|
|
229
|
+
"reportPath": "test-results/junit.xml",
|
|
230
|
+
|
|
231
|
+
"keys": ["featureCode", "featureTitle", "groupTitle", "assertionTitle"]
|
|
232
|
+
}
|
|
224
233
|
```
|
|
225
234
|
|
|
226
235
|
Для каждого ФТ, описанного в yml файлах проекта, будет сформирован уникальный идентификатор на основе поля `"keys"`. Если в отчете jest есть тест, полное имя которого совпадает с идентификатором ФТ, то считается, что проверка этого ФТ — автоматизирована.
|
|
@@ -248,6 +257,20 @@ describe('Главная страница', () => {
|
|
|
248
257
|
- `@<attribute>` — значение указанного атрибута (идентификатор значения)
|
|
249
258
|
- `$<attribute>` — значение указанного атрибута (человеко-понятное название)
|
|
250
259
|
|
|
260
|
+
## Экспорт спецификаций в формате Markdown
|
|
261
|
+
|
|
262
|
+
Можно выполнить экспорт спецификаций в формате Markdown, по-умолчанию экспорт происходит в папку `docs` - значение можно переопределить в файле конфигурации
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
"markdown": {
|
|
266
|
+
"path": "documentation"
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Результат экспорта повторяет структуру папок спецификаций, ссылки заменяются на стандартные ссылки формата wiki `[[feature-path | $feature-code]]`.
|
|
271
|
+
|
|
272
|
+
Папку можно преобразовать в статический сайт с документацией при помощи [MkDocs](https://www.mkdocs.org)
|
|
273
|
+
|
|
251
274
|
## Формат конфига
|
|
252
275
|
|
|
253
276
|
Ниже указаны все возможные параметры конфигурационного файла:
|
|
@@ -270,6 +293,9 @@ describe('Главная страница', () => {
|
|
|
270
293
|
"tests/unit/**/*.spec.yml"
|
|
271
294
|
]
|
|
272
295
|
},
|
|
296
|
+
"markdown": {
|
|
297
|
+
"path": "documentation"
|
|
298
|
+
},
|
|
273
299
|
// настройки для сопоставления ФТ с отчетами jest
|
|
274
300
|
"jest": {
|
|
275
301
|
"reportPath": "jest-report.json", // путь к файлу с отчетом о выполнении тестов
|
package/dist/cli.js
CHANGED
|
@@ -6,10 +6,12 @@ const helpers_1 = require("yargs/helpers");
|
|
|
6
6
|
const sync_1 = require("./commands/sync");
|
|
7
7
|
const upload_stat_1 = require("./commands/upload-stat");
|
|
8
8
|
const validate_only_1 = require("./commands/validate-only");
|
|
9
|
+
const markdown_1 = require("./commands/markdown");
|
|
9
10
|
(0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
10
11
|
.command(sync_1.cmdSync)
|
|
11
12
|
.command(upload_stat_1.cmdUploadStat)
|
|
12
13
|
.command(validate_only_1.cmdValidateOnly)
|
|
14
|
+
.command(markdown_1.cmdMarkdown)
|
|
13
15
|
.option('config', {
|
|
14
16
|
alias: 'c',
|
|
15
17
|
type: 'string',
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAAA,gEAAgC;AAChC,2CAAwC;AAExC,0CAA0C;AAC1C,wDAAuD;AACvD,4DAA2D;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAAA,gEAAgC;AAChC,2CAAwC;AAExC,0CAA0C;AAC1C,wDAAuD;AACvD,4DAA2D;AAC3D,kDAAkD;AAElD,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,OAAO,CAAC,cAAO,CAAC;KAChB,OAAO,CAAC,2BAAa,CAAC;KACtB,OAAO,CAAC,+BAAe,CAAC;KACxB,OAAO,CAAC,sBAAW,CAAC;KACpB,MAAM,CAAC,QAAQ,EAAE;IAChB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,aAAa;CAC3B,CAAC;KACD,OAAO,CAAC,YAAY,EAAE;IACrB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iBAAiB;CAC/B,CAAC;KACD,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/commands/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,CAuBxD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdMarkdown = void 0;
|
|
4
|
+
const config_1 = require("../lib/config");
|
|
5
|
+
const markdown_1 = require("../lib/markdown");
|
|
6
|
+
exports.cmdMarkdown = {
|
|
7
|
+
command: 'markdown',
|
|
8
|
+
handler: async (args) => {
|
|
9
|
+
console.log('Export to Markdown');
|
|
10
|
+
const { config } = args;
|
|
11
|
+
const { yml, api, markdown, projectPath } = await (0, config_1.loadConfig)(config);
|
|
12
|
+
const { projectData, validationContext } = await (0, config_1.loadProject)(yml.metaPath, yml.files, projectPath);
|
|
13
|
+
validationContext.printReport();
|
|
14
|
+
if (validationContext.hasCriticalErrors) {
|
|
15
|
+
throw Error('Экспорт невозможен из-за наличия критических ошибок');
|
|
16
|
+
}
|
|
17
|
+
await (0, markdown_1.exportMarkdown)(projectData, (markdown === null || markdown === void 0 ? void 0 : markdown.path) || 'docs');
|
|
18
|
+
console.log(`Экспорт проекта ${api.project} завершен успешно`);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/commands/markdown.ts"],"names":[],"mappings":";;;AAGA,0CAAwD;AACxD,8CAAiD;AAEpC,QAAA,WAAW,GAAqC;IAC3D,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;QAErE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,oBAAW,EAC1D,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,KAAK,EACT,WAAW,CACZ,CAAC;QAGF,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,iBAAiB,CAAC,iBAAiB,EAAE;YACvC,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACpE;QAED,MAAM,IAAA,yBAAc,EAAC,WAAW,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,MAAM,CAAC,CAAC;QAE5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACjE,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAOtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,CAkCpD,CAAC"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cmdSync = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fast_glob_1 = tslib_1.__importDefault(require("fast-glob"));
|
|
6
4
|
const config_1 = require("../lib/config");
|
|
7
|
-
const
|
|
5
|
+
const test_matcher_1 = require("../lib/test-matcher");
|
|
6
|
+
const jest_1 = require("../lib/test-matcher/jest");
|
|
7
|
+
const junit_1 = require("../lib/test-matcher/junit");
|
|
8
8
|
const upload_entities_1 = require("../lib/upload/upload-entities");
|
|
9
|
-
const jest_1 = require("../lib/jest");
|
|
10
|
-
const domain_1 = require("../lib/domain");
|
|
11
|
-
const validators_1 = require("../lib/validators");
|
|
12
9
|
exports.cmdSync = {
|
|
13
10
|
command: 'sync',
|
|
14
11
|
handler: async (args) => {
|
|
15
12
|
console.log('SYNC');
|
|
16
13
|
const { config, prjversion: version } = args;
|
|
17
|
-
const
|
|
18
|
-
const {
|
|
19
|
-
const meta = await (0, config_1.loadMeta)(validationContext, yml.metaPath, projectPath);
|
|
20
|
-
const files = await (0, fast_glob_1.default)(yml.files, { cwd: projectPath });
|
|
21
|
-
const yamls = await Promise.all(files.map((path) => (0, yaml_1.loadYaml)(validationContext, path, projectPath)));
|
|
22
|
-
const successYamls = new Array();
|
|
23
|
-
yamls.forEach((yaml) => yaml && successYamls.push(yaml));
|
|
24
|
-
const projectData = (0, domain_1.processYamlFiles)(successYamls, meta);
|
|
25
|
-
validationContext.validate(projectData);
|
|
14
|
+
const { yml, api, jest, JUnit, projectPath } = await (0, config_1.loadConfig)(config);
|
|
15
|
+
const { projectData, validationContext } = await (0, config_1.loadProject)(yml.metaPath, yml.files, projectPath);
|
|
26
16
|
if (jest) {
|
|
27
17
|
const jestReport = await (0, jest_1.loadJestReport)(jest.reportPath, projectPath);
|
|
28
|
-
(0,
|
|
18
|
+
(0, test_matcher_1.applyTestReport)(validationContext, projectData, jestReport, jest.keys);
|
|
19
|
+
}
|
|
20
|
+
if (JUnit) {
|
|
21
|
+
const junitReport = await (0, junit_1.loadJUnitReport)(JUnit.reportPath, projectPath);
|
|
22
|
+
(0, test_matcher_1.applyTestReport)(validationContext, projectData, junitReport, JUnit.keys);
|
|
29
23
|
}
|
|
30
24
|
validationContext.printReport();
|
|
31
25
|
if (validationContext.hasCriticalErrors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":";;;AAEA,0CAAwD;AACxD,sDAAsD;AACtD,mDAA0D;AAC1D,qDAA4D;AAC5D,mEAA+D;AAGlD,QAAA,OAAO,GAAqC;IACvD,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;QAExE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,oBAAW,EAC1D,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,KAAK,EACT,WAAW,CACZ,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEtE,IAAA,8BAAe,EAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACxE;QAED,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAe,EAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzE,IAAA,8BAAe,EAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1E;QAED,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,iBAAiB,CAAC,iBAAiB,EAAE;YACvC,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACrE;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,WAAW,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,IAAA,gCAAc,EAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommandModule } from
|
|
2
|
-
import { CommonOptions } from
|
|
1
|
+
import { CommandModule } from 'yargs';
|
|
2
|
+
import { CommonOptions } from '../lib/utils';
|
|
3
3
|
export declare const cmdUploadStat: CommandModule<{}, CommonOptions>;
|
|
4
4
|
//# sourceMappingURL=upload-stat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-stat.d.ts","sourceRoot":"","sources":["../../src/commands/upload-stat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"upload-stat.d.ts","sourceRoot":"","sources":["../../src/commands/upload-stat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,CAyB1D,CAAC"}
|
|
@@ -3,19 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.cmdUploadStat = void 0;
|
|
4
4
|
const config_1 = require("../lib/config");
|
|
5
5
|
const upload_jest_stat_1 = require("../lib/upload/upload-jest-stat");
|
|
6
|
-
const jest_1 = require("../lib/jest");
|
|
6
|
+
const jest_1 = require("../lib/test-matcher/jest");
|
|
7
|
+
const junit_1 = require("../lib/test-matcher/junit");
|
|
7
8
|
exports.cmdUploadStat = {
|
|
8
|
-
command:
|
|
9
|
+
command: 'upload-stat',
|
|
9
10
|
handler: async (args) => {
|
|
10
|
-
console.log(
|
|
11
|
+
console.log('Upload Jest stat');
|
|
11
12
|
const { config, prjversion: version } = args;
|
|
12
|
-
const { api, jest, projectPath } = await (0, config_1.loadConfig)(config);
|
|
13
|
-
if (!jest) {
|
|
14
|
-
console.log(
|
|
13
|
+
const { api, jest, JUnit, projectPath } = await (0, config_1.loadConfig)(config);
|
|
14
|
+
if (!jest && !JUnit) {
|
|
15
|
+
console.log('Jest settings are not specified');
|
|
15
16
|
process.exit(1);
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
if (jest) {
|
|
19
|
+
const jestReport = await (0, jest_1.loadJestReport)(jest.reportPath, projectPath);
|
|
20
|
+
await (0, upload_jest_stat_1.uploadTestStat)(jestReport, api, version);
|
|
21
|
+
}
|
|
22
|
+
if (JUnit) {
|
|
23
|
+
const junitReport = await (0, junit_1.loadJUnitReport)(JUnit.reportPath, projectPath);
|
|
24
|
+
await (0, upload_jest_stat_1.uploadTestStat)(junitReport, api, version);
|
|
25
|
+
}
|
|
19
26
|
},
|
|
20
27
|
};
|
|
21
28
|
//# sourceMappingURL=upload-stat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-stat.js","sourceRoot":"","sources":["../../src/commands/upload-stat.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAC3C,qEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"upload-stat.js","sourceRoot":"","sources":["../../src/commands/upload-stat.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAC3C,qEAAgE;AAChE,mDAA0D;AAC1D,qDAA4D;AAE/C,QAAA,aAAa,GAAqC;IAC7D,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAE7C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,IAAI,EAAE;YACR,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEtE,MAAM,IAAA,iCAAc,EAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;SAChD;QAED,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAe,EAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzE,MAAM,IAAA,iCAAc,EAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-only.d.ts","sourceRoot":"","sources":["../../src/commands/validate-only.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-only.d.ts","sourceRoot":"","sources":["../../src/commands/validate-only.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,CA2B5D,CAAC"}
|
|
@@ -2,27 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cmdValidateOnly = void 0;
|
|
4
4
|
const config_1 = require("../lib/config");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const domain_1 = require("../lib/domain");
|
|
9
|
-
const jest_1 = require("../lib/jest");
|
|
5
|
+
const test_matcher_1 = require("../lib/test-matcher");
|
|
6
|
+
const jest_1 = require("../lib/test-matcher/jest");
|
|
7
|
+
const junit_1 = require("../lib/test-matcher/junit");
|
|
10
8
|
exports.cmdValidateOnly = {
|
|
11
9
|
command: 'validate',
|
|
12
10
|
handler: async (args) => {
|
|
13
11
|
console.log('VALIDATION');
|
|
14
|
-
const { yml, jest, projectPath } = await (0, config_1.loadConfig)(args.config);
|
|
15
|
-
const validationContext =
|
|
16
|
-
const meta = await (0, config_1.loadMeta)(validationContext, yml.metaPath, projectPath);
|
|
17
|
-
const files = await (0, fast_glob_1.glob)(yml.files, { cwd: projectPath });
|
|
18
|
-
const yamls = await Promise.all(files.map((path) => (0, yaml_1.loadYaml)(validationContext, path, projectPath)));
|
|
19
|
-
const successYamls = new Array();
|
|
20
|
-
yamls.forEach((yaml) => yaml && successYamls.push(yaml));
|
|
21
|
-
const projectData = (0, domain_1.processYamlFiles)(successYamls, meta);
|
|
22
|
-
validationContext.validate(projectData);
|
|
12
|
+
const { yml, jest, JUnit, projectPath } = await (0, config_1.loadConfig)(args.config);
|
|
13
|
+
const { projectData, validationContext } = await (0, config_1.loadProject)(yml.metaPath, yml.files, projectPath);
|
|
23
14
|
if (jest) {
|
|
24
15
|
const jestReport = await (0, jest_1.loadJestReport)(jest.reportPath, projectPath);
|
|
25
|
-
(0,
|
|
16
|
+
(0, test_matcher_1.applyTestReport)(validationContext, projectData, jestReport, jest.keys);
|
|
17
|
+
}
|
|
18
|
+
if (JUnit) {
|
|
19
|
+
const junitReport = await (0, junit_1.loadJUnitReport)(JUnit.reportPath, projectPath);
|
|
20
|
+
(0, test_matcher_1.applyTestReport)(validationContext, projectData, junitReport, JUnit.keys);
|
|
26
21
|
}
|
|
27
22
|
validationContext.printReport();
|
|
28
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-only.js","sourceRoot":"","sources":["../../src/commands/validate-only.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"validate-only.js","sourceRoot":"","sources":["../../src/commands/validate-only.ts"],"names":[],"mappings":";;;AAEA,0CAAwD;AACxD,sDAAsD;AACtD,mDAA0D;AAC1D,qDAA4D;AAG/C,QAAA,eAAe,GAAqC;IAC/D,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE1B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,oBAAW,EAC1D,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,KAAK,EACT,WAAW,CACZ,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEtE,IAAA,8BAAe,EAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACxE;QAED,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAe,EAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzE,IAAA,8BAAe,EAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1E;QAED,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;CACF,CAAC"}
|
|
@@ -8,4 +8,8 @@ export declare const loadMeta: (validationContext: Validator, path?: string, bas
|
|
|
8
8
|
filePath: string;
|
|
9
9
|
meta: Meta;
|
|
10
10
|
}>;
|
|
11
|
+
export declare const loadProject: (metaPath: string | undefined, filePaths: string[], projectPath: string | undefined) => Promise<{
|
|
12
|
+
projectData: import("../domain").ProjectData;
|
|
13
|
+
validationContext: Validator;
|
|
14
|
+
}>;
|
|
11
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAE,UAAU,EAA8B,MAAM,UAAU,CAAC;AAIxE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAE3E,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,eAAO,MAAM,UAAU,qBAEpB,QAAQ,UAAU,CAOpB,CAAC;AAEF,eAAO,MAAM,QAAQ,sBACA,SAAS,SACrB,MAAM,aACH,MAAM;cACK,MAAM;UAAQ,IAAI;EAexC,CAAC;AAEF,eAAO,MAAM,WAAW,aACZ,MAAM,GAAG,SAAS,aACjB,MAAM,EAAE,eACN,MAAM,GAAG,SAAS;;;EAgBhC,CAAC"}
|
package/dist/lib/config/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadMeta = exports.loadConfig = exports.DEFAULT_META_PATH = exports.DEFAULT_CONFIG_PATH = void 0;
|
|
3
|
+
exports.loadProject = exports.loadMeta = exports.loadConfig = exports.DEFAULT_META_PATH = exports.DEFAULT_CONFIG_PATH = void 0;
|
|
4
|
+
const fast_glob_1 = require("fast-glob");
|
|
4
5
|
const utils_1 = require("../utils");
|
|
5
6
|
const validators_1 = require("../validators");
|
|
6
7
|
const validator_1 = require("../validators/validator");
|
|
7
8
|
const models_1 = require("./models");
|
|
9
|
+
const yaml_1 = require("../yaml");
|
|
10
|
+
const domain_1 = require("../domain");
|
|
8
11
|
exports.DEFAULT_CONFIG_PATH = '.tms.json';
|
|
9
12
|
exports.DEFAULT_META_PATH = '.spec-box-meta.yml';
|
|
10
13
|
const loadConfig = async (path = exports.DEFAULT_CONFIG_PATH) => {
|
|
@@ -31,4 +34,16 @@ const loadMeta = async (validationContext, path, basePath = utils_1.CWD // TODO:
|
|
|
31
34
|
}
|
|
32
35
|
};
|
|
33
36
|
exports.loadMeta = loadMeta;
|
|
37
|
+
const loadProject = async (metaPath, filePaths, projectPath) => {
|
|
38
|
+
const validationContext = new validators_1.Validator();
|
|
39
|
+
const meta = await (0, exports.loadMeta)(validationContext, metaPath, projectPath);
|
|
40
|
+
const files = await (0, fast_glob_1.glob)(filePaths, { cwd: projectPath });
|
|
41
|
+
const yamls = await Promise.all(files.map((path) => (0, yaml_1.loadYaml)(validationContext, path, projectPath)));
|
|
42
|
+
const successYamls = new Array();
|
|
43
|
+
yamls.forEach((yaml) => yaml && successYamls.push(yaml));
|
|
44
|
+
const projectData = (0, domain_1.processYamlFiles)(successYamls, meta);
|
|
45
|
+
validationContext.validate(projectData);
|
|
46
|
+
return { projectData, validationContext };
|
|
47
|
+
};
|
|
48
|
+
exports.loadProject = loadProject;
|
|
34
49
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":";;;AAAA,oCAMkB;AAClB,8CAAsD;AACtD,uDAAyD;AACzD,qCAAwE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AACjC,oCAMkB;AAClB,8CAAsD;AACtD,uDAAyD;AACzD,qCAAwE;AACxE,kCAA6C;AAC7C,sCAA6C;AAIhC,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C,MAAM,UAAU,GAAG,KAAK,EAC7B,IAAI,GAAG,2BAAmB,EACL,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEK,MAAM,QAAQ,GAAG,KAAK,EAC3B,iBAA4B,EAC5B,IAAa,EACb,WAAmB,WAAG,CAAC,gCAAgC;EACZ,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,yBAAiB,CAAC;IAC3C,IAAI,UAAU,GAAG,IAAI;QACnB,CAAC,CAAC,IAAA,gBAAQ,EAAC,oBAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC3C,CAAC,CAAC,IAAA,wBAAgB,EAAC,oBAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEtD,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;QAE3B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC3B;IAAC,OAAO,KAAK,EAAE;QACd,IAAA,uBAAU,EAAC,IAAA,0BAAc,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACnD;AACH,CAAC,CAAC;AAnBW,QAAA,QAAQ,YAmBnB;AAEK,MAAM,WAAW,GAAG,KAAK,EAC9B,QAA4B,EAC5B,SAAmB,EACnB,WAA+B,EAC/B,EAAE;IACF,MAAM,iBAAiB,GAAG,IAAI,sBAAS,EAAE,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAQ,EAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAI,EAAC,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,eAAQ,EAAC,iBAAiB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CACpE,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,KAAK,EAAY,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,IAAA,yBAAgB,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACzD,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC5C,CAAC,CAAC;AAnBW,QAAA,WAAW,eAmBtB"}
|
|
@@ -43,9 +43,12 @@ export declare const ymlConfigDecoder: d.Decoder<unknown, Partial<{
|
|
|
43
43
|
}> & {
|
|
44
44
|
files: string[];
|
|
45
45
|
}>;
|
|
46
|
+
export declare const markdownConfigDecoder: d.Decoder<unknown, {
|
|
47
|
+
path: string;
|
|
48
|
+
}>;
|
|
46
49
|
export declare const literalKeyPartDecoder: d.Decoder<unknown, "filePath" | "featureCode" | "featureTitle" | "groupTitle" | "assertionTitle" | "fileName">;
|
|
47
50
|
export declare const attributeKeyPartDecoder: d.Decoder<unknown, string>;
|
|
48
|
-
export declare const
|
|
51
|
+
export declare const testReportConfigDecoder: d.Decoder<unknown, {
|
|
49
52
|
reportPath: string;
|
|
50
53
|
keys: string[];
|
|
51
54
|
}>;
|
|
@@ -55,6 +58,13 @@ export declare const configDecoder: d.Decoder<unknown, Partial<{
|
|
|
55
58
|
reportPath: string;
|
|
56
59
|
keys: string[];
|
|
57
60
|
};
|
|
61
|
+
JUnit: {
|
|
62
|
+
reportPath: string;
|
|
63
|
+
keys: string[];
|
|
64
|
+
};
|
|
65
|
+
markdown: {
|
|
66
|
+
path: string;
|
|
67
|
+
};
|
|
58
68
|
}> & {
|
|
59
69
|
api: {
|
|
60
70
|
host: string;
|
|
@@ -69,7 +79,8 @@ export declare const configDecoder: d.Decoder<unknown, Partial<{
|
|
|
69
79
|
export type RootConfig = d.TypeOf<typeof configDecoder>;
|
|
70
80
|
export type ApiConfig = d.TypeOf<typeof apiConfigDecoder>;
|
|
71
81
|
export type YmlConfig = d.TypeOf<typeof ymlConfigDecoder>;
|
|
72
|
-
export type
|
|
82
|
+
export type MarkdownConfig = d.TypeOf<typeof markdownConfigDecoder>;
|
|
83
|
+
export type TestConfig = d.TypeOf<typeof testReportConfigDecoder>;
|
|
73
84
|
export type Meta = d.TypeOf<typeof metaDecoder>;
|
|
74
85
|
export type Tree = d.TypeOf<typeof treeDecoder>;
|
|
75
86
|
export type Attribute = d.TypeOf<typeof attributeDecoder>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/lib/config/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAGnC,eAAO,MAAM,qBAAqB;;;EAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;EAItB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;GAMtB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;EAG3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;EAQ5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,gHAOjC,CAAC;AAEF,eAAO,MAAM,uBAAuB,4BASnC,CAAC;AAEF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/lib/config/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAGnC,eAAO,MAAM,qBAAqB;;;EAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;EAItB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;GAMtB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;EAG3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;EAQ5B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;EAEhC,CAAC;AAEH,eAAO,MAAM,qBAAqB,gHAOjC,CAAC;AAEF,eAAO,MAAM,uBAAuB,4BASnC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;EAGlC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;EAYzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAElE,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.configDecoder = exports.
|
|
3
|
+
exports.configDecoder = exports.testReportConfigDecoder = exports.attributeKeyPartDecoder = exports.literalKeyPartDecoder = exports.markdownConfigDecoder = exports.ymlConfigDecoder = exports.apiConfigDecoder = exports.metaDecoder = exports.treeDecoder = exports.attributeDecoder = exports.attributeValueDecoder = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const function_1 = require("fp-ts/lib/function");
|
|
6
6
|
const d = tslib_1.__importStar(require("io-ts/Decoder"));
|
|
@@ -36,6 +36,9 @@ exports.ymlConfigDecoder = d.intersect(d.struct({
|
|
|
36
36
|
}))(d.partial({
|
|
37
37
|
metaPath: d.string,
|
|
38
38
|
}));
|
|
39
|
+
exports.markdownConfigDecoder = d.struct({
|
|
40
|
+
path: d.string
|
|
41
|
+
});
|
|
39
42
|
exports.literalKeyPartDecoder = d.literal("featureTitle", "featureCode", "groupTitle", "assertionTitle", "fileName", "filePath");
|
|
40
43
|
exports.attributeKeyPartDecoder = (0, function_1.pipe)(d.string, d.parse((str) => {
|
|
41
44
|
if (/^[@$]/.test(str)) {
|
|
@@ -43,7 +46,7 @@ exports.attributeKeyPartDecoder = (0, function_1.pipe)(d.string, d.parse((str) =
|
|
|
43
46
|
}
|
|
44
47
|
return d.failure(str, "starts with @ or $ symbol");
|
|
45
48
|
}));
|
|
46
|
-
exports.
|
|
49
|
+
exports.testReportConfigDecoder = d.struct({
|
|
47
50
|
reportPath: d.string,
|
|
48
51
|
keys: d.array(d.union(exports.literalKeyPartDecoder, exports.attributeKeyPartDecoder)),
|
|
49
52
|
});
|
|
@@ -52,6 +55,8 @@ exports.configDecoder = d.intersect(d.struct({
|
|
|
52
55
|
yml: exports.ymlConfigDecoder,
|
|
53
56
|
}))(d.partial({
|
|
54
57
|
projectPath: d.string,
|
|
55
|
-
jest: exports.
|
|
58
|
+
jest: exports.testReportConfigDecoder,
|
|
59
|
+
JUnit: exports.testReportConfigDecoder,
|
|
60
|
+
markdown: exports.markdownConfigDecoder,
|
|
56
61
|
}));
|
|
57
62
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/lib/config/models.ts"],"names":[],"mappings":";;;;AAAA,iDAA0C;AAC1C,yDAAmC;AAEnC,OAAO;AACM,QAAA,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,KAAK,EAAE,CAAC,CAAC,MAAM;CAChB,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,6BAAqB,CAAC;CACvC,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;CAC9B,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,WAAW,EAAE,CAAC,CAAC,MAAM;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM;IACpB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAgB,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAW,CAAC;CAC5B,CAAC,CAAC;AAEH,SAAS;AACI,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,OAAO,EAAE,CAAC,CAAC,MAAM;CAClB,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,CAAC,CAAC,SAAS,CACzC,CAAC,CAAC,MAAM,CAAC;IACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;CACzB,CAAC,CACH,CACC,CAAC,CAAC,OAAO,CAAC;IACR,QAAQ,EAAE,CAAC,CAAC,MAAM;CACnB,CAAC,CACH,CAAC;AAEW,QAAA,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAC5C,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,UAAU,CACX,CAAC;AAEW,QAAA,uBAAuB,GAAG,IAAA,eAAI,EACzC,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;KAC9B;IAED,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;AACrD,CAAC,CAAC,CACH,CAAC;AAEW,QAAA,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/lib/config/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-index.d.ts","sourceRoot":"","sources":["../../../src/lib/markdown/build-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAQ,MAAM,WAAW,CAAC;AAwBvD,eAAO,MAAM,UAAU,gBACR,WAAW,WACf,IAAI,MAAM,EAAE,MAAM,CAAC,KAC3B,MAGF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildIndex = void 0;
|
|
4
|
+
const featureToLink = (feature, path) => {
|
|
5
|
+
return `[[${path} | ${feature.title} ( ${feature.code} ) ]]`;
|
|
6
|
+
};
|
|
7
|
+
const linearIndex = (projectData, pathMap) => {
|
|
8
|
+
let result = '# Содержание \r\n\r\n';
|
|
9
|
+
const sortedFeatures = [...projectData.features].sort((a, b) => a.code.localeCompare(b.code));
|
|
10
|
+
for (const feature of sortedFeatures) {
|
|
11
|
+
const path = pathMap.get(`$${feature.code}`);
|
|
12
|
+
if (path) {
|
|
13
|
+
result += `- ${featureToLink(feature, path)} \r\n\r\n`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
};
|
|
18
|
+
const buildIndex = (projectData, pathMap) => {
|
|
19
|
+
return linearIndex(projectData, pathMap);
|
|
20
|
+
// ToDo: сделать построение индекса по деревьям
|
|
21
|
+
};
|
|
22
|
+
exports.buildIndex = buildIndex;
|
|
23
|
+
//# sourceMappingURL=build-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-index.js","sourceRoot":"","sources":["../../../src/lib/markdown/build-index.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAU,EAAE;IAC/D,OAAO,KAAK,IAAI,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,IAAI,OAAO,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,WAAwB,EACxB,OAA4B,EAC5B,EAAE;IACF,IAAI,MAAM,GAAG,uBAAuB,CAAC;IACrC,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7D,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,IAAI,EAAE;YACR,MAAM,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;SACxD;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CACxB,WAAwB,EACxB,OAA4B,EACpB,EAAE;IACV,OAAO,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACzC,+CAA+C;AACjD,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-to-markdown.d.ts","sourceRoot":"","sources":["../../../src/lib/markdown/feature-to-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAS1D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.featureToMarkdown = void 0;
|
|
4
|
+
function mdFeatureTitle(feature) {
|
|
5
|
+
let result = `# ${feature.title} ( ${feature.code} )\r\n\r\n`;
|
|
6
|
+
if (feature.description) {
|
|
7
|
+
result += `${feature.description.trim()}\r\n\r\n`;
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
function mdFeatureGroupTitle(groupTitle) {
|
|
12
|
+
return `## ${groupTitle.trim()}\r\n\r\n`;
|
|
13
|
+
}
|
|
14
|
+
function mdDescriptionToQuote(description) {
|
|
15
|
+
const quotedNewLines = description.trim().replace(/\n/g, '\n> ');
|
|
16
|
+
return `> ${quotedNewLines}`;
|
|
17
|
+
}
|
|
18
|
+
function mdFeatureAssertion(assertion, description) {
|
|
19
|
+
let result = `- ${assertion.trim()}\r\n\r\n`;
|
|
20
|
+
if (description) {
|
|
21
|
+
result += `${mdDescriptionToQuote(description)}\r\n\r\n`;
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
function mdFeatureGroup(assertionGroup) {
|
|
26
|
+
let result = '';
|
|
27
|
+
result += mdFeatureGroupTitle(assertionGroup.title);
|
|
28
|
+
assertionGroup.assertions.forEach((assertion) => {
|
|
29
|
+
result += mdFeatureAssertion(assertion.title, assertion.description);
|
|
30
|
+
});
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
function featureToMarkdown(feature) {
|
|
34
|
+
let result = '';
|
|
35
|
+
result += mdFeatureTitle(feature);
|
|
36
|
+
feature.groups.forEach((group) => {
|
|
37
|
+
result += mdFeatureGroup(group);
|
|
38
|
+
});
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
exports.featureToMarkdown = featureToMarkdown;
|
|
42
|
+
//# sourceMappingURL=feature-to-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-to-markdown.js","sourceRoot":"","sources":["../../../src/lib/markdown/feature-to-markdown.ts"],"names":[],"mappings":";;;AAEA,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,MAAM,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,IAAI,YAAY,CAAC;IAC9D,IAAG,OAAO,CAAC,WAAW,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;KACnD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,OAAO,KAAK,cAAc,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,WAAoB;IACjE,IAAI,MAAM,GAAG,KAAK,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;IAC7C,IAAI,WAAW,EAAE;QACf,MAAM,IAAI,GAAG,oBAAoB,CAAC,WAAW,CAAC,UAAU,CAAC;KAC1D;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,cAA8B;IACpD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpD,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9C,MAAM,IAAI,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,8CASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/markdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAoBxC,eAAO,MAAM,cAAc,gBACZ,WAAW,QAClB,MAAM,kBA0Bb,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exportMarkdown = void 0;
|
|
4
|
+
const validator_1 = require("../validators/validator");
|
|
5
|
+
const build_index_1 = require("./build-index");
|
|
6
|
+
const feature_to_markdown_1 = require("./feature-to-markdown");
|
|
7
|
+
const promises_1 = require("fs/promises");
|
|
8
|
+
const replaceInternalLinks = (markdown, pathMap) => {
|
|
9
|
+
const re = new RegExp(validator_1.LINK_LIKE);
|
|
10
|
+
return markdown.replace(re, (link) => {
|
|
11
|
+
const path = pathMap.get(link);
|
|
12
|
+
if (path) {
|
|
13
|
+
return `[[${path} | ${link}]]`;
|
|
14
|
+
}
|
|
15
|
+
return link;
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
const exportMarkdown = async (projectData, path) => {
|
|
19
|
+
const featureCodeToPath = new Map();
|
|
20
|
+
for (const feature of projectData.features) {
|
|
21
|
+
const featurePath = feature.filePath.slice(0, feature.filePath.lastIndexOf('.'));
|
|
22
|
+
featureCodeToPath.set(`$${feature.code}`, featurePath);
|
|
23
|
+
}
|
|
24
|
+
for (const feature of projectData.features) {
|
|
25
|
+
const markDown = replaceInternalLinks((0, feature_to_markdown_1.featureToMarkdown)(feature), featureCodeToPath);
|
|
26
|
+
const filePath = feature.filePath.slice(0, feature.filePath.lastIndexOf('.')) + '.md';
|
|
27
|
+
const exportPath = `${path}/${filePath}`;
|
|
28
|
+
const exportDirectory = exportPath.slice(0, exportPath.lastIndexOf('/'));
|
|
29
|
+
await (0, promises_1.mkdir)(exportDirectory, { recursive: true });
|
|
30
|
+
await (0, promises_1.writeFile)(exportPath, markDown);
|
|
31
|
+
}
|
|
32
|
+
if (featureCodeToPath.size > 0) {
|
|
33
|
+
(0, promises_1.writeFile)(`${path}/index.md`, (0, build_index_1.buildIndex)(projectData, featureCodeToPath));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.exportMarkdown = exportMarkdown;
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/markdown/index.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,+CAA2C;AAC3C,+DAA0D;AAC1D,0CAA+C;AAE/C,MAAM,oBAAoB,GAAG,CAC3B,QAAgB,EAChB,OAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,qBAAS,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAG,IAAI,EAAE;YACP,OAAO,KAAK,IAAI,MAAM,IAAI,IAAI,CAAA;SAC/B;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,WAAwB,EACxB,IAAY,EACZ,EAAE;IACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CACxC,CAAC,EACD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAClC,CAAC;QACF,iBAAiB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;KACxD;IAED,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAA,uCAAiB,EAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAErF,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACvE,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzE,MAAM,IAAA,gBAAK,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KACvC;IAED,IAAG,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE;QAC7B,IAAA,oBAAS,EAAC,GAAG,IAAI,WAAW,EAAE,IAAA,wBAAU,EAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;KAC3E;AACH,CAAC,CAAC;AA5BW,QAAA,cAAc,kBA4BzB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProjectData } from '../domain';
|
|
2
|
+
import { Validator } from '../validators';
|
|
3
|
+
import { AssertionStatus, TestReport } from './models';
|
|
4
|
+
export declare const getFullName: (...parts: string[]) => string;
|
|
5
|
+
export declare const ignoredStatuses: Set<AssertionStatus>;
|
|
6
|
+
export declare const applyTestReport: (validationContext: Validator, { features, attributes }: ProjectData, report: TestReport, keyParts: string[]) => void;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/test-matcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,WAAW,aAAc,MAAM,EAAE,WAAoB,CAAC;AAEnE,eAAO,MAAM,eAAe,sBAI1B,CAAC;AAEH,eAAO,MAAM,eAAe,sBACP,SAAS,4BACF,WAAW,UAC7B,UAAU,YACR,MAAM,EAAE,SAgDnB,CAAC"}
|