🔧 Replace UAParser.js with @penpot/ua-parser (#10007)

This commit is contained in:
Andrey Antukh 2026-06-12 10:46:09 +02:00 committed by GitHub
parent 87eb91f805
commit f5874e159e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 679 additions and 1639 deletions

View File

@ -57,6 +57,7 @@
"@penpot/text-editor": "link:text-editor", "@penpot/text-editor": "link:text-editor",
"@penpot/tokenscript": "link:packages/tokenscript", "@penpot/tokenscript": "link:packages/tokenscript",
"@penpot/ui": "link:packages/ui", "@penpot/ui": "link:packages/ui",
"@penpot/ua-parser": "penpot/ua-parser#1.0.0",
"@playwright/test": "1.60.0", "@playwright/test": "1.60.0",
"@storybook/addon-docs": "10.4.3", "@storybook/addon-docs": "10.4.3",
"@storybook/addon-themes": "10.4.3", "@storybook/addon-themes": "10.4.3",
@ -121,7 +122,6 @@
"tdigest": "^0.1.2", "tdigest": "^0.1.2",
"tinycolor2": "^1.6.0", "tinycolor2": "^1.6.0",
"typescript": "^6.0.2", "typescript": "^6.0.2",
"ua-parser-js": "2.0.10",
"vite": "^8.0.16", "vite": "^8.0.16",
"vitest": "^4.1.8", "vitest": "^4.1.8",
"wait-on": "^9.0.4", "wait-on": "^9.0.4",

2302
frontend/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
(ns app.main.data.event (ns app.main.data.event
(:require (:require
["ua-parser-js" :as ua] ["@penpot/ua-parser" :as ua]
[app.common.data :as d] [app.common.data :as d]
[app.common.data.macros :as dm] [app.common.data.macros :as dm]
[app.common.json :as json] [app.common.json :as json]
@ -66,22 +66,22 @@
(defn- collect-context (defn- collect-context
[] []
(let [uagent (new ua/UAParser)] (let [result (ua/parse)]
(merge (merge
{:version (:full cf/version) {:version (:full cf/version)
:locale i18n/*current-locale*} :locale i18n/*current-locale*}
(let [browser (.getBrowser uagent)] (let [browser (.getBrowser result)]
{:browser (obj/get browser "name") {:browser (obj/get browser "name")
:browser-version (obj/get browser "version")}) :browser-version (obj/get browser "version")})
(let [engine (.getEngine uagent)] (let [engine (.getEngine result)]
{:engine (obj/get engine "name") {:engine (obj/get engine "name")
:engine-version (obj/get engine "version")}) :engine-version (obj/get engine "version")})
(let [os (.getOS uagent) (let [os (.getOS result)
name (obj/get os "name") name (obj/get os "name")
version (obj/get os "version")] version (obj/get os "version")]
{:os (str name " " version) {:os (str name " " version)
:os-version version}) :os-version version})
(let [device (.getDevice uagent)] (let [device (.getDevice result)]
(if-let [type (obj/get device "type")] (if-let [type (obj/get device "type")]
{:device-type type {:device-type type
:device-vendor (obj/get device "vendor") :device-vendor (obj/get device "vendor")
@ -93,7 +93,7 @@
:screen-height (obj/get screen "height") :screen-height (obj/get screen "height")
:screen-color-depth (obj/get screen "colorDepth") :screen-color-depth (obj/get screen "colorDepth")
:screen-orientation (obj/get orientation "type")}) :screen-orientation (obj/get orientation "type")})
(let [cpu (.getCPU uagent)] (let [cpu (.getCPU result)]
{:device-arch (obj/get cpu "architecture")})))) {:device-arch (obj/get cpu "architecture")}))))
(def context (def context