sistema creado v0.5.0
Some checks failed
build-and-push / deploy (push) Has been skipped
build-and-push / build (push) Failing after 6s

This commit is contained in:
2025-05-14 16:10:41 -06:00
parent b5e40cf4ac
commit 745168cf51
193 changed files with 7267 additions and 8789 deletions

View File

@@ -1,9 +1,3 @@
1.0.0 / 2024-08-31
==================
* Drop support for node <18
* Added an option preferred encodings array #59
0.6.3 / 2022-01-22
==================

View File

@@ -172,10 +172,6 @@ Returns the most preferred encoding from the client.
Returns the most preferred encoding from a list of available encodings.
##### encoding(availableEncodings, { preferred })
Returns the most preferred encoding from a list of available encodings, while prioritizing based on `preferred` array between same-quality encodings.
##### encodings()
Returns an array of preferred encodings ordered by the client preference.
@@ -185,11 +181,6 @@ Returns an array of preferred encodings ordered by the client preference.
Returns an array of preferred encodings ordered by priority from a list of
available encodings.
##### encodings(availableEncodings, { preferred })
Returns an array of preferred encodings ordered by priority from a list of
available encodings, while prioritizing based on `preferred` array between same-quality encodings.
## See Also
The [accepts](https://npmjs.org/package/accepts#readme) module builds on

View File

@@ -44,14 +44,13 @@ Negotiator.prototype.charsets = function charsets(available) {
return preferredCharsets(this.request.headers['accept-charset'], available);
};
Negotiator.prototype.encoding = function encoding(available, opts) {
var set = this.encodings(available, opts);
Negotiator.prototype.encoding = function encoding(available) {
var set = this.encodings(available);
return set && set[0];
};
Negotiator.prototype.encodings = function encodings(available, options) {
var opts = options || {};
return preferredEncodings(this.request.headers['accept-encoding'], available, opts.preferred);
Negotiator.prototype.encodings = function encodings(available) {
return preferredEncodings(this.request.headers['accept-encoding'], available);
};
Negotiator.prototype.language = function language(available) {

View File

@@ -96,7 +96,7 @@ function parseEncoding(str, i) {
*/
function getEncodingPriority(encoding, accepted, index) {
var priority = {encoding: encoding, o: -1, q: 0, s: 0};
var priority = {o: -1, q: 0, s: 0};
for (var i = 0; i < accepted.length; i++) {
var spec = specify(encoding, accepted[i], index);
@@ -123,7 +123,6 @@ function specify(encoding, spec, index) {
}
return {
encoding: encoding,
i: index,
o: spec.i,
q: spec.q,
@@ -136,34 +135,14 @@ function specify(encoding, spec, index) {
* @public
*/
function preferredEncodings(accept, provided, preferred) {
function preferredEncodings(accept, provided) {
var accepts = parseAcceptEncoding(accept || '');
var comparator = preferred ? function comparator (a, b) {
if (a.q !== b.q) {
return b.q - a.q // higher quality first
}
var aPreferred = preferred.indexOf(a.encoding)
var bPreferred = preferred.indexOf(b.encoding)
if (aPreferred === -1 && bPreferred === -1) {
// consider the original specifity/order
return (b.s - a.s) || (a.o - b.o) || (a.i - b.i)
}
if (aPreferred !== -1 && bPreferred !== -1) {
return aPreferred - bPreferred // consider the preferred order
}
return aPreferred === -1 ? 1 : -1 // preferred first
} : compareSpecs;
if (!provided) {
// sorted list of all encodings
return accepts
.filter(isQuality)
.sort(comparator)
.sort(compareSpecs)
.map(getFullEncoding);
}
@@ -172,7 +151,7 @@ function preferredEncodings(accept, provided, preferred) {
});
// sorted list of accepted encodings
return priorities.filter(isQuality).sort(comparator).map(function getEncoding(priority) {
return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) {
return provided[priorities.indexOf(priority)];
});
}
@@ -183,7 +162,7 @@ function preferredEncodings(accept, provided, preferred) {
*/
function compareSpecs(a, b) {
return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i);
return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
}
/**

View File

@@ -69,7 +69,7 @@ function parseMediaType(str, i) {
// get the value, unwrapping quotes
var value = val && val[0] === '"' && val[val.length - 1] === '"'
? val.slice(1, -1)
? val.substr(1, val.length - 2)
: val;
if (key === 'q') {
@@ -238,8 +238,8 @@ function splitKeyValuePair(str) {
if (index === -1) {
key = str;
} else {
key = str.slice(0, index);
val = str.slice(index + 1);
key = str.substr(0, index);
val = str.substr(index + 1);
}
return [key, val];

View File

@@ -1,7 +1,7 @@
{
"name": "negotiator",
"description": "HTTP content negotiation",
"version": "1.0.0",
"version": "0.6.3",
"contributors": [
"Douglas Christopher Wilson <doug@somethingdoug.com>",
"Federico Romero <federico.romero@outboxlabs.com>",
@@ -36,7 +36,6 @@
"scripts": {
"lint": "eslint .",
"test": "mocha --reporter spec --check-leaks --bail test/",
"test:debug": "mocha --reporter spec --check-leaks --inspect --inspect-brk test/",
"test-ci": "nyc --reporter=lcov --reporter=text npm test",
"test-cov": "nyc --reporter=html --reporter=text npm test"
}