fix: getHighEntropyValuesが使用できない場合は生のUAを返すように

This commit is contained in:
kakkokari-gtyih 2025-10-05 13:31:12 +09:00
parent f891e95d3e
commit 10b078c865
3 changed files with 26 additions and 42 deletions

View File

@ -33,7 +33,6 @@
"aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.15",
"analytics": "0.8.19",
"astring": "1.9.0",
"bowser": "2.12.1",
"broadcast-channel": "7.1.0",
"buraha": "0.0.1",
"canvas-confetti": "1.9.3",
@ -106,7 +105,6 @@
"@storybook/vue3-vite": "9.1.8",
"@tabler/icons-webfont": "3.35.0",
"@testing-library/vue": "8.1.0",
"@types/bowser": "1.1.5",
"@types/canvas-confetti": "1.9.0",
"@types/estree": "1.0.8",
"@types/matter-js": "0.20.2",

View File

@ -3,19 +3,17 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
// Type Reference Only import 実物はlazy-loadされる
import type * as BowserTypeReferenceOnly from 'bowser';
type BowserTypeTypeReferenceOnly = typeof BowserTypeReferenceOnly;
let Bowser: BowserTypeTypeReferenceOnly | null = null;
export type UserEnvironment = {
os: string;
browser: string;
screenWidth: number;
screenHeight: number;
viaGetHighEntropyValues: boolean;
viaGetHighEntropyValues: true;
} | {
userAgent: string;
screenWidth: number;
screenHeight: number;
viaGetHighEntropyValues: false;
};
export async function getUserEnvironment(): Promise<UserEnvironment> {
@ -56,14 +54,9 @@ export async function getUserEnvironment(): Promise<UserEnvironment> {
}
}
async function getViaUa(): Promise<UserEnvironment> {
if (Bowser == null) {
Bowser = (await import('bowser')).default;
}
const parsed = Bowser.parse(navigator.userAgent);
function getViaUa(): UserEnvironment {
return {
os: `${parsed.os.name ?? 'Unknown'} ${parsed.os.version ?? ''} ${parsed.os.versionName ? `(${parsed.os.versionName})` : ''}`.trim(),
browser: `${parsed.browser.name ?? 'Unknown'} ${parsed.browser.version ?? ''}`.trim(),
userAgent: navigator.userAgent,
screenWidth: window.innerWidth,
screenHeight: window.innerHeight,
viaGetHighEntropyValues: false,

View File

@ -757,9 +757,6 @@ importers:
astring:
specifier: 1.9.0
version: 1.9.0
bowser:
specifier: 2.12.1
version: 2.12.1
broadcast-channel:
specifier: 7.1.0
version: 7.1.0
@ -971,9 +968,6 @@ importers:
'@testing-library/vue':
specifier: 8.1.0
version: 8.1.0(@vue/compiler-sfc@3.5.22)(@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@types/bowser':
specifier: 1.1.5
version: 1.1.5
'@types/canvas-confetti':
specifier: 1.9.0
version: 1.9.0
@ -4598,10 +4592,6 @@ packages:
'@types/body-parser@1.19.6':
resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
'@types/bowser@1.1.5':
resolution: {integrity: sha512-7qUcVaL3NZ40tLPPlbk9fKL++vT/BBT0vbq+R97KH1lnZQmcZwvqa3rnAcCE48ai2dZm9ETr9TnQXhztGsvPIw==}
deprecated: This is a stub types definition. bowser provides its own type definitions, so you do not need this installed.
'@types/braces@3.0.1':
resolution: {integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==}
@ -15405,10 +15395,6 @@ snapshots:
'@types/connect': 3.4.36
'@types/node': 22.18.6
'@types/bowser@1.1.5':
dependencies:
bowser: 2.12.1
'@types/braces@3.0.1': {}
'@types/canvas-confetti@1.9.0': {}
@ -15758,7 +15744,7 @@ snapshots:
'@typescript-eslint/types': 8.44.1
'@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
'@typescript-eslint/visitor-keys': 8.44.1
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
eslint: 9.36.0
typescript: 5.9.2
transitivePeerDependencies:
@ -15787,7 +15773,7 @@ snapshots:
'@typescript-eslint/types': 8.44.1
'@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
'@typescript-eslint/utils': 8.44.1(eslint@9.36.0)(typescript@5.9.2)
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
eslint: 9.36.0
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
@ -15802,7 +15788,7 @@ snapshots:
'@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2)
'@typescript-eslint/types': 8.44.1
'@typescript-eslint/visitor-keys': 8.44.1
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
@ -15841,7 +15827,7 @@ snapshots:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
ast-v8-to-istanbul: 0.3.3
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
@ -17671,7 +17657,7 @@ snapshots:
esbuild-register@3.5.0(esbuild@0.25.10):
dependencies:
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
esbuild: 0.25.10
transitivePeerDependencies:
- supports-color
@ -18647,7 +18633,7 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.3
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.3
transitivePeerDependencies:
- supports-color
@ -18680,6 +18666,13 @@ snapshots:
- supports-color
optional: true
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.3
debug: 4.4.3
transitivePeerDependencies:
- supports-color
https-proxy-agent@7.0.6(supports-color@10.2.0):
dependencies:
agent-base: 7.1.3
@ -19022,7 +19015,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.29
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
@ -19411,7 +19404,7 @@ snapshots:
decimal.js: 10.5.0
html-encoding-sniffer: 4.0.0
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6(supports-color@10.2.0)
https-proxy-agent: 7.0.6
is-potential-custom-element-name: 1.0.1
nwsapi: 2.2.16
parse5: 7.3.0
@ -22731,7 +22724,7 @@ snapshots:
vite-node@3.2.4(@types/node@22.18.6)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6):
dependencies:
cac: 6.7.14
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 7.1.7(@types/node@22.18.6)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)
@ -22787,7 +22780,7 @@ snapshots:
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.2.0
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
expect-type: 1.2.1
magic-string: 0.30.19
pathe: 2.0.3
@ -22875,7 +22868,7 @@ snapshots:
vue-eslint-parser@10.2.0(eslint@9.36.0):
dependencies:
debug: 4.4.1(supports-color@10.2.0)
debug: 4.4.1(supports-color@5.5.0)
eslint: 9.36.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1