@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.js CHANGED
@@ -98,7 +98,7 @@ var __async = (__this, __arguments, generator) => {
98
98
  reject(e);
99
99
  }
100
100
  };
101
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
101
+ var step = (x2) => x2.done ? resolve(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected);
102
102
  step((generator = generator.apply(__this, __arguments)).next());
103
103
  });
104
104
  };
@@ -107,7 +107,7 @@ var __async = (__this, __arguments, generator) => {
107
107
  var define_process_env_default;
108
108
  var init_define_process_env = __esm({
109
109
  "<define:process.env>"() {
110
- 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" };
110
+ 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" };
111
111
  }
112
112
  });
113
113
 
@@ -117,7 +117,7 @@ var require_lodash = __commonJS({
117
117
  init_define_process_env();
118
118
  (function() {
119
119
  var undefined2;
120
- var VERSION = "4.17.21";
120
+ var VERSION2 = "4.17.21";
121
121
  var LARGE_ARRAY_SIZE = 200;
122
122
  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`";
123
123
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
@@ -3772,7 +3772,7 @@ var require_lodash = __commonJS({
3772
3772
  if (fromIndex < 0) {
3773
3773
  fromIndex = nativeMax(length + fromIndex, 0);
3774
3774
  }
3775
- return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
3775
+ return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
3776
3776
  }
3777
3777
  var invokeMap = baseRest(function(collection, path, args) {
3778
3778
  var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : [];
@@ -3840,7 +3840,7 @@ var require_lodash = __commonJS({
3840
3840
  return 0;
3841
3841
  }
3842
3842
  if (isArrayLike(collection)) {
3843
- return isString(collection) ? stringSize(collection) : collection.length;
3843
+ return isString2(collection) ? stringSize(collection) : collection.length;
3844
3844
  }
3845
3845
  var tag = getTag(collection);
3846
3846
  if (tag == mapTag || tag == setTag) {
@@ -4149,7 +4149,7 @@ var require_lodash = __commonJS({
4149
4149
  function eq(value, other) {
4150
4150
  return value === other || value !== value && other !== other;
4151
4151
  }
4152
- var gt2 = createRelationalOperation(baseGt);
4152
+ var gt = createRelationalOperation(baseGt);
4153
4153
  var gte = createRelationalOperation(function(value, other) {
4154
4154
  return value >= other;
4155
4155
  });
@@ -4275,7 +4275,7 @@ var require_lodash = __commonJS({
4275
4275
  return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
4276
4276
  }
4277
4277
  var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
4278
- function isString(value) {
4278
+ function isString2(value) {
4279
4279
  return typeof value == "string" || !isArray2(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
4280
4280
  }
4281
4281
  function isSymbol(value) {
@@ -4300,7 +4300,7 @@ var require_lodash = __commonJS({
4300
4300
  return [];
4301
4301
  }
4302
4302
  if (isArrayLike(value)) {
4303
- return isString(value) ? stringToArray(value) : copyArray(value);
4303
+ return isString2(value) ? stringToArray(value) : copyArray(value);
4304
4304
  }
4305
4305
  if (symIterator && value[symIterator]) {
4306
4306
  return iteratorToArray(value[symIterator]());
@@ -4433,7 +4433,7 @@ var require_lodash = __commonJS({
4433
4433
  var result2 = object == null ? undefined2 : baseGet(object, path);
4434
4434
  return result2 === undefined2 ? defaultValue : result2;
4435
4435
  }
4436
- function has(object, path) {
4436
+ function has2(object, path) {
4437
4437
  return object != null && hasPath(object, path, baseHas);
4438
4438
  }
4439
4439
  function hasIn(object, path) {
@@ -4806,7 +4806,7 @@ var require_lodash = __commonJS({
4806
4806
  function toUpper(value) {
4807
4807
  return toString(value).toUpperCase();
4808
4808
  }
4809
- function trim(string, chars, guard) {
4809
+ function trim2(string, chars, guard) {
4810
4810
  string = toString(string);
4811
4811
  if (string && (guard || chars === undefined2)) {
4812
4812
  return baseTrim(string);
@@ -5288,9 +5288,9 @@ var require_lodash = __commonJS({
5288
5288
  lodash.forOwn = forOwn;
5289
5289
  lodash.forOwnRight = forOwnRight;
5290
5290
  lodash.get = get;
5291
- lodash.gt = gt2;
5291
+ lodash.gt = gt;
5292
5292
  lodash.gte = gte;
5293
- lodash.has = has;
5293
+ lodash.has = has2;
5294
5294
  lodash.hasIn = hasIn;
5295
5295
  lodash.head = head;
5296
5296
  lodash.identity = identity;
@@ -5329,7 +5329,7 @@ var require_lodash = __commonJS({
5329
5329
  lodash.isRegExp = isRegExp;
5330
5330
  lodash.isSafeInteger = isSafeInteger;
5331
5331
  lodash.isSet = isSet;
5332
- lodash.isString = isString;
5332
+ lodash.isString = isString2;
5333
5333
  lodash.isSymbol = isSymbol;
5334
5334
  lodash.isTypedArray = isTypedArray;
5335
5335
  lodash.isUndefined = isUndefined;
@@ -5396,7 +5396,7 @@ var require_lodash = __commonJS({
5396
5396
  lodash.toSafeInteger = toSafeInteger;
5397
5397
  lodash.toString = toString;
5398
5398
  lodash.toUpper = toUpper;
5399
- lodash.trim = trim;
5399
+ lodash.trim = trim2;
5400
5400
  lodash.trimEnd = trimEnd;
5401
5401
  lodash.trimStart = trimStart;
5402
5402
  lodash.truncate = truncate;
@@ -5416,7 +5416,7 @@ var require_lodash = __commonJS({
5416
5416
  });
5417
5417
  return source;
5418
5418
  }(), { "chain": false });
5419
- lodash.VERSION = VERSION;
5419
+ lodash.VERSION = VERSION2;
5420
5420
  arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
5421
5421
  lodash[methodName].placeholder = lodash;
5422
5422
  });
@@ -5592,1260 +5592,6 @@ var require_lodash = __commonJS({
5592
5592
  }
5593
5593
  });
5594
5594
 
5595
- // ../../node_modules/ua-parser-js/src/ua-parser.js
5596
- var require_ua_parser = __commonJS({
5597
- "../../node_modules/ua-parser-js/src/ua-parser.js"(exports, module) {
5598
- init_define_process_env();
5599
- (function(window2, undefined2) {
5600
- "use strict";
5601
- 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;
5602
- 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";
5603
- var extend = function(regexes2, extensions) {
5604
- var mergedRegexes = {};
5605
- for (var i in regexes2) {
5606
- if (extensions[i] && extensions[i].length % 2 === 0) {
5607
- mergedRegexes[i] = extensions[i].concat(regexes2[i]);
5608
- } else {
5609
- mergedRegexes[i] = regexes2[i];
5610
- }
5611
- }
5612
- return mergedRegexes;
5613
- }, enumerize = function(arr) {
5614
- var enums = {};
5615
- for (var i = 0; i < arr.length; i++) {
5616
- enums[arr[i].toUpperCase()] = arr[i];
5617
- }
5618
- return enums;
5619
- }, has = function(str1, str2) {
5620
- return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
5621
- }, lowerize = function(str) {
5622
- return str.toLowerCase();
5623
- }, majorize = function(version) {
5624
- return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined2;
5625
- }, trim = function(str, len) {
5626
- if (typeof str === STR_TYPE) {
5627
- str = str.replace(/^\s\s*/, EMPTY);
5628
- return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
5629
- }
5630
- };
5631
- var rgxMapper = function(ua, arrays) {
5632
- var i = 0, j2, k2, p, q, matches, match18;
5633
- while (i < arrays.length && !matches) {
5634
- var regex = arrays[i], props = arrays[i + 1];
5635
- j2 = k2 = 0;
5636
- while (j2 < regex.length && !matches) {
5637
- if (!regex[j2]) {
5638
- break;
5639
- }
5640
- matches = regex[j2++].exec(ua);
5641
- if (!!matches) {
5642
- for (p = 0; p < props.length; p++) {
5643
- match18 = matches[++k2];
5644
- q = props[p];
5645
- if (typeof q === OBJ_TYPE && q.length > 0) {
5646
- if (q.length === 2) {
5647
- if (typeof q[1] == FUNC_TYPE) {
5648
- this[q[0]] = q[1].call(this, match18);
5649
- } else {
5650
- this[q[0]] = q[1];
5651
- }
5652
- } else if (q.length === 3) {
5653
- if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
5654
- this[q[0]] = match18 ? q[1].call(this, match18, q[2]) : undefined2;
5655
- } else {
5656
- this[q[0]] = match18 ? match18.replace(q[1], q[2]) : undefined2;
5657
- }
5658
- } else if (q.length === 4) {
5659
- this[q[0]] = match18 ? q[3].call(this, match18.replace(q[1], q[2])) : undefined2;
5660
- }
5661
- } else {
5662
- this[q] = match18 ? match18 : undefined2;
5663
- }
5664
- }
5665
- }
5666
- }
5667
- i += 2;
5668
- }
5669
- }, strMapper = function(str, map) {
5670
- for (var i in map) {
5671
- if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
5672
- for (var j2 = 0; j2 < map[i].length; j2++) {
5673
- if (has(map[i][j2], str)) {
5674
- return i === UNKNOWN ? undefined2 : i;
5675
- }
5676
- }
5677
- } else if (has(map[i], str)) {
5678
- return i === UNKNOWN ? undefined2 : i;
5679
- }
5680
- }
5681
- return str;
5682
- };
5683
- var oldSafariMap = {
5684
- "1.0": "/8",
5685
- "1.2": "/1",
5686
- "1.3": "/3",
5687
- "2.0": "/412",
5688
- "2.0.2": "/416",
5689
- "2.0.3": "/417",
5690
- "2.0.4": "/419",
5691
- "?": "/"
5692
- }, windowsVersionMap = {
5693
- "ME": "4.90",
5694
- "NT 3.11": "NT3.51",
5695
- "NT 4.0": "NT4.0",
5696
- "2000": "NT 5.0",
5697
- "XP": ["NT 5.1", "NT 5.2"],
5698
- "Vista": "NT 6.0",
5699
- "7": "NT 6.1",
5700
- "8": "NT 6.2",
5701
- "8.1": "NT 6.3",
5702
- "10": ["NT 6.4", "NT 10.0"],
5703
- "RT": "ARM"
5704
- };
5705
- var regexes = {
5706
- browser: [
5707
- [
5708
- /\b(?:crmo|crios)\/([\w\.]+)/i
5709
- // Chrome for Android/iOS
5710
- ],
5711
- [VERSION, [NAME, "Chrome"]],
5712
- [
5713
- /edg(?:e|ios|a)?\/([\w\.]+)/i
5714
- // Microsoft Edge
5715
- ],
5716
- [VERSION, [NAME, "Edge"]],
5717
- [
5718
- // Presto based
5719
- /(opera mini)\/([-\w\.]+)/i,
5720
- // Opera Mini
5721
- /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
5722
- // Opera Mobi/Tablet
5723
- /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
5724
- // Opera
5725
- ],
5726
- [NAME, VERSION],
5727
- [
5728
- /opios[\/ ]+([\w\.]+)/i
5729
- // Opera mini on iphone >= 8.0
5730
- ],
5731
- [VERSION, [NAME, OPERA + " Mini"]],
5732
- [
5733
- /\bopr\/([\w\.]+)/i
5734
- // Opera Webkit
5735
- ],
5736
- [VERSION, [NAME, OPERA]],
5737
- [
5738
- // Mixed
5739
- /(kindle)\/([\w\.]+)/i,
5740
- // Kindle
5741
- /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
5742
- // Lunascape/Maxthon/Netfront/Jasmine/Blazer
5743
- // Trident based
5744
- /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,
5745
- // Avant/IEMobile/SlimBrowser
5746
- /(ba?idubrowser)[\/ ]?([\w\.]+)/i,
5747
- // Baidu Browser
5748
- /(?:ms|\()(ie) ([\w\.]+)/i,
5749
- // Internet Explorer
5750
- // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
5751
- /(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,
5752
- // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
5753
- /(heytap|ovi)browser\/([\d\.]+)/i,
5754
- // Heytap/Ovi
5755
- /(weibo)__([\d\.]+)/i
5756
- // Weibo
5757
- ],
5758
- [NAME, VERSION],
5759
- [
5760
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
5761
- // UCBrowser
5762
- ],
5763
- [VERSION, [NAME, "UC" + BROWSER]],
5764
- [
5765
- /microm.+\bqbcore\/([\w\.]+)/i,
5766
- // WeChat Desktop for Windows Built-in Browser
5767
- /\bqbcore\/([\w\.]+).+microm/i
5768
- ],
5769
- [VERSION, [NAME, "WeChat(Win) Desktop"]],
5770
- [
5771
- /micromessenger\/([\w\.]+)/i
5772
- // WeChat
5773
- ],
5774
- [VERSION, [NAME, "WeChat"]],
5775
- [
5776
- /konqueror\/([\w\.]+)/i
5777
- // Konqueror
5778
- ],
5779
- [VERSION, [NAME, "Konqueror"]],
5780
- [
5781
- /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
5782
- // IE11
5783
- ],
5784
- [VERSION, [NAME, "IE"]],
5785
- [
5786
- /ya(?:search)?browser\/([\w\.]+)/i
5787
- // Yandex
5788
- ],
5789
- [VERSION, [NAME, "Yandex"]],
5790
- [
5791
- /(avast|avg)\/([\w\.]+)/i
5792
- // Avast/AVG Secure Browser
5793
- ],
5794
- [[NAME, /(.+)/, "$1 Secure " + BROWSER], VERSION],
5795
- [
5796
- /\bfocus\/([\w\.]+)/i
5797
- // Firefox Focus
5798
- ],
5799
- [VERSION, [NAME, FIREFOX + " Focus"]],
5800
- [
5801
- /\bopt\/([\w\.]+)/i
5802
- // Opera Touch
5803
- ],
5804
- [VERSION, [NAME, OPERA + " Touch"]],
5805
- [
5806
- /coc_coc\w+\/([\w\.]+)/i
5807
- // Coc Coc Browser
5808
- ],
5809
- [VERSION, [NAME, "Coc Coc"]],
5810
- [
5811
- /dolfin\/([\w\.]+)/i
5812
- // Dolphin
5813
- ],
5814
- [VERSION, [NAME, "Dolphin"]],
5815
- [
5816
- /coast\/([\w\.]+)/i
5817
- // Opera Coast
5818
- ],
5819
- [VERSION, [NAME, OPERA + " Coast"]],
5820
- [
5821
- /miuibrowser\/([\w\.]+)/i
5822
- // MIUI Browser
5823
- ],
5824
- [VERSION, [NAME, "MIUI " + BROWSER]],
5825
- [
5826
- /fxios\/([-\w\.]+)/i
5827
- // Firefox for iOS
5828
- ],
5829
- [VERSION, [NAME, FIREFOX]],
5830
- [
5831
- /\bqihu|(qi?ho?o?|360)browser/i
5832
- // 360
5833
- ],
5834
- [[NAME, "360 " + BROWSER]],
5835
- [
5836
- /(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i
5837
- ],
5838
- [[NAME, /(.+)/, "$1 " + BROWSER], VERSION],
5839
- [
5840
- // Oculus/Samsung/Sailfish/Huawei Browser
5841
- /(comodo_dragon)\/([\w\.]+)/i
5842
- // Comodo Dragon
5843
- ],
5844
- [[NAME, /_/g, " "], VERSION],
5845
- [
5846
- /(electron)\/([\w\.]+) safari/i,
5847
- // Electron-based App
5848
- /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
5849
- // Tesla
5850
- /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i
5851
- // QQBrowser/Baidu App/2345 Browser
5852
- ],
5853
- [NAME, VERSION],
5854
- [
5855
- /(metasr)[\/ ]?([\w\.]+)/i,
5856
- // SouGouBrowser
5857
- /(lbbrowser)/i,
5858
- // LieBao Browser
5859
- /\[(linkedin)app\]/i
5860
- // LinkedIn App for iOS & Android
5861
- ],
5862
- [NAME],
5863
- [
5864
- // WebView
5865
- /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
5866
- // Facebook App for iOS & Android
5867
- ],
5868
- [[NAME, FACEBOOK], VERSION],
5869
- [
5870
- /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
5871
- // Kakao App
5872
- /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
5873
- // Naver InApp
5874
- /safari (line)\/([\w\.]+)/i,
5875
- // Line App for iOS
5876
- /\b(line)\/([\w\.]+)\/iab/i,
5877
- // Line App for Android
5878
- /(chromium|instagram)[\/ ]([-\w\.]+)/i
5879
- // Chromium/Instagram
5880
- ],
5881
- [NAME, VERSION],
5882
- [
5883
- /\bgsa\/([\w\.]+) .*safari\//i
5884
- // Google Search Appliance on iOS
5885
- ],
5886
- [VERSION, [NAME, "GSA"]],
5887
- [
5888
- /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
5889
- // TikTok
5890
- ],
5891
- [VERSION, [NAME, "TikTok"]],
5892
- [
5893
- /headlesschrome(?:\/([\w\.]+)| )/i
5894
- // Chrome Headless
5895
- ],
5896
- [VERSION, [NAME, CHROME + " Headless"]],
5897
- [
5898
- / wv\).+(chrome)\/([\w\.]+)/i
5899
- // Chrome WebView
5900
- ],
5901
- [[NAME, CHROME + " WebView"], VERSION],
5902
- [
5903
- /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
5904
- // Android Browser
5905
- ],
5906
- [VERSION, [NAME, "Android " + BROWSER]],
5907
- [
5908
- /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
5909
- // Chrome/OmniWeb/Arora/Tizen/Nokia
5910
- ],
5911
- [NAME, VERSION],
5912
- [
5913
- /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
5914
- // Mobile Safari
5915
- ],
5916
- [VERSION, [NAME, "Mobile Safari"]],
5917
- [
5918
- /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
5919
- // Safari & Safari Mobile
5920
- ],
5921
- [VERSION, NAME],
5922
- [
5923
- /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
5924
- // Safari < 3.0
5925
- ],
5926
- [NAME, [VERSION, strMapper, oldSafariMap]],
5927
- [
5928
- /(webkit|khtml)\/([\w\.]+)/i
5929
- ],
5930
- [NAME, VERSION],
5931
- [
5932
- // Gecko based
5933
- /(navigator|netscape\d?)\/([-\w\.]+)/i
5934
- // Netscape
5935
- ],
5936
- [[NAME, "Netscape"], VERSION],
5937
- [
5938
- /mobile vr; rv:([\w\.]+)\).+firefox/i
5939
- // Firefox Reality
5940
- ],
5941
- [VERSION, [NAME, FIREFOX + " Reality"]],
5942
- [
5943
- /ekiohf.+(flow)\/([\w\.]+)/i,
5944
- // Flow
5945
- /(swiftfox)/i,
5946
- // Swiftfox
5947
- /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
5948
- // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar
5949
- /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
5950
- // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
5951
- /(firefox)\/([\w\.]+)/i,
5952
- // Other Firefox-based
5953
- /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
5954
- // Mozilla
5955
- // Other
5956
- /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
5957
- // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
5958
- /(links) \(([\w\.]+)/i,
5959
- // Links
5960
- /panasonic;(viera)/i
5961
- // Panasonic Viera
5962
- ],
5963
- [NAME, VERSION],
5964
- [
5965
- /(cobalt)\/([\w\.]+)/i
5966
- // Cobalt
5967
- ],
5968
- [NAME, [VERSION, /master.|lts./, ""]]
5969
- ],
5970
- cpu: [
5971
- [
5972
- /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
5973
- // AMD64 (x64)
5974
- ],
5975
- [[ARCHITECTURE, "amd64"]],
5976
- [
5977
- /(ia32(?=;))/i
5978
- // IA32 (quicktime)
5979
- ],
5980
- [[ARCHITECTURE, lowerize]],
5981
- [
5982
- /((?:i[346]|x)86)[;\)]/i
5983
- // IA32 (x86)
5984
- ],
5985
- [[ARCHITECTURE, "ia32"]],
5986
- [
5987
- /\b(aarch64|arm(v?8e?l?|_?64))\b/i
5988
- // ARM64
5989
- ],
5990
- [[ARCHITECTURE, "arm64"]],
5991
- [
5992
- /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
5993
- // ARMHF
5994
- ],
5995
- [[ARCHITECTURE, "armhf"]],
5996
- [
5997
- // PocketPC mistakenly identified as PowerPC
5998
- /windows (ce|mobile); ppc;/i
5999
- ],
6000
- [[ARCHITECTURE, "arm"]],
6001
- [
6002
- /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
6003
- // PowerPC
6004
- ],
6005
- [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
6006
- [
6007
- /(sun4\w)[;\)]/i
6008
- // SPARC
6009
- ],
6010
- [[ARCHITECTURE, "sparc"]],
6011
- [
6012
- /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
6013
- // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
6014
- ],
6015
- [[ARCHITECTURE, lowerize]]
6016
- ],
6017
- device: [
6018
- [
6019
- //////////////////////////
6020
- // MOBILES & TABLETS
6021
- /////////////////////////
6022
- // Samsung
6023
- /\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
6024
- ],
6025
- [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
6026
- [
6027
- /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
6028
- /samsung[- ]([-\w]+)/i,
6029
- /sec-(sgh\w+)/i
6030
- ],
6031
- [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
6032
- [
6033
- // Apple
6034
- /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
6035
- // iPod/iPhone
6036
- ],
6037
- [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
6038
- [
6039
- /\((ipad);[-\w\),; ]+apple/i,
6040
- // iPad
6041
- /applecoremedia\/[\w\.]+ \((ipad)/i,
6042
- /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
6043
- ],
6044
- [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
6045
- [
6046
- /(macintosh);/i
6047
- ],
6048
- [MODEL, [VENDOR, APPLE]],
6049
- [
6050
- // Sharp
6051
- /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
6052
- ],
6053
- [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
6054
- [
6055
- // Huawei
6056
- /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
6057
- ],
6058
- [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
6059
- [
6060
- /(?:huawei|honor)([-\w ]+)[;\)]/i,
6061
- /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
6062
- ],
6063
- [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
6064
- [
6065
- // Xiaomi
6066
- /\b(poco[\w ]+)(?: bui|\))/i,
6067
- // Xiaomi POCO
6068
- /\b; (\w+) build\/hm\1/i,
6069
- // Xiaomi Hongmi 'numeric' models
6070
- /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
6071
- // Xiaomi Hongmi
6072
- /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
6073
- // Xiaomi Redmi
6074
- /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
6075
- // Xiaomi Mi
6076
- ],
6077
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
6078
- [
6079
- /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
6080
- // Mi Pad tablets
6081
- ],
6082
- [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
6083
- [
6084
- // OPPO
6085
- /; (\w+) bui.+ oppo/i,
6086
- /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
6087
- ],
6088
- [MODEL, [VENDOR, "OPPO"], [TYPE, MOBILE]],
6089
- [
6090
- // Vivo
6091
- /vivo (\w+)(?: bui|\))/i,
6092
- /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
6093
- ],
6094
- [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
6095
- [
6096
- // Realme
6097
- /\b(rmx[12]\d{3})(?: bui|;|\))/i
6098
- ],
6099
- [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
6100
- [
6101
- // Motorola
6102
- /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
6103
- /\bmot(?:orola)?[- ](\w*)/i,
6104
- /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
6105
- ],
6106
- [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
6107
- [
6108
- /\b(mz60\d|xoom[2 ]{0,2}) build\//i
6109
- ],
6110
- [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
6111
- [
6112
- // LG
6113
- /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
6114
- ],
6115
- [MODEL, [VENDOR, LG], [TYPE, TABLET]],
6116
- [
6117
- /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
6118
- /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
6119
- /\blg-?([\d\w]+) bui/i
6120
- ],
6121
- [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
6122
- [
6123
- // Lenovo
6124
- /(ideatab[-\w ]+)/i,
6125
- /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
6126
- ],
6127
- [MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]],
6128
- [
6129
- // Nokia
6130
- /(?:maemo|nokia).*(n900|lumia \d+)/i,
6131
- /nokia[-_ ]?([-\w\.]*)/i
6132
- ],
6133
- [[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE, MOBILE]],
6134
- [
6135
- // Google
6136
- /(pixel c)\b/i
6137
- // Google Pixel C
6138
- ],
6139
- [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
6140
- [
6141
- /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
6142
- // Google Pixel
6143
- ],
6144
- [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
6145
- [
6146
- // Sony
6147
- /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
6148
- ],
6149
- [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
6150
- [
6151
- /sony tablet [ps]/i,
6152
- /\b(?:sony)?sgp\w+(?: bui|\))/i
6153
- ],
6154
- [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
6155
- [
6156
- // OnePlus
6157
- / (kb2005|in20[12]5|be20[12][59])\b/i,
6158
- /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
6159
- ],
6160
- [MODEL, [VENDOR, "OnePlus"], [TYPE, MOBILE]],
6161
- [
6162
- // Amazon
6163
- /(alexa)webm/i,
6164
- /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,
6165
- // Kindle Fire without Silk / Echo Show
6166
- /(kf[a-z]+)( bui|\)).+silk\//i
6167
- // Kindle Fire HD
6168
- ],
6169
- [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
6170
- [
6171
- /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
6172
- // Fire Phone
6173
- ],
6174
- [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
6175
- [
6176
- // BlackBerry
6177
- /(playbook);[-\w\),; ]+(rim)/i
6178
- // BlackBerry PlayBook
6179
- ],
6180
- [MODEL, VENDOR, [TYPE, TABLET]],
6181
- [
6182
- /\b((?:bb[a-f]|st[hv])100-\d)/i,
6183
- /\(bb10; (\w+)/i
6184
- // BlackBerry 10
6185
- ],
6186
- [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
6187
- [
6188
- // Asus
6189
- /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
6190
- ],
6191
- [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
6192
- [
6193
- / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
6194
- ],
6195
- [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
6196
- [
6197
- // HTC
6198
- /(nexus 9)/i
6199
- // HTC Nexus 9
6200
- ],
6201
- [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
6202
- [
6203
- /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
6204
- // HTC
6205
- // ZTE
6206
- /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
6207
- /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
6208
- // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
6209
- ],
6210
- [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
6211
- [
6212
- // Acer
6213
- /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
6214
- ],
6215
- [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
6216
- [
6217
- // Meizu
6218
- /droid.+; (m[1-5] note) bui/i,
6219
- /\bmz-([-\w]{2,})/i
6220
- ],
6221
- [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
6222
- [
6223
- // MIXED
6224
- /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
6225
- // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
6226
- /(hp) ([\w ]+\w)/i,
6227
- // HP iPAQ
6228
- /(asus)-?(\w+)/i,
6229
- // Asus
6230
- /(microsoft); (lumia[\w ]+)/i,
6231
- // Microsoft Lumia
6232
- /(lenovo)[-_ ]?([-\w]+)/i,
6233
- // Lenovo
6234
- /(jolla)/i,
6235
- // Jolla
6236
- /(oppo) ?([\w ]+) bui/i
6237
- // OPPO
6238
- ],
6239
- [VENDOR, MODEL, [TYPE, MOBILE]],
6240
- [
6241
- /(kobo)\s(ereader|touch)/i,
6242
- // Kobo
6243
- /(archos) (gamepad2?)/i,
6244
- // Archos
6245
- /(hp).+(touchpad(?!.+tablet)|tablet)/i,
6246
- // HP TouchPad
6247
- /(kindle)\/([\w\.]+)/i,
6248
- // Kindle
6249
- /(nook)[\w ]+build\/(\w+)/i,
6250
- // Nook
6251
- /(dell) (strea[kpr\d ]*[\dko])/i,
6252
- // Dell Streak
6253
- /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
6254
- // Le Pan Tablets
6255
- /(trinity)[- ]*(t\d{3}) bui/i,
6256
- // Trinity Tablets
6257
- /(gigaset)[- ]+(q\w{1,9}) bui/i,
6258
- // Gigaset Tablets
6259
- /(vodafone) ([\w ]+)(?:\)| bui)/i
6260
- // Vodafone
6261
- ],
6262
- [VENDOR, MODEL, [TYPE, TABLET]],
6263
- [
6264
- /(surface duo)/i
6265
- // Surface Duo
6266
- ],
6267
- [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
6268
- [
6269
- /droid [\d\.]+; (fp\du?)(?: b|\))/i
6270
- // Fairphone
6271
- ],
6272
- [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
6273
- [
6274
- /(u304aa)/i
6275
- // AT&T
6276
- ],
6277
- [MODEL, [VENDOR, "AT&T"], [TYPE, MOBILE]],
6278
- [
6279
- /\bsie-(\w*)/i
6280
- // Siemens
6281
- ],
6282
- [MODEL, [VENDOR, "Siemens"], [TYPE, MOBILE]],
6283
- [
6284
- /\b(rct\w+) b/i
6285
- // RCA Tablets
6286
- ],
6287
- [MODEL, [VENDOR, "RCA"], [TYPE, TABLET]],
6288
- [
6289
- /\b(venue[\d ]{2,7}) b/i
6290
- // Dell Venue Tablets
6291
- ],
6292
- [MODEL, [VENDOR, "Dell"], [TYPE, TABLET]],
6293
- [
6294
- /\b(q(?:mv|ta)\w+) b/i
6295
- // Verizon Tablet
6296
- ],
6297
- [MODEL, [VENDOR, "Verizon"], [TYPE, TABLET]],
6298
- [
6299
- /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
6300
- // Barnes & Noble Tablet
6301
- ],
6302
- [MODEL, [VENDOR, "Barnes & Noble"], [TYPE, TABLET]],
6303
- [
6304
- /\b(tm\d{3}\w+) b/i
6305
- ],
6306
- [MODEL, [VENDOR, "NuVision"], [TYPE, TABLET]],
6307
- [
6308
- /\b(k88) b/i
6309
- // ZTE K Series Tablet
6310
- ],
6311
- [MODEL, [VENDOR, "ZTE"], [TYPE, TABLET]],
6312
- [
6313
- /\b(nx\d{3}j) b/i
6314
- // ZTE Nubia
6315
- ],
6316
- [MODEL, [VENDOR, "ZTE"], [TYPE, MOBILE]],
6317
- [
6318
- /\b(gen\d{3}) b.+49h/i
6319
- // Swiss GEN Mobile
6320
- ],
6321
- [MODEL, [VENDOR, "Swiss"], [TYPE, MOBILE]],
6322
- [
6323
- /\b(zur\d{3}) b/i
6324
- // Swiss ZUR Tablet
6325
- ],
6326
- [MODEL, [VENDOR, "Swiss"], [TYPE, TABLET]],
6327
- [
6328
- /\b((zeki)?tb.*\b) b/i
6329
- // Zeki Tablets
6330
- ],
6331
- [MODEL, [VENDOR, "Zeki"], [TYPE, TABLET]],
6332
- [
6333
- /\b([yr]\d{2}) b/i,
6334
- /\b(dragon[- ]+touch |dt)(\w{5}) b/i
6335
- // Dragon Touch Tablet
6336
- ],
6337
- [[VENDOR, "Dragon Touch"], MODEL, [TYPE, TABLET]],
6338
- [
6339
- /\b(ns-?\w{0,9}) b/i
6340
- // Insignia Tablets
6341
- ],
6342
- [MODEL, [VENDOR, "Insignia"], [TYPE, TABLET]],
6343
- [
6344
- /\b((nxa|next)-?\w{0,9}) b/i
6345
- // NextBook Tablets
6346
- ],
6347
- [MODEL, [VENDOR, "NextBook"], [TYPE, TABLET]],
6348
- [
6349
- /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
6350
- // Voice Xtreme Phones
6351
- ],
6352
- [[VENDOR, "Voice"], MODEL, [TYPE, MOBILE]],
6353
- [
6354
- /\b(lvtel\-)?(v1[12]) b/i
6355
- // LvTel Phones
6356
- ],
6357
- [[VENDOR, "LvTel"], MODEL, [TYPE, MOBILE]],
6358
- [
6359
- /\b(ph-1) /i
6360
- // Essential PH-1
6361
- ],
6362
- [MODEL, [VENDOR, "Essential"], [TYPE, MOBILE]],
6363
- [
6364
- /\b(v(100md|700na|7011|917g).*\b) b/i
6365
- // Envizen Tablets
6366
- ],
6367
- [MODEL, [VENDOR, "Envizen"], [TYPE, TABLET]],
6368
- [
6369
- /\b(trio[-\w\. ]+) b/i
6370
- // MachSpeed Tablets
6371
- ],
6372
- [MODEL, [VENDOR, "MachSpeed"], [TYPE, TABLET]],
6373
- [
6374
- /\btu_(1491) b/i
6375
- // Rotor Tablets
6376
- ],
6377
- [MODEL, [VENDOR, "Rotor"], [TYPE, TABLET]],
6378
- [
6379
- /(shield[\w ]+) b/i
6380
- // Nvidia Shield Tablets
6381
- ],
6382
- [MODEL, [VENDOR, "Nvidia"], [TYPE, TABLET]],
6383
- [
6384
- /(sprint) (\w+)/i
6385
- // Sprint Phones
6386
- ],
6387
- [VENDOR, MODEL, [TYPE, MOBILE]],
6388
- [
6389
- /(kin\.[onetw]{3})/i
6390
- // Microsoft Kin
6391
- ],
6392
- [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
6393
- [
6394
- /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
6395
- // Zebra
6396
- ],
6397
- [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
6398
- [
6399
- /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
6400
- ],
6401
- [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
6402
- [
6403
- ///////////////////
6404
- // SMARTTVS
6405
- ///////////////////
6406
- /smart-tv.+(samsung)/i
6407
- // Samsung
6408
- ],
6409
- [VENDOR, [TYPE, SMARTTV]],
6410
- [
6411
- /hbbtv.+maple;(\d+)/i
6412
- ],
6413
- [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
6414
- [
6415
- /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
6416
- // LG SmartTV
6417
- ],
6418
- [[VENDOR, LG], [TYPE, SMARTTV]],
6419
- [
6420
- /(apple) ?tv/i
6421
- // Apple TV
6422
- ],
6423
- [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
6424
- [
6425
- /crkey/i
6426
- // Google Chromecast
6427
- ],
6428
- [[MODEL, CHROME + "cast"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
6429
- [
6430
- /droid.+aft(\w)( bui|\))/i
6431
- // Fire TV
6432
- ],
6433
- [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
6434
- [
6435
- /\(dtv[\);].+(aquos)/i,
6436
- /(aquos-tv[\w ]+)\)/i
6437
- // Sharp
6438
- ],
6439
- [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
6440
- [
6441
- /(bravia[\w ]+)( bui|\))/i
6442
- // Sony
6443
- ],
6444
- [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
6445
- [
6446
- /(mitv-\w{5}) bui/i
6447
- // Xiaomi
6448
- ],
6449
- [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
6450
- [
6451
- /Hbbtv.*(technisat) (.*);/i
6452
- // TechniSAT
6453
- ],
6454
- [VENDOR, MODEL, [TYPE, SMARTTV]],
6455
- [
6456
- /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
6457
- // Roku
6458
- /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
6459
- // HbbTV devices
6460
- ],
6461
- [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]],
6462
- [
6463
- /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
6464
- // SmartTV from Unidentified Vendors
6465
- ],
6466
- [[TYPE, SMARTTV]],
6467
- [
6468
- ///////////////////
6469
- // CONSOLES
6470
- ///////////////////
6471
- /(ouya)/i,
6472
- // Ouya
6473
- /(nintendo) ([wids3utch]+)/i
6474
- // Nintendo
6475
- ],
6476
- [VENDOR, MODEL, [TYPE, CONSOLE]],
6477
- [
6478
- /droid.+; (shield) bui/i
6479
- // Nvidia
6480
- ],
6481
- [MODEL, [VENDOR, "Nvidia"], [TYPE, CONSOLE]],
6482
- [
6483
- /(playstation [345portablevi]+)/i
6484
- // Playstation
6485
- ],
6486
- [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
6487
- [
6488
- /\b(xbox(?: one)?(?!; xbox))[\); ]/i
6489
- // Microsoft Xbox
6490
- ],
6491
- [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
6492
- [
6493
- ///////////////////
6494
- // WEARABLES
6495
- ///////////////////
6496
- /((pebble))app/i
6497
- // Pebble
6498
- ],
6499
- [VENDOR, MODEL, [TYPE, WEARABLE]],
6500
- [
6501
- /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
6502
- // Apple Watch
6503
- ],
6504
- [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
6505
- [
6506
- /droid.+; (glass) \d/i
6507
- // Google Glass
6508
- ],
6509
- [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
6510
- [
6511
- /droid.+; (wt63?0{2,3})\)/i
6512
- ],
6513
- [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
6514
- [
6515
- /(quest( 2| pro)?)/i
6516
- // Oculus Quest
6517
- ],
6518
- [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
6519
- [
6520
- ///////////////////
6521
- // EMBEDDED
6522
- ///////////////////
6523
- /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
6524
- // Tesla
6525
- ],
6526
- [VENDOR, [TYPE, EMBEDDED]],
6527
- [
6528
- /(aeobc)\b/i
6529
- // Echo Dot
6530
- ],
6531
- [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
6532
- [
6533
- ////////////////////
6534
- // MIXED (GENERIC)
6535
- ///////////////////
6536
- /droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i
6537
- // Android Phones from Unidentified Vendors
6538
- ],
6539
- [MODEL, [TYPE, MOBILE]],
6540
- [
6541
- /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
6542
- // Android Tablets from Unidentified Vendors
6543
- ],
6544
- [MODEL, [TYPE, TABLET]],
6545
- [
6546
- /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
6547
- // Unidentifiable Tablet
6548
- ],
6549
- [[TYPE, TABLET]],
6550
- [
6551
- /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
6552
- // Unidentifiable Mobile
6553
- ],
6554
- [[TYPE, MOBILE]],
6555
- [
6556
- /(android[-\w\. ]{0,9});.+buil/i
6557
- // Generic Android Device
6558
- ],
6559
- [MODEL, [VENDOR, "Generic"]]
6560
- ],
6561
- engine: [
6562
- [
6563
- /windows.+ edge\/([\w\.]+)/i
6564
- // EdgeHTML
6565
- ],
6566
- [VERSION, [NAME, EDGE + "HTML"]],
6567
- [
6568
- /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
6569
- // Blink
6570
- ],
6571
- [VERSION, [NAME, "Blink"]],
6572
- [
6573
- /(presto)\/([\w\.]+)/i,
6574
- // Presto
6575
- /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
6576
- // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
6577
- /ekioh(flow)\/([\w\.]+)/i,
6578
- // Flow
6579
- /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
6580
- // KHTML/Tasman/Links
6581
- /(icab)[\/ ]([23]\.[\d\.]+)/i,
6582
- // iCab
6583
- /\b(libweb)/i
6584
- ],
6585
- [NAME, VERSION],
6586
- [
6587
- /rv\:([\w\.]{1,9})\b.+(gecko)/i
6588
- // Gecko
6589
- ],
6590
- [VERSION, NAME]
6591
- ],
6592
- os: [
6593
- [
6594
- // Windows
6595
- /microsoft (windows) (vista|xp)/i
6596
- // Windows (iTunes)
6597
- ],
6598
- [NAME, VERSION],
6599
- [
6600
- /(windows) nt 6\.2; (arm)/i,
6601
- // Windows RT
6602
- /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,
6603
- // Windows Phone
6604
- /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i
6605
- ],
6606
- [NAME, [VERSION, strMapper, windowsVersionMap]],
6607
- [
6608
- /(win(?=3|9|n)|win 9x )([nt\d\.]+)/i
6609
- ],
6610
- [[NAME, "Windows"], [VERSION, strMapper, windowsVersionMap]],
6611
- [
6612
- // iOS/macOS
6613
- /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
6614
- // iOS
6615
- /ios;fbsv\/([\d\.]+)/i,
6616
- /cfnetwork\/.+darwin/i
6617
- ],
6618
- [[VERSION, /_/g, "."], [NAME, "iOS"]],
6619
- [
6620
- /(mac os x) ?([\w\. ]*)/i,
6621
- /(macintosh|mac_powerpc\b)(?!.+haiku)/i
6622
- // Mac OS
6623
- ],
6624
- [[NAME, MAC_OS], [VERSION, /_/g, "."]],
6625
- [
6626
- // Mobile OSes
6627
- /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
6628
- // Android-x86/HarmonyOS
6629
- ],
6630
- [VERSION, NAME],
6631
- [
6632
- // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
6633
- /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
6634
- /(blackberry)\w*\/([\w\.]*)/i,
6635
- // Blackberry
6636
- /(tizen|kaios)[\/ ]([\w\.]+)/i,
6637
- // Tizen/KaiOS
6638
- /\((series40);/i
6639
- // Series 40
6640
- ],
6641
- [NAME, VERSION],
6642
- [
6643
- /\(bb(10);/i
6644
- // BlackBerry 10
6645
- ],
6646
- [VERSION, [NAME, BLACKBERRY]],
6647
- [
6648
- /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
6649
- // Symbian
6650
- ],
6651
- [VERSION, [NAME, "Symbian"]],
6652
- [
6653
- /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
6654
- // Firefox OS
6655
- ],
6656
- [VERSION, [NAME, FIREFOX + " OS"]],
6657
- [
6658
- /web0s;.+rt(tv)/i,
6659
- /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
6660
- // WebOS
6661
- ],
6662
- [VERSION, [NAME, "webOS"]],
6663
- [
6664
- /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
6665
- // watchOS
6666
- ],
6667
- [VERSION, [NAME, "watchOS"]],
6668
- [
6669
- // Google Chromecast
6670
- /crkey\/([\d\.]+)/i
6671
- // Google Chromecast
6672
- ],
6673
- [VERSION, [NAME, CHROME + "cast"]],
6674
- [
6675
- /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
6676
- // Chromium OS
6677
- ],
6678
- [[NAME, CHROMIUM_OS], VERSION],
6679
- [
6680
- // Smart TVs
6681
- /panasonic;(viera)/i,
6682
- // Panasonic Viera
6683
- /(netrange)mmh/i,
6684
- // Netrange
6685
- /(nettv)\/(\d+\.[\w\.]+)/i,
6686
- // NetTV
6687
- // Console
6688
- /(nintendo|playstation) ([wids345portablevuch]+)/i,
6689
- // Nintendo/Playstation
6690
- /(xbox); +xbox ([^\);]+)/i,
6691
- // Microsoft Xbox (360, One, X, S, Series X, Series S)
6692
- // Other
6693
- /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
6694
- // Joli/Palm
6695
- /(mint)[\/\(\) ]?(\w*)/i,
6696
- // Mint
6697
- /(mageia|vectorlinux)[; ]/i,
6698
- // Mageia/VectorLinux
6699
- /([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,
6700
- // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
6701
- /(hurd|linux) ?([\w\.]*)/i,
6702
- // Hurd/Linux
6703
- /(gnu) ?([\w\.]*)/i,
6704
- // GNU
6705
- /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
6706
- // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
6707
- /(haiku) (\w+)/i
6708
- // Haiku
6709
- ],
6710
- [NAME, VERSION],
6711
- [
6712
- /(sunos) ?([\w\.\d]*)/i
6713
- // Solaris
6714
- ],
6715
- [[NAME, "Solaris"], VERSION],
6716
- [
6717
- /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
6718
- // Solaris
6719
- /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
6720
- // AIX
6721
- /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
6722
- // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
6723
- /(unix) ?([\w\.]*)/i
6724
- // UNIX
6725
- ],
6726
- [NAME, VERSION]
6727
- ]
6728
- };
6729
- var UAParser = function(ua, extensions) {
6730
- if (typeof ua === OBJ_TYPE) {
6731
- extensions = ua;
6732
- ua = undefined2;
6733
- }
6734
- if (!(this instanceof UAParser)) {
6735
- return new UAParser(ua, extensions).getResult();
6736
- }
6737
- var _navigator = typeof window2 !== UNDEF_TYPE && window2.navigator ? window2.navigator : undefined2;
6738
- var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
6739
- var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined2;
6740
- var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
6741
- var _isSelfNav = _navigator && _navigator.userAgent == _ua;
6742
- this.getBrowser = function() {
6743
- var _browser = {};
6744
- _browser[NAME] = undefined2;
6745
- _browser[VERSION] = undefined2;
6746
- rgxMapper.call(_browser, _ua, _rgxmap.browser);
6747
- _browser[MAJOR] = majorize(_browser[VERSION]);
6748
- if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {
6749
- _browser[NAME] = "Brave";
6750
- }
6751
- return _browser;
6752
- };
6753
- this.getCPU = function() {
6754
- var _cpu = {};
6755
- _cpu[ARCHITECTURE] = undefined2;
6756
- rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
6757
- return _cpu;
6758
- };
6759
- this.getDevice = function() {
6760
- var _device = {};
6761
- _device[VENDOR] = undefined2;
6762
- _device[MODEL] = undefined2;
6763
- _device[TYPE] = undefined2;
6764
- rgxMapper.call(_device, _ua, _rgxmap.device);
6765
- if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {
6766
- _device[TYPE] = MOBILE;
6767
- }
6768
- if (_isSelfNav && _device[MODEL] == "Macintosh" && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
6769
- _device[MODEL] = "iPad";
6770
- _device[TYPE] = TABLET;
6771
- }
6772
- return _device;
6773
- };
6774
- this.getEngine = function() {
6775
- var _engine = {};
6776
- _engine[NAME] = undefined2;
6777
- _engine[VERSION] = undefined2;
6778
- rgxMapper.call(_engine, _ua, _rgxmap.engine);
6779
- return _engine;
6780
- };
6781
- this.getOS = function() {
6782
- var _os = {};
6783
- _os[NAME] = undefined2;
6784
- _os[VERSION] = undefined2;
6785
- rgxMapper.call(_os, _ua, _rgxmap.os);
6786
- if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != "Unknown") {
6787
- _os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
6788
- }
6789
- return _os;
6790
- };
6791
- this.getResult = function() {
6792
- return {
6793
- ua: this.getUA(),
6794
- browser: this.getBrowser(),
6795
- engine: this.getEngine(),
6796
- os: this.getOS(),
6797
- device: this.getDevice(),
6798
- cpu: this.getCPU()
6799
- };
6800
- };
6801
- this.getUA = function() {
6802
- return _ua;
6803
- };
6804
- this.setUA = function(ua2) {
6805
- _ua = typeof ua2 === STR_TYPE && ua2.length > UA_MAX_LENGTH ? trim(ua2, UA_MAX_LENGTH) : ua2;
6806
- return this;
6807
- };
6808
- this.setUA(_ua);
6809
- return this;
6810
- };
6811
- UAParser.VERSION = LIBVERSION;
6812
- UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
6813
- UAParser.CPU = enumerize([ARCHITECTURE]);
6814
- UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
6815
- UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
6816
- if (typeof exports !== UNDEF_TYPE) {
6817
- if (typeof module !== UNDEF_TYPE && module.exports) {
6818
- exports = module.exports = UAParser;
6819
- }
6820
- exports.UAParser = UAParser;
6821
- } else {
6822
- if (typeof define === FUNC_TYPE && define.amd) {
6823
- define(function() {
6824
- return UAParser;
6825
- });
6826
- } else if (typeof window2 !== UNDEF_TYPE) {
6827
- window2.UAParser = UAParser;
6828
- }
6829
- }
6830
- var $ = typeof window2 !== UNDEF_TYPE && (window2.jQuery || window2.Zepto);
6831
- if ($ && !$.ua) {
6832
- var parser = new UAParser();
6833
- $.ua = parser.getResult();
6834
- $.ua.get = function() {
6835
- return parser.getUA();
6836
- };
6837
- $.ua.set = function(ua) {
6838
- parser.setUA(ua);
6839
- var result = parser.getResult();
6840
- for (var prop in result) {
6841
- $.ua[prop] = result[prop];
6842
- }
6843
- };
6844
- }
6845
- })(typeof window === "object" ? window : exports);
6846
- }
6847
- });
6848
-
6849
5595
  // ../../node_modules/lodash.isequal/index.js
6850
5596
  var require_lodash2 = __commonJS({
6851
5597
  "../../node_modules/lodash.isequal/index.js"(exports, module) {
@@ -8748,13 +7494,13 @@ var require_writer = __commonJS({
8748
7494
  var i = 1;
8749
7495
  var args = arguments;
8750
7496
  var len = args.length;
8751
- return formatStr.replace(formatRegExp, function(x) {
7497
+ return formatStr.replace(formatRegExp, function(x2) {
8752
7498
  if (i >= len) {
8753
- return x;
7499
+ return x2;
8754
7500
  }
8755
7501
  var arg = args[i];
8756
7502
  i += 1;
8757
- switch (x) {
7503
+ switch (x2) {
8758
7504
  case "%%":
8759
7505
  return "%";
8760
7506
  case "%s":
@@ -8884,7 +7630,7 @@ var require_react_is_production_min = __commonJS({
8884
7630
  var t = b2 ? Symbol.for("react.lazy") : 60116;
8885
7631
  var v = b2 ? Symbol.for("react.block") : 60121;
8886
7632
  var w = b2 ? Symbol.for("react.fundamental") : 60117;
8887
- var x = b2 ? Symbol.for("react.responder") : 60118;
7633
+ var x2 = b2 ? Symbol.for("react.responder") : 60118;
8888
7634
  var y2 = b2 ? Symbol.for("react.scope") : 60119;
8889
7635
  function z2(a2) {
8890
7636
  if ("object" === typeof a2 && null !== a2) {
@@ -8970,7 +7716,7 @@ var require_react_is_production_min = __commonJS({
8970
7716
  return z2(a2) === p;
8971
7717
  };
8972
7718
  exports.isValidElementType = function(a2) {
8973
- 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);
7719
+ 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);
8974
7720
  };
8975
7721
  exports.typeOf = z2;
8976
7722
  }
@@ -9244,7 +7990,7 @@ var require_checkPropTypes = __commonJS({
9244
7990
  if (define_process_env_default.NODE_ENV !== "production") {
9245
7991
  ReactPropTypesSecret = require_ReactPropTypesSecret();
9246
7992
  loggedTypeFailures = {};
9247
- has = require_has();
7993
+ has2 = require_has();
9248
7994
  printWarning = function(text) {
9249
7995
  var message = "Warning: " + text;
9250
7996
  if (typeof console !== "undefined") {
@@ -9252,17 +7998,17 @@ var require_checkPropTypes = __commonJS({
9252
7998
  }
9253
7999
  try {
9254
8000
  throw new Error(message);
9255
- } catch (x) {
8001
+ } catch (x2) {
9256
8002
  }
9257
8003
  };
9258
8004
  }
9259
8005
  var ReactPropTypesSecret;
9260
8006
  var loggedTypeFailures;
9261
- var has;
8007
+ var has2;
9262
8008
  function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
9263
8009
  if (define_process_env_default.NODE_ENV !== "production") {
9264
8010
  for (var typeSpecName in typeSpecs) {
9265
- if (has(typeSpecs, typeSpecName)) {
8011
+ if (has2(typeSpecs, typeSpecName)) {
9266
8012
  var error;
9267
8013
  try {
9268
8014
  if (typeof typeSpecs[typeSpecName] !== "function") {
@@ -9309,7 +8055,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9309
8055
  var ReactIs = require_react_is();
9310
8056
  var assign = require_object_assign();
9311
8057
  var ReactPropTypesSecret = require_ReactPropTypesSecret();
9312
- var has = require_has();
8058
+ var has2 = require_has();
9313
8059
  var checkPropTypes = require_checkPropTypes();
9314
8060
  var printWarning = function() {
9315
8061
  };
@@ -9321,7 +8067,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9321
8067
  }
9322
8068
  try {
9323
8069
  throw new Error(message);
9324
- } catch (x) {
8070
+ } catch (x2) {
9325
8071
  }
9326
8072
  };
9327
8073
  }
@@ -9359,11 +8105,11 @@ var require_factoryWithTypeCheckers = __commonJS({
9359
8105
  shape: createShapeTypeChecker,
9360
8106
  exact: createStrictShapeTypeChecker
9361
8107
  };
9362
- function is(x, y2) {
9363
- if (x === y2) {
9364
- return x !== 0 || 1 / x === 1 / y2;
8108
+ function is2(x2, y2) {
8109
+ if (x2 === y2) {
8110
+ return x2 !== 0 || 1 / x2 === 1 / y2;
9365
8111
  } else {
9366
- return x !== x && y2 !== y2;
8112
+ return x2 !== x2 && y2 !== y2;
9367
8113
  }
9368
8114
  }
9369
8115
  function PropTypeError(message, data3) {
@@ -9502,7 +8248,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9502
8248
  function validate(props, propName, componentName, location, propFullName) {
9503
8249
  var propValue = props[propName];
9504
8250
  for (var i = 0; i < expectedValues.length; i++) {
9505
- if (is(propValue, expectedValues[i])) {
8251
+ if (is2(propValue, expectedValues[i])) {
9506
8252
  return null;
9507
8253
  }
9508
8254
  }
@@ -9528,7 +8274,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9528
8274
  return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object."));
9529
8275
  }
9530
8276
  for (var key in propValue) {
9531
- if (has(propValue, key)) {
8277
+ if (has2(propValue, key)) {
9532
8278
  var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
9533
8279
  if (error instanceof Error) {
9534
8280
  return error;
@@ -9561,7 +8307,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9561
8307
  if (checkerResult == null) {
9562
8308
  return null;
9563
8309
  }
9564
- if (checkerResult.data && has(checkerResult.data, "expectedType")) {
8310
+ if (checkerResult.data && has2(checkerResult.data, "expectedType")) {
9565
8311
  expectedTypes.push(checkerResult.data.expectedType);
9566
8312
  }
9567
8313
  }
@@ -9615,7 +8361,7 @@ var require_factoryWithTypeCheckers = __commonJS({
9615
8361
  var allKeys = assign({}, props[propName], shapeTypes);
9616
8362
  for (var key in allKeys) {
9617
8363
  var checker = shapeTypes[key];
9618
- if (has(shapeTypes, key) && typeof checker !== "function") {
8364
+ if (has2(shapeTypes, key) && typeof checker !== "function") {
9619
8365
  return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
9620
8366
  }
9621
8367
  if (!checker) {
@@ -19355,12 +18101,1859 @@ function createSelectorCreator(memoize) {
19355
18101
  }
19356
18102
  var createSelector = createSelectorCreator(defaultMemoize);
19357
18103
 
18104
+ // ../../node_modules/ua-parser-js/src/main/ua-parser.mjs
18105
+ init_define_process_env();
18106
+ var LIBVERSION = "2.0.6";
18107
+ var UA_MAX_LENGTH = 500;
18108
+ var USER_AGENT = "user-agent";
18109
+ var EMPTY = "";
18110
+ var UNKNOWN = "?";
18111
+ var TYPEOF = {
18112
+ FUNCTION: "function",
18113
+ OBJECT: "object",
18114
+ STRING: "string",
18115
+ UNDEFINED: "undefined"
18116
+ };
18117
+ var BROWSER = "browser";
18118
+ var CPU = "cpu";
18119
+ var DEVICE = "device";
18120
+ var ENGINE = "engine";
18121
+ var OS = "os";
18122
+ var RESULT = "result";
18123
+ var NAME = "name";
18124
+ var TYPE = "type";
18125
+ var VENDOR = "vendor";
18126
+ var VERSION = "version";
18127
+ var ARCHITECTURE = "architecture";
18128
+ var MAJOR = "major";
18129
+ var MODEL = "model";
18130
+ var CONSOLE = "console";
18131
+ var MOBILE = "mobile";
18132
+ var TABLET = "tablet";
18133
+ var SMARTTV = "smarttv";
18134
+ var WEARABLE = "wearable";
18135
+ var XR = "xr";
18136
+ var EMBEDDED = "embedded";
18137
+ var INAPP = "inapp";
18138
+ var BRANDS = "brands";
18139
+ var FORMFACTORS = "formFactors";
18140
+ var FULLVERLIST = "fullVersionList";
18141
+ var PLATFORM = "platform";
18142
+ var PLATFORMVER = "platformVersion";
18143
+ var BITNESS = "bitness";
18144
+ var CH = "sec-ch-ua";
18145
+ var CH_FULL_VER_LIST = CH + "-full-version-list";
18146
+ var CH_ARCH = CH + "-arch";
18147
+ var CH_BITNESS = CH + "-" + BITNESS;
18148
+ var CH_FORM_FACTORS = CH + "-form-factors";
18149
+ var CH_MOBILE = CH + "-" + MOBILE;
18150
+ var CH_MODEL = CH + "-" + MODEL;
18151
+ var CH_PLATFORM = CH + "-" + PLATFORM;
18152
+ var CH_PLATFORM_VER = CH_PLATFORM + "-version";
18153
+ var CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS];
18154
+ var AMAZON = "Amazon";
18155
+ var APPLE = "Apple";
18156
+ var ASUS = "ASUS";
18157
+ var BLACKBERRY = "BlackBerry";
18158
+ var GOOGLE = "Google";
18159
+ var HUAWEI = "Huawei";
18160
+ var LENOVO = "Lenovo";
18161
+ var HONOR = "Honor";
18162
+ var LG = "LG";
18163
+ var MICROSOFT = "Microsoft";
18164
+ var MOTOROLA = "Motorola";
18165
+ var NVIDIA = "Nvidia";
18166
+ var ONEPLUS = "OnePlus";
18167
+ var OPPO = "OPPO";
18168
+ var SAMSUNG = "Samsung";
18169
+ var SHARP = "Sharp";
18170
+ var SONY = "Sony";
18171
+ var XIAOMI = "Xiaomi";
18172
+ var ZEBRA = "Zebra";
18173
+ var CHROME = "Chrome";
18174
+ var CHROMIUM = "Chromium";
18175
+ var CHROMECAST = "Chromecast";
18176
+ var EDGE = "Edge";
18177
+ var FIREFOX = "Firefox";
18178
+ var OPERA = "Opera";
18179
+ var FACEBOOK = "Facebook";
18180
+ var SOGOU = "Sogou";
18181
+ var PREFIX_MOBILE = "Mobile ";
18182
+ var SUFFIX_BROWSER = " Browser";
18183
+ var WINDOWS = "Windows";
18184
+ var isWindow = typeof window !== TYPEOF.UNDEFINED;
18185
+ var NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0;
18186
+ var NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
18187
+ var extend = function(defaultRgx, extensions) {
18188
+ var mergedRgx = {};
18189
+ var extraRgx = extensions;
18190
+ if (!isExtensions(extensions)) {
18191
+ extraRgx = {};
18192
+ for (var i in extensions) {
18193
+ for (var j2 in extensions[i]) {
18194
+ extraRgx[j2] = extensions[i][j2].concat(extraRgx[j2] ? extraRgx[j2] : []);
18195
+ }
18196
+ }
18197
+ }
18198
+ for (var k2 in defaultRgx) {
18199
+ mergedRgx[k2] = extraRgx[k2] && extraRgx[k2].length % 2 === 0 ? extraRgx[k2].concat(defaultRgx[k2]) : defaultRgx[k2];
18200
+ }
18201
+ return mergedRgx;
18202
+ };
18203
+ var enumerize = function(arr) {
18204
+ var enums = {};
18205
+ for (var i = 0; i < arr.length; i++) {
18206
+ enums[arr[i].toUpperCase()] = arr[i];
18207
+ }
18208
+ return enums;
18209
+ };
18210
+ var has = function(str1, str2) {
18211
+ if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {
18212
+ for (var i in str1) {
18213
+ if (lowerize(str2) == lowerize(str1[i]))
18214
+ return true;
18215
+ }
18216
+ return false;
18217
+ }
18218
+ return isString(str1) ? lowerize(str2) == lowerize(str1) : false;
18219
+ };
18220
+ var isExtensions = function(obj, deep) {
18221
+ for (var prop in obj) {
18222
+ return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);
18223
+ }
18224
+ };
18225
+ var isString = function(val) {
18226
+ return typeof val === TYPEOF.STRING;
18227
+ };
18228
+ var itemListToArray = function(header) {
18229
+ if (!header)
18230
+ return void 0;
18231
+ var arr = [];
18232
+ var tokens = strip(/\\?\"/g, header).split(",");
18233
+ for (var i = 0; i < tokens.length; i++) {
18234
+ if (tokens[i].indexOf(";") > -1) {
18235
+ var token = trim(tokens[i]).split(";v=");
18236
+ arr[i] = { brand: token[0], version: token[1] };
18237
+ } else {
18238
+ arr[i] = trim(tokens[i]);
18239
+ }
18240
+ }
18241
+ return arr;
18242
+ };
18243
+ var lowerize = function(str) {
18244
+ return isString(str) ? str.toLowerCase() : str;
18245
+ };
18246
+ var majorize = function(version) {
18247
+ return isString(version) ? strip(/[^\d\.]/g, version).split(".")[0] : void 0;
18248
+ };
18249
+ var setProps = function(arr) {
18250
+ for (var i in arr) {
18251
+ if (!arr.hasOwnProperty(i))
18252
+ continue;
18253
+ var propName = arr[i];
18254
+ if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {
18255
+ this[propName[0]] = propName[1];
18256
+ } else {
18257
+ this[propName] = void 0;
18258
+ }
18259
+ }
18260
+ return this;
18261
+ };
18262
+ var strip = function(pattern, str) {
18263
+ return isString(str) ? str.replace(pattern, EMPTY) : str;
18264
+ };
18265
+ var stripQuotes = function(str) {
18266
+ return strip(/\\?\"/g, str);
18267
+ };
18268
+ var trim = function(str, len) {
18269
+ str = strip(/^\s\s*/, String(str));
18270
+ return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
18271
+ };
18272
+ var rgxMapper = function(ua, arrays) {
18273
+ if (!ua || !arrays)
18274
+ return;
18275
+ var i = 0, j2, k2, p, q, matches, match18;
18276
+ while (i < arrays.length && !matches) {
18277
+ var regex = arrays[i], props = arrays[i + 1];
18278
+ j2 = k2 = 0;
18279
+ while (j2 < regex.length && !matches) {
18280
+ if (!regex[j2]) {
18281
+ break;
18282
+ }
18283
+ matches = regex[j2++].exec(ua);
18284
+ if (!!matches) {
18285
+ for (p = 0; p < props.length; p++) {
18286
+ match18 = matches[++k2];
18287
+ q = props[p];
18288
+ if (typeof q === TYPEOF.OBJECT && q.length > 0) {
18289
+ if (q.length === 2) {
18290
+ if (typeof q[1] == TYPEOF.FUNCTION) {
18291
+ this[q[0]] = q[1].call(this, match18);
18292
+ } else {
18293
+ this[q[0]] = q[1];
18294
+ }
18295
+ } else if (q.length >= 3) {
18296
+ if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {
18297
+ if (q.length > 3) {
18298
+ this[q[0]] = match18 ? q[1].apply(this, q.slice(2)) : void 0;
18299
+ } else {
18300
+ this[q[0]] = match18 ? q[1].call(this, match18, q[2]) : void 0;
18301
+ }
18302
+ } else {
18303
+ if (q.length == 3) {
18304
+ this[q[0]] = match18 ? match18.replace(q[1], q[2]) : void 0;
18305
+ } else if (q.length == 4) {
18306
+ this[q[0]] = match18 ? q[3].call(this, match18.replace(q[1], q[2])) : void 0;
18307
+ } else if (q.length > 4) {
18308
+ this[q[0]] = match18 ? q[3].apply(this, [match18.replace(q[1], q[2])].concat(q.slice(4))) : void 0;
18309
+ }
18310
+ }
18311
+ }
18312
+ } else {
18313
+ this[q] = match18 ? match18 : void 0;
18314
+ }
18315
+ }
18316
+ }
18317
+ }
18318
+ i += 2;
18319
+ }
18320
+ };
18321
+ var strMapper = function(str, map) {
18322
+ for (var i in map) {
18323
+ if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
18324
+ for (var j2 = 0; j2 < map[i].length; j2++) {
18325
+ if (has(map[i][j2], str)) {
18326
+ return i === UNKNOWN ? void 0 : i;
18327
+ }
18328
+ }
18329
+ } else if (has(map[i], str)) {
18330
+ return i === UNKNOWN ? void 0 : i;
18331
+ }
18332
+ }
18333
+ return map.hasOwnProperty("*") ? map["*"] : str;
18334
+ };
18335
+ var windowsVersionMap = {
18336
+ "ME": "4.90",
18337
+ "NT 3.51": "3.51",
18338
+ "NT 4.0": "4.0",
18339
+ "2000": ["5.0", "5.01"],
18340
+ "XP": ["5.1", "5.2"],
18341
+ "Vista": "6.0",
18342
+ "7": "6.1",
18343
+ "8": "6.2",
18344
+ "8.1": "6.3",
18345
+ "10": ["6.4", "10.0"],
18346
+ "NT": ""
18347
+ };
18348
+ var formFactorsMap = {
18349
+ "embedded": "Automotive",
18350
+ "mobile": "Mobile",
18351
+ "tablet": ["Tablet", "EInk"],
18352
+ "smarttv": "TV",
18353
+ "wearable": "Watch",
18354
+ "xr": ["VR", "XR"],
18355
+ "?": ["Desktop", "Unknown"],
18356
+ "*": void 0
18357
+ };
18358
+ var browserHintsMap = {
18359
+ "Chrome": "Google Chrome",
18360
+ "Edge": "Microsoft Edge",
18361
+ "Edge WebView2": "Microsoft Edge WebView2",
18362
+ "Chrome WebView": "Android WebView",
18363
+ "Chrome Headless": "HeadlessChrome",
18364
+ "Huawei Browser": "HuaweiBrowser",
18365
+ "MIUI Browser": "Miui Browser",
18366
+ "Opera Mobi": "OperaMobile",
18367
+ "Yandex": "YaBrowser"
18368
+ };
18369
+ var defaultRegexes = {
18370
+ browser: [
18371
+ [
18372
+ // Most common regardless engine
18373
+ /\b(?:crmo|crios)\/([\w\.]+)/i
18374
+ // Chrome for Android/iOS
18375
+ ],
18376
+ [VERSION, [NAME, PREFIX_MOBILE + "Chrome"]],
18377
+ [
18378
+ /webview.+edge\/([\w\.]+)/i
18379
+ // Microsoft Edge
18380
+ ],
18381
+ [VERSION, [NAME, EDGE + " WebView"]],
18382
+ [
18383
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
18384
+ ],
18385
+ [VERSION, [NAME, "Edge"]],
18386
+ [
18387
+ // Presto based
18388
+ /(opera mini)\/([-\w\.]+)/i,
18389
+ // Opera Mini
18390
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
18391
+ // Opera Mobi/Tablet
18392
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
18393
+ // Opera
18394
+ ],
18395
+ [NAME, VERSION],
18396
+ [
18397
+ /opios[\/ ]+([\w\.]+)/i
18398
+ // Opera mini on iphone >= 8.0
18399
+ ],
18400
+ [VERSION, [NAME, OPERA + " Mini"]],
18401
+ [
18402
+ /\bop(?:rg)?x\/([\w\.]+)/i
18403
+ // Opera GX
18404
+ ],
18405
+ [VERSION, [NAME, OPERA + " GX"]],
18406
+ [
18407
+ /\bopr\/([\w\.]+)/i
18408
+ // Opera Webkit
18409
+ ],
18410
+ [VERSION, [NAME, OPERA]],
18411
+ [
18412
+ // Mixed
18413
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
18414
+ // Baidu
18415
+ ],
18416
+ [VERSION, [NAME, "Baidu"]],
18417
+ [
18418
+ /\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
18419
+ // Maxthon
18420
+ ],
18421
+ [VERSION, [NAME, "Maxthon"]],
18422
+ [
18423
+ /(kindle)\/([\w\.]+)/i,
18424
+ // Kindle
18425
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
18426
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
18427
+ // Trident based
18428
+ /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
18429
+ // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
18430
+ /(?:ms|\()(ie) ([\w\.]+)/i,
18431
+ // Internet Explorer
18432
+ // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon
18433
+ /(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,
18434
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
18435
+ /(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,
18436
+ // HeyTap/Ovi/115/Surf
18437
+ /(qwant)(?:ios|mobile)\/([\d\.]+)/i,
18438
+ // Qwant
18439
+ /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
18440
+ // Ecosia/Weibo
18441
+ ],
18442
+ [NAME, VERSION],
18443
+ [
18444
+ /quark(?:pc)?\/([-\w\.]+)/i
18445
+ // Quark
18446
+ ],
18447
+ [VERSION, [NAME, "Quark"]],
18448
+ [
18449
+ /\bddg\/([\w\.]+)/i
18450
+ // DuckDuckGo
18451
+ ],
18452
+ [VERSION, [NAME, "DuckDuckGo"]],
18453
+ [
18454
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
18455
+ // UCBrowser
18456
+ ],
18457
+ [VERSION, [NAME, "UCBrowser"]],
18458
+ [
18459
+ /microm.+\bqbcore\/([\w\.]+)/i,
18460
+ // WeChat Desktop for Windows Built-in Browser
18461
+ /\bqbcore\/([\w\.]+).+microm/i,
18462
+ /micromessenger\/([\w\.]+)/i
18463
+ // WeChat
18464
+ ],
18465
+ [VERSION, [NAME, "WeChat"]],
18466
+ [
18467
+ /konqueror\/([\w\.]+)/i
18468
+ // Konqueror
18469
+ ],
18470
+ [VERSION, [NAME, "Konqueror"]],
18471
+ [
18472
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
18473
+ // IE11
18474
+ ],
18475
+ [VERSION, [NAME, "IE"]],
18476
+ [
18477
+ /ya(?:search)?browser\/([\w\.]+)/i
18478
+ // Yandex
18479
+ ],
18480
+ [VERSION, [NAME, "Yandex"]],
18481
+ [
18482
+ /slbrowser\/([\w\.]+)/i
18483
+ // Smart Lenovo Browser
18484
+ ],
18485
+ [VERSION, [NAME, "Smart " + LENOVO + SUFFIX_BROWSER]],
18486
+ [
18487
+ /(avast|avg)\/([\w\.]+)/i
18488
+ // Avast/AVG Secure Browser
18489
+ ],
18490
+ [[NAME, /(.+)/, "$1 Secure" + SUFFIX_BROWSER], VERSION],
18491
+ [
18492
+ /\bfocus\/([\w\.]+)/i
18493
+ // Firefox Focus
18494
+ ],
18495
+ [VERSION, [NAME, FIREFOX + " Focus"]],
18496
+ [
18497
+ /\bopt\/([\w\.]+)/i
18498
+ // Opera Touch
18499
+ ],
18500
+ [VERSION, [NAME, OPERA + " Touch"]],
18501
+ [
18502
+ /coc_coc\w+\/([\w\.]+)/i
18503
+ // Coc Coc Browser
18504
+ ],
18505
+ [VERSION, [NAME, "Coc Coc"]],
18506
+ [
18507
+ /dolfin\/([\w\.]+)/i
18508
+ // Dolphin
18509
+ ],
18510
+ [VERSION, [NAME, "Dolphin"]],
18511
+ [
18512
+ /coast\/([\w\.]+)/i
18513
+ // Opera Coast
18514
+ ],
18515
+ [VERSION, [NAME, OPERA + " Coast"]],
18516
+ [
18517
+ /miuibrowser\/([\w\.]+)/i
18518
+ // MIUI Browser
18519
+ ],
18520
+ [VERSION, [NAME, "MIUI" + SUFFIX_BROWSER]],
18521
+ [
18522
+ /fxios\/([\w\.-]+)/i
18523
+ // Firefox for iOS
18524
+ ],
18525
+ [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]],
18526
+ [
18527
+ /\bqihoobrowser\/?([\w\.]*)/i
18528
+ // 360
18529
+ ],
18530
+ [VERSION, [NAME, "360"]],
18531
+ [
18532
+ /\b(qq)\/([\w\.]+)/i
18533
+ // QQ
18534
+ ],
18535
+ [[NAME, /(.+)/, "$1Browser"], VERSION],
18536
+ [
18537
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
18538
+ ],
18539
+ [[NAME, /(.+)/, "$1" + SUFFIX_BROWSER], VERSION],
18540
+ [
18541
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
18542
+ /samsungbrowser\/([\w\.]+)/i
18543
+ // Samsung Internet
18544
+ ],
18545
+ [VERSION, [NAME, SAMSUNG + " Internet"]],
18546
+ [
18547
+ /metasr[\/ ]?([\d\.]+)/i
18548
+ // Sogou Explorer
18549
+ ],
18550
+ [VERSION, [NAME, SOGOU + " Explorer"]],
18551
+ [
18552
+ /(sogou)mo\w+\/([\d\.]+)/i
18553
+ // Sogou Mobile
18554
+ ],
18555
+ [[NAME, SOGOU + " Mobile"], VERSION],
18556
+ [
18557
+ /(electron)\/([\w\.]+) safari/i,
18558
+ // Electron-based App
18559
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
18560
+ // Tesla
18561
+ /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
18562
+ // QQ/2345
18563
+ ],
18564
+ [NAME, VERSION],
18565
+ [
18566
+ /(lbbrowser|rekonq)/i
18567
+ // LieBao Browser/Rekonq
18568
+ ],
18569
+ [NAME],
18570
+ [
18571
+ /ome\/([\w\.]+) \w* ?(iron) saf/i,
18572
+ // Iron
18573
+ /ome\/([\w\.]+).+qihu (360)[es]e/i
18574
+ // 360
18575
+ ],
18576
+ [VERSION, NAME],
18577
+ [
18578
+ // WebView
18579
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
18580
+ // Facebook App for iOS & Android
18581
+ ],
18582
+ [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]],
18583
+ [
18584
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
18585
+ // Kakao App
18586
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
18587
+ // Naver InApp
18588
+ /(daum)apps[\/ ]([\w\.]+)/i,
18589
+ // Daum App
18590
+ /safari (line)\/([\w\.]+)/i,
18591
+ // Line App for iOS
18592
+ /\b(line)\/([\w\.]+)\/iab/i,
18593
+ // Line App for Android
18594
+ /(alipay)client\/([\w\.]+)/i,
18595
+ // Alipay
18596
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
18597
+ // Twitter
18598
+ /(bing)(?:web|sapphire)\/([\w\.]+)/i,
18599
+ // Bing
18600
+ /(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
18601
+ // Instagram/Snapchat/Klarna
18602
+ ],
18603
+ [NAME, VERSION, [TYPE, INAPP]],
18604
+ [
18605
+ /\bgsa\/([\w\.]+) .*safari\//i
18606
+ // Google Search Appliance on iOS
18607
+ ],
18608
+ [VERSION, [NAME, "GSA"], [TYPE, INAPP]],
18609
+ [
18610
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
18611
+ // TikTok
18612
+ ],
18613
+ [VERSION, [NAME, "TikTok"], [TYPE, INAPP]],
18614
+ [
18615
+ /\[(linkedin)app\]/i
18616
+ // LinkedIn App for iOS & Android
18617
+ ],
18618
+ [NAME, [TYPE, INAPP]],
18619
+ [
18620
+ /(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
18621
+ // Zalo
18622
+ ],
18623
+ [[NAME, /(.+)/, "Zalo"], VERSION, [TYPE, INAPP]],
18624
+ [
18625
+ /(chromium)[\/ ]([-\w\.]+)/i
18626
+ // Chromium
18627
+ ],
18628
+ [NAME, VERSION],
18629
+ [
18630
+ /headlesschrome(?:\/([\w\.]+)| )/i
18631
+ // Chrome Headless
18632
+ ],
18633
+ [VERSION, [NAME, CHROME + " Headless"]],
18634
+ [
18635
+ /wv\).+chrome\/([\w\.]+).+edgw\//i
18636
+ // Edge WebView2
18637
+ ],
18638
+ [VERSION, [NAME, EDGE + " WebView2"]],
18639
+ [
18640
+ / wv\).+(chrome)\/([\w\.]+)/i
18641
+ // Chrome WebView
18642
+ ],
18643
+ [[NAME, CHROME + " WebView"], VERSION],
18644
+ [
18645
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
18646
+ // Android Browser
18647
+ ],
18648
+ [VERSION, [NAME, "Android" + SUFFIX_BROWSER]],
18649
+ [
18650
+ /chrome\/([\w\.]+) mobile/i
18651
+ // Chrome Mobile
18652
+ ],
18653
+ [VERSION, [NAME, PREFIX_MOBILE + "Chrome"]],
18654
+ [
18655
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
18656
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
18657
+ ],
18658
+ [NAME, VERSION],
18659
+ [
18660
+ /version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
18661
+ // Safari Mobile
18662
+ ],
18663
+ [VERSION, [NAME, PREFIX_MOBILE + "Safari"]],
18664
+ [
18665
+ /iphone .*mobile(?:\/\w+ | ?)safari/i
18666
+ ],
18667
+ [[NAME, PREFIX_MOBILE + "Safari"]],
18668
+ [
18669
+ /version\/([\w\.\,]+) .*(safari)/i
18670
+ // Safari
18671
+ ],
18672
+ [VERSION, NAME],
18673
+ [
18674
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
18675
+ // Safari < 3.0
18676
+ ],
18677
+ [NAME, [VERSION, "1"]],
18678
+ [
18679
+ /(webkit|khtml)\/([\w\.]+)/i
18680
+ ],
18681
+ [NAME, VERSION],
18682
+ [
18683
+ // Gecko based
18684
+ /(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
18685
+ // Firefox Mobile
18686
+ ],
18687
+ [[NAME, PREFIX_MOBILE + FIREFOX], VERSION],
18688
+ [
18689
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
18690
+ // Netscape
18691
+ ],
18692
+ [[NAME, "Netscape"], VERSION],
18693
+ [
18694
+ /(wolvic|librewolf)\/([\w\.]+)/i
18695
+ // Wolvic/LibreWolf
18696
+ ],
18697
+ [NAME, VERSION],
18698
+ [
18699
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
18700
+ // Firefox Reality
18701
+ ],
18702
+ [VERSION, [NAME, FIREFOX + " Reality"]],
18703
+ [
18704
+ /ekiohf.+(flow)\/([\w\.]+)/i,
18705
+ // Flow
18706
+ /(swiftfox)/i,
18707
+ // Swiftfox
18708
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
18709
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
18710
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,
18711
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
18712
+ /(firefox)\/([\w\.]+)/i,
18713
+ // Other Firefox-based
18714
+ /(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,
18715
+ // Mozilla
18716
+ // Other
18717
+ /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
18718
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
18719
+ /\b(links) \(([\w\.]+)/i
18720
+ // Links
18721
+ ],
18722
+ [NAME, [VERSION, /_/g, "."]],
18723
+ [
18724
+ /(cobalt)\/([\w\.]+)/i
18725
+ // Cobalt
18726
+ ],
18727
+ [NAME, [VERSION, /[^\d\.]+./, EMPTY]]
18728
+ ],
18729
+ cpu: [
18730
+ [
18731
+ /\b((amd|x|x86[-_]?|wow|win)64)\b/i
18732
+ // AMD64 (x64)
18733
+ ],
18734
+ [[ARCHITECTURE, "amd64"]],
18735
+ [
18736
+ /(ia32(?=;))/i,
18737
+ // IA32 (quicktime)
18738
+ /\b((i[346]|x)86)(pc)?\b/i
18739
+ // IA32 (x86)
18740
+ ],
18741
+ [[ARCHITECTURE, "ia32"]],
18742
+ [
18743
+ /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
18744
+ // ARM64
18745
+ ],
18746
+ [[ARCHITECTURE, "arm64"]],
18747
+ [
18748
+ /\b(arm(v[67])?ht?n?[fl]p?)\b/i
18749
+ // ARMHF
18750
+ ],
18751
+ [[ARCHITECTURE, "armhf"]],
18752
+ [
18753
+ // PocketPC mistakenly identified as PowerPC
18754
+ /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
18755
+ ],
18756
+ [[ARCHITECTURE, "arm"]],
18757
+ [
18758
+ / sun4\w[;\)]/i
18759
+ // SPARC
18760
+ ],
18761
+ [[ARCHITECTURE, "sparc"]],
18762
+ [
18763
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
18764
+ /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
18765
+ /((ppc|powerpc)(64)?)( mac|;|\))/i,
18766
+ // PowerPC
18767
+ /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
18768
+ // Alpha
18769
+ ],
18770
+ [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
18771
+ [
18772
+ /mc680.0/i
18773
+ ],
18774
+ [[ARCHITECTURE, "68k"]],
18775
+ [
18776
+ /winnt.+\[axp/i
18777
+ ],
18778
+ [[ARCHITECTURE, "alpha"]]
18779
+ ],
18780
+ device: [
18781
+ [
18782
+ //////////////////////////
18783
+ // MOBILES & TABLETS
18784
+ /////////////////////////
18785
+ // Samsung
18786
+ /\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
18787
+ ],
18788
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
18789
+ [
18790
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
18791
+ /samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
18792
+ /sec-(sgh\w+)/i
18793
+ ],
18794
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
18795
+ [
18796
+ // Apple
18797
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
18798
+ // iPod/iPhone
18799
+ ],
18800
+ [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
18801
+ [
18802
+ /\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
18803
+ // iPad
18804
+ /\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i
18805
+ ],
18806
+ [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
18807
+ [
18808
+ /(macintosh);/i
18809
+ ],
18810
+ [MODEL, [VENDOR, APPLE]],
18811
+ [
18812
+ // Sharp
18813
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
18814
+ ],
18815
+ [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
18816
+ [
18817
+ // Honor
18818
+ /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
18819
+ ],
18820
+ [MODEL, [VENDOR, HONOR], [TYPE, TABLET]],
18821
+ [
18822
+ /honor([-\w ]+)[;\)]/i
18823
+ ],
18824
+ [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]],
18825
+ [
18826
+ // Huawei
18827
+ /\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
18828
+ ],
18829
+ [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
18830
+ [
18831
+ /(?:huawei) ?([-\w ]+)[;\)]/i,
18832
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
18833
+ ],
18834
+ [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
18835
+ [
18836
+ // Xiaomi
18837
+ /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
18838
+ /\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
18839
+ // Mi Pad tablets
18840
+ ],
18841
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
18842
+ [
18843
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
18844
+ // Xiaomi POCO
18845
+ /\b; (\w+) build\/hm\1/i,
18846
+ // Xiaomi Hongmi 'numeric' models
18847
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
18848
+ // Xiaomi Hongmi
18849
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
18850
+ // Xiaomi Redmi
18851
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
18852
+ // Xiaomi Redmi 'numeric' models
18853
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
18854
+ // Xiaomi Mi
18855
+ / ([\w ]+) miui\/v?\d/i
18856
+ ],
18857
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
18858
+ [
18859
+ // OnePlus
18860
+ /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,
18861
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
18862
+ ],
18863
+ [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]],
18864
+ [
18865
+ // OPPO
18866
+ /; (\w+) bui.+ oppo/i,
18867
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
18868
+ ],
18869
+ [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]],
18870
+ [
18871
+ /\b(opd2(\d{3}a?))(?: bui|\))/i
18872
+ ],
18873
+ [MODEL, [VENDOR, strMapper, { "OnePlus": ["203", "304", "403", "404", "413", "415"], "*": OPPO }], [TYPE, TABLET]],
18874
+ [
18875
+ // BLU
18876
+ /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
18877
+ // Vivo series
18878
+ ],
18879
+ [MODEL, [VENDOR, "BLU"], [TYPE, MOBILE]],
18880
+ [
18881
+ // Vivo
18882
+ /; vivo (\w+)(?: bui|\))/i,
18883
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
18884
+ ],
18885
+ [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
18886
+ [
18887
+ // Realme
18888
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
18889
+ ],
18890
+ [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
18891
+ [
18892
+ // Lenovo
18893
+ /(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,
18894
+ /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
18895
+ ],
18896
+ [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]],
18897
+ [
18898
+ /lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
18899
+ ],
18900
+ [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]],
18901
+ [
18902
+ // Motorola
18903
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
18904
+ /\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
18905
+ /((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
18906
+ ],
18907
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
18908
+ [
18909
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
18910
+ ],
18911
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
18912
+ [
18913
+ // LG
18914
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
18915
+ ],
18916
+ [MODEL, [VENDOR, LG], [TYPE, TABLET]],
18917
+ [
18918
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
18919
+ /\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
18920
+ /\blg-?([\d\w]+) bui/i
18921
+ ],
18922
+ [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
18923
+ [
18924
+ // Nokia
18925
+ /(nokia) (t[12][01])/i
18926
+ ],
18927
+ [VENDOR, MODEL, [TYPE, TABLET]],
18928
+ [
18929
+ /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
18930
+ /nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
18931
+ ],
18932
+ [[MODEL, /_/g, " "], [TYPE, MOBILE], [VENDOR, "Nokia"]],
18933
+ [
18934
+ // Google
18935
+ /(pixel (c|tablet))\b/i
18936
+ // Google Pixel C/Tablet
18937
+ ],
18938
+ [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
18939
+ [
18940
+ // Google Pixel
18941
+ /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
18942
+ ],
18943
+ [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
18944
+ [
18945
+ /(google) (pixelbook( go)?)/i
18946
+ ],
18947
+ [VENDOR, MODEL],
18948
+ [
18949
+ // Sony
18950
+ /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
18951
+ ],
18952
+ [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
18953
+ [
18954
+ /sony tablet [ps]/i,
18955
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
18956
+ ],
18957
+ [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
18958
+ [
18959
+ // Amazon
18960
+ /(alexa)webm/i,
18961
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
18962
+ // Kindle Fire without Silk / Echo Show
18963
+ /(kf[a-z]+)( bui|\)).+silk\//i
18964
+ // Kindle Fire HD
18965
+ ],
18966
+ [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
18967
+ [
18968
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
18969
+ // Fire Phone
18970
+ ],
18971
+ [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
18972
+ [
18973
+ // BlackBerry
18974
+ /(playbook);[-\w\),; ]+(rim)/i
18975
+ // BlackBerry PlayBook
18976
+ ],
18977
+ [MODEL, VENDOR, [TYPE, TABLET]],
18978
+ [
18979
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
18980
+ /(?:blackberry|\(bb10;) (\w+)/i
18981
+ ],
18982
+ [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
18983
+ [
18984
+ // Asus
18985
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
18986
+ ],
18987
+ [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
18988
+ [
18989
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
18990
+ ],
18991
+ [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
18992
+ [
18993
+ // HTC
18994
+ /(nexus 9)/i
18995
+ // HTC Nexus 9
18996
+ ],
18997
+ [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
18998
+ [
18999
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
19000
+ // HTC
19001
+ // ZTE
19002
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
19003
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
19004
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
19005
+ ],
19006
+ [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
19007
+ [
19008
+ // TCL
19009
+ /tcl (xess p17aa)/i,
19010
+ /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
19011
+ ],
19012
+ [MODEL, [VENDOR, "TCL"], [TYPE, TABLET]],
19013
+ [
19014
+ /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
19015
+ ],
19016
+ [MODEL, [VENDOR, "TCL"], [TYPE, MOBILE]],
19017
+ [
19018
+ // itel
19019
+ /(itel) ((\w+))/i
19020
+ ],
19021
+ [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { "tablet": ["p10001l", "w7001"], "*": "mobile" }]],
19022
+ [
19023
+ // Acer
19024
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
19025
+ ],
19026
+ [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
19027
+ [
19028
+ // Meizu
19029
+ /droid.+; (m[1-5] note) bui/i,
19030
+ /\bmz-([-\w]{2,})/i
19031
+ ],
19032
+ [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
19033
+ [
19034
+ // Ulefone
19035
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
19036
+ ],
19037
+ [MODEL, [VENDOR, "Ulefone"], [TYPE, MOBILE]],
19038
+ [
19039
+ // Energizer
19040
+ /; (energy ?\w+)(?: bui|\))/i,
19041
+ /; energizer ([\w ]+)(?: bui|\))/i
19042
+ ],
19043
+ [MODEL, [VENDOR, "Energizer"], [TYPE, MOBILE]],
19044
+ [
19045
+ // Cat
19046
+ /; cat (b35);/i,
19047
+ /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
19048
+ ],
19049
+ [MODEL, [VENDOR, "Cat"], [TYPE, MOBILE]],
19050
+ [
19051
+ // Smartfren
19052
+ /((?:new )?andromax[\w- ]+)(?: bui|\))/i
19053
+ ],
19054
+ [MODEL, [VENDOR, "Smartfren"], [TYPE, MOBILE]],
19055
+ [
19056
+ // Nothing
19057
+ /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
19058
+ ],
19059
+ [MODEL, [VENDOR, "Nothing"], [TYPE, MOBILE]],
19060
+ [
19061
+ // Archos
19062
+ /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
19063
+ /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
19064
+ ],
19065
+ [MODEL, [VENDOR, "Archos"], [TYPE, TABLET]],
19066
+ [
19067
+ /archos ([\w ]+)( b|\))/i,
19068
+ /; (ac[3-6]\d\w{2,8})( b|\))/i
19069
+ ],
19070
+ [MODEL, [VENDOR, "Archos"], [TYPE, MOBILE]],
19071
+ [
19072
+ // HMD
19073
+ /; (n159v)/i
19074
+ ],
19075
+ [MODEL, [VENDOR, "HMD"], [TYPE, MOBILE]],
19076
+ [
19077
+ // MIXED
19078
+ /(imo) (tab \w+)/i,
19079
+ // IMO
19080
+ /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
19081
+ // Infinix XPad / Tecno
19082
+ ],
19083
+ [VENDOR, MODEL, [TYPE, TABLET]],
19084
+ [
19085
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
19086
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan
19087
+ // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko
19088
+ /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
19089
+ /(hp) ([\w ]+\w)/i,
19090
+ // HP iPAQ
19091
+ /(microsoft); (lumia[\w ]+)/i,
19092
+ // Microsoft Lumia
19093
+ /(oppo) ?([\w ]+) bui/i,
19094
+ // OPPO
19095
+ /(hisense) ([ehv][\w ]+)\)/i,
19096
+ // Hisense
19097
+ /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
19098
+ // Philips
19099
+ ],
19100
+ [VENDOR, MODEL, [TYPE, MOBILE]],
19101
+ [
19102
+ /(kobo)\s(ereader|touch)/i,
19103
+ // Kobo
19104
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
19105
+ // HP TouchPad
19106
+ /(kindle)\/([\w\.]+)/i
19107
+ // Kindle
19108
+ ],
19109
+ [VENDOR, MODEL, [TYPE, TABLET]],
19110
+ [
19111
+ /(surface duo)/i
19112
+ // Surface Duo
19113
+ ],
19114
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
19115
+ [
19116
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
19117
+ // Fairphone
19118
+ ],
19119
+ [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
19120
+ [
19121
+ /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
19122
+ // Nvidia Tablets
19123
+ ],
19124
+ [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]],
19125
+ [
19126
+ /(sprint) (\w+)/i
19127
+ // Sprint Phones
19128
+ ],
19129
+ [VENDOR, MODEL, [TYPE, MOBILE]],
19130
+ [
19131
+ /(kin\.[onetw]{3})/i
19132
+ // Microsoft Kin
19133
+ ],
19134
+ [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
19135
+ [
19136
+ /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
19137
+ // Zebra
19138
+ ],
19139
+ [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
19140
+ [
19141
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
19142
+ ],
19143
+ [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
19144
+ [
19145
+ ///////////////////
19146
+ // SMARTTVS
19147
+ ///////////////////
19148
+ /(philips)[\w ]+tv/i,
19149
+ // Philips
19150
+ /smart-tv.+(samsung)/i
19151
+ // Samsung
19152
+ ],
19153
+ [VENDOR, [TYPE, SMARTTV]],
19154
+ [
19155
+ /hbbtv.+maple;(\d+)/i
19156
+ ],
19157
+ [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
19158
+ [
19159
+ /(vizio)(?: |.+model\/)(\w+-\w+)/i,
19160
+ // Vizio
19161
+ /tcast.+(lg)e?. ([-\w]+)/i
19162
+ // LG SmartTV
19163
+ ],
19164
+ [VENDOR, MODEL, [TYPE, SMARTTV]],
19165
+ [
19166
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
19167
+ ],
19168
+ [[VENDOR, LG], [TYPE, SMARTTV]],
19169
+ [
19170
+ /(apple) ?tv/i
19171
+ // Apple TV
19172
+ ],
19173
+ [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
19174
+ [
19175
+ /crkey.*devicetype\/chromecast/i
19176
+ // Google Chromecast Third Generation
19177
+ ],
19178
+ [[MODEL, CHROMECAST + " Third Generation"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19179
+ [
19180
+ /crkey.*devicetype\/([^/]*)/i
19181
+ // Google Chromecast with specific device type
19182
+ ],
19183
+ [[MODEL, /^/, "Chromecast "], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19184
+ [
19185
+ /fuchsia.*crkey/i
19186
+ // Google Chromecast Nest Hub
19187
+ ],
19188
+ [[MODEL, CHROMECAST + " Nest Hub"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19189
+ [
19190
+ /crkey/i
19191
+ // Google Chromecast, Linux-based or unknown
19192
+ ],
19193
+ [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
19194
+ [
19195
+ /(portaltv)/i
19196
+ // Facebook Portal TV
19197
+ ],
19198
+ [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]],
19199
+ [
19200
+ /droid.+aft(\w+)( bui|\))/i
19201
+ // Fire TV
19202
+ ],
19203
+ [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
19204
+ [
19205
+ /(shield \w+ tv)/i
19206
+ // Nvidia Shield TV
19207
+ ],
19208
+ [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]],
19209
+ [
19210
+ /\(dtv[\);].+(aquos)/i,
19211
+ /(aquos-tv[\w ]+)\)/i
19212
+ // Sharp
19213
+ ],
19214
+ [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
19215
+ [
19216
+ /(bravia[\w ]+)( bui|\))/i
19217
+ // Sony
19218
+ ],
19219
+ [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
19220
+ [
19221
+ /(mi(tv|box)-?\w+) bui/i
19222
+ // Xiaomi
19223
+ ],
19224
+ [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
19225
+ [
19226
+ /Hbbtv.*(technisat) (.*);/i
19227
+ // TechniSAT
19228
+ ],
19229
+ [VENDOR, MODEL, [TYPE, SMARTTV]],
19230
+ [
19231
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
19232
+ // Roku
19233
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
19234
+ // HbbTV devices
19235
+ ],
19236
+ [[VENDOR, /.+\/(\w+)/, "$1", strMapper, { "LG": "lge" }], [MODEL, trim], [TYPE, SMARTTV]],
19237
+ [
19238
+ ///////////////////
19239
+ // CONSOLES
19240
+ ///////////////////
19241
+ /(playstation \w+)/i
19242
+ // Playstation
19243
+ ],
19244
+ [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
19245
+ [
19246
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
19247
+ // Microsoft Xbox
19248
+ ],
19249
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
19250
+ [
19251
+ /(ouya)/i,
19252
+ // Ouya
19253
+ /(nintendo) (\w+)/i,
19254
+ // Nintendo
19255
+ /(retroid) (pocket ([^\)]+))/i
19256
+ // Retroid Pocket
19257
+ ],
19258
+ [VENDOR, MODEL, [TYPE, CONSOLE]],
19259
+ [
19260
+ /droid.+; (shield)( bui|\))/i
19261
+ // Nvidia Portable
19262
+ ],
19263
+ [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]],
19264
+ [
19265
+ ///////////////////
19266
+ // WEARABLES
19267
+ ///////////////////
19268
+ /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
19269
+ // Samsung Galaxy Watch
19270
+ ],
19271
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]],
19272
+ [
19273
+ /((pebble))app/i,
19274
+ // Pebble
19275
+ /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
19276
+ // Asus ZenWatch / LG Watch / Pixel Watch
19277
+ ],
19278
+ [VENDOR, MODEL, [TYPE, WEARABLE]],
19279
+ [
19280
+ /(ow(?:19|20)?we?[1-3]{1,3})/i
19281
+ // Oppo Watch
19282
+ ],
19283
+ [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]],
19284
+ [
19285
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
19286
+ // Apple Watch
19287
+ ],
19288
+ [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
19289
+ [
19290
+ /(opwwe\d{3})/i
19291
+ // OnePlus Watch
19292
+ ],
19293
+ [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]],
19294
+ [
19295
+ /(moto 360)/i
19296
+ // Motorola 360
19297
+ ],
19298
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]],
19299
+ [
19300
+ /(smartwatch 3)/i
19301
+ // Sony SmartWatch
19302
+ ],
19303
+ [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]],
19304
+ [
19305
+ /(g watch r)/i
19306
+ // LG G Watch R
19307
+ ],
19308
+ [MODEL, [VENDOR, LG], [TYPE, WEARABLE]],
19309
+ [
19310
+ /droid.+; (wt63?0{2,3})\)/i
19311
+ ],
19312
+ [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
19313
+ [
19314
+ ///////////////////
19315
+ // XR
19316
+ ///////////////////
19317
+ /droid.+; (glass) \d/i
19318
+ // Google Glass
19319
+ ],
19320
+ [MODEL, [VENDOR, GOOGLE], [TYPE, XR]],
19321
+ [
19322
+ /(pico) ([\w ]+) os\d/i
19323
+ // Pico
19324
+ ],
19325
+ [VENDOR, MODEL, [TYPE, XR]],
19326
+ [
19327
+ /(quest( \d| pro)?s?).+vr/i
19328
+ // Meta Quest
19329
+ ],
19330
+ [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]],
19331
+ [
19332
+ /mobile vr; rv.+firefox/i
19333
+ // Unidentifiable VR device using Firefox Reality / Wolvic
19334
+ ],
19335
+ [[TYPE, XR]],
19336
+ [
19337
+ ///////////////////
19338
+ // EMBEDDED
19339
+ ///////////////////
19340
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
19341
+ // Tesla
19342
+ ],
19343
+ [VENDOR, [TYPE, EMBEDDED]],
19344
+ [
19345
+ /(aeobc)\b/i
19346
+ // Echo Dot
19347
+ ],
19348
+ [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
19349
+ [
19350
+ /(homepod).+mac os/i
19351
+ // Apple HomePod
19352
+ ],
19353
+ [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]],
19354
+ [
19355
+ /windows iot/i
19356
+ // Unidentifiable embedded device using Windows IoT
19357
+ ],
19358
+ [[TYPE, EMBEDDED]],
19359
+ [
19360
+ ////////////////////
19361
+ // MIXED (GENERIC)
19362
+ ///////////////////
19363
+ /droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
19364
+ // Unidentifiable SmartTV
19365
+ ],
19366
+ [MODEL, [TYPE, SMARTTV]],
19367
+ [
19368
+ /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
19369
+ ],
19370
+ [[TYPE, SMARTTV]],
19371
+ [
19372
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
19373
+ ],
19374
+ [MODEL, [TYPE, strMapper, { "mobile": "Mobile", "xr": "VR", "*": TABLET }]],
19375
+ [
19376
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
19377
+ // Unidentifiable Tablet
19378
+ ],
19379
+ [[TYPE, TABLET]],
19380
+ [
19381
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
19382
+ // Unidentifiable Mobile
19383
+ ],
19384
+ [[TYPE, MOBILE]],
19385
+ [
19386
+ /droid .+?; ([\w\. -]+)( bui|\))/i
19387
+ // Generic Android Device
19388
+ ],
19389
+ [MODEL, [VENDOR, "Generic"]]
19390
+ ],
19391
+ engine: [
19392
+ [
19393
+ /windows.+ edge\/([\w\.]+)/i
19394
+ // EdgeHTML
19395
+ ],
19396
+ [VERSION, [NAME, EDGE + "HTML"]],
19397
+ [
19398
+ /(arkweb)\/([\w\.]+)/i
19399
+ // ArkWeb
19400
+ ],
19401
+ [NAME, VERSION],
19402
+ [
19403
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
19404
+ // Blink
19405
+ ],
19406
+ [VERSION, [NAME, "Blink"]],
19407
+ [
19408
+ /(presto)\/([\w\.]+)/i,
19409
+ // Presto
19410
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,
19411
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
19412
+ /ekioh(flow)\/([\w\.]+)/i,
19413
+ // Flow
19414
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
19415
+ // KHTML/Tasman/Links
19416
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
19417
+ // iCab
19418
+ /\b(libweb)/i
19419
+ // LibWeb
19420
+ ],
19421
+ [NAME, VERSION],
19422
+ [
19423
+ /ladybird\//i
19424
+ ],
19425
+ [[NAME, "LibWeb"]],
19426
+ [
19427
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
19428
+ // Gecko
19429
+ ],
19430
+ [VERSION, NAME]
19431
+ ],
19432
+ os: [
19433
+ [
19434
+ // Windows
19435
+ /(windows nt) (6\.[23]); arm/i
19436
+ // Windows RT
19437
+ ],
19438
+ [[NAME, /N/, "R"], [VERSION, strMapper, windowsVersionMap]],
19439
+ [
19440
+ /(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
19441
+ // Windows IoT/Mobile/Phone
19442
+ // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
19443
+ /(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
19444
+ ],
19445
+ [NAME, VERSION],
19446
+ [
19447
+ /windows nt ?([\d\.\)]*)(?!.+xbox)/i,
19448
+ /\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
19449
+ ],
19450
+ [[VERSION, /(;|\))/g, "", strMapper, windowsVersionMap], [NAME, WINDOWS]],
19451
+ [
19452
+ /(windows ce)\/?([\d\.]*)/i
19453
+ // Windows CE
19454
+ ],
19455
+ [NAME, VERSION],
19456
+ [
19457
+ // iOS/macOS
19458
+ /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
19459
+ // iOS
19460
+ /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,
19461
+ /cfnetwork\/.+darwin/i
19462
+ ],
19463
+ [[VERSION, /_/g, "."], [NAME, "iOS"]],
19464
+ [
19465
+ /(mac os x) ?([\w\. ]*)/i,
19466
+ /(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
19467
+ // Mac OS
19468
+ ],
19469
+ [[NAME, "macOS"], [VERSION, /_/g, "."]],
19470
+ [
19471
+ // Google Chromecast
19472
+ /android ([\d\.]+).*crkey/i
19473
+ // Google Chromecast, Android-based
19474
+ ],
19475
+ [VERSION, [NAME, CHROMECAST + " Android"]],
19476
+ [
19477
+ /fuchsia.*crkey\/([\d\.]+)/i
19478
+ // Google Chromecast, Fuchsia-based
19479
+ ],
19480
+ [VERSION, [NAME, CHROMECAST + " Fuchsia"]],
19481
+ [
19482
+ /crkey\/([\d\.]+).*devicetype\/smartspeaker/i
19483
+ // Google Chromecast, Linux-based Smart Speaker
19484
+ ],
19485
+ [VERSION, [NAME, CHROMECAST + " SmartSpeaker"]],
19486
+ [
19487
+ /linux.*crkey\/([\d\.]+)/i
19488
+ // Google Chromecast, Legacy Linux-based
19489
+ ],
19490
+ [VERSION, [NAME, CHROMECAST + " Linux"]],
19491
+ [
19492
+ /crkey\/([\d\.]+)/i
19493
+ // Google Chromecast, unknown
19494
+ ],
19495
+ [VERSION, [NAME, CHROMECAST]],
19496
+ [
19497
+ // Mobile OSes
19498
+ /droid ([\w\.]+)\b.+(android[- ]x86)/i
19499
+ // Android-x86
19500
+ ],
19501
+ [VERSION, NAME],
19502
+ [
19503
+ /(ubuntu) ([\w\.]+) like android/i
19504
+ // Ubuntu Touch
19505
+ ],
19506
+ [[NAME, /(.+)/, "$1 Touch"], VERSION],
19507
+ [
19508
+ /(harmonyos)[\/ ]?([\d\.]*)/i,
19509
+ // HarmonyOS
19510
+ // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
19511
+ /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
19512
+ ],
19513
+ [NAME, VERSION],
19514
+ [
19515
+ /\(bb(10);/i
19516
+ // BlackBerry 10
19517
+ ],
19518
+ [VERSION, [NAME, BLACKBERRY]],
19519
+ [
19520
+ /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
19521
+ // Symbian
19522
+ ],
19523
+ [VERSION, [NAME, "Symbian"]],
19524
+ [
19525
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
19526
+ // Firefox OS
19527
+ ],
19528
+ [VERSION, [NAME, FIREFOX + " OS"]],
19529
+ [
19530
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
19531
+ // WebOS
19532
+ /webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
19533
+ ],
19534
+ [VERSION, [NAME, "webOS"]],
19535
+ [
19536
+ /web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
19537
+ // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
19538
+ ],
19539
+ [[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"]],
19540
+ [
19541
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
19542
+ // watchOS
19543
+ ],
19544
+ [VERSION, [NAME, "watchOS"]],
19545
+ [
19546
+ // Google ChromeOS
19547
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
19548
+ // Chromium OS
19549
+ ],
19550
+ [[NAME, "Chrome OS"], VERSION],
19551
+ [
19552
+ // Smart TVs
19553
+ /panasonic;(viera)/i,
19554
+ // Panasonic Viera
19555
+ /(netrange)mmh/i,
19556
+ // Netrange
19557
+ /(nettv)\/(\d+\.[\w\.]+)/i,
19558
+ // NetTV
19559
+ // Console
19560
+ /(nintendo|playstation) (\w+)/i,
19561
+ // Nintendo/Playstation
19562
+ /(xbox); +xbox ([^\);]+)/i,
19563
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
19564
+ /(pico) .+os([\w\.]+)/i,
19565
+ // Pico
19566
+ // Other
19567
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
19568
+ // Joli/Palm
19569
+ /linux.+(mint)[\/\(\) ]?([\w\.]*)/i,
19570
+ // Mint
19571
+ /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,
19572
+ // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch
19573
+ /([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,
19574
+ // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix
19575
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
19576
+ // Solaris
19577
+ /\b(aix)[; ]([1-9\.]{0,4})/i,
19578
+ // AIX
19579
+ /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,
19580
+ // Hurd/Linux/MorphOS
19581
+ /(gnu) ?([\w\.]*)/i,
19582
+ // GNU
19583
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
19584
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
19585
+ /(haiku) ?(r\d)?/i
19586
+ // Haiku
19587
+ ],
19588
+ [NAME, VERSION],
19589
+ [
19590
+ /(sunos) ?([\d\.]*)/i
19591
+ // Solaris
19592
+ ],
19593
+ [[NAME, "Solaris"], VERSION],
19594
+ [
19595
+ /\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
19596
+ // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
19597
+ /(unix) ?([\w\.]*)/i
19598
+ // UNIX
19599
+ ],
19600
+ [NAME, VERSION]
19601
+ ]
19602
+ };
19603
+ var defaultProps = function() {
19604
+ var props = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
19605
+ setProps.call(props.init, [
19606
+ [BROWSER, [NAME, VERSION, MAJOR, TYPE]],
19607
+ [CPU, [ARCHITECTURE]],
19608
+ [DEVICE, [TYPE, MODEL, VENDOR]],
19609
+ [ENGINE, [NAME, VERSION]],
19610
+ [OS, [NAME, VERSION]]
19611
+ ]);
19612
+ setProps.call(props.isIgnore, [
19613
+ [BROWSER, [VERSION, MAJOR]],
19614
+ [ENGINE, [VERSION]],
19615
+ [OS, [VERSION]]
19616
+ ]);
19617
+ setProps.call(props.isIgnoreRgx, [
19618
+ [BROWSER, / ?browser$/i],
19619
+ [OS, / ?os$/i]
19620
+ ]);
19621
+ setProps.call(props.toString, [
19622
+ [BROWSER, [NAME, VERSION]],
19623
+ [CPU, [ARCHITECTURE]],
19624
+ [DEVICE, [VENDOR, MODEL]],
19625
+ [ENGINE, [NAME, VERSION]],
19626
+ [OS, [NAME, VERSION]]
19627
+ ]);
19628
+ return props;
19629
+ }();
19630
+ var createIData = function(item, itemType) {
19631
+ var init_props = defaultProps.init[itemType], is_ignoreProps = defaultProps.isIgnore[itemType] || 0, is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0, toString_props = defaultProps.toString[itemType] || 0;
19632
+ function IData() {
19633
+ setProps.call(this, init_props);
19634
+ }
19635
+ IData.prototype.getItem = function() {
19636
+ return item;
19637
+ };
19638
+ IData.prototype.withClientHints = function() {
19639
+ if (!NAVIGATOR_UADATA) {
19640
+ return item.parseCH().get();
19641
+ }
19642
+ return NAVIGATOR_UADATA.getHighEntropyValues(CH_ALL_VALUES).then(function(res) {
19643
+ return item.setCH(new UACHData(res, false)).parseCH().get();
19644
+ });
19645
+ };
19646
+ IData.prototype.withFeatureCheck = function() {
19647
+ return item.detectFeature().get();
19648
+ };
19649
+ if (itemType != RESULT) {
19650
+ IData.prototype.is = function(strToCheck) {
19651
+ var is2 = false;
19652
+ for (var i in this) {
19653
+ 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)) {
19654
+ is2 = true;
19655
+ if (strToCheck != TYPEOF.UNDEFINED)
19656
+ break;
19657
+ } else if (strToCheck == TYPEOF.UNDEFINED && is2) {
19658
+ is2 = !is2;
19659
+ break;
19660
+ }
19661
+ }
19662
+ return is2;
19663
+ };
19664
+ IData.prototype.toString = function() {
19665
+ var str = EMPTY;
19666
+ for (var i in toString_props) {
19667
+ if (typeof this[toString_props[i]] !== TYPEOF.UNDEFINED) {
19668
+ str += (str ? " " : EMPTY) + this[toString_props[i]];
19669
+ }
19670
+ }
19671
+ return str || TYPEOF.UNDEFINED;
19672
+ };
19673
+ }
19674
+ if (!NAVIGATOR_UADATA) {
19675
+ IData.prototype.then = function(cb) {
19676
+ var that = this;
19677
+ var IDataResolve = function() {
19678
+ for (var prop in that) {
19679
+ if (that.hasOwnProperty(prop)) {
19680
+ this[prop] = that[prop];
19681
+ }
19682
+ }
19683
+ };
19684
+ IDataResolve.prototype = {
19685
+ is: IData.prototype.is,
19686
+ toString: IData.prototype.toString
19687
+ };
19688
+ var resolveData = new IDataResolve();
19689
+ cb(resolveData);
19690
+ return resolveData;
19691
+ };
19692
+ }
19693
+ return new IData();
19694
+ };
19695
+ function UACHData(uach, isHttpUACH) {
19696
+ uach = uach || {};
19697
+ setProps.call(this, CH_ALL_VALUES);
19698
+ if (isHttpUACH) {
19699
+ setProps.call(this, [
19700
+ [BRANDS, itemListToArray(uach[CH])],
19701
+ [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],
19702
+ [MOBILE, /\?1/.test(uach[CH_MOBILE])],
19703
+ [MODEL, stripQuotes(uach[CH_MODEL])],
19704
+ [PLATFORM, stripQuotes(uach[CH_PLATFORM])],
19705
+ [PLATFORMVER, stripQuotes(uach[CH_PLATFORM_VER])],
19706
+ [ARCHITECTURE, stripQuotes(uach[CH_ARCH])],
19707
+ [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],
19708
+ [BITNESS, stripQuotes(uach[CH_BITNESS])]
19709
+ ]);
19710
+ } else {
19711
+ for (var prop in uach) {
19712
+ if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED)
19713
+ this[prop] = uach[prop];
19714
+ }
19715
+ }
19716
+ }
19717
+ function UAItem(itemType, ua, rgxMap, uaCH) {
19718
+ this.get = function(prop) {
19719
+ if (!prop)
19720
+ return this.data;
19721
+ return this.data.hasOwnProperty(prop) ? this.data[prop] : void 0;
19722
+ };
19723
+ this.set = function(prop, val) {
19724
+ this.data[prop] = val;
19725
+ return this;
19726
+ };
19727
+ this.setCH = function(ch) {
19728
+ this.uaCH = ch;
19729
+ return this;
19730
+ };
19731
+ this.detectFeature = function() {
19732
+ if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {
19733
+ switch (this.itemType) {
19734
+ case BROWSER:
19735
+ if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {
19736
+ this.set(NAME, "Brave");
19737
+ }
19738
+ break;
19739
+ case DEVICE:
19740
+ if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {
19741
+ this.set(TYPE, MOBILE);
19742
+ }
19743
+ if (this.get(MODEL) == "Macintosh" && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {
19744
+ this.set(MODEL, "iPad").set(TYPE, TABLET);
19745
+ }
19746
+ break;
19747
+ case OS:
19748
+ if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {
19749
+ this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);
19750
+ }
19751
+ break;
19752
+ case RESULT:
19753
+ var data3 = this.data;
19754
+ var detect = function(itemType2) {
19755
+ return data3[itemType2].getItem().detectFeature().get();
19756
+ };
19757
+ this.set(BROWSER, detect(BROWSER)).set(CPU, detect(CPU)).set(DEVICE, detect(DEVICE)).set(ENGINE, detect(ENGINE)).set(OS, detect(OS));
19758
+ }
19759
+ }
19760
+ return this;
19761
+ };
19762
+ this.parseUA = function() {
19763
+ if (this.itemType != RESULT) {
19764
+ rgxMapper.call(this.data, this.ua, this.rgxMap);
19765
+ }
19766
+ switch (this.itemType) {
19767
+ case BROWSER:
19768
+ this.set(MAJOR, majorize(this.get(VERSION)));
19769
+ break;
19770
+ case OS:
19771
+ if (this.get(NAME) == "iOS" && this.get(VERSION) == "18.6") {
19772
+ var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
19773
+ if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) {
19774
+ this.set(VERSION, realVersion[1]);
19775
+ }
19776
+ }
19777
+ break;
19778
+ }
19779
+ return this;
19780
+ };
19781
+ this.parseCH = function() {
19782
+ var uaCH2 = this.uaCH, rgxMap2 = this.rgxMap;
19783
+ switch (this.itemType) {
19784
+ case BROWSER:
19785
+ case ENGINE:
19786
+ var brands = uaCH2[FULLVERLIST] || uaCH2[BRANDS], prevName;
19787
+ if (brands) {
19788
+ for (var i = 0; i < brands.length; i++) {
19789
+ var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
19790
+ if (this.itemType == BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
19791
+ brandName = strMapper(brandName, browserHintsMap);
19792
+ prevName = this.get(NAME);
19793
+ if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {
19794
+ this.set(NAME, brandName).set(VERSION, brandVersion).set(MAJOR, majorize(brandVersion));
19795
+ }
19796
+ prevName = brandName;
19797
+ }
19798
+ if (this.itemType == ENGINE && brandName == CHROMIUM) {
19799
+ this.set(VERSION, brandVersion);
19800
+ }
19801
+ }
19802
+ }
19803
+ break;
19804
+ case CPU:
19805
+ var archName = uaCH2[ARCHITECTURE];
19806
+ if (archName) {
19807
+ if (archName && uaCH2[BITNESS] == "64")
19808
+ archName += "64";
19809
+ rgxMapper.call(this.data, archName + ";", rgxMap2);
19810
+ }
19811
+ break;
19812
+ case DEVICE:
19813
+ if (uaCH2[MOBILE]) {
19814
+ this.set(TYPE, MOBILE);
19815
+ }
19816
+ if (uaCH2[MODEL]) {
19817
+ this.set(MODEL, uaCH2[MODEL]);
19818
+ if (!this.get(TYPE) || !this.get(VENDOR)) {
19819
+ var reParse = {};
19820
+ rgxMapper.call(reParse, "droid 9; " + uaCH2[MODEL] + ")", rgxMap2);
19821
+ if (!this.get(TYPE) && !!reParse.type) {
19822
+ this.set(TYPE, reParse.type);
19823
+ }
19824
+ if (!this.get(VENDOR) && !!reParse.vendor) {
19825
+ this.set(VENDOR, reParse.vendor);
19826
+ }
19827
+ }
19828
+ }
19829
+ if (uaCH2[FORMFACTORS]) {
19830
+ var ff;
19831
+ if (typeof uaCH2[FORMFACTORS] !== "string") {
19832
+ var idx = 0;
19833
+ while (!ff && idx < uaCH2[FORMFACTORS].length) {
19834
+ ff = strMapper(uaCH2[FORMFACTORS][idx++], formFactorsMap);
19835
+ }
19836
+ } else {
19837
+ ff = strMapper(uaCH2[FORMFACTORS], formFactorsMap);
19838
+ }
19839
+ this.set(TYPE, ff);
19840
+ }
19841
+ break;
19842
+ case OS:
19843
+ var osName = uaCH2[PLATFORM];
19844
+ if (osName) {
19845
+ var osVersion = uaCH2[PLATFORMVER];
19846
+ if (osName == WINDOWS)
19847
+ osVersion = parseInt(majorize(osVersion), 10) >= 13 ? "11" : "10";
19848
+ this.set(NAME, osName).set(VERSION, osVersion);
19849
+ }
19850
+ if (this.get(NAME) == WINDOWS && uaCH2[MODEL] == "Xbox") {
19851
+ this.set(NAME, "Xbox").set(VERSION, void 0);
19852
+ }
19853
+ break;
19854
+ case RESULT:
19855
+ var data3 = this.data;
19856
+ var parse2 = function(itemType2) {
19857
+ return data3[itemType2].getItem().setCH(uaCH2).parseCH().get();
19858
+ };
19859
+ this.set(BROWSER, parse2(BROWSER)).set(CPU, parse2(CPU)).set(DEVICE, parse2(DEVICE)).set(ENGINE, parse2(ENGINE)).set(OS, parse2(OS));
19860
+ }
19861
+ return this;
19862
+ };
19863
+ setProps.call(this, [
19864
+ ["itemType", itemType],
19865
+ ["ua", ua],
19866
+ ["uaCH", uaCH],
19867
+ ["rgxMap", rgxMap],
19868
+ ["data", createIData(this, itemType)]
19869
+ ]);
19870
+ return this;
19871
+ }
19872
+ function UAParser(ua, extensions, headers) {
19873
+ if (typeof ua === TYPEOF.OBJECT) {
19874
+ if (isExtensions(ua, true)) {
19875
+ if (typeof extensions === TYPEOF.OBJECT) {
19876
+ headers = extensions;
19877
+ }
19878
+ extensions = ua;
19879
+ } else {
19880
+ headers = ua;
19881
+ extensions = void 0;
19882
+ }
19883
+ ua = void 0;
19884
+ } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {
19885
+ headers = extensions;
19886
+ extensions = void 0;
19887
+ }
19888
+ if (headers) {
19889
+ if (typeof headers.append === TYPEOF.FUNCTION) {
19890
+ var kv = {};
19891
+ headers.forEach(function(v, k2) {
19892
+ kv[String(k2).toLowerCase()] = v;
19893
+ });
19894
+ headers = kv;
19895
+ } else {
19896
+ var normalized = {};
19897
+ for (var header in headers) {
19898
+ if (headers.hasOwnProperty(header)) {
19899
+ normalized[String(header).toLowerCase()] = headers[header];
19900
+ }
19901
+ }
19902
+ headers = normalized;
19903
+ }
19904
+ }
19905
+ if (!(this instanceof UAParser)) {
19906
+ return new UAParser(ua, extensions, headers).getResult();
19907
+ }
19908
+ var userAgent = typeof ua === TYPEOF.STRING ? ua : (
19909
+ // Passed user-agent string
19910
+ headers && headers[USER_AGENT] ? headers[USER_AGENT] : (
19911
+ // User-Agent from passed headers
19912
+ NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : (
19913
+ // navigator.userAgent
19914
+ EMPTY
19915
+ )
19916
+ )
19917
+ ), httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
19918
+ if (itemType == RESULT) {
19919
+ return function() {
19920
+ 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();
19921
+ };
19922
+ } else {
19923
+ return function() {
19924
+ return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH).parseUA().get();
19925
+ };
19926
+ }
19927
+ };
19928
+ setProps.call(this, [
19929
+ ["getBrowser", createItemFunc(BROWSER)],
19930
+ ["getCPU", createItemFunc(CPU)],
19931
+ ["getDevice", createItemFunc(DEVICE)],
19932
+ ["getEngine", createItemFunc(ENGINE)],
19933
+ ["getOS", createItemFunc(OS)],
19934
+ ["getResult", createItemFunc(RESULT)],
19935
+ ["getUA", function() {
19936
+ return userAgent;
19937
+ }],
19938
+ ["setUA", function(ua2) {
19939
+ if (isString(ua2))
19940
+ userAgent = trim(ua2, UA_MAX_LENGTH);
19941
+ return this;
19942
+ }]
19943
+ ]).setUA(userAgent);
19944
+ return this;
19945
+ }
19946
+ UAParser.VERSION = LIBVERSION;
19947
+ UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);
19948
+ UAParser.CPU = enumerize([ARCHITECTURE]);
19949
+ UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
19950
+ UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
19951
+
19358
19952
  // ../hms-video-store/dist/index.js
19359
- var import_ua_parser_js = __toESM(require_ua_parser());
19360
19953
  var import_lodash3 = __toESM(require_lodash2());
19361
- import { v4 as Io } from "uuid";
19362
- import { v4 as bo } from "uuid";
19363
- import { v4 as Do } from "uuid";
19954
+ import { v4 as Lo } from "uuid";
19955
+ import { v4 as Ho } from "uuid";
19956
+ import { v4 as Oo } from "uuid";
19364
19957
 
19365
19958
  // ../../node_modules/webrtc-adapter/src/js/adapter_core.js
19366
19959
  init_define_process_env();
@@ -19598,7 +20191,7 @@ function shimGetUserMedia(window2, browserDetails) {
19598
20191
  if (typeof c2 !== "object" || c2.mandatory || c2.optional) {
19599
20192
  return c2;
19600
20193
  }
19601
- const cc = {};
20194
+ const cc2 = {};
19602
20195
  Object.keys(c2).forEach((key) => {
19603
20196
  if (key === "require" || key === "advanced" || key === "mediaSource") {
19604
20197
  return;
@@ -19614,35 +20207,35 @@ function shimGetUserMedia(window2, browserDetails) {
19614
20207
  return name === "deviceId" ? "sourceId" : name;
19615
20208
  };
19616
20209
  if (r.ideal !== void 0) {
19617
- cc.optional = cc.optional || [];
20210
+ cc2.optional = cc2.optional || [];
19618
20211
  let oc2 = {};
19619
20212
  if (typeof r.ideal === "number") {
19620
20213
  oc2[oldname_("min", key)] = r.ideal;
19621
- cc.optional.push(oc2);
20214
+ cc2.optional.push(oc2);
19622
20215
  oc2 = {};
19623
20216
  oc2[oldname_("max", key)] = r.ideal;
19624
- cc.optional.push(oc2);
20217
+ cc2.optional.push(oc2);
19625
20218
  } else {
19626
20219
  oc2[oldname_("", key)] = r.ideal;
19627
- cc.optional.push(oc2);
20220
+ cc2.optional.push(oc2);
19628
20221
  }
19629
20222
  }
19630
20223
  if (r.exact !== void 0 && typeof r.exact !== "number") {
19631
- cc.mandatory = cc.mandatory || {};
19632
- cc.mandatory[oldname_("", key)] = r.exact;
20224
+ cc2.mandatory = cc2.mandatory || {};
20225
+ cc2.mandatory[oldname_("", key)] = r.exact;
19633
20226
  } else {
19634
20227
  ["min", "max"].forEach((mix) => {
19635
20228
  if (r[mix] !== void 0) {
19636
- cc.mandatory = cc.mandatory || {};
19637
- cc.mandatory[oldname_(mix, key)] = r[mix];
20229
+ cc2.mandatory = cc2.mandatory || {};
20230
+ cc2.mandatory[oldname_(mix, key)] = r[mix];
19638
20231
  }
19639
20232
  });
19640
20233
  }
19641
20234
  });
19642
20235
  if (c2.advanced) {
19643
- cc.optional = (cc.optional || []).concat(c2.advanced);
20236
+ cc2.optional = (cc2.optional || []).concat(c2.advanced);
19644
20237
  }
19645
- return cc;
20238
+ return cc2;
19646
20239
  };
19647
20240
  const shimConstraints_ = function(constraints, func) {
19648
20241
  if (browserDetails.version >= 61) {
@@ -21185,15 +21778,15 @@ function shimSendThrowTypeError(window2) {
21185
21778
  if (!(window2.RTCPeerConnection && "createDataChannel" in window2.RTCPeerConnection.prototype)) {
21186
21779
  return;
21187
21780
  }
21188
- function wrapDcSend(dc, pc) {
21189
- const origDataChannelSend = dc.send;
21190
- dc.send = function send() {
21781
+ function wrapDcSend(dc2, pc) {
21782
+ const origDataChannelSend = dc2.send;
21783
+ dc2.send = function send() {
21191
21784
  const data3 = arguments[0];
21192
21785
  const length = data3.length || data3.size || data3.byteLength;
21193
- if (dc.readyState === "open" && pc.sctp && length > pc.sctp.maxMessageSize) {
21786
+ if (dc2.readyState === "open" && pc.sctp && length > pc.sctp.maxMessageSize) {
21194
21787
  throw new TypeError("Message too large (can send a maximum of " + pc.sctp.maxMessageSize + " bytes)");
21195
21788
  }
21196
- return origDataChannelSend.apply(dc, arguments);
21789
+ return origDataChannelSend.apply(dc2, arguments);
21197
21790
  };
21198
21791
  }
21199
21792
  const origCreateDataChannel = window2.RTCPeerConnection.prototype.createDataChannel;
@@ -21457,42 +22050,42 @@ var adapter = adapterFactory({ window: typeof window === "undefined" ? void 0 :
21457
22050
 
21458
22051
  // ../hms-video-store/dist/index.js
21459
22052
  var import_lodash4 = __toESM(require_lodash2());
21460
- import { v4 as xo } from "uuid";
21461
- import { v4 as Wo } from "uuid";
21462
- import { EventEmitter2 as $o } from "eventemitter2";
21463
- var Yt = __toESM(require_lib());
21464
- import { EventEmitter2 as fn } from "eventemitter2";
21465
- import { v4 as En } from "uuid";
21466
- import { EventEmitter2 as Pn } from "eventemitter2";
21467
- import An from "eventemitter2";
22053
+ import { v4 as Fo } from "uuid";
22054
+ import { v4 as jo } from "uuid";
22055
+ import { EventEmitter2 as Jo } from "eventemitter2";
22056
+ var Zt = __toESM(require_lib());
22057
+ import { EventEmitter2 as kn } from "eventemitter2";
21468
22058
  import { v4 as In } from "uuid";
21469
- import { v4 as Cn } from "uuid";
21470
- var po = Object.defineProperty;
21471
- var ho = Object.defineProperties;
21472
- var mo = Object.getOwnPropertyDescriptors;
21473
- var ai = Object.getOwnPropertySymbols;
21474
- var Ss = Object.prototype.hasOwnProperty;
21475
- var gs = Object.prototype.propertyIsEnumerable;
21476
- var ms = (a2, e, t) => e in a2 ? po(a2, e, { enumerable: true, configurable: true, writable: true, value: t }) : a2[e] = t;
22059
+ import { EventEmitter2 as Rn } from "eventemitter2";
22060
+ import Cn from "eventemitter2";
22061
+ import { v4 as Ln } from "uuid";
22062
+ import { v4 as _n } from "uuid";
22063
+ var go = Object.defineProperty;
22064
+ var To = Object.defineProperties;
22065
+ var fo = Object.getOwnPropertyDescriptors;
22066
+ var ni = Object.getOwnPropertySymbols;
22067
+ var vs = Object.prototype.hasOwnProperty;
22068
+ var Ms = Object.prototype.propertyIsEnumerable;
22069
+ var fs = (a2, e, t) => e in a2 ? go(a2, e, { enumerable: true, configurable: true, writable: true, value: t }) : a2[e] = t;
21477
22070
  var m = (a2, e) => {
21478
22071
  for (var t in e || (e = {}))
21479
- Ss.call(e, t) && ms(a2, t, e[t]);
21480
- if (ai)
21481
- for (var t of ai(e))
21482
- gs.call(e, t) && ms(a2, t, e[t]);
22072
+ vs.call(e, t) && fs(a2, t, e[t]);
22073
+ if (ni)
22074
+ for (var t of ni(e))
22075
+ Ms.call(e, t) && fs(a2, t, e[t]);
21483
22076
  return a2;
21484
22077
  };
21485
- var M = (a2, e) => ho(a2, mo(e));
21486
- var yr = (a2, e) => {
22078
+ var M = (a2, e) => To(a2, fo(e));
22079
+ var Er = (a2, e) => {
21487
22080
  var t = {};
21488
22081
  for (var i in a2)
21489
- Ss.call(a2, i) && e.indexOf(i) < 0 && (t[i] = a2[i]);
21490
- if (a2 != null && ai)
21491
- for (var i of ai(a2))
21492
- e.indexOf(i) < 0 && gs.call(a2, i) && (t[i] = a2[i]);
22082
+ vs.call(a2, i) && e.indexOf(i) < 0 && (t[i] = a2[i]);
22083
+ if (a2 != null && ni)
22084
+ for (var i of ni(a2))
22085
+ e.indexOf(i) < 0 && Ms.call(a2, i) && (t[i] = a2[i]);
21493
22086
  return t;
21494
22087
  };
21495
- var To = (a2, e) => () => (e || a2((e = { exports: {} }).exports, e), e.exports);
22088
+ var yo = (a2, e) => () => (e || a2((e = { exports: {} }).exports, e), e.exports);
21496
22089
  var c = (a2, e, t) => new Promise((i, r) => {
21497
22090
  var s = (d) => {
21498
22091
  try {
@@ -21509,51 +22102,51 @@ var c = (a2, e, t) => new Promise((i, r) => {
21509
22102
  }, n = (d) => d.done ? i(d.value) : Promise.resolve(d.value).then(s, o);
21510
22103
  n((t = t.apply(a2, e)).next());
21511
22104
  });
21512
- var Ar = To((Yc, Ao) => {
21513
- 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"] };
22105
+ var Cr = yo((id, Co) => {
22106
+ 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"] };
21514
22107
  });
21515
- 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 || {});
21516
- var fo = ((e) => (e.CHAT = "chat", e))(fo || {});
21517
- var Ts = ((t) => (t.INFO = "info", t.ERROR = "error", t))(Ts || {});
21518
- 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 || {});
21519
- var fs = ((t) => (t.audio = "audio", t.video = "video", t))(fs || {});
21520
- function Fe(a2, e) {
22108
+ 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 || {});
22109
+ var ko = ((e) => (e.CHAT = "chat", e))(ko || {});
22110
+ var ys = ((t) => (t.INFO = "info", t.ERROR = "error", t))(ys || {});
22111
+ 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 || {});
22112
+ var ks = ((t) => (t.audio = "audio", t.video = "video", t))(ks || {});
22113
+ function Ge(a2, e) {
21521
22114
  let t, i;
21522
22115
  if (e)
21523
22116
  for (let r of e.auxiliaryTracks) {
21524
22117
  let s = a2[r];
21525
- vo(s) && (i = gt(s) ? s : i, t = Tt(s) ? s : t);
22118
+ Eo(s) && (i = Tt(s) ? s : i, t = ft(s) ? s : t);
21526
22119
  }
21527
22120
  return { video: t, audio: i };
21528
22121
  }
21529
- function gt(a2) {
22122
+ function Tt(a2) {
21530
22123
  return a2 && a2.type === "audio";
21531
22124
  }
21532
- function Tt(a2) {
22125
+ function ft(a2) {
21533
22126
  return a2 && a2.type === "video";
21534
22127
  }
21535
- function vo(a2) {
22128
+ function Eo(a2) {
21536
22129
  return a2 && a2.source === "screen";
21537
22130
  }
21538
- function ci(a2) {
22131
+ function li(a2) {
21539
22132
  return a2 && a2.source === "audioplaylist";
21540
22133
  }
21541
- function ft(a2) {
22134
+ function vt(a2) {
21542
22135
  return a2 && a2.source === "videoplaylist";
21543
22136
  }
21544
- function vs(a2) {
22137
+ function Es(a2) {
21545
22138
  return a2 ? !!(a2 != null && a2.degraded) : false;
21546
22139
  }
21547
- function ze(a2, e) {
22140
+ function Ye(a2, e) {
21548
22141
  return e && a2.tracks[e] ? a2.tracks[e].enabled : false;
21549
22142
  }
21550
- function vt(a2) {
22143
+ function Mt(a2) {
21551
22144
  var r;
21552
22145
  let e = false, t = false, i = false;
21553
22146
  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 };
21554
22147
  }
21555
- 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 || {});
21556
- var Mo = typeof window != "undefined" && typeof window.expect != "undefined";
22148
+ 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 || {});
22149
+ var Po = typeof window != "undefined" && typeof window.expect != "undefined";
21557
22150
  var l = class {
21558
22151
  static v(e, ...t) {
21559
22152
  this.log(0, e, ...t);
@@ -21619,31 +22212,46 @@ var l = class {
21619
22212
  }
21620
22213
  }
21621
22214
  };
21622
- l.level = Mo ? 7 : 0;
21623
- var he = new import_ua_parser_js.UAParser();
21624
- var U = typeof window != "undefined";
21625
- var ks;
21626
- var Ge = typeof window == "undefined" && !((ks = he.getBrowser().name) != null && ks.toLowerCase().includes("electron"));
21627
- var ko = () => !Ge;
21628
- var Mc = ko();
21629
- var Es;
21630
- var Ps;
21631
- var Ls = (Ps = (Es = he.getBrowser()) == null ? void 0 : Es.name) == null ? void 0 : Ps.toLowerCase().includes("safari");
21632
- var bs;
22215
+ l.level = Po ? 7 : 0;
22216
+ var Ar = new UAParser();
22217
+ var yt = null;
22218
+ var Ir = null;
22219
+ var x = typeof window != "undefined";
22220
+ if (x)
22221
+ try {
22222
+ let a2 = Ar.getResult(), e = a2.withClientHints();
22223
+ e && typeof e.then == "function" ? (Ir = e, Ir.then((t) => {
22224
+ yt = t;
22225
+ }).catch(() => {
22226
+ yt = a2;
22227
+ })) : (l.d("UAParser", "Client Hints not supported, using standard UA parsing"), yt = e);
22228
+ } catch (a2) {
22229
+ yt = Ar.getResult();
22230
+ }
22231
+ var De = () => yt || Ar.getResult();
22232
+ 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()) };
21633
22233
  var As;
21634
- var Ds = ((As = (bs = he.getBrowser()) == null ? void 0 : bs.name) == null ? void 0 : As.toLowerCase()) === "firefox";
22234
+ var We = typeof window == "undefined" && !((As = he.getBrowser().name) != null && As.toLowerCase().includes("electron"));
22235
+ var Ao = () => !We;
22236
+ var bc = Ao();
21635
22237
  var Is;
21636
22238
  var Rs;
21637
- var ws = ((Rs = (Is = he.getEngine()) == null ? void 0 : Is.name) == null ? void 0 : Rs.toLowerCase()) === "blink";
21638
- var _s = ((i) => (i.CUSTOM = "CUSTOM", i.LOCAL = "LOCAL", i.HMS = "HMS", i))(_s || {});
21639
- function Eo() {
21640
- if (U && window) {
22239
+ var Ns = (Rs = (Is = he.getBrowser()) == null ? void 0 : Is.name) == null ? void 0 : Rs.toLowerCase().includes("safari");
22240
+ var Hs;
22241
+ var Cs;
22242
+ var Os = ((Cs = (Hs = he.getBrowser()) == null ? void 0 : Hs.name) == null ? void 0 : Cs.toLowerCase()) === "firefox";
22243
+ var Ls;
22244
+ var Ds;
22245
+ var xs = ((Ds = (Ls = he.getEngine()) == null ? void 0 : Ls.name) == null ? void 0 : Ds.toLowerCase()) === "blink";
22246
+ var Us = ((i) => (i.CUSTOM = "CUSTOM", i.LOCAL = "LOCAL", i.HMS = "HMS", i))(Us || {});
22247
+ function Io() {
22248
+ if (x && window) {
21641
22249
  let a2 = window.location.hostname;
21642
22250
  return a2 === "localhost" || a2 === "127.0.0.1" ? "LOCAL" : a2.includes("app.100ms.live") ? "HMS" : "CUSTOM";
21643
22251
  }
21644
22252
  return "CUSTOM";
21645
22253
  }
21646
- var Xe = Eo();
22254
+ var Ze = Io();
21647
22255
  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 } };
21648
22256
  var E = class a extends Error {
21649
22257
  constructor(t, i, r, s, o, n = false) {
@@ -21700,8 +22308,8 @@ var W = class extends E {
21700
22308
  }`;
21701
22309
  }
21702
22310
  };
21703
- var Ns = ((r) => (r.AUDIO = "audio", r.VIDEO = "video", r.AUDIO_VIDEO = "audio, video", r.SCREEN = "screen", r))(Ns || {});
21704
- var Po = ["join", "offer", "answer", "trickle", "on-error", "JOIN"];
22311
+ var Bs = ((r) => (r.AUDIO = "audio", r.VIDEO = "video", r.AUDIO_VIDEO = "audio, video", r.SCREEN = "screen", r))(Bs || {});
22312
+ var Ro = ["join", "offer", "answer", "trickle", "on-error", "JOIN"];
21705
22313
  var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21706
22314
  return new E(k.WebSocketConnectionErrors.FAILED_TO_CONNECT, "WebsocketFailedToConnect", a2, `[WS]: ${e}`, `[WS]: ${e}`);
21707
22315
  }, WebSocketConnectionLost(a2, e = "") {
@@ -21763,7 +22371,7 @@ var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21763
22371
  }, StatsFailed(a2, e = "") {
21764
22372
  return new E(k.WebrtcErrors.STATS_FAILED, "StatsFailed", a2, `Failed to WebRTC get stats - ${e}`, e);
21765
22373
  } }, WebsocketMethodErrors: { ServerErrors(a2, e, t) {
21766
- return new E(a2, "ServerErrors", e, t, t, Po.includes(e));
22374
+ return new E(a2, "ServerErrors", e, t, t, Ro.includes(e));
21767
22375
  }, AlreadyJoined(a2, e = "") {
21768
22376
  return new E(k.WebsocketMethodErrors.ALREADY_JOINED, "AlreadyJoined", a2, "[JOIN]: You have already joined this room.", e);
21769
22377
  }, CannotJoinPreviewInProgress(a2, e = "") {
@@ -21811,7 +22419,7 @@ var S = { WebSocketConnectionErrors: { FailedToConnect(a2, e = "") {
21811
22419
  }, NoEntryPlaying(a2, e) {
21812
22420
  return new E(k.PlaylistErrors.NO_ENTRY_IS_PLAYING, "NoEntryIsPlaying", a2, "No entry is playing at this time", e);
21813
22421
  } } };
21814
- var br = class {
22422
+ var Hr = class {
21815
22423
  constructor() {
21816
22424
  this.valuesMap = /* @__PURE__ */ new Map();
21817
22425
  }
@@ -21836,9 +22444,9 @@ var br = class {
21836
22444
  return this.valuesMap.size;
21837
22445
  }
21838
22446
  };
21839
- var Os = () => {
22447
+ var Vs = () => {
21840
22448
  try {
21841
- U && !localStorage && (window.localStorage = new br());
22449
+ x && !localStorage && (window.localStorage = new Hr());
21842
22450
  } catch (a2) {
21843
22451
  l.e("Error initialising localStorage", S.GenericErrors.LocalStorageAccessDenied());
21844
22452
  }
@@ -21850,7 +22458,7 @@ var ve = class {
21850
22458
  }
21851
22459
  getStorage() {
21852
22460
  try {
21853
- return U && !this.storage && (Os(), this.storage = window.localStorage), this.storage;
22461
+ return x && !this.storage && (Vs(), this.storage = window.localStorage), this.storage;
21854
22462
  } catch (e) {
21855
22463
  return l.e("Error initialising localStorage", S.GenericErrors.LocalStorageAccessDenied()), null;
21856
22464
  }
@@ -21870,32 +22478,32 @@ var ve = class {
21870
22478
  (e = this.getStorage()) == null || e.removeItem(this.key);
21871
22479
  }
21872
22480
  };
21873
- var di = () => {
22481
+ var ui = () => {
21874
22482
  let a2, e = new ve("hms-analytics-deviceId"), t = e.get();
21875
- return t ? a2 = t : (a2 = bo(), e.set(a2)), a2;
22483
+ return t ? a2 = t : (a2 = Ho(), e.set(a2)), a2;
21876
22484
  };
21877
22485
  function me(a2) {
21878
22486
  return a2 != null;
21879
22487
  }
21880
- var Bs = Ar().version;
21881
- function Et(a2 = "prod", e) {
21882
- let t = "web", i = Xe !== "LOCAL" && a2 === "prod" ? "prod" : "debug";
21883
- if (Ge)
21884
- 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 });
21885
- 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;
21886
- 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 });
22488
+ var Ws = Cr().version;
22489
+ function bt(a2 = "prod", e) {
22490
+ let t = "web", i = Ze !== "LOCAL" && a2 === "prod" ? "prod" : "debug";
22491
+ if (We)
22492
+ 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 });
22493
+ 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;
22494
+ 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 });
21887
22495
  }
21888
- function Ir(a2) {
22496
+ function Lr(a2) {
21889
22497
  return a2.replace(/ /g, "_");
21890
22498
  }
21891
- var Vs = (a2, e = ",") => Object.keys(a2).filter((t) => me(a2[t])).map((t) => `${t}:${a2[t]}`).join(e);
22499
+ var $s = (a2, e = ",") => Object.keys(a2).filter((t) => me(a2[t])).map((t) => `${t}:${a2[t]}`).join(e);
21892
22500
  var C = class {
21893
22501
  constructor({ name: e, level: t, properties: i, includesPII: r, timestamp: s }) {
21894
- this.metadata = { peer: {}, userAgent: Et() };
21895
- this.name = e, this.level = t, this.includesPII = r || false, this.properties = i || {}, this.timestamp = s || (/* @__PURE__ */ new Date()).getTime(), this.event_id = Io(), this.device_id = di();
22502
+ this.metadata = { peer: {}, userAgent: bt() };
22503
+ this.name = e, this.level = t, this.includesPII = r || false, this.properties = i || {}, this.timestamp = s || (/* @__PURE__ */ new Date()).getTime(), this.event_id = Lo(), this.device_id = ui();
21896
22504
  }
21897
22505
  toSignalParams() {
21898
- return { name: this.name, info: M(m({}, this.properties), { timestamp: this.timestamp, domain: Xe }), timestamp: (/* @__PURE__ */ new Date()).getTime() };
22506
+ return { name: this.name, info: M(m({}, this.properties), { timestamp: this.timestamp, domain: Ze }), timestamp: (/* @__PURE__ */ new Date()).getTime() };
21899
22507
  }
21900
22508
  };
21901
22509
  var y = class {
@@ -21908,12 +22516,12 @@ var y = class {
21908
22516
  return new C({ name: i, level: r, properties: s });
21909
22517
  }
21910
22518
  static preview(i) {
21911
- var r = i, { error: e } = r, t = yr(r, ["error"]);
22519
+ var r = i, { error: e } = r, t = Er(r, ["error"]);
21912
22520
  let s = this.eventNameFor("preview", e === void 0), o = e ? 2 : 1, n = this.getPropertiesWithError(t, e);
21913
22521
  return new C({ name: s, level: o, properties: n });
21914
22522
  }
21915
22523
  static join(i) {
21916
- var r = i, { error: e } = r, t = yr(r, ["error"]);
22524
+ var r = i, { error: e } = r, t = Er(r, ["error"]);
21917
22525
  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);
21918
22526
  return new C({ name: s, level: o, properties: n });
21919
22527
  }
@@ -22004,7 +22612,7 @@ var y = class {
22004
22612
  }
22005
22613
  };
22006
22614
  y.KEY_REQUESTED_AT = "requested_at", y.KEY_RESPONDED_AT = "responded_at";
22007
- var Rr = class {
22615
+ var Dr = class {
22008
22616
  constructor() {
22009
22617
  this.storage = new ve("hms-device-selection");
22010
22618
  this.remember = false;
@@ -22052,19 +22660,19 @@ var Rr = class {
22052
22660
  return e.deviceId === t.deviceId && (e.groupId === t.groupId || !e.groupId);
22053
22661
  }
22054
22662
  };
22055
- var X = new Rr();
22056
- var Hr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Hr || {});
22057
- var Cr = ((t) => (t.PLATFORM_NOT_SUPPORTED = "PLATFORM_NOT_SUPPORTED", t.DEVICE_NOT_SUPPORTED = "DEVICE_NOT_SUPPORTED", t))(Cr || {});
22058
- var Lr = ((t) => (t.SIP = "sip", t.REGULAR = "regular", t))(Lr || {});
22059
- 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 || {});
22060
- var Ws = ((t) => (t.DVR = "dvr", t.NO_DVR = "no-dvr", t))(Ws || {});
22061
- var $s = ((i) => (i.REGULAR = "regular", i.SCREEN = "screen", i.COMPOSITE = "composite", i))($s || {});
22062
- var Ks = ((r) => (r.INITIALISED = "initialised", r.STARTED = "started", r.STOPPED = "stopped", r.FAILED = "failed", r))(Ks || {});
22063
- var qs = ((e) => (e.CAPTION = "caption", e))(qs || {});
22064
- var Dr = ((t) => (t.VOICE = "voice", t.MUSIC = "music", t))(Dr || {});
22065
- var js = ((i) => (i.videoInput = "videoInput", i.audioInput = "audioInput", i.audioOutput = "audioOutput", i))(js || {});
22066
- var wr = ((r) => (r.SPEAKERPHONE = "SPEAKERPHONE", r.WIRED = "WIRED", r.BLUETOOTH = "BLUETOOTH", r.EARPIECE = "EARPIECE", r))(wr || {});
22067
- function Si(a2, e = 300) {
22663
+ var X = new Dr();
22664
+ var wr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(wr || {});
22665
+ var _r = ((t) => (t.PLATFORM_NOT_SUPPORTED = "PLATFORM_NOT_SUPPORTED", t.DEVICE_NOT_SUPPORTED = "DEVICE_NOT_SUPPORTED", t))(_r || {});
22666
+ var Nr = ((t) => (t.SIP = "sip", t.REGULAR = "regular", t))(Nr || {});
22667
+ 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 || {});
22668
+ var js = ((t) => (t.DVR = "dvr", t.NO_DVR = "no-dvr", t))(js || {});
22669
+ var Js = ((i) => (i.REGULAR = "regular", i.SCREEN = "screen", i.COMPOSITE = "composite", i))(Js || {});
22670
+ var Qs = ((r) => (r.INITIALISED = "initialised", r.STARTED = "started", r.STOPPED = "stopped", r.FAILED = "failed", r))(Qs || {});
22671
+ var zs = ((e) => (e.CAPTION = "caption", e))(zs || {});
22672
+ var Or = ((t) => (t.VOICE = "voice", t.MUSIC = "music", t))(Or || {});
22673
+ var Ys = ((i) => (i.videoInput = "videoInput", i.audioInput = "audioInput", i.audioOutput = "audioOutput", i))(Ys || {});
22674
+ var xr = ((r) => (r.SPEAKERPHONE = "SPEAKERPHONE", r.WIRED = "WIRED", r.BLUETOOTH = "BLUETOOTH", r.EARPIECE = "EARPIECE", r))(xr || {});
22675
+ function Ti(a2, e = 300) {
22068
22676
  let t;
22069
22677
  return function(...i) {
22070
22678
  clearTimeout(t), t = void 0;
@@ -22074,7 +22682,7 @@ function Si(a2, e = 300) {
22074
22682
  }, e);
22075
22683
  };
22076
22684
  }
22077
- var Br = class {
22685
+ var Wr = class {
22078
22686
  constructor() {
22079
22687
  this.TAG = "[HMSIntersectionObserverWrapper]";
22080
22688
  this.listeners = /* @__PURE__ */ new WeakMap();
@@ -22097,12 +22705,12 @@ var Br = class {
22097
22705
  this.createObserver();
22098
22706
  }
22099
22707
  isSupported() {
22100
- let e = U && typeof window.IntersectionObserver != "undefined";
22708
+ let e = x && typeof window.IntersectionObserver != "undefined";
22101
22709
  return e || l.w(this.TAG, "IntersectionObserver is not supported, fallback will be used instead"), e;
22102
22710
  }
22103
22711
  };
22104
- var Zs = new Br();
22105
- var Vr = class {
22712
+ var ra = new Wr();
22713
+ var $r = class {
22106
22714
  constructor() {
22107
22715
  this.TAG = "[HMSResizeObserverWrapper]";
22108
22716
  this.listeners = /* @__PURE__ */ new WeakMap();
@@ -22115,7 +22723,7 @@ var Vr = class {
22115
22723
  (t = this.resizeObserver) == null || t.unobserve(e), this.listeners.delete(e);
22116
22724
  };
22117
22725
  this.createObserver = () => {
22118
- this.isSupported() && !this.resizeObserver && (this.resizeObserver = new ResizeObserver(Si(this.handleResize, 300)));
22726
+ this.isSupported() && !this.resizeObserver && (this.resizeObserver = new ResizeObserver(Ti(this.handleResize, 300)));
22119
22727
  };
22120
22728
  this.handleResize = (e) => {
22121
22729
  var t;
@@ -22125,47 +22733,47 @@ var Vr = class {
22125
22733
  this.createObserver();
22126
22734
  }
22127
22735
  isSupported() {
22128
- let e = U && typeof window.ResizeObserver != "undefined";
22736
+ let e = x && typeof window.ResizeObserver != "undefined";
22129
22737
  return e || l.w(this.TAG, "Resize Observer is not supported"), e;
22130
22738
  }
22131
22739
  };
22132
- var ea = new Vr();
22133
- var Fr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Fr || {});
22134
- var Gr = ((t) => (t["2D"] = "2d", t.WEBGL = "webgl", t.WEBGL2 = "webgl2", t))(Gr || {});
22135
- var ra = "https://event.100ms.live/v2/client/report";
22136
- var sa = "https://event-nonprod.100ms.live/v2/client/report";
22137
- var Rt = Math.pow(2, 31) - 1;
22138
- var ot = class {
22740
+ var sa = new $r();
22741
+ var Kr = ((t) => (t.TRANSFORM = "TRANSFORM", t.ANALYZE = "ANALYZE", t))(Kr || {});
22742
+ var qr = ((t) => (t["2D"] = "2d", t.WEBGL = "webgl", t.WEBGL2 = "webgl2", t))(qr || {});
22743
+ var na = "https://event.100ms.live/v2/client/report";
22744
+ var ca = "https://event-nonprod.100ms.live/v2/client/report";
22745
+ var Ct = Math.pow(2, 31) - 1;
22746
+ var nt = class {
22139
22747
  };
22140
- ot.makePeerId = () => Wo();
22748
+ nt.makePeerId = () => jo();
22141
22749
  var F = (a2) => a2.room;
22142
- var Ko = (a2) => a2.errors;
22143
- var Em = createSelector(Ko, (a2) => a2.length === 0 ? null : a2.at(-1));
22144
- var Pm = createSelector(F, (a2) => a2.id);
22750
+ var Qo = (a2) => a2.errors;
22751
+ var Rm = createSelector(Qo, (a2) => a2.length === 0 ? null : a2.at(-1));
22752
+ var Hm = createSelector(F, (a2) => a2.id);
22145
22753
  var z = (a2) => a2.peers;
22146
- var bi = (a2) => a2.messages.byID;
22147
- var ha = (a2) => a2.messages.allIDs;
22754
+ var Ii = (a2) => a2.messages.byID;
22755
+ var Ta = (a2) => a2.messages.allIDs;
22148
22756
  var N = (a2) => a2.tracks;
22149
- var Qr = (a2) => a2.appData;
22150
- var qo = (a2) => a2.speakers;
22151
- var Be = createSelector([F], (a2) => a2 && a2.isConnected);
22152
- 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));
22153
- var jo = (a2) => a2.hideLocalPeer;
22154
- 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]));
22155
- var Jo = createSelector(N, (a2) => Object.values(a2));
22156
- var se = createSelector(F, z, (a2, e) => e[a2.localPeer]);
22757
+ var Zr = (a2) => a2.appData;
22758
+ var zo = (a2) => a2.speakers;
22759
+ var Ve = createSelector([F], (a2) => a2 && a2.isConnected);
22760
+ 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));
22761
+ var Yo = (a2) => a2.hideLocalPeer;
22762
+ 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]));
22763
+ var Xo = createSelector(N, (a2) => Object.values(a2));
22764
+ var re = createSelector(F, z, (a2, e) => e[a2.localPeer]);
22157
22765
  var Ie = createSelector(F, (a2) => a2.localPeer);
22158
- var Rm = createSelector(se, (a2) => a2 == null ? void 0 : a2.name);
22159
- var Hm = createSelector(se, (a2) => a2 == null ? void 0 : a2.roleName);
22160
- var le = createSelector(se, (a2) => a2 == null ? void 0 : a2.audioTrack);
22161
- var Z = createSelector(se, (a2) => a2 == null ? void 0 : a2.videoTrack);
22162
- var Qo = createSelector(se, (a2) => a2 == null ? void 0 : a2.auxiliaryTracks);
22163
- var Sa = createSelector([le, Z, Qo], (a2, e, t) => {
22766
+ var wm = createSelector(re, (a2) => a2 == null ? void 0 : a2.name);
22767
+ var _m = createSelector(re, (a2) => a2 == null ? void 0 : a2.roleName);
22768
+ var le = createSelector(re, (a2) => a2 == null ? void 0 : a2.audioTrack);
22769
+ var Z = createSelector(re, (a2) => a2 == null ? void 0 : a2.videoTrack);
22770
+ var Zo = createSelector(re, (a2) => a2 == null ? void 0 : a2.auxiliaryTracks);
22771
+ var va = createSelector([le, Z, Zo], (a2, e, t) => {
22164
22772
  let i = t ? [...t] : [];
22165
22773
  return a2 && i.unshift(a2), e && i.unshift(e), i;
22166
22774
  });
22167
- var Cm = createSelector(Ee, (a2) => a2.filter((e) => !e.isLocal));
22168
- var Lm = createSelector(z, qo, (a2, e) => {
22775
+ var Nm = createSelector(Ee, (a2) => a2.filter((e) => !e.isLocal));
22776
+ var Om = createSelector(z, zo, (a2, e) => {
22169
22777
  let t = Object.entries(e).sort((i, r) => {
22170
22778
  var n, d;
22171
22779
  let s = ((n = i[1]) == null ? void 0 : n.audioLevel) || 0;
@@ -22178,112 +22786,112 @@ var Lm = createSelector(z, qo, (a2, e) => {
22178
22786
  }
22179
22787
  return null;
22180
22788
  });
22181
- var Yr = createSelector(se, N, (a2, e) => {
22182
- let { video: t, audio: i } = Fe(e, a2);
22789
+ var ts = createSelector(re, N, (a2, e) => {
22790
+ let { video: t, audio: i } = Ge(e, a2);
22183
22791
  return !!(t || i);
22184
22792
  });
22185
- var zo = createSelector(z, N, (a2, e) => {
22793
+ var en = createSelector(z, N, (a2, e) => {
22186
22794
  let t;
22187
22795
  for (let i in a2) {
22188
- let r = a2[i], { video: s, audio: o } = Fe(e, r);
22796
+ let r = a2[i], { video: s, audio: o } = Ge(e, r);
22189
22797
  if (s)
22190
22798
  return r;
22191
22799
  o && !t && (t = r);
22192
22800
  }
22193
22801
  return t;
22194
22802
  });
22195
- var wm = createSelector(zo, (a2) => !!a2);
22196
- var _m = createSelector(z, N, (a2, e) => {
22803
+ var Um = createSelector(en, (a2) => !!a2);
22804
+ var Bm = createSelector(z, N, (a2, e) => {
22197
22805
  for (let t in a2) {
22198
- let i = a2[t], { audio: r, video: s } = Fe(e, i);
22806
+ let i = a2[t], { audio: r, video: s } = Ge(e, i);
22199
22807
  if (!s && r)
22200
22808
  return i;
22201
22809
  }
22202
22810
  });
22203
- var Nm = createSelector(z, N, (a2, e) => {
22811
+ var Vm = createSelector(z, N, (a2, e) => {
22204
22812
  let t = [], i = [];
22205
22813
  for (let r in a2) {
22206
- let s = a2[r], { video: o, audio: n } = Fe(e, s);
22814
+ let s = a2[r], { video: o, audio: n } = Ge(e, s);
22207
22815
  o ? t.push(s) : n && i.push(s);
22208
22816
  }
22209
22817
  return t.concat(i);
22210
22818
  });
22211
- var Om = createSelector(z, N, (a2, e) => {
22819
+ var Fm = createSelector(z, N, (a2, e) => {
22212
22820
  for (let t in e) {
22213
22821
  let i = e[t];
22214
- if (ft(i) && Tt(i) && i.peerId)
22822
+ if (vt(i) && ft(i) && i.peerId)
22215
22823
  return a2[i.peerId];
22216
22824
  }
22217
22825
  });
22218
- var xm = createSelector(z, N, (a2, e) => {
22826
+ var Gm = createSelector(z, N, (a2, e) => {
22219
22827
  for (let t in e) {
22220
22828
  let i = e[t];
22221
- if (ci(i) && i.peerId)
22829
+ if (li(i) && i.peerId)
22222
22830
  return a2[i.peerId];
22223
22831
  }
22224
22832
  });
22225
- var Um = createSelector(Jo, (a2) => a2.filter(vs));
22226
- var Bm = createSelector(ha, (a2) => a2.length);
22227
- var Vm = createSelector(bi, (a2) => Object.values(a2).filter((e) => !e.read).length);
22228
- var Dt = createSelector(ha, bi, (a2, e) => {
22833
+ var Wm = createSelector(Xo, (a2) => a2.filter(Es));
22834
+ var $m = createSelector(Ta, (a2) => a2.length);
22835
+ var Km = createSelector(Ii, (a2) => Object.values(a2).filter((e) => !e.read).length);
22836
+ var _t = createSelector(Ta, Ii, (a2, e) => {
22229
22837
  let t = [];
22230
22838
  return a2.forEach((i) => {
22231
22839
  t.push(e[i]);
22232
22840
  }), t;
22233
22841
  });
22234
- var Yo = createSelector(Dt, (a2) => a2.filter((e) => {
22842
+ var tn = createSelector(_t, (a2) => a2.filter((e) => {
22235
22843
  var t;
22236
22844
  return !e.recipientPeer && !(e.recipientRoles && ((t = e.recipientRoles) == null ? void 0 : t.length) > 0);
22237
22845
  }));
22238
- var Fm = createSelector(Yo, (a2) => a2.filter((e) => !e.read).length);
22239
- var ae = createSelector([F], (a2) => a2 && a2.roomState);
22240
- var Ta = createSelector(ae, (a2) => a2 === "Preview");
22241
- var Gm = createSelector(F, (a2) => a2.roomState !== "Disconnected");
22242
- var Wm = createSelector(F, (a2) => !a2.transcriptions || a2.transcriptions.length <= 0 ? false : a2.transcriptions.some((e) => e.mode === "caption" && e.state === "started"));
22846
+ var qm = createSelector(tn, (a2) => a2.filter((e) => !e.read).length);
22847
+ var se = createSelector([F], (a2) => a2 && a2.roomState);
22848
+ var ya = createSelector(se, (a2) => a2 === "Preview");
22849
+ var jm = createSelector(F, (a2) => a2.roomState !== "Disconnected");
22850
+ var Jm = createSelector(F, (a2) => !a2.transcriptions || a2.transcriptions.length <= 0 ? false : a2.transcriptions.some((e) => e.mode === "caption" && e.state === "started"));
22243
22851
  var Pe = (a2) => a2.roles;
22244
- var $m = createSelector([Pe], (a2) => Object.keys(a2));
22245
- var ct = createSelector([se, Pe], (a2, e) => a2 != null && a2.roleName ? e[a2.roleName] : null);
22246
- var Xo = (a2) => {
22852
+ var Qm = createSelector([Pe], (a2) => Object.keys(a2));
22853
+ var dt = createSelector([re, Pe], (a2, e) => a2 != null && a2.roleName ? e[a2.roleName] : null);
22854
+ var rn = (a2) => {
22247
22855
  var e;
22248
22856
  return (e = a2.preview) == null ? void 0 : e.asRole;
22249
22857
  };
22250
- var fa = createSelector([Xo, Pe], (a2, e) => a2 ? e[a2] : null);
22251
- var Km = createSelector([ct], (a2) => {
22858
+ var ka = createSelector([rn, Pe], (a2, e) => a2 ? e[a2] : null);
22859
+ var zm = createSelector([dt], (a2) => {
22252
22860
  var e;
22253
22861
  return (e = a2 == null ? void 0 : a2.subscribeParams) != null && e.subscribeToRoles ? a2.subscribeParams.subscribeToRoles.length > 0 : false;
22254
22862
  });
22255
- var va = createSelector(ct, (a2) => a2 == null ? void 0 : a2.permissions);
22256
- var qm = createSelector(F, (a2) => a2.recording);
22257
- var jm = createSelector(F, (a2) => a2.rtmp);
22258
- var Jm = createSelector(F, (a2) => a2.hls);
22259
- var Qm = createSelector(F, (a2) => a2.transcriptions);
22260
- var zm = createSelector(F, (a2) => a2.sessionId);
22261
- var Ym = createSelector(F, (a2) => a2.startedAt);
22262
- var Xm = createSelector(F, (a2) => !!a2.isLargeRoom);
22263
- var Zm = createSelector(F, (a2) => !!a2.isEffectsEnabled);
22264
- var eS = createSelector(F, (a2) => !!a2.isVBEnabled);
22265
- var tS = createSelector(F, (a2) => a2.effectsKey);
22266
- var Ma = (a2) => a2.polls;
22267
- var aS = createSelector(Ee, (a2) => a2.filter((e) => e.isHandRaised));
22268
- var Zo = (a2) => a2.whiteboards;
22269
- var oS = createSelector(Zo, (a2) => Object.values(a2)[0]);
22270
- var ka = (a2 = "audio") => (e) => e.playlist[a2].list;
22271
- var Xr = (a2 = "audio") => (e) => e.playlist[a2].selection;
22272
- var Ea = (a2 = "audio") => (e) => e.playlist[a2].progress;
22273
- var Pa = (a2 = "audio") => (e) => e.playlist[a2].currentTime;
22274
- var ba = (a2 = "audio") => (e) => e.playlist[a2].playbackRate;
22275
- var Aa = (a2 = "audio") => (e) => e.playlist[a2].volume;
22276
- var Ia = (a2 = "audio") => createSelector(ka(a2), (e) => Object.values(e));
22277
- var Ra = (a2 = "audio") => createSelector(ka(a2), Xr(a2), (e, t) => {
22863
+ var Ea = createSelector(dt, (a2) => a2 == null ? void 0 : a2.permissions);
22864
+ var Ym = createSelector(F, (a2) => a2.recording);
22865
+ var Xm = createSelector(F, (a2) => a2.rtmp);
22866
+ var Zm = createSelector(F, (a2) => a2.hls);
22867
+ var eS = createSelector(F, (a2) => a2.transcriptions);
22868
+ var tS = createSelector(F, (a2) => a2.sessionId);
22869
+ var iS = createSelector(F, (a2) => a2.startedAt);
22870
+ var rS = createSelector(F, (a2) => !!a2.isLargeRoom);
22871
+ var sS = createSelector(F, (a2) => !!a2.isEffectsEnabled);
22872
+ var aS = createSelector(F, (a2) => !!a2.isVBEnabled);
22873
+ var oS = createSelector(F, (a2) => a2.effectsKey);
22874
+ var Pa = (a2) => a2.polls;
22875
+ var lS = createSelector(Ee, (a2) => a2.filter((e) => e.isHandRaised));
22876
+ var sn = (a2) => a2.whiteboards;
22877
+ var uS = createSelector(sn, (a2) => Object.values(a2)[0]);
22878
+ var Aa = (a2 = "audio") => (e) => e.playlist[a2].list;
22879
+ var is = (a2 = "audio") => (e) => e.playlist[a2].selection;
22880
+ var Ia = (a2 = "audio") => (e) => e.playlist[a2].progress;
22881
+ var Ra = (a2 = "audio") => (e) => e.playlist[a2].currentTime;
22882
+ var Ha = (a2 = "audio") => (e) => e.playlist[a2].playbackRate;
22883
+ var Ca = (a2 = "audio") => (e) => e.playlist[a2].volume;
22884
+ var La = (a2 = "audio") => createSelector(Aa(a2), (e) => Object.values(e));
22885
+ var Da = (a2 = "audio") => createSelector(Aa(a2), is(a2), (e, t) => {
22278
22886
  if (t.id)
22279
22887
  return e[t.id];
22280
22888
  });
22281
- var Ha = { selection: Xr("audio"), progress: Ea("audio"), currentTime: Pa("audio"), playbackRate: ba("audio"), volume: Aa("audio"), list: Ia("audio"), selectedItem: Ra("audio") };
22282
- var Ca = { selection: Xr("video"), progress: Ea("video"), currentTime: Pa("video"), playbackRate: ba("video"), volume: Aa("video"), list: Ia("video"), selectedItem: Ra("video") };
22889
+ var wa = { selection: is("audio"), progress: Ia("audio"), currentTime: Ra("audio"), playbackRate: Ha("audio"), volume: Ca("audio"), list: La("audio"), selectedItem: Da("audio") };
22890
+ var _a7 = { selection: is("video"), progress: Ia("video"), currentTime: Ra("video"), playbackRate: Ha("video"), volume: Ca("video"), list: La("video"), selectedItem: Da("video") };
22283
22891
  function H(a2) {
22284
22892
  return (e) => (t) => a2(t, e);
22285
22893
  }
22286
- var wt = "HMS-Store:";
22894
+ var Nt = "HMS-Store:";
22287
22895
  var b = class {
22288
22896
  static v(e, ...t) {
22289
22897
  this.log(0, e, ...t);
@@ -22313,23 +22921,23 @@ var b = class {
22313
22921
  if (!(this.level.valueOf() > e.valueOf()))
22314
22922
  switch (e) {
22315
22923
  case 0: {
22316
- console.log(wt, ...t);
22924
+ console.log(Nt, ...t);
22317
22925
  break;
22318
22926
  }
22319
22927
  case 1: {
22320
- console.debug(wt, ...t);
22928
+ console.debug(Nt, ...t);
22321
22929
  break;
22322
22930
  }
22323
22931
  case 2: {
22324
- console.info(wt, ...t);
22932
+ console.info(Nt, ...t);
22325
22933
  break;
22326
22934
  }
22327
22935
  case 3: {
22328
- console.warn(wt, ...t);
22936
+ console.warn(Nt, ...t);
22329
22937
  break;
22330
22938
  }
22331
22939
  case 6: {
22332
- console.error(wt, ...t);
22940
+ console.error(Nt, ...t);
22333
22941
  break;
22334
22942
  }
22335
22943
  case 4: {
@@ -22350,133 +22958,133 @@ var b = class {
22350
22958
  }
22351
22959
  };
22352
22960
  b.level = 0;
22353
- var Zr = (a2, e) => e;
22354
- var _t = (a2, e) => e;
22355
- var La = (a2, e) => e;
22356
- var en = (a2, e) => e;
22357
- var tn = (a2, e) => e;
22358
- var Y = createSelector([z, Zr], (a2, e) => e ? a2[e] : null);
22359
- var es = createSelector([N, _t], (a2, e) => e ? a2[e] : null);
22360
- var rn = createSelector([N, _t], (a2, e) => {
22961
+ var rs = (a2, e) => e;
22962
+ var Ot = (a2, e) => e;
22963
+ var Na = (a2, e) => e;
22964
+ var an = (a2, e) => e;
22965
+ var on = (a2, e) => e;
22966
+ var Y = createSelector([z, rs], (a2, e) => e ? a2[e] : null);
22967
+ var ss = createSelector([N, Ot], (a2, e) => e ? a2[e] : null);
22968
+ var nn = createSelector([N, Ot], (a2, e) => {
22361
22969
  if (!e)
22362
22970
  return null;
22363
22971
  let t = a2[e];
22364
22972
  return (t == null ? void 0 : t.type) === "video" ? t : null;
22365
22973
  });
22366
- var sn = createSelector([N, _t], (a2, e) => {
22974
+ var cn = createSelector([N, Ot], (a2, e) => {
22367
22975
  if (!e)
22368
22976
  return null;
22369
22977
  let t = a2[e];
22370
22978
  return (t == null ? void 0 : t.type) === "audio" ? t : null;
22371
22979
  });
22372
- var an = createSelector([N, _t], (a2, e) => {
22980
+ var dn = createSelector([N, Ot], (a2, e) => {
22373
22981
  if (!e)
22374
22982
  return null;
22375
22983
  let t = a2[e];
22376
22984
  return (t == null ? void 0 : t.type) === "audio" && (t == null ? void 0 : t.source) === "screen" ? t : null;
22377
22985
  });
22378
- var on = createSelector([N, _t], (a2, e) => {
22986
+ var ln = createSelector([N, Ot], (a2, e) => {
22379
22987
  if (!e)
22380
22988
  return null;
22381
22989
  let t = a2[e];
22382
22990
  return (t == null ? void 0 : t.type) === "video" && (t == null ? void 0 : t.source) === "screen" ? t : null;
22383
22991
  });
22384
- var nn = createSelector([Ma, tn], (a2, e) => e ? a2[e] : null);
22992
+ var un = createSelector([Pa, on], (a2, e) => e ? a2[e] : null);
22385
22993
  var ee = H(Y);
22386
- var TS = H(createSelector([Qr, en], (a2, e) => {
22994
+ var kS = H(createSelector([Zr, an], (a2, e) => {
22387
22995
  if (a2)
22388
22996
  return e ? a2[e] : a2;
22389
22997
  }));
22390
- function fS(a2) {
22998
+ function ES(a2) {
22391
22999
  return (e) => {
22392
23000
  if (e.sessionStore)
22393
23001
  return a2 ? e.sessionStore[a2] : e.sessionStore;
22394
23002
  };
22395
23003
  }
22396
- var MS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.name));
22397
- var yS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.type));
22398
- var Ai = H(es);
22399
- var Da = H(rn);
22400
- var kS = H(sn);
22401
- var ES = H(an);
22402
- var PS = H(on);
22403
- var cn = H((a2, e) => {
23004
+ var bS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.name));
23005
+ var AS = H(createSelector(Y, (a2) => a2 == null ? void 0 : a2.type));
23006
+ var Ri = H(ss);
23007
+ var Oa = H(nn);
23008
+ var IS = H(cn);
23009
+ var RS = H(dn);
23010
+ var HS = H(ln);
23011
+ var pn = H((a2, e) => {
22404
23012
  let t = Y(a2, e);
22405
23013
  if (t && t.videoTrack && t.videoTrack !== "")
22406
23014
  return a2.tracks[t.videoTrack];
22407
23015
  });
22408
- var dn = H((a2, e) => {
23016
+ var hn = H((a2, e) => {
22409
23017
  let t = Y(a2, e);
22410
23018
  if (t && t.audioTrack && t.audioTrack !== "")
22411
23019
  return a2.tracks[t.audioTrack];
22412
23020
  });
22413
- var AS = H((a2, e) => {
23021
+ var LS = H((a2, e) => {
22414
23022
  let t = Y(a2, e);
22415
23023
  return (t == null ? void 0 : t.auxiliaryTracks.map((i) => a2.tracks[i])) || [];
22416
23024
  });
22417
- var wa = (a2, e) => e ? a2.speakers[e] : null;
22418
- var IS = H(createSelector(wa, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22419
- var ln = (a2, e) => {
22420
- let t = dn(e)(a2);
22421
- return wa(a2, t == null ? void 0 : t.id);
22422
- };
22423
- var RS = H(createSelector(ln, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
22424
- var HS = H((a2, e) => {
23025
+ var xa = (a2, e) => e ? a2.speakers[e] : null;
23026
+ var DS = H(createSelector(xa, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
23027
+ var mn = (a2, e) => {
23028
+ let t = hn(e)(a2);
23029
+ return xa(a2, t == null ? void 0 : t.id);
23030
+ };
23031
+ var wS = H(createSelector(mn, (a2) => (a2 == null ? void 0 : a2.audioLevel) || 0));
23032
+ var _S = H((a2, e) => {
22425
23033
  if (e)
22426
23034
  return a2.connectionQualities[e];
22427
23035
  });
22428
- var CS = H((a2, e) => {
23036
+ var NS = H((a2, e) => {
22429
23037
  let t = Y(a2, e);
22430
23038
  if (t) {
22431
- let i = t == null ? void 0 : t.auxiliaryTracks.find((r) => gt(a2.tracks[r]));
23039
+ let i = t == null ? void 0 : t.auxiliaryTracks.find((r) => Tt(a2.tracks[r]));
22432
23040
  return i ? a2.tracks[i] : void 0;
22433
23041
  }
22434
23042
  });
22435
- var LS = H(createSelector(N, Y, (a2, e) => {
23043
+ var OS2 = H(createSelector(N, Y, (a2, e) => {
22436
23044
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22437
23045
  let r = a2[i];
22438
- return ft(r) && Tt(r);
23046
+ return vt(r) && ft(r);
22439
23047
  });
22440
23048
  return t ? a2[t] : void 0;
22441
23049
  }));
22442
- var DS = H(createSelector(N, Y, (a2, e) => {
23050
+ var xS = H(createSelector(N, Y, (a2, e) => {
22443
23051
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22444
23052
  let r = a2[i];
22445
- return ft(r) && gt(r);
23053
+ return vt(r) && Tt(r);
22446
23054
  });
22447
23055
  return t ? a2[t] : void 0;
22448
23056
  }));
22449
- var wS = H(createSelector(N, Y, (a2, e) => {
23057
+ var US = H(createSelector(N, Y, (a2, e) => {
22450
23058
  let t = e == null ? void 0 : e.auxiliaryTracks.find((i) => {
22451
23059
  let r = a2[i];
22452
- return ci(r) && gt(r);
23060
+ return li(r) && Tt(r);
22453
23061
  });
22454
23062
  return t ? a2[t] : void 0;
22455
23063
  }));
22456
- var _a7 = H(createSelector(N, Y, (a2, e) => Fe(a2, e)));
22457
- var Na = (a2) => createSelector(_a7(a2), (e) => e.audio);
22458
- var NS = H((a2, e) => {
23064
+ var Ua = H(createSelector(N, Y, (a2, e) => Ge(a2, e)));
23065
+ var Ba = (a2) => createSelector(Ua(a2), (e) => e.audio);
23066
+ var VS = H((a2, e) => {
22459
23067
  let t = Y(a2, e);
22460
- return ze(a2, t == null ? void 0 : t.audioTrack);
23068
+ return Ye(a2, t == null ? void 0 : t.audioTrack);
22461
23069
  });
22462
- var OS = H((a2, e) => {
23070
+ var FS = H((a2, e) => {
22463
23071
  let t = Y(a2, e);
22464
- return ze(a2, t == null ? void 0 : t.videoTrack);
23072
+ return Ye(a2, t == null ? void 0 : t.videoTrack);
22465
23073
  });
22466
- var Oa = H((a2, e) => {
23074
+ var Va = H((a2, e) => {
22467
23075
  if (e && a2.tracks[e])
22468
23076
  return a2.tracks[e].volume === 0;
22469
23077
  });
22470
- var xS = H((a2, e) => {
23078
+ var GS = H((a2, e) => {
22471
23079
  let t = Y(a2, e);
22472
- return Oa(t == null ? void 0 : t.audioTrack)(a2);
23080
+ return Va(t == null ? void 0 : t.audioTrack)(a2);
22473
23081
  });
22474
- var US = H((a2, e) => {
22475
- let t = Na(e)(a2);
22476
- return Oa(t == null ? void 0 : t.id)(a2);
23082
+ var WS = H((a2, e) => {
23083
+ let t = Ba(e)(a2);
23084
+ return Va(t == null ? void 0 : t.id)(a2);
22477
23085
  });
22478
- var xa = H((a2, e) => {
22479
- let t = es(a2, e);
23086
+ var Fa = H((a2, e) => {
23087
+ let t = ss(a2, e);
22480
23088
  if (t) {
22481
23089
  if (t.type !== "audio") {
22482
23090
  b.w("Please pass audio track here");
@@ -22485,16 +23093,16 @@ var xa = H((a2, e) => {
22485
23093
  return t.volume;
22486
23094
  }
22487
23095
  });
22488
- var BS = H((a2, e) => {
23096
+ var $S = H((a2, e) => {
22489
23097
  let t = Y(a2, e);
22490
- return xa(t == null ? void 0 : t.audioTrack)(a2);
23098
+ return Fa(t == null ? void 0 : t.audioTrack)(a2);
22491
23099
  });
22492
- var VS = H((a2, e) => {
22493
- let t = Na(e)(a2);
22494
- return xa(t == null ? void 0 : t.id)(a2);
23100
+ var KS = H((a2, e) => {
23101
+ let t = Ba(e)(a2);
23102
+ return Fa(t == null ? void 0 : t.id)(a2);
22495
23103
  });
22496
- var FS = H((a2, e) => {
22497
- let t = es(a2, e);
23104
+ var qS = H((a2, e) => {
23105
+ let t = ss(a2, e);
22498
23106
  if (t) {
22499
23107
  if (t.type !== "video") {
22500
23108
  b.w("Please pass video track here");
@@ -22503,50 +23111,50 @@ var FS = H((a2, e) => {
22503
23111
  return t.layer;
22504
23112
  }
22505
23113
  });
22506
- var Ua = createSelector([Dt, Ie, Zr], (a2, e, t) => {
23114
+ var Ga = createSelector([_t, Ie, rs], (a2, e, t) => {
22507
23115
  if (t)
22508
23116
  return a2.filter((i) => {
22509
23117
  var r;
22510
23118
  return !i.recipientPeer && !((r = i.recipientRoles) != null && r.length) || i.sender && ![e, t].includes(i.sender) ? false : [e, t].includes(i.recipientPeer);
22511
23119
  });
22512
23120
  });
22513
- var Ba = createSelector([Dt, La], (a2, e) => {
23121
+ var Wa = createSelector([_t, Na], (a2, e) => {
22514
23122
  if (e)
22515
23123
  return a2.filter((t) => {
22516
23124
  var i, r;
22517
23125
  return (i = t.recipientRoles) != null && i.length ? (r = t.recipientRoles) == null ? void 0 : r.includes(e) : false;
22518
23126
  });
22519
23127
  });
22520
- var un = createSelector(Dt, (a2) => a2.filter((e) => {
23128
+ var Sn = createSelector(_t, (a2) => a2.filter((e) => {
22521
23129
  var t;
22522
23130
  return !e.recipientPeer && !((t = e.recipientRoles) != null && t.length);
22523
23131
  }));
22524
- var pn = createSelector([Ba, La], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22525
- var hn = createSelector([Ua, Zr], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
22526
- var GS = createSelector(un, (a2) => a2.filter((e) => !e.read).length);
22527
- var WS = H(Ua);
22528
- var $S = H(Ba);
22529
- var KS = H(pn);
22530
- var qS = H(hn);
22531
- var Va = H(nn);
22532
- var sg = createSelector([z, N], (a2, e) => Object.values(a2).map((i) => {
23132
+ var gn = createSelector([Wa, Na], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
23133
+ var Tn = createSelector([Ga, rs], (a2) => a2 ? a2.filter((e) => !e.read).length : 0);
23134
+ var jS = createSelector(Sn, (a2) => a2.filter((e) => !e.read).length);
23135
+ var JS = H(Ga);
23136
+ var QS = H(Wa);
23137
+ var zS = H(gn);
23138
+ var YS = H(Tn);
23139
+ var $a = H(un);
23140
+ var dg = createSelector([z, N], (a2, e) => Object.values(a2).map((i) => {
22533
23141
  var r;
22534
23142
  return { peer: i, isAudioEnabled: i.audioTrack ? (r = e[i.audioTrack]) == null ? void 0 : r.enabled : false };
22535
23143
  }));
22536
- var mn = (a2) => a2.roleChangeRequests[0] || null;
22537
- 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);
22538
- var og = createSelector([ct], (a2) => vt(a2));
22539
- var ng = createSelector([fa], (a2) => vt(a2));
22540
- var gn = createSelector([Z, N], (a2, e) => {
23144
+ var fn = (a2) => a2.roleChangeRequests[0] || null;
23145
+ 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);
23146
+ var ug = createSelector([dt], (a2) => Mt(a2));
23147
+ var pg = createSelector([ka], (a2) => Mt(a2));
23148
+ var Mn = createSelector([Z, N], (a2, e) => {
22541
23149
  let t = null;
22542
23150
  return a2 && (t = e[a2]), (t == null ? void 0 : t.plugins) || [];
22543
23151
  });
22544
- var Tn = createSelector([le, N], (a2, e) => {
23152
+ var yn = createSelector([le, N], (a2, e) => {
22545
23153
  let t = null;
22546
23154
  return a2 && (t = e[a2]), (t == null ? void 0 : t.plugins) || [];
22547
23155
  });
22548
- 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 || {});
22549
- var as = class {
23156
+ 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 || {});
23157
+ var ds = class {
22550
23158
  constructor() {
22551
23159
  this.TAG = "[HTTPAnalyticsTransport]";
22552
23160
  this.failedEvents = new ve("client-events");
@@ -22565,7 +23173,7 @@ var as = class {
22565
23173
  this.addEventToStorage(e);
22566
23174
  return;
22567
23175
  }
22568
- 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;
23176
+ 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;
22569
23177
  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) => {
22570
23178
  if (r.status === 401) {
22571
23179
  this.removeFromStorage(e);
@@ -22591,8 +23199,8 @@ var as = class {
22591
23199
  i > -1 && (t.splice(i, 1), this.failedEvents.set(t));
22592
23200
  }
22593
23201
  };
22594
- var He = new as();
22595
- var $t = class {
23202
+ var He = new ds();
23203
+ var qt = class {
22596
23204
  static handleError(e) {
22597
23205
  if (e.status === 404)
22598
23206
  throw S.APIErrors.EndpointUnreachable("FEEDBACK", e.statusText);
@@ -22618,67 +23226,67 @@ var $t = class {
22618
23226
  });
22619
23227
  }
22620
23228
  };
22621
- $t.TAG = "[FeedbackService]";
22622
- 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 || {});
23229
+ qt.TAG = "[FeedbackService]";
23230
+ 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 || {});
22623
23231
  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 || {});
22624
- 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 || {});
22625
- var ht = ((t) => (t[t.Publish = 0] = "Publish", t[t.Subscribe = 1] = "Subscribe", t))(ht || {});
22626
- var Fn = (a2) => a2.localPeer.id;
22627
- var Gn = (a2) => a2.localPeer.audioTrack;
22628
- var Wn = (a2) => a2.localPeer.videoTrack;
22629
- var $n = (a2, e) => e;
22630
- var lo = (a2, e) => e;
22631
- var Kn = (a2) => a2.remoteTrackStats;
22632
- var uo = (a2) => a2.peerStats;
22633
- var ls = (a2) => a2.localTrackStats;
22634
- var Le = createSelector([uo, Fn], (a2, e) => a2[e]);
22635
- var qn = createSelector(Le, (a2) => {
23232
+ 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 || {});
23233
+ var mt = ((t) => (t[t.Publish = 0] = "Publish", t[t.Subscribe = 1] = "Subscribe", t))(mt || {});
23234
+ var Kn = (a2) => a2.localPeer.id;
23235
+ var qn = (a2) => a2.localPeer.audioTrack;
23236
+ var jn = (a2) => a2.localPeer.videoTrack;
23237
+ var Jn = (a2, e) => e;
23238
+ var mo = (a2, e) => e;
23239
+ var Qn = (a2) => a2.remoteTrackStats;
23240
+ var So = (a2) => a2.peerStats;
23241
+ var ms = (a2) => a2.localTrackStats;
23242
+ var Le = createSelector([So, Kn], (a2, e) => a2[e]);
23243
+ var zn = createSelector(Le, (a2) => {
22636
23244
  var e;
22637
23245
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.packetsLost;
22638
23246
  });
22639
- var jn = createSelector(Le, (a2) => {
23247
+ var Yn = createSelector(Le, (a2) => {
22640
23248
  var e;
22641
23249
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.jitter;
22642
23250
  });
22643
- var Jn = createSelector(Le, (a2) => {
23251
+ var Xn = createSelector(Le, (a2) => {
22644
23252
  var e;
22645
23253
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.bitrate;
22646
23254
  });
22647
- var Qn = createSelector(Le, (a2) => {
23255
+ var Zn = createSelector(Le, (a2) => {
22648
23256
  var e;
22649
23257
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.bitrate;
22650
23258
  });
22651
- var zn = createSelector(Le, (a2) => {
23259
+ var ec = createSelector(Le, (a2) => {
22652
23260
  var e;
22653
23261
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.availableOutgoingBitrate;
22654
23262
  });
22655
- var Yn = createSelector(Le, (a2) => {
23263
+ var tc = createSelector(Le, (a2) => {
22656
23264
  var e;
22657
23265
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.availableIncomingBitrate;
22658
23266
  });
22659
- var Xn = createSelector(Le, (a2) => {
23267
+ var ic = createSelector(Le, (a2) => {
22660
23268
  var e;
22661
23269
  return (e = a2 == null ? void 0 : a2.publish) == null ? void 0 : e.bytesSent;
22662
23270
  });
22663
- var Zn = createSelector(Le, (a2) => {
23271
+ var rc = createSelector(Le, (a2) => {
22664
23272
  var e;
22665
23273
  return (e = a2 == null ? void 0 : a2.subscribe) == null ? void 0 : e.bytesReceived;
22666
23274
  });
22667
- var ec = createSelector([uo, $n], (a2, e) => e ? a2[e] : void 0);
22668
- var tc = createSelector([Kn, lo], (a2, e) => e ? a2[e] : void 0);
22669
- var us = createSelector([ls, lo], (a2, e) => e ? a2[e] : void 0);
22670
- var ic = H(ec);
22671
- var rc = H(tc);
22672
- var sc = createSelector([ls, Gn], (a2, e) => {
23275
+ var sc = createSelector([So, Jn], (a2, e) => e ? a2[e] : void 0);
23276
+ var ac = createSelector([Qn, mo], (a2, e) => e ? a2[e] : void 0);
23277
+ var Ss = createSelector([ms, mo], (a2, e) => e ? a2[e] : void 0);
23278
+ var oc = H(sc);
23279
+ var nc = H(ac);
23280
+ var cc = createSelector([ms, qn], (a2, e) => {
22673
23281
  var t;
22674
23282
  return e ? (t = a2[e]) == null ? void 0 : t[0] : void 0;
22675
23283
  });
22676
- var ac = H(createSelector(us, (a2) => a2 == null ? void 0 : a2[0]));
22677
- var oc = createSelector([ls, Wn], (a2, e) => {
23284
+ var dc = H(createSelector(Ss, (a2) => a2 == null ? void 0 : a2[0]));
23285
+ var lc = createSelector([ms, jn], (a2, e) => {
22678
23286
  var t;
22679
23287
  return e ? (t = a2[e]) == null ? void 0 : t[0] : void 0;
22680
23288
  });
22681
- var nc = H(createSelector(us, (a2) => a2));
23289
+ var uc = H(createSelector(Ss, (a2) => a2));
22682
23290
 
22683
23291
  // src/Prebuilt/components/Header/StreamActions.tsx
22684
23292
  import {
@@ -22797,7 +23405,7 @@ var RecordingStatus = () => {
22797
23405
  };
22798
23406
  var RecordingPauseStatus = () => {
22799
23407
  const recording = useHMSStore29(selectRecordingState2);
22800
- if (recording.hls && recording.hls.state === Gs.PAUSED) {
23408
+ if (recording.hls && recording.hls.state === qs.PAUSED) {
22801
23409
  return /* @__PURE__ */ React64.createElement(
22802
23410
  Tooltip,
22803
23411
  {
@@ -27655,7 +28263,7 @@ var Chat = () => {
27655
28263
  const listRef = useRef26(null);
27656
28264
  const hmsActions = useHMSActions42();
27657
28265
  const vanillaStore = useHMSVanillaStore11();
27658
- const { enabled: isChatEnabled = true } = useHMSStore61(fS("chatState" /* CHAT_STATE */)) || {};
28266
+ const { enabled: isChatEnabled = true } = useHMSStore61(ES("chatState" /* CHAT_STATE */)) || {};
27659
28267
  const isMobile = useMedia20(config.media.md);
27660
28268
  const isMobileHLSStream = useMobileHLSStream();
27661
28269
  const isLandscapeStream = useLandscapeHLSStream();
@@ -27745,7 +28353,7 @@ var NewMessageIndicator = ({
27745
28353
  scrollToBottom,
27746
28354
  listRef
27747
28355
  }) => {
27748
- const unreadCount = useHMSStore61(Vm);
28356
+ const unreadCount = useHMSStore61(Km);
27749
28357
  if (!unreadCount || !listRef.current) {
27750
28358
  return null;
27751
28359
  }
@@ -28758,7 +29366,7 @@ var VBPicker = ({ backgroundMedia = [] }) => {
28758
29366
  const toggleVB = useSidepaneToggle(SIDE_PANE_OPTIONS.VB);
28759
29367
  const hmsActions = useHMSActions45();
28760
29368
  const localPeer = useHMSStore69(selectLocalPeer8);
28761
- const role = useHMSStore69(ct);
29369
+ const role = useHMSStore69(dt);
28762
29370
  const isVideoOn = useHMSStore69(selectIsLocalVideoEnabled6);
28763
29371
  const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
28764
29372
  const trackSelector = selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack);
@@ -28767,12 +29375,12 @@ var VBPicker = ({ backgroundMedia = [] }) => {
28767
29375
  const roomState = useHMSStore69(selectRoomState6);
28768
29376
  const isLargeRoom = useHMSStore69(selectIsLargeRoom3);
28769
29377
  const isEffectsSupported = VBHandler.isEffectsSupported();
28770
- const isEffectsEnabled = useHMSStore69(Zm);
28771
- const effectsKey = useHMSStore69(tS);
29378
+ const isEffectsEnabled = useHMSStore69(sS);
29379
+ const effectsKey = useHMSStore69(oS);
28772
29380
  const isMobile = useMedia24(config.media.md);
28773
29381
  const [loadingEffects, setLoadingEffects] = useSetAppDataByKey(APP_DATA.loadingEffects);
28774
29382
  const isPluginAdded = useHMSStore69(selectIsLocalVideoPluginPresent(((_a8 = VBHandler) == null ? void 0 : _a8.getName()) || ""));
28775
- const background = useHMSStore69(TS(APP_DATA.background));
29383
+ const background = useHMSStore69(kS(APP_DATA.background));
28776
29384
  const mediaList = backgroundMedia.map((media) => media.url || "");
28777
29385
  const pluginLoadingRef = useRef27(false);
28778
29386
  const isBlurSupported = (_b7 = VBHandler) == null ? void 0 : _b7.isBlurSupported();
@@ -34608,8 +35216,8 @@ import { useEffect as useEffect75 } from "react";
34608
35216
  import { useAwayNotifications as useAwayNotifications5, useHMSNotifications as useHMSNotifications8, useHMSStore as useHMSStore92 } from "@100mslive/react-sdk";
34609
35217
  var MessageNotifications = () => {
34610
35218
  var _a8, _b7;
34611
- const notification = useHMSNotifications8(Er.NEW_MESSAGE);
34612
- const amIScreenSharing = useHMSStore92(Yr);
35219
+ const notification = useHMSNotifications8(br.NEW_MESSAGE);
35220
+ const amIScreenSharing = useHMSStore92(ts);
34613
35221
  const logoURL = (_b7 = (_a8 = useRoomLayout()) == null ? void 0 : _a8.logo) == null ? void 0 : _b7.url;
34614
35222
  const { pipWindow } = usePIPWindow();
34615
35223
  const { showNotification } = useAwayNotifications5();