@vitest/browser 3.1.2 → 3.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/.vite/manifest.json +1 -1
- package/dist/client/__vitest__/assets/{index-Cv3XDLXs.js → index-BZjudRZr.js} +12 -12
- package/dist/client/__vitest__/assets/{index-D6BhetW8.css → index-DJfrXR3P.css} +1 -1
- package/dist/client/__vitest__/index.html +2 -2
- package/dist/client/__vitest_browser__/{tester-D8qCxA_3.js → tester-D-yxPeOx.js} +5 -5
- package/dist/client/error-catcher.js +1 -14
- package/dist/client/tester/tester.html +1 -1
- package/dist/client.js +19 -8
- package/dist/expect-element.js +1 -1
- package/dist/{index-C34csx3Z.js → index-C3ICQ6zz.js} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +36 -16
- package/dist/locators/index.js +1 -1
- package/dist/locators/playwright.js +1 -1
- package/dist/locators/preview.js +1 -1
- package/dist/locators/webdriverio.js +1 -1
- package/dist/providers.js +3 -1
- package/dist/{public-utils-xf4CCUzp.js → public-utils-DUr23h1p.js} +2 -2
- package/dist/utils.js +1 -1
- package/dist/{webdriver-BzjiKqT8.js → webdriver-D7k26Na7.js} +75 -5
- package/package.json +12 -12
- package/providers/playwright.d.ts +6 -1
package/dist/index.js
CHANGED
|
@@ -13,12 +13,12 @@ import { fileURLToPath } from 'node:url';
|
|
|
13
13
|
import crypto from 'node:crypto';
|
|
14
14
|
import { mkdir, readFile as readFile$1 } from 'node:fs/promises';
|
|
15
15
|
import { parseErrorStacktrace, parseStacktrace } from '@vitest/utils/source-map';
|
|
16
|
-
import { P as PlaywrightBrowserProvider, W as WebdriverBrowserProvider } from './webdriver-
|
|
17
|
-
import { resolve as resolve$1,
|
|
16
|
+
import { P as PlaywrightBrowserProvider, W as WebdriverBrowserProvider } from './webdriver-D7k26Na7.js';
|
|
17
|
+
import { resolve as resolve$1, basename as basename$1, dirname as dirname$1, normalize as normalize$1 } from 'node:path';
|
|
18
18
|
import { WebSocketServer } from 'ws';
|
|
19
19
|
import * as nodeos from 'node:os';
|
|
20
20
|
|
|
21
|
-
var version = "3.1
|
|
21
|
+
var version = "3.2.0-beta.1";
|
|
22
22
|
|
|
23
23
|
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
24
24
|
function normalizeWindowsPath(input = "") {
|
|
@@ -360,6 +360,9 @@ async function resolveOrchestrator(globalServer, url, res) {
|
|
|
360
360
|
if (!browserProject) {
|
|
361
361
|
return;
|
|
362
362
|
}
|
|
363
|
+
if (sessionId && sessionId !== "none" && !globalServer.vitest._browserSessions.sessionIds.has(sessionId)) {
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
363
366
|
const injectorJs = typeof globalServer.injectorJs === "string" ? globalServer.injectorJs : await globalServer.injectorJs;
|
|
364
367
|
const injector = replacer(injectorJs, {
|
|
365
368
|
__VITEST_PROVIDER__: JSON.stringify(browserProject.config.browser.provider || "preview"),
|
|
@@ -1620,16 +1623,16 @@ function assertFileAccess(path, project) {
|
|
|
1620
1623
|
throw new Error(`Access denied to "${path}". See Vite config documentation for "server.fs": https://vitejs.dev/config/server-options.html#server-fs-strict.`);
|
|
1621
1624
|
}
|
|
1622
1625
|
}
|
|
1623
|
-
const readFile = async ({ project
|
|
1624
|
-
const filepath = resolve$1(
|
|
1626
|
+
const readFile = async ({ project }, path, options = {}) => {
|
|
1627
|
+
const filepath = resolve$1(project.config.root, path);
|
|
1625
1628
|
assertFileAccess(filepath, project);
|
|
1626
1629
|
if (typeof options === "object" && !options.encoding) {
|
|
1627
1630
|
options.encoding = "utf-8";
|
|
1628
1631
|
}
|
|
1629
1632
|
return promises.readFile(filepath, options);
|
|
1630
1633
|
};
|
|
1631
|
-
const writeFile = async ({ project
|
|
1632
|
-
const filepath = resolve$1(
|
|
1634
|
+
const writeFile = async ({ project }, path, data, options) => {
|
|
1635
|
+
const filepath = resolve$1(project.config.root, path);
|
|
1633
1636
|
assertFileAccess(filepath, project);
|
|
1634
1637
|
const dir = dirname$1(filepath);
|
|
1635
1638
|
if (!fs.existsSync(dir)) {
|
|
@@ -1637,13 +1640,13 @@ const writeFile = async ({ project, testPath = process.cwd() }, path, data, opti
|
|
|
1637
1640
|
}
|
|
1638
1641
|
await promises.writeFile(filepath, data, options);
|
|
1639
1642
|
};
|
|
1640
|
-
const removeFile = async ({ project
|
|
1641
|
-
const filepath = resolve$1(
|
|
1643
|
+
const removeFile = async ({ project }, path) => {
|
|
1644
|
+
const filepath = resolve$1(project.config.root, path);
|
|
1642
1645
|
assertFileAccess(filepath, project);
|
|
1643
1646
|
await promises.rm(filepath);
|
|
1644
1647
|
};
|
|
1645
|
-
const _fileInfo = async ({ project
|
|
1646
|
-
const filepath = resolve$1(
|
|
1648
|
+
const _fileInfo = async ({ project }, path, encoding) => {
|
|
1649
|
+
const filepath = resolve$1(project.config.root, path);
|
|
1647
1650
|
assertFileAccess(filepath, project);
|
|
1648
1651
|
const content = await promises.readFile(filepath, encoding || "base64");
|
|
1649
1652
|
return {
|
|
@@ -2442,7 +2445,7 @@ const type = async (context, selector, text, options = {}) => {
|
|
|
2442
2445
|
return { unreleased: Array.from(unreleased) };
|
|
2443
2446
|
};
|
|
2444
2447
|
|
|
2445
|
-
const upload = async (context, selector, files) => {
|
|
2448
|
+
const upload = async (context, selector, files, options) => {
|
|
2446
2449
|
const testPath = context.testPath;
|
|
2447
2450
|
if (!testPath) {
|
|
2448
2451
|
throw new Error(`Cannot upload files outside of a test`);
|
|
@@ -2460,7 +2463,7 @@ const upload = async (context, selector, files) => {
|
|
|
2460
2463
|
buffer: Buffer.from(file.base64, "base64")
|
|
2461
2464
|
};
|
|
2462
2465
|
});
|
|
2463
|
-
await iframe.locator(selector).setInputFiles(playwrightFiles);
|
|
2466
|
+
await iframe.locator(selector).setInputFiles(playwrightFiles, options);
|
|
2464
2467
|
} else if (context.provider instanceof WebdriverBrowserProvider) {
|
|
2465
2468
|
for (const file of files) {
|
|
2466
2469
|
if (typeof file !== "string") {
|
|
@@ -2623,7 +2626,7 @@ class ParentBrowserProject {
|
|
|
2623
2626
|
if (mod) {
|
|
2624
2627
|
return id;
|
|
2625
2628
|
}
|
|
2626
|
-
const resolvedPath = resolve(
|
|
2629
|
+
const resolvedPath = resolve(this.vite.config.root, id.slice(1));
|
|
2627
2630
|
const modUrl = this.vite.moduleGraph.getModuleById(resolvedPath);
|
|
2628
2631
|
if (modUrl) {
|
|
2629
2632
|
return resolvedPath;
|
|
@@ -2951,6 +2954,10 @@ function setupBrowserRpc(globalServer, defaultMockerRegistry) {
|
|
|
2951
2954
|
if (!sessionId || !rpcId || projectName == null) {
|
|
2952
2955
|
return error(new Error(`[vitest] Invalid URL ${request.url}. "projectName", "sessionId" and "rpcId" queries are required.`));
|
|
2953
2956
|
}
|
|
2957
|
+
if (!vitest._browserSessions.sessionIds.has(sessionId)) {
|
|
2958
|
+
const ids = [...vitest._browserSessions.sessionIds].join(", ");
|
|
2959
|
+
return error(new Error(`[vitest] Unknown session id "${sessionId}". Expected one of ${ids}.`));
|
|
2960
|
+
}
|
|
2954
2961
|
if (type === "orchestrator") {
|
|
2955
2962
|
const session = vitest._browserSessions.getSession(sessionId);
|
|
2956
2963
|
session?.connected();
|
|
@@ -3060,7 +3067,7 @@ function setupBrowserRpc(globalServer, defaultMockerRegistry) {
|
|
|
3060
3067
|
const mod = globalServer.vite.moduleGraph.getModuleById(id);
|
|
3061
3068
|
return mod?.transformResult?.map;
|
|
3062
3069
|
},
|
|
3063
|
-
|
|
3070
|
+
cancelCurrentRun(reason) {
|
|
3064
3071
|
vitest.cancelCurrentRun(reason);
|
|
3065
3072
|
},
|
|
3066
3073
|
async resolveId(id, importer) {
|
|
@@ -3252,6 +3259,7 @@ function createBrowserPool(vitest) {
|
|
|
3252
3259
|
if (isCancelled) {
|
|
3253
3260
|
return;
|
|
3254
3261
|
}
|
|
3262
|
+
debug?.("provider is ready for %s project", project.name);
|
|
3255
3263
|
const pool = ensurePool(project);
|
|
3256
3264
|
vitest.state.clearFiles(project, files);
|
|
3257
3265
|
providers.add(project.browser.provider);
|
|
@@ -3272,12 +3280,14 @@ function createBrowserPool(vitest) {
|
|
|
3272
3280
|
name: "browser",
|
|
3273
3281
|
async close() {
|
|
3274
3282
|
await Promise.all([...providers].map((provider) => provider.close()));
|
|
3283
|
+
vitest._browserSessions.sessionIds.clear();
|
|
3275
3284
|
providers.clear();
|
|
3276
3285
|
vitest.projects.forEach((project) => {
|
|
3277
3286
|
project.browser?.state.orchestrators.forEach((orchestrator) => {
|
|
3278
3287
|
orchestrator.$close();
|
|
3279
3288
|
});
|
|
3280
3289
|
});
|
|
3290
|
+
debug?.("browser pool closed all providers");
|
|
3281
3291
|
},
|
|
3282
3292
|
runTests: (files) => runWorkspaceTests("run", files),
|
|
3283
3293
|
collectTests: (files) => runWorkspaceTests("collect", files)
|
|
@@ -3309,6 +3319,7 @@ class BrowserPool {
|
|
|
3309
3319
|
async runTests(method, files) {
|
|
3310
3320
|
this._promise ??= createDefer();
|
|
3311
3321
|
if (!files.length) {
|
|
3322
|
+
debug?.("no tests found, finishing test run immediately");
|
|
3312
3323
|
this._promise.resolve();
|
|
3313
3324
|
return this._promise;
|
|
3314
3325
|
}
|
|
@@ -3321,18 +3332,23 @@ class BrowserPool {
|
|
|
3321
3332
|
}
|
|
3322
3333
|
});
|
|
3323
3334
|
if (this.orchestrators.size >= this.options.maxWorkers) {
|
|
3335
|
+
debug?.("all orchestrators are ready, not creating more");
|
|
3324
3336
|
return this._promise;
|
|
3325
3337
|
}
|
|
3326
3338
|
const workerCount = Math.min(this.options.maxWorkers - this.orchestrators.size, files.length);
|
|
3327
3339
|
const promises = [];
|
|
3328
3340
|
for (let i = 0; i < workerCount; i++) {
|
|
3329
3341
|
const sessionId = crypto.randomUUID();
|
|
3342
|
+
this.project.vitest._browserSessions.sessionIds.add(sessionId);
|
|
3343
|
+
const project = this.project.name;
|
|
3344
|
+
debug?.("[%s] creating session for %s", sessionId, project);
|
|
3330
3345
|
const page = this.openPage(sessionId).then(() => {
|
|
3331
3346
|
this.runNextTest(method, sessionId);
|
|
3332
3347
|
});
|
|
3333
3348
|
promises.push(page);
|
|
3334
3349
|
}
|
|
3335
3350
|
await Promise.all(promises);
|
|
3351
|
+
debug?.("all sessions are created");
|
|
3336
3352
|
return this._promise;
|
|
3337
3353
|
}
|
|
3338
3354
|
async openPage(sessionId) {
|
|
@@ -3354,7 +3370,9 @@ class BrowserPool {
|
|
|
3354
3370
|
if (this.readySessions.size === this.orchestrators.size) {
|
|
3355
3371
|
this._promise?.resolve();
|
|
3356
3372
|
this._promise = undefined;
|
|
3357
|
-
debug?.("all tests finished running");
|
|
3373
|
+
debug?.("[%s] all tests finished running", sessionId);
|
|
3374
|
+
} else {
|
|
3375
|
+
debug?.(`did not finish sessions for ${sessionId}: |ready - %s| |overall - %s|`, [...this.readySessions].join(", "), [...this.orchestrators.keys()].join(", "));
|
|
3358
3376
|
}
|
|
3359
3377
|
}
|
|
3360
3378
|
runNextTest(method, sessionId) {
|
|
@@ -3388,6 +3406,7 @@ class BrowserPool {
|
|
|
3388
3406
|
this.cancel();
|
|
3389
3407
|
this._promise?.resolve();
|
|
3390
3408
|
this._promise = undefined;
|
|
3409
|
+
debug?.("[%s] browser connection was closed", sessionId);
|
|
3391
3410
|
return;
|
|
3392
3411
|
}
|
|
3393
3412
|
debug?.("[%s] error during %s test run: %s", sessionId, file, error);
|
|
@@ -3425,6 +3444,7 @@ async function createBrowserServer(project, configFile, prePlugins = [], postPlu
|
|
|
3425
3444
|
const vite = await createViteServer({
|
|
3426
3445
|
...project.options,
|
|
3427
3446
|
base: "/",
|
|
3447
|
+
root: project.config.root,
|
|
3428
3448
|
logLevel,
|
|
3429
3449
|
customLogger: {
|
|
3430
3450
|
...logger,
|
package/dist/locators/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"@vitest/browser/context";import"../public-utils-
|
|
1
|
+
import"@vitest/browser/context";import"../public-utils-DUr23h1p.js";export{L as Locator,s as selectorEngine}from"../index-C3ICQ6zz.js";import"vitest/utils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{page,server}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector}from"../public-utils-
|
|
1
|
+
import{page,server}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector}from"../public-utils-DUr23h1p.js";import{s as selectorEngine,L as Locator,p as processTimeoutOptions,g as getIframeScale}from"../index-C3ICQ6zz.js";import"vitest/utils";page.extend({getByLabelText(e,_){return new PlaywrightLocator(getByLabelSelector(e,_))},getByRole(e,_){return new PlaywrightLocator(getByRoleSelector(e,_))},getByTestId(e){return new PlaywrightLocator(getByTestIdSelector(server.config.browser.locators.testIdAttribute,e))},getByAltText(e,_){return new PlaywrightLocator(getByAltTextSelector(e,_))},getByPlaceholder(e,_){return new PlaywrightLocator(getByPlaceholderSelector(e,_))},getByText(e,_){return new PlaywrightLocator(getByTextSelector(e,_))},getByTitle(e,_){return new PlaywrightLocator(getByTitleSelector(e,_))},elementLocator(e){return new PlaywrightLocator(selectorEngine.generateSelectorSimple(e),e)}});class PlaywrightLocator extends Locator{constructor(e,_){super(),this.selector=e,this._container=_}click(e){return super.click(processTimeoutOptions(processClickOptions(e)))}dblClick(e){return super.dblClick(processTimeoutOptions(processClickOptions(e)))}tripleClick(e){return super.tripleClick(processTimeoutOptions(processClickOptions(e)))}selectOptions(e,_){return super.selectOptions(e,processTimeoutOptions(_))}clear(e){return super.clear(processTimeoutOptions(e))}hover(e){return super.hover(processTimeoutOptions(processHoverOptions(e)))}upload(e,_){return super.upload(e,processTimeoutOptions(_))}fill(e,_){return super.fill(e,processTimeoutOptions(_))}dropTo(e,_){return super.dropTo(e,processTimeoutOptions(processDragAndDropOptions(_)))}locator(e){return new PlaywrightLocator(`${this.selector} >> ${e}`,this._container)}elementLocator(e){return new PlaywrightLocator(selectorEngine.generateSelectorSimple(e),e)}}function processDragAndDropOptions(e){if(!e)return e;let _=e;return _.sourcePosition&&=processPlaywrightPosition(_.sourcePosition),_.targetPosition&&=processPlaywrightPosition(_.targetPosition),e}function processHoverOptions(e){if(!e)return e;let _=e;return _.position&&=processPlaywrightPosition(_.position),e}function processClickOptions(e){if(!e)return e;let _=e;return _.position&&=processPlaywrightPosition(_.position),_}function processPlaywrightPosition(e){let _=getIframeScale();return e.x!=null&&(e.x*=_),e.y!=null&&(e.y*=_),e}
|
package/dist/locators/preview.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{page,server,userEvent}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector,h as getElementError}from"../public-utils-
|
|
1
|
+
import{page,server,userEvent}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector,h as getElementError}from"../public-utils-DUr23h1p.js";import{s as selectorEngine,L as Locator,c as convertElementToCssSelector}from"../index-C3ICQ6zz.js";import"vitest/utils";page.extend({getByLabelText(e,m){return new PreviewLocator(getByLabelSelector(e,m))},getByRole(e,m){return new PreviewLocator(getByRoleSelector(e,m))},getByTestId(e){return new PreviewLocator(getByTestIdSelector(server.config.browser.locators.testIdAttribute,e))},getByAltText(e,m){return new PreviewLocator(getByAltTextSelector(e,m))},getByPlaceholder(e,m){return new PreviewLocator(getByPlaceholderSelector(e,m))},getByText(e,m){return new PreviewLocator(getByTextSelector(e,m))},getByTitle(e,m){return new PreviewLocator(getByTitleSelector(e,m))},elementLocator(e){return new PreviewLocator(selectorEngine.generateSelectorSimple(e),e)}});class PreviewLocator extends Locator{constructor(e,m){super(),this._pwSelector=e,this._container=m}get selector(){let e=this.elements().map(e=>convertElementToCssSelector(e));if(!e.length)throw getElementError(this._pwSelector,this._container||document.body);return e.join(`, `)}click(){return userEvent.click(this.element())}dblClick(){return userEvent.dblClick(this.element())}tripleClick(){return userEvent.tripleClick(this.element())}hover(){return userEvent.hover(this.element())}unhover(){return userEvent.unhover(this.element())}async fill(e){return userEvent.fill(this.element(),e)}async upload(e){return userEvent.upload(this.element(),e)}selectOptions(e){return userEvent.selectOptions(this.element(),e)}clear(){return userEvent.clear(this.element())}locator(e){return new PreviewLocator(`${this._pwSelector} >> ${e}`,this._container)}elementLocator(e){return new PreviewLocator(selectorEngine.generateSelectorSimple(e),e)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{page,server}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector,h as getElementError}from"../public-utils-
|
|
1
|
+
import{page,server}from"@vitest/browser/context";import{g as getByTitleSelector,a as getByTextSelector,b as getByPlaceholderSelector,c as getByAltTextSelector,d as getByTestIdSelector,e as getByRoleSelector,f as getByLabelSelector,h as getElementError}from"../public-utils-DUr23h1p.js";import{s as selectorEngine,L as Locator,c as convertElementToCssSelector,a as getBrowserState,g as getIframeScale}from"../index-C3ICQ6zz.js";import"vitest/utils";page.extend({getByLabelText(e,g){return new WebdriverIOLocator(getByLabelSelector(e,g))},getByRole(e,g){return new WebdriverIOLocator(getByRoleSelector(e,g))},getByTestId(e){return new WebdriverIOLocator(getByTestIdSelector(server.config.browser.locators.testIdAttribute,e))},getByAltText(e,g){return new WebdriverIOLocator(getByAltTextSelector(e,g))},getByPlaceholder(e,g){return new WebdriverIOLocator(getByPlaceholderSelector(e,g))},getByText(e,g){return new WebdriverIOLocator(getByTextSelector(e,g))},getByTitle(e,g){return new WebdriverIOLocator(getByTitleSelector(e,g))},elementLocator(e){return new WebdriverIOLocator(selectorEngine.generateSelectorSimple(e))}});class WebdriverIOLocator extends Locator{constructor(e,g){super(),this._pwSelector=e,this._container=g}get selector(){let e=this.elements().map(e=>convertElementToCssSelector(e));if(!e.length)throw getElementError(this._pwSelector,this._container||document.body);return e.join(`, `)}click(e){return super.click(processClickOptions(e))}dblClick(e){return super.dblClick(processClickOptions(e))}tripleClick(e){return super.tripleClick(processClickOptions(e))}selectOptions(e,g){let _=getWebdriverioSelectOptions(this.element(),e);return this.triggerCommand(`__vitest_selectOptions`,this.selector,_,g)}hover(e){return super.hover(processHoverOptions(e))}dropTo(e,g){return super.dropTo(e,processDragAndDropOptions(g))}locator(e){return new WebdriverIOLocator(`${this._pwSelector} >> ${e}`,this._container)}elementLocator(e){return new WebdriverIOLocator(selectorEngine.generateSelectorSimple(e),e)}}function getWebdriverioSelectOptions(e,g){let _=[...e.querySelectorAll(`option`)],v=Array.isArray(g)?g:[g];if(!v.length)return[];if(v.length>1)throw Error(`Provider "webdriverio" doesn't support selecting multiple values at once`);let y=v[0];if(typeof y!=`string`){let e=`element`in y?y.element():y,g=_.indexOf(e);if(g===-1)throw Error(`The element ${selectorEngine.previewNode(e)} was not found in the "select" options.`);return[{index:g}]}let b=_.findIndex(e=>e.value===y);if(b!==-1)return[{index:b}];let x=_.findIndex(e=>e.textContent?.trim()===y||e.ariaLabel===y);if(x===-1)throw Error(`The option "${y}" was not found in the "select" options.`);return[{index:x}]}function processClickOptions(e){if(!e||!getBrowserState().config.browser.ui)return e;let g=e;if(g.x!=null||g.y!=null){let e={};g.x!=null&&(g.x=scaleCoordinate(g.x,e)),g.y!=null&&(g.y=scaleCoordinate(g.y,e))}return e}function processHoverOptions(e){if(!e||!getBrowserState().config.browser.ui)return e;let g=e,_={};return g.xOffset!=null&&(g.xOffset=scaleCoordinate(g.xOffset,_)),g.yOffset!=null&&(g.yOffset=scaleCoordinate(g.yOffset,_)),e}function processDragAndDropOptions(e){if(!e||!getBrowserState().config.browser.ui)return e;let g={},_=e;return _.sourceX!=null&&(_.sourceX=scaleCoordinate(_.sourceX,g)),_.sourceY!=null&&(_.sourceY=scaleCoordinate(_.sourceY,g)),_.targetX!=null&&(_.targetX=scaleCoordinate(_.targetX,g)),_.targetY!=null&&(_.targetY=scaleCoordinate(_.targetY,g)),e}function scaleCoordinate(e,g){return Math.round(e*getCachedScale(g))}function getCachedScale(e){return e.scale??=getIframeScale()}
|
package/dist/providers.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { W as WebdriverBrowserProvider, P as PlaywrightBrowserProvider } from './webdriver-
|
|
1
|
+
import { W as WebdriverBrowserProvider, P as PlaywrightBrowserProvider } from './webdriver-D7k26Na7.js';
|
|
2
2
|
import '@vitest/mocker/node';
|
|
3
|
+
import 'tinyrainbow';
|
|
4
|
+
import 'vitest/node';
|
|
3
5
|
|
|
4
6
|
class PreviewBrowserProvider {
|
|
5
7
|
name = "preview";
|