Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

laravel-slug

Package Overview
Dependencies
Maintainers
3
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

laravel-slug - npm Package Compare versions

Comparing version 1.1.0 to 1.2.0

README.md

478

index.js

@@ -0,72 +1,418 @@

/**
* Laravel Slug
*
* Scroll to the bottom of the file for the good stuff.
*/
var char_map = {
// Latin
'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç': 'C',
'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I', 'Ï': 'I',
'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': 'O', 'Ő': 'O',
'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH',
// 0
'°': '0', '₀': '0', '۰': '0',
// 1
'¹': '1', '₁': '1', '۱': '1',
// 2
'²': '2', '₂': '2', '۲': '2',
// 3
'³': '3', '₃': '3', '۳': '3',
// 4
'⁴': '4', '₄': '4', '۴': '4', '٤': '4',
// 5
'⁵': '5', '₅': '5', '۵': '5', '٥': '5',
// 6
'⁶': '6', '₆': '6', '۶': '6', '٦': '6',
// 7
'⁷': '7', '₇': '7', '۷': '7',
// 8
'⁸': '8', '₈': '8', '۸': '8',
// 9
'⁹': '9', '₉': '9', '۹': '9',
// a
'à': 'a', 'á': 'a', 'ả': 'a', 'ã': 'a', 'ạ': 'a', 'ă': 'a', 'ắ': 'a',
'ằ': 'a', 'ẳ': 'a', 'ẵ': 'a', 'ặ': 'a', 'â': 'a', 'ấ': 'a', 'ầ': 'a',
'ẩ': 'a', 'ẫ': 'a', 'ậ': 'a', 'ā': 'a', 'ą': 'a', 'å': 'a', 'α': 'a',
'ά': 'a', 'ἀ': 'a', 'ἁ': 'a', 'ἂ': 'a', 'ἃ': 'a', 'ἄ': 'a', 'ἅ': 'a',
'ἆ': 'a', 'ἇ': 'a', 'ᾀ': 'a', 'ᾁ': 'a', 'ᾂ': 'a', 'ᾃ': 'a', 'ᾄ': 'a',
'ᾅ': 'a', 'ᾆ': 'a', 'ᾇ': 'a', 'ὰ': 'a', 'ά': 'a', 'ᾰ': 'a', 'ᾱ': 'a',
'ᾲ': 'a', 'ᾳ': 'a', 'ᾴ': 'a', 'ᾶ': 'a', 'ᾷ': 'a', 'а': 'a', 'أ': 'a',
'အ': 'a', 'ာ': 'a', 'ါ': 'a', 'ǻ': 'a', 'ǎ': 'a', 'ª': 'a', 'ა': 'a',
'अ': 'a', 'ا': 'a',
// b
'б': 'b', 'β': 'b', 'Ъ': 'b', 'Ь': 'b', 'ب': 'b', 'ဗ': 'b', 'ბ': 'b',
// c
'ç': 'c', 'ć': 'c', 'č': 'c', 'ĉ': 'c', 'ċ': 'c',
// d
'ď': 'd', 'ð': 'd', 'đ': 'd', 'ƌ': 'd', 'ȡ': 'd', 'ɖ': 'd', 'ɗ': 'd',
'ᵭ': 'd', 'ᶁ': 'd', 'ᶑ': 'd', 'д': 'd', 'δ': 'd', 'ض': 'd', 'د': 'd',
'ဍ': 'd', 'ဒ': 'd', 'დ': 'd',
// e
'é': 'e', 'è': 'e', 'ẻ': 'e', 'ẽ': 'e', 'ẹ': 'e', 'ê': 'e', 'ế': 'e',
'ề': 'e', 'ể': 'e', 'ễ': 'e', 'ệ': 'e', 'ë': 'e', 'ē': 'e', 'ę': 'e',
'ě': 'e', 'ĕ': 'e', 'ė': 'e', 'ε': 'e', 'έ': 'e', 'ἐ': 'e', 'ἑ': 'e',
'ἒ': 'e', 'ἓ': 'e', 'ἔ': 'e', 'ἕ': 'e', 'ὲ': 'e', 'έ': 'e', 'е': 'e',
'ё': 'e', 'э': 'e', 'є': 'e', 'ə': 'e', 'ဧ': 'e', 'ေ': 'e', 'ဲ': 'e',
'ე': 'e', 'ए': 'e', 'ئ': 'e', 'إ': 'e',
// f
'ф': 'f', 'φ': 'f', 'ف': 'f', 'ƒ': 'f', 'ფ': 'f',
// g
'ĝ': 'g', 'ğ': 'g', 'ġ': 'g', 'ģ': 'g', 'г': 'g', 'ґ': 'g', 'γ': 'g',
'ဂ': 'g', 'გ': 'g', 'گ': 'g',
// h
'ĥ': 'h', 'ħ': 'h', 'η': 'h', 'ή': 'h', 'ه': 'h', 'ح': 'h', 'ဟ': 'h',
'ှ': 'h', 'ჰ': 'h',
// i
'í': 'i', 'ì': 'i', 'ỉ': 'i', 'ĩ': 'i', 'ị': 'i', 'î': 'i', 'ï': 'i',
'ī': 'i', 'ĭ': 'i', 'į': 'i', 'ı': 'i', 'ι': 'i', 'ί': 'i', 'ϊ': 'i',
'ΐ': 'i', 'ἰ': 'i', 'ἱ': 'i', 'ἲ': 'i', 'ἳ': 'i', 'ἴ': 'i', 'ἵ': 'i',
'ἶ': 'i', 'ἷ': 'i', 'ὶ': 'i', 'ί': 'i', 'ῐ': 'i', 'ῑ': 'i', 'ῒ': 'i',
'ΐ': 'i', 'ῖ': 'i', 'ῗ': 'i', 'і': 'i', 'ї': 'i', 'и': 'i', 'ဣ': 'i',
'ိ': 'i', 'ီ': 'i', 'ည်': 'i', 'ǐ': 'i', 'ი': 'i', 'इ': 'i',
// j
'ĵ': 'j', 'ј': 'j', 'Ј': 'j', 'ჯ': 'j', 'ج': 'j',
// k
'ķ': 'k', 'ĸ': 'k', 'к': 'k', 'κ': 'k', 'Ķ': 'k', 'ك': 'k', 'ك': 'k',
'က': 'k', 'კ': 'k', 'ქ': 'k', 'ک': 'k',
// l
'ł': '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', 'ნ': 'n',
// o
'ó': 'o', 'ò': 'o', 'ỏ': 'o', 'õ': 'o', 'ọ': 'o', 'ô': 'o', 'ố': 'o',
'ồ': 'o', 'ổ': 'o', 'ỗ': 'o', 'ộ': 'o', 'ơ': 'o', 'ớ': 'o', 'ờ': 'o',
'ở': 'o', 'ỡ': 'o', 'ợ': 'o', 'ø': 'o', 'ō': 'o', 'ő': 'o', 'ŏ': 'o',
'ο': 'o', 'ὀ': 'o', 'ὁ': 'o', 'ὂ': 'o', 'ὃ': 'o', 'ὄ': 'o', 'ὅ': 'o',
'ὸ': 'o', 'ό': 'o', 'о': 'o', 'و': 'o', 'θ': 'o', 'ို': 'o', 'ǒ': 'o',
'ǿ': 'o', 'º': 'o', 'ო': 'o', 'ओ': 'o',
// p
'п': 'p', 'π': 'p', 'ပ': 'p', 'პ': 'p', 'پ': 'p',
// q
'ყ': 'q',
// r
'ŕ': 'r', 'ř': 'r', 'ŗ': 'r', 'р': 'r', 'ρ': 'r', 'ر': 'r', 'რ': 'r',
// s
'ś': 's', 'š': 's', 'ş': 's', 'с': 's', 'σ': 's', 'ș': 's', 'ς': 's',
'ص': 's', 'س': 's', 'စ': 's', 'ſ': 's', 'ს': 's',
// t
'ť': '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', 'ů': 'u',
'ű': 'u', 'ŭ': 'u', 'ų': 'u', 'µ': 'u', 'у': 'u', 'ဉ': 'u', 'ု': 'u',
'ူ': 'u', 'ǔ': 'u', 'ǖ': 'u', 'ǘ': 'u', 'ǚ': 'u', 'ǜ': 'u', 'უ': 'u',
'उ': 'u',
// v
'в': 'v', 'ვ': 'v', 'ϐ': 'v',
// w
'ŵ': 'w', 'ω': 'w', 'ώ': 'w', 'ဝ': 'w', 'ွ': 'w',
// x
'χ': 'x', 'ξ': 'x',
// y
'ý': 'y', 'ỳ': 'y', 'ỷ': 'y', 'ỹ': 'y', 'ỵ': 'y', 'ÿ': 'y', 'ŷ': 'y',
'й': 'y', 'ы': 'y', 'υ': 'y', 'ϋ': 'y', 'ύ': 'y', 'ΰ': 'y', 'ي': 'y',
'ယ': 'y',
// z
'ź': 'z', 'ž': 'z', 'ż': 'z', 'з': 'z', 'ζ': 'z', 'ز': 'z', 'ဇ': 'z',
'ზ': 'z',
// aa
'ع': 'aa', 'आ': 'aa', 'آ': 'aa',
// ae
'ä': 'ae', 'æ': 'ae', 'ǽ': 'ae',
// ai
'ऐ': 'ai',
// at
'@': 'at',
// ch
'ч': 'ch', 'ჩ': 'ch', 'ჭ': 'ch', 'چ': 'ch',
// dj
'ђ': 'dj', 'đ': 'dj',
// dz
'џ': 'dz', 'ძ': 'dz',
// ei
'ऍ': 'ei',
// gh
'غ': 'gh', 'ღ': 'gh',
// ii
'ई': 'ii',
// ij
'ij': 'ij',
// kh
'х': 'kh', 'خ': 'kh', 'ხ': 'kh',
// lj
'љ': 'lj',
// nj
'њ': 'nj',
// oe
'ö': 'oe', 'œ': 'oe', 'ؤ': 'oe',
// oi
'ऑ': 'oi',
// oii
'ऒ': 'oii',
// ps
'ψ': 'ps',
// sh
'ш': 'sh', 'შ': 'sh', 'ش': 'sh',
// shch
'щ': 'shch',
// ss
'ß': 'ss',
'à': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c',
'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i',
'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o',
'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th',
'ÿ': 'y',
// Latin symbols
'©': '(c)',
// sx
'ŝ': 'sx',
// Greek
'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', 'Η': 'H', 'Θ': '8',
'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', 'Ξ': '3', 'Ο': 'O', 'Π': 'P',
'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W',
'Ά': 'A', 'Έ': 'E', 'Ί': 'I', 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I',
'Ϋ': 'Y',
'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', 'θ': '8',
'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', 'ο': 'o', 'π': 'p',
'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', 'χ': 'x', 'ψ': 'ps', 'ω': 'w',
'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's',
'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', 'ΐ': 'i',
// th
'þ': 'th', 'ϑ': 'th', 'ظ': 'th', 'ذ': 'th', 'ث': 'th',
// Turkish
'Ş': 'S', 'İ': 'I', 'Ç': 'C', 'Ü': 'U', 'Ö': 'O', 'Ğ': 'G',
'ş': 's', 'ı': 'i', 'ç': 'c', 'ü': 'u', 'ö': 'o', 'ğ': 'g',
// ts
'ц': 'ts', 'ც': 'ts', 'წ': 'ts',
// Russian
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', 'Ж': 'Zh',
'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', 'О': 'O',
'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C',
'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu',
'Я': 'Ya',
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', 'ж': 'zh',
'з': 'z', 'и': 'i', 'й': 'y', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o',
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'ts',
'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu',
// ue
'ü': 'ue',
// uu
'ऊ': 'uu',
// ya
'я': 'ya',
// Ukrainian
'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G',
'є': 'ye', 'і': 'i', 'ї': 'yi', 'ґ': 'g',
// yu
'ю': 'yu',
// Czech
'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', 'Š': 'S', 'Ť': 'T', 'Ů': 'U',
'Ž': 'Z',
'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', 'ů': 'u',
'ž': 'z',
// zh
'ж': 'zh', 'ჟ': 'zh', 'ژ': 'zh',
// Polish
'Ą': 'A', 'Ć': 'C', 'Ę': 'e', 'Ł': 'L', 'Ń': 'N', 'Ó': 'o', 'Ś': 'S', 'Ź': 'Z',
'Ż': 'Z',
'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z',
'ż': 'z',
// (c)
'©': '(c)',
// Latvian
'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'i', 'Ķ': 'k', 'Ļ': 'L', 'Ņ': 'N',
'Š': 'S', 'Ū': 'u', 'Ž': 'Z',
'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', 'ņ': 'n',
'š': 's', 'ū': 'u', 'ž': 'z',
// A
'Á': 'A', 'À': 'A', 'Ả': 'A', 'Ã': 'A', 'Ạ': 'A', 'Ă': 'A', 'Ắ': 'A',
'Ằ': 'A', 'Ẳ': 'A', 'Ẵ': 'A', 'Ặ': 'A', 'Â': 'A', 'Ấ': 'A', 'Ầ': 'A',
'Ẩ': 'A', 'Ẫ': 'A', 'Ậ': 'A', 'Å': 'A', 'Ā': 'A', 'Ą': 'A', 'Α': 'A',
'Ά': 'A', 'Ἀ': 'A', 'Ἁ': 'A', 'Ἂ': 'A', 'Ἃ': 'A', 'Ἄ': 'A', 'Ἅ': 'A',
'Ἆ': 'A', 'Ἇ': 'A', 'ᾈ': 'A', 'ᾉ': 'A', 'ᾊ': 'A', 'ᾋ': 'A', 'ᾌ': 'A',
'ᾍ': 'A', 'ᾎ': 'A', 'ᾏ': 'A', 'Ᾰ': 'A', 'Ᾱ': 'A', 'Ὰ': 'A', 'Ά': 'A',
'ᾼ': 'A', 'А': 'A', 'Ǻ': 'A', 'Ǎ': 'A',
// B
'Б': 'B', 'Β': 'B', 'ब': 'B',
// C
'Ç': 'C', 'Ć': 'C', 'Č': 'C', 'Ĉ': 'C', 'Ċ': 'C',
// D
'Ď': 'D', 'Ð': 'D', 'Đ': 'D', 'Ɖ': 'D', 'Ɗ': 'D', 'Ƌ': 'D', 'ᴅ': 'D',
'ᴆ': 'D', 'Д': 'D', 'Δ': 'D',
// E
'É': 'E', 'È': 'E', 'Ẻ': 'E', 'Ẽ': 'E', 'Ẹ': 'E', 'Ê': 'E', 'Ế': 'E',
'Ề': 'E', 'Ể': 'E', 'Ễ': 'E', 'Ệ': 'E', 'Ë': 'E', 'Ē': 'E', 'Ę': 'E',
'Ě': 'E', 'Ĕ': 'E', 'Ė': 'E', 'Ε': 'E', 'Έ': 'E', 'Ἐ': 'E', 'Ἑ': 'E',
'Ἒ': 'E', 'Ἓ': 'E', 'Ἔ': 'E', 'Ἕ': 'E', 'Έ': 'E', 'Ὲ': 'E', 'Е': 'E',
'Ё': 'E', 'Э': 'E', 'Є': 'E', 'Ə': 'E',
// F
'Ф': 'F', 'Φ': 'F',
// G
'Ğ': 'G', 'Ġ': 'G', 'Ģ': 'G', 'Г': 'G', 'Ґ': 'G', 'Γ': 'G',
// H
'Η': 'H', 'Ή': 'H', 'Ħ': 'H',
// I
'Í': 'I', 'Ì': 'I', 'Ỉ': 'I', 'Ĩ': 'I', 'Ị': 'I', 'Î': 'I', 'Ï': 'I',
'Ī': 'I', 'Ĭ': 'I', 'Į': 'I', 'İ': 'I', 'Ι': 'I', 'Ί': 'I', 'Ϊ': 'I',
'Ἰ': 'I', 'Ἱ': 'I', 'Ἳ': 'I', 'Ἴ': 'I', 'Ἵ': 'I', 'Ἶ': 'I', 'Ἷ': 'I',
'Ῐ': 'I', 'Ῑ': 'I', 'Ὶ': 'I', 'Ί': 'I', 'И': 'I', 'І': 'I', 'Ї': 'I',
'Ǐ': 'I', 'ϒ': 'I',
// K
'К': 'K', 'Κ': 'K',
// L
'Ĺ': 'L', 'Ł': 'L', 'Л': 'L', 'Λ': 'L', 'Ļ': 'L', 'Ľ': 'L', 'Ŀ': 'L',
'ल': 'L',
// M
'М': 'M', 'Μ': 'M',
// N
'Ń': 'N', 'Ñ': 'N', 'Ň': 'N', 'Ņ': 'N', 'Ŋ': 'N', 'Н': 'N', 'Ν': 'N',
// O
'Ó': 'O', 'Ò': 'O', 'Ỏ': 'O', 'Õ': 'O', 'Ọ': 'O', 'Ô': 'O', 'Ố': 'O',
'Ồ': 'O', 'Ổ': 'O', 'Ỗ': 'O', 'Ộ': 'O', 'Ơ': 'O', 'Ớ': 'O', 'Ờ': 'O',
'Ở': 'O', 'Ỡ': 'O', 'Ợ': 'O', 'Ø': 'O', 'Ō': 'O', 'Ő': 'O', 'Ŏ': 'O',
'Ο': 'O', 'Ό': 'O', 'Ὀ': 'O', 'Ὁ': 'O', 'Ὂ': 'O', 'Ὃ': 'O', 'Ὄ': 'O',
'Ὅ': 'O', 'Ὸ': 'O', 'Ό': 'O', 'О': 'O', 'Θ': 'O', 'Ө': 'O', 'Ǒ': 'O',
'Ǿ': 'O',
// P
'П': 'P', 'Π': 'P',
// R
'Ř': 'R', 'Ŕ': 'R', 'Р': 'R', 'Ρ': 'R', 'Ŗ': 'R',
// S
'Ş': 'S', 'Ŝ': 'S', 'Ș': 'S', 'Š': 'S', 'Ś': 'S', 'С': 'S', 'Σ': 'S',
// T
'Ť': 'T', 'Ţ': 'T', 'Ŧ': 'T', 'Ț': 'T', 'Т': 'T', 'Τ': 'T',
// U
'Ú': 'U', 'Ù': 'U', 'Ủ': 'U', 'Ũ': 'U', 'Ụ': 'U', 'Ư': 'U', 'Ứ': 'U',
'Ừ': 'U', 'Ử': 'U', 'Ữ': 'U', 'Ự': 'U', 'Û': 'U', 'Ū': 'U', 'Ů': 'U',
'Ű': 'U', 'Ŭ': 'U', 'Ų': 'U', 'У': 'U', 'Ǔ': 'U', 'Ǖ': 'U', 'Ǘ': 'U',
'Ǚ': 'U', 'Ǜ': 'U',
// V
'В': 'V',
// W
'Ω': 'W', 'Ώ': 'W', 'Ŵ': 'W',
// X
'Χ': 'X', 'Ξ': 'X',
// Y
'Ý': 'Y', 'Ỳ': 'Y', 'Ỷ': 'Y', 'Ỹ': 'Y', 'Ỵ': 'Y', 'Ÿ': 'Y', 'Ῠ': 'Y',
'Ῡ': 'Y', 'Ὺ': 'Y', 'Ύ': 'Y', 'Ы': 'Y', 'Й': 'Y', 'Υ': 'Y', 'Ϋ': 'Y',
'Ŷ': 'Y',
// Z
'Ź': 'Z', 'Ž': 'Z', 'Ż': 'Z', 'З': 'Z', 'Ζ': 'Z',
// AE
'Ä': 'AE', 'Æ': 'AE', 'Ǽ': 'AE',
// CH
'Ч': 'CH',
// DJ
'Ђ': 'DJ',
// DZ
'Џ': 'DZ',
// GX
'Ĝ': 'GX',
// HX
'Ĥ': 'HX',
// IJ
'IJ': 'IJ',
// JX
'Ĵ': 'JX',
// KH
'Х': 'KH',
// LJ
'Љ': 'LJ',
// NJ
'Њ': 'NJ',
// OE
'Ö': 'OE', 'Œ': 'OE',
// PS
'Ψ': 'PS',
// SH
'Ш': 'SH',
// SHCH
'Щ': 'SHCH',
// SS
'ẞ': 'SS',
// TH
'Þ': 'TH',
// TS
'Ц': 'TS',
// UE
'Ü': 'UE',
// YA
'Я': 'YA',
// YU
'Ю': 'YU',
// ZH
'Ж': 'ZH',
// Spaces
' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ',
' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ',
' ': ' ',
};
// Instantiated here for performance
var char_regex = RegExp("("+Object.keys(char_map).join('|')+")", 'g');
module.exports = function url_slug(s, opt)
{
module.exports = function (s, opt) {
s = String(s);

@@ -100,16 +446,24 @@ opt = Object(opt);

// Replace non-alphanumeric characters with our delimiter
var alnum = RegExp('[^a-z0-9]+', 'ig');
s = s.replace(alnum, opt.delimiter);
// Convert all dashes/underscores into separator
var underscores = RegExp('\_', 'ig');
s = s.replace(underscores, opt.delimiter);
// Remove all characters that are not the separator, letters, numbers, or whitespace
var alnum = RegExp('[^' + opt.delimiter + '\\d\\w\\s]+', 'ig');
s = s.replace(alnum, '');
// Replace all separator characters and whitespace by a single separator
var spaces = RegExp('[' + opt.delimiter + '\\s]+', 'ig');
s = s.replace(spaces, opt.delimiter);
// Remove duplicate delimiters
s = s.replace(RegExp('[' + opt.delimiter + ']{2,}', 'g'), opt.delimiter);
// Truncate slug to max. characters
s = s.substring(0, opt.limit);
// Remove delimiter from ends
s = s.replace(RegExp('(^' + opt.delimiter + '|' + opt.delimiter + '$)', 'g'), '');
// Truncate slug to max characters
s = s.substring(0, opt.limit);
return opt.lowercase ? s.toLowerCase() : s;
}

2

package.json
{
"name": "laravel-slug",
"version": "1.1.0",
"version": "1.2.0",
"description": "Tries to mimick the slugs produced by Laravel",

@@ -5,0 +5,0 @@ "main": "index.js",

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