Socket
Socket
Sign inDemoInstall

@aws-sdk/util-user-agent-browser

Package Overview
Dependencies
Maintainers
5
Versions
161
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/util-user-agent-browser - npm Package Compare versions

Comparing version 3.0.0 to 3.1.0

dist/cjs/configurations.d.ts

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [3.1.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.0.0...v3.1.0) (2020-12-23)
### Features
* standardize user agent value ([#1775](https://github.com/aws/aws-sdk-js-v3/issues/1775)) ([388b180](https://github.com/aws/aws-sdk-js-v3/commit/388b18071146171b42d283a93f9590cb23956e1a))
# [3.0.0](https://github.com/aws/aws-sdk-js-v3/compare/v1.0.0-rc.10...v3.0.0) (2020-12-15)

@@ -8,0 +19,0 @@

8

dist/cjs/index.d.ts

@@ -1,1 +0,7 @@

export declare function defaultUserAgent(packageName: string, packageVersion: string): string;
import { Provider, UserAgent } from "@aws-sdk/types";
import { DefaultUserAgentOptions } from "./configurations";
/**
* Default provider to the user agent in browsers. It's a best effort to infer
* the device information. It uses bowser library to detect the browser and virsion
*/
export declare const defaultUserAgent: ({ serviceId, clientVersion, }: DefaultUserAgentOptions) => Provider<UserAgent>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultUserAgent = void 0;
function defaultUserAgent(packageName, packageVersion) {
const originUserAgent = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
return `aws-sdk-js-v3-${packageName}/${packageVersion} ${originUserAgent}`;
}
const bowser_1 = require("bowser");
/**
* Default provider to the user agent in browsers. It's a best effort to infer
* the device information. It uses bowser library to detect the browser and virsion
*/
const defaultUserAgent = ({ serviceId, clientVersion, }) => async () => {
var _a, _b, _c, _d, _e, _f, _g;
const parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser_1.parse(window.navigator.userAgent) : undefined;
const sections = [
// sdk-metadata
["aws-sdk-js", clientVersion],
// os-metadata
[`os/${((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || "other"}`, (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],
// language-metadata
// ECMAScript edition doesn't matter in JS.
["lang/js"],
// browser vendor and version.
["md/browser", `${(_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : "unknown"}_${(_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : "unknown"}`],
];
if (serviceId) {
// api-metadata
// service Id may not appear in non-AWS clients
sections.push([`api/${serviceId}`, clientVersion]);
}
return sections;
};
exports.defaultUserAgent = defaultUserAgent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsZ0JBQWdCLENBQUMsV0FBbUIsRUFBRSxjQUFzQjtJQUMxRSxNQUFNLGVBQWUsR0FDbkIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLE9BQU8sU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RyxPQUFPLGlCQUFpQixXQUFXLElBQUksY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO0FBQzdFLENBQUM7QUFKRCw0Q0FJQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0VXNlckFnZW50KHBhY2thZ2VOYW1lOiBzdHJpbmcsIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBvcmlnaW5Vc2VyQWdlbnQgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG5hdmlnYXRvci51c2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBuYXZpZ2F0b3IudXNlckFnZW50IDogXCJcIjtcbiAgcmV0dXJuIGBhd3Mtc2RrLWpzLXYzLSR7cGFja2FnZU5hbWV9LyR7cGFja2FnZVZlcnNpb259ICR7b3JpZ2luVXNlckFnZW50fWA7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQStCO0FBSS9COzs7R0FHRztBQUNJLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUMvQixTQUFTLEVBQ1QsYUFBYSxHQUNXLEVBQXVCLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTs7SUFDN0QsTUFBTSxRQUFRLEdBQUcsT0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUywwQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLGNBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUYsTUFBTSxRQUFRLEdBQWM7UUFDMUIsZUFBZTtRQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztRQUM3QixjQUFjO1FBQ2QsQ0FBQyxNQUFNLE9BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsSUFBSSxLQUFJLE9BQU8sRUFBRSxRQUFFLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxFQUFFLDBDQUFFLE9BQU8sQ0FBQztRQUM5RCxvQkFBb0I7UUFDcEIsMkNBQTJDO1FBQzNDLENBQUMsU0FBUyxDQUFDO1FBQ1gsOEJBQThCO1FBQzlCLENBQUMsWUFBWSxFQUFFLEdBQUcsWUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxJQUFJLG1DQUFJLFNBQVMsSUFBSSxZQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLE9BQU8sbUNBQUksU0FBUyxFQUFFLENBQUM7S0FDckcsQ0FBQztJQUVGLElBQUksU0FBUyxFQUFFO1FBQ2IsZUFBZTtRQUNmLCtDQUErQztRQUMvQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxTQUFTLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBeEJXLFFBQUEsZ0JBQWdCLG9CQXdCM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJib3dzZXJcIjtcblxuaW1wb3J0IHsgRGVmYXVsdFVzZXJBZ2VudE9wdGlvbnMgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG4vKipcbiAqIERlZmF1bHQgcHJvdmlkZXIgdG8gdGhlIHVzZXIgYWdlbnQgaW4gYnJvd3NlcnMuIEl0J3MgYSBiZXN0IGVmZm9ydCB0byBpbmZlclxuICogdGhlIGRldmljZSBpbmZvcm1hdGlvbi4gSXQgdXNlcyBib3dzZXIgbGlicmFyeSB0byBkZXRlY3QgdGhlIGJyb3dzZXIgYW5kIHZpcnNpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRVc2VyQWdlbnQgPSAoe1xuICBzZXJ2aWNlSWQsXG4gIGNsaWVudFZlcnNpb24sXG59OiBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyk6IFByb3ZpZGVyPFVzZXJBZ2VudD4gPT4gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwYXJzZWRVQSA9IHdpbmRvdz8ubmF2aWdhdG9yPy51c2VyQWdlbnQgPyBwYXJzZSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlY3Rpb25zOiBVc2VyQWdlbnQgPSBbXG4gICAgLy8gc2RrLW1ldGFkYXRhXG4gICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAvLyBvcy1tZXRhZGF0YVxuICAgIFtgb3MvJHtwYXJzZWRVQT8ub3M/Lm5hbWUgfHwgXCJvdGhlclwifWAsIHBhcnNlZFVBPy5vcz8udmVyc2lvbl0sXG4gICAgLy8gbGFuZ3VhZ2UtbWV0YWRhdGFcbiAgICAvLyBFQ01BU2NyaXB0IGVkaXRpb24gZG9lc24ndCBtYXR0ZXIgaW4gSlMuXG4gICAgW1wibGFuZy9qc1wiXSxcbiAgICAvLyBicm93c2VyIHZlbmRvciBhbmQgdmVyc2lvbi5cbiAgICBbXCJtZC9icm93c2VyXCIsIGAke3BhcnNlZFVBPy5icm93c2VyPy5uYW1lID8/IFwidW5rbm93blwifV8ke3BhcnNlZFVBPy5icm93c2VyPy52ZXJzaW9uID8/IFwidW5rbm93blwifWBdLFxuICBdO1xuXG4gIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAvLyBhcGktbWV0YWRhdGFcbiAgICAvLyBzZXJ2aWNlIElkIG1heSBub3QgYXBwZWFyIGluIG5vbi1BV1MgY2xpZW50c1xuICAgIHNlY3Rpb25zLnB1c2goW2BhcGkvJHtzZXJ2aWNlSWR9YCwgY2xpZW50VmVyc2lvbl0pO1xuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbiJdfQ==

@@ -1,1 +0,7 @@

export declare function defaultUserAgent(packageName: string, packageVersion: string): string;
import { Provider, UserAgent } from "@aws-sdk/types";
import { DefaultUserAgentOptions } from "./configurations";
/**
* Default provider to the user agent in browsers. It's a best effort to infer
* the device information. It uses bowser library to detect the browser and virsion
*/
export declare const defaultUserAgent: ({ serviceId, clientVersion, }: DefaultUserAgentOptions) => Provider<UserAgent>;

@@ -1,5 +0,34 @@

export function defaultUserAgent(packageName, packageVersion) {
var originUserAgent = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
return "aws-sdk-js-v3-" + packageName + "/" + packageVersion + " " + originUserAgent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFdBQW1CLEVBQUUsY0FBc0I7SUFDMUUsSUFBTSxlQUFlLEdBQ25CLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxPQUFPLFNBQVMsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekcsT0FBTyxtQkFBaUIsV0FBVyxTQUFJLGNBQWMsU0FBSSxlQUFpQixDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVmYXVsdFVzZXJBZ2VudChwYWNrYWdlTmFtZTogc3RyaW5nLCBwYWNrYWdlVmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgb3JpZ2luVXNlckFnZW50ID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBuYXZpZ2F0b3IudXNlckFnZW50ID09PSBcInN0cmluZ1wiID8gbmF2aWdhdG9yLnVzZXJBZ2VudCA6IFwiXCI7XG4gIHJldHVybiBgYXdzLXNkay1qcy12My0ke3BhY2thZ2VOYW1lfS8ke3BhY2thZ2VWZXJzaW9ufSAke29yaWdpblVzZXJBZ2VudH1gO1xufVxuIl19
import { __awaiter, __generator } from "tslib";
import { parse } from "bowser";
/**
* Default provider to the user agent in browsers. It's a best effort to infer
* the device information. It uses bowser library to detect the browser and virsion
*/
export var defaultUserAgent = function (_a) {
var serviceId = _a.serviceId, clientVersion = _a.clientVersion;
return function () { return __awaiter(void 0, void 0, void 0, function () {
var parsedUA, sections;
var _a, _b, _c, _d, _e, _f, _g;
return __generator(this, function (_h) {
parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? parse(window.navigator.userAgent) : undefined;
sections = [
// sdk-metadata
["aws-sdk-js", clientVersion],
// os-metadata
["os/" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || "other"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],
// language-metadata
// ECMAScript edition doesn't matter in JS.
["lang/js"],
// browser vendor and version.
["md/browser", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : "unknown") + "_" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : "unknown")],
];
if (serviceId) {
// api-metadata
// service Id may not appear in non-AWS clients
sections.push(["api/" + serviceId, clientVersion]);
}
return [2 /*return*/, sections];
});
}); };
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJL0I7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxFQUdQO1FBRnhCLFNBQVMsZUFBQSxFQUNULGFBQWEsbUJBQUE7SUFDcUMsT0FBQTs7OztZQUM1QyxRQUFRLEdBQUcsT0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUywwQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEYsUUFBUSxHQUFjO2dCQUMxQixlQUFlO2dCQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDN0IsY0FBYztnQkFDZCxDQUFDLFNBQU0sT0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsRUFBRSwwQ0FBRSxJQUFJLEtBQUksT0FBTyxDQUFFLFFBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsT0FBTyxDQUFDO2dCQUM5RCxvQkFBb0I7Z0JBQ3BCLDJDQUEyQztnQkFDM0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ1gsOEJBQThCO2dCQUM5QixDQUFDLFlBQVksRUFBRSxhQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLElBQUksbUNBQUksU0FBUyx1QkFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxPQUFPLG1DQUFJLFNBQVMsQ0FBRSxDQUFDO2FBQ3JHLENBQUM7WUFFRixJQUFJLFNBQVMsRUFBRTtnQkFDYixlQUFlO2dCQUNmLCtDQUErQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQU8sU0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxzQkFBTyxRQUFRLEVBQUM7O1NBQ2pCO0FBckJtRCxDQXFCbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSBcImJvd3NlclwiO1xuXG5pbXBvcnQgeyBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciB0byB0aGUgdXNlciBhZ2VudCBpbiBicm93c2Vycy4gSXQncyBhIGJlc3QgZWZmb3J0IHRvIGluZmVyXG4gKiB0aGUgZGV2aWNlIGluZm9ybWF0aW9uLiBJdCB1c2VzIGJvd3NlciBsaWJyYXJ5IHRvIGRldGVjdCB0aGUgYnJvd3NlciBhbmQgdmlyc2lvblxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9ICh7XG4gIHNlcnZpY2VJZCxcbiAgY2xpZW50VmVyc2lvbixcbn06IERlZmF1bHRVc2VyQWdlbnRPcHRpb25zKTogUHJvdmlkZXI8VXNlckFnZW50PiA9PiBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFVBID0gd2luZG93Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudCA/IHBhcnNlKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSA6IHVuZGVmaW5lZDtcbiAgY29uc3Qgc2VjdGlvbnM6IFVzZXJBZ2VudCA9IFtcbiAgICAvLyBzZGstbWV0YWRhdGFcbiAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgIC8vIG9zLW1ldGFkYXRhXG4gICAgW2Bvcy8ke3BhcnNlZFVBPy5vcz8ubmFtZSB8fCBcIm90aGVyXCJ9YCwgcGFyc2VkVUE/Lm9zPy52ZXJzaW9uXSxcbiAgICAvLyBsYW5ndWFnZS1tZXRhZGF0YVxuICAgIC8vIEVDTUFTY3JpcHQgZWRpdGlvbiBkb2Vzbid0IG1hdHRlciBpbiBKUy5cbiAgICBbXCJsYW5nL2pzXCJdLFxuICAgIC8vIGJyb3dzZXIgdmVuZG9yIGFuZCB2ZXJzaW9uLlxuICAgIFtcIm1kL2Jyb3dzZXJcIiwgYCR7cGFyc2VkVUE/LmJyb3dzZXI/Lm5hbWUgPz8gXCJ1bmtub3duXCJ9XyR7cGFyc2VkVUE/LmJyb3dzZXI/LnZlcnNpb24gPz8gXCJ1bmtub3duXCJ9YF0sXG4gIF07XG5cbiAgaWYgKHNlcnZpY2VJZCkge1xuICAgIC8vIGFwaS1tZXRhZGF0YVxuICAgIC8vIHNlcnZpY2UgSWQgbWF5IG5vdCBhcHBlYXIgaW4gbm9uLUFXUyBjbGllbnRzXG4gICAgc2VjdGlvbnMucHVzaChbYGFwaS8ke3NlcnZpY2VJZH1gLCBjbGllbnRWZXJzaW9uXSk7XG4gIH1cblxuICByZXR1cm4gc2VjdGlvbnM7XG59O1xuIl19

10

package.json
{
"name": "@aws-sdk/util-user-agent-browser",
"version": "3.0.0",
"version": "3.1.0",
"scripts": {

@@ -20,8 +20,12 @@ "prepublishOnly": "yarn build:cjs && yarn build:es",

"license": "Apache-2.0",
"react-native": {
"./index": "./index.native"
},
"dependencies": {
"@aws-sdk/types": "3.1.0",
"bowser": "^2.11.0",
"tslib": "^1.8.0"
},
"devDependencies": {
"@aws-sdk/protocol-http": "3.0.0",
"@aws-sdk/types": "3.0.0",
"@aws-sdk/protocol-http": "3.1.0",
"@types/jest": "^26.0.4",

@@ -28,0 +32,0 @@ "jest": "^26.1.0",

# @aws-sdk/util-user-agent-browser
[![NPM version](https://img.shields.io/npm/v/@aws-sdk/util-user-agent-browser/rc.svg)](https://www.npmjs.com/package/@aws-sdk/util-user-agent-browser)
[![NPM version](https://img.shields.io/npm/v/@aws-sdk/util-user-agent-browser/latest.svg)](https://www.npmjs.com/package/@aws-sdk/util-user-agent-browser)
[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/util-user-agent-browser.svg)](https://www.npmjs.com/package/@aws-sdk/util-user-agent-browser)

@@ -5,0 +5,0 @@

@@ -1,5 +0,34 @@

export function defaultUserAgent(packageName: string, packageVersion: string): string {
const originUserAgent =
typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : "";
return `aws-sdk-js-v3-${packageName}/${packageVersion} ${originUserAgent}`;
}
import { Provider, UserAgent } from "@aws-sdk/types";
import { parse } from "bowser";
import { DefaultUserAgentOptions } from "./configurations";
/**
* Default provider to the user agent in browsers. It's a best effort to infer
* the device information. It uses bowser library to detect the browser and virsion
*/
export const defaultUserAgent = ({
serviceId,
clientVersion,
}: DefaultUserAgentOptions): Provider<UserAgent> => async () => {
const parsedUA = window?.navigator?.userAgent ? parse(window.navigator.userAgent) : undefined;
const sections: UserAgent = [
// sdk-metadata
["aws-sdk-js", clientVersion],
// os-metadata
[`os/${parsedUA?.os?.name || "other"}`, parsedUA?.os?.version],
// language-metadata
// ECMAScript edition doesn't matter in JS.
["lang/js"],
// browser vendor and version.
["md/browser", `${parsedUA?.browser?.name ?? "unknown"}_${parsedUA?.browser?.version ?? "unknown"}`],
];
if (serviceId) {
// api-metadata
// service Id may not appear in non-AWS clients
sections.push([`api/${serviceId}`, clientVersion]);
}
return sections;
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc