major-tom-playwright-reporter 0.0.3 → 0.0.4
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 +91 -0
- package/cjs/env-metadata-helpers.js +43 -0
- package/cjs/env-metadata-helpers.js.map +1 -0
- package/cjs/index.js +5 -0
- package/cjs/index.js.map +1 -0
- package/cjs/major-tom.js +107 -0
- package/cjs/major-tom.js.map +1 -0
- package/{dist → cjs}/mission-details.d.ts +1 -0
- package/cjs/mission-details.d.ts.map +1 -0
- package/cjs/mission-details.js +3 -0
- package/esm/env-metadata-helpers.d.ts +8 -0
- package/esm/env-metadata-helpers.d.ts.map +1 -0
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/major-tom.d.ts +22 -0
- package/esm/major-tom.d.ts.map +1 -0
- package/esm/mission-details.d.ts +15 -0
- package/esm/mission-details.d.ts.map +1 -0
- package/esm/mission-details.js.map +1 -0
- package/package.json +18 -15
- package/dist/mission-details.d.ts.map +0 -1
- /package/{dist → cjs}/env-metadata-helpers.d.ts +0 -0
- /package/{dist → cjs}/env-metadata-helpers.d.ts.map +0 -0
- /package/{dist → cjs}/index.d.ts +0 -0
- /package/{dist → cjs}/index.d.ts.map +0 -0
- /package/{dist → cjs}/major-tom.d.ts +0 -0
- /package/{dist → cjs}/major-tom.d.ts.map +0 -0
- /package/{dist → cjs}/mission-details.js.map +0 -0
- /package/{dist → esm}/env-metadata-helpers.js +0 -0
- /package/{dist → esm}/env-metadata-helpers.js.map +0 -0
- /package/{dist → esm}/index.js +0 -0
- /package/{dist → esm}/index.js.map +0 -0
- /package/{dist → esm}/major-tom.js +0 -0
- /package/{dist → esm}/major-tom.js.map +0 -0
- /package/{dist → esm}/mission-details.js +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Major Tom Playwright Reporter
|
|
2
|
+
|
|
3
|
+
[English version below](#major-tom-playwright-reporter-english)
|
|
4
|
+
|
|
5
|
+
Major Tom — это кастомный репортер для Playwright, отправляющий результаты тестов в реальном времени через WebSocket в [Ground Control](https://gitverse.ru/webperf/mt2gc) — Elixir/Phoenix backend.
|
|
6
|
+
|
|
7
|
+
#### Установка
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install major-tom-playwright-reporter
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### Конфигурация
|
|
14
|
+
|
|
15
|
+
Пример использования в `playwright.config.ts`:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { defineConfig } from '@playwright/test';
|
|
19
|
+
import { getRunMetadata } from 'major-tom-playwright-reporter/env-metadata-helpers';
|
|
20
|
+
|
|
21
|
+
const envMetadata = getRunMetadata({});
|
|
22
|
+
|
|
23
|
+
export default defineConfig({
|
|
24
|
+
reporter: [
|
|
25
|
+
['list'],
|
|
26
|
+
['major-tom-playwright-reporter', {
|
|
27
|
+
...envMetadata,
|
|
28
|
+
groundControl: 'ws://localhost:4080/uplink',
|
|
29
|
+
project: 'my-awesome-project'
|
|
30
|
+
}]
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
#### Сборка
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run build
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Собирает обе версии: CommonJS и ESM.
|
|
42
|
+
|
|
43
|
+
#### Лицензия
|
|
44
|
+
|
|
45
|
+
MIT
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Major Tom Playwright Reporter (English)
|
|
50
|
+
|
|
51
|
+
Major Tom is a custom Playwright reporter that streams test results in real-time via WebSocket to [Ground Control](https://gitverse.ru/webperf/mt2gc) — Elixir/Phoenix backend.
|
|
52
|
+
|
|
53
|
+
#### Installation
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm install major-tom-playwright-reporter
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### Configuration
|
|
60
|
+
|
|
61
|
+
Example usage in `playwright.config.ts`:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import { defineConfig } from '@playwright/test';
|
|
65
|
+
import { getRunMetadata } from 'major-tom-playwright-reporter/env-metadata-helpers';
|
|
66
|
+
|
|
67
|
+
const envMetadata = getRunMetadata({});
|
|
68
|
+
|
|
69
|
+
export default defineConfig({
|
|
70
|
+
reporter: [
|
|
71
|
+
['list'],
|
|
72
|
+
['major-tom-playwright-reporter', {
|
|
73
|
+
...envMetadata,
|
|
74
|
+
groundControl: 'ws://localhost:4080/uplink',
|
|
75
|
+
project: 'my-awesome-project'
|
|
76
|
+
}]
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### Building
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm run build
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Builds both CommonJS and ESM versions.
|
|
88
|
+
|
|
89
|
+
#### License
|
|
90
|
+
|
|
91
|
+
MIT
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRunMetadata = getRunMetadata;
|
|
4
|
+
const os = require("node:os");
|
|
5
|
+
function getRunMetadata(options) {
|
|
6
|
+
const result = {};
|
|
7
|
+
if (!options.noCapsule) {
|
|
8
|
+
result.capsule = os.hostname();
|
|
9
|
+
}
|
|
10
|
+
// Новый способ получения CI информации
|
|
11
|
+
const ci = getCiMeta();
|
|
12
|
+
if (Object.keys(ci).length > 0) {
|
|
13
|
+
result.ci = ci;
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
function getCiMeta() {
|
|
18
|
+
const ciInfo = {};
|
|
19
|
+
// Git информация
|
|
20
|
+
if (process.env.GIT_BRANCH) {
|
|
21
|
+
ciInfo.branch = process.env.GIT_BRANCH;
|
|
22
|
+
}
|
|
23
|
+
if (process.env.GIT_COMMIT) {
|
|
24
|
+
ciInfo.commit = process.env.GIT_COMMIT;
|
|
25
|
+
}
|
|
26
|
+
// Pull Request информация
|
|
27
|
+
if (process.env.CHANGE_URL) {
|
|
28
|
+
ciInfo.pullRequestUrl = process.env.CHANGE_URL;
|
|
29
|
+
}
|
|
30
|
+
// Автор
|
|
31
|
+
if (process.env.CHANGE_AUTHOR) {
|
|
32
|
+
ciInfo.authorName = process.env.CHANGE_AUTHOR;
|
|
33
|
+
}
|
|
34
|
+
if (process.env.CHANGE_AUTHOR_DISPLAY_NAME) {
|
|
35
|
+
ciInfo.authorDisplayName = process.env.CHANGE_AUTHOR_DISPLAY_NAME;
|
|
36
|
+
}
|
|
37
|
+
// Job URL
|
|
38
|
+
if (process.env.JOB_URL) {
|
|
39
|
+
ciInfo.jobUrl = process.env.JOB_URL;
|
|
40
|
+
}
|
|
41
|
+
return ciInfo;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=env-metadata-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-metadata-helpers.js","sourceRoot":"","sources":["../src/env-metadata-helpers.ts"],"names":[],"mappings":";;AASA,wCAcC;AAvBD,8BAA6B;AAS7B,SAAgB,cAAc,CAAC,OAAwB;IAErD,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IAChC,CAAC;IAED,uCAAuC;IACvC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IACtB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,MAAM,GAAsC,EAAE,CAAA;IAEpD,iBAAiB;IACjB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IACxC,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAChD,CAAC;IAED,QAAQ;IACR,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC3C,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA;IACnE,CAAC;IAED,UAAU;IACV,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA;IACrC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/cjs/index.js
ADDED
package/cjs/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AAEtC,kBAAe,oBAAQ,CAAA"}
|
package/cjs/major-tom.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MajorTom = void 0;
|
|
15
|
+
const ws_1 = require("ws");
|
|
16
|
+
const phoenix_1 = require("phoenix");
|
|
17
|
+
class MajorTom {
|
|
18
|
+
constructor(_a) {
|
|
19
|
+
var { groundControl } = _a, missionDetails = __rest(_a, ["groundControl"]);
|
|
20
|
+
this.mission_id = '';
|
|
21
|
+
if (groundControl) {
|
|
22
|
+
this.socket = new phoenix_1.Socket(groundControl, { timeout: 500, transport: ws_1.WebSocket });
|
|
23
|
+
this.socket.connect();
|
|
24
|
+
// Передаем missionDetails сразу при подключении к lobby
|
|
25
|
+
const lobby = this.socket.channel("uplink:lobby", { missionDetails });
|
|
26
|
+
this.uplink = lobby;
|
|
27
|
+
this.uplink.join().receive("ok", (res) => {
|
|
28
|
+
console.log("mission_id:", res.mission_id);
|
|
29
|
+
this.mission_id = res.mission_id; // Используем mission_id вместо report_id
|
|
30
|
+
// Переходим к специфичному каналу
|
|
31
|
+
const missionSpecific = this.socket.channel(`uplink:${this.mission_id}`);
|
|
32
|
+
missionSpecific.join().receive("ok", () => {
|
|
33
|
+
this.uplink = missionSpecific;
|
|
34
|
+
lobby.leave().receive("ok", () => {
|
|
35
|
+
// Больше ничего не отправляем - всё уже было отправлено в lobby
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error("No ground control uplink specified");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Используем mission_id вместо report_id
|
|
45
|
+
onBegin(config, suite) {
|
|
46
|
+
this.uplink.push('test-run-start', {
|
|
47
|
+
mission_id: this.mission_id,
|
|
48
|
+
payload: {
|
|
49
|
+
tests: suite.allTests().map(test => ({
|
|
50
|
+
title: test.title,
|
|
51
|
+
id: test.id
|
|
52
|
+
}))
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
onEnd(result) {
|
|
57
|
+
this.uplink.push('test-run-end', {
|
|
58
|
+
mission_id: this.mission_id,
|
|
59
|
+
payload: {
|
|
60
|
+
status: result.status,
|
|
61
|
+
duration: result.duration
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
onError(error) { }
|
|
66
|
+
onTestBegin(test, result) {
|
|
67
|
+
this.uplink.push('test-begin', {
|
|
68
|
+
mission_id: this.mission_id,
|
|
69
|
+
payload: {
|
|
70
|
+
id: test.id
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
onTestEnd(test, result) {
|
|
75
|
+
this.uplink.push('test-end', {
|
|
76
|
+
mission_id: this.mission_id,
|
|
77
|
+
payload: {
|
|
78
|
+
id: test.id,
|
|
79
|
+
status: result.status,
|
|
80
|
+
duration: result.duration,
|
|
81
|
+
retry: result.retry,
|
|
82
|
+
outcome: test.outcome()
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
onStdOut(chunk) { }
|
|
87
|
+
onStdErr(chunk) { }
|
|
88
|
+
onExit() {
|
|
89
|
+
return new Promise((resolve) => {
|
|
90
|
+
if (this.socket) {
|
|
91
|
+
this.uplink.push("exit", {});
|
|
92
|
+
this.uplink.leave();
|
|
93
|
+
this.socket.disconnect();
|
|
94
|
+
}
|
|
95
|
+
// На случай, если нужно чуть больше времени для отправки
|
|
96
|
+
setTimeout(() => resolve(), 100);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
onStepBegin(test, result, step) { }
|
|
100
|
+
onStepEnd(test, result, step) { }
|
|
101
|
+
printsToStdio() {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.MajorTom = MajorTom;
|
|
106
|
+
exports.default = MajorTom;
|
|
107
|
+
//# sourceMappingURL=major-tom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"major-tom.js","sourceRoot":"","sources":["../src/major-tom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission-details.d.ts","sourceRoot":"","sources":["../src/mission-details.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,EAAE,CAAC,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAA;CACF,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MissionDetails } from "./mission-details";
|
|
2
|
+
export interface MetadataOptions {
|
|
3
|
+
noCapsule?: true;
|
|
4
|
+
}
|
|
5
|
+
type RunMetadata = Omit<MissionDetails, "groundControl">;
|
|
6
|
+
export declare function getRunMetadata(options: MetadataOptions): RunMetadata;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=env-metadata-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-metadata-helpers.d.ts","sourceRoot":"","sources":["../src/env-metadata-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,KAAK,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AAExD,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,WAAW,CAcpE"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FullConfig, FullResult, Reporter, Suite, TestCase, TestError, TestResult, TestStep } from '@playwright/test/reporter';
|
|
2
|
+
import { Socket, type Channel } from 'phoenix';
|
|
3
|
+
import { type MissionDetails } from './mission-details';
|
|
4
|
+
export declare class MajorTom implements Reporter {
|
|
5
|
+
socket: Socket;
|
|
6
|
+
mission_id: string;
|
|
7
|
+
uplink: Channel;
|
|
8
|
+
constructor({ groundControl, ...missionDetails }: MissionDetails);
|
|
9
|
+
onBegin(config: FullConfig, suite: Suite): void;
|
|
10
|
+
onEnd(result: FullResult): void;
|
|
11
|
+
onError(error: TestError): void;
|
|
12
|
+
onTestBegin(test: TestCase, result: TestResult): void;
|
|
13
|
+
onTestEnd(test: TestCase, result: TestResult): void;
|
|
14
|
+
onStdOut(chunk: string): void;
|
|
15
|
+
onStdErr(chunk: string): void;
|
|
16
|
+
onExit(): Promise<void>;
|
|
17
|
+
onStepBegin(test: TestCase, result: TestResult, step: TestStep): void;
|
|
18
|
+
onStepEnd(test: TestCase, result: TestResult, step: TestStep): void;
|
|
19
|
+
printsToStdio(): boolean;
|
|
20
|
+
}
|
|
21
|
+
export default MajorTom;
|
|
22
|
+
//# sourceMappingURL=major-tom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"major-tom.d.ts","sourceRoot":"","sources":["../src/major-tom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAE9H,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,qBAAa,QAAS,YAAW,QAAQ;IAEvC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAK;IACvB,MAAM,EAAE,OAAO,CAAC;gBAEJ,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,EAAE,cAAc;IA4BhE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAY/C,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAU/B,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAE/B,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IASrD,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAanD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAavB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAErE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAEnE,aAAa,IAAI,OAAO;CAGzB;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type MissionDetails = {
|
|
2
|
+
groundControl: string;
|
|
3
|
+
project?: string;
|
|
4
|
+
version?: string;
|
|
5
|
+
capsule?: string;
|
|
6
|
+
ci?: {
|
|
7
|
+
branch?: string;
|
|
8
|
+
commit?: string;
|
|
9
|
+
pullRequestUrl?: string;
|
|
10
|
+
authorName?: string;
|
|
11
|
+
authorDisplayName?: string;
|
|
12
|
+
jobUrl?: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=mission-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission-details.d.ts","sourceRoot":"","sources":["../src/mission-details.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,EAAE,CAAC,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAA;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission-details.js","sourceRoot":"","sources":["../src/mission-details.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "major-tom-playwright-reporter",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Playwright reporter for realtime monitoring for CI/Dev",
|
|
5
|
-
"main": "
|
|
6
|
-
"
|
|
7
|
-
"
|
|
5
|
+
"main": "./cjs/major-tom.js",
|
|
6
|
+
"module": "./esm/major-tom.js",
|
|
7
|
+
"types": "./esm/major-tom.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"import": "./
|
|
11
|
-
"require": "./
|
|
12
|
-
"types": "./
|
|
10
|
+
"import": "./esm/major-tom.js",
|
|
11
|
+
"require": "./cjs/major-tom.js",
|
|
12
|
+
"types": "./esm/major-tom.d.ts"
|
|
13
13
|
},
|
|
14
14
|
"./major-tom": {
|
|
15
|
-
"import": "./
|
|
16
|
-
"require": "./
|
|
17
|
-
"types": "./
|
|
15
|
+
"import": "./esm/major-tom.js",
|
|
16
|
+
"require": "./cjs/major-tom.js",
|
|
17
|
+
"types": "./esm/major-tom.d.ts"
|
|
18
18
|
},
|
|
19
19
|
"./env-metadata-helpers": {
|
|
20
|
-
"import": "./
|
|
21
|
-
"require": "./
|
|
22
|
-
"types": "./
|
|
20
|
+
"import": "./esm/env-metadata-helpers.js",
|
|
21
|
+
"require": "./cjs/env-metadata-helpers.js",
|
|
22
|
+
"types": "./esm/env-metadata-helpers.d.ts"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://gitverse.ru/webperf/mt2gc",
|
|
33
33
|
"scripts": {
|
|
34
|
-
"build": "tsc",
|
|
34
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
35
|
+
"build:esm": "tsc",
|
|
36
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
35
37
|
"prepublishOnly": "npm run build",
|
|
36
38
|
"test": "vitest run",
|
|
37
39
|
"tdd": "vitest"
|
|
@@ -55,7 +57,8 @@
|
|
|
55
57
|
"vitest": "^2.0.0"
|
|
56
58
|
},
|
|
57
59
|
"files": [
|
|
58
|
-
"
|
|
60
|
+
"cjs/",
|
|
61
|
+
"esm/",
|
|
59
62
|
"README.md",
|
|
60
63
|
"LICENSE"
|
|
61
64
|
],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mission-details.d.ts","sourceRoot":"","sources":["../src/mission-details.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,EAAE,CAAC,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAA;CACF,CAAA"}
|
|
File without changes
|
|
File without changes
|
/package/{dist → cjs}/index.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{dist → esm}/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|