@allurereport/ci 3.0.0-beta.17

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 ADDED
@@ -0,0 +1,13 @@
1
+ # Allure CI Detector
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
+ TODO:
@@ -0,0 +1,2 @@
1
+ import type { CiDescriptor } from "@allurereport/core-api";
2
+ export declare const detect: () => CiDescriptor | undefined;
package/dist/detect.js ADDED
@@ -0,0 +1,11 @@
1
+ import { amazon } from "./detectors/amazon.js";
2
+ import { azure } from "./detectors/azure.js";
3
+ import { bitbucket } from "./detectors/bitbucket.js";
4
+ import { circle } from "./detectors/circle.js";
5
+ import { drone } from "./detectors/drone.js";
6
+ import { github } from "./detectors/github.js";
7
+ import { gitlab } from "./detectors/gitlab.js";
8
+ import { jenkins } from "./detectors/jenkins.js";
9
+ export const detect = () => {
10
+ return [amazon, azure, bitbucket, circle, drone, github, gitlab, jenkins].find((descriptor) => descriptor.detected);
11
+ };
@@ -0,0 +1,10 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const parseArnValues: (source: string) => string[];
3
+ export declare const isBatchBuild: () => boolean;
4
+ export declare const getRegionID: (source: string) => string;
5
+ export declare const getAccountID: (source: string) => string;
6
+ export declare const getProjectName: (source: string) => string;
7
+ export declare const getBuildGUID: (source: string) => string;
8
+ export declare const getInitiator: () => string;
9
+ export declare const getPipelineName: () => string;
10
+ export declare const amazon: CiDescriptor;
@@ -0,0 +1,123 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ const AMAZON_REGEXP = /^arn:aws:codebuild:([^:]+):([\d]+):(?:build|build-batch)\/([^:]+):([\da-f-]+)$/;
4
+ const PIPELINE_REGEXP = /^(?:codepipeline\/)(.+)$/;
5
+ export const parseArnValues = (source) => {
6
+ if (!source) {
7
+ return [];
8
+ }
9
+ return source.match(AMAZON_REGEXP)?.slice(1) ?? [];
10
+ };
11
+ export const isBatchBuild = () => getEnv("CODEBUILD_BUILD_BATCH_TRIGGERED") === "true";
12
+ export const getRegionID = (source) => parseArnValues(source)?.[0] ?? "";
13
+ export const getAccountID = (source) => parseArnValues(source)?.[1] ?? "";
14
+ export const getProjectName = (source) => parseArnValues(source)?.[2] ?? "";
15
+ export const getBuildGUID = (source) => parseArnValues(source)?.[3] ?? "";
16
+ export const getInitiator = () => getEnv("CODEBUILD_INITIATOR");
17
+ export const getPipelineName = () => {
18
+ const initiator = getInitiator();
19
+ if (!initiator) {
20
+ return "";
21
+ }
22
+ return initiator.match(PIPELINE_REGEXP)?.[1] ?? "";
23
+ };
24
+ export const amazon = {
25
+ type: CiType.Amazon,
26
+ get detected() {
27
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
28
+ return buildArn !== "" && parseArnValues(buildArn).length > 0;
29
+ },
30
+ get jobUid() {
31
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
32
+ const pipelineName = getPipelineName();
33
+ if (pipelineName) {
34
+ return `pipeline/${pipelineName}`;
35
+ }
36
+ else if (isBatchBuild()) {
37
+ const projectName = getProjectName(buildArn);
38
+ return `buildbatch/${projectName}`;
39
+ }
40
+ else {
41
+ const projectName = getProjectName(buildArn);
42
+ return `build/${projectName}`;
43
+ }
44
+ },
45
+ get jobUrl() {
46
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
47
+ const pipelineName = getPipelineName();
48
+ if (pipelineName) {
49
+ const regionId = getRegionID(buildArn);
50
+ return `https://console.aws.amazon.com/codesuite/codepipeline/pipelines/${pipelineName}/view?region=${regionId}`;
51
+ }
52
+ else {
53
+ const regionId = getRegionID(buildArn);
54
+ const projectName = getProjectName(buildArn);
55
+ return `https://console.aws.amazon.com/codebuild/home?region=${regionId}#/projects/${projectName}/view/new`;
56
+ }
57
+ },
58
+ get jobName() {
59
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
60
+ const pipelineName = getPipelineName();
61
+ if (pipelineName) {
62
+ return pipelineName;
63
+ }
64
+ else {
65
+ return getProjectName(buildArn);
66
+ }
67
+ },
68
+ get jobRunUid() {
69
+ const pipelineName = getPipelineName();
70
+ if (pipelineName) {
71
+ return getEnv("CODEBUILD_BUILD_ID");
72
+ }
73
+ else {
74
+ return getBuildGUID(getEnv("CODEBUILD_BUILD_ARN"));
75
+ }
76
+ },
77
+ get jobRunUrl() {
78
+ const pipelineName = getPipelineName();
79
+ if (pipelineName) {
80
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
81
+ const executionGuid = getEnv("CODEBUILD_BUILD_ID") || "";
82
+ const regionId = getRegionID(buildArn);
83
+ return `https://console.aws.amazon.com/codesuite/codepipeline/pipelines/${pipelineName}/executions/${executionGuid}/timeline?region=${regionId}`;
84
+ }
85
+ else if (isBatchBuild()) {
86
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
87
+ const accountId = getAccountID(buildArn);
88
+ const projectName = getProjectName(buildArn);
89
+ const buildGuid = getBuildGUID(buildArn);
90
+ return `https://console.aws.amazon.com/codesuite/codebuild/${accountId}/projects/${projectName}/batch/${projectName}:${buildGuid}`;
91
+ }
92
+ else {
93
+ const buildArn = getEnv("CODEBUILD_BUILD_ARN");
94
+ const regionId = getRegionID(buildArn);
95
+ const projectName = getProjectName(buildArn);
96
+ const buildGuid = getBuildGUID(buildArn);
97
+ return `https://console.aws.amazon.com/codebuild/home?region=${regionId}#/builds/${projectName}:${buildGuid}/view/new`;
98
+ }
99
+ },
100
+ get jobRunName() {
101
+ const pipelineName = getPipelineName();
102
+ if (pipelineName) {
103
+ const executionGuid = getEnv("CODEBUILD_BUILD_ID");
104
+ return `${pipelineName}-${executionGuid}`;
105
+ }
106
+ else {
107
+ const projectName = getProjectName(getEnv("CODEBUILD_BUILD_ARN"));
108
+ const buildNumber = getEnv("CODEBUILD_BUILD_NUMBER");
109
+ return `${projectName}-${buildNumber}`;
110
+ }
111
+ },
112
+ get jobRunBranch() {
113
+ const sourceVersion = getEnv("CODEBUILD_SOURCE_VERSION");
114
+ const { branch } = sourceVersion?.match?.(/refs\/heads\/(?<branch>\S+)\^\{(?<commithash>\S+)\}/)?.groups ?? {};
115
+ return branch ?? "";
116
+ },
117
+ get pullRequestUrl() {
118
+ return "";
119
+ },
120
+ get pullRequestName() {
121
+ return "";
122
+ },
123
+ };
@@ -0,0 +1,6 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const getRootURL: () => string;
3
+ export declare const getBuildID: () => string;
4
+ export declare const getDefinitionID: () => string;
5
+ export declare const getProjectID: () => string;
6
+ export declare const azure: CiDescriptor;
@@ -0,0 +1,48 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ export const getRootURL = () => getEnv("SYSTEM_COLLECTIONURI");
4
+ export const getBuildID = () => getEnv("BUILD_BUILDID");
5
+ export const getDefinitionID = () => getEnv("SYSTEM_DEFINITIONID");
6
+ export const getProjectID = () => getEnv("SYSTEM_TEAMPROJECTID");
7
+ export const azure = {
8
+ type: CiType.Azure,
9
+ get detected() {
10
+ return getEnv("SYSTEM_DEFINITIONID") !== "";
11
+ },
12
+ get jobUid() {
13
+ return `${getProjectID()}_${getDefinitionID()}`;
14
+ },
15
+ get jobUrl() {
16
+ return `${getRootURL()}/${getProjectID()}/_build?definitionId=${getDefinitionID()}`;
17
+ },
18
+ get jobName() {
19
+ return getEnv("BUILD_DEFINITIONNAME");
20
+ },
21
+ get jobRunUid() {
22
+ return getBuildID();
23
+ },
24
+ get jobRunUrl() {
25
+ return `${getRootURL()}/${getProjectID()}/_build/results?buildId=${getBuildID()}`;
26
+ },
27
+ get jobRunName() {
28
+ return getEnv("BUILD_BUILDNUMBER");
29
+ },
30
+ get jobRunBranch() {
31
+ return getEnv("BUILD_SOURCEBRANCHNAME");
32
+ },
33
+ get pullRequestUrl() {
34
+ const repositoryProvider = getEnv("BUILD_REPOSITORY_PROVIDER");
35
+ const repositoryUrl = getEnv("SYSTEM_PULLREQUEST_SOURCEREPOSITORYURI");
36
+ const pullRequestNumber = getEnv("SYSTEM_PULLREQUEST_PULLREQUESTNUMBER");
37
+ if (repositoryProvider === "GitHub") {
38
+ return `${repositoryUrl}/pull/${pullRequestNumber}`;
39
+ }
40
+ if (repositoryProvider === "TfsGit" || repositoryProvider === "TfsVersionControl") {
41
+ return `${repositoryUrl}/pullrequest/${pullRequestNumber}`;
42
+ }
43
+ return "";
44
+ },
45
+ get pullRequestName() {
46
+ return "";
47
+ },
48
+ };
@@ -0,0 +1,3 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const getJobURL: () => string;
3
+ export declare const bitbucket: CiDescriptor;
@@ -0,0 +1,44 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ export const getJobURL = () => {
4
+ const origin = getEnv("BITBUCKET_GIT_HTTP_ORIGIN");
5
+ return `${origin}/pipelines`;
6
+ };
7
+ export const bitbucket = {
8
+ type: CiType.Bitbucket,
9
+ get detected() {
10
+ return getEnv("BITBUCKET_PIPELINE_UUID") !== "";
11
+ },
12
+ get jobUid() {
13
+ return getEnv("BITBUCKET_REPO_FULL_NAME");
14
+ },
15
+ get jobUrl() {
16
+ return getJobURL();
17
+ },
18
+ get jobName() {
19
+ return getEnv("BITBUCKET_REPO_FULL_NAME");
20
+ },
21
+ get jobRunUid() {
22
+ return getEnv("BITBUCKET_PIPELINE_UUID");
23
+ },
24
+ get jobRunUrl() {
25
+ return `${getJobURL()}/results/${this.jobRunUid}`;
26
+ },
27
+ get jobRunName() {
28
+ return getEnv("BITBUCKET_PIPELINE_UUID");
29
+ },
30
+ get jobRunBranch() {
31
+ return getEnv("BITBUCKET_BRANCH");
32
+ },
33
+ get pullRequestUrl() {
34
+ const prId = getEnv("BITBUCKET_PR_ID");
35
+ if (!prId) {
36
+ return "";
37
+ }
38
+ const origin = getEnv("BITBUCKET_GIT_HTTP_ORIGIN");
39
+ return `${origin}/pull-requests/${prId}`;
40
+ },
41
+ get pullRequestName() {
42
+ return "";
43
+ },
44
+ };
@@ -0,0 +1,4 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const getBuildNumber: () => string;
3
+ export declare const getJobRunURL: () => string;
4
+ export declare const circle: CiDescriptor;
@@ -0,0 +1,48 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv, parseURLPath } from "../utils.js";
3
+ export const getBuildNumber = () => getEnv("CIRCLE_BUILD_NUM");
4
+ export const getJobRunURL = () => getEnv("CIRCLE_BUILD_URL");
5
+ const getJobURL = () => {
6
+ const jobRunURL = getJobRunURL();
7
+ const buildNumber = getBuildNumber();
8
+ return jobRunURL.replace(`/${buildNumber}`, "");
9
+ };
10
+ export const circle = {
11
+ type: CiType.Circle,
12
+ get detected() {
13
+ const hasEnv = getEnv("CIRCLECI") !== "";
14
+ const jobURL = getJobURL();
15
+ const path = parseURLPath(jobURL);
16
+ return hasEnv && path !== "";
17
+ },
18
+ get jobUid() {
19
+ const jobURL = getJobURL();
20
+ return parseURLPath(jobURL);
21
+ },
22
+ get jobUrl() {
23
+ return getJobURL();
24
+ },
25
+ get jobName() {
26
+ const username = getEnv("CIRCLE_USERNAME");
27
+ const reponame = getEnv("CIRCLE_PROJECT_REPONAME");
28
+ return `${username}/${reponame}`;
29
+ },
30
+ get jobRunUid() {
31
+ return getEnv("CIRCLE_WORKFLOW_JOB_ID");
32
+ },
33
+ get jobRunUrl() {
34
+ return getJobRunURL();
35
+ },
36
+ get jobRunName() {
37
+ return getEnv("CIRCLE_BUILD_NUM");
38
+ },
39
+ get jobRunBranch() {
40
+ return getEnv("CIRCLE_BRANCH");
41
+ },
42
+ get pullRequestUrl() {
43
+ return "";
44
+ },
45
+ get pullRequestName() {
46
+ return "";
47
+ },
48
+ };
@@ -0,0 +1,5 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const getJobRunUID: () => string;
3
+ export declare const getJobRunURL: () => string;
4
+ export declare const getJobURL: () => string;
5
+ export declare const drone: CiDescriptor;
@@ -0,0 +1,52 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ export const getJobRunUID = () => getEnv("CI_BUILD_NUMBER");
4
+ export const getJobRunURL = () => getEnv("DRONE_BUILD_LINK");
5
+ export const getJobURL = () => {
6
+ const jobRunURL = getJobRunURL();
7
+ const jobRunUID = getJobRunUID();
8
+ return jobRunURL.replace(jobRunUID, "");
9
+ };
10
+ export const drone = {
11
+ type: CiType.Drone,
12
+ get detected() {
13
+ return getEnv("DRONE_SYSTEM_HOST") !== "";
14
+ },
15
+ get jobUid() {
16
+ return getEnv("DRONE_REPO");
17
+ },
18
+ get jobUrl() {
19
+ return getJobURL();
20
+ },
21
+ get jobName() {
22
+ return getEnv("DRONE_REPO");
23
+ },
24
+ get jobRunUid() {
25
+ return getJobRunUID();
26
+ },
27
+ get jobRunUrl() {
28
+ return getJobRunURL();
29
+ },
30
+ get jobRunName() {
31
+ return getEnv("DRONE_BUILD_NUMBER");
32
+ },
33
+ get jobRunBranch() {
34
+ return getEnv("DRONE_BRANCH");
35
+ },
36
+ get pullRequestUrl() {
37
+ const githubServer = getEnv("DRONE_GITHUB_SERVER");
38
+ const gitlabServer = getEnv("DRONE_GITLAB_SERVER");
39
+ const repoLink = getEnv("DRONE_REPO_LINK");
40
+ const pullRequestNumber = getEnv("DRONE_PULL_REQUEST");
41
+ if (repoLink.startsWith(githubServer)) {
42
+ return `${repoLink}/pull/${pullRequestNumber}`;
43
+ }
44
+ if (repoLink.startsWith(gitlabServer)) {
45
+ return `${repoLink}/-/merge_requests/${pullRequestNumber}`;
46
+ }
47
+ return "";
48
+ },
49
+ get pullRequestName() {
50
+ return getEnv("DRONE_PULL_REQUEST_TITLE");
51
+ },
52
+ };
@@ -0,0 +1,2 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const github: CiDescriptor;
@@ -0,0 +1,57 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { join } from "node:path/posix";
3
+ import { getEnv } from "../utils.js";
4
+ const pullRequestSuffixRe = /\/merge$/;
5
+ const getBaseURL = () => getEnv("GITHUB_SERVER_URL");
6
+ const getRunID = () => getEnv("GITHUB_RUN_ID");
7
+ const getWorkflow = () => getEnv("GITHUB_WORKFLOW");
8
+ const getRepo = () => getEnv("GITHUB_REPOSITORY");
9
+ export const github = {
10
+ type: CiType.Github,
11
+ get detected() {
12
+ return getEnv("GITHUB_ACTIONS") !== "";
13
+ },
14
+ get jobUid() {
15
+ return `${getRepo()}_${getWorkflow()}`;
16
+ },
17
+ get jobUrl() {
18
+ const workflow = encodeURIComponent(`workflow:"${getWorkflow()}"`);
19
+ return `${getBaseURL()}/${getRepo()}/actions?query=${workflow}`;
20
+ },
21
+ get jobName() {
22
+ return `${getRepo()} - ${getWorkflow()}`;
23
+ },
24
+ get jobRunUid() {
25
+ return getRunID();
26
+ },
27
+ get jobRunUrl() {
28
+ return `${getBaseURL()}/${getRepo()}/actions/runs/${getRunID()}`;
29
+ },
30
+ get jobRunName() {
31
+ const runNumber = getEnv("GITHUB_RUN_NUMBER");
32
+ const job = getEnv("GITHUB_JOB");
33
+ return `${job} #${runNumber}`;
34
+ },
35
+ get jobRunBranch() {
36
+ return getEnv("GITHUB_REF");
37
+ },
38
+ get pullRequestUrl() {
39
+ const refName = getEnv("GITHUB_REF_NAME");
40
+ if (!pullRequestSuffixRe.test(refName)) {
41
+ return "";
42
+ }
43
+ const pullRequestNumber = refName.replace(pullRequestSuffixRe, "");
44
+ const serverUrl = getEnv("GITHUB_SERVER_URL");
45
+ const repo = getRepo();
46
+ const pathname = join(repo, "pull", pullRequestNumber);
47
+ return new URL(pathname, serverUrl).toString();
48
+ },
49
+ get pullRequestName() {
50
+ const refName = getEnv("GITHUB_REF_NAME");
51
+ if (!pullRequestSuffixRe.test(refName)) {
52
+ return "";
53
+ }
54
+ const pullRequestNumber = refName.replace(pullRequestSuffixRe, "");
55
+ return `Pull request #${pullRequestNumber}`;
56
+ },
57
+ };
@@ -0,0 +1,2 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const gitlab: CiDescriptor;
@@ -0,0 +1,40 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ export const gitlab = {
4
+ type: CiType.Gitlab,
5
+ get detected() {
6
+ return getEnv("GITLAB_CI") !== "";
7
+ },
8
+ get jobUid() {
9
+ return getEnv("CI_PROJECT_ID");
10
+ },
11
+ get jobUrl() {
12
+ return `${getEnv("CI_PROJECT_URL")}/pipelines`;
13
+ },
14
+ get jobName() {
15
+ return getEnv("CI_PROJECT_NAME");
16
+ },
17
+ get jobRunUid() {
18
+ return getEnv("CI_PIPELINE_ID");
19
+ },
20
+ get jobRunUrl() {
21
+ return getEnv("CI_PIPELINE_URL");
22
+ },
23
+ get jobRunName() {
24
+ return getEnv("CI_PIPELINE_ID");
25
+ },
26
+ get jobRunBranch() {
27
+ return getEnv("CI_COMMIT_REF_NAME");
28
+ },
29
+ get pullRequestUrl() {
30
+ const mergeRequestIID = getEnv("CI_MERGE_REQUEST_IID");
31
+ if (!mergeRequestIID) {
32
+ return "";
33
+ }
34
+ const projectUrl = getEnv("CI_PROJECT_URL");
35
+ return `${projectUrl}/-/merge_requests/${mergeRequestIID}`;
36
+ },
37
+ get pullRequestName() {
38
+ return getEnv("CI_MERGE_REQUEST_TITLE");
39
+ },
40
+ };
@@ -0,0 +1,2 @@
1
+ import { type CiDescriptor } from "@allurereport/core-api";
2
+ export declare const jenkins: CiDescriptor;
@@ -0,0 +1,35 @@
1
+ import { CiType } from "@allurereport/core-api";
2
+ import { getEnv } from "../utils.js";
3
+ export const jenkins = {
4
+ type: CiType.Jenkins,
5
+ get detected() {
6
+ return getEnv("JENKINS_URL") !== "";
7
+ },
8
+ get jobUid() {
9
+ return getEnv("JOB_NAME");
10
+ },
11
+ get jobUrl() {
12
+ return getEnv("JOB_URL");
13
+ },
14
+ get jobName() {
15
+ return getEnv("JOB_BASE_NAME");
16
+ },
17
+ get jobRunUid() {
18
+ return getEnv("BUILD_NUMBER");
19
+ },
20
+ get jobRunUrl() {
21
+ return getEnv("BUILD_URL");
22
+ },
23
+ get jobRunName() {
24
+ return getEnv("BUILD_DISPLAY_NAME");
25
+ },
26
+ get jobRunBranch() {
27
+ return getEnv("BRANCH_NAME");
28
+ },
29
+ get pullRequestUrl() {
30
+ return getEnv("CHANGE_URL");
31
+ },
32
+ get pullRequestName() {
33
+ return getEnv("CHANGE_TITLE");
34
+ },
35
+ };
@@ -0,0 +1 @@
1
+ export { detect } from "./detect.js";
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export { detect } from "./detect.js";
@@ -0,0 +1,2 @@
1
+ export declare const getEnv: (key: string) => string;
2
+ export declare const parseURLPath: (urlString: string) => string;
package/dist/utils.js ADDED
@@ -0,0 +1,11 @@
1
+ import { env } from "node:process";
2
+ export const getEnv = (key) => env?.[key] ?? "";
3
+ export const parseURLPath = (urlString) => {
4
+ try {
5
+ const { pathname } = new URL(urlString);
6
+ return pathname.replace(/^\/+/, "");
7
+ }
8
+ catch (error) {
9
+ return "";
10
+ }
11
+ };
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@allurereport/ci",
3
+ "version": "3.0.0-beta.17",
4
+ "description": "Utilities set to get useful report data from different CI",
5
+ "keywords": [
6
+ "allure",
7
+ "testing",
8
+ "report",
9
+ "plugin",
10
+ "html"
11
+ ],
12
+ "repository": "https://github.com/allure-framework/allure3",
13
+ "license": "Apache-2.0",
14
+ "author": "Qameta Software",
15
+ "type": "module",
16
+ "exports": {
17
+ ".": "./dist/index.js"
18
+ },
19
+ "main": "./dist/index.js",
20
+ "module": "./dist/index.js",
21
+ "types": "./dist/index.d.ts",
22
+ "files": [
23
+ "./dist"
24
+ ],
25
+ "scripts": {
26
+ "build": "run clean && tsc --project ./tsconfig.json",
27
+ "clean": "rimraf ./dist",
28
+ "eslint": "eslint ./src/**/*.{js,jsx,ts,tsx}",
29
+ "eslint:format": "eslint --fix ./src/**/*.{js,jsx,ts,tsx}",
30
+ "test": "rimraf ./out && vitest run"
31
+ },
32
+ "dependencies": {
33
+ "@allurereport/core-api": "3.0.0-beta.17"
34
+ },
35
+ "devDependencies": {
36
+ "@stylistic/eslint-plugin": "^2.6.1",
37
+ "@types/eslint": "^8.56.11",
38
+ "@types/node": "^20.17.9",
39
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
40
+ "@typescript-eslint/parser": "^8.0.0",
41
+ "@vitest/runner": "^2.1.8",
42
+ "@vitest/snapshot": "^2.1.8",
43
+ "allure-vitest": "^3.0.9",
44
+ "eslint": "^8.57.0",
45
+ "eslint-config-prettier": "^9.1.0",
46
+ "eslint-plugin-import": "^2.29.1",
47
+ "eslint-plugin-jsdoc": "^50.0.0",
48
+ "eslint-plugin-n": "^17.10.1",
49
+ "eslint-plugin-no-null": "^1.0.2",
50
+ "eslint-plugin-prefer-arrow": "^1.2.3",
51
+ "rimraf": "^6.0.1",
52
+ "typescript": "^5.6.3",
53
+ "vitest": "^2.1.8"
54
+ }
55
+ }