@remotion/renderer 4.0.0-imgloading.2 → 4.0.0-lambda.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/assets/calculate-asset-positions.d.ts.map +1 -0
- package/dist/assets/calculate-asset-positions.js.map +1 -0
- package/dist/assets/calculate-atempo.d.ts.map +1 -0
- package/dist/assets/calculate-atempo.js.map +1 -0
- package/dist/assets/cleanup-assets.d.ts +2 -0
- package/dist/assets/cleanup-assets.js +2 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
- package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts +6 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
- package/dist/assets/download-and-map-assets-to-file.js +46 -19
- package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
- package/dist/assets/download-file.d.ts.map +1 -0
- package/dist/assets/download-file.js.map +1 -0
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
- package/dist/assets/ffmpeg-volume-expression.js +15 -12
- package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
- package/dist/assets/flatten-volume-array.d.ts.map +1 -0
- package/dist/assets/flatten-volume-array.js.map +1 -0
- package/dist/assets/get-audio-channels.d.ts +5 -2
- package/dist/assets/get-audio-channels.d.ts.map +1 -0
- package/dist/assets/get-audio-channels.js +15 -4
- package/dist/assets/get-audio-channels.js.map +1 -0
- package/dist/assets/read-file.d.ts.map +1 -0
- package/dist/assets/read-file.js.map +1 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
- package/dist/assets/sanitize-filename.d.ts.map +1 -0
- package/dist/assets/sanitize-filename.js.map +1 -0
- package/dist/assets/sanitize-filepath.d.ts.map +1 -0
- package/dist/assets/sanitize-filepath.js.map +1 -0
- package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
- package/dist/assets/truncate-utf8-bytes.js.map +1 -0
- package/dist/assets/types.d.ts.map +1 -0
- package/dist/assets/types.js.map +1 -0
- package/dist/browser/Accessibility.d.ts +175 -0
- package/dist/browser/Accessibility.js +423 -0
- package/dist/browser/AriaQueryHandler.d.ts +20 -0
- package/dist/browser/AriaQueryHandler.js +108 -0
- package/dist/browser/Browser.d.ts +209 -0
- package/dist/browser/Browser.js +402 -0
- package/dist/browser/BrowserConnector.d.ts +26 -0
- package/dist/browser/BrowserConnector.js +49 -0
- package/dist/browser/BrowserFetcher.d.ts +89 -0
- package/dist/browser/BrowserFetcher.js +512 -0
- package/dist/browser/BrowserRunner.d.ts +39 -0
- package/dist/browser/BrowserRunner.js +308 -0
- package/dist/browser/Connection.d.ts +49 -0
- package/dist/browser/Connection.js +262 -0
- package/dist/browser/ConnectionTransport.d.ts +21 -0
- package/dist/browser/ConnectionTransport.js +17 -0
- package/dist/browser/ConsoleMessage.d.ts +55 -0
- package/dist/browser/ConsoleMessage.js +75 -0
- package/dist/browser/Coverage.d.ts +180 -0
- package/dist/browser/Coverage.js +371 -0
- package/dist/browser/DOMWorld.d.ts +50 -0
- package/dist/browser/DOMWorld.js +280 -0
- package/dist/browser/Debug.d.ts +19 -0
- package/dist/browser/Debug.js +42 -0
- package/dist/browser/DeviceDescriptors.d.ts +40 -0
- package/dist/browser/DeviceDescriptors.js +1407 -0
- package/dist/browser/EmulationManager.d.ts +7 -0
- package/dist/browser/EmulationManager.js +40 -0
- package/dist/browser/Errors.d.ts +25 -0
- package/dist/browser/Errors.js +35 -0
- package/dist/browser/EvalTypes.d.ts +27 -0
- package/dist/browser/EvalTypes.js +17 -0
- package/dist/browser/EventEmitter.d.ts +70 -0
- package/dist/browser/EventEmitter.js +102 -0
- package/dist/browser/ExecutionContext.d.ts +35 -0
- package/dist/browser/ExecutionContext.js +190 -0
- package/dist/browser/FileChooser.d.ts +56 -0
- package/dist/browser/FileChooser.js +86 -0
- package/dist/browser/FrameManager.d.ts +96 -0
- package/dist/browser/FrameManager.js +512 -0
- package/dist/browser/HTTPRequest.d.ts +42 -0
- package/dist/browser/HTTPRequest.js +82 -0
- package/dist/browser/HTTPResponse.d.ts +100 -0
- package/dist/browser/HTTPResponse.js +196 -0
- package/dist/browser/Input.d.ts +355 -0
- package/dist/browser/Input.js +592 -0
- package/dist/browser/JSHandle.d.ts +36 -0
- package/dist/browser/JSHandle.js +93 -0
- package/dist/browser/LaunchOptions.d.ts +117 -0
- package/dist/browser/LaunchOptions.js +17 -0
- package/dist/browser/Launcher.d.ts +9 -0
- package/dist/browser/Launcher.js +602 -0
- package/dist/browser/LifecycleWatcher.d.ts +29 -0
- package/dist/browser/LifecycleWatcher.js +193 -0
- package/dist/browser/NetworkConditions.d.ts +26 -0
- package/dist/browser/NetworkConditions.js +33 -0
- package/dist/browser/NetworkEventManager.d.ts +35 -0
- package/dist/browser/NetworkEventManager.js +128 -0
- package/dist/browser/NetworkManager.d.ts +36 -0
- package/dist/browser/NetworkManager.js +284 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +11 -0
- package/dist/browser/NodeWebSocketTransport.js +90 -0
- package/dist/browser/PDFOptions.d.ts +165 -0
- package/dist/browser/PDFOptions.js +34 -0
- package/dist/browser/PipeTransport.d.ts +10 -0
- package/dist/browser/PipeTransport.js +86 -0
- package/dist/browser/Product.d.ts +16 -0
- package/dist/browser/Product.js +17 -0
- package/dist/browser/Puppeteer.d.ts +35 -0
- package/dist/browser/Puppeteer.js +17 -0
- package/dist/browser/PuppeteerNode.d.ts +92 -0
- package/dist/browser/PuppeteerNode.js +143 -0
- package/dist/browser/PuppeteerViewport.d.ts +5 -0
- package/dist/browser/PuppeteerViewport.js +2 -0
- package/dist/browser/QueryHandler.d.ts +64 -0
- package/dist/browser/QueryHandler.js +183 -0
- package/dist/browser/ScreenshotOptions.d.ts +14 -0
- package/dist/browser/ScreenshotOptions.js +2 -0
- package/dist/browser/SecurityDetails.d.ts +55 -0
- package/dist/browser/SecurityDetails.js +95 -0
- package/dist/browser/Target.d.ts +61 -0
- package/dist/browser/Target.js +146 -0
- package/dist/browser/TaskQueue.d.ts +20 -0
- package/dist/browser/TaskQueue.js +47 -0
- package/dist/browser/TimeoutSettings.d.ts +23 -0
- package/dist/browser/TimeoutSettings.js +62 -0
- package/dist/browser/Tracing.d.ts +45 -0
- package/dist/browser/Tracing.js +136 -0
- package/dist/browser/USKeyboardLayout.d.ts +39 -0
- package/dist/browser/USKeyboardLayout.js +406 -0
- package/dist/browser/WebWorker.d.ts +96 -0
- package/dist/browser/WebWorker.js +122 -0
- package/dist/browser/assert.d.ts +21 -0
- package/dist/browser/assert.js +29 -0
- package/dist/browser/compat.d.ts +2 -0
- package/dist/browser/compat.js +17 -0
- package/dist/browser/create-browser-fetcher.d.ts +17 -0
- package/dist/browser/create-browser-fetcher.js +140 -0
- package/dist/browser/dialog.d.ts +70 -0
- package/dist/browser/dialog.js +114 -0
- package/dist/browser/environment.d.ts +16 -0
- package/dist/browser/environment.js +19 -0
- package/dist/browser/fetch.d.ts +16 -0
- package/dist/browser/fetch.js +46 -0
- package/dist/browser/find-up.d.ts +4 -0
- package/dist/browser/find-up.js +85 -0
- package/dist/browser/get-download-destination.d.ts +1 -0
- package/dist/browser/get-download-destination.js +38 -0
- package/dist/browser/mitt/index.d.ts +22 -0
- package/dist/browser/mitt/index.js +49 -0
- package/dist/browser/node.d.ts +2 -0
- package/dist/browser/node.js +9 -0
- package/dist/browser/page.d.ts +78 -0
- package/dist/browser/page.js +277 -0
- package/dist/browser/pkg-dir.d.ts +3 -0
- package/dist/browser/pkg-dir.js +13 -0
- package/dist/browser/revisions.d.ts +21 -0
- package/dist/browser/revisions.js +22 -0
- package/dist/browser/util.d.ts +46 -0
- package/dist/browser/util.js +161 -0
- package/dist/browser-log.d.ts.map +1 -0
- package/dist/browser-log.js.map +1 -0
- package/dist/calculate-ffmpeg-filters.d.ts.map +1 -0
- package/dist/calculate-ffmpeg-filters.js +2 -2
- package/dist/calculate-ffmpeg-filters.js.map +1 -0
- package/dist/can-use-parallel-encoding.d.ts.map +1 -0
- package/dist/can-use-parallel-encoding.js.map +1 -0
- package/dist/chunk.d.ts.map +1 -0
- package/dist/chunk.js.map +1 -0
- package/dist/combine-videos.d.ts +2 -1
- package/dist/combine-videos.d.ts.map +1 -0
- package/dist/combine-videos.js +8 -1
- package/dist/combine-videos.js.map +1 -0
- package/dist/convert-to-pcm.d.ts.map +1 -0
- package/dist/convert-to-pcm.js.map +1 -0
- package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
- package/dist/create-ffmpeg-complex-filter.js.map +1 -0
- package/dist/create-ffmpeg-merge-filter.d.ts.map +1 -0
- package/dist/create-ffmpeg-merge-filter.js.map +1 -0
- package/dist/create-silent-audio.d.ts.map +1 -0
- package/dist/create-silent-audio.js.map +1 -0
- package/dist/cycle-browser-tabs.d.ts +2 -1
- package/dist/cycle-browser-tabs.d.ts.map +1 -0
- package/dist/cycle-browser-tabs.js +9 -2
- package/dist/cycle-browser-tabs.js.map +1 -0
- package/dist/delay-render-embedded-stack.d.ts.map +1 -0
- package/dist/delay-render-embedded-stack.js.map +1 -0
- package/dist/delete-directory.d.ts.map +1 -0
- package/dist/delete-directory.js.map +1 -0
- package/dist/ensure-frames-in-order.d.ts.map +1 -0
- package/dist/ensure-frames-in-order.js.map +1 -0
- package/dist/ensure-output-directory.d.ts.map +1 -0
- package/dist/ensure-output-directory.js.map +1 -0
- package/dist/ensure-presentation-timestamp.d.ts +1 -0
- package/dist/ensure-presentation-timestamp.js +57 -0
- package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
- package/dist/error-handling/handle-javascript-exception.js.map +1 -0
- package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
- package/dist/error-handling/symbolicate-error.js.map +1 -0
- package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
- package/dist/error-handling/symbolicateable-error.js.map +1 -0
- package/dist/extract-frame-from-video.d.ts +11 -0
- package/dist/extract-frame-from-video.js +197 -0
- package/dist/ffmpeg-filter-file.d.ts.map +1 -0
- package/dist/ffmpeg-filter-file.js.map +1 -0
- package/dist/ffmpeg-flags.d.ts.map +1 -0
- package/dist/ffmpeg-flags.js.map +1 -0
- package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
- package/dist/frame-to-ffmpeg-timestamp.js +8 -0
- package/dist/get-audio-codec-name.d.ts.map +1 -0
- package/dist/get-audio-codec-name.js.map +1 -0
- package/dist/get-browser-instance.d.ts.map +1 -0
- package/dist/get-browser-instance.js.map +1 -0
- package/dist/get-codec-name.d.ts.map +1 -0
- package/dist/get-codec-name.js.map +1 -0
- package/dist/get-compositions.d.ts +5 -2
- package/dist/get-compositions.d.ts.map +1 -0
- package/dist/get-compositions.js +23 -5
- package/dist/get-compositions.js.map +1 -0
- package/dist/get-concurrency.d.ts.map +1 -0
- package/dist/get-concurrency.js.map +1 -0
- package/dist/get-duration-from-frame-range.d.ts.map +1 -0
- package/dist/get-duration-from-frame-range.js.map +1 -0
- package/dist/get-duration-of-asset.d.ts +7 -0
- package/dist/get-duration-of-asset.js +36 -0
- package/dist/get-extension-from-codec.d.ts.map +1 -0
- package/dist/get-extension-from-codec.js.map +1 -0
- package/dist/get-frame-to-render.d.ts.map +1 -0
- package/dist/get-frame-to-render.js.map +1 -0
- package/dist/get-local-browser-executable.d.ts.map +1 -0
- package/dist/get-local-browser-executable.js.map +1 -0
- package/dist/get-port.d.ts.map +1 -0
- package/dist/get-port.js +26 -24
- package/dist/get-port.js.map +1 -0
- package/dist/get-prores-profile-name.d.ts.map +1 -0
- package/dist/get-prores-profile-name.js.map +1 -0
- package/dist/image-format.d.ts.map +1 -0
- package/dist/image-format.js.map +1 -0
- package/dist/index.d.ts +34 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -5
- package/dist/index.js.map +1 -0
- package/dist/is-beyond-last-frame.d.ts +2 -0
- package/dist/is-beyond-last-frame.js +12 -0
- package/dist/is-serve-url.d.ts.map +1 -0
- package/dist/is-serve-url.js.map +1 -0
- package/dist/last-frame-from-video-cache.d.ts +10 -0
- package/dist/last-frame-from-video-cache.js +50 -0
- package/dist/legacy-webpack-config.d.ts.map +1 -0
- package/dist/legacy-webpack-config.js.map +1 -0
- package/dist/make-assets-download-dir.d.ts.map +1 -0
- package/dist/make-assets-download-dir.js +6 -1
- package/dist/make-assets-download-dir.js.map +1 -0
- package/dist/make-cancel-signal.d.ts +7 -0
- package/dist/make-cancel-signal.js +25 -0
- package/dist/merge-audio-track.d.ts.map +1 -0
- package/dist/merge-audio-track.js +2 -2
- package/dist/merge-audio-track.js.map +1 -0
- package/dist/normalize-serve-url.d.ts.map +1 -0
- package/dist/normalize-serve-url.js.map +1 -0
- package/dist/offthread-video-server.d.ts +14 -0
- package/dist/offthread-video-server.js +67 -0
- package/dist/open-browser.d.ts +5 -5
- package/dist/open-browser.d.ts.map +1 -0
- package/dist/open-browser.js +3 -3
- package/dist/open-browser.js.map +1 -0
- package/dist/p-limit.d.ts.map +1 -0
- package/dist/p-limit.js.map +1 -0
- package/dist/parse-browser-error-stack.d.ts.map +1 -0
- package/dist/parse-browser-error-stack.js.map +1 -0
- package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
- package/dist/parse-ffmpeg-progress.js.map +1 -0
- package/dist/pool.d.ts.map +1 -0
- package/dist/pool.js.map +1 -0
- package/dist/prepare-server.d.ts +13 -2
- package/dist/prepare-server.d.ts.map +1 -0
- package/dist/prepare-server.js +35 -5
- package/dist/prepare-server.js.map +1 -0
- package/dist/preprocess-audio-track.d.ts +1 -0
- package/dist/preprocess-audio-track.d.ts.map +1 -0
- package/dist/preprocess-audio-track.js +2 -2
- package/dist/preprocess-audio-track.js.map +1 -0
- package/dist/prespawn-ffmpeg.d.ts +2 -0
- package/dist/prespawn-ffmpeg.d.ts.map +1 -0
- package/dist/prespawn-ffmpeg.js +10 -9
- package/dist/prespawn-ffmpeg.js.map +1 -0
- package/dist/provide-screenshot.d.ts +0 -1
- package/dist/provide-screenshot.d.ts.map +1 -0
- package/dist/provide-screenshot.js +1 -1
- package/dist/provide-screenshot.js.map +1 -0
- package/dist/puppeteer-evaluate.d.ts.map +1 -0
- package/dist/puppeteer-evaluate.js.map +1 -0
- package/dist/puppeteer-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +1 -0
- package/dist/puppeteer-screenshot.js +5 -1
- package/dist/puppeteer-screenshot.js.map +1 -0
- package/dist/render-frames.d.ts +6 -1
- package/dist/render-frames.d.ts.map +1 -0
- package/dist/render-frames.js +96 -37
- package/dist/render-frames.js.map +1 -0
- package/dist/render-media.d.ts +12 -2
- package/dist/render-media.d.ts.map +1 -0
- package/dist/render-media.js +127 -54
- package/dist/render-media.js.map +1 -0
- package/dist/render-still.d.ts +14 -4
- package/dist/render-still.d.ts.map +1 -0
- package/dist/render-still.js +58 -19
- package/dist/render-still.js.map +1 -0
- package/dist/resolve-asset-src.d.ts.map +1 -0
- package/dist/resolve-asset-src.js.map +1 -0
- package/dist/sample-rate.d.ts.map +1 -0
- package/dist/sample-rate.js.map +1 -0
- package/dist/screenshot-dom-element.d.ts +0 -1
- package/dist/screenshot-dom-element.d.ts.map +1 -0
- package/dist/screenshot-dom-element.js.map +1 -0
- package/dist/screenshot-task.d.ts +0 -1
- package/dist/screenshot-task.d.ts.map +1 -0
- package/dist/screenshot-task.js.map +1 -0
- package/dist/seek-to-frame.d.ts.map +1 -0
- package/dist/seek-to-frame.js.map +1 -0
- package/dist/serve-handler/glob-slash.d.ts +1 -0
- package/dist/serve-handler/glob-slash.js +12 -0
- package/dist/serve-handler/index.d.ts +4 -0
- package/dist/serve-handler/index.js +205 -0
- package/dist/serve-handler/is-path-inside.d.ts +1 -0
- package/dist/serve-handler/is-path-inside.js +27 -0
- package/dist/serve-handler/range-parser.d.ts +13 -0
- package/dist/serve-handler/range-parser.js +57 -0
- package/dist/serve-static.d.ts +10 -3
- package/dist/serve-static.d.ts.map +1 -0
- package/dist/serve-static.js +22 -4
- package/dist/serve-static.js.map +1 -0
- package/dist/set-props-and-env.d.ts +3 -1
- package/dist/set-props-and-env.d.ts.map +1 -0
- package/dist/set-props-and-env.js +25 -3
- package/dist/set-props-and-env.js.map +1 -0
- package/dist/stitch-frames-to-video.d.ts +4 -1
- package/dist/stitch-frames-to-video.d.ts.map +1 -0
- package/dist/stitch-frames-to-video.js +36 -15
- package/dist/stitch-frames-to-video.js.map +1 -0
- package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
- package/dist/stringify-ffmpeg-filter.js +3 -0
- package/dist/stringify-ffmpeg-filter.js.map +1 -0
- package/dist/symbolicate-stacktrace.d.ts.map +1 -0
- package/dist/symbolicate-stacktrace.js.map +1 -0
- package/dist/tmp-dir.d.ts.map +1 -0
- package/dist/tmp-dir.js +5 -1
- package/dist/tmp-dir.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
- package/dist/validate-even-dimensions-with-codec.js.map +1 -0
- package/dist/validate-ffmpeg.d.ts.map +1 -0
- package/dist/validate-ffmpeg.js.map +1 -0
- package/dist/validate-fps-for-gif.d.ts +2 -0
- package/dist/validate-fps-for-gif.js +9 -0
- package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
- package/dist/validate-puppeteer-timeout.js.map +1 -0
- package/dist/validate-scale.d.ts.map +1 -0
- package/dist/validate-scale.js.map +1 -0
- package/package.json +6 -7
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2020 Google Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { JSHandle } from './JSHandle';
|
|
17
|
+
export interface ConsoleMessageLocation {
|
|
18
|
+
/**
|
|
19
|
+
* URL of the resource if known or `undefined` otherwise.
|
|
20
|
+
*/
|
|
21
|
+
url?: string;
|
|
22
|
+
/**
|
|
23
|
+
* 0-based line number in the resource if known or `undefined` otherwise.
|
|
24
|
+
*/
|
|
25
|
+
lineNumber?: number;
|
|
26
|
+
/**
|
|
27
|
+
* 0-based column number in the resource if known or `undefined` otherwise.
|
|
28
|
+
*/
|
|
29
|
+
columnNumber?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare type ConsoleMessageType = 'log' | 'debug' | 'info' | 'error' | 'warning' | 'dir' | 'dirxml' | 'table' | 'trace' | 'clear' | 'startGroup' | 'startGroupCollapsed' | 'endGroup' | 'assert' | 'profile' | 'profileEnd' | 'count' | 'timeEnd' | 'verbose';
|
|
32
|
+
export declare class ConsoleMessage {
|
|
33
|
+
#private;
|
|
34
|
+
constructor(type: ConsoleMessageType, text: string, args: JSHandle[], stackTraceLocations: ConsoleMessageLocation[]);
|
|
35
|
+
/**
|
|
36
|
+
* @returns The type of the console message.
|
|
37
|
+
*/
|
|
38
|
+
type(): ConsoleMessageType;
|
|
39
|
+
/**
|
|
40
|
+
* @returns The text of the console message.
|
|
41
|
+
*/
|
|
42
|
+
text(): string;
|
|
43
|
+
/**
|
|
44
|
+
* @returns An array of arguments passed to the console.
|
|
45
|
+
*/
|
|
46
|
+
args(): JSHandle[];
|
|
47
|
+
/**
|
|
48
|
+
* @returns The location of the console message.
|
|
49
|
+
*/
|
|
50
|
+
location(): ConsoleMessageLocation;
|
|
51
|
+
/**
|
|
52
|
+
* @returns The array of locations on the stack of the console message.
|
|
53
|
+
*/
|
|
54
|
+
stackTrace(): ConsoleMessageLocation[];
|
|
55
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2020 Google Inc. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
18
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
19
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
20
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
21
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
22
|
+
};
|
|
23
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
24
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
25
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
26
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
27
|
+
};
|
|
28
|
+
var _ConsoleMessage_type, _ConsoleMessage_text, _ConsoleMessage_args, _ConsoleMessage_stackTraceLocations;
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.ConsoleMessage = void 0;
|
|
31
|
+
class ConsoleMessage {
|
|
32
|
+
constructor(type, text, args, stackTraceLocations) {
|
|
33
|
+
_ConsoleMessage_type.set(this, void 0);
|
|
34
|
+
_ConsoleMessage_text.set(this, void 0);
|
|
35
|
+
_ConsoleMessage_args.set(this, void 0);
|
|
36
|
+
_ConsoleMessage_stackTraceLocations.set(this, void 0);
|
|
37
|
+
__classPrivateFieldSet(this, _ConsoleMessage_type, type, "f");
|
|
38
|
+
__classPrivateFieldSet(this, _ConsoleMessage_text, text, "f");
|
|
39
|
+
__classPrivateFieldSet(this, _ConsoleMessage_args, args, "f");
|
|
40
|
+
__classPrivateFieldSet(this, _ConsoleMessage_stackTraceLocations, stackTraceLocations, "f");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @returns The type of the console message.
|
|
44
|
+
*/
|
|
45
|
+
type() {
|
|
46
|
+
return __classPrivateFieldGet(this, _ConsoleMessage_type, "f");
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @returns The text of the console message.
|
|
50
|
+
*/
|
|
51
|
+
text() {
|
|
52
|
+
return __classPrivateFieldGet(this, _ConsoleMessage_text, "f");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @returns An array of arguments passed to the console.
|
|
56
|
+
*/
|
|
57
|
+
args() {
|
|
58
|
+
return __classPrivateFieldGet(this, _ConsoleMessage_args, "f");
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @returns The location of the console message.
|
|
62
|
+
*/
|
|
63
|
+
location() {
|
|
64
|
+
var _a;
|
|
65
|
+
return (_a = __classPrivateFieldGet(this, _ConsoleMessage_stackTraceLocations, "f")[0]) !== null && _a !== void 0 ? _a : {};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @returns The array of locations on the stack of the console message.
|
|
69
|
+
*/
|
|
70
|
+
stackTrace() {
|
|
71
|
+
return __classPrivateFieldGet(this, _ConsoleMessage_stackTraceLocations, "f");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.ConsoleMessage = ConsoleMessage;
|
|
75
|
+
_ConsoleMessage_type = new WeakMap(), _ConsoleMessage_text = new WeakMap(), _ConsoleMessage_args = new WeakMap(), _ConsoleMessage_stackTraceLocations = new WeakMap();
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2017 Google Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Protocol } from 'devtools-protocol';
|
|
17
|
+
import { CDPSession } from './Connection';
|
|
18
|
+
import { PuppeteerEventListener } from './util';
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export { PuppeteerEventListener };
|
|
23
|
+
/**
|
|
24
|
+
* The CoverageEntry class represents one entry of the coverage report.
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
export interface CoverageEntry {
|
|
28
|
+
/**
|
|
29
|
+
* The URL of the style sheet or script.
|
|
30
|
+
*/
|
|
31
|
+
url: string;
|
|
32
|
+
/**
|
|
33
|
+
* The content of the style sheet or script.
|
|
34
|
+
*/
|
|
35
|
+
text: string;
|
|
36
|
+
/**
|
|
37
|
+
* The covered range as start and end positions.
|
|
38
|
+
*/
|
|
39
|
+
ranges: Array<{
|
|
40
|
+
start: number;
|
|
41
|
+
end: number;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The CoverageEntry class for JavaScript
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
export interface JSCoverageEntry extends CoverageEntry {
|
|
49
|
+
/**
|
|
50
|
+
* Raw V8 script coverage entry.
|
|
51
|
+
*/
|
|
52
|
+
rawScriptCoverage?: Protocol.Profiler.ScriptCoverage;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set of configurable options for JS coverage.
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
export interface JSCoverageOptions {
|
|
59
|
+
/**
|
|
60
|
+
* Whether to reset coverage on every navigation.
|
|
61
|
+
*/
|
|
62
|
+
resetOnNavigation?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Whether anonymous scripts generated by the page should be reported.
|
|
65
|
+
*/
|
|
66
|
+
reportAnonymousScripts?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Whether the result includes raw V8 script coverage entries.
|
|
69
|
+
*/
|
|
70
|
+
includeRawScriptCoverage?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Set of configurable options for CSS coverage.
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
export interface CSSCoverageOptions {
|
|
77
|
+
/**
|
|
78
|
+
* Whether to reset coverage on every navigation.
|
|
79
|
+
*/
|
|
80
|
+
resetOnNavigation?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The Coverage class provides methods to gathers information about parts of
|
|
84
|
+
* JavaScript and CSS that were used by the page.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul},
|
|
88
|
+
* see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* An example of using JavaScript and CSS coverage to get percentage of initially
|
|
92
|
+
* executed code:
|
|
93
|
+
* ```js
|
|
94
|
+
* // Enable both JavaScript and CSS coverage
|
|
95
|
+
* await Promise.all([
|
|
96
|
+
* page.coverage.startJSCoverage(),
|
|
97
|
+
* page.coverage.startCSSCoverage()
|
|
98
|
+
* ]);
|
|
99
|
+
* // Navigate to page
|
|
100
|
+
* await page.goto('https://example.com');
|
|
101
|
+
* // Disable both JavaScript and CSS coverage
|
|
102
|
+
* const [jsCoverage, cssCoverage] = await Promise.all([
|
|
103
|
+
* page.coverage.stopJSCoverage(),
|
|
104
|
+
* page.coverage.stopCSSCoverage(),
|
|
105
|
+
* ]);
|
|
106
|
+
* let totalBytes = 0;
|
|
107
|
+
* let usedBytes = 0;
|
|
108
|
+
* const coverage = [...jsCoverage, ...cssCoverage];
|
|
109
|
+
* for (const entry of coverage) {
|
|
110
|
+
* totalBytes += entry.text.length;
|
|
111
|
+
* for (const range of entry.ranges)
|
|
112
|
+
* usedBytes += range.end - range.start - 1;
|
|
113
|
+
* }
|
|
114
|
+
* console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);
|
|
115
|
+
* ```
|
|
116
|
+
* @public
|
|
117
|
+
*/
|
|
118
|
+
export declare class Coverage {
|
|
119
|
+
#private;
|
|
120
|
+
constructor(client: CDPSession);
|
|
121
|
+
/**
|
|
122
|
+
* @param options - Set of configurable options for coverage defaults to
|
|
123
|
+
* `resetOnNavigation : true, reportAnonymousScripts : false`
|
|
124
|
+
* @returns Promise that resolves when coverage is started.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* Anonymous scripts are ones that don't have an associated url. These are
|
|
128
|
+
* scripts that are dynamically created on the page using `eval` or
|
|
129
|
+
* `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous
|
|
130
|
+
* scripts will have `pptr://__puppeteer_evaluation_script__` as their URL.
|
|
131
|
+
*/
|
|
132
|
+
startJSCoverage(options?: JSCoverageOptions): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* @returns Promise that resolves to the array of coverage reports for
|
|
135
|
+
* all scripts.
|
|
136
|
+
*
|
|
137
|
+
* @remarks
|
|
138
|
+
* JavaScript Coverage doesn't include anonymous scripts by default.
|
|
139
|
+
* However, scripts with sourceURLs are reported.
|
|
140
|
+
*/
|
|
141
|
+
stopJSCoverage(): Promise<JSCoverageEntry[]>;
|
|
142
|
+
/**
|
|
143
|
+
* @param options - Set of configurable options for coverage, defaults to
|
|
144
|
+
* `resetOnNavigation : true`
|
|
145
|
+
* @returns Promise that resolves when coverage is started.
|
|
146
|
+
*/
|
|
147
|
+
startCSSCoverage(options?: CSSCoverageOptions): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* @returns Promise that resolves to the array of coverage reports
|
|
150
|
+
* for all stylesheets.
|
|
151
|
+
* @remarks
|
|
152
|
+
* CSS Coverage doesn't include dynamically injected style tags
|
|
153
|
+
* without sourceURLs.
|
|
154
|
+
*/
|
|
155
|
+
stopCSSCoverage(): Promise<CoverageEntry[]>;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
export declare class JSCoverage {
|
|
161
|
+
#private;
|
|
162
|
+
constructor(client: CDPSession);
|
|
163
|
+
start(options?: {
|
|
164
|
+
resetOnNavigation?: boolean;
|
|
165
|
+
reportAnonymousScripts?: boolean;
|
|
166
|
+
includeRawScriptCoverage?: boolean;
|
|
167
|
+
}): Promise<void>;
|
|
168
|
+
stop(): Promise<JSCoverageEntry[]>;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* @public
|
|
172
|
+
*/
|
|
173
|
+
export declare class CSSCoverage {
|
|
174
|
+
#private;
|
|
175
|
+
constructor(client: CDPSession);
|
|
176
|
+
start(options?: {
|
|
177
|
+
resetOnNavigation?: boolean;
|
|
178
|
+
}): Promise<void>;
|
|
179
|
+
stop(): Promise<CoverageEntry[]>;
|
|
180
|
+
}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2017 Google Inc. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
18
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
19
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
20
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
21
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
22
|
+
};
|
|
23
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
24
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
25
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
26
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
27
|
+
};
|
|
28
|
+
var _Coverage_jsCoverage, _Coverage_cssCoverage, _JSCoverage_instances, _JSCoverage_client, _JSCoverage_enabled, _JSCoverage_scriptURLs, _JSCoverage_scriptSources, _JSCoverage_eventListeners, _JSCoverage_resetOnNavigation, _JSCoverage_reportAnonymousScripts, _JSCoverage_includeRawScriptCoverage, _JSCoverage_onExecutionContextsCleared, _JSCoverage_onScriptParsed, _CSSCoverage_instances, _CSSCoverage_client, _CSSCoverage_enabled, _CSSCoverage_stylesheetURLs, _CSSCoverage_stylesheetSources, _CSSCoverage_eventListeners, _CSSCoverage_resetOnNavigation, _CSSCoverage_onExecutionContextsCleared, _CSSCoverage_onStyleSheet;
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.CSSCoverage = exports.JSCoverage = exports.Coverage = void 0;
|
|
31
|
+
const assert_1 = require("./assert");
|
|
32
|
+
const util_1 = require("./util");
|
|
33
|
+
const ExecutionContext_1 = require("./ExecutionContext");
|
|
34
|
+
const util_2 = require("./util");
|
|
35
|
+
/**
|
|
36
|
+
* The Coverage class provides methods to gathers information about parts of
|
|
37
|
+
* JavaScript and CSS that were used by the page.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul},
|
|
41
|
+
* see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* An example of using JavaScript and CSS coverage to get percentage of initially
|
|
45
|
+
* executed code:
|
|
46
|
+
* ```js
|
|
47
|
+
* // Enable both JavaScript and CSS coverage
|
|
48
|
+
* await Promise.all([
|
|
49
|
+
* page.coverage.startJSCoverage(),
|
|
50
|
+
* page.coverage.startCSSCoverage()
|
|
51
|
+
* ]);
|
|
52
|
+
* // Navigate to page
|
|
53
|
+
* await page.goto('https://example.com');
|
|
54
|
+
* // Disable both JavaScript and CSS coverage
|
|
55
|
+
* const [jsCoverage, cssCoverage] = await Promise.all([
|
|
56
|
+
* page.coverage.stopJSCoverage(),
|
|
57
|
+
* page.coverage.stopCSSCoverage(),
|
|
58
|
+
* ]);
|
|
59
|
+
* let totalBytes = 0;
|
|
60
|
+
* let usedBytes = 0;
|
|
61
|
+
* const coverage = [...jsCoverage, ...cssCoverage];
|
|
62
|
+
* for (const entry of coverage) {
|
|
63
|
+
* totalBytes += entry.text.length;
|
|
64
|
+
* for (const range of entry.ranges)
|
|
65
|
+
* usedBytes += range.end - range.start - 1;
|
|
66
|
+
* }
|
|
67
|
+
* console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);
|
|
68
|
+
* ```
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
class Coverage {
|
|
72
|
+
constructor(client) {
|
|
73
|
+
_Coverage_jsCoverage.set(this, void 0);
|
|
74
|
+
_Coverage_cssCoverage.set(this, void 0);
|
|
75
|
+
__classPrivateFieldSet(this, _Coverage_jsCoverage, new JSCoverage(client), "f");
|
|
76
|
+
__classPrivateFieldSet(this, _Coverage_cssCoverage, new CSSCoverage(client), "f");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @param options - Set of configurable options for coverage defaults to
|
|
80
|
+
* `resetOnNavigation : true, reportAnonymousScripts : false`
|
|
81
|
+
* @returns Promise that resolves when coverage is started.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* Anonymous scripts are ones that don't have an associated url. These are
|
|
85
|
+
* scripts that are dynamically created on the page using `eval` or
|
|
86
|
+
* `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous
|
|
87
|
+
* scripts will have `pptr://__puppeteer_evaluation_script__` as their URL.
|
|
88
|
+
*/
|
|
89
|
+
async startJSCoverage(options = {}) {
|
|
90
|
+
return await __classPrivateFieldGet(this, _Coverage_jsCoverage, "f").start(options);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @returns Promise that resolves to the array of coverage reports for
|
|
94
|
+
* all scripts.
|
|
95
|
+
*
|
|
96
|
+
* @remarks
|
|
97
|
+
* JavaScript Coverage doesn't include anonymous scripts by default.
|
|
98
|
+
* However, scripts with sourceURLs are reported.
|
|
99
|
+
*/
|
|
100
|
+
async stopJSCoverage() {
|
|
101
|
+
return await __classPrivateFieldGet(this, _Coverage_jsCoverage, "f").stop();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @param options - Set of configurable options for coverage, defaults to
|
|
105
|
+
* `resetOnNavigation : true`
|
|
106
|
+
* @returns Promise that resolves when coverage is started.
|
|
107
|
+
*/
|
|
108
|
+
async startCSSCoverage(options = {}) {
|
|
109
|
+
return await __classPrivateFieldGet(this, _Coverage_cssCoverage, "f").start(options);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @returns Promise that resolves to the array of coverage reports
|
|
113
|
+
* for all stylesheets.
|
|
114
|
+
* @remarks
|
|
115
|
+
* CSS Coverage doesn't include dynamically injected style tags
|
|
116
|
+
* without sourceURLs.
|
|
117
|
+
*/
|
|
118
|
+
async stopCSSCoverage() {
|
|
119
|
+
return await __classPrivateFieldGet(this, _Coverage_cssCoverage, "f").stop();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.Coverage = Coverage;
|
|
123
|
+
_Coverage_jsCoverage = new WeakMap(), _Coverage_cssCoverage = new WeakMap();
|
|
124
|
+
/**
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
127
|
+
class JSCoverage {
|
|
128
|
+
constructor(client) {
|
|
129
|
+
_JSCoverage_instances.add(this);
|
|
130
|
+
_JSCoverage_client.set(this, void 0);
|
|
131
|
+
_JSCoverage_enabled.set(this, false);
|
|
132
|
+
_JSCoverage_scriptURLs.set(this, new Map());
|
|
133
|
+
_JSCoverage_scriptSources.set(this, new Map());
|
|
134
|
+
_JSCoverage_eventListeners.set(this, []);
|
|
135
|
+
_JSCoverage_resetOnNavigation.set(this, false);
|
|
136
|
+
_JSCoverage_reportAnonymousScripts.set(this, false);
|
|
137
|
+
_JSCoverage_includeRawScriptCoverage.set(this, false);
|
|
138
|
+
__classPrivateFieldSet(this, _JSCoverage_client, client, "f");
|
|
139
|
+
}
|
|
140
|
+
async start(options = {}) {
|
|
141
|
+
(0, assert_1.assert)(!__classPrivateFieldGet(this, _JSCoverage_enabled, "f"), 'JSCoverage is already enabled');
|
|
142
|
+
const { resetOnNavigation = true, reportAnonymousScripts = false, includeRawScriptCoverage = false, } = options;
|
|
143
|
+
__classPrivateFieldSet(this, _JSCoverage_resetOnNavigation, resetOnNavigation, "f");
|
|
144
|
+
__classPrivateFieldSet(this, _JSCoverage_reportAnonymousScripts, reportAnonymousScripts, "f");
|
|
145
|
+
__classPrivateFieldSet(this, _JSCoverage_includeRawScriptCoverage, includeRawScriptCoverage, "f");
|
|
146
|
+
__classPrivateFieldSet(this, _JSCoverage_enabled, true, "f");
|
|
147
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").clear();
|
|
148
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").clear();
|
|
149
|
+
__classPrivateFieldSet(this, _JSCoverage_eventListeners, [
|
|
150
|
+
(0, util_1.addEventListener)(__classPrivateFieldGet(this, _JSCoverage_client, "f"), 'Debugger.scriptParsed', __classPrivateFieldGet(this, _JSCoverage_instances, "m", _JSCoverage_onScriptParsed).bind(this)),
|
|
151
|
+
(0, util_1.addEventListener)(__classPrivateFieldGet(this, _JSCoverage_client, "f"), 'Runtime.executionContextsCleared', __classPrivateFieldGet(this, _JSCoverage_instances, "m", _JSCoverage_onExecutionContextsCleared).bind(this)),
|
|
152
|
+
], "f");
|
|
153
|
+
await Promise.all([
|
|
154
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.enable'),
|
|
155
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.startPreciseCoverage', {
|
|
156
|
+
callCount: __classPrivateFieldGet(this, _JSCoverage_includeRawScriptCoverage, "f"),
|
|
157
|
+
detailed: true,
|
|
158
|
+
}),
|
|
159
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.enable'),
|
|
160
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.setSkipAllPauses', { skip: true }),
|
|
161
|
+
]);
|
|
162
|
+
}
|
|
163
|
+
async stop() {
|
|
164
|
+
(0, assert_1.assert)(__classPrivateFieldGet(this, _JSCoverage_enabled, "f"), 'JSCoverage is not enabled');
|
|
165
|
+
__classPrivateFieldSet(this, _JSCoverage_enabled, false, "f");
|
|
166
|
+
const result = await Promise.all([
|
|
167
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.takePreciseCoverage'),
|
|
168
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.stopPreciseCoverage'),
|
|
169
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.disable'),
|
|
170
|
+
__classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.disable'),
|
|
171
|
+
]);
|
|
172
|
+
(0, util_2.removeEventListeners)(__classPrivateFieldGet(this, _JSCoverage_eventListeners, "f"));
|
|
173
|
+
const coverage = [];
|
|
174
|
+
const profileResponse = result[0];
|
|
175
|
+
for (const entry of profileResponse.result) {
|
|
176
|
+
let url = __classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").get(entry.scriptId);
|
|
177
|
+
if (!url && __classPrivateFieldGet(this, _JSCoverage_reportAnonymousScripts, "f")) {
|
|
178
|
+
url = 'debugger://VM' + entry.scriptId;
|
|
179
|
+
}
|
|
180
|
+
const text = __classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").get(entry.scriptId);
|
|
181
|
+
if (text === undefined || url === undefined) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const flattenRanges = [];
|
|
185
|
+
for (const func of entry.functions) {
|
|
186
|
+
flattenRanges.push(...func.ranges);
|
|
187
|
+
}
|
|
188
|
+
const ranges = convertToDisjointRanges(flattenRanges);
|
|
189
|
+
if (!__classPrivateFieldGet(this, _JSCoverage_includeRawScriptCoverage, "f")) {
|
|
190
|
+
coverage.push({ url, ranges, text });
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
coverage.push({ url, ranges, text, rawScriptCoverage: entry });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return coverage;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.JSCoverage = JSCoverage;
|
|
200
|
+
_JSCoverage_client = new WeakMap(), _JSCoverage_enabled = new WeakMap(), _JSCoverage_scriptURLs = new WeakMap(), _JSCoverage_scriptSources = new WeakMap(), _JSCoverage_eventListeners = new WeakMap(), _JSCoverage_resetOnNavigation = new WeakMap(), _JSCoverage_reportAnonymousScripts = new WeakMap(), _JSCoverage_includeRawScriptCoverage = new WeakMap(), _JSCoverage_instances = new WeakSet(), _JSCoverage_onExecutionContextsCleared = function _JSCoverage_onExecutionContextsCleared() {
|
|
201
|
+
if (!__classPrivateFieldGet(this, _JSCoverage_resetOnNavigation, "f")) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").clear();
|
|
205
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").clear();
|
|
206
|
+
}, _JSCoverage_onScriptParsed = async function _JSCoverage_onScriptParsed(event) {
|
|
207
|
+
// Ignore puppeteer-injected scripts
|
|
208
|
+
if (event.url === ExecutionContext_1.EVALUATION_SCRIPT_URL) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
// Ignore other anonymous scripts unless the reportAnonymousScripts option is true.
|
|
212
|
+
if (!event.url && !__classPrivateFieldGet(this, _JSCoverage_reportAnonymousScripts, "f")) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
try {
|
|
216
|
+
const response = await __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.getScriptSource', {
|
|
217
|
+
scriptId: event.scriptId,
|
|
218
|
+
});
|
|
219
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").set(event.scriptId, event.url);
|
|
220
|
+
__classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").set(event.scriptId, response.scriptSource);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
// This might happen if the page has already navigated away.
|
|
224
|
+
(0, util_1.debugError)(error);
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* @public
|
|
229
|
+
*/
|
|
230
|
+
class CSSCoverage {
|
|
231
|
+
constructor(client) {
|
|
232
|
+
_CSSCoverage_instances.add(this);
|
|
233
|
+
_CSSCoverage_client.set(this, void 0);
|
|
234
|
+
_CSSCoverage_enabled.set(this, false);
|
|
235
|
+
_CSSCoverage_stylesheetURLs.set(this, new Map());
|
|
236
|
+
_CSSCoverage_stylesheetSources.set(this, new Map());
|
|
237
|
+
_CSSCoverage_eventListeners.set(this, []);
|
|
238
|
+
_CSSCoverage_resetOnNavigation.set(this, false);
|
|
239
|
+
__classPrivateFieldSet(this, _CSSCoverage_client, client, "f");
|
|
240
|
+
}
|
|
241
|
+
async start(options = {}) {
|
|
242
|
+
(0, assert_1.assert)(!__classPrivateFieldGet(this, _CSSCoverage_enabled, "f"), 'CSSCoverage is already enabled');
|
|
243
|
+
const { resetOnNavigation = true } = options;
|
|
244
|
+
__classPrivateFieldSet(this, _CSSCoverage_resetOnNavigation, resetOnNavigation, "f");
|
|
245
|
+
__classPrivateFieldSet(this, _CSSCoverage_enabled, true, "f");
|
|
246
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").clear();
|
|
247
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").clear();
|
|
248
|
+
__classPrivateFieldSet(this, _CSSCoverage_eventListeners, [
|
|
249
|
+
(0, util_1.addEventListener)(__classPrivateFieldGet(this, _CSSCoverage_client, "f"), 'CSS.styleSheetAdded', __classPrivateFieldGet(this, _CSSCoverage_instances, "m", _CSSCoverage_onStyleSheet).bind(this)),
|
|
250
|
+
(0, util_1.addEventListener)(__classPrivateFieldGet(this, _CSSCoverage_client, "f"), 'Runtime.executionContextsCleared', __classPrivateFieldGet(this, _CSSCoverage_instances, "m", _CSSCoverage_onExecutionContextsCleared).bind(this)),
|
|
251
|
+
], "f");
|
|
252
|
+
await Promise.all([
|
|
253
|
+
__classPrivateFieldGet(this, _CSSCoverage_client, "f").send('DOM.enable'),
|
|
254
|
+
__classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.enable'),
|
|
255
|
+
__classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.startRuleUsageTracking'),
|
|
256
|
+
]);
|
|
257
|
+
}
|
|
258
|
+
async stop() {
|
|
259
|
+
(0, assert_1.assert)(__classPrivateFieldGet(this, _CSSCoverage_enabled, "f"), 'CSSCoverage is not enabled');
|
|
260
|
+
__classPrivateFieldSet(this, _CSSCoverage_enabled, false, "f");
|
|
261
|
+
const ruleTrackingResponse = await __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.stopRuleUsageTracking');
|
|
262
|
+
await Promise.all([
|
|
263
|
+
__classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.disable'),
|
|
264
|
+
__classPrivateFieldGet(this, _CSSCoverage_client, "f").send('DOM.disable'),
|
|
265
|
+
]);
|
|
266
|
+
(0, util_2.removeEventListeners)(__classPrivateFieldGet(this, _CSSCoverage_eventListeners, "f"));
|
|
267
|
+
// aggregate by styleSheetId
|
|
268
|
+
const styleSheetIdToCoverage = new Map();
|
|
269
|
+
for (const entry of ruleTrackingResponse.ruleUsage) {
|
|
270
|
+
let ranges = styleSheetIdToCoverage.get(entry.styleSheetId);
|
|
271
|
+
if (!ranges) {
|
|
272
|
+
ranges = [];
|
|
273
|
+
styleSheetIdToCoverage.set(entry.styleSheetId, ranges);
|
|
274
|
+
}
|
|
275
|
+
ranges.push({
|
|
276
|
+
startOffset: entry.startOffset,
|
|
277
|
+
endOffset: entry.endOffset,
|
|
278
|
+
count: entry.used ? 1 : 0,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
const coverage = [];
|
|
282
|
+
for (const styleSheetId of __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").keys()) {
|
|
283
|
+
const url = __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").get(styleSheetId);
|
|
284
|
+
(0, assert_1.assert)(url);
|
|
285
|
+
const text = __classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").get(styleSheetId);
|
|
286
|
+
(0, assert_1.assert)(text);
|
|
287
|
+
const ranges = convertToDisjointRanges(styleSheetIdToCoverage.get(styleSheetId) || []);
|
|
288
|
+
coverage.push({ url, ranges, text });
|
|
289
|
+
}
|
|
290
|
+
return coverage;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
exports.CSSCoverage = CSSCoverage;
|
|
294
|
+
_CSSCoverage_client = new WeakMap(), _CSSCoverage_enabled = new WeakMap(), _CSSCoverage_stylesheetURLs = new WeakMap(), _CSSCoverage_stylesheetSources = new WeakMap(), _CSSCoverage_eventListeners = new WeakMap(), _CSSCoverage_resetOnNavigation = new WeakMap(), _CSSCoverage_instances = new WeakSet(), _CSSCoverage_onExecutionContextsCleared = function _CSSCoverage_onExecutionContextsCleared() {
|
|
295
|
+
if (!__classPrivateFieldGet(this, _CSSCoverage_resetOnNavigation, "f")) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").clear();
|
|
299
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").clear();
|
|
300
|
+
}, _CSSCoverage_onStyleSheet = async function _CSSCoverage_onStyleSheet(event) {
|
|
301
|
+
const { header } = event;
|
|
302
|
+
// Ignore anonymous scripts
|
|
303
|
+
if (!header.sourceURL) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
try {
|
|
307
|
+
const response = await __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.getStyleSheetText', {
|
|
308
|
+
styleSheetId: header.styleSheetId,
|
|
309
|
+
});
|
|
310
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").set(header.styleSheetId, header.sourceURL);
|
|
311
|
+
__classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").set(header.styleSheetId, response.text);
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
// This might happen if the page has already navigated away.
|
|
315
|
+
(0, util_1.debugError)(error);
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
function convertToDisjointRanges(nestedRanges) {
|
|
319
|
+
const points = [];
|
|
320
|
+
for (const range of nestedRanges) {
|
|
321
|
+
points.push({ offset: range.startOffset, type: 0, range });
|
|
322
|
+
points.push({ offset: range.endOffset, type: 1, range });
|
|
323
|
+
}
|
|
324
|
+
// Sort points to form a valid parenthesis sequence.
|
|
325
|
+
points.sort((a, b) => {
|
|
326
|
+
// Sort with increasing offsets.
|
|
327
|
+
if (a.offset !== b.offset) {
|
|
328
|
+
return a.offset - b.offset;
|
|
329
|
+
}
|
|
330
|
+
// All "end" points should go before "start" points.
|
|
331
|
+
if (a.type !== b.type) {
|
|
332
|
+
return b.type - a.type;
|
|
333
|
+
}
|
|
334
|
+
const aLength = a.range.endOffset - a.range.startOffset;
|
|
335
|
+
const bLength = b.range.endOffset - b.range.startOffset;
|
|
336
|
+
// For two "start" points, the one with longer range goes first.
|
|
337
|
+
if (a.type === 0) {
|
|
338
|
+
return bLength - aLength;
|
|
339
|
+
}
|
|
340
|
+
// For two "end" points, the one with shorter range goes first.
|
|
341
|
+
return aLength - bLength;
|
|
342
|
+
});
|
|
343
|
+
const hitCountStack = [];
|
|
344
|
+
const results = [];
|
|
345
|
+
let lastOffset = 0;
|
|
346
|
+
// Run scanning line to intersect all ranges.
|
|
347
|
+
for (const point of points) {
|
|
348
|
+
if (hitCountStack.length &&
|
|
349
|
+
lastOffset < point.offset &&
|
|
350
|
+
hitCountStack[hitCountStack.length - 1] > 0) {
|
|
351
|
+
const lastResult = results[results.length - 1];
|
|
352
|
+
if (lastResult && lastResult.end === lastOffset) {
|
|
353
|
+
lastResult.end = point.offset;
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
results.push({ start: lastOffset, end: point.offset });
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
lastOffset = point.offset;
|
|
360
|
+
if (point.type === 0) {
|
|
361
|
+
hitCountStack.push(point.range.count);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
hitCountStack.pop();
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
// Filter out empty ranges.
|
|
368
|
+
return results.filter((range) => {
|
|
369
|
+
return range.end - range.start > 1;
|
|
370
|
+
});
|
|
371
|
+
}
|