[ // Brands "Airbnb", "AirPods", "Amazon", "Android", "Ansible", "AppleScript", "AppVeyor", "Atlassian", "AVA", "AWK", "Azure", "Bash", "Bitbucket", "BrowserStack", "Browsersync", "Cassandra", "CentOS", "ClickHouse", "Cloudflare", "CloudFront", "Codecov", "CodePen", "CodeSandbox", "CoffeeScript", "cURL", "DefinitelyTyped", "Docker", "Dockerfile", "DockerHub", "DuckDuckGo", "EditorConfig", "Elasticsearch", "Electron", "ESLint", "Facebook", "FreeBSD", "Git", "GitHub", "GitLab", "GraphiQL", "GraphQL", "HAProxy", "Homebrew", "IndexedDB", "iOS", "iPad", "iPadOS", "iPhone", "Java", "Jest", "JetBrains", "Jira", "jQuery", "LaTeX", "LinkedIn", "Linux", "Lodash", "MacBook", "Makefile", "Markdown", "Microsoft", "MongoDB", "MySQL", "NixOS", "OpenAPI", "OpenSSH", "OpenSSL", "OpenType", "OpenVPN", "PayPal", "PhpStorm", "PlayStation", "PowerShell", "RubyMine", "SaaS", "Sass", "ScyllaDB", "SemVer", "Slack", "Slurm", "SQLite", "SQLite3", "tvOS", "TypeScript", "Ubuntu", "UglifyJS", "Unicode", "Unix", "W3C", "Wasm", "watchOS", "WebAssembly", "WebStorm", "WordPress", "Xcode", "Yarn", "YouTube", "Zsh", ["Apple[ -]?Script", "AppleScript"], ["Angular[ .]?js", "Angular"], ["AppStore", "App Store"], ["Common[ .]?js", "CommonJS"], ["E[ -]?PUB", "EPUB"], ["Font[ -]?Awesome", "Font Awesome"], ["GitHub[ -]?Action", "GitHub Action"], ["GitHub[ -]?Actions", "GitHub Actions"], ["GitHub[ -]?Copilot", "GitHub Copilot"], ["Golang", "Go"], ["IP[ -]?v4", "IPv4"], ["IP[ -]?v6", "IPv6"], ["Java[ -]?Script", "JavaScript"], ["JSDocs?", "JSDoc"], ["Local[ -]?Storage", "localStorage"], ["MS[ -]?DOS", "MS-DOS"], ["Next[ .]?js", "Next.js"], ["Node[ .]?js", "Node.js"], ["React[ .]?js", "React"], ["Postgres?SQL", "PostgreSQL"], ["SauceLabs", "Sauce Labs"], ["StackExchange", "Stack Exchange"], ["StackOverflow", "Stack Overflow"], ["Sales?forces?", "Salesforce"], ["styled ?components", "styled-components"], ["OS X", "macOS"], ["Mac ?OS", "macOS"], ["Visual ?Studio ?Code", "Visual Studio Code"], ["V[ -]?S[ -]?Code", "Visual Studio Code"], ["a npm", "an npm"], // ECMAScript ["ES6", "ECMAScript 2015"], ["ES7", "ECMAScript 2016"], ["ES2015", "ECMAScript 2015"], ["ES2016", "ECMAScript 2016"], ["ES2017", "ECMAScript 2017"], ["ES2018", "ECMAScript 2018"], ["ES2019", "ECMAScript 2019"], ["ES2020", "ECMAScript 2020"], ["ES2021", "ECMAScript 2021"], ["ES2022", "ECMAScript 2022"], ["ES2023", "ECMAScript 2023"], ["ES2024", "ECMAScript 2024"], ["ES2025", "ECMAScript 2025"], ["ES2026", "ECMAScript 2026"], ["ES2027", "ECMAScript 2027"], ["ES2028", "ECMAScript 2028"], ["ES2029", "ECMAScript 2029"], "ECMAScript", // Abbreviations "3D", ["3-D", "3D"], "Ajax", "API", ["API['’]?s", "APIs"], "ASCII", "CDN", "CORS", "CPU", "CPUs", "CSS", "DevOps", "DNS", "DOM", "FTP", "GIF", "GNU", "GPU", "GPUs", "gRPC", "GUI", "HTML", ["HTTP[ /]2(?:\\.0)?", "HTTP/2"], ["\bHTTP(?!:)", "HTTP"], ["\bHTTPS(?!:)", "HTTPS"], "IDE", "I/O", ["I-O", "I/O"], "IoT", "JPEG", "JSON", "MIME", "MLOps", "OK", "OWASP", "PaaS", "PDF", "PNG", "RESTful", "RSS", "SaaS", "SAML", "SDK", "SFTP", "SQL", "SSH", "SSL", "SVG", "TTL", "URI", "URIs", "URL", ["URL['’]?s", "URLs"], ["an URL", "a URL"], "VPN", ["wi[- ]?fi", "Wi-Fi"], "WYSIWYG", "XML", "XSS", "YAML", "ZIP", // Names "McKenzie", "McConnell", // Words and phrases ["authentificat(ion|e|ed)", "authenticat$1"], "ID", // http://stackoverflow.com/questions/1151338/id-or-id-on-user-interface ["id['’]?s", "IDs"], ["backwards compatible", "backward compatible"], ["blank line(s)?", "empty line$1"], ["build system(s)?", "build tool$1"], ["CLI tool(s)?", "command-line tool$1"], ["function argument(s)?", "function parameter$1"], ["he or she", "they"], ["he/she", "they"], ["\\(s\\)he", "they"], ["indexes\\b", "indices"], ["readme(s)?", "readme$1"], // Don't allow README ["repo\\b", "repository"], ["smartphone(s)?", "mobile phone$1"], // https://stackoverflow.com/questions/44934828/is-it-spread-syntax-or-the-spread-operator ["spread operator", "spread syntax"], ["to-?do(s)?(?=[ ,.])", "todo$1"], // Don't allow TODO ["web[- ]?site(s)?", "site$1"], // Single word ["anti[- ]pattern(s)?", "antipattern$1"], ["auto[- ]complete", "autocomplete"], ["auto[- ]fix", "autofix"], ["auto[- ]fixing", "autofixing"], ["auto[- ]format(ting|ted|ter)?", "autoformat$1"], ["auto[- ]import(s|ed|ing)", "autoimport$1"], ["back[- ]end(\\w*)", "backend$1"], ["bug[- ]fix(es)?", "bugfix$1"], ["change[- ]log(s)?", "changelog$1"], ["check[- ]box(es)?", "checkbox$1"], ["code[- ]base(es)?", "codebase$1"], ["co[- ]locat(ion|ing|e|ed)", "colocate$1"], ["copy[- ]past(e|ed|ing)?", "copypast$1"], ["end[- ]point(s)?", "endpoint$1"], ["e[- ]mail(s)?", "email$1"], ["file[- ]name(s)?", "filename$1"], ["front[- ]end(\\w*)", "frontend$1"], ["hack[- ]a[- ]thon(s)?", "hackathon$1"], ["hard[- ]cod(e|ed|ing)", "hardcod$1"], ["host[- ]name(s)?", "hostname$1"], ["hot[- ]key(s)?", "hotkey$1"], ["life[- ]cycle", "lifecycle"], ["life[- ]stream(s)?", "lifestream$1"], ["lock[- ]file(s)?", "lockfile$1"], ["mark-up", "markup"], // “mark up” as a verb is OK ["meta[- ]data", "metadata"], ["micro[- ]service(s)?", "microservice$1"], ["name[- ]space(s)?", "namespace$1"], ["over[- ]engineer(ing|ed)", "overengineer$1"], ["pre[- ]condition(s)?", "precondition$1"], ["pre[- ]defined", "predefined"], ["pre[- ]fetch(ing|ed)?", "prefetch$1"], ["pre[- ]load(ing|ed)?", "preload$1"], ["pre[- ]release(s)?", "prerelease$1"], ["re[- ]write", "rewrite"], ["re[- ]export(s|ing|ed)?", "reexport$1"], ["run[- ]time", "runtime"], ["screen[- ]shot(s)?", "screenshot$1"], ["screen[- ]?snap(s)?", "screenshot$1"], ["sub[- ]class((?:es|ing)?)", "subclass$1"], ["sub[- ]tree(s)?", "subtree$1"], ["time[- ]stamp(s)?", "timestamp$1"], ["touch[- ]screen(s)?", "touchscreen$1"], ["user[- ]name(s)?", "username$1"], ["walk-through", "walkthrough"], // “walk through” as a verb is OK ["white[- ]space", "whitespace"], ["wild[- ]card(s)?", "wildcard$1"], // Multiple words ["array item(s)?", "array element$1"], ["cheat-?sheet(s)?", "cheat sheet$1"], ["code-?review(s)?", "code review$1"], ["code-?splitting", "code splitting"], ["color-?blind", "color blind"], ["color-?blindness", "color blindness"], ["could-?have(s)?", "could have$1"], ["css-?in-?js", "CSS in JS"], ["end-?user(s)?", "end user$1"], ["file-?type(s)?", "file type$1"], ["lazy-?load(ed|ing)?", "lazy load$1"], ["line-?break(s)?", "line break$1"], ["lint(?:er|ing)?[ -]?error(s)?", "linting error$1"], ["lint(?:er|ing)?[ -]?issue(s)?", "linting issue$1"], ["lint(?:er|ing)?[ -]?rule(s)?", "linter rule$1"], ["lint(?:er|ing)?[ -]?warning(s)?", "linting warning$1"], ["micro-?frontend(s)?", "micro frontend$1"], ["must-?have(s)?", "must have$1"], ["nice-?to-?have(s)?", "nice to have$1"], ["open-?source(ed?)", "open source$1"], ["regexp?(s)?", "regular expression$1"], ["should-?have(s)?", "should have$1"], ["source-?map(s)?", "source map$1"], ["spell-?check(er|ing)?", "spell check$1"], ["style-?guide(s)?", "style guide$1"], ["style-?sheet(s)?", "style sheet$1"], ["tree-?shaking", "tree shaking"], ["user-?base", "user base"], ["web-?page(s)?", "web page$1"], ["won['’]t-?have(s)?", "won’t have$1"], // Hyphenated ["built ?in(s)?", "built-in$1"], ["by ?product(s)?", "by-product$1"], ["client ?side", "client-side"], ["command ?line tool(s)?", "command-line tool$1"], ["double ?click(s)?", "double-click$1"], ["end ?to ?end", "end-to-end"], ["end[- ]?2[- ]?end", "end-to-end"], ["e2e", "end-to-end"], ["error ?prone", "error-prone"], ["higher ?order", "higher-order"], ["key[/ ]?value", "key-value"], ["off ?by ?one", "off-by-one"], ["one ?liner(s)?", "one-liner$1"], ["retr[yi]ability", "retry-ability"], ["self ?documenting", "self-documenting"], ["server ?side", "server-side"], ["trade ?off(s)?", "trade-off$1"], ["two ?steps? authentication", "two-step authentication"], ["two ?steps? verification", "two-step verification"], ["2 ?steps? authentication", "two-step authentication"], ["2 ?steps? verification", "two-step verification"], ["3rd[- ]party", "third-party"], // Starts from a lower case letter in the middle of a sentence ["(?<=(?:\\w+[^.?!])? )base64\\b", "base64"], ["(?<=(?:\\w+[^.?!])? )internet\\b(?! explorer)", "internet"], ["(?<=(?:\\w+[^.?!])? )stylelint\\b", "stylelint"], ["(?<=(?:\\w+[^.?!])? )webpack\\b", "webpack"], ["(?<=(?:\\w+[^.?!])? )npm\\b", "npm"], // Cases ["kebab[_ ]?case", "kebab-case"], ["camel[-_ ]?case", "camelCase"], ["pascal[-_ ]?case", "PascalCase"], ["snake[- ]?case", "snake_case"], ["screaming[- ]?snake[- ]?case", "SCREAMING_SNAKE_CASE"], // Typos ["continues integration", "continuous integration"], ["environemnt(s)?", "environment$1"], ["flacky test(s)?", "flaky test$1"], ["flackyness", "flakiness"], ["pacakge(s)?", "package$1"], ["tilda", "tilde"], ["falsey", "falsy"] ]