@allurereport/core 3.8.0 → 3.8.1

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/report.js CHANGED
@@ -44,6 +44,7 @@ const remoteReportParams = (ci) => {
44
44
  const branch = ci?.jobRunBranch;
45
45
  return repo && branch ? { repo, branch } : {};
46
46
  };
47
+ const errorDetails = (err) => (err instanceof Error ? (err.stack ?? err.message) : String(err));
47
48
  export class AllureReport {
48
49
  constructor(opts) {
49
50
  _AllureReport_instances.add(this);
@@ -300,125 +301,152 @@ export class AllureReport {
300
301
  this.restoreState = async (dumps) => {
301
302
  for (const dump of dumps) {
302
303
  if (!existsSync(dump)) {
304
+ console.error(`Failed to restore state from "${dump}", continuing without it`);
305
+ console.error("Dump file does not exist");
303
306
  continue;
304
307
  }
305
- const dumpArchive = new ZipReadStream.async({
306
- file: dump,
307
- });
308
308
  try {
309
- const dumpEntries = await dumpArchive.entries();
310
- const dumpEntriesList = Object.entries(dumpEntries);
311
- const optionalEntryData = async (entryName) => dumpEntries[entryName] ? dumpArchive.entryData(entryName) : undefined;
312
- if (!dumpEntries[AllureStoreDumpFiles.TestResults]) {
313
- const nestedDumpEntries = dumpEntriesList.filter(([entryName, entry]) => !entry.isDirectory &&
314
- !entryName.startsWith("__MACOSX/") &&
315
- !basename(entryName).startsWith("._") &&
316
- entryName.toLowerCase().endsWith(".zip"));
317
- if (nestedDumpEntries.length > 0) {
318
- const nestedDumpsTempDir = await mkdtemp(join(tmpdir(), `${basename(dump, ".zip")}-nested-`));
319
- const nestedDumpPaths = [];
320
- __classPrivateFieldGet(this, _AllureReport_dumpTempDirs, "f").push(nestedDumpsTempDir);
321
- for (const [entryName] of nestedDumpEntries) {
322
- const nestedDumpPath = join(nestedDumpsTempDir, `${nestedDumpPaths.length}-${basename(entryName)}`);
323
- await writeFile(nestedDumpPath, await dumpArchive.entryData(entryName));
324
- nestedDumpPaths.push(nestedDumpPath);
309
+ const dumpArchive = new ZipReadStream.async({
310
+ file: dump,
311
+ });
312
+ let restoreError;
313
+ try {
314
+ const dumpEntries = await dumpArchive.entries();
315
+ const dumpEntriesList = Object.entries(dumpEntries);
316
+ const requiredEntryData = async (entryName) => {
317
+ if (!dumpEntries[entryName]) {
318
+ throw new Error(`Missing required dump entry "${entryName}"`);
319
+ }
320
+ return dumpArchive.entryData(entryName);
321
+ };
322
+ const optionalEntryData = async (entryName) => dumpEntries[entryName] ? dumpArchive.entryData(entryName) : undefined;
323
+ if (!dumpEntries[AllureStoreDumpFiles.TestResults]) {
324
+ const nestedDumpEntries = dumpEntriesList.filter(([entryName, entry]) => !entry.isDirectory &&
325
+ !entryName.startsWith("__MACOSX/") &&
326
+ !basename(entryName).startsWith("._") &&
327
+ entryName.toLowerCase().endsWith(".zip"));
328
+ if (nestedDumpEntries.length > 0) {
329
+ const nestedDumpsTempDir = await mkdtemp(join(tmpdir(), `${basename(dump, ".zip")}-nested-`));
330
+ const nestedDumpPaths = [];
331
+ __classPrivateFieldGet(this, _AllureReport_dumpTempDirs, "f").push(nestedDumpsTempDir);
332
+ for (const [entryName] of nestedDumpEntries) {
333
+ const nestedDumpPath = join(nestedDumpsTempDir, `${nestedDumpPaths.length}-${basename(entryName)}`);
334
+ await writeFile(nestedDumpPath, await dumpArchive.entryData(entryName));
335
+ nestedDumpPaths.push(nestedDumpPath);
336
+ }
337
+ await this.restoreState(nestedDumpPaths);
338
+ continue;
325
339
  }
326
- await this.restoreState(nestedDumpPaths);
327
- continue;
328
340
  }
329
- }
330
- const testResultsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.TestResults);
331
- const testCasesEntry = await dumpArchive.entryData(AllureStoreDumpFiles.TestCases);
332
- const fixturesEntry = await dumpArchive.entryData(AllureStoreDumpFiles.Fixtures);
333
- const attachmentsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.Attachments);
334
- const checkResultsEntry = await optionalEntryData(AllureStoreDumpFiles.CheckResults);
335
- const environmentsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.Environments);
336
- const reportVariablesEntry = await dumpArchive.entryData(AllureStoreDumpFiles.ReportVariables);
337
- const globalAttachmentsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.GlobalAttachments);
338
- const globalErrorsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.GlobalErrors);
339
- const indexAttachmentsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexAttachmentsByTestResults);
340
- const indexTestResultsByHistoryId = await dumpArchive.entryData(AllureStoreDumpFiles.IndexTestResultsByHistoryId);
341
- const indexTestResultsByTestCaseEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexTestResultsByTestCase);
342
- const indexLatestEnvTestResultsByHistoryIdEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexLatestEnvTestResultsByHistoryId);
343
- const indexAttachmentsByFixtureEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexAttachmentsByFixture);
344
- const indexFixturesByTestResultEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexFixturesByTestResult);
345
- const indexKnownByHistoryIdEntry = await dumpArchive.entryData(AllureStoreDumpFiles.IndexKnownByHistoryId);
346
- const qualityGateResultsEntry = await dumpArchive.entryData(AllureStoreDumpFiles.QualityGateResults);
347
- const attachmentsLinks = JSON.parse(attachmentsEntry.toString("utf8"));
348
- const attachmentsEntries = dumpEntriesList.reduce((acc, [entryName, entry]) => {
349
- switch (entryName) {
350
- case AllureStoreDumpFiles.Attachments:
351
- case AllureStoreDumpFiles.CheckResults:
352
- case AllureStoreDumpFiles.TestResults:
353
- case AllureStoreDumpFiles.TestCases:
354
- case AllureStoreDumpFiles.Fixtures:
355
- case AllureStoreDumpFiles.Environments:
356
- case AllureStoreDumpFiles.ReportVariables:
357
- case AllureStoreDumpFiles.GlobalAttachments:
358
- case AllureStoreDumpFiles.GlobalErrors:
359
- case AllureStoreDumpFiles.IndexAttachmentsByTestResults:
360
- case AllureStoreDumpFiles.IndexTestResultsByHistoryId:
361
- case AllureStoreDumpFiles.IndexTestResultsByTestCase:
362
- case AllureStoreDumpFiles.IndexLatestEnvTestResultsByHistoryId:
363
- case AllureStoreDumpFiles.IndexAttachmentsByFixture:
364
- case AllureStoreDumpFiles.IndexFixturesByTestResult:
365
- case AllureStoreDumpFiles.IndexKnownByHistoryId:
366
- case AllureStoreDumpFiles.QualityGateResults:
367
- return acc;
368
- default:
369
- if (entry.isDirectory || !attachmentsLinks[entryName] || attachmentsLinks[entryName].missed) {
341
+ const testResultsEntry = await requiredEntryData(AllureStoreDumpFiles.TestResults);
342
+ const testCasesEntry = await requiredEntryData(AllureStoreDumpFiles.TestCases);
343
+ const fixturesEntry = await requiredEntryData(AllureStoreDumpFiles.Fixtures);
344
+ const attachmentsEntry = await requiredEntryData(AllureStoreDumpFiles.Attachments);
345
+ const checkResultsEntry = await optionalEntryData(AllureStoreDumpFiles.CheckResults);
346
+ const environmentsEntry = await requiredEntryData(AllureStoreDumpFiles.Environments);
347
+ const reportVariablesEntry = await requiredEntryData(AllureStoreDumpFiles.ReportVariables);
348
+ const globalAttachmentsEntry = await requiredEntryData(AllureStoreDumpFiles.GlobalAttachments);
349
+ const globalErrorsEntry = await requiredEntryData(AllureStoreDumpFiles.GlobalErrors);
350
+ const indexAttachmentsEntry = await requiredEntryData(AllureStoreDumpFiles.IndexAttachmentsByTestResults);
351
+ const indexTestResultsByHistoryId = await requiredEntryData(AllureStoreDumpFiles.IndexTestResultsByHistoryId);
352
+ const indexTestResultsByTestCaseEntry = await requiredEntryData(AllureStoreDumpFiles.IndexTestResultsByTestCase);
353
+ const indexLatestEnvTestResultsByHistoryIdEntry = await requiredEntryData(AllureStoreDumpFiles.IndexLatestEnvTestResultsByHistoryId);
354
+ const indexAttachmentsByFixtureEntry = await requiredEntryData(AllureStoreDumpFiles.IndexAttachmentsByFixture);
355
+ const indexFixturesByTestResultEntry = await requiredEntryData(AllureStoreDumpFiles.IndexFixturesByTestResult);
356
+ const indexKnownByHistoryIdEntry = await requiredEntryData(AllureStoreDumpFiles.IndexKnownByHistoryId);
357
+ const qualityGateResultsEntry = await requiredEntryData(AllureStoreDumpFiles.QualityGateResults);
358
+ const attachmentsLinks = JSON.parse(attachmentsEntry.toString("utf8"));
359
+ const attachmentsEntries = dumpEntriesList.reduce((acc, [entryName, entry]) => {
360
+ switch (entryName) {
361
+ case AllureStoreDumpFiles.Attachments:
362
+ case AllureStoreDumpFiles.CheckResults:
363
+ case AllureStoreDumpFiles.TestResults:
364
+ case AllureStoreDumpFiles.TestCases:
365
+ case AllureStoreDumpFiles.Fixtures:
366
+ case AllureStoreDumpFiles.Environments:
367
+ case AllureStoreDumpFiles.ReportVariables:
368
+ case AllureStoreDumpFiles.GlobalAttachments:
369
+ case AllureStoreDumpFiles.GlobalErrors:
370
+ case AllureStoreDumpFiles.IndexAttachmentsByTestResults:
371
+ case AllureStoreDumpFiles.IndexTestResultsByHistoryId:
372
+ case AllureStoreDumpFiles.IndexTestResultsByTestCase:
373
+ case AllureStoreDumpFiles.IndexLatestEnvTestResultsByHistoryId:
374
+ case AllureStoreDumpFiles.IndexAttachmentsByFixture:
375
+ case AllureStoreDumpFiles.IndexFixturesByTestResult:
376
+ case AllureStoreDumpFiles.IndexKnownByHistoryId:
377
+ case AllureStoreDumpFiles.QualityGateResults:
370
378
  return acc;
371
- }
372
- return Object.assign(acc, {
373
- [entryName]: entry,
374
- });
379
+ default:
380
+ if (entry.isDirectory || !attachmentsLinks[entryName] || attachmentsLinks[entryName].missed) {
381
+ return acc;
382
+ }
383
+ return Object.assign(acc, {
384
+ [entryName]: entry,
385
+ });
386
+ }
387
+ }, {});
388
+ const dumpState = {
389
+ testResults: JSON.parse(testResultsEntry.toString("utf8")),
390
+ testCases: JSON.parse(testCasesEntry.toString("utf8")),
391
+ fixtures: JSON.parse(fixturesEntry.toString("utf8")),
392
+ attachments: attachmentsLinks,
393
+ checkResults: checkResultsEntry ? JSON.parse(checkResultsEntry.toString("utf8")) : [],
394
+ environments: JSON.parse(environmentsEntry.toString("utf8")),
395
+ reportVariables: JSON.parse(reportVariablesEntry.toString("utf8")),
396
+ globalAttachmentIds: JSON.parse(globalAttachmentsEntry.toString("utf8")),
397
+ globalErrors: JSON.parse(globalErrorsEntry.toString("utf8")),
398
+ indexAttachmentByTestResult: JSON.parse(indexAttachmentsEntry.toString("utf8")),
399
+ indexTestResultByHistoryId: JSON.parse(indexTestResultsByHistoryId.toString("utf8")),
400
+ indexTestResultByTestCase: JSON.parse(indexTestResultsByTestCaseEntry.toString("utf8")),
401
+ indexLatestEnvTestResultByHistoryId: JSON.parse(indexLatestEnvTestResultsByHistoryIdEntry.toString("utf8")),
402
+ indexAttachmentByFixture: JSON.parse(indexAttachmentsByFixtureEntry.toString("utf8")),
403
+ indexFixturesByTestResult: JSON.parse(indexFixturesByTestResultEntry.toString("utf8")),
404
+ indexKnownByHistoryId: JSON.parse(indexKnownByHistoryIdEntry.toString("utf8")),
405
+ qualityGateResults: JSON.parse(qualityGateResultsEntry.toString("utf8")),
406
+ };
407
+ const dumpTempDir = await mkdtemp(join(tmpdir(), basename(dump, ".zip")));
408
+ const resultsAttachments = {};
409
+ __classPrivateFieldGet(this, _AllureReport_dumpTempDirs, "f").push(dumpTempDir);
410
+ try {
411
+ for (const [attachmentId] of Object.entries(attachmentsEntries)) {
412
+ const attachmentContentEntry = await dumpArchive.entryData(attachmentId);
413
+ const attachmentFilePath = resolveDumpAttachmentPath(dumpTempDir, attachmentId);
414
+ await writeFile(attachmentFilePath, attachmentContentEntry);
415
+ resultsAttachments[attachmentId] = new PathResultFile(attachmentFilePath, attachmentId);
416
+ }
375
417
  }
376
- }, {});
377
- const dumpState = {
378
- testResults: JSON.parse(testResultsEntry.toString("utf8")),
379
- testCases: JSON.parse(testCasesEntry.toString("utf8")),
380
- fixtures: JSON.parse(fixturesEntry.toString("utf8")),
381
- attachments: attachmentsLinks,
382
- checkResults: checkResultsEntry ? JSON.parse(checkResultsEntry.toString("utf8")) : [],
383
- environments: JSON.parse(environmentsEntry.toString("utf8")),
384
- reportVariables: JSON.parse(reportVariablesEntry.toString("utf8")),
385
- globalAttachmentIds: JSON.parse(globalAttachmentsEntry.toString("utf8")),
386
- globalErrors: JSON.parse(globalErrorsEntry.toString("utf8")),
387
- indexAttachmentByTestResult: JSON.parse(indexAttachmentsEntry.toString("utf8")),
388
- indexTestResultByHistoryId: JSON.parse(indexTestResultsByHistoryId.toString("utf8")),
389
- indexTestResultByTestCase: JSON.parse(indexTestResultsByTestCaseEntry.toString("utf8")),
390
- indexLatestEnvTestResultByHistoryId: JSON.parse(indexLatestEnvTestResultsByHistoryIdEntry.toString("utf8")),
391
- indexAttachmentByFixture: JSON.parse(indexAttachmentsByFixtureEntry.toString("utf8")),
392
- indexFixturesByTestResult: JSON.parse(indexFixturesByTestResultEntry.toString("utf8")),
393
- indexKnownByHistoryId: JSON.parse(indexKnownByHistoryIdEntry.toString("utf8")),
394
- qualityGateResults: JSON.parse(qualityGateResultsEntry.toString("utf8")),
395
- };
396
- const dumpTempDir = await mkdtemp(join(tmpdir(), basename(dump, ".zip")));
397
- const resultsAttachments = {};
398
- __classPrivateFieldGet(this, _AllureReport_dumpTempDirs, "f").push(dumpTempDir);
399
- try {
400
- for (const [attachmentId] of Object.entries(attachmentsEntries)) {
401
- const attachmentContentEntry = await dumpArchive.entryData(attachmentId);
402
- const attachmentFilePath = resolveDumpAttachmentPath(dumpTempDir, attachmentId);
403
- await writeFile(attachmentFilePath, attachmentContentEntry);
404
- resultsAttachments[attachmentId] = new PathResultFile(attachmentFilePath, attachmentId);
418
+ catch (err) {
419
+ if (err instanceof UnsafeDumpPathError) {
420
+ console.error(`Cannot restore dump from "${dump}": the archive lists attachment paths that would write outside the extract directory (unsafe zip paths such as "../" or absolute names).`);
421
+ console.error(err.message);
422
+ console.error("Only use dump archives produced by this tool; do not load untrusted or third-party --dump zip files.");
423
+ throw err;
424
+ }
425
+ console.error(`Can't restore attachment contents from "${dump}", continuing without them`);
426
+ console.error(errorDetails(err));
405
427
  }
428
+ await __classPrivateFieldGet(this, _AllureReport_store, "f").restoreState(dumpState, resultsAttachments);
429
+ console.info(`Successfully restored state from "${dump}"`);
406
430
  }
407
431
  catch (err) {
408
- if (err instanceof UnsafeDumpPathError) {
409
- console.error(`Cannot restore dump from "${dump}": the archive lists attachment paths that would write outside the extract directory (unsafe zip paths such as "../" or absolute names).`);
410
- console.error(err.message);
411
- console.error("Only use dump archives produced by this tool; do not load untrusted or third-party --dump zip files.");
412
- throw err;
432
+ restoreError = err;
433
+ throw err;
434
+ }
435
+ finally {
436
+ try {
437
+ await dumpArchive.close();
438
+ }
439
+ catch (err) {
440
+ if (!restoreError) {
441
+ console.error(`Failed to close dump archive "${dump}"`);
442
+ console.error(errorDetails(err));
443
+ }
413
444
  }
414
- console.error(`Can't restore state from "${dump}", continuing without it`);
415
- console.error(err);
416
445
  }
417
- await __classPrivateFieldGet(this, _AllureReport_store, "f").restoreState(dumpState, resultsAttachments);
418
- console.info(`Successfully restored state from "${dump}"`);
419
446
  }
420
- finally {
421
- await dumpArchive.close();
447
+ catch (err) {
448
+ console.error(`Failed to restore state from "${dump}", continuing without it`);
449
+ console.error(errorDetails(err));
422
450
  }
423
451
  }
424
452
  };
@@ -11,7 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _DefaultAllureStore_instances, _DefaultAllureStore_testResults, _DefaultAllureStore_environmentDisplayNames, _DefaultAllureStore_environmentNameToId, _DefaultAllureStore_attachments, _DefaultAllureStore_attachmentContents, _DefaultAllureStore_testCases, _DefaultAllureStore_metadata, _DefaultAllureStore_history, _DefaultAllureStore_known, _DefaultAllureStore_fixtures, _DefaultAllureStore_defaultLabels, _DefaultAllureStore_environment, _DefaultAllureStore_environmentsConfig, _DefaultAllureStore_reportVariables, _DefaultAllureStore_realtimeDispatcher, _DefaultAllureStore_realtimeSubscriber, _DefaultAllureStore_allowedEnvironmentIds, _DefaultAllureStore_globalAttachmentIds, _DefaultAllureStore_globalAttachmentIdsByEnv, _DefaultAllureStore_globalErrors, _DefaultAllureStore_globalErrorsByEnv, _DefaultAllureStore_globalExitCode, _DefaultAllureStore_checkResults, _DefaultAllureStore_qualityGateResults, _DefaultAllureStore_historyPoints, _DefaultAllureStore_environments, _DefaultAllureStore_mergeEnvironmentIdentity, _DefaultAllureStore_environmentIdForLookup, _DefaultAllureStore_addEnvironments, _DefaultAllureStore_environmentIdByName, _DefaultAllureStore_setTestResultEnvironmentId, _DefaultAllureStore_assertAllowedEnvironmentId, _DefaultAllureStore_assertAllowedStoredEnvironment, _DefaultAllureStore_environmentIdByTestResult, _DefaultAllureStore_resolveGlobalEnvironmentIdentity, _DefaultAllureStore_globalAttachmentId, _DefaultAllureStore_indexGlobalError, _DefaultAllureStore_addGlobalError, _DefaultAllureStore_indexGlobalAttachment, _DefaultAllureStore_addGlobalAttachment, _DefaultAllureStore_restoreAttachmentContent, _DefaultAllureStore_relinkRestoredAttachmentSteps;
13
13
  import { extname } from "node:path";
14
- import { DEFAULT_ENVIRONMENT, DEFAULT_ENVIRONMENT_IDENTITY, compareBy, createDictionary, getHistoryIdCandidates, getWorstStatus, nullsLast, ordinal, reverse, selectHistoryTestResults, validateEnvironmentId, validateEnvironmentName, } from "@allurereport/core-api";
14
+ import { DEFAULT_ENVIRONMENT, DEFAULT_ENVIRONMENT_IDENTITY, compareBy, createDictionary, getHistoryIdCandidates, getWorstStatus, nullsLast, normalizeHistoryDataPoint, ordinal, reverse, selectHistoryTestResults, validateEnvironmentId, validateEnvironmentName, } from "@allurereport/core-api";
15
15
  import { md5, } from "@allurereport/plugin-api";
16
16
  import { environmentIdentityById, normalizeEnvironmentDescriptorMap, resolveEnvironmentIdentity, resolveStoredEnvironmentIdentity, validateAllowedEnvironmentId, } from "../utils/environment.js";
17
17
  import { isFlaky } from "../utils/flaky.js";
@@ -196,7 +196,9 @@ export class DefaultAllureStore {
196
196
  if (!__classPrivateFieldGet(this, _DefaultAllureStore_history, "f")) {
197
197
  return [];
198
198
  }
199
- __classPrivateFieldSet(this, _DefaultAllureStore_historyPoints, (await __classPrivateFieldGet(this, _DefaultAllureStore_history, "f").readHistory()) ?? [], "f");
199
+ __classPrivateFieldSet(this, _DefaultAllureStore_historyPoints, ((await __classPrivateFieldGet(this, _DefaultAllureStore_history, "f").readHistory()) ?? [])
200
+ .filter((historyPoint) => typeof historyPoint === "object" && historyPoint !== null)
201
+ .map(normalizeHistoryDataPoint), "f");
200
202
  __classPrivateFieldGet(this, _DefaultAllureStore_historyPoints, "f").sort(compareBy("timestamp", reverse(ordinal())));
201
203
  return __classPrivateFieldGet(this, _DefaultAllureStore_historyPoints, "f");
202
204
  }
@@ -488,7 +490,7 @@ export class DefaultAllureStore {
488
490
  }
489
491
  return __classPrivateFieldGet(this, _DefaultAllureStore_historyPoints, "f").reduce((result, dp) => {
490
492
  const filteredTestResults = [];
491
- for (const tr of Object.values(dp.testResults)) {
493
+ for (const tr of Object.values(dp.testResults ?? {})) {
492
494
  const storedEnvironmentKey = typeof tr.environment === "string" ? tr.environment : undefined;
493
495
  const trEnvId = (storedEnvironmentKey ? __classPrivateFieldGet(this, _DefaultAllureStore_instances, "m", _DefaultAllureStore_environmentIdByName).call(this, storedEnvironmentKey) : undefined) ??
494
496
  resolveStoredEnvironmentIdentity({
@@ -526,7 +528,7 @@ export class DefaultAllureStore {
526
528
  if (allHistoryDps.length === 0) {
527
529
  return Array.from(__classPrivateFieldGet(this, _DefaultAllureStore_testResults, "f").values());
528
530
  }
529
- const historicalIds = new Set(allHistoryDps.flatMap((dp) => Object.keys(dp.testResults)));
531
+ const historicalIds = new Set(allHistoryDps.flatMap((dp) => Object.keys(dp.testResults ?? {})));
530
532
  const newTrs = [];
531
533
  for (const [, tr] of __classPrivateFieldGet(this, _DefaultAllureStore_testResults, "f")) {
532
534
  if (tr.hidden) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/core",
3
- "version": "3.8.0",
3
+ "version": "3.8.1",
4
4
  "description": "Collection of generic Allure utilities used across the entire project",
5
5
  "keywords": [
6
6
  "allure"
@@ -25,25 +25,25 @@
25
25
  "lint:fix": "oxlint --import-plugin --fix src test features stories"
26
26
  },
27
27
  "dependencies": {
28
- "@allurereport/ci": "3.8.0",
29
- "@allurereport/core-api": "3.8.0",
30
- "@allurereport/plugin-agent": "3.8.0",
31
- "@allurereport/plugin-allure2": "3.8.0",
32
- "@allurereport/plugin-api": "3.8.0",
33
- "@allurereport/plugin-awesome": "3.8.0",
34
- "@allurereport/plugin-classic": "3.8.0",
35
- "@allurereport/plugin-csv": "3.8.0",
36
- "@allurereport/plugin-dashboard": "3.8.0",
37
- "@allurereport/plugin-jira": "3.8.0",
38
- "@allurereport/plugin-log": "3.8.0",
39
- "@allurereport/plugin-progress": "3.8.0",
40
- "@allurereport/plugin-slack": "3.8.0",
41
- "@allurereport/plugin-testops": "3.8.0",
42
- "@allurereport/plugin-testplan": "3.8.0",
43
- "@allurereport/reader": "3.8.0",
44
- "@allurereport/reader-api": "3.8.0",
45
- "@allurereport/service": "3.8.0",
46
- "@allurereport/summary": "3.8.0",
28
+ "@allurereport/ci": "3.8.1",
29
+ "@allurereport/core-api": "3.8.1",
30
+ "@allurereport/plugin-agent": "3.8.1",
31
+ "@allurereport/plugin-allure2": "3.8.1",
32
+ "@allurereport/plugin-api": "3.8.1",
33
+ "@allurereport/plugin-awesome": "3.8.1",
34
+ "@allurereport/plugin-classic": "3.8.1",
35
+ "@allurereport/plugin-csv": "3.8.1",
36
+ "@allurereport/plugin-dashboard": "3.8.1",
37
+ "@allurereport/plugin-jira": "3.8.1",
38
+ "@allurereport/plugin-log": "3.8.1",
39
+ "@allurereport/plugin-progress": "3.8.1",
40
+ "@allurereport/plugin-slack": "3.8.1",
41
+ "@allurereport/plugin-testops": "3.8.1",
42
+ "@allurereport/plugin-testplan": "3.8.1",
43
+ "@allurereport/reader": "3.8.1",
44
+ "@allurereport/reader-api": "3.8.1",
45
+ "@allurereport/service": "3.8.1",
46
+ "@allurereport/summary": "3.8.1",
47
47
  "glob": "^13.0.6",
48
48
  "handlebars": "^4.7.9",
49
49
  "node-stream-zip": "^1.15.0",