UNPKG

@dsquare-gbu/kuroshiro

Version:

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

12 lines (8 loc) 24.3 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Kuroshiro = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ "use strict";var _typeof2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"===_typeof2(Symbol.iterator)?function(a){return void 0===a?"undefined":_typeof2(a)}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":void 0===a?"undefined":_typeof2(a)},_createClass=function(){function a(a,r){for(var e=0;e<r.length;e++){var t=r[e];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(a,t.key,t)}}return function(r,e,t){return e&&a(r.prototype,e),t&&a(r,t),r}}(),_util=require("./util");function _classCallCheck(a,r){if(!(a instanceof r))throw new TypeError("Cannot call a class as a function")}var Kuroshiro=function(){function a(){_classCallCheck(this,a),this._analyzer=null}return _createClass(a,[{key:"init",value:function(a){if(!a||"object"!==(void 0===a?"undefined":_typeof(a))||"function"!=typeof a.init||"function"!=typeof a.parse)throw new Error("Invalid initialization parameter.");if(null!=this._analyzer)throw new Error("Kuroshiro has already been initialized.");try{var r=this;return a.init().then(function(){r._analyzer=a})}catch(a){throw a}}},{key:"convert",value:function(a,r){if((r=r||{}).to=r.to||"hiragana",r.mode=r.mode||"normal",r.romajiSystem=r.romajiSystem||_util.ROMANIZATION_SYSTEM.HEPBURN,r.delimiter_start=r.delimiter_start||"(",r.delimiter_end=r.delimiter_end||")",a=a||"",-1===["hiragana","katakana","romaji"].indexOf(r.to))throw new Error("Invalid Target Syllabary.");if(-1===["normal","spaced","okurigana","furigana"].indexOf(r.mode))throw new Error("Invalid Conversion Mode.");if(-1===Object.keys(_util.ROMANIZATION_SYSTEM).map(function(a){return _util.ROMANIZATION_SYSTEM[a]}).indexOf(r.romajiSystem))throw new Error("Invalid Romanization System.");return this._analyzer.parse(a).then(function(a){var e=(0,_util.patchTokens)(a);if("normal"===r.mode||"spaced"===r.mode)switch(r.to){case"katakana":return"normal"===r.mode?e.map(function(a){return a.reading}).join(""):e.map(function(a){return a.reading}).join(" ");case"romaji":var t=function(a){var e=void 0;return e=(0,_util.hasJapanese)(a.surface_form)?a.pronunciation||a.reading:a.surface_form,(0,_util.toRawRomaji)(e,r.romajiSystem)};return"normal"===r.mode?e.map(t).join(""):e.map(t).join(" ");case"hiragana":for(var i=0;i<e.length;i++)if((0,_util.hasKanji)(e[i].surface_form))if((0,_util.hasKatakana)(e[i].surface_form)){e[i].reading=(0,_util.toRawHiragana)(e[i].reading);for(var n="",o="",u=0;u<e[i].surface_form.length;u++)(0,_util.isKanji)(e[i].surface_form[u])?o+="(.*)":o+=(0,_util.isKatakana)(e[i].surface_form[u])?(0,_util.toRawHiragana)(e[i].surface_form[u]):e[i].surface_form[u];var l=new RegExp(o).exec(e[i].reading);if(l){for(var s=0,f=0;f<e[i].surface_form.length;f++)(0,_util.isKanji)(e[i].surface_form[f])?(n+=l[s+1],s++):n+=e[i].surface_form[f];e[i].reading=n}}else e[i].reading=(0,_util.toRawHiragana)(e[i].reading);else e[i].reading=e[i].surface_form;return"normal"===r.mode?e.map(function(a){return a.reading}).join(""):e.map(function(a){return a.reading}).join(" ");default:throw new Error("Unknown option.to param")}else if("okurigana"===r.mode||"furigana"===r.mode){for(var m=[],_=0;_<e.length;_++){switch((0,_util.getStrType)(e[_].surface_form)){case 0:m.push([e[_].surface_form,1,(0,_util.toRawHiragana)(e[_].reading),e[_].pronunciation||e[_].reading]);break;case 1:for(var c="",d=!1,p=[],h=0;h<e[_].surface_form.length;h++)(0,_util.isKanji)(e[_].surface_form[h])?d?p[p.length-1]+=e[_].surface_form[h]:(d=!0,c+="(.*)",p.push(e[_].surface_form[h])):(d=!1,p.push(e[_].surface_form[h]),c+=(0,_util.isKatakana)(e[_].surface_form[h])?(0,_util.toRawHiragana)(e[_].surface_form[h]):e[_].surface_form[h]);var g=new RegExp("^"+c+"$").exec((0,_util.toRawHiragana)(e[_].reading));if(g)for(var y=1,k=0;k<p.length;k++)(0,_util.isKanji)(p[k][0])?(m.push([p[k],1,g[y],(0,_util.toRawKatakana)(g[y])]),y+=1):m.push([p[k],2,(0,_util.toRawHiragana)(p[k]),(0,_util.toRawKatakana)(p[k])]);else m.push([e[_].surface_form,1,(0,_util.toRawHiragana)(e[_].reading),e[_].pronunciation||e[_].reading]);break;case 2:for(var w=0;w<e[_].surface_form.length;w++)m.push([e[_].surface_form[w],2,(0,_util.toRawHiragana)(e[_].reading[w]),e[_].pronunciation&&e[_].pronunciation[w]||e[_].reading[w]]);break;case 3:for(var v=0;v<e[_].surface_form.length;v++)m.push([e[_].surface_form[v],3,e[_].surface_form[v],e[_].surface_form[v]]);break;default:throw new Error("Unknown strType")}}var b="";switch(r.to){case"katakana":if("okurigana"===r.mode)for(var j=0;j<m.length;j++)1!==m[j][1]?b+=m[j][0]:b+=m[j][0]+r.delimiter_start+(0,_util.toRawKatakana)(m[j][2])+r.delimiter_end;else for(var K=0;K<m.length;K++)1!==m[K][1]?b+=m[K][0]:b+="<ruby>"+m[K][0]+"<rp>"+r.delimiter_start+"</rp><rt>"+(0,_util.toRawKatakana)(m[K][2])+"</rt><rp>"+r.delimiter_end+"</rp></ruby>";return b;case"romaji":if("okurigana"===r.mode)for(var R=0;R<m.length;R++)1!==m[R][1]?b+=m[R][0]:b+=m[R][0]+r.delimiter_start+(0,_util.toRawRomaji)(m[R][3],r.romajiSystem)+r.delimiter_end;else{b+="<ruby>";for(var S=0;S<m.length;S++)b+=m[S][0]+"<rp>"+r.delimiter_start+"</rp><rt>"+(0,_util.toRawRomaji)(m[S][3],r.romajiSystem)+"</rt><rp>"+r.delimiter_end+"</rp>";b+="</ruby>"}return b;case"hiragana":if("okurigana"===r.mode)for(var T=0;T<m.length;T++)1!==m[T][1]?b+=m[T][0]:b+=m[T][0]+r.delimiter_start+m[T][2]+r.delimiter_end;else for(var H=0;H<m.length;H++)1!==m[H][1]?b+=m[H][0]:b+="<ruby>"+m[H][0]+"<rp>"+r.delimiter_start+"</rp><rt>"+m[H][2]+"</rt><rp>"+r.delimiter_end+"</rp></ruby>";return b;default:throw new Error("Invalid Target Syllabary.")}}})}}]),a}(),Util={isHiragana:_util.isHiragana,isKatakana:_util.isKatakana,isKana:_util.isKana,isKanji:_util.isKanji,isJapanese:_util.isJapanese,hasHiragana:_util.hasHiragana,hasKatakana:_util.hasKatakana,hasKana:_util.hasKana,hasKanji:_util.hasKanji,hasJapanese:_util.hasJapanese,kanaToHiragna:_util.kanaToHiragna,kanaToKatakana:_util.kanaToKatakana,kanaToRomaji:_util.kanaToRomaji};Kuroshiro.Util=Util,exports.default=Kuroshiro,module.exports=exports.default; },{"./util":3}],2:[function(require,module,exports){ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _core=require("./core"),_core2=_interopRequireDefault(_core);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}exports.default=_core2.default,module.exports=exports.default; },{"./core":1}],3:[function(require,module,exports){ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var KATAKANA_HIRAGANA_SHIFT="ぁ".charCodeAt(0)-"ァ".charCodeAt(0),HIRAGANA_KATAKANA_SHIFT="ァ".charCodeAt(0)-"ぁ".charCodeAt(0),ROMANIZATION_SYSTEM={NIPPON:"nippon",PASSPORT:"passport",HEPBURN:"hepburn"},isHiragana=function(a){return(a=a[0])>="぀"&&a<="ゟ"},isKatakana=function(a){return(a=a[0])>="゠"&&a<="ヿ"},isKana=function(a){return isHiragana(a)||isKatakana(a)},isKanji=function(a){return(a=a[0])>="一"&&a<="鿏"||a>="豈"&&a<="﫿"||a>="㐀"&&a<="䶿"},isJapanese=function(a){return isKana(a)||isKanji(a)},hasHiragana=function(a){for(var o=0;o<a.length;o++)if(isHiragana(a[o]))return!0;return!1},hasKatakana=function(a){for(var o=0;o<a.length;o++)if(isKatakana(a[o]))return!0;return!1},hasKana=function(a){for(var o=0;o<a.length;o++)if(isKana(a[o]))return!0;return!1},hasKanji=function(a){for(var o=0;o<a.length;o++)if(isKanji(a[o]))return!0;return!1},hasJapanese=function(a){for(var o=0;o<a.length;o++)if(isJapanese(a[o]))return!0;return!1},toRawHiragana=function(a){return splitChars(a).map(function(a){return a>"゠"&&a<"ヷ"?String.fromCharCode(a.charCodeAt(0)+KATAKANA_HIRAGANA_SHIFT):a}).join("")},toRawKatakana=function(a){return splitChars(a).map(function(a){return a>"぀"&&a<"゗"?String.fromCharCode(a.charCodeAt(0)+HIRAGANA_KATAKANA_SHIFT):a}).join("")},splitChars=function(a){try{return a.split(new RegExp("(?!$)","u"))}catch(o){return a.split("")}},toRawRomaji=function(a,o){var e={nippon:{"1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","0":"0","!":"!","“":'"',"”":'"',"#":"#","$":"$","%":"%","&":"&","’":"'","(":"(",")":")","=":"=","~":"~","|":"|","@":"@","‘":"`","+":"+","*":"*",";":";",":":":","<":"<",">":">","、":",","。":".","/":"/","?":"?","_":"_","・":"・","「":'"',"」":'"',"{":"{","}":"}","¥":"\\","^":"^","あ":"a","い":"i","う":"u","え":"e","お":"o","ア":"a","イ":"i","ウ":"u","エ":"e","オ":"o","か":"ka","き":"ki","く":"ku","け":"ke","こ":"ko","カ":"ka","キ":"ki","ク":"ku","ケ":"ke","コ":"ko","さ":"sa","し":"si","す":"su","せ":"se","そ":"so","サ":"sa","シ":"si","ス":"su","セ":"se","ソ":"so","た":"ta","ち":"ti","つ":"tu","て":"te","と":"to","タ":"ta","チ":"ti","ツ":"tu","テ":"te","ト":"to","な":"na","に":"ni","ぬ":"nu","ね":"ne","の":"no","ナ":"na","ニ":"ni","ヌ":"nu","ネ":"ne","ノ":"no","は":"ha","ひ":"hi","ふ":"hu","へ":"he","ほ":"ho","ハ":"ha","ヒ":"hi","フ":"hu","ヘ":"he","ホ":"ho","ま":"ma","み":"mi","む":"mu","め":"me","も":"mo","マ":"ma","ミ":"mi","ム":"mu","メ":"me","モ":"mo","や":"ya","ゆ":"yu","よ":"yo","ヤ":"ya","ユ":"yu","ヨ":"yo","ら":"ra","り":"ri","る":"ru","れ":"re","ろ":"ro","ラ":"ra","リ":"ri","ル":"ru","レ":"re","ロ":"ro","わ":"wa","ゐ":"wi","ゑ":"we","を":"wo","ワ":"wa","ヰ":"wi","ヱ":"we","ヲ":"wo","が":"ga","ぎ":"gi","ぐ":"gu","げ":"ge","ご":"go","ガ":"ga","ギ":"gi","グ":"gu","ゲ":"ge","ゴ":"go","ざ":"za","じ":"zi","ず":"zu","ぜ":"ze","ぞ":"zo","ザ":"za","ジ":"zi","ズ":"zu","ゼ":"ze","ゾ":"zo","だ":"da","ぢ":"di","づ":"du","で":"de","ど":"do","ダ":"da","ヂ":"di","ヅ":"du","デ":"de","ド":"do","ば":"ba","び":"bi","ぶ":"bu","べ":"be","ぼ":"bo","バ":"ba","ビ":"bi","ブ":"bu","ベ":"be","ボ":"bo","ぱ":"pa","ぴ":"pi","ぷ":"pu","ぺ":"pe","ぽ":"po","パ":"pa","ピ":"pi","プ":"pu","ペ":"pe","ポ":"po","きゃ":"kya","きゅ":"kyu","きょ":"kyo","しゃ":"sya","しゅ":"syu","しょ":"syo","ちゃ":"tya","ちゅ":"tyu","ちょ":"tyo","にゃ":"nya","にゅ":"nyu","にょ":"nyo","ひゃ":"hya","ひゅ":"hyu","ひょ":"hyo","みゃ":"mya","みゅ":"myu","みょ":"myo","りゃ":"rya","りゅ":"ryu","りょ":"ryo","キャ":"kya","キュ":"kyu","キョ":"kyo","シャ":"sya","シュ":"syu","ショ":"syo","チャ":"tya","チュ":"tyu","チョ":"tyo","ニャ":"nya","ニュ":"nyu","ニョ":"nyo","ヒャ":"hya","ヒュ":"hyu","ヒョ":"hyo","ミャ":"mya","ミュ":"myu","ミョ":"myo","リャ":"rya","リュ":"ryu","リョ":"ryo","ぎゃ":"gya","ぎゅ":"gyu","ぎょ":"gyo","じゃ":"zya","じゅ":"zyu","じょ":"zyo","ぢゃ":"dya","ぢゅ":"dyu","ぢょ":"dyo","びゃ":"bya","びゅ":"byu","びょ":"byo","ぴゃ":"pya","ぴゅ":"pyu","ぴょ":"pyo","くゎ":"kwa","ぐゎ":"gwa","ギャ":"gya","ギュ":"gyu","ギョ":"gyo","ジャ":"zya","ジュ":"zyu","ジョ":"zyo","ヂャ":"dya","ヂュ":"dyu","ヂョ":"dyo","ビャ":"bya","ビュ":"byu","ビョ":"byo","ピャ":"pya","ピュ":"pyu","ピョ":"pyo","クヮ":"kwa","グヮ":"gwa","ぁ":"a","ぃ":"i","ぅ":"u","ぇ":"e","ぉ":"o","ゃ":"ya","ゅ":"yu","ょ":"yo","ゎ":"wa","ァ":"a","ィ":"i","ゥ":"u","ェ":"e","ォ":"o","ャ":"ya","ュ":"yu","ョ":"yo","ヮ":"wa","ヵ":"ka","ヶ":"ke","ん":"n","ン":"n"," ":" ","いぇ":"ye","きぇ":"kye","くぃ":"kwi","くぇ":"kwe","くぉ":"kwo","ぐぃ":"gwi","ぐぇ":"gwe","ぐぉ":"gwo","イェ":"ye","キェ":"kya","クィ":"kwi","クェ":"kwe","クォ":"kwo","グィ":"gwi","グェ":"gwe","グォ":"gwo","しぇ":"sye","じぇ":"zye","すぃ":"swi","ずぃ":"zwi","ちぇ":"tye","つぁ":"twa","つぃ":"twi","つぇ":"twe","つぉ":"two","にぇ":"nye","ひぇ":"hye","ふぁ":"hwa","ふぃ":"hwi","ふぇ":"hwe","ふぉ":"hwo","ふゅ":"hwyu","ふょ":"hwyo","シェ":"sye","ジェ":"zye","スィ":"swi","ズィ":"zwi","チェ":"tye","ツァ":"twa","ツィ":"twi","ツェ":"twe","ツォ":"two","ニェ":"nye","ヒェ":"hye","ファ":"hwa","フィ":"hwi","フェ":"hwe","フォ":"hwo","フュ":"hwyu","フョ":"hwyo"},passport:{"1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","0":"0","!":"!","“":'"',"”":'"',"#":"#","$":"$","%":"%","&":"&","’":"'","(":"(",")":")","=":"=","~":"~","|":"|","@":"@","‘":"`","+":"+","*":"*",";":";",":":":","<":"<",">":">","、":",","。":".","/":"/","?":"?","_":"_","・":"・","「":'"',"」":'"',"{":"{","}":"}","¥":"\\","^":"^","あ":"a","い":"i","う":"u","え":"e","お":"o","ア":"a","イ":"i","ウ":"u","エ":"e","オ":"o","か":"ka","き":"ki","く":"ku","け":"ke","こ":"ko","カ":"ka","キ":"ki","ク":"ku","ケ":"ke","コ":"ko","さ":"sa","し":"shi","す":"su","せ":"se","そ":"so","サ":"sa","シ":"shi","ス":"su","セ":"se","ソ":"so","た":"ta","ち":"chi","つ":"tsu","て":"te","と":"to","タ":"ta","チ":"chi","ツ":"tsu","テ":"te","ト":"to","な":"na","に":"ni","ぬ":"nu","ね":"ne","の":"no","ナ":"na","ニ":"ni","ヌ":"nu","ネ":"ne","ノ":"no","は":"ha","ひ":"hi","ふ":"fu","へ":"he","ほ":"ho","ハ":"ha","ヒ":"hi","フ":"fu","ヘ":"he","ホ":"ho","ま":"ma","み":"mi","む":"mu","め":"me","も":"mo","マ":"ma","ミ":"mi","ム":"mu","メ":"me","モ":"mo","や":"ya","ゆ":"yu","よ":"yo","ヤ":"ya","ユ":"yu","ヨ":"yo","ら":"ra","り":"ri","る":"ru","れ":"re","ろ":"ro","ラ":"ra","リ":"ri","ル":"ru","レ":"re","ロ":"ro","わ":"wa","ゐ":"i","ゑ":"e","を":"o","ワ":"wa","ヰ":"i","ヱ":"e","ヲ":"o","が":"ga","ぎ":"gi","ぐ":"gu","げ":"ge","ご":"go","ガ":"ga","ギ":"gi","グ":"gu","ゲ":"ge","ゴ":"go","ざ":"za","じ":"ji","ず":"zu","ぜ":"ze","ぞ":"zo","ザ":"za","ジ":"ji","ズ":"zu","ゼ":"ze","ゾ":"zo","だ":"da","ぢ":"ji","づ":"zu","で":"de","ど":"do","ダ":"da","ヂ":"ji","ヅ":"zu","デ":"de","ド":"do","ば":"ba","び":"bi","ぶ":"bu","べ":"be","ぼ":"bo","バ":"ba","ビ":"bi","ブ":"bu","ベ":"be","ボ":"bo","ぱ":"pa","ぴ":"pi","ぷ":"pu","ぺ":"pe","ぽ":"po","パ":"pa","ピ":"pi","プ":"pu","ペ":"pe","ポ":"po","きゃ":"kya","きゅ":"kyu","きょ":"kyo","しゃ":"sha","しゅ":"shu","しょ":"sho","ちゃ":"cha","ちゅ":"chu","ちょ":"cho","にゃ":"nya","にゅ":"nyu","にょ":"nyo","ひゃ":"hya","ひゅ":"hyu","ひょ":"hyo","みゃ":"mya","みゅ":"myu","みょ":"myo","りゃ":"rya","りゅ":"ryu","りょ":"ryo","キャ":"kya","キュ":"kyu","キョ":"kyo","シャ":"sha","シュ":"shu","ショ":"sho","チャ":"cha","チュ":"chu","チョ":"cho","ニャ":"nya","ニュ":"nyu","ニョ":"nyo","ヒャ":"hya","ヒュ":"hyu","ヒョ":"hyo","ミャ":"mya","ミュ":"myu","ミョ":"myo","リャ":"rya","リュ":"ryu","リョ":"ryo","ぎゃ":"gya","ぎゅ":"gyu","ぎょ":"gyo","じゃ":"ja","じゅ":"ju","じょ":"jo","ぢゃ":"ja","ぢゅ":"ju","ぢょ":"jo","びゃ":"bya","びゅ":"byu","びょ":"byo","ぴゃ":"pya","ぴゅ":"pyu","ぴょ":"pyo","ギャ":"gya","ギュ":"gyu","ギョ":"gyo","ジャ":"ja","ジュ":"ju","ジョ":"jo","ヂャ":"ja","ヂュ":"ju","ヂョ":"jo","ビャ":"bya","ビュ":"byu","ビョ":"byo","ピャ":"pya","ピュ":"pyu","ピョ":"pyo","ぁ":"a","ぃ":"i","ぅ":"u","ぇ":"e","ぉ":"o","ゃ":"ya","ゅ":"yu","ょ":"yo","ゎ":"wa","ァ":"a","ィ":"i","ゥ":"u","ェ":"e","ォ":"o","ャ":"ya","ュ":"yu","ョ":"yo","ヮ":"wa","ヵ":"ka","ヶ":"ke","ん":"n","ン":"n"," ":" ","ヴ":"b"},hepburn:{"1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","0":"0","!":"!","“":'"',"”":'"',"#":"#","$":"$","%":"%","&":"&","’":"'","(":"(",")":")","=":"=","~":"~","|":"|","@":"@","‘":"`","+":"+","*":"*",";":";",":":":","<":"<",">":">","、":",","。":".","/":"/","?":"?","_":"_","・":"・","「":'"',"」":'"',"{":"{","}":"}","¥":"\\","^":"^","あ":"a","い":"i","う":"u","え":"e","お":"o","ア":"a","イ":"i","ウ":"u","エ":"e","オ":"o","か":"ka","き":"ki","く":"ku","け":"ke","こ":"ko","カ":"ka","キ":"ki","ク":"ku","ケ":"ke","コ":"ko","さ":"sa","し":"shi","す":"su","せ":"se","そ":"so","サ":"sa","シ":"shi","ス":"su","セ":"se","ソ":"so","た":"ta","ち":"chi","つ":"tsu","て":"te","と":"to","タ":"ta","チ":"chi","ツ":"tsu","テ":"te","ト":"to","な":"na","に":"ni","ぬ":"nu","ね":"ne","の":"no","ナ":"na","ニ":"ni","ヌ":"nu","ネ":"ne","ノ":"no","は":"ha","ひ":"hi","ふ":"fu","へ":"he","ほ":"ho","ハ":"ha","ヒ":"hi","フ":"fu","ヘ":"he","ホ":"ho","ま":"ma","み":"mi","む":"mu","め":"me","も":"mo","マ":"ma","ミ":"mi","ム":"mu","メ":"me","モ":"mo","や":"ya","ゆ":"yu","よ":"yo","ヤ":"ya","ユ":"yu","ヨ":"yo","ら":"ra","り":"ri","る":"ru","れ":"re","ろ":"ro","ラ":"ra","リ":"ri","ル":"ru","レ":"re","ロ":"ro","わ":"wa","ゐ":"i","ゑ":"e","を":"o","ワ":"wa","ヰ":"i","ヱ":"e","ヲ":"o","が":"ga","ぎ":"gi","ぐ":"gu","げ":"ge","ご":"go","ガ":"ga","ギ":"gi","グ":"gu","ゲ":"ge","ゴ":"go","ざ":"za","じ":"ji","ず":"zu","ぜ":"ze","ぞ":"zo","ザ":"za","ジ":"ji","ズ":"zu","ゼ":"ze","ゾ":"zo","だ":"da","ぢ":"ji","づ":"zu","で":"de","ど":"do","ダ":"da","ヂ":"ji","ヅ":"zu","デ":"de","ド":"do","ば":"ba","び":"bi","ぶ":"bu","べ":"be","ぼ":"bo","バ":"ba","ビ":"bi","ブ":"bu","ベ":"be","ボ":"bo","ぱ":"pa","ぴ":"pi","ぷ":"pu","ぺ":"pe","ぽ":"po","パ":"pa","ピ":"pi","プ":"pu","ペ":"pe","ポ":"po","きゃ":"kya","きゅ":"kyu","きょ":"kyo","しゃ":"sha","しゅ":"shu","しょ":"sho","ちゃ":"cha","ちゅ":"chu","ちょ":"cho","にゃ":"nya","にゅ":"nyu","にょ":"nyo","ひゃ":"hya","ひゅ":"hyu","ひょ":"hyo","みゃ":"mya","みゅ":"myu","みょ":"myo","りゃ":"rya","りゅ":"ryu","りょ":"ryo","キャ":"kya","キュ":"kyu","キョ":"kyo","シャ":"sha","シュ":"shu","ショ":"sho","チャ":"cha","チュ":"chu","チョ":"cho","ニャ":"nya","ニュ":"nyu","ニョ":"nyo","ヒャ":"hya","ヒュ":"hyu","ヒョ":"hyo","ミャ":"mya","ミュ":"myu","ミョ":"myo","リャ":"rya","リュ":"ryu","リョ":"ryo","ぎゃ":"gya","ぎゅ":"gyu","ぎょ":"gyo","じゃ":"ja","じゅ":"ju","じょ":"jo","ぢゃ":"ja","ぢゅ":"ju","ぢょ":"jo","びゃ":"bya","びゅ":"byu","びょ":"byo","ぴゃ":"pya","ぴゅ":"pyu","ぴょ":"pyo","ギャ":"gya","ギュ":"gyu","ギョ":"gyo","ジャ":"ja","ジュ":"ju","ジョ":"jo","ヂャ":"ja","ヂュ":"ju","ヂョ":"jo","ビャ":"bya","ビュ":"byu","ビョ":"byo","ピャ":"pya","ピュ":"pyu","ピョ":"pyo","ぁ":"a","ぃ":"i","ぅ":"u","ぇ":"e","ぉ":"o","ゃ":"ya","ゅ":"yu","ょ":"yo","ゎ":"wa","ァ":"a","ィ":"i","ゥ":"u","ェ":"e","ォ":"o","ャ":"ya","ュ":"yu","ョ":"yo","ヮ":"wa","ヵ":"ka","ヶ":"ke","ん":"n","ン":"n"," ":" ","いぇ":"ye","うぃ":"wi","うぇ":"we","うぉ":"wo","きぇ":"kye","くぁ":"kwa","くぃ":"kwi","くぇ":"kwe","くぉ":"kwo","ぐぁ":"gwa","ぐぃ":"gwi","ぐぇ":"gwe","ぐぉ":"gwo","イェ":"ye","ウィ":"wi","ウェ":"we","ウォ":"wo","ヴ":"vu","ヴァ":"va","ヴィ":"vi","ヴェ":"ve","ヴォ":"vo","ヴュ":"vyu","ヴョ":"vyo","キェ":"kya","クァ":"kwa","クィ":"kwi","クェ":"kwe","クォ":"kwo","グァ":"gwa","グィ":"gwi","グェ":"gwe","グォ":"gwo","しぇ":"she","じぇ":"je","ちぇ":"che","つぁ":"tsa","つぃ":"tsi","つぇ":"tse","つぉ":"tso","てぃ":"ti","てゅ":"tyu","でぃ":"di","でゅ":"dyu","とぅ":"tu","どぅ":"du","にぇ":"nye","ひぇ":"hye","ふぁ":"fa","ふぃ":"fi","ふぇ":"fe","ふぉ":"fo","ふゅ":"fyu","ふょ":"fyo","シェ":"she","ジェ":"je","チェ":"che","ツァ":"tsa","ツィ":"tsi","ツェ":"tse","ツォ":"tso","ティ":"ti","テュ":"tyu","ディ":"di","デュ":"dyu","トゥ":"tu","ドゥ":"du","ニェ":"nye","ヒェ":"hye","ファ":"fa","フィ":"fi","フェ":"fe","フォ":"fo","フュ":"fyu","フョ":"fyo"}},n=0,u=void 0,r=void 0,i="";if((o=o||ROMANIZATION_SYSTEM.HEPBURN)===ROMANIZATION_SYSTEM.PASSPORT&&(a=a.replace(/ー/gm,"")),o===ROMANIZATION_SYSTEM.NIPPON||o===ROMANIZATION_SYSTEM.HEPBURN){for(var y=new RegExp(/(ん|ン)(?=あ|い|う|え|お|ア|イ|ウ|エ|オ|ぁ|ぃ|ぅ|ぇ|ぉ|ァ|ィ|ゥ|ェ|ォ|や|ゆ|よ|ヤ|ユ|ヨ|ゃ|ゅ|ょ|ャ|ュ|ョ)/g),t=void 0,s=[];null!==(t=y.exec(a));)s.push(t.index+1);if(0!==s.length){for(var h="",p=0;p<s.length;p++)h+=0===p?a.slice(0,s[p])+"'":a.slice(s[p-1],s[p])+"'";h+=a.slice(s[s.length-1]),a=h}}for(var g=a.length;n<=g;)(r=e[o][a.substring(n,n+2)])?(i+=r,n+=2):(i+=(r=e[o][u=a.substring(n,n+1)])?r:u,n+=1);return i=i.replace(/(っ|ッ)([bcdfghijklmnopqrstuvwyz])/gm,"$2$2"),o!==ROMANIZATION_SYSTEM.PASSPORT&&o!==ROMANIZATION_SYSTEM.HEPBURN||(i=i.replace(/cc/gm,"tc")),i=i.replace(/っ|ッ/gm,"tsu"),o!==ROMANIZATION_SYSTEM.PASSPORT&&o!==ROMANIZATION_SYSTEM.HEPBURN||(i=(i=(i=i.replace(/nm/gm,"mm")).replace(/nb/gm,"mb")).replace(/np/gm,"mp")),o===ROMANIZATION_SYSTEM.NIPPON&&(i=(i=(i=(i=(i=i.replace(/aー/gm,"â")).replace(/iー/gm,"î")).replace(/uー/gm,"û")).replace(/eー/gm,"ê")).replace(/oー/gm,"ô")),o===ROMANIZATION_SYSTEM.HEPBURN&&(i=(i=(i=(i=(i=i.replace(/aー/gm,"ā")).replace(/iー/gm,"ī")).replace(/uー/gm,"ū")).replace(/eー/gm,"ē")).replace(/oー/gm,"ō")),i},getStrType=function(a){for(var o=!1,e=!1,n=0;n<a.length;n++)isKanji(a[n])?o=!0:(isHiragana(a[n])||isKatakana(a[n]))&&(e=!0);return o&&e?1:o?0:e?2:3},patchTokens=function(a){for(var o=0;o<a.length;o++)hasJapanese(a[o].surface_form)?a[o].reading?hasHiragana(a[o].reading)&&(a[o].reading=toRawKatakana(a[o].reading)):a[o].surface_form.split("").every(isKana)?a[o].reading=toRawKatakana(a[o].surface_form):a[o].reading=a[o].surface_form:a[o].reading=a[o].surface_form;for(var e=0;e<a.length;e++)!a[e].pos||"助動詞"!==a[e].pos||"う"!==a[e].surface_form&&"ウ"!==a[e].surface_form||e-1>=0&&a[e-1].pos&&"動詞"===a[e-1].pos&&(a[e-1].surface_form+="う",a[e-1].pronunciation?a[e-1].pronunciation+="ー":a[e-1].pronunciation=a[e-1].reading+"ー",a[e-1].reading+="ウ",a.splice(e,1),e--);for(var n=0;n<a.length;n++)a[n].pos&&("動詞"===a[n].pos||"形容詞"===a[n].pos)&&a[n].surface_form.length>1&&("っ"===a[n].surface_form[a[n].surface_form.length-1]||"ッ"===a[n].surface_form[a[n].surface_form.length-1])&&n+1<a.length&&a[n+1].pos&&("動詞"===a[n+1].pos||"助動詞"===a[n+1].pos)&&(a[n].surface_form+=a[n+1].surface_form,a[n].pronunciation?a[n].pronunciation+=a[n+1].pronunciation:a[n].pronunciation=""+a[n].reading+a[n+1].reading,a[n].reading+=a[n+1].reading,a.splice(n+1,1),n--);return a},kanaToHiragna=function(a){return toRawHiragana(a)},kanaToKatakana=function(a){return toRawKatakana(a)},kanaToRomaji=function(a,o){return toRawRomaji(a,o)};exports.ROMANIZATION_SYSTEM=ROMANIZATION_SYSTEM,exports.getStrType=getStrType,exports.patchTokens=patchTokens,exports.isHiragana=isHiragana,exports.isKatakana=isKatakana,exports.isKana=isKana,exports.isKanji=isKanji,exports.isJapanese=isJapanese,exports.hasHiragana=hasHiragana,exports.hasKatakana=hasKatakana,exports.hasKana=hasKana,exports.hasKanji=hasKanji,exports.hasJapanese=hasJapanese,exports.toRawHiragana=toRawHiragana,exports.toRawKatakana=toRawKatakana,exports.toRawRomaji=toRawRomaji,exports.kanaToHiragna=kanaToHiragna,exports.kanaToKatakana=kanaToKatakana,exports.kanaToRomaji=kanaToRomaji; },{}]},{},[2])(2) });