@allurereport/core-api 3.0.0-beta.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.
- package/README.md +25 -0
- package/dist/aggregate.d.ts +8 -0
- package/dist/aggregate.js +1 -0
- package/dist/constants.d.ts +20 -0
- package/dist/constants.js +16 -0
- package/dist/environment.d.ts +4 -0
- package/dist/environment.js +1 -0
- package/dist/history.d.ts +20 -0
- package/dist/history.js +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +16 -0
- package/dist/known.d.ts +7 -0
- package/dist/known.js +1 -0
- package/dist/metadata.d.ts +29 -0
- package/dist/metadata.js +1 -0
- package/dist/model.d.ts +96 -0
- package/dist/model.js +1 -0
- package/dist/testCase.d.ts +6 -0
- package/dist/testCase.js +1 -0
- package/dist/testPlan.d.ts +8 -0
- package/dist/testPlan.js +1 -0
- package/dist/utils/comparator.d.ts +17 -0
- package/dist/utils/comparator.js +38 -0
- package/dist/utils/label.d.ts +2 -0
- package/dist/utils/label.js +3 -0
- package/dist/utils/predicate.d.ts +1 -0
- package/dist/utils/predicate.js +1 -0
- package/dist/utils/step.d.ts +3 -0
- package/dist/utils/step.js +6 -0
- package/dist/utils/testplan.d.ts +2 -0
- package/dist/utils/testplan.js +13 -0
- package/dist/utils/time.d.ts +1 -0
- package/dist/utils/time.js +42 -0
- package/dist/utils/tree.d.ts +22 -0
- package/dist/utils/tree.js +1 -0
- package/package.json +45 -0
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Core API
|
|
2
|
+
|
|
3
|
+
[<img src="https://allurereport.org/public/img/allure-report.svg" height="85px" alt="Allure Report logo" align="right" />](https://allurereport.org "Allure Report")
|
|
4
|
+
|
|
5
|
+
- Learn more about Allure Report at https://allurereport.org
|
|
6
|
+
- 📚 [Documentation](https://allurereport.org/docs/) – discover official documentation for Allure Report
|
|
7
|
+
- ❓ [Questions and Support](https://github.com/orgs/allure-framework/discussions/categories/questions-support) – get help from the team and community
|
|
8
|
+
- 📢 [Official announcements](https://github.com/orgs/allure-framework/discussions/categories/announcements) – be in touch with the latest updates
|
|
9
|
+
- 💬 [General Discussion ](https://github.com/orgs/allure-framework/discussions/categories/general-discussion) – engage in casual conversations, share insights and ideas with the community
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
The collection of interfaces describing the core Allure Report entities.
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
Use your favorite package manager to install the package:
|
|
20
|
+
|
|
21
|
+
```shell
|
|
22
|
+
npm add @allurereport/core-api
|
|
23
|
+
yarn add @allurereport/core-api
|
|
24
|
+
pnpm add @allurereport/core-api
|
|
25
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Statistic } from "./aggregate.js";
|
|
2
|
+
import type { TestStatus } from "./model.js";
|
|
3
|
+
export declare const statusesList: TestStatus[];
|
|
4
|
+
export declare const unsuccessfulStatuses: Set<TestStatus>;
|
|
5
|
+
export declare const successfulStatuses: Set<TestStatus>;
|
|
6
|
+
export declare const includedInSuccessRate: Set<TestStatus>;
|
|
7
|
+
export declare const filterByStatus: <T extends {
|
|
8
|
+
status: TestStatus;
|
|
9
|
+
}>(statuses: Iterable<TestStatus>) => (t: T) => boolean;
|
|
10
|
+
export declare const filterSuccessful: (t: {
|
|
11
|
+
status: TestStatus;
|
|
12
|
+
}) => boolean;
|
|
13
|
+
export declare const filterUnsuccessful: (t: {
|
|
14
|
+
status: TestStatus;
|
|
15
|
+
}) => boolean;
|
|
16
|
+
export declare const filterIncludedInSuccessRate: (t: {
|
|
17
|
+
status: TestStatus;
|
|
18
|
+
}) => boolean;
|
|
19
|
+
export declare const emptyStatistic: () => Statistic;
|
|
20
|
+
export declare const incrementStatistic: (statistic: Statistic, status: TestStatus) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const statusesList = ["failed", "broken", "passed", "skipped", "unknown"];
|
|
2
|
+
export const unsuccessfulStatuses = new Set(["failed", "broken"]);
|
|
3
|
+
export const successfulStatuses = new Set(["passed"]);
|
|
4
|
+
export const includedInSuccessRate = new Set([...unsuccessfulStatuses, ...successfulStatuses]);
|
|
5
|
+
export const filterByStatus = (statuses) => {
|
|
6
|
+
const set = new Set(statuses);
|
|
7
|
+
return (t) => set.has(t.status);
|
|
8
|
+
};
|
|
9
|
+
export const filterSuccessful = filterByStatus(successfulStatuses);
|
|
10
|
+
export const filterUnsuccessful = filterByStatus(unsuccessfulStatuses);
|
|
11
|
+
export const filterIncludedInSuccessRate = filterByStatus(includedInSuccessRate);
|
|
12
|
+
export const emptyStatistic = () => ({ total: 0 });
|
|
13
|
+
export const incrementStatistic = (statistic, status) => {
|
|
14
|
+
statistic[status] = (statistic[status] ?? 0) + 1;
|
|
15
|
+
statistic.total++;
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TestStatus } from "./model.js";
|
|
2
|
+
export interface HistoryTestResult {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
fullName?: string;
|
|
6
|
+
status: TestStatus;
|
|
7
|
+
message?: string;
|
|
8
|
+
trace?: string;
|
|
9
|
+
start?: number;
|
|
10
|
+
stop?: number;
|
|
11
|
+
duration?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface HistoryDataPoint {
|
|
14
|
+
uuid: string;
|
|
15
|
+
name: string;
|
|
16
|
+
timestamp: number;
|
|
17
|
+
knownTestCaseIds: string[];
|
|
18
|
+
testResults: Record<string, HistoryTestResult>;
|
|
19
|
+
metrics: Record<string, number>;
|
|
20
|
+
}
|
package/dist/history.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from "./aggregate.js";
|
|
2
|
+
export * from "./constants.js";
|
|
3
|
+
export * from "./environment.js";
|
|
4
|
+
export * from "./history.js";
|
|
5
|
+
export * from "./known.js";
|
|
6
|
+
export * from "./metadata.js";
|
|
7
|
+
export * from "./model.js";
|
|
8
|
+
export * from "./testCase.js";
|
|
9
|
+
export * from "./testPlan.js";
|
|
10
|
+
export * from "./utils/step.js";
|
|
11
|
+
export * from "./utils/tree.js";
|
|
12
|
+
export * from "./utils/time.js";
|
|
13
|
+
export * from "./utils/comparator.js";
|
|
14
|
+
export * from "./utils/predicate.js";
|
|
15
|
+
export * from "./utils/label.js";
|
|
16
|
+
export * from "./utils/testplan.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from "./aggregate.js";
|
|
2
|
+
export * from "./constants.js";
|
|
3
|
+
export * from "./environment.js";
|
|
4
|
+
export * from "./history.js";
|
|
5
|
+
export * from "./known.js";
|
|
6
|
+
export * from "./metadata.js";
|
|
7
|
+
export * from "./model.js";
|
|
8
|
+
export * from "./testCase.js";
|
|
9
|
+
export * from "./testPlan.js";
|
|
10
|
+
export * from "./utils/step.js";
|
|
11
|
+
export * from "./utils/tree.js";
|
|
12
|
+
export * from "./utils/time.js";
|
|
13
|
+
export * from "./utils/comparator.js";
|
|
14
|
+
export * from "./utils/predicate.js";
|
|
15
|
+
export * from "./utils/label.js";
|
|
16
|
+
export * from "./utils/testplan.js";
|
package/dist/known.d.ts
ADDED
package/dist/known.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { TestStatus } from "./model.js";
|
|
2
|
+
export interface Location {
|
|
3
|
+
}
|
|
4
|
+
export interface TestLabel {
|
|
5
|
+
name: string;
|
|
6
|
+
value?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface TestLink {
|
|
9
|
+
name?: string;
|
|
10
|
+
url: string;
|
|
11
|
+
type?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TestParameter {
|
|
14
|
+
name: string;
|
|
15
|
+
value: string;
|
|
16
|
+
hidden: boolean;
|
|
17
|
+
excluded: boolean;
|
|
18
|
+
masked: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TestError {
|
|
21
|
+
id: string;
|
|
22
|
+
message: string;
|
|
23
|
+
trace?: string;
|
|
24
|
+
status?: TestStatus;
|
|
25
|
+
code?: string;
|
|
26
|
+
location?: Location;
|
|
27
|
+
tags: string[];
|
|
28
|
+
expected?: boolean;
|
|
29
|
+
}
|
package/dist/metadata.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/model.d.ts
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { TestLabel, TestLink, TestParameter } from "./metadata.js";
|
|
2
|
+
import type { TestCase } from "./testCase.js";
|
|
3
|
+
export type TestStatus = "failed" | "broken" | "passed" | "skipped" | "unknown";
|
|
4
|
+
export interface SourceMetadata {
|
|
5
|
+
readerId: string;
|
|
6
|
+
metadata: {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface TestResult {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
status: TestStatus;
|
|
14
|
+
message?: string;
|
|
15
|
+
trace?: string;
|
|
16
|
+
testCase?: TestCase;
|
|
17
|
+
fullName?: string;
|
|
18
|
+
historyId?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
descriptionHtml?: string;
|
|
21
|
+
precondition?: string;
|
|
22
|
+
preconditionHtml?: string;
|
|
23
|
+
expectedResult?: string;
|
|
24
|
+
expectedResultHtml?: string;
|
|
25
|
+
start?: number;
|
|
26
|
+
stop?: number;
|
|
27
|
+
duration?: number;
|
|
28
|
+
flaky: boolean;
|
|
29
|
+
muted: boolean;
|
|
30
|
+
known: boolean;
|
|
31
|
+
hidden: boolean;
|
|
32
|
+
hostId?: string;
|
|
33
|
+
threadId?: string;
|
|
34
|
+
labels: TestLabel[];
|
|
35
|
+
parameters: TestParameter[];
|
|
36
|
+
links: TestLink[];
|
|
37
|
+
steps: TestStepResult[];
|
|
38
|
+
sourceMetadata: SourceMetadata;
|
|
39
|
+
runSelector?: string;
|
|
40
|
+
retries?: TestResult[];
|
|
41
|
+
}
|
|
42
|
+
export interface TestFixtureResult {
|
|
43
|
+
id: string;
|
|
44
|
+
testResultIds: string[];
|
|
45
|
+
type: "before" | "after";
|
|
46
|
+
name: string;
|
|
47
|
+
status: TestStatus;
|
|
48
|
+
message?: string;
|
|
49
|
+
trace?: string;
|
|
50
|
+
start?: number;
|
|
51
|
+
stop?: number;
|
|
52
|
+
duration?: number;
|
|
53
|
+
steps: TestStepResult[];
|
|
54
|
+
sourceMetadata: SourceMetadata;
|
|
55
|
+
}
|
|
56
|
+
export type TestStepResult = DefaultTestStepResult | AttachmentTestStepResult;
|
|
57
|
+
export interface DefaultTestStepResult {
|
|
58
|
+
name: string;
|
|
59
|
+
parameters: TestParameter[];
|
|
60
|
+
status: TestStatus;
|
|
61
|
+
message?: string;
|
|
62
|
+
trace?: string;
|
|
63
|
+
start?: number;
|
|
64
|
+
stop?: number;
|
|
65
|
+
duration?: number;
|
|
66
|
+
steps: TestStepResult[];
|
|
67
|
+
type: "step";
|
|
68
|
+
}
|
|
69
|
+
export interface AttachmentLinkFile {
|
|
70
|
+
id: string;
|
|
71
|
+
contentType?: string;
|
|
72
|
+
contentLength?: number;
|
|
73
|
+
originalFileName: string;
|
|
74
|
+
ext: string;
|
|
75
|
+
used: false;
|
|
76
|
+
missed: false;
|
|
77
|
+
}
|
|
78
|
+
export interface AttachmentLinkExpected {
|
|
79
|
+
id: string;
|
|
80
|
+
name: string;
|
|
81
|
+
contentType?: string;
|
|
82
|
+
originalFileName: string;
|
|
83
|
+
ext: string;
|
|
84
|
+
used: true;
|
|
85
|
+
missed: true;
|
|
86
|
+
}
|
|
87
|
+
export type AttachmentLinkLinked = Omit<AttachmentLinkFile, "used"> & Omit<AttachmentLinkExpected, "missed">;
|
|
88
|
+
export type AttachmentLinkInvalid = Omit<AttachmentLinkExpected, "originalFileName" | "ext"> & {
|
|
89
|
+
originalFileName: undefined;
|
|
90
|
+
ext: "";
|
|
91
|
+
};
|
|
92
|
+
export type AttachmentLink = AttachmentLinkFile | AttachmentLinkExpected | AttachmentLinkLinked | AttachmentLinkInvalid;
|
|
93
|
+
export interface AttachmentTestStepResult {
|
|
94
|
+
link: AttachmentLinkExpected | AttachmentLinkLinked | AttachmentLinkInvalid;
|
|
95
|
+
type: "attachment";
|
|
96
|
+
}
|
package/dist/model.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/testCase.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/testPlan.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Statistic } from "../aggregate.js";
|
|
2
|
+
import type { TestStatus } from "../model.js";
|
|
3
|
+
export type SortFunction<T> = () => Comparator<T>;
|
|
4
|
+
export type Comparator<T> = (a: T, b: T) => number;
|
|
5
|
+
type Value<T, P> = T extends any ? (P extends keyof T ? T[P] : P extends "" ? T : never) : never;
|
|
6
|
+
export declare const reverse: <T>(comparator: Comparator<T>) => Comparator<T>;
|
|
7
|
+
export declare const nullsLast: <T extends {}>(compare: Comparator<T>) => Comparator<T | undefined>;
|
|
8
|
+
export declare const compareBy: <T extends Record<string, any> = {}, P extends keyof T = keyof T>(property: P, compare: Comparator<Value<T, P>>) => Comparator<T>;
|
|
9
|
+
export declare const andThen: <T>(comparators: Comparator<T>[]) => Comparator<T>;
|
|
10
|
+
export declare const alphabetically: SortFunction<string | undefined>;
|
|
11
|
+
export declare const ordinal: SortFunction<number | undefined>;
|
|
12
|
+
export declare const byStatus: SortFunction<TestStatus | undefined>;
|
|
13
|
+
export declare const byStatistic: SortFunction<Statistic | undefined>;
|
|
14
|
+
export declare const byName: SortFunction<Partial<{
|
|
15
|
+
name: string;
|
|
16
|
+
}> | undefined>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { statusesList } from "../constants.js";
|
|
2
|
+
export const reverse = (comparator) => {
|
|
3
|
+
return (a, b) => comparator(b, a);
|
|
4
|
+
};
|
|
5
|
+
export const nullsLast = (compare) => {
|
|
6
|
+
return (a, b) => a === b ? 0 : a === undefined || a === null ? 1 : b === undefined || b === null ? -1 : compare(a, b);
|
|
7
|
+
};
|
|
8
|
+
export const compareBy = (property, compare) => {
|
|
9
|
+
return nullsLast((a, b) => {
|
|
10
|
+
if (property in a && property in b) {
|
|
11
|
+
return compare(a[property], b[property]);
|
|
12
|
+
}
|
|
13
|
+
return 0;
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
export const andThen = (comparators) => {
|
|
17
|
+
return (a, b) => {
|
|
18
|
+
for (const compare of comparators) {
|
|
19
|
+
const res = compare(a, b);
|
|
20
|
+
if (res !== 0) {
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export const alphabetically = () => nullsLast((a, b) => a.localeCompare(b));
|
|
28
|
+
export const ordinal = () => nullsLast((a, b) => a - b);
|
|
29
|
+
export const byStatus = () => {
|
|
30
|
+
return nullsLast((a, b) => {
|
|
31
|
+
return statusesList.indexOf(a) - statusesList.indexOf(b);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
export const byStatistic = () => {
|
|
35
|
+
const compares = statusesList.map((status) => compareBy(status, reverse(ordinal())));
|
|
36
|
+
return nullsLast(andThen(compares));
|
|
37
|
+
};
|
|
38
|
+
export const byName = () => nullsLast(compareBy("name", alphabetically()));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const notNull: <T>(value: T) => value is NonNullable<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const notNull = (value) => !!value;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AttachmentTestStepResult, DefaultTestStepResult, TestStepResult } from "../model.js";
|
|
2
|
+
export declare const isStep: (result: TestStepResult) => result is DefaultTestStepResult;
|
|
3
|
+
export declare const isAttachment: (result: TestStepResult) => result is AttachmentTestStepResult;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { findByLabelName } from "./label.js";
|
|
2
|
+
export const createTestPlan = (testResults) => {
|
|
3
|
+
const seenIds = new Set();
|
|
4
|
+
const seenSelectors = new Set();
|
|
5
|
+
const tests = testResults
|
|
6
|
+
.map((tr) => ({ selector: tr.runSelector ?? tr.fullName, id: findByLabelName(tr.labels, "ALLURE_ID") }))
|
|
7
|
+
.filter((value) => (value.selector && (seenSelectors.has(value.selector) ? false : !!seenSelectors.add(value.selector))) ||
|
|
8
|
+
(value.id && (seenIds.has(value.id) ? false : !!seenSelectors.add(value.id))));
|
|
9
|
+
return {
|
|
10
|
+
version: "1.0",
|
|
11
|
+
tests,
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const formatDuration: (duration: number | undefined) => string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const times = [
|
|
2
|
+
{
|
|
3
|
+
suffix: "d",
|
|
4
|
+
accessor: (duration) => Math.floor(duration / (24 * 3600 * 1000)),
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
suffix: "h",
|
|
8
|
+
accessor: (duration) => Math.floor(duration / (3600 * 1000)) % 24,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
suffix: "m",
|
|
12
|
+
accessor: (duration) => Math.floor(duration / (60 * 1000)) % 60,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
suffix: "s",
|
|
16
|
+
accessor: (duration) => Math.floor(duration / 1000) % 60,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
suffix: "ms",
|
|
20
|
+
accessor: (duration) => Math.round(duration) % 1000,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
export const formatDuration = (duration) => {
|
|
24
|
+
if (duration === undefined) {
|
|
25
|
+
return "unknown";
|
|
26
|
+
}
|
|
27
|
+
if (duration < 0.5) {
|
|
28
|
+
return "0s";
|
|
29
|
+
}
|
|
30
|
+
const res = [];
|
|
31
|
+
for (const { accessor, suffix } of times) {
|
|
32
|
+
const value = accessor(duration);
|
|
33
|
+
if (res.length === 0 && !value) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
res.push(value + suffix);
|
|
37
|
+
if (res.length > 1) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return res.join(" ");
|
|
42
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Statistic } from "../aggregate.js";
|
|
2
|
+
import { TestResult } from "../model.js";
|
|
3
|
+
type TreeNode<T> = Omit<T, "nodeId"> & {
|
|
4
|
+
nodeId: string;
|
|
5
|
+
};
|
|
6
|
+
export interface WithChildren {
|
|
7
|
+
groups?: string[];
|
|
8
|
+
leaves?: string[];
|
|
9
|
+
}
|
|
10
|
+
export type TreeGroup<T> = TreeNode<T> & WithChildren;
|
|
11
|
+
export type TreeLeaf<T> = TreeNode<T>;
|
|
12
|
+
export type TreeData<L, G> = {
|
|
13
|
+
root: WithChildren;
|
|
14
|
+
leavesById: Record<string, TreeLeaf<L>>;
|
|
15
|
+
groupsById: Record<string, TreeGroup<G>>;
|
|
16
|
+
};
|
|
17
|
+
export type DefaultTreeLeaf = Pick<TestResult, "name" | "status" | "duration">;
|
|
18
|
+
export type DefaultTreeGroup = {
|
|
19
|
+
name: string;
|
|
20
|
+
statistic: Statistic;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@allurereport/core-api",
|
|
3
|
+
"version": "3.0.0-beta.3",
|
|
4
|
+
"description": "Allure Core API",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"allure"
|
|
7
|
+
],
|
|
8
|
+
"repository": "https://github.com/allure-framework/allure3",
|
|
9
|
+
"license": "Apache-2.0",
|
|
10
|
+
"author": "Qameta Software",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"module": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "run clean && tsc --project ./tsconfig.json",
|
|
23
|
+
"clean": "rimraf ./dist",
|
|
24
|
+
"test": "rimraf ./out && vitest run"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@stylistic/eslint-plugin": "^2.6.1",
|
|
28
|
+
"@types/eslint": "^8.56.11",
|
|
29
|
+
"@types/node": "^20.17.9",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
31
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
32
|
+
"@vitest/runner": "^2.1.8",
|
|
33
|
+
"allure-vitest": "^3.0.7",
|
|
34
|
+
"eslint": "^8.57.0",
|
|
35
|
+
"eslint-config-prettier": "^9.1.0",
|
|
36
|
+
"eslint-plugin-import": "^2.29.1",
|
|
37
|
+
"eslint-plugin-jsdoc": "^50.0.0",
|
|
38
|
+
"eslint-plugin-n": "^17.10.1",
|
|
39
|
+
"eslint-plugin-no-null": "^1.0.2",
|
|
40
|
+
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
41
|
+
"rimraf": "^6.0.1",
|
|
42
|
+
"typescript": "^5.6.3",
|
|
43
|
+
"vitest": "^2.1.8"
|
|
44
|
+
}
|
|
45
|
+
}
|