@allurereport/core 3.0.0-beta.4 → 3.0.0-beta.5

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/dist/api.d.ts CHANGED
@@ -7,9 +7,10 @@ export interface FullConfig {
7
7
  reportFiles: ReportFiles;
8
8
  readers?: ResultsReader[];
9
9
  plugins?: PluginInstance[];
10
- history?: HistoryDataPoint[];
11
- historyPath?: string;
10
+ history: HistoryDataPoint[];
11
+ historyPath: string;
12
12
  appendHistory?: boolean;
13
+ knownIssuesPath: string;
13
14
  known?: KnownTestFailure[];
14
15
  qualityGate?: QualityGateConfig;
15
16
  realTime?: any;
package/dist/config.d.ts CHANGED
@@ -1,22 +1,14 @@
1
1
  import type { Config } from "@allurereport/plugin-api";
2
- import type { QualityGateConfig } from "@allurereport/plugin-api";
3
- import type { FullConfig, PluginInstance } from "./api.js";
4
- export { defineConfig } from "@allurereport/plugin-api";
5
- export declare const createConfig: (opts: {
6
- reportName?: string;
2
+ import type { FullConfig } from "./api.js";
3
+ export declare const getPluginId: (key: string) => string;
4
+ export declare const findConfig: (cwd: string, configPath?: string) => Promise<string | undefined>;
5
+ export interface ConfigOverride {
6
+ name?: string;
7
7
  output?: string;
8
8
  historyPath?: string;
9
9
  knownIssuesPath?: string;
10
- plugins?: PluginInstance[];
11
- qualityGate?: QualityGateConfig;
12
- cwd?: string;
13
- }) => Promise<FullConfig>;
14
- export declare const getPluginId: (key: string) => string;
15
- export declare const findRuntimeConfigPath: (cwd?: string) => Promise<string | undefined>;
16
- export declare const readRuntimeConfig: (configPath?: string, cwd?: string, output?: string, name?: string) => Promise<FullConfig>;
10
+ }
11
+ export declare const readConfig: (cwd?: string, configPath?: string, override?: ConfigOverride) => Promise<FullConfig>;
17
12
  export declare const loadConfig: (configPath: string) => Promise<Config>;
18
- export declare const resolveConfig: (config: Config, override?: {
19
- name?: string;
20
- output?: string;
21
- }) => Promise<FullConfig>;
13
+ export declare const resolveConfig: (config: Config, override?: ConfigOverride) => Promise<FullConfig>;
22
14
  export declare const resolvePlugin: (path: string) => Promise<any>;
package/dist/config.js CHANGED
@@ -1,63 +1,69 @@
1
- import { readdir } from "node:fs/promises";
2
- import { join, resolve } from "node:path";
1
+ import * as console from "node:console";
2
+ import { stat } from "node:fs/promises";
3
+ import { resolve } from "node:path";
3
4
  import * as process from "node:process";
4
5
  import { readHistory } from "./history.js";
5
6
  import { readKnownIssues } from "./known.js";
6
7
  import { FileSystemReportFiles } from "./plugin.js";
7
8
  import { importWrapper } from "./utils/module.js";
8
- export { defineConfig } from "@allurereport/plugin-api";
9
- export const createConfig = async (opts) => {
10
- const { reportName = "Allure Report", output = "allure-report", historyPath, knownIssuesPath, qualityGate, cwd, } = opts;
11
- const workingDirectory = cwd ?? process.cwd();
12
- const target = resolve(workingDirectory, output);
13
- const history = historyPath ? await readHistory(resolve(workingDirectory, historyPath)) : [];
14
- const known = knownIssuesPath ? await readKnownIssues(resolve(workingDirectory, knownIssuesPath)) : [];
15
- return {
16
- name: reportName,
17
- history,
18
- historyPath,
19
- known,
20
- qualityGate,
21
- plugins: opts.plugins ?? [],
22
- reportFiles: new FileSystemReportFiles(target),
23
- output: target,
24
- };
25
- };
26
- const defaultRuntimeConfig = {};
9
+ import { normalizeImportPath } from "./utils/path.js";
27
10
  export const getPluginId = (key) => {
28
11
  return key.replace(/^@.*\//, "").replace(/[/\\]/g, "-");
29
12
  };
30
- export const findRuntimeConfigPath = async (cwd = process.cwd()) => {
31
- const files = await readdir(cwd);
32
- if (files.includes("allurerc.js")) {
33
- return join(cwd, "allurerc.js");
13
+ const configNames = ["allurerc.js", "allurerc.mjs"];
14
+ const defaultConfig = {};
15
+ export const findConfig = async (cwd, configPath) => {
16
+ if (configPath) {
17
+ const resolved = resolve(cwd, configPath);
18
+ try {
19
+ const stats = await stat(resolved);
20
+ if (stats.isFile()) {
21
+ return resolved;
22
+ }
23
+ }
24
+ catch (e) {
25
+ console.error(e);
26
+ }
27
+ throw new Error(`invalid config path ${resolved}: not a regular file`);
34
28
  }
35
- if (files.includes("allurerc.mjs")) {
36
- return join(cwd, "allurerc.mjs");
29
+ for (const configName of configNames) {
30
+ const resolved = resolve(cwd, configName);
31
+ try {
32
+ const stats = await stat(resolved);
33
+ if (stats.isFile()) {
34
+ return resolved;
35
+ }
36
+ }
37
+ catch (ignored) {
38
+ }
37
39
  }
38
- return undefined;
39
40
  };
40
- export const readRuntimeConfig = async (configPath, cwd, output, name) => {
41
- const runtimeConfigPath = !configPath ? await findRuntimeConfigPath(cwd) : resolve(cwd ?? process.cwd(), configPath);
42
- const runtimeConfig = runtimeConfigPath ? await loadConfig(runtimeConfigPath) : defaultRuntimeConfig;
43
- return await resolveConfig(runtimeConfig, { output, name });
41
+ export const readConfig = async (cwd = process.cwd(), configPath, override) => {
42
+ const cfg = await findConfig(cwd, configPath);
43
+ const config = cfg ? await loadConfig(cfg) : { ...defaultConfig };
44
+ return await resolveConfig(config, override);
44
45
  };
45
46
  export const loadConfig = async (configPath) => {
46
- return (await import(configPath)).default;
47
+ return (await import(normalizeImportPath(configPath))).default;
47
48
  };
48
49
  export const resolveConfig = async (config, override = {}) => {
49
- const { plugins = {}, name, output, historyPath, ...rest } = config;
50
- const pluginInstances = await resolvePlugins(plugins);
51
- const out = resolve(override.output ?? output ?? "./allure-report");
52
- const history = historyPath ? await readHistory(historyPath) : [];
50
+ const name = override.name ?? config.name ?? "Allure Report";
51
+ const historyPath = resolve(override.historyPath ?? config.historyPath ?? "./.allure/history.jsonl");
52
+ const knownIssuesPath = resolve(override.knownIssuesPath ?? config.knownIssuesPath ?? "./allure/known.json");
53
+ const output = resolve(override.output ?? config.output ?? "./allure-report");
54
+ const history = await readHistory(historyPath);
55
+ const known = await readKnownIssues(knownIssuesPath);
56
+ const pluginInstances = await resolvePlugins(config.plugins ?? {});
53
57
  return {
54
- ...rest,
55
- name: override.name ?? name ?? "Allure Report",
56
- reportFiles: new FileSystemReportFiles(out),
58
+ name,
59
+ reportFiles: new FileSystemReportFiles(output),
57
60
  plugins: pluginInstances,
58
- output: out,
61
+ output,
59
62
  history,
60
63
  historyPath,
64
+ knownIssuesPath,
65
+ known,
66
+ qualityGate: config.qualityGate,
61
67
  };
62
68
  };
63
69
  export const resolvePlugin = async (path) => {
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  export type * from "./api.js";
2
2
  export * from "./utils/misc.js";
3
3
  export * from "./utils/crypto.js";
4
+ export * from "./utils/path.js";
4
5
  export * from "./history.js";
5
6
  export * from "./known.js";
6
- export * from "./config.js";
7
+ export { resolveConfig, readConfig } from "./config.js";
7
8
  export * from "./report.js";
8
9
  export * from "./plugin.js";
9
10
  export * from "./qualityGate.js";
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export * from "./utils/misc.js";
2
2
  export * from "./utils/crypto.js";
3
+ export * from "./utils/path.js";
3
4
  export * from "./history.js";
4
5
  export * from "./known.js";
5
- export * from "./config.js";
6
+ export { resolveConfig, readConfig } from "./config.js";
6
7
  export * from "./report.js";
7
8
  export * from "./plugin.js";
8
9
  export * from "./qualityGate.js";
package/dist/report.js CHANGED
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _AllureReport_instances, _AllureReport_reportUuid, _AllureReport_reportName, _AllureReport_store, _AllureReport_readers, _AllureReport_plugins, _AllureReport_reportFiles, _AllureReport_eventEmitter, _AllureReport_events, _AllureReport_qualityGate, _AllureReport_appendHistory, _AllureReport_historyPath, _AllureReport_realTime, _AllureReport_state, _AllureReport_stage, _AllureReport_update, _AllureReport_eachPlugin, _AllureReport_getPluginState;
13
- import { allure1, allure2, attachments, junitXml } from "@allurereport/reader";
13
+ import { allure1, allure2, attachments, cucumberjson, junitXml } from "@allurereport/reader";
14
14
  import { PathResultFile } from "@allurereport/reader-api";
15
15
  import console from "node:console";
16
16
  import { randomUUID } from "node:crypto";
@@ -159,14 +159,14 @@ export class AllureReport {
159
159
  this.validate = async () => {
160
160
  await __classPrivateFieldGet(this, _AllureReport_qualityGate, "f").validate(__classPrivateFieldGet(this, _AllureReport_store, "f"));
161
161
  };
162
- const { name, readers = [allure1, allure2, junitXml, attachments], plugins = [], history, known, reportFiles, qualityGate, realTime, appendHistory, historyPath, } = opts;
162
+ const { name, readers = [allure1, allure2, cucumberjson, junitXml, attachments], plugins = [], history, known, reportFiles, qualityGate, realTime, appendHistory, historyPath, } = opts;
163
163
  __classPrivateFieldSet(this, _AllureReport_reportUuid, randomUUID(), "f");
164
164
  __classPrivateFieldSet(this, _AllureReport_reportName, name, "f");
165
165
  __classPrivateFieldSet(this, _AllureReport_eventEmitter, new EventEmitter(), "f");
166
166
  __classPrivateFieldSet(this, _AllureReport_events, new Events(__classPrivateFieldGet(this, _AllureReport_eventEmitter, "f")), "f");
167
167
  __classPrivateFieldSet(this, _AllureReport_realTime, realTime, "f");
168
168
  __classPrivateFieldSet(this, _AllureReport_appendHistory, appendHistory ?? true, "f");
169
- __classPrivateFieldSet(this, _AllureReport_historyPath, historyPath ?? "./.allure/history.jsonl", "f");
169
+ __classPrivateFieldSet(this, _AllureReport_historyPath, historyPath, "f");
170
170
  __classPrivateFieldSet(this, _AllureReport_store, new DefaultAllureStore(history, known, __classPrivateFieldGet(this, _AllureReport_eventEmitter, "f")), "f");
171
171
  __classPrivateFieldSet(this, _AllureReport_readers, [...readers], "f");
172
172
  __classPrivateFieldSet(this, _AllureReport_plugins, [...plugins], "f");
@@ -1,3 +1,6 @@
1
+ import { createRequire } from "node:module";
2
+ import { normalizeImportPath } from "./path.js";
3
+ const require = createRequire(import.meta.url);
1
4
  export const importWrapper = async (path) => {
2
- return import(path);
5
+ return import(normalizeImportPath(require.resolve(path)));
3
6
  };
@@ -0,0 +1 @@
1
+ export declare const normalizeImportPath: (path: string) => string;
@@ -0,0 +1,4 @@
1
+ import { pathToFileURL } from "node:url";
2
+ export const normalizeImportPath = (path) => {
3
+ return pathToFileURL(path).href;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/core",
3
- "version": "3.0.0-beta.4",
3
+ "version": "3.0.0-beta.5",
4
4
  "description": "Collection of generic Allure utilities used across the entire project",
5
5
  "keywords": [
6
6
  "allure"
@@ -25,17 +25,17 @@
25
25
  "test": "vitest run"
26
26
  },
27
27
  "dependencies": {
28
- "@allurereport/core-api": "3.0.0-beta.4",
29
- "@allurereport/plugin-api": "3.0.0-beta.4",
30
- "@allurereport/plugin-awesome": "3.0.0-beta.4",
31
- "@allurereport/plugin-classic": "3.0.0-beta.4",
32
- "@allurereport/plugin-csv": "3.0.0-beta.4",
33
- "@allurereport/plugin-log": "3.0.0-beta.4",
34
- "@allurereport/plugin-progress": "3.0.0-beta.4",
35
- "@allurereport/plugin-slack": "3.0.0-beta.4",
36
- "@allurereport/plugin-testplan": "3.0.0-beta.4",
37
- "@allurereport/reader": "3.0.0-beta.4",
38
- "@allurereport/reader-api": "3.0.0-beta.4",
28
+ "@allurereport/core-api": "3.0.0-beta.5",
29
+ "@allurereport/plugin-api": "3.0.0-beta.5",
30
+ "@allurereport/plugin-awesome": "3.0.0-beta.5",
31
+ "@allurereport/plugin-classic": "3.0.0-beta.5",
32
+ "@allurereport/plugin-csv": "3.0.0-beta.5",
33
+ "@allurereport/plugin-log": "3.0.0-beta.5",
34
+ "@allurereport/plugin-progress": "3.0.0-beta.5",
35
+ "@allurereport/plugin-slack": "3.0.0-beta.5",
36
+ "@allurereport/plugin-testplan": "3.0.0-beta.5",
37
+ "@allurereport/reader": "3.0.0-beta.5",
38
+ "@allurereport/reader-api": "3.0.0-beta.5",
39
39
  "markdown-it": "^14.1.0"
40
40
  },
41
41
  "devDependencies": {