diff --git a/index.html b/index.html
new file mode 100644
index 00000000..118bb5dc
--- /dev/null
+++ b/index.html
@@ -0,0 +1,329 @@
+
+
+
+
+
+ rrweb 示例
+
+
+
+ 🎥 rrweb 录制与回放
+
+
+
+
📹 录制区域
+
+
在此区域进行操作
+
点击按钮、输入文字,所有操作都会被记录:
+
+
+
+
+
+
+
+
+
+ ⚪ 等待录制
+
+
+
+
+
+
+
+
+
+
✨ 功能说明
+
+ - 点击"开始录制"开始记录
+ - 点击"停止录制"结束记录
+ - 右侧会自动回放录制的操作
+ - 支持播放速度控制
+
+
+
+
+
+
▶️ 回放区域
+
+
+
🎬 回放控制
+
播放器提供完整控制:
+
+ - 时间轴拖动:点击任意位置跳转
+ - 播放/暂停:控制播放状态
+ - 速度控制:0.5x、1x、2x、4x
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/rrweb-player/.svelte-kit/ambient.d.ts b/packages/rrweb-player/.svelte-kit/ambient.d.ts
index baa9b47d..22f647c0 100644
--- a/packages/rrweb-player/.svelte-kit/ambient.d.ts
+++ b/packages/rrweb-player/.svelte-kit/ambient.d.ts
@@ -26,261 +26,179 @@
* ```
*/
declare module '$env/static/private' {
- export const SUDO_GID: string;
- export const GITHUB_STATE: string;
- export const COPILOT_AGENT_ACTION: string;
- export const npm_package_scripts_test_cross_platform_build: string;
- export const npm_package_devDependencies_rollup: string;
- export const npm_package_devDependencies__types_node: string;
- export const COPILOT_AGENT_START_TIME_SEC: string;
- export const CURL_CA_BUNDLE: string;
- export const DOTNET_NOLOGO: string;
- export const npm_package_devDependencies_vitest: string;
- export const MAIL: string;
- export const NODE_EXTRA_CA_CERTS: string;
- export const USER: string;
- export const npm_package_bin_svelte_kit: string;
- export const npm_package_dependencies_sirv: string;
- export const npm_package_dependencies_sade: string;
- export const npm_package_dependencies_mrmime: string;
- export const npm_package_dependencies_magic_string: string;
- export const npm_config_version_commit_hooks: string;
- export const npm_config_user_agent: string;
- export const SHOULD_CONTINUE: string;
- export const CI: string;
- export const npm_package_scripts_generate_version: string;
- export const npm_package_dependencies__types_cookie: string;
- export const npm_config_bin_links: string;
- export const XDG_SESSION_TYPE: string;
- export const RUNNER_ENVIRONMENT: string;
- export const GITHUB_ENV: string;
- export const COPILOT_AGENT_ONLINE_EVALUATION_DISABLED: string;
- export const PIPX_HOME: string;
- export const npm_node_execpath: string;
- export const npm_package_devDependencies_vite: string;
- export const npm_package_devDependencies__sveltejs_vite_plugin_svelte: string;
- export const npm_config_init_version: string;
- export const JAVA_HOME_8_X64: string;
- export const SHLVL: string;
- export const npm_package_exports___node_types: string;
- export const npm_package_files_0: string;
- export const COPILOT_AGENT_RUNTIME_VERSION: string;
+ export const ACLOCAL_PATH: string;
+ export const ALLUSERSPROFILE: string;
+ export const ANTHROPIC_AUTH_TOKEN: string;
+ export const ANTHROPIC_BASE_URL: string;
+ export const APPDATA: string;
+ export const CLAUDECODE: string;
+ export const CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: string;
+ export const CLAUDE_CODE_ENTRYPOINT: string;
+ export const COMMONPROGRAMFILES: string;
+ export const CommonProgramW6432: string;
+ export const COMPUTERNAME: string;
+ export const COMSPEC: string;
+ export const CONFIG_SITE: string;
+ export const COREPACK_ENABLE_AUTO_PIN: string;
+ export const DISPLAY: string;
+ export const DriverData: string;
+ export const EXEPATH: string;
+ export const GIT_EDITOR: string;
export const HOME: string;
- export const OLDPWD: string;
- export const npm_package_files_1: string;
- export const npm_package_repository_directory: string;
- export const RUNNER_TEMP: string;
- export const GITHUB_EVENT_PATH: string;
- export const CAROOT: string;
- export const COPILOT_AGENT_FIREWALL_RULESET_ALLOW_LIST: string;
- export const npm_package_files_2: string;
- export const JAVA_HOME_11_X64: string;
- export const COPILOT_AGENT_MCP_SERVER_TEMP: string;
- export const PIPX_BIN_DIR: string;
- export const GITHUB_REPOSITORY_OWNER: string;
- export const npm_package_engines_node: string;
- export const npm_package_exports___vite_import: string;
- export const npm_package_files_3: string;
- export const npm_package_devDependencies_svelte_preprocess: string;
- export const npm_config_init_license: string;
- export const GRADLE_HOME: string;
- export const ANDROID_NDK_LATEST_HOME: string;
- export const JAVA_HOME_21_X64: string;
- export const GITHUB_RETENTION_DAYS: string;
- export const npm_package_files_4: string;
- export const npm_config_version_tag_prefix: string;
- export const GITHUB_REPOSITORY_OWNER_ID: string;
- export const POWERSHELL_DISTRIBUTION_CHANNEL: string;
- export const SSL_CERT_FILE: string;
- export const AZURE_EXTENSION_DIR: string;
- export const GITHUB_HEAD_REF: string;
- export const npm_package_scripts_check: string;
- export const npm_package_files_5: string;
- export const npm_package_dependencies_tiny_glob: string;
- export const SYSTEMD_EXEC_PID: string;
- export const DBUS_SESSION_BUS_ADDRESS: string;
- export const npm_package_scripts_postinstall: string;
- export const npm_package_files_6: string;
- export const GITHUB_GRAPHQL_URL: string;
- export const GITHUB_DOWNLOADS_URL: string;
- export const npm_package_devDependencies_typescript: string;
- export const npm_package_devDependencies__types_connect: string;
- export const npm_package_description: string;
- export const JAVA_HOME_25_X64: string;
- export const NVM_DIR: string;
- export const npm_package_readmeFilename: string;
- export const npm_package_types: string;
- export const npm_package_homepage: string;
- export const DOTNET_SKIP_FIRST_TIME_EXPERIENCE: string;
- export const COPILOT_JOB_EVENT_TYPE: string;
- export const JAVA_HOME_17_X64: string;
- export const ImageVersion: string;
- export const SUDO_UID: string;
- export const npm_package_exports___hooks_types: string;
- export const npm_package_devDependencies__playwright_test: string;
- export const BLACKBIRD_MODE: string;
- export const LOGNAME: string;
- export const COPILOT_AGENT_PR_COMMIT_COUNT: string;
- export const RUNNER_OS: string;
- export const GITHUB_API_URL: string;
- export const GOROOT_1_22_X64: string;
- export const COPILOT_AGENT_COMMIT_LOGIN: string;
- export const SWIFT_PATH: string;
- export const npm_package_type: string;
- export const COPILOT_USE_SESSIONS: string;
- export const CHROMEWEBDRIVER: string;
- export const COPILOT_AGENT_CONTENT_FILTER_MODE: string;
- export const GOROOT_1_23_X64: string;
- export const JOURNAL_STREAM: string;
- export const GITHUB_WORKFLOW: string;
- export const _: string;
- export const COPILOT_AGENT_BRANCH_NAME: string;
- export const MEMORY_PRESSURE_WATCH: string;
- export const XDG_SESSION_CLASS: string;
- export const GOROOT_1_24_X64: string;
- export const npm_package_scripts_lint: string;
- export const npm_config_registry: string;
- export const ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE: string;
- export const COPILOT_AGENT_FIREWALL_ENABLE_RULESET_ALLOW_LIST: string;
- export const GOROOT_1_25_X64: string;
- export const GITHUB_RUN_ID: string;
- export const TERM: string;
- export const XDG_SESSION_ID: string;
- export const GITHUB_REF_TYPE: string;
- export const BOOTSTRAP_HASKELL_NONINTERACTIVE: string;
- export const GITHUB_WORKFLOW_SHA: string;
- export const GITHUB_BASE_REF: string;
- export const ImageOS: string;
- export const COPILOT_MCP_ENABLED: string;
- export const npm_package_exports___import: string;
- export const npm_package_devDependencies_dts_buddy: string;
- export const npm_package_dependencies_kleur: string;
- export const npm_package_dependencies_devalue: string;
- export const npm_config_ignore_scripts: string;
- export const COPILOT_AGENT_CALLBACK_URL: string;
- export const GITHUB_WORKFLOW_REF: string;
- export const GITHUB_ACTION_REPOSITORY: string;
- export const ENABLE_RUNNER_TRACING: string;
- export const npm_package_exports___package_json: string;
- export const npm_package_peerDependencies_svelte: string;
- export const PATH: string;
- export const NODE: string;
- export const COPILOT_AGENT_INJECTED_SECRET_NAMES: string;
- export const ANT_HOME: string;
- export const DOTNET_MULTILEVEL_LOOKUP: string;
- export const RUNNER_TRACKING_ID: string;
- export const INVOCATION_ID: string;
- export const RUNNER_TOOL_CACHE: string;
- export const GITHUB_UPLOADS_URL: string;
- export const REQUESTS_CA_BUNDLE: string;
- export const npm_package_repository_type: string;
- export const npm_package_name: string;
- export const GITHUB_ACTION: string;
- export const GITHUB_RUN_NUMBER: string;
- export const GITHUB_TRIGGERING_ACTOR: string;
- export const COPILOT_EXPERIMENTS: string;
- export const RUNNER_ARCH: string;
- export const XDG_RUNTIME_DIR: string;
- export const AGENT_TOOLSDIRECTORY: string;
- export const npm_package_scripts_test_integration: string;
- export const npm_package_exports___node_polyfills_import: string;
- export const npm_package_devDependencies__types_set_cookie_parser: string;
- export const SSL_CERT_DIR: string;
- export const npm_package_scripts_test_unit: string;
- export const npm_package_exports___vite_types: string;
- export const npm_config_ignore_path: string;
- export const LANG: string;
- export const VCPKG_INSTALLATION_ROOT: string;
- export const CONDA: string;
- export const RUNNER_NAME: string;
- export const XDG_CONFIG_HOME: string;
- export const GITHUB_REF_NAME: string;
- export const GITHUB_REPOSITORY: string;
- export const npm_lifecycle_script: string;
- export const npm_package_scripts_test_cross_platform_dev: string;
- export const SUDO_COMMAND: string;
- export const ANDROID_NDK_ROOT: string;
- export const GITHUB_ACTION_REF: string;
- export const DEBIAN_FRONTEND: string;
- export const npm_package_scripts_test: string;
- export const npm_package_dependencies_esm_env: string;
- export const npm_config_version_git_message: string;
- export const SHELL: string;
- export const GITHUB_REPOSITORY_ID: string;
- export const GITHUB_ACTIONS: string;
- export const CPD_SAVE_TRAJECTORY_OUTPUT: string;
- export const npm_lifecycle_event: string;
- export const npm_package_repository_url: string;
- export const npm_package_version: string;
- export const GITHUB_REF_PROTECTED: string;
- export const npm_config_argv: string;
- export const npm_package_scripts_generate_types: string;
- export const npm_package_scripts_check_all: string;
- export const npm_package_devDependencies_svelte: string;
- export const npm_package_dependencies_cookie: string;
- export const GITHUB_WORKSPACE: string;
- export const SUDO_USER: string;
- export const ACCEPT_EULA: string;
- export const DOTNET_SYSTEM_NET_DISABLEIPV6: string;
- export const GITHUB_JOB: string;
- export const YARN_IGNORE_PATH: string;
- export const npm_package_exports___node_import: string;
- export const GITHUB_SHA: string;
- export const GITHUB_RUN_ATTEMPT: string;
- export const COPILOT_AGENT_DEBUG: string;
- export const npm_package_devDependencies__types_sade: string;
- export const npm_config_version_git_tag: string;
- export const npm_config_version_git_sign: string;
- export const GITHUB_REF: string;
- export const COPILOT_AGENT_ISSUE_NUMBER: string;
- export const COPILOT_AGENT_SOURCE_ENVIRONMENT: string;
- export const GITHUB_ACTOR: string;
- export const FIREWALL_RULESET_CONTENT: string;
- export const ANDROID_SDK_ROOT: string;
- export const npm_package_license: string;
- export const npm_config_strict_ssl: string;
- export const npm_package_scripts_format: string;
- export const GITHUB_PATH: string;
+ export const HOMEDRIVE: string;
+ export const HOMEPATH: string;
+ export const HOSTNAME: string;
+ export const INFOPATH: string;
+ export const INIT_CWD: string;
export const JAVA_HOME: string;
- export const PWD: string;
- export const GITHUB_ACTOR_ID: string;
- export const RUNNER_WORKSPACE: string;
+ export const LANG: string;
+ export const LOCALAPPDATA: string;
+ export const LOGONSERVER: string;
+ export const MANPATH: string;
+ export const MINGW_CHOST: string;
+ export const MINGW_PACKAGE_PREFIX: string;
+ export const MINGW_PREFIX: string;
+ export const MSYSTEM: string;
+ export const MSYSTEM_CARCH: string;
+ export const MSYSTEM_CHOST: string;
+ export const MSYSTEM_PREFIX: string;
+ export const NODE: string;
+ export const NoDefaultCurrentDirectoryInExePath: string;
+ export const npm_config_argv: string;
+ export const npm_config_bin_links: string;
+ export const npm_config_ignore_optional: string;
+ export const npm_config_ignore_path: string;
+ export const npm_config_ignore_scripts: string;
+ export const npm_config_init_license: string;
+ export const npm_config_init_version: string;
+ export const npm_config_registry: string;
+ export const npm_config_save_prefix: string;
+ export const npm_config_strict_ssl: string;
+ export const npm_config_user_agent: string;
+ export const npm_config_version_commit_hooks: string;
+ export const npm_config_version_git_message: string;
+ export const npm_config_version_git_sign: string;
+ export const npm_config_version_git_tag: string;
+ export const npm_config_version_tag_prefix: string;
export const npm_execpath: string;
+ export const npm_lifecycle_event: string;
+ export const npm_lifecycle_script: string;
+ export const npm_node_execpath: string;
+ export const npm_package_bin_svelte_kit: string;
+ export const npm_package_dependencies_cookie: string;
+ export const npm_package_dependencies_devalue: string;
+ export const npm_package_dependencies_esm_env: string;
+ export const npm_package_dependencies_import_meta_resolve: string;
+ export const npm_package_dependencies_kleur: string;
+ export const npm_package_dependencies_magic_string: string;
+ export const npm_package_dependencies_mrmime: string;
+ export const npm_package_dependencies_sade: string;
export const npm_package_dependencies_set_cookie_parser: string;
- export const COPILOT_AGENT_PR_NUMBER: string;
- export const HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: string;
- export const GITHUB_EVENT_NAME: string;
- export const HOMEBREW_NO_AUTO_UPDATE: string;
- export const ANDROID_HOME: string;
- export const GITHUB_SERVER_URL: string;
- export const GECKOWEBDRIVER: string;
- export const GHCUP_INSTALL_BASE_PREFIX: string;
- export const GITHUB_OUTPUT: string;
+ export const npm_package_dependencies_sirv: string;
+ export const npm_package_dependencies_tiny_glob: string;
+ export const npm_package_dependencies__types_cookie: string;
+ export const npm_package_description: string;
+ export const npm_package_devDependencies_dts_buddy: string;
+ export const npm_package_devDependencies_rollup: string;
+ export const npm_package_devDependencies_svelte: string;
+ export const npm_package_devDependencies_svelte_preprocess: string;
+ export const npm_package_devDependencies_typescript: string;
+ export const npm_package_devDependencies_vite: string;
+ export const npm_package_devDependencies_vitest: string;
+ export const npm_package_devDependencies__playwright_test: string;
+ export const npm_package_devDependencies__sveltejs_vite_plugin_svelte: string;
+ export const npm_package_devDependencies__types_connect: string;
+ export const npm_package_devDependencies__types_node: string;
+ export const npm_package_devDependencies__types_sade: string;
+ export const npm_package_devDependencies__types_set_cookie_parser: string;
+ export const npm_package_engines_node: string;
+ export const npm_package_exports___hooks_import: string;
+ export const npm_package_exports___hooks_types: string;
+ export const npm_package_exports___import: string;
+ export const npm_package_exports___node_import: string;
+ export const npm_package_exports___node_polyfills_import: string;
+ export const npm_package_exports___node_polyfills_types: string;
+ export const npm_package_exports___node_types: string;
+ export const npm_package_exports___package_json: string;
export const npm_package_exports___types: string;
- export const EDGEWEBDRIVER: string;
- export const COPILOT_EXPERIMENT_ASSIGNMENT_CONTEXT: string;
+ export const npm_package_exports___vite_import: string;
+ export const npm_package_exports___vite_types: string;
+ export const npm_package_files_0: string;
+ export const npm_package_files_1: string;
+ export const npm_package_files_2: string;
+ export const npm_package_files_3: string;
+ export const npm_package_files_4: string;
+ export const npm_package_files_5: string;
+ export const npm_package_files_6: string;
+ export const npm_package_homepage: string;
+ export const npm_package_license: string;
+ export const npm_package_name: string;
+ export const npm_package_peerDependencies_svelte: string;
export const npm_package_peerDependencies_vite: string;
export const npm_package_peerDependencies__sveltejs_vite_plugin_svelte: string;
- export const npm_config_save_prefix: string;
- export const npm_config_ignore_optional: string;
- export const ANDROID_NDK: string;
- export const SGX_AESM_ADDR: string;
- export const CHROME_BIN: string;
+ export const npm_package_readmeFilename: string;
+ export const npm_package_repository_directory: string;
+ export const npm_package_repository_type: string;
+ export const npm_package_repository_url: string;
+ export const npm_package_scripts_check: string;
+ export const npm_package_scripts_check_all: string;
+ export const npm_package_scripts_format: string;
+ export const npm_package_scripts_generate_types: string;
+ export const npm_package_scripts_generate_version: string;
+ export const npm_package_scripts_lint: string;
+ export const npm_package_scripts_postinstall: string;
+ export const npm_package_scripts_test: string;
+ export const npm_package_scripts_test_cross_platform_build: string;
+ export const npm_package_scripts_test_cross_platform_dev: string;
+ export const npm_package_scripts_test_integration: string;
+ export const npm_package_scripts_test_unit: string;
+ export const npm_package_type: string;
+ export const npm_package_types: string;
+ export const npm_package_version: string;
+ export const NUMBER_OF_PROCESSORS: string;
+ export const OLDPWD: string;
+ export const OneDrive: string;
+ export const ORIGINAL_PATH: string;
+ export const ORIGINAL_TEMP: string;
+ export const ORIGINAL_TMP: string;
+ export const OS: string;
+ export const OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: string;
+ export const PATH: string;
+ export const PATHEXT: string;
+ export const PKG_CONFIG_PATH: string;
+ export const PKG_CONFIG_SYSTEM_INCLUDE_PATH: string;
+ export const PKG_CONFIG_SYSTEM_LIBRARY_PATH: string;
+ export const PLINK_PROTOCOL: string;
+ export const PROCESSOR_ARCHITECTURE: string;
+ export const PROCESSOR_IDENTIFIER: string;
+ export const PROCESSOR_LEVEL: string;
+ export const PROCESSOR_REVISION: string;
+ export const ProgramData: string;
+ export const PROGRAMFILES: string;
+ export const ProgramW6432: string;
+ export const PROMPT: string;
+ export const PSModulePath: string;
+ export const PUBLIC: string;
export const PUPPETEER_SKIP_DOWNLOAD: string;
- export const SELENIUM_JAR_PATH: string;
- export const MEMORY_PRESSURE_WRITE: string;
- export const COPILOT_AGENT_COMMIT_EMAIL: string;
- export const COPILOT_AGENT_FIREWALL_LOG_FILE: string;
- export const COPILOT_FEATURE_FLAGS: string;
- export const npm_package_exports___node_polyfills_types: string;
- export const INIT_CWD: string;
- export const COPILOT_API_URL: string;
- export const ANDROID_NDK_HOME: string;
- export const GITHUB_STEP_SUMMARY: string;
- export const COPILOT_AGENT_BASE_COMMIT: string;
- export const COPILOT_AGENT_TIMEOUT_MIN: string;
- export const npm_package_exports___hooks_import: string;
- export const npm_package_dependencies_import_meta_resolve: string;
+ export const PWD: string;
+ export const SHELL: string;
+ export const SHLVL: string;
+ export const SSH_ASKPASS: string;
+ export const SYSTEMDRIVE: string;
+ export const SYSTEMROOT: string;
+ export const TEMP: string;
+ export const TERM: string;
+ export const TMP: string;
+ export const TMPDIR: string;
+ export const USERDOMAIN: string;
+ export const USERDOMAIN_ROAMINGPROFILE: string;
+ export const USERNAME: string;
+ export const USERPROFILE: string;
+ export const VS140COMNTOOLS: string;
+ export const WINDIR: string;
+ export const WXDRIVE_START_ARGS: string;
+ export const YARN_IGNORE_PATH: string;
+ export const ZES_ENABLE_SYSMAN: string;
}
/**
@@ -312,261 +230,179 @@ declare module '$env/static/public' {
*/
declare module '$env/dynamic/private' {
export const env: {
- SUDO_GID: string;
- GITHUB_STATE: string;
- COPILOT_AGENT_ACTION: string;
- npm_package_scripts_test_cross_platform_build: string;
- npm_package_devDependencies_rollup: string;
- npm_package_devDependencies__types_node: string;
- COPILOT_AGENT_START_TIME_SEC: string;
- CURL_CA_BUNDLE: string;
- DOTNET_NOLOGO: string;
- npm_package_devDependencies_vitest: string;
- MAIL: string;
- NODE_EXTRA_CA_CERTS: string;
- USER: string;
- npm_package_bin_svelte_kit: string;
- npm_package_dependencies_sirv: string;
- npm_package_dependencies_sade: string;
- npm_package_dependencies_mrmime: string;
- npm_package_dependencies_magic_string: string;
- npm_config_version_commit_hooks: string;
- npm_config_user_agent: string;
- SHOULD_CONTINUE: string;
- CI: string;
- npm_package_scripts_generate_version: string;
- npm_package_dependencies__types_cookie: string;
- npm_config_bin_links: string;
- XDG_SESSION_TYPE: string;
- RUNNER_ENVIRONMENT: string;
- GITHUB_ENV: string;
- COPILOT_AGENT_ONLINE_EVALUATION_DISABLED: string;
- PIPX_HOME: string;
- npm_node_execpath: string;
- npm_package_devDependencies_vite: string;
- npm_package_devDependencies__sveltejs_vite_plugin_svelte: string;
- npm_config_init_version: string;
- JAVA_HOME_8_X64: string;
- SHLVL: string;
- npm_package_exports___node_types: string;
- npm_package_files_0: string;
- COPILOT_AGENT_RUNTIME_VERSION: string;
+ ACLOCAL_PATH: string;
+ ALLUSERSPROFILE: string;
+ ANTHROPIC_AUTH_TOKEN: string;
+ ANTHROPIC_BASE_URL: string;
+ APPDATA: string;
+ CLAUDECODE: string;
+ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: string;
+ CLAUDE_CODE_ENTRYPOINT: string;
+ COMMONPROGRAMFILES: string;
+ CommonProgramW6432: string;
+ COMPUTERNAME: string;
+ COMSPEC: string;
+ CONFIG_SITE: string;
+ COREPACK_ENABLE_AUTO_PIN: string;
+ DISPLAY: string;
+ DriverData: string;
+ EXEPATH: string;
+ GIT_EDITOR: string;
HOME: string;
- OLDPWD: string;
- npm_package_files_1: string;
- npm_package_repository_directory: string;
- RUNNER_TEMP: string;
- GITHUB_EVENT_PATH: string;
- CAROOT: string;
- COPILOT_AGENT_FIREWALL_RULESET_ALLOW_LIST: string;
- npm_package_files_2: string;
- JAVA_HOME_11_X64: string;
- COPILOT_AGENT_MCP_SERVER_TEMP: string;
- PIPX_BIN_DIR: string;
- GITHUB_REPOSITORY_OWNER: string;
- npm_package_engines_node: string;
- npm_package_exports___vite_import: string;
- npm_package_files_3: string;
- npm_package_devDependencies_svelte_preprocess: string;
- npm_config_init_license: string;
- GRADLE_HOME: string;
- ANDROID_NDK_LATEST_HOME: string;
- JAVA_HOME_21_X64: string;
- GITHUB_RETENTION_DAYS: string;
- npm_package_files_4: string;
- npm_config_version_tag_prefix: string;
- GITHUB_REPOSITORY_OWNER_ID: string;
- POWERSHELL_DISTRIBUTION_CHANNEL: string;
- SSL_CERT_FILE: string;
- AZURE_EXTENSION_DIR: string;
- GITHUB_HEAD_REF: string;
- npm_package_scripts_check: string;
- npm_package_files_5: string;
- npm_package_dependencies_tiny_glob: string;
- SYSTEMD_EXEC_PID: string;
- DBUS_SESSION_BUS_ADDRESS: string;
- npm_package_scripts_postinstall: string;
- npm_package_files_6: string;
- GITHUB_GRAPHQL_URL: string;
- GITHUB_DOWNLOADS_URL: string;
- npm_package_devDependencies_typescript: string;
- npm_package_devDependencies__types_connect: string;
- npm_package_description: string;
- JAVA_HOME_25_X64: string;
- NVM_DIR: string;
- npm_package_readmeFilename: string;
- npm_package_types: string;
- npm_package_homepage: string;
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: string;
- COPILOT_JOB_EVENT_TYPE: string;
- JAVA_HOME_17_X64: string;
- ImageVersion: string;
- SUDO_UID: string;
- npm_package_exports___hooks_types: string;
- npm_package_devDependencies__playwright_test: string;
- BLACKBIRD_MODE: string;
- LOGNAME: string;
- COPILOT_AGENT_PR_COMMIT_COUNT: string;
- RUNNER_OS: string;
- GITHUB_API_URL: string;
- GOROOT_1_22_X64: string;
- COPILOT_AGENT_COMMIT_LOGIN: string;
- SWIFT_PATH: string;
- npm_package_type: string;
- COPILOT_USE_SESSIONS: string;
- CHROMEWEBDRIVER: string;
- COPILOT_AGENT_CONTENT_FILTER_MODE: string;
- GOROOT_1_23_X64: string;
- JOURNAL_STREAM: string;
- GITHUB_WORKFLOW: string;
- _: string;
- COPILOT_AGENT_BRANCH_NAME: string;
- MEMORY_PRESSURE_WATCH: string;
- XDG_SESSION_CLASS: string;
- GOROOT_1_24_X64: string;
- npm_package_scripts_lint: string;
- npm_config_registry: string;
- ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE: string;
- COPILOT_AGENT_FIREWALL_ENABLE_RULESET_ALLOW_LIST: string;
- GOROOT_1_25_X64: string;
- GITHUB_RUN_ID: string;
- TERM: string;
- XDG_SESSION_ID: string;
- GITHUB_REF_TYPE: string;
- BOOTSTRAP_HASKELL_NONINTERACTIVE: string;
- GITHUB_WORKFLOW_SHA: string;
- GITHUB_BASE_REF: string;
- ImageOS: string;
- COPILOT_MCP_ENABLED: string;
- npm_package_exports___import: string;
- npm_package_devDependencies_dts_buddy: string;
- npm_package_dependencies_kleur: string;
- npm_package_dependencies_devalue: string;
- npm_config_ignore_scripts: string;
- COPILOT_AGENT_CALLBACK_URL: string;
- GITHUB_WORKFLOW_REF: string;
- GITHUB_ACTION_REPOSITORY: string;
- ENABLE_RUNNER_TRACING: string;
- npm_package_exports___package_json: string;
- npm_package_peerDependencies_svelte: string;
- PATH: string;
- NODE: string;
- COPILOT_AGENT_INJECTED_SECRET_NAMES: string;
- ANT_HOME: string;
- DOTNET_MULTILEVEL_LOOKUP: string;
- RUNNER_TRACKING_ID: string;
- INVOCATION_ID: string;
- RUNNER_TOOL_CACHE: string;
- GITHUB_UPLOADS_URL: string;
- REQUESTS_CA_BUNDLE: string;
- npm_package_repository_type: string;
- npm_package_name: string;
- GITHUB_ACTION: string;
- GITHUB_RUN_NUMBER: string;
- GITHUB_TRIGGERING_ACTOR: string;
- COPILOT_EXPERIMENTS: string;
- RUNNER_ARCH: string;
- XDG_RUNTIME_DIR: string;
- AGENT_TOOLSDIRECTORY: string;
- npm_package_scripts_test_integration: string;
- npm_package_exports___node_polyfills_import: string;
- npm_package_devDependencies__types_set_cookie_parser: string;
- SSL_CERT_DIR: string;
- npm_package_scripts_test_unit: string;
- npm_package_exports___vite_types: string;
- npm_config_ignore_path: string;
- LANG: string;
- VCPKG_INSTALLATION_ROOT: string;
- CONDA: string;
- RUNNER_NAME: string;
- XDG_CONFIG_HOME: string;
- GITHUB_REF_NAME: string;
- GITHUB_REPOSITORY: string;
- npm_lifecycle_script: string;
- npm_package_scripts_test_cross_platform_dev: string;
- SUDO_COMMAND: string;
- ANDROID_NDK_ROOT: string;
- GITHUB_ACTION_REF: string;
- DEBIAN_FRONTEND: string;
- npm_package_scripts_test: string;
- npm_package_dependencies_esm_env: string;
- npm_config_version_git_message: string;
- SHELL: string;
- GITHUB_REPOSITORY_ID: string;
- GITHUB_ACTIONS: string;
- CPD_SAVE_TRAJECTORY_OUTPUT: string;
- npm_lifecycle_event: string;
- npm_package_repository_url: string;
- npm_package_version: string;
- GITHUB_REF_PROTECTED: string;
- npm_config_argv: string;
- npm_package_scripts_generate_types: string;
- npm_package_scripts_check_all: string;
- npm_package_devDependencies_svelte: string;
- npm_package_dependencies_cookie: string;
- GITHUB_WORKSPACE: string;
- SUDO_USER: string;
- ACCEPT_EULA: string;
- DOTNET_SYSTEM_NET_DISABLEIPV6: string;
- GITHUB_JOB: string;
- YARN_IGNORE_PATH: string;
- npm_package_exports___node_import: string;
- GITHUB_SHA: string;
- GITHUB_RUN_ATTEMPT: string;
- COPILOT_AGENT_DEBUG: string;
- npm_package_devDependencies__types_sade: string;
- npm_config_version_git_tag: string;
- npm_config_version_git_sign: string;
- GITHUB_REF: string;
- COPILOT_AGENT_ISSUE_NUMBER: string;
- COPILOT_AGENT_SOURCE_ENVIRONMENT: string;
- GITHUB_ACTOR: string;
- FIREWALL_RULESET_CONTENT: string;
- ANDROID_SDK_ROOT: string;
- npm_package_license: string;
- npm_config_strict_ssl: string;
- npm_package_scripts_format: string;
- GITHUB_PATH: string;
+ HOMEDRIVE: string;
+ HOMEPATH: string;
+ HOSTNAME: string;
+ INFOPATH: string;
+ INIT_CWD: string;
JAVA_HOME: string;
- PWD: string;
- GITHUB_ACTOR_ID: string;
- RUNNER_WORKSPACE: string;
+ LANG: string;
+ LOCALAPPDATA: string;
+ LOGONSERVER: string;
+ MANPATH: string;
+ MINGW_CHOST: string;
+ MINGW_PACKAGE_PREFIX: string;
+ MINGW_PREFIX: string;
+ MSYSTEM: string;
+ MSYSTEM_CARCH: string;
+ MSYSTEM_CHOST: string;
+ MSYSTEM_PREFIX: string;
+ NODE: string;
+ NoDefaultCurrentDirectoryInExePath: string;
+ npm_config_argv: string;
+ npm_config_bin_links: string;
+ npm_config_ignore_optional: string;
+ npm_config_ignore_path: string;
+ npm_config_ignore_scripts: string;
+ npm_config_init_license: string;
+ npm_config_init_version: string;
+ npm_config_registry: string;
+ npm_config_save_prefix: string;
+ npm_config_strict_ssl: string;
+ npm_config_user_agent: string;
+ npm_config_version_commit_hooks: string;
+ npm_config_version_git_message: string;
+ npm_config_version_git_sign: string;
+ npm_config_version_git_tag: string;
+ npm_config_version_tag_prefix: string;
npm_execpath: string;
+ npm_lifecycle_event: string;
+ npm_lifecycle_script: string;
+ npm_node_execpath: string;
+ npm_package_bin_svelte_kit: string;
+ npm_package_dependencies_cookie: string;
+ npm_package_dependencies_devalue: string;
+ npm_package_dependencies_esm_env: string;
+ npm_package_dependencies_import_meta_resolve: string;
+ npm_package_dependencies_kleur: string;
+ npm_package_dependencies_magic_string: string;
+ npm_package_dependencies_mrmime: string;
+ npm_package_dependencies_sade: string;
npm_package_dependencies_set_cookie_parser: string;
- COPILOT_AGENT_PR_NUMBER: string;
- HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: string;
- GITHUB_EVENT_NAME: string;
- HOMEBREW_NO_AUTO_UPDATE: string;
- ANDROID_HOME: string;
- GITHUB_SERVER_URL: string;
- GECKOWEBDRIVER: string;
- GHCUP_INSTALL_BASE_PREFIX: string;
- GITHUB_OUTPUT: string;
+ npm_package_dependencies_sirv: string;
+ npm_package_dependencies_tiny_glob: string;
+ npm_package_dependencies__types_cookie: string;
+ npm_package_description: string;
+ npm_package_devDependencies_dts_buddy: string;
+ npm_package_devDependencies_rollup: string;
+ npm_package_devDependencies_svelte: string;
+ npm_package_devDependencies_svelte_preprocess: string;
+ npm_package_devDependencies_typescript: string;
+ npm_package_devDependencies_vite: string;
+ npm_package_devDependencies_vitest: string;
+ npm_package_devDependencies__playwright_test: string;
+ npm_package_devDependencies__sveltejs_vite_plugin_svelte: string;
+ npm_package_devDependencies__types_connect: string;
+ npm_package_devDependencies__types_node: string;
+ npm_package_devDependencies__types_sade: string;
+ npm_package_devDependencies__types_set_cookie_parser: string;
+ npm_package_engines_node: string;
+ npm_package_exports___hooks_import: string;
+ npm_package_exports___hooks_types: string;
+ npm_package_exports___import: string;
+ npm_package_exports___node_import: string;
+ npm_package_exports___node_polyfills_import: string;
+ npm_package_exports___node_polyfills_types: string;
+ npm_package_exports___node_types: string;
+ npm_package_exports___package_json: string;
npm_package_exports___types: string;
- EDGEWEBDRIVER: string;
- COPILOT_EXPERIMENT_ASSIGNMENT_CONTEXT: string;
+ npm_package_exports___vite_import: string;
+ npm_package_exports___vite_types: string;
+ npm_package_files_0: string;
+ npm_package_files_1: string;
+ npm_package_files_2: string;
+ npm_package_files_3: string;
+ npm_package_files_4: string;
+ npm_package_files_5: string;
+ npm_package_files_6: string;
+ npm_package_homepage: string;
+ npm_package_license: string;
+ npm_package_name: string;
+ npm_package_peerDependencies_svelte: string;
npm_package_peerDependencies_vite: string;
npm_package_peerDependencies__sveltejs_vite_plugin_svelte: string;
- npm_config_save_prefix: string;
- npm_config_ignore_optional: string;
- ANDROID_NDK: string;
- SGX_AESM_ADDR: string;
- CHROME_BIN: string;
+ npm_package_readmeFilename: string;
+ npm_package_repository_directory: string;
+ npm_package_repository_type: string;
+ npm_package_repository_url: string;
+ npm_package_scripts_check: string;
+ npm_package_scripts_check_all: string;
+ npm_package_scripts_format: string;
+ npm_package_scripts_generate_types: string;
+ npm_package_scripts_generate_version: string;
+ npm_package_scripts_lint: string;
+ npm_package_scripts_postinstall: string;
+ npm_package_scripts_test: string;
+ npm_package_scripts_test_cross_platform_build: string;
+ npm_package_scripts_test_cross_platform_dev: string;
+ npm_package_scripts_test_integration: string;
+ npm_package_scripts_test_unit: string;
+ npm_package_type: string;
+ npm_package_types: string;
+ npm_package_version: string;
+ NUMBER_OF_PROCESSORS: string;
+ OLDPWD: string;
+ OneDrive: string;
+ ORIGINAL_PATH: string;
+ ORIGINAL_TEMP: string;
+ ORIGINAL_TMP: string;
+ OS: string;
+ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: string;
+ PATH: string;
+ PATHEXT: string;
+ PKG_CONFIG_PATH: string;
+ PKG_CONFIG_SYSTEM_INCLUDE_PATH: string;
+ PKG_CONFIG_SYSTEM_LIBRARY_PATH: string;
+ PLINK_PROTOCOL: string;
+ PROCESSOR_ARCHITECTURE: string;
+ PROCESSOR_IDENTIFIER: string;
+ PROCESSOR_LEVEL: string;
+ PROCESSOR_REVISION: string;
+ ProgramData: string;
+ PROGRAMFILES: string;
+ ProgramW6432: string;
+ PROMPT: string;
+ PSModulePath: string;
+ PUBLIC: string;
PUPPETEER_SKIP_DOWNLOAD: string;
- SELENIUM_JAR_PATH: string;
- MEMORY_PRESSURE_WRITE: string;
- COPILOT_AGENT_COMMIT_EMAIL: string;
- COPILOT_AGENT_FIREWALL_LOG_FILE: string;
- COPILOT_FEATURE_FLAGS: string;
- npm_package_exports___node_polyfills_types: string;
- INIT_CWD: string;
- COPILOT_API_URL: string;
- ANDROID_NDK_HOME: string;
- GITHUB_STEP_SUMMARY: string;
- COPILOT_AGENT_BASE_COMMIT: string;
- COPILOT_AGENT_TIMEOUT_MIN: string;
- npm_package_exports___hooks_import: string;
- npm_package_dependencies_import_meta_resolve: string;
+ PWD: string;
+ SHELL: string;
+ SHLVL: string;
+ SSH_ASKPASS: string;
+ SYSTEMDRIVE: string;
+ SYSTEMROOT: string;
+ TEMP: string;
+ TERM: string;
+ TMP: string;
+ TMPDIR: string;
+ USERDOMAIN: string;
+ USERDOMAIN_ROAMINGPROFILE: string;
+ USERNAME: string;
+ USERPROFILE: string;
+ VS140COMNTOOLS: string;
+ WINDIR: string;
+ WXDRIVE_START_ARGS: string;
+ YARN_IGNORE_PATH: string;
+ ZES_ENABLE_SYSMAN: string;
[key: `PUBLIC_${string}`]: undefined;
[key: `${string}`]: string | undefined;
}
diff --git a/packages/rrweb-player/src/Player.svelte b/packages/rrweb-player/src/Player.svelte
index 242c4f65..3b0ecc56 100644
--- a/packages/rrweb-player/src/Player.svelte
+++ b/packages/rrweb-player/src/Player.svelte
@@ -28,6 +28,15 @@
export let inactiveColor: NonNullable = '#D4D4D4';
let replayer: Replayer;
+ const pendingEventListeners: Array<{
+ event: string;
+ handler: (detail: unknown) => unknown;
+ }> = [];
+ const controllerEvents = new Set([
+ 'ui-update-current-time',
+ 'ui-update-progress',
+ 'ui-update-player-state',
+ ]);
export const getMirror = () => replayer.getMirror();
@@ -83,14 +92,13 @@
event: string,
handler: (detail: unknown) => unknown,
) => {
+ if (!replayer) {
+ pendingEventListeners.push({ event, handler });
+ return;
+ }
replayer.on(event, handler);
- switch (event) {
- case 'ui-update-current-time':
- case 'ui-update-progress':
- case 'ui-update-player-state':
- controller.$on(event, ({ detail }) => handler(detail));
- default:
- break;
+ if (controllerEvents.has(event) && controller) {
+ controller.$on(event, ({ detail }) => handler(detail));
}
};
@@ -130,6 +138,14 @@
};
onMount(() => {
+ const debugTarget = window as Window & {
+ __rrwebPlayerDebug?: Record;
+ };
+ debugTarget.__rrwebPlayerDebug = {
+ stage: 'mounted',
+ hasFrame: !!frame,
+ eventsLength: events?.length,
+ };
// runtime type check
if (speedOption !== undefined && typeOf(speedOption) !== 'array') {
throw new Error('speedOption must be array');
@@ -157,8 +173,23 @@
unpackFn: unpack,
...$$props,
});
+ debugTarget.__rrwebPlayerDebug = {
+ ...debugTarget.__rrwebPlayerDebug,
+ stage: 'replayer-created',
+ hasWrapper: !!replayer.wrapper,
+ hasIframe: !!replayer.iframe,
+ };
+
+ pendingEventListeners.splice(0).forEach(({ event, handler }) => {
+ replayer.on(event, handler);
+ });
replayer.on('resize', (dimension) => {
+ debugTarget.__rrwebPlayerDebug = {
+ ...debugTarget.__rrwebPlayerDebug,
+ stage: 'resized',
+ dimension,
+ };
updateScale(
replayer.wrapper,
dimension as { width: number; height: number },
diff --git a/packages/rrweb-player/vite.config.ts b/packages/rrweb-player/vite.config.ts
index db4f4cf9..d477abae 100644
--- a/packages/rrweb-player/vite.config.ts
+++ b/packages/rrweb-player/vite.config.ts
@@ -34,6 +34,9 @@ function viteSvelteDts(): Plugin {
console.log('Generating .d.ts files for Svelte components...');
const { input } = options;
+ if (!input) {
+ return;
+ }
if (typeof input === 'string') {
await generateDts(input);
} else if (Array.isArray(input)) {
diff --git a/packages/rrweb/scripts/stream.js b/packages/rrweb/scripts/stream.js
index b4e63a7d..39f4db8a 100644
--- a/packages/rrweb/scripts/stream.js
+++ b/packages/rrweb/scripts/stream.js
@@ -20,9 +20,14 @@ const emitter = new EventEmitter();
async function injectRecording(frame, serverURL) {
try {
- await frame.addScriptTag({ url: `${serverURL}/rrweb.umd.cjs` });
await frame.addScriptTag({
- url: `${serverURL}/plugins/rrweb-plugin-canvas-webrtc-record.js`,
+ path: path.resolve(__dirname, '../dist/rrweb.umd.cjs'),
+ });
+ await frame.addScriptTag({
+ path: path.resolve(
+ __dirname,
+ '../../plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.cjs',
+ ),
});
await frame.evaluate(() => {
const win = window;
@@ -80,9 +85,14 @@ async function startReplay(page, serverURL, recordedPage) {
}, id);
});
- await page.addScriptTag({ url: `${serverURL}/rrweb.umd.cjs` });
await page.addScriptTag({
- url: `${serverURL}/plugins/rrweb-plugin-canvas-webrtc-replay.js`,
+ path: path.resolve(__dirname, '../dist/rrweb.umd.cjs'),
+ });
+ await page.addScriptTag({
+ path: path.resolve(
+ __dirname,
+ '../../plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.cjs',
+ ),
});
return page.evaluate(() => {
@@ -130,13 +140,18 @@ void (async () => {
server = await startServer();
serverURL = getServerURL(server);
- const { url } = await inquirer.prompt([
- {
- type: 'input',
- name: 'url',
- message: `Enter the url you want to record, e.g ${defaultURL}: `,
- },
- ]);
+ const autoUrl = process.env.RRWEB_STREAM_URL;
+ let url = autoUrl;
+ if (!url) {
+ const answers = await inquirer.prompt([
+ {
+ type: 'input',
+ name: 'url',
+ message: `Enter the url you want to record, e.g ${defaultURL}: `,
+ },
+ ]);
+ url = answers.url;
+ }
await record(url);
@@ -163,6 +178,7 @@ void (async () => {
const replayingBrowser = await puppeteer.launch({
headless: false,
devtools,
+ executablePath: process.env.PUPPETEER_EXECUTABLE_PATH,
defaultViewport: {
width: 1600,
height: 900,
@@ -184,6 +200,7 @@ void (async () => {
const recordingBrowser = await puppeteer.launch({
headless: false,
devtools,
+ executablePath: process.env.PUPPETEER_EXECUTABLE_PATH,
defaultViewport: {
width: 1600,
height: 900,
diff --git a/packages/rrweb/scripts/utils.js b/packages/rrweb/scripts/utils.js
index 70cf3583..5a725c41 100644
--- a/packages/rrweb/scripts/utils.js
+++ b/packages/rrweb/scripts/utils.js
@@ -37,7 +37,10 @@ export const startServer = (defaultPort = 3030) =>
try {
const data = fs.readFileSync(pathname);
const ext = path.parse(pathname).ext;
- res.setHeader('Content-type', mimeType[ext] || 'text/plain');
+ const contentType = /\.js$/.test(sanitizePath)
+ ? 'text/javascript'
+ : mimeType[ext] || 'text/plain';
+ res.setHeader('Content-type', contentType);
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET');
res.setHeader('Access-Control-Allow-Headers', 'Content-type');
diff --git a/vite.config.default.ts b/vite.config.default.ts
index fe6d6d6c..16014a97 100644
--- a/vite.config.default.ts
+++ b/vite.config.default.ts
@@ -3,7 +3,7 @@ import dts from 'vite-plugin-dts';
import { copyFileSync, mkdirSync, existsSync } from 'node:fs';
import { defineConfig, LibraryOptions, LibraryFormats, Plugin } from 'vite';
import { build, Format } from 'esbuild';
-import { resolve, dirname } from 'path';
+import { resolve, dirname, relative, basename } from 'path';
import { umdWrapper } from 'esbuild-plugin-umd-wrapper';
import * as fs from 'node:fs';
import { visualizer } from 'rollup-plugin-visualizer';
@@ -51,9 +51,15 @@ function minifyAndUMDPlugin({
outDir,
});
} else {
- const umdDir = dirname(outputFilePath).replace('/dist', '/umd');
+ const relativeOutputPath = relative(outputOptions.dir!, outputFilePath);
+ const umdBasePath = resolve(
+ dirname(outputOptions.dir!),
+ 'umd',
+ relativeOutputPath,
+ );
+ const umdDir = dirname(umdBasePath);
if (!existsSync(umdDir)) {
- mkdirSync(umdDir);
+ mkdirSync(umdDir, { recursive: true });
}
const outUmd = `${outputFilePath}.umd.cjs`;
await buildFile({
@@ -66,10 +72,7 @@ function minifyAndUMDPlugin({
});
// Workaround because jsdelivr does use correct mime types for .umd.cjs
// More info: https://github.com/jsdelivr/jsdelivr/issues/18584 https://github.com/rrweb-io/rrweb/pull/1704
- copyFileSync(
- outUmd,
- `${outputFilePath.replace('/dist/', '/umd/')}.js`,
- );
+ copyFileSync(outUmd, `${umdBasePath}.js`);
const outUmdMin = `${outputFilePath}.umd.min.cjs`;
await buildFile({
name,
@@ -79,10 +82,7 @@ function minifyAndUMDPlugin({
isCss: false,
outDir,
});
- copyFileSync(
- outUmdMin,
- `${outputFilePath.replace('/dist/', '/umd/')}.min.js`,
- );
+ copyFileSync(outUmdMin, `${umdBasePath}.min.js`);
}
}
}
@@ -119,7 +119,7 @@ async function buildFile({
}),
],
});
- const filename = output.replace(new RegExp(`^.+/(${outDir}/)`), '$1');
+ const filename = relative(process.cwd(), output).split(/\\/g).join('/');
console.log(filename);
console.log(`${filename}.map`);
}