🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@cucumber/html-formatter

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cucumber/html-formatter - npm Package Compare versions

Comparing version
23.1.0
to
24.0.0
+1
src/scss.d.ts
declare module '*.scss'
+1
-1
{
"require": ["ts-node/register", "source-map-support/register"],
"node-option": ["loader=ts-node/esm", "require=source-map-support/register"],
"spec": "src/**/*.spec.ts",

@@ -4,0 +4,0 @@ "extension": ["ts", "tsx"],

@@ -26,2 +26,1 @@ import { Transform, type TransformCallback } from 'node:stream';

}
//# sourceMappingURL=CucumberHtmlStream.d.ts.map

@@ -1,11 +0,12 @@

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CucumberHtmlStream = void 0;
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const node_stream_1 = require("node:stream");
class CucumberHtmlStream extends node_stream_1.Transform {
import fs from 'node:fs';
import path from 'node:path';
import { Transform } from 'node:stream';
export class CucumberHtmlStream extends Transform {
cssPath;
jsPath;
iconPath;
template = null;
preMessageWritten = false;
postMessageWritten = false;
firstMessageWritten = false;
/**

@@ -16,3 +17,3 @@ * @param cssPath

*/
constructor(cssPath = node_path_1.default.join(__dirname, '..', 'main.css'), jsPath = node_path_1.default.join(__dirname, '..', 'main.js'), iconPath = node_path_1.default.join(__dirname, 'icon.url')) {
constructor(cssPath = path.join(import.meta.dirname, '..', 'main.css'), jsPath = path.join(import.meta.dirname, '..', 'main.js'), iconPath = path.join(import.meta.dirname, 'icon.url')) {
super({ objectMode: true });

@@ -22,6 +23,2 @@ this.cssPath = cssPath;

this.iconPath = iconPath;
this.template = null;
this.preMessageWritten = false;
this.postMessageWritten = false;
this.firstMessageWritten = false;
}

@@ -51,23 +48,30 @@ _transform(envelope, _encoding, callback) {

this.writeTemplateBetween(null, '{{title}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.push('Cucumber');
this.writeTemplateBetween('{{title}}', '{{icon}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeFile(this.iconPath, (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{icon}}', '{{css}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeFile(this.cssPath, (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{css}}', '{{custom_css}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{custom_css}}', '{{messages}}', (err) => {
if (err)
if (err) {
return callback(err);
}
callback();

@@ -84,13 +88,17 @@ });

this.writePreMessageUnlessAlreadyWritten((err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{messages}}', '{{script}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeFile(this.jsPath, (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{script}}', '{{custom_script}}', (err) => {
if (err)
if (err) {
return callback(err);
}
this.writeTemplateBetween('{{custom_script}}', null, callback);

@@ -103,3 +111,3 @@ });

writeFile(path, callback) {
const cssStream = node_fs_1.default.createReadStream(path, { encoding: 'utf-8' });
const cssStream = fs.createReadStream(path, { encoding: 'utf-8' });
cssStream.on('data', (chunk) => this.push(chunk));

@@ -111,6 +119,8 @@ cssStream.on('error', (err) => callback(err));

this.readTemplate((err, template) => {
if (err)
if (err) {
return callback(err);
if (!template)
}
if (!template) {
return callback(new Error('template is required if error is missing'));
}
const beginIndex = begin == null ? 0 : template.indexOf(begin) + begin.length;

@@ -126,5 +136,6 @@ const endIndex = end == null ? template.length : template.indexOf(end);

}
node_fs_1.default.readFile(`${__dirname}/index.mustache`, { encoding: 'utf-8' }, (err, template) => {
if (err)
fs.readFile(`${import.meta.dirname}/index.mustache`, { encoding: 'utf-8' }, (err, template) => {
if (err) {
return callback(err);
}
this.template = template;

@@ -146,3 +157,2 @@ return callback(null, template);

}
exports.CucumberHtmlStream = CucumberHtmlStream;
//# sourceMappingURL=CucumberHtmlStream.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VjdW1iZXJIdG1sU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0N1Y3VtYmVySHRtbFN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sRUFBaUIsU0FBUyxFQUEwQixNQUFNLGFBQWEsQ0FBQTtBQUc5RSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUztJQVk1QjtJQUNBO0lBQ0E7SUFiWCxRQUFRLEdBQWtCLElBQUksQ0FBQTtJQUM5QixpQkFBaUIsR0FBRyxLQUFLLENBQUE7SUFDekIsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0lBQzFCLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtJQUVuQzs7OztPQUlHO0lBQ0gsWUFDbUIsVUFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQ2xFLFNBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUNoRSxXQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztRQUU5RSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUpWLFlBQU8sR0FBUCxPQUFPLENBQTJEO1FBQ2xFLFdBQU0sR0FBTixNQUFNLENBQTBEO1FBQ2hFLGFBQVEsR0FBUixRQUFRLENBQXFEO0lBR2hGLENBQUM7SUFFTSxVQUFVLENBQUMsUUFBa0IsRUFBRSxTQUFpQixFQUFFLFFBQTJCO1FBQ2xGLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFD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QUFDLElBQUksQ0FBQyxPQUFPLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzVGLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDdEIsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1lBQ3hCLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNqQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBa0I7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUE7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxzQkFBc0I7UUFDdEIscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDNUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXG5pbXBvcnQgeyB0eXBlIFJlYWRhYmxlLCBUcmFuc2Zvcm0sIHR5cGUgVHJhbnNmb3JtQ2FsbGJhY2sgfSBmcm9tICdub2RlOnN0cmVhbSdcbmltcG9ydCB0eXBlIHsgRW52ZWxvcGUgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5cbmV4cG9ydCBjbGFzcyBDdWN1bWJlckh0bWxTdHJlYW0gZXh0ZW5kcyBUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHRlbXBsYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICBwcml2YXRlIHByZU1lc3NhZ2VXcml0dGVuID0gZmFsc2VcbiAgcHJpdmF0ZSBwb3N0TWVzc2FnZVdyaXR0ZW4gPSBmYWxzZVxuICBwcml2YXRlIGZpcnN0TWVzc2FnZVdyaXR0ZW4gPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gY3NzUGF0aFxuICAgKiBAcGFyYW0ganNQYXRoXG4gICAqIEBwYXJhbSBpY29uUGF0aFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjc3NQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgJy4uJywgJ21haW4uY3NzJyksXG4gICAgcHJpdmF0ZSByZWFkb25seSBqc1BhdGg6IHN0cmluZyA9IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCAnLi4nLCAnbWFpbi5qcycpLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblBhdGg6IHN0cmluZyA9IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCAnaWNvbi51cmwnKVxuICApIHtcbiAgICBzdXBlcih7IG9iamVjdE1vZGU6IHRydWUgfSlcbiAgfVxuXG4gIHB1YmxpYyBfdHJhbnNmb3JtKGVudmVsb3BlOiBFbnZlbG9wZSwgX2VuY29kaW5nOiBzdHJpbmcsIGNhbGxiYWNrOiBUcmFuc2Zvcm1DYWxsYmFjayk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvc3RNZXNzYWdlV3JpdHRlbikge1xuICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCdTdHJlYW0gY2xvc2VkJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLndyaXRlUHJlTWVzc2FnZVVubGVzc0FscmVhZHlXcml0dGVuKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMud3JpdGVNZXNzYWdlKGVudmVsb3BlKVxuICAgICAgY2FsbGJhY2soKVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgX2ZsdXNoKGNhbGxiYWNrOiBUcmFuc2Zvcm1DYWxsYmFjayk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVQb3N0TWVzc2FnZShjYWxsYmFjaylcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVQcmVNZXNzYWdlVW5sZXNzQWxyZWFkeVdyaXR0ZW4oY2FsbGJhY2s6IFRyYW5zZm9ybUNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMucHJlTWVzc2FnZVdyaXR0ZW4pIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpXG4gICAgfVxuICAgIHRoaXMucHJlTWVzc2FnZVdyaXR0ZW4gPSB0cnVlXG4gICAgdGhpcy53cml0ZVRlbXBsYXRlQmV0d2VlbihudWxsLCAne3t0aXRsZX19JywgKGVycikgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgfVxuICAgICAgdGhpcy5wdXNoKCdDdWN1bWJlcicpXG4gICAgICB0aGlzLndyaXRlVGVtcGxhdGVCZXR3ZWVuKCd7e3RpdGxlfX0nLCAne3tpY29ufX0nLCAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JpdGVGaWxlKHRoaXMuaWNvblBhdGgsIChlcnIpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLndyaXRlVGVtcGxhdGVCZXR3ZWVuKCd7e2ljb259fScsICd7e2Nzc319JywgKGVycikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy53cml0ZUZpbGUodGhpcy5jc3NQYXRoLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMud3JpdGVUZW1wbGF0ZUJldHdlZW4oJ3t7Y3NzfX0nLCAne3tjdXN0b21fY3NzfX0nLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVRlbXBsYXRlQmV0d2Vlbigne3tjdXN0b21fY3NzfX0nLCAne3ttZXNzYWdlc319JywgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHdyaXRlUG9zdE1lc3NhZ2UoY2FsbGJhY2s6IFRyYW5zZm9ybUNhbGxiYWNrKSB7XG4gICAgdGhpcy53cml0ZVByZU1lc3NhZ2VVbmxlc3NBbHJlYWR5V3JpdHRlbigoZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpXG4gICAgICB9XG4gICAgICB0aGlzLndyaXRlVGVtcGxhdGVCZXR3ZWVuKCd7e21lc3NhZ2VzfX0nLCAne3tzY3JpcHR9fScsIChlcnIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cml0ZUZpbGUodGhpcy5qc1BhdGgsIChlcnIpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLndyaXRlVGVtcGxhdGVCZXR3ZWVuKCd7e3NjcmlwdH19JywgJ3t7Y3VzdG9tX3NjcmlwdH19JywgKGVycikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy53cml0ZVRlbXBsYXRlQmV0d2Vlbigne3tjdXN0b21fc2NyaXB0fX0nLCBudWxsLCBjYWxsYmFjaylcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUZpbGUocGF0aDogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgY29uc3QgY3NzU3RyZWFtOiBSZWFkYWJsZSA9IGZzLmNyZWF0ZVJlYWRTdHJlYW0ocGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KVxuICAgIGNzc1N0cmVhbS5vbignZGF0YScsIChjaHVuaykgPT4gdGhpcy5wdXNoKGNodW5rKSlcbiAgICBjc3NTdHJlYW0ub24oJ2Vycm9yJywgKGVycikgPT4gY2FsbGJhY2soZXJyKSlcbiAgICBjc3NTdHJlYW0ub24oJ2VuZCcsIGNhbGxiYWNrKVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZVRlbXBsYXRlQmV0d2VlbihcbiAgICBiZWdpbjogc3RyaW5nIHwgbnVsbCxcbiAgICBlbmQ6IHN0cmluZyB8IG51bGwsXG4gICAgY2FsbGJhY2s6IChlcnI/OiBFcnJvciB8IG51bGwpID0+IHZvaWRcbiAgKSB7XG4gICAgdGhpcy5yZWFkVGVtcGxhdGUoKGVyciwgdGVtcGxhdGUpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycilcbiAgICAgIH1cbiAgICAgIGlmICghdGVtcGxhdGUpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcigndGVtcGxhdGUgaXMgcmVxdWlyZWQgaWYgZXJyb3IgaXMgbWlzc2luZycpKVxuICAgICAgfVxuICAgICAgY29uc3QgYmVnaW5JbmRleCA9IGJlZ2luID09IG51bGwgPyAwIDogdGVtcGxhdGUuaW5kZXhPZihiZWdpbikgKyBiZWdpbi5sZW5ndGhcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gZW5kID09IG51bGwgPyB0ZW1wbGF0ZS5sZW5ndGggOiB0ZW1wbGF0ZS5pbmRleE9mKGVuZClcbiAgICAgIHRoaXMucHVzaCh0ZW1wbGF0ZS5zdWJzdHJpbmcoYmVnaW5JbmRleCwgZW5kSW5kZXgpKVxuICAgICAgY2FsbGJhY2soKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHJlYWRUZW1wbGF0ZShjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsLCBkYXRhPzogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB0aGlzLnRlbXBsYXRlKVxuICAgIH1cbiAgICBmcy5yZWFkRmlsZShgJHtpbXBvcnQubWV0YS5kaXJuYW1lfS9pbmRleC5tdXN0YWNoZWAsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSwgKGVyciwgdGVtcGxhdGUpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycilcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcGxhdGUgPSB0ZW1wbGF0ZVxuICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRlbXBsYXRlKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHdyaXRlTWVzc2FnZShlbnZlbG9wZTogRW52ZWxvcGUpIHtcbiAgICBpZiAoIXRoaXMuZmlyc3RNZXNzYWdlV3JpdHRlbikge1xuICAgICAgdGhpcy5maXJzdE1lc3NhZ2VXcml0dGVuID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2goJywnKVxuICAgIH1cbiAgICAvLyBSZXBsYWNlIDwgd2l0aCBcXHgzQ1xuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI3Jlc3RyaWN0aW9ucy1mb3ItY29udGVudHMtb2Ytc2NyaXB0LWVsZW1lbnRzXG4gICAgdGhpcy5wdXNoKEpTT04uc3RyaW5naWZ5KGVudmVsb3BlKS5yZXBsYWNlKC88L2csICdcXFxceDNDJykpXG4gIH1cbn1cbiJdfQ==

@@ -1,3 +0,3 @@

import { CucumberHtmlStream } from './CucumberHtmlStream';
export * from './CucumberHtmlStream';
import { CucumberHtmlStream } from './CucumberHtmlStream.js';
export * from './CucumberHtmlStream.js';
/**

@@ -7,2 +7,1 @@ * @deprecated use the named export `CucumberHtmlStream` instead

export default CucumberHtmlStream;
//# sourceMappingURL=index.d.ts.map

@@ -1,23 +0,7 @@

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
const CucumberHtmlStream_1 = require("./CucumberHtmlStream");
__exportStar(require("./CucumberHtmlStream"), exports);
import { CucumberHtmlStream } from './CucumberHtmlStream.js';
export * from './CucumberHtmlStream.js';
/**
* @deprecated use the named export `CucumberHtmlStream` instead
*/
exports.default = CucumberHtmlStream_1.CucumberHtmlStream;
//# sourceMappingURL=index.js.map
export default CucumberHtmlStream;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFNUQsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2Qzs7R0FFRztBQUNILGVBQWUsa0JBQWtCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdWN1bWJlckh0bWxTdHJlYW0gfSBmcm9tICcuL0N1Y3VtYmVySHRtbFN0cmVhbS5qcydcblxuZXhwb3J0ICogZnJvbSAnLi9DdWN1bWJlckh0bWxTdHJlYW0uanMnXG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHRoZSBuYW1lZCBleHBvcnQgYEN1Y3VtYmVySHRtbFN0cmVhbWAgaW5zdGVhZFxuICovXG5leHBvcnQgZGVmYXVsdCBDdWN1bWJlckh0bWxTdHJlYW1cbiJdfQ==

@@ -8,2 +8,1 @@ import './styles.scss';

}
//# sourceMappingURL=main.d.ts.map

@@ -1,9 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
require("./styles.scss");
const react_components_1 = require("@cucumber/react-components");
const client_1 = require("react-dom/client");
const root = (0, client_1.createRoot)(document.getElementById('content'));
root.render((0, jsx_runtime_1.jsx)(react_components_1.EnvelopesProvider, { envelopes: window.CUCUMBER_MESSAGES, children: (0, jsx_runtime_1.jsx)(react_components_1.UrlSearchProvider, { children: (0, jsx_runtime_1.jsx)("div", { id: "report", className: "html-formatter", children: (0, jsx_runtime_1.jsx)(react_components_1.Report, {}) }) }) }));
//# sourceMappingURL=main.js.map
import { jsx as _jsx } from "react/jsx-runtime";
import './styles.scss';
import { EnvelopesProvider, Report, UrlSearchProvider } from '@cucumber/react-components';
import { createRoot } from 'react-dom/client';
const root = createRoot(document.getElementById('content'));
root.render(_jsx(EnvelopesProvider, { envelopes: window.CUCUMBER_MESSAGES, children: _jsx(UrlSearchProvider, { children: _jsx("div", { id: "report", className: "html-formatter", children: _jsx(Report, {}) }) }) }));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWluLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLENBQUE7QUFHdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVE3QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQWdCLENBQUMsQ0FBQTtBQUUxRSxJQUFJLENBQUMsTUFBTSxDQUNULEtBQUMsaUJBQWlCLElBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsWUFDcEQsS0FBQyxpQkFBaUIsY0FDaEIsY0FBSyxFQUFFLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxnQkFBZ0IsWUFDekMsS0FBQyxNQUFNLEtBQUcsR0FDTixHQUNZLEdBQ0YsQ0FDckIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9zdHlsZXMuc2NzcydcblxuaW1wb3J0IHR5cGUgeyBFbnZlbG9wZSB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IEVudmVsb3Blc1Byb3ZpZGVyLCBSZXBvcnQsIFVybFNlYXJjaFByb3ZpZGVyIH0gZnJvbSAnQGN1Y3VtYmVyL3JlYWN0LWNvbXBvbmVudHMnXG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCdcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBDVUNVTUJFUl9NRVNTQUdFUzogRW52ZWxvcGVbXVxuICB9XG59XG5cbmNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykgYXMgSFRNTEVsZW1lbnQpXG5cbnJvb3QucmVuZGVyKFxuICA8RW52ZWxvcGVzUHJvdmlkZXIgZW52ZWxvcGVzPXt3aW5kb3cuQ1VDVU1CRVJfTUVTU0FHRVN9PlxuICAgIDxVcmxTZWFyY2hQcm92aWRlcj5cbiAgICAgIDxkaXYgaWQ9XCJyZXBvcnRcIiBjbGFzc05hbWU9XCJodG1sLWZvcm1hdHRlclwiPlxuICAgICAgICA8UmVwb3J0IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L1VybFNlYXJjaFByb3ZpZGVyPlxuICA8L0VudmVsb3Blc1Byb3ZpZGVyPlxuKVxuIl19
services:
playwright:
image: mcr.microsoft.com/playwright:v1.59.1-jammy
image: mcr.microsoft.com/playwright:v1.60.0-jammy
working_dir: /work

@@ -5,0 +5,0 @@ volumes:

{
"name": "@cucumber/html-formatter",
"version": "23.1.0",
"version": "24.0.0",
"description": "HTML formatter for Cucumber",
"type": "module",
"main": "dist/src/index.js",

@@ -18,2 +19,3 @@ "types": "dist/src/index.d.ts",

"build": "npm run clean && npm run build:tsc && npm run prepare && npm run build:webpack",
"postbuild": "node -e \"require('.')\"",
"prepare": "shx mkdir -p dist/src && shx cp src/*.scss dist/src && shx cp src/index.mustache dist/src && shx cp src/icon.url dist/src",

@@ -31,18 +33,19 @@ "test": "mocha",

"devDependencies": {
"@babel/core": "7.29.0",
"@babel/core": "7.29.7",
"@biomejs/biome": "^2.4.11",
"@cucumber/biome-config": "github:cucumber/biome-config#v0.1.0",
"@cucumber/biome-config": "github:cucumber/biome-config#v0.2.1",
"@cucumber/compatibility-kit": "^29.1.4",
"@cucumber/gherkin": "39.0.0",
"@cucumber/gherkin-streams": "^6.0.0",
"@cucumber/gherkin-utils": "^11.0.0",
"@cucumber/message-streams": "4.1.1",
"@cucumber/messages": "32.3.0",
"@cucumber/query": "15.0.1",
"@cucumber/gherkin": "40.0.0",
"@cucumber/gherkin-streams": "^7.0.0",
"@cucumber/gherkin-utils": "^12.0.0",
"@cucumber/message-streams": "5.0.0",
"@cucumber/messages": "33.0.2",
"@cucumber/query": "16.0.0",
"@cucumber/react-components": "24.3.0",
"@playwright/test": "1.59.1",
"@playwright/test": "1.60.0",
"@tsconfig/recommended": "^1.0.13",
"@types/glob": "^9.0.0",
"@types/mocha": "10.0.10",
"@types/node": "22.19.17",
"@types/react": "19.2.14",
"@types/node": "22.19.21",
"@types/react": "19.2.17",
"@types/react-dom": "19.2.3",

@@ -53,15 +56,15 @@ "babel-loader": "10.1.1",

"mini-css-extract-plugin": "2.10.2",
"mocha": "11.7.5",
"react": "19.2.5",
"react-dom": "19.2.5",
"sass": "1.99.0",
"sass-loader": "16.0.7",
"mocha": "11.7.6",
"react": "19.2.7",
"react-dom": "19.2.7",
"sass": "1.100.0",
"sass-loader": "17.0.0",
"serve": "^14.2.4",
"shx": "^0.4.0",
"source-map-support": "0.5.21",
"ts-loader": "9.5.7",
"ts-loader": "9.6.0",
"ts-node": "10.9.2",
"typescript": "5.9.3",
"webpack": "5.106.1",
"webpack-cli": "7.0.2"
"typescript": "6.0.3",
"webpack": "5.107.2",
"webpack-cli": "7.0.3"
},

@@ -68,0 +71,0 @@ "bugs": {

@@ -5,3 +5,3 @@ import assert from 'node:assert'

import { CucumberHtmlStream } from './CucumberHtmlStream'
import { CucumberHtmlStream } from './CucumberHtmlStream.js'

@@ -19,4 +19,4 @@ async function renderAsHtml(...envelopes: Envelope[]): Promise<string> {

const cucumberHtmlStream = new CucumberHtmlStream(
`${__dirname}/dummy.css`,
`${__dirname}/dummy.js`
`${import.meta.dirname}/dummy.css`,
`${import.meta.dirname}/dummy.js`
)

@@ -23,0 +23,0 @@ cucumberHtmlStream.on('error', reject)

@@ -18,5 +18,5 @@ import fs from 'node:fs'

constructor(
private readonly cssPath: string = path.join(__dirname, '..', 'main.css'),
private readonly jsPath: string = path.join(__dirname, '..', 'main.js'),
private readonly iconPath: string = path.join(__dirname, 'icon.url')
private readonly cssPath: string = path.join(import.meta.dirname, '..', 'main.css'),
private readonly jsPath: string = path.join(import.meta.dirname, '..', 'main.js'),
private readonly iconPath: string = path.join(import.meta.dirname, 'icon.url')
) {

@@ -52,16 +52,30 @@ super({ objectMode: true })

this.writeTemplateBetween(null, '{{title}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.push('Cucumber')
this.writeTemplateBetween('{{title}}', '{{icon}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeFile(this.iconPath, (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{icon}}', '{{css}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeFile(this.cssPath, (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{css}}', '{{custom_css}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{custom_css}}', '{{messages}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
callback()

@@ -79,9 +93,17 @@ })

this.writePreMessageUnlessAlreadyWritten((err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{messages}}', '{{script}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeFile(this.jsPath, (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{script}}', '{{custom_script}}', (err) => {
if (err) return callback(err)
if (err) {
return callback(err)
}
this.writeTemplateBetween('{{custom_script}}', null, callback)

@@ -107,4 +129,8 @@ })

this.readTemplate((err, template) => {
if (err) return callback(err)
if (!template) return callback(new Error('template is required if error is missing'))
if (err) {
return callback(err)
}
if (!template) {
return callback(new Error('template is required if error is missing'))
}
const beginIndex = begin == null ? 0 : template.indexOf(begin) + begin.length

@@ -121,4 +147,6 @@ const endIndex = end == null ? template.length : template.indexOf(end)

}
fs.readFile(`${__dirname}/index.mustache`, { encoding: 'utf-8' }, (err, template) => {
if (err) return callback(err)
fs.readFile(`${import.meta.dirname}/index.mustache`, { encoding: 'utf-8' }, (err, template) => {
if (err) {
return callback(err)
}
this.template = template

@@ -125,0 +153,0 @@ return callback(null, template)

@@ -1,4 +0,4 @@

import { CucumberHtmlStream } from './CucumberHtmlStream'
import { CucumberHtmlStream } from './CucumberHtmlStream.js'
export * from './CucumberHtmlStream'
export * from './CucumberHtmlStream.js'

@@ -5,0 +5,0 @@ /**

@@ -9,3 +9,3 @@ import fs from 'node:fs'

import { CucumberHtmlStream } from '../src'
import { CucumberHtmlStream } from '../src/index.js'

@@ -15,3 +15,3 @@ const fixtures = sync(`./node_modules/@cucumber/compatibility-kit/features/**/*.ndjson`)

test.beforeAll(async () => {
const outputDir = path.join(__dirname, './__output__')
const outputDir = path.join(import.meta.dirname, './__output__')

@@ -26,5 +26,5 @@ for (const fixture of fixtures) {

new CucumberHtmlStream(
path.join(__dirname, '../dist/main.css'),
path.join(__dirname, '../dist/main.js'),
path.join(__dirname, '../dist/src/icon.url')
path.join(import.meta.dirname, '../dist/main.css'),
path.join(import.meta.dirname, '../dist/main.js'),
path.join(import.meta.dirname, '../dist/src/icon.url')
),

@@ -31,0 +31,0 @@ fs.createWriteStream(outputFile)

{
"extends": "./tsconfig.json",
"include": ["src"],
"exclude": ["src/**/*.spec.*"],
"compilerOptions": {
"rootDir": ".",
"outDir": "dist",
"composite": true,
"declarationMap": true,
"noEmit": false
},
"include": ["src", "test", "package.json"]
"outDir": "dist"
}
}
{
"extends": "@tsconfig/recommended/tsconfig.json",
"include": ["src", "test"],
"compilerOptions": {
"baseUrl": ".",
"lib": ["es2024", "dom"],
"target": "es2024",
"module": "nodenext",
"moduleResolution": "nodenext",
"jsx": "react-jsx",
"types": ["node", "mocha"],
"declaration": true,
"sourceMap": true,
"allowJs": false,
"resolveJsonModule": true,
"esModuleInterop": true,
"noImplicitAny": true,
"downlevelIteration": true,
"skipLibCheck": true,
"strictNullChecks": true,
"experimentalDecorators": true,
"module": "CommonJS",
"lib": ["ES6", "dom"],
"target": "ES6",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"noEmit": true,
"jsx": "react-jsx"
"inlineSourceMap": true,
"inlineSources": true
}
}

@@ -1,4 +0,4 @@

const MiniCssExtractPlugin = require('mini-css-extract-plugin')
import MiniCssExtractPlugin from 'mini-css-extract-plugin'
module.exports = {
export default {
entry: './dist/src/main.js',

@@ -5,0 +5,0 @@ module: {

{
"name": "@cucumber/html-formatter",
"version": "23.1.0",
"description": "HTML formatter for Cucumber",
"main": "dist/src/index.js",
"types": "dist/src/index.d.ts",
"repository": {
"type": "git",
"url": "git+https://github.com/cucumber/html-formatter.git"
},
"author": "Aslak Hellesøy",
"license": "MIT",
"scripts": {
"clean": "shx rm -rf dist",
"build:tsc": "tsc --build tsconfig.build.json",
"build:webpack": "webpack",
"build": "npm run clean && npm run build:tsc && npm run prepare && npm run build:webpack",
"prepare": "shx mkdir -p dist/src && shx cp src/*.scss dist/src && shx cp src/index.mustache dist/src && shx cp src/icon.url dist/src",
"test": "mocha",
"prepublishOnly": "npm run build",
"fix": "biome check --fix --error-on-warnings",
"lint": "biome check --error-on-warnings",
"acceptance:local": "docker compose run --rm playwright",
"acceptance:update": "docker compose run --rm playwright npx playwright test --update-snapshots"
},
"peerDependencies": {
"@cucumber/messages": ">=18"
},
"devDependencies": {
"@babel/core": "7.29.0",
"@biomejs/biome": "^2.4.11",
"@cucumber/biome-config": "github:cucumber/biome-config#v0.1.0",
"@cucumber/compatibility-kit": "^29.1.4",
"@cucumber/gherkin": "39.0.0",
"@cucumber/gherkin-streams": "^6.0.0",
"@cucumber/gherkin-utils": "^11.0.0",
"@cucumber/message-streams": "4.1.1",
"@cucumber/messages": "32.3.0",
"@cucumber/query": "15.0.1",
"@cucumber/react-components": "24.3.0",
"@playwright/test": "1.59.1",
"@types/glob": "^9.0.0",
"@types/mocha": "10.0.10",
"@types/node": "22.19.17",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"babel-loader": "10.1.1",
"css-loader": "7.1.4",
"glob": "^13.0.0",
"mini-css-extract-plugin": "2.10.2",
"mocha": "11.7.5",
"react": "19.2.5",
"react-dom": "19.2.5",
"sass": "1.99.0",
"sass-loader": "16.0.7",
"serve": "^14.2.4",
"shx": "^0.4.0",
"source-map-support": "0.5.21",
"ts-loader": "9.5.7",
"ts-node": "10.9.2",
"typescript": "5.9.3",
"webpack": "5.106.1",
"webpack-cli": "7.0.2"
},
"bugs": {
"url": "https://github.com/cucumber/html-formatter/issues"
},
"homepage": "https://github.com/cucumber/html-formatter#readme",
"directories": {
"test": "test"
},
"keywords": []
}
{"version":3,"file":"CucumberHtmlStream.d.ts","sourceRoot":"","sources":["../../src/CucumberHtmlStream.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,kBAAmB,SAAQ,SAAS;IAY7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC;;;;OAIG;gBAEgB,OAAO,GAAE,MAA+C,EACxD,MAAM,GAAE,MAA8C,EACtD,QAAQ,GAAE,MAAyC;IAK/D,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAgBpF,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIhD,OAAO,CAAC,mCAAmC;IA8B3C,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;CAUrB"}
{"version":3,"file":"CucumberHtmlStream.js","sourceRoot":"","sources":["../../src/CucumberHtmlStream.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=CucumberHtmlStream.spec.d.ts.map
{"version":3,"file":"CucumberHtmlStream.spec.d.ts","sourceRoot":"","sources":["../../src/CucumberHtmlStream.spec.ts"],"names":[],"mappings":""}
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_assert_1 = __importDefault(require("node:assert"));
const node_stream_1 = require("node:stream");
const CucumberHtmlStream_1 = require("./CucumberHtmlStream");
function renderAsHtml(...envelopes) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
let html = '';
const sink = new node_stream_1.Writable({
write(chunk, _, callback) {
html += chunk;
callback();
},
});
sink.on('finish', () => resolve(html));
const cucumberHtmlStream = new CucumberHtmlStream_1.CucumberHtmlStream(`${__dirname}/dummy.css`, `${__dirname}/dummy.js`);
cucumberHtmlStream.on('error', reject);
cucumberHtmlStream.pipe(sink);
for (const envelope of envelopes) {
cucumberHtmlStream.write(envelope);
}
cucumberHtmlStream.end();
});
});
}
describe('CucumberHtmlStream', () => {
it('writes zero messages to html', () => __awaiter(void 0, void 0, void 0, function* () {
const html = yield renderAsHtml();
(0, node_assert_1.default)(html.indexOf('window.CUCUMBER_MESSAGES = []') >= 0);
}));
it('writes one message to html', () => __awaiter(void 0, void 0, void 0, function* () {
const e1 = {
testRunStarted: {
timestamp: { seconds: 0, nanos: 0 },
},
};
const html = yield renderAsHtml(e1);
(0, node_assert_1.default)(html.indexOf(`window.CUCUMBER_MESSAGES = [${JSON.stringify(e1)}]`) >= 0);
}));
it('writes two messages to html', () => __awaiter(void 0, void 0, void 0, function* () {
const e1 = {
testRunStarted: {
timestamp: { seconds: 0, nanos: 0 },
},
};
const e2 = {
testRunFinished: {
timestamp: { seconds: 0, nanos: 0 },
success: true,
},
};
const html = yield renderAsHtml(e1, e2);
(0, node_assert_1.default)(html.indexOf(`window.CUCUMBER_MESSAGES = [${JSON.stringify(e1)},${JSON.stringify(e2)}]`) >= 0);
}));
it('escapes forward slashes', () => __awaiter(void 0, void 0, void 0, function* () {
const e1 = {
gherkinDocument: {
comments: [
{
location: {
line: 0,
column: 0,
},
text: `</script><script>alert('Hello')</script>`,
},
],
},
};
const html = yield renderAsHtml(e1);
(0, node_assert_1.default)(html.indexOf(`window.CUCUMBER_MESSAGES = [{"gherkinDocument":{"comments":[{"location":{"line":0,"column":0},"text":"\\x3C/script>\\x3Cscript>alert('Hello')\\x3C/script>"}]}}];`) >= 0);
}));
});
//# sourceMappingURL=CucumberHtmlStream.spec.js.map
{"version":3,"file":"CucumberHtmlStream.spec.js","sourceRoot":"","sources":["../../src/CucumberHtmlStream.spec.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,cAAc,sBAAsB,CAAA;AAEpC;;GAEG;AACH,eAAe,kBAAkB,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAAyD;AAEzD,uDAAoC;AAEpC;;GAEG;AACH,kBAAe,uCAAkB,CAAA"}
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,iBAAiB,EAAE,QAAQ,EAAE,CAAA;KAC9B;CACF"}
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.tsx"],"names":[],"mappings":";;;AAAA,yBAAsB;AAGtB,iEAAyF;AACzF,6CAA6C;AAQ7C,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAgB,CAAC,CAAA;AAE1E,IAAI,CAAC,MAAM,CACT,uBAAC,oCAAiB,IAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,YACpD,uBAAC,oCAAiB,cAChB,gCAAK,EAAE,EAAC,QAAQ,EAAC,SAAS,EAAC,gBAAgB,YACzC,uBAAC,yBAAM,KAAG,GACN,GACY,GACF,CACrB,CAAA"}
export {};
//# sourceMappingURL=acceptance.spec.d.ts.map
{"version":3,"file":"acceptance.spec.d.ts","sourceRoot":"","sources":["../../test/acceptance.spec.ts"],"names":[],"mappings":""}
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const promises_1 = require("node:stream/promises");
const message_streams_1 = require("@cucumber/message-streams");
const test_1 = require("@playwright/test");
const glob_1 = require("glob");
const src_1 = require("../src");
const fixtures = (0, glob_1.sync)(`./node_modules/@cucumber/compatibility-kit/features/**/*.ndjson`);
test_1.test.beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
const outputDir = node_path_1.default.join(__dirname, './__output__');
for (const fixture of fixtures) {
const name = node_path_1.default.basename(fixture, '.ndjson');
const outputFile = node_path_1.default.join(outputDir, `${name}.html`);
yield (0, promises_1.pipeline)(node_fs_1.default.createReadStream(fixture, { encoding: 'utf-8' }), new message_streams_1.NdjsonToMessageStream(), new src_1.CucumberHtmlStream(node_path_1.default.join(__dirname, '../dist/main.css'), node_path_1.default.join(__dirname, '../dist/main.js'), node_path_1.default.join(__dirname, '../dist/src/icon.url')), node_fs_1.default.createWriteStream(outputFile));
}
}));
for (const fixture of fixtures) {
const name = node_path_1.default.basename(fixture, '.ndjson');
(0, test_1.test)(`can render ${name}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ page }) {
yield page.goto(`/${name}.html`);
yield page.waitForSelector('#report', { timeout: 3000 });
yield (0, test_1.expect)(page).toHaveScreenshot(`${name}.png`, { fullPage: true });
}));
}
//# sourceMappingURL=acceptance.spec.js.map
{"version":3,"file":"acceptance.spec.js","sourceRoot":"","sources":["../../test/acceptance.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAwB;AACxB,0DAA4B;AAC5B,mDAA+C;AAE/C,+DAAiE;AACjE,2CAA+C;AAC/C,+BAA2B;AAE3B,gCAA2C;AAE3C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,iEAAiE,CAAC,CAAA;AAExF,WAAI,CAAC,SAAS,CAAC,GAAS,EAAE;IACxB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAEtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,CAAA;QAEvD,MAAM,IAAA,mBAAQ,EACZ,iBAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACnD,IAAI,uCAAqB,EAAE,EAC3B,IAAI,wBAAkB,CACpB,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EACxC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACvC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAC7C,EACD,iBAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CACjC,CAAA;IACH,CAAC;AACH,CAAC,CAAA,CAAC,CAAA;AAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE9C,IAAA,WAAI,EAAC,cAAc,IAAI,EAAE,EAAE,KAAiB,EAAE,4CAAZ,EAAE,IAAI,EAAE;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;QAChC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC"}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet