import { readFile, writeFile } from 'node:fs/promises' import path from 'node:path' import { createRequire } from 'node:module' import * as esbuild from 'esbuild' const require = createRequire(import.meta.url) const scriptDir = import.meta.dirname const mobileRoot = path.resolve(scriptDir, '..') const outputPath = path.join(mobileRoot, 'src', 'terminal', 'terminal-webview-engine.generated.ts') const target = 'chrome74' const packages = ['@xterm/xterm', '@xterm/addon-unicode11', '@xterm/addon-webgl'] async function readPackageVersion(packageName) { // Why: a package.json module specifier must use '/' — path.join emits '\' on // Windows, yielding an unresolvable bare specifier that fails postinstall there. const packageJsonPath = require.resolve(`${packageName}/package.json`) const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8')) return `${packageName}@${packageJson.version}` } function htmlText(value, closingTag) { return value.replace(new RegExp(`