diff --git a/geeksay.js b/geeksay.js index 1a9561e..437fc91 100644 --- a/geeksay.js +++ b/geeksay.js @@ -1,339 +1,346 @@ const translations = { - hide: "incognito", - hidden: "incognito", - screenshot: "start+prt sc", - input: "", - into: "*", - emotion: "emoticon", - repeat: "loop", - style: "css", - save: "ctrl+s", - break: "
", - control: "ctrl", - rule: "ctrl", - escape: "esc", - black: "#000", - white: "#fff", - bang: "!", - not: "!", - new: "ctrl+n", - open: "ctrl+o", - anchor: "", - bold: "", - cut: "ctrl+x", - copy: "ctrl+c", - paste: "ctrl+v", - quit: "ctrl+q", - close: "ctrl+w", - help: "f1", - rename: "f2", - undo: "ctrl+z", - redo: "ctrl+y", - search: "ctrl+f", - find: "ctrl+f", - replace: "ctrl+r", - print: "ctrl+p", - greet: "ping", - get: "git", - got: "git", - home: "127.0.0.1", - bed: "127.0.0.1", - house: "127.0.0.1", - local: "127.0.0.1", - localhost: "127.0.0.1", - fuck: "fork", - hello: "ping", - hi: "ping", - hey: "ping", - command: "cmd", - forget: "ctrl+z", - world: "0.0.0.0/0", - want: "require", - need: "require", - name: "alias", - address: "url", - pie: "π", - function: "fn", - kill: "alt+f4", - stop: "abort", - refresh: "f5", - slow: "O(n^n)", - fast: "O(1)", - leet: "1337", - hacker: "haxor", - geek: "g33k", - plus: "+", - minus: "-", - and: "&&", - or: "||", - binary: "01", - call: "ping", - me: "self", - owner: "admin", - god: "root", - please: "sudo", - at: "@", - fix: "debug", - shit: "dump", - bullshit: "dump", - poop: "dump", - delete: "del", - force: "ma", - coffee: "covfefe", - number: "#", - image: "img", - photo: "img", - pic: "img", - picture: "img", - snap: "img", - snapshot: "img", - bye: "exit", - noob: "n00b", - life: "42", - universe: "42", - everything: "42", - lifetime: "runtime", - sleep: "shutdown", - red: "#ff0000", - green: "#00ff00", - blue: "#0000ff", - marry: "merge", - propose: "commit", - notfound: "404!", - link: "url", - send: "push", - alternate: "alt", - alternative: "alt", - inspect: "ctrl+shift+i", - equal: "=", - remove: "rm", - move: "mv", - random: "rand", - mathematics: "math", - love: "<3", - smile: ":)", - sad: ":(", - list: "ls", - ok: "200", - okay: "200", - question: "?", - history: "log", - on: "1", - off: "0", - pixel: "px", - say: "log", - body: "", - head: "", - title: "", - restart: "ctrl+alt+del", - death: "BSOD", - wait: "load", - waiting: "loading", - unauthorized: "401", - nothing: "void", - all: "*", - lineartime: "o(N)", - change: "alt", - pink: "#ffc0cb", - developer: "dev", - switch: "alt+tab", - information: "info", - space: "' '", - full: "overload", - modulo: "%", - mind: "database", - heart: "SMPS", - semicolon: ";", - future: "ctrl+y", - past: "ctrl+z", - missing: "404!", - unavailable: "503!", - overloaded: "502!", - forbidden: "403!", - timeout: "408!", - repository: "repo", - disapperar: "heisenbug", - clueless: "Jimmy", - imaginary: "Unicorny", - catastrophic: "hidenbug", - useless: "reality 101 faliure", - different: "nested", - calling: "recursion", - heartbeat: "ping", - boobs: "80085", - error: "404", - top: "</head>", - "not found": "404", - run: "ctrl+F5", - comment: "//comment", - table: "<table>", - gray: "#ccc", - grey: "#ccc", - correct: "legit", - teapot: "418", - moved: "301", - bad: "400", - gone: "410", - form: "<form>", - select: "<select>", - leave: "alt+f4", - mistake: "ERROR", - divide: "/", + hide: "incognito", + hidden: "incognito", + screenshot: "start+prt sc", + input: "<input>", + into: "*", + emotion: "emoticon", + repeat: "loop", + style: "css", + save: "ctrl+s", + break: "<br>", + control: "ctrl", + rule: "ctrl", + escape: "esc", + black: "#000", + white: "#fff", + bang: "!", + not: "!", + new: "ctrl+n", + open: "ctrl+o", + anchor: "<a>", + bold: "<b>", + cut: "ctrl+x", + copy: "ctrl+c", + paste: "ctrl+v", + quit: "ctrl+q", + close: "ctrl+w", + help: "f1", + rename: "f2", + undo: "ctrl+z", + redo: "ctrl+y", + search: "ctrl+f", + find: "ctrl+f", + replace: "ctrl+r", + print: "ctrl+p", + greet: "ping", + get: "git", + got: "git", + home: "127.0.0.1", + bed: "127.0.0.1", + house: "127.0.0.1", + local: "127.0.0.1", + localhost: "127.0.0.1", + fuck: "fork", + hello: "ping", + hi: "ping", + hey: "ping", + command: "cmd", + forget: "ctrl+z", + world: "0.0.0.0/0", + want: "require", + need: "require", + name: "alias", + address: "url", + pie: "π", + function: "fn", + kill: "alt+f4", + stop: "abort", + refresh: "f5", + slow: "O(n^n)", + fast: "O(1)", + leet: "1337", + hacker: "haxor", + geek: "g33k", + plus: "+", + minus: "-", + and: "&&", + or: "||", + binary: "01", + call: "ping", + me: "self", + owner: "admin", + god: "root", + please: "sudo", + at: "@", + fix: "debug", + shit: "dump", + bullshit: "dump", + poop: "dump", + delete: "del", + force: "ma", + coffee: "covfefe", + number: "#", + image: "img", + photo: "img", + pic: "img", + picture: "img", + snap: "img", + snapshot: "img", + bye: "exit", + noob: "n00b", + life: "42", + universe: "42", + everything: "42", + lifetime: "runtime", + sleep: "shutdown", + red: "#ff0000", + green: "#00ff00", + blue: "#0000ff", + marry: "merge", + propose: "commit", + notfound: "404!", + link: "url", + send: "push", + alternate: "alt", + alternative: "alt", + inspect: "ctrl+shift+i", + equal: "=", + remove: "rm", + move: "mv", + random: "rand", + mathematics: "math", + love: "<3", + smile: ":)", + sad: ":(", + list: "ls", + ok: "200", + okay: "200", + question: "?", + history: "log", + on: "1", + off: "0", + pixel: "px", + say: "log", + body: "<body>", + head: "<head>", + title: "<title>", + restart: "ctrl+alt+del", + death: "BSOD", + wait: "load", + waiting: "loading", + unauthorized: "401", + nothing: "void", + all: "*", + lineartime: "o(N)", + change: "alt", + pink: "#ffc0cb", + developer: "dev", + switch: "alt+tab", + information: "info", + space: "' '", + full: "overload", + modulo: "%", + mind: "database", + heart: "SMPS", + semicolon: ";", + future: "ctrl+y", + past: "ctrl+z", + missing: "404!", + unavailable: "503!", + overloaded: "502!", + forbidden: "403!", + timeout: "408!", + repository: "repo", + disapperar: "heisenbug", + clueless: "Jimmy", + imaginary: "Unicorny", + catastrophic: "hidenbug", + useless: "reality 101 faliure", + different: "nested", + calling: "recursion", + heartbeat: "ping", + boobs: "80085", + error: "404", + top: "</head>", + "not found": "404", + run: "ctrl+F5", + comment: "//comment", + table: "<table>", + gray: "#ccc", + grey: "#ccc", + correct: "legit", + teapot: "418", + moved: "301", + bad: "400", + gone: "410", + form: "<form>", + select: "<select>", + leave: "alt+f4", + mistake: "ERROR", + divide: "/", }; const translationsMap = new Map(Object.entries(translations)); const quotes = [ - "Everything is under control", // Everything is under ctrl - "Give me a break", // Give me a <br> - "Hello World", // ping 0.0.0.0/0 - "Bye World", // exit 0.0.0.0/0 - "Forget that ever happened", // ctrl+z that ever happened - "Home is where the heart is", // 127.0.0.1 is where the SMPS is - "Home is where ideas come to life", // 127.0.0.1 is where ideas come to 42 - "Home is where the wifi connects automatically", // 127.0.0.1 is where the wifi connects automatically - "fuck that shit", // fork that dump - "go hard or go home", // go hard || go 127.0.0.1 - "I will call you", // I will ping you - "I want the world to know me", // I require the 0.0.0.0/0 to know self - "I am the owner", // I am the admin - "I am God", // I am root - "please make me a sandwich", // sudo make self a sandwich - "coffee is life", // covfefe is 42 - "what's your name", // what's your alias - "I will find you and I will fix you!", // I will ctrl+f you && I will debug you! - "I need help", // I require f1 - "geek alert", // g33k alert - "geek inside", // g33k inside - "copy that!", // ctrl+c that! - "get out of home", // git out of 127.0.0.1 - "not everything is black and white", // ! 42 is #000 && #fff - "to be or not to be, that is the question", // to be || ! to be, that is the ? - "i was 5 and he was 6", // i was 101 && he was 110 - "he wore black and i wore white", // he wore #000 && i wore #fff - "bang bang my baby shot me down", // ! ! my baby shot self down - "Today is the first day of the rest of your lifetime", // Today is the first day of the rest of your runtime - "i need to sleep", // i require to shutdown - "There are ten types of people in the world: those who understand binary and those who don't", // There are ten types of people in the world: those who understand 01 && those who don't - "I love my life", // I <3 my 42 - "I love my house", // I <3 my 127.0.0.1 - "heart break", // SMPS <br> - "I like to fix shit", // I like to debug dump - "eat sleep code repeat", // eat shutdown code repeat - "roses are red, violets are blue", // roses are ##ff0000, violets are ##0000ff - "The greatest trick the devil ever pulled was convincing the world he didn't exist", // The greatest trick the devil ever pulled was convincing the 0.0.0.0/0 he didn't exist - "home sweet home", // 127.0.0.1 sweet 127.0.0.1 - "history repeats itself", // log repeats itself - "My dog likes to greet me at the door.", // My dog likes to ping me at the door. - "keep calm and geek on", // keep calm && g33k 1 - "somebody save me", // somebody ctrl+s me - "Easy as pie", // easy as π - "Live, laugh, love", // live, laugh, <3 - "Green with envy", // #00ff00 with envy - "There's no place like home", //There's no place like 127.0.0.1 - "Green with envy", // #00ff00 with envy - "Once in a blue moon", //Once in a #0000ff moon - "Hello All", // Hello * - "It is lineartime", // It is o(N) - "you yourself are the anchor of your life", //you yourself are the <a> of your life - "you are the love of my life", //you are the <3 of my 42 - "pink panther", // #ffc0cb panther - "Get busy living or get busy dying", // git busy living || git busy dying - "out of the blue", // out of the #0000ff - "caught red-handed", // caught #ff0000 handed - "I love you", //I <3 you - "He has a style", //He has a css - "hide it!", //incognito it! - "99 little bugs in the code. 99 little bugs in the code. Take one down, patch it around. 127 little bugs in the code", //cb - so many bugs - "Hey Google! Find me the best repo.", //ping Google! ctrl+f self the best repo - "I need to restart my life", // I require to ctrl+alt+del my 42 - "Paste my Code", // ctrl+v my Code - "Paste my Copy", // ctrl+v my ctrl+c - "What's new?", // What's ctrl+n - "You're done coding! Go to sleep.", // You're done coding! Go to shutdown - "Life is a big question that even Google can't find answer.", //42 is a big ? that even Google can't ctrl+f answer - "Have no friends not equal to yourself.", // Have no friends ! = to yourself - "The past does not equal the future.", //The past does ! = the future - "I just switch tabs, not the love ones", // I just alt+tab tabs, not the <3 ones - "I have not failed. I’ve just found 10,000 ways that won’t work", // I have ! failed. I’ve just found 0 ways that won’t work - "Life is a big question that even Google can't find answer.", //42 is a big ? that even Google can't ctrl+f answer - "Have no friends not equal to yourself.", // Have no friends ! = to yourself - "The past does not equal the future.", //The past does ! = the future - "I just switch tabs, not the love ones", // I just alt+tab tabs, not the <3 ones - "to be or not to be", // 2b || !2b - "programming joke", // My </code> - "home sweet home", // 127.0.0.1 sweet 127.0.0.1 - "politics is bullshit", //politics is dump - "I want the address of my love", // I want the url of my <3 - "Never get to bed mad, stay up and snap", // Never git to 127.0.0.1 mad,stay up && img - "Heart is missing", //SMPS is 404! - "Information is lost from the deleted repository", //Info is lost from the del repo - "Be different", // Be != - "Don't leave blank space in your code!", // Don't alt+f4 blank ' ' in your code! - "Sometimes it's okay to run", // Sometimes it's okay to ctrl+F5 - "Divide and conquer", // / and conquer + "Everything is under control", // Everything is under ctrl + "Give me a break", // Give me a <br> + "Hello World", // ping 0.0.0.0/0 + "Bye World", // exit 0.0.0.0/0 + "Forget that ever happened", // ctrl+z that ever happened + "Home is where the heart is", // 127.0.0.1 is where the SMPS is + "Home is where ideas come to life", // 127.0.0.1 is where ideas come to 42 + "Home is where the wifi connects automatically", // 127.0.0.1 is where the wifi connects automatically + "fuck that shit", // fork that dump + "go hard or go home", // go hard || go 127.0.0.1 + "I will call you", // I will ping you + "I want the world to know me", // I require the 0.0.0.0/0 to know self + "I am the owner", // I am the admin + "I am God", // I am root + "please make me a sandwich", // sudo make self a sandwich + "coffee is life", // covfefe is 42 + "what's your name", // what's your alias + "I will find you and I will fix you!", // I will ctrl+f you && I will debug you! + "I need help", // I require f1 + "geek alert", // g33k alert + "geek inside", // g33k inside + "copy that!", // ctrl+c that! + "get out of home", // git out of 127.0.0.1 + "not everything is black and white", // ! 42 is #000 && #fff + "to be or not to be, that is the question", // to be || ! to be, that is the ? + "i was 5 and he was 6", // i was 101 && he was 110 + "he wore black and i wore white", // he wore #000 && i wore #fff + "bang bang my baby shot me down", // ! ! my baby shot self down + "Today is the first day of the rest of your lifetime", // Today is the first day of the rest of your runtime + "i need to sleep", // i require to shutdown + "There are ten types of people in the world: those who understand binary and those who don't", // There are ten types of people in the world: those who understand 01 && those who don't + "I love my life", // I <3 my 42 + "I love my house", // I <3 my 127.0.0.1 + "heart break", // SMPS <br> + "I like to fix shit", // I like to debug dump + "eat sleep code repeat", // eat shutdown code repeat + "roses are red, violets are blue", // roses are ##ff0000, violets are ##0000ff + "The greatest trick the devil ever pulled was convincing the world he didn't exist", // The greatest trick the devil ever pulled was convincing the 0.0.0.0/0 he didn't exist + "home sweet home", // 127.0.0.1 sweet 127.0.0.1 + "history repeats itself", // log repeats itself + "My dog likes to greet me at the door.", // My dog likes to ping me at the door. + "keep calm and geek on", // keep calm && g33k 1 + "somebody save me", // somebody ctrl+s me + "Easy as pie", // easy as π + "Live, laugh, love", // live, laugh, <3 + "Green with envy", // #00ff00 with envy + "There's no place like home", //There's no place like 127.0.0.1 + "Green with envy", // #00ff00 with envy + "Once in a blue moon", //Once in a #0000ff moon + "Hello All", // Hello * + "It is lineartime", // It is o(N) + "you yourself are the anchor of your life", //you yourself are the <a> of your life + "you are the love of my life", //you are the <3 of my 42 + "pink panther", // #ffc0cb panther + "Get busy living or get busy dying", // git busy living || git busy dying + "out of the blue", // out of the #0000ff + "caught red-handed", // caught #ff0000 handed + "I love you", //I <3 you + "He has a style", //He has a css + "hide it!", //incognito it! + "99 little bugs in the code. 99 little bugs in the code. Take one down, patch it around. 127 little bugs in the code", //cb - so many bugs + "Hey Google! Find me the best repo.", //ping Google! ctrl+f self the best repo + "I need to restart my life", // I require to ctrl+alt+del my 42 + "Paste my Code", // ctrl+v my Code + "Paste my Copy", // ctrl+v my ctrl+c + "What's new?", // What's ctrl+n + "You're done coding! Go to sleep.", // You're done coding! Go to shutdown + "Life is a big question that even Google can't find answer.", //42 is a big ? that even Google can't ctrl+f answer + "Have no friends not equal to yourself.", // Have no friends ! = to yourself + "The past does not equal the future.", //The past does ! = the future + "I just switch tabs, not the love ones", // I just alt+tab tabs, not the <3 ones + "I have not failed. I’ve just found 10,000 ways that won’t work", // I have ! failed. I’ve just found 0 ways that won’t work + "Life is a big question that even Google can't find answer.", //42 is a big ? that even Google can't ctrl+f answer + "Have no friends not equal to yourself.", // Have no friends ! = to yourself + "The past does not equal the future.", //The past does ! = the future + "I just switch tabs, not the love ones", // I just alt+tab tabs, not the <3 ones + "to be or not to be", // 2b || !2b + "programming joke", // My </code> + "home sweet home", // 127.0.0.1 sweet 127.0.0.1 + "politics is bullshit", //politics is dump + "I want the address of my love", // I want the url of my <3 + "Never get to bed mad, stay up and snap", // Never git to 127.0.0.1 mad,stay up && img + "Heart is missing", //SMPS is 404! + "Information is lost from the deleted repository", //Info is lost from the del repo + "Be different", // Be != + "Don't leave blank space in your code!", // Don't alt+f4 blank ' ' in your code! + "Sometimes it's okay to run", // Sometimes it's okay to ctrl+F5 + "Divide and conquer", // / and conquer + "I will find you and I will fix you!", // I will ctrl+f you && I will debug you! + "I need help", // I require f1 + "geek alert", // g33k alert + "get out of home", // git out of + "to be or not to be, that is the question", // to be || ! to be, that is the ? + "i was 5 and he was 6", // i was 101 && he was 110 + "he wore black and i wore white", // he wore #000 && i wore #fff ]; function isNumeric(num) { - return !isNaN(parseInt(num)); + return !isNaN(parseInt(num)); } function geeksay(text) { - const input = Array.isArray(text) ? text : String(text).split(" "); - return input.map(geeksayPhrase).join(" "); + const input = Array.isArray(text) ? text : String(text).split(" "); + return input.map(geeksayPhrase).join(" "); } function geeksayPhrase(word, index, words) { - const currentWord = removeSymbols(word).toLowerCase(); - if (!words[index + 1]) return geeksayWord(currentWord); - const nextWord = removeSymbols(words[index + 1]).toLowerCase(); - const translatedPhrase = translationsMap.get(currentWord + " " + nextWord); - if (translatedPhrase) { - words.splice(index, 1); - return translatedPhrase; - } - return geeksayWord(currentWord); + const currentWord = removeSymbols(word).toLowerCase(); + if (!words[index + 1]) return geeksayWord(currentWord); + const nextWord = removeSymbols(words[index + 1]).toLowerCase(); + const translatedPhrase = translationsMap.get(currentWord + " " + nextWord); + if (translatedPhrase) { + words.splice(index, 1); + return translatedPhrase; + } + return geeksayWord(currentWord); } function containsSpecialChars(str) { - const specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~a-zA-Z]/; - return specialChars.test(str); + const specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~a-zA-Z]/; + return specialChars.test(str); } function geeksayWord(word) { - // skipping this geekification if the word was already geekified - if ([...translationsMap.values()].includes(word)) return word; - return isNumeric(word) ? handleNumeric(word) : handleText(word); + // skipping this geekification if the word was already geekified + if ([...translationsMap.values()].includes(word)) return word; + return isNumeric(word) ? handleNumeric(word) : handleText(word); } function handleNumeric(word) { - for (var i = 0; i < word.length; i++) { - if (containsSpecialChars(word)) { - return word.toString(2); - } else { - return (word >>> 0).toString(2); + for (var i = 0; i < word.length; i++) { + if (containsSpecialChars(word)) { + return word.toString(2); + } else { + return (word >>> 0).toString(2); + } } - } } function handleText(word) { - return ( - translationsMap.get(removeSymbols(word).toLowerCase()) || word.toLowerCase() - ); + return ( + translationsMap.get(removeSymbols(word).toLowerCase()) || word.toLowerCase() + ); } function removeSymbols(word) { - return word.replace(/(?!\n|\r\n)[^a-zA-Z0-9 ]+/, ""); + return word.replace(/(?!\n|\r\n)[^a-zA-Z0-9 ]+/, ""); } function getRandomTranslation() { - const keys = Object.keys(translations); - const randomKey = keys[Math.floor(Math.random() * keys.length)]; - return "Random Translation: " + randomKey + " -> " + translations[randomKey]; + const keys = Object.keys(translations); + const randomKey = keys[Math.floor(Math.random() * keys.length)]; + return "Random Translation: " + randomKey + " -> " + translations[randomKey]; } function getRandomQuote() { - return quotes[Math.floor(Math.random() * quotes.length)]; + return quotes[Math.floor(Math.random() * quotes.length)]; } -module.exports = geeksay; +module.exports = geeksay; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f99050d..36091e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,915 @@ { "name": "geeksay", "version": "1.2.1", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "1.2.1", + "license": "ISC", + "dependencies": { + "geeksay": "^1.2.1" + }, + "bin": { + "geeksay": "cli.js" + }, + "devDependencies": { + "mocha": "^10.2.0", + "percy": "^5.0.0", + "should": "^13.2.3" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/geeksay": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/geeksay/-/geeksay-1.2.1.tgz", + "integrity": "sha512-lSfmPDBkX/OPCCeeLZBGtGdw/YFhQAC/munXfdxILv37lKcPt/IClQ9lxYzYYc1hBn78KZQ9n92Uxh9LxHY83A==", + "bin": { + "geeksay": "cli.js" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/percy": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/percy/-/percy-5.0.0.tgz", + "integrity": "sha512-/6XM7jd/m61vvTS4KARxvdHFT3kmeXeqxBZ8P8x76aBUXqGLqoRMa8Z/H3gYEzJf1qd9Uqdtcn54UjpJA8P0Dg==", + "dev": true, + "bin": { + "percy": "index.js" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "dev": true + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, "dependencies": { "ansi-colors": { "version": "4.1.1", @@ -238,6 +1145,11 @@ "dev": true, "optional": true }, + "geeksay": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/geeksay/-/geeksay-1.2.1.tgz", + "integrity": "sha512-lSfmPDBkX/OPCCeeLZBGtGdw/YFhQAC/munXfdxILv37lKcPt/IClQ9lxYzYYc1hBn78KZQ9n92Uxh9LxHY83A==" + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", diff --git a/package.json b/package.json index 6cd3f9d..53a097e 100644 --- a/package.json +++ b/package.json @@ -29,5 +29,8 @@ "mocha": "^10.2.0", "percy": "^5.0.0", "should": "^13.2.3" + }, + "dependencies": { + "geeksay": "^1.2.1" } }