UNPKG

kuroshiro

Version:

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

18 lines (12 loc) 33.9 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){ module.exports=require("regenerator-runtime"); },{"regenerator-runtime":2}],2:[function(require,module,exports){ var runtime=function(t){"use strict";var r,e=Object.prototype,n=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{u({},"")}catch(t){u=function(t,r,e){return t[r]=e}}function h(t,r,e,n){var o=r&&r.prototype instanceof d?r:d,i=Object.create(o.prototype),a=new G(n||[]);return i._invoke=function(t,r,e){var n=l;return function(o,i){if(n===p)throw new Error("Generator is already running");if(n===y){if("throw"===o)throw i;return F()}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var c=j(a,e);if(c){if(c===v)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(n===l)throw n=y,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);n=p;var u=f(t,r,e);if("normal"===u.type){if(n=e.done?y:s,u.arg===v)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(n=y,e.method="throw",e.arg=u.arg)}}}(t,e,a),i}function f(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=h;var l="suspendedStart",s="suspendedYield",p="executing",y="completed",v={};function d(){}function g(){}function m(){}var w={};w[i]=function(){return this};var L=Object.getPrototypeOf,x=L&&L(L(N([])));x&&x!==e&&n.call(x,i)&&(w=x);var b=m.prototype=d.prototype=Object.create(w);function E(t){["next","throw","return"].forEach(function(r){u(t,r,function(t){return this._invoke(r,t)})})}function _(t,r){var e;this._invoke=function(o,i){function a(){return new r(function(e,a){!function e(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var h=u.arg,l=h.value;return l&&"object"==typeof l&&n.call(l,"__await")?r.resolve(l.__await).then(function(t){e("next",t,a,c)},function(t){e("throw",t,a,c)}):r.resolve(l).then(function(t){h.value=t,a(h)},function(t){return e("throw",t,a,c)})}c(u.arg)}(o,i,e,a)})}return e=e?e.then(a,a):a()}}function j(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=r,j(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,v;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,v):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function O(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function k(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function G(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function N(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function e(){for(;++o<t.length;)if(n.call(t,o))return e.value=t[o],e.done=!1,e;return e.value=r,e.done=!0,e};return a.next=a}}return{next:F}}function F(){return{value:r,done:!0}}return g.prototype=b.constructor=m,m.constructor=g,g.displayName=u(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===g||"GeneratorFunction"===(r.displayName||r.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,m):(t.__proto__=m,u(t,c,"GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},E(_.prototype),_.prototype[a]=function(){return this},t.AsyncIterator=_,t.async=function(r,e,n,o,i){void 0===i&&(i=Promise);var a=new _(h(r,e,n,o),i);return t.isGeneratorFunction(e)?a:a.next().then(function(t){return t.done?t.value:a.next()})},E(b),u(b,c,"Generator"),b[i]=function(){return this},b.toString=function(){return"[object Generator]"},t.keys=function(t){var r=[];for(var e in t)r.push(e);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=N,G.prototype={constructor:G,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function o(n,o){return c.type="throw",c.arg=t,e.next=n,o&&(e.method="next",e.arg=r),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),h=n.call(a,"finallyLoc");if(u&&h){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!h)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),v},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),k(e),v}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;k(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:N(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),v}},t}("object"==typeof module?module.exports:{});try{regeneratorRuntime=runtime}catch(t){Function("r","regeneratorRuntime = r")(runtime)} },{}],3:[function(require,module,exports){ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_util=require("./util");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _typeof(a){return(_typeof="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})(a)}function asyncGeneratorStep(a,r,e,t,n,i,o){try{var u=a[i](o),s=u.value}catch(a){return void e(a)}u.done?r(s):Promise.resolve(s).then(t,n)}function _asyncToGenerator(a){return function(){var r=this,e=arguments;return new Promise(function(t,n){var i=a.apply(r,e);function o(a){asyncGeneratorStep(i,t,n,o,u,"next",a)}function u(a){asyncGeneratorStep(i,t,n,o,u,"throw",a)}o(void 0)})}}function _classCallCheck(a,r){if(!(a instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(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)}}function _createClass(a,r,e){return r&&_defineProperties(a.prototype,r),e&&_defineProperties(a,e),a}var Kuroshiro=function(){function a(){_classCallCheck(this,a),this._analyzer=null}return _createClass(a,[{key:"init",value:function(){var a=_asyncToGenerator(_regenerator.default.mark(function a(r){return _regenerator.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(r&&"object"===_typeof(r)&&"function"==typeof r.init&&"function"==typeof r.parse){a.next=4;break}throw new Error("Invalid initialization parameter.");case 4:if(null!=this._analyzer){a.next=10;break}return a.next=7,r.init();case 7:this._analyzer=r,a.next=11;break;case 10:throw new Error("Kuroshiro has already been initialized.");case 11:case"end":return a.stop()}},a,this)}));return function(r){return a.apply(this,arguments)}}()},{key:"convert",value:function(){var a=_asyncToGenerator(_regenerator.default.mark(function a(r,e){var t,n,i,o,u,s,c,f,l,_,m,p,d,g,h,k,b,y,w,j,x,v,K,R,S,T,H,E,O,I,M;return _regenerator.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if((e=e||{}).to=e.to||"hiragana",e.mode=e.mode||"normal",e.romajiSystem=e.romajiSystem||_util.ROMANIZATION_SYSTEM.HEPBURN,e.delimiter_start=e.delimiter_start||"(",e.delimiter_end=e.delimiter_end||")",r=r||"",-1!==["hiragana","katakana","romaji"].indexOf(e.to)){a.next=9;break}throw new Error("Invalid Target Syllabary.");case 9:if(-1!==["normal","spaced","okurigana","furigana"].indexOf(e.mode)){a.next=11;break}throw new Error("Invalid Conversion Mode.");case 11:if(-1!==Object.keys(_util.ROMANIZATION_SYSTEM).map(function(a){return _util.ROMANIZATION_SYSTEM[a]}).indexOf(e.romajiSystem)){a.next=14;break}throw new Error("Invalid Romanization System.");case 14:return a.next=16,this._analyzer.parse(r);case 16:if(t=a.sent,n=(0,_util.patchTokens)(t),"normal"!==e.mode&&"spaced"!==e.mode){a.next=36;break}a.t0=e.to,a.next="katakana"===a.t0?22:"romaji"===a.t0?25:"hiragana"===a.t0?29:33;break;case 22:if("normal"!==e.mode){a.next=24;break}return a.abrupt("return",n.map(function(a){return a.reading}).join(""));case 24:return a.abrupt("return",n.map(function(a){return a.reading}).join(" "));case 25:if(i=function(a){var r;return r=(0,_util.hasJapanese)(a.surface_form)?a.pronunciation||a.reading:a.surface_form,(0,_util.toRawRomaji)(r,e.romajiSystem)},"normal"!==e.mode){a.next=28;break}return a.abrupt("return",n.map(i).join(""));case 28:return a.abrupt("return",n.map(i).join(" "));case 29:for(o=0;o<n.length;o++)if((0,_util.hasKanji)(n[o].surface_form))if((0,_util.hasKatakana)(n[o].surface_form)){for(n[o].reading=(0,_util.toRawHiragana)(n[o].reading),u="",s="",c=0;c<n[o].surface_form.length;c++)(0,_util.isKanji)(n[o].surface_form[c])?s+="(.*)":s+=(0,_util.isKatakana)(n[o].surface_form[c])?(0,_util.toRawHiragana)(n[o].surface_form[c]):n[o].surface_form[c];if(f=new RegExp(s),l=f.exec(n[o].reading)){for(_=0,m=0;m<n[o].surface_form.length;m++)(0,_util.isKanji)(n[o].surface_form[m])?(u+=l[_+1],_++):u+=n[o].surface_form[m];n[o].reading=u}}else n[o].reading=(0,_util.toRawHiragana)(n[o].reading);else n[o].reading=n[o].surface_form;if("normal"!==e.mode){a.next=32;break}return a.abrupt("return",n.map(function(a){return a.reading}).join(""));case 32:return a.abrupt("return",n.map(function(a){return a.reading}).join(" "));case 33:throw new Error("Unknown option.to param");case 34:a.next=73;break;case 36:if("okurigana"!==e.mode&&"furigana"!==e.mode){a.next=73;break}p=[],d=0;case 39:if(!(d<n.length)){a.next=62;break}g=(0,_util.getStrType)(n[d].surface_form),a.t1=g,a.next=0===a.t1?44:1===a.t1?46:2===a.t1?54:3===a.t1?56:58;break;case 44:return p.push([n[d].surface_form,1,(0,_util.toRawHiragana)(n[d].reading),n[d].pronunciation||n[d].reading]),a.abrupt("break",59);case 46:for(h="",k=!1,b=[],y=0;y<n[d].surface_form.length;y++)(0,_util.isKanji)(n[d].surface_form[y])?k?b[b.length-1]+=n[d].surface_form[y]:(k=!0,h+="(.+)",b.push(n[d].surface_form[y])):(k=!1,b.push(n[d].surface_form[y]),h+=(0,_util.isKatakana)(n[d].surface_form[y])?(0,_util.toRawHiragana)(n[d].surface_form[y]):n[d].surface_form[y]);if(w=new RegExp("^".concat(h,"$")),j=w.exec((0,_util.toRawHiragana)(n[d].reading)))for(x=1,v=0;v<b.length;v++)(0,_util.isKanji)(b[v][0])?(p.push([b[v],1,j[x],(0,_util.toRawKatakana)(j[x])]),x+=1):p.push([b[v],2,(0,_util.toRawHiragana)(b[v]),(0,_util.toRawKatakana)(b[v])]);else p.push([n[d].surface_form,1,(0,_util.toRawHiragana)(n[d].reading),n[d].pronunciation||n[d].reading]);return a.abrupt("break",59);case 54:for(K=0;K<n[d].surface_form.length;K++)p.push([n[d].surface_form[K],2,(0,_util.toRawHiragana)(n[d].reading[K]),n[d].pronunciation&&n[d].pronunciation[K]||n[d].reading[K]]);return a.abrupt("break",59);case 56:for(R=0;R<n[d].surface_form.length;R++)p.push([n[d].surface_form[R],3,n[d].surface_form[R],n[d].surface_form[R]]);return a.abrupt("break",59);case 58:throw new Error("Unknown strType");case 59:d++,a.next=39;break;case 62:S="",a.t2=e.to,a.next="katakana"===a.t2?66:"romaji"===a.t2?68:"hiragana"===a.t2?70:72;break;case 66:if("okurigana"===e.mode)for(T=0;T<p.length;T++)1!==p[T][1]?S+=p[T][0]:S+=p[T][0]+e.delimiter_start+(0,_util.toRawKatakana)(p[T][2])+e.delimiter_end;else for(H=0;H<p.length;H++)1!==p[H][1]?S+=p[H][0]:S+="<ruby>".concat(p[H][0],"<rp>").concat(e.delimiter_start,"</rp><rt>").concat((0,_util.toRawKatakana)(p[H][2]),"</rt><rp>").concat(e.delimiter_end,"</rp></ruby>");return a.abrupt("return",S);case 68:if("okurigana"===e.mode)for(E=0;E<p.length;E++)1!==p[E][1]?S+=p[E][0]:S+=p[E][0]+e.delimiter_start+(0,_util.toRawRomaji)(p[E][3],e.romajiSystem)+e.delimiter_end;else{for(S+="<ruby>",O=0;O<p.length;O++)S+="".concat(p[O][0],"<rp>").concat(e.delimiter_start,"</rp><rt>").concat((0,_util.toRawRomaji)(p[O][3],e.romajiSystem),"</rt><rp>").concat(e.delimiter_end,"</rp>");S+="</ruby>"}return a.abrupt("return",S);case 70:if("okurigana"===e.mode)for(I=0;I<p.length;I++)1!==p[I][1]?S+=p[I][0]:S+=p[I][0]+e.delimiter_start+p[I][2]+e.delimiter_end;else for(M=0;M<p.length;M++)1!==p[M][1]?S+=p[M][0]:S+="<ruby>".concat(p[M][0],"<rp>").concat(e.delimiter_start,"</rp><rt>").concat(p[M][2],"</rt><rp>").concat(e.delimiter_end,"</rp></ruby>");return a.abrupt("return",S);case 72:throw new Error("Invalid Target Syllabary.");case 73:case"end":return a.stop()}},a,this)}));return function(r,e){return a.apply(this,arguments)}}()}]),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;var _default=Kuroshiro;exports.default=_default; },{"./util":5,"@babel/runtime/regenerator":1}],4:[function(require,module,exports){ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _core=_interopRequireDefault(require("./core"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=_core.default;exports.default=_default; },{"./core":3}],5:[function(require,module,exports){ "use strict";function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,o){if(a){if("string"==typeof a)return _arrayLikeToArray(a,o);var e=Object.prototype.toString.call(a).slice(8,-1);return"Object"===e&&a.constructor&&(e=a.constructor.name),"Map"===e||"Set"===e?Array.from(a):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?_arrayLikeToArray(a,o):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,o){(null==o||o>a.length)&&(o=a.length);for(var e=0,r=new Array(o);e<o;e++)r[e]=a[e];return r}Object.defineProperty(exports,"__esModule",{value:!0}),exports.kanaToRomaji=exports.kanaToKatakana=exports.kanaToHiragna=exports.toRawRomaji=exports.toRawKatakana=exports.toRawHiragana=exports.hasJapanese=exports.hasKanji=exports.hasKana=exports.hasKatakana=exports.hasHiragana=exports.isJapanese=exports.isKanji=exports.isKana=exports.isKatakana=exports.isHiragana=exports.patchTokens=exports.getStrType=exports.ROMANIZATION_SYSTEM=void 0;var KATAKANA_HIRAGANA_SHIFT="ぁ".charCodeAt(0)-"ァ".charCodeAt(0),HIRAGANA_KATAKANA_SHIFT="ァ".charCodeAt(0)-"ぁ".charCodeAt(0),ROMANIZATION_SYSTEM={NIPPON:"nippon",PASSPORT:"passport",HEPBURN:"hepburn"};exports.ROMANIZATION_SYSTEM=ROMANIZATION_SYSTEM;var isHiragana=function(a){return(a=a[0])>="぀"&&a<="ゟ"};exports.isHiragana=isHiragana;var isKatakana=function(a){return(a=a[0])>="゠"&&a<="ヿ"};exports.isKatakana=isKatakana;var isKana=function(a){return isHiragana(a)||isKatakana(a)};exports.isKana=isKana;var isKanji=function(a){return(a=a[0])>="一"&&a<="鿏"||a>="豈"&&a<="﫿"||a>="㐀"&&a<="䶿"};exports.isKanji=isKanji;var isJapanese=function(a){return isKana(a)||isKanji(a)};exports.isJapanese=isJapanese;var hasHiragana=function(a){for(var o=0;o<a.length;o++)if(isHiragana(a[o]))return!0;return!1};exports.hasHiragana=hasHiragana;var hasKatakana=function(a){for(var o=0;o<a.length;o++)if(isKatakana(a[o]))return!0;return!1};exports.hasKatakana=hasKatakana;var hasKana=function(a){for(var o=0;o<a.length;o++)if(isKana(a[o]))return!0;return!1};exports.hasKana=hasKana;var hasKanji=function(a){for(var o=0;o<a.length;o++)if(isKanji(a[o]))return!0;return!1};exports.hasKanji=hasKanji;var hasJapanese=function(a){for(var o=0;o<a.length;o++)if(isJapanese(a[o]))return!0;return!1};exports.hasJapanese=hasJapanese;var toRawHiragana=function(a){return _toConsumableArray(a).map(function(a){return a>"゠"&&a<"ヷ"?String.fromCharCode(a.charCodeAt(0)+KATAKANA_HIRAGANA_SHIFT):a}).join("")};exports.toRawHiragana=toRawHiragana;var toRawKatakana=function(a){return _toConsumableArray(a).map(function(a){return a>"぀"&&a<"゗"?String.fromCharCode(a.charCodeAt(0)+HIRAGANA_KATAKANA_SHIFT):a}).join("")};exports.toRawKatakana=toRawKatakana;var toRawRomaji=function(a,o){var e,r,n={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"}},t=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 u,y=new RegExp(/(ん|ン)(?=あ|い|う|え|お|ア|イ|ウ|エ|オ|ぁ|ぃ|ぅ|ぇ|ぉ|ァ|ィ|ゥ|ェ|ォ|や|ゆ|よ|ヤ|ユ|ヨ|ゃ|ゅ|ょ|ャ|ュ|ョ)/g),s=[];null!==(u=y.exec(a));)s.push(u.index+1);if(0!==s.length){for(var p="",h=0;h<s.length;h++)p+="".concat(0===h?a.slice(0,s[h]):a.slice(s[h-1],s[h]),"'");p+=a.slice(s[s.length-1]),a=p}}for(var g=a.length;t<=g;)(r=n[o][a.substring(t,t+2)])?(i+=r,t+=2):(i+=(r=n[o][e=a.substring(t,t+1)])?r:e,t+=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};exports.toRawRomaji=toRawRomaji;var getStrType=function(a){for(var o=!1,e=!1,r=0;r<a.length;r++)isKanji(a[r])?o=!0:(isHiragana(a[r])||isKatakana(a[r]))&&(e=!0);return o&&e?1:o?0:e?2:3};exports.getStrType=getStrType;var 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="".concat(a[e-1].reading,"ー"),a[e-1].reading+="ウ",a.splice(e,1),e--);for(var r=0;r<a.length;r++)a[r].pos&&("動詞"===a[r].pos||"形容詞"===a[r].pos)&&a[r].surface_form.length>1&&("っ"===a[r].surface_form[a[r].surface_form.length-1]||"ッ"===a[r].surface_form[a[r].surface_form.length-1])&&r+1<a.length&&(a[r].surface_form+=a[r+1].surface_form,a[r].pronunciation?a[r].pronunciation+=a[r+1].pronunciation:a[r].pronunciation="".concat(a[r].reading).concat(a[r+1].reading),a[r].reading+=a[r+1].reading,a.splice(r+1,1),r--);return a};exports.patchTokens=patchTokens;var kanaToHiragna=function(a){return toRawHiragana(a)};exports.kanaToHiragna=kanaToHiragna;var kanaToKatakana=function(a){return toRawKatakana(a)};exports.kanaToKatakana=kanaToKatakana;var kanaToRomaji=function(a,o){return toRawRomaji(a,o)};exports.kanaToRomaji=kanaToRomaji; },{}]},{},[4])(4) });