Socket
Socket
Sign inDemoInstall

accept-language

Package Overview
Dependencies
2
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.0.17 to 3.0.18

.vscode/launch.json

115

Build/Source/AcceptLanguage.js

@@ -5,3 +5,3 @@ "use strict";

var stable = require("stable");
var AcceptLanguage = (function () {
var AcceptLanguage = /** @class */ (function () {
function AcceptLanguage() {

@@ -29,7 +29,24 @@ this.languageTagsWithValues = {};

languageTagWithValues.value = languageTagString;
var lowerCasedLanguageTagWithValues = {
language: {
language: langtag.language.language.toLowerCase(),
extlang: langtag.language.extlang.map(function (e) { return e.toLowerCase(); }),
},
region: langtag.region && langtag.region.toLowerCase(),
script: langtag.script && langtag.script.toLowerCase(),
variant: langtag.variant.map(function (v) { return v.toLowerCase(); }),
privateuse: langtag.privateuse.map(function (p) { return p.toLowerCase(); }),
extension: langtag.extension.map(function (e) {
return {
extension: e.extension && e.extension.map(function (e) { return e.toLowerCase(); }),
singleton: e.singleton.toLowerCase(),
};
}),
value: languageTagString,
};
if (!_this.languageTagsWithValues[language]) {
_this.languageTagsWithValues[language] = [languageTagWithValues];
_this.languageTagsWithValues[language] = [lowerCasedLanguageTagWithValues];
}
else {
_this.languageTagsWithValues[language].push(languageTagWithValues);
_this.languageTagsWithValues[language].push(lowerCasedLanguageTagWithValues);
}

@@ -63,7 +80,31 @@ });

var definedLangTag = _b[_a];
var unmatchedRequestedSubTag = 0;
for (var _c = 0, _d = ['privateuse', 'extension', 'variant', 'region', 'script']; _c < _d.length; _c++) {
var prop = _d[_c];
// Continue fast.
var definedLanguagePropertValue = definedLangTag[prop];
if (!definedLanguagePropertValue) {
var requestedLanguagePropertyValue_1 = requestedLangTag[prop];
if (requestedLanguagePropertyValue_1) {
unmatchedRequestedSubTag++;
}
switch (prop) {
case 'privateuse':
case 'variant':
for (var i = 0; i < requestedLanguagePropertyValue_1.length; i++) {
if (requestedLanguagePropertyValue_1[i]) {
unmatchedRequestedSubTag++;
}
}
break;
case 'extension':
for (var i = 0; i < requestedLanguagePropertyValue_1.length; i++) {
var extension = requestedLanguagePropertyValue_1[i].extension;
for (var ei = 0; ei < extension.length; ei++) {
if (!requestedLanguagePropertyValue_1[i].extension[ei]) {
unmatchedRequestedSubTag++;
}
}
}
break;
}
continue;

@@ -75,35 +116,52 @@ }

var requestedLanguagePropertyValue = requestedLangTag[prop];
if (definedLanguagePropertValue && !requestedLanguagePropertyValue) {
if (!requestedLanguagePropertyValue) {
continue middle;
}
else if (prop === 'privateuse' || prop === 'variant') {
for (var i = 0; i < definedLanguagePropertValue.length; i++) {
if (definedLanguagePropertValue[i] !== requestedLanguagePropertyValue[i]) {
continue middle;
}
}
}
else if (prop === 'extension') {
for (var i = 0; i < definedLanguagePropertValue.length; i++) {
var extensions = definedLanguagePropertValue[i].extension;
for (var ei = 0; ei < extensions.length; ei++) {
if (!requestedLanguagePropertyValue[i]) {
switch (prop) {
case 'privateuse':
case 'variant':
for (var i = 0; i < definedLanguagePropertValue.length; i++) {
if (!requestedLanguagePropertyValue[i] || definedLanguagePropertValue[i] !== requestedLanguagePropertyValue[i].toLowerCase()) {
continue middle;
}
if (extensions[ei] !== requestedLanguagePropertyValue[i].extension[ei]) {
continue middle;
}
break;
case 'extension':
for (var i = 0; i < definedLanguagePropertValue.length; i++) {
var extension = definedLanguagePropertValue[i].extension;
for (var ei = 0; ei < extension.length; ei++) {
if (!requestedLanguagePropertyValue[i]) {
continue middle;
}
if (!requestedLanguagePropertyValue[i].extension[ei]) {
continue middle;
}
if (extension[ei] !== requestedLanguagePropertyValue[i].extension[ei].toLowerCase()) {
continue middle;
}
}
}
}
break;
default:
if (definedLanguagePropertValue !== requestedLanguagePropertyValue.toLowerCase()) {
continue middle;
}
}
else if (definedLanguagePropertValue !== requestedLanguagePropertyValue) {
continue middle;
}
}
result.push(definedLangTag.value);
result.push({
unmatchedRequestedSubTag: unmatchedRequestedSubTag,
quality: languageTag.quality,
languageTag: definedLangTag.value
});
}
}
return result.length > 0 ? result : [this.defaultLanguageTag];
return result.length > 0 ? stable(result, function (a, b) {
var quality = b.quality - a.quality;
if (quality != 0) {
return quality;
}
return a.unmatchedRequestedSubTag - b.unmatchedRequestedSubTag;
}).map(function (l) { return l.languageTag; }) : [this.defaultLanguageTag];
function parseAndSortLanguageTags(languagePriorityList) {
return stable(languagePriorityList.split(',').map(function (weightedLanguageRange) {
return languagePriorityList.split(',').map(function (weightedLanguageRange) {
var components = weightedLanguageRange.replace(/\s+/, '').split(';');

@@ -123,6 +181,2 @@ return {

return languageTag;
})
// Sort by quality
, function (a, b) {
return b.quality - a.quality;
});

@@ -143,1 +197,2 @@ }

exports.default = create();
//# sourceMappingURL=AcceptLanguage.js.map
{
"name": "accept-language",
"version": "3.0.17",
"version": "3.0.18",
"description": "Accept-Language parser for nodejs",

@@ -26,6 +26,8 @@ "main": "Build/Source/AcceptLanguage.js",

"devDependencies": {
"@types/chai": "^3.4.32",
"@types/mocha": "^2.2.31",
"@types/node": "^8.0.31",
"chai": "~1.9.1",
"mocha": "^2.2.5",
"chai": "~1.9.1",
"@types/chai": "^3.4.32",
"@types/mocha": "^2.2.31"
"source-map-support": "^0.4.18"
},

@@ -32,0 +34,0 @@ "dependencies": {

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc