{"version":3,"file":"snapshot.mjs","names":[],"sources":["../../src/server/snapshot.ts"],"sourcesContent":["import { mkdirp } from 'mkdirp'\nimport { dirname, resolve } from 'pathe'\nimport { isBase64String } from '../shared/base64.ts'\nimport type { ImageSnapshotTimeoutOptions, PageImageSnapshotOptions } from '../shared/types.ts'\nimport { browserApi } from './browser_provider/browser_api.ts'\nimport { snapshotWriter } from './snapshot_writer.ts'\nimport type { ExtendedBrowserCommandContext } from './vis_server_context.types.ts'\n\nexport async function takeSnapshot(\n\tcontext: ExtendedBrowserCommandContext,\n\tprojectRoot: string,\n\trelativeFilePath: string,\n\tsubject: string,\n\toptions: ImageSnapshotTimeoutOptions | undefined,\n) {\n\tif (isBase64String(subject)) {\n\t\tawait snapshotWriter.writeBase64(resolve(projectRoot, relativeFilePath), subject)\n\t\treturn Buffer.from(subject, 'base64')\n\t}\n\treturn takeSnapshotByBrowser(context, projectRoot, relativeFilePath, subject, options)\n}\n\nexport async function takeSnapshotByBrowser(\n\tcontext: ExtendedBrowserCommandContext,\n\tprojectRoot: string,\n\trelativeFilePath: string,\n\tsubject: string,\n\toptions: ImageSnapshotTimeoutOptions | undefined,\n) {\n\tconst filePath = resolve(projectRoot, relativeFilePath)\n\tawait mkdirp(dirname(filePath))\n\tconst browser = browserApi(context)\n\treturn browser.takeScreenshot(projectRoot, relativeFilePath, subject ?? 'body', {\n\t\ttimeout: options?.timeout,\n\t})\n}\n\nexport async function takePageSnapshot(\n\tcontext: ExtendedBrowserCommandContext,\n\tprojectRoot: string,\n\trelativeFilePath: string,\n\toptions: (PageImageSnapshotOptions & ImageSnapshotTimeoutOptions) | undefined,\n) {\n\tconst filePath = resolve(projectRoot, relativeFilePath)\n\tawait mkdirp(dirname(filePath))\n\tconst browser = browserApi(context)\n\treturn browser.takePageScreenshot(projectRoot, relativeFilePath, {\n\t\ttimeout: options?.timeout,\n\t\tfullPage: options?.fullPage,\n\t})\n}\n"],"mappings":";;;;;;;AAQA,eAAsB,aACrB,SACA,aACA,kBACA,SACA,SACC;AACD,KAAI,eAAe,QAAQ,EAAE;AAC5B,QAAM,eAAe,YAAY,QAAQ,aAAa,iBAAiB,EAAE,QAAQ;AACjF,SAAO,OAAO,KAAK,SAAS,SAAS;;AAEtC,QAAO,sBAAsB,SAAS,aAAa,kBAAkB,SAAS,QAAQ;;AAGvF,eAAsB,sBACrB,SACA,aACA,kBACA,SACA,SACC;AAED,OAAM,OAAO,QADI,QAAQ,aAAa,iBAAiB,CACzB,CAAC;AAE/B,QADgB,WAAW,QAAQ,CACpB,eAAe,aAAa,kBAAkB,WAAW,QAAQ,EAC/E,SAAS,SAAS,SAClB,CAAC;;AAGH,eAAsB,iBACrB,SACA,aACA,kBACA,SACC;AAED,OAAM,OAAO,QADI,QAAQ,aAAa,iBAAiB,CACzB,CAAC;AAE/B,QADgB,WAAW,QAAQ,CACpB,mBAAmB,aAAa,kBAAkB;EAChE,SAAS,SAAS;EAClB,UAAU,SAAS;EACnB,CAAC"}