@remotion/renderer 4.0.536 → 4.0.538
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/aac-priming.d.ts +2 -1
- package/dist/assets/apply-tone-frequency.d.ts +2 -1
- package/dist/assets/apply-tone-frequency.js +8 -1
- package/dist/assets/calculate-asset-positions.js +2 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +2 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts +3 -2
- package/dist/assets/get-audio-channels.d.ts +3 -2
- package/dist/assets/inline-audio-mixing.d.ts +2 -1
- package/dist/assets/types.d.ts +2 -1
- package/dist/browser/Browser.d.ts +5 -5
- package/dist/browser/Browser.js +74 -65
- package/dist/browser/BrowserFetcher.d.ts +7 -5
- package/dist/browser/BrowserPage.d.ts +4 -4
- package/dist/browser/BrowserPage.js +222 -226
- package/dist/browser/BrowserRunner.d.ts +2 -1
- package/dist/browser/Connection.js +109 -96
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/ConsoleMessage.js +16 -9
- package/dist/browser/DOMWorld.d.ts +1 -1
- package/dist/browser/DOMWorld.js +91 -77
- package/dist/browser/Errors.js +4 -2
- package/dist/browser/EventEmitter.js +1 -2
- package/dist/browser/ExecutionContext.js +120 -117
- package/dist/browser/FrameManager.js +244 -249
- package/dist/browser/HTTPRequest.js +22 -11
- package/dist/browser/HTTPResponse.js +16 -3
- package/dist/browser/JSHandle.js +30 -17
- package/dist/browser/LifecycleWatcher.js +128 -122
- package/dist/browser/NetworkEventManager.js +40 -31
- package/dist/browser/NetworkManager.js +203 -210
- package/dist/browser/NodeWebSocketTransport.js +0 -3
- package/dist/browser/Target.d.ts +1 -1
- package/dist/browser/Target.js +39 -32
- package/dist/browser/TaskQueue.js +18 -5
- package/dist/browser/TimeoutSettings.js +25 -12
- package/dist/browser/browser-download-progress-bar.d.ts +2 -1
- package/dist/browser/get-chrome-download-url.d.ts +3 -2
- package/dist/browser/handle-failed-resource.d.ts +2 -1
- package/dist/call-ffmpeg.d.ts +7 -6
- package/dist/can-concat-seamlessly.d.ts +4 -2
- package/dist/can-use-parallel-encoding.d.ts +2 -1
- package/dist/check-version-requirements.d.ts +2 -1
- package/dist/client.d.ts +302 -280
- package/dist/client.js +2 -2
- package/dist/codec-supports-media.d.ts +4 -3
- package/dist/codec.d.ts +1 -1
- package/dist/collect-assets.d.ts +1 -1
- package/dist/combine-audio.d.ts +4 -2
- package/dist/combine-chunks.d.ts +2 -1
- package/dist/combine-video-streams.d.ts +4 -2
- package/dist/compositor/compositor.d.ts +4 -3
- package/dist/compositor/get-executable-path.d.ts +4 -4
- package/dist/compress-audio.d.ts +4 -2
- package/dist/create-audio.d.ts +4 -2
- package/dist/create-silent-audio.d.ts +2 -1
- package/dist/crf.d.ts +6 -4
- package/dist/cycle-browser-tabs.d.ts +2 -1
- package/dist/ensure-browser.d.ts +1 -52
- package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
- package/dist/error-handling/handle-javascript-exception.js +0 -5
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.js +0 -4
- package/dist/error-handling.js +1 -1
- package/dist/esm/client.mjs +306 -238
- package/dist/esm/index.mjs +108 -88
- package/dist/extract-audio.d.ts +3 -2
- package/dist/ffmpeg-args.d.ts +12 -6
- package/dist/finalize-fast-start.d.ts +2 -1
- package/dist/get-browser-instance.d.ts +6 -4
- package/dist/get-codec-name.d.ts +6 -3
- package/dist/get-compositions.d.ts +2 -1
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +1 -1
- package/dist/get-duration-from-frame-range.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts +2 -1
- package/dist/get-frame-padded-index.d.ts +2 -1
- package/dist/get-local-browser-executable.d.ts +4 -2
- package/dist/get-port.d.ts +1 -1
- package/dist/get-prores-profile-name.d.ts +3 -1
- package/dist/get-silent-parts.d.ts +5 -4
- package/dist/get-video-metadata.d.ts +4 -3
- package/dist/get-video-threads-flag.d.ts +2 -1
- package/dist/goto-page-or-throw.d.ts +1 -1
- package/dist/guess-extension-for-media.d.ts +2 -1
- package/dist/image-format.d.ts +6 -5
- package/dist/index.d.ts +213 -440
- package/dist/index.js +18 -18
- package/dist/is-audio-codec.d.ts +2 -1
- package/dist/log-level.d.ts +2 -2
- package/dist/logger.d.ts +6 -6
- package/dist/make-page.d.ts +5 -3
- package/dist/memory/from-macos-sysctl.d.ts +2 -1
- package/dist/memory/from-proc-meminfo.d.ts +2 -1
- package/dist/memory/get-available-memory.d.ts +2 -1
- package/dist/merge-inline-audio-tracks.d.ts +2 -1
- package/dist/mux-video-and-audio.d.ts +5 -3
- package/dist/offthread-video-server.d.ts +2 -1
- package/dist/offthread-video-server.js +6 -4
- package/dist/open-browser.d.ts +2 -2
- package/dist/options/allow-html-in-canvas.js +1 -2
- package/dist/options/api-key.d.ts +1 -1
- package/dist/options/api-key.js +1 -3
- package/dist/options/ask-ai.js +1 -1
- package/dist/options/audio-bitrate.js +1 -9
- package/dist/options/audio-codec.d.ts +23 -20
- package/dist/options/beep-on-finish.js +1 -1
- package/dist/options/benchmark-concurrencies.js +1 -2
- package/dist/options/binaries-directory.d.ts +1 -1
- package/dist/options/binaries-directory.js +1 -9
- package/dist/options/browser-executable.d.ts +1 -1
- package/dist/options/browser-executable.js +1 -1
- package/dist/options/browser.js +1 -2
- package/dist/options/bundle-cache.js +1 -2
- package/dist/options/canvas-tabs.js +1 -1
- package/dist/options/chrome-mode.d.ts +4 -4
- package/dist/options/chrome-mode.js +1 -6
- package/dist/options/color-space.d.ts +9 -5
- package/dist/options/color-space.js +1 -8
- package/dist/options/concurrency.d.ts +1 -1
- package/dist/options/concurrency.js +1 -5
- package/dist/options/config.js +1 -1
- package/dist/options/crf.js +1 -1
- package/dist/options/cross-site-isolation.js +1 -2
- package/dist/options/dark-mode.js +1 -2
- package/dist/options/default-coding-agent.d.ts +2 -2
- package/dist/options/default-coding-agent.js +1 -2
- package/dist/options/default-editor.d.ts +4 -4
- package/dist/options/default-editor.js +1 -3
- package/dist/options/default-premount-in-seconds.js +1 -1
- package/dist/options/delete-after.d.ts +1 -1
- package/dist/options/delete-after.js +1 -11
- package/dist/options/disable-shared-memory-capture.js +1 -3
- package/dist/options/disable-web-security.d.ts +1 -1
- package/dist/options/disable-web-security.js +1 -1
- package/dist/options/disallow-parallel-encoding.js +1 -1
- package/dist/options/enable-cancellation.js +1 -2
- package/dist/options/enable-lambda-insights.js +1 -2
- package/dist/options/enable-multiprocess-on-linux.js +1 -13
- package/dist/options/encoding-buffer-size.d.ts +4 -2
- package/dist/options/encoding-buffer-size.js +1 -3
- package/dist/options/encoding-max-rate.d.ts +1 -1
- package/dist/options/encoding-max-rate.js +1 -3
- package/dist/options/enforce-audio.js +1 -15
- package/dist/options/env-file.js +1 -3
- package/dist/options/every-nth-frame.d.ts +1 -1
- package/dist/options/every-nth-frame.js +1 -6
- package/dist/options/experimental-keep-audio-context-alive.js +1 -3
- package/dist/options/folder-expiry.d.ts +1 -1
- package/dist/options/folder-expiry.js +1 -4
- package/dist/options/for-seamless-aac-concatenation.js +1 -3
- package/dist/options/force-new-studio.js +1 -1
- package/dist/options/frames.d.ts +1 -1
- package/dist/options/frames.js +1 -4
- package/dist/options/gl.d.ts +6 -6
- package/dist/options/gl.js +3 -28
- package/dist/options/gop-size.js +1 -3
- package/dist/options/hardware-acceleration.d.ts +3 -3
- package/dist/options/headless.js +1 -1
- package/dist/options/ignore-certificate-errors.d.ts +1 -1
- package/dist/options/ignore-certificate-errors.js +1 -1
- package/dist/options/image-sequence-pattern.js +1 -5
- package/dist/options/image-sequence.js +1 -1
- package/dist/options/index.d.ts +91 -72
- package/dist/options/index.js +2 -0
- package/dist/options/interactivity.js +1 -1
- package/dist/options/ipv4.js +1 -1
- package/dist/options/is-production.d.ts +1 -1
- package/dist/options/is-production.js +1 -4
- package/dist/options/jpeg-quality.d.ts +1 -1
- package/dist/options/jpeg-quality.js +1 -4
- package/dist/options/keyboard-shortcuts.js +1 -1
- package/dist/options/latency-hint.d.ts +1 -1
- package/dist/options/latency-hint.js +1 -10
- package/dist/options/license-key.d.ts +1 -1
- package/dist/options/license-key.js +1 -2
- package/dist/options/log-level.d.ts +4 -3
- package/dist/options/log-level.js +1 -16
- package/dist/options/metadata.js +2 -7
- package/dist/options/mute.js +1 -1
- package/dist/options/no-open.js +1 -1
- package/dist/options/number-of-gif-loops.d.ts +1 -1
- package/dist/options/number-of-gif-loops.js +1 -13
- package/dist/options/number-of-shared-audio-tags.js +1 -1
- package/dist/options/offthreadvideo-cache-size.d.ts +1 -1
- package/dist/options/offthreadvideo-cache-size.js +1 -11
- package/dist/options/offthreadvideo-threads.d.ts +1 -1
- package/dist/options/offthreadvideo-threads.js +1 -2
- package/dist/options/on-browser-download.d.ts +1 -1
- package/dist/options/on-browser-download.js +1 -2
- package/dist/options/options-map.d.ts +180 -180
- package/dist/options/out-dir.d.ts +1 -1
- package/dist/options/out-dir.js +1 -4
- package/dist/options/override-duration.js +1 -1
- package/dist/options/override-fps.js +1 -1
- package/dist/options/override-height.js +1 -1
- package/dist/options/override-width.js +1 -1
- package/dist/options/overwrite.js +1 -5
- package/dist/options/package-manager.d.ts +1 -1
- package/dist/options/package-manager.js +1 -12
- package/dist/options/pixel-format.d.ts +6 -5
- package/dist/options/pixel-format.js +1 -2
- package/dist/options/port.js +1 -1
- package/dist/options/prefer-lossless.d.ts +1 -1
- package/dist/options/prefer-lossless.js +1 -4
- package/dist/options/{experimental-tracks.d.ts → preserve-pitch-on-playback.d.ts} +3 -3
- package/dist/options/preserve-pitch-on-playback.js +36 -0
- package/dist/options/preview-sample-rate.js +1 -3
- package/dist/options/props.js +1 -5
- package/dist/options/prores-profile.d.ts +2 -2
- package/dist/options/prores-profile.js +1 -5
- package/dist/options/public-dir.d.ts +1 -1
- package/dist/options/public-dir.js +1 -2
- package/dist/options/public-license-key.d.ts +1 -1
- package/dist/options/public-license-key.js +1 -3
- package/dist/options/public-path.d.ts +1 -1
- package/dist/options/public-path.js +1 -5
- package/dist/options/repro.d.ts +3 -1
- package/dist/options/repro.js +1 -1
- package/dist/options/rspack.js +1 -1
- package/dist/options/runs.js +1 -3
- package/dist/options/sample-rate.d.ts +2 -2
- package/dist/options/sample-rate.js +1 -2
- package/dist/options/scale.js +1 -5
- package/dist/options/sequence-activity-limit.js +1 -4
- package/dist/options/show-layer-frame-numbers.js +1 -3
- package/dist/options/show-premounting.js +1 -2
- package/dist/options/skip-skills.js +1 -1
- package/dist/options/still-frame.d.ts +1 -1
- package/dist/options/still-frame.js +1 -3
- package/dist/options/still-image-format.d.ts +3 -2
- package/dist/options/still-image-format.js +1 -2
- package/dist/options/timeout.d.ts +1 -1
- package/dist/options/timeout.js +1 -4
- package/dist/options/user-agent.d.ts +1 -1
- package/dist/options/user-agent.js +1 -1
- package/dist/options/version-flag.js +1 -1
- package/dist/options/video-bitrate.js +1 -7
- package/dist/options/video-cache-size.d.ts +1 -1
- package/dist/options/video-cache-size.js +1 -7
- package/dist/options/video-codec.d.ts +9 -7
- package/dist/options/video-codec.js +1 -1
- package/dist/options/video-image-format.d.ts +6 -5
- package/dist/options/video-image-format.js +1 -6
- package/dist/options/webhook-custom-data.d.ts +1 -1
- package/dist/options/webhook-custom-data.js +1 -1
- package/dist/options/webpack-poll.js +1 -1
- package/dist/options/x264-preset.d.ts +8 -7
- package/dist/options/x264-preset.js +1 -23
- package/dist/p-limit.d.ts +1 -1
- package/dist/pixel-format.d.ts +4 -3
- package/dist/pool.js +0 -2
- package/dist/port-config.d.ts +6 -5
- package/dist/prespawn-ffmpeg.d.ts +1 -1
- package/dist/print-useful-error-message.d.ts +2 -1
- package/dist/probe-encoder.d.ts +8 -5
- package/dist/probe-shared-memory-capture.d.ts +4 -2
- package/dist/prores-profile.d.ts +4 -2
- package/dist/puppeteer-evaluate.d.ts +2 -2
- package/dist/puppeteer-screenshot.d.ts +4 -3
- package/dist/pure.d.ts +12 -15
- package/dist/remotion-shared-memory.d.ts +1 -1
- package/dist/remotion-shared-memory.js +199 -187
- package/dist/render-frame-and-retry-target-close.d.ts +10 -10
- package/dist/render-frame-with-option-to-reject.d.ts +7 -5
- package/dist/render-frame-with-option-to-reject.js +1 -5
- package/dist/render-frame.d.ts +8 -6
- package/dist/render-frames.d.ts +1 -40
- package/dist/render-has-audio.d.ts +3 -2
- package/dist/replace-browser.d.ts +2 -1
- package/dist/repro.d.ts +1 -1
- package/dist/screenshot-task.d.ts +4 -3
- package/dist/seek-to-frame.d.ts +3 -2
- package/dist/select-composition.d.ts +1 -20
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/range-parser.d.ts +2 -2
- package/dist/serve-static.d.ts +2 -1
- package/dist/serve-static.js +4 -4
- package/dist/set-props-and-env.js +2 -6
- package/dist/stringify-ffmpeg-filter.d.ts +2 -1
- package/dist/stringify-ffmpeg-filter.js +20 -2
- package/dist/take-frame.d.ts +1 -1
- package/dist/test-gpu.d.ts +4 -2
- package/dist/validate-even-dimensions-with-codec.d.ts +4 -2
- package/dist/validate-ffmpeg-override.d.ts +1 -1
- package/dist/validate-number-of-gif-loops.d.ts +2 -1
- package/dist/validate-output-filename.d.ts +4 -2
- package/package.json +16 -16
- package/dist/options/experimental-sequence-activity-limit.d.ts +0 -19
- package/dist/options/experimental-sequence-activity-limit.js +0 -40
- package/dist/options/experimental-sequence-activity.d.ts +0 -19
- package/dist/options/experimental-sequence-activity.js +0 -38
- package/dist/options/experimental-tracks.js +0 -43
package/dist/aac-priming.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { AudioCodec } from './options/audio-codec';
|
|
1
2
|
export declare const LIBFDK_AAC_LC_ENCODER_DELAY_IN_SAMPLES = 2048;
|
|
2
3
|
export declare const getAacPrimingInputArgs: ({ audioCodec, sampleRate, outputExtension, }: {
|
|
3
|
-
audioCodec:
|
|
4
|
+
audioCodec: AudioCodec | null;
|
|
4
5
|
sampleRate: number;
|
|
5
6
|
outputExtension: string | null;
|
|
6
7
|
}) => string[];
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { LogLevel } from '../log-level';
|
|
1
2
|
import type { CancelSignal } from '../make-cancel-signal';
|
|
2
3
|
export declare const applyToneFrequencyUsingFfmpeg: ({ input, output, toneFrequency, indent, logLevel, binariesDirectory, cancelSignal, sampleRate, }: {
|
|
3
4
|
input: string;
|
|
4
5
|
output: string;
|
|
5
6
|
toneFrequency: number;
|
|
6
7
|
indent: boolean;
|
|
7
|
-
logLevel:
|
|
8
|
+
logLevel: LogLevel;
|
|
8
9
|
binariesDirectory: string | null;
|
|
9
10
|
cancelSignal: CancelSignal | undefined;
|
|
10
11
|
sampleRate: number;
|
|
@@ -3,8 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.applyToneFrequencyUsingFfmpeg = void 0;
|
|
4
4
|
const call_ffmpeg_1 = require("../call-ffmpeg");
|
|
5
5
|
const logger_1 = require("../logger");
|
|
6
|
+
const calculate_atempo_1 = require("./calculate-atempo");
|
|
6
7
|
const applyToneFrequencyUsingFfmpeg = async ({ input, output, toneFrequency, indent, logLevel, binariesDirectory, cancelSignal, sampleRate, }) => {
|
|
7
|
-
const filter =
|
|
8
|
+
const filter = [
|
|
9
|
+
`asetrate=${sampleRate}*${toneFrequency}`,
|
|
10
|
+
`aresample=${sampleRate}`,
|
|
11
|
+
(0, calculate_atempo_1.calculateATempo)(1 / toneFrequency),
|
|
12
|
+
]
|
|
13
|
+
.filter((part) => part !== null)
|
|
14
|
+
.join(',');
|
|
8
15
|
const args = [
|
|
9
16
|
'-hide_banner',
|
|
10
17
|
'-i',
|
|
@@ -41,6 +41,7 @@ const indexUncompressedAssets = (renderAssets) => {
|
|
|
41
41
|
return assetsByReference;
|
|
42
42
|
};
|
|
43
43
|
const calculateAssetPositions = (frames, sourceFrames = frames.map((_, index) => index)) => {
|
|
44
|
+
var _a;
|
|
44
45
|
const assets = [];
|
|
45
46
|
// Assets that have started but not yet ended, keyed by asset id.
|
|
46
47
|
// Since assets are deduplicated by id within a frame, at most one
|
|
@@ -83,6 +84,7 @@ const calculateAssetPositions = (frames, sourceFrames = frames.map((_, index) =>
|
|
|
83
84
|
toneFrequency: asset.toneFrequency,
|
|
84
85
|
audioStartFrame: asset.audioStartFrame,
|
|
85
86
|
audioStreamIndex: asset.audioStreamIndex,
|
|
87
|
+
preservePitch: (_a = asset.preservePitch) !== null && _a !== void 0 ? _a : true,
|
|
86
88
|
};
|
|
87
89
|
assets.push(openAsset);
|
|
88
90
|
openAssets.set(asset.id, openAsset);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AudioOrVideoAsset } from 'remotion/no-react';
|
|
2
|
+
import type { LogLevel } from '../log-level';
|
|
2
3
|
import type { FrameAndAssets } from '../render-frames';
|
|
3
4
|
import type { RenderMediaOnDownload } from './download-and-map-assets-to-file';
|
|
4
5
|
import type { DownloadMap } from './download-map';
|
|
@@ -7,6 +8,6 @@ export declare const convertAssetsToFileUrls: ({ assets, onDownload, downloadMap
|
|
|
7
8
|
onDownload: RenderMediaOnDownload;
|
|
8
9
|
downloadMap: DownloadMap;
|
|
9
10
|
indent: boolean;
|
|
10
|
-
logLevel:
|
|
11
|
+
logLevel: LogLevel;
|
|
11
12
|
binariesDirectory: string | null;
|
|
12
13
|
}) => Promise<AudioOrVideoAsset[][]>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AudioOrVideoAsset } from 'remotion/no-react';
|
|
2
|
+
import type { LogLevel } from '../log-level';
|
|
2
3
|
import type { CancelSignal } from '../make-cancel-signal';
|
|
3
4
|
import type { DownloadMap } from './download-map';
|
|
4
5
|
export type RenderMediaOnDownload = (src: string) => ((progress: {
|
|
@@ -10,7 +11,7 @@ export declare const downloadAsset: ({ src, downloadMap, indent, logLevel, shoul
|
|
|
10
11
|
src: string;
|
|
11
12
|
downloadMap: DownloadMap;
|
|
12
13
|
indent: boolean;
|
|
13
|
-
logLevel:
|
|
14
|
+
logLevel: LogLevel;
|
|
14
15
|
shouldAnalyzeAudioImmediately: boolean;
|
|
15
16
|
binariesDirectory: string | null;
|
|
16
17
|
cancelSignalForAudioAnalysis: CancelSignal | undefined;
|
|
@@ -27,7 +28,7 @@ export declare const downloadAndMapAssetsToFileUrl: ({ renderAsset, onDownload,
|
|
|
27
28
|
renderAsset: AudioOrVideoAsset;
|
|
28
29
|
onDownload: RenderMediaOnDownload | null;
|
|
29
30
|
downloadMap: DownloadMap;
|
|
30
|
-
logLevel:
|
|
31
|
+
logLevel: LogLevel;
|
|
31
32
|
indent: boolean;
|
|
32
33
|
shouldAnalyzeAudioImmediately: boolean;
|
|
33
34
|
binariesDirectory: string | null;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { LogLevel } from '../log-level';
|
|
1
2
|
import type { CancelSignal } from '../make-cancel-signal';
|
|
2
3
|
import type { AudioChannelsAndDurationResultCache, DownloadMap } from './download-map';
|
|
3
4
|
export declare const getAudioChannelsAndDurationWithoutCache: ({ src, indent, logLevel, binariesDirectory, cancelSignal, audioStreamIndex, }: {
|
|
4
5
|
src: string;
|
|
5
6
|
indent: boolean;
|
|
6
|
-
logLevel:
|
|
7
|
+
logLevel: LogLevel;
|
|
7
8
|
binariesDirectory: string | null;
|
|
8
9
|
cancelSignal: CancelSignal | undefined;
|
|
9
10
|
audioStreamIndex: number | undefined;
|
|
@@ -12,7 +13,7 @@ export declare const getAudioChannelsAndDuration: ({ downloadMap, src, indent, l
|
|
|
12
13
|
downloadMap: DownloadMap;
|
|
13
14
|
src: string;
|
|
14
15
|
indent: boolean;
|
|
15
|
-
logLevel:
|
|
16
|
+
logLevel: LogLevel;
|
|
16
17
|
binariesDirectory: string | null;
|
|
17
18
|
cancelSignal: CancelSignal | undefined;
|
|
18
19
|
audioStreamIndex: number | undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InlineAudioAsset } from 'remotion/no-react';
|
|
2
|
+
import type { LogLevel } from '../log-level';
|
|
2
3
|
import type { CancelSignal } from '../make-cancel-signal';
|
|
3
4
|
export type InlineAudioTrack = {
|
|
4
5
|
outName: string;
|
|
@@ -18,7 +19,7 @@ export declare const makeInlineAudioMixing: (dir: string, sampleRate: number) =>
|
|
|
18
19
|
getListOfAssets: () => InlineAudioTrack[];
|
|
19
20
|
finish: ({ binariesDirectory, indent, logLevel, cancelSignal, sampleRate: finishSampleRate, }: {
|
|
20
21
|
indent: boolean;
|
|
21
|
-
logLevel:
|
|
22
|
+
logLevel: LogLevel;
|
|
22
23
|
binariesDirectory: string | null;
|
|
23
24
|
cancelSignal: CancelSignal | undefined;
|
|
24
25
|
sampleRate: number;
|
package/dist/assets/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AudioOrVideoAsset } from 'remotion/no-react';
|
|
2
|
-
export type UnsafeAsset = Omit<AudioOrVideoAsset, 'frame' | 'id' | 'volume' | 'mediaFrame' | 'audioStartFrom'> & {
|
|
2
|
+
export type UnsafeAsset = Omit<AudioOrVideoAsset, 'frame' | 'id' | 'volume' | 'mediaFrame' | 'audioStartFrom' | 'preservePitch'> & {
|
|
3
3
|
startInVideo: number;
|
|
4
4
|
duration: number | null;
|
|
5
5
|
trimLeft: number;
|
|
@@ -8,6 +8,7 @@ export type UnsafeAsset = Omit<AudioOrVideoAsset, 'frame' | 'id' | 'volume' | 'm
|
|
|
8
8
|
playbackRate: number;
|
|
9
9
|
toneFrequency: number;
|
|
10
10
|
audioStreamIndex: number;
|
|
11
|
+
preservePitch: boolean;
|
|
11
12
|
};
|
|
12
13
|
export type AssetVolume = number | number[];
|
|
13
14
|
export type MediaAsset = Omit<UnsafeAsset, 'duration' | 'volume'> & {
|
|
@@ -33,7 +33,7 @@ export declare const enum BrowserEmittedEvents {
|
|
|
33
33
|
}
|
|
34
34
|
export declare class HeadlessBrowser extends EventEmitter {
|
|
35
35
|
#private;
|
|
36
|
-
static create({ defaultViewport, timeout, userDataDir, args, executablePath, logLevel, indent }: {
|
|
36
|
+
static create({ defaultViewport, timeout, userDataDir, args, executablePath, logLevel, indent, }: {
|
|
37
37
|
defaultViewport: Viewport;
|
|
38
38
|
timeout: number;
|
|
39
39
|
userDataDir: string;
|
|
@@ -46,13 +46,13 @@ export declare class HeadlessBrowser extends EventEmitter {
|
|
|
46
46
|
id: string;
|
|
47
47
|
runner: BrowserRunner;
|
|
48
48
|
get _targets(): Map<string, Target>;
|
|
49
|
-
constructor({ connection, defaultViewport, runner }: {
|
|
49
|
+
constructor({ connection, defaultViewport, runner, }: {
|
|
50
50
|
connection: Connection;
|
|
51
51
|
defaultViewport: Viewport;
|
|
52
52
|
runner: BrowserRunner;
|
|
53
53
|
});
|
|
54
54
|
browserContexts(): BrowserContext[];
|
|
55
|
-
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
55
|
+
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog, }: {
|
|
56
56
|
context: SourceMapGetter;
|
|
57
57
|
logLevel: LogLevel;
|
|
58
58
|
indent: boolean;
|
|
@@ -60,7 +60,7 @@ export declare class HeadlessBrowser extends EventEmitter {
|
|
|
60
60
|
onBrowserLog: null | ((log: BrowserLog) => void);
|
|
61
61
|
onLog: OnLog;
|
|
62
62
|
}): Promise<Page>;
|
|
63
|
-
_createPageInContext({ context, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
63
|
+
_createPageInContext({ context, logLevel, indent, pageIndex, onBrowserLog, onLog, }: {
|
|
64
64
|
context: SourceMapGetter;
|
|
65
65
|
logLevel: LogLevel;
|
|
66
66
|
indent: boolean;
|
|
@@ -84,7 +84,7 @@ export declare class BrowserContext extends EventEmitter {
|
|
|
84
84
|
timeout?: number;
|
|
85
85
|
}): Promise<Target>;
|
|
86
86
|
pages(): Promise<Page[]>;
|
|
87
|
-
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
87
|
+
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog, }: {
|
|
88
88
|
context: SourceMapGetter;
|
|
89
89
|
logLevel: LogLevel;
|
|
90
90
|
indent: boolean;
|
package/dist/browser/Browser.js
CHANGED
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
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");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
23
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
24
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
25
|
+
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");
|
|
26
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
27
|
+
};
|
|
28
|
+
var _HeadlessBrowser_instances, _HeadlessBrowser_defaultViewport, _HeadlessBrowser_defaultContext, _HeadlessBrowser_contexts, _HeadlessBrowser_targets, _HeadlessBrowser_targetCreated, _HeadlessBrowser_targetDestroyed, _HeadlessBrowser_targetInfoChanged, _BrowserContext_browser;
|
|
17
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
30
|
exports.BrowserContext = exports.HeadlessBrowser = void 0;
|
|
19
31
|
const assert_1 = require("./assert");
|
|
@@ -39,74 +51,32 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
39
51
|
await runner.connection.send('Target.setDiscoverTargets', { discover: true });
|
|
40
52
|
return browser;
|
|
41
53
|
}
|
|
42
|
-
#defaultViewport;
|
|
43
|
-
connection;
|
|
44
|
-
#defaultContext;
|
|
45
|
-
#contexts;
|
|
46
|
-
#targets;
|
|
47
|
-
id;
|
|
48
|
-
runner;
|
|
49
54
|
get _targets() {
|
|
50
|
-
return this
|
|
55
|
+
return __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f");
|
|
51
56
|
}
|
|
52
57
|
constructor({ connection, defaultViewport, runner, }) {
|
|
53
58
|
super();
|
|
54
|
-
this
|
|
59
|
+
_HeadlessBrowser_instances.add(this);
|
|
60
|
+
_HeadlessBrowser_defaultViewport.set(this, void 0);
|
|
61
|
+
_HeadlessBrowser_defaultContext.set(this, void 0);
|
|
62
|
+
_HeadlessBrowser_contexts.set(this, void 0);
|
|
63
|
+
_HeadlessBrowser_targets.set(this, void 0);
|
|
64
|
+
__classPrivateFieldSet(this, _HeadlessBrowser_defaultViewport, defaultViewport, "f");
|
|
55
65
|
this.connection = connection;
|
|
56
66
|
this.id = Math.random().toString(36).substring(2, 15);
|
|
57
|
-
this
|
|
58
|
-
this
|
|
59
|
-
this
|
|
60
|
-
this.connection.on('Target.targetCreated', this
|
|
61
|
-
this.connection.on('Target.targetDestroyed', this
|
|
62
|
-
this.connection.on('Target.targetInfoChanged', this
|
|
67
|
+
__classPrivateFieldSet(this, _HeadlessBrowser_defaultContext, new BrowserContext(this), "f");
|
|
68
|
+
__classPrivateFieldSet(this, _HeadlessBrowser_contexts, new Map(), "f");
|
|
69
|
+
__classPrivateFieldSet(this, _HeadlessBrowser_targets, new Map(), "f");
|
|
70
|
+
this.connection.on('Target.targetCreated', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetCreated).bind(this));
|
|
71
|
+
this.connection.on('Target.targetDestroyed', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetDestroyed).bind(this));
|
|
72
|
+
this.connection.on('Target.targetInfoChanged', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetInfoChanged).bind(this));
|
|
63
73
|
this.runner = runner;
|
|
64
74
|
}
|
|
65
75
|
browserContexts() {
|
|
66
|
-
return [this
|
|
67
|
-
}
|
|
68
|
-
async #targetCreated(event) {
|
|
69
|
-
var _a;
|
|
70
|
-
const { targetInfo } = event;
|
|
71
|
-
const { browserContextId } = targetInfo;
|
|
72
|
-
const context = browserContextId && this.#contexts.has(browserContextId)
|
|
73
|
-
? this.#contexts.get(browserContextId)
|
|
74
|
-
: this.#defaultContext;
|
|
75
|
-
if (!context) {
|
|
76
|
-
throw new Error('Missing browser context');
|
|
77
|
-
}
|
|
78
|
-
const target = new Target_1.Target(targetInfo, context, () => {
|
|
79
|
-
return this.connection.createSession(targetInfo);
|
|
80
|
-
}, (_a = this.#defaultViewport) !== null && _a !== void 0 ? _a : null);
|
|
81
|
-
(0, assert_1.assert)(!this.#targets.has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
|
|
82
|
-
this.#targets.set(event.targetInfo.targetId, target);
|
|
83
|
-
if (await target._initializedPromise) {
|
|
84
|
-
this.emit("targetcreated" /* BrowserEmittedEvents.TargetCreated */, target);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
#targetDestroyed(event) {
|
|
88
|
-
const target = this.#targets.get(event.targetId);
|
|
89
|
-
if (!target) {
|
|
90
|
-
throw new Error(`Missing target in _targetDestroyed (id = ${event.targetId})`);
|
|
91
|
-
}
|
|
92
|
-
target._initializedCallback(false);
|
|
93
|
-
this.#targets.delete(event.targetId);
|
|
94
|
-
target._closedCallback();
|
|
95
|
-
}
|
|
96
|
-
#targetInfoChanged(event) {
|
|
97
|
-
const target = this.#targets.get(event.targetInfo.targetId);
|
|
98
|
-
if (!target) {
|
|
99
|
-
throw new Error(`Missing target in targetInfoChanged (id = ${event.targetInfo.targetId})`);
|
|
100
|
-
}
|
|
101
|
-
const previousURL = target.url();
|
|
102
|
-
const wasInitialized = target._isInitialized;
|
|
103
|
-
target._targetInfoChanged(event.targetInfo);
|
|
104
|
-
if (wasInitialized && previousURL !== target.url()) {
|
|
105
|
-
this.emit("targetchanged" /* BrowserEmittedEvents.TargetChanged */, target);
|
|
106
|
-
}
|
|
76
|
+
return [__classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").values())];
|
|
107
77
|
}
|
|
108
78
|
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog, }) {
|
|
109
|
-
return this
|
|
79
|
+
return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage({
|
|
110
80
|
context,
|
|
111
81
|
logLevel,
|
|
112
82
|
indent,
|
|
@@ -120,7 +90,7 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
120
90
|
url: 'about:blank',
|
|
121
91
|
browserContextId: undefined,
|
|
122
92
|
});
|
|
123
|
-
const target = this
|
|
93
|
+
const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(targetId);
|
|
124
94
|
if (!target) {
|
|
125
95
|
throw new Error(`Missing target for page (id = ${targetId})`);
|
|
126
96
|
}
|
|
@@ -142,7 +112,7 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
142
112
|
return page;
|
|
143
113
|
}
|
|
144
114
|
targets() {
|
|
145
|
-
return Array.from(this
|
|
115
|
+
return Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").values()).filter((target) => {
|
|
146
116
|
return target._isInitialized;
|
|
147
117
|
});
|
|
148
118
|
}
|
|
@@ -196,19 +166,57 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
196
166
|
}
|
|
197
167
|
}
|
|
198
168
|
exports.HeadlessBrowser = HeadlessBrowser;
|
|
169
|
+
_HeadlessBrowser_defaultViewport = new WeakMap(), _HeadlessBrowser_defaultContext = new WeakMap(), _HeadlessBrowser_contexts = new WeakMap(), _HeadlessBrowser_targets = new WeakMap(), _HeadlessBrowser_instances = new WeakSet(), _HeadlessBrowser_targetCreated = async function _HeadlessBrowser_targetCreated(event) {
|
|
170
|
+
var _a;
|
|
171
|
+
const { targetInfo } = event;
|
|
172
|
+
const { browserContextId } = targetInfo;
|
|
173
|
+
const context = browserContextId && __classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").has(browserContextId)
|
|
174
|
+
? __classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").get(browserContextId)
|
|
175
|
+
: __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f");
|
|
176
|
+
if (!context) {
|
|
177
|
+
throw new Error('Missing browser context');
|
|
178
|
+
}
|
|
179
|
+
const target = new Target_1.Target(targetInfo, context, () => {
|
|
180
|
+
return this.connection.createSession(targetInfo);
|
|
181
|
+
}, (_a = __classPrivateFieldGet(this, _HeadlessBrowser_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null);
|
|
182
|
+
(0, assert_1.assert)(!__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
|
|
183
|
+
__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").set(event.targetInfo.targetId, target);
|
|
184
|
+
if (await target._initializedPromise) {
|
|
185
|
+
this.emit("targetcreated" /* BrowserEmittedEvents.TargetCreated */, target);
|
|
186
|
+
}
|
|
187
|
+
}, _HeadlessBrowser_targetDestroyed = function _HeadlessBrowser_targetDestroyed(event) {
|
|
188
|
+
const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(event.targetId);
|
|
189
|
+
if (!target) {
|
|
190
|
+
throw new Error(`Missing target in _targetDestroyed (id = ${event.targetId})`);
|
|
191
|
+
}
|
|
192
|
+
target._initializedCallback(false);
|
|
193
|
+
__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").delete(event.targetId);
|
|
194
|
+
target._closedCallback();
|
|
195
|
+
}, _HeadlessBrowser_targetInfoChanged = function _HeadlessBrowser_targetInfoChanged(event) {
|
|
196
|
+
const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(event.targetInfo.targetId);
|
|
197
|
+
if (!target) {
|
|
198
|
+
throw new Error(`Missing target in targetInfoChanged (id = ${event.targetInfo.targetId})`);
|
|
199
|
+
}
|
|
200
|
+
const previousURL = target.url();
|
|
201
|
+
const wasInitialized = target._isInitialized;
|
|
202
|
+
target._targetInfoChanged(event.targetInfo);
|
|
203
|
+
if (wasInitialized && previousURL !== target.url()) {
|
|
204
|
+
this.emit("targetchanged" /* BrowserEmittedEvents.TargetChanged */, target);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
199
207
|
class BrowserContext extends EventEmitter_1.EventEmitter {
|
|
200
|
-
#browser;
|
|
201
208
|
constructor(browser) {
|
|
202
209
|
super();
|
|
203
|
-
this
|
|
210
|
+
_BrowserContext_browser.set(this, void 0);
|
|
211
|
+
__classPrivateFieldSet(this, _BrowserContext_browser, browser, "f");
|
|
204
212
|
}
|
|
205
213
|
targets() {
|
|
206
|
-
return this
|
|
214
|
+
return __classPrivateFieldGet(this, _BrowserContext_browser, "f").targets().filter((target) => {
|
|
207
215
|
return target.browserContext() === this;
|
|
208
216
|
});
|
|
209
217
|
}
|
|
210
218
|
waitForTarget(predicate, options = {}) {
|
|
211
|
-
return this
|
|
219
|
+
return __classPrivateFieldGet(this, _BrowserContext_browser, "f").waitForTarget((target) => {
|
|
212
220
|
return target.browserContext() === this && predicate(target);
|
|
213
221
|
}, options);
|
|
214
222
|
}
|
|
@@ -221,7 +229,7 @@ class BrowserContext extends EventEmitter_1.EventEmitter {
|
|
|
221
229
|
});
|
|
222
230
|
}
|
|
223
231
|
newPage({ context, logLevel, indent, pageIndex, onBrowserLog, onLog, }) {
|
|
224
|
-
return this
|
|
232
|
+
return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext({
|
|
225
233
|
context,
|
|
226
234
|
logLevel,
|
|
227
235
|
indent,
|
|
@@ -231,7 +239,8 @@ class BrowserContext extends EventEmitter_1.EventEmitter {
|
|
|
231
239
|
});
|
|
232
240
|
}
|
|
233
241
|
browser() {
|
|
234
|
-
return this
|
|
242
|
+
return __classPrivateFieldGet(this, _BrowserContext_browser, "f");
|
|
235
243
|
}
|
|
236
244
|
}
|
|
237
245
|
exports.BrowserContext = BrowserContext;
|
|
246
|
+
_BrowserContext_browser = new WeakMap();
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import type { LogLevel } from '../log-level';
|
|
17
|
+
import { ChromeMode } from '../options/chrome-mode';
|
|
16
18
|
import type { DownloadBrowserProgressFn } from '../options/on-browser-download';
|
|
17
19
|
import { type Platform, TESTED_VERSION } from './get-chrome-download-url';
|
|
18
20
|
export { TESTED_VERSION };
|
|
@@ -25,15 +27,15 @@ interface BrowserFetcherRevisionInfo {
|
|
|
25
27
|
export declare const getPlatform: () => Platform;
|
|
26
28
|
export declare const getExpectedVersion: ({ version, chromeMode, platform, }: {
|
|
27
29
|
version: string | null;
|
|
28
|
-
chromeMode:
|
|
30
|
+
chromeMode: ChromeMode;
|
|
29
31
|
platform: Platform;
|
|
30
32
|
}) => string;
|
|
31
|
-
export declare const readVersionFile: (chromeMode:
|
|
33
|
+
export declare const readVersionFile: (chromeMode: ChromeMode) => string | null;
|
|
32
34
|
export declare const downloadBrowser: ({ logLevel, indent, onProgress, version, chromeMode, }: {
|
|
33
|
-
logLevel:
|
|
35
|
+
logLevel: LogLevel;
|
|
34
36
|
indent: boolean;
|
|
35
37
|
onProgress: DownloadBrowserProgressFn;
|
|
36
38
|
version: string | null;
|
|
37
|
-
chromeMode:
|
|
39
|
+
chromeMode: ChromeMode;
|
|
38
40
|
}) => Promise<BrowserFetcherRevisionInfo | undefined>;
|
|
39
|
-
export declare const getRevisionInfo: (chromeMode:
|
|
41
|
+
export declare const getRevisionInfo: (chromeMode: ChromeMode) => BrowserFetcherRevisionInfo;
|
|
@@ -24,7 +24,7 @@ interface PageEventObject {
|
|
|
24
24
|
error: Error;
|
|
25
25
|
disposed: undefined;
|
|
26
26
|
}
|
|
27
|
-
export type OnLog = ({ logLevel, previewString, tag }: {
|
|
27
|
+
export type OnLog = ({ logLevel, previewString, tag, }: {
|
|
28
28
|
logLevel: LogLevel;
|
|
29
29
|
tag: string;
|
|
30
30
|
previewString: string;
|
|
@@ -32,7 +32,7 @@ export type OnLog = ({ logLevel, previewString, tag }: {
|
|
|
32
32
|
export declare class Page extends EventEmitter {
|
|
33
33
|
#private;
|
|
34
34
|
id: string;
|
|
35
|
-
static _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
35
|
+
static _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog, }: {
|
|
36
36
|
client: CDPSession;
|
|
37
37
|
target: Target;
|
|
38
38
|
defaultViewport: Viewport;
|
|
@@ -53,7 +53,7 @@ export declare class Page extends EventEmitter {
|
|
|
53
53
|
pageIndex: number;
|
|
54
54
|
onBrowserLog: null | ((log: BrowserLog) => void);
|
|
55
55
|
onLog: OnLog;
|
|
56
|
-
constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog }: {
|
|
56
|
+
constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, onLog, }: {
|
|
57
57
|
client: CDPSession;
|
|
58
58
|
target: Target;
|
|
59
59
|
browser: HeadlessBrowser;
|
|
@@ -86,7 +86,7 @@ export declare class Page extends EventEmitter {
|
|
|
86
86
|
setDefaultTimeout(timeout: number): void;
|
|
87
87
|
evaluateHandle<HandlerType extends JSHandle = JSHandle>(pageFunction: EvaluateHandleFn, ...args: SerializableOrJSHandle[]): Promise<HandlerType>;
|
|
88
88
|
url(): string;
|
|
89
|
-
goto({ url, timeout, options }: {
|
|
89
|
+
goto({ url, timeout, options, }: {
|
|
90
90
|
url: string;
|
|
91
91
|
timeout: number;
|
|
92
92
|
options?: WaitForOptions & {
|