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.
Files changed (35) hide show
  1. package/README.md +91 -0
  2. package/cjs/env-metadata-helpers.js +43 -0
  3. package/cjs/env-metadata-helpers.js.map +1 -0
  4. package/cjs/index.js +5 -0
  5. package/cjs/index.js.map +1 -0
  6. package/cjs/major-tom.js +107 -0
  7. package/cjs/major-tom.js.map +1 -0
  8. package/{dist → cjs}/mission-details.d.ts +1 -0
  9. package/cjs/mission-details.d.ts.map +1 -0
  10. package/cjs/mission-details.js +3 -0
  11. package/esm/env-metadata-helpers.d.ts +8 -0
  12. package/esm/env-metadata-helpers.d.ts.map +1 -0
  13. package/esm/index.d.ts +3 -0
  14. package/esm/index.d.ts.map +1 -0
  15. package/esm/major-tom.d.ts +22 -0
  16. package/esm/major-tom.d.ts.map +1 -0
  17. package/esm/mission-details.d.ts +15 -0
  18. package/esm/mission-details.d.ts.map +1 -0
  19. package/esm/mission-details.js.map +1 -0
  20. package/package.json +18 -15
  21. package/dist/mission-details.d.ts.map +0 -1
  22. /package/{dist → cjs}/env-metadata-helpers.d.ts +0 -0
  23. /package/{dist → cjs}/env-metadata-helpers.d.ts.map +0 -0
  24. /package/{dist → cjs}/index.d.ts +0 -0
  25. /package/{dist → cjs}/index.d.ts.map +0 -0
  26. /package/{dist → cjs}/major-tom.d.ts +0 -0
  27. /package/{dist → cjs}/major-tom.d.ts.map +0 -0
  28. /package/{dist → cjs}/mission-details.js.map +0 -0
  29. /package/{dist → esm}/env-metadata-helpers.js +0 -0
  30. /package/{dist → esm}/env-metadata-helpers.js.map +0 -0
  31. /package/{dist → esm}/index.js +0 -0
  32. /package/{dist → esm}/index.js.map +0 -0
  33. /package/{dist → esm}/major-tom.js +0 -0
  34. /package/{dist → esm}/major-tom.js.map +0 -0
  35. /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
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const major_tom_1 = require("./major-tom");
4
+ exports.default = major_tom_1.MajorTom;
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AAEtC,kBAAe,oBAAQ,CAAA"}
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  export type MissionDetails = {
2
2
  groundControl: string;
3
3
  project?: string;
4
+ version?: string;
4
5
  capsule?: string;
5
6
  ci?: {
6
7
  branch?: string;
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mission-details.js.map
@@ -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,3 @@
1
+ import { MajorTom } from './major-tom';
2
+ export default MajorTom;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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",
3
+ "version": "0.0.4",
4
4
  "description": "Playwright reporter for realtime monitoring for CI/Dev",
5
- "main": "dist/major-tom.js",
6
- "types": "dist/major-tom.ts",
7
- "module": "dist/major-tom.js",
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": "./dist/major-tom.js",
11
- "require": "./dist/major-tom.js",
12
- "types": "./dist/major-tom.d.ts"
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": "./dist/major-tom.js",
16
- "require": "./dist/major-tom.js",
17
- "types": "./dist/major-tom.d.ts"
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": "./dist/env-metadata-helpers.js",
21
- "require": "./dist/env-metadata-helpers.js",
22
- "types": "./dist/env-metadata-helpers.d.ts"
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
- "dist/",
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes