@100mslive/roomkit-react 0.3.39-alpha.1 → 0.3.40-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -100,7 +100,7 @@ var __async = (__this, __arguments, generator) => {
100
100
  reject(e);
101
101
  }
102
102
  };
103
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
103
+ var step = (x2) => x2.done ? resolve(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected);
104
104
  step((generator = generator.apply(__this, __arguments)).next());
105
105
  });
106
106
  };
@@ -109,7 +109,7 @@ var __async = (__this, __arguments, generator) => {
109
109
  var define_process_env_default;
110
110
  var init_define_process_env = __esm({
111
111
  "<define:process.env>"() {
112
- define_process_env_default = { GITHUB_STATE: "/home/runner/work/_temp/_runner_file_commands/save_state_b5b3fc7d-4ee3-4edb-a9d4-5c0e77fdba98", npm_package_devDependencies_ts_node: "^10.4.0", npm_package_devDependencies__types_node: "^16.11.17", npm_package_exports___index_css: "./dist/index.css", npm_package_exports___require: "./dist/index.cjs.js", DOTNET_NOLOGO: "1", npm_package_dependencies_screenfull: "^5.1.0", npm_package_dependencies_react_draggable: "^4.4.5", npm_package_dependencies__radix_ui_react_switch: "1.0.0", npm_package_dependencies__100mslive_hms_whiteboard: "0.0.29-alpha.1", USER: "runner", npm_package_devDependencies_jest: "^29.7.0", npm_config_version_commit_hooks: "true", npm_config_user_agent: "yarn/1.22.22 npm/? node/v18.20.8 linux x64", npm_config_always_auth: "", NX_WORKSPACE_ROOT: "/home/runner/work/web-sdks/web-sdks", npm_package_scripts_babel: "npx storybook@latest babelrc", CI: "true", npm_package_devDependencies__size_limit_file: "^5.0.3", npm_config_bin_links: "true", npm_config_wrap_output: "", npm_package_dependencies__radix_ui_react_tabs: "1.0.0", npm_package_dependencies__100mslive_react_sdk: "0.10.39-alpha.1", RUNNER_ENVIRONMENT: "github-hosted", GITHUB_ENV: "/home/runner/work/_temp/_runner_file_commands/set_env_b5b3fc7d-4ee3-4edb-a9d4-5c0e77fdba98", PIPX_HOME: "/opt/pipx", npm_node_execpath: "/opt/hostedtoolcache/node/18.20.8/x64/bin/node", npm_config_init_version: "1.0.0", npm_package_dependencies__emoji_mart_react: "^1.0.1", npm_package_dependencies__emoji_mart_data: "^1.0.6", npm_package_dependencies__100mslive_hms_virtual_background: "1.13.39-alpha.1", JAVA_HOME_8_X64: "/usr/lib/jvm/temurin-8-jdk-amd64", NODE_AUTH_TOKEN: "XXXXX-XXXXX-XXXXX-XXXXX", SHLVL: "1", npm_package_dependencies__radix_ui_react_tooltip: "1.0.6", npm_package_dependencies__radix_ui_react_popover: "1.0.6", npm_package_dependencies__100mslive_types_prebuilt: "0.12.12", npm_package_peerDependencies_react: ">=17.0.2 <19.0.0", npm_package_devDependencies__storybook_addon_links: "^7.0.27", npm_package_files_0: "dist", HOME: "/home/runner", npm_package_devDependencies__typescript_eslint_parser: "^5.4.0", npm_package_dependencies__radix_ui_react_dialog: "1.0.4", npm_package_devDependencies__types_react_window: "^1.8.5", npm_package_files_1: "src", npm_package_repository_directory: "packages/roomkit-react", RUNNER_TEMP: "/home/runner/work/_temp", GITHUB_EVENT_PATH: "/home/runner/work/_temp/_github_workflow/event.json", npm_package_scripts_controller: "cd packages/hls-controller && yarn start", npm_package_dependencies__stitches_react: "1.3.1-1", JAVA_HOME_11_X64: "/usr/lib/jvm/temurin-11-jdk-amd64", PIPX_BIN_DIR: "/opt/pipx_bin", GITHUB_REPOSITORY_OWNER: "100mslive", npm_package_engines_node: ">=16", npm_package_devDependencies_typedoc_plugin_markdown: "^3.14.0", npm_config_init_license: "MIT", GRADLE_HOME: "/usr/share/gradle-9.0.0", ANDROID_NDK_LATEST_HOME: "/usr/local/lib/android/sdk/ndk/28.2.13676358", JAVA_HOME_21_X64: "/usr/lib/jvm/temurin-21-jdk-amd64", GITHUB_RETENTION_DAYS: "90", YARN_WRAP_OUTPUT: "false", npm_config_version_tag_prefix: "v", GITHUB_REPOSITORY_OWNER_ID: "73883131", POWERSHELL_DISTRIBUTION_CHANNEL: "GitHub-Actions-ubuntu24", AZURE_EXTENSION_DIR: "/opt/az/azcliextensions", GITHUB_HEAD_REF: "", npm_package_scripts_lint_fix: "yarn lint --fix", npm_config_userconfig: "/home/runner/work/_temp/.npmrc", npm_package_devDependencies__storybook_addon_a11y: "^7.0.27", SYSTEMD_EXEC_PID: "1898", npm_package_scripts_postinstall: "husky install", npm_package_devDependencies_husky: "^6.0.0", npm_package_dependencies_recordrtc: "^5.6.2", npm_package_dependencies_eventemitter2: "^6.4.9", npm_package_dependencies__radix_ui_react_label: "1.0.0", npm_package_dependencies__radix_ui_react_dropdown_menu: "2.0.5", npm_package_keywords_0: "100mslive", GITHUB_GRAPHQL_URL: "https://api.github.com/graphql", npm_package_description: "100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.", npm_package_devDependencies_typescript: "~4.7.4", npm_package_devDependencies_typedoc: "^0.24.8", npm_package_devDependencies_babel_loader: "^8.2.5", npm_package_keywords_1: "react", NVM_DIR: "/home/runner/.nvm", npm_package_readmeFilename: "README.md", npm_package_devDependencies_react: "^18.1.0", npm_package_devDependencies__babel_preset_env: "^7.22.5", npm_package_keywords_2: "prebuilt", DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1", JAVA_HOME_17_X64: "/usr/lib/jvm/temurin-17-jdk-amd64", ImageVersion: "20250907.24.1", npm_package_devDependencies_prettier: "^2.4.1", npm_package_devDependencies_babel_jest: "^29.7.0", npm_package_scripts_dev: "node ../../scripts/dev", npm_package_keywords_3: "roomkit", LOGNAME: "runner", RUNNER_OS: "Linux", GITHUB_API_URL: "https://api.github.com", GOROOT_1_22_X64: "/opt/hostedtoolcache/go/1.22.12/x64", SWIFT_PATH: "/usr/share/swift/usr/bin", FORCE_COLOR: "true", npm_package_dependencies__radix_ui_react_toast: "1.0.0", npm_package_dependencies__radix_ui_react_radio_group: "1.0.0", npm_package_dependencies__100mslive_hms_noise_cancellation: "0.0.1", npm_package_devDependencies__babel_preset_typescript: "^7.22.5", npm_package_exports___default: "./dist/index.js", CHROMEWEBDRIVER: "/usr/local/share/chromedriver-linux64", GOROOT_1_23_X64: "/opt/hostedtoolcache/go/1.23.12/x64", JOURNAL_STREAM: "9:16274", GITHUB_WORKFLOW: "Publish Packages", _: "/usr/local/bin/yarn", npm_package_devDependencies_ts_jest: "^29.1.1", npm_package_devDependencies_lerna: "^5.6.2", npm_package_devDependencies__types_jest: "^27.0.3", npm_package_devDependencies__commitlint_config_conventional: "^19.6.0", npm_package_private: "true", npm_package_dependencies__radix_ui_react_accordion: "1.0.0", npm_package_devDependencies__babel_preset_react: "^7.22.5", npm_package_module: "dist/index.js", MEMORY_PRESSURE_WATCH: "/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure", GOROOT_1_24_X64: "/opt/hostedtoolcache/go/1.24.7/x64", npm_package_scripts_lint: "eslint -c .eslintrc --no-error-on-unmatched-pattern src --ext .js --ext .jsx --ext .ts --ext .tsx", npm_package_devDependencies__typescript_eslint_eslint_plugin: "^5.4.0", npm_config_registry: "https://registry.yarnpkg.com", npm_package_dependencies_react_window: "^1.8.7", npm_package_dependencies__100mslive_hls_player: "0.3.39-alpha.1", npm_package_devDependencies__types_lodash_merge: "^4.6.6", npm_package_devDependencies__storybook_cli: "^7.0.27", ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE: "/opt/actionarchivecache", GITHUB_RUN_ID: "17974612952", npm_package_workspaces_0: "packages/*", npm_package_scripts_store: "cd packages/hms-video-store && yarn start", npm_package_devDependencies__babel_core: "^7.18.2", npm_package_dependencies_ts_pattern: "4.3.0", npm_package_devDependencies__storybook_addon_interactions: "^7.0.27", npm_package_devDependencies__storybook_addon_actions: "^7.0.27", GITHUB_REF_TYPE: "branch", BOOTSTRAP_HASKELL_NONINTERACTIVE: "1", GITHUB_WORKFLOW_SHA: "509554a0889c1a13e0ce30ed281830aa095238dd", GITHUB_BASE_REF: "", ImageOS: "ubuntu24", npm_package_workspaces_1: "examples/*", npm_package_scripts_start: 'concurrently "yarn dev" "yarn types"', npm_config_ignore_scripts: "", NX_TASK_HASH: "601c286be8eec453fb1ffa6bb73996d6eba3988d6dd6662f7be34c3e2d74dfb3", npm_package_exports___import: "./dist/index.js", GITHUB_WORKFLOW_REF: "100mslive/web-sdks/.github/workflows/publish.yml@refs/heads/fix/audio-output-selection", GITHUB_ACTION_REPOSITORY: "", ENABLE_RUNNER_TRACING: "true", npm_package_scripts_prebuilt: "cd packages/roomkit-react && yarn start", npm_package_devDependencies_postcss_loader: "^6.2.1", npm_package_devDependencies_esbuild_loader: "^4.0.2", PATH: "/tmp/yarn--1758711765632-0.2731746688978216:/home/runner/work/web-sdks/web-sdks/packages/roomkit-react/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/18.20.8/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1758711765441-0.5625724409258923:/home/runner/work/web-sdks/web-sdks/packages/roomkit-react/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/18.20.8/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1758711741115-0.25516911614659765:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/18.20.8/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1758711740939-0.17649666537554665:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/18.20.8/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/bin/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/18.20.8/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", NODE: "/opt/hostedtoolcache/node/18.20.8/x64/bin/node", ANT_HOME: "/usr/share/ant", DOTNET_MULTILEVEL_LOOKUP: "0", RUNNER_TRACKING_ID: "github_21584f58-fde5-408e-b12b-e7ff2497b4ef", INVOCATION_ID: "5c0853a442e446c09809f49338bf9db3", NPM_CONFIG_USERCONFIG: "/home/runner/work/_temp/.npmrc", RUNNER_TOOL_CACHE: "/opt/hostedtoolcache", npm_package_scripts_size: "size-limit", npm_package_devDependencies_size_limit: "^5.0.3", npm_package_name: "@100mslive/roomkit-react", npm_package_devDependencies__storybook_react_webpack5: "^7.0.27", npm_package_repository_type: "git", GITHUB_ACTION: "__run_3", GITHUB_RUN_NUMBER: "766", GITHUB_TRIGGERING_ACTOR: "raviteja83", RUNNER_ARCH: "X64", XDG_RUNTIME_DIR: "/run/user/1001", AGENT_TOOLSDIRECTORY: "/opt/hostedtoolcache", npm_package_lint_staged____js_ts_jsx_tsx_: "eslint", npm_package_devDependencies_babel_plugin_istanbul: "^6.1.1", LERNA_PACKAGE_NAME: "@100mslive/roomkit-react", npm_package_dependencies__radix_ui_react_select: "1.0.0", npm_package_size_limit_0_limit: "20 KB", npm_package_devDependencies__commitlint_cli: "^19.6.0", LANG: "C.UTF-8", VCPKG_INSTALLATION_ROOT: "/usr/local/share/vcpkg", npm_package_size_limit_1_limit: "20 KB", npm_package_devDependencies_eslint_plugin_simple_import_sort: "^8.0.0", npm_package_devDependencies_eslint: "^8.9.0", npm_package_dependencies_react_intersection_observer: "^9.4.3", npm_package_dependencies_react_dom: "^18.2.0", npm_package_devDependencies__types_mdx: "2.0.2", CONDA: "/usr/share/miniconda", RUNNER_NAME: "GitHub Actions 1000047997", XDG_CONFIG_HOME: "/home/runner/.config", GITHUB_REF_NAME: "fix/audio-output-selection", GITHUB_REPOSITORY: "100mslive/web-sdks", npm_lifecycle_script: "rm -rf dist && node ../../scripts/build-webapp", npm_package_size_limit_2_limit: "400 KB", npm_package_resolutions_loader_utils: "^2.0.4", npm_package_devDependencies_dotenv: "^14.2.0", npm_package_dependencies__radix_ui_react_slider: "1.0.0", npm_package_scripts_types_build: "tsc -p tsconfig.json", npm_package_main: "dist/index.cjs.js", ANDROID_NDK_ROOT: "/usr/local/lib/android/sdk/ndk/27.3.13750724", GITHUB_ACTION_REF: "", DEBIAN_FRONTEND: "noninteractive", npm_package_size_limit_3_limit: "20 KB", npm_package_size_limit_0_path: "packages/hms-video-store/dist/index.cjs.js", npm_package_scripts_lerna_publish: "lerna publish from-package --dist-tag $PUBLISH_FLAG --yes --no-verify-access", npm_package_scripts_test: "yarn build --no-private && lerna run test", npm_package_devDependencies_concurrently: "^6.4.0", npm_config_version_git_message: "v%s", npm_package_dependencies__radix_ui_react_checkbox: "1.0.0", npm_package_dependencies__100mslive_react_icons: "0.10.39-alpha.1", npm_package_scripts_types: "tsc -w", SHELL: "/bin/bash", GITHUB_REPOSITORY_ID: "429826515", GITHUB_ACTIONS: "true", npm_lifecycle_event: "build:only", npm_package_version: "0.3.39-alpha.1", npm_package_size_limit_4_limit: "20 KB", npm_package_size_limit_1_path: "packages/hms-video-store/dist/index.js", npm_package_resolutions_axios: "^1.7.4", npm_package_scripts_build_only: "rm -rf dist && node ../../scripts/build-webapp", npm_package_devDependencies_jest_environment_jsdom: "^29.7.0", npm_package_devDependencies__types_react: "^18.1.0", npm_package_sideEffects: "false", npm_package_repository_url: "https://github.com/100mslive/web-sdks.git", npm_package_source: "src/index.ts", GITHUB_REF_PROTECTED: "false", npm_config_argv: '{"remain":[],"cooked":["run","test"],"original":["test"]}', npm_package_size_limit_5_limit: "20 KB", npm_package_size_limit_2_path: "packages/roomkit-react/dist/index.cjs.js", npm_package_scripts_build: "yarn build:only && yarn types:build", npm_package_devDependencies_tslib: "^2.2.0", npm_package_devDependencies_nx: "^14.5.1", npm_package_devDependencies_lint_staged: "^12.0.3", NX_CLI_SET: "true", npm_package_dependencies_uuid: "^8.3.2", npm_package_dependencies_react_virtualized_auto_sizer: "^1.0.7", npm_package_dependencies_lodash_merge: "^4.6.2", npm_package_dependencies_emoji_mart: "^5.2.2", GITHUB_WORKSPACE: "/home/runner/work/web-sdks/web-sdks", ACCEPT_EULA: "Y", GITHUB_JOB: "publish_packages", npm_package_size_limit_6_limit: "150 KB", npm_package_size_limit_3_path: "packages/roomkit-react/dist/index.js", GITHUB_SHA: "509554a0889c1a13e0ce30ed281830aa095238dd", GITHUB_RUN_ATTEMPT: "1", npm_package_size_limit_7_limit: "100 KB", npm_package_size_limit_4_path: "packages/hms-virtual-background/dist/index.cjs.js", npm_package_resolutions_form_data: "^4.0.4", npm_config_version_git_tag: "true", npm_config_version_git_sign: "", npm_package_dependencies_qrcode_react: "^3.1.0", GITHUB_REF: "refs/heads/fix/audio-output-selection", GITHUB_ACTOR: "raviteja83", ANDROID_SDK_ROOT: "/usr/local/lib/android/sdk", npm_package_license: "MIT", npm_package_size_limit_5_path: "packages/hms-virtual-background/dist/index.js", npm_config_strict_ssl: "true", npm_package_size_limit_6_path: "packages/react-icons/dist/index.cjs.js", npm_package_scripts_format: "prettier -w src/**", npm_package_devDependencies_eslint_plugin_prettier: "^4.0.0", npm_package_devDependencies_eslint_config_react_app: "^7.0.0", NX_TASK_TARGET_PROJECT: "@100mslive/roomkit-react", GITHUB_PATH: "/home/runner/work/_temp/_runner_file_commands/add_path_b5b3fc7d-4ee3-4edb-a9d4-5c0e77fdba98", JAVA_HOME: "/usr/lib/jvm/temurin-17-jdk-amd64", PWD: "/home/runner/work/web-sdks/web-sdks/packages/roomkit-react", GITHUB_ACTOR_ID: "6763261", RUNNER_WORKSPACE: "/home/runner/work/web-sdks", npm_execpath: "/usr/local/lib/node_modules/yarn/bin/yarn.js", npm_package_size_limit_7_path: "packages/react-icons/dist/index.js", npm_package_scripts_ybys: "yarn && yarn build --no-private && yarn storybook", npm_package_dependencies__radix_ui_react_progress: "1.0.0", HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: "3650", GITHUB_EVENT_NAME: "workflow_dispatch", HOMEBREW_NO_AUTO_UPDATE: "1", ANDROID_HOME: "/usr/local/lib/android/sdk", GITHUB_SERVER_URL: "https://github.com", GECKOWEBDRIVER: "/usr/local/share/gecko_driver", GHCUP_INSTALL_BASE_PREFIX: "/usr/local", GITHUB_OUTPUT: "/home/runner/work/_temp/_runner_file_commands/set_output_b5b3fc7d-4ee3-4edb-a9d4-5c0e77fdba98", npm_package_scripts_prestart: "rm -rf dist && yarn types:build", npm_package_author_name: "100ms", EDGEWEBDRIVER: "/usr/local/share/edge_driver", npm_package_scripts_build_storybook: "sb build", npm_package_devDependencies_postcss: "^8.4.5", npm_package_devDependencies_esbuild: "^0.18.13", npm_config_save_prefix: "^", npm_config_ignore_optional: "", npm_package_dependencies_worker_timers: "^7.0.40", npm_package_typings: "dist/index.d.ts", ANDROID_NDK: "/usr/local/lib/android/sdk/ndk/27.3.13750724", SGX_AESM_ADDR: "1", CHROME_BIN: "/usr/bin/google-chrome", npm_package_scripts_storybook: "sb dev -p 6006", npm_package_devDependencies_esbuild_plugin_postcss2: "0.1.1", npm_package_dependencies_react_swipeable: "^7.0.1", npm_package_devDependencies_babel_plugin_react_require: "3.1.3", npm_package_devDependencies__storybook_testing_library: "^0.2.0", npm_package_devDependencies__storybook_addon_essentials: "^7.0.27", SELENIUM_JAR_PATH: "/usr/share/java/selenium-server.jar", MEMORY_PRESSURE_WRITE: "c29tZSAyMDAwMDAgMjAwMDAwMAA=", npm_package_scripts_reactsdk: "cd packages/react-sdk && yarn start", npm_package_dependencies_react_use: "^17.4.0", npm_package_dependencies__radix_ui_react_collapsible: "1.0.0", npm_package_devDependencies_storybook_dark_mode: "^3.0.0", npm_package_devDependencies_knip: "^5.11.0", npm_package_devDependencies__storybook_react: "^7.0.27", INIT_CWD: "/home/runner/work/web-sdks/web-sdks", ANDROID_NDK_HOME: "/usr/local/lib/android/sdk/ndk/27.3.13750724", GITHUB_STEP_SUMMARY: "/home/runner/work/_temp/_runner_file_commands/step_summary_b5b3fc7d-4ee3-4edb-a9d4-5c0e77fdba98" };
112
+ define_process_env_default = { GITHUB_STATE: "/home/runner/work/_temp/_runner_file_commands/save_state_db56eb4b-af73-4c2c-a8a5-5f693071c2af", npm_package_devDependencies_ts_node: "^10.4.0", npm_package_devDependencies__types_node: "^16.11.17", npm_package_exports___index_css: "./dist/index.css", npm_package_exports___require: "./dist/index.cjs.js", DOTNET_NOLOGO: "1", npm_package_dependencies_screenfull: "^5.1.0", npm_package_dependencies_react_draggable: "^4.4.5", npm_package_dependencies__radix_ui_react_switch: "1.0.0", npm_package_dependencies__100mslive_hms_whiteboard: "0.0.30-alpha.0", USER: "runner", npm_package_resolutions__octokit_request: "^8.4.1", npm_package_devDependencies_jest: "^29.7.0", npm_config_version_commit_hooks: "true", npm_config_user_agent: "yarn/1.22.22 npm/? node/v20.19.5 linux x64", npm_config_always_auth: "", NX_WORKSPACE_ROOT: "/home/runner/work/web-sdks/web-sdks", npm_package_scripts_babel: "npx storybook@latest babelrc", CI: "true", npm_package_devDependencies__size_limit_file: "^5.0.3", npm_config_bin_links: "true", npm_config_wrap_output: "", npm_package_dependencies__radix_ui_react_tabs: "1.0.0", npm_package_dependencies__100mslive_react_sdk: "0.10.40-alpha.0", RUNNER_ENVIRONMENT: "github-hosted", GITHUB_ENV: "/home/runner/work/_temp/_runner_file_commands/set_env_db56eb4b-af73-4c2c-a8a5-5f693071c2af", PIPX_HOME: "/opt/pipx", npm_node_execpath: "/opt/hostedtoolcache/node/20.19.5/x64/bin/node", npm_config_init_version: "1.0.0", npm_package_dependencies__emoji_mart_react: "^1.0.1", npm_package_dependencies__emoji_mart_data: "^1.0.6", npm_package_dependencies__100mslive_hms_virtual_background: "1.13.40-alpha.0", JAVA_HOME_8_X64: "/usr/lib/jvm/temurin-8-jdk-amd64", NODE_AUTH_TOKEN: "XXXXX-XXXXX-XXXXX-XXXXX", SHLVL: "1", npm_package_dependencies__radix_ui_react_tooltip: "1.0.6", npm_package_dependencies__radix_ui_react_popover: "1.0.6", npm_package_dependencies__100mslive_types_prebuilt: "0.12.12", npm_package_peerDependencies_react: ">=17.0.2 <19.0.0", npm_package_devDependencies__storybook_addon_links: "^7.0.27", npm_package_files_0: "dist", HOME: "/home/runner", npm_package_devDependencies__typescript_eslint_parser: "^5.4.0", npm_package_dependencies__radix_ui_react_dialog: "1.0.4", npm_package_devDependencies__types_react_window: "^1.8.5", npm_package_files_1: "src", npm_package_repository_directory: "packages/roomkit-react", RUNNER_TEMP: "/home/runner/work/_temp", GITHUB_EVENT_PATH: "/home/runner/work/_temp/_github_workflow/event.json", npm_package_scripts_controller: "cd packages/hls-controller && yarn start", npm_package_dependencies__stitches_react: "1.3.1-1", JAVA_HOME_11_X64: "/usr/lib/jvm/temurin-11-jdk-amd64", PIPX_BIN_DIR: "/opt/pipx_bin", GITHUB_REPOSITORY_OWNER: "100mslive", npm_package_engines_node: ">=16", npm_package_devDependencies_typedoc_plugin_markdown: "^3.14.0", npm_config_init_license: "MIT", GRADLE_HOME: "/usr/share/gradle-9.2.0", ANDROID_NDK_LATEST_HOME: "/usr/local/lib/android/sdk/ndk/29.0.14206865", JAVA_HOME_21_X64: "/usr/lib/jvm/temurin-21-jdk-amd64", GITHUB_RETENTION_DAYS: "90", YARN_WRAP_OUTPUT: "false", npm_config_version_tag_prefix: "v", GITHUB_REPOSITORY_OWNER_ID: "73883131", POWERSHELL_DISTRIBUTION_CHANNEL: "GitHub-Actions-ubuntu24", AZURE_EXTENSION_DIR: "/opt/az/azcliextensions", GITHUB_HEAD_REF: "", npm_package_scripts_lint_fix: "yarn lint --fix", npm_config_userconfig: "/home/runner/work/_temp/.npmrc", npm_package_devDependencies__storybook_addon_a11y: "^7.0.27", SYSTEMD_EXEC_PID: "1894", npm_package_scripts_postinstall: "husky install", npm_package_devDependencies_husky: "^6.0.0", npm_package_dependencies_recordrtc: "^5.6.2", npm_package_dependencies_eventemitter2: "^6.4.9", npm_package_dependencies__radix_ui_react_label: "1.0.0", npm_package_dependencies__radix_ui_react_dropdown_menu: "2.0.5", npm_package_keywords_0: "100mslive", GITHUB_GRAPHQL_URL: "https://api.github.com/graphql", npm_package_description: "100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.", npm_package_devDependencies_typescript: "~4.7.4", npm_package_devDependencies_typedoc: "^0.24.8", npm_package_devDependencies_babel_loader: "^8.2.5", npm_package_keywords_1: "react", JAVA_HOME_25_X64: "/usr/lib/jvm/temurin-25-jdk-amd64", NVM_DIR: "/home/runner/.nvm", npm_package_readmeFilename: "README.md", npm_package_devDependencies_react: "^18.1.0", npm_package_devDependencies__babel_preset_env: "^7.22.5", npm_package_keywords_2: "prebuilt", DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1", JAVA_HOME_17_X64: "/usr/lib/jvm/temurin-17-jdk-amd64", ImageVersion: "20251112.124.1", npm_package_devDependencies_prettier: "^2.4.1", npm_package_devDependencies_babel_jest: "^29.7.0", npm_package_scripts_dev: "node ../../scripts/dev", npm_package_keywords_3: "roomkit", LOGNAME: "runner", RUNNER_OS: "Linux", GITHUB_API_URL: "https://api.github.com", GOROOT_1_22_X64: "/opt/hostedtoolcache/go/1.22.12/x64", SWIFT_PATH: "/usr/share/swift/usr/bin", FORCE_COLOR: "true", npm_package_dependencies__radix_ui_react_toast: "1.0.0", npm_package_dependencies__radix_ui_react_radio_group: "1.0.0", npm_package_dependencies__100mslive_hms_noise_cancellation: "0.0.1", npm_package_devDependencies__babel_preset_typescript: "^7.22.5", npm_package_exports___default: "./dist/index.js", CHROMEWEBDRIVER: "/usr/local/share/chromedriver-linux64", GOROOT_1_23_X64: "/opt/hostedtoolcache/go/1.23.12/x64", JOURNAL_STREAM: "9:14415", GITHUB_WORKFLOW: "Publish Packages", _: "/usr/local/bin/yarn", npm_package_devDependencies_ts_jest: "^29.1.1", npm_package_devDependencies_lerna: "^5.6.2", npm_package_devDependencies__types_jest: "^27.0.3", npm_package_devDependencies__commitlint_config_conventional: "^19.6.0", npm_package_private: "true", npm_package_dependencies__radix_ui_react_accordion: "1.0.0", npm_package_devDependencies__babel_preset_react: "^7.22.5", npm_package_module: "dist/index.js", MEMORY_PRESSURE_WATCH: "/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure", GOROOT_1_24_X64: "/opt/hostedtoolcache/go/1.24.10/x64", npm_package_scripts_lint: "eslint -c .eslintrc --no-error-on-unmatched-pattern src --ext .js --ext .jsx --ext .ts --ext .tsx", npm_package_devDependencies__typescript_eslint_eslint_plugin: "^5.4.0", npm_config_registry: "https://registry.yarnpkg.com", npm_package_dependencies_react_window: "^1.8.7", npm_package_dependencies__100mslive_hls_player: "0.3.40-alpha.0", npm_package_devDependencies__types_lodash_merge: "^4.6.6", npm_package_devDependencies__storybook_cli: "^7.0.27", ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE: "/opt/actionarchivecache", GOROOT_1_25_X64: "/opt/hostedtoolcache/go/1.25.4/x64", GITHUB_RUN_ID: "19351282958", npm_package_workspaces_0: "packages/*", npm_package_scripts_store: "cd packages/hms-video-store && yarn start", npm_package_devDependencies__babel_core: "^7.18.2", npm_package_dependencies_ts_pattern: "4.3.0", npm_package_devDependencies__storybook_addon_interactions: "^7.0.27", npm_package_devDependencies__storybook_addon_actions: "^7.0.27", GITHUB_REF_TYPE: "branch", BOOTSTRAP_HASKELL_NONINTERACTIVE: "1", GITHUB_WORKFLOW_SHA: "13400154c64cb0e7289e8455733131ca0761532c", GITHUB_BASE_REF: "", ImageOS: "ubuntu24", npm_package_workspaces_1: "examples/*", npm_package_scripts_start: 'concurrently "yarn dev" "yarn types"', npm_config_ignore_scripts: "", NX_TASK_HASH: "629e2980e146bf9a42cec315d45f534e859c4f22b896d22257e8d6f76b895be7", npm_package_exports___import: "./dist/index.js", GITHUB_WORKFLOW_REF: "100mslive/web-sdks/.github/workflows/publish.yml@refs/heads/fix/device-change-event", GITHUB_ACTION_REPOSITORY: "", ENABLE_RUNNER_TRACING: "true", npm_package_resolutions_on_headers: "^1.1.0", npm_package_resolutions_semver: "^7.5.2", npm_package_scripts_prebuilt: "cd packages/roomkit-react && yarn start", npm_package_devDependencies_postcss_loader: "^6.2.1", npm_package_devDependencies_esbuild_loader: "^4.0.2", PATH: "/tmp/yarn--1763083779118-0.09929644895887058:/home/runner/work/web-sdks/web-sdks/packages/roomkit-react/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/20.19.5/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1763083778946-0.7513423489060367:/home/runner/work/web-sdks/web-sdks/packages/roomkit-react/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/20.19.5/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1763083753853-0.7907117933944905:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/20.19.5/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/bin/node_modules/npm/bin/node-gyp-bin:/tmp/yarn--1763083753692-0.4558616258804573:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/home/runner/.config/yarn/link/node_modules/.bin:/home/runner/work/web-sdks/web-sdks/node_modules/.bin:/opt/hostedtoolcache/node/20.19.5/x64/libexec/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/lib/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/bin/node_modules/npm/bin/node-gyp-bin:/opt/hostedtoolcache/node/20.19.5/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", NODE: "/opt/hostedtoolcache/node/20.19.5/x64/bin/node", ANT_HOME: "/usr/share/ant", DOTNET_MULTILEVEL_LOOKUP: "0", RUNNER_TRACKING_ID: "github_c6c5511b-78a8-4ff9-aa80-d99177e5aa2a", INVOCATION_ID: "6ac3f0fe55d444a89119e917de8c93e2", NPM_CONFIG_USERCONFIG: "/home/runner/work/_temp/.npmrc", RUNNER_TOOL_CACHE: "/opt/hostedtoolcache", npm_package_scripts_size: "size-limit", npm_package_devDependencies_size_limit: "^5.0.3", npm_package_name: "@100mslive/roomkit-react", npm_package_devDependencies__storybook_react_webpack5: "^7.0.27", npm_package_repository_type: "git", GITHUB_ACTION: "__run_3", GITHUB_RUN_NUMBER: "767", GITHUB_TRIGGERING_ACTOR: "raviteja83", RUNNER_ARCH: "X64", XDG_RUNTIME_DIR: "/run/user/1001", AGENT_TOOLSDIRECTORY: "/opt/hostedtoolcache", npm_package_lint_staged____js_ts_jsx_tsx_: "eslint", npm_package_devDependencies_babel_plugin_istanbul: "^6.1.1", LERNA_PACKAGE_NAME: "@100mslive/roomkit-react", npm_package_dependencies__radix_ui_react_select: "1.0.0", npm_package_size_limit_0_limit: "20 KB", npm_package_devDependencies__commitlint_cli: "^19.6.0", LANG: "C.UTF-8", VCPKG_INSTALLATION_ROOT: "/usr/local/share/vcpkg", npm_package_size_limit_1_limit: "20 KB", npm_package_devDependencies_eslint_plugin_simple_import_sort: "^8.0.0", npm_package_devDependencies_eslint: "^8.9.0", npm_package_dependencies_react_intersection_observer: "^9.4.3", npm_package_dependencies_react_dom: "^18.2.0", npm_package_devDependencies__types_mdx: "2.0.2", CONDA: "/usr/share/miniconda", RUNNER_NAME: "GitHub Actions 1000073733", XDG_CONFIG_HOME: "/home/runner/.config", GITHUB_REF_NAME: "fix/device-change-event", GITHUB_REPOSITORY: "100mslive/web-sdks", npm_lifecycle_script: "rm -rf dist && node ../../scripts/build-webapp", npm_package_size_limit_2_limit: "400 KB", npm_package_resolutions_loader_utils: "^2.0.4", npm_package_devDependencies_dotenv: "^14.2.0", npm_package_dependencies__radix_ui_react_slider: "1.0.0", npm_package_scripts_types_build: "tsc -p tsconfig.json", npm_package_main: "dist/index.cjs.js", ANDROID_NDK_ROOT: "/usr/local/lib/android/sdk/ndk/27.3.13750724", GITHUB_ACTION_REF: "", DEBIAN_FRONTEND: "noninteractive", npm_package_size_limit_3_limit: "20 KB", npm_package_size_limit_0_path: "packages/hms-video-store/dist/index.cjs.js", npm_package_scripts_lerna_publish: "lerna publish from-package --dist-tag $PUBLISH_FLAG --yes --no-verify-access", npm_package_scripts_test: "yarn build --no-private && lerna run test", npm_package_devDependencies_concurrently: "^6.4.0", npm_config_version_git_message: "v%s", npm_package_dependencies__radix_ui_react_checkbox: "1.0.0", npm_package_dependencies__100mslive_react_icons: "0.10.40-alpha.0", npm_package_scripts_types: "tsc -w", SHELL: "/bin/bash", GITHUB_REPOSITORY_ID: "429826515", GITHUB_ACTIONS: "true", npm_lifecycle_event: "build:only", npm_package_version: "0.3.40-alpha.0", npm_package_size_limit_4_limit: "20 KB", npm_package_size_limit_1_path: "packages/hms-video-store/dist/index.js", npm_package_resolutions__octokit_request_error: "^5.1.1", npm_package_resolutions_axios: "^1.7.4", npm_package_scripts_build_only: "rm -rf dist && node ../../scripts/build-webapp", npm_package_devDependencies_jest_environment_jsdom: "^29.7.0", npm_package_devDependencies__types_react: "^18.1.0", npm_package_sideEffects: "false", npm_package_repository_url: "https://github.com/100mslive/web-sdks.git", npm_package_source: "src/index.ts", GITHUB_REF_PROTECTED: "false", npm_config_argv: '{"remain":[],"cooked":["run","test"],"original":["test"]}', npm_package_size_limit_5_limit: "20 KB", npm_package_size_limit_2_path: "packages/roomkit-react/dist/index.cjs.js", npm_package_scripts_build: "yarn build:only && yarn types:build", npm_package_devDependencies_tslib: "^2.2.0", npm_package_devDependencies_nx: "^14.5.1", npm_package_devDependencies_lint_staged: "^12.0.3", NX_CLI_SET: "true", npm_package_dependencies_uuid: "^8.3.2", npm_package_dependencies_react_virtualized_auto_sizer: "^1.0.7", npm_package_dependencies_lodash_merge: "^4.6.2", npm_package_dependencies_emoji_mart: "^5.2.2", GITHUB_WORKSPACE: "/home/runner/work/web-sdks/web-sdks", ACCEPT_EULA: "Y", GITHUB_JOB: "publish_packages", npm_package_size_limit_6_limit: "150 KB", npm_package_size_limit_3_path: "packages/roomkit-react/dist/index.js", GITHUB_SHA: "13400154c64cb0e7289e8455733131ca0761532c", GITHUB_RUN_ATTEMPT: "1", npm_package_size_limit_7_limit: "100 KB", npm_package_size_limit_4_path: "packages/hms-virtual-background/dist/index.cjs.js", npm_package_resolutions_form_data: "^4.0.4", npm_config_version_git_tag: "true", npm_config_version_git_sign: "", npm_package_dependencies_qrcode_react: "^3.1.0", GITHUB_REF: "refs/heads/fix/device-change-event", GITHUB_ACTOR: "raviteja83", ANDROID_SDK_ROOT: "/usr/local/lib/android/sdk", npm_package_license: "MIT", npm_package_size_limit_5_path: "packages/hms-virtual-background/dist/index.js", npm_config_strict_ssl: "true", npm_package_size_limit_6_path: "packages/react-icons/dist/index.cjs.js", npm_package_scripts_format: "prettier -w src/**", npm_package_devDependencies_eslint_plugin_prettier: "^4.0.0", npm_package_devDependencies_eslint_config_react_app: "^7.0.0", NX_TASK_TARGET_PROJECT: "@100mslive/roomkit-react", GITHUB_PATH: "/home/runner/work/_temp/_runner_file_commands/add_path_db56eb4b-af73-4c2c-a8a5-5f693071c2af", JAVA_HOME: "/usr/lib/jvm/temurin-17-jdk-amd64", PWD: "/home/runner/work/web-sdks/web-sdks/packages/roomkit-react", GITHUB_ACTOR_ID: "6763261", RUNNER_WORKSPACE: "/home/runner/work/web-sdks", npm_execpath: "/usr/local/lib/node_modules/yarn/bin/yarn.js", npm_package_size_limit_7_path: "packages/react-icons/dist/index.js", npm_package_scripts_ybys: "yarn && yarn build --no-private && yarn storybook", npm_package_dependencies__radix_ui_react_progress: "1.0.0", HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: "3650", GITHUB_EVENT_NAME: "workflow_dispatch", HOMEBREW_NO_AUTO_UPDATE: "1", ANDROID_HOME: "/usr/local/lib/android/sdk", GITHUB_SERVER_URL: "https://github.com", GECKOWEBDRIVER: "/usr/local/share/gecko_driver", GHCUP_INSTALL_BASE_PREFIX: "/usr/local", GITHUB_OUTPUT: "/home/runner/work/_temp/_runner_file_commands/set_output_db56eb4b-af73-4c2c-a8a5-5f693071c2af", npm_package_scripts_prestart: "rm -rf dist && yarn types:build", npm_package_author_name: "100ms", EDGEWEBDRIVER: "/usr/local/share/edge_driver", npm_package_scripts_build_storybook: "sb build", npm_package_devDependencies_postcss: "^8.4.5", npm_package_devDependencies_esbuild: "^0.18.13", npm_config_save_prefix: "^", npm_config_ignore_optional: "", npm_package_dependencies_worker_timers: "^7.0.40", npm_package_typings: "dist/index.d.ts", ANDROID_NDK: "/usr/local/lib/android/sdk/ndk/27.3.13750724", SGX_AESM_ADDR: "1", CHROME_BIN: "/usr/bin/google-chrome", npm_package_scripts_storybook: "sb dev -p 6006", npm_package_devDependencies_esbuild_plugin_postcss2: "0.1.1", npm_package_dependencies_react_swipeable: "^7.0.1", npm_package_devDependencies_babel_plugin_react_require: "3.1.3", npm_package_devDependencies__storybook_testing_library: "^0.2.0", npm_package_devDependencies__storybook_addon_essentials: "^7.0.27", SELENIUM_JAR_PATH: "/usr/share/java/selenium-server.jar", MEMORY_PRESSURE_WRITE: "c29tZSAyMDAwMDAgMjAwMDAwMAA=", npm_package_scripts_reactsdk: "cd packages/react-sdk && yarn start", npm_package_dependencies_react_use: "^17.4.0", npm_package_dependencies__radix_ui_react_collapsible: "1.0.0", npm_package_devDependencies_storybook_dark_mode: "^3.0.0", npm_package_devDependencies_knip: "^5.11.0", npm_package_devDependencies__storybook_react: "^7.0.27", INIT_CWD: "/home/runner/work/web-sdks/web-sdks", ANDROID_NDK_HOME: "/usr/local/lib/android/sdk/ndk/27.3.13750724", GITHUB_STEP_SUMMARY: "/home/runner/work/_temp/_runner_file_commands/step_summary_db56eb4b-af73-4c2c-a8a5-5f693071c2af" };
113
113
  }
114
114
  });
115
115
 
@@ -119,7 +119,7 @@ var require_lodash = __commonJS({
119
119
  init_define_process_env();
120
120
  (function() {
121
121
  var undefined2;
122
- var VERSION = "4.17.21";
122
+ var VERSION2 = "4.17.21";
123
123
  var LARGE_ARRAY_SIZE = 200;
124
124
  var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
125
125
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
@@ -3774,7 +3774,7 @@ var require_lodash = __commonJS({
3774
3774
  if (fromIndex < 0) {
3775
3775
  fromIndex = nativeMax(length + fromIndex, 0);
3776
3776
  }
3777
- return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
3777
+ return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
3778
3778
  }
3779
3779
  var invokeMap = baseRest(function(collection, path, args) {
3780
3780
  var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : [];
@@ -3842,7 +3842,7 @@ var require_lodash = __commonJS({
3842
3842
  return 0;
3843
3843
  }
3844
3844
  if (isArrayLike(collection)) {
3845
- return isString(collection) ? stringSize(collection) : collection.length;
3845
+ return isString2(collection) ? stringSize(collection) : collection.length;
3846
3846
  }
3847
3847
  var tag = getTag(collection);
3848
3848
  if (tag == mapTag || tag == setTag) {
@@ -4151,7 +4151,7 @@ var require_lodash = __commonJS({
4151
4151
  function eq(value, other) {
4152
4152
  return value === other || value !== value && other !== other;
4153
4153
  }
4154
- var gt2 = createRelationalOperation(baseGt);
4154
+ var gt = createRelationalOperation(baseGt);
4155
4155
  var gte = createRelationalOperation(function(value, other) {
4156
4156
  return value >= other;
4157
4157
  });
@@ -4277,7 +4277,7 @@ var require_lodash = __commonJS({
4277
4277
  return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
4278
4278
  }
4279
4279
  var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
4280
- function isString(value) {
4280
+ function isString2(value) {
4281
4281
  return typeof value == "string" || !isArray2(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
4282
4282
  }
4283
4283
  function isSymbol(value) {
@@ -4302,7 +4302,7 @@ var require_lodash = __commonJS({
4302
4302
  return [];
4303
4303
  }
4304
4304
  if (isArrayLike(value)) {
4305
- return isString(value) ? stringToArray(value) : copyArray(value);
4305
+ return isString2(value) ? stringToArray(value) : copyArray(value);
4306
4306
  }
4307
4307
  if (symIterator && value[symIterator]) {
4308
4308
  return iteratorToArray(value[symIterator]());
@@ -4435,7 +4435,7 @@ var require_lodash = __commonJS({
4435
4435
  var result2 = object == null ? undefined2 : baseGet(object, path);
4436
4436
  return result2 === undefined2 ? defaultValue : result2;
4437
4437
  }
4438
- function has(object, path) {
4438
+ function has2(object, path) {
4439
4439
  return object != null && hasPath(object, path, baseHas);
4440
4440
  }
4441
4441
  function hasIn(object, path) {
@@ -4808,7 +4808,7 @@ var require_lodash = __commonJS({
4808
4808
  function toUpper(value) {
4809
4809
  return toString(value).toUpperCase();
4810
4810
  }
4811
- function trim(string, chars, guard) {
4811
+ function trim2(string, chars, guard) {
4812
4812
  string = toString(string);
4813
4813
  if (string && (guard || chars === undefined2)) {
4814
4814
  return baseTrim(string);
@@ -5290,9 +5290,9 @@ var require_lodash = __commonJS({
5290
5290
  lodash.forOwn = forOwn;
5291
5291
  lodash.forOwnRight = forOwnRight;
5292
5292
  lodash.get = get;
5293
- lodash.gt = gt2;
5293
+ lodash.gt = gt;
5294
5294
  lodash.gte = gte;
5295
- lodash.has = has;
5295
+ lodash.has = has2;
5296
5296
  lodash.hasIn = hasIn;
5297
5297
  lodash.head = head;
5298
5298
  lodash.identity = identity;
@@ -5331,7 +5331,7 @@ var require_lodash = __commonJS({
5331
5331
  lodash.isRegExp = isRegExp;
5332
5332
  lodash.isSafeInteger = isSafeInteger;
5333
5333
  lodash.isSet = isSet;
5334
- lodash.isString = isString;
5334
+ lodash.isString = isString2;
5335
5335
  lodash.isSymbol = isSymbol;
5336
5336
  lodash.isTypedArray = isTypedArray;
5337
5337
  lodash.isUndefined = isUndefined;
@@ -5398,7 +5398,7 @@ var require_lodash = __commonJS({
5398
5398
  lodash.toSafeInteger = toSafeInteger;
5399
5399
  lodash.toString = toString;
5400
5400
  lodash.toUpper = toUpper;
5401
- lodash.trim = trim;
5401
+ lodash.trim = trim2;
5402
5402
  lodash.trimEnd = trimEnd;
5403
5403
  lodash.trimStart = trimStart;
5404
5404
  lodash.truncate = truncate;
@@ -5418,7 +5418,7 @@ var require_lodash = __commonJS({
5418
5418
  });
5419
5419
  return source;
5420
5420
  }(), { "chain": false });
5421
- lodash.VERSION = VERSION;
5421
+ lodash.VERSION = VERSION2;
5422
5422
  arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
5423
5423
  lodash[methodName].placeholder = lodash;
5424
5424
  });
@@ -5594,1260 +5594,6 @@ var require_lodash = __commonJS({
5594
5594
  }
5595
5595
  });
5596
5596
 
5597
- // ../../node_modules/ua-parser-js/src/ua-parser.js
5598
- var require_ua_parser = __commonJS({
5599
- "../../node_modules/ua-parser-js/src/ua-parser.js"(exports, module2) {
5600
- init_define_process_env();
5601
- (function(window2, undefined2) {
5602
- "use strict";
5603
- var LIBVERSION = "1.0.35", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 350;
5604
- var AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", VIERA = "Viera", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS";
5605
- var extend = function(regexes2, extensions) {
5606
- var mergedRegexes = {};
5607
- for (var i in regexes2) {
5608
- if (extensions[i] && extensions[i].length % 2 === 0) {
5609
- mergedRegexes[i] = extensions[i].concat(regexes2[i]);
5610
- } else {
5611
- mergedRegexes[i] = regexes2[i];
5612
- }
5613
- }
5614
- return mergedRegexes;
5615
- }, enumerize = function(arr) {
5616
- var enums = {};
5617
- for (var i = 0; i < arr.length; i++) {
5618
- enums[arr[i].toUpperCase()] = arr[i];
5619
- }
5620
- return enums;
5621
- }, has = function(str1, str2) {
5622
- return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
5623
- }, lowerize = function(str) {
5624
- return str.toLowerCase();
5625
- }, majorize = function(version) {
5626
- return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined2;
5627
- }, trim = function(str, len) {
5628
- if (typeof str === STR_TYPE) {
5629
- str = str.replace(/^\s\s*/, EMPTY);
5630
- return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
5631
- }
5632
- };
5633
- var rgxMapper = function(ua, arrays) {
5634
- var i = 0, j2, k2, p, q, matches, match18;
5635
- while (i < arrays.length && !matches) {
5636
- var regex = arrays[i], props = arrays[i + 1];
5637
- j2 = k2 = 0;
5638
- while (j2 < regex.length && !matches) {
5639
- if (!regex[j2]) {
5640
- break;
5641
- }
5642
- matches = regex[j2++].exec(ua);
5643
- if (!!matches) {
5644
- for (p = 0; p < props.length; p++) {
5645
- match18 = matches[++k2];
5646
- q = props[p];
5647
- if (typeof q === OBJ_TYPE && q.length > 0) {
5648
- if (q.length === 2) {
5649
- if (typeof q[1] == FUNC_TYPE) {
5650
- this[q[0]] = q[1].call(this, match18);
5651
- } else {
5652
- this[q[0]] = q[1];
5653
- }
5654
- } else if (q.length === 3) {
5655
- if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
5656
- this[q[0]] = match18 ? q[1].call(this, match18, q[2]) : undefined2;
5657
- } else {
5658
- this[q[0]] = match18 ? match18.replace(q[1], q[2]) : undefined2;
5659
- }
5660
- } else if (q.length === 4) {
5661
- this[q[0]] = match18 ? q[3].call(this, match18.replace(q[1], q[2])) : undefined2;
5662
- }
5663
- } else {
5664
- this[q] = match18 ? match18 : undefined2;
5665
- }
5666
- }
5667
- }
5668
- }
5669
- i += 2;
5670
- }
5671
- }, strMapper = function(str, map) {
5672
- for (var i in map) {
5673
- if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
5674
- for (var j2 = 0; j2 < map[i].length; j2++) {
5675
- if (has(map[i][j2], str)) {
5676
- return i === UNKNOWN ? undefined2 : i;
5677
- }
5678
- }
5679
- } else if (has(map[i], str)) {
5680
- return i === UNKNOWN ? undefined2 : i;
5681
- }
5682
- }
5683
- return str;
5684
- };
5685
- var oldSafariMap = {
5686
- "1.0": "/8",
5687
- "1.2": "/1",
5688
- "1.3": "/3",
5689
- "2.0": "/412",
5690
- "2.0.2": "/416",
5691
- "2.0.3": "/417",
5692
- "2.0.4": "/419",
5693
- "?": "/"
5694
- }, windowsVersionMap = {
5695
- "ME": "4.90",
5696
- "NT 3.11": "NT3.51",
5697
- "NT 4.0": "NT4.0",
5698
- "2000": "NT 5.0",
5699
- "XP": ["NT 5.1", "NT 5.2"],
5700
- "Vista": "NT 6.0",
5701
- "7": "NT 6.1",
5702
- "8": "NT 6.2",
5703
- "8.1": "NT 6.3",
5704
- "10": ["NT 6.4", "NT 10.0"],
5705
- "RT": "ARM"
5706
- };
5707
- var regexes = {
5708
- browser: [
5709
- [
5710
- /\b(?:crmo|crios)\/([\w\.]+)/i
5711
- // Chrome for Android/iOS
5712
- ],
5713
- [VERSION, [NAME, "Chrome"]],
5714
- [
5715
- /edg(?:e|ios|a)?\/([\w\.]+)/i
5716
- // Microsoft Edge
5717
- ],
5718
- [VERSION, [NAME, "Edge"]],
5719
- [
5720
- // Presto based
5721
- /(opera mini)\/([-\w\.]+)/i,
5722
- // Opera Mini
5723
- /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
5724
- // Opera Mobi/Tablet
5725
- /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
5726
- // Opera
5727
- ],
5728
- [NAME, VERSION],
5729
- [
5730
- /opios[\/ ]+([\w\.]+)/i
5731
- // Opera mini on iphone >= 8.0
5732
- ],
5733
- [VERSION, [NAME, OPERA + " Mini"]],
5734
- [
5735
- /\bopr\/([\w\.]+)/i
5736
- // Opera Webkit
5737
- ],
5738
- [VERSION, [NAME, OPERA]],
5739
- [
5740
- // Mixed
5741
- /(kindle)\/([\w\.]+)/i,
5742
- // Kindle
5743
- /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
5744
- // Lunascape/Maxthon/Netfront/Jasmine/Blazer
5745
- // Trident based
5746
- /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,
5747
- // Avant/IEMobile/SlimBrowser
5748
- /(ba?idubrowser)[\/ ]?([\w\.]+)/i,
5749
- // Baidu Browser
5750
- /(?:ms|\()(ie) ([\w\.]+)/i,
5751
- // Internet Explorer
5752
- // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
5753
- /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
5754
- // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
5755
- /(heytap|ovi)browser\/([\d\.]+)/i,
5756
- // Heytap/Ovi
5757
- /(weibo)__([\d\.]+)/i
5758
- // Weibo
5759
- ],
5760
- [NAME, VERSION],
5761
- [
5762
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
5763
- // UCBrowser
5764
- ],
5765
- [VERSION, [NAME, "UC" + BROWSER]],
5766
- [
5767
- /microm.+\bqbcore\/([\w\.]+)/i,
5768
- // WeChat Desktop for Windows Built-in Browser
5769
- /\bqbcore\/([\w\.]+).+microm/i
5770
- ],
5771
- [VERSION, [NAME, "WeChat(Win) Desktop"]],
5772
- [
5773
- /micromessenger\/([\w\.]+)/i
5774
- // WeChat
5775
- ],
5776
- [VERSION, [NAME, "WeChat"]],
5777
- [
5778
- /konqueror\/([\w\.]+)/i
5779
- // Konqueror
5780
- ],
5781
- [VERSION, [NAME, "Konqueror"]],
5782
- [
5783
- /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
5784
- // IE11
5785
- ],
5786
- [VERSION, [NAME, "IE"]],
5787
- [
5788
- /ya(?:search)?browser\/([\w\.]+)/i
5789
- // Yandex
5790
- ],
5791
- [VERSION, [NAME, "Yandex"]],
5792
- [
5793
- /(avast|avg)\/([\w\.]+)/i
5794
- // Avast/AVG Secure Browser
5795
- ],
5796
- [[NAME, /(.+)/, "$1 Secure " + BROWSER], VERSION],
5797
- [
5798
- /\bfocus\/([\w\.]+)/i
5799
- // Firefox Focus
5800
- ],
5801
- [VERSION, [NAME, FIREFOX + " Focus"]],
5802
- [
5803
- /\bopt\/([\w\.]+)/i
5804
- // Opera Touch
5805
- ],
5806
- [VERSION, [NAME, OPERA + " Touch"]],
5807
- [
5808
- /coc_coc\w+\/([\w\.]+)/i
5809
- // Coc Coc Browser
5810
- ],
5811
- [VERSION, [NAME, "Coc Coc"]],
5812
- [
5813
- /dolfin\/([\w\.]+)/i
5814
- // Dolphin
5815
- ],
5816
- [VERSION, [NAME, "Dolphin"]],
5817
- [
5818
- /coast\/([\w\.]+)/i
5819
- // Opera Coast
5820
- ],
5821
- [VERSION, [NAME, OPERA + " Coast"]],
5822
- [
5823
- /miuibrowser\/([\w\.]+)/i
5824
- // MIUI Browser
5825
- ],
5826
- [VERSION, [NAME, "MIUI " + BROWSER]],
5827
- [
5828
- /fxios\/([-\w\.]+)/i
5829
- // Firefox for iOS
5830
- ],
5831
- [VERSION, [NAME, FIREFOX]],
5832
- [
5833
- /\bqihu|(qi?ho?o?|360)browser/i
5834
- // 360
5835
- ],
5836
- [[NAME, "360 " + BROWSER]],
5837
- [
5838
- /(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i
5839
- ],
5840
- [[NAME, /(.+)/, "$1 " + BROWSER], VERSION],
5841
- [
5842
- // Oculus/Samsung/Sailfish/Huawei Browser
5843
- /(comodo_dragon)\/([\w\.]+)/i
5844
- // Comodo Dragon
5845
- ],
5846
- [[NAME, /_/g, " "], VERSION],
5847
- [
5848
- /(electron)\/([\w\.]+) safari/i,
5849
- // Electron-based App
5850
- /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
5851
- // Tesla
5852
- /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i
5853
- // QQBrowser/Baidu App/2345 Browser
5854
- ],
5855
- [NAME, VERSION],
5856
- [
5857
- /(metasr)[\/ ]?([\w\.]+)/i,
5858
- // SouGouBrowser
5859
- /(lbbrowser)/i,
5860
- // LieBao Browser
5861
- /\[(linkedin)app\]/i
5862
- // LinkedIn App for iOS & Android
5863
- ],
5864
- [NAME],
5865
- [
5866
- // WebView
5867
- /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
5868
- // Facebook App for iOS & Android
5869
- ],
5870
- [[NAME, FACEBOOK], VERSION],
5871
- [
5872
- /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
5873
- // Kakao App
5874
- /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
5875
- // Naver InApp
5876
- /safari (line)\/([\w\.]+)/i,
5877
- // Line App for iOS
5878
- /\b(line)\/([\w\.]+)\/iab/i,
5879
- // Line App for Android
5880
- /(chromium|instagram)[\/ ]([-\w\.]+)/i
5881
- // Chromium/Instagram
5882
- ],
5883
- [NAME, VERSION],
5884
- [
5885
- /\bgsa\/([\w\.]+) .*safari\//i
5886
- // Google Search Appliance on iOS
5887
- ],
5888
- [VERSION, [NAME, "GSA"]],
5889
- [
5890
- /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
5891
- // TikTok
5892
- ],
5893
- [VERSION, [NAME, "TikTok"]],
5894
- [
5895
- /headlesschrome(?:\/([\w\.]+)| )/i
5896
- // Chrome Headless
5897
- ],
5898
- [VERSION, [NAME, CHROME + " Headless"]],
5899
- [
5900
- / wv\).+(chrome)\/([\w\.]+)/i
5901
- // Chrome WebView
5902
- ],
5903
- [[NAME, CHROME + " WebView"], VERSION],
5904
- [
5905
- /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
5906
- // Android Browser
5907
- ],
5908
- [VERSION, [NAME, "Android " + BROWSER]],
5909
- [
5910
- /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
5911
- // Chrome/OmniWeb/Arora/Tizen/Nokia
5912
- ],
5913
- [NAME, VERSION],
5914
- [
5915
- /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
5916
- // Mobile Safari
5917
- ],
5918
- [VERSION, [NAME, "Mobile Safari"]],
5919
- [
5920
- /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
5921
- // Safari & Safari Mobile
5922
- ],
5923
- [VERSION, NAME],
5924
- [
5925
- /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
5926
- // Safari < 3.0
5927
- ],
5928
- [NAME, [VERSION, strMapper, oldSafariMap]],
5929
- [
5930
- /(webkit|khtml)\/([\w\.]+)/i
5931
- ],
5932
- [NAME, VERSION],
5933
- [
5934
- // Gecko based
5935
- /(navigator|netscape\d?)\/([-\w\.]+)/i
5936
- // Netscape
5937
- ],
5938
- [[NAME, "Netscape"], VERSION],
5939
- [
5940
- /mobile vr; rv:([\w\.]+)\).+firefox/i
5941
- // Firefox Reality
5942
- ],
5943
- [VERSION, [NAME, FIREFOX + " Reality"]],
5944
- [
5945
- /ekiohf.+(flow)\/([\w\.]+)/i,
5946
- // Flow
5947
- /(swiftfox)/i,
5948
- // Swiftfox
5949
- /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
5950
- // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar
5951
- /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
5952
- // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
5953
- /(firefox)\/([\w\.]+)/i,
5954
- // Other Firefox-based
5955
- /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
5956
- // Mozilla
5957
- // Other
5958
- /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
5959
- // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
5960
- /(links) \(([\w\.]+)/i,
5961
- // Links
5962
- /panasonic;(viera)/i
5963
- // Panasonic Viera
5964
- ],
5965
- [NAME, VERSION],
5966
- [
5967
- /(cobalt)\/([\w\.]+)/i
5968
- // Cobalt
5969
- ],
5970
- [NAME, [VERSION, /master.|lts./, ""]]
5971
- ],
5972
- cpu: [
5973
- [
5974
- /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
5975
- // AMD64 (x64)
5976
- ],
5977
- [[ARCHITECTURE, "amd64"]],
5978
- [
5979
- /(ia32(?=;))/i
5980
- // IA32 (quicktime)
5981
- ],
5982
- [[ARCHITECTURE, lowerize]],
5983
- [
5984
- /((?:i[346]|x)86)[;\)]/i
5985
- // IA32 (x86)
5986
- ],
5987
- [[ARCHITECTURE, "ia32"]],
5988
- [
5989
- /\b(aarch64|arm(v?8e?l?|_?64))\b/i
5990
- // ARM64
5991
- ],
5992
- [[ARCHITECTURE, "arm64"]],
5993
- [
5994
- /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
5995
- // ARMHF
5996
- ],
5997
- [[ARCHITECTURE, "armhf"]],
5998
- [
5999
- // PocketPC mistakenly identified as PowerPC
6000
- /windows (ce|mobile); ppc;/i
6001
- ],
6002
- [[ARCHITECTURE, "arm"]],
6003
- [
6004
- /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
6005
- // PowerPC
6006
- ],
6007
- [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
6008
- [
6009
- /(sun4\w)[;\)]/i
6010
- // SPARC
6011
- ],
6012
- [[ARCHITECTURE, "sparc"]],
6013
- [
6014
- /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
6015
- // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
6016
- ],
6017
- [[ARCHITECTURE, lowerize]]
6018
- ],
6019
- device: [
6020
- [
6021
- //////////////////////////
6022
- // MOBILES & TABLETS
6023
- /////////////////////////
6024
- // Samsung
6025
- /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
6026
- ],
6027
- [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
6028
- [
6029
- /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
6030
- /samsung[- ]([-\w]+)/i,
6031
- /sec-(sgh\w+)/i
6032
- ],
6033
- [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
6034
- [
6035
- // Apple
6036
- /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
6037
- // iPod/iPhone
6038
- ],
6039
- [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
6040
- [
6041
- /\((ipad);[-\w\),; ]+apple/i,
6042
- // iPad
6043
- /applecoremedia\/[\w\.]+ \((ipad)/i,
6044
- /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
6045
- ],
6046
- [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
6047
- [
6048
- /(macintosh);/i
6049
- ],
6050
- [MODEL, [VENDOR, APPLE]],
6051
- [
6052
- // Sharp
6053
- /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
6054
- ],
6055
- [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
6056
- [
6057
- // Huawei
6058
- /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
6059
- ],
6060
- [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
6061
- [
6062
- /(?:huawei|honor)([-\w ]+)[;\)]/i,
6063
- /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
6064
- ],
6065
- [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
6066
- [
6067
- // Xiaomi
6068
- /\b(poco[\w ]+)(?: bui|\))/i,
6069
- // Xiaomi POCO
6070
- /\b; (\w+) build\/hm\1/i,
6071
- // Xiaomi Hongmi 'numeric' models
6072
- /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
6073
- // Xiaomi Hongmi
6074
- /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
6075
- // Xiaomi Redmi
6076
- /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
6077
- // Xiaomi Mi
6078
- ],
6079
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
6080
- [
6081
- /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
6082
- // Mi Pad tablets
6083
- ],
6084
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
6085
- [
6086
- // OPPO
6087
- /; (\w+) bui.+ oppo/i,
6088
- /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
6089
- ],
6090
- [MODEL, [VENDOR, "OPPO"], [TYPE, MOBILE]],
6091
- [
6092
- // Vivo
6093
- /vivo (\w+)(?: bui|\))/i,
6094
- /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
6095
- ],
6096
- [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
6097
- [
6098
- // Realme
6099
- /\b(rmx[12]\d{3})(?: bui|;|\))/i
6100
- ],
6101
- [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
6102
- [
6103
- // Motorola
6104
- /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
6105
- /\bmot(?:orola)?[- ](\w*)/i,
6106
- /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
6107
- ],
6108
- [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
6109
- [
6110
- /\b(mz60\d|xoom[2 ]{0,2}) build\//i
6111
- ],
6112
- [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
6113
- [
6114
- // LG
6115
- /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
6116
- ],
6117
- [MODEL, [VENDOR, LG], [TYPE, TABLET]],
6118
- [
6119
- /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
6120
- /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
6121
- /\blg-?([\d\w]+) bui/i
6122
- ],
6123
- [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
6124
- [
6125
- // Lenovo
6126
- /(ideatab[-\w ]+)/i,
6127
- /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
6128
- ],
6129
- [MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]],
6130
- [
6131
- // Nokia
6132
- /(?:maemo|nokia).*(n900|lumia \d+)/i,
6133
- /nokia[-_ ]?([-\w\.]*)/i
6134
- ],
6135
- [[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE, MOBILE]],
6136
- [
6137
- // Google
6138
- /(pixel c)\b/i
6139
- // Google Pixel C
6140
- ],
6141
- [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
6142
- [
6143
- /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
6144
- // Google Pixel
6145
- ],
6146
- [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
6147
- [
6148
- // Sony
6149
- /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
6150
- ],
6151
- [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
6152
- [
6153
- /sony tablet [ps]/i,
6154
- /\b(?:sony)?sgp\w+(?: bui|\))/i
6155
- ],
6156
- [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
6157
- [
6158
- // OnePlus
6159
- / (kb2005|in20[12]5|be20[12][59])\b/i,
6160
- /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
6161
- ],
6162
- [MODEL, [VENDOR, "OnePlus"], [TYPE, MOBILE]],
6163
- [
6164
- // Amazon
6165
- /(alexa)webm/i,
6166
- /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,
6167
- // Kindle Fire without Silk / Echo Show
6168
- /(kf[a-z]+)( bui|\)).+silk\//i
6169
- // Kindle Fire HD
6170
- ],
6171
- [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
6172
- [
6173
- /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
6174
- // Fire Phone
6175
- ],
6176
- [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
6177
- [
6178
- // BlackBerry
6179
- /(playbook);[-\w\),; ]+(rim)/i
6180
- // BlackBerry PlayBook
6181
- ],
6182
- [MODEL, VENDOR, [TYPE, TABLET]],
6183
- [
6184
- /\b((?:bb[a-f]|st[hv])100-\d)/i,
6185
- /\(bb10; (\w+)/i
6186
- // BlackBerry 10
6187
- ],
6188
- [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
6189
- [
6190
- // Asus
6191
- /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
6192
- ],
6193
- [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
6194
- [
6195
- / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
6196
- ],
6197
- [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
6198
- [
6199
- // HTC
6200
- /(nexus 9)/i
6201
- // HTC Nexus 9
6202
- ],
6203
- [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
6204
- [
6205
- /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
6206
- // HTC
6207
- // ZTE
6208
- /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
6209
- /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
6210
- // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
6211
- ],
6212
- [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
6213
- [
6214
- // Acer
6215
- /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
6216
- ],
6217
- [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
6218
- [
6219
- // Meizu
6220
- /droid.+; (m[1-5] note) bui/i,
6221
- /\bmz-([-\w]{2,})/i
6222
- ],
6223
- [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
6224
- [
6225
- // MIXED
6226
- /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
6227
- // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
6228
- /(hp) ([\w ]+\w)/i,
6229
- // HP iPAQ
6230
- /(asus)-?(\w+)/i,
6231
- // Asus
6232
- /(microsoft); (lumia[\w ]+)/i,
6233
- // Microsoft Lumia
6234
- /(lenovo)[-_ ]?([-\w]+)/i,
6235
- // Lenovo
6236
- /(jolla)/i,
6237
- // Jolla
6238
- /(oppo) ?([\w ]+) bui/i
6239
- // OPPO
6240
- ],
6241
- [VENDOR, MODEL, [TYPE, MOBILE]],
6242
- [
6243
- /(kobo)\s(ereader|touch)/i,
6244
- // Kobo
6245
- /(archos) (gamepad2?)/i,
6246
- // Archos
6247
- /(hp).+(touchpad(?!.+tablet)|tablet)/i,
6248
- // HP TouchPad
6249
- /(kindle)\/([\w\.]+)/i,
6250
- // Kindle
6251
- /(nook)[\w ]+build\/(\w+)/i,
6252
- // Nook
6253
- /(dell) (strea[kpr\d ]*[\dko])/i,
6254
- // Dell Streak
6255
- /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
6256
- // Le Pan Tablets
6257
- /(trinity)[- ]*(t\d{3}) bui/i,
6258
- // Trinity Tablets
6259
- /(gigaset)[- ]+(q\w{1,9}) bui/i,
6260
- // Gigaset Tablets
6261
- /(vodafone) ([\w ]+)(?:\)| bui)/i
6262
- // Vodafone
6263
- ],
6264
- [VENDOR, MODEL, [TYPE, TABLET]],
6265
- [
6266
- /(surface duo)/i
6267
- // Surface Duo
6268
- ],
6269
- [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
6270
- [
6271
- /droid [\d\.]+; (fp\du?)(?: b|\))/i
6272
- // Fairphone
6273
- ],
6274
- [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
6275
- [
6276
- /(u304aa)/i
6277
- // AT&T
6278
- ],
6279
- [MODEL, [VENDOR, "AT&T"], [TYPE, MOBILE]],
6280
- [
6281
- /\bsie-(\w*)/i
6282
- // Siemens
6283
- ],
6284
- [MODEL, [VENDOR, "Siemens"], [TYPE, MOBILE]],
6285
- [
6286
- /\b(rct\w+) b/i
6287
- // RCA Tablets
6288
- ],
6289
- [MODEL, [VENDOR, "RCA"], [TYPE, TABLET]],
6290
- [
6291
- /\b(venue[\d ]{2,7}) b/i
6292
- // Dell Venue Tablets
6293
- ],
6294
- [MODEL, [VENDOR, "Dell"], [TYPE, TABLET]],
6295
- [
6296
- /\b(q(?:mv|ta)\w+) b/i
6297
- // Verizon Tablet
6298
- ],
6299
- [MODEL, [VENDOR, "Verizon"], [TYPE, TABLET]],
6300
- [
6301
- /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
6302
- // Barnes & Noble Tablet
6303
- ],
6304
- [MODEL, [VENDOR, "Barnes & Noble"], [TYPE, TABLET]],
6305
- [
6306
- /\b(tm\d{3}\w+) b/i
6307
- ],
6308
- [MODEL, [VENDOR, "NuVision"], [TYPE, TABLET]],
6309
- [
6310
- /\b(k88) b/i
6311
- // ZTE K Series Tablet
6312
- ],
6313
- [MODEL, [VENDOR, "ZTE"], [TYPE, TABLET]],
6314
- [
6315
- /\b(nx\d{3}j) b/i
6316
- // ZTE Nubia
6317
- ],
6318
- [MODEL, [VENDOR, "ZTE"], [TYPE, MOBILE]],
6319
- [
6320
- /\b(gen\d{3}) b.+49h/i
6321
- // Swiss GEN Mobile
6322
- ],
6323
- [MODEL, [VENDOR, "Swiss"], [TYPE, MOBILE]],
6324
- [
6325
- /\b(zur\d{3}) b/i
6326
- // Swiss ZUR Tablet
6327
- ],
6328
- [MODEL, [VENDOR, "Swiss"], [TYPE, TABLET]],
6329
- [
6330
- /\b((zeki)?tb.*\b) b/i
6331
- // Zeki Tablets
6332
- ],
6333
- [MODEL, [VENDOR, "Zeki"], [TYPE, TABLET]],
6334
- [
6335
- /\b([yr]\d{2}) b/i,
6336
- /\b(dragon[- ]+touch |dt)(\w{5}) b/i
6337
- // Dragon Touch Tablet
6338
- ],
6339
- [[VENDOR, "Dragon Touch"], MODEL, [TYPE, TABLET]],
6340
- [
6341
- /\b(ns-?\w{0,9}) b/i
6342
- // Insignia Tablets
6343
- ],
6344
- [MODEL, [VENDOR, "Insignia"], [TYPE, TABLET]],
6345
- [
6346
- /\b((nxa|next)-?\w{0,9}) b/i
6347
- // NextBook Tablets
6348
- ],
6349
- [MODEL, [VENDOR, "NextBook"], [TYPE, TABLET]],
6350
- [
6351
- /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
6352
- // Voice Xtreme Phones
6353
- ],
6354
- [[VENDOR, "Voice"], MODEL, [TYPE, MOBILE]],
6355
- [
6356
- /\b(lvtel\-)?(v1[12]) b/i
6357
- // LvTel Phones
6358
- ],
6359
- [[VENDOR, "LvTel"], MODEL, [TYPE, MOBILE]],
6360
- [
6361
- /\b(ph-1) /i
6362
- // Essential PH-1
6363
- ],
6364
- [MODEL, [VENDOR, "Essential"], [TYPE, MOBILE]],
6365
- [
6366
- /\b(v(100md|700na|7011|917g).*\b) b/i
6367
- // Envizen Tablets
6368
- ],
6369
- [MODEL, [VENDOR, "Envizen"], [TYPE, TABLET]],
6370
- [
6371
- /\b(trio[-\w\. ]+) b/i
6372
- // MachSpeed Tablets
6373
- ],
6374
- [MODEL, [VENDOR, "MachSpeed"], [TYPE, TABLET]],
6375
- [
6376
- /\btu_(1491) b/i
6377
- // Rotor Tablets
6378
- ],
6379
- [MODEL, [VENDOR, "Rotor"], [TYPE, TABLET]],
6380
- [
6381
- /(shield[\w ]+) b/i
6382
- // Nvidia Shield Tablets
6383
- ],
6384
- [MODEL, [VENDOR, "Nvidia"], [TYPE, TABLET]],
6385
- [
6386
- /(sprint) (\w+)/i
6387
- // Sprint Phones
6388
- ],
6389
- [VENDOR, MODEL, [TYPE, MOBILE]],
6390
- [
6391
- /(kin\.[onetw]{3})/i
6392
- // Microsoft Kin
6393
- ],
6394
- [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
6395
- [
6396
- /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
6397
- // Zebra
6398
- ],
6399
- [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
6400
- [
6401
- /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
6402
- ],
6403
- [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
6404
- [
6405
- ///////////////////
6406
- // SMARTTVS
6407
- ///////////////////
6408
- /smart-tv.+(samsung)/i
6409
- // Samsung
6410
- ],
6411
- [VENDOR, [TYPE, SMARTTV]],
6412
- [
6413
- /hbbtv.+maple;(\d+)/i
6414
- ],
6415
- [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
6416
- [
6417
- /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
6418
- // LG SmartTV
6419
- ],
6420
- [[VENDOR, LG], [TYPE, SMARTTV]],
6421
- [
6422
- /(apple) ?tv/i
6423
- // Apple TV
6424
- ],
6425
- [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
6426
- [
6427
- /crkey/i
6428
- // Google Chromecast
6429
- ],
6430
- [[MODEL, CHROME + "cast"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
6431
- [
6432
- /droid.+aft(\w)( bui|\))/i
6433
- // Fire TV
6434
- ],
6435
- [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
6436
- [
6437
- /\(dtv[\);].+(aquos)/i,
6438
- /(aquos-tv[\w ]+)\)/i
6439
- // Sharp
6440
- ],
6441
- [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
6442
- [
6443
- /(bravia[\w ]+)( bui|\))/i
6444
- // Sony
6445
- ],
6446
- [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
6447
- [
6448
- /(mitv-\w{5}) bui/i
6449
- // Xiaomi
6450
- ],
6451
- [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
6452
- [
6453
- /Hbbtv.*(technisat) (.*);/i
6454
- // TechniSAT
6455
- ],
6456
- [VENDOR, MODEL, [TYPE, SMARTTV]],
6457
- [
6458
- /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
6459
- // Roku
6460
- /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
6461
- // HbbTV devices
6462
- ],
6463
- [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]],
6464
- [
6465
- /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
6466
- // SmartTV from Unidentified Vendors
6467
- ],
6468
- [[TYPE, SMARTTV]],
6469
- [
6470
- ///////////////////
6471
- // CONSOLES
6472
- ///////////////////
6473
- /(ouya)/i,
6474
- // Ouya
6475
- /(nintendo) ([wids3utch]+)/i
6476
- // Nintendo
6477
- ],
6478
- [VENDOR, MODEL, [TYPE, CONSOLE]],
6479
- [
6480
- /droid.+; (shield) bui/i
6481
- // Nvidia
6482
- ],
6483
- [MODEL, [VENDOR, "Nvidia"], [TYPE, CONSOLE]],
6484
- [
6485
- /(playstation [345portablevi]+)/i
6486
- // Playstation
6487
- ],
6488
- [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
6489
- [
6490
- /\b(xbox(?: one)?(?!; xbox))[\); ]/i
6491
- // Microsoft Xbox
6492
- ],
6493
- [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
6494
- [
6495
- ///////////////////
6496
- // WEARABLES
6497
- ///////////////////
6498
- /((pebble))app/i
6499
- // Pebble
6500
- ],
6501
- [VENDOR, MODEL, [TYPE, WEARABLE]],
6502
- [
6503
- /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
6504
- // Apple Watch
6505
- ],
6506
- [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
6507
- [
6508
- /droid.+; (glass) \d/i
6509
- // Google Glass
6510
- ],
6511
- [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
6512
- [
6513
- /droid.+; (wt63?0{2,3})\)/i
6514
- ],
6515
- [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
6516
- [
6517
- /(quest( 2| pro)?)/i
6518
- // Oculus Quest
6519
- ],
6520
- [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
6521
- [
6522
- ///////////////////
6523
- // EMBEDDED
6524
- ///////////////////
6525
- /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
6526
- // Tesla
6527
- ],
6528
- [VENDOR, [TYPE, EMBEDDED]],
6529
- [
6530
- /(aeobc)\b/i
6531
- // Echo Dot
6532
- ],
6533
- [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
6534
- [
6535
- ////////////////////
6536
- // MIXED (GENERIC)
6537
- ///////////////////
6538
- /droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i
6539
- // Android Phones from Unidentified Vendors
6540
- ],
6541
- [MODEL, [TYPE, MOBILE]],
6542
- [
6543
- /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
6544
- // Android Tablets from Unidentified Vendors
6545
- ],
6546
- [MODEL, [TYPE, TABLET]],
6547
- [
6548
- /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
6549
- // Unidentifiable Tablet
6550
- ],
6551
- [[TYPE, TABLET]],
6552
- [
6553
- /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
6554
- // Unidentifiable Mobile
6555
- ],
6556
- [[TYPE, MOBILE]],
6557
- [
6558
- /(android[-\w\. ]{0,9});.+buil/i
6559
- // Generic Android Device
6560
- ],
6561
- [MODEL, [VENDOR, "Generic"]]
6562
- ],
6563
- engine: [
6564
- [
6565
- /windows.+ edge\/([\w\.]+)/i
6566
- // EdgeHTML
6567
- ],
6568
- [VERSION, [NAME, EDGE + "HTML"]],
6569
- [
6570
- /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
6571
- // Blink
6572
- ],
6573
- [VERSION, [NAME, "Blink"]],
6574
- [
6575
- /(presto)\/([\w\.]+)/i,
6576
- // Presto
6577
- /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
6578
- // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
6579
- /ekioh(flow)\/([\w\.]+)/i,
6580
- // Flow
6581
- /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
6582
- // KHTML/Tasman/Links
6583
- /(icab)[\/ ]([23]\.[\d\.]+)/i,
6584
- // iCab
6585
- /\b(libweb)/i
6586
- ],
6587
- [NAME, VERSION],
6588
- [
6589
- /rv\:([\w\.]{1,9})\b.+(gecko)/i
6590
- // Gecko
6591
- ],
6592
- [VERSION, NAME]
6593
- ],
6594
- os: [
6595
- [
6596
- // Windows
6597
- /microsoft (windows) (vista|xp)/i
6598
- // Windows (iTunes)
6599
- ],
6600
- [NAME, VERSION],
6601
- [
6602
- /(windows) nt 6\.2; (arm)/i,
6603
- // Windows RT
6604
- /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,
6605
- // Windows Phone
6606
- /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i
6607
- ],
6608
- [NAME, [VERSION, strMapper, windowsVersionMap]],
6609
- [
6610
- /(win(?=3|9|n)|win 9x )([nt\d\.]+)/i
6611
- ],
6612
- [[NAME, "Windows"], [VERSION, strMapper, windowsVersionMap]],
6613
- [
6614
- // iOS/macOS
6615
- /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
6616
- // iOS
6617
- /ios;fbsv\/([\d\.]+)/i,
6618
- /cfnetwork\/.+darwin/i
6619
- ],
6620
- [[VERSION, /_/g, "."], [NAME, "iOS"]],
6621
- [
6622
- /(mac os x) ?([\w\. ]*)/i,
6623
- /(macintosh|mac_powerpc\b)(?!.+haiku)/i
6624
- // Mac OS
6625
- ],
6626
- [[NAME, MAC_OS], [VERSION, /_/g, "."]],
6627
- [
6628
- // Mobile OSes
6629
- /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
6630
- // Android-x86/HarmonyOS
6631
- ],
6632
- [VERSION, NAME],
6633
- [
6634
- // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
6635
- /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
6636
- /(blackberry)\w*\/([\w\.]*)/i,
6637
- // Blackberry
6638
- /(tizen|kaios)[\/ ]([\w\.]+)/i,
6639
- // Tizen/KaiOS
6640
- /\((series40);/i
6641
- // Series 40
6642
- ],
6643
- [NAME, VERSION],
6644
- [
6645
- /\(bb(10);/i
6646
- // BlackBerry 10
6647
- ],
6648
- [VERSION, [NAME, BLACKBERRY]],
6649
- [
6650
- /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
6651
- // Symbian
6652
- ],
6653
- [VERSION, [NAME, "Symbian"]],
6654
- [
6655
- /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
6656
- // Firefox OS
6657
- ],
6658
- [VERSION, [NAME, FIREFOX + " OS"]],
6659
- [
6660
- /web0s;.+rt(tv)/i,
6661
- /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
6662
- // WebOS
6663
- ],
6664
- [VERSION, [NAME, "webOS"]],
6665
- [
6666
- /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
6667
- // watchOS
6668
- ],
6669
- [VERSION, [NAME, "watchOS"]],
6670
- [
6671
- // Google Chromecast
6672
- /crkey\/([\d\.]+)/i
6673
- // Google Chromecast
6674
- ],
6675
- [VERSION, [NAME, CHROME + "cast"]],
6676
- [
6677
- /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
6678
- // Chromium OS
6679
- ],
6680
- [[NAME, CHROMIUM_OS], VERSION],
6681
- [
6682
- // Smart TVs
6683
- /panasonic;(viera)/i,
6684
- // Panasonic Viera
6685
- /(netrange)mmh/i,
6686
- // Netrange
6687
- /(nettv)\/(\d+\.[\w\.]+)/i,
6688
- // NetTV
6689
- // Console
6690
- /(nintendo|playstation) ([wids345portablevuch]+)/i,
6691
- // Nintendo/Playstation
6692
- /(xbox); +xbox ([^\);]+)/i,
6693
- // Microsoft Xbox (360, One, X, S, Series X, Series S)
6694
- // Other
6695
- /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
6696
- // Joli/Palm
6697
- /(mint)[\/\(\) ]?(\w*)/i,
6698
- // Mint
6699
- /(mageia|vectorlinux)[; ]/i,
6700
- // Mageia/VectorLinux
6701
- /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
6702
- // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
6703
- /(hurd|linux) ?([\w\.]*)/i,
6704
- // Hurd/Linux
6705
- /(gnu) ?([\w\.]*)/i,
6706
- // GNU
6707
- /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
6708
- // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
6709
- /(haiku) (\w+)/i
6710
- // Haiku
6711
- ],
6712
- [NAME, VERSION],
6713
- [
6714
- /(sunos) ?([\w\.\d]*)/i
6715
- // Solaris
6716
- ],
6717
- [[NAME, "Solaris"], VERSION],
6718
- [
6719
- /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
6720
- // Solaris
6721
- /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
6722
- // AIX
6723
- /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
6724
- // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
6725
- /(unix) ?([\w\.]*)/i
6726
- // UNIX
6727
- ],
6728
- [NAME, VERSION]
6729
- ]
6730
- };
6731
- var UAParser = function(ua, extensions) {
6732
- if (typeof ua === OBJ_TYPE) {
6733
- extensions = ua;
6734
- ua = undefined2;
6735
- }
6736
- if (!(this instanceof UAParser)) {
6737
- return new UAParser(ua, extensions).getResult();
6738
- }
6739
- var _navigator = typeof window2 !== UNDEF_TYPE && window2.navigator ? window2.navigator : undefined2;
6740
- var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
6741
- var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined2;
6742
- var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
6743
- var _isSelfNav = _navigator && _navigator.userAgent == _ua;
6744
- this.getBrowser = function() {
6745
- var _browser = {};
6746
- _browser[NAME] = undefined2;
6747
- _browser[VERSION] = undefined2;
6748
- rgxMapper.call(_browser, _ua, _rgxmap.browser);
6749
- _browser[MAJOR] = majorize(_browser[VERSION]);
6750
- if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {
6751
- _browser[NAME] = "Brave";
6752
- }
6753
- return _browser;
6754
- };
6755
- this.getCPU = function() {
6756
- var _cpu = {};
6757
- _cpu[ARCHITECTURE] = undefined2;
6758
- rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
6759
- return _cpu;
6760
- };
6761
- this.getDevice = function() {
6762
- var _device = {};
6763
- _device[VENDOR] = undefined2;
6764
- _device[MODEL] = undefined2;
6765
- _device[TYPE] = undefined2;
6766
- rgxMapper.call(_device, _ua, _rgxmap.device);
6767
- if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {
6768
- _device[TYPE] = MOBILE;
6769
- }
6770
- if (_isSelfNav && _device[MODEL] == "Macintosh" && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
6771
- _device[MODEL] = "iPad";
6772
- _device[TYPE] = TABLET;
6773
- }
6774
- return _device;
6775
- };
6776
- this.getEngine = function() {
6777
- var _engine = {};
6778
- _engine[NAME] = undefined2;
6779
- _engine[VERSION] = undefined2;
6780
- rgxMapper.call(_engine, _ua, _rgxmap.engine);
6781
- return _engine;
6782
- };
6783
- this.getOS = function() {
6784
- var _os = {};
6785
- _os[NAME] = undefined2;
6786
- _os[VERSION] = undefined2;
6787
- rgxMapper.call(_os, _ua, _rgxmap.os);
6788
- if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != "Unknown") {
6789
- _os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
6790
- }
6791
- return _os;
6792
- };
6793
- this.getResult = function() {
6794
- return {
6795
- ua: this.getUA(),
6796
- browser: this.getBrowser(),
6797
- engine: this.getEngine(),
6798
- os: this.getOS(),
6799
- device: this.getDevice(),
6800
- cpu: this.getCPU()
6801
- };
6802
- };
6803
- this.getUA = function() {
6804
- return _ua;
6805
- };
6806
- this.setUA = function(ua2) {
6807
- _ua = typeof ua2 === STR_TYPE && ua2.length > UA_MAX_LENGTH ? trim(ua2, UA_MAX_LENGTH) : ua2;
6808
- return this;
6809
- };
6810
- this.setUA(_ua);
6811
- return this;
6812
- };
6813
- UAParser.VERSION = LIBVERSION;
6814
- UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
6815
- UAParser.CPU = enumerize([ARCHITECTURE]);
6816
- UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
6817
- UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
6818
- if (typeof exports !== UNDEF_TYPE) {
6819
- if (typeof module2 !== UNDEF_TYPE && module2.exports) {
6820
- exports = module2.exports = UAParser;
6821
- }
6822
- exports.UAParser = UAParser;
6823
- } else {
6824
- if (typeof define === FUNC_TYPE && define.amd) {
6825
- define(function() {
6826
- return UAParser;
6827
- });
6828
- } else if (typeof window2 !== UNDEF_TYPE) {
6829
- window2.UAParser = UAParser;
6830
- }
6831
- }
6832
- var $ = typeof window2 !== UNDEF_TYPE && (window2.jQuery || window2.Zepto);
6833
- if ($ && !$.ua) {
6834
- var parser = new UAParser();
6835
- $.ua = parser.getResult();
6836
- $.ua.get = function() {
6837
- return parser.getUA();
6838
- };
6839
- $.ua.set = function(ua) {
6840
- parser.setUA(ua);
6841
- var result = parser.getResult();
6842
- for (var prop in result) {
6843
- $.ua[prop] = result[prop];
6844
- }
6845
- };
6846
- }
6847
- })(typeof window === "object" ? window : exports);
6848
- }
6849
- });
6850
-
6851
5597
  // ../../node_modules/lodash.isequal/index.js
6852
5598
  var require_lodash2 = __commonJS({
6853
5599
  "../../node_modules/lodash.isequal/index.js"(exports, module2) {
@@ -8750,13 +7496,13 @@ var require_writer = __commonJS({
8750
7496
  var i = 1;
8751
7497
  var args = arguments;
8752
7498
  var len = args.length;
8753
- return formatStr.replace(formatRegExp, function(x) {
7499
+ return formatStr.replace(formatRegExp, function(x2) {
8754
7500
  if (i >= len) {
8755
- return x;
7501
+ return x2;
8756
7502
  }
8757
7503
  var arg = args[i];
8758
7504
  i += 1;
8759
- switch (x) {
7505
+ switch (x2) {
8760
7506
  case "%%":
8761
7507
  return "%";
8762
7508
  case "%s":
@@ -8886,7 +7632,7 @@ var require_react_is_production_min = __commonJS({
8886
7632
  var t = b2 ? Symbol.for("react.lazy") : 60116;
8887
7633
  var v = b2 ? Symbol.for("react.block") : 60121;
8888
7634
  var w = b2 ? Symbol.for("react.fundamental") : 60117;
8889
- var x = b2 ? Symbol.for("react.responder") : 60118;
7635
+ var x2 = b2 ? Symbol.for("react.responder") : 60118;
8890
7636
  var y2 = b2 ? Symbol.for("react.scope") : 60119;
8891
7637
  function z2(a2) {
8892
7638
  if ("object" === typeof a2 && null !== a2) {
@@ -8972,7 +7718,7 @@ var require_react_is_production_min = __commonJS({
8972
7718
  return z2(a2) === p;
8973
7719
  };
8974
7720
  exports.isValidElementType = function(a2) {
8975
- return "string" === typeof a2 || "function" === typeof a2 || a2 === e || a2 === m2 || a2 === g || a2 === f || a2 === p || a2 === q || "object" === typeof a2 && null !== a2 && (a2.$$typeof === t || a2.$$typeof === r || a2.$$typeof === h || a2.$$typeof === k2 || a2.$$typeof === n || a2.$$typeof === w || a2.$$typeof === x || a2.$$typeof === y2 || a2.$$typeof === v);
7721
+ return "string" === typeof a2 || "function" === typeof a2 || a2 === e || a2 === m2 || a2 === g || a2 === f || a2 === p || a2 === q || "object" === typeof a2 && null !== a2 && (a2.$$typeof === t || a2.$$typeof === r || a2.$$typeof === h || a2.$$typeof === k2 || a2.$$typeof === n || a2.$$typeof === w || a2.$$typeof === x2 || a2.$$typeof === y2 || a2.$$typeof === v);
8976
7722
  };
8977
7723
  exports.typeOf = z2;
8978
7724
  }
@@ -9246,7 +7992,7 @@ var require_checkPropTypes = __commonJS({
9246
7992
  if (define_process_env_default.NODE_ENV !== "production") {
9247
7993
  ReactPropTypesSecret = require_ReactPropTypesSecret();
9248
7994
  loggedTypeFailures = {};
9249
- has = require_has();
7995
+ has2 = require_has();
9250
7996
  printWarning = function(text) {
9251
7997
  var message = "Warning: " + text;
9252
7998
  if (typeof console !== "undefined") {
@@ -9254,17 +8000,17 @@ var require_checkPropTypes = __commonJS({
9254
8000
  }
9255
8001
  try {
9256
8002
  throw new Error(message);
9257
- } catch (x) {
8003
+ } catch (x2) {
9258
8004
  }
9259
8005
  };
9260
8006
  }
9261
8007
  var ReactPropTypesSecret;
9262
8008
  var loggedTypeFailures;
9263
- var has;
8009
+ var has2;
9264
8010
  function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
9265
8011
  if (define_process_env_default.NODE_ENV !== "production") {
9266
8012
  for (var typeSpecName in typeSpecs) {
9267
- if (has(typeSpecs, typeSpecName)) {
8013
+ if (has2(typeSpecs, typeSpecName)) {
9268
8014
  var error;
9269
8015
  try {
9270
8016
  if (typeof typeSpecs[typeSpecName] !== "function") {
@@ -9311,7 +8057,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9311
8057
  var ReactIs = require_react_is();
9312
8058
  var assign = require_object_assign();
9313
8059
  var ReactPropTypesSecret = require_ReactPropTypesSecret();
9314
- var has = require_has();
8060
+ var has2 = require_has();
9315
8061
  var checkPropTypes = require_checkPropTypes();
9316
8062
  var printWarning = function() {
9317
8063
  };
@@ -9323,7 +8069,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9323
8069
  }
9324
8070
  try {
9325
8071
  throw new Error(message);
9326
- } catch (x) {
8072
+ } catch (x2) {
9327
8073
  }
9328
8074
  };
9329
8075
  }
@@ -9361,11 +8107,11 @@ var require_factoryWithTypeCheckers = __commonJS({
9361
8107
  shape: createShapeTypeChecker,
9362
8108
  exact: createStrictShapeTypeChecker
9363
8109
  };
9364
- function is(x, y2) {
9365
- if (x === y2) {
9366
- return x !== 0 || 1 / x === 1 / y2;
8110
+ function is2(x2, y2) {
8111
+ if (x2 === y2) {
8112
+ return x2 !== 0 || 1 / x2 === 1 / y2;
9367
8113
  } else {
9368
- return x !== x && y2 !== y2;
8114
+ return x2 !== x2 && y2 !== y2;
9369
8115
  }
9370
8116
  }
9371
8117
  function PropTypeError(message, data3) {
@@ -9504,7 +8250,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9504
8250
  function validate(props, propName, componentName, location, propFullName) {
9505
8251
  var propValue = props[propName];
9506
8252
  for (var i = 0; i < expectedValues.length; i++) {
9507
- if (is(propValue, expectedValues[i])) {
8253
+ if (is2(propValue, expectedValues[i])) {
9508
8254
  return null;
9509
8255
  }
9510
8256
  }
@@ -9530,7 +8276,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9530
8276
  return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object."));
9531
8277
  }
9532
8278
  for (var key in propValue) {
9533
- if (has(propValue, key)) {
8279
+ if (has2(propValue, key)) {
9534
8280
  var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
9535
8281
  if (error instanceof Error) {
9536
8282
  return error;
@@ -9563,7 +8309,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9563
8309
  if (checkerResult == null) {
9564
8310
  return null;
9565
8311
  }
9566
- if (checkerResult.data && has(checkerResult.data, "expectedType")) {
8312
+ if (checkerResult.data && has2(checkerResult.data, "expectedType")) {
9567
8313
  expectedTypes.push(checkerResult.data.expectedType);
9568
8314
  }
9569
8315
  }
@@ -9617,7 +8363,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9617
8363
  var allKeys = assign({}, props[propName], shapeTypes);
9618
8364
  for (var key in allKeys) {
9619
8365
  var checker = shapeTypes[key];
9620
- if (has(shapeTypes, key) && typeof checker !== "function") {
8366
+ if (has2(shapeTypes, key) && typeof checker !== "function") {
9621
8367
  return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
9622
8368
  }
9623
8369
  if (!checker) {
@@ -19208,8 +17954,1855 @@ function createSelectorCreator(memoize) {
19208
17954
  }
19209
17955
  var createSelector = createSelectorCreator(defaultMemoize);
19210
17956
 
17957
+ // ../../node_modules/ua-parser-js/src/main/ua-parser.mjs
17958
+ init_define_process_env();
17959
+ var LIBVERSION = "2.0.6";
17960
+ var UA_MAX_LENGTH = 500;
17961
+ var USER_AGENT = "user-agent";
17962
+ var EMPTY = "";
17963
+ var UNKNOWN = "?";
17964
+ var TYPEOF = {
17965
+ FUNCTION: "function",
17966
+ OBJECT: "object",
17967
+ STRING: "string",
17968
+ UNDEFINED: "undefined"
17969
+ };
17970
+ var BROWSER = "browser";
17971
+ var CPU = "cpu";
17972
+ var DEVICE = "device";
17973
+ var ENGINE = "engine";
17974
+ var OS = "os";
17975
+ var RESULT = "result";
17976
+ var NAME = "name";
17977
+ var TYPE = "type";
17978
+ var VENDOR = "vendor";
17979
+ var VERSION = "version";
17980
+ var ARCHITECTURE = "architecture";
17981
+ var MAJOR = "major";
17982
+ var MODEL = "model";
17983
+ var CONSOLE = "console";
17984
+ var MOBILE = "mobile";
17985
+ var TABLET = "tablet";
17986
+ var SMARTTV = "smarttv";
17987
+ var WEARABLE = "wearable";
17988
+ var XR = "xr";
17989
+ var EMBEDDED = "embedded";
17990
+ var INAPP = "inapp";
17991
+ var BRANDS = "brands";
17992
+ var FORMFACTORS = "formFactors";
17993
+ var FULLVERLIST = "fullVersionList";
17994
+ var PLATFORM = "platform";
17995
+ var PLATFORMVER = "platformVersion";
17996
+ var BITNESS = "bitness";
17997
+ var CH = "sec-ch-ua";
17998
+ var CH_FULL_VER_LIST = CH + "-full-version-list";
17999
+ var CH_ARCH = CH + "-arch";
18000
+ var CH_BITNESS = CH + "-" + BITNESS;
18001
+ var CH_FORM_FACTORS = CH + "-form-factors";
18002
+ var CH_MOBILE = CH + "-" + MOBILE;
18003
+ var CH_MODEL = CH + "-" + MODEL;
18004
+ var CH_PLATFORM = CH + "-" + PLATFORM;
18005
+ var CH_PLATFORM_VER = CH_PLATFORM + "-version";
18006
+ var CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS];
18007
+ var AMAZON = "Amazon";
18008
+ var APPLE = "Apple";
18009
+ var ASUS = "ASUS";
18010
+ var BLACKBERRY = "BlackBerry";
18011
+ var GOOGLE = "Google";
18012
+ var HUAWEI = "Huawei";
18013
+ var LENOVO = "Lenovo";
18014
+ var HONOR = "Honor";
18015
+ var LG = "LG";
18016
+ var MICROSOFT = "Microsoft";
18017
+ var MOTOROLA = "Motorola";
18018
+ var NVIDIA = "Nvidia";
18019
+ var ONEPLUS = "OnePlus";
18020
+ var OPPO = "OPPO";
18021
+ var SAMSUNG = "Samsung";
18022
+ var SHARP = "Sharp";
18023
+ var SONY = "Sony";
18024
+ var XIAOMI = "Xiaomi";
18025
+ var ZEBRA = "Zebra";
18026
+ var CHROME = "Chrome";
18027
+ var CHROMIUM = "Chromium";
18028
+ var CHROMECAST = "Chromecast";
18029
+ var EDGE = "Edge";
18030
+ var FIREFOX = "Firefox";
18031
+ var OPERA = "Opera";
18032
+ var FACEBOOK = "Facebook";
18033
+ var SOGOU = "Sogou";
18034
+ var PREFIX_MOBILE = "Mobile ";
18035
+ var SUFFIX_BROWSER = " Browser";
18036
+ var WINDOWS = "Windows";
18037
+ var isWindow = typeof window !== TYPEOF.UNDEFINED;
18038
+ var NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0;
18039
+ var NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
18040
+ var extend = function(defaultRgx, extensions) {
18041
+ var mergedRgx = {};
18042
+ var extraRgx = extensions;
18043
+ if (!isExtensions(extensions)) {
18044
+ extraRgx = {};
18045
+ for (var i in extensions) {
18046
+ for (var j2 in extensions[i]) {
18047
+ extraRgx[j2] = extensions[i][j2].concat(extraRgx[j2] ? extraRgx[j2] : []);
18048
+ }
18049
+ }
18050
+ }
18051
+ for (var k2 in defaultRgx) {
18052
+ mergedRgx[k2] = extraRgx[k2] && extraRgx[k2].length % 2 === 0 ? extraRgx[k2].concat(defaultRgx[k2]) : defaultRgx[k2];
18053
+ }
18054
+ return mergedRgx;
18055
+ };
18056
+ var enumerize = function(arr) {
18057
+ var enums = {};
18058
+ for (var i = 0; i < arr.length; i++) {
18059
+ enums[arr[i].toUpperCase()] = arr[i];
18060
+ }
18061
+ return enums;
18062
+ };
18063
+ var has = function(str1, str2) {
18064
+ if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {
18065
+ for (var i in str1) {
18066
+ if (lowerize(str2) == lowerize(str1[i]))
18067
+ return true;
18068
+ }
18069
+ return false;
18070
+ }
18071
+ return isString(str1) ? lowerize(str2) == lowerize(str1) : false;
18072
+ };
18073
+ var isExtensions = function(obj, deep) {
18074
+ for (var prop in obj) {
18075
+ return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);
18076
+ }
18077
+ };
18078
+ var isString = function(val) {
18079
+ return typeof val === TYPEOF.STRING;
18080
+ };
18081
+ var itemListToArray = function(header) {
18082
+ if (!header)
18083
+ return void 0;
18084
+ var arr = [];
18085
+ var tokens = strip(/\\?\"/g, header).split(",");
18086
+ for (var i = 0; i < tokens.length; i++) {
18087
+ if (tokens[i].indexOf(";") > -1) {
18088
+ var token = trim(tokens[i]).split(";v=");
18089
+ arr[i] = { brand: token[0], version: token[1] };
18090
+ } else {
18091
+ arr[i] = trim(tokens[i]);
18092
+ }
18093
+ }
18094
+ return arr;
18095
+ };
18096
+ var lowerize = function(str) {
18097
+ return isString(str) ? str.toLowerCase() : str;
18098
+ };
18099
+ var majorize = function(version) {
18100
+ return isString(version) ? strip(/[^\d\.]/g, version).split(".")[0] : void 0;
18101
+ };
18102
+ var setProps = function(arr) {
18103
+ for (var i in arr) {
18104
+ if (!arr.hasOwnProperty(i))
18105
+ continue;
18106
+ var propName = arr[i];
18107
+ if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {
18108
+ this[propName[0]] = propName[1];
18109
+ } else {
18110
+ this[propName] = void 0;
18111
+ }
18112
+ }
18113
+ return this;
18114
+ };
18115
+ var strip = function(pattern, str) {
18116
+ return isString(str) ? str.replace(pattern, EMPTY) : str;
18117
+ };
18118
+ var stripQuotes = function(str) {
18119
+ return strip(/\\?\"/g, str);
18120
+ };
18121
+ var trim = function(str, len) {
18122
+ str = strip(/^\s\s*/, String(str));
18123
+ return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
18124
+ };
18125
+ var rgxMapper = function(ua, arrays) {
18126
+ if (!ua || !arrays)
18127
+ return;
18128
+ var i = 0, j2, k2, p, q, matches, match18;
18129
+ while (i < arrays.length && !matches) {
18130
+ var regex = arrays[i], props = arrays[i + 1];
18131
+ j2 = k2 = 0;
18132
+ while (j2 < regex.length && !matches) {
18133
+ if (!regex[j2]) {
18134
+ break;
18135
+ }
18136
+ matches = regex[j2++].exec(ua);
18137
+ if (!!matches) {
18138
+ for (p = 0; p < props.length; p++) {
18139
+ match18 = matches[++k2];
18140
+ q = props[p];
18141
+ if (typeof q === TYPEOF.OBJECT && q.length > 0) {
18142
+ if (q.length === 2) {
18143
+ if (typeof q[1] == TYPEOF.FUNCTION) {
18144
+ this[q[0]] = q[1].call(this, match18);
18145
+ } else {
18146
+ this[q[0]] = q[1];
18147
+ }
18148
+ } else if (q.length >= 3) {
18149
+ if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {
18150
+ if (q.length > 3) {
18151
+ this[q[0]] = match18 ? q[1].apply(this, q.slice(2)) : void 0;
18152
+ } else {
18153
+ this[q[0]] = match18 ? q[1].call(this, match18, q[2]) : void 0;
18154
+ }
18155
+ } else {
18156
+ if (q.length == 3) {
18157
+ this[q[0]] = match18 ? match18.replace(q[1], q[2]) : void 0;
18158
+ } else if (q.length == 4) {
18159
+ this[q[0]] = match18 ? q[3].call(this, match18.replace(q[1], q[2])) : void 0;
18160
+ } else if (q.length > 4) {
18161
+ this[q[0]] = match18 ? q[3].apply(this, [match18.replace(q[1], q[2])].concat(q.slice(4))) : void 0;
18162
+ }
18163
+ }
18164
+ }
18165
+ } else {
18166
+ this[q] = match18 ? match18 : void 0;
18167
+ }
18168
+ }
18169
+ }
18170
+ }
18171
+ i += 2;
18172
+ }
18173
+ };
18174
+ var strMapper = function(str, map) {
18175
+ for (var i in map) {
18176
+ if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
18177
+ for (var j2 = 0; j2 < map[i].length; j2++) {
18178
+ if (has(map[i][j2], str)) {
18179
+ return i === UNKNOWN ? void 0 : i;
18180
+ }
18181
+ }
18182
+ } else if (has(map[i], str)) {
18183
+ return i === UNKNOWN ? void 0 : i;
18184
+ }
18185
+ }
18186
+ return map.hasOwnProperty("*") ? map["*"] : str;
18187
+ };
18188
+ var windowsVersionMap = {
18189
+ "ME": "4.90",
18190
+ "NT 3.51": "3.51",
18191
+ "NT 4.0": "4.0",
18192
+ "2000": ["5.0", "5.01"],
18193
+ "XP": ["5.1", "5.2"],
18194
+ "Vista": "6.0",
18195
+ "7": "6.1",
18196
+ "8": "6.2",
18197
+ "8.1": "6.3",
18198
+ "10": ["6.4", "10.0"],
18199
+ "NT": ""
18200
+ };
18201
+ var formFactorsMap = {
18202
+ "embedded": "Automotive",
18203
+ "mobile": "Mobile",
18204
+ "tablet": ["Tablet", "EInk"],
18205
+ "smarttv": "TV",
18206
+ "wearable": "Watch",
18207
+ "xr": ["VR", "XR"],
18208
+ "?": ["Desktop", "Unknown"],
18209
+ "*": void 0
18210
+ };
18211
+ var browserHintsMap = {
18212
+ "Chrome": "Google Chrome",
18213
+ "Edge": "Microsoft Edge",
18214
+ "Edge WebView2": "Microsoft Edge WebView2",
18215
+ "Chrome WebView": "Android WebView",
18216
+ "Chrome Headless": "HeadlessChrome",
18217
+ "Huawei Browser": "HuaweiBrowser",
18218
+ "MIUI Browser": "Miui Browser",
18219
+ "Opera Mobi": "OperaMobile",
18220
+ "Yandex": "YaBrowser"
18221
+ };
18222
+ var defaultRegexes = {
18223
+ browser: [
18224
+ [
18225
+ // Most common regardless engine
18226
+ /\b(?:crmo|crios)\/([\w\.]+)/i
18227
+ // Chrome for Android/iOS
18228
+ ],
18229
+ [VERSION, [NAME, PREFIX_MOBILE + "Chrome"]],
18230
+ [
18231
+ /webview.+edge\/([\w\.]+)/i
18232
+ // Microsoft Edge
18233
+ ],
18234
+ [VERSION, [NAME, EDGE + " WebView"]],
18235
+ [
18236
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
18237
+ ],
18238
+ [VERSION, [NAME, "Edge"]],
18239
+ [
18240
+ // Presto based
18241
+ /(opera mini)\/([-\w\.]+)/i,
18242
+ // Opera Mini
18243
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
18244
+ // Opera Mobi/Tablet
18245
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
18246
+ // Opera
18247
+ ],
18248
+ [NAME, VERSION],
18249
+ [
18250
+ /opios[\/ ]+([\w\.]+)/i
18251
+ // Opera mini on iphone >= 8.0
18252
+ ],
18253
+ [VERSION, [NAME, OPERA + " Mini"]],
18254
+ [
18255
+ /\bop(?:rg)?x\/([\w\.]+)/i
18256
+ // Opera GX
18257
+ ],
18258
+ [VERSION, [NAME, OPERA + " GX"]],
18259
+ [
18260
+ /\bopr\/([\w\.]+)/i
18261
+ // Opera Webkit
18262
+ ],
18263
+ [VERSION, [NAME, OPERA]],
18264
+ [
18265
+ // Mixed
18266
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
18267
+ // Baidu
18268
+ ],
18269
+ [VERSION, [NAME, "Baidu"]],
18270
+ [
18271
+ /\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
18272
+ // Maxthon
18273
+ ],
18274
+ [VERSION, [NAME, "Maxthon"]],
18275
+ [
18276
+ /(kindle)\/([\w\.]+)/i,
18277
+ // Kindle
18278
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
18279
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
18280
+ // Trident based
18281
+ /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
18282
+ // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
18283
+ /(?:ms|\()(ie) ([\w\.]+)/i,
18284
+ // Internet Explorer
18285
+ // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon
18286
+ /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,
18287
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
18288
+ /(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,
18289
+ // HeyTap/Ovi/115/Surf
18290
+ /(qwant)(?:ios|mobile)\/([\d\.]+)/i,
18291
+ // Qwant
18292
+ /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
18293
+ // Ecosia/Weibo
18294
+ ],
18295
+ [NAME, VERSION],
18296
+ [
18297
+ /quark(?:pc)?\/([-\w\.]+)/i
18298
+ // Quark
18299
+ ],
18300
+ [VERSION, [NAME, "Quark"]],
18301
+ [
18302
+ /\bddg\/([\w\.]+)/i
18303
+ // DuckDuckGo
18304
+ ],
18305
+ [VERSION, [NAME, "DuckDuckGo"]],
18306
+ [
18307
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
18308
+ // UCBrowser
18309
+ ],
18310
+ [VERSION, [NAME, "UCBrowser"]],
18311
+ [
18312
+ /microm.+\bqbcore\/([\w\.]+)/i,
18313
+ // WeChat Desktop for Windows Built-in Browser
18314
+ /\bqbcore\/([\w\.]+).+microm/i,
18315
+ /micromessenger\/([\w\.]+)/i
18316
+ // WeChat
18317
+ ],
18318
+ [VERSION, [NAME, "WeChat"]],
18319
+ [
18320
+ /konqueror\/([\w\.]+)/i
18321
+ // Konqueror
18322
+ ],
18323
+ [VERSION, [NAME, "Konqueror"]],
18324
+ [
18325
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
18326
+ // IE11
18327
+ ],
18328
+ [VERSION, [NAME, "IE"]],
18329
+ [
18330
+ /ya(?:search)?browser\/([\w\.]+)/i
18331
+ // Yandex
18332
+ ],
18333
+ [VERSION, [NAME, "Yandex"]],
18334
+ [
18335
+ /slbrowser\/([\w\.]+)/i
18336
+ // Smart Lenovo Browser
18337
+ ],
18338
+ [VERSION, [NAME, "Smart " + LENOVO + SUFFIX_BROWSER]],
18339
+ [
18340
+ /(avast|avg)\/([\w\.]+)/i
18341
+ // Avast/AVG Secure Browser
18342
+ ],
18343
+ [[NAME, /(.+)/, "$1 Secure" + SUFFIX_BROWSER], VERSION],
18344
+ [
18345
+ /\bfocus\/([\w\.]+)/i
18346
+ // Firefox Focus
18347
+ ],
18348
+ [VERSION, [NAME, FIREFOX + " Focus"]],
18349
+ [
18350
+ /\bopt\/([\w\.]+)/i
18351
+ // Opera Touch
18352
+ ],
18353
+ [VERSION, [NAME, OPERA + " Touch"]],
18354
+ [
18355
+ /coc_coc\w+\/([\w\.]+)/i
18356
+ // Coc Coc Browser
18357
+ ],
18358
+ [VERSION, [NAME, "Coc Coc"]],
18359
+ [
18360
+ /dolfin\/([\w\.]+)/i
18361
+ // Dolphin
18362
+ ],
18363
+ [VERSION, [NAME, "Dolphin"]],
18364
+ [
18365
+ /coast\/([\w\.]+)/i
18366
+ // Opera Coast
18367
+ ],
18368
+ [VERSION, [NAME, OPERA + " Coast"]],
18369
+ [
18370
+ /miuibrowser\/([\w\.]+)/i
18371
+ // MIUI Browser
18372
+ ],
18373
+ [VERSION, [NAME, "MIUI" + SUFFIX_BROWSER]],
18374
+ [
18375
+ /fxios\/([\w\.-]+)/i
18376
+ // Firefox for iOS
18377
+ ],
18378
+ [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]],
18379
+ [
18380
+ /\bqihoobrowser\/?([\w\.]*)/i
18381
+ // 360
18382
+ ],
18383
+ [VERSION, [NAME, "360"]],
18384
+ [
18385
+ /\b(qq)\/([\w\.]+)/i
18386
+ // QQ
18387
+ ],
18388
+ [[NAME, /(.+)/, "$1Browser"], VERSION],
18389
+ [
18390
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
18391
+ ],
18392
+ [[NAME, /(.+)/, "$1" + SUFFIX_BROWSER], VERSION],
18393
+ [
18394
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
18395
+ /samsungbrowser\/([\w\.]+)/i
18396
+ // Samsung Internet
18397
+ ],
18398
+ [VERSION, [NAME, SAMSUNG + " Internet"]],
18399
+ [
18400
+ /metasr[\/ ]?([\d\.]+)/i
18401
+ // Sogou Explorer
18402
+ ],
18403
+ [VERSION, [NAME, SOGOU + " Explorer"]],
18404
+ [
18405
+ /(sogou)mo\w+\/([\d\.]+)/i
18406
+ // Sogou Mobile
18407
+ ],
18408
+ [[NAME, SOGOU + " Mobile"], VERSION],
18409
+ [
18410
+ /(electron)\/([\w\.]+) safari/i,
18411
+ // Electron-based App
18412
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
18413
+ // Tesla
18414
+ /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
18415
+ // QQ/2345
18416
+ ],
18417
+ [NAME, VERSION],
18418
+ [
18419
+ /(lbbrowser|rekonq)/i
18420
+ // LieBao Browser/Rekonq
18421
+ ],
18422
+ [NAME],
18423
+ [
18424
+ /ome\/([\w\.]+) \w* ?(iron) saf/i,
18425
+ // Iron
18426
+ /ome\/([\w\.]+).+qihu (360)[es]e/i
18427
+ // 360
18428
+ ],
18429
+ [VERSION, NAME],
18430
+ [
18431
+ // WebView
18432
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
18433
+ // Facebook App for iOS & Android
18434
+ ],
18435
+ [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]],
18436
+ [
18437
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
18438
+ // Kakao App
18439
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
18440
+ // Naver InApp
18441
+ /(daum)apps[\/ ]([\w\.]+)/i,
18442
+ // Daum App
18443
+ /safari (line)\/([\w\.]+)/i,
18444
+ // Line App for iOS
18445
+ /\b(line)\/([\w\.]+)\/iab/i,
18446
+ // Line App for Android
18447
+ /(alipay)client\/([\w\.]+)/i,
18448
+ // Alipay
18449
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
18450
+ // Twitter
18451
+ /(bing)(?:web|sapphire)\/([\w\.]+)/i,
18452
+ // Bing
18453
+ /(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
18454
+ // Instagram/Snapchat/Klarna
18455
+ ],
18456
+ [NAME, VERSION, [TYPE, INAPP]],
18457
+ [
18458
+ /\bgsa\/([\w\.]+) .*safari\//i
18459
+ // Google Search Appliance on iOS
18460
+ ],
18461
+ [VERSION, [NAME, "GSA"], [TYPE, INAPP]],
18462
+ [
18463
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
18464
+ // TikTok
18465
+ ],
18466
+ [VERSION, [NAME, "TikTok"], [TYPE, INAPP]],
18467
+ [
18468
+ /\[(linkedin)app\]/i
18469
+ // LinkedIn App for iOS & Android
18470
+ ],
18471
+ [NAME, [TYPE, INAPP]],
18472
+ [
18473
+ /(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
18474
+ // Zalo
18475
+ ],
18476
+ [[NAME, /(.+)/, "Zalo"], VERSION, [TYPE, INAPP]],
18477
+ [
18478
+ /(chromium)[\/ ]([-\w\.]+)/i
18479
+ // Chromium
18480
+ ],
18481
+ [NAME, VERSION],
18482
+ [
18483
+ /headlesschrome(?:\/([\w\.]+)| )/i
18484
+ // Chrome Headless
18485
+ ],
18486
+ [VERSION, [NAME, CHROME + " Headless"]],
18487
+ [
18488
+ /wv\).+chrome\/([\w\.]+).+edgw\//i
18489
+ // Edge WebView2
18490
+ ],
18491
+ [VERSION, [NAME, EDGE + " WebView2"]],
18492
+ [
18493
+ / wv\).+(chrome)\/([\w\.]+)/i
18494
+ // Chrome WebView
18495
+ ],
18496
+ [[NAME, CHROME + " WebView"], VERSION],
18497
+ [
18498
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
18499
+ // Android Browser
18500
+ ],
18501
+ [VERSION, [NAME, "Android" + SUFFIX_BROWSER]],
18502
+ [
18503
+ /chrome\/([\w\.]+) mobile/i
18504
+ // Chrome Mobile
18505
+ ],
18506
+ [VERSION, [NAME, PREFIX_MOBILE + "Chrome"]],
18507
+ [
18508
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
18509
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
18510
+ ],
18511
+ [NAME, VERSION],
18512
+ [
18513
+ /version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
18514
+ // Safari Mobile
18515
+ ],
18516
+ [VERSION, [NAME, PREFIX_MOBILE + "Safari"]],
18517
+ [
18518
+ /iphone .*mobile(?:\/\w+ | ?)safari/i
18519
+ ],
18520
+ [[NAME, PREFIX_MOBILE + "Safari"]],
18521
+ [
18522
+ /version\/([\w\.\,]+) .*(safari)/i
18523
+ // Safari
18524
+ ],
18525
+ [VERSION, NAME],
18526
+ [
18527
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
18528
+ // Safari < 3.0
18529
+ ],
18530
+ [NAME, [VERSION, "1"]],
18531
+ [
18532
+ /(webkit|khtml)\/([\w\.]+)/i
18533
+ ],
18534
+ [NAME, VERSION],
18535
+ [
18536
+ // Gecko based
18537
+ /(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
18538
+ // Firefox Mobile
18539
+ ],
18540
+ [[NAME, PREFIX_MOBILE + FIREFOX], VERSION],
18541
+ [
18542
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
18543
+ // Netscape
18544
+ ],
18545
+ [[NAME, "Netscape"], VERSION],
18546
+ [
18547
+ /(wolvic|librewolf)\/([\w\.]+)/i
18548
+ // Wolvic/LibreWolf
18549
+ ],
18550
+ [NAME, VERSION],
18551
+ [
18552
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
18553
+ // Firefox Reality
18554
+ ],
18555
+ [VERSION, [NAME, FIREFOX + " Reality"]],
18556
+ [
18557
+ /ekiohf.+(flow)\/([\w\.]+)/i,
18558
+ // Flow
18559
+ /(swiftfox)/i,
18560
+ // Swiftfox
18561
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
18562
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
18563
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,
18564
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
18565
+ /(firefox)\/([\w\.]+)/i,
18566
+ // Other Firefox-based
18567
+ /(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,
18568
+ // Mozilla
18569
+ // Other
18570
+ /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
18571
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
18572
+ /\b(links) \(([\w\.]+)/i
18573
+ // Links
18574
+ ],
18575
+ [NAME, [VERSION, /_/g, "."]],
18576
+ [
18577
+ /(cobalt)\/([\w\.]+)/i
18578
+ // Cobalt
18579
+ ],
18580
+ [NAME, [VERSION, /[^\d\.]+./, EMPTY]]
18581
+ ],
18582
+ cpu: [
18583
+ [
18584
+ /\b((amd|x|x86[-_]?|wow|win)64)\b/i
18585
+ // AMD64 (x64)
18586
+ ],
18587
+ [[ARCHITECTURE, "amd64"]],
18588
+ [
18589
+ /(ia32(?=;))/i,
18590
+ // IA32 (quicktime)
18591
+ /\b((i[346]|x)86)(pc)?\b/i
18592
+ // IA32 (x86)
18593
+ ],
18594
+ [[ARCHITECTURE, "ia32"]],
18595
+ [
18596
+ /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
18597
+ // ARM64
18598
+ ],
18599
+ [[ARCHITECTURE, "arm64"]],
18600
+ [
18601
+ /\b(arm(v[67])?ht?n?[fl]p?)\b/i
18602
+ // ARMHF
18603
+ ],
18604
+ [[ARCHITECTURE, "armhf"]],
18605
+ [
18606
+ // PocketPC mistakenly identified as PowerPC
18607
+ /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
18608
+ ],
18609
+ [[ARCHITECTURE, "arm"]],
18610
+ [
18611
+ / sun4\w[;\)]/i
18612
+ // SPARC
18613
+ ],
18614
+ [[ARCHITECTURE, "sparc"]],
18615
+ [
18616
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
18617
+ /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
18618
+ /((ppc|powerpc)(64)?)( mac|;|\))/i,
18619
+ // PowerPC
18620
+ /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
18621
+ // Alpha
18622
+ ],
18623
+ [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
18624
+ [
18625
+ /mc680.0/i
18626
+ ],
18627
+ [[ARCHITECTURE, "68k"]],
18628
+ [
18629
+ /winnt.+\[axp/i
18630
+ ],
18631
+ [[ARCHITECTURE, "alpha"]]
18632
+ ],
18633
+ device: [
18634
+ [
18635
+ //////////////////////////
18636
+ // MOBILES & TABLETS
18637
+ /////////////////////////
18638
+ // Samsung
18639
+ /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
18640
+ ],
18641
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
18642
+ [
18643
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
18644
+ /samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
18645
+ /sec-(sgh\w+)/i
18646
+ ],
18647
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
18648
+ [
18649
+ // Apple
18650
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
18651
+ // iPod/iPhone
18652
+ ],
18653
+ [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
18654
+ [
18655
+ /\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
18656
+ // iPad
18657
+ /\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i
18658
+ ],
18659
+ [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
18660
+ [
18661
+ /(macintosh);/i
18662
+ ],
18663
+ [MODEL, [VENDOR, APPLE]],
18664
+ [
18665
+ // Sharp
18666
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
18667
+ ],
18668
+ [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
18669
+ [
18670
+ // Honor
18671
+ /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
18672
+ ],
18673
+ [MODEL, [VENDOR, HONOR], [TYPE, TABLET]],
18674
+ [
18675
+ /honor([-\w ]+)[;\)]/i
18676
+ ],
18677
+ [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]],
18678
+ [
18679
+ // Huawei
18680
+ /\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
18681
+ ],
18682
+ [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
18683
+ [
18684
+ /(?:huawei) ?([-\w ]+)[;\)]/i,
18685
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
18686
+ ],
18687
+ [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
18688
+ [
18689
+ // Xiaomi
18690
+ /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
18691
+ /\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
18692
+ // Mi Pad tablets
18693
+ ],
18694
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
18695
+ [
18696
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
18697
+ // Xiaomi POCO
18698
+ /\b; (\w+) build\/hm\1/i,
18699
+ // Xiaomi Hongmi 'numeric' models
18700
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
18701
+ // Xiaomi Hongmi
18702
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
18703
+ // Xiaomi Redmi
18704
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
18705
+ // Xiaomi Redmi 'numeric' models
18706
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
18707
+ // Xiaomi Mi
18708
+ / ([\w ]+) miui\/v?\d/i
18709
+ ],
18710
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
18711
+ [
18712
+ // OnePlus
18713
+ /droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,
18714
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
18715
+ ],
18716
+ [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]],
18717
+ [
18718
+ // OPPO
18719
+ /; (\w+) bui.+ oppo/i,
18720
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
18721
+ ],
18722
+ [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]],
18723
+ [
18724
+ /\b(opd2(\d{3}a?))(?: bui|\))/i
18725
+ ],
18726
+ [MODEL, [VENDOR, strMapper, { "OnePlus": ["203", "304", "403", "404", "413", "415"], "*": OPPO }], [TYPE, TABLET]],
18727
+ [
18728
+ // BLU
18729
+ /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
18730
+ // Vivo series
18731
+ ],
18732
+ [MODEL, [VENDOR, "BLU"], [TYPE, MOBILE]],
18733
+ [
18734
+ // Vivo
18735
+ /; vivo (\w+)(?: bui|\))/i,
18736
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
18737
+ ],
18738
+ [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
18739
+ [
18740
+ // Realme
18741
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
18742
+ ],
18743
+ [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
18744
+ [
18745
+ // Lenovo
18746
+ /(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
18747
+ /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
18748
+ ],
18749
+ [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]],
18750
+ [
18751
+ /lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
18752
+ ],
18753
+ [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]],
18754
+ [
18755
+ // Motorola
18756
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
18757
+ /\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
18758
+ /((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
18759
+ ],
18760
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
18761
+ [
18762
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
18763
+ ],
18764
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
18765
+ [
18766
+ // LG
18767
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
18768
+ ],
18769
+ [MODEL, [VENDOR, LG], [TYPE, TABLET]],
18770
+ [
18771
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
18772
+ /\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
18773
+ /\blg-?([\d\w]+) bui/i
18774
+ ],
18775
+ [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
18776
+ [
18777
+ // Nokia
18778
+ /(nokia) (t[12][01])/i
18779
+ ],
18780
+ [VENDOR, MODEL, [TYPE, TABLET]],
18781
+ [
18782
+ /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
18783
+ /nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
18784
+ ],
18785
+ [[MODEL, /_/g, " "], [TYPE, MOBILE], [VENDOR, "Nokia"]],
18786
+ [
18787
+ // Google
18788
+ /(pixel (c|tablet))\b/i
18789
+ // Google Pixel C/Tablet
18790
+ ],
18791
+ [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
18792
+ [
18793
+ // Google Pixel
18794
+ /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
18795
+ ],
18796
+ [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
18797
+ [
18798
+ /(google) (pixelbook( go)?)/i
18799
+ ],
18800
+ [VENDOR, MODEL],
18801
+ [
18802
+ // Sony
18803
+ /droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
18804
+ ],
18805
+ [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
18806
+ [
18807
+ /sony tablet [ps]/i,
18808
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
18809
+ ],
18810
+ [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
18811
+ [
18812
+ // Amazon
18813
+ /(alexa)webm/i,
18814
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
18815
+ // Kindle Fire without Silk / Echo Show
18816
+ /(kf[a-z]+)( bui|\)).+silk\//i
18817
+ // Kindle Fire HD
18818
+ ],
18819
+ [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
18820
+ [
18821
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
18822
+ // Fire Phone
18823
+ ],
18824
+ [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
18825
+ [
18826
+ // BlackBerry
18827
+ /(playbook);[-\w\),; ]+(rim)/i
18828
+ // BlackBerry PlayBook
18829
+ ],
18830
+ [MODEL, VENDOR, [TYPE, TABLET]],
18831
+ [
18832
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
18833
+ /(?:blackberry|\(bb10;) (\w+)/i
18834
+ ],
18835
+ [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
18836
+ [
18837
+ // Asus
18838
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
18839
+ ],
18840
+ [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
18841
+ [
18842
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
18843
+ ],
18844
+ [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
18845
+ [
18846
+ // HTC
18847
+ /(nexus 9)/i
18848
+ // HTC Nexus 9
18849
+ ],
18850
+ [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
18851
+ [
18852
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
18853
+ // HTC
18854
+ // ZTE
18855
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
18856
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
18857
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
18858
+ ],
18859
+ [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
18860
+ [
18861
+ // TCL
18862
+ /tcl (xess p17aa)/i,
18863
+ /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i
18864
+ ],
18865
+ [MODEL, [VENDOR, "TCL"], [TYPE, TABLET]],
18866
+ [
18867
+ /droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
18868
+ ],
18869
+ [MODEL, [VENDOR, "TCL"], [TYPE, MOBILE]],
18870
+ [
18871
+ // itel
18872
+ /(itel) ((\w+))/i
18873
+ ],
18874
+ [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { "tablet": ["p10001l", "w7001"], "*": "mobile" }]],
18875
+ [
18876
+ // Acer
18877
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
18878
+ ],
18879
+ [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
18880
+ [
18881
+ // Meizu
18882
+ /droid.+; (m[1-5] note) bui/i,
18883
+ /\bmz-([-\w]{2,})/i
18884
+ ],
18885
+ [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
18886
+ [
18887
+ // Ulefone
18888
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
18889
+ ],
18890
+ [MODEL, [VENDOR, "Ulefone"], [TYPE, MOBILE]],
18891
+ [
18892
+ // Energizer
18893
+ /; (energy ?\w+)(?: bui|\))/i,
18894
+ /; energizer ([\w ]+)(?: bui|\))/i
18895
+ ],
18896
+ [MODEL, [VENDOR, "Energizer"], [TYPE, MOBILE]],
18897
+ [
18898
+ // Cat
18899
+ /; cat (b35);/i,
18900
+ /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
18901
+ ],
18902
+ [MODEL, [VENDOR, "Cat"], [TYPE, MOBILE]],
18903
+ [
18904
+ // Smartfren
18905
+ /((?:new )?andromax[\w- ]+)(?: bui|\))/i
18906
+ ],
18907
+ [MODEL, [VENDOR, "Smartfren"], [TYPE, MOBILE]],
18908
+ [
18909
+ // Nothing
18910
+ /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
18911
+ ],
18912
+ [MODEL, [VENDOR, "Nothing"], [TYPE, MOBILE]],
18913
+ [
18914
+ // Archos
18915
+ /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
18916
+ /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
18917
+ ],
18918
+ [MODEL, [VENDOR, "Archos"], [TYPE, TABLET]],
18919
+ [
18920
+ /archos ([\w ]+)( b|\))/i,
18921
+ /; (ac[3-6]\d\w{2,8})( b|\))/i
18922
+ ],
18923
+ [MODEL, [VENDOR, "Archos"], [TYPE, MOBILE]],
18924
+ [
18925
+ // HMD
18926
+ /; (n159v)/i
18927
+ ],
18928
+ [MODEL, [VENDOR, "HMD"], [TYPE, MOBILE]],
18929
+ [
18930
+ // MIXED
18931
+ /(imo) (tab \w+)/i,
18932
+ // IMO
18933
+ /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
18934
+ // Infinix XPad / Tecno
18935
+ ],
18936
+ [VENDOR, MODEL, [TYPE, TABLET]],
18937
+ [
18938
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
18939
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan
18940
+ // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko
18941
+ /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
18942
+ /(hp) ([\w ]+\w)/i,
18943
+ // HP iPAQ
18944
+ /(microsoft); (lumia[\w ]+)/i,
18945
+ // Microsoft Lumia
18946
+ /(oppo) ?([\w ]+) bui/i,
18947
+ // OPPO
18948
+ /(hisense) ([ehv][\w ]+)\)/i,
18949
+ // Hisense
18950
+ /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
18951
+ // Philips
18952
+ ],
18953
+ [VENDOR, MODEL, [TYPE, MOBILE]],
18954
+ [
18955
+ /(kobo)\s(ereader|touch)/i,
18956
+ // Kobo
18957
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
18958
+ // HP TouchPad
18959
+ /(kindle)\/([\w\.]+)/i
18960
+ // Kindle
18961
+ ],
18962
+ [VENDOR, MODEL, [TYPE, TABLET]],
18963
+ [
18964
+ /(surface duo)/i
18965
+ // Surface Duo
18966
+ ],
18967
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
18968
+ [
18969
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
18970
+ // Fairphone
18971
+ ],
18972
+ [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
18973
+ [
18974
+ /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
18975
+ // Nvidia Tablets
18976
+ ],
18977
+ [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]],
18978
+ [
18979
+ /(sprint) (\w+)/i
18980
+ // Sprint Phones
18981
+ ],
18982
+ [VENDOR, MODEL, [TYPE, MOBILE]],
18983
+ [
18984
+ /(kin\.[onetw]{3})/i
18985
+ // Microsoft Kin
18986
+ ],
18987
+ [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
18988
+ [
18989
+ /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
18990
+ // Zebra
18991
+ ],
18992
+ [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
18993
+ [
18994
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
18995
+ ],
18996
+ [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
18997
+ [
18998
+ ///////////////////
18999
+ // SMARTTVS
19000
+ ///////////////////
19001
+ /(philips)[\w ]+tv/i,
19002
+ // Philips
19003
+ /smart-tv.+(samsung)/i
19004
+ // Samsung
19005
+ ],
19006
+ [VENDOR, [TYPE, SMARTTV]],
19007
+ [
19008
+ /hbbtv.+maple;(\d+)/i
19009
+ ],
19010
+ [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
19011
+ [
19012
+ /(vizio)(?: |.+model\/)(\w+-\w+)/i,
19013
+ // Vizio
19014
+ /tcast.+(lg)e?. ([-\w]+)/i
19015
+ // LG SmartTV
19016
+ ],
19017
+ [VENDOR, MODEL, [TYPE, SMARTTV]],
19018
+ [
19019
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
19020
+ ],
19021
+ [[VENDOR, LG], [TYPE, SMARTTV]],
19022
+ [
19023
+ /(apple) ?tv/i
19024
+ // Apple TV
19025
+ ],
19026
+ [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
19027
+ [
19028
+ /crkey.*devicetype\/chromecast/i
19029
+ // Google Chromecast Third Generation
19030
+ ],
19031
+ [[MODEL, CHROMECAST + " Third Generation"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19032
+ [
19033
+ /crkey.*devicetype\/([^/]*)/i
19034
+ // Google Chromecast with specific device type
19035
+ ],
19036
+ [[MODEL, /^/, "Chromecast "], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19037
+ [
19038
+ /fuchsia.*crkey/i
19039
+ // Google Chromecast Nest Hub
19040
+ ],
19041
+ [[MODEL, CHROMECAST + " Nest Hub"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19042
+ [
19043
+ /crkey/i
19044
+ // Google Chromecast, Linux-based or unknown
19045
+ ],
19046
+ [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19047
+ [
19048
+ /(portaltv)/i
19049
+ // Facebook Portal TV
19050
+ ],
19051
+ [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]],
19052
+ [
19053
+ /droid.+aft(\w+)( bui|\))/i
19054
+ // Fire TV
19055
+ ],
19056
+ [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
19057
+ [
19058
+ /(shield \w+ tv)/i
19059
+ // Nvidia Shield TV
19060
+ ],
19061
+ [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]],
19062
+ [
19063
+ /\(dtv[\);].+(aquos)/i,
19064
+ /(aquos-tv[\w ]+)\)/i
19065
+ // Sharp
19066
+ ],
19067
+ [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
19068
+ [
19069
+ /(bravia[\w ]+)( bui|\))/i
19070
+ // Sony
19071
+ ],
19072
+ [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
19073
+ [
19074
+ /(mi(tv|box)-?\w+) bui/i
19075
+ // Xiaomi
19076
+ ],
19077
+ [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
19078
+ [
19079
+ /Hbbtv.*(technisat) (.*);/i
19080
+ // TechniSAT
19081
+ ],
19082
+ [VENDOR, MODEL, [TYPE, SMARTTV]],
19083
+ [
19084
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
19085
+ // Roku
19086
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
19087
+ // HbbTV devices
19088
+ ],
19089
+ [[VENDOR, /.+\/(\w+)/, "$1", strMapper, { "LG": "lge" }], [MODEL, trim], [TYPE, SMARTTV]],
19090
+ [
19091
+ ///////////////////
19092
+ // CONSOLES
19093
+ ///////////////////
19094
+ /(playstation \w+)/i
19095
+ // Playstation
19096
+ ],
19097
+ [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
19098
+ [
19099
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
19100
+ // Microsoft Xbox
19101
+ ],
19102
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
19103
+ [
19104
+ /(ouya)/i,
19105
+ // Ouya
19106
+ /(nintendo) (\w+)/i,
19107
+ // Nintendo
19108
+ /(retroid) (pocket ([^\)]+))/i
19109
+ // Retroid Pocket
19110
+ ],
19111
+ [VENDOR, MODEL, [TYPE, CONSOLE]],
19112
+ [
19113
+ /droid.+; (shield)( bui|\))/i
19114
+ // Nvidia Portable
19115
+ ],
19116
+ [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]],
19117
+ [
19118
+ ///////////////////
19119
+ // WEARABLES
19120
+ ///////////////////
19121
+ /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
19122
+ // Samsung Galaxy Watch
19123
+ ],
19124
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]],
19125
+ [
19126
+ /((pebble))app/i,
19127
+ // Pebble
19128
+ /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
19129
+ // Asus ZenWatch / LG Watch / Pixel Watch
19130
+ ],
19131
+ [VENDOR, MODEL, [TYPE, WEARABLE]],
19132
+ [
19133
+ /(ow(?:19|20)?we?[1-3]{1,3})/i
19134
+ // Oppo Watch
19135
+ ],
19136
+ [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]],
19137
+ [
19138
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
19139
+ // Apple Watch
19140
+ ],
19141
+ [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
19142
+ [
19143
+ /(opwwe\d{3})/i
19144
+ // OnePlus Watch
19145
+ ],
19146
+ [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]],
19147
+ [
19148
+ /(moto 360)/i
19149
+ // Motorola 360
19150
+ ],
19151
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]],
19152
+ [
19153
+ /(smartwatch 3)/i
19154
+ // Sony SmartWatch
19155
+ ],
19156
+ [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]],
19157
+ [
19158
+ /(g watch r)/i
19159
+ // LG G Watch R
19160
+ ],
19161
+ [MODEL, [VENDOR, LG], [TYPE, WEARABLE]],
19162
+ [
19163
+ /droid.+; (wt63?0{2,3})\)/i
19164
+ ],
19165
+ [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
19166
+ [
19167
+ ///////////////////
19168
+ // XR
19169
+ ///////////////////
19170
+ /droid.+; (glass) \d/i
19171
+ // Google Glass
19172
+ ],
19173
+ [MODEL, [VENDOR, GOOGLE], [TYPE, XR]],
19174
+ [
19175
+ /(pico) ([\w ]+) os\d/i
19176
+ // Pico
19177
+ ],
19178
+ [VENDOR, MODEL, [TYPE, XR]],
19179
+ [
19180
+ /(quest( \d| pro)?s?).+vr/i
19181
+ // Meta Quest
19182
+ ],
19183
+ [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]],
19184
+ [
19185
+ /mobile vr; rv.+firefox/i
19186
+ // Unidentifiable VR device using Firefox Reality / Wolvic
19187
+ ],
19188
+ [[TYPE, XR]],
19189
+ [
19190
+ ///////////////////
19191
+ // EMBEDDED
19192
+ ///////////////////
19193
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
19194
+ // Tesla
19195
+ ],
19196
+ [VENDOR, [TYPE, EMBEDDED]],
19197
+ [
19198
+ /(aeobc)\b/i
19199
+ // Echo Dot
19200
+ ],
19201
+ [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
19202
+ [
19203
+ /(homepod).+mac os/i
19204
+ // Apple HomePod
19205
+ ],
19206
+ [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]],
19207
+ [
19208
+ /windows iot/i
19209
+ // Unidentifiable embedded device using Windows IoT
19210
+ ],
19211
+ [[TYPE, EMBEDDED]],
19212
+ [
19213
+ ////////////////////
19214
+ // MIXED (GENERIC)
19215
+ ///////////////////
19216
+ /droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
19217
+ // Unidentifiable SmartTV
19218
+ ],
19219
+ [MODEL, [TYPE, SMARTTV]],
19220
+ [
19221
+ /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
19222
+ ],
19223
+ [[TYPE, SMARTTV]],
19224
+ [
19225
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
19226
+ ],
19227
+ [MODEL, [TYPE, strMapper, { "mobile": "Mobile", "xr": "VR", "*": TABLET }]],
19228
+ [
19229
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
19230
+ // Unidentifiable Tablet
19231
+ ],
19232
+ [[TYPE, TABLET]],
19233
+ [
19234
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
19235
+ // Unidentifiable Mobile
19236
+ ],
19237
+ [[TYPE, MOBILE]],
19238
+ [
19239
+ /droid .+?; ([\w\. -]+)( bui|\))/i
19240
+ // Generic Android Device
19241
+ ],
19242
+ [MODEL, [VENDOR, "Generic"]]
19243
+ ],
19244
+ engine: [
19245
+ [
19246
+ /windows.+ edge\/([\w\.]+)/i
19247
+ // EdgeHTML
19248
+ ],
19249
+ [VERSION, [NAME, EDGE + "HTML"]],
19250
+ [
19251
+ /(arkweb)\/([\w\.]+)/i
19252
+ // ArkWeb
19253
+ ],
19254
+ [NAME, VERSION],
19255
+ [
19256
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
19257
+ // Blink
19258
+ ],
19259
+ [VERSION, [NAME, "Blink"]],
19260
+ [
19261
+ /(presto)\/([\w\.]+)/i,
19262
+ // Presto
19263
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,
19264
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
19265
+ /ekioh(flow)\/([\w\.]+)/i,
19266
+ // Flow
19267
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
19268
+ // KHTML/Tasman/Links
19269
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
19270
+ // iCab
19271
+ /\b(libweb)/i
19272
+ // LibWeb
19273
+ ],
19274
+ [NAME, VERSION],
19275
+ [
19276
+ /ladybird\//i
19277
+ ],
19278
+ [[NAME, "LibWeb"]],
19279
+ [
19280
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
19281
+ // Gecko
19282
+ ],
19283
+ [VERSION, NAME]
19284
+ ],
19285
+ os: [
19286
+ [
19287
+ // Windows
19288
+ /(windows nt) (6\.[23]); arm/i
19289
+ // Windows RT
19290
+ ],
19291
+ [[NAME, /N/, "R"], [VERSION, strMapper, windowsVersionMap]],
19292
+ [
19293
+ /(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
19294
+ // Windows IoT/Mobile/Phone
19295
+ // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
19296
+ /(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
19297
+ ],
19298
+ [NAME, VERSION],
19299
+ [
19300
+ /windows nt ?([\d\.\)]*)(?!.+xbox)/i,
19301
+ /\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
19302
+ ],
19303
+ [[VERSION, /(;|\))/g, "", strMapper, windowsVersionMap], [NAME, WINDOWS]],
19304
+ [
19305
+ /(windows ce)\/?([\d\.]*)/i
19306
+ // Windows CE
19307
+ ],
19308
+ [NAME, VERSION],
19309
+ [
19310
+ // iOS/macOS
19311
+ /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
19312
+ // iOS
19313
+ /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,
19314
+ /cfnetwork\/.+darwin/i
19315
+ ],
19316
+ [[VERSION, /_/g, "."], [NAME, "iOS"]],
19317
+ [
19318
+ /(mac os x) ?([\w\. ]*)/i,
19319
+ /(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
19320
+ // Mac OS
19321
+ ],
19322
+ [[NAME, "macOS"], [VERSION, /_/g, "."]],
19323
+ [
19324
+ // Google Chromecast
19325
+ /android ([\d\.]+).*crkey/i
19326
+ // Google Chromecast, Android-based
19327
+ ],
19328
+ [VERSION, [NAME, CHROMECAST + " Android"]],
19329
+ [
19330
+ /fuchsia.*crkey\/([\d\.]+)/i
19331
+ // Google Chromecast, Fuchsia-based
19332
+ ],
19333
+ [VERSION, [NAME, CHROMECAST + " Fuchsia"]],
19334
+ [
19335
+ /crkey\/([\d\.]+).*devicetype\/smartspeaker/i
19336
+ // Google Chromecast, Linux-based Smart Speaker
19337
+ ],
19338
+ [VERSION, [NAME, CHROMECAST + " SmartSpeaker"]],
19339
+ [
19340
+ /linux.*crkey\/([\d\.]+)/i
19341
+ // Google Chromecast, Legacy Linux-based
19342
+ ],
19343
+ [VERSION, [NAME, CHROMECAST + " Linux"]],
19344
+ [
19345
+ /crkey\/([\d\.]+)/i
19346
+ // Google Chromecast, unknown
19347
+ ],
19348
+ [VERSION, [NAME, CHROMECAST]],
19349
+ [
19350
+ // Mobile OSes
19351
+ /droid ([\w\.]+)\b.+(android[- ]x86)/i
19352
+ // Android-x86
19353
+ ],
19354
+ [VERSION, NAME],
19355
+ [
19356
+ /(ubuntu) ([\w\.]+) like android/i
19357
+ // Ubuntu Touch
19358
+ ],
19359
+ [[NAME, /(.+)/, "$1 Touch"], VERSION],
19360
+ [
19361
+ /(harmonyos)[\/ ]?([\d\.]*)/i,
19362
+ // HarmonyOS
19363
+ // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
19364
+ /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
19365
+ ],
19366
+ [NAME, VERSION],
19367
+ [
19368
+ /\(bb(10);/i
19369
+ // BlackBerry 10
19370
+ ],
19371
+ [VERSION, [NAME, BLACKBERRY]],
19372
+ [
19373
+ /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
19374
+ // Symbian
19375
+ ],
19376
+ [VERSION, [NAME, "Symbian"]],
19377
+ [
19378
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
19379
+ // Firefox OS
19380
+ ],
19381
+ [VERSION, [NAME, FIREFOX + " OS"]],
19382
+ [
19383
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
19384
+ // WebOS
19385
+ /webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
19386
+ ],
19387
+ [VERSION, [NAME, "webOS"]],
19388
+ [
19389
+ /web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
19390
+ // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
19391
+ ],
19392
+ [[VERSION, strMapper, { "25": "120", "24": "108", "23": "94", "22": "87", "6": "79", "5": "68", "4": "53", "3": "38", "2": "538", "1": "537", "*": "TV" }], [NAME, "webOS"]],
19393
+ [
19394
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
19395
+ // watchOS
19396
+ ],
19397
+ [VERSION, [NAME, "watchOS"]],
19398
+ [
19399
+ // Google ChromeOS
19400
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
19401
+ // Chromium OS
19402
+ ],
19403
+ [[NAME, "Chrome OS"], VERSION],
19404
+ [
19405
+ // Smart TVs
19406
+ /panasonic;(viera)/i,
19407
+ // Panasonic Viera
19408
+ /(netrange)mmh/i,
19409
+ // Netrange
19410
+ /(nettv)\/(\d+\.[\w\.]+)/i,
19411
+ // NetTV
19412
+ // Console
19413
+ /(nintendo|playstation) (\w+)/i,
19414
+ // Nintendo/Playstation
19415
+ /(xbox); +xbox ([^\);]+)/i,
19416
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
19417
+ /(pico) .+os([\w\.]+)/i,
19418
+ // Pico
19419
+ // Other
19420
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
19421
+ // Joli/Palm
19422
+ /linux.+(mint)[\/\(\) ]?([\w\.]*)/i,
19423
+ // Mint
19424
+ /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,
19425
+ // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch
19426
+ /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
19427
+ // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix
19428
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
19429
+ // Solaris
19430
+ /\b(aix)[; ]([1-9\.]{0,4})/i,
19431
+ // AIX
19432
+ /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,
19433
+ // Hurd/Linux/MorphOS
19434
+ /(gnu) ?([\w\.]*)/i,
19435
+ // GNU
19436
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
19437
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
19438
+ /(haiku) ?(r\d)?/i
19439
+ // Haiku
19440
+ ],
19441
+ [NAME, VERSION],
19442
+ [
19443
+ /(sunos) ?([\d\.]*)/i
19444
+ // Solaris
19445
+ ],
19446
+ [[NAME, "Solaris"], VERSION],
19447
+ [
19448
+ /\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
19449
+ // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
19450
+ /(unix) ?([\w\.]*)/i
19451
+ // UNIX
19452
+ ],
19453
+ [NAME, VERSION]
19454
+ ]
19455
+ };
19456
+ var defaultProps = function() {
19457
+ var props = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
19458
+ setProps.call(props.init, [
19459
+ [BROWSER, [NAME, VERSION, MAJOR, TYPE]],
19460
+ [CPU, [ARCHITECTURE]],
19461
+ [DEVICE, [TYPE, MODEL, VENDOR]],
19462
+ [ENGINE, [NAME, VERSION]],
19463
+ [OS, [NAME, VERSION]]
19464
+ ]);
19465
+ setProps.call(props.isIgnore, [
19466
+ [BROWSER, [VERSION, MAJOR]],
19467
+ [ENGINE, [VERSION]],
19468
+ [OS, [VERSION]]
19469
+ ]);
19470
+ setProps.call(props.isIgnoreRgx, [
19471
+ [BROWSER, / ?browser$/i],
19472
+ [OS, / ?os$/i]
19473
+ ]);
19474
+ setProps.call(props.toString, [
19475
+ [BROWSER, [NAME, VERSION]],
19476
+ [CPU, [ARCHITECTURE]],
19477
+ [DEVICE, [VENDOR, MODEL]],
19478
+ [ENGINE, [NAME, VERSION]],
19479
+ [OS, [NAME, VERSION]]
19480
+ ]);
19481
+ return props;
19482
+ }();
19483
+ var createIData = function(item, itemType) {
19484
+ var init_props = defaultProps.init[itemType], is_ignoreProps = defaultProps.isIgnore[itemType] || 0, is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0, toString_props = defaultProps.toString[itemType] || 0;
19485
+ function IData() {
19486
+ setProps.call(this, init_props);
19487
+ }
19488
+ IData.prototype.getItem = function() {
19489
+ return item;
19490
+ };
19491
+ IData.prototype.withClientHints = function() {
19492
+ if (!NAVIGATOR_UADATA) {
19493
+ return item.parseCH().get();
19494
+ }
19495
+ return NAVIGATOR_UADATA.getHighEntropyValues(CH_ALL_VALUES).then(function(res) {
19496
+ return item.setCH(new UACHData(res, false)).parseCH().get();
19497
+ });
19498
+ };
19499
+ IData.prototype.withFeatureCheck = function() {
19500
+ return item.detectFeature().get();
19501
+ };
19502
+ if (itemType != RESULT) {
19503
+ IData.prototype.is = function(strToCheck) {
19504
+ var is2 = false;
19505
+ for (var i in this) {
19506
+ if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {
19507
+ is2 = true;
19508
+ if (strToCheck != TYPEOF.UNDEFINED)
19509
+ break;
19510
+ } else if (strToCheck == TYPEOF.UNDEFINED && is2) {
19511
+ is2 = !is2;
19512
+ break;
19513
+ }
19514
+ }
19515
+ return is2;
19516
+ };
19517
+ IData.prototype.toString = function() {
19518
+ var str = EMPTY;
19519
+ for (var i in toString_props) {
19520
+ if (typeof this[toString_props[i]] !== TYPEOF.UNDEFINED) {
19521
+ str += (str ? " " : EMPTY) + this[toString_props[i]];
19522
+ }
19523
+ }
19524
+ return str || TYPEOF.UNDEFINED;
19525
+ };
19526
+ }
19527
+ if (!NAVIGATOR_UADATA) {
19528
+ IData.prototype.then = function(cb) {
19529
+ var that = this;
19530
+ var IDataResolve = function() {
19531
+ for (var prop in that) {
19532
+ if (that.hasOwnProperty(prop)) {
19533
+ this[prop] = that[prop];
19534
+ }
19535
+ }
19536
+ };
19537
+ IDataResolve.prototype = {
19538
+ is: IData.prototype.is,
19539
+ toString: IData.prototype.toString
19540
+ };
19541
+ var resolveData = new IDataResolve();
19542
+ cb(resolveData);
19543
+ return resolveData;
19544
+ };
19545
+ }
19546
+ return new IData();
19547
+ };
19548
+ function UACHData(uach, isHttpUACH) {
19549
+ uach = uach || {};
19550
+ setProps.call(this, CH_ALL_VALUES);
19551
+ if (isHttpUACH) {
19552
+ setProps.call(this, [
19553
+ [BRANDS, itemListToArray(uach[CH])],
19554
+ [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],
19555
+ [MOBILE, /\?1/.test(uach[CH_MOBILE])],
19556
+ [MODEL, stripQuotes(uach[CH_MODEL])],
19557
+ [PLATFORM, stripQuotes(uach[CH_PLATFORM])],
19558
+ [PLATFORMVER, stripQuotes(uach[CH_PLATFORM_VER])],
19559
+ [ARCHITECTURE, stripQuotes(uach[CH_ARCH])],
19560
+ [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],
19561
+ [BITNESS, stripQuotes(uach[CH_BITNESS])]
19562
+ ]);
19563
+ } else {
19564
+ for (var prop in uach) {
19565
+ if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED)
19566
+ this[prop] = uach[prop];
19567
+ }
19568
+ }
19569
+ }
19570
+ function UAItem(itemType, ua, rgxMap, uaCH) {
19571
+ this.get = function(prop) {
19572
+ if (!prop)
19573
+ return this.data;
19574
+ return this.data.hasOwnProperty(prop) ? this.data[prop] : void 0;
19575
+ };
19576
+ this.set = function(prop, val) {
19577
+ this.data[prop] = val;
19578
+ return this;
19579
+ };
19580
+ this.setCH = function(ch) {
19581
+ this.uaCH = ch;
19582
+ return this;
19583
+ };
19584
+ this.detectFeature = function() {
19585
+ if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {
19586
+ switch (this.itemType) {
19587
+ case BROWSER:
19588
+ if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {
19589
+ this.set(NAME, "Brave");
19590
+ }
19591
+ break;
19592
+ case DEVICE:
19593
+ if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {
19594
+ this.set(TYPE, MOBILE);
19595
+ }
19596
+ if (this.get(MODEL) == "Macintosh" && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {
19597
+ this.set(MODEL, "iPad").set(TYPE, TABLET);
19598
+ }
19599
+ break;
19600
+ case OS:
19601
+ if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {
19602
+ this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);
19603
+ }
19604
+ break;
19605
+ case RESULT:
19606
+ var data3 = this.data;
19607
+ var detect = function(itemType2) {
19608
+ return data3[itemType2].getItem().detectFeature().get();
19609
+ };
19610
+ this.set(BROWSER, detect(BROWSER)).set(CPU, detect(CPU)).set(DEVICE, detect(DEVICE)).set(ENGINE, detect(ENGINE)).set(OS, detect(OS));
19611
+ }
19612
+ }
19613
+ return this;
19614
+ };
19615
+ this.parseUA = function() {
19616
+ if (this.itemType != RESULT) {
19617
+ rgxMapper.call(this.data, this.ua, this.rgxMap);
19618
+ }
19619
+ switch (this.itemType) {
19620
+ case BROWSER:
19621
+ this.set(MAJOR, majorize(this.get(VERSION)));
19622
+ break;
19623
+ case OS:
19624
+ if (this.get(NAME) == "iOS" && this.get(VERSION) == "18.6") {
19625
+ var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
19626
+ if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) {
19627
+ this.set(VERSION, realVersion[1]);
19628
+ }
19629
+ }
19630
+ break;
19631
+ }
19632
+ return this;
19633
+ };
19634
+ this.parseCH = function() {
19635
+ var uaCH2 = this.uaCH, rgxMap2 = this.rgxMap;
19636
+ switch (this.itemType) {
19637
+ case BROWSER:
19638
+ case ENGINE:
19639
+ var brands = uaCH2[FULLVERLIST] || uaCH2[BRANDS], prevName;
19640
+ if (brands) {
19641
+ for (var i = 0; i < brands.length; i++) {
19642
+ var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
19643
+ if (this.itemType == BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
19644
+ brandName = strMapper(brandName, browserHintsMap);
19645
+ prevName = this.get(NAME);
19646
+ if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {
19647
+ this.set(NAME, brandName).set(VERSION, brandVersion).set(MAJOR, majorize(brandVersion));
19648
+ }
19649
+ prevName = brandName;
19650
+ }
19651
+ if (this.itemType == ENGINE && brandName == CHROMIUM) {
19652
+ this.set(VERSION, brandVersion);
19653
+ }
19654
+ }
19655
+ }
19656
+ break;
19657
+ case CPU:
19658
+ var archName = uaCH2[ARCHITECTURE];
19659
+ if (archName) {
19660
+ if (archName && uaCH2[BITNESS] == "64")
19661
+ archName += "64";
19662
+ rgxMapper.call(this.data, archName + ";", rgxMap2);
19663
+ }
19664
+ break;
19665
+ case DEVICE:
19666
+ if (uaCH2[MOBILE]) {
19667
+ this.set(TYPE, MOBILE);
19668
+ }
19669
+ if (uaCH2[MODEL]) {
19670
+ this.set(MODEL, uaCH2[MODEL]);
19671
+ if (!this.get(TYPE) || !this.get(VENDOR)) {
19672
+ var reParse = {};
19673
+ rgxMapper.call(reParse, "droid 9; " + uaCH2[MODEL] + ")", rgxMap2);
19674
+ if (!this.get(TYPE) && !!reParse.type) {
19675
+ this.set(TYPE, reParse.type);
19676
+ }
19677
+ if (!this.get(VENDOR) && !!reParse.vendor) {
19678
+ this.set(VENDOR, reParse.vendor);
19679
+ }
19680
+ }
19681
+ }
19682
+ if (uaCH2[FORMFACTORS]) {
19683
+ var ff;
19684
+ if (typeof uaCH2[FORMFACTORS] !== "string") {
19685
+ var idx = 0;
19686
+ while (!ff && idx < uaCH2[FORMFACTORS].length) {
19687
+ ff = strMapper(uaCH2[FORMFACTORS][idx++], formFactorsMap);
19688
+ }
19689
+ } else {
19690
+ ff = strMapper(uaCH2[FORMFACTORS], formFactorsMap);
19691
+ }
19692
+ this.set(TYPE, ff);
19693
+ }
19694
+ break;
19695
+ case OS:
19696
+ var osName = uaCH2[PLATFORM];
19697
+ if (osName) {
19698
+ var osVersion = uaCH2[PLATFORMVER];
19699
+ if (osName == WINDOWS)
19700
+ osVersion = parseInt(majorize(osVersion), 10) >= 13 ? "11" : "10";
19701
+ this.set(NAME, osName).set(VERSION, osVersion);
19702
+ }
19703
+ if (this.get(NAME) == WINDOWS && uaCH2[MODEL] == "Xbox") {
19704
+ this.set(NAME, "Xbox").set(VERSION, void 0);
19705
+ }
19706
+ break;
19707
+ case RESULT:
19708
+ var data3 = this.data;
19709
+ var parse2 = function(itemType2) {
19710
+ return data3[itemType2].getItem().setCH(uaCH2).parseCH().get();
19711
+ };
19712
+ this.set(BROWSER, parse2(BROWSER)).set(CPU, parse2(CPU)).set(DEVICE, parse2(DEVICE)).set(ENGINE, parse2(ENGINE)).set(OS, parse2(OS));
19713
+ }
19714
+ return this;
19715
+ };
19716
+ setProps.call(this, [
19717
+ ["itemType", itemType],
19718
+ ["ua", ua],
19719
+ ["uaCH", uaCH],
19720
+ ["rgxMap", rgxMap],
19721
+ ["data", createIData(this, itemType)]
19722
+ ]);
19723
+ return this;
19724
+ }
19725
+ function UAParser(ua, extensions, headers) {
19726
+ if (typeof ua === TYPEOF.OBJECT) {
19727
+ if (isExtensions(ua, true)) {
19728
+ if (typeof extensions === TYPEOF.OBJECT) {
19729
+ headers = extensions;
19730
+ }
19731
+ extensions = ua;
19732
+ } else {
19733
+ headers = ua;
19734
+ extensions = void 0;
19735
+ }
19736
+ ua = void 0;
19737
+ } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {
19738
+ headers = extensions;
19739
+ extensions = void 0;
19740
+ }
19741
+ if (headers) {
19742
+ if (typeof headers.append === TYPEOF.FUNCTION) {
19743
+ var kv = {};
19744
+ headers.forEach(function(v, k2) {
19745
+ kv[String(k2).toLowerCase()] = v;
19746
+ });
19747
+ headers = kv;
19748
+ } else {
19749
+ var normalized = {};
19750
+ for (var header in headers) {
19751
+ if (headers.hasOwnProperty(header)) {
19752
+ normalized[String(header).toLowerCase()] = headers[header];
19753
+ }
19754
+ }
19755
+ headers = normalized;
19756
+ }
19757
+ }
19758
+ if (!(this instanceof UAParser)) {
19759
+ return new UAParser(ua, extensions, headers).getResult();
19760
+ }
19761
+ var userAgent = typeof ua === TYPEOF.STRING ? ua : (
19762
+ // Passed user-agent string
19763
+ headers && headers[USER_AGENT] ? headers[USER_AGENT] : (
19764
+ // User-Agent from passed headers
19765
+ NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : (
19766
+ // navigator.userAgent
19767
+ EMPTY
19768
+ )
19769
+ )
19770
+ ), httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
19771
+ if (itemType == RESULT) {
19772
+ return function() {
19773
+ return new UAItem(itemType, userAgent, regexMap, httpUACH).set("ua", userAgent).set(BROWSER, this.getBrowser()).set(CPU, this.getCPU()).set(DEVICE, this.getDevice()).set(ENGINE, this.getEngine()).set(OS, this.getOS()).get();
19774
+ };
19775
+ } else {
19776
+ return function() {
19777
+ return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH).parseUA().get();
19778
+ };
19779
+ }
19780
+ };
19781
+ setProps.call(this, [
19782
+ ["getBrowser", createItemFunc(BROWSER)],
19783
+ ["getCPU", createItemFunc(CPU)],
19784
+ ["getDevice", createItemFunc(DEVICE)],
19785
+ ["getEngine", createItemFunc(ENGINE)],
19786
+ ["getOS", createItemFunc(OS)],
19787
+ ["getResult", createItemFunc(RESULT)],
19788
+ ["getUA", function() {
19789
+ return userAgent;
19790
+ }],
19791
+ ["setUA", function(ua2) {
19792
+ if (isString(ua2))
19793
+ userAgent = trim(ua2, UA_MAX_LENGTH);
19794
+ return this;
19795
+ }]
19796
+ ]).setUA(userAgent);
19797
+ return this;
19798
+ }
19799
+ UAParser.VERSION = LIBVERSION;
19800
+ UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);
19801
+ UAParser.CPU = enumerize([ARCHITECTURE]);
19802
+ UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
19803
+ UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
19804
+
19211
19805
  // ../hms-video-store/dist/index.js
19212
- var import_ua_parser_js = __toESM(require_ua_parser());
19213
19806
  var import_uuid3 = require("uuid");
19214
19807
  var import_uuid4 = require("uuid");
19215
19808
  var import_lodash3 = __toESM(require_lodash2());
@@ -19451,7 +20044,7 @@ function shimGetUserMedia(window2, browserDetails) {
19451
20044
  if (typeof c2 !== "object" || c2.mandatory || c2.optional) {
19452
20045
  return c2;
19453
20046
  }
19454
- const cc = {};
20047
+ const cc2 = {};
19455
20048
  Object.keys(c2).forEach((key) => {
19456
20049
  if (key === "require" || key === "advanced" || key === "mediaSource") {
19457
20050
  return;
@@ -19467,35 +20060,35 @@ function shimGetUserMedia(window2, browserDetails) {
19467
20060
  return name === "deviceId" ? "sourceId" : name;
19468
20061
  };
19469
20062
  if (r.ideal !== void 0) {
19470
- cc.optional = cc.optional || [];
20063
+ cc2.optional = cc2.optional || [];
19471
20064
  let oc2 = {};
19472
20065
  if (typeof r.ideal === "number") {
19473
20066
  oc2[oldname_("min", key)] = r.ideal;
19474
- cc.optional.push(oc2);
20067
+ cc2.optional.push(oc2);
19475
20068
  oc2 = {};
19476
20069
  oc2[oldname_("max", key)] = r.ideal;
19477
- cc.optional.push(oc2);
20070
+ cc2.optional.push(oc2);
19478
20071
  } else {
19479
20072
  oc2[oldname_("", key)] = r.ideal;
19480
- cc.optional.push(oc2);
20073
+ cc2.optional.push(oc2);
19481
20074
  }
19482
20075
  }
19483
20076
  if (r.exact !== void 0 && typeof r.exact !== "number") {
19484
- cc.mandatory = cc.mandatory || {};
19485
- cc.mandatory[oldname_("", key)] = r.exact;
20077
+ cc2.mandatory = cc2.mandatory || {};
20078
+ cc2.mandatory[oldname_("", key)] = r.exact;
19486
20079
  } else {
19487
20080
  ["min", "max"].forEach((mix) => {
19488
20081
  if (r[mix] !== void 0) {
19489
- cc.mandatory = cc.mandatory || {};
19490
- cc.mandatory[oldname_(mix, key)] = r[mix];
20082
+ cc2.mandatory = cc2.mandatory || {};
20083
+ cc2.mandatory[oldname_(mix, key)] = r[mix];
19491
20084
  }
19492
20085
  });
19493
20086
  }
19494
20087
  });
19495
20088
  if (c2.advanced) {
19496
- cc.optional = (cc.optional || []).concat(c2.advanced);
20089
+ cc2.optional = (cc2.optional || []).concat(c2.advanced);
19497
20090
  }
19498
- return cc;
20091
+ return cc2;
19499
20092
  };
19500
20093
  const shimConstraints_ = function(constraints, func) {
19501
20094
  if (browserDetails.version >= 61) {
@@ -21038,15 +21631,15 @@ function shimSendThrowTypeError(window2) {
21038
21631
  if (!(window2.RTCPeerConnection && "createDataChannel" in window2.RTCPeerConnection.prototype)) {
21039
21632
  return;
21040
21633
  }
21041
- function wrapDcSend(dc, pc) {
21042
- const origDataChannelSend = dc.send;
21043
- dc.send = function send() {
21634
+ function wrapDcSend(dc2, pc) {
21635
+ const origDataChannelSend = dc2.send;
21636
+ dc2.send = function send() {
21044
21637
  const data3 = arguments[0];
21045
21638
  const length = data3.length || data3.size || data3.byteLength;
21046
- if (dc.readyState === "open" && pc.sctp && length > pc.sctp.maxMessageSize) {
21639
+ if (dc2.readyState === "open" && pc.sctp && length > pc.sctp.maxMessageSize) {
21047
21640
  throw new TypeError("Message too large (can send a maximum of " + pc.sctp.maxMessageSize + " bytes)");
21048
21641
  }
21049
- return origDataChannelSend.apply(dc, arguments);
21642
+ return origDataChannelSend.apply(dc2, arguments);
21050
21643
  };
21051
21644
  }
21052
21645
  const origCreateDataChannel = window2.RTCPeerConnection.prototype.createDataChannel;
@@ -21316,36 +21909,36 @@ var import_eventemitter2 = require("eventemitter2");
21316
21909
  var import_eventemitter22 = require("eventemitter2");
21317
21910
  var import_uuid8 = require("uuid");
21318
21911
  var import_eventemitter23 = require("eventemitter2");
21319
- var Yt = __toESM(require_lib());
21912
+ var Zt = __toESM(require_lib());
21320
21913
  var import_eventemitter24 = __toESM(require("eventemitter2"));
21321
21914
  var import_uuid9 = require("uuid");
21322
21915
  var import_uuid10 = require("uuid");
21323
- var po = Object.defineProperty;
21324
- var ho = Object.defineProperties;
21325
- var mo = Object.getOwnPropertyDescriptors;
21326
- var ai = Object.getOwnPropertySymbols;
21327
- var Ss = Object.prototype.hasOwnProperty;
21328
- var gs = Object.prototype.propertyIsEnumerable;
21329
- var ms = (a2, e, t) => e in a2 ? po(a2, e, { enumerable: true, configurable: true, writable: true, value: t }) : a2[e] = t;
21916
+ var go = Object.defineProperty;
21917
+ var To = Object.defineProperties;
21918
+ var fo = Object.getOwnPropertyDescriptors;
21919
+ var ni = Object.getOwnPropertySymbols;
21920
+ var vs = Object.prototype.hasOwnProperty;
21921
+ var Ms = Object.prototype.propertyIsEnumerable;
21922
+ var fs = (a2, e, t) => e in a2 ? go(a2, e, { enumerable: true, configurable: true, writable: true, value: t }) : a2[e] = t;
21330
21923
  var m = (a2, e) => {
21331
21924
  for (var t in e || (e = {}))
21332
- Ss.call(e, t) && ms(a2, t, e[t]);
21333
- if (ai)
21334
- for (var t of ai(e))
21335
- gs.call(e, t) && ms(a2, t, e[t]);
21925
+ vs.call(e, t) && fs(a2, t, e[t]);
21926
+ if (ni)
21927
+ for (var t of ni(e))
21928
+ Ms.call(e, t) && fs(a2, t, e[t]);
21336
21929
  return a2;
21337
21930
  };
21338
- var M = (a2, e) => ho(a2, mo(e));
21339
- var yr = (a2, e) => {
21931
+ var M = (a2, e) => To(a2, fo(e));
21932
+ var Er = (a2, e) => {
21340
21933
  var t = {};
21341
21934
  for (var i in a2)
21342
- Ss.call(a2, i) && e.indexOf(i) < 0 && (t[i] = a2[i]);
21343
- if (a2 != null && ai)
21344
- for (var i of ai(a2))
21345
- e.indexOf(i) < 0 && gs.call(a2, i) && (t[i] = a2[i]);
21935
+ vs.call(a2, i) && e.indexOf(i) < 0 && (t[i] = a2[i]);
21936
+ if (a2 != null && ni)
21937
+ for (var i of ni(a2))
21938
+ e.indexOf(i) < 0 && Ms.call(a2, i) && (t[i] = a2[i]);
21346
21939
  return t;
21347
21940
  };
21348
- var To = (a2, e) => () => (e || a2((e = { exports: {} }).exports, e), e.exports);
21941
+ var yo = (a2, e) => () => (e || a2((e = { exports: {} }).exports, e), e.exports);
21349
21942
  var c = (a2, e, t) => new Promise((i, r) => {
21350
21943
  var s = (d) => {
21351
21944
  try {
@@ -21362,51 +21955,51 @@ var c = (a2, e, t) => new Promise((i, r) => {
21362
21955
  }, n = (d) => d.done ? i(d.value) : Promise.resolve(d.value).then(s, o);
21363
21956
  n((t = t.apply(a2, e)).next());
21364
21957
  });
21365
- var Ar = To((Yc, Ao) => {
21366
- Ao.exports = { version: "0.12.39-alpha.1", license: "MIT", repository: { type: "git", url: "https://github.com/100mslive/web-sdks.git", directory: "packages/hms-video-store" }, main: "dist/index.cjs.js", module: "dist/index.js", typings: "dist/index.d.ts", files: ["dist", "src"], engines: { node: ">=12" }, exports: { ".": { require: "./dist/index.cjs.js", import: "./dist/index.js", default: "./dist/index.js" } }, sideEffects: false, scripts: { prestart: "rm -rf dist && yarn types:build", start: 'concurrently "yarn dev" "yarn types"', dev: "node ../../scripts/dev", "build:only": "node ../../scripts/build", build: "yarn build:only && yarn types:build", types: "tsc -w", "types:build": "tsc -p tsconfig.json", format: "prettier --write src/**/*.ts", test: "jest --maxWorkers=1", "test:watch": "jest --watch", "test:coverage": "jest --coverage", lint: "eslint -c ../../.eslintrc .", "lint:fix": "yarn lint --fix", prepare: "yarn build", size: "size-limit", analyze: "size-limit --why", docs: "rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'" }, name: "@100mslive/hms-video-store", author: "100ms", dependencies: { eventemitter2: "^6.4.9", immer: "^9.0.6", "lodash.isequal": "^4.5.0", reselect: "4.0.0", "sdp-transform": "^2.14.1", "ua-parser-js": "^1.0.1", uuid: "^8.3.2", "webrtc-adapter": "^8.0.0", zustand: "3.5.7" }, devDependencies: { "@types/dom-screen-wake-lock": "^1.0.1", "@types/lodash.isequal": "^4.5.8", "@types/sdp-transform": "^2.4.4", "@types/ua-parser-js": "^0.7.36", "@types/uuid": "^8.3.0", "jest-canvas-mock": "^2.3.1", "jsdom-worker": "^0.3.0", tslib: "^2.2.0" }, description: "@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow", keywords: ["video", "webrtc", "conferencing", "100ms"] };
21958
+ var Cr = yo((id, Co) => {
21959
+ Co.exports = { version: "0.12.40-alpha.0", license: "MIT", repository: { type: "git", url: "https://github.com/100mslive/web-sdks.git", directory: "packages/hms-video-store" }, main: "dist/index.cjs.js", module: "dist/index.js", typings: "dist/index.d.ts", files: ["dist", "src"], engines: { node: ">=12" }, exports: { ".": { require: "./dist/index.cjs.js", import: "./dist/index.js", default: "./dist/index.js" } }, sideEffects: false, scripts: { prestart: "rm -rf dist && yarn types:build", start: 'concurrently "yarn dev" "yarn types"', dev: "node ../../scripts/dev", "build:only": "node ../../scripts/build", build: "yarn build:only && yarn types:build", types: "tsc -w", "types:build": "tsc -p tsconfig.json", format: "prettier --write src/**/*.ts", test: "jest --maxWorkers=1", "test:watch": "jest --watch", "test:coverage": "jest --coverage", lint: "eslint -c ../../.eslintrc .", "lint:fix": "yarn lint --fix", prepare: "yarn build", size: "size-limit", analyze: "size-limit --why", docs: "rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'" }, name: "@100mslive/hms-video-store", author: "100ms", dependencies: { eventemitter2: "^6.4.9", immer: "^9.0.6", "lodash.isequal": "^4.5.0", reselect: "4.0.0", "sdp-transform": "^2.14.1", "ua-parser-js": "^2.0.6", uuid: "^8.3.2", "webrtc-adapter": "^8.0.0", zustand: "3.5.7" }, devDependencies: { "@types/dom-screen-wake-lock": "^1.0.1", "@types/lodash.isequal": "^4.5.8", "@types/sdp-transform": "^2.4.4", "@types/ua-parser-js": "^0.7.39", "@types/uuid": "^8.3.0", "jest-canvas-mock": "^2.3.1", "jsdom-worker": "^0.3.0", tslib: "^2.2.0" }, description: "@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow", keywords: ["video", "webrtc", "conferencing", "100ms"] };
21367
21960
  });
21368
- var kr = ((n) => (n.Disconnected = "Disconnected", n.Preview = "Preview", n.Connecting = "Connecting", n.Connected = "Connected", n.Reconnecting = "Reconnecting", n.Disconnecting = "Disconnecting", n.Failed = "Failed", n))(kr || {});
21369
- var fo = ((e) => (e.CHAT = "chat", e))(fo || {});
21370
- var Ts = ((t) => (t.INFO = "info", t.ERROR = "error", t))(Ts || {});
21371
- var Er = ((w) => (w.PEER_JOINED = "PEER_JOINED", w.PEER_LEFT = "PEER_LEFT", w.PEER_LIST = "PEER_LIST", w.NEW_MESSAGE = "NEW_MESSAGE", w.ERROR = "ERROR", w.RECONNECTING = "RECONNECTING", w.RECONNECTED = "RECONNECTED", w.TRACK_ADDED = "TRACK_ADDED", w.TRACK_REMOVED = "TRACK_REMOVED", w.TRACK_MUTED = "TRACK_MUTED", w.TRACK_UNMUTED = "TRACK_UNMUTED", w.TRACK_DEGRADED = "TRACK_DEGRADED", w.TRACK_RESTORED = "TRACK_RESTORED", w.TRACK_DESCRIPTION_CHANGED = "TRACK_DESCRIPTION_CHANGED", w.ROLE_UPDATED = "ROLE_UPDATED", w.CHANGE_TRACK_STATE_REQUEST = "CHANGE_TRACK_STATE_REQUEST", w.CHANGE_MULTI_TRACK_STATE_REQUEST = "CHANGE_MULTI_TRACK_STATE_REQUEST", w.ROOM_ENDED = "ROOM_ENDED", w.REMOVED_FROM_ROOM = "REMOVED_FROM_ROOM", w.DEVICE_CHANGE_UPDATE = "DEVICE_CHANGE_UPDATE", w.PLAYLIST_TRACK_ENDED = "PLAYLIST_TRACK_ENDED", w.NAME_UPDATED = "NAME_UPDATED", w.METADATA_UPDATED = "METADATA_UPDATED", w.POLL_CREATED = "POLL_CREATED", w.POLL_STARTED = "POLL_STARTED", w.POLL_STOPPED = "POLL_STOPPED", w.POLL_VOTES_UPDATED = "POLL_VOTES_UPDATED", w.POLLS_LIST = "POLLS_LIST", w.HAND_RAISE_CHANGED = "HAND_RAISE_CHANGED", w.TRANSCRIPTION_STATE_UPDATED = "TRANSCRIPTION_STATE_UPDATED", w))(Er || {});
21372
- var fs = ((t) => (t.audio = "audio", t.video = "video", t))(fs || {});
21373
- function Fe(a2, e) {
21961
+ var Pr = ((n) => (n.Disconnected = "Disconnected", n.Preview = "Preview", n.Connecting = "Connecting", n.Connected = "Connected", n.Reconnecting = "Reconnecting", n.Disconnecting = "Disconnecting", n.Failed = "Failed", n))(Pr || {});
21962
+ var ko = ((e) => (e.CHAT = "chat", e))(ko || {});
21963
+ var ys = ((t) => (t.INFO = "info", t.ERROR = "error", t))(ys || {});
21964
+ var br = ((w) => (w.PEER_JOINED = "PEER_JOINED", w.PEER_LEFT = "PEER_LEFT", w.PEER_LIST = "PEER_LIST", w.NEW_MESSAGE = "NEW_MESSAGE", w.ERROR = "ERROR", w.RECONNECTING = "RECONNECTING", w.RECONNECTED = "RECONNECTED", w.TRACK_ADDED = "TRACK_ADDED", w.TRACK_REMOVED = "TRACK_REMOVED", w.TRACK_MUTED = "TRACK_MUTED", w.TRACK_UNMUTED = "TRACK_UNMUTED", w.TRACK_DEGRADED = "TRACK_DEGRADED", w.TRACK_RESTORED = "TRACK_RESTORED", w.TRACK_DESCRIPTION_CHANGED = "TRACK_DESCRIPTION_CHANGED", w.ROLE_UPDATED = "ROLE_UPDATED", w.CHANGE_TRACK_STATE_REQUEST = "CHANGE_TRACK_STATE_REQUEST", w.CHANGE_MULTI_TRACK_STATE_REQUEST = "CHANGE_MULTI_TRACK_STATE_REQUEST", w.ROOM_ENDED = "ROOM_ENDED", w.REMOVED_FROM_ROOM = "REMOVED_FROM_ROOM", w.DEVICE_CHANGE_UPDATE = "DEVICE_CHANGE_UPDATE", w.PLAYLIST_TRACK_ENDED = "PLAYLIST_TRACK_ENDED", w.NAME_UPDATED = "NAME_UPDATED", w.METADATA_UPDATED = "METADATA_UPDATED", w.POLL_CREATED = "POLL_CREATED", w.POLL_STARTED = "POLL_STARTED", w.POLL_STOPPED = "POLL_STOPPED", w.POLL_VOTES_UPDATED = "POLL_VOTES_UPDATED", w.POLLS_LIST = "POLLS_LIST", w.HAND_RAISE_CHANGED = "HAND_RAISE_CHANGED", w.TRANSCRIPTION_STATE_UPDATED = "TRANSCRIPTION_STATE_UPDATED", w))(br || {});
21965
+ var ks = ((t) => (t.audio = "audio", t.video = "video", t))(ks || {});
21966
+ function Ge(a2, e) {
21374
21967
  let t, i;
21375
21968
  if (e)
21376
21969
  for (let r of e.auxiliaryTracks) {
21377
21970
  let s = a2[r];
21378
- vo(s) && (i = gt(s) ? s : i, t = Tt(s) ? s : t);
21971
+ Eo(s) && (i = Tt(s) ? s : i, t = ft(s) ? s : t);
21379
21972
  }
21380
21973
  return { video: t, audio: i };
21381
21974
  }
21382
- function gt(a2) {
21975
+ function Tt(a2) {
21383
21976
  return a2 && a2.type === "audio";
21384
21977
  }
21385
- function Tt(a2) {
21978
+ function ft(a2) {
21386
21979
  return a2 && a2.type === "video";
21387
21980
  }
21388
- function vo(a2) {
21981
+ function Eo(a2) {
21389
21982
  return a2 && a2.source === "screen";
21390
21983
  }
21391
- function ci(a2) {
21984
+ function li(a2) {
21392
21985
  return a2 && a2.source === "audioplaylist";
21393
21986
  }
21394
- function ft(a2) {
21987
+ function vt(a2) {
21395
21988
  return a2 && a2.source === "videoplaylist";
21396
21989
  }
21397
- function vs(a2) {
21990
+ function Es(a2) {
21398
21991
  return a2 ? !!(a2 != null && a2.degraded) : false;
21399
21992
  }
21400
- function ze(a2, e) {
21993
+ function Ye(a2, e) {
21401
21994
  return e && a2.tracks[e] ? a2.tracks[e].enabled : false;
21402
21995
  }
21403
- function vt(a2) {
21996
+ function Mt(a2) {
21404
21997
  var r;
21405
21998
  let e = false, t = false, i = false;
21406
21999
  return (r = a2 == null ? void 0 : a2.publishParams) != null && r.allowed && (e = a2.publishParams.allowed.includes("video"), t = a2.publishParams.allowed.includes("audio"), i = a2.publishParams.allowed.includes("screen")), { video: e, audio: t, screen: i };
21407
22000
  }
21408
- var ys = ((d) => (d[d.VERBOSE = 0] = "VERBOSE", d[d.DEBUG = 1] = "DEBUG", d[d.INFO = 2] = "INFO", d[d.WARN = 3] = "WARN", d[d.TIME = 4] = "TIME", d[d.TIMEEND = 5] = "TIMEEND", d[d.ERROR = 6] = "ERROR", d[d.NONE = 7] = "NONE", d))(ys || {});
21409
- var Mo = typeof window != "undefined" && typeof window.expect != "undefined";
22001
+ var bs = ((d) => (d[d.VERBOSE = 0] = "VERBOSE", d[d.DEBUG = 1] = "DEBUG", d[d.INFO = 2] = "INFO", d[d.WARN = 3] = "WARN", d[d.TIME = 4] = "TIME", d[d.TIMEEND = 5] = "TIMEEND", d[d.ERROR = 6] = "ERROR", d[d.NONE = 7] = "NONE", d))(bs || {});
22002
+ var Po = typeof window != "undefined" && typeof window.expect != "undefined";
21410
22003
  var l = class {
21411
22004
  static v(e, ...t) {
21412
22005
  this.log(0, e, ...t);
@@ -21472,31 +22065,46 @@ var l = class {
21472
22065
  }
21473
22066
  }
21474
22067
  };
21475
- l.level = Mo ? 7 : 0;
21476
- var he = new import_ua_parser_js.UAParser();
21477
- var U = typeof window != "undefined";
21478
- var ks;
21479
- var Ge = typeof window == "undefined" && !((ks = he.getBrowser().name) != null && ks.toLowerCase().includes("electron"));
21480
- var ko = () => !Ge;
21481
- var Mc = ko();
21482
- var Es;
21483
- var Ps;
21484
- var Ls = (Ps = (Es = he.getBrowser()) == null ? void 0 : Es.name) == null ? void 0 : Ps.toLowerCase().includes("safari");
21485
- var bs;
22068
+ l.level = Po ? 7 : 0;
22069
+ var Ar = new UAParser();
22070
+ var yt = null;
22071
+ var Ir = null;
22072
+ var x = typeof window != "undefined";
22073
+ if (x)
22074
+ try {
22075
+ let a2 = Ar.getResult(), e = a2.withClientHints();
22076
+ e && typeof e.then == "function" ? (Ir = e, Ir.then((t) => {
22077
+ yt = t;
22078
+ }).catch(() => {
22079
+ yt = a2;
22080
+ })) : (l.d("UAParser", "Client Hints not supported, using standard UA parsing"), yt = e);
22081
+ } catch (a2) {
22082
+ yt = Ar.getResult();
22083
+ }
22084
+ var De = () => yt || Ar.getResult();
22085
+ var he = { getBrowser: () => De().browser, getOS: () => De().os, getDevice: () => De().device, getCPU: () => De().cpu, getEngine: () => De().engine, getUA: () => De().ua, getResult: De, withClientHints: () => Ir || Promise.resolve(De()) };
21486
22086
  var As;
21487
- var Ds = ((As = (bs = he.getBrowser()) == null ? void 0 : bs.name) == null ? void 0 : As.toLowerCase()) === "firefox";
22087
+ var We = typeof window == "undefined" && !((As = he.getBrowser().name) != null && As.toLowerCase().includes("electron"));
22088
+ var Ao = () => !We;
22089
+ var bc = Ao();
21488
22090
  var Is;
21489
22091
  var Rs;
21490
- var ws = ((Rs = (Is = he.getEngine()) == null ? void 0 : Is.name) == null ? void 0 : Rs.toLowerCase()) === "blink";
21491
- var _s = ((i) => (i.CUSTOM = "CUSTOM", i.LOCAL = "LOCAL", i.HMS = "HMS", i))(_s || {});
21492
- function Eo() {
21493
- if (U && window) {
22092
+ var Ns = (Rs = (Is = he.getBrowser()) == null ? void 0 : Is.name) == null ? void 0 : Rs.toLowerCase().includes("safari");
22093
+ var Hs;
22094
+ var Cs;
22095
+ var Os = ((Cs = (Hs = he.getBrowser()) == null ? void 0 : Hs.name) == null ? void 0 : Cs.toLowerCase()) === "firefox";
22096
+ var Ls;
22097
+ var Ds;
22098
+ var xs = ((Ds = (Ls = he.getEngine()) == null ? void 0 : Ls.name) == null ? void 0 : Ds.toLowerCase()) === "blink";
22099
+ var Us = ((i) => (i.CUSTOM = "CUSTOM", i.LOCAL = "LOCAL", i.HMS = "HMS", i))(Us || {});
22100
+ function Io() {
22101
+ if (x && window) {
21494
22102
  let a2 = window.location.hostname;
21495
22103
  return a2 === "localhost" || a2 === "127.0.0.1" ? "LOCAL" : a2.includes("app.100ms.live") ? "HMS" : "CUSTOM";
21496
22104
  }
21497
22105
  return "CUSTOM";
21498
22106
  }
21499
- var Xe = Eo();
22107
+ var Ze = Io();
21500
22108
  var k = { WebSocketConnectionErrors: { FAILED_TO_CONNECT: 1e3, WEBSOCKET_CONNECTION_LOST: 1003, ABNORMAL_CLOSE: 1006 }, APIErrors: { SERVER_ERRORS: 2e3, INIT_CONFIG_NOT_AVAILABLE: 2002, ENDPOINT_UNREACHABLE: 2003, INVALID_TOKEN_FORMAT: 2004 }, TracksErrors: { GENERIC_TRACK: 3e3, CANT_ACCESS_CAPTURE_DEVICE: 3001, DEVICE_NOT_AVAILABLE: 3002, DEVICE_IN_USE: 3003, DEVICE_LOST_MIDWAY: 3004, NOTHING_TO_RETURN: 3005, INVALID_VIDEO_SETTINGS: 3006, CODEC_CHANGE_NOT_PERMITTED: 3007, AUTOPLAY_ERROR: 3008, OVER_CONSTRAINED: 3009, NO_AUDIO_DETECTED: 3010, SYSTEM_DENIED_PERMISSION: 3011, CURRENT_TAB_NOT_SHARED: 3012, AUDIO_PLAYBACK_ERROR: 3013, SELECTED_DEVICE_MISSING: 3014, NO_DATA: 3015 }, WebrtcErrors: { CREATE_OFFER_FAILED: 4001, CREATE_ANSWER_FAILED: 4002, SET_LOCAL_DESCRIPTION_FAILED: 4003, SET_REMOTE_DESCRIPTION_FAILED: 4004, ICE_FAILURE: 4005, ICE_DISCONNECTED: 4006, STATS_FAILED: 4007 }, WebsocketMethodErrors: { SERVER_ERRORS: 5e3, ALREADY_JOINED: 5001, CANNOT_JOIN_PREVIEW_IN_PROGRESS: 5002 }, GenericErrors: { NOT_CONNECTED: 6e3, SIGNALLING: 6001, UNKNOWN: 6002, NOT_READY: 6003, JSON_PARSING_FAILED: 6004, TRACK_METADATA_MISSING: 6005, RTC_TRACK_MISSING: 6006, PEER_METADATA_MISSING: 6007, INVALID_ROLE: 6008, PREVIEW_IN_PROGRESS: 6009, MISSING_MEDIADEVICES: 6010, MISSING_RTCPEERCONNECTION: 6011, LOCAL_STORAGE_ACCESS_DENIED: 6012, VALIDATION_FAILED: 6013 }, PlaylistErrors: { NO_ENTRY_TO_PLAY: 8001, NO_ENTRY_IS_PLAYING: 8002 } };
21501
22109
  var E = class a extends Error {
21502
22110
  constructor(t, i, r, s, o, n = false) {
@@ -21553,8 +22161,8 @@ var W = class extends E {
21553
22161
  }`;
21554
22162
  }
21555
22163
  };
21556
- var Ns = ((r) => (r.AUDIO = "audio", r.VIDEO = "video", r.AUDIO_VIDEO = "audio, video", r.SCREEN = "screen", r))(Ns || {});
21557
- var Po = ["join", "offer", "answer", "trickle", "on-error", "JOIN"];
22164
+ var Bs = ((r) => (r.AUDIO = "audio", r.VIDEO = "video", r.AUDIO_VIDEO = "audio, video", r.SCREEN = "screen", r))(Bs || {});
22165
+ var Ro = ["join", "offer", "answer", "trickle", "on-error", "JOIN"];
21558
22166
  var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21559
22167
  return new E(k.WebSocketConnectionErrors.FAILED_TO_CONNECT, "WebsocketFailedToConnect", a2, `[WS]: ${e}`, `[WS]: ${e}`);
21560
22168
  }, WebSocketConnectionLost(a2, e = "") {
@@ -21616,7 +22224,7 @@ var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21616
22224
  }, StatsFailed(a2, e = "") {
21617
22225
  return new E(k.WebrtcErrors.STATS_FAILED, "StatsFailed", a2, `Failed to WebRTC get stats - ${e}`, e);
21618
22226
  } }, WebsocketMethodErrors: { ServerErrors(a2, e, t) {
21619
- return new E(a2, "ServerErrors", e, t, t, Po.includes(e));
22227
+ return new E(a2, "ServerErrors", e, t, t, Ro.includes(e));
21620
22228
  }, AlreadyJoined(a2, e = "") {
21621
22229
  return new E(k.WebsocketMethodErrors.ALREADY_JOINED, "AlreadyJoined", a2, "[JOIN]: You have already joined this room.", e);
21622
22230
  }, CannotJoinPreviewInProgress(a2, e = "") {
@@ -21664,7 +22272,7 @@ var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21664
22272
  }, NoEntryPlaying(a2, e) {
21665
22273
  return new E(k.PlaylistErrors.NO_ENTRY_IS_PLAYING, "NoEntryIsPlaying", a2, "No entry is playing at this time", e);
21666
22274
  } } };
21667
- var br = class {
22275
+ var Hr = class {
21668
22276
  constructor() {
21669
22277
  this.valuesMap = /* @__PURE__ */ new Map();
21670
22278
  }
@@ -21689,9 +22297,9 @@ var br = class {
21689
22297
  return this.valuesMap.size;
21690
22298
  }
21691
22299
  };
21692
- var Os = () => {
22300
+ var Vs = () => {
21693
22301
  try {
21694
- U && !localStorage && (window.localStorage = new br());
22302
+ x && !localStorage && (window.localStorage = new Hr());
21695
22303
  } catch (a2) {
21696
22304
  l.e("Error initialising localStorage", S.GenericErrors.LocalStorageAccessDenied());
21697
22305
  }
@@ -21703,7 +22311,7 @@ var ve = class {
21703
22311
  }
21704
22312
  getStorage() {
21705
22313
  try {
21706
- return U && !this.storage && (Os(), this.storage = window.localStorage), this.storage;
22314
+ return x && !this.storage && (Vs(), this.storage = window.localStorage), this.storage;
21707
22315
  } catch (e) {
21708
22316
  return l.e("Error initialising localStorage", S.GenericErrors.LocalStorageAccessDenied()), null;
21709
22317
  }
@@ -21723,32 +22331,32 @@ var ve = class {
21723
22331
  (e = this.getStorage()) == null || e.removeItem(this.key);
21724
22332
  }
21725
22333
  };
21726
- var di = () => {
22334
+ var ui = () => {
21727
22335
  let a2, e = new ve("hms-analytics-deviceId"), t = e.get();
21728
22336
  return t ? a2 = t : (a2 = (0, import_uuid4.v4)(), e.set(a2)), a2;
21729
22337
  };
21730
22338
  function me(a2) {
21731
22339
  return a2 != null;
21732
22340
  }
21733
- var Bs = Ar().version;
21734
- function Et(a2 = "prod", e) {
21735
- let t = "web", i = Xe !== "LOCAL" && a2 === "prod" ? "prod" : "debug";
21736
- if (Ge)
21737
- return Vs({ os: "web_nodejs", os_version: process.version, sdk: t, sdk_version: Bs, env: i, domain: Xe, is_prebuilt: !!(e != null && e.isPrebuilt), framework: "node", framework_version: process.version, framework_sdk_version: e == null ? void 0 : e.sdkVersion });
21738
- let r = he.getOS(), s = he.getDevice(), o = he.getBrowser(), n = Ir(`web_${r.name}`), d = r.version || "", u = Ir(`${o.name}_${o.version}`), p = u;
21739
- return s.type && (p = `${Ir(`${s.vendor}_${s.type}`)}/${u}`), Vs({ os: n, os_version: d, sdk: t, sdk_version: Bs, device_model: p, env: i, domain: Xe, is_prebuilt: !!(e != null && e.isPrebuilt), framework: e == null ? void 0 : e.type, framework_version: e == null ? void 0 : e.version, framework_sdk_version: e == null ? void 0 : e.sdkVersion });
22341
+ var Ws = Cr().version;
22342
+ function bt(a2 = "prod", e) {
22343
+ let t = "web", i = Ze !== "LOCAL" && a2 === "prod" ? "prod" : "debug";
22344
+ if (We)
22345
+ return $s({ os: "web_nodejs", os_version: process.version, sdk: t, sdk_version: Ws, env: i, domain: Ze, is_prebuilt: !!(e != null && e.isPrebuilt), framework: "node", framework_version: process.version, framework_sdk_version: e == null ? void 0 : e.sdkVersion });
22346
+ let r = he.getOS(), s = he.getDevice(), o = he.getBrowser(), n = Lr(`web_${r.name}`), d = r.version || "", u = Lr(`${o.name}_${o.version}`), p = u;
22347
+ return s.type && (p = `${Lr(`${s.vendor}_${s.type}`)}/${u}`), $s({ os: n, os_version: d, sdk: t, sdk_version: Ws, device_model: p, env: i, domain: Ze, is_prebuilt: !!(e != null && e.isPrebuilt), framework: e == null ? void 0 : e.type, framework_version: e == null ? void 0 : e.version, framework_sdk_version: e == null ? void 0 : e.sdkVersion });
21740
22348
  }
21741
- function Ir(a2) {
22349
+ function Lr(a2) {
21742
22350
  return a2.replace(/ /g, "_");
21743
22351
  }
21744
- var Vs = (a2, e = ",") => Object.keys(a2).filter((t) => me(a2[t])).map((t) => `${t}:${a2[t]}`).join(e);
22352
+ var $s = (a2, e = ",") => Object.keys(a2).filter((t) => me(a2[t])).map((t) => `${t}:${a2[t]}`).join(e);
21745
22353
  var C = class {
21746
22354
  constructor({ name: e, level: t, properties: i, includesPII: r, timestamp: s }) {
21747
- this.metadata = { peer: {}, userAgent: Et() };
21748
- this.name = e, this.level = t, this.includesPII = r || false, this.properties = i || {}, this.timestamp = s || (/* @__PURE__ */ new Date()).getTime(), this.event_id = (0, import_uuid3.v4)(), this.device_id = di();
22355
+ this.metadata = { peer: {}, userAgent: bt() };
22356
+ this.name = e, this.level = t, this.includesPII = r || false, this.properties = i || {}, this.timestamp = s || (/* @__PURE__ */ new Date()).getTime(), this.event_id = (0, import_uuid3.v4)(), this.device_id = ui();
21749
22357
  }
21750
22358
  toSignalParams() {
21751
- return { name: this.name, info: M(m({}, this.properties), { timestamp: this.timestamp, domain: Xe }), timestamp: (/* @__PURE__ */ new Date()).getTime() };
22359
+ return { name: this.name, info: M(m({}, this.properties), { timestamp: this.timestamp, domain: Ze }), timestamp: (/* @__PURE__ */ new Date()).getTime() };
21752
22360
  }
21753
22361
  };
21754
22362
  var y = class {
@@ -21761,12 +22369,12 @@ var y = class {
21761
22369
  return new C({ name: i, level: r, properties: s });
21762
22370
  }
21763
22371
  static preview(i) {
21764
- var r = i, { error: e } = r, t = yr(r, ["error"]);
22372
+ var r = i, { error: e } = r, t = Er(r, ["error"]);
21765
22373
  let s = this.eventNameFor("preview", e === void 0), o = e ? 2 : 1, n = this.getPropertiesWithError(t, e);
21766
22374
  return new C({ name: s, level: o, properties: n });
21767
22375
  }
21768
22376
  static join(i) {
21769
- var r = i, { error: e } = r, t = yr(r, ["error"]);
22377
+ var r = i, { error: e } = r, t = Er(r, ["error"]);
21770
22378
  let s = this.eventNameFor("join", e === void 0), o = e ? 2 : 1, n = this.getPropertiesWithError(M(m({}, t), { is_preview_called: !!t.is_preview_called }), e);
21771
22379
  return new C({ name: s, level: o, properties: n });
21772
22380
  }
@@ -21857,7 +22465,7 @@ var y = class {
21857
22465
  }
21858
22466
  };
21859
22467
  y.KEY_REQUESTED_AT = "requested_at", y.KEY_RESPONDED_AT = "responded_at";
21860
- var Rr = class {
22468
+ var Dr = class {
21861
22469
  constructor() {
21862
22470
  this.storage = new ve("hms-device-selection");
21863
22471
  this.remember = false;
@@ -21905,19 +22513,19 @@ var Rr = class {
21905
22513
  return e.deviceId === t.deviceId && (e.groupId === t.groupId || !e.groupId);
21906
22514
  }
21907
22515
  };
21908
- var X = new Rr();
21909
- var Hr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Hr || {});
21910
- var Cr = ((t) => (t.PLATFORM_NOT_SUPPORTED = "PLATFORM_NOT_SUPPORTED", t.DEVICE_NOT_SUPPORTED = "DEVICE_NOT_SUPPORTED", t))(Cr || {});
21911
- var Lr = ((t) => (t.SIP = "sip", t.REGULAR = "regular", t))(Lr || {});
21912
- var Gs = ((n) => (n.NONE = "none", n.INITIALISED = "initialised", n.STARTED = "started", n.PAUSED = "paused", n.RESUMED = "resumed", n.STOPPED = "stopped", n.FAILED = "failed", n))(Gs || {});
21913
- var Ws = ((t) => (t.DVR = "dvr", t.NO_DVR = "no-dvr", t))(Ws || {});
21914
- var $s = ((i) => (i.REGULAR = "regular", i.SCREEN = "screen", i.COMPOSITE = "composite", i))($s || {});
21915
- var Ks = ((r) => (r.INITIALISED = "initialised", r.STARTED = "started", r.STOPPED = "stopped", r.FAILED = "failed", r))(Ks || {});
21916
- var qs = ((e) => (e.CAPTION = "caption", e))(qs || {});
21917
- var Dr = ((t) => (t.VOICE = "voice", t.MUSIC = "music", t))(Dr || {});
21918
- var js = ((i) => (i.videoInput = "videoInput", i.audioInput = "audioInput", i.audioOutput = "audioOutput", i))(js || {});
21919
- var wr = ((r) => (r.SPEAKERPHONE = "SPEAKERPHONE", r.WIRED = "WIRED", r.BLUETOOTH = "BLUETOOTH", r.EARPIECE = "EARPIECE", r))(wr || {});
21920
- function Si(a2, e = 300) {
22516
+ var X = new Dr();
22517
+ var wr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(wr || {});
22518
+ var _r = ((t) => (t.PLATFORM_NOT_SUPPORTED = "PLATFORM_NOT_SUPPORTED", t.DEVICE_NOT_SUPPORTED = "DEVICE_NOT_SUPPORTED", t))(_r || {});
22519
+ var Nr = ((t) => (t.SIP = "sip", t.REGULAR = "regular", t))(Nr || {});
22520
+ var qs = ((n) => (n.NONE = "none", n.INITIALISED = "initialised", n.STARTED = "started", n.PAUSED = "paused", n.RESUMED = "resumed", n.STOPPED = "stopped", n.FAILED = "failed", n))(qs || {});
22521
+ var js = ((t) => (t.DVR = "dvr", t.NO_DVR = "no-dvr", t))(js || {});
22522
+ var Js = ((i) => (i.REGULAR = "regular", i.SCREEN = "screen", i.COMPOSITE = "composite", i))(Js || {});
22523
+ var Qs = ((r) => (r.INITIALISED = "initialised", r.STARTED = "started", r.STOPPED = "stopped", r.FAILED = "failed", r))(Qs || {});
22524
+ var zs = ((e) => (e.CAPTION = "caption", e))(zs || {});
22525
+ var Or = ((t) => (t.VOICE = "voice", t.MUSIC = "music", t))(Or || {});
22526
+ var Ys = ((i) => (i.videoInput = "videoInput", i.audioInput = "audioInput", i.audioOutput = "audioOutput", i))(Ys || {});
22527
+ var xr = ((r) => (r.SPEAKERPHONE = "SPEAKERPHONE", r.WIRED = "WIRED", r.BLUETOOTH = "BLUETOOTH", r.EARPIECE = "EARPIECE", r))(xr || {});
22528
+ function Ti(a2, e = 300) {
21921
22529
  let t;
21922
22530
  return function(...i) {
21923
22531
  clearTimeout(t), t = void 0;
@@ -21927,7 +22535,7 @@ function Si(a2, e = 300) {
21927
22535
  }, e);
21928
22536
  };
21929
22537
  }
21930
- var Br = class {
22538
+ var Wr = class {
21931
22539
  constructor() {
21932
22540
  this.TAG = "[HMSIntersectionObserverWrapper]";
21933
22541
  this.listeners = /* @__PURE__ */ new WeakMap();
@@ -21950,12 +22558,12 @@ var Br = class {
21950
22558
  this.createObserver();
21951
22559
  }
21952
22560
  isSupported() {
21953
- let e = U && typeof window.IntersectionObserver != "undefined";
22561
+ let e = x && typeof window.IntersectionObserver != "undefined";
21954
22562
  return e || l.w(this.TAG, "IntersectionObserver is not supported, fallback will be used instead"), e;
21955
22563
  }
21956
22564
  };
21957
- var Zs = new Br();
21958
- var Vr = class {
22565
+ var ra = new Wr();
22566
+ var $r = class {
21959
22567
  constructor() {
21960
22568
  this.TAG = "[HMSResizeObserverWrapper]";
21961
22569
  this.listeners = /* @__PURE__ */ new WeakMap();
@@ -21968,7 +22576,7 @@ var Vr = class {
21968
22576
  (t = this.resizeObserver) == null || t.unobserve(e), this.listeners.delete(e);
21969
22577
  };
21970
22578
  this.createObserver = () => {
21971
- this.isSupported() && !this.resizeObserver && (this.resizeObserver = new ResizeObserver(Si(this.handleResize, 300)));
22579
+ this.isSupported() && !this.resizeObserver && (this.resizeObserver = new ResizeObserver(Ti(this.handleResize, 300)));
21972
22580
  };
21973
22581
  this.handleResize = (e) => {
21974
22582
  var t;
@@ -21978,47 +22586,47 @@ var Vr = class {
21978
22586
  this.createObserver();
21979
22587
  }
21980
22588
  isSupported() {
21981
- let e = U && typeof window.ResizeObserver != "undefined";
22589
+ let e = x && typeof window.ResizeObserver != "undefined";
21982
22590
  return e || l.w(this.TAG, "Resize Observer is not supported"), e;
21983
22591
  }
21984
22592
  };
21985
- var ea = new Vr();
21986
- var Fr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Fr || {});
21987
- var Gr = ((t) => (t["2D"] = "2d", t.WEBGL = "webgl", t.WEBGL2 = "webgl2", t))(Gr || {});
21988
- var ra = "https://event.100ms.live/v2/client/report";
21989
- var sa = "https://event-nonprod.100ms.live/v2/client/report";
21990
- var Rt = Math.pow(2, 31) - 1;
21991
- var ot = class {
22593
+ var sa = new $r();
22594
+ var Kr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Kr || {});
22595
+ var qr = ((t) => (t["2D"] = "2d", t.WEBGL = "webgl", t.WEBGL2 = "webgl2", t))(qr || {});
22596
+ var na = "https://event.100ms.live/v2/client/report";
22597
+ var ca = "https://event-nonprod.100ms.live/v2/client/report";
22598
+ var Ct = Math.pow(2, 31) - 1;
22599
+ var nt = class {
21992
22600
  };
21993
- ot.makePeerId = () => (0, import_uuid7.v4)();
22601
+ nt.makePeerId = () => (0, import_uuid7.v4)();
21994
22602
  var F = (a2) => a2.room;
21995
- var Ko = (a2) => a2.errors;
21996
- var Em = createSelector(Ko, (a2) => a2.length === 0 ? null : a2.at(-1));
21997
- var Pm = createSelector(F, (a2) => a2.id);
22603
+ var Qo = (a2) => a2.errors;
22604
+ var Rm = createSelector(Qo, (a2) => a2.length === 0 ? null : a2.at(-1));
22605
+ var Hm = createSelector(F, (a2) => a2.id);
21998
22606
  var z = (a2) => a2.peers;
21999
- var bi = (a2) => a2.messages.byID;
22000
- var ha = (a2) => a2.messages.allIDs;
22607
+ var Ii = (a2) => a2.messages.byID;
22608
+ var Ta = (a2) => a2.messages.allIDs;
22001
22609
  var N = (a2) => a2.tracks;
22002
- var Qr = (a2) => a2.appData;
22003
- var qo = (a2) => a2.speakers;
22004
- var Be = createSelector([F], (a2) => a2 && a2.isConnected);
22005
- var Im = createSelector([Be, F], (a2, e) => a2 ? e.peerCount !== void 0 ? e.peerCount || 1 : e.peers.length : Math.max(e.peerCount !== void 0 ? e.peerCount : e.peers.length - 1, 0));
22006
- var jo = (a2) => a2.hideLocalPeer;
22007
- var Ee = createSelector([F, z, jo], (a2, e, t) => t ? a2.peers.filter((i) => a2.localPeer !== i).map((i) => e[i]) : a2.peers.map((i) => e[i]));
22008
- var Jo = createSelector(N, (a2) => Object.values(a2));
22009
- var se = createSelector(F, z, (a2, e) => e[a2.localPeer]);
22610
+ var Zr = (a2) => a2.appData;
22611
+ var zo = (a2) => a2.speakers;
22612
+ var Ve = createSelector([F], (a2) => a2 && a2.isConnected);
22613
+ var Dm = createSelector([Ve, F], (a2, e) => a2 ? e.peerCount !== void 0 ? e.peerCount || 1 : e.peers.length : Math.max(e.peerCount !== void 0 ? e.peerCount : e.peers.length - 1, 0));
22614
+ var Yo = (a2) => a2.hideLocalPeer;
22615
+ var Ee = createSelector([F, z, Yo], (a2, e, t) => t ? a2.peers.filter((i) => a2.localPeer !== i).map((i) => e[i]) : a2.peers.map((i) => e[i]));
22616
+ var Xo = createSelector(N, (a2) => Object.values(a2));
22617
+ var re = createSelector(F, z, (a2, e) => e[a2.localPeer]);
22010
22618
  var Ie = createSelector(F, (a2) => a2.localPeer);
22011
- var Rm = createSelector(se, (a2) => a2 == null ? void 0 : a2.name);
22012
- var Hm = createSelector(se, (a2) => a2 == null ? void 0 : a2.roleName);
22013
- var le = createSelector(se, (a2) => a2 == null ? void 0 : a2.audioTrack);
22014
- var Z = createSelector(se, (a2) => a2 == null ? void 0 : a2.videoTrack);
22015
- var Qo = createSelector(se, (a2) => a2 == null ? void 0 : a2.auxiliaryTracks);
22016
- var Sa = createSelector([le, Z, Qo], (a2, e, t) => {
22619
+ var wm = createSelector(re, (a2) => a2 == null ? void 0 : a2.name);
22620
+ var _m = createSelector(re, (a2) => a2 == null ? void 0 : a2.roleName);
22621
+ var le = createSelector(re, (a2) => a2 == null ? void 0 : a2.audioTrack);
22622
+ var Z = createSelector(re, (a2) => a2 == null ? void 0 : a2.videoTrack);
22623
+ var Zo = createSelector(re, (a2) => a2 == null ? void 0 : a2.auxiliaryTracks);
22624
+ var va = createSelector([le, Z, Zo], (a2, e, t) => {
22017
22625
  let i = t ? [...t] : [];
22018
22626
  return a2 && i.unshift(a2), e && i.unshift(e), i;
22019
22627
  });
22020
- var Cm = createSelector(Ee, (a2) => a2.filter((e) => !e.isLocal));
22021
- var Lm = createSelector(z, qo, (a2, e) => {
22628
+ var Nm = createSelector(Ee, (a2) => a2.filter((e) => !e.isLocal));
22629
+ var Om = createSelector(z, zo, (a2, e) => {
22022
22630
  let t = Object.entries(e).sort((i, r) => {
22023
22631
  var n, d;
22024
22632
  let s = ((n = i[1]) == null ? void 0 : n.audioLevel) || 0;
@@ -22031,112 +22639,112 @@ var Lm = createSelector(z, qo, (a2, e) => {
22031
22639
  }
22032
22640
  return null;
22033
22641
  });
22034
- var Yr = createSelector(se, N, (a2, e) => {
22035
- let { video: t, audio: i } = Fe(e, a2);
22642
+ var ts = createSelector(re, N, (a2, e) => {
22643
+ let { video: t, audio: i } = Ge(e, a2);
22036
22644
  return !!(t || i);
22037
22645
  });
22038
- var zo = createSelector(z, N, (a2, e) => {
22646
+ var en = createSelector(z, N, (a2, e) => {
22039
22647
  let t;
22040
22648
  for (let i in a2) {
22041
- let r = a2[i], { video: s, audio: o } = Fe(e, r);
22649
+ let r = a2[i], { video: s, audio: o } = Ge(e, r);
22042
22650
  if (s)
22043
22651
  return r;
22044
22652
  o && !t && (t = r);
22045
22653
  }
22046
22654
  return t;
22047
22655
  });
22048
- var wm = createSelector(zo, (a2) => !!a2);
22049
- var _m = createSelector(z, N, (a2, e) => {
22656
+ var Um = createSelector(en, (a2) => !!a2);
22657
+ var Bm = createSelector(z, N, (a2, e) => {
22050
22658
  for (let t in a2) {
22051
- let i = a2[t], { audio: r, video: s } = Fe(e, i);
22659
+ let i = a2[t], { audio: r, video: s } = Ge(e, i);
22052
22660
  if (!s && r)
22053
22661
  return i;
22054
22662
  }
22055
22663
  });
22056
- var Nm = createSelector(z, N, (a2, e) => {
22664
+ var Vm = createSelector(z, N, (a2, e) => {
22057
22665
  let t = [], i = [];
22058
22666
  for (let r in a2) {
22059
- let s = a2[r], { video: o, audio: n } = Fe(e, s);
22667
+ let s = a2[r], { video: o, audio: n } = Ge(e, s);
22060
22668
  o ? t.push(s) : n && i.push(s);
22061
22669
  }
22062
22670
  return t.concat(i);
22063
22671
  });
22064
- var Om = createSelector(z, N, (a2, e) => {
22672
+ var Fm = createSelector(z, N, (a2, e) => {
22065
22673
  for (let t in e) {
22066
22674
  let i = e[t];
22067
- if (ft(i) && Tt(i) && i.peerId)
22675
+ if (vt(i) && ft(i) && i.peerId)
22068
22676
  return a2[i.peerId];
22069
22677
  }
22070
22678
  });
22071
- var xm = createSelector(z, N, (a2, e) => {
22679
+ var Gm = createSelector(z, N, (a2, e) => {
22072
22680
  for (let t in e) {
22073
22681
  let i = e[t];
22074
- if (ci(i) && i.peerId)
22682
+ if (li(i) && i.peerId)
22075
22683
  return a2[i.peerId];
22076
22684
  }
22077
22685
  });
22078
- var Um = createSelector(Jo, (a2) => a2.filter(vs));
22079
- var Bm = createSelector(ha, (a2) => a2.length);
22080
- var Vm = createSelector(bi, (a2) => Object.values(a2).filter((e) => !e.read).length);
22081
- var Dt = createSelector(ha, bi, (a2, e) => {
22686
+ var Wm = createSelector(Xo, (a2) => a2.filter(Es));
22687
+ var $m = createSelector(Ta, (a2) => a2.length);
22688
+ var Km = createSelector(Ii, (a2) => Object.values(a2).filter((e) => !e.read).length);
22689
+ var _t = createSelector(Ta, Ii, (a2, e) => {
22082
22690
  let t = [];
22083
22691
  return a2.forEach((i) => {
22084
22692
  t.push(e[i]);
22085
22693
  }), t;
22086
22694
  });
22087
- var Yo = createSelector(Dt, (a2) => a2.filter((e) => {
22695
+ var tn = createSelector(_t, (a2) => a2.filter((e) => {
22088
22696
  var t;
22089
22697
  return !e.recipientPeer && !(e.recipientRoles && ((t = e.recipientRoles) == null ? void 0 : t.length) > 0);
22090
22698
  }));
22091
- var Fm = createSelector(Yo, (a2) => a2.filter((e) => !e.read).length);
22092
- var ae = createSelector([F], (a2) => a2 && a2.roomState);
22093
- var Ta = createSelector(ae, (a2) => a2 === "Preview");
22094
- var Gm = createSelector(F, (a2) => a2.roomState !== "Disconnected");
22095
- var Wm = createSelector(F, (a2) => !a2.transcriptions || a2.transcriptions.length <= 0 ? false : a2.transcriptions.some((e) => e.mode === "caption" && e.state === "started"));
22699
+ var qm = createSelector(tn, (a2) => a2.filter((e) => !e.read).length);
22700
+ var se = createSelector([F], (a2) => a2 && a2.roomState);
22701
+ var ya = createSelector(se, (a2) => a2 === "Preview");
22702
+ var jm = createSelector(F, (a2) => a2.roomState !== "Disconnected");
22703
+ var Jm = createSelector(F, (a2) => !a2.transcriptions || a2.transcriptions.length <= 0 ? false : a2.transcriptions.some((e) => e.mode === "caption" && e.state === "started"));
22096
22704
  var Pe = (a2) => a2.roles;
22097
- var $m = createSelector([Pe], (a2) => Object.keys(a2));
22098
- var ct = createSelector([se, Pe], (a2, e) => a2 != null && a2.roleName ? e[a2.roleName] : null);
22099
- var Xo = (a2) => {
22705
+ var Qm = createSelector([Pe], (a2) => Object.keys(a2));
22706
+ var dt = createSelector([re, Pe], (a2, e) => a2 != null && a2.roleName ? e[a2.roleName] : null);
22707
+ var rn = (a2) => {
22100
22708
  var e;
22101
22709
  return (e = a2.preview) == null ? void 0 : e.asRole;
22102
22710
  };
22103
- var fa = createSelector([Xo, Pe], (a2, e) => a2 ? e[a2] : null);
22104
- var Km = createSelector([ct], (a2) => {
22711
+ var ka = createSelector([rn, Pe], (a2, e) => a2 ? e[a2] : null);
22712
+ var zm = createSelector([dt], (a2) => {
22105
22713
  var e;
22106
22714
  return (e = a2 == null ? void 0 : a2.subscribeParams) != null && e.subscribeToRoles ? a2.subscribeParams.subscribeToRoles.length > 0 : false;
22107
22715
  });
22108
- var va = createSelector(ct, (a2) => a2 == null ? void 0 : a2.permissions);
22109
- var qm = createSelector(F, (a2) => a2.recording);
22110
- var jm = createSelector(F, (a2) => a2.rtmp);
22111
- var Jm = createSelector(F, (a2) => a2.hls);
22112
- var Qm = createSelector(F, (a2) => a2.transcriptions);
22113
- var zm = createSelector(F, (a2) => a2.sessionId);
22114
- var Ym = createSelector(F, (a2) => a2.startedAt);
22115
- var Xm = createSelector(F, (a2) => !!a2.isLargeRoom);
22116
- var Zm = createSelector(F, (a2) => !!a2.isEffectsEnabled);
22117
- var eS = createSelector(F, (a2) => !!a2.isVBEnabled);
22118
- var tS = createSelector(F, (a2) => a2.effectsKey);
22119
- var Ma = (a2) => a2.polls;
22120
- var aS = createSelector(Ee, (a2) => a2.filter((e) => e.isHandRaised));
22121
- var Zo = (a2) => a2.whiteboards;
22122
- var oS = createSelector(Zo, (a2) => Object.values(a2)[0]);
22123
- var ka = (a2 = "audio") => (e) => e.playlist[a2].list;
22124
- var Xr = (a2 = "audio") => (e) => e.playlist[a2].selection;
22125
- var Ea = (a2 = "audio") => (e) => e.playlist[a2].progress;
22126
- var Pa = (a2 = "audio") => (e) => e.playlist[a2].currentTime;
22127
- var ba = (a2 = "audio") => (e) => e.playlist[a2].playbackRate;
22128
- var Aa = (a2 = "audio") => (e) => e.playlist[a2].volume;
22129
- var Ia = (a2 = "audio") => createSelector(ka(a2), (e) => Object.values(e));
22130
- var Ra = (a2 = "audio") => createSelector(ka(a2), Xr(a2), (e, t) => {
22716
+ var Ea = createSelector(dt, (a2) => a2 == null ? void 0 : a2.permissions);
22717
+ var Ym = createSelector(F, (a2) => a2.recording);
22718
+ var Xm = createSelector(F, (a2) => a2.rtmp);
22719
+ var Zm = createSelector(F, (a2) => a2.hls);
22720
+ var eS = createSelector(F, (a2) => a2.transcriptions);
22721
+ var tS = createSelector(F, (a2) => a2.sessionId);
22722
+ var iS = createSelector(F, (a2) => a2.startedAt);
22723
+ var rS = createSelector(F, (a2) => !!a2.isLargeRoom);
22724
+ var sS = createSelector(F, (a2) => !!a2.isEffectsEnabled);
22725
+ var aS = createSelector(F, (a2) => !!a2.isVBEnabled);
22726
+ var oS = createSelector(F, (a2) => a2.effectsKey);
22727
+ var Pa = (a2) => a2.polls;
22728
+ var lS = createSelector(Ee, (a2) => a2.filter((e) => e.isHandRaised));
22729
+ var sn = (a2) => a2.whiteboards;
22730
+ var uS = createSelector(sn, (a2) => Object.values(a2)[0]);
22731
+ var Aa = (a2 = "audio") => (e) => e.playlist[a2].list;
22732
+ var is = (a2 = "audio") => (e) => e.playlist[a2].selection;
22733
+ var Ia = (a2 = "audio") => (e) => e.playlist[a2].progress;
22734
+ var Ra = (a2 = "audio") => (e) => e.playlist[a2].currentTime;
22735
+ var Ha = (a2 = "audio") => (e) => e.playlist[a2].playbackRate;
22736
+ var Ca = (a2 = "audio") => (e) => e.playlist[a2].volume;
22737
+ var La = (a2 = "audio") => createSelector(Aa(a2), (e) => Object.values(e));
22738
+ var Da = (a2 = "audio") => createSelector(Aa(a2), is(a2), (e, t) => {
22131
22739
  if (t.id)
22132
22740
  return e[t.id];
22133
22741
  });
22134
- var Ha = { selection: Xr("audio"), progress: Ea("audio"), currentTime: Pa("audio"), playbackRate: ba("audio"), volume: Aa("audio"), list: Ia("audio"), selectedItem: Ra("audio") };
22135
- var Ca = { selection: Xr("video"), progress: Ea("video"), currentTime: Pa("video"), playbackRate: ba("video"), volume: Aa("video"), list: Ia("video"), selectedItem: Ra("video") };
22742
+ var wa = { selection: is("audio"), progress: Ia("audio"), currentTime: Ra("audio"), playbackRate: Ha("audio"), volume: Ca("audio"), list: La("audio"), selectedItem: Da("audio") };
22743
+ var _a7 = { selection: is("video"), progress: Ia("video"), currentTime: Ra("video"), playbackRate: Ha("video"), volume: Ca("video"), list: La("video"), selectedItem: Da("video") };
22136
22744
  function H(a2) {
22137
22745
  return (e) => (t) => a2(t, e);
22138
22746
  }
22139
- var wt = "HMS-Store:";
22747
+ var Nt = "HMS-Store:";
22140
22748
  var b = class {
22141
22749
  static v(e, ...t) {
22142
22750
  this.log(0, e, ...t);
@@ -22166,23 +22774,23 @@ var b = class {
22166
22774
  if (!(this.level.valueOf() > e.valueOf()))
22167
22775
  switch (e) {
22168
22776
  case 0: {
22169
- console.log(wt, ...t);
22777
+ console.log(Nt, ...t);
22170
22778
  break;
22171
22779
  }
22172
22780
  case 1: {
22173
- console.debug(wt, ...t);
22781
+ console.debug(Nt, ...t);
22174
22782
  break;
22175
22783
  }
22176
22784
  case 2: {
22177
- console.info(wt, ...t);
22785
+ console.info(Nt, ...t);
22178
22786
  break;
22179
22787
  }
22180
22788
  case 3: {
22181
- console.warn(wt, ...t);
22789
+ console.warn(Nt, ...t);
22182
22790
  break;
22183
22791
  }
22184
22792
  case 6: {
22185
- console.error(wt, ...t);
22793
+ console.error(Nt, ...t);
22186
22794
  break;
22187
22795
  }
22188
22796
  case 4: {
@@ -22203,133 +22811,133 @@ var b = class {
22203
22811
  }
22204
22812
  };
22205
22813
  b.level = 0;
22206
- var Zr = (a2, e) => e;
22207
- var _t = (a2, e) => e;
22208
- var La = (a2, e) => e;
22209
- var en = (a2, e) => e;
22210
- var tn = (a2, e) => e;
22211
- var Y = createSelector([z, Zr], (a2, e) => e ? a2[e] : null);
22212
- var es = createSelector([N, _t], (a2, e) => e ? a2[e] : null);
22213
- var rn = createSelector([N, _t], (a2, e) => {
22814
+ var rs = (a2, e) => e;
22815
+ var Ot = (a2, e) => e;
22816
+ var Na = (a2, e) => e;
22817
+ var an = (a2, e) => e;
22818
+ var on = (a2, e) => e;
22819
+ var Y = createSelector([z, rs], (a2, e) => e ? a2[e] : null);
22820
+ var ss = createSelector([N, Ot], (a2, e) => e ? a2[e] : null);
22821
+ var nn = createSelector([N, Ot], (a2, e) => {
22214
22822
  if (!e)
22215
22823
  return null;
22216
22824
  let t = a2[e];
22217
22825
  return (t == null ? void 0 : t.type) === "video" ? t : null;
22218
22826
  });
22219
- var sn = createSelector([N, _t], (a2, e) => {
22827
+ var cn = createSelector([N, Ot], (a2, e) => {
22220
22828
  if (!e)
22221
22829
  return null;
22222
22830
  let t = a2[e];
22223
22831
  return (t == null ? void 0 : t.type) === "audio" ? t : null;
22224
22832
  });
22225
- var an = createSelector([N, _t], (a2, e) => {
22833
+ var dn = createSelector([N, Ot], (a2, e) => {
22226
22834
  if (!e)
22227
22835
  return null;
22228
22836
  let t = a2[e];
22229
22837
  return (t == null ? void 0 : t.type) === "audio" && (t == null ? void 0 : t.source) === "screen" ? t : null;
22230
22838
  });
22231
- var on = createSelector([N, _t], (a2, e) => {
22839
+ var ln = createSelector([N, Ot], (a2, e) => {
22232
22840
  if (!e)
22233
22841
  return null;
22234
22842
  let t = a2[e];
22235
22843
  return (t == null ? void 0 : t.type) === "video" && (t == null ? void 0 : t.source) === "screen" ? t : null;
22236
22844
  });
22237
- var nn = createSelector([Ma, tn], (a2, e) => e ? a2[e] : null);
22845
+ var un = createSelector([Pa, on], (a2, e) => e ? a2[e] : null);
22238
22846
  var ee = H(Y);
22239
- var TS = H(createSelector([Qr, en], (a2, e) => {
22847
+ var kS = H(createSelector([Zr, an], (a2, e) => {
22240
22848
  if (a2)
22241
22849
  return e ? a2[e] : a2;
22242
22850
  }));
22243
- function fS(a2) {
22851
+ function ES(a2) {
22244
22852
  return (e) => {
22245
22853
  if (e.sessionStore)
22246
22854
  return a2 ? e.sessionStore[a2] : e.sessionStore;
22247
22855
  };
22248
22856
  }
22249
- var MS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.name));
22250
- var yS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.type));
22251
- var Ai = H(es);
22252
- var Da = H(rn);
22253
- var kS = H(sn);
22254
- var ES = H(an);
22255
- var PS = H(on);
22256
- var cn = H((a2, e) => {
22857
+ var bS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.name));
22858
+ var AS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.type));
22859
+ var Ri = H(ss);
22860
+ var Oa = H(nn);
22861
+ var IS = H(cn);
22862
+ var RS = H(dn);
22863
+ var HS = H(ln);
22864
+ var pn = H((a2, e) => {
22257
22865
  let t = Y(a2, e);
22258
22866
  if (t && t.videoTrack && t.videoTrack !== "")
22259
22867
  return a2.tracks[t.videoTrack];
22260
22868
  });
22261
- var dn = H((a2, e) => {
22869
+ var hn = H((a2, e) => {
22262
22870
  let t = Y(a2, e);
22263
22871
  if (t && t.audioTrack && t.audioTrack !== "")
22264
22872
  return a2.tracks[t.audioTrack];
22265
22873
  });
22266
- var AS = H((a2, e) => {
22874
+ var LS = H((a2, e) => {
22267
22875
  let t = Y(a2, e);
22268
22876
  return (t == null ? void 0 : t.auxiliaryTracks.map((i) => a2.tracks[i])) || [];
22269
22877
  });
22270
- var wa = (a2, e) => e ? a2.speakers[e] : null;
22271
- var IS = H(createSelector(wa, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22272
- var ln = (a2, e) => {
22273
- let t = dn(e)(a2);
22274
- return wa(a2, t == null ? void 0 : t.id);
22275
- };
22276
- var RS = H(createSelector(ln, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22277
- var HS = H((a2, e) => {
22878
+ var xa = (a2, e) => e ? a2.speakers[e] : null;
22879
+ var DS = H(createSelector(xa, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22880
+ var mn = (a2, e) => {
22881
+ let t = hn(e)(a2);
22882
+ return xa(a2, t == null ? void 0 : t.id);
22883
+ };
22884
+ var wS = H(createSelector(mn, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22885
+ var _S = H((a2, e) => {
22278
22886
  if (e)
22279
22887
  return a2.connectionQualities[e];
22280
22888
  });
22281
- var CS = H((a2, e) => {
22889
+ var NS = H((a2, e) => {
22282
22890
  let t = Y(a2, e);
22283
22891
  if (t) {
22284
- let i = t == null ? void 0 : t.auxiliaryTracks.find((r) => gt(a2.tracks[r]));
22892
+ let i = t == null ? void 0 : t.auxiliaryTracks.find((r) => Tt(a2.tracks[r]));
22285
22893
  return i ? a2.tracks[i] : void 0;
22286
22894
  }
22287
22895
  });
22288
- var LS = H(createSelector(N, Y, (a2, e) => {
22896
+ var OS2 = H(createSelector(N, Y, (a2, e) => {
22289
22897
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22290
22898
  let r = a2[i];
22291
- return ft(r) && Tt(r);
22899
+ return vt(r) && ft(r);
22292
22900
  });
22293
22901
  return t ? a2[t] : void 0;
22294
22902
  }));
22295
- var DS = H(createSelector(N, Y, (a2, e) => {
22903
+ var xS = H(createSelector(N, Y, (a2, e) => {
22296
22904
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22297
22905
  let r = a2[i];
22298
- return ft(r) && gt(r);
22906
+ return vt(r) && Tt(r);
22299
22907
  });
22300
22908
  return t ? a2[t] : void 0;
22301
22909
  }));
22302
- var wS = H(createSelector(N, Y, (a2, e) => {
22910
+ var US = H(createSelector(N, Y, (a2, e) => {
22303
22911
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22304
22912
  let r = a2[i];
22305
- return ci(r) && gt(r);
22913
+ return li(r) && Tt(r);
22306
22914
  });
22307
22915
  return t ? a2[t] : void 0;
22308
22916
  }));
22309
- var _a7 = H(createSelector(N, Y, (a2, e) => Fe(a2, e)));
22310
- var Na = (a2) => createSelector(_a7(a2), (e) => e.audio);
22311
- var NS = H((a2, e) => {
22917
+ var Ua = H(createSelector(N, Y, (a2, e) => Ge(a2, e)));
22918
+ var Ba = (a2) => createSelector(Ua(a2), (e) => e.audio);
22919
+ var VS = H((a2, e) => {
22312
22920
  let t = Y(a2, e);
22313
- return ze(a2, t == null ? void 0 : t.audioTrack);
22921
+ return Ye(a2, t == null ? void 0 : t.audioTrack);
22314
22922
  });
22315
- var OS = H((a2, e) => {
22923
+ var FS = H((a2, e) => {
22316
22924
  let t = Y(a2, e);
22317
- return ze(a2, t == null ? void 0 : t.videoTrack);
22925
+ return Ye(a2, t == null ? void 0 : t.videoTrack);
22318
22926
  });
22319
- var Oa = H((a2, e) => {
22927
+ var Va = H((a2, e) => {
22320
22928
  if (e && a2.tracks[e])
22321
22929
  return a2.tracks[e].volume === 0;
22322
22930
  });
22323
- var xS = H((a2, e) => {
22931
+ var GS = H((a2, e) => {
22324
22932
  let t = Y(a2, e);
22325
- return Oa(t == null ? void 0 : t.audioTrack)(a2);
22933
+ return Va(t == null ? void 0 : t.audioTrack)(a2);
22326
22934
  });
22327
- var US = H((a2, e) => {
22328
- let t = Na(e)(a2);
22329
- return Oa(t == null ? void 0 : t.id)(a2);
22935
+ var WS = H((a2, e) => {
22936
+ let t = Ba(e)(a2);
22937
+ return Va(t == null ? void 0 : t.id)(a2);
22330
22938
  });
22331
- var xa = H((a2, e) => {
22332
- let t = es(a2, e);
22939
+ var Fa = H((a2, e) => {
22940
+ let t = ss(a2, e);
22333
22941
  if (t) {
22334
22942
  if (t.type !== "audio") {
22335
22943
  b.w("Please pass audio track here");
@@ -22338,16 +22946,16 @@ var xa = H((a2, e) => {
22338
22946
  return t.volume;
22339
22947
  }
22340
22948
  });
22341
- var BS = H((a2, e) => {
22949
+ var $S = H((a2, e) => {
22342
22950
  let t = Y(a2, e);
22343
- return xa(t == null ? void 0 : t.audioTrack)(a2);
22951
+ return Fa(t == null ? void 0 : t.audioTrack)(a2);
22344
22952
  });
22345
- var VS = H((a2, e) => {
22346
- let t = Na(e)(a2);
22347
- return xa(t == null ? void 0 : t.id)(a2);
22953
+ var KS = H((a2, e) => {
22954
+ let t = Ba(e)(a2);
22955
+ return Fa(t == null ? void 0 : t.id)(a2);
22348
22956
  });
22349
- var FS = H((a2, e) => {
22350
- let t = es(a2, e);
22957
+ var qS = H((a2, e) => {
22958
+ let t = ss(a2, e);
22351
22959
  if (t) {
22352
22960
  if (t.type !== "video") {
22353
22961
  b.w("Please pass video track here");
@@ -22356,50 +22964,50 @@ var FS = H((a2, e) => {
22356
22964
  return t.layer;
22357
22965
  }
22358
22966
  });
22359
- var Ua = createSelector([Dt, Ie, Zr], (a2, e, t) => {
22967
+ var Ga = createSelector([_t, Ie, rs], (a2, e, t) => {
22360
22968
  if (t)
22361
22969
  return a2.filter((i) => {
22362
22970
  var r;
22363
22971
  return !i.recipientPeer && !((r = i.recipientRoles) != null && r.length) || i.sender && ![e, t].includes(i.sender) ? false : [e, t].includes(i.recipientPeer);
22364
22972
  });
22365
22973
  });
22366
- var Ba = createSelector([Dt, La], (a2, e) => {
22974
+ var Wa = createSelector([_t, Na], (a2, e) => {
22367
22975
  if (e)
22368
22976
  return a2.filter((t) => {
22369
22977
  var i, r;
22370
22978
  return (i = t.recipientRoles) != null && i.length ? (r = t.recipientRoles) == null ? void 0 : r.includes(e) : false;
22371
22979
  });
22372
22980
  });
22373
- var un = createSelector(Dt, (a2) => a2.filter((e) => {
22981
+ var Sn = createSelector(_t, (a2) => a2.filter((e) => {
22374
22982
  var t;
22375
22983
  return !e.recipientPeer && !((t = e.recipientRoles) != null && t.length);
22376
22984
  }));
22377
- var pn = createSelector([Ba, La], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22378
- var hn = createSelector([Ua, Zr], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22379
- var GS = createSelector(un, (a2) => a2.filter((e) => !e.read).length);
22380
- var WS = H(Ua);
22381
- var $S = H(Ba);
22382
- var KS = H(pn);
22383
- var qS = H(hn);
22384
- var Va = H(nn);
22385
- var sg = createSelector([z, N], (a2, e) => Object.values(a2).map((i) => {
22985
+ var gn = createSelector([Wa, Na], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22986
+ var Tn = createSelector([Ga, rs], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22987
+ var jS = createSelector(Sn, (a2) => a2.filter((e) => !e.read).length);
22988
+ var JS = H(Ga);
22989
+ var QS = H(Wa);
22990
+ var zS = H(gn);
22991
+ var YS = H(Tn);
22992
+ var $a = H(un);
22993
+ var dg = createSelector([z, N], (a2, e) => Object.values(a2).map((i) => {
22386
22994
  var r;
22387
22995
  return { peer: i, isAudioEnabled: i.audioTrack ? (r = e[i.audioTrack]) == null ? void 0 : r.enabled : false };
22388
22996
  }));
22389
- var mn = (a2) => a2.roleChangeRequests[0] || null;
22390
- var ag = createSelector([mn, z, Pe], (a2, e, t) => a2 ? { requestedBy: a2.requestedBy ? e[a2.requestedBy] : void 0, role: t[a2.roleName], token: a2.token } : null);
22391
- var og = createSelector([ct], (a2) => vt(a2));
22392
- var ng = createSelector([fa], (a2) => vt(a2));
22393
- var gn = createSelector([Z, N], (a2, e) => {
22997
+ var fn = (a2) => a2.roleChangeRequests[0] || null;
22998
+ var lg = createSelector([fn, z, Pe], (a2, e, t) => a2 ? { requestedBy: a2.requestedBy ? e[a2.requestedBy] : void 0, role: t[a2.roleName], token: a2.token } : null);
22999
+ var ug = createSelector([dt], (a2) => Mt(a2));
23000
+ var pg = createSelector([ka], (a2) => Mt(a2));
23001
+ var Mn = createSelector([Z, N], (a2, e) => {
22394
23002
  let t = null;
22395
23003
  return a2 && (t = e[a2]), (t == null ? void 0 : t.plugins) || [];
22396
23004
  });
22397
- var Tn = createSelector([le, N], (a2, e) => {
23005
+ var yn = createSelector([le, N], (a2, e) => {
22398
23006
  let t = null;
22399
23007
  return a2 && (t = e[a2]), (t == null ? void 0 : t.plugins) || [];
22400
23008
  });
22401
- var Mn = ((n) => (n[n.STARTING = 0] = "STARTING", n[n.INIT_FETCHED = 1] = "INIT_FETCHED", n[n.SIGNAL_CONNECTED = 2] = "SIGNAL_CONNECTED", n[n.ICE_ESTABLISHED = 3] = "ICE_ESTABLISHED", n[n.MEDIA_CAPTURED = 4] = "MEDIA_CAPTURED", n[n.MEDIA_PUBLISHED = 5] = "MEDIA_PUBLISHED", n[n.COMPLETED = 6] = "COMPLETED", n))(Mn || {});
22402
- var as = class {
23009
+ var Pn = ((n) => (n[n.STARTING = 0] = "STARTING", n[n.INIT_FETCHED = 1] = "INIT_FETCHED", n[n.SIGNAL_CONNECTED = 2] = "SIGNAL_CONNECTED", n[n.ICE_ESTABLISHED = 3] = "ICE_ESTABLISHED", n[n.MEDIA_CAPTURED = 4] = "MEDIA_CAPTURED", n[n.MEDIA_PUBLISHED = 5] = "MEDIA_PUBLISHED", n[n.COMPLETED = 6] = "COMPLETED", n))(Pn || {});
23010
+ var ds = class {
22403
23011
  constructor() {
22404
23012
  this.TAG = "[HTTPAnalyticsTransport]";
22405
23013
  this.failedEvents = new ve("client-events");
@@ -22418,7 +23026,7 @@ var as = class {
22418
23026
  this.addEventToStorage(e);
22419
23027
  return;
22420
23028
  }
22421
- let t = { event: e.name, payload: e.properties, event_id: String(e.timestamp), peer: e.metadata.peer, timestamp: e.timestamp, device_id: e.device_id, cluster: { websocket_url: this.websocketURL } }, i = this.env === "prod" ? ra : sa;
23029
+ let t = { event: e.name, payload: e.properties, event_id: String(e.timestamp), peer: e.metadata.peer, timestamp: e.timestamp, device_id: e.device_id, cluster: { websocket_url: this.websocketURL } }, i = this.env === "prod" ? na : ca;
22422
23030
  fetch(i, { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${e.metadata.token}`, user_agent_v2: e.metadata.userAgent }, body: JSON.stringify(t) }).then((r) => {
22423
23031
  if (r.status === 401) {
22424
23032
  this.removeFromStorage(e);
@@ -22444,8 +23052,8 @@ var as = class {
22444
23052
  i > -1 && (t.splice(i, 1), this.failedEvents.set(t));
22445
23053
  }
22446
23054
  };
22447
- var He = new as();
22448
- var $t = class {
23055
+ var He = new ds();
23056
+ var qt = class {
22449
23057
  static handleError(e) {
22450
23058
  if (e.status === 404)
22451
23059
  throw S.APIErrors.EndpointUnreachable("FEEDBACK", e.statusText);
@@ -22471,67 +23079,67 @@ var $t = class {
22471
23079
  });
22472
23080
  }
22473
23081
  };
22474
- $t.TAG = "[FeedbackService]";
22475
- var os = ((f) => (f.FLAG_SERVER_SUB_DEGRADATION = "subscribeDegradation", f.FLAG_SERVER_SIMULCAST = "simulcast", f.FLAG_NON_WEBRTC_DISABLE_OFFER = "nonWebRTCDisableOffer", f.FLAG_PUBLISH_STATS = "publishStats", f.FLAG_SUBSCRIBE_STATS = "subscribeStats", f.FLAG_ON_DEMAND_TRACKS = "onDemandTracks", f.FLAG_DISABLE_VIDEO_TRACK_AUTO_UNSUBSCRIBE = "disableVideoTrackAutoUnsubscribe", f.FLAG_WHITEBOARD_ENABLED = "whiteboardEnabled", f.FLAG_EFFECTS_SDK_ENABLED = "effectsSDKEnabled", f.FLAG_VB_ENABLED = "vb", f.FLAG_HIPAA_ENABLED = "hipaa", f.FLAG_NOISE_CANCELLATION = "noiseCancellation", f.FLAG_SCALE_SCREENSHARE_BASED_ON_PIXELS = "scaleScreenshareBasedOnPixels", f.FLAG_DISABLE_NONE_LAYER_REQUEST = "disableNoneLayerRequest", f))(os || {});
23082
+ qt.TAG = "[FeedbackService]";
23083
+ var ls = ((f) => (f.FLAG_SERVER_SUB_DEGRADATION = "subscribeDegradation", f.FLAG_SERVER_SIMULCAST = "simulcast", f.FLAG_NON_WEBRTC_DISABLE_OFFER = "nonWebRTCDisableOffer", f.FLAG_PUBLISH_STATS = "publishStats", f.FLAG_SUBSCRIBE_STATS = "subscribeStats", f.FLAG_ON_DEMAND_TRACKS = "onDemandTracks", f.FLAG_DISABLE_VIDEO_TRACK_AUTO_UNSUBSCRIBE = "disableVideoTrackAutoUnsubscribe", f.FLAG_WHITEBOARD_ENABLED = "whiteboardEnabled", f.FLAG_EFFECTS_SDK_ENABLED = "effectsSDKEnabled", f.FLAG_VB_ENABLED = "vb", f.FLAG_HIPAA_ENABLED = "hipaa", f.FLAG_NOISE_CANCELLATION = "noiseCancellation", f.FLAG_SCALE_SCREENSHARE_BASED_ON_PIXELS = "scaleScreenshareBasedOnPixels", f.FLAG_DISABLE_NONE_LAYER_REQUEST = "disableNoneLayerRequest", f))(ls || {});
22476
23084
  var j = ((s) => (s[s.ConnectFailed = 0] = "ConnectFailed", s[s.SignalDisconnect = 1] = "SignalDisconnect", s[s.JoinWSMessageFailed = 2] = "JoinWSMessageFailed", s[s.PublishIceConnectionFailed = 3] = "PublishIceConnectionFailed", s[s.SubscribeIceConnectionFailed = 4] = "SubscribeIceConnectionFailed", s))(j || {});
22477
- var dr = ((n) => (n.Disconnected = "Disconnected", n.Connecting = "Connecting", n.Joined = "Joined", n.Preview = "Preview", n.Failed = "Failed", n.Reconnecting = "Reconnecting", n.Leaving = "Leaving", n))(dr || {});
22478
- var ht = ((t) => (t[t.Publish = 0] = "Publish", t[t.Subscribe = 1] = "Subscribe", t))(ht || {});
22479
- var Fn = (a2) => a2.localPeer.id;
22480
- var Gn = (a2) => a2.localPeer.audioTrack;
22481
- var Wn = (a2) => a2.localPeer.videoTrack;
22482
- var $n = (a2, e) => e;
22483
- var lo = (a2, e) => e;
22484
- var Kn = (a2) => a2.remoteTrackStats;
22485
- var uo = (a2) => a2.peerStats;
22486
- var ls = (a2) => a2.localTrackStats;
22487
- var Le = createSelector([uo, Fn], (a2, e) => a2[e]);
22488
- var qn = createSelector(Le, (a2) => {
23085
+ var ur = ((n) => (n.Disconnected = "Disconnected", n.Connecting = "Connecting", n.Joined = "Joined", n.Preview = "Preview", n.Failed = "Failed", n.Reconnecting = "Reconnecting", n.Leaving = "Leaving", n))(ur || {});
23086
+ var mt = ((t) => (t[t.Publish = 0] = "Publish", t[t.Subscribe = 1] = "Subscribe", t))(mt || {});
23087
+ var Kn = (a2) => a2.localPeer.id;
23088
+ var qn = (a2) => a2.localPeer.audioTrack;
23089
+ var jn = (a2) => a2.localPeer.videoTrack;
23090
+ var Jn = (a2, e) => e;
23091
+ var mo = (a2, e) => e;
23092
+ var Qn = (a2) => a2.remoteTrackStats;
23093
+ var So = (a2) => a2.peerStats;
23094
+ var ms = (a2) => a2.localTrackStats;
23095
+ var Le = createSelector([So, Kn], (a2, e) => a2[e]);
23096
+ var zn = createSelector(Le, (a2) => {
22489
23097
  var e;
22490
23098
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.packetsLost;
22491
23099
  });
22492
- var jn = createSelector(Le, (a2) => {
23100
+ var Yn = createSelector(Le, (a2) => {
22493
23101
  var e;
22494
23102
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.jitter;
22495
23103
  });
22496
- var Jn = createSelector(Le, (a2) => {
23104
+ var Xn = createSelector(Le, (a2) => {
22497
23105
  var e;
22498
23106
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.bitrate;
22499
23107
  });
22500
- var Qn = createSelector(Le, (a2) => {
23108
+ var Zn = createSelector(Le, (a2) => {
22501
23109
  var e;
22502
23110
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.bitrate;
22503
23111
  });
22504
- var zn = createSelector(Le, (a2) => {
23112
+ var ec = createSelector(Le, (a2) => {
22505
23113
  var e;
22506
23114
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.availableOutgoingBitrate;
22507
23115
  });
22508
- var Yn = createSelector(Le, (a2) => {
23116
+ var tc = createSelector(Le, (a2) => {
22509
23117
  var e;
22510
23118
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.availableIncomingBitrate;
22511
23119
  });
22512
- var Xn = createSelector(Le, (a2) => {
23120
+ var ic = createSelector(Le, (a2) => {
22513
23121
  var e;
22514
23122
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.bytesSent;
22515
23123
  });
22516
- var Zn = createSelector(Le, (a2) => {
23124
+ var rc = createSelector(Le, (a2) => {
22517
23125
  var e;
22518
23126
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.bytesReceived;
22519
23127
  });
22520
- var ec = createSelector([uo, $n], (a2, e) => e ? a2[e] : void 0);
22521
- var tc = createSelector([Kn, lo], (a2, e) => e ? a2[e] : void 0);
22522
- var us = createSelector([ls, lo], (a2, e) => e ? a2[e] : void 0);
22523
- var ic = H(ec);
22524
- var rc = H(tc);
22525
- var sc = createSelector([ls, Gn], (a2, e) => {
23128
+ var sc = createSelector([So, Jn], (a2, e) => e ? a2[e] : void 0);
23129
+ var ac = createSelector([Qn, mo], (a2, e) => e ? a2[e] : void 0);
23130
+ var Ss = createSelector([ms, mo], (a2, e) => e ? a2[e] : void 0);
23131
+ var oc = H(sc);
23132
+ var nc = H(ac);
23133
+ var cc = createSelector([ms, qn], (a2, e) => {
22526
23134
  var t;
22527
23135
  return e ? (t = a2[e]) == null ? void 0 : t[0] : void 0;
22528
23136
  });
22529
- var ac = H(createSelector(us, (a2) => a2 == null ? void 0 : a2[0]));
22530
- var oc = createSelector([ls, Wn], (a2, e) => {
23137
+ var dc = H(createSelector(Ss, (a2) => a2 == null ? void 0 : a2[0]));
23138
+ var lc = createSelector([ms, jn], (a2, e) => {
22531
23139
  var t;
22532
23140
  return e ? (t = a2[e]) == null ? void 0 : t[0] : void 0;
22533
23141
  });
22534
- var nc = H(createSelector(us, (a2) => a2));
23142
+ var uc = H(createSelector(Ss, (a2) => a2));
22535
23143
 
22536
23144
  // src/Prebuilt/components/Header/StreamActions.tsx
22537
23145
  var import_react_sdk41 = require("@100mslive/react-sdk");
@@ -22640,7 +23248,7 @@ var RecordingStatus = () => {
22640
23248
  };
22641
23249
  var RecordingPauseStatus = () => {
22642
23250
  const recording = (0, import_react_sdk41.useHMSStore)(import_react_sdk41.selectRecordingState);
22643
- if (recording.hls && recording.hls.state === Gs.PAUSED) {
23251
+ if (recording.hls && recording.hls.state === qs.PAUSED) {
22644
23252
  return /* @__PURE__ */ import_react88.default.createElement(
22645
23253
  Tooltip,
22646
23254
  {
@@ -27401,7 +28009,7 @@ var Chat = () => {
27401
28009
  const listRef = (0, import_react153.useRef)(null);
27402
28010
  const hmsActions = (0, import_react_sdk74.useHMSActions)();
27403
28011
  const vanillaStore = (0, import_react_sdk74.useHMSVanillaStore)();
27404
- const { enabled: isChatEnabled = true } = (0, import_react_sdk74.useHMSStore)(fS("chatState" /* CHAT_STATE */)) || {};
28012
+ const { enabled: isChatEnabled = true } = (0, import_react_sdk74.useHMSStore)(ES("chatState" /* CHAT_STATE */)) || {};
27405
28013
  const isMobile = (0, import_react_use26.useMedia)(config.media.md);
27406
28014
  const isMobileHLSStream = useMobileHLSStream();
27407
28015
  const isLandscapeStream = useLandscapeHLSStream();
@@ -27491,7 +28099,7 @@ var NewMessageIndicator = ({
27491
28099
  scrollToBottom,
27492
28100
  listRef
27493
28101
  }) => {
27494
- const unreadCount = (0, import_react_sdk74.useHMSStore)(Vm);
28102
+ const unreadCount = (0, import_react_sdk74.useHMSStore)(Km);
27495
28103
  if (!unreadCount || !listRef.current) {
27496
28104
  return null;
27497
28105
  }
@@ -28448,7 +29056,7 @@ var VBPicker = ({ backgroundMedia = [] }) => {
28448
29056
  const toggleVB = useSidepaneToggle(SIDE_PANE_OPTIONS.VB);
28449
29057
  const hmsActions = (0, import_react_sdk82.useHMSActions)();
28450
29058
  const localPeer = (0, import_react_sdk82.useHMSStore)(import_react_sdk82.selectLocalPeer);
28451
- const role = (0, import_react_sdk82.useHMSStore)(ct);
29059
+ const role = (0, import_react_sdk82.useHMSStore)(dt);
28452
29060
  const isVideoOn = (0, import_react_sdk82.useHMSStore)(import_react_sdk82.selectIsLocalVideoEnabled);
28453
29061
  const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
28454
29062
  const trackSelector = (0, import_react_sdk82.selectVideoTrackByID)(localPeer == null ? void 0 : localPeer.videoTrack);
@@ -28457,12 +29065,12 @@ var VBPicker = ({ backgroundMedia = [] }) => {
28457
29065
  const roomState = (0, import_react_sdk82.useHMSStore)(import_react_sdk82.selectRoomState);
28458
29066
  const isLargeRoom = (0, import_react_sdk82.useHMSStore)(import_react_sdk82.selectIsLargeRoom);
28459
29067
  const isEffectsSupported = VBHandler.isEffectsSupported();
28460
- const isEffectsEnabled = (0, import_react_sdk82.useHMSStore)(Zm);
28461
- const effectsKey = (0, import_react_sdk82.useHMSStore)(tS);
29068
+ const isEffectsEnabled = (0, import_react_sdk82.useHMSStore)(sS);
29069
+ const effectsKey = (0, import_react_sdk82.useHMSStore)(oS);
28462
29070
  const isMobile = (0, import_react_use32.useMedia)(config.media.md);
28463
29071
  const [loadingEffects, setLoadingEffects] = useSetAppDataByKey(APP_DATA.loadingEffects);
28464
29072
  const isPluginAdded = (0, import_react_sdk82.useHMSStore)((0, import_react_sdk82.selectIsLocalVideoPluginPresent)(((_a8 = VBHandler) == null ? void 0 : _a8.getName()) || ""));
28465
- const background = (0, import_react_sdk82.useHMSStore)(TS(APP_DATA.background));
29073
+ const background = (0, import_react_sdk82.useHMSStore)(kS(APP_DATA.background));
28466
29074
  const mediaList = backgroundMedia.map((media) => media.url || "");
28467
29075
  const pluginLoadingRef = (0, import_react163.useRef)(false);
28468
29076
  const isBlurSupported = (_b7 = VBHandler) == null ? void 0 : _b7.isBlurSupported();
@@ -34205,8 +34813,8 @@ var import_react230 = require("react");
34205
34813
  var import_react_sdk118 = require("@100mslive/react-sdk");
34206
34814
  var MessageNotifications = () => {
34207
34815
  var _a8, _b7;
34208
- const notification = (0, import_react_sdk118.useHMSNotifications)(Er.NEW_MESSAGE);
34209
- const amIScreenSharing = (0, import_react_sdk118.useHMSStore)(Yr);
34816
+ const notification = (0, import_react_sdk118.useHMSNotifications)(br.NEW_MESSAGE);
34817
+ const amIScreenSharing = (0, import_react_sdk118.useHMSStore)(ts);
34210
34818
  const logoURL = (_b7 = (_a8 = useRoomLayout()) == null ? void 0 : _a8.logo) == null ? void 0 : _b7.url;
34211
34819
  const { pipWindow } = usePIPWindow();
34212
34820
  const { showNotification } = (0, import_react_sdk118.useAwayNotifications)();