New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

match-sorter

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

match-sorter - npm Package Compare versions

Comparing version 5.0.0 to 6.0.0

dist/index.d.ts

103

dist/match-sorter.cjs.js

@@ -26,3 +26,3 @@ 'use strict';

var defaultBaseSortFn = function (a, b) {
return String(a.rankedItem).localeCompare(b.rankedItem);
return String(a.rankedValue).localeCompare(String(b.rankedValue));
};

@@ -51,3 +51,3 @@ /**

return matchedItems.sort(function (a, b) {
return sortRankedItems(a, b, baseSort);
return sortRankedValues(a, b, baseSort);
}).map(function (_ref) {

@@ -59,17 +59,12 @@ var item = _ref.item;

function reduceItemsToRanked(matches, item, index) {
var _getHighestRanking = getHighestRanking(item, keys, value, options),
rankedItem = _getHighestRanking.rankedItem,
rank = _getHighestRanking.rank,
keyIndex = _getHighestRanking.keyIndex,
_getHighestRanking$ke = _getHighestRanking.keyThreshold,
keyThreshold = _getHighestRanking$ke === void 0 ? threshold : _getHighestRanking$ke;
var rankingInfo = getHighestRanking(item, keys, value, options);
var rank = rankingInfo.rank,
_rankingInfo$keyThres = rankingInfo.keyThreshold,
keyThreshold = _rankingInfo$keyThres === void 0 ? threshold : _rankingInfo$keyThres;
if (rank >= keyThreshold) {
matches.push({
rankedItem: rankedItem,
matches.push(_extends__default['default']({}, rankingInfo, {
item: item,
rank: rank,
index: index,
keyIndex: keyIndex
});
index: index
}));
}

@@ -92,6 +87,8 @@

if (!keys) {
// if keys is not specified, then we assume the item given is ready to be matched
var stringItem = item;
return {
// ends up being duplicate of 'item' in matches but consistent
rankedItem: item,
rank: getMatchRanking(item, value, options),
rankedValue: stringItem,
rank: getMatchRanking(stringItem, value, options),
keyIndex: -1,

@@ -105,3 +102,3 @@ keyThreshold: options.threshold

var rank = _ref2.rank,
rankedItem = _ref2.rankedItem,
rankedValue = _ref2.rankedValue,
keyIndex = _ref2.keyIndex,

@@ -112,3 +109,3 @@ keyThreshold = _ref2.keyThreshold;

var newRank = getMatchRanking(itemValue, value, options);
var newRankedItem = rankedItem;
var newRankedValue = rankedValue;
var minRanking = attributes.minRanking,

@@ -128,7 +125,7 @@ maxRanking = attributes.maxRanking,

keyThreshold = threshold;
newRankedItem = itemValue;
newRankedValue = itemValue;
}
return {
rankedItem: newRankedItem,
rankedValue: newRankedValue,
rank: rank,

@@ -139,2 +136,3 @@ keyIndex: keyIndex,

}, {
rankedValue: item,
rank: rankings.NO_MATCH,

@@ -177,3 +175,3 @@ keyIndex: -1,

if (testString.indexOf(stringToRank) === 0) {
if (testString.startsWith(stringToRank)) {
return rankings.STARTS_WITH;

@@ -183,3 +181,3 @@ } // word starts with

if (testString.indexOf(" " + stringToRank) !== -1) {
if (testString.includes(" " + stringToRank)) {
return rankings.WORD_STARTS_WITH;

@@ -189,3 +187,3 @@ } // contains

if (testString.indexOf(stringToRank) !== -1) {
if (testString.includes(stringToRank)) {
return rankings.CONTAINS;

@@ -200,3 +198,3 @@ } else if (stringToRank.length === 1) {

if (getAcronym(testString).indexOf(stringToRank) !== -1) {
if (getAcronym(testString).includes(stringToRank)) {
return rankings.ACRONYM;

@@ -292,3 +290,3 @@ } // will return a number between rankings.MATCHES and

function sortRankedItems(a, b, baseSort) {
function sortRankedValues(a, b, baseSort) {
var aFirst = -1;

@@ -322,2 +320,4 @@ var bFirst = 1;

var keepDiacritics = _ref4.keepDiacritics;
// value might not actually be a string at this point (we don't get to choose)
// so part of preparing the value for comparison is ensure that it is a string
value = "" + value; // toString

@@ -348,20 +348,31 @@

value = key(item); // eslint-disable-next-line no-negated-condition
} else if (key.indexOf('.') !== -1) {
// handle nested keys
value = key.split('.').reduce(function (itemObj, nestedKey) {
return itemObj ? itemObj[nestedKey] : null;
}, item);
} else {
value = item[key];
} // concat because `value` can be a string or an array
value = getNestedValue(key, item);
}
// concat because `value` can be a string or an array
// eslint-disable-next-line
return value != null ? [].concat(value) : null;
}
/**
* Given key: "foo.bar.baz"
* And obj: {foo: {bar: {baz: 'buzz'}}}
* -> 'buzz'
* @param key a dot-separated set of keys
* @param obj the object to get the value from
*/
return value != null ? [].concat(value) : null;
function getNestedValue(key, obj) {
// @ts-expect-error really have no idea how to type this properly...
return key.split('.').reduce(function (itemObj, nestedKey) {
// @ts-expect-error lost on this one as well...
return itemObj ? itemObj[nestedKey] : null;
}, obj);
}
/**
* Gets all the values for the given keys in the given item and returns an array of those values
* @param {Object} item - the item from which the values will be retrieved
* @param {Array} keys - the keys to use to retrieve the values
* @return {Array} objects with {itemValue, attributes}
* @param item - the item from which the values will be retrieved
* @param keys - the keys to use to retrieve the values
* @return objects with {itemValue, attributes}
*/

@@ -386,23 +397,23 @@

}
var defaultKeyAttributes = {
maxRanking: Infinity,
minRanking: -Infinity
};
/**
* Gets all the attributes for the given key
* @param {Object|String} key - the key from which the attributes will be retrieved
* @return {Object} object containing the key's attributes
* @param key - the key from which the attributes will be retrieved
* @return object containing the key's attributes
*/
function getKeyAttributes(key) {
if (typeof key === 'string') {
key = {
key: key
};
return defaultKeyAttributes;
}
return _extends__default['default']({
maxRanking: Infinity,
minRanking: -Infinity
}, key);
return _extends__default['default']({}, defaultKeyAttributes, key);
}
exports.defaultBaseSortFn = defaultBaseSortFn;
exports.matchSorter = matchSorter;
exports.rankings = rankings;

@@ -17,3 +17,3 @@ import _extends from '@babel/runtime/helpers/esm/extends';

var defaultBaseSortFn = function (a, b) {
return String(a.rankedItem).localeCompare(b.rankedItem);
return String(a.rankedValue).localeCompare(String(b.rankedValue));
};

@@ -42,3 +42,3 @@ /**

return matchedItems.sort(function (a, b) {
return sortRankedItems(a, b, baseSort);
return sortRankedValues(a, b, baseSort);
}).map(function (_ref) {

@@ -50,17 +50,12 @@ var item = _ref.item;

function reduceItemsToRanked(matches, item, index) {
var _getHighestRanking = getHighestRanking(item, keys, value, options),
rankedItem = _getHighestRanking.rankedItem,
rank = _getHighestRanking.rank,
keyIndex = _getHighestRanking.keyIndex,
_getHighestRanking$ke = _getHighestRanking.keyThreshold,
keyThreshold = _getHighestRanking$ke === void 0 ? threshold : _getHighestRanking$ke;
var rankingInfo = getHighestRanking(item, keys, value, options);
var rank = rankingInfo.rank,
_rankingInfo$keyThres = rankingInfo.keyThreshold,
keyThreshold = _rankingInfo$keyThres === void 0 ? threshold : _rankingInfo$keyThres;
if (rank >= keyThreshold) {
matches.push({
rankedItem: rankedItem,
matches.push(_extends({}, rankingInfo, {
item: item,
rank: rank,
index: index,
keyIndex: keyIndex
});
index: index
}));
}

@@ -83,6 +78,8 @@

if (!keys) {
// if keys is not specified, then we assume the item given is ready to be matched
var stringItem = item;
return {
// ends up being duplicate of 'item' in matches but consistent
rankedItem: item,
rank: getMatchRanking(item, value, options),
rankedValue: stringItem,
rank: getMatchRanking(stringItem, value, options),
keyIndex: -1,

@@ -96,3 +93,3 @@ keyThreshold: options.threshold

var rank = _ref2.rank,
rankedItem = _ref2.rankedItem,
rankedValue = _ref2.rankedValue,
keyIndex = _ref2.keyIndex,

@@ -103,3 +100,3 @@ keyThreshold = _ref2.keyThreshold;

var newRank = getMatchRanking(itemValue, value, options);
var newRankedItem = rankedItem;
var newRankedValue = rankedValue;
var minRanking = attributes.minRanking,

@@ -119,7 +116,7 @@ maxRanking = attributes.maxRanking,

keyThreshold = threshold;
newRankedItem = itemValue;
newRankedValue = itemValue;
}
return {
rankedItem: newRankedItem,
rankedValue: newRankedValue,
rank: rank,

@@ -130,2 +127,3 @@ keyIndex: keyIndex,

}, {
rankedValue: item,
rank: rankings.NO_MATCH,

@@ -168,3 +166,3 @@ keyIndex: -1,

if (testString.indexOf(stringToRank) === 0) {
if (testString.startsWith(stringToRank)) {
return rankings.STARTS_WITH;

@@ -174,3 +172,3 @@ } // word starts with

if (testString.indexOf(" " + stringToRank) !== -1) {
if (testString.includes(" " + stringToRank)) {
return rankings.WORD_STARTS_WITH;

@@ -180,3 +178,3 @@ } // contains

if (testString.indexOf(stringToRank) !== -1) {
if (testString.includes(stringToRank)) {
return rankings.CONTAINS;

@@ -191,3 +189,3 @@ } else if (stringToRank.length === 1) {

if (getAcronym(testString).indexOf(stringToRank) !== -1) {
if (getAcronym(testString).includes(stringToRank)) {
return rankings.ACRONYM;

@@ -283,3 +281,3 @@ } // will return a number between rankings.MATCHES and

function sortRankedItems(a, b, baseSort) {
function sortRankedValues(a, b, baseSort) {
var aFirst = -1;

@@ -313,2 +311,4 @@ var bFirst = 1;

var keepDiacritics = _ref4.keepDiacritics;
// value might not actually be a string at this point (we don't get to choose)
// so part of preparing the value for comparison is ensure that it is a string
value = "" + value; // toString

@@ -339,20 +339,31 @@

value = key(item); // eslint-disable-next-line no-negated-condition
} else if (key.indexOf('.') !== -1) {
// handle nested keys
value = key.split('.').reduce(function (itemObj, nestedKey) {
return itemObj ? itemObj[nestedKey] : null;
}, item);
} else {
value = item[key];
} // concat because `value` can be a string or an array
value = getNestedValue(key, item);
}
// concat because `value` can be a string or an array
// eslint-disable-next-line
return value != null ? [].concat(value) : null;
}
/**
* Given key: "foo.bar.baz"
* And obj: {foo: {bar: {baz: 'buzz'}}}
* -> 'buzz'
* @param key a dot-separated set of keys
* @param obj the object to get the value from
*/
return value != null ? [].concat(value) : null;
function getNestedValue(key, obj) {
// @ts-expect-error really have no idea how to type this properly...
return key.split('.').reduce(function (itemObj, nestedKey) {
// @ts-expect-error lost on this one as well...
return itemObj ? itemObj[nestedKey] : null;
}, obj);
}
/**
* Gets all the values for the given keys in the given item and returns an array of those values
* @param {Object} item - the item from which the values will be retrieved
* @param {Array} keys - the keys to use to retrieve the values
* @return {Array} objects with {itemValue, attributes}
* @param item - the item from which the values will be retrieved
* @param keys - the keys to use to retrieve the values
* @return objects with {itemValue, attributes}
*/

@@ -377,22 +388,21 @@

}
var defaultKeyAttributes = {
maxRanking: Infinity,
minRanking: -Infinity
};
/**
* Gets all the attributes for the given key
* @param {Object|String} key - the key from which the attributes will be retrieved
* @return {Object} object containing the key's attributes
* @param key - the key from which the attributes will be retrieved
* @return object containing the key's attributes
*/
function getKeyAttributes(key) {
if (typeof key === 'string') {
key = {
key: key
};
return defaultKeyAttributes;
}
return _extends({
maxRanking: Infinity,
minRanking: -Infinity
}, key);
return _extends({}, defaultKeyAttributes, key);
}
export { matchSorter, rankings };
export { defaultBaseSortFn, matchSorter, rankings };

@@ -459,3 +459,3 @@ (function (global, factory) {

var defaultBaseSortFn = function (a, b) {
return String(a.rankedItem).localeCompare(b.rankedItem);
return String(a.rankedValue).localeCompare(String(b.rankedValue));
};

@@ -484,3 +484,3 @@ /**

return matchedItems.sort(function (a, b) {
return sortRankedItems(a, b, baseSort);
return sortRankedValues(a, b, baseSort);
}).map(function (_ref) {

@@ -492,17 +492,12 @@ var item = _ref.item;

function reduceItemsToRanked(matches, item, index) {
var _getHighestRanking = getHighestRanking(item, keys, value, options),
rankedItem = _getHighestRanking.rankedItem,
rank = _getHighestRanking.rank,
keyIndex = _getHighestRanking.keyIndex,
_getHighestRanking$ke = _getHighestRanking.keyThreshold,
keyThreshold = _getHighestRanking$ke === void 0 ? threshold : _getHighestRanking$ke;
var rankingInfo = getHighestRanking(item, keys, value, options);
var rank = rankingInfo.rank,
_rankingInfo$keyThres = rankingInfo.keyThreshold,
keyThreshold = _rankingInfo$keyThres === void 0 ? threshold : _rankingInfo$keyThres;
if (rank >= keyThreshold) {
matches.push({
rankedItem: rankedItem,
matches.push(_extends({}, rankingInfo, {
item: item,
rank: rank,
index: index,
keyIndex: keyIndex
});
index: index
}));
}

@@ -525,6 +520,8 @@

if (!keys) {
// if keys is not specified, then we assume the item given is ready to be matched
var stringItem = item;
return {
// ends up being duplicate of 'item' in matches but consistent
rankedItem: item,
rank: getMatchRanking(item, value, options),
rankedValue: stringItem,
rank: getMatchRanking(stringItem, value, options),
keyIndex: -1,

@@ -538,3 +535,3 @@ keyThreshold: options.threshold

var rank = _ref2.rank,
rankedItem = _ref2.rankedItem,
rankedValue = _ref2.rankedValue,
keyIndex = _ref2.keyIndex,

@@ -545,3 +542,3 @@ keyThreshold = _ref2.keyThreshold;

var newRank = getMatchRanking(itemValue, value, options);
var newRankedItem = rankedItem;
var newRankedValue = rankedValue;
var minRanking = attributes.minRanking,

@@ -561,7 +558,7 @@ maxRanking = attributes.maxRanking,

keyThreshold = threshold;
newRankedItem = itemValue;
newRankedValue = itemValue;
}
return {
rankedItem: newRankedItem,
rankedValue: newRankedValue,
rank: rank,

@@ -572,2 +569,3 @@ keyIndex: keyIndex,

}, {
rankedValue: item,
rank: rankings.NO_MATCH,

@@ -610,3 +608,3 @@ keyIndex: -1,

if (testString.indexOf(stringToRank) === 0) {
if (testString.startsWith(stringToRank)) {
return rankings.STARTS_WITH;

@@ -616,3 +614,3 @@ } // word starts with

if (testString.indexOf(" " + stringToRank) !== -1) {
if (testString.includes(" " + stringToRank)) {
return rankings.WORD_STARTS_WITH;

@@ -622,3 +620,3 @@ } // contains

if (testString.indexOf(stringToRank) !== -1) {
if (testString.includes(stringToRank)) {
return rankings.CONTAINS;

@@ -633,3 +631,3 @@ } else if (stringToRank.length === 1) {

if (getAcronym(testString).indexOf(stringToRank) !== -1) {
if (getAcronym(testString).includes(stringToRank)) {
return rankings.ACRONYM;

@@ -725,3 +723,3 @@ } // will return a number between rankings.MATCHES and

function sortRankedItems(a, b, baseSort) {
function sortRankedValues(a, b, baseSort) {
var aFirst = -1;

@@ -755,2 +753,4 @@ var bFirst = 1;

var keepDiacritics = _ref4.keepDiacritics;
// value might not actually be a string at this point (we don't get to choose)
// so part of preparing the value for comparison is ensure that it is a string
value = "" + value; // toString

@@ -781,20 +781,31 @@

value = key(item); // eslint-disable-next-line no-negated-condition
} else if (key.indexOf('.') !== -1) {
// handle nested keys
value = key.split('.').reduce(function (itemObj, nestedKey) {
return itemObj ? itemObj[nestedKey] : null;
}, item);
} else {
value = item[key];
} // concat because `value` can be a string or an array
value = getNestedValue(key, item);
}
// concat because `value` can be a string or an array
// eslint-disable-next-line
return value != null ? [].concat(value) : null;
}
/**
* Given key: "foo.bar.baz"
* And obj: {foo: {bar: {baz: 'buzz'}}}
* -> 'buzz'
* @param key a dot-separated set of keys
* @param obj the object to get the value from
*/
return value != null ? [].concat(value) : null;
function getNestedValue(key, obj) {
// @ts-expect-error really have no idea how to type this properly...
return key.split('.').reduce(function (itemObj, nestedKey) {
// @ts-expect-error lost on this one as well...
return itemObj ? itemObj[nestedKey] : null;
}, obj);
}
/**
* Gets all the values for the given keys in the given item and returns an array of those values
* @param {Object} item - the item from which the values will be retrieved
* @param {Array} keys - the keys to use to retrieve the values
* @return {Array} objects with {itemValue, attributes}
* @param item - the item from which the values will be retrieved
* @param keys - the keys to use to retrieve the values
* @return objects with {itemValue, attributes}
*/

@@ -819,22 +830,22 @@

}
var defaultKeyAttributes = {
maxRanking: Infinity,
minRanking: -Infinity
};
/**
* Gets all the attributes for the given key
* @param {Object|String} key - the key from which the attributes will be retrieved
* @return {Object} object containing the key's attributes
* @param key - the key from which the attributes will be retrieved
* @return object containing the key's attributes
*/
function getKeyAttributes(key) {
if (typeof key === 'string') {
key = {
key: key
};
return defaultKeyAttributes;
}
return _extends({
maxRanking: Infinity,
minRanking: -Infinity
}, key);
return _extends({}, defaultKeyAttributes, key);
}
exports.defaultBaseSortFn = defaultBaseSortFn;
exports.matchSorter = matchSorter;

@@ -841,0 +852,0 @@ exports.rankings = rankings;

@@ -1,2 +0,2 @@

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).matchSorter={})}(this,(function(e){"use strict";function n(){return(n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}var r={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Ấ":"A","Ắ":"A","Ẳ":"A","Ẵ":"A","Ặ":"A","Æ":"AE","Ầ":"A","Ằ":"A","Ȃ":"A","Ç":"C","Ḉ":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ế":"E","Ḗ":"E","Ề":"E","Ḕ":"E","Ḝ":"E","Ȇ":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ḯ":"I","Ȋ":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ố":"O","Ṍ":"O","Ṓ":"O","Ȏ":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ấ":"a","ắ":"a","ẳ":"a","ẵ":"a","ặ":"a","æ":"ae","ầ":"a","ằ":"a","ȃ":"a","ç":"c","ḉ":"c","è":"e","é":"e","ê":"e","ë":"e","ế":"e","ḗ":"e","ề":"e","ḕ":"e","ḝ":"e","ȇ":"e","ì":"i","í":"i","î":"i","ï":"i","ḯ":"i","ȋ":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ố":"o","ṍ":"o","ṓ":"o","ȏ":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Ĉ":"C","ĉ":"c","Ċ":"C","ċ":"c","Č":"C","č":"c","C̆":"C","c̆":"c","Ď":"D","ď":"d","Đ":"D","đ":"d","Ē":"E","ē":"e","Ĕ":"E","ĕ":"e","Ė":"E","ė":"e","Ę":"E","ę":"e","Ě":"E","ě":"e","Ĝ":"G","Ǵ":"G","ĝ":"g","ǵ":"g","Ğ":"G","ğ":"g","Ġ":"G","ġ":"g","Ģ":"G","ģ":"g","Ĥ":"H","ĥ":"h","Ħ":"H","ħ":"h","Ḫ":"H","ḫ":"h","Ĩ":"I","ĩ":"i","Ī":"I","ī":"i","Ĭ":"I","ĭ":"i","Į":"I","į":"i","İ":"I","ı":"i","IJ":"IJ","ij":"ij","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","Ḱ":"K","ḱ":"k","K̆":"K","k̆":"k","Ĺ":"L","ĺ":"l","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ŀ":"L","ŀ":"l","Ł":"l","ł":"l","Ḿ":"M","ḿ":"m","M̆":"M","m̆":"m","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","ʼn":"n","N̆":"N","n̆":"n","Ō":"O","ō":"o","Ŏ":"O","ŏ":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","P̆":"P","p̆":"p","Ŕ":"R","ŕ":"r","Ŗ":"R","ŗ":"r","Ř":"R","ř":"r","R̆":"R","r̆":"r","Ȓ":"R","ȓ":"r","Ś":"S","ś":"s","Ŝ":"S","ŝ":"s","Ş":"S","Ș":"S","ș":"s","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","ț":"t","Ț":"T","Ť":"T","ť":"t","Ŧ":"T","ŧ":"t","T̆":"T","t̆":"t","Ũ":"U","ũ":"u","Ū":"U","ū":"u","Ŭ":"U","ŭ":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ȗ":"U","ȗ":"u","V̆":"V","v̆":"v","Ŵ":"W","ŵ":"w","Ẃ":"W","ẃ":"w","X̆":"X","x̆":"x","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Y̆":"Y","y̆":"y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ſ":"s","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Ǎ":"A","ǎ":"a","Ǐ":"I","ǐ":"i","Ǒ":"O","ǒ":"o","Ǔ":"U","ǔ":"u","Ǖ":"U","ǖ":"u","Ǘ":"U","ǘ":"u","Ǚ":"U","ǚ":"u","Ǜ":"U","ǜ":"u","Ứ":"U","ứ":"u","Ṹ":"U","ṹ":"u","Ǻ":"A","ǻ":"a","Ǽ":"AE","ǽ":"ae","Ǿ":"O","ǿ":"o","Þ":"TH","þ":"th","Ṕ":"P","ṕ":"p","Ṥ":"S","ṥ":"s","X́":"X","x́":"x","Ѓ":"Г","ѓ":"г","Ќ":"К","ќ":"к","A̋":"A","a̋":"a","E̋":"E","e̋":"e","I̋":"I","i̋":"i","Ǹ":"N","ǹ":"n","Ồ":"O","ồ":"o","Ṑ":"O","ṑ":"o","Ừ":"U","ừ":"u","Ẁ":"W","ẁ":"w","Ỳ":"Y","ỳ":"y","Ȁ":"A","ȁ":"a","Ȅ":"E","ȅ":"e","Ȉ":"I","ȉ":"i","Ȍ":"O","ȍ":"o","Ȑ":"R","ȑ":"r","Ȕ":"U","ȕ":"u","B̌":"B","b̌":"b","Č̣":"C","č̣":"c","Ê̌":"E","ê̌":"e","F̌":"F","f̌":"f","Ǧ":"G","ǧ":"g","Ȟ":"H","ȟ":"h","J̌":"J","ǰ":"j","Ǩ":"K","ǩ":"k","M̌":"M","m̌":"m","P̌":"P","p̌":"p","Q̌":"Q","q̌":"q","Ř̩":"R","ř̩":"r","Ṧ":"S","ṧ":"s","V̌":"V","v̌":"v","W̌":"W","w̌":"w","X̌":"X","x̌":"x","Y̌":"Y","y̌":"y","A̧":"A","a̧":"a","B̧":"B","b̧":"b","Ḑ":"D","ḑ":"d","Ȩ":"E","ȩ":"e","Ɛ̧":"E","ɛ̧":"e","Ḩ":"H","ḩ":"h","I̧":"I","i̧":"i","Ɨ̧":"I","ɨ̧":"i","M̧":"M","m̧":"m","O̧":"O","o̧":"o","Q̧":"Q","q̧":"q","U̧":"U","u̧":"u","X̧":"X","x̧":"x","Z̧":"Z","z̧":"z"},t=Object.keys(r).join("|"),o=new RegExp(t,"g"),u=new RegExp(t,""),i=function(e){return e.replace(o,(function(e){return r[e]}))},a=i,c=function(e){return!!e.match(u)},f=i;a.has=c,a.remove=f;var d={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0};A.rankings=d;var s=function(e,n){return String(e.rankedItem).localeCompare(n.rankedItem)};function A(e,n,r){void 0===r&&(r={});var t=r,o=t.keys,u=t.threshold,i=void 0===u?d.MATCHES:u,a=t.baseSort,c=void 0===a?s:a;return e.reduce((function(e,t,u){var a=function(e,n,r,t){if(!n)return{rankedItem:e,rank:l(e,r,t),keyIndex:-1,keyThreshold:t.threshold};return function(e,n){return n.reduce((function(n,r){var t=function(e,n){"object"==typeof n&&(n=n.key);var r;r="function"==typeof n?n(e):-1!==n.indexOf(".")?n.split(".").reduce((function(e,n){return e?e[n]:null}),e):e[n];return null!=r?[].concat(r):null}(e,r);return t&&t.forEach((function(e){n.push({itemValue:e,attributes:k(r)})})),n}),[])}(e,n).reduce((function(e,n,o){var u=e.rank,i=e.rankedItem,a=e.keyIndex,c=e.keyThreshold,f=n.itemValue,s=n.attributes,A=l(f,r,t),h=i,k=s.minRanking,I=s.maxRanking,O=s.threshold;return A<k&&A>=d.MATCHES?A=k:A>I&&(A=I),A>u&&(u=A,a=o,c=O,h=f),{rankedItem:h,rank:u,keyIndex:a,keyThreshold:c}}),{rank:d.NO_MATCH,keyIndex:-1,keyThreshold:t.threshold})}(t,o,n,r),c=a.rankedItem,f=a.rank,s=a.keyIndex,A=a.keyThreshold;f>=(void 0===A?i:A)&&e.push({rankedItem:c,item:t,rank:f,index:u,keyIndex:s});return e}),[]).sort((function(e,n){return function(e,n,r){var t=-1,o=1,u=e.rank,i=e.keyIndex,a=n.rank,c=n.keyIndex;return u===a?i===c?r(e,n):i<c?t:o:u>a?t:o}(e,n,c)})).map((function(e){return e.item}))}function l(e,n,r){return e=h(e,r),(n=h(n,r)).length>e.length?d.NO_MATCH:e===n?d.CASE_SENSITIVE_EQUAL:(e=e.toLowerCase())===(n=n.toLowerCase())?d.EQUAL:0===e.indexOf(n)?d.STARTS_WITH:-1!==e.indexOf(" "+n)?d.WORD_STARTS_WITH:-1!==e.indexOf(n)?d.CONTAINS:1===n.length?d.NO_MATCH:-1!==(t=e,o="",t.split(" ").forEach((function(e){e.split("-").forEach((function(e){o+=e.substr(0,1)}))})),o).indexOf(n)?d.ACRONYM:function(e,n){var r=0,t=0;function o(e,n,t){for(var o=t;o<n.length;o++){if(n[o]===e)return r+=1,o+1}return-1}function u(e){var t=r/n.length;return d.MATCHES+t*(1/e)}var i=o(n[0],e,0);if(i<0)return d.NO_MATCH;t=i;for(var a=1;a<n.length;a++){if(!((t=o(n[a],e,t))>-1))return d.NO_MATCH}return u(t-i)}(e,n);var t,o}function h(e,n){return e=""+e,n.keepDiacritics||(e=a(e)),e}function k(e){return"string"==typeof e&&(e={key:e}),n({maxRanking:1/0,minRanking:-1/0},e)}e.matchSorter=A,e.rankings=d,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).matchSorter={})}(this,(function(e){"use strict";function n(){return(n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}var r={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Ấ":"A","Ắ":"A","Ẳ":"A","Ẵ":"A","Ặ":"A","Æ":"AE","Ầ":"A","Ằ":"A","Ȃ":"A","Ç":"C","Ḉ":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ế":"E","Ḗ":"E","Ề":"E","Ḕ":"E","Ḝ":"E","Ȇ":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ḯ":"I","Ȋ":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ố":"O","Ṍ":"O","Ṓ":"O","Ȏ":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ấ":"a","ắ":"a","ẳ":"a","ẵ":"a","ặ":"a","æ":"ae","ầ":"a","ằ":"a","ȃ":"a","ç":"c","ḉ":"c","è":"e","é":"e","ê":"e","ë":"e","ế":"e","ḗ":"e","ề":"e","ḕ":"e","ḝ":"e","ȇ":"e","ì":"i","í":"i","î":"i","ï":"i","ḯ":"i","ȋ":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ố":"o","ṍ":"o","ṓ":"o","ȏ":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Ĉ":"C","ĉ":"c","Ċ":"C","ċ":"c","Č":"C","č":"c","C̆":"C","c̆":"c","Ď":"D","ď":"d","Đ":"D","đ":"d","Ē":"E","ē":"e","Ĕ":"E","ĕ":"e","Ė":"E","ė":"e","Ę":"E","ę":"e","Ě":"E","ě":"e","Ĝ":"G","Ǵ":"G","ĝ":"g","ǵ":"g","Ğ":"G","ğ":"g","Ġ":"G","ġ":"g","Ģ":"G","ģ":"g","Ĥ":"H","ĥ":"h","Ħ":"H","ħ":"h","Ḫ":"H","ḫ":"h","Ĩ":"I","ĩ":"i","Ī":"I","ī":"i","Ĭ":"I","ĭ":"i","Į":"I","į":"i","İ":"I","ı":"i","IJ":"IJ","ij":"ij","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","Ḱ":"K","ḱ":"k","K̆":"K","k̆":"k","Ĺ":"L","ĺ":"l","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ŀ":"L","ŀ":"l","Ł":"l","ł":"l","Ḿ":"M","ḿ":"m","M̆":"M","m̆":"m","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","ʼn":"n","N̆":"N","n̆":"n","Ō":"O","ō":"o","Ŏ":"O","ŏ":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","P̆":"P","p̆":"p","Ŕ":"R","ŕ":"r","Ŗ":"R","ŗ":"r","Ř":"R","ř":"r","R̆":"R","r̆":"r","Ȓ":"R","ȓ":"r","Ś":"S","ś":"s","Ŝ":"S","ŝ":"s","Ş":"S","Ș":"S","ș":"s","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","ț":"t","Ț":"T","Ť":"T","ť":"t","Ŧ":"T","ŧ":"t","T̆":"T","t̆":"t","Ũ":"U","ũ":"u","Ū":"U","ū":"u","Ŭ":"U","ŭ":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ȗ":"U","ȗ":"u","V̆":"V","v̆":"v","Ŵ":"W","ŵ":"w","Ẃ":"W","ẃ":"w","X̆":"X","x̆":"x","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Y̆":"Y","y̆":"y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ſ":"s","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Ǎ":"A","ǎ":"a","Ǐ":"I","ǐ":"i","Ǒ":"O","ǒ":"o","Ǔ":"U","ǔ":"u","Ǖ":"U","ǖ":"u","Ǘ":"U","ǘ":"u","Ǚ":"U","ǚ":"u","Ǜ":"U","ǜ":"u","Ứ":"U","ứ":"u","Ṹ":"U","ṹ":"u","Ǻ":"A","ǻ":"a","Ǽ":"AE","ǽ":"ae","Ǿ":"O","ǿ":"o","Þ":"TH","þ":"th","Ṕ":"P","ṕ":"p","Ṥ":"S","ṥ":"s","X́":"X","x́":"x","Ѓ":"Г","ѓ":"г","Ќ":"К","ќ":"к","A̋":"A","a̋":"a","E̋":"E","e̋":"e","I̋":"I","i̋":"i","Ǹ":"N","ǹ":"n","Ồ":"O","ồ":"o","Ṑ":"O","ṑ":"o","Ừ":"U","ừ":"u","Ẁ":"W","ẁ":"w","Ỳ":"Y","ỳ":"y","Ȁ":"A","ȁ":"a","Ȅ":"E","ȅ":"e","Ȉ":"I","ȉ":"i","Ȍ":"O","ȍ":"o","Ȑ":"R","ȑ":"r","Ȕ":"U","ȕ":"u","B̌":"B","b̌":"b","Č̣":"C","č̣":"c","Ê̌":"E","ê̌":"e","F̌":"F","f̌":"f","Ǧ":"G","ǧ":"g","Ȟ":"H","ȟ":"h","J̌":"J","ǰ":"j","Ǩ":"K","ǩ":"k","M̌":"M","m̌":"m","P̌":"P","p̌":"p","Q̌":"Q","q̌":"q","Ř̩":"R","ř̩":"r","Ṧ":"S","ṧ":"s","V̌":"V","v̌":"v","W̌":"W","w̌":"w","X̌":"X","x̌":"x","Y̌":"Y","y̌":"y","A̧":"A","a̧":"a","B̧":"B","b̧":"b","Ḑ":"D","ḑ":"d","Ȩ":"E","ȩ":"e","Ɛ̧":"E","ɛ̧":"e","Ḩ":"H","ḩ":"h","I̧":"I","i̧":"i","Ɨ̧":"I","ɨ̧":"i","M̧":"M","m̧":"m","O̧":"O","o̧":"o","Q̧":"Q","q̧":"q","U̧":"U","u̧":"u","X̧":"X","x̧":"x","Z̧":"Z","z̧":"z"},t=Object.keys(r).join("|"),u=new RegExp(t,"g"),o=new RegExp(t,""),a=function(e){return e.replace(u,(function(e){return r[e]}))},i=a,c=function(e){return!!e.match(o)},f=a;i.has=c,i.remove=f;var l={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0};A.rankings=l;var s=function(e,n){return String(e.rankedValue).localeCompare(String(n.rankedValue))};function A(e,r,t){void 0===t&&(t={});var u=t,o=u.keys,a=u.threshold,i=void 0===a?l.MATCHES:a,c=u.baseSort,f=void 0===c?s:c;return e.reduce((function(e,u,a){var c=function(e,n,r,t){if(!n){return{rankedValue:e,rank:d(e,r,t),keyIndex:-1,keyThreshold:t.threshold}}return function(e,n){return n.reduce((function(n,r){var t=function(e,n){"object"==typeof n&&(n=n.key);var r;r="function"==typeof n?n(e):function(e,n){return e.split(".").reduce((function(e,n){return e?e[n]:null}),n)}(n,e);return null!=r?[].concat(r):null}(e,r);return t&&t.forEach((function(e){n.push({itemValue:e,attributes:T(r)})})),n}),[])}(e,n).reduce((function(e,n,u){var o=e.rank,a=e.rankedValue,i=e.keyIndex,c=e.keyThreshold,f=n.itemValue,s=n.attributes,A=d(f,r,t),h=a,E=s.minRanking,T=s.maxRanking,k=s.threshold;return A<E&&A>=l.MATCHES?A=E:A>T&&(A=T),A>o&&(o=A,i=u,c=k,h=f),{rankedValue:h,rank:o,keyIndex:i,keyThreshold:c}}),{rankedValue:e,rank:l.NO_MATCH,keyIndex:-1,keyThreshold:t.threshold})}(u,o,r,t),f=c.rank,s=c.keyThreshold;f>=(void 0===s?i:s)&&e.push(n({},c,{item:u,index:a}));return e}),[]).sort((function(e,n){return function(e,n,r){var t=-1,u=1,o=e.rank,a=e.keyIndex,i=n.rank,c=n.keyIndex;return o===i?a===c?r(e,n):a<c?t:u:o>i?t:u}(e,n,f)})).map((function(e){return e.item}))}function d(e,n,r){return e=h(e,r),(n=h(n,r)).length>e.length?l.NO_MATCH:e===n?l.CASE_SENSITIVE_EQUAL:(e=e.toLowerCase())===(n=n.toLowerCase())?l.EQUAL:e.startsWith(n)?l.STARTS_WITH:e.includes(" "+n)?l.WORD_STARTS_WITH:e.includes(n)?l.CONTAINS:1===n.length?l.NO_MATCH:(t=e,u="",t.split(" ").forEach((function(e){e.split("-").forEach((function(e){u+=e.substr(0,1)}))})),u).includes(n)?l.ACRONYM:function(e,n){var r=0,t=0;function u(e,n,t){for(var u=t;u<n.length;u++){if(n[u]===e)return r+=1,u+1}return-1}function o(e){var t=r/n.length;return l.MATCHES+t*(1/e)}var a=u(n[0],e,0);if(a<0)return l.NO_MATCH;t=a;for(var i=1;i<n.length;i++){if(!((t=u(n[i],e,t))>-1))return l.NO_MATCH}return o(t-a)}(e,n);var t,u}function h(e,n){return e=""+e,n.keepDiacritics||(e=i(e)),e}var E={maxRanking:1/0,minRanking:-1/0};function T(e){return"string"==typeof e?E:n({},E,e)}e.defaultBaseSortFn=s,e.matchSorter=A,e.rankings=l,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=match-sorter.umd.min.js.map
{
"name": "match-sorter",
"version": "5.0.0",
"version": "6.0.0",
"description": "Simple, expected, and deterministic best-match sorting of an array in JavaScript",

@@ -12,2 +12,3 @@ "main": "dist/match-sorter.cjs.js",

"test": "kcd-scripts test",
"typecheck": "kcd-scripts typecheck",
"test:update": "npm test -- --updateSnapshot --coverage",

@@ -29,7 +30,10 @@ "validate": "kcd-scripts validate"

"dependencies": {
"@babel/runtime": "^7.10.5",
"@babel/runtime": "^7.12.5",
"remove-accents": "0.4.2"
},
"devDependencies": {
"kcd-scripts": "^6.2.4"
"@rollup/plugin-typescript": "^6.1.0",
"@types/jest": "^26.0.15",
"kcd-scripts": "^7.2.0",
"typescript": "^4.1.2"
},

@@ -36,0 +40,0 @@ "eslintConfig": {

@@ -17,6 +17,3 @@ <div align="center">

[![MIT License][license-badge]][license]
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-21-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
[![All Contributors][all-contributors-badge]](#contributors-)
[![PRs Welcome][prs-badge]][prs]

@@ -102,3 +99,3 @@ [![Code of Conduct][coc-badge]][coc]

// or const {matchSorter} = require('match-sorter')
// or window.matchSorter
// or window.matchSorter.matchSorter
const list = ['hi', 'hey', 'hello', 'sup', 'yo']

@@ -316,3 +313,3 @@ matchSorter(list, 'h') // ['hello', 'hey', 'hi']

_Default: `(a, b) => String(a.rankedItem).localeCompare(b.rankedItem)`_
_Default: `(a, b) => String(a.rankedValue).localeCompare(b.rankedValue)`_

@@ -452,3 +449,3 @@ By default, match-sorter uses the `String.localeCompare` function to tie-break

<td align="center"><a href="https://github.com/skube"><img src="https://avatars3.githubusercontent.com/u/146396?v=4" width="100px;" alt=""/><br /><sub><b>Skubie Doo</b></sub></a><br /><a href="https://github.com/kentcdodds/match-sorter/commits?author=skube" title="Documentation">📖</a></td>
<td align="center"><a href="https://michaeldeboey.be"><img src="https://avatars3.githubusercontent.com/u/6643991?v=4" width="100px;" alt=""/><br /><sub><b>Michaël De Boey</b></sub></a><br /><a href="https://github.com/kentcdodds/match-sorter/commits?author=MichaelDeBoey" title="Code">💻</a></td>
<td align="center"><a href="https://michaeldeboey.be"><img src="https://avatars3.githubusercontent.com/u/6643991?v=4" width="100px;" alt=""/><br /><sub><b>Michaël De Boey</b></sub></a><br /><a href="https://github.com/kentcdodds/match-sorter/commits?author=MichaelDeBoey" title="Code">💻</a> <a href="https://github.com/kentcdodds/match-sorter/pulls?q=is%3Apr+reviewed-by%3AMichaelDeBoey" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://tannerlinsley.com"><img src="https://avatars0.githubusercontent.com/u/5580297?v=4" width="100px;" alt=""/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href="https://github.com/kentcdodds/match-sorter/commits?author=tannerlinsley" title="Code">💻</a></td>

@@ -459,2 +456,6 @@ <td align="center"><a href="https://github.com/SweVictor"><img src="https://avatars1.githubusercontent.com/u/449347?v=4" width="100px;" alt=""/><br /><sub><b>Victor</b></sub></a><br /><a href="https://github.com/kentcdodds/match-sorter/commits?author=SweVictor" title="Documentation">📖</a></td>

</tr>
<tr>
<td align="center"><a href="https://ricardobusquet.com"><img src="https://avatars1.githubusercontent.com/u/7198302?v=4" width="100px;" alt=""/><br /><sub><b>Ricardo Busquet</b></sub></a><br /><a href="#ideas-rbusquet" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/kentcdodds/match-sorter/pulls?q=is%3Apr+reviewed-by%3Arbusquet" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://github.com/weyert"><img src="https://avatars3.githubusercontent.com/u/7049?v=4" width="100px;" alt=""/><br /><sub><b>Weyert de Boer</b></sub></a><br /><a href="#ideas-weyert" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/kentcdodds/match-sorter/pulls?q=is%3Apr+reviewed-by%3Aweyert" title="Reviewed Pull Requests">👀</a></td>
</tr>
</table>

@@ -477,4 +478,4 @@

[node]: https://nodejs.org
[build-badge]: https://img.shields.io/travis/kentcdodds/match-sorter.svg?style=flat-square
[build]: https://travis-ci.org/kentcdodds/match-sorter
[build-badge]: https://img.shields.io/github/workflow/status/kentcdodds/match-sorter/validate?logo=github&style=flat-square
[build]: https://github.com/kentcdodds/match-sorter/actions?query=workflow%3Avalidate
[coverage-badge]: https://img.shields.io/codecov/c/github/kentcdodds/match-sorter.svg?style=flat-square

@@ -487,7 +488,7 @@ [coverage]: https://codecov.io/github/kentcdodds/match-sorter

[license-badge]: https://img.shields.io/npm/l/match-sorter.svg?style=flat-square
[license]: https://github.com/kentcdodds/match-sorter/blob/master/other/LICENSE
[license]: https://github.com/kentcdodds/match-sorter/blob/master/LICENSE
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
[prs]: http://makeapullrequest.com
[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
[coc]: https://github.com/kentcdodds/match-sorter/blob/master/other/CODE_OF_CONDUCT.md
[coc]: https://github.com/kentcdodds/match-sorter/blob/master/CODE_OF_CONDUCT.md
[examples-badge]: https://img.shields.io/badge/%F0%9F%92%A1-examples-8C8E93.svg?style=flat-square

@@ -497,4 +498,8 @@ [examples]: https://github.com/kentcdodds/match-sorter/blob/master/other/EXAMPLES.md

[all-contributors]: https://github.com/all-contributors/all-contributors
[all-contributors-badge]: https://img.shields.io/github/all-contributors/kentcdodds/match-sorter?color=orange&style=flat-square
[bugs]: https://github.com/kentcdodds/match-sorter/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Acreated-desc+label%3Abug
[requests]: https://github.com/kentcdodds/match-sorter/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement
[good-first-issue]: https://github.com/kentcdodds/match-sorter/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement+label%3A%22good+first+issue%22
[genie]: https://github.com/kentcdodds/genie
<!-- prettier-ignore-end -->

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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