@typespec/ts-http-runtime 1.0.0-alpha.20240619.3 → 1.0.0-alpha.20240625.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userAgentPlatform-browser.d.mts","sourceRoot":"","sources":["../../../src/util/userAgentPlatform-browser.mts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;
|
|
1
|
+
{"version":3,"file":"userAgentPlatform-browser.d.mts","sourceRoot":"","sources":["../../../src/util/userAgentPlatform-browser.mts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAsDD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userAgentPlatform-browser.mjs","sourceRoot":"","sources":["../../../src/util/userAgentPlatform-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"userAgentPlatform-browser.mjs","sourceRoot":"","sources":["../../../src/util/userAgentPlatform-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AA2BD,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,cAAc,GAAG;QACrB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE;QAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE;KACvD,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAsB;IACnD,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACrF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAwB;IACpE,MAAM,cAAc,GAAG,UAAU,CAAC,SAAwB,CAAC;IAC3D,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC;YAC5E,cAAc;YACd,iBAAiB;SAClB,CAAC,CAAC;QACH,UAAU,GAAG,GAAG,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;QAExG,4BAA4B;QAC5B,MAAM,KAAK,GAAG,qBAAqB,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,EAAE,CAAC;QACpC,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * @internal\n */\nexport function getHeaderName(): string {\n return \"x-ms-useragent\";\n}\n\ninterface BrowserBrand {\n brand: string;\n version: string;\n}\n\ninterface NavigatorEx extends Navigator {\n userAgentData?: {\n brands: BrowserBrand[];\n mobile: boolean;\n platform?: string;\n getHighEntropyValues: (hints: string[]) => Promise<{\n architecture: string;\n bitness: string;\n brands: BrowserBrand[];\n formFactor: string;\n fullVersionList: BrowserBrand[];\n mobile: boolean;\n model: string;\n platform: string;\n platformVersion: string;\n wow64: boolean;\n }>;\n };\n}\n\nfunction getBrowserInfo(userAgent: string): BrowserBrand | undefined {\n const browserRegexes = [\n { name: \"Firefox\", regex: /Firefox\\/([\\d.]+)/ },\n { name: \"Safari\", regex: /Version\\/([\\d.]+).*Safari/ },\n ];\n\n for (const browser of browserRegexes) {\n const match = userAgent.match(browser.regex);\n if (match) {\n return { brand: browser.name, version: match[1] };\n }\n }\n\n return undefined;\n}\n\nfunction getBrandVersionString(brands: BrowserBrand[]): BrowserBrand | undefined {\n const brandOrder = [\"Google Chrome\", \"Microsoft Edge\", \"Opera\", \"Brave\", \"Chromium\"];\n for (const brand of brandOrder) {\n const foundBrand = brands.find((b) => b.brand === brand);\n if (foundBrand) {\n return foundBrand;\n }\n }\n return undefined;\n}\n\n/**\n * @internal\n */\nexport async function setPlatformSpecificData(map: Map<string, string>): Promise<void> {\n const localNavigator = globalThis.navigator as NavigatorEx;\n let osPlatform = \"unknown\";\n if (localNavigator.userAgentData) {\n const entropyValues = await localNavigator.userAgentData.getHighEntropyValues([\n \"architecture\",\n \"platformVersion\",\n ]);\n osPlatform = `${entropyValues.architecture}-${entropyValues.platform}-${entropyValues.platformVersion}`;\n\n // Get the brand and version\n const brand = getBrandVersionString(localNavigator.userAgentData.brands);\n if (brand) {\n map.set(brand.brand, brand.version);\n }\n } else if (localNavigator?.platform) {\n osPlatform = localNavigator.platform;\n const brand = getBrowserInfo(localNavigator.userAgent);\n if (brand) {\n map.set(brand.brand, brand.version);\n }\n }\n\n map.set(\"OS\", osPlatform);\n}\n"]}
|
|
@@ -6,21 +6,26 @@
|
|
|
6
6
|
export function getHeaderName() {
|
|
7
7
|
return "x-ms-useragent";
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
function getBrowserInfo(userAgent) {
|
|
10
|
+
const browserRegexes = [
|
|
11
|
+
{ name: "Firefox", regex: /Firefox\/([\d.]+)/ },
|
|
12
|
+
{ name: "Safari", regex: /Version\/([\d.]+).*Safari/ },
|
|
13
|
+
];
|
|
14
|
+
for (const browser of browserRegexes) {
|
|
15
|
+
const match = userAgent.match(browser.regex);
|
|
16
|
+
if (match) {
|
|
17
|
+
return { brand: browser.name, version: match[1] };
|
|
18
|
+
}
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
function getBrandVersionString(brands) {
|
|
23
|
+
const brandOrder = ["Google Chrome", "Microsoft Edge", "Opera", "Brave", "Chromium"];
|
|
24
|
+
for (const brand of brandOrder) {
|
|
25
|
+
const foundBrand = brands.find((b) => b.brand === brand);
|
|
26
|
+
if (foundBrand) {
|
|
27
|
+
return foundBrand;
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
return undefined;
|
|
26
31
|
}
|
|
@@ -37,13 +42,17 @@ export async function setPlatformSpecificData(map) {
|
|
|
37
42
|
]);
|
|
38
43
|
osPlatform = `${entropyValues.architecture}-${entropyValues.platform}-${entropyValues.platformVersion}`;
|
|
39
44
|
// Get the brand and version
|
|
40
|
-
const brand = getBrandVersionString(
|
|
45
|
+
const brand = getBrandVersionString(localNavigator.userAgentData.brands);
|
|
41
46
|
if (brand) {
|
|
42
47
|
map.set(brand.brand, brand.version);
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
else if (localNavigator === null || localNavigator === void 0 ? void 0 : localNavigator.platform) {
|
|
46
51
|
osPlatform = localNavigator.platform;
|
|
52
|
+
const brand = getBrowserInfo(localNavigator.userAgent);
|
|
53
|
+
if (brand) {
|
|
54
|
+
map.set(brand.brand, brand.version);
|
|
55
|
+
}
|
|
47
56
|
}
|
|
48
57
|
map.set("OS", osPlatform);
|
|
49
58
|
}
|
package/package.json
CHANGED