{"version":3,"file":"main.mjs","sources":["../src/browsers.ts","../src/devices.ts","../src/args.ts","../../lib/src/state.ts","../src/reporter/tap.ts","../../lib/src/uri.ts","../src/bundle.ts","../src/files.ts","../src/channel/dom.ts","../src/mod.ts","../src/main.ts"],"sourcesContent":["import {chromium, firefox, webkit, BrowserType} from 'playwright';\n\nexport const browsers: Record<string, BrowserType> = {\n\tchromium,\n\tfirefox,\n\twebkit,\n};\n","import {devices as playwrightDevices} from 'playwright';\n\nexport type Device = typeof playwrightDevices[keyof typeof playwrightDevices];\n\nexport type Devices = Record<string, Device | undefined>;\n\nexport const devices: Devices = {\n\t...playwrightDevices,\n\tdefault: undefined,\n} as unknown as Devices;\n","// Adapted from https://github.com/avajs/ava/blob/9d3559338aab8c3de800404b2652747399fc1709/lib/cli.js\n// License: https://github.com/avajs/ava/blob/9d3559338aab8c3de800404b2652747399fc1709/license\n// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nimport os from 'os';\nimport {isCI} from 'ci-info';\nimport yargs from 'yargs';\nimport {hideBin} from 'yargs/helpers';\nimport {version} from '../../../package.json';\nimport {browsers} from './browsers';\nimport {devices} from './devices';\n\nconst keepLastValue = <T>(value: T | T[]): T | undefined =>\n\tArray.isArray(value) ? value.pop() : value;\n\nconst options = {\n\tconcurrency: {\n\t\talias: 'c',\n\t\tcoerce: keepLastValue,\n\t\tdescription:\n\t\t\t'Max number of test files running at the same time (default: CPU cores)',\n\t\ttype: 'number',\n\t},\n\tbrowser: {\n\t\talias: 'b',\n\t\ttype: 'array',\n\t\tchoices: Object.keys(browsers),\n\t\tdefault: ['chromium'],\n\t},\n\tdevice: {\n\t\talias: 'd',\n\t\ttype: 'array',\n\t\tchoices: Object.keys(devices),\n\t\tdefault: ['default'],\n\t},\n\t'fail-fast': {\n\t\tcoerce: keepLastValue,\n\t\tdescription: 'Stop after first test failure',\n\t\ttype: 'boolean',\n\t},\n\tmatch: {\n\t\talias: 'm',\n\t\tdescription: 'Only run tests with matching title (can be repeated)',\n\t\ttype: 'array',\n\t\tdefault: ['*'],\n\t},\n\tserial: {\n\t\talias: 's',\n\t\tcoerce: keepLastValue,\n\t\tdescription: 'Run tests serially',\n\t\ttype: 'boolean',\n\t},\n\ttap: {\n\t\talias: 't',\n\t\tcoerce: keepLastValue,\n\t\tdescription: 'Generate TAP output',\n\t\ttype: 'boolean',\n\t},\n\ttimeout: {\n\t\talias: 'T',\n\t\tcoerce: keepLastValue,\n\t\tdescription:\n\t\t\t'Set global timeout (milliseconds or human-readable, e.g. 10s, 2m)',\n\t\ttype: 'string',\n\t\tdefault: '10s',\n\t},\n\twatch: {\n\t\talias: 'w',\n\t\tcoerce: keepLastValue,\n\t\tdescription: 'Re-run tests when files change',\n\t\ttype: 'boolean',\n\t},\n\treset: {\n\t\talias: 'r',\n\t\tcoerce: keepLastValue,\n\t\tdescription: 'Reset the cache before running the tests',\n\t\ttype: 'boolean',\n\t},\n\tcolor: {\n\t\tdescription: 'Force color output',\n\t\ttype: 'boolean',\n\t},\n} as const;\n\nexport const parse = async (input: string[]) => {\n\tlet pattern: string[] | undefined;\n\tconst {argv} = yargs(hideBin(input))\n\t\t.version(version)\n\t\t.parserConfiguration({\n\t\t\t'boolean-negation': true,\n\t\t\t'camel-case-expansion': false,\n\t\t\t'combine-arrays': false,\n\t\t\t'dot-notation': false,\n\t\t\t'duplicate-arguments-array': true,\n\t\t\t'flatten-duplicate-arrays': true,\n\t\t\t'negation-prefix': 'no-',\n\t\t\t'parse-numbers': true,\n\t\t\t'populate--': true,\n\t\t\t'set-placeholder-key': false,\n\t\t\t'short-option-groups': true,\n\t\t\t'strip-aliased': true,\n\t\t\t'unknown-options-as-args': false,\n\t\t})\n\t\t.usage('$0 [<pattern>...]')\n\t\t.options(options)\n\t\t.command(\n\t\t\t'* [<pattern>...]',\n\t\t\t'Run tests',\n\t\t\t(yargs) =>\n\t\t\t\tyargs.positional('pattern', {\n\t\t\t\t\tarray: true,\n\t\t\t\t\tdescribe:\n\t\t\t\t\t\t'Select which test files to run. Accepts glob patterns, directories that (recursively) contain test files, and file paths',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t}),\n\t\t\t(argv) => {\n\t\t\t\tpattern = argv.pattern;\n\t\t\t},\n\t\t)\n\t\t.example([['$0'], ['$0 test/']])\n\t\t.help();\n\n\t// Resolve the correct concurrency value.\n\t// From https://github.com/avajs/ava/blob/9d3559338aab8c3de800404b2652747399fc1709/lib/api.js#L249-L257\n\tconst parsed = await argv;\n\tconst {serial, ...rest} = parsed;\n\tconst concurrency = serial\n\t\t? 1\n\t\t: rest.concurrency !== undefined && rest.concurrency > 0\n\t\t? rest.concurrency\n\t\t: Math.min(os.cpus().length, isCI ? 2 : Number.POSITIVE_INFINITY);\n\n\treturn {...rest, concurrency, pattern};\n};\n","import Emittery from 'emittery';\n\nimport {RunEvent, ErrorDescription, TestHistory} from './events';\n\nexport type State = {\n\tparsed: boolean;\n\tdeclared: number;\n\tqueued: number;\n\tpass: number;\n\tfail: number;\n\terror: ErrorDescription | undefined;\n\thistory: Record<string, TestHistory>;\n};\n\nconst initHistory = () => {\n\treturn {\n\t\tqueued: false,\n\t\tdone: false,\n\t\tpass: false,\n\t\tfail: false,\n\t\trunning: false,\n\t\terrors: [],\n\t};\n};\n\nconst init = (): State => {\n\treturn {\n\t\tparsed: false,\n\t\tdeclared: 0,\n\t\tqueued: 0,\n\t\tpass: 0,\n\t\tfail: 0,\n\t\terror: undefined,\n\t\thistory: {},\n\t};\n};\n\nexport const create = (): Emittery => {\n\tconst emitter = new Emittery();\n\n\tlet state = init();\n\n\temitter.on('init', () => {\n\t\tstate = init();\n\t});\n\n\temitter.on('event', (event: RunEvent) => {\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (event.type) {\n\t\t\tcase 'error':\n\t\t\t\tstate.error = event.error;\n\t\t\t\tbreak;\n\t\t\tcase 'test-declare':\n\t\t\t\t++state.declared;\n\t\t\t\tstate.history[event.title] = initHistory();\n\t\t\t\tbreak;\n\t\t\tcase 'test-queue':\n\t\t\t\tstate.history[event.title].queued = true;\n\t\t\t\t++state.queued;\n\t\t\t\tbreak;\n\t\t\tcase 'test-start':\n\t\t\t\tstate.history[event.title].queued = false;\n\t\t\t\tstate.history[event.title].running = true;\n\t\t\t\tbreak;\n\t\t\tcase 'test-pass':\n\t\t\t\tstate.history[event.title].running = false;\n\t\t\t\tstate.history[event.title].pass = true;\n\t\t\t\tstate.history[event.title].done = true;\n\t\t\t\t++state.pass;\n\t\t\t\tbreak;\n\t\t\tcase 'test-fail':\n\t\t\t\tstate.history[event.title].running = false;\n\t\t\t\tstate.history[event.title].fail = true;\n\t\t\t\tstate.history[event.title].done = true;\n\t\t\t\tstate.history[event.title].errors.push(event.error);\n\t\t\t\t++state.fail;\n\t\t\t\tbreak;\n\t\t\tcase 'parsed':\n\t\t\t\tstate.parsed = true;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\temitter.on('dump', (cb: (state: State) => void) => {\n\t\tcb(state);\n\t});\n\n\treturn emitter;\n};\n","import os from 'os';\nimport {Writable} from 'stream';\nimport Emittery from 'emittery';\nimport * as supertap from 'supertap';\nimport {ErrorDescription, RunEvent} from '../../../lib/src/events';\nimport {create as createState, State} from '../../../lib/src/state';\n\nconst dumpError = (error: ErrorDescription) => {\n\treturn {...error};\n};\n\nconst title = (event: RunEvent) => {\n\t// eslint-disable-next-line default-case\n\tswitch (event.type) {\n\t\tcase 'test-pass':\n\t\tcase 'test-fail':\n\t\tcase 'test-declare':\n\t\tcase 'test-queue':\n\t\tcase 'test-start':\n\t\t\treturn `${event.path} - ${event.title}`;\n\t\tcase 'error':\n\t\tcase 'parsed':\n\t\t\treturn `${event.path}`;\n\t}\n};\n\nexport const create = (reportStream: Writable): Emittery => {\n\tconst emitter = new Emittery();\n\n\tconst state = createState();\n\n\tlet i = 0;\n\n\temitter.on('event', (event: RunEvent) => {\n\t\tvoid state.emit('event', event);\n\n\t\tlet write = false;\n\t\tlet passed = false;\n\t\tconst skip = false;\n\t\tconst todo = false;\n\t\tlet error;\n\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (event.type) {\n\t\t\tcase 'test-pass':\n\t\t\t\twrite = true;\n\t\t\t\tpassed = true;\n\t\t\t\tbreak;\n\t\t\tcase 'test-fail':\n\t\t\t\twrite = true;\n\t\t\t\tbreak;\n\t\t\tcase 'test-declare':\n\t\t\t\tbreak;\n\t\t\tcase 'test-queue':\n\t\t\t\tbreak;\n\t\t\tcase 'test-start':\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\twrite = true;\n\t\t\t\terror = event.error;\n\t\t\t\tbreak;\n\t\t\tcase 'parsed':\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (write) {\n\t\t\treportStream.write(\n\t\t\t\tsupertap.test(title(event), {\n\t\t\t\t\tcomment: [],\n\t\t\t\t\terror: error === undefined ? undefined : dumpError(error),\n\t\t\t\t\tindex: ++i,\n\t\t\t\t\tpassed,\n\t\t\t\t\tskip,\n\t\t\t\t\ttodo,\n\t\t\t\t}) + os.EOL,\n\t\t\t);\n\t\t}\n\t});\n\n\temitter.on('start', () => {\n\t\treportStream.write(supertap.start() + os.EOL);\n\t});\n\n\temitter.on('finish', async () => {\n\t\treturn state.emit('dump', (s: State) => {\n\t\t\t// TODO figure out correct count\n\t\t\treportStream.write(\n\t\t\t\tsupertap.finish({\n\t\t\t\t\tcrashed: s.error ? 1 : 0,\n\t\t\t\t\tfailed: s.fail,\n\t\t\t\t\tpassed: s.pass,\n\t\t\t\t\tskipped: 0,\n\t\t\t\t\ttodo: 0,\n\t\t\t\t}) + os.EOL,\n\t\t\t);\n\t\t});\n\t});\n\n\treturn emitter;\n};\n","export const encodeTestPath = (path: string): string =>\n\tencodeURIComponent(path);\nexport const decodeTestPath = (uriComponent: string): string =>\n\tdecodeURIComponent(uriComponent);\n\nexport const encodeTestTitle = (title: string): string =>\n\tencodeURIComponent(title);\nexport const decodeTestTitle = (uriComponent: string): string =>\n\tdecodeURIComponent(uriComponent);\n","import assert from 'assert';\nimport {ModuleFormat, rollup} from 'rollup';\n\nimport typescript from '@rollup/plugin-typescript';\nimport {nodeResolve} from '@rollup/plugin-node-resolve';\nimport json from '@rollup/plugin-json';\nimport commonjs from '@rollup/plugin-commonjs';\n\nconst plugins = [\n\ttypescript({module: 'esnext', lib: ['esnext', 'dom']}),\n\tnodeResolve(),\n\tjson(),\n\tcommonjs(),\n];\n\nexport async function bundle(source: string, format: ModuleFormat) {\n\tlet bundle;\n\ttry {\n\t\tbundle = await rollup({input: [source], plugins});\n\t\tconst {output} = await bundle.generate({format});\n\t\tassert(output.length === 1);\n\t\treturn output[0].code;\n\t} catch (error: unknown) {\n\t\tconsole.error(error);\n\t\tthrow error;\n\t} finally {\n\t\tif (bundle) {\n\t\t\t// Closes the bundle\n\t\t\tawait bundle.close();\n\t\t}\n\t}\n}\n","import assert from 'assert';\n\nimport process from 'process';\nimport {Server} from 'http';\nimport express from 'express';\nimport {Express} from 'express-serve-static-core';\nimport getPort, {portNumbers} from 'get-port';\nimport {encodeTestPath, encodeTestTitle} from '../../lib/src/uri';\nimport {bundle} from './bundle';\n\ntype Port = number | string;\n\nexport class TestFileServer {\n\t#port: Port | undefined;\n\t#app: Express | undefined;\n\t#server: Server | undefined;\n\t#bundleCache = new Map<string, Promise<string>>();\n\n\tclose() {\n\t\tif (this.#server !== undefined) {\n\t\t\tconsole.error('Closing server.');\n\t\t\tconst returnValue = this.#server.close();\n\t\t\tthis.#app = undefined;\n\t\t\tthis.#port = undefined;\n\t\t\tthis.#server = undefined;\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\tasync _bundle(path: string): Promise<string> {\n\t\tconst cached = this.#bundleCache.get(path);\n\t\tif (cached) return cached;\n\t\tconsole.error(`cache miss for ${path}`);\n\t\tconst p = bundle(path, 'esm');\n\t\tthis.#bundleCache.set(path, p);\n\t\treturn p;\n\t}\n\n\tasync _ensureServer(): Promise<Port> {\n\t\tif (this.#app !== undefined) {\n\t\t\tassert(this.#server !== undefined);\n\t\t\tassert(this.#port !== undefined);\n\t\t\treturn this.#port;\n\t\t}\n\n\t\tassert(this.#server === undefined);\n\t\tassert(this.#port === undefined);\n\n\t\tconst _app = express();\n\n\t\t_app.get('/html/:test', (request, response, _next) => {\n\t\t\tconsole.error('get', request.url);\n\t\t\tresponse.end(\n\t\t\t\t`\n\t      <!DOCTYPE html>\n\t      <html>\n\t      <body>\n\t      <pre id=\"state\"></pre>\n\t      <pre id=\"events\"></pre>\n\t      <script src=\"/script/${encodeURIComponent(request.params.test)}\"></script>\n\t      </body>\n\t      </html>\n\t    `.trim(),\n\t\t\t);\n\t\t});\n\n\t\t_app.get('/script/:test', async (request, response, _next) => {\n\t\t\tconsole.error('get', request.url, request.params.test);\n\t\t\tconst test = request.params.test;\n\t\t\tconst code = await this._bundle(test);\n\t\t\tresponse.end(code);\n\t\t});\n\n\t\t_app.get('*', async (request, _response, _next) => {\n\t\t\tconsole.error('get', request.url, 'unhandled');\n\t\t});\n\n\t\tconst _port =\n\t\t\tprocess.env.PORT ??\n\t\t\t(await getPort({\n\t\t\t\tport: portNumbers(8877, 8887),\n\t\t\t}));\n\n\t\tthis.#app = _app;\n\t\tthis.#port = _port;\n\n\t\treturn new Promise<Port>((resolve, _reject) => {\n\t\t\tthis.#server = _app.listen(_port, () => {\n\t\t\t\tconsole.error(`Server listen on port ${_port}`);\n\t\t\t\tresolve(_port);\n\t\t\t});\n\t\t});\n\t}\n\n\tasync getTestPathURI(path: string): Promise<string> {\n\t\tconst port = await this._ensureServer();\n\t\treturn `http://localhost:${port}/html/${encodeTestPath(path)}`;\n\t}\n\n\tasync getTestURI(path: string, title: string): Promise<string> {\n\t\tconst pathURI = await this.getTestPathURI(path);\n\t\treturn `${pathURI}#${encodeTestTitle(title)}`;\n\t}\n}\n","import {Browser, Page} from 'playwright';\nimport {RunEventWithDateTime} from '../../../lib/src/events';\nimport {Device} from '../devices';\n\nconst sleep = async (ms: number) =>\n\tnew Promise<void>((resolve) => {\n\t\tsetTimeout(() => {\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n\nexport const pollEvents = async function* (\n\tpage: Page,\n\tfirstNonReadIndex = 0,\n): AsyncIterableIterator<RunEventWithDateTime> {\n\tconst locator = page.locator('#events');\n\tfor (;;) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst [rawEvents] = await locator.allInnerTexts();\n\t\ttry {\n\t\t\tconst events = JSON.parse(rawEvents) as RunEventWithDateTime[];\n\t\t\tfor (let i = firstNonReadIndex; i < events.length; ++i) {\n\t\t\t\tconst event = events[i];\n\t\t\t\tyield event;\n\t\t\t}\n\n\t\t\tfirstNonReadIndex = events.length;\n\t\t} catch (error: unknown) {\n\t\t\tconsole.error({events: rawEvents, error});\n\t\t}\n\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait sleep(1000);\n\t}\n};\n\nexport interface WorkerOptions {\n\tdevice?: Device;\n\tbrowser: Browser;\n}\n\nexport const setupWorker = async (\n\t{device, browser}: WorkerOptions,\n\turi: string,\n) => {\n\tconst context = await browser.newContext({\n\t\t...device,\n\t});\n\n\tconst page = await context.newPage();\n\n\tawait page.goto(uri);\n\n\treturn {\n\t\tmessages: () => pollEvents(page),\n\t\tterminate: async () => context.close(),\n\t};\n};\n","import assert from 'assert';\nimport process from 'process';\nimport path from 'path';\nimport PQueue from 'p-queue';\nimport {globby} from 'globby';\nimport {isMatch} from 'matcher';\nimport Emittery from 'emittery';\nimport {browsers} from './browsers';\nimport {devices} from './devices';\nimport {create as createReporter} from './reporter/tap';\nimport {TestFileServer} from './files';\nimport {setupWorker, WorkerOptions} from './channel/dom';\n\nconst testFileFilter = (testFile: string) => {\n\tconst basename = path.basename(testFile);\n\treturn !basename.startsWith('_') && !basename.startsWith('.');\n};\n\nconst crash = (error: Error) => {\n\tconsole.error('uncaught error', error);\n};\n\nexport interface Options {\n\tpattern: string[] | undefined;\n\tbrowsers: readonly string[];\n\tdevices: readonly string[];\n\tconcurrency: number;\n\tmatch: readonly string[];\n}\n\ntype Reporter = Emittery;\ntype Queue = PQueue;\n\nexport interface Runtime {\n\tfileServer: TestFileServer;\n\treporter: Reporter;\n\tqueue: Queue;\n}\n\nexport const aba = async (\n\toptions: Options,\n\tgivenRuntime?: Partial<Runtime>,\n): Promise<void> => {\n\tconst runtime = {\n\t\treporter: givenRuntime?.reporter ?? createReporter(process.stdout),\n\t\tqueue:\n\t\t\tgivenRuntime?.queue ?? new PQueue({concurrency: options.concurrency}),\n\t\tfileServer: givenRuntime?.fileServer ?? new TestFileServer(),\n\t};\n\n\tawait runAllTestsIsolatedParallel(options, runtime);\n\n\tif (givenRuntime?.fileServer !== runtime.fileServer) {\n\t\truntime.fileServer.close();\n\t}\n};\n\nexport const runAllTestsIsolatedParallel = async (\n\toptions: Options,\n\truntime: Runtime,\n): Promise<void> => {\n\truntime.reporter.emit('start').catch(crash);\n\truntime.queue.on('error', crash);\n\tconst testFiles =\n\t\toptions.pattern === undefined ? [] : await globby(options.pattern);\n\tconst browser = await browsers[options.browsers[0]].launch();\n\tconst device = devices[options.devices[0]];\n\t// eslint-disable-next-line unicorn/no-array-callback-reference\n\tfor (const testFile of testFiles.filter(testFileFilter)) {\n\t\truntime.queue\n\t\t\t.add(async () =>\n\t\t\t\tqueueAllTestsOfTestFile(options, runtime, {browser, device}, testFile),\n\t\t\t)\n\t\t\t.catch(crash);\n\t}\n\n\tawait runtime.queue.onIdle();\n\n\truntime.reporter.emit('finish').catch(crash);\n\tawait browser.close();\n};\n\nexport const queueAllTestsOfTestFile = async (\n\toptions: Options,\n\truntime: Runtime,\n\t{device, browser}: WorkerOptions,\n\tpath: string,\n): Promise<void> => {\n\tconst uri = await runtime.fileServer.getTestPathURI(path);\n\n\tconst worker = await setupWorker({device, browser}, uri);\n\n\tfor await (const event of worker.messages()) {\n\t\tassert(event.path === path);\n\t\tswitch (event.type) {\n\t\t\tcase 'test-declare':\n\t\t\t\tif (\n\t\t\t\t\toptions.match === undefined ||\n\t\t\t\t\tisMatch(event.title, options.match)\n\t\t\t\t) {\n\t\t\t\t\truntime.queue\n\t\t\t\t\t\t.add(async () =>\n\t\t\t\t\t\t\trunOneTestIsolated(runtime, {device, browser}, path, event.title),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.catch(crash);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'parsed':\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tawait worker.terminate();\n};\n\nexport const runOneTestIsolated = async (\n\truntime: Runtime,\n\t{device, browser}: WorkerOptions,\n\tpath: string,\n\ttitle: string,\n): Promise<void> => {\n\tconst uri = await runtime.fileServer.getTestURI(path, title);\n\n\tconst worker = await setupWorker({device, browser}, uri);\n\n\t// eslint-disable-next-line no-labels\n\tpolling: for await (const event of worker.messages()) {\n\t\truntime.reporter.emit('event', event).catch(crash);\n\t\tassert(event.path === path);\n\t\tswitch (event.type) {\n\t\t\tcase 'error':\n\t\t\t\t// TODO proper cleanup\n\t\t\t\t// exit(1, `Error executing ${event.path}: ${JSON.stringify(event.error, undefined, 2)}`);\n\t\t\t\t// eslint-disable-next-line no-labels\n\t\t\t\tbreak polling;\n\t\t\tcase 'test-pass':\n\t\t\tcase 'test-fail':\n\t\t\t\tassert(event.title === title);\n\t\t\t\t// eslint-disable-next-line no-labels\n\t\t\t\tbreak polling;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tawait worker.terminate();\n};\n","#!/usr/bin/env node\n\nimport process from 'process';\nimport ms from 'ms';\nimport chalk from 'chalk';\nimport figures from 'figures';\nimport {parse} from './args';\nimport {aba} from './mod';\n\nconst {\n\tbrowser: browsers,\n\tdevice: devices,\n\ttimeout,\n\tpattern,\n\tmatch,\n\tconcurrency,\n} = await parse(process.argv);\n\nconst timeoutMs = ms(timeout as string);\n\nconst to = setTimeout(() => {\n\texit(1, `Timeout (${timeout as string})`);\n}, timeoutMs);\n\nconst exit = (rc: number, message?: string) => {\n\tclearTimeout(to);\n\tif (rc !== 0) {\n\t\tconsole.error(\n\t\t\t`\\n  ${chalk.red(figures.cross)} ${message ?? 'unknown error'}`,\n\t\t);\n\t}\n\n\tprocess.exit(rc);\n};\n\naba({\n\tpattern,\n\tmatch,\n\tbrowsers,\n\tdevices,\n\tconcurrency,\n})\n\t.then(() => {\n\t\texit(0);\n\t})\n\t.catch((error) => {\n\t\tconsole.error(error);\n\t\texit(1, error.message);\n\t});\n"],"names":["browsers","chromium","firefox","webkit","devices","playwrightDevices","default","undefined","keepLastValue","value","Array","isArray","pop","options","concurrency","alias","coerce","description","type","browser","choices","Object","keys","device","match","serial","tap","timeout","watch","reset","color","parse","input","pattern","argv","yargs","hideBin","version","parserConfiguration","usage","command","positional","array","describe","example","help","parsed","rest","Math","min","os","cpus","length","isCI","Number","POSITIVE_INFINITY","initHistory","queued","done","pass","fail","running","errors","init","declared","error","history","create","emitter","Emittery","state","on","event","title","push","cb","dumpError","path","reportStream","createState","i","emit","write","passed","skip","todo","supertap","test","comment","index","EOL","start","s","finish","crashed","failed","skipped","encodeTestPath","encodeURIComponent","encodeTestTitle","plugins","typescript","module","lib","nodeResolve","json","commonjs","bundle","source","format","rollup","output","generate","assert","code","console","close","TestFileServer","Map","returnValue","_bundle","cached","get","p","set","_ensureServer","_app","express","request","response","_next","url","end","params","trim","_response","_port","process","env","PORT","getPort","port","portNumbers","Promise","resolve","_reject","listen","getTestPathURI","getTestURI","pathURI","sleep","ms","setTimeout","pollEvents","page","firstNonReadIndex","locator","rawEvents","allInnerTexts","events","JSON","setupWorker","uri","context","newContext","newPage","goto","messages","terminate","testFileFilter","testFile","basename","startsWith","crash","aba","givenRuntime","runtime","reporter","createReporter","stdout","queue","PQueue","fileServer","runAllTestsIsolatedParallel","catch","testFiles","globby","launch","filter","add","queueAllTestsOfTestFile","onIdle","worker","isMatch","runOneTestIsolated","polling","timeoutMs","to","exit","rc","message","clearTimeout","chalk","red","figures","cross","then"],"mappings":"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"}