UNPKG

kuroshiro-enhance

Version:

kuroshiro is a Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.

3 lines 23.4 kB
var h={NIPPON:"nippon",PASSPORT:"passport",HEPBURN:"hepburn"},T=function(i){return i=i[0],i>="\u3040"&&i<="\u309F"},b=function(i){return i=i[0],i>="\u30A0"&&i<="\u30FF"},A=function(i){return T(i)||b(i)},k=function(i){return i=i[0],i>="\u4E00"&&i<="\u9FCF"||i>="\uF900"&&i<="\uFAFF"||i>="\u3400"&&i<="\u4DBF"},R=function(i){return A(i)||k(i)},K=function(i){for(let a=0;a<i.length;a++)if(T(i[a]))return true;return false},N=function(i){for(let a=0;a<i.length;a++)if(b(i[a]))return true;return false},P=function(i){for(let a=0;a<i.length;a++)if(A(i[a]))return true;return false},v=function(i){for(let a=0;a<i.length;a++)if(k(i[a]))return true;return false},z=function(i){for(let a=0;a<i.length;a++)if(R(i[a]))return true;return false},d=function(i){return [...i].map(a=>a>"\u30A0"&&a<"\u30F7"?String.fromCharCode(a.charCodeAt(0)+-96):a).join("")},p=function(i){return [...i].map(a=>a>"\u3040"&&a<"\u3097"?String.fromCharCode(a.charCodeAt(0)+96):a).join("")},j=function(i,a){a=a||h.HEPBURN;let e={nippon:{"\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\uFF10":"0","\uFF01":"!","\u201C":'"',"\u201D":'"',"\uFF03":"#","\uFF04":"$","\uFF05":"%","\uFF06":"&","\u2019":"'","\uFF08":"(","\uFF09":")","\uFF1D":"=","\uFF5E":"~","\uFF5C":"|","\uFF20":"@","\u2018":"`","\uFF0B":"+","\uFF0A":"*","\uFF1B":";","\uFF1A":":","\uFF1C":"<","\uFF1E":">","\u3001":",","\u3002":".","\uFF0F":"/","\uFF1F":"?","\uFF3F":"_","\u30FB":"\uFF65","\u300C":'"',"\u300D":'"',"\uFF5B":"{","\uFF5D":"}","\uFFE5":"\\","\uFF3E":"^",\u3042:"a",\u3044:"i",\u3046:"u",\u3048:"e",\u304A:"o",\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u304B:"ka",\u304D:"ki",\u304F:"ku",\u3051:"ke",\u3053:"ko",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u3055:"sa",\u3057:"si",\u3059:"su",\u305B:"se",\u305D:"so",\u30B5:"sa",\u30B7:"si",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u305F:"ta",\u3061:"ti",\u3064:"tu",\u3066:"te",\u3068:"to",\u30BF:"ta",\u30C1:"ti",\u30C4:"tu",\u30C6:"te",\u30C8:"to",\u306A:"na",\u306B:"ni",\u306C:"nu",\u306D:"ne",\u306E:"no",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u306F:"ha",\u3072:"hi",\u3075:"hu",\u3078:"he",\u307B:"ho",\u30CF:"ha",\u30D2:"hi",\u30D5:"hu",\u30D8:"he",\u30DB:"ho",\u307E:"ma",\u307F:"mi",\u3080:"mu",\u3081:"me",\u3082:"mo",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u3084:"ya",\u3086:"yu",\u3088:"yo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u3089:"ra",\u308A:"ri",\u308B:"ru",\u308C:"re",\u308D:"ro",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u308F:"wa",\u3090:"wi",\u3091:"we",\u3092:"wo",\u30EF:"wa",\u30F0:"wi",\u30F1:"we",\u30F2:"wo",\u304C:"ga",\u304E:"gi",\u3050:"gu",\u3052:"ge",\u3054:"go",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u3056:"za",\u3058:"zi",\u305A:"zu",\u305C:"ze",\u305E:"zo",\u30B6:"za",\u30B8:"zi",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u3060:"da",\u3062:"di",\u3065:"du",\u3067:"de",\u3069:"do",\u30C0:"da",\u30C2:"di",\u30C5:"du",\u30C7:"de",\u30C9:"do",\u3070:"ba",\u3073:"bi",\u3076:"bu",\u3079:"be",\u307C:"bo",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u3071:"pa",\u3074:"pi",\u3077:"pu",\u307A:"pe",\u307D:"po",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u304D\u3083:"kya",\u304D\u3085:"kyu",\u304D\u3087:"kyo",\u3057\u3083:"sya",\u3057\u3085:"syu",\u3057\u3087:"syo",\u3061\u3083:"tya",\u3061\u3085:"tyu",\u3061\u3087:"tyo",\u306B\u3083:"nya",\u306B\u3085:"nyu",\u306B\u3087:"nyo",\u3072\u3083:"hya",\u3072\u3085:"hyu",\u3072\u3087:"hyo",\u307F\u3083:"mya",\u307F\u3085:"myu",\u307F\u3087:"myo",\u308A\u3083:"rya",\u308A\u3085:"ryu",\u308A\u3087:"ryo",\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30B7\u30E3:"sya",\u30B7\u30E5:"syu",\u30B7\u30E7:"syo",\u30C1\u30E3:"tya",\u30C1\u30E5:"tyu",\u30C1\u30E7:"tyo",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u304E\u3083:"gya",\u304E\u3085:"gyu",\u304E\u3087:"gyo",\u3058\u3083:"zya",\u3058\u3085:"zyu",\u3058\u3087:"zyo",\u3062\u3083:"dya",\u3062\u3085:"dyu",\u3062\u3087:"dyo",\u3073\u3083:"bya",\u3073\u3085:"byu",\u3073\u3087:"byo",\u3074\u3083:"pya",\u3074\u3085:"pyu",\u3074\u3087:"pyo",\u304F\u308E:"kwa",\u3050\u308E:"gwa",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B8\u30E3:"zya",\u30B8\u30E5:"zyu",\u30B8\u30E7:"zyo",\u30C2\u30E3:"dya",\u30C2\u30E5:"dyu",\u30C2\u30E7:"dyo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u30AF\u30EE:"kwa",\u30B0\u30EE:"gwa",\u3041:"a",\u3043:"i",\u3045:"u",\u3047:"e",\u3049:"o",\u3083:"ya",\u3085:"yu",\u3087:"yo",\u308E:"wa",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo",\u30EE:"wa",\u30F5:"ka",\u30F6:"ke",\u3093:"n",\u30F3:"n","\u3000":" ",\u3044\u3047:"ye",\u304D\u3047:"kye",\u304F\u3043:"kwi",\u304F\u3047:"kwe",\u304F\u3049:"kwo",\u3050\u3043:"gwi",\u3050\u3047:"gwe",\u3050\u3049:"gwo",\u30A4\u30A7:"ye",\u30AD\u30A7:"kye",\u30AF\u30A3:"kwi",\u30AF\u30A7:"kwe",\u30AF\u30A9:"kwo",\u30B0\u30A3:"gwi",\u30B0\u30A7:"gwe",\u30B0\u30A9:"gwo",\u3057\u3047:"sye",\u3058\u3047:"zye",\u3059\u3043:"swi",\u305A\u3043:"zwi",\u3061\u3047:"tye",\u3064\u3041:"twa",\u3064\u3043:"twi",\u3064\u3047:"twe",\u3064\u3049:"two",\u306B\u3047:"nye",\u3072\u3047:"hye",\u3075\u3041:"hwa",\u3075\u3043:"hwi",\u3075\u3047:"hwe",\u3075\u3049:"hwo",\u3075\u3085:"hwyu",\u3075\u3087:"hwyo",\u30B7\u30A7:"sye",\u30B8\u30A7:"zye",\u30B9\u30A3:"swi",\u30BA\u30A3:"zwi",\u30C1\u30A7:"tye",\u30C4\u30A1:"twa",\u30C4\u30A3:"twi",\u30C4\u30A7:"twe",\u30C4\u30A9:"two",\u30CB\u30A7:"nye",\u30D2\u30A7:"hye",\u30D5\u30A1:"hwa",\u30D5\u30A3:"hwi",\u30D5\u30A7:"hwe",\u30D5\u30A9:"hwo",\u30D5\u30E5:"hwyu",\u30D5\u30E7:"hwyo"},passport:{"\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\uFF10":"0","\uFF01":"!","\u201C":'"',"\u201D":'"',"\uFF03":"#","\uFF04":"$","\uFF05":"%","\uFF06":"&","\u2019":"'","\uFF08":"(","\uFF09":")","\uFF1D":"=","\uFF5E":"~","\uFF5C":"|","\uFF20":"@","\u2018":"`","\uFF0B":"+","\uFF0A":"*","\uFF1B":";","\uFF1A":":","\uFF1C":"<","\uFF1E":">","\u3001":",","\u3002":".","\uFF0F":"/","\uFF1F":"?","\uFF3F":"_","\u30FB":"\uFF65","\u300C":'"',"\u300D":'"',"\uFF5B":"{","\uFF5D":"}","\uFFE5":"\\","\uFF3E":"^",\u3042:"a",\u3044:"i",\u3046:"u",\u3048:"e",\u304A:"o",\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u304B:"ka",\u304D:"ki",\u304F:"ku",\u3051:"ke",\u3053:"ko",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u3055:"sa",\u3057:"shi",\u3059:"su",\u305B:"se",\u305D:"so",\u30B5:"sa",\u30B7:"shi",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u305F:"ta",\u3061:"chi",\u3064:"tsu",\u3066:"te",\u3068:"to",\u30BF:"ta",\u30C1:"chi",\u30C4:"tsu",\u30C6:"te",\u30C8:"to",\u306A:"na",\u306B:"ni",\u306C:"nu",\u306D:"ne",\u306E:"no",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u306F:"ha",\u3072:"hi",\u3075:"fu",\u3078:"he",\u307B:"ho",\u30CF:"ha",\u30D2:"hi",\u30D5:"fu",\u30D8:"he",\u30DB:"ho",\u307E:"ma",\u307F:"mi",\u3080:"mu",\u3081:"me",\u3082:"mo",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u3084:"ya",\u3086:"yu",\u3088:"yo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u3089:"ra",\u308A:"ri",\u308B:"ru",\u308C:"re",\u308D:"ro",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u308F:"wa",\u3090:"i",\u3091:"e",\u3092:"o",\u30EF:"wa",\u30F0:"i",\u30F1:"e",\u30F2:"o",\u304C:"ga",\u304E:"gi",\u3050:"gu",\u3052:"ge",\u3054:"go",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u3056:"za",\u3058:"ji",\u305A:"zu",\u305C:"ze",\u305E:"zo",\u30B6:"za",\u30B8:"ji",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u3060:"da",\u3062:"ji",\u3065:"zu",\u3067:"de",\u3069:"do",\u30C0:"da",\u30C2:"ji",\u30C5:"zu",\u30C7:"de",\u30C9:"do",\u3070:"ba",\u3073:"bi",\u3076:"bu",\u3079:"be",\u307C:"bo",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u3071:"pa",\u3074:"pi",\u3077:"pu",\u307A:"pe",\u307D:"po",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u304D\u3083:"kya",\u304D\u3085:"kyu",\u304D\u3087:"kyo",\u3057\u3083:"sha",\u3057\u3085:"shu",\u3057\u3087:"sho",\u3061\u3083:"cha",\u3061\u3085:"chu",\u3061\u3087:"cho",\u306B\u3083:"nya",\u306B\u3085:"nyu",\u306B\u3087:"nyo",\u3072\u3083:"hya",\u3072\u3085:"hyu",\u3072\u3087:"hyo",\u307F\u3083:"mya",\u307F\u3085:"myu",\u307F\u3087:"myo",\u308A\u3083:"rya",\u308A\u3085:"ryu",\u308A\u3087:"ryo",\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30B7\u30E3:"sha",\u30B7\u30E5:"shu",\u30B7\u30E7:"sho",\u30C1\u30E3:"cha",\u30C1\u30E5:"chu",\u30C1\u30E7:"cho",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u304E\u3083:"gya",\u304E\u3085:"gyu",\u304E\u3087:"gyo",\u3058\u3083:"ja",\u3058\u3085:"ju",\u3058\u3087:"jo",\u3062\u3083:"ja",\u3062\u3085:"ju",\u3062\u3087:"jo",\u3073\u3083:"bya",\u3073\u3085:"byu",\u3073\u3087:"byo",\u3074\u3083:"pya",\u3074\u3085:"pyu",\u3074\u3087:"pyo",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B8\u30E3:"ja",\u30B8\u30E5:"ju",\u30B8\u30E7:"jo",\u30C2\u30E3:"ja",\u30C2\u30E5:"ju",\u30C2\u30E7:"jo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u3041:"a",\u3043:"i",\u3045:"u",\u3047:"e",\u3049:"o",\u3083:"ya",\u3085:"yu",\u3087:"yo",\u308E:"wa",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo",\u30EE:"wa",\u30F5:"ka",\u30F6:"ke",\u3093:"n",\u30F3:"n","\u3000":" ",\u30F4:"b"},hepburn:{"\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\uFF10":"0","\uFF01":"!","\u201C":'"',"\u201D":'"',"\uFF03":"#","\uFF04":"$","\uFF05":"%","\uFF06":"&","\u2019":"'","\uFF08":"(","\uFF09":")","\uFF1D":"=","\uFF5E":"~","\uFF5C":"|","\uFF20":"@","\u2018":"`","\uFF0B":"+","\uFF0A":"*","\uFF1B":";","\uFF1A":":","\uFF1C":"<","\uFF1E":">","\u3001":",","\u3002":".","\uFF0F":"/","\uFF1F":"?","\uFF3F":"_","\u30FB":"\uFF65","\u300C":'"',"\u300D":'"',"\uFF5B":"{","\uFF5D":"}","\uFFE5":"\\","\uFF3E":"^",\u3042:"a",\u3044:"i",\u3046:"u",\u3048:"e",\u304A:"o",\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u304B:"ka",\u304D:"ki",\u304F:"ku",\u3051:"ke",\u3053:"ko",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u3055:"sa",\u3057:"shi",\u3059:"su",\u305B:"se",\u305D:"so",\u30B5:"sa",\u30B7:"shi",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u305F:"ta",\u3061:"chi",\u3064:"tsu",\u3066:"te",\u3068:"to",\u30BF:"ta",\u30C1:"chi",\u30C4:"tsu",\u30C6:"te",\u30C8:"to",\u306A:"na",\u306B:"ni",\u306C:"nu",\u306D:"ne",\u306E:"no",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u306F:"ha",\u3072:"hi",\u3075:"fu",\u3078:"he",\u307B:"ho",\u30CF:"ha",\u30D2:"hi",\u30D5:"fu",\u30D8:"he",\u30DB:"ho",\u307E:"ma",\u307F:"mi",\u3080:"mu",\u3081:"me",\u3082:"mo",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u3084:"ya",\u3086:"yu",\u3088:"yo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u3089:"ra",\u308A:"ri",\u308B:"ru",\u308C:"re",\u308D:"ro",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u308F:"wa",\u3090:"i",\u3091:"e",\u3092:"o",\u30EF:"wa",\u30F0:"i",\u30F1:"e",\u30F2:"o",\u304C:"ga",\u304E:"gi",\u3050:"gu",\u3052:"ge",\u3054:"go",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u3056:"za",\u3058:"ji",\u305A:"zu",\u305C:"ze",\u305E:"zo",\u30B6:"za",\u30B8:"ji",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u3060:"da",\u3062:"ji",\u3065:"zu",\u3067:"de",\u3069:"do",\u30C0:"da",\u30C2:"ji",\u30C5:"zu",\u30C7:"de",\u30C9:"do",\u3070:"ba",\u3073:"bi",\u3076:"bu",\u3079:"be",\u307C:"bo",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u3071:"pa",\u3074:"pi",\u3077:"pu",\u307A:"pe",\u307D:"po",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u304D\u3083:"kya",\u304D\u3085:"kyu",\u304D\u3087:"kyo",\u3057\u3083:"sha",\u3057\u3085:"shu",\u3057\u3087:"sho",\u3061\u3083:"cha",\u3061\u3085:"chu",\u3061\u3087:"cho",\u306B\u3083:"nya",\u306B\u3085:"nyu",\u306B\u3087:"nyo",\u3072\u3083:"hya",\u3072\u3085:"hyu",\u3072\u3087:"hyo",\u307F\u3083:"mya",\u307F\u3085:"myu",\u307F\u3087:"myo",\u308A\u3083:"rya",\u308A\u3085:"ryu",\u308A\u3087:"ryo",\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30B7\u30E3:"sha",\u30B7\u30E5:"shu",\u30B7\u30E7:"sho",\u30C1\u30E3:"cha",\u30C1\u30E5:"chu",\u30C1\u30E7:"cho",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u304E\u3083:"gya",\u304E\u3085:"gyu",\u304E\u3087:"gyo",\u3058\u3083:"ja",\u3058\u3085:"ju",\u3058\u3087:"jo",\u3062\u3083:"ja",\u3062\u3085:"ju",\u3062\u3087:"jo",\u3073\u3083:"bya",\u3073\u3085:"byu",\u3073\u3087:"byo",\u3074\u3083:"pya",\u3074\u3085:"pyu",\u3074\u3087:"pyo",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B8\u30E3:"ja",\u30B8\u30E5:"ju",\u30B8\u30E7:"jo",\u30C2\u30E3:"ja",\u30C2\u30E5:"ju",\u30C2\u30E7:"jo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u3041:"a",\u3043:"i",\u3045:"u",\u3047:"e",\u3049:"o",\u3083:"ya",\u3085:"yu",\u3087:"yo",\u308E:"wa",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo",\u30EE:"wa",\u30F5:"ka",\u30F6:"ke",\u3093:"n",\u30F3:"n","\u3000":" ",\u3044\u3047:"ye",\u3046\u3043:"wi",\u3046\u3047:"we",\u3046\u3049:"wo",\u304D\u3047:"kye",\u304F\u3041:"kwa",\u304F\u3043:"kwi",\u304F\u3047:"kwe",\u304F\u3049:"kwo",\u3050\u3041:"gwa",\u3050\u3043:"gwi",\u3050\u3047:"gwe",\u3050\u3049:"gwo",\u30A4\u30A7:"ye",\u30A6\u30A3:"wi",\u30A6\u30A7:"we",\u30A6\u30A9:"wo",\u30F4:"vu",\u30F4\u30A1:"va",\u30F4\u30A3:"vi",\u30F4\u30A7:"ve",\u30F4\u30A9:"vo",\u30F4\u30E5:"vyu",\u30F4\u30E7:"vyo",\u30AD\u30A7:"kye",\u30AF\u30A1:"kwa",\u30AF\u30A3:"kwi",\u30AF\u30A7:"kwe",\u30AF\u30A9:"kwo",\u30B0\u30A1:"gwa",\u30B0\u30A3:"gwi",\u30B0\u30A7:"gwe",\u30B0\u30A9:"gwo",\u3057\u3047:"she",\u3058\u3047:"je",\u3061\u3047:"che",\u3064\u3041:"tsa",\u3064\u3043:"tsi",\u3064\u3047:"tse",\u3064\u3049:"tso",\u3066\u3043:"ti",\u3066\u3085:"tyu",\u3067\u3043:"di",\u3067\u3085:"dyu",\u3068\u3045:"tu",\u3069\u3045:"du",\u306B\u3047:"nye",\u3072\u3047:"hye",\u3075\u3041:"fa",\u3075\u3043:"fi",\u3075\u3047:"fe",\u3075\u3049:"fo",\u3075\u3085:"fyu",\u3075\u3087:"fyo",\u30B7\u30A7:"she",\u30B8\u30A7:"je",\u30C1\u30A7:"che",\u30C4\u30A1:"tsa",\u30C4\u30A3:"tsi",\u30C4\u30A7:"tse",\u30C4\u30A9:"tso",\u30C6\u30A3:"ti",\u30C6\u30E5:"tyu",\u30C7\u30A3:"di",\u30C7\u30E5:"dyu",\u30C8\u30A5:"tu",\u30C9\u30A5:"du",\u30CB\u30A7:"nye",\u30D2\u30A7:"hye",\u30D5\u30A1:"fa",\u30D5\u30A3:"fi",\u30D5\u30A7:"fe",\u30D5\u30A9:"fo",\u30D5\u30E5:"fyu",\u30D5\u30E7:"fyo"}},w=/(っ|ッ)([bcdfghijklmnopqrstuvwyz])/gm,S=/っ|ッ/gm,o=0,n,y,t="";if(a===h.PASSPORT&&(i=i.replace(/ー/gm,"")),a===h.NIPPON||a===h.HEPBURN){let g=new RegExp(/(ん|ン)(?=あ|い|う|え|お|ア|イ|ウ|エ|オ|ぁ|ぃ|ぅ|ぇ|ぉ|ァ|ィ|ゥ|ェ|ォ|や|ゆ|よ|ヤ|ユ|ヨ|ゃ|ゅ|ょ|ャ|ュ|ョ)/g),u,s=[];for(;(u=g.exec(i))!==null;)s.push(u.index+1);if(s.length!==0){let f="";for(let c=0;c<s.length;c++)c===0?f+=`${i.slice(0,s[c])}'`:f+=`${i.slice(s[c-1],s[c])}'`;f+=i.slice(s[s.length-1]),i=f;}}let r=i.length;for(;o<=r;)y=e[a][i.substring(o,o+2)],y?(t+=y,o+=2):(n=i.substring(o,o+1),y=e[a][n],t+=y||n,o+=1);return t=t.replace(w,"$2$2"),(a===h.PASSPORT||a===h.HEPBURN)&&(t=t.replace(/cc/gm,"tc")),t=t.replace(S,"tsu"),(a===h.PASSPORT||a===h.HEPBURN)&&(t=t.replace(/nm/gm,"mm"),t=t.replace(/nb/gm,"mb"),t=t.replace(/np/gm,"mp")),a===h.NIPPON&&(t=t.replace(/aー/gm,"\xE2"),t=t.replace(/iー/gm,"\xEE"),t=t.replace(/uー/gm,"\xFB"),t=t.replace(/eー/gm,"\xEA"),t=t.replace(/oー/gm,"\xF4")),a===h.HEPBURN&&(t=t.replace(/aー/gm,"\u0101"),t=t.replace(/iー/gm,"\u012B"),t=t.replace(/uー/gm,"\u016B"),t=t.replace(/eー/gm,"\u0113"),t=t.replace(/oー/gm,"\u014D")),t},$=function(i){let a=false,e=false;for(let w=0;w<i.length;w++)k(i[w])?a=true:(T(i[w])||b(i[w]))&&(e=true);return a&&e?1:a?0:e?2:3},I=function(i){let a=i.map(e=>({...e}));for(let e=0;e<a.length;e++)z(a[e].surface_form)?a[e].reading?K(a[e].reading)&&(a[e].reading=p(a[e].reading)):a[e].surface_form.split("").every(A)?a[e].reading=p(a[e].surface_form):a[e].reading=a[e].surface_form:a[e].reading=a[e].surface_form;for(let e=0;e<a.length;e++)a[e].pos&&a[e].pos==="\u52A9\u52D5\u8A5E"&&(a[e].surface_form==="\u3046"||a[e].surface_form==="\u30A6")&&e-1>=0&&a[e-1].pos&&a[e-1].pos==="\u52D5\u8A5E"&&(a[e-1].surface_form+="\u3046",a[e-1].pronunciation?a[e-1].pronunciation+="\u30FC":a[e-1].pronunciation=`${a[e-1].reading??""}\u30FC`,a[e-1].reading=(a[e-1].reading??"")+"\u30A6",a.splice(e,1),e--);for(let e=0;e<a.length;e++)a[e].pos&&(a[e].pos==="\u52D5\u8A5E"||a[e].pos==="\u5F62\u5BB9\u8A5E")&&a[e].surface_form.length>1&&(a[e].surface_form[a[e].surface_form.length-1]==="\u3063"||a[e].surface_form[a[e].surface_form.length-1]==="\u30C3")&&e+1<a.length&&(a[e].surface_form+=a[e+1].surface_form,a[e].pronunciation?a[e].pronunciation+=a[e+1].pronunciation??"":a[e].pronunciation=`${a[e].reading??""}${a[e+1].reading??""}`,a[e].reading=(a[e].reading??"")+(a[e+1].reading??""),a.splice(e+1,1),e--);return a},E=function(i){return d(i)},x=E,O=function(i){return p(i)},M=function(i,a){return j(i,a)};var C=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),F={isHiragana:T,isKatakana:b,isKana:A,isKanji:k,isJapanese:R,hasHiragana:K,hasKatakana:N,hasKana:P,hasKanji:v,hasJapanese:z,kanaToHiragana:E,kanaToHiragna:x,kanaToKatakana:O,kanaToRomaji:M},H=class{static Util=F;_analyzer=null;_furiganaMapDeprecationWarned=false;async init(a){if(!a||typeof a!="object"||typeof a.init!="function"||typeof a.parse!="function")throw new Error("Invalid initialization parameter.");if(this._analyzer==null)await a.init(),this._analyzer=a;else throw new Error("Kuroshiro has already been initialized.")}async convert(a,e){if(e=e||{},e.to=e.to||"hiragana",e.mode=e.mode||"normal",e.includeKatakana=e.includeKatakana||false,e.romajiSystem=e.romajiSystem||h.HEPBURN,e.delimiter_start=e.delimiter_start||"(",e.delimiter_end=e.delimiter_end||")",a=a||"",["hiragana","katakana","romaji"].indexOf(e.to)===-1)throw new Error("Invalid Target Syllabary.");if(["normal","spaced","okurigana","furigana","furigana_segments","furigana_map"].indexOf(e.mode)===-1)throw new Error("Invalid Conversion Mode.");if(Object.keys(h).map(n=>h[n]).indexOf(e.romajiSystem)===-1)throw new Error("Invalid Romanization System.");if(this._analyzer===null)throw new Error("Kuroshiro has not been initialized. Please call init() first.");let S=await this._analyzer.parse(a),o=I(S);if(e.mode==="normal"||e.mode==="spaced")switch(e.to){case "katakana":return e.mode==="normal"?o.map(n=>n.reading).join(""):o.map(n=>n.reading).join(" ");case "romaji":{let n=y=>{let t;return z(y.surface_form)?t=y.pronunciation||y.reading:t=y.surface_form,j(t,e.romajiSystem)};return e.mode==="normal"?o.map(n).join(""):o.map(n).join(" ")}case "hiragana":for(let n=0;n<o.length;n++)if(v(o[n].surface_form))if(!N(o[n].surface_form))o[n].reading=d(o[n].reading);else {o[n].reading=d(o[n].reading);let y="",t="";for(let u=0;u<o[n].surface_form.length;u++)k(o[n].surface_form[u])?t+="(.*)":t+=b(o[n].surface_form[u])?d(o[n].surface_form[u]):C(o[n].surface_form[u]);let g=new RegExp(t).exec(o[n].reading);if(g){let u=0;for(let s=0;s<o[n].surface_form.length;s++)k(o[n].surface_form[s])?(y+=g[u+1],u++):y+=o[n].surface_form[s];o[n].reading=y;}}else o[n].reading=o[n].surface_form;return e.mode==="normal"?o.map(n=>n.reading).join(""):o.map(n=>n.reading).join(" ");default:throw new Error("Unknown option.to param")}else if(e.mode==="okurigana"||e.mode==="furigana"||e.mode==="furigana_segments"||e.mode==="furigana_map"){let n=[];for(let r=0;r<o.length;r++)switch($(o[r].surface_form)){case 0:n.push([o[r].surface_form,1,d(o[r].reading),o[r].pronunciation||o[r].reading]);break;case 1:{let u="",s=false,f=[];for(let l=0;l<o[r].surface_form.length;l++)k(o[r].surface_form[l])?s?f[f.length-1]+=o[r].surface_form[l]:(s=true,u+="(.+)",f.push(o[r].surface_form[l])):(s=false,f.push(o[r].surface_form[l]),u+=b(o[r].surface_form[l])?d(o[r].surface_form[l]):C(o[r].surface_form[l]));let m=new RegExp(`^${u}$`).exec(d(o[r].reading));if(m){let l=1;for(let _=0;_<f.length;_++)k(f[_][0])?(n.push([f[_],1,m[l],p(m[l])]),l+=1):n.push([f[_],2,d(f[_]),p(f[_])]);}else n.push([o[r].surface_form,1,d(o[r].reading),o[r].pronunciation||o[r].reading]);break}case 2:for(let u=0;u<o[r].surface_form.length;u++)n.push([o[r].surface_form[u],2,d(o[r].reading[u]),o[r].pronunciation?.[u]??o[r].reading[u]]);break;case 3:for(let u=0;u<o[r].surface_form.length;u++)n.push([o[r].surface_form[u],3,o[r].surface_form[u],o[r].surface_form[u]]);break;default:throw new Error("Unknown strType")}let y=r=>{let g=r[0],u=r[1],s=r[2],f=r[3],c=false;if(u===1)c=true;else if(u===2){let m=g!==s;c=!!e.includeKatakana&&m;}if(c)switch(e.to){case "katakana":return p(s);case "romaji":return j(f,e.romajiSystem);default:return s}};if(e.mode==="furigana_segments"){let r=u=>u===` `||u==="\r",g=[];for(let u=0;u<n.length;u++){let s=n[u][0],f=y(n[u]);if(f!==void 0){g.push({text:s,ruby:f});continue}let c=r(s[s.length-1]),m=g[g.length-1];m&&m.ruby===void 0&&r(m.text[m.text.length-1])===c?m.text+=s:g.push({text:s});}return g}if(e.mode==="furigana_map"){this._furiganaMapDeprecationWarned||(this._furiganaMapDeprecationWarned=true,console.warn('[kuroshiro-enhance] mode "furigana_map" is deprecated and will be removed in the next major version; use "furigana_segments" instead.'));let r="",g=[],u=0;for(let s=0;s<n.length;s++){let f=n[s][0],c=u,m=c+f.length,l=y(n[s]);l!==void 0&&g.push({s:c,e:m,rt:l}),r+=f,u=m;}return {text:r,ruby:g}}let t="";switch(e.to){case "katakana":if(e.mode==="okurigana")for(let r=0;r<n.length;r++)n[r][1]!==1?t+=n[r][0]:t+=n[r][0]+e.delimiter_start+p(n[r][2])+e.delimiter_end;else for(let r=0;r<n.length;r++)n[r][1]!==1?t+=n[r][0]:t+=`<ruby>${n[r][0]}<rp>${e.delimiter_start}</rp><rt>${p(n[r][2])}</rt><rp>${e.delimiter_end}</rp></ruby>`;return t;case "romaji":if(e.mode==="okurigana")for(let r=0;r<n.length;r++)n[r][1]!==1?t+=n[r][0]:t+=n[r][0]+e.delimiter_start+j(n[r][3],e.romajiSystem)+e.delimiter_end;else for(let r=0;r<n.length;r++)n[r][1]===3?t+=n[r][0]:t+=`<ruby>${n[r][0]}<rp>${e.delimiter_start}</rp><rt>${j(n[r][3],e.romajiSystem)}</rt><rp>${e.delimiter_end}</rp></ruby>`;return t;case "hiragana":if(e.mode==="okurigana")for(let r=0;r<n.length;r++)n[r][1]!==1?t+=n[r][0]:t+=n[r][0]+e.delimiter_start+n[r][2]+e.delimiter_end;else for(let r=0;r<n.length;r++){let g=n[r][0]!==n[r][2],u=e.includeKatakana&&g,s=n[r][1]===1;u||s?t+=`<ruby>${n[r][0]}<rp>${e.delimiter_start}</rp><rt>${n[r][2]}</rt><rp>${e.delimiter_end}</rp></ruby>`:t+=n[r][0];}return t;default:throw new Error("Invalid Target Syllabary.")}}throw new Error("Invalid Conversion Mode.")}},U=H;var L=U;export{L as default};//# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map