import { strict as assert } from 'node:assert';
import { rmSync, writeFileSync } from 'node:fs';
import { dirname, join } from 'node:path';
import { execa } from 'execa';
import {
ensureDirectoryExistence,
fileContentOfPath,
safeCopyFile,
tplReplacer,
} from './building-utils';
const demoData = ['demo', 'demo-mobile', 'zero-execution'];
const outputExtensionUnpackedBaseDir = join(__dirname, '../unpacked-extension');
const multiEntrySegment = fileContentOfPath('./fixture/multi-entries.html');
const reportTpl = fileContentOfPath('../html/report.html');
const reportCSS = fileContentOfPath('../dist/report.css');
const reportJS = fileContentOfPath('../dist/report.js');
const playgroundCSS = fileContentOfPath(
'../unpacked-extension/lib/playground-entry.css',
);
const playgroundTpl = fileContentOfPath('../html/playground.html');
const extensionSidepanelTpl = fileContentOfPath(
'../html/extension-sidepanel.html',
);
const outputReportHTML = join(__dirname, '../dist/report/index.html');
const outputMultiEntriesHTML = join(__dirname, '../dist/report/multi.html');
const outputEmptyDumpHTML = join(__dirname, '../dist/report/empty-error.html');
const outputExtensionZipDir = join(__dirname, '../dist/extension/');
const outputExtensionPageDir = join(outputExtensionUnpackedBaseDir, 'pages');
const outputExtensionPlayground = join(
outputExtensionPageDir,
'playground.html',
);
const outputExtensionSidepanel = join(outputExtensionPageDir, 'sidepanel.html');
/* report utils */
function emptyDumpReportHTML() {
return tplReplacer(reportTpl, {
css: `\n`,
js: ``,
dump: '',
});
}
function scriptsOfSettingReportTpl() {
const leftAngleMark = '__left_angle_mark_';
return `window.midscene_report_tpl = ${JSON.stringify(
emptyDumpReportHTML(),
).replace(/') !== -1, 'HTML must contain