From d27bcb7511ab4d812c7808dfe92915c377ad2056 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 08:24:17 +0000 Subject: [PATCH 1/2] chore(deps): bump vite from 8.3.4 to 8.3.5 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.3.4 to 8.3.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.3.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 162 ++++++++++++++++++++++++------------------------- 2 files changed, 82 insertions(+), 82 deletions(-) diff --git a/package.json b/package.json index ffd1384..e02662b 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "jsdom": "^30.1.3", "typescript": "^6.0.3", "typescript-eslint": "^8.71.2", - "vite": "^8.3.4", + "vite": "^8.3.5", "vitest": "^4.1.12" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9fbeb1..42870a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,11 +30,11 @@ importers: specifier: ^8.71.2 version: 8.71.2(eslint@10.13.0)(typescript@6.0.3) vite: - specifier: ^8.3.4 - version: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2) + specifier: ^8.3.5 + version: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2) vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)) + version: 4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)) packages: @@ -356,101 +356,101 @@ packages: '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@oxc-project/types@0.154.0': - resolution: {integrity: sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==} + '@oxc-project/types@0.155.0': + resolution: {integrity: sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==} - '@rolldown/binding-android-arm-eabi@1.2.14': - resolution: {integrity: sha512-aWR+XKH9+rW7m5fWq/5360J3mHycrx/o6xZM2DQFdJnTMdyP7/WzxPjhtLbVWdKo2y612/4U1bWqb3HQhiF7vg==} + '@rolldown/binding-android-arm-eabi@1.2.15': + resolution: {integrity: sha512-aLcgK9gIJ3YRvrrtfSBbRa27F5WrpiTaPulnFpsHPxpUHgFlSgnU4854MHwoRGEBhfRJDWCS2WQ7lIjskE9Olw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@rolldown/binding-android-arm64@1.2.14': - resolution: {integrity: sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ==} + '@rolldown/binding-android-arm64@1.2.15': + resolution: {integrity: sha512-xD7DdZCrbThKuxNg7ooQmvp07ys4J/pnSEMTG3/OdOWl6daC67m/Q4fL78sRHMxTH/N4fGUbYhcPM0MF5WFHkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.14': - resolution: {integrity: sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw==} + '@rolldown/binding-darwin-arm64@1.2.15': + resolution: {integrity: sha512-m2WuQ6r0B4OTYxyPpNLtXaMRbRDUbG8YQV2Q3KTdSSK8Th6KHCnC8jVCJt8bvYeSB5WivkkNbc85mKadaSdOxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.14': - resolution: {integrity: sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA==} + '@rolldown/binding-darwin-x64@1.2.15': + resolution: {integrity: sha512-5RtnsHM36nodM9WbMy+zip0LGS/G+y5wro5RHrpOlr4ac24+1zSi9kiV2MP1myZeZ/ifEHfulQcWjnAXzc2C2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.14': - resolution: {integrity: sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA==} + '@rolldown/binding-freebsd-x64@1.2.15': + resolution: {integrity: sha512-g3l09pyFqhu+135JKkbkwiKGQmwU5hUMUPJ4VdBADvuqR8d33L6H578rh8m7rtxbdp+VmX/+nzI7nvhSZlzpUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.14': - resolution: {integrity: sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': + resolution: {integrity: sha512-nIe3VugI97nGQtspPxDqA4sXMUpeiocKIP/CqpY/u/vgbT+alX+cVxu1C/oVBPKg4feNTmYovE91v4DgXvXNwQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.14': - resolution: {integrity: sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ==} + '@rolldown/binding-linux-arm64-gnu@1.2.15': + resolution: {integrity: sha512-iTBjXx+B5QSvgI89lJfmqh4wTh8NabR1YZIIN3hNx4zSG0EVfVqkOvLulNpG4251pbd6/IAmZ/LefVk1Y4rPhw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.14': - resolution: {integrity: sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg==} + '@rolldown/binding-linux-arm64-musl@1.2.15': + resolution: {integrity: sha512-uN26XOnVR7rqQupG3V9oAG2EGGatWjcJHOeDOHUFCh4TBWmP2tHTFoVN13aYbwfm0aHqJAEmcwhAu6sooIjfqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.14': - resolution: {integrity: sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q==} + '@rolldown/binding-linux-ppc64-gnu@1.2.15': + resolution: {integrity: sha512-9nWkcdd+H+XhaA3fQIwpHnKIrfx/PQ6rO0pivr78Og07tXlUlctBBJoEYLPfhTmCR/QxEVdn6uPjHV5SymPhdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.14': - resolution: {integrity: sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A==} + '@rolldown/binding-linux-s390x-gnu@1.2.15': + resolution: {integrity: sha512-Ggh0ciFjLwIusLSLz7LZYEaGdxOAUJXI+Qu5JCbhPJJHEt8vP+IjRATTJheiJsdzzTYgUiHUiw3X1Ea3ZpMBdA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.14': - resolution: {integrity: sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg==} + '@rolldown/binding-linux-x64-gnu@1.2.15': + resolution: {integrity: sha512-FHg60rS6DBePAYZ9X9F67x+JObFdmgn6tupA1C/a3B+CufFmTD4mX+e8M75tCiAO3foR/6xwVBI0KQiI7sn/rw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.14': - resolution: {integrity: sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg==} + '@rolldown/binding-linux-x64-musl@1.2.15': + resolution: {integrity: sha512-/cvV/7v5VGz/moiz0XKRj2dE8DzsKyhIu1KpOvJGPjRywg3yscON889UGvAe8zfiJLHup7VLjBduoGWi3HusWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.14': - resolution: {integrity: sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q==} + '@rolldown/binding-openharmony-arm64@1.2.15': + resolution: {integrity: sha512-MyzC5Hrv/sm+Z7TSGKP/j8001RO2xQm1zOpCNVL4j0cY/VhBZviludA2YFQ7i4lH6ZAXxQm0lcMdBzM+99mE7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.14': - resolution: {integrity: sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA==} + '@rolldown/binding-win32-arm64-msvc@1.2.15': + resolution: {integrity: sha512-+PgYiS+AH5omy6L45ZLxybasauJaj3M8buoT83D+nzPmCayXlxUV9hydhciCKVyIg0B/v0BtXPDE1uGqNwCPpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.14': - resolution: {integrity: sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ==} + '@rolldown/binding-win32-x64-msvc@1.2.15': + resolution: {integrity: sha512-HFZd2QNQYn1JbIi+Hpd7H+r/lkWxcfIu28nirZ6eCn2LafuvmExMlb/P96Sfx5tf7pPArw39IdhmCF8vmV+NhQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1004,8 +1004,8 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - rolldown@1.2.14: - resolution: {integrity: sha512-eTBTTqMR6uHKLgcUqpJP8ntzDI6V4LYA8negAMBEI7gkgVvOdrx6VsvS2Ym+83KhOPdLCHWJu0w7UQFJZhHKNw==} + rolldown@1.2.15: + resolution: {integrity: sha512-6odND+fel5zVw3I4Yc2e69gvguDnX0CAAGiNDZSq4ik5WUcaLrkD2GLuog0XcODbor31hZ5ayEMgVDno+KPV5g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -1105,13 +1105,13 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - vite@8.3.4: - resolution: {integrity: sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==} + vite@8.3.5: + resolution: {integrity: sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.7.1 + '@vitejs/devtools': ^0.7.1 || ^0.8.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -1449,51 +1449,51 @@ snapshots: '@keyv/serialize@1.1.1': {} - '@oxc-project/types@0.154.0': {} + '@oxc-project/types@0.155.0': {} - '@rolldown/binding-android-arm-eabi@1.2.14': + '@rolldown/binding-android-arm-eabi@1.2.15': optional: true - '@rolldown/binding-android-arm64@1.2.14': + '@rolldown/binding-android-arm64@1.2.15': optional: true - '@rolldown/binding-darwin-arm64@1.2.14': + '@rolldown/binding-darwin-arm64@1.2.15': optional: true - '@rolldown/binding-darwin-x64@1.2.14': + '@rolldown/binding-darwin-x64@1.2.15': optional: true - '@rolldown/binding-freebsd-x64@1.2.14': + '@rolldown/binding-freebsd-x64@1.2.15': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.14': + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.14': + '@rolldown/binding-linux-arm64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.14': + '@rolldown/binding-linux-arm64-musl@1.2.15': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.14': + '@rolldown/binding-linux-ppc64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.14': + '@rolldown/binding-linux-s390x-gnu@1.2.15': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.14': + '@rolldown/binding-linux-x64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-x64-musl@1.2.14': + '@rolldown/binding-linux-x64-musl@1.2.15': optional: true - '@rolldown/binding-openharmony-arm64@1.2.14': + '@rolldown/binding-openharmony-arm64@1.2.15': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.14': + '@rolldown/binding-win32-arm64-msvc@1.2.15': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.14': + '@rolldown/binding-win32-x64-msvc@1.2.15': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -1620,7 +1620,7 @@ snapshots: obug: 2.2.1 std-env: 4.3.0 tinyrainbow: 3.2.0 - vitest: 4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)) + vitest: 4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)) '@vitest/expect@4.1.12': dependencies: @@ -1631,13 +1631,13 @@ snapshots: chai: 6.3.0 tinyrainbow: 3.2.0 - '@vitest/mocker@4.1.12(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2))': + '@vitest/mocker@4.1.12(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2))': dependencies: '@vitest/spy': 4.1.12 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2) '@vitest/pretty-format@4.1.12': dependencies: @@ -2091,26 +2091,26 @@ snapshots: require-from-string@2.0.2: {} - rolldown@1.2.14: + rolldown@1.2.15: dependencies: - '@oxc-project/types': 0.154.0 + '@oxc-project/types': 0.155.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.14 - '@rolldown/binding-android-arm64': 1.2.14 - '@rolldown/binding-darwin-arm64': 1.2.14 - '@rolldown/binding-darwin-x64': 1.2.14 - '@rolldown/binding-freebsd-x64': 1.2.14 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.14 - '@rolldown/binding-linux-arm64-gnu': 1.2.14 - '@rolldown/binding-linux-arm64-musl': 1.2.14 - '@rolldown/binding-linux-ppc64-gnu': 1.2.14 - '@rolldown/binding-linux-s390x-gnu': 1.2.14 - '@rolldown/binding-linux-x64-gnu': 1.2.14 - '@rolldown/binding-linux-x64-musl': 1.2.14 - '@rolldown/binding-openharmony-arm64': 1.2.14 - '@rolldown/binding-win32-arm64-msvc': 1.2.14 - '@rolldown/binding-win32-x64-msvc': 1.2.14 + '@rolldown/binding-android-arm-eabi': 1.2.15 + '@rolldown/binding-android-arm64': 1.2.15 + '@rolldown/binding-darwin-arm64': 1.2.15 + '@rolldown/binding-darwin-x64': 1.2.15 + '@rolldown/binding-freebsd-x64': 1.2.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.15 + '@rolldown/binding-linux-arm64-gnu': 1.2.15 + '@rolldown/binding-linux-arm64-musl': 1.2.15 + '@rolldown/binding-linux-ppc64-gnu': 1.2.15 + '@rolldown/binding-linux-s390x-gnu': 1.2.15 + '@rolldown/binding-linux-x64-gnu': 1.2.15 + '@rolldown/binding-linux-x64-musl': 1.2.15 + '@rolldown/binding-openharmony-arm64': 1.2.15 + '@rolldown/binding-win32-arm64-msvc': 1.2.15 + '@rolldown/binding-win32-x64-msvc': 1.2.15 saxes@6.0.0: dependencies: @@ -2190,22 +2190,22 @@ snapshots: dependencies: punycode: 2.3.1 - vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2): + vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 postcss: 8.5.31 - rolldown: 1.2.14 + rolldown: 1.2.15 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.6.5 esbuild: 0.28.2 fsevents: 2.3.3 - vitest@4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)): + vitest@4.1.12(@types/node@26.6.5)(@vitest/coverage-v8@4.1.12)(jsdom@30.1.3)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)): dependencies: '@vitest/expect': 4.1.12 - '@vitest/mocker': 4.1.12(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)) + '@vitest/mocker': 4.1.12(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)) '@vitest/pretty-format': 4.1.12 '@vitest/runner': 4.1.12 '@vitest/snapshot': 4.1.12 @@ -2222,7 +2222,7 @@ snapshots: tinyexec: 1.3.1 tinyglobby: 0.2.17 tinyrainbow: 3.2.0 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.6.5 From f157955b85b0adbd515d7a656791f9a3218655df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 08:31:23 +0000 Subject: [PATCH 2/2] [dependabot-skip] Rebuild frontend assets --- src/Resources/public/js/device-intelligence.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Resources/public/js/device-intelligence.min.js b/src/Resources/public/js/device-intelligence.min.js index f077851..9aa32c6 100644 --- a/src/Resources/public/js/device-intelligence.min.js +++ b/src/Resources/public/js/device-intelligence.min.js @@ -1,2 +1,2 @@ -var DeviceIntelligence=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=class{entry=null;get(){return this.entry===null?null:Date.now()>=this.entry.expiresAt?(this.entry=null,null):this.entry.value}set(e,t){let n=t*1e3;this.entry={value:e,expiresAt:Date.now()+n},n<=0&&(this.entry=null)}clear(){this.entry=null}has(){return this.get()!==null}},n=16;async function r(e){let t=globalThis.crypto?.subtle;if(!t)throw Error(`WebCrypto SubtleCrypto is not available`);let n=typeof e==`string`?new TextEncoder().encode(e):e,r=await t.digest(`SHA-256`,n),i=new Uint8Array(r),a=``;for(let e=0;e1?1:e}function o(e){return{name:e.name,value:e.value,normalizedValue:e.normalizedValue,quality:a(e.quality),stability:a(e.stability),entropyCategory:e.entropyCategory,collectedAt:e.collectedAt??Date.now()}}function s(e){return new Promise((t,n)=>{let r=()=>{n(new DOMException(`The operation was aborted.`,`AbortError`))};e.aborted?r():e.addEventListener(`abort`,r,{once:!0})})}function c(e,t){return Promise.race([e,s(t)])}function l(e){if(e.abortSignal.aborted)throw new DOMException(`The operation was aborted.`,`AbortError`)}var u=44100,d=44100,f=256,p=class{name=`audio`;async collect(e){l(e);let t=m();if(!t)throw Error(`OfflineAudioContext is not available`);let n=new t(1,d,u),r=n.createOscillator();r.type=`triangle`,r.frequency.value=1e4;let a=n.createDynamicsCompressor();a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.25,r.connect(a),a.connect(n.destination),r.start(0);let s=await i(h((await c(n.startRendering(),e.abortSignal)).getChannelData(0),f).join(`,`));return o({name:this.name,value:s,normalizedValue:s,quality:.85,stability:.9,entropyCategory:`high`})}};function m(){let e=globalThis;return e.OfflineAudioContext??e.webkitOfflineAudioContext??null}function h(e,t){let n=Math.max(1,Math.floor(e.length/t)),r=[];for(let i=0;i`u`?null:navigator,r=n?.userAgent??``;n&&n.webdriver===!0&&t.push(`webdriver`),!n||!Array.isArray(n.languages)||n.languages.length===0?t.push(`missing-languages`):n.language&&n.languages[0]&&n.language!==n.languages[0]&&t.push(`language-mismatch`),!n||typeof n.hardwareConcurrency!=`number`?t.push(`missing-hardware-concurrency`):(n.hardwareConcurrency<=0||n.hardwareConcurrency>128)&&t.push(`implausible-hardware-concurrency`),/headless/i.test(r)&&t.push(`headless-ua`),/HeadlessChrome/i.test(r)&&t.push(`headless-chrome`),typeof window<`u`&&window.outerWidth===0&&window.outerHeight===0&&t.push(`zero-outer-size`);let i={indicators:t,confidence:a(t.reduce((e,t)=>e+(ee[t]??.15),0))};return o({name:this.name,value:i,normalizedValue:i,quality:.8,stability:.5,entropyCategory:`low`})}},g=280,_=80,v=class{name=`canvas`;async collect(e){if(l(e),typeof document>`u`)throw Error(`document is not available`);let t=document.createElement(`canvas`);t.width=g,t.height=_,t.style.display=`none`;let n=t.getContext(`2d`,{willReadFrequently:!0});if(!n)throw Error(`CanvasRenderingContext2D is not available`);y(n);let r=await i(n.getImageData(0,0,g,_).data);return o({name:this.name,value:r,normalizedValue:r,quality:.92,stability:.95,entropyCategory:`high`})}};function y(e){e.fillStyle=`#f60`,e.fillRect(8,8,90,48),e.fillStyle=`#069`,e.fillRect(108,12,70,40),e.strokeStyle=`#111827`,e.lineWidth=2,e.beginPath(),e.arc(220,36,26,0,Math.PI*2),e.stroke(),e.beginPath(),e.arc(248,52,14,.25*Math.PI,1.6*Math.PI),e.stroke(),e.fillStyle=`#111827`,e.font=`16px Arial, sans-serif`,e.textBaseline=`top`,e.fillText(`DeviceIntelligence`,12,58),e.fillStyle=`rgba(16, 185, 129, 0.45)`,e.fillRect(40,20,36,18)}var b=class{name=`capabilities`;async collect(e){l(e);let t=typeof navigator>`u`?null:navigator,n=typeof window>`u`?null:window,r={cookieEnabled:t?.cookieEnabled??!1,pdfViewerEnabled:!!t?.pdfViewerEnabled,serviceWorker:!!(t&&`serviceWorker`in t),webgl:x(),webgpu:!!(t&&`gpu`in t),wasm:typeof WebAssembly<`u`,sharedArrayBuffer:typeof SharedArrayBuffer<`u`,touch:(t?.maxTouchPoints??0)>0,matchMedia:typeof n?.matchMedia==`function`,localStorage:S(`localStorage`),sessionStorage:S(`sessionStorage`),indexedDB:typeof indexedDB<`u`},i=Object.entries(r).filter(([,e])=>e).map(([e])=>e).sort();return o({name:this.name,value:r,normalizedValue:i,quality:.9,stability:.9,entropyCategory:`medium`})}};function x(){if(typeof document>`u`||typeof navigator<`u`&&/jsdom/i.test(navigator.userAgent))return!1;try{let e=document.createElement(`canvas`);return!!(e.getContext(`webgl`)||e.getContext(`experimental-webgl`))}catch{return!1}}function S(e){try{let t=globalThis[e],n=`__di_cap__`;return t.setItem(n,`1`),t.removeItem(n),!0}catch{return!1}}function C(e){let t=e.trim();return t.length===0?`other`:/Edg(?:e|A|iOS)?\/|\bEdge\//i.test(t)||/^Edge\s/i.test(t)?w(t,`Edge`,/(?:Edg(?:e|A|iOS)?|Edge)[/\s](\d+)/i):/\bOPR\/|\bOpera\//i.test(t)||/^Opera\s/i.test(t)?w(t,`Opera`,/(?:OPR|Opera)[/\s](\d+)/i):/\bFirefox\/|\bFxiOS\//i.test(t)||/^Firefox\s/i.test(t)?w(t,`Firefox`,/(?:Firefox|FxiOS)[/\s](\d+)/i):/^Chrome\s+\d+/i.test(t)?w(t,`Chrome`,/^Chrome\s+(\d+)/i):/\bSafari\//i.test(t)&&/\bVersion\//i.test(t)&&!/\b(Chrome|Chromium|CriOS|Edg|OPR)\b/i.test(t)||/^Safari\s/i.test(t)?w(t,`Safari`,/(?:Version|Safari)[/\s](\d+)/i):/\b(Chrome|Chromium|CriOS)\//i.test(t)?w(t,`Chrome`,/(?:Chrome|Chromium|CriOS)\/(\d+)/i):`other`}function w(e,t,n){let r=e.match(n)?.[1];return r?`${t} ${r}`:t}function T(e){let t=e.toLowerCase();return t.includes(`win`)?`windows`:t.includes(`android`)?`android`:t.includes(`iphone`)||t.includes(`ipad`)||t.includes(`ipod`)||t.includes(`ios`)?`ios`:t.includes(`mac`)||t.includes(`darwin`)?`macos`:t.includes(`linux`)||t.includes(`x11`)||t.includes(`cros`)?`linux`:`other`}function E(e,t){let n=Math.max(e,t);return!Number.isFinite(n)||n<=0?`other`:n<=480?`mobile-s`:n<=767?`mobile-l`:n<=1280?`tablet`:n<=1920?`hd`:n<=2560?`qhd`:n<=3840?`uhd`:`other`}function D(e,t){let n=`${e} ${t}`.toLowerCase();return n.includes(`apple`)||n.includes(`metal`)?`apple`:n.includes(`nvidia`)||n.includes(`geforce`)||n.includes(`quadro`)?`nvidia`:n.includes(`amd`)||n.includes(`radeon`)||n.includes(`ati`)?`amd`:n.includes(`intel`)?`intel`:n.includes(`mali`)?`mali`:n.includes(`adreno`)?`adreno`:`other`}var O=[`architecture`,`bitness`,`model`,`platformVersion`,`uaFullVersion`,`fullVersionList`],ne=class{name=`client_hints`;async collect(e){if(l(e),typeof navigator>`u`)throw Error(`navigator is not available`);let t=navigator.userAgentData;if(!t)return o({name:this.name,value:{brands:[],mobile:null,platform:``,highEntropy:!1,available:!1},normalizedValue:{browser:C(navigator.userAgent??``),platform:T(navigator.platform??navigator.userAgent??``),highEntropy:!1},quality:.35,stability:.7,entropyCategory:`medium`});let n={brands:Array.isArray(t.brands)?t.brands:[],mobile:typeof t.mobile==`boolean`?t.mobile:null,platform:t.platform??``,highEntropy:!1,available:!0},r={},i=!1;if(e.consent.highEntropy&&typeof t.getHighEntropyValues==`function`)try{r=await c(t.getHighEntropyValues([...O]),e.abortSignal),i=!0}catch{i=!1}let a={...n,...r,highEntropy:i},s=re(n.brands),u=typeof r.uaFullVersion==`string`?String(r.uaFullVersion):s?.version??``,d=s?`${s.brand} ${u}`:navigator.userAgent;return o({name:this.name,value:a,normalizedValue:{browser:C(d),platform:T(n.platform||navigator.platform||``),highEntropy:i},quality:i?.95:.7,stability:.75,entropyCategory:`medium`})}};function re(e){return e.find(e=>{let t=e.brand.toLowerCase();return t!==`not?a;brand`&&t!==`not a;brand`&&!t.includes(`not:`)})??e[0]??null}var k=`mmmmmmmmmmlli`,A=`monospace`,j=[`Arial`,`Times New Roman`,`Courier New`,`Georgia`,`Verdana`,`Roboto`],M=class{name=`fonts`;async collect(e){if(l(e),typeof document>`u`||!document.body)throw Error(`document.body is not available`);let t=N(k,A),n=j.filter(e=>N(k,`${e}, ${A}`)!==t);return o({name:this.name,value:n,normalizedValue:[...n].sort(),quality:.7,stability:.8,entropyCategory:`high`})}};function N(e,t){let n=document.createElement(`span`);n.style.cssText=[`position:absolute`,`left:-9999px`,`top:0`,`visibility:hidden`,`white-space:nowrap`,`font:72px ${t}`].join(`;`),n.textContent=e,document.body.appendChild(n);let r=n.offsetWidth;return document.body.removeChild(n),r}var P=class{name=`navigator`;async collect(e){if(l(e),typeof navigator>`u`)throw Error(`navigator is not available`);let t=navigator.userAgent??``,n=navigator.platform??``,r=Array.isArray(navigator.languages)?[...navigator.languages]:[],i=navigator,a={userAgent:t,platform:n,language:navigator.language??``,languages:r,hardwareConcurrency:navigator.hardwareConcurrency??null,deviceMemory:typeof i.deviceMemory==`number`?i.deviceMemory:null,maxTouchPoints:navigator.maxTouchPoints??0,vendor:navigator.vendor??``},s=C(t),c=T(n||t);return o({name:this.name,value:a,normalizedValue:{browser:s,platform:c,hardwareConcurrency:a.hardwareConcurrency},quality:t.length>0?.9:.4,stability:.8,entropyCategory:`medium`})}},F=class{name=`screen`;async collect(e){l(e);let t=typeof screen>`u`?null:screen;if(!t)throw Error(`screen is not available`);let n=I(t.width),r=I(t.height),i={width:n,height:r,availWidth:I(t.availWidth),availHeight:I(t.availHeight),colorDepth:I(t.colorDepth),pixelDepth:I(t.pixelDepth),pixelRatio:I(typeof devicePixelRatio==`number`?devicePixelRatio:1)},a=E(n,r);return o({name:this.name,value:i,normalizedValue:{screenClass:a,width:n,height:r},quality:n>0&&r>0?.95:.4,stability:.7,entropyCategory:`low`})}};function I(e){return Number.isFinite(e)?e:0}var L=class{name=`timezone`;async collect(e){l(e);let t;try{t=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`}catch{t=`UTC`}let n=new Date().getTimezoneOffset(),r={timeZone:t,offsetMinutes:n};return o({name:this.name,value:r,normalizedValue:t,quality:t.length>0?.99:.3,stability:.85,entropyCategory:`low`})}},R=class{name=`webgl`;async collect(e){if(l(e),typeof document>`u`)throw Error(`document is not available`);let t=document.createElement(`canvas`);t.width=1,t.height=1;let n=z(t);if(!n)throw Error(`WebGL is not available`);try{let e=n.getExtension(`WEBGL_debug_renderer_info`),t=B(n,e?e.UNMASKED_VENDOR_WEBGL:n.VENDOR),r=B(n,e?e.UNMASKED_RENDERER_WEBGL:n.RENDERER),a=await i([...n.getSupportedExtensions()??[]].sort().join(`,`)),s=n.getParameter(n.MAX_VIEWPORT_DIMS),c={maxTextureSize:V(n,n.MAX_TEXTURE_SIZE),maxViewportDims:Array.isArray(s)?[Number(s[0]),Number(s[1])]:s instanceof Int32Array?[s[0]??0,s[1]??0]:null,maxRenderbufferSize:V(n,n.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:V(n,n.MAX_VERTEX_ATTRIBS),maxFragmentUniformVectors:V(n,n.MAX_FRAGMENT_UNIFORM_VECTORS)},l={vendor:t,renderer:r,extensionsHash:a,limits:c},u=typeof r==`string`&&r.length>0,d=u&&e?.88:u?.7:.45;return o({name:this.name,value:l,normalizedValue:{gpuFamily:D(t??``,r??``),extensionsHash:a,maxTextureSize:c.maxTextureSize},quality:d,stability:.95,entropyCategory:`high`})}finally{n.getExtension(`WEBGL_lose_context`)?.loseContext()}}};function z(e){let t={alpha:!0,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1};return e.getContext(`webgl`,t)||e.getContext(`experimental-webgl`,t)}function B(e,t){try{let n=e.getParameter(t);return typeof n==`string`&&n.length>0?n:null}catch{return null}}function V(e,t){try{let n=e.getParameter(t);return typeof n==`number`&&Number.isFinite(n)?n:null}catch{return null}}var H=`X-Previous-Debug-Token`;function U(){if(typeof document>`u`)return;let e=document.querySelector(`[id^="sfwdt"]`);if(!(e instanceof Element)||!e.id.startsWith(`sfwdt`))return;let t=e.id.slice(5);return t.length>0?t:void 0}async function W(e,t,n){try{let r={"Content-Type":`application/json`},i=U();i!==void 0&&(r[H]=i);let a=await fetch(e,{method:`POST`,credentials:`same-origin`,headers:r,body:JSON.stringify(t),signal:n});if(!a.ok)return null;let o=await a.text();if(o.trim().length===0)return{ok:!0};let s=JSON.parse(o);return typeof s!=`object`||!s?{ok:!0}:s}catch{return null}}var G=`1.0.0`,K=`/_device/collect`,q=1500,J=3600,Y={audio:!0,canvas:!0,webgl:!0,screen:!0,timezone:!0,navigator:!0,clientHints:!0,capabilities:!0,automation:!0,fonts:!1},ie=class{endpoint;timeout;cacheTtl;cacheEnabled;consent;cache=new t;collectors=[];constructor(e={}){this.endpoint=e.endpoint??K,this.timeout=oe(e.timeout),this.cacheEnabled=e.cache?.enabled??!0,this.cacheTtl=e.cache?.ttl??J,this.consent={highEntropy:e.consent?.highEntropy??!0},this.collectors=ae({...Y,...e.collectors})}async collect(){return this.runCollect(!1)}async refresh(){return this.runCollect(!0)}getCachedObservation(){return this.cache.get()}clear(){this.cache.clear()}registerCollector(e){this.collectors.push(e)}async runCollect(e){try{if(!e&&this.cacheEnabled){let e=this.cache.get();if(e)return e.result}let t=new AbortController,n=globalThis.setTimeout(()=>t.abort(),this.timeout),r={timeout:this.timeout,abortSignal:t.signal,consent:this.consent},i={};try{i=await this.collectSignals(r)}finally{globalThis.clearTimeout(n)}let a=this.collectors.length,o=Object.keys(i).length,s=ol.abort(),this.timeout),d=null;try{d=await W(this.endpoint,c,l.signal)}finally{globalThis.clearTimeout(u)}let f=d===null,p=o>0,m={ok:!f&&p&&d?.ok!==!1,degraded:!!d?.degraded||s||f||!p,signals:i};d?.new!==void 0&&(m.new=d.new),d?.token!==void 0&&(m.token=d.token),d?.expiresAt!==void 0&&(m.expiresAt=d.expiresAt),d?.deviceId!==void 0&&(m.deviceId=d.deviceId),d?.confidence!==void 0&&(m.confidence=d.confidence),d?.risk!==void 0&&(m.risk=d.risk),(f||!p)&&(m.ok=!1,m.degraded=!0);let h={timestamp:Date.now(),signals:i,result:m};return this.cacheEnabled&&this.cache.set(h,this.cacheTtl),m}catch{return{ok:!1,degraded:!0,signals:{}}}}async collectSignals(e){let t={},n=this.collectors.map(async n=>{try{let r=await c(n.collect(e),e.abortSignal);r&&typeof r.name==`string`&&(t[r.name]=r)}catch{}}),r=Promise.all(n),i=ce(this.timeout,e.abortSignal);return await Promise.race([r,i]),await Promise.allSettled(n),t}toPayload(e){let t={};for(let[n,r]of Object.entries(e))t[n]={value:r.value,quality:r.quality,collectedAt:r.collectedAt};return{v:1,sdkVersion:G,timestamp:Math.floor(Date.now()/1e3),nonce:se(),consent:this.consent,signals:t}}};function ae(e){let t=[];return e.navigator&&t.push(new P),e.clientHints&&t.push(new ne),e.screen&&t.push(new F),e.timezone&&t.push(new L),e.capabilities&&t.push(new b),e.automation&&t.push(new te),e.canvas&&t.push(new v),e.webgl&&t.push(new R),e.audio&&t.push(new p),e.fonts&&t.push(new M),t}function oe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:q}function se(){let e=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t{if(t.aborted){n();return}let r=globalThis.setTimeout(n,e);t.addEventListener(`abort`,()=>{globalThis.clearTimeout(r),n()},{once:!0})})}var X={script:`color:#0ea5e9;font-weight:bold`,debug:`color:#6b7280`,info:`color:#2563eb`,warn:`color:#d97706`,error:`color:#dc2626;font-weight:bold`},Z={script:`đŸ“Ļ`,debug:`🔍`,info:`â„šī¸`,warn:`âš ī¸`,error:`❌`};function le(e){return e.map(e=>typeof e==`object`&&e&&!(e instanceof Error)?JSON.stringify(e):e)}function ue(e,t){t!==void 0&&t!==``?console.log(`%c${Z.script} ${e} script loaded, build: %c${t}`,X.script,`color:#059669`):console.log(`%c${Z.script} ${e} script loaded`,X.script)}function Q(e,t,n){let r=Z[e],i=X[e],a=`%c${r} ${t}`,o=console[e];n.length>0?o(a,i,...le(n)):o(a,i)}function $(e,t,n){return(...r)=>{e()&&Q(n,t,r)}}function de(e,t={}){let n=`[${e}]`,{buildTime:r,alwaysLog:i=!1}=t,a=i===!0,o=a;return{scriptLoaded(){ue(n,r)},setDebug(e){o=a?!0:e},debug:$(()=>o,n,`debug`),info:$(()=>o,n,`info`),warn:$(()=>o,n,`warn`),error:$(()=>o,n,`error`)}}return de(`device-intelligence`,{buildTime:`9a7a362ac4aa`}).scriptLoaded(),e.DeviceIntelligence=ie,e.MemoryCache=t,e.SDK_VERSION=G,e.normalizeBrowser=C,e.normalizeGpuFamily=D,e.normalizePlatform=T,e.normalizeScreenClass=E,e})({});globalThis.DeviceIntelligence=DeviceIntelligence.DeviceIntelligence; +var DeviceIntelligence=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=class{entry=null;get(){return this.entry===null?null:Date.now()>=this.entry.expiresAt?(this.entry=null,null):this.entry.value}set(e,t){let n=t*1e3;this.entry={value:e,expiresAt:Date.now()+n},n<=0&&(this.entry=null)}clear(){this.entry=null}has(){return this.get()!==null}},n=16;async function r(e){let t=globalThis.crypto?.subtle;if(!t)throw Error(`WebCrypto SubtleCrypto is not available`);let n=typeof e==`string`?new TextEncoder().encode(e):e,r=await t.digest(`SHA-256`,n),i=new Uint8Array(r),a=``;for(let e=0;e1?1:e}function o(e){return{name:e.name,value:e.value,normalizedValue:e.normalizedValue,quality:a(e.quality),stability:a(e.stability),entropyCategory:e.entropyCategory,collectedAt:e.collectedAt??Date.now()}}function s(e){return new Promise((t,n)=>{let r=()=>{n(new DOMException(`The operation was aborted.`,`AbortError`))};e.aborted?r():e.addEventListener(`abort`,r,{once:!0})})}function c(e,t){return Promise.race([e,s(t)])}function l(e){if(e.abortSignal.aborted)throw new DOMException(`The operation was aborted.`,`AbortError`)}var u=44100,d=44100,f=256,p=class{name=`audio`;async collect(e){l(e);let t=m();if(!t)throw Error(`OfflineAudioContext is not available`);let n=new t(1,d,u),r=n.createOscillator();r.type=`triangle`,r.frequency.value=1e4;let a=n.createDynamicsCompressor();a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.25,r.connect(a),a.connect(n.destination),r.start(0);let s=await i(h((await c(n.startRendering(),e.abortSignal)).getChannelData(0),f).join(`,`));return o({name:this.name,value:s,normalizedValue:s,quality:.85,stability:.9,entropyCategory:`high`})}};function m(){let e=globalThis;return e.OfflineAudioContext??e.webkitOfflineAudioContext??null}function h(e,t){let n=Math.max(1,Math.floor(e.length/t)),r=[];for(let i=0;i`u`?null:navigator,r=n?.userAgent??``;n&&n.webdriver===!0&&t.push(`webdriver`),!n||!Array.isArray(n.languages)||n.languages.length===0?t.push(`missing-languages`):n.language&&n.languages[0]&&n.language!==n.languages[0]&&t.push(`language-mismatch`),!n||typeof n.hardwareConcurrency!=`number`?t.push(`missing-hardware-concurrency`):(n.hardwareConcurrency<=0||n.hardwareConcurrency>128)&&t.push(`implausible-hardware-concurrency`),/headless/i.test(r)&&t.push(`headless-ua`),/HeadlessChrome/i.test(r)&&t.push(`headless-chrome`),typeof window<`u`&&window.outerWidth===0&&window.outerHeight===0&&t.push(`zero-outer-size`);let i={indicators:t,confidence:a(t.reduce((e,t)=>e+(ee[t]??.15),0))};return o({name:this.name,value:i,normalizedValue:i,quality:.8,stability:.5,entropyCategory:`low`})}},g=280,_=80,v=class{name=`canvas`;async collect(e){if(l(e),typeof document>`u`)throw Error(`document is not available`);let t=document.createElement(`canvas`);t.width=g,t.height=_,t.style.display=`none`;let n=t.getContext(`2d`,{willReadFrequently:!0});if(!n)throw Error(`CanvasRenderingContext2D is not available`);y(n);let r=await i(n.getImageData(0,0,g,_).data);return o({name:this.name,value:r,normalizedValue:r,quality:.92,stability:.95,entropyCategory:`high`})}};function y(e){e.fillStyle=`#f60`,e.fillRect(8,8,90,48),e.fillStyle=`#069`,e.fillRect(108,12,70,40),e.strokeStyle=`#111827`,e.lineWidth=2,e.beginPath(),e.arc(220,36,26,0,Math.PI*2),e.stroke(),e.beginPath(),e.arc(248,52,14,.25*Math.PI,1.6*Math.PI),e.stroke(),e.fillStyle=`#111827`,e.font=`16px Arial, sans-serif`,e.textBaseline=`top`,e.fillText(`DeviceIntelligence`,12,58),e.fillStyle=`rgba(16, 185, 129, 0.45)`,e.fillRect(40,20,36,18)}var b=class{name=`capabilities`;async collect(e){l(e);let t=typeof navigator>`u`?null:navigator,n=typeof window>`u`?null:window,r={cookieEnabled:t?.cookieEnabled??!1,pdfViewerEnabled:!!t?.pdfViewerEnabled,serviceWorker:!!(t&&`serviceWorker`in t),webgl:x(),webgpu:!!(t&&`gpu`in t),wasm:typeof WebAssembly<`u`,sharedArrayBuffer:typeof SharedArrayBuffer<`u`,touch:(t?.maxTouchPoints??0)>0,matchMedia:typeof n?.matchMedia==`function`,localStorage:S(`localStorage`),sessionStorage:S(`sessionStorage`),indexedDB:typeof indexedDB<`u`},i=Object.entries(r).filter(([,e])=>e).map(([e])=>e).sort();return o({name:this.name,value:r,normalizedValue:i,quality:.9,stability:.9,entropyCategory:`medium`})}};function x(){if(typeof document>`u`||typeof navigator<`u`&&/jsdom/i.test(navigator.userAgent))return!1;try{let e=document.createElement(`canvas`);return!!(e.getContext(`webgl`)||e.getContext(`experimental-webgl`))}catch{return!1}}function S(e){try{let t=globalThis[e],n=`__di_cap__`;return t.setItem(n,`1`),t.removeItem(n),!0}catch{return!1}}function C(e){let t=e.trim();return t.length===0?`other`:/Edg(?:e|A|iOS)?\/|\bEdge\//i.test(t)||/^Edge\s/i.test(t)?w(t,`Edge`,/(?:Edg(?:e|A|iOS)?|Edge)[/\s](\d+)/i):/\bOPR\/|\bOpera\//i.test(t)||/^Opera\s/i.test(t)?w(t,`Opera`,/(?:OPR|Opera)[/\s](\d+)/i):/\bFirefox\/|\bFxiOS\//i.test(t)||/^Firefox\s/i.test(t)?w(t,`Firefox`,/(?:Firefox|FxiOS)[/\s](\d+)/i):/^Chrome\s+\d+/i.test(t)?w(t,`Chrome`,/^Chrome\s+(\d+)/i):/\bSafari\//i.test(t)&&/\bVersion\//i.test(t)&&!/\b(Chrome|Chromium|CriOS|Edg|OPR)\b/i.test(t)||/^Safari\s/i.test(t)?w(t,`Safari`,/(?:Version|Safari)[/\s](\d+)/i):/\b(Chrome|Chromium|CriOS)\//i.test(t)?w(t,`Chrome`,/(?:Chrome|Chromium|CriOS)\/(\d+)/i):`other`}function w(e,t,n){let r=e.match(n)?.[1];return r?`${t} ${r}`:t}function T(e){let t=e.toLowerCase();return t.includes(`win`)?`windows`:t.includes(`android`)?`android`:t.includes(`iphone`)||t.includes(`ipad`)||t.includes(`ipod`)||t.includes(`ios`)?`ios`:t.includes(`mac`)||t.includes(`darwin`)?`macos`:t.includes(`linux`)||t.includes(`x11`)||t.includes(`cros`)?`linux`:`other`}function E(e,t){let n=Math.max(e,t);return!Number.isFinite(n)||n<=0?`other`:n<=480?`mobile-s`:n<=767?`mobile-l`:n<=1280?`tablet`:n<=1920?`hd`:n<=2560?`qhd`:n<=3840?`uhd`:`other`}function D(e,t){let n=`${e} ${t}`.toLowerCase();return n.includes(`apple`)||n.includes(`metal`)?`apple`:n.includes(`nvidia`)||n.includes(`geforce`)||n.includes(`quadro`)?`nvidia`:n.includes(`amd`)||n.includes(`radeon`)||n.includes(`ati`)?`amd`:n.includes(`intel`)?`intel`:n.includes(`mali`)?`mali`:n.includes(`adreno`)?`adreno`:`other`}var O=[`architecture`,`bitness`,`model`,`platformVersion`,`uaFullVersion`,`fullVersionList`],ne=class{name=`client_hints`;async collect(e){if(l(e),typeof navigator>`u`)throw Error(`navigator is not available`);let t=navigator.userAgentData;if(!t)return o({name:this.name,value:{brands:[],mobile:null,platform:``,highEntropy:!1,available:!1},normalizedValue:{browser:C(navigator.userAgent??``),platform:T(navigator.platform??navigator.userAgent??``),highEntropy:!1},quality:.35,stability:.7,entropyCategory:`medium`});let n={brands:Array.isArray(t.brands)?t.brands:[],mobile:typeof t.mobile==`boolean`?t.mobile:null,platform:t.platform??``,highEntropy:!1,available:!0},r={},i=!1;if(e.consent.highEntropy&&typeof t.getHighEntropyValues==`function`)try{r=await c(t.getHighEntropyValues([...O]),e.abortSignal),i=!0}catch{i=!1}let a={...n,...r,highEntropy:i},s=re(n.brands),u=typeof r.uaFullVersion==`string`?String(r.uaFullVersion):s?.version??``,d=s?`${s.brand} ${u}`:navigator.userAgent;return o({name:this.name,value:a,normalizedValue:{browser:C(d),platform:T(n.platform||navigator.platform||``),highEntropy:i},quality:i?.95:.7,stability:.75,entropyCategory:`medium`})}};function re(e){return e.find(e=>{let t=e.brand.toLowerCase();return t!==`not?a;brand`&&t!==`not a;brand`&&!t.includes(`not:`)})??e[0]??null}var k=`mmmmmmmmmmlli`,A=`monospace`,j=[`Arial`,`Times New Roman`,`Courier New`,`Georgia`,`Verdana`,`Roboto`],M=class{name=`fonts`;async collect(e){if(l(e),typeof document>`u`||!document.body)throw Error(`document.body is not available`);let t=N(k,A),n=j.filter(e=>N(k,`${e}, ${A}`)!==t);return o({name:this.name,value:n,normalizedValue:[...n].sort(),quality:.7,stability:.8,entropyCategory:`high`})}};function N(e,t){let n=document.createElement(`span`);n.style.cssText=[`position:absolute`,`left:-9999px`,`top:0`,`visibility:hidden`,`white-space:nowrap`,`font:72px ${t}`].join(`;`),n.textContent=e,document.body.appendChild(n);let r=n.offsetWidth;return document.body.removeChild(n),r}var P=class{name=`navigator`;async collect(e){if(l(e),typeof navigator>`u`)throw Error(`navigator is not available`);let t=navigator.userAgent??``,n=navigator.platform??``,r=Array.isArray(navigator.languages)?[...navigator.languages]:[],i=navigator,a={userAgent:t,platform:n,language:navigator.language??``,languages:r,hardwareConcurrency:navigator.hardwareConcurrency??null,deviceMemory:typeof i.deviceMemory==`number`?i.deviceMemory:null,maxTouchPoints:navigator.maxTouchPoints??0,vendor:navigator.vendor??``},s=C(t),c=T(n||t);return o({name:this.name,value:a,normalizedValue:{browser:s,platform:c,hardwareConcurrency:a.hardwareConcurrency},quality:t.length>0?.9:.4,stability:.8,entropyCategory:`medium`})}},F=class{name=`screen`;async collect(e){l(e);let t=typeof screen>`u`?null:screen;if(!t)throw Error(`screen is not available`);let n=I(t.width),r=I(t.height),i={width:n,height:r,availWidth:I(t.availWidth),availHeight:I(t.availHeight),colorDepth:I(t.colorDepth),pixelDepth:I(t.pixelDepth),pixelRatio:I(typeof devicePixelRatio==`number`?devicePixelRatio:1)},a=E(n,r);return o({name:this.name,value:i,normalizedValue:{screenClass:a,width:n,height:r},quality:n>0&&r>0?.95:.4,stability:.7,entropyCategory:`low`})}};function I(e){return Number.isFinite(e)?e:0}var L=class{name=`timezone`;async collect(e){l(e);let t;try{t=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`}catch{t=`UTC`}let n=new Date().getTimezoneOffset(),r={timeZone:t,offsetMinutes:n};return o({name:this.name,value:r,normalizedValue:t,quality:t.length>0?.99:.3,stability:.85,entropyCategory:`low`})}},R=class{name=`webgl`;async collect(e){if(l(e),typeof document>`u`)throw Error(`document is not available`);let t=document.createElement(`canvas`);t.width=1,t.height=1;let n=z(t);if(!n)throw Error(`WebGL is not available`);try{let e=n.getExtension(`WEBGL_debug_renderer_info`),t=B(n,e?e.UNMASKED_VENDOR_WEBGL:n.VENDOR),r=B(n,e?e.UNMASKED_RENDERER_WEBGL:n.RENDERER),a=await i([...n.getSupportedExtensions()??[]].sort().join(`,`)),s=n.getParameter(n.MAX_VIEWPORT_DIMS),c={maxTextureSize:V(n,n.MAX_TEXTURE_SIZE),maxViewportDims:Array.isArray(s)?[Number(s[0]),Number(s[1])]:s instanceof Int32Array?[s[0]??0,s[1]??0]:null,maxRenderbufferSize:V(n,n.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:V(n,n.MAX_VERTEX_ATTRIBS),maxFragmentUniformVectors:V(n,n.MAX_FRAGMENT_UNIFORM_VECTORS)},l={vendor:t,renderer:r,extensionsHash:a,limits:c},u=typeof r==`string`&&r.length>0,d=u&&e?.88:u?.7:.45;return o({name:this.name,value:l,normalizedValue:{gpuFamily:D(t??``,r??``),extensionsHash:a,maxTextureSize:c.maxTextureSize},quality:d,stability:.95,entropyCategory:`high`})}finally{n.getExtension(`WEBGL_lose_context`)?.loseContext()}}};function z(e){let t={alpha:!0,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1};return e.getContext(`webgl`,t)||e.getContext(`experimental-webgl`,t)}function B(e,t){try{let n=e.getParameter(t);return typeof n==`string`&&n.length>0?n:null}catch{return null}}function V(e,t){try{let n=e.getParameter(t);return typeof n==`number`&&Number.isFinite(n)?n:null}catch{return null}}var H=`X-Previous-Debug-Token`;function U(){if(typeof document>`u`)return;let e=document.querySelector(`[id^="sfwdt"]`);if(!(e instanceof Element)||!e.id.startsWith(`sfwdt`))return;let t=e.id.slice(5);return t.length>0?t:void 0}async function W(e,t,n){try{let r={"Content-Type":`application/json`},i=U();i!==void 0&&(r[H]=i);let a=await fetch(e,{method:`POST`,credentials:`same-origin`,headers:r,body:JSON.stringify(t),signal:n});if(!a.ok)return null;let o=await a.text();if(o.trim().length===0)return{ok:!0};let s=JSON.parse(o);return typeof s!=`object`||!s?{ok:!0}:s}catch{return null}}var G=`1.0.0`,K=`/_device/collect`,q=1500,J=3600,Y={audio:!0,canvas:!0,webgl:!0,screen:!0,timezone:!0,navigator:!0,clientHints:!0,capabilities:!0,automation:!0,fonts:!1},ie=class{endpoint;timeout;cacheTtl;cacheEnabled;consent;cache=new t;collectors=[];constructor(e={}){this.endpoint=e.endpoint??K,this.timeout=oe(e.timeout),this.cacheEnabled=e.cache?.enabled??!0,this.cacheTtl=e.cache?.ttl??J,this.consent={highEntropy:e.consent?.highEntropy??!0},this.collectors=ae({...Y,...e.collectors})}async collect(){return this.runCollect(!1)}async refresh(){return this.runCollect(!0)}getCachedObservation(){return this.cache.get()}clear(){this.cache.clear()}registerCollector(e){this.collectors.push(e)}async runCollect(e){try{if(!e&&this.cacheEnabled){let e=this.cache.get();if(e)return e.result}let t=new AbortController,n=globalThis.setTimeout(()=>t.abort(),this.timeout),r={timeout:this.timeout,abortSignal:t.signal,consent:this.consent},i={};try{i=await this.collectSignals(r)}finally{globalThis.clearTimeout(n)}let a=this.collectors.length,o=Object.keys(i).length,s=ol.abort(),this.timeout),d=null;try{d=await W(this.endpoint,c,l.signal)}finally{globalThis.clearTimeout(u)}let f=d===null,p=o>0,m={ok:!f&&p&&d?.ok!==!1,degraded:!!d?.degraded||s||f||!p,signals:i};d?.new!==void 0&&(m.new=d.new),d?.token!==void 0&&(m.token=d.token),d?.expiresAt!==void 0&&(m.expiresAt=d.expiresAt),d?.deviceId!==void 0&&(m.deviceId=d.deviceId),d?.confidence!==void 0&&(m.confidence=d.confidence),d?.risk!==void 0&&(m.risk=d.risk),(f||!p)&&(m.ok=!1,m.degraded=!0);let h={timestamp:Date.now(),signals:i,result:m};return this.cacheEnabled&&this.cache.set(h,this.cacheTtl),m}catch{return{ok:!1,degraded:!0,signals:{}}}}async collectSignals(e){let t={},n=this.collectors.map(async n=>{try{let r=await c(n.collect(e),e.abortSignal);r&&typeof r.name==`string`&&(t[r.name]=r)}catch{}}),r=Promise.all(n),i=ce(this.timeout,e.abortSignal);return await Promise.race([r,i]),await Promise.allSettled(n),t}toPayload(e){let t={};for(let[n,r]of Object.entries(e))t[n]={value:r.value,quality:r.quality,collectedAt:r.collectedAt};return{v:1,sdkVersion:G,timestamp:Math.floor(Date.now()/1e3),nonce:se(),consent:this.consent,signals:t}}};function ae(e){let t=[];return e.navigator&&t.push(new P),e.clientHints&&t.push(new ne),e.screen&&t.push(new F),e.timezone&&t.push(new L),e.capabilities&&t.push(new b),e.automation&&t.push(new te),e.canvas&&t.push(new v),e.webgl&&t.push(new R),e.audio&&t.push(new p),e.fonts&&t.push(new M),t}function oe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:q}function se(){let e=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t{if(t.aborted){n();return}let r=globalThis.setTimeout(n,e);t.addEventListener(`abort`,()=>{globalThis.clearTimeout(r),n()},{once:!0})})}var X={script:`color:#0ea5e9;font-weight:bold`,debug:`color:#6b7280`,info:`color:#2563eb`,warn:`color:#d97706`,error:`color:#dc2626;font-weight:bold`},Z={script:`đŸ“Ļ`,debug:`🔍`,info:`â„šī¸`,warn:`âš ī¸`,error:`❌`};function le(e){return e.map(e=>typeof e==`object`&&e&&!(e instanceof Error)?JSON.stringify(e):e)}function ue(e,t){t!==void 0&&t!==``?console.log(`%c${Z.script} ${e} script loaded, build: %c${t}`,X.script,`color:#059669`):console.log(`%c${Z.script} ${e} script loaded`,X.script)}function Q(e,t,n){let r=Z[e],i=X[e],a=`%c${r} ${t}`,o=console[e];n.length>0?o(a,i,...le(n)):o(a,i)}function $(e,t,n){return(...r)=>{e()&&Q(n,t,r)}}function de(e,t={}){let n=`[${e}]`,{buildTime:r,alwaysLog:i=!1}=t,a=i===!0,o=a;return{scriptLoaded(){ue(n,r)},setDebug(e){o=a?!0:e},debug:$(()=>o,n,`debug`),info:$(()=>o,n,`info`),warn:$(()=>o,n,`warn`),error:$(()=>o,n,`error`)}}return de(`device-intelligence`,{buildTime:`8ebd28cbc048`}).scriptLoaded(),e.DeviceIntelligence=ie,e.MemoryCache=t,e.SDK_VERSION=G,e.normalizeBrowser=C,e.normalizeGpuFamily=D,e.normalizePlatform=T,e.normalizeScreenClass=E,e})({});globalThis.DeviceIntelligence=DeviceIntelligence.DeviceIntelligence; //# sourceMappingURL=device-intelligence.min.js.map \ No newline at end of file