testplane 9.0.0-rc.4 → 9.0.0
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/build/package.json +11 -11
- package/build/src/base-testplane.d.ts +6 -2
- package/build/src/base-testplane.js +18 -5
- package/build/src/base-testplane.js.map +1 -1
- package/build/src/browser/browser.d.ts +2 -0
- package/build/src/browser/browser.js +8 -4
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/calibrator.js +19 -17
- package/build/src/browser/calibrator.js.map +1 -1
- package/build/src/browser/camera/index.d.ts +6 -2
- package/build/src/browser/camera/index.js +18 -14
- package/build/src/browser/camera/index.js.map +1 -1
- package/build/src/browser/camera/utils.d.ts +11 -1
- package/build/src/browser/camera/utils.js +27 -1
- package/build/src/browser/camera/utils.js.map +1 -1
- package/build/src/browser/cdp/connection.d.ts +2 -39
- package/build/src/browser/cdp/connection.js +73 -353
- package/build/src/browser/cdp/connection.js.map +1 -1
- package/build/src/browser/cdp/constants.d.ts +0 -10
- package/build/src/browser/cdp/constants.js +1 -11
- package/build/src/browser/cdp/constants.js.map +1 -1
- package/build/src/browser/cdp/domains/css.d.ts +14 -6
- package/build/src/browser/cdp/domains/css.js +4 -0
- package/build/src/browser/cdp/domains/css.js.map +1 -1
- package/build/src/browser/cdp/domains/debugger.d.ts +1 -1
- package/build/src/browser/cdp/domains/fetch.d.ts +163 -0
- package/build/src/browser/cdp/domains/fetch.js +51 -0
- package/build/src/browser/cdp/domains/fetch.js.map +1 -0
- package/build/src/browser/cdp/domains/network.d.ts +290 -0
- package/build/src/browser/cdp/domains/network.js +75 -0
- package/build/src/browser/cdp/domains/network.js.map +1 -0
- package/build/src/browser/cdp/domains/page.d.ts +378 -0
- package/build/src/browser/cdp/domains/page.js +114 -0
- package/build/src/browser/cdp/domains/page.js.map +1 -0
- package/build/src/browser/cdp/emitter.d.ts +2 -1
- package/build/src/browser/cdp/emitter.js +2 -2
- package/build/src/browser/cdp/emitter.js.map +1 -1
- package/build/src/browser/cdp/error.d.ts +14 -20
- package/build/src/browser/cdp/error.js +29 -32
- package/build/src/browser/cdp/error.js.map +1 -1
- package/build/src/browser/cdp/index.d.ts +6 -0
- package/build/src/browser/cdp/index.js +21 -6
- package/build/src/browser/cdp/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/constants.js +3 -1
- package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
- package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +13 -3
- package/build/src/browser/cdp/selectivity/css-selectivity.js +211 -62
- package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/fs-cache.d.ts +12 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js +122 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.d.ts +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js +5 -3
- package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
- package/build/src/browser/cdp/selectivity/hash-reader.d.ts +2 -3
- package/build/src/browser/cdp/selectivity/hash-reader.js +39 -26
- package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -1
- package/build/src/browser/cdp/selectivity/hash-writer.d.ts +2 -2
- package/build/src/browser/cdp/selectivity/hash-writer.js +16 -62
- package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -1
- package/build/src/browser/cdp/selectivity/index.d.ts +6 -2
- package/build/src/browser/cdp/selectivity/index.js +147 -24
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +11 -4
- package/build/src/browser/cdp/selectivity/js-selectivity.js +200 -87
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/json-utils.d.ts +5 -0
- package/build/src/browser/cdp/selectivity/json-utils.js +19 -9
- package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
- package/build/src/browser/cdp/selectivity/merge-dumps/index.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/index.js +28 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/index.js.map +1 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js +39 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js.map +1 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js +129 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js.map +1 -0
- package/build/src/browser/cdp/selectivity/modes.d.ts +4 -0
- package/build/src/browser/cdp/selectivity/modes.js +11 -0
- package/build/src/browser/cdp/selectivity/modes.js.map +1 -0
- package/build/src/browser/cdp/selectivity/runner.d.ts +5 -0
- package/build/src/browser/cdp/selectivity/runner.js +114 -22
- package/build/src/browser/cdp/selectivity/runner.js.map +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +3 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js +64 -13
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/types.d.ts +6 -0
- package/build/src/browser/cdp/selectivity/types.js.map +1 -1
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.d.ts +7 -0
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.js +25 -0
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.js.map +1 -0
- package/build/src/browser/cdp/selectivity/utils.d.ts +18 -9
- package/build/src/browser/cdp/selectivity/utils.js +111 -34
- package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
- package/build/src/browser/cdp/types.d.ts +214 -0
- package/build/src/browser/cdp/utils.d.ts +0 -6
- package/build/src/browser/cdp/utils.js +1 -6
- package/build/src/browser/cdp/utils.js.map +1 -1
- package/build/src/browser/client-scripts/calibrate.js +2 -2
- package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +10 -10
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +10 -10
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
- package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
- package/build/src/browser/commands/assert-view/index.js +23 -3
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/openAndWait.js +23 -26
- package/build/src/browser/commands/openAndWait.js.map +1 -1
- package/build/src/browser/commands/restoreState/index.js +19 -8
- package/build/src/browser/commands/restoreState/index.js.map +1 -1
- package/build/src/browser/commands/saveState/index.d.ts +1 -2
- package/build/src/browser/commands/saveState/index.js +8 -12
- package/build/src/browser/commands/saveState/index.js.map +1 -1
- package/build/src/browser/commands/switchToRepl.js +27 -9
- package/build/src/browser/commands/switchToRepl.js.map +1 -1
- package/build/src/browser/existing-browser.d.ts +2 -0
- package/build/src/browser/existing-browser.js +15 -0
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/index.d.ts +8 -1
- package/build/src/browser/history/index.js +41 -17
- package/build/src/browser/history/index.js.map +1 -1
- package/build/src/browser/history/rrweb.d.ts +3 -1
- package/build/src/browser/history/rrweb.js +122 -27
- package/build/src/browser/history/rrweb.js.map +1 -1
- package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
- package/build/src/browser/new-browser.d.ts +1 -1
- package/build/src/browser/new-browser.js +6 -12
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
- package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
- package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
- package/build/src/browser/screen-shooter/debug.d.ts +3 -0
- package/build/src/browser/screen-shooter/debug.js +25 -0
- package/build/src/browser/screen-shooter/debug.js.map +1 -0
- package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
- package/build/src/browser/screen-shooter/elements-screen-shooter.js +127 -75
- package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
- package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
- package/build/src/browser/screen-shooter/operations/index.js +3 -1
- package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
- package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +2 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +133 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
- package/build/src/browser/types.d.ts +6 -4
- package/build/src/browser/wsdriver/compression.d.ts +5 -0
- package/build/src/browser/wsdriver/compression.js +79 -0
- package/build/src/browser/wsdriver/compression.js.map +1 -0
- package/build/src/browser/wsdriver/constants.d.ts +11 -0
- package/build/src/browser/wsdriver/constants.js +15 -0
- package/build/src/browser/wsdriver/constants.js.map +1 -0
- package/build/src/browser/wsdriver/debug.d.ts +2 -0
- package/build/src/browser/wsdriver/debug.js +9 -0
- package/build/src/browser/wsdriver/debug.js.map +1 -0
- package/build/src/browser/wsdriver/error.d.ts +18 -0
- package/build/src/browser/wsdriver/error.js +36 -0
- package/build/src/browser/wsdriver/error.js.map +1 -0
- package/build/src/browser/wsdriver/index.d.ts +23 -0
- package/build/src/browser/wsdriver/index.js +261 -0
- package/build/src/browser/wsdriver/index.js.map +1 -0
- package/build/src/browser/wsdriver/request.d.ts +10 -0
- package/build/src/browser/wsdriver/request.js +58 -0
- package/build/src/browser/wsdriver/request.js.map +1 -0
- package/build/src/browser/wsdriver/response.d.ts +3 -0
- package/build/src/browser/wsdriver/response.js +111 -0
- package/build/src/browser/wsdriver/response.js.map +1 -0
- package/build/src/browser/wsdriver/types.d.ts +71 -0
- package/build/src/browser/wsdriver/types.js +27 -0
- package/build/src/browser/wsdriver/types.js.map +1 -0
- package/build/src/browser-pool/basic-pool.js +3 -1
- package/build/src/browser-pool/basic-pool.js.map +1 -1
- package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
- package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
- package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
- package/build/src/cli/constants.d.ts +1 -0
- package/build/src/cli/constants.js +1 -0
- package/build/src/cli/constants.js.map +1 -1
- package/build/src/cli/index.js +3 -5
- package/build/src/cli/index.js.map +1 -1
- package/build/src/config/browser-options.js +11 -3
- package/build/src/config/browser-options.js.map +1 -1
- package/build/src/config/defaults.d.ts +7 -2
- package/build/src/config/defaults.js +10 -5
- package/build/src/config/defaults.js.map +1 -1
- package/build/src/config/index.d.ts +10 -6
- package/build/src/config/index.js +67 -42
- package/build/src/config/index.js.map +1 -1
- package/build/src/config/types.d.ts +59 -14
- package/build/src/config/types.js +15 -5
- package/build/src/config/types.js.map +1 -1
- package/build/src/config/utils.d.ts +2 -2
- package/build/src/config/utils.js +11 -6
- package/build/src/config/utils.js.map +1 -1
- package/build/src/constants/config.d.ts +0 -1
- package/build/src/constants/config.js +1 -2
- package/build/src/constants/config.js.map +1 -1
- package/build/src/constants/png.d.ts +1 -0
- package/build/src/constants/repl.d.ts +2 -0
- package/build/src/constants/repl.js +6 -0
- package/build/src/constants/repl.js.map +1 -0
- package/build/src/dev-server/index.d.ts +1 -1
- package/build/src/dev-server/index.js +1 -1
- package/build/src/dev-server/index.js.map +1 -1
- package/build/src/globals.d.ts +7 -0
- package/build/src/globals.js +10 -0
- package/build/src/globals.js.map +1 -0
- package/build/src/image.d.ts +6 -1
- package/build/src/image.js +56 -2
- package/build/src/image.js.map +1 -1
- package/build/src/index.d.ts +3 -13
- package/build/src/index.js +5 -1
- package/build/src/index.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
- package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
- package/build/src/runner/index.js +1 -0
- package/build/src/runner/index.js.map +1 -1
- package/build/src/runner/suite-monitor.d.ts +1 -1
- package/build/src/runner/test-runner/regular-test-runner.js +2 -2
- package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
- package/build/src/signal-handler.d.ts +2 -2
- package/build/src/signal-handler.js +24 -11
- package/build/src/signal-handler.js.map +1 -1
- package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
- package/build/src/test-reader/test-parser.js +3 -3
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/testplane.d.ts +4 -5
- package/build/src/testplane.js +20 -10
- package/build/src/testplane.js.map +1 -1
- package/build/src/types/globals.d.ts +16 -0
- package/build/src/types/globals.js +3 -0
- package/build/src/types/globals.js.map +1 -0
- package/build/src/types/index.d.ts +2 -3
- package/build/src/utils/crypto.d.ts +1 -0
- package/build/src/utils/crypto.js +2 -1
- package/build/src/utils/crypto.js.map +1 -1
- package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
- package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
- package/build/src/utils/repl-instrumentation/index.js +46 -0
- package/build/src/utils/repl-instrumentation/index.js.map +1 -0
- package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
- package/build/src/utils/repl-instrumentation/typescript.js +307 -0
- package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
- package/build/src/utils/repl-module-hooks.d.ts +1 -0
- package/build/src/utils/repl-module-hooks.js +111 -0
- package/build/src/utils/repl-module-hooks.js.map +1 -0
- package/build/src/utils/workers-registry.d.ts +2 -2
- package/build/src/utils/workers-registry.js +1 -0
- package/build/src/utils/workers-registry.js.map +1 -1
- package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
- package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
- package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
- package/build/src/worker/runner/browser-pool.js +4 -1
- package/build/src/worker/runner/browser-pool.js.map +1 -1
- package/build/src/worker/runner/index.js +6 -3
- package/build/src/worker/runner/index.js.map +1 -1
- package/build/src/worker/runner/sequence-test-parser.js +5 -7
- package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
- package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
- package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
- package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
- package/build/src/worker/runner/test-runner/index.d.ts +1 -0
- package/build/src/worker/runner/test-runner/index.js +47 -2
- package/build/src/worker/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/testplane-facade.js +5 -3
- package/build/src/worker/testplane-facade.js.map +1 -1
- package/build/src/worker/testplane.d.ts +1 -0
- package/build/src/worker/testplane.js +4 -1
- package/build/src/worker/testplane.js.map +1 -1
- package/build/src/ws-connection/constants.d.ts +13 -0
- package/build/src/ws-connection/constants.js +17 -0
- package/build/src/ws-connection/constants.js.map +1 -0
- package/build/src/ws-connection/error.d.ts +52 -0
- package/build/src/ws-connection/error.js +84 -0
- package/build/src/ws-connection/error.js.map +1 -0
- package/build/src/ws-connection/index.d.ts +83 -0
- package/build/src/ws-connection/index.js +397 -0
- package/build/src/ws-connection/index.js.map +1 -0
- package/build/src/ws-connection/utils.d.ts +6 -0
- package/build/src/ws-connection/utils.js +9 -0
- package/build/src/ws-connection/utils.js.map +1 -0
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/cdp/error.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/cdp/error.ts"],"names":[],"mappings":";;;AAAA,qDAOmC;AAEnC,MAAa,QAAS,SAAQ,eAAO;IACjC,WAAW;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAJD,4BAIC;AAED,MAAa,+BAAgC,SAAQ,sCAA8B;CAAG;AAAtF,0EAAsF;AACtF,MAAa,uBAAwB,SAAQ,8BAAsB;CAAG;AAAtE,0DAAsE;AACtE,MAAa,4BAA6B,SAAQ,mCAA2B;CAAG;AAAhF,oEAAgF;AAChF,MAAa,yBAA0B,SAAQ,gCAAwB;CAAG;AAA1E,8DAA0E;AAC1E,MAAa,sBAAuB,SAAQ,6BAAqB;CAAG;AAApE,wDAAoE;AAEpE,MAAa,eAAgB,SAAQ,eAAO;IACxC,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,2BAA2B;QAC3B,6BAA6B;QAC7B,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;IAC9E,CAAC;CACJ;AAXD,0CAWC"}
|
|
@@ -7,6 +7,9 @@ import { CDPDebugger } from "./domains/debugger";
|
|
|
7
7
|
import { CDPRuntime } from "./domains/runtime";
|
|
8
8
|
import { CDPDom } from "./domains/dom";
|
|
9
9
|
import { CDPCss } from "./domains/css";
|
|
10
|
+
import { CDPNetwork } from "./domains/network";
|
|
11
|
+
import { CDFetch } from "./domains/fetch";
|
|
12
|
+
import { CDPPage } from "./domains/page";
|
|
10
13
|
export declare class CDP {
|
|
11
14
|
private readonly _connection;
|
|
12
15
|
readonly target: CDPTarget;
|
|
@@ -15,6 +18,9 @@ export declare class CDP {
|
|
|
15
18
|
readonly runtime: CDPRuntime;
|
|
16
19
|
readonly dom: CDPDom;
|
|
17
20
|
readonly css: CDPCss;
|
|
21
|
+
readonly network: CDPNetwork;
|
|
22
|
+
readonly fetch: CDFetch;
|
|
23
|
+
readonly page: CDPPage;
|
|
18
24
|
static create(browser: Browser): Promise<CDP | null>;
|
|
19
25
|
constructor(connection: CDPConnection);
|
|
20
26
|
request<T = Record<string, unknown>>(method: CDPRequest["method"], params?: CDPRequest["params"] | null, cdpSessionId?: CDPSessionId | null): Promise<T>;
|
|
@@ -8,6 +8,9 @@ const debugger_1 = require("./domains/debugger");
|
|
|
8
8
|
const runtime_1 = require("./domains/runtime");
|
|
9
9
|
const dom_1 = require("./domains/dom");
|
|
10
10
|
const css_1 = require("./domains/css");
|
|
11
|
+
const network_1 = require("./domains/network");
|
|
12
|
+
const fetch_1 = require("./domains/fetch");
|
|
13
|
+
const page_1 = require("./domains/page");
|
|
11
14
|
class CDP {
|
|
12
15
|
static async create(browser) {
|
|
13
16
|
// "isChrome" is "true" when automationProtocol is "devtools"
|
|
@@ -26,6 +29,9 @@ class CDP {
|
|
|
26
29
|
this.runtime = new runtime_1.CDPRuntime(connection);
|
|
27
30
|
this.dom = new dom_1.CDPDom(connection);
|
|
28
31
|
this.css = new css_1.CDPCss(connection);
|
|
32
|
+
this.network = new network_1.CDPNetwork(connection);
|
|
33
|
+
this.fetch = new fetch_1.CDFetch(connection);
|
|
34
|
+
this.page = new page_1.CDPPage(connection);
|
|
29
35
|
this._connection.onEventMessage = this._onEventMessage.bind(this);
|
|
30
36
|
}
|
|
31
37
|
async request(method, params, cdpSessionId) {
|
|
@@ -41,22 +47,31 @@ class CDP {
|
|
|
41
47
|
const [domain, method] = cdpEventMessage.method.split(".", 2);
|
|
42
48
|
switch (domain) {
|
|
43
49
|
case "Target":
|
|
44
|
-
this.target.emit(method, cdpEventMessage.params);
|
|
50
|
+
this.target.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
45
51
|
break;
|
|
46
52
|
case "Profiler":
|
|
47
|
-
this.profiler.emit(method, cdpEventMessage.params);
|
|
53
|
+
this.profiler.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
48
54
|
break;
|
|
49
55
|
case "Debugger":
|
|
50
|
-
this.debugger.emit(method, cdpEventMessage.params);
|
|
56
|
+
this.debugger.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
51
57
|
break;
|
|
52
58
|
case "Runtime":
|
|
53
|
-
this.runtime.emit(method, cdpEventMessage.params);
|
|
59
|
+
this.runtime.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
54
60
|
break;
|
|
55
61
|
case "DOM":
|
|
56
|
-
this.dom.emit(method, cdpEventMessage.params);
|
|
62
|
+
this.dom.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
57
63
|
break;
|
|
58
64
|
case "CSS":
|
|
59
|
-
this.css.emit(method, cdpEventMessage.params);
|
|
65
|
+
this.css.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
66
|
+
break;
|
|
67
|
+
case "Network":
|
|
68
|
+
this.network.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
69
|
+
break;
|
|
70
|
+
case "Fetch":
|
|
71
|
+
this.fetch.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
72
|
+
break;
|
|
73
|
+
case "Page":
|
|
74
|
+
this.page.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
|
|
60
75
|
break;
|
|
61
76
|
}
|
|
62
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/cdp/index.ts"],"names":[],"mappings":";;;AAEA,6CAA6C;AAC7C,6CAA6C;AAC7C,iDAAiD;AACjD,iDAAiD;AACjD,+CAA+C;AAC/C,uCAAuC;AACvC,uCAAuC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/cdp/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WEBPACK_PROTOCOL = void 0;
|
|
3
|
+
exports.SELECTIVITY_CACHE_READY_SUFFIX = exports.SELECTIVITY_CACHE_DIRECTIRY = exports.WEBPACK_PROTOCOL = void 0;
|
|
4
4
|
exports.WEBPACK_PROTOCOL = "webpack://";
|
|
5
|
+
exports.SELECTIVITY_CACHE_DIRECTIRY = "testplane-selectivity-cache";
|
|
6
|
+
exports.SELECTIVITY_CACHE_READY_SUFFIX = "-ready";
|
|
5
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAC5D,QAAA,8BAA8B,GAAG,QAAQ,CAAC"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import type { CDP } from "..";
|
|
2
2
|
import type { CDPSessionId } from "../types";
|
|
3
|
+
import type { SelectivityMapSourceMapUrlFn } from "../../../config/types";
|
|
3
4
|
export declare class CSSSelectivity {
|
|
4
5
|
private readonly _cdp;
|
|
5
|
-
private readonly
|
|
6
|
+
private readonly _cdpSessionId;
|
|
7
|
+
private readonly _wdSessionId;
|
|
6
8
|
private readonly _sourceRoot;
|
|
9
|
+
private readonly _mapSourceMapUrl;
|
|
7
10
|
private _cssOnStyleSheetAddedFn;
|
|
8
|
-
private _stylesSourceMap;
|
|
9
|
-
|
|
11
|
+
private readonly _stylesSourceMap;
|
|
12
|
+
private readonly _styleSheetIdToSourceMapUrl;
|
|
13
|
+
private readonly _coverageResult;
|
|
14
|
+
constructor(cdp: CDP, cdpSessionId: CDPSessionId, wdSessionId: string, sourceRoot: string, mapSourceMapUrl: SelectivityMapSourceMapUrlFn | null);
|
|
10
15
|
private _processStyle;
|
|
16
|
+
private _ensureStylesAreLoading;
|
|
17
|
+
private _waitForLoadingStyles;
|
|
18
|
+
private _saveSessionCache;
|
|
19
|
+
private _loadSessionCache;
|
|
11
20
|
start(): Promise<void>;
|
|
21
|
+
takeCoverageSnapshot(): Promise<void>;
|
|
12
22
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
13
23
|
stop(drop?: boolean): Promise<Set<string> | null>;
|
|
14
24
|
}
|
|
@@ -9,103 +9,252 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
9
9
|
const node_url_1 = require("node:url");
|
|
10
10
|
const constants_1 = require("../../../error-snippets/constants");
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
|
+
const fs_cache_1 = require("./fs-cache");
|
|
13
|
+
const debug_1 = require("./debug");
|
|
12
14
|
class CSSSelectivity {
|
|
13
|
-
constructor(cdp,
|
|
15
|
+
constructor(cdp, cdpSessionId, wdSessionId, sourceRoot, mapSourceMapUrl) {
|
|
14
16
|
this._cssOnStyleSheetAddedFn = null;
|
|
15
17
|
this._stylesSourceMap = {};
|
|
18
|
+
this._styleSheetIdToSourceMapUrl = {};
|
|
19
|
+
this._coverageResult = [];
|
|
16
20
|
this._cdp = cdp;
|
|
17
|
-
this.
|
|
21
|
+
this._cdpSessionId = cdpSessionId;
|
|
22
|
+
this._wdSessionId = wdSessionId;
|
|
18
23
|
this._sourceRoot = sourceRoot;
|
|
24
|
+
this._mapSourceMapUrl = mapSourceMapUrl;
|
|
19
25
|
}
|
|
20
|
-
_processStyle({ header: { styleSheetId, sourceURL, sourceMapURL } }) {
|
|
21
|
-
if (!this.
|
|
26
|
+
_processStyle({ header: { styleSheetId, sourceURL, sourceMapURL } }, cdpSessionId) {
|
|
27
|
+
if (!this._cdpSessionId || cdpSessionId !== this._cdpSessionId) {
|
|
22
28
|
return;
|
|
23
29
|
}
|
|
24
|
-
if (!
|
|
30
|
+
if (!sourceMapURL || sourceURL.startsWith("chrome-error://")) {
|
|
25
31
|
this._stylesSourceMap[styleSheetId] ||= null;
|
|
26
32
|
return;
|
|
27
33
|
}
|
|
28
|
-
this._stylesSourceMap[styleSheetId]
|
|
29
|
-
|
|
30
|
-
async start() {
|
|
31
|
-
const cssOnStyleSheetAdded = (this._cssOnStyleSheetAddedFn = this._processStyle.bind(this));
|
|
32
|
-
this._cdp.css.on("styleSheetAdded", cssOnStyleSheetAdded);
|
|
33
|
-
await Promise.all([
|
|
34
|
-
this._cdp.target.setAutoAttach(this._sessionId, { autoAttach: true, waitForDebuggerOnStart: false }),
|
|
35
|
-
this._cdp.dom
|
|
36
|
-
.enable(this._sessionId)
|
|
37
|
-
.then(() => this._cdp.css.enable(this._sessionId))
|
|
38
|
-
.then(() => this._cdp.css.startRuleUsageTracking(this._sessionId)),
|
|
39
|
-
]);
|
|
40
|
-
}
|
|
41
|
-
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
42
|
-
async stop(drop) {
|
|
43
|
-
if (drop) {
|
|
44
|
-
this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
|
|
45
|
-
return null;
|
|
34
|
+
if (this._stylesSourceMap[styleSheetId]) {
|
|
35
|
+
return;
|
|
46
36
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
let sourceMapResolvedUrl = (0, node_url_1.resolve)(sourceURL, sourceMapURL);
|
|
38
|
+
if (!URL.canParse(sourceMapResolvedUrl)) {
|
|
39
|
+
this._stylesSourceMap[styleSheetId] ||= null;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const mapResult = this._mapSourceMapUrl
|
|
43
|
+
? this._mapSourceMapUrl({ type: "css", sourceUrl: sourceURL, sourceMapUrl: sourceMapResolvedUrl })
|
|
44
|
+
: true;
|
|
45
|
+
if (!mapResult) {
|
|
46
|
+
this._stylesSourceMap[styleSheetId] ||= null;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (mapResult !== true) {
|
|
50
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = sourceMapResolvedUrl = mapResult;
|
|
51
|
+
}
|
|
52
|
+
// Embedded source maps are not cached on file system because of their large cache key
|
|
53
|
+
if ((0, utils_1.isDataProtocol)(sourceMapResolvedUrl)) {
|
|
54
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = null;
|
|
55
|
+
this._stylesSourceMap[styleSheetId] ||= (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = sourceMapResolvedUrl;
|
|
59
|
+
this._stylesSourceMap[styleSheetId] ||= (0, fs_cache_1.hasCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl).then(isCached => {
|
|
60
|
+
return isCached
|
|
61
|
+
? true
|
|
62
|
+
: (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._cdpSessionId)
|
|
63
|
+
.then(data => (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl, data)
|
|
64
|
+
.then(() => true)
|
|
65
|
+
.catch(err => {
|
|
66
|
+
(0, debug_1.debugSelectivity)(`Couldn't offload asset from "${sourceMapResolvedUrl}" to fs-cache: %O`, err);
|
|
67
|
+
return data;
|
|
68
|
+
}))
|
|
69
|
+
.catch((err) => err);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// If we haven't got "styleSheetAdded" event for the script, pull up styles + source map manually
|
|
74
|
+
_ensureStylesAreLoading(ruleUsage) {
|
|
75
|
+
ruleUsage.forEach(({ styleSheetId }) => {
|
|
50
76
|
if (Object.hasOwn(this._stylesSourceMap, styleSheetId)) {
|
|
51
77
|
return;
|
|
52
78
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
79
|
+
this._stylesSourceMap[styleSheetId] ||= (async () => {
|
|
80
|
+
// In case SourceMapUrl was restored from session-cache, but SourceMap itself wasn't
|
|
81
|
+
if (this._styleSheetIdToSourceMapUrl[styleSheetId]) {
|
|
82
|
+
const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
|
|
83
|
+
const cachedSourceMap = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl);
|
|
84
|
+
if (cachedSourceMap) {
|
|
85
|
+
return cachedSourceMap;
|
|
86
|
+
}
|
|
87
|
+
const sourceMap = await (0, utils_1.fetchTextWithBrowserFallback)(sourceMapUrl, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
|
|
88
|
+
if (!(sourceMap instanceof Error)) {
|
|
89
|
+
(0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl, sourceMap).catch(() => { });
|
|
90
|
+
}
|
|
91
|
+
return sourceMap;
|
|
92
|
+
}
|
|
93
|
+
const sourceCode = await this._cdp.css
|
|
94
|
+
.getStyleSheetText(this._cdpSessionId, styleSheetId)
|
|
95
|
+
.then(res => res.text)
|
|
96
|
+
.catch((err) => err);
|
|
58
97
|
if (sourceCode instanceof Error) {
|
|
59
98
|
return sourceCode;
|
|
60
99
|
}
|
|
61
100
|
const sourceMapsStartIndex = sourceCode.lastIndexOf(constants_1.CSS_SOURCE_MAP_URL_COMMENT);
|
|
62
101
|
const sourceMapsEndIndex = sourceCode.indexOf("*/", sourceMapsStartIndex);
|
|
102
|
+
// Source maps are not generated for this source file
|
|
63
103
|
if (sourceMapsStartIndex === -1) {
|
|
64
|
-
return
|
|
104
|
+
return null;
|
|
65
105
|
}
|
|
66
106
|
const sourceMapURL = sourceMapsEndIndex === -1
|
|
67
107
|
? sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length)
|
|
68
108
|
: sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length, sourceMapsEndIndex);
|
|
69
|
-
const isSourceMapEmbedded = new node_url_1.URL(sourceMapURL).protocol === "data:";
|
|
70
109
|
// If we encounter css stylesheet, that was not reported by "styleSheetAdded"
|
|
71
110
|
// We can only get sourcemaps if they are inlined
|
|
72
111
|
// Otherwise, we can't resolve actual sourcemaps url because we dont know css styles url itself.
|
|
73
|
-
if (!
|
|
112
|
+
if (!(0, utils_1.isDataProtocol)(sourceMapURL)) {
|
|
74
113
|
return new Error([
|
|
75
114
|
`Missed stylesheet url for stylesheet id ${styleSheetId}.`,
|
|
76
|
-
"
|
|
115
|
+
"Looks like Chrome Devtools 'styleSheetAdded' event was lost",
|
|
116
|
+
"It could happen due to network instability",
|
|
117
|
+
"Switching to inline sourcemaps for CSS will help at the cost of increased RAM usage",
|
|
77
118
|
].join("\n"));
|
|
78
119
|
}
|
|
79
|
-
return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this.
|
|
80
|
-
});
|
|
120
|
+
return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
|
|
121
|
+
})();
|
|
81
122
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
123
|
+
}
|
|
124
|
+
async _waitForLoadingStyles() {
|
|
125
|
+
await Promise.allSettled(Object.values(this._stylesSourceMap));
|
|
126
|
+
}
|
|
127
|
+
async _saveSessionCache() {
|
|
128
|
+
const sessionCache = {};
|
|
129
|
+
for (const styleSheetId in this._styleSheetIdToSourceMapUrl) {
|
|
130
|
+
const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
|
|
131
|
+
const sourceMap = await this._stylesSourceMap[styleSheetId];
|
|
132
|
+
sessionCache[styleSheetId] = {
|
|
133
|
+
sourceMapUrl,
|
|
134
|
+
sourceMap: sourceMap instanceof Error ? sourceMap.message : sourceMap,
|
|
135
|
+
isError: sourceMap instanceof Error,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.CssSessionCache, this._wdSessionId, JSON.stringify(sessionCache), {
|
|
139
|
+
overwrite: true,
|
|
140
|
+
}).catch(err => {
|
|
141
|
+
(0, debug_1.debugSelectivity)(`Couldn't save session cache for session '%s': %O`, this._wdSessionId, err);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
async _loadSessionCache() {
|
|
145
|
+
const sessionCacheString = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.CssSessionCache, this._wdSessionId);
|
|
146
|
+
if (!sessionCacheString) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
let sessionCache = null;
|
|
150
|
+
try {
|
|
151
|
+
sessionCache = JSON.parse(sessionCacheString);
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
(0, debug_1.debugSelectivity)("CSS Session cache is invalid JSON for session '%s': %O", this._wdSessionId, err);
|
|
155
|
+
}
|
|
156
|
+
if (!sessionCache) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
for (const styleSheetId in sessionCache) {
|
|
160
|
+
const cachedData = sessionCache[styleSheetId];
|
|
161
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = cachedData.sourceMapUrl;
|
|
162
|
+
if (!cachedData.isError) {
|
|
163
|
+
this._stylesSourceMap[styleSheetId] = Promise.resolve(cachedData.sourceMap);
|
|
89
164
|
}
|
|
90
|
-
|
|
91
|
-
|
|
165
|
+
else {
|
|
166
|
+
// If source map url was received, we can try to restore cache
|
|
167
|
+
// If cache can't be restored, session should be considered as broken
|
|
168
|
+
if (!cachedData.sourceMapUrl) {
|
|
169
|
+
const originalError = cachedData.sourceMap;
|
|
170
|
+
const errorMessage = [
|
|
171
|
+
"Selectivity: session is broken. Couldn't restore source map from previous test:",
|
|
172
|
+
"\t- " + originalError.split("\n").pop(),
|
|
173
|
+
].join("\n");
|
|
174
|
+
// Not throwing the error right away because we might not need
|
|
175
|
+
this._stylesSourceMap[styleSheetId] = Promise.resolve(new Error(errorMessage));
|
|
176
|
+
}
|
|
92
177
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async start() {
|
|
181
|
+
const cssOnStyleSheetAdded = (this._cssOnStyleSheetAddedFn = this._processStyle.bind(this));
|
|
182
|
+
this._cdp.css.on("styleSheetAdded", cssOnStyleSheetAdded);
|
|
183
|
+
const [startTrackingResult, loadSessionCacheResult] = await Promise.all([
|
|
184
|
+
this._cdp.css.startRuleUsageTracking(this._cdpSessionId).catch((err) => err),
|
|
185
|
+
this._loadSessionCache().catch((err) => err),
|
|
186
|
+
]);
|
|
187
|
+
if (startTrackingResult instanceof Error) {
|
|
188
|
+
throw startTrackingResult;
|
|
189
|
+
}
|
|
190
|
+
if (loadSessionCacheResult instanceof Error) {
|
|
191
|
+
(0, debug_1.debugSelectivity)("Couldn't load session cache for session '%s': %O", this._wdSessionId, loadSessionCacheResult);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async takeCoverageSnapshot() {
|
|
195
|
+
const coveragePart = await this._cdp.css.takeCoverageDelta(this._cdpSessionId);
|
|
196
|
+
this._ensureStylesAreLoading(coveragePart.coverage);
|
|
197
|
+
await this._waitForLoadingStyles();
|
|
198
|
+
this._coverageResult.push(...coveragePart.coverage);
|
|
199
|
+
}
|
|
200
|
+
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
201
|
+
async stop(drop) {
|
|
202
|
+
try {
|
|
203
|
+
if (drop) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
const coverageLastPart = await this._cdp.css.stopRuleUsageTracking(this._cdpSessionId);
|
|
207
|
+
const coverageStyles = [...this._coverageResult, ...coverageLastPart.ruleUsage];
|
|
208
|
+
this._ensureStylesAreLoading(coverageLastPart.ruleUsage);
|
|
209
|
+
const totalDependingSourceFiles = new Set();
|
|
210
|
+
const grouppedByStyleSheetCoverage = (0, lodash_1.groupBy)(coverageStyles, "styleSheetId");
|
|
211
|
+
const styleSheetIds = Object.keys(grouppedByStyleSheetCoverage);
|
|
212
|
+
await Promise.all(styleSheetIds.map(async (styleSheetId) => {
|
|
213
|
+
const sourceMap = await this._stylesSourceMap[styleSheetId];
|
|
214
|
+
const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
|
|
215
|
+
if (!sourceMap) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (sourceMap instanceof Error) {
|
|
219
|
+
throw new Error([
|
|
220
|
+
`CSS Selectivity: Couldn't load source maps for stylesheet id ${styleSheetId}:`,
|
|
221
|
+
String(sourceMap),
|
|
222
|
+
].join("\n"));
|
|
223
|
+
}
|
|
224
|
+
if ((0, utils_1.isCachedOnFs)(sourceMap) && !sourceMapUrl) {
|
|
225
|
+
throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
|
|
226
|
+
}
|
|
227
|
+
const sourceMapString = (0, utils_1.isCachedOnFs)(sourceMap)
|
|
228
|
+
? await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
|
|
229
|
+
: sourceMap;
|
|
230
|
+
if (!sourceMapString) {
|
|
231
|
+
throw new Error(`CSS Selectivity: fs-cache is broken for ${sourceMapUrl}`);
|
|
232
|
+
}
|
|
233
|
+
const rawSourceMap = (0, utils_1.patchSourceMapSources)(JSON.parse(sourceMapString), this._sourceRoot);
|
|
234
|
+
// We could check "if stylesheet was used" with utils.extractSourceFilesDeps
|
|
235
|
+
// But we dont, because if stylesheet was not used, it could be used after change
|
|
236
|
+
// So its safe to think "if stylesheet was loaded, it was used"
|
|
237
|
+
rawSourceMap.sources.forEach(sourceFilePath => {
|
|
238
|
+
// Ignore generated postcss styles:
|
|
239
|
+
// https://github.com/postcss/postcss/blob/eae46db765d752cf8f40c4fa2b0b85030079c43d/lib/map-generator.js#L122
|
|
240
|
+
if (sourceFilePath === "<no source>") {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
// "Each entry is either a string that is a (potentially relative) URL", so we are using posix.jojn
|
|
244
|
+
// https://tc39.es/ecma426/#sec-source-map-format
|
|
245
|
+
// Except for file path with protocol ("turbopack://", "file://")
|
|
246
|
+
const sourceRootBasedPath = (0, utils_1.hasProtocol)(sourceFilePath)
|
|
247
|
+
? sourceFilePath
|
|
248
|
+
: node_path_1.default.posix.join(rawSourceMap.sourceRoot || "", sourceFilePath);
|
|
249
|
+
totalDependingSourceFiles.add(sourceRootBasedPath);
|
|
250
|
+
});
|
|
251
|
+
}));
|
|
252
|
+
await this._saveSessionCache();
|
|
253
|
+
return totalDependingSourceFiles;
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
|
|
257
|
+
}
|
|
109
258
|
}
|
|
110
259
|
}
|
|
111
260
|
exports.CSSSelectivity = CSSSelectivity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAiC;AACjC,0DAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const CacheType: {
|
|
2
|
+
readonly TestFile: "t";
|
|
3
|
+
readonly Asset: "a";
|
|
4
|
+
readonly CssSessionCache: "cs";
|
|
5
|
+
};
|
|
6
|
+
type CacheTypeValue = (typeof CacheType)[keyof typeof CacheType];
|
|
7
|
+
export declare const hasCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<boolean>;
|
|
8
|
+
export declare const getCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<string | null>;
|
|
9
|
+
export declare const setCachedSelectivityFile: (cacheType: CacheTypeValue, key: string, utf8Contents: string, { overwrite }?: {
|
|
10
|
+
overwrite?: boolean | undefined;
|
|
11
|
+
}) => Promise<void>;
|
|
12
|
+
export {};
|