yomitan-core 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +8 -1
  2. package/dist/anki-connect-B2UXtiUS.js +6 -0
  3. package/dist/anki-connect-BXvjYYm0.cjs +6 -0
  4. package/dist/{anki-connect-B_YpChhu.cjs → anki-connect-DGx7Gr0H.cjs} +3 -3
  5. package/dist/{anki-connect-B_YpChhu.cjs.map → anki-connect-DGx7Gr0H.cjs.map} +1 -1
  6. package/dist/{anki-connect-697E04LF.js → anki-connect-Dau8nAXZ.js} +3 -3
  7. package/dist/{anki-connect-697E04LF.js.map → anki-connect-Dau8nAXZ.js.map} +1 -1
  8. package/dist/anki.cjs +6 -6
  9. package/dist/anki.d.cts.map +1 -1
  10. package/dist/anki.d.ts +2 -2
  11. package/dist/anki.d.ts.map +1 -1
  12. package/dist/anki.js +6 -6
  13. package/dist/{audio-ZuaDkaUZ.d.ts → audio-DN-FhZ5k.d.ts} +1 -1
  14. package/dist/{audio-ZuaDkaUZ.d.ts.map → audio-DN-FhZ5k.d.ts.map} +1 -1
  15. package/dist/{audio-url-generator-CgTMaTM2.js → audio-url-generator-C7mkxYeq.js} +2 -2
  16. package/dist/{audio-url-generator-CfXaxZ47.cjs → audio-url-generator-CZECihX-.cjs} +2 -2
  17. package/dist/{audio-url-generator-C23AXVj1.cjs → audio-url-generator-CorFRyBU.cjs} +2 -2
  18. package/dist/{audio-url-generator-C23AXVj1.cjs.map → audio-url-generator-CorFRyBU.cjs.map} +1 -1
  19. package/dist/{audio-url-generator-DykdzZJu.js → audio-url-generator-_6Qk0i3T.js} +2 -2
  20. package/dist/{audio-url-generator-DykdzZJu.js.map → audio-url-generator-_6Qk0i3T.js.map} +1 -1
  21. package/dist/audio.cjs +2 -2
  22. package/dist/audio.d.ts +2 -2
  23. package/dist/audio.js +2 -2
  24. package/dist/{batch-processor-CXZZhx5t.js → batch-processor-BR-gB3H3.js} +1 -1
  25. package/dist/{batch-processor-CXZZhx5t.js.map → batch-processor-BR-gB3H3.js.map} +1 -1
  26. package/dist/batch-processor-CSF1acTw.cjs +3 -0
  27. package/dist/{batch-processor-C8pSzqRE.cjs → batch-processor-DFqM_L-_.cjs} +1 -1
  28. package/dist/{batch-processor-C8pSzqRE.cjs.map → batch-processor-DFqM_L-_.cjs.map} +1 -1
  29. package/dist/batch-processor-Quo9jUyf.js +3 -0
  30. package/dist/{core-C_0QjRBI.d.ts → core-CRjMTF7c.d.ts} +1 -1
  31. package/dist/{core-C_0QjRBI.d.ts.map → core-CRjMTF7c.d.ts.map} +1 -1
  32. package/dist/database.d.ts +3 -3
  33. package/dist/debug-I2dyAd2e.cjs +51 -0
  34. package/dist/debug-I2dyAd2e.cjs.map +1 -0
  35. package/dist/debug-hF63AFkq.js +38 -0
  36. package/dist/debug-hF63AFkq.js.map +1 -0
  37. package/dist/{dictionary-CfzEFbXZ.d.ts → dictionary-DdxghSJP.d.ts} +1 -1
  38. package/dist/{dictionary-CfzEFbXZ.d.ts.map → dictionary-DdxghSJP.d.ts.map} +1 -1
  39. package/dist/{dictionary-data-util-BY_72f3u.cjs → dictionary-data-util-DmLJMtGc.cjs} +1 -1
  40. package/dist/{dictionary-data-util-BY_72f3u.cjs.map → dictionary-data-util-DmLJMtGc.cjs.map} +1 -1
  41. package/dist/{dictionary-data-util-CKDT7n2t.js → dictionary-data-util-gUUD9ElK.js} +1 -1
  42. package/dist/{dictionary-data-util-CKDT7n2t.js.map → dictionary-data-util-gUUD9ElK.js.map} +1 -1
  43. package/dist/{dictionary-database-BRAqOF_M.d.ts → dictionary-database-D0lvK2n3.d.ts} +2 -2
  44. package/dist/{dictionary-database-BRAqOF_M.d.ts.map → dictionary-database-D0lvK2n3.d.ts.map} +1 -1
  45. package/dist/{dictionary-importer-C7mNL5CJ.js → dictionary-importer-BPlLeF5R.js} +5 -5
  46. package/dist/{dictionary-importer-C7mNL5CJ.js.map → dictionary-importer-BPlLeF5R.js.map} +1 -1
  47. package/dist/{dictionary-importer-CbMwsqEX.cjs → dictionary-importer-BvgP1Fs9.cjs} +5 -5
  48. package/dist/{dictionary-importer-CbMwsqEX.cjs.map → dictionary-importer-BvgP1Fs9.cjs.map} +1 -1
  49. package/dist/{dictionary-importer-C-AlWsIN.d.ts → dictionary-importer-CDbCAbwG.d.ts} +2 -2
  50. package/dist/{dictionary-importer-C-AlWsIN.d.ts.map → dictionary-importer-CDbCAbwG.d.ts.map} +1 -1
  51. package/dist/dictionary-importer-DEMVqTjR.js +8 -0
  52. package/dist/dictionary-importer-Luz6usUQ.cjs +8 -0
  53. package/dist/{dictionary-update-checker-DE2ymYcs.js → dictionary-update-checker-CLbtQ48X.js} +2 -2
  54. package/dist/{dictionary-update-checker-DE2ymYcs.js.map → dictionary-update-checker-CLbtQ48X.js.map} +1 -1
  55. package/dist/dictionary-update-checker-CsS7MxK_.js +4 -0
  56. package/dist/{dictionary-update-checker-CU3q0aoP.cjs → dictionary-update-checker-DgjPsURI.cjs} +2 -2
  57. package/dist/{dictionary-update-checker-xIwF77-R.cjs → dictionary-update-checker-DmiIUoKw.cjs} +2 -2
  58. package/dist/{dictionary-update-checker-xIwF77-R.cjs.map → dictionary-update-checker-DmiIUoKw.cjs.map} +1 -1
  59. package/dist/{display-generator-vjbG05fn.js → display-generator-BAEJDrHT.js} +9 -7
  60. package/dist/display-generator-BAEJDrHT.js.map +1 -0
  61. package/dist/display-generator-D5fkD0JI.cjs +10 -0
  62. package/dist/display-generator-DZLMaVuP.js +10 -0
  63. package/dist/{display-generator-BhV_MOD1.cjs → display-generator-D_0chBzj.cjs} +9 -7
  64. package/dist/display-generator-D_0chBzj.cjs.map +1 -0
  65. package/dist/{errors-ZI2FcGUl.cjs → errors-0pIJI6N2.cjs} +1 -1
  66. package/dist/{errors-ZI2FcGUl.cjs.map → errors-0pIJI6N2.cjs.map} +1 -1
  67. package/dist/{errors-D2JfYV-C.js → errors-DvKlMRXC.js} +1 -1
  68. package/dist/{errors-D2JfYV-C.js.map → errors-DvKlMRXC.js.map} +1 -1
  69. package/dist/frequency-ranking-BXjfhhUQ.js +3 -0
  70. package/dist/{frequency-ranking-DmNIoxut.cjs → frequency-ranking-Cx1kkIrw.cjs} +1 -1
  71. package/dist/{frequency-ranking-DzbdZghE.js → frequency-ranking-DEJMTMdg.js} +1 -1
  72. package/dist/{frequency-ranking-DzbdZghE.js.map → frequency-ranking-DEJMTMdg.js.map} +1 -1
  73. package/dist/{frequency-ranking-Dm6xCMkY.cjs → frequency-ranking-DVYxTXN-.cjs} +1 -1
  74. package/dist/{frequency-ranking-Dm6xCMkY.cjs.map → frequency-ranking-DVYxTXN-.cjs.map} +1 -1
  75. package/dist/furigana-MU_j_m5i.cjs +5 -0
  76. package/dist/{furigana-BnY7-dJ-.cjs → furigana-SZuBaUyl.cjs} +2 -2
  77. package/dist/{furigana-BnY7-dJ-.cjs.map → furigana-SZuBaUyl.cjs.map} +1 -1
  78. package/dist/furigana-ZCs0Xs0b.js +5 -0
  79. package/dist/{furigana-CI6LUA-6.js → furigana-h18vaQ7a.js} +2 -2
  80. package/dist/{furigana-CI6LUA-6.js.map → furigana-h18vaQ7a.js.map} +1 -1
  81. package/dist/import.cjs +6 -6
  82. package/dist/import.d.ts +3 -3
  83. package/dist/import.js +6 -6
  84. package/dist/index.cjs +44 -18
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.d.cts +3 -3
  87. package/dist/index.d.cts.map +1 -1
  88. package/dist/index.d.ts +10 -10
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +44 -18
  91. package/dist/index.js.map +1 -1
  92. package/dist/{japanese-BVV1Ctk-.cjs → japanese-C83fmEfb.cjs} +1 -1
  93. package/dist/{japanese-BVV1Ctk-.cjs.map → japanese-C83fmEfb.cjs.map} +1 -1
  94. package/dist/{japanese-DhmmW35J.js → japanese-OKEGf_i4.js} +2 -2
  95. package/dist/{japanese-DhmmW35J.js.map → japanese-OKEGf_i4.js.map} +1 -1
  96. package/dist/{json-CyQBn52D.cjs → json-Cdj6aIOQ.cjs} +1 -1
  97. package/dist/{json-CyQBn52D.cjs.map → json-Cdj6aIOQ.cjs.map} +1 -1
  98. package/dist/{json-DTq_IXXF.js → json-rIgOFqVY.js} +1 -1
  99. package/dist/{json-DTq_IXXF.js.map → json-rIgOFqVY.js.map} +1 -1
  100. package/dist/{language-DFFp_7nc.d.ts → language-DMwuc2-C.d.ts} +1 -1
  101. package/dist/{language-DFFp_7nc.d.ts.map → language-DMwuc2-C.d.ts.map} +1 -1
  102. package/dist/language.cjs +12 -12
  103. package/dist/language.d.cts +41 -3
  104. package/dist/language.d.cts.map +1 -1
  105. package/dist/language.d.ts +44 -6
  106. package/dist/language.d.ts.map +1 -1
  107. package/dist/language.js +5 -5
  108. package/dist/lookup.cjs +7 -6
  109. package/dist/lookup.d.cts +5 -78
  110. package/dist/lookup.d.cts.map +1 -1
  111. package/dist/lookup.d.ts +8 -81
  112. package/dist/lookup.d.ts.map +1 -1
  113. package/dist/lookup.js +7 -6
  114. package/dist/{media-loader-CMEuD0fn.js → media-loader-C1WZVVaA.js} +1 -1
  115. package/dist/{media-loader-CMEuD0fn.js.map → media-loader-C1WZVVaA.js.map} +1 -1
  116. package/dist/media-loader-CWNb22gc.cjs +3 -0
  117. package/dist/media-loader-CrQnDnSp.js +3 -0
  118. package/dist/{media-loader-DS2ZXpSI.cjs → media-loader-RE32nGs3.cjs} +1 -1
  119. package/dist/{media-loader-DS2ZXpSI.cjs.map → media-loader-RE32nGs3.cjs.map} +1 -1
  120. package/dist/{multi-language-transformer-CjLO0S8V.d.ts → multi-language-transformer-CFu0CVWY.d.ts} +3 -3
  121. package/dist/{multi-language-transformer-CjLO0S8V.d.ts.map → multi-language-transformer-CFu0CVWY.d.ts.map} +1 -1
  122. package/dist/multi-language-transformer-Dk8S4W6j.js +12503 -0
  123. package/dist/multi-language-transformer-Dk8S4W6j.js.map +1 -0
  124. package/dist/{multi-language-transformer-B2133Zg_.cjs → multi-language-transformer-N66Mmb2E.cjs} +9614 -5
  125. package/dist/multi-language-transformer-N66Mmb2E.cjs.map +1 -0
  126. package/dist/{pronunciation-generator-cNtAQi5s.js → pronunciation-generator-BXcwS3By.js} +2 -2
  127. package/dist/{pronunciation-generator-cNtAQi5s.js.map → pronunciation-generator-BXcwS3By.js.map} +1 -1
  128. package/dist/{pronunciation-generator-CPwnr43z.cjs → pronunciation-generator-CP1kjYje.cjs} +1 -1
  129. package/dist/{pronunciation-generator-B8y__W7I.cjs → pronunciation-generator-CeC3LFPU.cjs} +1 -1
  130. package/dist/{pronunciation-generator-B8y__W7I.cjs.map → pronunciation-generator-CeC3LFPU.cjs.map} +1 -1
  131. package/dist/{pronunciation-generator-BvTbUlOy.js → pronunciation-generator-I1xpdJu0.js} +1 -1
  132. package/dist/render.cjs +96 -8
  133. package/dist/render.cjs.map +1 -1
  134. package/dist/render.d.cts +33 -3
  135. package/dist/render.d.cts.map +1 -1
  136. package/dist/render.d.ts +35 -5
  137. package/dist/render.d.ts.map +1 -1
  138. package/dist/render.js +95 -9
  139. package/dist/render.js.map +1 -1
  140. package/dist/{sentence-parser-DUQJ3cTT.cjs → sentence-parser-8i1Y_OGS.cjs} +74 -46
  141. package/dist/sentence-parser-8i1Y_OGS.cjs.map +1 -0
  142. package/dist/{translator-TiTDVbmS.d.cts → sentence-parser-BQpu2oSA.d.cts} +80 -4
  143. package/dist/sentence-parser-BQpu2oSA.d.cts.map +1 -0
  144. package/dist/{sentence-parser-sx7y6Oyh.js → sentence-parser-CXDs4R_c.js} +74 -46
  145. package/dist/sentence-parser-CXDs4R_c.js.map +1 -0
  146. package/dist/{translator-CYvGmODX.d.ts → sentence-parser-CmsHUc_p.d.ts} +81 -5
  147. package/dist/sentence-parser-CmsHUc_p.d.ts.map +1 -0
  148. package/dist/sentence-parser-DQccqSpq.cjs +6 -0
  149. package/dist/sentence-parser-DsleseSI.js +6 -0
  150. package/dist/structured-content-generator-BhEkwa0T.js +4 -0
  151. package/dist/{structured-content-generator-C5Hhaurz.cjs → structured-content-generator-CokLKgrb.cjs} +2 -2
  152. package/dist/{structured-content-generator-C5Hhaurz.cjs.map → structured-content-generator-CokLKgrb.cjs.map} +1 -1
  153. package/dist/{structured-content-generator-D48bLhPA.cjs → structured-content-generator-_z5dJECG.cjs} +2 -2
  154. package/dist/{structured-content-generator-aJieXElq.js → structured-content-generator-gnjtdBcC.js} +2 -2
  155. package/dist/{structured-content-generator-aJieXElq.js.map → structured-content-generator-gnjtdBcC.js.map} +1 -1
  156. package/dist/{text-utilities-CFDC9Bkr.cjs → text-utilities-CTsN1Bq8.cjs} +1 -1
  157. package/dist/{text-utilities-CFDC9Bkr.cjs.map → text-utilities-CTsN1Bq8.cjs.map} +1 -1
  158. package/dist/{text-utilities-D5eno9GK.js → text-utilities-DjLdStjv.js} +1 -1
  159. package/dist/{text-utilities-D5eno9GK.js.map → text-utilities-DjLdStjv.js.map} +1 -1
  160. package/dist/translator-BGI37WRC.js +7 -0
  161. package/dist/translator-Cd1ECBM1.cjs +7 -0
  162. package/dist/{translator-B1uTusjx.cjs → translator-ClzybVmi.cjs} +2 -2
  163. package/dist/{translator-B1uTusjx.cjs.map → translator-ClzybVmi.cjs.map} +1 -1
  164. package/dist/{translator-CrDE1UJW.js → translator-jFVzLjEs.js} +2 -2
  165. package/dist/{translator-CrDE1UJW.js.map → translator-jFVzLjEs.js.map} +1 -1
  166. package/package.json +1 -1
  167. package/dist/anki-connect-D-02BbHi.cjs +0 -6
  168. package/dist/anki-connect-Vn-cnxs8.js +0 -6
  169. package/dist/batch-processor-DItpL6Pp.js +0 -3
  170. package/dist/batch-processor-fiLvFS2_.cjs +0 -3
  171. package/dist/dictionary-importer-B9M3SD2y.js +0 -8
  172. package/dist/dictionary-importer-DnR8Bsai.cjs +0 -8
  173. package/dist/dictionary-update-checker-Cnjz4tQD.js +0 -4
  174. package/dist/display-generator-BhV_MOD1.cjs.map +0 -1
  175. package/dist/display-generator-Cn4vCiSI.js +0 -10
  176. package/dist/display-generator-G2e03o0R.cjs +0 -10
  177. package/dist/display-generator-vjbG05fn.js.map +0 -1
  178. package/dist/frequency-ranking-B-kvnxro.js +0 -3
  179. package/dist/furigana-cpPhFnBv.cjs +0 -5
  180. package/dist/furigana-kZjqnnFC.js +0 -5
  181. package/dist/japanese-DdsS8rT1.d.ts +0 -41
  182. package/dist/japanese-DdsS8rT1.d.ts.map +0 -1
  183. package/dist/japanese-DgmP3i76.d.cts +0 -41
  184. package/dist/japanese-DgmP3i76.d.cts.map +0 -1
  185. package/dist/media-loader-BBTESZXn.cjs +0 -3
  186. package/dist/media-loader-CNKoAjQs.js +0 -3
  187. package/dist/multi-language-transformer-B2133Zg_.cjs.map +0 -1
  188. package/dist/multi-language-transformer-BkwMTV2g.js +0 -2893
  189. package/dist/multi-language-transformer-BkwMTV2g.js.map +0 -1
  190. package/dist/sentence-parser-B-gM8mKk.js +0 -5
  191. package/dist/sentence-parser-Cp3cm_QU.cjs +0 -5
  192. package/dist/sentence-parser-DUQJ3cTT.cjs.map +0 -1
  193. package/dist/sentence-parser-sx7y6Oyh.js.map +0 -1
  194. package/dist/structured-content-generator-Dww8IT7Y.js +0 -4
  195. package/dist/translator-BiTHo9Nm.js +0 -7
  196. package/dist/translator-CYvGmODX.d.ts.map +0 -1
  197. package/dist/translator-TiTDVbmS.d.cts.map +0 -1
  198. package/dist/translator-Y7Haj_qJ.cjs +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/settings.ts","../src/util/errors.ts","../src/util/event-dispatcher.ts","../src/util/log.ts","../src/index.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/settings.ts","../src/util/errors.ts","../src/util/event-dispatcher.ts","../src/util/log.ts","../src/index.ts"],"sourcesContent":null,"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { ApiReflectResult, CanAddNotesDetail, CardId, CardInfo, DeferredPromiseDetails, EventArgument, EventDispatcherOffGeneric, EventHandler, EventHandlerAny, EventNames, EventSurface, MessageBody, Note, NoteFieldInfo, NoteFields, NoteId, NoteInfo, NoteInfoWrapper, NoteWithId, RejectionReason, SafeAny, SerializableObject, Timeout, TokenObject, TokenString, TypeofResult, UnknownObject } from "./core-C_0QjRBI.js";
2
- import { Content, Data, DictionaryEntry, DictionaryEntryType, Element, FontStyle, FontWeight, Image, ImageAppearance, ImageElement, ImageElementBase, ImageRendering, InflectionRule, InflectionRuleChain, InflectionRuleChainCandidate, InflectionSource, KanjiDictionaryEntry, KanjiFrequency, KanjiStat, KanjiStatGroups, LineBreak, LinkElement, PhoneticTranscription, PitchAccent, Pronunciation, PronunciationGeneric, PronunciationType, SizeUnits, StructuredContentStyle, StyledElement, TableElement, Tag, TermDefinition, TermDictionaryEntry, TermFrequency, TermHeadword, TermPronunciation, TermSource, TermSourceMatchSource, TermSourceMatchType, TextAlign, TextDecorationLine, TextDecorationLineOrNone, TextDecorationStyle, TextProcessorRuleChainCandidate, UnstyledElement, VerticalAlign, WordBreak } from "./dictionary-CfzEFbXZ.js";
3
- import { AudioInfo, AudioSourceInfo, AudioSourceType, AudioTtsInfo, AudioUrlInfo, CustomAudioList, WikimediaCommonsFileResponse, WikimediaCommonsLookupResponse } from "./audio-ZuaDkaUZ.js";
4
- import { BidirectionalConversionPreprocessor, BidirectionalPreprocessorOptions, Condition, ConditionMapEntries, ConditionMapEntry, ConditionMapObject, DeinflectFunction, IsTextLookupWorthyFunction, LanguageAndProcessors, LanguageAndReadingNormalizer, LanguageAndTransforms, LanguageDescriptorAny, LanguageSummary, LanguageTransformDescriptor, ReadingNormalizer, Rule, RuleI18n, SuffixRule, TextProcessor, TextProcessorFunction, TextProcessorOptions, TextProcessorWithId, Transform, TransformI18n, TransformMapObject } from "./language-DFFp_7nc.js";
5
- import { ArchiveFileMap, CompiledSchemaName, CompiledSchemaNameArray, CompiledSchemaValidators, DeleteDictionaryProgressCallback, ImageImportRequirement, ImportDetails, ImportRequirement, ImportRequirementContext, ImportResult, ImportStep, ImportSteps, OnProgressCallback, ProgressData, QueryDetails, QueryResult, StructuredContentImageImportRequirement, Summary, SummaryCounts, SummaryDetails, SummaryItemCount, SummaryMetaCount } from "./dictionary-importer-C-AlWsIN.js";
6
- import { DictionaryDB$1 as DictionaryDB, YomitanDatabase$1 as YomitanDatabase } from "./dictionary-database-BRAqOF_M.js";
7
- import { FindKanjiDictionary, FindKanjiOptions, FindTermDictionary, FindTermsMatchType, FindTermsMode, FindTermsOptions, FindTermsSortOrder, FindTermsTextReplacement, FindTermsTextReplacements, KanjiEnabledDictionaryMap, SearchResolution, TermEnabledDictionaryMap, Translator$1 as Translator } from "./translator-CYvGmODX.js";
8
- import { MultiLanguageTransformer$1 as MultiLanguageTransformer, getAllLanguageTextProcessors$1 as getAllLanguageTextProcessors, getLanguageSummaries$1 as getLanguageSummaries, isTextLookupWorthy$1 as isTextLookupWorthy } from "./multi-language-transformer-CjLO0S8V.js";
1
+ import { ApiReflectResult, CanAddNotesDetail, CardId, CardInfo, DeferredPromiseDetails, EventArgument, EventDispatcherOffGeneric, EventHandler, EventHandlerAny, EventNames, EventSurface, MessageBody, Note, NoteFieldInfo, NoteFields, NoteId, NoteInfo, NoteInfoWrapper, NoteWithId, RejectionReason, SafeAny, SerializableObject, Timeout, TokenObject, TokenString, TypeofResult, UnknownObject } from "./core-CRjMTF7c.js";
2
+ import { Content, Data, DictionaryEntry, DictionaryEntryType, Element, FontStyle, FontWeight, Image, ImageAppearance, ImageElement, ImageElementBase, ImageRendering, InflectionRule, InflectionRuleChain, InflectionRuleChainCandidate, InflectionSource, KanjiDictionaryEntry, KanjiFrequency, KanjiStat, KanjiStatGroups, LineBreak, LinkElement, PhoneticTranscription, PitchAccent, Pronunciation, PronunciationGeneric, PronunciationType, SizeUnits, StructuredContentStyle, StyledElement, TableElement, Tag, TermDefinition, TermDictionaryEntry, TermFrequency, TermHeadword, TermPronunciation, TermSource, TermSourceMatchSource, TermSourceMatchType, TextAlign, TextDecorationLine, TextDecorationLineOrNone, TextDecorationStyle, TextProcessorRuleChainCandidate, UnstyledElement, VerticalAlign, WordBreak } from "./dictionary-DdxghSJP.js";
3
+ import { AudioInfo, AudioSourceInfo, AudioSourceType, AudioTtsInfo, AudioUrlInfo, CustomAudioList, WikimediaCommonsFileResponse, WikimediaCommonsLookupResponse } from "./audio-DN-FhZ5k.js";
4
+ import { BidirectionalConversionPreprocessor, BidirectionalPreprocessorOptions, Condition, ConditionMapEntries, ConditionMapEntry, ConditionMapObject, DeinflectFunction, IsTextLookupWorthyFunction, LanguageAndProcessors, LanguageAndReadingNormalizer, LanguageAndTransforms, LanguageDescriptorAny, LanguageSummary, LanguageTransformDescriptor, ReadingNormalizer, Rule, RuleI18n, SuffixRule, TextProcessor, TextProcessorFunction, TextProcessorOptions, TextProcessorWithId, Transform, TransformI18n, TransformMapObject } from "./language-DMwuc2-C.js";
5
+ import { ArchiveFileMap, CompiledSchemaName, CompiledSchemaNameArray, CompiledSchemaValidators, DeleteDictionaryProgressCallback, ImageImportRequirement, ImportDetails, ImportRequirement, ImportRequirementContext, ImportResult, ImportStep, ImportSteps, OnProgressCallback, ProgressData, QueryDetails, QueryResult, StructuredContentImageImportRequirement, Summary, SummaryCounts, SummaryDetails, SummaryItemCount, SummaryMetaCount } from "./dictionary-importer-CDbCAbwG.js";
6
+ import { DictionaryDB$1 as DictionaryDB, YomitanDatabase$1 as YomitanDatabase } from "./dictionary-database-D0lvK2n3.js";
7
+ import { FindKanjiDictionary, FindKanjiOptions, FindTermDictionary, FindTermsMatchType, FindTermsMode, FindTermsOptions, FindTermsSortOrder, FindTermsTextReplacement, FindTermsTextReplacements, KanjiEnabledDictionaryMap, ParseTextHeadword, ParseTextLine, ParseTextResultItem, ParseTextSegment, SearchResolution, TermEnabledDictionaryMap, Translator$1 as Translator } from "./sentence-parser-CmsHUc_p.js";
8
+ import { MultiLanguageTransformer$1 as MultiLanguageTransformer, getAllLanguageTextProcessors$1 as getAllLanguageTextProcessors, getLanguageSummaries$1 as getLanguageSummaries, isTextLookupWorthy$1 as isTextLookupWorthy } from "./multi-language-transformer-CFu0CVWY.js";
9
9
 
10
10
  //#region src/types/settings.d.ts
11
11
  type AnkiDuplicateScope = 'collection' | 'deck' | 'deck-root';
@@ -181,7 +181,7 @@ declare class YomitanCore {
181
181
  removeNonJapaneseCharacters?: boolean;
182
182
  deinflect?: boolean;
183
183
  textReplacements?: (FindTermsTextReplacement[] | null)[];
184
- }): Promise<unknown[]>;
184
+ }): Promise<ParseTextResultItem[]>;
185
185
  generateFurigana(text: string, reading: string): Promise<FuriganaSegment[]>;
186
186
  batchLookup(texts: string[], config: {
187
187
  language?: string;
@@ -216,5 +216,5 @@ declare class YomitanCore {
216
216
  }
217
217
 
218
218
  //#endregion
219
- export { AnkiDuplicateScope, AnkiOptions, ApiReflectResult, ArchiveFileMap, AudioInfo, AudioOptions, AudioSourceInfo, AudioSourceOptions, AudioSourceType, AudioTtsInfo, AudioUrlInfo, BidirectionalConversionPreprocessor, BidirectionalPreprocessorOptions, CanAddNotesDetail, CardId, CardInfo, CompiledSchemaName, CompiledSchemaNameArray, CompiledSchemaValidators, Condition, ConditionMapEntries, ConditionMapEntry, ConditionMapObject, Content, CustomAudioList, Data, DeferredPromiseDetails, DeinflectFunction, DictionaryDB, DictionaryEntry, DictionaryEntryType, DictionaryUpdateInfo, Element, EventArgument, EventDispatcher, EventDispatcherOffGeneric, EventHandler, EventHandlerAny, EventNames, EventSurface, FindKanjiDictionary, FindKanjiOptions, FindTermDictionary, FindTermsMatchType, FindTermsOptions, FindTermsSortOrder, FindTermsTextReplacement, FindTermsTextReplacements, FontStyle, FontWeight, FrequencyRankingResult, FuriganaSegment, GeneralOptions, Image, ImageAppearance, ImageElement, ImageElementBase, ImageImportRequirement, ImageRendering, ImportDetails, ImportRequirement, ImportRequirementContext, ImportResult, ImportStep, ImportSteps, InflectionRule, InflectionRuleChain, InflectionRuleChainCandidate, InflectionSource, IsTextLookupWorthyFunction, KanjiDictionaryEntry, KanjiEnabledDictionaryMap, KanjiFrequency, KanjiStat, KanjiStatGroups, LanguageAndProcessors, LanguageAndReadingNormalizer, LanguageAndTransforms, LanguageDescriptorAny, LanguageSummary, LanguageTransformDescriptor, LineBreak, LinkElement, MessageBody, Note, NoteFieldInfo, NoteFields, NoteId, NoteInfo, NoteInfoWrapper, NoteWithId, OnProgressCallback, PhoneticTranscription, PitchAccent, ProfileOptions, ProgressData, Pronunciation, PronunciationGeneric, PronunciationType, QueryDetails, QueryResult, ReadingNormalizer, RejectionReason, Rule, RuleI18n, SafeAny, SearchResolution, SerializableObject, SizeUnits, StructuredContentImageImportRequirement, StructuredContentStyle, StyledElement, SuffixRule, Summary, SummaryCounts, SummaryDetails, SummaryItemCount, SummaryMetaCount, TableElement, Tag, TermDefinition, TermDictionaryEntry, TermEnabledDictionaryMap, TermFrequency, TermHeadword, TermLookupResult, TermPronunciation, TermSource, TermSourceMatchSource, TermSourceMatchType, TextAlign, TextDecorationLine, TextDecorationLineOrNone, TextDecorationStyle, TextProcessor, TextProcessorFunction, TextProcessorOptions, TextProcessorRuleChainCandidate, TextProcessorWithId, Timeout, TokenObject, TokenString, Transform, TransformI18n, TransformMapObject, TranslationOptions, TypeofResult, UnknownObject, UnstyledElement, VerticalAlign, WikimediaCommonsFileResponse, WikimediaCommonsLookupResponse, WordBreak, YomitanCore, YomitanCoreConfig, YomitanDatabase, YomitanError, YomitanCore as default, log, toError };
219
+ export { AnkiDuplicateScope, AnkiOptions, ApiReflectResult, ArchiveFileMap, AudioInfo, AudioOptions, AudioSourceInfo, AudioSourceOptions, AudioSourceType, AudioTtsInfo, AudioUrlInfo, BidirectionalConversionPreprocessor, BidirectionalPreprocessorOptions, CanAddNotesDetail, CardId, CardInfo, CompiledSchemaName, CompiledSchemaNameArray, CompiledSchemaValidators, Condition, ConditionMapEntries, ConditionMapEntry, ConditionMapObject, Content, CustomAudioList, Data, DeferredPromiseDetails, DeinflectFunction, DictionaryDB, DictionaryEntry, DictionaryEntryType, DictionaryUpdateInfo, Element, EventArgument, EventDispatcher, EventDispatcherOffGeneric, EventHandler, EventHandlerAny, EventNames, EventSurface, FindKanjiDictionary, FindKanjiOptions, FindTermDictionary, FindTermsMatchType, FindTermsOptions, FindTermsSortOrder, FindTermsTextReplacement, FindTermsTextReplacements, FontStyle, FontWeight, FrequencyRankingResult, FuriganaSegment, GeneralOptions, Image, ImageAppearance, ImageElement, ImageElementBase, ImageImportRequirement, ImageRendering, ImportDetails, ImportRequirement, ImportRequirementContext, ImportResult, ImportStep, ImportSteps, InflectionRule, InflectionRuleChain, InflectionRuleChainCandidate, InflectionSource, IsTextLookupWorthyFunction, KanjiDictionaryEntry, KanjiEnabledDictionaryMap, KanjiFrequency, KanjiStat, KanjiStatGroups, LanguageAndProcessors, LanguageAndReadingNormalizer, LanguageAndTransforms, LanguageDescriptorAny, LanguageSummary, LanguageTransformDescriptor, LineBreak, LinkElement, MessageBody, Note, NoteFieldInfo, NoteFields, NoteId, NoteInfo, NoteInfoWrapper, NoteWithId, OnProgressCallback, ParseTextHeadword, ParseTextLine, ParseTextResultItem, ParseTextSegment, PhoneticTranscription, PitchAccent, ProfileOptions, ProgressData, Pronunciation, PronunciationGeneric, PronunciationType, QueryDetails, QueryResult, ReadingNormalizer, RejectionReason, Rule, RuleI18n, SafeAny, SearchResolution, SerializableObject, SizeUnits, StructuredContentImageImportRequirement, StructuredContentStyle, StyledElement, SuffixRule, Summary, SummaryCounts, SummaryDetails, SummaryItemCount, SummaryMetaCount, TableElement, Tag, TermDefinition, TermDictionaryEntry, TermEnabledDictionaryMap, TermFrequency, TermHeadword, TermLookupResult, TermPronunciation, TermSource, TermSourceMatchSource, TermSourceMatchType, TextAlign, TextDecorationLine, TextDecorationLineOrNone, TextDecorationStyle, TextProcessor, TextProcessorFunction, TextProcessorOptions, TextProcessorRuleChainCandidate, TextProcessorWithId, Timeout, TokenObject, TokenString, Transform, TransformI18n, TransformMapObject, TranslationOptions, TypeofResult, UnknownObject, UnstyledElement, VerticalAlign, WikimediaCommonsFileResponse, WikimediaCommonsLookupResponse, WordBreak, YomitanCore, YomitanCoreConfig, YomitanDatabase, YomitanError, YomitanCore as default, log, toError };
220
220
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/settings.ts","../src/util/errors.ts","../src/util/event-dispatcher.ts","../src/util/log.ts","../src/index.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/settings.ts","../src/util/errors.ts","../src/util/event-dispatcher.ts","../src/util/log.ts","../src/index.ts"],"sourcesContent":null,"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,9 +2,10 @@ import { log } from "./log-hgSll-dS.js";
2
2
  import "./utilities-bi3EF-q5.js";
3
3
  import { DictionaryDB, YomitanDatabase } from "./dictionary-database-CU4TsvCC.js";
4
4
  import "./cjk-util-DubXBGDG.js";
5
- import "./japanese-DhmmW35J.js";
6
- import { MultiLanguageTransformer, getAllLanguageTextProcessors, getLanguageSummaries, isTextLookupWorthy } from "./multi-language-transformer-BkwMTV2g.js";
7
- import { YomitanError, toError } from "./errors-D2JfYV-C.js";
5
+ import { MultiLanguageTransformer, getAllLanguageTextProcessors, getLanguageSummaries, isTextLookupWorthy } from "./multi-language-transformer-Dk8S4W6j.js";
6
+ import "./japanese-OKEGf_i4.js";
7
+ import { codePointPreview, debugYomitanCore } from "./debug-hF63AFkq.js";
8
+ import { YomitanError, toError } from "./errors-DvKlMRXC.js";
8
9
 
9
10
  //#region src/util/event-dispatcher.ts
10
11
  /**
@@ -90,7 +91,7 @@ var YomitanCore = class {
90
91
  async getTranslator() {
91
92
  this._ensureInitialized();
92
93
  if (!this._translator) {
93
- const { Translator } = await import("./translator-BiTHo9Nm.js");
94
+ const { Translator } = await import("./translator-BGI37WRC.js");
94
95
  this._translator = new Translator(this._db);
95
96
  this._translator.prepare();
96
97
  }
@@ -106,8 +107,8 @@ var YomitanCore = class {
106
107
  }
107
108
  async importDictionary(archive, options) {
108
109
  this._ensureInitialized();
109
- const { DictionaryImporterClass: DictionaryImporter } = await import("./dictionary-importer-B9M3SD2y.js");
110
- const { NoOpMediaLoader } = await import("./media-loader-CNKoAjQs.js");
110
+ const { DictionaryImporterClass: DictionaryImporter } = await import("./dictionary-importer-DEMVqTjR.js");
111
+ const { NoOpMediaLoader } = await import("./media-loader-CrQnDnSp.js");
111
112
  const importer = new DictionaryImporter(new NoOpMediaLoader(), options?.onProgress);
112
113
  const details = {
113
114
  prefixWildcardsSupported: options?.prefixWildcardsSupported ?? false,
@@ -158,12 +159,24 @@ var YomitanCore = class {
158
159
  }
159
160
  async parseText(text, options) {
160
161
  this._ensureInitialized();
162
+ debugYomitanCore("index", "parseText:start", {
163
+ textLength: text.length,
164
+ textPreview: text.slice(0, 120),
165
+ textCodePoints: codePointPreview(text),
166
+ language: options.language ?? "ja",
167
+ enabledDictionaryCount: options.enabledDictionaryMap.size,
168
+ enabledDictionaryNames: [...options.enabledDictionaryMap.keys()],
169
+ scanLength: options.scanLength ?? options.maxLength ?? 20,
170
+ searchResolution: options.searchResolution ?? "letter",
171
+ removeNonJapaneseCharacters: options.removeNonJapaneseCharacters,
172
+ deinflect: options.deinflect
173
+ });
161
174
  if (!this._sentenceParser) {
162
175
  const translator = await this.getTranslator();
163
- const { SentenceParser } = await import("./sentence-parser-B-gM8mKk.js");
176
+ const { SentenceParser } = await import("./sentence-parser-DsleseSI.js");
164
177
  this._sentenceParser = new SentenceParser(translator);
165
178
  }
166
- return await this._sentenceParser.parseText(text, options.language ?? "ja", {
179
+ const parsedLines = await this._sentenceParser.parseText(text, options.language ?? "ja", {
167
180
  enabledDictionaryMap: options.enabledDictionaryMap,
168
181
  scanLength: options.scanLength,
169
182
  maxLength: options.maxLength,
@@ -172,16 +185,29 @@ var YomitanCore = class {
172
185
  deinflect: options.deinflect,
173
186
  textReplacements: options.textReplacements
174
187
  });
188
+ debugYomitanCore("index", "parseText:complete", {
189
+ parseLineCount: parsedLines.length,
190
+ segmentCount: parsedLines.reduce((count, line) => count + line.length, 0),
191
+ lineSegmentCounts: parsedLines.map((line) => line.length),
192
+ selectableSegmentCount: parsedLines.reduce((count, line) => count + line.filter((segment) => Array.isArray(segment.headwords)).length, 0)
193
+ });
194
+ return [{
195
+ id: "scan",
196
+ source: "scanning-parser",
197
+ dictionary: null,
198
+ index: 0,
199
+ content: parsedLines
200
+ }];
175
201
  }
176
202
  async generateFurigana(text, reading) {
177
- const { generateFurigana } = await import("./furigana-kZjqnnFC.js");
203
+ const { generateFurigana } = await import("./furigana-ZCs0Xs0b.js");
178
204
  return generateFurigana(text, reading);
179
205
  }
180
206
  async batchLookup(texts, config) {
181
207
  this._ensureInitialized();
182
208
  if (!this._batchProcessor) {
183
209
  const translator = await this.getTranslator();
184
- const { BatchProcessor } = await import("./batch-processor-DItpL6Pp.js");
210
+ const { BatchProcessor } = await import("./batch-processor-Quo9jUyf.js");
185
211
  this._batchProcessor = new BatchProcessor(translator);
186
212
  }
187
213
  const results = await this._batchProcessor.batchLookup(texts, {
@@ -199,30 +225,30 @@ var YomitanCore = class {
199
225
  async getFrequencyRanking(term, dictionaries, reading) {
200
226
  this._ensureInitialized();
201
227
  if (!this._frequencyRanker) {
202
- const { FrequencyRanker } = await import("./frequency-ranking-B-kvnxro.js");
228
+ const { FrequencyRanker } = await import("./frequency-ranking-BXjfhhUQ.js");
203
229
  this._frequencyRanker = new FrequencyRanker(this._db);
204
230
  }
205
231
  return await this._frequencyRanker.getFrequencyRanking(term, dictionaries, reading);
206
232
  }
207
233
  async checkForUpdates(names) {
208
234
  this._ensureInitialized();
209
- const { DictionaryUpdateChecker } = await import("./dictionary-update-checker-Cnjz4tQD.js");
235
+ const { DictionaryUpdateChecker } = await import("./dictionary-update-checker-CsS7MxK_.js");
210
236
  const checker = new DictionaryUpdateChecker(this._db);
211
237
  return await checker.checkForUpdates(names);
212
238
  }
213
239
  async getAudioUrls(term, reading, sources, languageSummary) {
214
- const { AudioUrlGenerator } = await import("./audio-url-generator-CgTMaTM2.js");
240
+ const { AudioUrlGenerator } = await import("./audio-url-generator-C7mkxYeq.js");
215
241
  const generator = new AudioUrlGenerator();
216
242
  return await generator.getUrls(term, reading, sources, languageSummary);
217
243
  }
218
244
  async createAnkiClient(config) {
219
- const { AnkiConnect } = await import("./anki-connect-Vn-cnxs8.js");
245
+ const { AnkiConnect } = await import("./anki-connect-B2UXtiUS.js");
220
246
  return new AnkiConnect(config);
221
247
  }
222
248
  async createRenderer() {
223
- const displayGen = await import("./display-generator-Cn4vCiSI.js");
224
- const structuredGen = await import("./structured-content-generator-Dww8IT7Y.js");
225
- const pronunciationGen = await import("./pronunciation-generator-BvTbUlOy.js");
249
+ const displayGen = await import("./display-generator-DZLMaVuP.js");
250
+ const structuredGen = await import("./structured-content-generator-BhEkwa0T.js");
251
+ const pronunciationGen = await import("./pronunciation-generator-I1xpdJu0.js");
226
252
  return {
227
253
  DisplayGenerator: displayGen.DisplayGenerator,
228
254
  StructuredContentGenerator: structuredGen.StructuredContentGenerator,
@@ -230,7 +256,7 @@ var YomitanCore = class {
230
256
  };
231
257
  }
232
258
  async createAudioUrlGenerator() {
233
- const { AudioUrlGenerator } = await import("./audio-url-generator-CgTMaTM2.js");
259
+ const { AudioUrlGenerator } = await import("./audio-url-generator-C7mkxYeq.js");
234
260
  return new AudioUrlGenerator();
235
261
  }
236
262
  _ensureInitialized() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["eventName: TName","details: EventArgument<TSurface, TName>","callback: EventHandler<TSurface, TName>","config?: YomitanCoreConfig","archive: ArrayBuffer","options?: {\n onProgress?: DictionaryImporterTypes.OnProgressCallback;\n prefixWildcardsSupported?: boolean;\n yomitanVersion?: string;\n }","details: DictionaryImporterTypes.ImportDetails","name: string","onProgress?: DictionaryDatabase.DeleteDictionaryProgressCallback","text: string","config: {\n mode?: FindTermsMode;\n language?: string;\n enabledDictionaryMap: Translation.TermEnabledDictionaryMap;\n options?: Partial<Translation.FindTermsOptions>;\n }","mode: FindTermsMode","findOptions: Translation.FindTermsOptions","config: {\n enabledDictionaryMap: Translation.KanjiEnabledDictionaryMap;\n removeNonJapaneseCharacters?: boolean;\n }","findOptions: Translation.FindKanjiOptions","options: {\n language?: string;\n enabledDictionaryMap: Map<\n string,\n {\n index: number;\n priority?: number;\n alias?: string;\n allowSecondarySearches?: boolean;\n partsOfSpeechFilter?: boolean;\n useDeinflections?: boolean;\n }\n >;\n scanLength?: number;\n maxLength?: number;\n searchResolution?: 'letter' | 'word';\n removeNonJapaneseCharacters?: boolean;\n deinflect?: boolean;\n textReplacements?: (import('./types/translation').FindTermsTextReplacement[] | null)[];\n }","reading: string","texts: string[]","config: {\n language?: string;\n enabledDictionaryMap: Map<string, { index: number; priority: number }>;\n concurrency?: number;\n }","term: string","dictionaries: string[]","reading?: string","names?: string[]","sources: { type: string; url: string; voice: string }[]","languageSummary: { name: string; iso: string; exampleText: string }","config?: { server?: string; apiKey?: string }"],"sources":["../src/util/event-dispatcher.ts","../src/index.ts"],"sourcesContent":["import type { EventArgument, EventHandler, EventHandlerAny, EventNames, EventSurface } from '../types/core';\n\n/**\n * Base class that controls basic event dispatching.\n */\nexport class EventDispatcher<TSurface extends EventSurface> {\n private _eventMap: Map<EventNames<TSurface>, EventHandlerAny[]>;\n\n constructor() {\n this._eventMap = new Map();\n }\n\n trigger<TName extends EventNames<TSurface>>(eventName: TName, details: EventArgument<TSurface, TName>): boolean {\n const callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n return false;\n }\n for (const callback of callbacks) {\n callback(details);\n }\n return true;\n }\n\n on<TName extends EventNames<TSurface>>(eventName: TName, callback: EventHandler<TSurface, TName>): void {\n let callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n callbacks = [];\n this._eventMap.set(eventName, callbacks);\n }\n callbacks.push(callback as EventHandlerAny);\n }\n\n off<TName extends EventNames<TSurface>>(eventName: TName, callback: EventHandler<TSurface, TName>): boolean {\n const callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n return false;\n }\n const ii = callbacks.length;\n for (let i = 0; i < ii; ++i) {\n if (callbacks[i] === callback) {\n callbacks.splice(i, 1);\n if (callbacks.length === 0) {\n this._eventMap.delete(eventName);\n }\n return true;\n }\n }\n return false;\n }\n\n hasListeners<TName extends EventNames<TSurface>>(eventName: TName): boolean {\n const callbacks = this._eventMap.get(eventName);\n return typeof callbacks !== 'undefined' && callbacks.length > 0;\n }\n}\n","// Main entry point for yomitan-core\nimport { DictionaryDB } from './database/dictionary-database';\nimport type { DictionaryImporterClass } from './import/dictionary-importer';\nimport { getAllLanguageTextProcessors, getLanguageSummaries, isTextLookupWorthy } from './language/languages';\nimport { MultiLanguageTransformer } from './language/multi-language-transformer';\nimport type { BatchProcessor as BatchProcessorClass } from './lookup/batch-processor';\nimport type { FrequencyRanker as FrequencyRankerClass } from './lookup/frequency-ranking';\nimport type { SentenceParser as SentenceParserClass } from './lookup/sentence-parser';\nimport type { FindTermsMode, Translator as TranslatorClass } from './lookup/translator';\nimport type * as Dictionary from './types/dictionary';\nimport type * as DictionaryDatabase from './types/dictionary-database';\nimport type * as DictionaryImporterTypes from './types/dictionary-importer';\nimport type * as Translation from './types/translation';\n\n// Re-export all types\nexport * from './types/index';\n\n// Re-export utilities\nexport { YomitanError, toError } from './util/errors';\nexport { EventDispatcher } from './util/event-dispatcher';\nexport { log } from './util/log';\n\n// Re-export key classes from submodules\nexport { DictionaryDB } from './database/dictionary-database';\nexport { YomitanDatabase } from './database/schema';\n\nexport interface YomitanCoreConfig {\n /** Database name (default: 'dict') */\n databaseName?: string;\n /** Whether to automatically initialize language transformers (default: true) */\n initLanguage?: boolean;\n}\n\nexport interface TermLookupResult {\n entries: Dictionary.TermDictionaryEntry[];\n originalTextLength: number;\n}\n\nexport interface FuriganaSegment {\n text: string;\n reading: string;\n}\n\nexport interface FrequencyRankingResult {\n frequencies: { dictionary: string; frequency: number; displayValue: string | null }[];\n harmonicMean: number;\n}\n\nexport interface DictionaryUpdateInfo {\n dictionaryName: string;\n currentRevision: string;\n latestRevision: string;\n hasUpdate: boolean;\n downloadUrl?: string;\n}\n\nexport class YomitanCore {\n private _db: DictionaryDB;\n private _multiLanguageTransformer: MultiLanguageTransformer;\n private _translator: TranslatorClass | null = null;\n private _sentenceParser: SentenceParserClass | null = null;\n private _batchProcessor: BatchProcessorClass | null = null;\n private _frequencyRanker: FrequencyRankerClass | null = null;\n private _initialized = false;\n private _config: Required<YomitanCoreConfig>;\n\n constructor(config?: YomitanCoreConfig) {\n this._config = {\n databaseName: config?.databaseName ?? 'dict',\n initLanguage: config?.initLanguage ?? true,\n };\n this._db = new DictionaryDB(this._config.databaseName);\n this._multiLanguageTransformer = new MultiLanguageTransformer();\n }\n\n async initialize(): Promise<void> {\n if (this._initialized) {\n return;\n }\n\n await this._db.open();\n\n if (this._config.initLanguage) {\n this._multiLanguageTransformer.prepare();\n }\n\n this._initialized = true;\n }\n\n async dispose(): Promise<void> {\n if (!this._initialized) {\n return;\n }\n this._db.close();\n this._translator = null;\n this._sentenceParser = null;\n this._batchProcessor = null;\n this._frequencyRanker = null;\n this._initialized = false;\n }\n\n get isReady(): boolean {\n return this._initialized;\n }\n\n get database(): DictionaryDB {\n this._ensureInitialized();\n return this._db;\n }\n\n async getTranslator(): Promise<TranslatorClass> {\n this._ensureInitialized();\n if (!this._translator) {\n const { Translator } = await import('./lookup/translator');\n this._translator = new Translator(this._db);\n this._translator.prepare();\n }\n return this._translator;\n }\n\n get language(): {\n summaries: ReturnType<typeof getLanguageSummaries>;\n textProcessors: ReturnType<typeof getAllLanguageTextProcessors>;\n transformer: MultiLanguageTransformer;\n isTextLookupWorthy: typeof isTextLookupWorthy;\n } {\n return {\n summaries: getLanguageSummaries(),\n textProcessors: getAllLanguageTextProcessors(),\n transformer: this._multiLanguageTransformer,\n isTextLookupWorthy,\n };\n }\n\n // ---- Dictionary Management ----\n\n async importDictionary(\n archive: ArrayBuffer,\n options?: {\n onProgress?: DictionaryImporterTypes.OnProgressCallback;\n prefixWildcardsSupported?: boolean;\n yomitanVersion?: string;\n },\n ): Promise<DictionaryImporterTypes.ImportResult> {\n this._ensureInitialized();\n const { DictionaryImporterClass: DictionaryImporter } = await import('./import/dictionary-importer');\n const { NoOpMediaLoader } = await import('./import/media-loader');\n\n const importer = new DictionaryImporter(new NoOpMediaLoader(), options?.onProgress);\n const details: DictionaryImporterTypes.ImportDetails = {\n prefixWildcardsSupported: options?.prefixWildcardsSupported ?? false,\n yomitanVersion: options?.yomitanVersion ?? '0.0.0',\n };\n return await importer.importDictionary(this._db, archive, details);\n }\n\n async deleteDictionary(\n name: string,\n onProgress?: DictionaryDatabase.DeleteDictionaryProgressCallback,\n ): Promise<void> {\n this._ensureInitialized();\n await this._db.deleteDictionary(name, onProgress);\n }\n\n async getDictionaryInfo(): Promise<DictionaryImporterTypes.Summary[]> {\n this._ensureInitialized();\n return await this._db.getDictionaryInfo();\n }\n\n // ---- Core Lookup ----\n\n async findTerms(\n text: string,\n config: {\n mode?: FindTermsMode;\n language?: string;\n enabledDictionaryMap: Translation.TermEnabledDictionaryMap;\n options?: Partial<Translation.FindTermsOptions>;\n },\n ): Promise<TermLookupResult> {\n this._ensureInitialized();\n const translator = await this.getTranslator();\n const mode: FindTermsMode = config.mode ?? 'group';\n\n const findOptions: Translation.FindTermsOptions = {\n matchType: config.options?.matchType ?? 'exact',\n deinflect: config.options?.deinflect ?? true,\n primaryReading: config.options?.primaryReading ?? '',\n mainDictionary: config.options?.mainDictionary ?? '',\n sortFrequencyDictionary: config.options?.sortFrequencyDictionary ?? null,\n sortFrequencyDictionaryOrder: config.options?.sortFrequencyDictionaryOrder ?? 'descending',\n removeNonJapaneseCharacters: config.options?.removeNonJapaneseCharacters ?? false,\n textReplacements: config.options?.textReplacements ?? [null],\n enabledDictionaryMap: config.enabledDictionaryMap,\n excludeDictionaryDefinitions: config.options?.excludeDictionaryDefinitions ?? null,\n searchResolution: config.options?.searchResolution ?? 'letter',\n language: config.language ?? 'ja',\n };\n\n const { dictionaryEntries, originalTextLength } = await translator.findTerms(mode, text, findOptions);\n\n return { entries: dictionaryEntries, originalTextLength };\n }\n\n async findKanji(\n text: string,\n config: {\n enabledDictionaryMap: Translation.KanjiEnabledDictionaryMap;\n removeNonJapaneseCharacters?: boolean;\n },\n ): Promise<Dictionary.KanjiDictionaryEntry[]> {\n this._ensureInitialized();\n const translator = await this.getTranslator();\n\n const findOptions: Translation.FindKanjiOptions = {\n enabledDictionaryMap: config.enabledDictionaryMap,\n removeNonJapaneseCharacters: config.removeNonJapaneseCharacters ?? true,\n };\n\n return await translator.findKanji(text, findOptions);\n }\n\n // ---- Additional Features ----\n\n async parseText(\n text: string,\n options: {\n language?: string;\n enabledDictionaryMap: Map<\n string,\n {\n index: number;\n priority?: number;\n alias?: string;\n allowSecondarySearches?: boolean;\n partsOfSpeechFilter?: boolean;\n useDeinflections?: boolean;\n }\n >;\n scanLength?: number;\n maxLength?: number;\n searchResolution?: 'letter' | 'word';\n removeNonJapaneseCharacters?: boolean;\n deinflect?: boolean;\n textReplacements?: (import('./types/translation').FindTermsTextReplacement[] | null)[];\n },\n ): Promise<unknown[]> {\n this._ensureInitialized();\n if (!this._sentenceParser) {\n const translator = await this.getTranslator();\n const { SentenceParser } = await import('./lookup/sentence-parser');\n this._sentenceParser = new SentenceParser(translator);\n }\n return await this._sentenceParser.parseText(text, options.language ?? 'ja', {\n enabledDictionaryMap: options.enabledDictionaryMap,\n scanLength: options.scanLength,\n maxLength: options.maxLength,\n searchResolution: options.searchResolution,\n removeNonJapaneseCharacters: options.removeNonJapaneseCharacters,\n deinflect: options.deinflect,\n textReplacements: options.textReplacements,\n });\n }\n\n async generateFurigana(text: string, reading: string): Promise<FuriganaSegment[]> {\n const { generateFurigana } = await import('./language/ja/furigana');\n return generateFurigana(text, reading);\n }\n\n async batchLookup(\n texts: string[],\n config: {\n language?: string;\n enabledDictionaryMap: Map<string, { index: number; priority: number }>;\n concurrency?: number;\n },\n ): Promise<Map<string, TermLookupResult>> {\n this._ensureInitialized();\n if (!this._batchProcessor) {\n const translator = await this.getTranslator();\n const { BatchProcessor } = await import('./lookup/batch-processor');\n this._batchProcessor = new BatchProcessor(translator);\n }\n const results = await this._batchProcessor.batchLookup(texts, {\n language: config.language,\n enabledDictionaryMap: config.enabledDictionaryMap,\n concurrency: config.concurrency,\n });\n const mapped = new Map<string, TermLookupResult>();\n for (const [key, value] of results) {\n mapped.set(key, { entries: value.entries, originalTextLength: value.originalTextLength });\n }\n return mapped;\n }\n\n async getFrequencyRanking(term: string, dictionaries: string[], reading?: string): Promise<FrequencyRankingResult> {\n this._ensureInitialized();\n if (!this._frequencyRanker) {\n const { FrequencyRanker } = await import('./lookup/frequency-ranking');\n this._frequencyRanker = new FrequencyRanker(this._db);\n }\n return await this._frequencyRanker.getFrequencyRanking(term, dictionaries, reading);\n }\n\n async checkForUpdates(names?: string[]): Promise<DictionaryUpdateInfo[]> {\n this._ensureInitialized();\n const { DictionaryUpdateChecker } = await import('./import/dictionary-update-checker');\n const checker = new DictionaryUpdateChecker(this._db);\n return await checker.checkForUpdates(names);\n }\n\n async getAudioUrls(\n term: string,\n reading: string,\n sources: { type: string; url: string; voice: string }[],\n languageSummary: { name: string; iso: string; exampleText: string },\n ): Promise<unknown[]> {\n const { AudioUrlGenerator } = await import('./audio/audio-url-generator');\n const generator = new AudioUrlGenerator();\n return (await generator.getUrls(term, reading, sources as any[], languageSummary as any)) as unknown[];\n }\n\n // ---- Factory Methods ----\n\n async createAnkiClient(config?: { server?: string; apiKey?: string }): Promise<unknown> {\n const { AnkiConnect } = await import('./anki/anki-connect');\n return new AnkiConnect(config);\n }\n\n async createRenderer(): Promise<{\n DisplayGenerator: unknown;\n StructuredContentGenerator: unknown;\n PronunciationGenerator: unknown;\n }> {\n const displayGen = await import('./render/display-generator');\n const structuredGen = await import('./render/structured-content-generator');\n const pronunciationGen = await import('./render/pronunciation-generator');\n return {\n DisplayGenerator: displayGen.DisplayGenerator,\n StructuredContentGenerator: structuredGen.StructuredContentGenerator,\n PronunciationGenerator: pronunciationGen.PronunciationGenerator,\n };\n }\n\n async createAudioUrlGenerator(): Promise<unknown> {\n const { AudioUrlGenerator } = await import('./audio/audio-url-generator');\n return new AudioUrlGenerator();\n }\n\n // ---- Private ----\n\n private _ensureInitialized(): void {\n if (!this._initialized) {\n throw new Error('YomitanCore is not initialized. Call initialize() first.');\n }\n }\n}\n\n// Default export\nexport default YomitanCore;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["eventName: TName","details: EventArgument<TSurface, TName>","callback: EventHandler<TSurface, TName>","config?: YomitanCoreConfig","archive: ArrayBuffer","options?: {\n onProgress?: DictionaryImporterTypes.OnProgressCallback;\n prefixWildcardsSupported?: boolean;\n yomitanVersion?: string;\n }","details: DictionaryImporterTypes.ImportDetails","name: string","onProgress?: DictionaryDatabase.DeleteDictionaryProgressCallback","text: string","config: {\n mode?: FindTermsMode;\n language?: string;\n enabledDictionaryMap: Translation.TermEnabledDictionaryMap;\n options?: Partial<Translation.FindTermsOptions>;\n }","mode: FindTermsMode","findOptions: Translation.FindTermsOptions","config: {\n enabledDictionaryMap: Translation.KanjiEnabledDictionaryMap;\n removeNonJapaneseCharacters?: boolean;\n }","findOptions: Translation.FindKanjiOptions","options: {\n language?: string;\n enabledDictionaryMap: Map<\n string,\n {\n index: number;\n priority?: number;\n alias?: string;\n allowSecondarySearches?: boolean;\n partsOfSpeechFilter?: boolean;\n useDeinflections?: boolean;\n }\n >;\n scanLength?: number;\n maxLength?: number;\n searchResolution?: 'letter' | 'word';\n removeNonJapaneseCharacters?: boolean;\n deinflect?: boolean;\n textReplacements?: (import('./types/translation').FindTermsTextReplacement[] | null)[];\n }","reading: string","texts: string[]","config: {\n language?: string;\n enabledDictionaryMap: Map<string, { index: number; priority: number }>;\n concurrency?: number;\n }","term: string","dictionaries: string[]","reading?: string","names?: string[]","sources: { type: string; url: string; voice: string }[]","languageSummary: { name: string; iso: string; exampleText: string }","config?: { server?: string; apiKey?: string }"],"sources":["../src/util/event-dispatcher.ts","../src/index.ts"],"sourcesContent":["import type { EventArgument, EventHandler, EventHandlerAny, EventNames, EventSurface } from '../types/core';\n\n/**\n * Base class that controls basic event dispatching.\n */\nexport class EventDispatcher<TSurface extends EventSurface> {\n private _eventMap: Map<EventNames<TSurface>, EventHandlerAny[]>;\n\n constructor() {\n this._eventMap = new Map();\n }\n\n trigger<TName extends EventNames<TSurface>>(eventName: TName, details: EventArgument<TSurface, TName>): boolean {\n const callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n return false;\n }\n for (const callback of callbacks) {\n callback(details);\n }\n return true;\n }\n\n on<TName extends EventNames<TSurface>>(eventName: TName, callback: EventHandler<TSurface, TName>): void {\n let callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n callbacks = [];\n this._eventMap.set(eventName, callbacks);\n }\n callbacks.push(callback as EventHandlerAny);\n }\n\n off<TName extends EventNames<TSurface>>(eventName: TName, callback: EventHandler<TSurface, TName>): boolean {\n const callbacks = this._eventMap.get(eventName);\n if (typeof callbacks === 'undefined') {\n return false;\n }\n const ii = callbacks.length;\n for (let i = 0; i < ii; ++i) {\n if (callbacks[i] === callback) {\n callbacks.splice(i, 1);\n if (callbacks.length === 0) {\n this._eventMap.delete(eventName);\n }\n return true;\n }\n }\n return false;\n }\n\n hasListeners<TName extends EventNames<TSurface>>(eventName: TName): boolean {\n const callbacks = this._eventMap.get(eventName);\n return typeof callbacks !== 'undefined' && callbacks.length > 0;\n }\n}\n","// Main entry point for yomitan-core\nimport { DictionaryDB } from './database/dictionary-database';\nimport type { DictionaryImporterClass } from './import/dictionary-importer';\nimport { getAllLanguageTextProcessors, getLanguageSummaries, isTextLookupWorthy } from './language/languages';\nimport { MultiLanguageTransformer } from './language/multi-language-transformer';\nimport type { BatchProcessor as BatchProcessorClass } from './lookup/batch-processor';\nimport type { FrequencyRanker as FrequencyRankerClass } from './lookup/frequency-ranking';\nimport type { ParseTextResultItem } from './lookup/sentence-parser';\nimport type { SentenceParser as SentenceParserClass } from './lookup/sentence-parser';\nimport type { FindTermsMode, Translator as TranslatorClass } from './lookup/translator';\nimport type * as Dictionary from './types/dictionary';\nimport type * as DictionaryDatabase from './types/dictionary-database';\nimport type * as DictionaryImporterTypes from './types/dictionary-importer';\nimport type * as Translation from './types/translation';\nimport { codePointPreview, debugYomitanCore } from './util/debug';\n\n// Re-export all types\nexport * from './types/index';\n\n// Re-export utilities\nexport { YomitanError, toError } from './util/errors';\nexport { EventDispatcher } from './util/event-dispatcher';\nexport { log } from './util/log';\n\n// Re-export key classes from submodules\nexport { DictionaryDB } from './database/dictionary-database';\nexport { YomitanDatabase } from './database/schema';\n\nexport interface YomitanCoreConfig {\n /** Database name (default: 'dict') */\n databaseName?: string;\n /** Whether to automatically initialize language transformers (default: true) */\n initLanguage?: boolean;\n}\n\nexport interface TermLookupResult {\n entries: Dictionary.TermDictionaryEntry[];\n originalTextLength: number;\n}\n\nexport interface FuriganaSegment {\n text: string;\n reading: string;\n}\n\nexport interface FrequencyRankingResult {\n frequencies: { dictionary: string; frequency: number; displayValue: string | null }[];\n harmonicMean: number;\n}\n\nexport interface DictionaryUpdateInfo {\n dictionaryName: string;\n currentRevision: string;\n latestRevision: string;\n hasUpdate: boolean;\n downloadUrl?: string;\n}\n\nexport class YomitanCore {\n private _db: DictionaryDB;\n private _multiLanguageTransformer: MultiLanguageTransformer;\n private _translator: TranslatorClass | null = null;\n private _sentenceParser: SentenceParserClass | null = null;\n private _batchProcessor: BatchProcessorClass | null = null;\n private _frequencyRanker: FrequencyRankerClass | null = null;\n private _initialized = false;\n private _config: Required<YomitanCoreConfig>;\n\n constructor(config?: YomitanCoreConfig) {\n this._config = {\n databaseName: config?.databaseName ?? 'dict',\n initLanguage: config?.initLanguage ?? true,\n };\n this._db = new DictionaryDB(this._config.databaseName);\n this._multiLanguageTransformer = new MultiLanguageTransformer();\n }\n\n async initialize(): Promise<void> {\n if (this._initialized) {\n return;\n }\n\n await this._db.open();\n\n if (this._config.initLanguage) {\n this._multiLanguageTransformer.prepare();\n }\n\n this._initialized = true;\n }\n\n async dispose(): Promise<void> {\n if (!this._initialized) {\n return;\n }\n this._db.close();\n this._translator = null;\n this._sentenceParser = null;\n this._batchProcessor = null;\n this._frequencyRanker = null;\n this._initialized = false;\n }\n\n get isReady(): boolean {\n return this._initialized;\n }\n\n get database(): DictionaryDB {\n this._ensureInitialized();\n return this._db;\n }\n\n async getTranslator(): Promise<TranslatorClass> {\n this._ensureInitialized();\n if (!this._translator) {\n const { Translator } = await import('./lookup/translator');\n this._translator = new Translator(this._db);\n this._translator.prepare();\n }\n return this._translator;\n }\n\n get language(): {\n summaries: ReturnType<typeof getLanguageSummaries>;\n textProcessors: ReturnType<typeof getAllLanguageTextProcessors>;\n transformer: MultiLanguageTransformer;\n isTextLookupWorthy: typeof isTextLookupWorthy;\n } {\n return {\n summaries: getLanguageSummaries(),\n textProcessors: getAllLanguageTextProcessors(),\n transformer: this._multiLanguageTransformer,\n isTextLookupWorthy,\n };\n }\n\n // ---- Dictionary Management ----\n\n async importDictionary(\n archive: ArrayBuffer,\n options?: {\n onProgress?: DictionaryImporterTypes.OnProgressCallback;\n prefixWildcardsSupported?: boolean;\n yomitanVersion?: string;\n },\n ): Promise<DictionaryImporterTypes.ImportResult> {\n this._ensureInitialized();\n const { DictionaryImporterClass: DictionaryImporter } = await import('./import/dictionary-importer');\n const { NoOpMediaLoader } = await import('./import/media-loader');\n\n const importer = new DictionaryImporter(new NoOpMediaLoader(), options?.onProgress);\n const details: DictionaryImporterTypes.ImportDetails = {\n prefixWildcardsSupported: options?.prefixWildcardsSupported ?? false,\n yomitanVersion: options?.yomitanVersion ?? '0.0.0',\n };\n return await importer.importDictionary(this._db, archive, details);\n }\n\n async deleteDictionary(\n name: string,\n onProgress?: DictionaryDatabase.DeleteDictionaryProgressCallback,\n ): Promise<void> {\n this._ensureInitialized();\n await this._db.deleteDictionary(name, onProgress);\n }\n\n async getDictionaryInfo(): Promise<DictionaryImporterTypes.Summary[]> {\n this._ensureInitialized();\n return await this._db.getDictionaryInfo();\n }\n\n // ---- Core Lookup ----\n\n async findTerms(\n text: string,\n config: {\n mode?: FindTermsMode;\n language?: string;\n enabledDictionaryMap: Translation.TermEnabledDictionaryMap;\n options?: Partial<Translation.FindTermsOptions>;\n },\n ): Promise<TermLookupResult> {\n this._ensureInitialized();\n const translator = await this.getTranslator();\n const mode: FindTermsMode = config.mode ?? 'group';\n\n const findOptions: Translation.FindTermsOptions = {\n matchType: config.options?.matchType ?? 'exact',\n deinflect: config.options?.deinflect ?? true,\n primaryReading: config.options?.primaryReading ?? '',\n mainDictionary: config.options?.mainDictionary ?? '',\n sortFrequencyDictionary: config.options?.sortFrequencyDictionary ?? null,\n sortFrequencyDictionaryOrder: config.options?.sortFrequencyDictionaryOrder ?? 'descending',\n removeNonJapaneseCharacters: config.options?.removeNonJapaneseCharacters ?? false,\n textReplacements: config.options?.textReplacements ?? [null],\n enabledDictionaryMap: config.enabledDictionaryMap,\n excludeDictionaryDefinitions: config.options?.excludeDictionaryDefinitions ?? null,\n searchResolution: config.options?.searchResolution ?? 'letter',\n language: config.language ?? 'ja',\n };\n\n const { dictionaryEntries, originalTextLength } = await translator.findTerms(mode, text, findOptions);\n\n return { entries: dictionaryEntries, originalTextLength };\n }\n\n async findKanji(\n text: string,\n config: {\n enabledDictionaryMap: Translation.KanjiEnabledDictionaryMap;\n removeNonJapaneseCharacters?: boolean;\n },\n ): Promise<Dictionary.KanjiDictionaryEntry[]> {\n this._ensureInitialized();\n const translator = await this.getTranslator();\n\n const findOptions: Translation.FindKanjiOptions = {\n enabledDictionaryMap: config.enabledDictionaryMap,\n removeNonJapaneseCharacters: config.removeNonJapaneseCharacters ?? true,\n };\n\n return await translator.findKanji(text, findOptions);\n }\n\n // ---- Additional Features ----\n\n async parseText(\n text: string,\n options: {\n language?: string;\n enabledDictionaryMap: Map<\n string,\n {\n index: number;\n priority?: number;\n alias?: string;\n allowSecondarySearches?: boolean;\n partsOfSpeechFilter?: boolean;\n useDeinflections?: boolean;\n }\n >;\n scanLength?: number;\n maxLength?: number;\n searchResolution?: 'letter' | 'word';\n removeNonJapaneseCharacters?: boolean;\n deinflect?: boolean;\n textReplacements?: (import('./types/translation').FindTermsTextReplacement[] | null)[];\n },\n ): Promise<ParseTextResultItem[]> {\n this._ensureInitialized();\n debugYomitanCore('index', 'parseText:start', {\n textLength: text.length,\n textPreview: text.slice(0, 120),\n textCodePoints: codePointPreview(text),\n language: options.language ?? 'ja',\n enabledDictionaryCount: options.enabledDictionaryMap.size,\n enabledDictionaryNames: [...options.enabledDictionaryMap.keys()],\n scanLength: options.scanLength ?? options.maxLength ?? 20,\n searchResolution: options.searchResolution ?? 'letter',\n removeNonJapaneseCharacters: options.removeNonJapaneseCharacters,\n deinflect: options.deinflect,\n });\n\n if (!this._sentenceParser) {\n const translator = await this.getTranslator();\n const { SentenceParser } = await import('./lookup/sentence-parser');\n this._sentenceParser = new SentenceParser(translator);\n }\n const parsedLines = await this._sentenceParser.parseText(text, options.language ?? 'ja', {\n enabledDictionaryMap: options.enabledDictionaryMap,\n scanLength: options.scanLength,\n maxLength: options.maxLength,\n searchResolution: options.searchResolution,\n removeNonJapaneseCharacters: options.removeNonJapaneseCharacters,\n deinflect: options.deinflect,\n textReplacements: options.textReplacements,\n });\n debugYomitanCore('index', 'parseText:complete', {\n parseLineCount: parsedLines.length,\n segmentCount: parsedLines.reduce((count, line) => count + line.length, 0),\n lineSegmentCounts: parsedLines.map((line) => line.length),\n selectableSegmentCount: parsedLines.reduce(\n (count, line) => count + line.filter((segment) => Array.isArray(segment.headwords)).length,\n 0,\n ),\n });\n\n return [\n {\n id: 'scan',\n source: 'scanning-parser',\n dictionary: null,\n index: 0,\n content: parsedLines,\n },\n ];\n }\n\n async generateFurigana(text: string, reading: string): Promise<FuriganaSegment[]> {\n const { generateFurigana } = await import('./language/ja/furigana');\n return generateFurigana(text, reading);\n }\n\n async batchLookup(\n texts: string[],\n config: {\n language?: string;\n enabledDictionaryMap: Map<string, { index: number; priority: number }>;\n concurrency?: number;\n },\n ): Promise<Map<string, TermLookupResult>> {\n this._ensureInitialized();\n if (!this._batchProcessor) {\n const translator = await this.getTranslator();\n const { BatchProcessor } = await import('./lookup/batch-processor');\n this._batchProcessor = new BatchProcessor(translator);\n }\n const results = await this._batchProcessor.batchLookup(texts, {\n language: config.language,\n enabledDictionaryMap: config.enabledDictionaryMap,\n concurrency: config.concurrency,\n });\n const mapped = new Map<string, TermLookupResult>();\n for (const [key, value] of results) {\n mapped.set(key, { entries: value.entries, originalTextLength: value.originalTextLength });\n }\n return mapped;\n }\n\n async getFrequencyRanking(term: string, dictionaries: string[], reading?: string): Promise<FrequencyRankingResult> {\n this._ensureInitialized();\n if (!this._frequencyRanker) {\n const { FrequencyRanker } = await import('./lookup/frequency-ranking');\n this._frequencyRanker = new FrequencyRanker(this._db);\n }\n return await this._frequencyRanker.getFrequencyRanking(term, dictionaries, reading);\n }\n\n async checkForUpdates(names?: string[]): Promise<DictionaryUpdateInfo[]> {\n this._ensureInitialized();\n const { DictionaryUpdateChecker } = await import('./import/dictionary-update-checker');\n const checker = new DictionaryUpdateChecker(this._db);\n return await checker.checkForUpdates(names);\n }\n\n async getAudioUrls(\n term: string,\n reading: string,\n sources: { type: string; url: string; voice: string }[],\n languageSummary: { name: string; iso: string; exampleText: string },\n ): Promise<unknown[]> {\n const { AudioUrlGenerator } = await import('./audio/audio-url-generator');\n const generator = new AudioUrlGenerator();\n return (await generator.getUrls(term, reading, sources as any[], languageSummary as any)) as unknown[];\n }\n\n // ---- Factory Methods ----\n\n async createAnkiClient(config?: { server?: string; apiKey?: string }): Promise<unknown> {\n const { AnkiConnect } = await import('./anki/anki-connect');\n return new AnkiConnect(config);\n }\n\n async createRenderer(): Promise<{\n DisplayGenerator: unknown;\n StructuredContentGenerator: unknown;\n PronunciationGenerator: unknown;\n }> {\n const displayGen = await import('./render/display-generator');\n const structuredGen = await import('./render/structured-content-generator');\n const pronunciationGen = await import('./render/pronunciation-generator');\n return {\n DisplayGenerator: displayGen.DisplayGenerator,\n StructuredContentGenerator: structuredGen.StructuredContentGenerator,\n PronunciationGenerator: pronunciationGen.PronunciationGenerator,\n };\n }\n\n async createAudioUrlGenerator(): Promise<unknown> {\n const { AudioUrlGenerator } = await import('./audio/audio-url-generator');\n return new AudioUrlGenerator();\n }\n\n // ---- Private ----\n\n private _ensureInitialized(): void {\n if (!this._initialized) {\n throw new Error('YomitanCore is not initialized. Call initialize() first.');\n }\n }\n}\n\n// Default export\nexport default YomitanCore;\n"],"mappings":"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"}
@@ -594,4 +594,4 @@ Object.defineProperty(exports, 'normalizeCombiningCharacters$1', {
594
594
  return normalizeCombiningCharacters;
595
595
  }
596
596
  });
597
- //# sourceMappingURL=japanese-BVV1Ctk-.cjs.map
597
+ //# sourceMappingURL=japanese-C83fmEfb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"japanese-BVV1Ctk-.cjs","names":["HIRAGANA_RANGE: CodepointRange","KATAKANA_RANGE: CodepointRange","HIRAGANA_CONVERSION_RANGE: CodepointRange","KATAKANA_CONVERSION_RANGE: CodepointRange","KANA_RANGES: CodepointRange[]","JAPANESE_RANGES: CodepointRange[]","CJK_IDEOGRAPH_RANGES","CJK_PUNCTUATION_RANGE","FULLWIDTH_CHARACTER_RANGES","previousCharacter: string","text: string","reading: string","readingNormalized: string","groups: FuriganaGroup[]","groupsStart: number","result: FuriganaSegment[] | null","newSegments: FuriganaSegment[]","text1: string","text2: string","codePoint: number","str: string","moraIndex: number","pitchAccentValue: number | string","isVerbOrAdjective: boolean","pitchString: string","downsteps: number[]","morae: string[]","i: number","character: string","CJK_COMPATIBILITY","term: string","groupPre: FuriganaGroup | null","isKanaPre: boolean | null","source: string","segments: FuriganaSegment[]","fullCollapse: boolean"],"sources":["../src/language/ja/japanese.ts"],"sourcesContent":["import {\n CJK_COMPATIBILITY,\n CJK_IDEOGRAPH_RANGES,\n CJK_PUNCTUATION_RANGE,\n FULLWIDTH_CHARACTER_RANGES,\n isCodePointInRange,\n isCodePointInRanges,\n} from '../cjk-util';\nimport type { CodepointRange } from '../cjk-util';\n\nexport type FuriganaSegment = {\n text: string;\n reading: string;\n};\n\nexport type FuriganaGroup = {\n isKana: boolean;\n text: string;\n textNormalized: string | null;\n};\n\nexport type DiacriticType = 'dakuten' | 'handakuten';\n\nexport type PitchCategory = 'heiban' | 'atamadaka' | 'nakadaka' | 'odaka' | 'kifuku';\n\nconst HIRAGANA_SMALL_TSU_CODE_POINT = 0x3063;\nconst KATAKANA_SMALL_TSU_CODE_POINT = 0x30c3;\nconst KATAKANA_SMALL_KA_CODE_POINT = 0x30f5;\nconst KATAKANA_SMALL_KE_CODE_POINT = 0x30f6;\nconst KANA_PROLONGED_SOUND_MARK_CODE_POINT = 0x30fc;\n\nconst HIRAGANA_RANGE: CodepointRange = [0x3040, 0x309f];\nconst KATAKANA_RANGE: CodepointRange = [0x30a0, 0x30ff];\n\nconst HIRAGANA_CONVERSION_RANGE: CodepointRange = [0x3041, 0x3096];\nconst KATAKANA_CONVERSION_RANGE: CodepointRange = [0x30a1, 0x30f6];\n\nconst KANA_RANGES: CodepointRange[] = [HIRAGANA_RANGE, KATAKANA_RANGE];\n\nconst JAPANESE_RANGES: CodepointRange[] = [\n HIRAGANA_RANGE,\n KATAKANA_RANGE,\n ...CJK_IDEOGRAPH_RANGES,\n [0xff66, 0xff9f], // Halfwidth katakana\n [0x30fb, 0x30fc], // Katakana punctuation\n [0xff61, 0xff65], // Kana punctuation\n CJK_PUNCTUATION_RANGE,\n ...FULLWIDTH_CHARACTER_RANGES,\n];\n\nconst SMALL_KANA_SET = new Set('ぁぃぅぇぉゃゅょゎァィゥェォャュョヮ');\n\nconst HALFWIDTH_KATAKANA_MAPPING = new Map<string, string>([\n ['・', '・--'],\n ['ヲ', 'ヲヺ-'],\n ['ァ', 'ァ--'],\n ['ィ', 'ィ--'],\n ['ゥ', 'ゥ--'],\n ['ェ', 'ェ--'],\n ['ォ', 'ォ--'],\n ['ャ', 'ャ--'],\n ['ュ', 'ュ--'],\n ['ョ', 'ョ--'],\n ['ッ', 'ッ--'],\n ['ー', 'ー--'],\n ['ア', 'ア--'],\n ['イ', 'イ--'],\n ['ウ', 'ウヴ-'],\n ['エ', 'エ--'],\n ['オ', 'オ--'],\n ['カ', 'カガ-'],\n ['キ', 'キギ-'],\n ['ク', 'クグ-'],\n ['ケ', 'ケゲ-'],\n ['コ', 'コゴ-'],\n ['サ', 'サザ-'],\n ['シ', 'シジ-'],\n ['ス', 'スズ-'],\n ['セ', 'セゼ-'],\n ['ソ', 'ソゾ-'],\n ['タ', 'タダ-'],\n ['チ', 'チヂ-'],\n ['ツ', 'ツヅ-'],\n ['テ', 'テデ-'],\n ['ト', 'トド-'],\n ['ナ', 'ナ--'],\n ['ニ', 'ニ--'],\n ['ヌ', 'ヌ--'],\n ['ネ', 'ネ--'],\n ['ノ', 'ノ--'],\n ['ハ', 'ハバパ'],\n ['ヒ', 'ヒビピ'],\n ['フ', 'フブプ'],\n ['ヘ', 'ヘベペ'],\n ['ホ', 'ホボポ'],\n ['マ', 'マ--'],\n ['ミ', 'ミ--'],\n ['ム', 'ム--'],\n ['メ', 'メ--'],\n ['モ', 'モ--'],\n ['ヤ', 'ヤ--'],\n ['ユ', 'ユ--'],\n ['ヨ', 'ヨ--'],\n ['ラ', 'ラ--'],\n ['リ', 'リ--'],\n ['ル', 'ル--'],\n ['レ', 'レ--'],\n ['ロ', 'ロ--'],\n ['ワ', 'ワ--'],\n ['ン', 'ン--'],\n]);\n\nconst VOWEL_TO_KANA_MAPPING = new Map<string, string>([\n ['a', 'ぁあかがさざただなはばぱまゃやらゎわヵァアカガサザタダナハバパマャヤラヮワヵヷ'],\n ['i', 'ぃいきぎしじちぢにひびぴみりゐィイキギシジチヂニヒビピミリヰヸ'],\n ['u', 'ぅうくぐすずっつづぬふぶぷむゅゆるゥウクグスズッツヅヌフブプムュユルヴ'],\n ['e', 'ぇえけげせぜてでねへべぺめれゑヶェエケゲセゼテデネヘベペメレヱヶヹ'],\n ['o', 'ぉおこごそぞとどのほぼぽもょよろをォオコゴソゾトドノホボポモョヨロヲヺ'],\n ['', 'のノ'],\n]);\n\nconst KANA_TO_VOWEL_MAPPING = new Map<string, string>();\nfor (const [vowel, characters] of VOWEL_TO_KANA_MAPPING) {\n for (const character of characters) {\n KANA_TO_VOWEL_MAPPING.set(character, vowel);\n }\n}\n\nconst kana =\n 'うゔ-かが-きぎ-くぐ-けげ-こご-さざ-しじ-すず-せぜ-そぞ-ただ-ちぢ-つづ-てで-とど-はばぱひびぴふぶぷへべぺほぼぽワヷ-ヰヸ-ウヴ-ヱヹ-ヲヺ-カガ-キギ-クグ-ケゲ-コゴ-サザ-シジ-スズ-セゼ-ソゾ-タダ-チヂ-ツヅ-テデ-トド-ハバパヒビピフブプヘベペホボポ';\nconst DIACRITIC_MAPPING = new Map<string, { character: string; type: DiacriticType }>();\nfor (let i = 0, ii = kana.length; i < ii; i += 3) {\n const character = kana[i];\n const dakuten = kana[i + 1];\n const handakuten = kana[i + 2];\n DIACRITIC_MAPPING.set(dakuten, { character, type: 'dakuten' });\n if (handakuten !== '-') {\n DIACRITIC_MAPPING.set(handakuten, { character, type: 'handakuten' });\n }\n}\n\nfunction getProlongedHiragana(previousCharacter: string): string | null {\n switch (KANA_TO_VOWEL_MAPPING.get(previousCharacter)) {\n case 'a':\n return 'あ';\n case 'i':\n return 'い';\n case 'u':\n return 'う';\n case 'e':\n return 'え';\n case 'o':\n return 'う';\n default:\n return null;\n }\n}\n\nfunction createFuriganaSegment(text: string, reading: string): FuriganaSegment {\n return { text, reading };\n}\n\nfunction segmentizeFurigana(\n reading: string,\n readingNormalized: string,\n groups: FuriganaGroup[],\n groupsStart: number,\n): FuriganaSegment[] | null {\n const groupCount = groups.length - groupsStart;\n if (groupCount <= 0) {\n return reading.length === 0 ? [] : null;\n }\n\n const group = groups[groupsStart];\n const { isKana, text } = group;\n const textLength = text.length;\n if (isKana) {\n const { textNormalized } = group;\n if (textNormalized !== null && readingNormalized.startsWith(textNormalized)) {\n const segments = segmentizeFurigana(\n reading.substring(textLength),\n readingNormalized.substring(textLength),\n groups,\n groupsStart + 1,\n );\n if (segments !== null) {\n if (reading.startsWith(text)) {\n segments.unshift(createFuriganaSegment(text, ''));\n } else {\n segments.unshift(...getFuriganaKanaSegments(text, reading));\n }\n return segments;\n }\n }\n return null;\n }\n let result: FuriganaSegment[] | null = null;\n for (let i = reading.length; i >= textLength; --i) {\n const segments = segmentizeFurigana(\n reading.substring(i),\n readingNormalized.substring(i),\n groups,\n groupsStart + 1,\n );\n if (segments !== null) {\n if (result !== null) {\n // More than one way to segmentize the tail; mark as ambiguous\n return null;\n }\n const segmentReading = reading.substring(0, i);\n segments.unshift(createFuriganaSegment(text, segmentReading));\n result = segments;\n }\n // There is only one way to segmentize the last non-kana group\n if (groupCount === 1) {\n break;\n }\n }\n return result;\n}\n\nfunction getFuriganaKanaSegments(text: string, reading: string): FuriganaSegment[] {\n const textLength = text.length;\n const newSegments: FuriganaSegment[] = [];\n let start = 0;\n let state = reading[0] === text[0];\n for (let i = 1; i < textLength; ++i) {\n const newState = reading[i] === text[i];\n if (state === newState) {\n continue;\n }\n newSegments.push(createFuriganaSegment(text.substring(start, i), state ? '' : reading.substring(start, i)));\n state = newState;\n start = i;\n }\n newSegments.push(\n createFuriganaSegment(text.substring(start, textLength), state ? '' : reading.substring(start, textLength)),\n );\n return newSegments;\n}\n\nfunction getStemLength(text1: string, text2: string): number {\n const minLength = Math.min(text1.length, text2.length);\n if (minLength === 0) {\n return 0;\n }\n\n let i = 0;\n while (true) {\n const char1 = text1.codePointAt(i) as number;\n const char2 = text2.codePointAt(i) as number;\n if (char1 !== char2) {\n break;\n }\n const charLength = String.fromCodePoint(char1).length;\n i += charLength;\n if (i >= minLength) {\n if (i > minLength) {\n i -= charLength; // Don't consume partial UTF16 surrogate characters\n }\n break;\n }\n }\n return i;\n}\n\n// Character code testing functions\n\nexport function isCodePointKanji(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, CJK_IDEOGRAPH_RANGES);\n}\n\nexport function isCodePointKana(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, KANA_RANGES);\n}\n\nexport function isCodePointJapanese(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, JAPANESE_RANGES);\n}\n\n// String testing functions\n\nexport function isStringEntirelyKana(str: string): boolean {\n if (str.length === 0) {\n return false;\n }\n for (const c of str) {\n if (!isCodePointInRanges(c.codePointAt(0) as number, KANA_RANGES)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isStringPartiallyJapanese(str: string): boolean {\n if (str.length === 0) {\n return false;\n }\n for (const c of str) {\n if (isCodePointInRanges(c.codePointAt(0) as number, JAPANESE_RANGES)) {\n return true;\n }\n }\n return false;\n}\n\n// Mora functions\n\nexport function isMoraPitchHigh(moraIndex: number, pitchAccentValue: number | string): boolean {\n if (typeof pitchAccentValue === 'string') {\n return pitchAccentValue[moraIndex] === 'H';\n }\n switch (pitchAccentValue) {\n case 0:\n return moraIndex > 0;\n case 1:\n return moraIndex < 1;\n default:\n return moraIndex > 0 && moraIndex < pitchAccentValue;\n }\n}\n\nexport function getPitchCategory(\n text: string,\n pitchAccentValue: number | string,\n isVerbOrAdjective: boolean,\n): PitchCategory | null {\n const pitchAccentDownstepPosition =\n typeof pitchAccentValue === 'string' ? getDownstepPositions(pitchAccentValue)[0] : pitchAccentValue;\n if (pitchAccentDownstepPosition === 0) {\n return 'heiban';\n }\n if (isVerbOrAdjective) {\n return pitchAccentDownstepPosition > 0 ? 'kifuku' : null;\n }\n if (pitchAccentDownstepPosition === 1) {\n return 'atamadaka';\n }\n if (pitchAccentDownstepPosition > 1) {\n return pitchAccentDownstepPosition >= getKanaMoraCount(text) ? 'odaka' : 'nakadaka';\n }\n return null;\n}\n\nexport function getDownstepPositions(pitchString: string): number[] {\n const downsteps: number[] = [];\n const moraCount = pitchString.length;\n for (let i = 0; i < moraCount; i++) {\n if (i > 0 && pitchString[i - 1] === 'H' && pitchString[i] === 'L') {\n downsteps.push(i);\n }\n }\n if (downsteps.length === 0) {\n downsteps.push(pitchString.startsWith('L') ? 0 : -1);\n }\n return downsteps;\n}\n\nexport function getKanaMorae(text: string): string[] {\n const morae: string[] = [];\n let i: number;\n for (const c of text) {\n if (SMALL_KANA_SET.has(c) && (i = morae.length) > 0) {\n morae[i - 1] += c;\n } else {\n morae.push(c);\n }\n }\n return morae;\n}\n\nexport function getKanaMoraCount(text: string): number {\n let moraCount = 0;\n for (const c of text) {\n if (!(SMALL_KANA_SET.has(c) && moraCount > 0)) {\n ++moraCount;\n }\n }\n return moraCount;\n}\n\n// Conversion functions\n\nexport function convertKatakanaToHiragana(text: string, keepProlongedSoundMarks = false): string {\n let result = '';\n const offset = HIRAGANA_CONVERSION_RANGE[0] - KATAKANA_CONVERSION_RANGE[0];\n for (let char of text) {\n const codePoint = char.codePointAt(0) as number;\n switch (codePoint) {\n case KATAKANA_SMALL_KA_CODE_POINT:\n case KATAKANA_SMALL_KE_CODE_POINT:\n // No change\n break;\n case KANA_PROLONGED_SOUND_MARK_CODE_POINT:\n if (!keepProlongedSoundMarks && result.length > 0) {\n const char2 = getProlongedHiragana(result[result.length - 1]);\n if (char2 !== null) {\n char = char2;\n }\n }\n break;\n default:\n if (isCodePointInRange(codePoint, KATAKANA_CONVERSION_RANGE)) {\n char = String.fromCodePoint(codePoint + offset);\n }\n break;\n }\n result += char;\n }\n return result;\n}\n\nexport function convertHiraganaToKatakana(text: string): string {\n let result = '';\n const offset = KATAKANA_CONVERSION_RANGE[0] - HIRAGANA_CONVERSION_RANGE[0];\n for (let char of text) {\n const codePoint = char.codePointAt(0) as number;\n if (isCodePointInRange(codePoint, HIRAGANA_CONVERSION_RANGE)) {\n char = String.fromCodePoint(codePoint + offset);\n }\n result += char;\n }\n return result;\n}\n\nexport function convertAlphanumericToFullWidth(text: string): string {\n let result = '';\n for (const char of text) {\n let c = char.codePointAt(0) as number;\n if (c >= 0x30 && c <= 0x39) {\n // ['0', '9']\n c += 0xff10 - 0x30;\n } else if (c >= 0x41 && c <= 0x5a) {\n // ['A', 'Z']\n c += 0xff21 - 0x41;\n } else if (c >= 0x61 && c <= 0x7a) {\n // ['a', 'z']\n c += 0xff41 - 0x61;\n }\n result += String.fromCodePoint(c);\n }\n return result;\n}\n\nexport function convertFullWidthAlphanumericToNormal(text: string): string {\n let result = '';\n const length = text.length;\n for (let i = 0; i < length; i++) {\n let c = text[i].codePointAt(0) as number;\n if (c >= 0xff10 && c <= 0xff19) {\n // ['0', '9']\n c -= 0xff10 - 0x30;\n } else if (c >= 0xff21 && c <= 0xff3a) {\n // ['A', 'Z']\n c -= 0xff21 - 0x41;\n } else if (c >= 0xff41 && c <= 0xff5a) {\n // ['a', 'z']\n c -= 0xff41 - 0x61;\n }\n result += String.fromCodePoint(c);\n }\n return result;\n}\n\nexport function convertHalfWidthKanaToFullWidth(text: string): string {\n let result = '';\n\n for (let i = 0, ii = text.length; i < ii; ++i) {\n const c = text[i];\n const mapping = HALFWIDTH_KATAKANA_MAPPING.get(c);\n if (typeof mapping !== 'string') {\n result += c;\n continue;\n }\n\n let index = 0;\n switch (text.charCodeAt(i + 1)) {\n case 0xff9e: // Dakuten\n index = 1;\n break;\n case 0xff9f: // Handakuten\n index = 2;\n break;\n }\n\n let c2 = mapping[index];\n if (index > 0) {\n if (c2 === '-') {\n // Invalid\n index = 0;\n c2 = mapping[0];\n } else {\n ++i;\n }\n }\n\n result += c2;\n }\n\n return result;\n}\n\nexport function getKanaDiacriticInfo(character: string): { character: string; type: DiacriticType } | null {\n const info = DIACRITIC_MAPPING.get(character);\n return typeof info !== 'undefined' ? { character: info.character, type: info.type } : null;\n}\n\nfunction dakutenAllowed(codePoint: number): boolean {\n return (\n (codePoint >= 0x304b && codePoint <= 0x3068) ||\n (codePoint >= 0x306f && codePoint <= 0x307b) ||\n (codePoint >= 0x30ab && codePoint <= 0x30c8) ||\n (codePoint >= 0x30cf && codePoint <= 0x30db)\n );\n}\n\nfunction handakutenAllowed(codePoint: number): boolean {\n return (codePoint >= 0x306f && codePoint <= 0x307b) || (codePoint >= 0x30cf && codePoint <= 0x30db);\n}\n\nexport function normalizeCombiningCharacters(text: string): string {\n let result = '';\n let i = text.length - 1;\n while (i > 0) {\n if (text[i] === '\\u3099') {\n const dakutenCombinee = text[i - 1].codePointAt(0);\n if (dakutenCombinee && dakutenAllowed(dakutenCombinee)) {\n result = String.fromCodePoint(dakutenCombinee + 1) + result;\n i -= 2;\n continue;\n }\n } else if (text[i] === '\\u309A') {\n const handakutenCombinee = text[i - 1].codePointAt(0);\n if (handakutenCombinee && handakutenAllowed(handakutenCombinee)) {\n result = String.fromCodePoint(handakutenCombinee + 2) + result;\n i -= 2;\n continue;\n }\n }\n result = text[i] + result;\n i--;\n }\n if (i === 0) {\n result = text[0] + result;\n }\n return result;\n}\n\nexport function normalizeCJKCompatibilityCharacters(text: string): string {\n let result = '';\n for (let i = 0; i < text.length; i++) {\n const codePoint = text[i].codePointAt(0);\n result += codePoint && isCodePointInRange(codePoint, CJK_COMPATIBILITY) ? text[i].normalize('NFKD') : text[i];\n }\n return result;\n}\n\n// Furigana distribution\n\nexport function distributeFurigana(term: string, reading: string): FuriganaSegment[] {\n if (reading === term) {\n return [createFuriganaSegment(term, '')];\n }\n\n const groups: FuriganaGroup[] = [];\n let groupPre: FuriganaGroup | null = null;\n let isKanaPre: boolean | null = null;\n for (const c of term) {\n const codePoint = c.codePointAt(0) as number;\n const isKana = isCodePointKana(codePoint);\n if (isKana === isKanaPre) {\n (groupPre as FuriganaGroup).text += c;\n } else {\n groupPre = { isKana, text: c, textNormalized: null };\n groups.push(groupPre);\n isKanaPre = isKana;\n }\n }\n for (const group of groups) {\n if (group.isKana) {\n group.textNormalized = convertKatakanaToHiragana(group.text);\n }\n }\n\n const readingNormalized = convertKatakanaToHiragana(reading);\n const segments = segmentizeFurigana(reading, readingNormalized, groups, 0);\n if (segments !== null) {\n return segments;\n }\n\n // Fallback\n return [createFuriganaSegment(term, reading)];\n}\n\nexport function distributeFuriganaInflected(term: string, reading: string, source: string): FuriganaSegment[] {\n const termNormalized = convertKatakanaToHiragana(term);\n const readingNormalized = convertKatakanaToHiragana(reading);\n const sourceNormalized = convertKatakanaToHiragana(source);\n\n let mainText = term;\n let stemLength = getStemLength(termNormalized, sourceNormalized);\n\n const readingStemLength = getStemLength(readingNormalized, sourceNormalized);\n if (readingStemLength > 0 && readingStemLength >= stemLength) {\n mainText = reading;\n stemLength = readingStemLength;\n reading = `${source.substring(0, stemLength)}${reading.substring(stemLength)}`;\n }\n\n const segments: FuriganaSegment[] = [];\n if (stemLength > 0) {\n mainText = `${source.substring(0, stemLength)}${mainText.substring(stemLength)}`;\n const segments2 = distributeFurigana(mainText, reading);\n let consumed = 0;\n for (const segment of segments2) {\n const { text } = segment;\n const start = consumed;\n consumed += text.length;\n if (consumed < stemLength) {\n segments.push(segment);\n } else if (consumed === stemLength) {\n segments.push(segment);\n break;\n } else {\n if (start < stemLength) {\n segments.push(createFuriganaSegment(mainText.substring(start, stemLength), ''));\n }\n break;\n }\n }\n }\n\n if (stemLength < source.length) {\n const remainder = source.substring(stemLength);\n const segmentCount = segments.length;\n if (segmentCount > 0 && segments[segmentCount - 1].reading.length === 0) {\n segments[segmentCount - 1].text += remainder;\n } else {\n segments.push(createFuriganaSegment(remainder, ''));\n }\n }\n\n return segments;\n}\n\n// Miscellaneous\n\nexport function isEmphaticCodePoint(codePoint: number): boolean {\n return (\n codePoint === HIRAGANA_SMALL_TSU_CODE_POINT ||\n codePoint === KATAKANA_SMALL_TSU_CODE_POINT ||\n codePoint === KANA_PROLONGED_SOUND_MARK_CODE_POINT\n );\n}\n\nexport function collapseEmphaticSequences(text: string, fullCollapse: boolean): string {\n let left = 0;\n while (left < text.length && isEmphaticCodePoint(text.codePointAt(left) as number)) {\n ++left;\n }\n let right = text.length - 1;\n while (right >= 0 && isEmphaticCodePoint(text.codePointAt(right) as number)) {\n --right;\n }\n if (left > right) {\n return text;\n }\n\n const leadingEmphatics = text.substring(0, left);\n const trailingEmphatics = text.substring(right + 1);\n let middle = '';\n let currentCollapsedCodePoint = -1;\n\n for (let i = left; i <= right; ++i) {\n const char = text[i];\n const codePoint = char.codePointAt(0) as number;\n if (isEmphaticCodePoint(codePoint)) {\n if (currentCollapsedCodePoint !== codePoint) {\n currentCollapsedCodePoint = codePoint;\n if (!fullCollapse) {\n middle += char;\n }\n }\n } else {\n currentCollapsedCodePoint = -1;\n middle += char;\n }\n }\n\n return leadingEmphatics + middle + trailingEmphatics;\n}\n"],"mappings":";;;;AAyBA,MAAM,gCAAgC;AACtC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;AACrC,MAAM,uCAAuC;AAE7C,MAAMA,iBAAiC,CAAC,OAAQ,KAAO;AACvD,MAAMC,iBAAiC,CAAC,OAAQ,KAAO;AAEvD,MAAMC,4BAA4C,CAAC,OAAQ,KAAO;AAClE,MAAMC,4BAA4C,CAAC,OAAQ,KAAO;AAElE,MAAMC,cAAgC,CAAC,gBAAgB,cAAe;AAEtE,MAAMC,kBAAoC;CACtC;CACA;CACA,GAAGC;CACH,CAAC,OAAQ,KAAO;CAChB,CAAC,OAAQ,KAAO;CAChB,CAAC,OAAQ,KAAO;CAChBC;CACA,GAAGC;AACN;AAED,MAAM,iBAAiB,IAAI,IAAI;AAE/B,MAAM,6BAA6B,IAAI,IAAoB;CACvD,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;AACf;AAED,MAAM,wBAAwB,IAAI,IAAoB;CAClD,CAAC,KAAK,yCAA0C;CAChD,CAAC,KAAK,iCAAkC;CACxC,CAAC,KAAK,qCAAsC;CAC5C,CAAC,KAAK,mCAAoC;CAC1C,CAAC,KAAK,qCAAsC;CAC5C,CAAC,IAAI,IAAK;AACb;AAED,MAAM,wBAAwB,IAAI;AAClC,KAAK,MAAM,CAAC,OAAO,WAAW,IAAI,sBAC9B,MAAK,MAAM,aAAa,WACpB,uBAAsB,IAAI,WAAW,MAAM;AAInD,MAAM,OACF;AACJ,MAAM,oBAAoB,IAAI;AAC9B,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG;CAC9C,MAAM,YAAY,KAAK;CACvB,MAAM,UAAU,KAAK,IAAI;CACzB,MAAM,aAAa,KAAK,IAAI;AAC5B,mBAAkB,IAAI,SAAS;EAAE;EAAW,MAAM;CAAW,EAAC;AAC9D,KAAI,eAAe,IACf,mBAAkB,IAAI,YAAY;EAAE;EAAW,MAAM;CAAc,EAAC;AAE3E;AAED,SAAS,qBAAqBC,mBAA0C;AACpE,SAAQ,sBAAsB,IAAI,kBAAkB,EAApD;EACI,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,QACI,QAAO;CACd;AACJ;AAED,SAAS,sBAAsBC,MAAcC,SAAkC;AAC3E,QAAO;EAAE;EAAM;CAAS;AAC3B;AAED,SAAS,mBACLA,SACAC,mBACAC,QACAC,aACwB;CACxB,MAAM,aAAa,OAAO,SAAS;AACnC,KAAI,cAAc,EACd,QAAO,QAAQ,WAAW,IAAI,CAAE,IAAG;CAGvC,MAAM,QAAQ,OAAO;CACrB,MAAM,EAAE,QAAQ,MAAM,GAAG;CACzB,MAAM,aAAa,KAAK;AACxB,KAAI,QAAQ;EACR,MAAM,EAAE,gBAAgB,GAAG;AAC3B,MAAI,mBAAmB,QAAQ,kBAAkB,WAAW,eAAe,EAAE;GACzE,MAAM,WAAW,mBACb,QAAQ,UAAU,WAAW,EAC7B,kBAAkB,UAAU,WAAW,EACvC,QACA,cAAc,EACjB;AACD,OAAI,aAAa,MAAM;AACnB,QAAI,QAAQ,WAAW,KAAK,CACxB,UAAS,QAAQ,sBAAsB,MAAM,GAAG,CAAC;QAEjD,UAAS,QAAQ,GAAG,wBAAwB,MAAM,QAAQ,CAAC;AAE/D,WAAO;GACV;EACJ;AACD,SAAO;CACV;CACD,IAAIC,SAAmC;AACvC,MAAK,IAAI,IAAI,QAAQ,QAAQ,KAAK,YAAY,EAAE,GAAG;EAC/C,MAAM,WAAW,mBACb,QAAQ,UAAU,EAAE,EACpB,kBAAkB,UAAU,EAAE,EAC9B,QACA,cAAc,EACjB;AACD,MAAI,aAAa,MAAM;AACnB,OAAI,WAAW,KAEX,QAAO;GAEX,MAAM,iBAAiB,QAAQ,UAAU,GAAG,EAAE;AAC9C,YAAS,QAAQ,sBAAsB,MAAM,eAAe,CAAC;AAC7D,YAAS;EACZ;AAED,MAAI,eAAe,EACf;CAEP;AACD,QAAO;AACV;AAED,SAAS,wBAAwBL,MAAcC,SAAoC;CAC/E,MAAM,aAAa,KAAK;CACxB,MAAMK,cAAiC,CAAE;CACzC,IAAI,QAAQ;CACZ,IAAI,QAAQ,QAAQ,OAAO,KAAK;AAChC,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;EACjC,MAAM,WAAW,QAAQ,OAAO,KAAK;AACrC,MAAI,UAAU,SACV;AAEJ,cAAY,KAAK,sBAAsB,KAAK,UAAU,OAAO,EAAE,EAAE,QAAQ,KAAK,QAAQ,UAAU,OAAO,EAAE,CAAC,CAAC;AAC3G,UAAQ;AACR,UAAQ;CACX;AACD,aAAY,KACR,sBAAsB,KAAK,UAAU,OAAO,WAAW,EAAE,QAAQ,KAAK,QAAQ,UAAU,OAAO,WAAW,CAAC,CAC9G;AACD,QAAO;AACV;AAED,SAAS,cAAcC,OAAeC,OAAuB;CACzD,MAAM,YAAY,KAAK,IAAI,MAAM,QAAQ,MAAM,OAAO;AACtD,KAAI,cAAc,EACd,QAAO;CAGX,IAAI,IAAI;AACR,QAAO,MAAM;EACT,MAAM,QAAQ,MAAM,YAAY,EAAE;EAClC,MAAM,QAAQ,MAAM,YAAY,EAAE;AAClC,MAAI,UAAU,MACV;EAEJ,MAAM,aAAa,OAAO,cAAc,MAAM,CAAC;AAC/C,OAAK;AACL,MAAI,KAAK,WAAW;AAChB,OAAI,IAAI,UACJ,MAAK;AAET;EACH;CACJ;AACD,QAAO;AACV;AAID,SAAgB,iBAAiBC,WAA4B;AACzD,QAAO,qCAAoB,WAAWb,sCAAqB;AAC9D;AAED,SAAgB,gBAAgBa,WAA4B;AACxD,QAAO,qCAAoB,WAAW,YAAY;AACrD;AAED,SAAgB,oBAAoBA,WAA4B;AAC5D,QAAO,qCAAoB,WAAW,gBAAgB;AACzD;AAID,SAAgB,qBAAqBC,KAAsB;AACvD,KAAI,IAAI,WAAW,EACf,QAAO;AAEX,MAAK,MAAM,KAAK,IACZ,MAAK,qCAAoB,EAAE,YAAY,EAAE,EAAY,YAAY,CAC7D,QAAO;AAGf,QAAO;AACV;AAED,SAAgB,0BAA0BA,KAAsB;AAC5D,KAAI,IAAI,WAAW,EACf,QAAO;AAEX,MAAK,MAAM,KAAK,IACZ,KAAI,qCAAoB,EAAE,YAAY,EAAE,EAAY,gBAAgB,CAChE,QAAO;AAGf,QAAO;AACV;AAID,SAAgB,gBAAgBC,WAAmBC,kBAA4C;AAC3F,YAAW,qBAAqB,SAC5B,QAAO,iBAAiB,eAAe;AAE3C,SAAQ,kBAAR;EACI,KAAK,EACD,QAAO,YAAY;EACvB,KAAK,EACD,QAAO,YAAY;EACvB,QACI,QAAO,YAAY,KAAK,YAAY;CAC3C;AACJ;AAED,SAAgB,iBACZZ,MACAY,kBACAC,mBACoB;CACpB,MAAM,qCACK,qBAAqB,WAAW,qBAAqB,iBAAiB,CAAC,KAAK;AACvF,KAAI,gCAAgC,EAChC,QAAO;AAEX,KAAI,kBACA,QAAO,8BAA8B,IAAI,WAAW;AAExD,KAAI,gCAAgC,EAChC,QAAO;AAEX,KAAI,8BAA8B,EAC9B,QAAO,+BAA+B,iBAAiB,KAAK,GAAG,UAAU;AAE7E,QAAO;AACV;AAED,SAAgB,qBAAqBC,aAA+B;CAChE,MAAMC,YAAsB,CAAE;CAC9B,MAAM,YAAY,YAAY;AAC9B,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,IAC3B,KAAI,IAAI,KAAK,YAAY,IAAI,OAAO,OAAO,YAAY,OAAO,IAC1D,WAAU,KAAK,EAAE;AAGzB,KAAI,UAAU,WAAW,EACrB,WAAU,KAAK,YAAY,WAAW,IAAI,GAAG,IAAI,GAAG;AAExD,QAAO;AACV;AAED,SAAgB,aAAaf,MAAwB;CACjD,MAAMgB,QAAkB,CAAE;CAC1B,IAAIC;AACJ,MAAK,MAAM,KAAK,KACZ,KAAI,eAAe,IAAI,EAAE,KAAK,IAAI,MAAM,UAAU,EAC9C,OAAM,IAAI,MAAM;KAEhB,OAAM,KAAK,EAAE;AAGrB,QAAO;AACV;AAED,SAAgB,iBAAiBjB,MAAsB;CACnD,IAAI,YAAY;AAChB,MAAK,MAAM,KAAK,KACZ,OAAM,eAAe,IAAI,EAAE,IAAI,YAAY,GACvC,GAAE;AAGV,QAAO;AACV;AAID,SAAgB,0BAA0BA,MAAc,0BAA0B,OAAe;CAC7F,IAAI,SAAS;CACb,MAAM,SAAS,0BAA0B,KAAK,0BAA0B;AACxE,MAAK,IAAI,QAAQ,MAAM;EACnB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,UAAQ,WAAR;GACI,KAAK;GACL,KAAK,6BAED;GACJ,KAAK;AACD,SAAK,2BAA2B,OAAO,SAAS,GAAG;KAC/C,MAAM,QAAQ,qBAAqB,OAAO,OAAO,SAAS,GAAG;AAC7D,SAAI,UAAU,KACV,QAAO;IAEd;AACD;GACJ;AACI,QAAI,oCAAmB,WAAW,0BAA0B,CACxD,QAAO,OAAO,cAAc,YAAY,OAAO;AAEnD;EACP;AACD,YAAU;CACb;AACD,QAAO;AACV;AAED,SAAgB,0BAA0BA,MAAsB;CAC5D,IAAI,SAAS;CACb,MAAM,SAAS,0BAA0B,KAAK,0BAA0B;AACxE,MAAK,IAAI,QAAQ,MAAM;EACnB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,MAAI,oCAAmB,WAAW,0BAA0B,CACxD,QAAO,OAAO,cAAc,YAAY,OAAO;AAEnD,YAAU;CACb;AACD,QAAO;AACV;AAED,SAAgB,+BAA+BA,MAAsB;CACjE,IAAI,SAAS;AACb,MAAK,MAAM,QAAQ,MAAM;EACrB,IAAI,IAAI,KAAK,YAAY,EAAE;AAC3B,MAAI,KAAK,MAAQ,KAAK,GAElB,MAAK;WACE,KAAK,MAAQ,KAAK,GAEzB,MAAK;WACE,KAAK,MAAQ,KAAK,IAEzB,MAAK;AAET,YAAU,OAAO,cAAc,EAAE;CACpC;AACD,QAAO;AACV;AAED,SAAgB,qCAAqCA,MAAsB;CACvE,IAAI,SAAS;CACb,MAAM,SAAS,KAAK;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK;EAC7B,IAAI,IAAI,KAAK,GAAG,YAAY,EAAE;AAC9B,MAAI,KAAK,SAAU,KAAK,MAEpB,MAAK;WACE,KAAK,SAAU,KAAK,MAE3B,MAAK;WACE,KAAK,SAAU,KAAK,MAE3B,MAAK;AAET,YAAU,OAAO,cAAc,EAAE;CACpC;AACD,QAAO;AACV;AAED,SAAgB,gCAAgCA,MAAsB;CAClE,IAAI,SAAS;AAEb,MAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,IAAI,IAAI,EAAE,GAAG;EAC3C,MAAM,IAAI,KAAK;EACf,MAAM,UAAU,2BAA2B,IAAI,EAAE;AACjD,aAAW,YAAY,UAAU;AAC7B,aAAU;AACV;EACH;EAED,IAAI,QAAQ;AACZ,UAAQ,KAAK,WAAW,IAAI,EAAE,EAA9B;GACI,KAAK;AACD,YAAQ;AACR;GACJ,KAAK;AACD,YAAQ;AACR;EACP;EAED,IAAI,KAAK,QAAQ;AACjB,MAAI,QAAQ,EACR,KAAI,OAAO,KAAK;AAEZ,WAAQ;AACR,QAAK,QAAQ;EAChB,MACG,GAAE;AAIV,YAAU;CACb;AAED,QAAO;AACV;AAED,SAAgB,qBAAqBkB,WAAsE;CACvG,MAAM,OAAO,kBAAkB,IAAI,UAAU;AAC7C,eAAc,SAAS,cAAc;EAAE,WAAW,KAAK;EAAW,MAAM,KAAK;CAAM,IAAG;AACzF;AAED,SAAS,eAAeT,WAA4B;AAChD,QACK,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa;AAE5C;AAED,SAAS,kBAAkBA,WAA4B;AACnD,QAAQ,aAAa,SAAU,aAAa,SAAY,aAAa,SAAU,aAAa;AAC/F;AAED,SAAgB,6BAA6BT,MAAsB;CAC/D,IAAI,SAAS;CACb,IAAI,IAAI,KAAK,SAAS;AACtB,QAAO,IAAI,GAAG;AACV,MAAI,KAAK,OAAO,KAAU;GACtB,MAAM,kBAAkB,KAAK,IAAI,GAAG,YAAY,EAAE;AAClD,OAAI,mBAAmB,eAAe,gBAAgB,EAAE;AACpD,aAAS,OAAO,cAAc,kBAAkB,EAAE,GAAG;AACrD,SAAK;AACL;GACH;EACJ,WAAU,KAAK,OAAO,KAAU;GAC7B,MAAM,qBAAqB,KAAK,IAAI,GAAG,YAAY,EAAE;AACrD,OAAI,sBAAsB,kBAAkB,mBAAmB,EAAE;AAC7D,aAAS,OAAO,cAAc,qBAAqB,EAAE,GAAG;AACxD,SAAK;AACL;GACH;EACJ;AACD,WAAS,KAAK,KAAK;AACnB;CACH;AACD,KAAI,MAAM,EACN,UAAS,KAAK,KAAK;AAEvB,QAAO;AACV;AAED,SAAgB,oCAAoCA,MAAsB;CACtE,IAAI,SAAS;AACb,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EAClC,MAAM,YAAY,KAAK,GAAG,YAAY,EAAE;AACxC,YAAU,aAAa,oCAAmB,WAAWmB,mCAAkB,GAAG,KAAK,GAAG,UAAU,OAAO,GAAG,KAAK;CAC9G;AACD,QAAO;AACV;AAID,SAAgB,mBAAmBC,MAAcnB,SAAoC;AACjF,KAAI,YAAY,KACZ,QAAO,CAAC,sBAAsB,MAAM,GAAG,AAAC;CAG5C,MAAME,SAA0B,CAAE;CAClC,IAAIkB,WAAiC;CACrC,IAAIC,YAA4B;AAChC,MAAK,MAAM,KAAK,MAAM;EAClB,MAAM,YAAY,EAAE,YAAY,EAAE;EAClC,MAAM,SAAS,gBAAgB,UAAU;AACzC,MAAI,WAAW,UACX,CAAC,SAA2B,QAAQ;OACjC;AACH,cAAW;IAAE;IAAQ,MAAM;IAAG,gBAAgB;GAAM;AACpD,UAAO,KAAK,SAAS;AACrB,eAAY;EACf;CACJ;AACD,MAAK,MAAM,SAAS,OAChB,KAAI,MAAM,OACN,OAAM,iBAAiB,0BAA0B,MAAM,KAAK;CAIpE,MAAM,oBAAoB,0BAA0B,QAAQ;CAC5D,MAAM,WAAW,mBAAmB,SAAS,mBAAmB,QAAQ,EAAE;AAC1E,KAAI,aAAa,KACb,QAAO;AAIX,QAAO,CAAC,sBAAsB,MAAM,QAAQ,AAAC;AAChD;AAED,SAAgB,4BAA4BF,MAAcnB,SAAiBsB,QAAmC;CAC1G,MAAM,iBAAiB,0BAA0B,KAAK;CACtD,MAAM,oBAAoB,0BAA0B,QAAQ;CAC5D,MAAM,mBAAmB,0BAA0B,OAAO;CAE1D,IAAI,WAAW;CACf,IAAI,aAAa,cAAc,gBAAgB,iBAAiB;CAEhE,MAAM,oBAAoB,cAAc,mBAAmB,iBAAiB;AAC5E,KAAI,oBAAoB,KAAK,qBAAqB,YAAY;AAC1D,aAAW;AACX,eAAa;AACb,aAAW,EAAE,OAAO,UAAU,GAAG,WAAW,CAAC,EAAE,QAAQ,UAAU,WAAW,CAAC;CAChF;CAED,MAAMC,WAA8B,CAAE;AACtC,KAAI,aAAa,GAAG;AAChB,cAAY,EAAE,OAAO,UAAU,GAAG,WAAW,CAAC,EAAE,SAAS,UAAU,WAAW,CAAC;EAC/E,MAAM,YAAY,mBAAmB,UAAU,QAAQ;EACvD,IAAI,WAAW;AACf,OAAK,MAAM,WAAW,WAAW;GAC7B,MAAM,EAAE,MAAM,GAAG;GACjB,MAAM,QAAQ;AACd,eAAY,KAAK;AACjB,OAAI,WAAW,WACX,UAAS,KAAK,QAAQ;YACf,aAAa,YAAY;AAChC,aAAS,KAAK,QAAQ;AACtB;GACH,OAAM;AACH,QAAI,QAAQ,WACR,UAAS,KAAK,sBAAsB,SAAS,UAAU,OAAO,WAAW,EAAE,GAAG,CAAC;AAEnF;GACH;EACJ;CACJ;AAED,KAAI,aAAa,OAAO,QAAQ;EAC5B,MAAM,YAAY,OAAO,UAAU,WAAW;EAC9C,MAAM,eAAe,SAAS;AAC9B,MAAI,eAAe,KAAK,SAAS,eAAe,GAAG,QAAQ,WAAW,EAClE,UAAS,eAAe,GAAG,QAAQ;MAEnC,UAAS,KAAK,sBAAsB,WAAW,GAAG,CAAC;CAE1D;AAED,QAAO;AACV;AAID,SAAgB,oBAAoBf,WAA4B;AAC5D,QACI,cAAc,iCACd,cAAc,iCACd,cAAc;AAErB;AAED,SAAgB,0BAA0BT,MAAcyB,cAA+B;CACnF,IAAI,OAAO;AACX,QAAO,OAAO,KAAK,UAAU,oBAAoB,KAAK,YAAY,KAAK,CAAW,CAC9E,GAAE;CAEN,IAAI,QAAQ,KAAK,SAAS;AAC1B,QAAO,SAAS,KAAK,oBAAoB,KAAK,YAAY,MAAM,CAAW,CACvE,GAAE;AAEN,KAAI,OAAO,MACP,QAAO;CAGX,MAAM,mBAAmB,KAAK,UAAU,GAAG,KAAK;CAChD,MAAM,oBAAoB,KAAK,UAAU,QAAQ,EAAE;CACnD,IAAI,SAAS;CACb,IAAI,4BAA4B;AAEhC,MAAK,IAAI,IAAI,MAAM,KAAK,OAAO,EAAE,GAAG;EAChC,MAAM,OAAO,KAAK;EAClB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,MAAI,oBAAoB,UAAU,EAC9B;OAAI,8BAA8B,WAAW;AACzC,gCAA4B;AAC5B,SAAK,aACD,WAAU;GAEjB;SACE;AACH,+BAA4B;AAC5B,aAAU;EACb;CACJ;AAED,QAAO,mBAAmB,SAAS;AACtC"}
1
+ {"version":3,"file":"japanese-C83fmEfb.cjs","names":["HIRAGANA_RANGE: CodepointRange","KATAKANA_RANGE: CodepointRange","HIRAGANA_CONVERSION_RANGE: CodepointRange","KATAKANA_CONVERSION_RANGE: CodepointRange","KANA_RANGES: CodepointRange[]","JAPANESE_RANGES: CodepointRange[]","CJK_IDEOGRAPH_RANGES","CJK_PUNCTUATION_RANGE","FULLWIDTH_CHARACTER_RANGES","previousCharacter: string","text: string","reading: string","readingNormalized: string","groups: FuriganaGroup[]","groupsStart: number","result: FuriganaSegment[] | null","newSegments: FuriganaSegment[]","text1: string","text2: string","codePoint: number","str: string","moraIndex: number","pitchAccentValue: number | string","isVerbOrAdjective: boolean","pitchString: string","downsteps: number[]","morae: string[]","i: number","character: string","CJK_COMPATIBILITY","term: string","groupPre: FuriganaGroup | null","isKanaPre: boolean | null","source: string","segments: FuriganaSegment[]","fullCollapse: boolean"],"sources":["../src/language/ja/japanese.ts"],"sourcesContent":["import {\n CJK_COMPATIBILITY,\n CJK_IDEOGRAPH_RANGES,\n CJK_PUNCTUATION_RANGE,\n FULLWIDTH_CHARACTER_RANGES,\n isCodePointInRange,\n isCodePointInRanges,\n} from '../cjk-util';\nimport type { CodepointRange } from '../cjk-util';\n\nexport type FuriganaSegment = {\n text: string;\n reading: string;\n};\n\nexport type FuriganaGroup = {\n isKana: boolean;\n text: string;\n textNormalized: string | null;\n};\n\nexport type DiacriticType = 'dakuten' | 'handakuten';\n\nexport type PitchCategory = 'heiban' | 'atamadaka' | 'nakadaka' | 'odaka' | 'kifuku';\n\nconst HIRAGANA_SMALL_TSU_CODE_POINT = 0x3063;\nconst KATAKANA_SMALL_TSU_CODE_POINT = 0x30c3;\nconst KATAKANA_SMALL_KA_CODE_POINT = 0x30f5;\nconst KATAKANA_SMALL_KE_CODE_POINT = 0x30f6;\nconst KANA_PROLONGED_SOUND_MARK_CODE_POINT = 0x30fc;\n\nconst HIRAGANA_RANGE: CodepointRange = [0x3040, 0x309f];\nconst KATAKANA_RANGE: CodepointRange = [0x30a0, 0x30ff];\n\nconst HIRAGANA_CONVERSION_RANGE: CodepointRange = [0x3041, 0x3096];\nconst KATAKANA_CONVERSION_RANGE: CodepointRange = [0x30a1, 0x30f6];\n\nconst KANA_RANGES: CodepointRange[] = [HIRAGANA_RANGE, KATAKANA_RANGE];\n\nconst JAPANESE_RANGES: CodepointRange[] = [\n HIRAGANA_RANGE,\n KATAKANA_RANGE,\n ...CJK_IDEOGRAPH_RANGES,\n [0xff66, 0xff9f], // Halfwidth katakana\n [0x30fb, 0x30fc], // Katakana punctuation\n [0xff61, 0xff65], // Kana punctuation\n CJK_PUNCTUATION_RANGE,\n ...FULLWIDTH_CHARACTER_RANGES,\n];\n\nconst SMALL_KANA_SET = new Set('ぁぃぅぇぉゃゅょゎァィゥェォャュョヮ');\n\nconst HALFWIDTH_KATAKANA_MAPPING = new Map<string, string>([\n ['・', '・--'],\n ['ヲ', 'ヲヺ-'],\n ['ァ', 'ァ--'],\n ['ィ', 'ィ--'],\n ['ゥ', 'ゥ--'],\n ['ェ', 'ェ--'],\n ['ォ', 'ォ--'],\n ['ャ', 'ャ--'],\n ['ュ', 'ュ--'],\n ['ョ', 'ョ--'],\n ['ッ', 'ッ--'],\n ['ー', 'ー--'],\n ['ア', 'ア--'],\n ['イ', 'イ--'],\n ['ウ', 'ウヴ-'],\n ['エ', 'エ--'],\n ['オ', 'オ--'],\n ['カ', 'カガ-'],\n ['キ', 'キギ-'],\n ['ク', 'クグ-'],\n ['ケ', 'ケゲ-'],\n ['コ', 'コゴ-'],\n ['サ', 'サザ-'],\n ['シ', 'シジ-'],\n ['ス', 'スズ-'],\n ['セ', 'セゼ-'],\n ['ソ', 'ソゾ-'],\n ['タ', 'タダ-'],\n ['チ', 'チヂ-'],\n ['ツ', 'ツヅ-'],\n ['テ', 'テデ-'],\n ['ト', 'トド-'],\n ['ナ', 'ナ--'],\n ['ニ', 'ニ--'],\n ['ヌ', 'ヌ--'],\n ['ネ', 'ネ--'],\n ['ノ', 'ノ--'],\n ['ハ', 'ハバパ'],\n ['ヒ', 'ヒビピ'],\n ['フ', 'フブプ'],\n ['ヘ', 'ヘベペ'],\n ['ホ', 'ホボポ'],\n ['マ', 'マ--'],\n ['ミ', 'ミ--'],\n ['ム', 'ム--'],\n ['メ', 'メ--'],\n ['モ', 'モ--'],\n ['ヤ', 'ヤ--'],\n ['ユ', 'ユ--'],\n ['ヨ', 'ヨ--'],\n ['ラ', 'ラ--'],\n ['リ', 'リ--'],\n ['ル', 'ル--'],\n ['レ', 'レ--'],\n ['ロ', 'ロ--'],\n ['ワ', 'ワ--'],\n ['ン', 'ン--'],\n]);\n\nconst VOWEL_TO_KANA_MAPPING = new Map<string, string>([\n ['a', 'ぁあかがさざただなはばぱまゃやらゎわヵァアカガサザタダナハバパマャヤラヮワヵヷ'],\n ['i', 'ぃいきぎしじちぢにひびぴみりゐィイキギシジチヂニヒビピミリヰヸ'],\n ['u', 'ぅうくぐすずっつづぬふぶぷむゅゆるゥウクグスズッツヅヌフブプムュユルヴ'],\n ['e', 'ぇえけげせぜてでねへべぺめれゑヶェエケゲセゼテデネヘベペメレヱヶヹ'],\n ['o', 'ぉおこごそぞとどのほぼぽもょよろをォオコゴソゾトドノホボポモョヨロヲヺ'],\n ['', 'のノ'],\n]);\n\nconst KANA_TO_VOWEL_MAPPING = new Map<string, string>();\nfor (const [vowel, characters] of VOWEL_TO_KANA_MAPPING) {\n for (const character of characters) {\n KANA_TO_VOWEL_MAPPING.set(character, vowel);\n }\n}\n\nconst kana =\n 'うゔ-かが-きぎ-くぐ-けげ-こご-さざ-しじ-すず-せぜ-そぞ-ただ-ちぢ-つづ-てで-とど-はばぱひびぴふぶぷへべぺほぼぽワヷ-ヰヸ-ウヴ-ヱヹ-ヲヺ-カガ-キギ-クグ-ケゲ-コゴ-サザ-シジ-スズ-セゼ-ソゾ-タダ-チヂ-ツヅ-テデ-トド-ハバパヒビピフブプヘベペホボポ';\nconst DIACRITIC_MAPPING = new Map<string, { character: string; type: DiacriticType }>();\nfor (let i = 0, ii = kana.length; i < ii; i += 3) {\n const character = kana[i];\n const dakuten = kana[i + 1];\n const handakuten = kana[i + 2];\n DIACRITIC_MAPPING.set(dakuten, { character, type: 'dakuten' });\n if (handakuten !== '-') {\n DIACRITIC_MAPPING.set(handakuten, { character, type: 'handakuten' });\n }\n}\n\nfunction getProlongedHiragana(previousCharacter: string): string | null {\n switch (KANA_TO_VOWEL_MAPPING.get(previousCharacter)) {\n case 'a':\n return 'あ';\n case 'i':\n return 'い';\n case 'u':\n return 'う';\n case 'e':\n return 'え';\n case 'o':\n return 'う';\n default:\n return null;\n }\n}\n\nfunction createFuriganaSegment(text: string, reading: string): FuriganaSegment {\n return { text, reading };\n}\n\nfunction segmentizeFurigana(\n reading: string,\n readingNormalized: string,\n groups: FuriganaGroup[],\n groupsStart: number,\n): FuriganaSegment[] | null {\n const groupCount = groups.length - groupsStart;\n if (groupCount <= 0) {\n return reading.length === 0 ? [] : null;\n }\n\n const group = groups[groupsStart];\n const { isKana, text } = group;\n const textLength = text.length;\n if (isKana) {\n const { textNormalized } = group;\n if (textNormalized !== null && readingNormalized.startsWith(textNormalized)) {\n const segments = segmentizeFurigana(\n reading.substring(textLength),\n readingNormalized.substring(textLength),\n groups,\n groupsStart + 1,\n );\n if (segments !== null) {\n if (reading.startsWith(text)) {\n segments.unshift(createFuriganaSegment(text, ''));\n } else {\n segments.unshift(...getFuriganaKanaSegments(text, reading));\n }\n return segments;\n }\n }\n return null;\n }\n let result: FuriganaSegment[] | null = null;\n for (let i = reading.length; i >= textLength; --i) {\n const segments = segmentizeFurigana(\n reading.substring(i),\n readingNormalized.substring(i),\n groups,\n groupsStart + 1,\n );\n if (segments !== null) {\n if (result !== null) {\n // More than one way to segmentize the tail; mark as ambiguous\n return null;\n }\n const segmentReading = reading.substring(0, i);\n segments.unshift(createFuriganaSegment(text, segmentReading));\n result = segments;\n }\n // There is only one way to segmentize the last non-kana group\n if (groupCount === 1) {\n break;\n }\n }\n return result;\n}\n\nfunction getFuriganaKanaSegments(text: string, reading: string): FuriganaSegment[] {\n const textLength = text.length;\n const newSegments: FuriganaSegment[] = [];\n let start = 0;\n let state = reading[0] === text[0];\n for (let i = 1; i < textLength; ++i) {\n const newState = reading[i] === text[i];\n if (state === newState) {\n continue;\n }\n newSegments.push(createFuriganaSegment(text.substring(start, i), state ? '' : reading.substring(start, i)));\n state = newState;\n start = i;\n }\n newSegments.push(\n createFuriganaSegment(text.substring(start, textLength), state ? '' : reading.substring(start, textLength)),\n );\n return newSegments;\n}\n\nfunction getStemLength(text1: string, text2: string): number {\n const minLength = Math.min(text1.length, text2.length);\n if (minLength === 0) {\n return 0;\n }\n\n let i = 0;\n while (true) {\n const char1 = text1.codePointAt(i) as number;\n const char2 = text2.codePointAt(i) as number;\n if (char1 !== char2) {\n break;\n }\n const charLength = String.fromCodePoint(char1).length;\n i += charLength;\n if (i >= minLength) {\n if (i > minLength) {\n i -= charLength; // Don't consume partial UTF16 surrogate characters\n }\n break;\n }\n }\n return i;\n}\n\n// Character code testing functions\n\nexport function isCodePointKanji(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, CJK_IDEOGRAPH_RANGES);\n}\n\nexport function isCodePointKana(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, KANA_RANGES);\n}\n\nexport function isCodePointJapanese(codePoint: number): boolean {\n return isCodePointInRanges(codePoint, JAPANESE_RANGES);\n}\n\n// String testing functions\n\nexport function isStringEntirelyKana(str: string): boolean {\n if (str.length === 0) {\n return false;\n }\n for (const c of str) {\n if (!isCodePointInRanges(c.codePointAt(0) as number, KANA_RANGES)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isStringPartiallyJapanese(str: string): boolean {\n if (str.length === 0) {\n return false;\n }\n for (const c of str) {\n if (isCodePointInRanges(c.codePointAt(0) as number, JAPANESE_RANGES)) {\n return true;\n }\n }\n return false;\n}\n\n// Mora functions\n\nexport function isMoraPitchHigh(moraIndex: number, pitchAccentValue: number | string): boolean {\n if (typeof pitchAccentValue === 'string') {\n return pitchAccentValue[moraIndex] === 'H';\n }\n switch (pitchAccentValue) {\n case 0:\n return moraIndex > 0;\n case 1:\n return moraIndex < 1;\n default:\n return moraIndex > 0 && moraIndex < pitchAccentValue;\n }\n}\n\nexport function getPitchCategory(\n text: string,\n pitchAccentValue: number | string,\n isVerbOrAdjective: boolean,\n): PitchCategory | null {\n const pitchAccentDownstepPosition =\n typeof pitchAccentValue === 'string' ? getDownstepPositions(pitchAccentValue)[0] : pitchAccentValue;\n if (pitchAccentDownstepPosition === 0) {\n return 'heiban';\n }\n if (isVerbOrAdjective) {\n return pitchAccentDownstepPosition > 0 ? 'kifuku' : null;\n }\n if (pitchAccentDownstepPosition === 1) {\n return 'atamadaka';\n }\n if (pitchAccentDownstepPosition > 1) {\n return pitchAccentDownstepPosition >= getKanaMoraCount(text) ? 'odaka' : 'nakadaka';\n }\n return null;\n}\n\nexport function getDownstepPositions(pitchString: string): number[] {\n const downsteps: number[] = [];\n const moraCount = pitchString.length;\n for (let i = 0; i < moraCount; i++) {\n if (i > 0 && pitchString[i - 1] === 'H' && pitchString[i] === 'L') {\n downsteps.push(i);\n }\n }\n if (downsteps.length === 0) {\n downsteps.push(pitchString.startsWith('L') ? 0 : -1);\n }\n return downsteps;\n}\n\nexport function getKanaMorae(text: string): string[] {\n const morae: string[] = [];\n let i: number;\n for (const c of text) {\n if (SMALL_KANA_SET.has(c) && (i = morae.length) > 0) {\n morae[i - 1] += c;\n } else {\n morae.push(c);\n }\n }\n return morae;\n}\n\nexport function getKanaMoraCount(text: string): number {\n let moraCount = 0;\n for (const c of text) {\n if (!(SMALL_KANA_SET.has(c) && moraCount > 0)) {\n ++moraCount;\n }\n }\n return moraCount;\n}\n\n// Conversion functions\n\nexport function convertKatakanaToHiragana(text: string, keepProlongedSoundMarks = false): string {\n let result = '';\n const offset = HIRAGANA_CONVERSION_RANGE[0] - KATAKANA_CONVERSION_RANGE[0];\n for (let char of text) {\n const codePoint = char.codePointAt(0) as number;\n switch (codePoint) {\n case KATAKANA_SMALL_KA_CODE_POINT:\n case KATAKANA_SMALL_KE_CODE_POINT:\n // No change\n break;\n case KANA_PROLONGED_SOUND_MARK_CODE_POINT:\n if (!keepProlongedSoundMarks && result.length > 0) {\n const char2 = getProlongedHiragana(result[result.length - 1]);\n if (char2 !== null) {\n char = char2;\n }\n }\n break;\n default:\n if (isCodePointInRange(codePoint, KATAKANA_CONVERSION_RANGE)) {\n char = String.fromCodePoint(codePoint + offset);\n }\n break;\n }\n result += char;\n }\n return result;\n}\n\nexport function convertHiraganaToKatakana(text: string): string {\n let result = '';\n const offset = KATAKANA_CONVERSION_RANGE[0] - HIRAGANA_CONVERSION_RANGE[0];\n for (let char of text) {\n const codePoint = char.codePointAt(0) as number;\n if (isCodePointInRange(codePoint, HIRAGANA_CONVERSION_RANGE)) {\n char = String.fromCodePoint(codePoint + offset);\n }\n result += char;\n }\n return result;\n}\n\nexport function convertAlphanumericToFullWidth(text: string): string {\n let result = '';\n for (const char of text) {\n let c = char.codePointAt(0) as number;\n if (c >= 0x30 && c <= 0x39) {\n // ['0', '9']\n c += 0xff10 - 0x30;\n } else if (c >= 0x41 && c <= 0x5a) {\n // ['A', 'Z']\n c += 0xff21 - 0x41;\n } else if (c >= 0x61 && c <= 0x7a) {\n // ['a', 'z']\n c += 0xff41 - 0x61;\n }\n result += String.fromCodePoint(c);\n }\n return result;\n}\n\nexport function convertFullWidthAlphanumericToNormal(text: string): string {\n let result = '';\n const length = text.length;\n for (let i = 0; i < length; i++) {\n let c = text[i].codePointAt(0) as number;\n if (c >= 0xff10 && c <= 0xff19) {\n // ['0', '9']\n c -= 0xff10 - 0x30;\n } else if (c >= 0xff21 && c <= 0xff3a) {\n // ['A', 'Z']\n c -= 0xff21 - 0x41;\n } else if (c >= 0xff41 && c <= 0xff5a) {\n // ['a', 'z']\n c -= 0xff41 - 0x61;\n }\n result += String.fromCodePoint(c);\n }\n return result;\n}\n\nexport function convertHalfWidthKanaToFullWidth(text: string): string {\n let result = '';\n\n for (let i = 0, ii = text.length; i < ii; ++i) {\n const c = text[i];\n const mapping = HALFWIDTH_KATAKANA_MAPPING.get(c);\n if (typeof mapping !== 'string') {\n result += c;\n continue;\n }\n\n let index = 0;\n switch (text.charCodeAt(i + 1)) {\n case 0xff9e: // Dakuten\n index = 1;\n break;\n case 0xff9f: // Handakuten\n index = 2;\n break;\n }\n\n let c2 = mapping[index];\n if (index > 0) {\n if (c2 === '-') {\n // Invalid\n index = 0;\n c2 = mapping[0];\n } else {\n ++i;\n }\n }\n\n result += c2;\n }\n\n return result;\n}\n\nexport function getKanaDiacriticInfo(character: string): { character: string; type: DiacriticType } | null {\n const info = DIACRITIC_MAPPING.get(character);\n return typeof info !== 'undefined' ? { character: info.character, type: info.type } : null;\n}\n\nfunction dakutenAllowed(codePoint: number): boolean {\n return (\n (codePoint >= 0x304b && codePoint <= 0x3068) ||\n (codePoint >= 0x306f && codePoint <= 0x307b) ||\n (codePoint >= 0x30ab && codePoint <= 0x30c8) ||\n (codePoint >= 0x30cf && codePoint <= 0x30db)\n );\n}\n\nfunction handakutenAllowed(codePoint: number): boolean {\n return (codePoint >= 0x306f && codePoint <= 0x307b) || (codePoint >= 0x30cf && codePoint <= 0x30db);\n}\n\nexport function normalizeCombiningCharacters(text: string): string {\n let result = '';\n let i = text.length - 1;\n while (i > 0) {\n if (text[i] === '\\u3099') {\n const dakutenCombinee = text[i - 1].codePointAt(0);\n if (dakutenCombinee && dakutenAllowed(dakutenCombinee)) {\n result = String.fromCodePoint(dakutenCombinee + 1) + result;\n i -= 2;\n continue;\n }\n } else if (text[i] === '\\u309A') {\n const handakutenCombinee = text[i - 1].codePointAt(0);\n if (handakutenCombinee && handakutenAllowed(handakutenCombinee)) {\n result = String.fromCodePoint(handakutenCombinee + 2) + result;\n i -= 2;\n continue;\n }\n }\n result = text[i] + result;\n i--;\n }\n if (i === 0) {\n result = text[0] + result;\n }\n return result;\n}\n\nexport function normalizeCJKCompatibilityCharacters(text: string): string {\n let result = '';\n for (let i = 0; i < text.length; i++) {\n const codePoint = text[i].codePointAt(0);\n result += codePoint && isCodePointInRange(codePoint, CJK_COMPATIBILITY) ? text[i].normalize('NFKD') : text[i];\n }\n return result;\n}\n\n// Furigana distribution\n\nexport function distributeFurigana(term: string, reading: string): FuriganaSegment[] {\n if (reading === term) {\n return [createFuriganaSegment(term, '')];\n }\n\n const groups: FuriganaGroup[] = [];\n let groupPre: FuriganaGroup | null = null;\n let isKanaPre: boolean | null = null;\n for (const c of term) {\n const codePoint = c.codePointAt(0) as number;\n const isKana = isCodePointKana(codePoint);\n if (isKana === isKanaPre) {\n (groupPre as FuriganaGroup).text += c;\n } else {\n groupPre = { isKana, text: c, textNormalized: null };\n groups.push(groupPre);\n isKanaPre = isKana;\n }\n }\n for (const group of groups) {\n if (group.isKana) {\n group.textNormalized = convertKatakanaToHiragana(group.text);\n }\n }\n\n const readingNormalized = convertKatakanaToHiragana(reading);\n const segments = segmentizeFurigana(reading, readingNormalized, groups, 0);\n if (segments !== null) {\n return segments;\n }\n\n // Fallback\n return [createFuriganaSegment(term, reading)];\n}\n\nexport function distributeFuriganaInflected(term: string, reading: string, source: string): FuriganaSegment[] {\n const termNormalized = convertKatakanaToHiragana(term);\n const readingNormalized = convertKatakanaToHiragana(reading);\n const sourceNormalized = convertKatakanaToHiragana(source);\n\n let mainText = term;\n let stemLength = getStemLength(termNormalized, sourceNormalized);\n\n const readingStemLength = getStemLength(readingNormalized, sourceNormalized);\n if (readingStemLength > 0 && readingStemLength >= stemLength) {\n mainText = reading;\n stemLength = readingStemLength;\n reading = `${source.substring(0, stemLength)}${reading.substring(stemLength)}`;\n }\n\n const segments: FuriganaSegment[] = [];\n if (stemLength > 0) {\n mainText = `${source.substring(0, stemLength)}${mainText.substring(stemLength)}`;\n const segments2 = distributeFurigana(mainText, reading);\n let consumed = 0;\n for (const segment of segments2) {\n const { text } = segment;\n const start = consumed;\n consumed += text.length;\n if (consumed < stemLength) {\n segments.push(segment);\n } else if (consumed === stemLength) {\n segments.push(segment);\n break;\n } else {\n if (start < stemLength) {\n segments.push(createFuriganaSegment(mainText.substring(start, stemLength), ''));\n }\n break;\n }\n }\n }\n\n if (stemLength < source.length) {\n const remainder = source.substring(stemLength);\n const segmentCount = segments.length;\n if (segmentCount > 0 && segments[segmentCount - 1].reading.length === 0) {\n segments[segmentCount - 1].text += remainder;\n } else {\n segments.push(createFuriganaSegment(remainder, ''));\n }\n }\n\n return segments;\n}\n\n// Miscellaneous\n\nexport function isEmphaticCodePoint(codePoint: number): boolean {\n return (\n codePoint === HIRAGANA_SMALL_TSU_CODE_POINT ||\n codePoint === KATAKANA_SMALL_TSU_CODE_POINT ||\n codePoint === KANA_PROLONGED_SOUND_MARK_CODE_POINT\n );\n}\n\nexport function collapseEmphaticSequences(text: string, fullCollapse: boolean): string {\n let left = 0;\n while (left < text.length && isEmphaticCodePoint(text.codePointAt(left) as number)) {\n ++left;\n }\n let right = text.length - 1;\n while (right >= 0 && isEmphaticCodePoint(text.codePointAt(right) as number)) {\n --right;\n }\n if (left > right) {\n return text;\n }\n\n const leadingEmphatics = text.substring(0, left);\n const trailingEmphatics = text.substring(right + 1);\n let middle = '';\n let currentCollapsedCodePoint = -1;\n\n for (let i = left; i <= right; ++i) {\n const char = text[i];\n const codePoint = char.codePointAt(0) as number;\n if (isEmphaticCodePoint(codePoint)) {\n if (currentCollapsedCodePoint !== codePoint) {\n currentCollapsedCodePoint = codePoint;\n if (!fullCollapse) {\n middle += char;\n }\n }\n } else {\n currentCollapsedCodePoint = -1;\n middle += char;\n }\n }\n\n return leadingEmphatics + middle + trailingEmphatics;\n}\n"],"mappings":";;;;AAyBA,MAAM,gCAAgC;AACtC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;AACrC,MAAM,uCAAuC;AAE7C,MAAMA,iBAAiC,CAAC,OAAQ,KAAO;AACvD,MAAMC,iBAAiC,CAAC,OAAQ,KAAO;AAEvD,MAAMC,4BAA4C,CAAC,OAAQ,KAAO;AAClE,MAAMC,4BAA4C,CAAC,OAAQ,KAAO;AAElE,MAAMC,cAAgC,CAAC,gBAAgB,cAAe;AAEtE,MAAMC,kBAAoC;CACtC;CACA;CACA,GAAGC;CACH,CAAC,OAAQ,KAAO;CAChB,CAAC,OAAQ,KAAO;CAChB,CAAC,OAAQ,KAAO;CAChBC;CACA,GAAGC;AACN;AAED,MAAM,iBAAiB,IAAI,IAAI;AAE/B,MAAM,6BAA6B,IAAI,IAAoB;CACvD,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;CACZ,CAAC,KAAK,KAAM;AACf;AAED,MAAM,wBAAwB,IAAI,IAAoB;CAClD,CAAC,KAAK,yCAA0C;CAChD,CAAC,KAAK,iCAAkC;CACxC,CAAC,KAAK,qCAAsC;CAC5C,CAAC,KAAK,mCAAoC;CAC1C,CAAC,KAAK,qCAAsC;CAC5C,CAAC,IAAI,IAAK;AACb;AAED,MAAM,wBAAwB,IAAI;AAClC,KAAK,MAAM,CAAC,OAAO,WAAW,IAAI,sBAC9B,MAAK,MAAM,aAAa,WACpB,uBAAsB,IAAI,WAAW,MAAM;AAInD,MAAM,OACF;AACJ,MAAM,oBAAoB,IAAI;AAC9B,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG;CAC9C,MAAM,YAAY,KAAK;CACvB,MAAM,UAAU,KAAK,IAAI;CACzB,MAAM,aAAa,KAAK,IAAI;AAC5B,mBAAkB,IAAI,SAAS;EAAE;EAAW,MAAM;CAAW,EAAC;AAC9D,KAAI,eAAe,IACf,mBAAkB,IAAI,YAAY;EAAE;EAAW,MAAM;CAAc,EAAC;AAE3E;AAED,SAAS,qBAAqBC,mBAA0C;AACpE,SAAQ,sBAAsB,IAAI,kBAAkB,EAApD;EACI,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,KAAK,IACD,QAAO;EACX,QACI,QAAO;CACd;AACJ;AAED,SAAS,sBAAsBC,MAAcC,SAAkC;AAC3E,QAAO;EAAE;EAAM;CAAS;AAC3B;AAED,SAAS,mBACLA,SACAC,mBACAC,QACAC,aACwB;CACxB,MAAM,aAAa,OAAO,SAAS;AACnC,KAAI,cAAc,EACd,QAAO,QAAQ,WAAW,IAAI,CAAE,IAAG;CAGvC,MAAM,QAAQ,OAAO;CACrB,MAAM,EAAE,QAAQ,MAAM,GAAG;CACzB,MAAM,aAAa,KAAK;AACxB,KAAI,QAAQ;EACR,MAAM,EAAE,gBAAgB,GAAG;AAC3B,MAAI,mBAAmB,QAAQ,kBAAkB,WAAW,eAAe,EAAE;GACzE,MAAM,WAAW,mBACb,QAAQ,UAAU,WAAW,EAC7B,kBAAkB,UAAU,WAAW,EACvC,QACA,cAAc,EACjB;AACD,OAAI,aAAa,MAAM;AACnB,QAAI,QAAQ,WAAW,KAAK,CACxB,UAAS,QAAQ,sBAAsB,MAAM,GAAG,CAAC;QAEjD,UAAS,QAAQ,GAAG,wBAAwB,MAAM,QAAQ,CAAC;AAE/D,WAAO;GACV;EACJ;AACD,SAAO;CACV;CACD,IAAIC,SAAmC;AACvC,MAAK,IAAI,IAAI,QAAQ,QAAQ,KAAK,YAAY,EAAE,GAAG;EAC/C,MAAM,WAAW,mBACb,QAAQ,UAAU,EAAE,EACpB,kBAAkB,UAAU,EAAE,EAC9B,QACA,cAAc,EACjB;AACD,MAAI,aAAa,MAAM;AACnB,OAAI,WAAW,KAEX,QAAO;GAEX,MAAM,iBAAiB,QAAQ,UAAU,GAAG,EAAE;AAC9C,YAAS,QAAQ,sBAAsB,MAAM,eAAe,CAAC;AAC7D,YAAS;EACZ;AAED,MAAI,eAAe,EACf;CAEP;AACD,QAAO;AACV;AAED,SAAS,wBAAwBL,MAAcC,SAAoC;CAC/E,MAAM,aAAa,KAAK;CACxB,MAAMK,cAAiC,CAAE;CACzC,IAAI,QAAQ;CACZ,IAAI,QAAQ,QAAQ,OAAO,KAAK;AAChC,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;EACjC,MAAM,WAAW,QAAQ,OAAO,KAAK;AACrC,MAAI,UAAU,SACV;AAEJ,cAAY,KAAK,sBAAsB,KAAK,UAAU,OAAO,EAAE,EAAE,QAAQ,KAAK,QAAQ,UAAU,OAAO,EAAE,CAAC,CAAC;AAC3G,UAAQ;AACR,UAAQ;CACX;AACD,aAAY,KACR,sBAAsB,KAAK,UAAU,OAAO,WAAW,EAAE,QAAQ,KAAK,QAAQ,UAAU,OAAO,WAAW,CAAC,CAC9G;AACD,QAAO;AACV;AAED,SAAS,cAAcC,OAAeC,OAAuB;CACzD,MAAM,YAAY,KAAK,IAAI,MAAM,QAAQ,MAAM,OAAO;AACtD,KAAI,cAAc,EACd,QAAO;CAGX,IAAI,IAAI;AACR,QAAO,MAAM;EACT,MAAM,QAAQ,MAAM,YAAY,EAAE;EAClC,MAAM,QAAQ,MAAM,YAAY,EAAE;AAClC,MAAI,UAAU,MACV;EAEJ,MAAM,aAAa,OAAO,cAAc,MAAM,CAAC;AAC/C,OAAK;AACL,MAAI,KAAK,WAAW;AAChB,OAAI,IAAI,UACJ,MAAK;AAET;EACH;CACJ;AACD,QAAO;AACV;AAID,SAAgB,iBAAiBC,WAA4B;AACzD,QAAO,qCAAoB,WAAWb,sCAAqB;AAC9D;AAED,SAAgB,gBAAgBa,WAA4B;AACxD,QAAO,qCAAoB,WAAW,YAAY;AACrD;AAED,SAAgB,oBAAoBA,WAA4B;AAC5D,QAAO,qCAAoB,WAAW,gBAAgB;AACzD;AAID,SAAgB,qBAAqBC,KAAsB;AACvD,KAAI,IAAI,WAAW,EACf,QAAO;AAEX,MAAK,MAAM,KAAK,IACZ,MAAK,qCAAoB,EAAE,YAAY,EAAE,EAAY,YAAY,CAC7D,QAAO;AAGf,QAAO;AACV;AAED,SAAgB,0BAA0BA,KAAsB;AAC5D,KAAI,IAAI,WAAW,EACf,QAAO;AAEX,MAAK,MAAM,KAAK,IACZ,KAAI,qCAAoB,EAAE,YAAY,EAAE,EAAY,gBAAgB,CAChE,QAAO;AAGf,QAAO;AACV;AAID,SAAgB,gBAAgBC,WAAmBC,kBAA4C;AAC3F,YAAW,qBAAqB,SAC5B,QAAO,iBAAiB,eAAe;AAE3C,SAAQ,kBAAR;EACI,KAAK,EACD,QAAO,YAAY;EACvB,KAAK,EACD,QAAO,YAAY;EACvB,QACI,QAAO,YAAY,KAAK,YAAY;CAC3C;AACJ;AAED,SAAgB,iBACZZ,MACAY,kBACAC,mBACoB;CACpB,MAAM,qCACK,qBAAqB,WAAW,qBAAqB,iBAAiB,CAAC,KAAK;AACvF,KAAI,gCAAgC,EAChC,QAAO;AAEX,KAAI,kBACA,QAAO,8BAA8B,IAAI,WAAW;AAExD,KAAI,gCAAgC,EAChC,QAAO;AAEX,KAAI,8BAA8B,EAC9B,QAAO,+BAA+B,iBAAiB,KAAK,GAAG,UAAU;AAE7E,QAAO;AACV;AAED,SAAgB,qBAAqBC,aAA+B;CAChE,MAAMC,YAAsB,CAAE;CAC9B,MAAM,YAAY,YAAY;AAC9B,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,IAC3B,KAAI,IAAI,KAAK,YAAY,IAAI,OAAO,OAAO,YAAY,OAAO,IAC1D,WAAU,KAAK,EAAE;AAGzB,KAAI,UAAU,WAAW,EACrB,WAAU,KAAK,YAAY,WAAW,IAAI,GAAG,IAAI,GAAG;AAExD,QAAO;AACV;AAED,SAAgB,aAAaf,MAAwB;CACjD,MAAMgB,QAAkB,CAAE;CAC1B,IAAIC;AACJ,MAAK,MAAM,KAAK,KACZ,KAAI,eAAe,IAAI,EAAE,KAAK,IAAI,MAAM,UAAU,EAC9C,OAAM,IAAI,MAAM;KAEhB,OAAM,KAAK,EAAE;AAGrB,QAAO;AACV;AAED,SAAgB,iBAAiBjB,MAAsB;CACnD,IAAI,YAAY;AAChB,MAAK,MAAM,KAAK,KACZ,OAAM,eAAe,IAAI,EAAE,IAAI,YAAY,GACvC,GAAE;AAGV,QAAO;AACV;AAID,SAAgB,0BAA0BA,MAAc,0BAA0B,OAAe;CAC7F,IAAI,SAAS;CACb,MAAM,SAAS,0BAA0B,KAAK,0BAA0B;AACxE,MAAK,IAAI,QAAQ,MAAM;EACnB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,UAAQ,WAAR;GACI,KAAK;GACL,KAAK,6BAED;GACJ,KAAK;AACD,SAAK,2BAA2B,OAAO,SAAS,GAAG;KAC/C,MAAM,QAAQ,qBAAqB,OAAO,OAAO,SAAS,GAAG;AAC7D,SAAI,UAAU,KACV,QAAO;IAEd;AACD;GACJ;AACI,QAAI,oCAAmB,WAAW,0BAA0B,CACxD,QAAO,OAAO,cAAc,YAAY,OAAO;AAEnD;EACP;AACD,YAAU;CACb;AACD,QAAO;AACV;AAED,SAAgB,0BAA0BA,MAAsB;CAC5D,IAAI,SAAS;CACb,MAAM,SAAS,0BAA0B,KAAK,0BAA0B;AACxE,MAAK,IAAI,QAAQ,MAAM;EACnB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,MAAI,oCAAmB,WAAW,0BAA0B,CACxD,QAAO,OAAO,cAAc,YAAY,OAAO;AAEnD,YAAU;CACb;AACD,QAAO;AACV;AAED,SAAgB,+BAA+BA,MAAsB;CACjE,IAAI,SAAS;AACb,MAAK,MAAM,QAAQ,MAAM;EACrB,IAAI,IAAI,KAAK,YAAY,EAAE;AAC3B,MAAI,KAAK,MAAQ,KAAK,GAElB,MAAK;WACE,KAAK,MAAQ,KAAK,GAEzB,MAAK;WACE,KAAK,MAAQ,KAAK,IAEzB,MAAK;AAET,YAAU,OAAO,cAAc,EAAE;CACpC;AACD,QAAO;AACV;AAED,SAAgB,qCAAqCA,MAAsB;CACvE,IAAI,SAAS;CACb,MAAM,SAAS,KAAK;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK;EAC7B,IAAI,IAAI,KAAK,GAAG,YAAY,EAAE;AAC9B,MAAI,KAAK,SAAU,KAAK,MAEpB,MAAK;WACE,KAAK,SAAU,KAAK,MAE3B,MAAK;WACE,KAAK,SAAU,KAAK,MAE3B,MAAK;AAET,YAAU,OAAO,cAAc,EAAE;CACpC;AACD,QAAO;AACV;AAED,SAAgB,gCAAgCA,MAAsB;CAClE,IAAI,SAAS;AAEb,MAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,IAAI,IAAI,EAAE,GAAG;EAC3C,MAAM,IAAI,KAAK;EACf,MAAM,UAAU,2BAA2B,IAAI,EAAE;AACjD,aAAW,YAAY,UAAU;AAC7B,aAAU;AACV;EACH;EAED,IAAI,QAAQ;AACZ,UAAQ,KAAK,WAAW,IAAI,EAAE,EAA9B;GACI,KAAK;AACD,YAAQ;AACR;GACJ,KAAK;AACD,YAAQ;AACR;EACP;EAED,IAAI,KAAK,QAAQ;AACjB,MAAI,QAAQ,EACR,KAAI,OAAO,KAAK;AAEZ,WAAQ;AACR,QAAK,QAAQ;EAChB,MACG,GAAE;AAIV,YAAU;CACb;AAED,QAAO;AACV;AAED,SAAgB,qBAAqBkB,WAAsE;CACvG,MAAM,OAAO,kBAAkB,IAAI,UAAU;AAC7C,eAAc,SAAS,cAAc;EAAE,WAAW,KAAK;EAAW,MAAM,KAAK;CAAM,IAAG;AACzF;AAED,SAAS,eAAeT,WAA4B;AAChD,QACK,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa,SACpC,aAAa,SAAU,aAAa;AAE5C;AAED,SAAS,kBAAkBA,WAA4B;AACnD,QAAQ,aAAa,SAAU,aAAa,SAAY,aAAa,SAAU,aAAa;AAC/F;AAED,SAAgB,6BAA6BT,MAAsB;CAC/D,IAAI,SAAS;CACb,IAAI,IAAI,KAAK,SAAS;AACtB,QAAO,IAAI,GAAG;AACV,MAAI,KAAK,OAAO,KAAU;GACtB,MAAM,kBAAkB,KAAK,IAAI,GAAG,YAAY,EAAE;AAClD,OAAI,mBAAmB,eAAe,gBAAgB,EAAE;AACpD,aAAS,OAAO,cAAc,kBAAkB,EAAE,GAAG;AACrD,SAAK;AACL;GACH;EACJ,WAAU,KAAK,OAAO,KAAU;GAC7B,MAAM,qBAAqB,KAAK,IAAI,GAAG,YAAY,EAAE;AACrD,OAAI,sBAAsB,kBAAkB,mBAAmB,EAAE;AAC7D,aAAS,OAAO,cAAc,qBAAqB,EAAE,GAAG;AACxD,SAAK;AACL;GACH;EACJ;AACD,WAAS,KAAK,KAAK;AACnB;CACH;AACD,KAAI,MAAM,EACN,UAAS,KAAK,KAAK;AAEvB,QAAO;AACV;AAED,SAAgB,oCAAoCA,MAAsB;CACtE,IAAI,SAAS;AACb,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EAClC,MAAM,YAAY,KAAK,GAAG,YAAY,EAAE;AACxC,YAAU,aAAa,oCAAmB,WAAWmB,mCAAkB,GAAG,KAAK,GAAG,UAAU,OAAO,GAAG,KAAK;CAC9G;AACD,QAAO;AACV;AAID,SAAgB,mBAAmBC,MAAcnB,SAAoC;AACjF,KAAI,YAAY,KACZ,QAAO,CAAC,sBAAsB,MAAM,GAAG,AAAC;CAG5C,MAAME,SAA0B,CAAE;CAClC,IAAIkB,WAAiC;CACrC,IAAIC,YAA4B;AAChC,MAAK,MAAM,KAAK,MAAM;EAClB,MAAM,YAAY,EAAE,YAAY,EAAE;EAClC,MAAM,SAAS,gBAAgB,UAAU;AACzC,MAAI,WAAW,UACX,CAAC,SAA2B,QAAQ;OACjC;AACH,cAAW;IAAE;IAAQ,MAAM;IAAG,gBAAgB;GAAM;AACpD,UAAO,KAAK,SAAS;AACrB,eAAY;EACf;CACJ;AACD,MAAK,MAAM,SAAS,OAChB,KAAI,MAAM,OACN,OAAM,iBAAiB,0BAA0B,MAAM,KAAK;CAIpE,MAAM,oBAAoB,0BAA0B,QAAQ;CAC5D,MAAM,WAAW,mBAAmB,SAAS,mBAAmB,QAAQ,EAAE;AAC1E,KAAI,aAAa,KACb,QAAO;AAIX,QAAO,CAAC,sBAAsB,MAAM,QAAQ,AAAC;AAChD;AAED,SAAgB,4BAA4BF,MAAcnB,SAAiBsB,QAAmC;CAC1G,MAAM,iBAAiB,0BAA0B,KAAK;CACtD,MAAM,oBAAoB,0BAA0B,QAAQ;CAC5D,MAAM,mBAAmB,0BAA0B,OAAO;CAE1D,IAAI,WAAW;CACf,IAAI,aAAa,cAAc,gBAAgB,iBAAiB;CAEhE,MAAM,oBAAoB,cAAc,mBAAmB,iBAAiB;AAC5E,KAAI,oBAAoB,KAAK,qBAAqB,YAAY;AAC1D,aAAW;AACX,eAAa;AACb,aAAW,EAAE,OAAO,UAAU,GAAG,WAAW,CAAC,EAAE,QAAQ,UAAU,WAAW,CAAC;CAChF;CAED,MAAMC,WAA8B,CAAE;AACtC,KAAI,aAAa,GAAG;AAChB,cAAY,EAAE,OAAO,UAAU,GAAG,WAAW,CAAC,EAAE,SAAS,UAAU,WAAW,CAAC;EAC/E,MAAM,YAAY,mBAAmB,UAAU,QAAQ;EACvD,IAAI,WAAW;AACf,OAAK,MAAM,WAAW,WAAW;GAC7B,MAAM,EAAE,MAAM,GAAG;GACjB,MAAM,QAAQ;AACd,eAAY,KAAK;AACjB,OAAI,WAAW,WACX,UAAS,KAAK,QAAQ;YACf,aAAa,YAAY;AAChC,aAAS,KAAK,QAAQ;AACtB;GACH,OAAM;AACH,QAAI,QAAQ,WACR,UAAS,KAAK,sBAAsB,SAAS,UAAU,OAAO,WAAW,EAAE,GAAG,CAAC;AAEnF;GACH;EACJ;CACJ;AAED,KAAI,aAAa,OAAO,QAAQ;EAC5B,MAAM,YAAY,OAAO,UAAU,WAAW;EAC9C,MAAM,eAAe,SAAS;AAC9B,MAAI,eAAe,KAAK,SAAS,eAAe,GAAG,QAAQ,WAAW,EAClE,UAAS,eAAe,GAAG,QAAQ;MAEnC,UAAS,KAAK,sBAAsB,WAAW,GAAG,CAAC;CAE1D;AAED,QAAO;AACV;AAID,SAAgB,oBAAoBf,WAA4B;AAC5D,QACI,cAAc,iCACd,cAAc,iCACd,cAAc;AAErB;AAED,SAAgB,0BAA0BT,MAAcyB,cAA+B;CACnF,IAAI,OAAO;AACX,QAAO,OAAO,KAAK,UAAU,oBAAoB,KAAK,YAAY,KAAK,CAAW,CAC9E,GAAE;CAEN,IAAI,QAAQ,KAAK,SAAS;AAC1B,QAAO,SAAS,KAAK,oBAAoB,KAAK,YAAY,MAAM,CAAW,CACvE,GAAE;AAEN,KAAI,OAAO,MACP,QAAO;CAGX,MAAM,mBAAmB,KAAK,UAAU,GAAG,KAAK;CAChD,MAAM,oBAAoB,KAAK,UAAU,QAAQ,EAAE;CACnD,IAAI,SAAS;CACb,IAAI,4BAA4B;AAEhC,MAAK,IAAI,IAAI,MAAM,KAAK,OAAO,EAAE,GAAG;EAChC,MAAM,OAAO,KAAK;EAClB,MAAM,YAAY,KAAK,YAAY,EAAE;AACrC,MAAI,oBAAoB,UAAU,EAC9B;OAAI,8BAA8B,WAAW;AACzC,gCAA4B;AAC5B,SAAK,aACD,WAAU;GAEjB;SACE;AACH,+BAA4B;AAC5B,aAAU;EACb;CACJ;AAED,QAAO,mBAAmB,SAAS;AACtC"}
@@ -461,5 +461,5 @@ function collapseEmphaticSequences(text, fullCollapse) {
461
461
  }
462
462
 
463
463
  //#endregion
464
- export { collapseEmphaticSequences as collapseEmphaticSequences$1, convertAlphanumericToFullWidth, convertFullWidthAlphanumericToNormal, convertHalfWidthKanaToFullWidth, convertHiraganaToKatakana as convertHiraganaToKatakana$1, convertKatakanaToHiragana, distributeFurigana, distributeFuriganaInflected, getDownstepPositions as getDownstepPositions$1, getKanaDiacriticInfo as getKanaDiacriticInfo$1, getKanaMoraCount as getKanaMoraCount$1, getKanaMorae as getKanaMorae$1, getPitchCategory as getPitchCategory$1, isCodePointJapanese, isCodePointKana, isCodePointKanji as isCodePointKanji$1, isEmphaticCodePoint, isMoraPitchHigh as isMoraPitchHigh$1, isStringEntirelyKana, isStringPartiallyJapanese, normalizeCJKCompatibilityCharacters as normalizeCJKCompatibilityCharacters$1, normalizeCombiningCharacters as normalizeCombiningCharacters$1 };
465
- //# sourceMappingURL=japanese-DhmmW35J.js.map
464
+ export { collapseEmphaticSequences as collapseEmphaticSequences$1, convertAlphanumericToFullWidth, convertFullWidthAlphanumericToNormal, convertHalfWidthKanaToFullWidth, convertHiraganaToKatakana as convertHiraganaToKatakana$1, convertKatakanaToHiragana, distributeFurigana, distributeFuriganaInflected, getDownstepPositions, getKanaDiacriticInfo, getKanaMoraCount, getKanaMorae, getPitchCategory, isCodePointJapanese, isCodePointKana, isCodePointKanji, isEmphaticCodePoint, isMoraPitchHigh, isStringEntirelyKana, isStringPartiallyJapanese, normalizeCJKCompatibilityCharacters as normalizeCJKCompatibilityCharacters$1, normalizeCombiningCharacters as normalizeCombiningCharacters$1 };
465
+ //# sourceMappingURL=japanese-OKEGf_i4.js.map