@qualweb/earl-reporter
Advanced tools
Comparing version 0.0.2 to 0.0.3
'use strict'; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -41,112 +6,73 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var lodash_1 = __importDefault(require("lodash")); | ||
var act_rules_reporter_1 = __importDefault(require("./lib/act-rules.reporter")); | ||
var html_techniques_reporter_1 = __importDefault(require("./lib/html-techniques.reporter")); | ||
var css_techniques_reporter_1 = __importDefault(require("./lib/css-techniques.reporter")); | ||
function generateEarlAssertions(report, date) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (!(report.type === 'act-rules')) return [3, 2]; | ||
return [4, act_rules_reporter_1.default(report, date)]; | ||
case 1: return [2, _a.sent()]; | ||
case 2: | ||
if (!(report.type === 'html-techniques')) return [3, 4]; | ||
return [4, html_techniques_reporter_1.default(report, date)]; | ||
case 3: return [2, _a.sent()]; | ||
case 4: | ||
if (!(report.type === 'css-techniques')) return [3, 6]; | ||
return [4, css_techniques_reporter_1.default(report, date)]; | ||
case 5: return [2, _a.sent()]; | ||
case 6: throw new Error('Invalid report type'); | ||
} | ||
}); | ||
}); | ||
const lodash_1 = __importDefault(require("lodash")); | ||
const act_rules_reporter_1 = __importDefault(require("./lib/act-rules.reporter")); | ||
const html_techniques_reporter_1 = __importDefault(require("./lib/html-techniques.reporter")); | ||
const css_techniques_reporter_1 = __importDefault(require("./lib/css-techniques.reporter")); | ||
async function generateEarlAssertions(report, date) { | ||
if (report.type === 'act-rules') { | ||
return await act_rules_reporter_1.default(report, date); | ||
} | ||
else if (report.type === 'html-techniques') { | ||
return await html_techniques_reporter_1.default(report, date); | ||
} | ||
else if (report.type === 'css-techniques') { | ||
return await css_techniques_reporter_1.default(report, date); | ||
} | ||
else { | ||
throw new Error('Invalid report type'); | ||
} | ||
} | ||
exports.generateEarlAssertions = generateEarlAssertions; | ||
function generateSingleEarlReport(report) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var earlReport, assertor, testSubject, _a, _b, _c, _d, _e, _f, _g, _h, _j; | ||
return __generator(this, function (_k) { | ||
switch (_k.label) { | ||
case 0: | ||
earlReport = { | ||
context: 'https://act-rules.github.io/earl-context.json', | ||
graph: new Array() | ||
}; | ||
assertor = { | ||
'@id': report.system.name, | ||
'@type': 'Software', | ||
title: report.system.name, | ||
description: report.system.description, | ||
hasVersion: report.system.version, | ||
homepage: report.system.homepage | ||
}; | ||
testSubject = { | ||
'@type': 'TestSubject', | ||
source: report.system.url.completeUrl, | ||
assertor: assertor, | ||
assertions: new Array() | ||
}; | ||
if (!report.modules['act-rules']) return [3, 2]; | ||
_a = testSubject; | ||
_c = (_b = testSubject.assertions).concat; | ||
return [4, generateEarlAssertions(report.modules['act-rules'], report.system.date)]; | ||
case 1: | ||
_a.assertions = _c.apply(_b, [(_k.sent())]); | ||
_k.label = 2; | ||
case 2: | ||
if (!report.modules['html-techniques']) return [3, 4]; | ||
_d = testSubject; | ||
_f = (_e = testSubject.assertions).concat; | ||
return [4, generateEarlAssertions(report.modules['html-techniques'], report.system.date)]; | ||
case 3: | ||
_d.assertions = _f.apply(_e, [(_k.sent())]); | ||
_k.label = 4; | ||
case 4: | ||
if (!report.modules['css-techniques']) return [3, 6]; | ||
_g = testSubject; | ||
_j = (_h = testSubject.assertions).concat; | ||
return [4, generateEarlAssertions(report.modules['css-techniques'], report.system.date)]; | ||
case 5: | ||
_g.assertions = _j.apply(_h, [(_k.sent())]); | ||
_k.label = 6; | ||
case 6: | ||
earlReport.graph.push(lodash_1.default.cloneDeep(testSubject)); | ||
return [2, earlReport]; | ||
} | ||
}); | ||
}); | ||
async function generateSingleEarlReport(report) { | ||
const earlReport = { | ||
context: 'https://act-rules.github.io/earl-context.json', | ||
graph: new Array() | ||
}; | ||
const assertor = { | ||
'@id': report.system.name, | ||
'@type': 'Software', | ||
title: report.system.name, | ||
description: report.system.description, | ||
hasVersion: report.system.version, | ||
homepage: report.system.homepage | ||
}; | ||
const testSubject = { | ||
'@type': 'TestSubject', | ||
source: report.system.url.completeUrl, | ||
assertor, | ||
assertions: new Array() | ||
}; | ||
if (report.modules['act-rules']) { | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['act-rules'], report.system.date)) | ||
]; | ||
} | ||
if (report.modules['html-techniques']) { | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['html-techniques'], report.system.date)) | ||
]; | ||
} | ||
if (report.modules['css-techniques']) { | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['css-techniques'], report.system.date)) | ||
]; | ||
} | ||
earlReport.graph.push(lodash_1.default.cloneDeep(testSubject)); | ||
return earlReport; | ||
} | ||
exports.generateSingleEarlReport = generateSingleEarlReport; | ||
function generateAggregatedEarlReport(reports) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var aggregatedReport, _i, _a, report, earlReport; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
aggregatedReport = { | ||
context: 'https://act-rules.github.io/earl-context.json', | ||
graph: new Array() | ||
}; | ||
_i = 0, _a = reports || []; | ||
_b.label = 1; | ||
case 1: | ||
if (!(_i < _a.length)) return [3, 4]; | ||
report = _a[_i]; | ||
return [4, generateSingleEarlReport(report)]; | ||
case 2: | ||
earlReport = _b.sent(); | ||
aggregatedReport.graph.push(lodash_1.default.cloneDeep(earlReport.graph[0])); | ||
_b.label = 3; | ||
case 3: | ||
_i++; | ||
return [3, 1]; | ||
case 4: return [2, aggregatedReport]; | ||
} | ||
}); | ||
}); | ||
async function generateAggregatedEarlReport(reports) { | ||
const aggregatedReport = { | ||
context: 'https://act-rules.github.io/earl-context.json', | ||
graph: new Array() | ||
}; | ||
for (const report of reports || []) { | ||
const earlReport = await generateSingleEarlReport(report); | ||
aggregatedReport.graph.push(lodash_1.default.cloneDeep(earlReport.graph[0])); | ||
} | ||
return aggregatedReport; | ||
} | ||
exports.generateAggregatedEarlReport = generateAggregatedEarlReport; | ||
//# sourceMappingURL=index.js.map |
'use strict'; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
function ACTRulesReportToEARL(report, date) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var assertions, ruleName, rule, sources, _i, _a, result_1, source, result, assertion; | ||
return __generator(this, function (_b) { | ||
assertions = new Array(); | ||
for (ruleName in report.rules || {}) { | ||
if (report.rules[ruleName]) { | ||
rule = report.rules[ruleName]; | ||
if (rule) { | ||
sources = new Array(); | ||
for (_i = 0, _a = rule.results || []; _i < _a.length; _i++) { | ||
result_1 = _a[_i]; | ||
source = { | ||
result: { | ||
pointer: result_1.pointer, | ||
outcome: 'earl:' + result_1.verdict | ||
} | ||
}; | ||
sources.push(source); | ||
async function ACTRulesReportToEARL(report, date) { | ||
const assertions = new Array(); | ||
for (const ruleName in report.rules || {}) { | ||
if (report.rules[ruleName]) { | ||
const rule = report.rules[ruleName]; | ||
if (rule) { | ||
const sources = new Array(); | ||
for (const result of rule.results || []) { | ||
const source = { | ||
result: { | ||
pointer: result.pointer, | ||
outcome: 'earl:' + result.verdict | ||
} | ||
result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + rule.metadata.outcome, | ||
source: sources, | ||
description: rule.metadata.description, | ||
date: date ? date : new Date().toLocaleDateString('pt-PT') | ||
}; | ||
assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': rule.metadata.url, | ||
'@type': 'TestCase', | ||
title: rule.name, | ||
description: rule.description | ||
}, | ||
mode: 'earl:automatic', | ||
result: result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
}; | ||
sources.push(source); | ||
} | ||
const result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + rule.metadata.outcome, | ||
source: sources, | ||
description: rule.metadata.description, | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
}; | ||
const assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': rule.metadata.url, | ||
'@type': 'TestCase', | ||
title: rule.name, | ||
description: rule.description | ||
}, | ||
mode: 'earl:automatic', | ||
result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
return [2, assertions]; | ||
}); | ||
}); | ||
} | ||
} | ||
return assertions; | ||
} | ||
module.exports = ACTRulesReportToEARL; | ||
//# sourceMappingURL=act-rules.reporter.js.map |
'use strict'; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
function CSSTechniquesReportToEARL(report, date) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var assertions, techniqueName, technique, sources, _i, _a, result_1, source, result, assertion; | ||
return __generator(this, function (_b) { | ||
assertions = new Array(); | ||
for (techniqueName in report.techniques || {}) { | ||
if (report.techniques[techniqueName]) { | ||
technique = report.techniques[techniqueName]; | ||
if (technique) { | ||
sources = new Array(); | ||
for (_i = 0, _a = technique.results || []; _i < _a.length; _i++) { | ||
result_1 = _a[_i]; | ||
source = { | ||
result: { | ||
pointer: result_1.pointer, | ||
outcome: 'earl:' + result_1.verdict | ||
} | ||
}; | ||
sources.push(source); | ||
async function CSSTechniquesReportToEARL(report, date) { | ||
const assertions = new Array(); | ||
for (const techniqueName in report.techniques || {}) { | ||
if (report.techniques[techniqueName]) { | ||
const technique = report.techniques[techniqueName]; | ||
if (technique) { | ||
const sources = new Array(); | ||
for (const result of technique.results || []) { | ||
const source = { | ||
result: { | ||
pointer: result.pointer, | ||
outcome: 'earl:' + result.verdict | ||
} | ||
result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + (technique.metadata.outcome !== 'warning' ? technique.metadata.outcome : 'cantTell'), | ||
source: sources, | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString() | ||
}; | ||
assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': typeof technique.metadata.url === 'string' ? technique.metadata.url : 'fix later', | ||
'@type': 'TestCase', | ||
title: technique.name, | ||
description: technique.description | ||
}, | ||
mode: 'earl:automatic', | ||
result: result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
}; | ||
sources.push(source); | ||
} | ||
const result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + (technique.metadata.outcome !== 'warning' ? technique.metadata.outcome : 'cantTell'), | ||
source: sources, | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
}; | ||
const assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': typeof technique.metadata.url === 'string' ? technique.metadata.url : 'fix later', | ||
'@type': 'TestCase', | ||
title: technique.name, | ||
description: technique.description | ||
}, | ||
mode: 'earl:automatic', | ||
result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
return [2, assertions]; | ||
}); | ||
}); | ||
} | ||
} | ||
return assertions; | ||
} | ||
module.exports = CSSTechniquesReportToEARL; | ||
//# sourceMappingURL=css-techniques.reporter.js.map |
'use strict'; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
function HTMLTechniquesReportToEARL(report, date) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var assertions, techniqueName, technique, sources, _i, _a, result_1, source, result, assertion; | ||
return __generator(this, function (_b) { | ||
assertions = new Array(); | ||
for (techniqueName in report.techniques || {}) { | ||
if (report.techniques[techniqueName]) { | ||
technique = report.techniques[techniqueName]; | ||
if (technique) { | ||
sources = new Array(); | ||
for (_i = 0, _a = technique.results || []; _i < _a.length; _i++) { | ||
result_1 = _a[_i]; | ||
source = { | ||
result: { | ||
pointer: result_1.pointer, | ||
outcome: 'earl:' + result_1.verdict | ||
} | ||
}; | ||
sources.push(source); | ||
async function HTMLTechniquesReportToEARL(report, date) { | ||
const assertions = new Array(); | ||
for (const techniqueName in report.techniques || {}) { | ||
if (report.techniques[techniqueName]) { | ||
const technique = report.techniques[techniqueName]; | ||
if (technique) { | ||
const sources = new Array(); | ||
for (const result of technique.results || []) { | ||
const source = { | ||
result: { | ||
pointer: result.pointer, | ||
outcome: 'earl:' + result.verdict | ||
} | ||
result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + (technique.metadata.outcome !== 'warning' ? technique.metadata.outcome : 'cantTell'), | ||
source: sources, | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString() | ||
}; | ||
assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': technique.metadata.url, | ||
'@type': 'TestCase', | ||
title: technique.name, | ||
description: technique.description | ||
}, | ||
mode: 'earl:automatic', | ||
result: result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
}; | ||
sources.push(source); | ||
} | ||
const result = { | ||
'@type': 'TestResult', | ||
outcome: 'earl:' + (technique.metadata.outcome !== 'warning' ? technique.metadata.outcome : 'cantTell'), | ||
source: sources, | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
}; | ||
const assertion = { | ||
'@type': 'Assertion', | ||
test: { | ||
'@id': technique.metadata.url, | ||
'@type': 'TestCase', | ||
title: technique.name, | ||
description: technique.description | ||
}, | ||
mode: 'earl:automatic', | ||
result | ||
}; | ||
assertions.push(assertion); | ||
} | ||
return [2, assertions]; | ||
}); | ||
}); | ||
} | ||
} | ||
return assertions; | ||
} | ||
module.exports = HTMLTechniquesReportToEARL; | ||
//# sourceMappingURL=html-techniques.reporter.js.map |
{ | ||
"name": "@qualweb/earl-reporter", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "Qualweb earl reporter", | ||
@@ -9,4 +9,6 @@ "main": "dist/index.js", | ||
"tsc": "tsc", | ||
"build": "tsc --build", | ||
"pub": "tsc --build && npm publish" | ||
"test": "mocha", | ||
"clean": "node clean.js", | ||
"build": "npm run clean && tsc --build", | ||
"pub": "npm run build && npm publish" | ||
}, | ||
@@ -27,6 +29,11 @@ "keywords": [ | ||
"devDependencies": { | ||
"@qualweb/types": "0.0.2", | ||
"@qualweb/types": "0.0.32", | ||
"@types/htmlparser2": "^3.10.1", | ||
"@types/lodash": "^4.14.136", | ||
"@types/node": "^12.6.8", | ||
"@types/node": "^12.7.1", | ||
"chai": "^4.2.0", | ||
"mocha": "^6.2.0", | ||
"request": "^2.88.0", | ||
"request-promise": "^4.2.4", | ||
"tslint": "^5.18.0", | ||
"typescript": "^3.5.3" | ||
@@ -33,0 +40,0 @@ }, |
@@ -53,13 +53,22 @@ 'use strict'; | ||
if (report.modules['act-rules']) { | ||
testSubject.assertions = [...testSubject.assertions, ...(await generateEarlAssertions(report.modules['act-rules'], report.system.date))]; | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['act-rules'], report.system.date)) | ||
]; | ||
} | ||
if (report.modules['html-techniques']) { | ||
testSubject.assertions = [...testSubject.assertions, ...(await generateEarlAssertions(report.modules['html-techniques'], report.system.date))]; | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['html-techniques'], report.system.date)) | ||
]; | ||
} | ||
if (report.modules['css-techniques']) { | ||
testSubject.assertions = [...testSubject.assertions, ...(await generateEarlAssertions(report.modules['css-techniques'], report.system.date))]; | ||
testSubject.assertions = [ | ||
...testSubject.assertions, | ||
...(await generateEarlAssertions(report.modules['css-techniques'], report.system.date)) | ||
]; | ||
} | ||
earlReport.graph.push(_.cloneDeep(testSubject)); | ||
return earlReport; | ||
@@ -66,0 +75,0 @@ } |
@@ -35,3 +35,3 @@ 'use strict'; | ||
description: rule.metadata.description, | ||
date: date ? date : new Date().toLocaleDateString('pt-PT') | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
} | ||
@@ -38,0 +38,0 @@ |
@@ -35,3 +35,3 @@ 'use strict'; | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString() | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
} | ||
@@ -38,0 +38,0 @@ |
@@ -35,3 +35,3 @@ 'use strict'; | ||
description: technique.metadata.description, | ||
date: date ? date : new Date().toISOString() | ||
date: date ? date : new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '') | ||
} | ||
@@ -38,0 +38,0 @@ |
{ | ||
"compilerOptions": { | ||
/* Basic Options */ | ||
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ | ||
"target": "es2018", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ | ||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ | ||
@@ -10,5 +10,5 @@ // "lib": [], /* Specify library files to be included in the compilation. */ | ||
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ | ||
"declaration": true, /* Generates corresponding '.d.ts' file. */ | ||
"declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ | ||
"sourceMap": true, /* Generates corresponding '.map' file. */ | ||
//"declaration": true, /* Generates corresponding '.d.ts' file. */ | ||
//"declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ | ||
//"sourceMap": true, /* Generates corresponding '.map' file. */ | ||
//"outFile": "./qualweb-wappalyzer.js", /* Concatenate and emit output to single file. */ | ||
@@ -15,0 +15,0 @@ "outDir": "./dist", /* Redirect output structure to the directory. */ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
59137
0
100
1168
10
15
1
2