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.
- package/README.md +8 -1
- package/dist/anki-connect-B2UXtiUS.js +6 -0
- package/dist/anki-connect-BXvjYYm0.cjs +6 -0
- package/dist/{anki-connect-B_YpChhu.cjs → anki-connect-DGx7Gr0H.cjs} +3 -3
- package/dist/{anki-connect-B_YpChhu.cjs.map → anki-connect-DGx7Gr0H.cjs.map} +1 -1
- package/dist/{anki-connect-697E04LF.js → anki-connect-Dau8nAXZ.js} +3 -3
- package/dist/{anki-connect-697E04LF.js.map → anki-connect-Dau8nAXZ.js.map} +1 -1
- package/dist/anki.cjs +6 -6
- package/dist/anki.d.cts.map +1 -1
- package/dist/anki.d.ts +2 -2
- package/dist/anki.d.ts.map +1 -1
- package/dist/anki.js +6 -6
- package/dist/{audio-ZuaDkaUZ.d.ts → audio-DN-FhZ5k.d.ts} +1 -1
- package/dist/{audio-ZuaDkaUZ.d.ts.map → audio-DN-FhZ5k.d.ts.map} +1 -1
- package/dist/{audio-url-generator-CgTMaTM2.js → audio-url-generator-C7mkxYeq.js} +2 -2
- package/dist/{audio-url-generator-CfXaxZ47.cjs → audio-url-generator-CZECihX-.cjs} +2 -2
- package/dist/{audio-url-generator-C23AXVj1.cjs → audio-url-generator-CorFRyBU.cjs} +2 -2
- package/dist/{audio-url-generator-C23AXVj1.cjs.map → audio-url-generator-CorFRyBU.cjs.map} +1 -1
- package/dist/{audio-url-generator-DykdzZJu.js → audio-url-generator-_6Qk0i3T.js} +2 -2
- package/dist/{audio-url-generator-DykdzZJu.js.map → audio-url-generator-_6Qk0i3T.js.map} +1 -1
- package/dist/audio.cjs +2 -2
- package/dist/audio.d.ts +2 -2
- package/dist/audio.js +2 -2
- package/dist/{batch-processor-CXZZhx5t.js → batch-processor-BR-gB3H3.js} +1 -1
- package/dist/{batch-processor-CXZZhx5t.js.map → batch-processor-BR-gB3H3.js.map} +1 -1
- package/dist/batch-processor-CSF1acTw.cjs +3 -0
- package/dist/{batch-processor-C8pSzqRE.cjs → batch-processor-DFqM_L-_.cjs} +1 -1
- package/dist/{batch-processor-C8pSzqRE.cjs.map → batch-processor-DFqM_L-_.cjs.map} +1 -1
- package/dist/batch-processor-Quo9jUyf.js +3 -0
- package/dist/{core-C_0QjRBI.d.ts → core-CRjMTF7c.d.ts} +1 -1
- package/dist/{core-C_0QjRBI.d.ts.map → core-CRjMTF7c.d.ts.map} +1 -1
- package/dist/database.d.ts +3 -3
- package/dist/debug-I2dyAd2e.cjs +51 -0
- package/dist/debug-I2dyAd2e.cjs.map +1 -0
- package/dist/debug-hF63AFkq.js +38 -0
- package/dist/debug-hF63AFkq.js.map +1 -0
- package/dist/{dictionary-CfzEFbXZ.d.ts → dictionary-DdxghSJP.d.ts} +1 -1
- package/dist/{dictionary-CfzEFbXZ.d.ts.map → dictionary-DdxghSJP.d.ts.map} +1 -1
- package/dist/{dictionary-data-util-BY_72f3u.cjs → dictionary-data-util-DmLJMtGc.cjs} +1 -1
- package/dist/{dictionary-data-util-BY_72f3u.cjs.map → dictionary-data-util-DmLJMtGc.cjs.map} +1 -1
- package/dist/{dictionary-data-util-CKDT7n2t.js → dictionary-data-util-gUUD9ElK.js} +1 -1
- package/dist/{dictionary-data-util-CKDT7n2t.js.map → dictionary-data-util-gUUD9ElK.js.map} +1 -1
- package/dist/{dictionary-database-BRAqOF_M.d.ts → dictionary-database-D0lvK2n3.d.ts} +2 -2
- package/dist/{dictionary-database-BRAqOF_M.d.ts.map → dictionary-database-D0lvK2n3.d.ts.map} +1 -1
- package/dist/{dictionary-importer-C7mNL5CJ.js → dictionary-importer-BPlLeF5R.js} +5 -5
- package/dist/{dictionary-importer-C7mNL5CJ.js.map → dictionary-importer-BPlLeF5R.js.map} +1 -1
- package/dist/{dictionary-importer-CbMwsqEX.cjs → dictionary-importer-BvgP1Fs9.cjs} +5 -5
- package/dist/{dictionary-importer-CbMwsqEX.cjs.map → dictionary-importer-BvgP1Fs9.cjs.map} +1 -1
- package/dist/{dictionary-importer-C-AlWsIN.d.ts → dictionary-importer-CDbCAbwG.d.ts} +2 -2
- package/dist/{dictionary-importer-C-AlWsIN.d.ts.map → dictionary-importer-CDbCAbwG.d.ts.map} +1 -1
- package/dist/dictionary-importer-DEMVqTjR.js +8 -0
- package/dist/dictionary-importer-Luz6usUQ.cjs +8 -0
- package/dist/{dictionary-update-checker-DE2ymYcs.js → dictionary-update-checker-CLbtQ48X.js} +2 -2
- package/dist/{dictionary-update-checker-DE2ymYcs.js.map → dictionary-update-checker-CLbtQ48X.js.map} +1 -1
- package/dist/dictionary-update-checker-CsS7MxK_.js +4 -0
- package/dist/{dictionary-update-checker-CU3q0aoP.cjs → dictionary-update-checker-DgjPsURI.cjs} +2 -2
- package/dist/{dictionary-update-checker-xIwF77-R.cjs → dictionary-update-checker-DmiIUoKw.cjs} +2 -2
- package/dist/{dictionary-update-checker-xIwF77-R.cjs.map → dictionary-update-checker-DmiIUoKw.cjs.map} +1 -1
- package/dist/{display-generator-vjbG05fn.js → display-generator-BAEJDrHT.js} +9 -7
- package/dist/display-generator-BAEJDrHT.js.map +1 -0
- package/dist/display-generator-D5fkD0JI.cjs +10 -0
- package/dist/display-generator-DZLMaVuP.js +10 -0
- package/dist/{display-generator-BhV_MOD1.cjs → display-generator-D_0chBzj.cjs} +9 -7
- package/dist/display-generator-D_0chBzj.cjs.map +1 -0
- package/dist/{errors-ZI2FcGUl.cjs → errors-0pIJI6N2.cjs} +1 -1
- package/dist/{errors-ZI2FcGUl.cjs.map → errors-0pIJI6N2.cjs.map} +1 -1
- package/dist/{errors-D2JfYV-C.js → errors-DvKlMRXC.js} +1 -1
- package/dist/{errors-D2JfYV-C.js.map → errors-DvKlMRXC.js.map} +1 -1
- package/dist/frequency-ranking-BXjfhhUQ.js +3 -0
- package/dist/{frequency-ranking-DmNIoxut.cjs → frequency-ranking-Cx1kkIrw.cjs} +1 -1
- package/dist/{frequency-ranking-DzbdZghE.js → frequency-ranking-DEJMTMdg.js} +1 -1
- package/dist/{frequency-ranking-DzbdZghE.js.map → frequency-ranking-DEJMTMdg.js.map} +1 -1
- package/dist/{frequency-ranking-Dm6xCMkY.cjs → frequency-ranking-DVYxTXN-.cjs} +1 -1
- package/dist/{frequency-ranking-Dm6xCMkY.cjs.map → frequency-ranking-DVYxTXN-.cjs.map} +1 -1
- package/dist/furigana-MU_j_m5i.cjs +5 -0
- package/dist/{furigana-BnY7-dJ-.cjs → furigana-SZuBaUyl.cjs} +2 -2
- package/dist/{furigana-BnY7-dJ-.cjs.map → furigana-SZuBaUyl.cjs.map} +1 -1
- package/dist/furigana-ZCs0Xs0b.js +5 -0
- package/dist/{furigana-CI6LUA-6.js → furigana-h18vaQ7a.js} +2 -2
- package/dist/{furigana-CI6LUA-6.js.map → furigana-h18vaQ7a.js.map} +1 -1
- package/dist/import.cjs +6 -6
- package/dist/import.d.ts +3 -3
- package/dist/import.js +6 -6
- package/dist/index.cjs +44 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -18
- package/dist/index.js.map +1 -1
- package/dist/{japanese-BVV1Ctk-.cjs → japanese-C83fmEfb.cjs} +1 -1
- package/dist/{japanese-BVV1Ctk-.cjs.map → japanese-C83fmEfb.cjs.map} +1 -1
- package/dist/{japanese-DhmmW35J.js → japanese-OKEGf_i4.js} +2 -2
- package/dist/{japanese-DhmmW35J.js.map → japanese-OKEGf_i4.js.map} +1 -1
- package/dist/{json-CyQBn52D.cjs → json-Cdj6aIOQ.cjs} +1 -1
- package/dist/{json-CyQBn52D.cjs.map → json-Cdj6aIOQ.cjs.map} +1 -1
- package/dist/{json-DTq_IXXF.js → json-rIgOFqVY.js} +1 -1
- package/dist/{json-DTq_IXXF.js.map → json-rIgOFqVY.js.map} +1 -1
- package/dist/{language-DFFp_7nc.d.ts → language-DMwuc2-C.d.ts} +1 -1
- package/dist/{language-DFFp_7nc.d.ts.map → language-DMwuc2-C.d.ts.map} +1 -1
- package/dist/language.cjs +12 -12
- package/dist/language.d.cts +41 -3
- package/dist/language.d.cts.map +1 -1
- package/dist/language.d.ts +44 -6
- package/dist/language.d.ts.map +1 -1
- package/dist/language.js +5 -5
- package/dist/lookup.cjs +7 -6
- package/dist/lookup.d.cts +5 -78
- package/dist/lookup.d.cts.map +1 -1
- package/dist/lookup.d.ts +8 -81
- package/dist/lookup.d.ts.map +1 -1
- package/dist/lookup.js +7 -6
- package/dist/{media-loader-CMEuD0fn.js → media-loader-C1WZVVaA.js} +1 -1
- package/dist/{media-loader-CMEuD0fn.js.map → media-loader-C1WZVVaA.js.map} +1 -1
- package/dist/media-loader-CWNb22gc.cjs +3 -0
- package/dist/media-loader-CrQnDnSp.js +3 -0
- package/dist/{media-loader-DS2ZXpSI.cjs → media-loader-RE32nGs3.cjs} +1 -1
- package/dist/{media-loader-DS2ZXpSI.cjs.map → media-loader-RE32nGs3.cjs.map} +1 -1
- package/dist/{multi-language-transformer-CjLO0S8V.d.ts → multi-language-transformer-CFu0CVWY.d.ts} +3 -3
- package/dist/{multi-language-transformer-CjLO0S8V.d.ts.map → multi-language-transformer-CFu0CVWY.d.ts.map} +1 -1
- package/dist/multi-language-transformer-Dk8S4W6j.js +12503 -0
- package/dist/multi-language-transformer-Dk8S4W6j.js.map +1 -0
- package/dist/{multi-language-transformer-B2133Zg_.cjs → multi-language-transformer-N66Mmb2E.cjs} +9614 -5
- package/dist/multi-language-transformer-N66Mmb2E.cjs.map +1 -0
- package/dist/{pronunciation-generator-cNtAQi5s.js → pronunciation-generator-BXcwS3By.js} +2 -2
- package/dist/{pronunciation-generator-cNtAQi5s.js.map → pronunciation-generator-BXcwS3By.js.map} +1 -1
- package/dist/{pronunciation-generator-CPwnr43z.cjs → pronunciation-generator-CP1kjYje.cjs} +1 -1
- package/dist/{pronunciation-generator-B8y__W7I.cjs → pronunciation-generator-CeC3LFPU.cjs} +1 -1
- package/dist/{pronunciation-generator-B8y__W7I.cjs.map → pronunciation-generator-CeC3LFPU.cjs.map} +1 -1
- package/dist/{pronunciation-generator-BvTbUlOy.js → pronunciation-generator-I1xpdJu0.js} +1 -1
- package/dist/render.cjs +96 -8
- package/dist/render.cjs.map +1 -1
- package/dist/render.d.cts +33 -3
- package/dist/render.d.cts.map +1 -1
- package/dist/render.d.ts +35 -5
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +95 -9
- package/dist/render.js.map +1 -1
- package/dist/{sentence-parser-DUQJ3cTT.cjs → sentence-parser-8i1Y_OGS.cjs} +74 -46
- package/dist/sentence-parser-8i1Y_OGS.cjs.map +1 -0
- package/dist/{translator-TiTDVbmS.d.cts → sentence-parser-BQpu2oSA.d.cts} +80 -4
- package/dist/sentence-parser-BQpu2oSA.d.cts.map +1 -0
- package/dist/{sentence-parser-sx7y6Oyh.js → sentence-parser-CXDs4R_c.js} +74 -46
- package/dist/sentence-parser-CXDs4R_c.js.map +1 -0
- package/dist/{translator-CYvGmODX.d.ts → sentence-parser-CmsHUc_p.d.ts} +81 -5
- package/dist/sentence-parser-CmsHUc_p.d.ts.map +1 -0
- package/dist/sentence-parser-DQccqSpq.cjs +6 -0
- package/dist/sentence-parser-DsleseSI.js +6 -0
- package/dist/structured-content-generator-BhEkwa0T.js +4 -0
- package/dist/{structured-content-generator-C5Hhaurz.cjs → structured-content-generator-CokLKgrb.cjs} +2 -2
- package/dist/{structured-content-generator-C5Hhaurz.cjs.map → structured-content-generator-CokLKgrb.cjs.map} +1 -1
- package/dist/{structured-content-generator-D48bLhPA.cjs → structured-content-generator-_z5dJECG.cjs} +2 -2
- package/dist/{structured-content-generator-aJieXElq.js → structured-content-generator-gnjtdBcC.js} +2 -2
- package/dist/{structured-content-generator-aJieXElq.js.map → structured-content-generator-gnjtdBcC.js.map} +1 -1
- package/dist/{text-utilities-CFDC9Bkr.cjs → text-utilities-CTsN1Bq8.cjs} +1 -1
- package/dist/{text-utilities-CFDC9Bkr.cjs.map → text-utilities-CTsN1Bq8.cjs.map} +1 -1
- package/dist/{text-utilities-D5eno9GK.js → text-utilities-DjLdStjv.js} +1 -1
- package/dist/{text-utilities-D5eno9GK.js.map → text-utilities-DjLdStjv.js.map} +1 -1
- package/dist/translator-BGI37WRC.js +7 -0
- package/dist/translator-Cd1ECBM1.cjs +7 -0
- package/dist/{translator-B1uTusjx.cjs → translator-ClzybVmi.cjs} +2 -2
- package/dist/{translator-B1uTusjx.cjs.map → translator-ClzybVmi.cjs.map} +1 -1
- package/dist/{translator-CrDE1UJW.js → translator-jFVzLjEs.js} +2 -2
- package/dist/{translator-CrDE1UJW.js.map → translator-jFVzLjEs.js.map} +1 -1
- package/package.json +1 -1
- package/dist/anki-connect-D-02BbHi.cjs +0 -6
- package/dist/anki-connect-Vn-cnxs8.js +0 -6
- package/dist/batch-processor-DItpL6Pp.js +0 -3
- package/dist/batch-processor-fiLvFS2_.cjs +0 -3
- package/dist/dictionary-importer-B9M3SD2y.js +0 -8
- package/dist/dictionary-importer-DnR8Bsai.cjs +0 -8
- package/dist/dictionary-update-checker-Cnjz4tQD.js +0 -4
- package/dist/display-generator-BhV_MOD1.cjs.map +0 -1
- package/dist/display-generator-Cn4vCiSI.js +0 -10
- package/dist/display-generator-G2e03o0R.cjs +0 -10
- package/dist/display-generator-vjbG05fn.js.map +0 -1
- package/dist/frequency-ranking-B-kvnxro.js +0 -3
- package/dist/furigana-cpPhFnBv.cjs +0 -5
- package/dist/furigana-kZjqnnFC.js +0 -5
- package/dist/japanese-DdsS8rT1.d.ts +0 -41
- package/dist/japanese-DdsS8rT1.d.ts.map +0 -1
- package/dist/japanese-DgmP3i76.d.cts +0 -41
- package/dist/japanese-DgmP3i76.d.cts.map +0 -1
- package/dist/media-loader-BBTESZXn.cjs +0 -3
- package/dist/media-loader-CNKoAjQs.js +0 -3
- package/dist/multi-language-transformer-B2133Zg_.cjs.map +0 -1
- package/dist/multi-language-transformer-BkwMTV2g.js +0 -2893
- package/dist/multi-language-transformer-BkwMTV2g.js.map +0 -1
- package/dist/sentence-parser-B-gM8mKk.js +0 -5
- package/dist/sentence-parser-Cp3cm_QU.cjs +0 -5
- package/dist/sentence-parser-DUQJ3cTT.cjs.map +0 -1
- package/dist/sentence-parser-sx7y6Oyh.js.map +0 -1
- package/dist/structured-content-generator-Dww8IT7Y.js +0 -4
- package/dist/translator-BiTHo9Nm.js +0 -7
- package/dist/translator-CYvGmODX.d.ts.map +0 -1
- package/dist/translator-TiTDVbmS.d.cts.map +0 -1
- package/dist/translator-Y7Haj_qJ.cjs +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-
|
|
1
|
+
{"version":3,"file":"core-CRjMTF7c.d.ts","names":[],"sources":["../src/types/anki.ts","../src/types/core.ts"],"sourcesContent":null,"mappings":"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"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./dictionary-
|
|
2
|
-
import "./dictionary-importer-
|
|
3
|
-
import { DictionaryDB$1 as DictionaryDB, OBJECT_STORE_NAMES$1 as OBJECT_STORE_NAMES, YomitanDatabase$1 as YomitanDatabase } from "./dictionary-database-
|
|
1
|
+
import "./dictionary-DdxghSJP.js";
|
|
2
|
+
import "./dictionary-importer-CDbCAbwG.js";
|
|
3
|
+
import { DictionaryDB$1 as DictionaryDB, OBJECT_STORE_NAMES$1 as OBJECT_STORE_NAMES, YomitanDatabase$1 as YomitanDatabase } from "./dictionary-database-D0lvK2n3.js";
|
|
4
4
|
export { DictionaryDB, OBJECT_STORE_NAMES, YomitanDatabase };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
//#region src/util/debug.ts
|
|
4
|
+
const DEBUG_GLOBAL_FLAG = "__YOMITAN_CORE_DEBUG__";
|
|
5
|
+
const DEBUG_STORAGE_KEY = "yomitan-core:debug";
|
|
6
|
+
const DEBUG_QUERY_PARAM = "debugYomitanCore";
|
|
7
|
+
function getGlobalDebugFlagValue() {
|
|
8
|
+
try {
|
|
9
|
+
return globalThis[DEBUG_GLOBAL_FLAG];
|
|
10
|
+
} catch (_e) {
|
|
11
|
+
return void 0;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function isTruthyFlag(value) {
|
|
15
|
+
return value === true || value === 1 || value === "1" || value === "true";
|
|
16
|
+
}
|
|
17
|
+
function isYomitanCoreDebugEnabled() {
|
|
18
|
+
const globalFlag = getGlobalDebugFlagValue();
|
|
19
|
+
if (isTruthyFlag(globalFlag)) return true;
|
|
20
|
+
if (typeof window === "undefined") return false;
|
|
21
|
+
const queryValue = new URLSearchParams(window.location.search).get(DEBUG_QUERY_PARAM);
|
|
22
|
+
if (isTruthyFlag(queryValue)) return true;
|
|
23
|
+
try {
|
|
24
|
+
const storageValue = window.localStorage.getItem(DEBUG_STORAGE_KEY);
|
|
25
|
+
return isTruthyFlag(storageValue);
|
|
26
|
+
} catch (_e) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function debugYomitanCore(scope, message, details) {
|
|
31
|
+
if (!isYomitanCoreDebugEnabled()) return;
|
|
32
|
+
console.info(`[YomitanCoreDebug][${scope}] ${message}`, details ?? {});
|
|
33
|
+
}
|
|
34
|
+
function codePointPreview(text, limit = 48) {
|
|
35
|
+
return Array.from(text.slice(0, limit)).map((char) => `U+${char.codePointAt(0)?.toString(16).toUpperCase().padStart(4, "0")}`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
Object.defineProperty(exports, 'codePointPreview', {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () {
|
|
42
|
+
return codePointPreview;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, 'debugYomitanCore', {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function () {
|
|
48
|
+
return debugYomitanCore;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=debug-I2dyAd2e.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-I2dyAd2e.cjs","names":["value: unknown","scope: string","message: string","details?: Record<string, unknown>","text: string"],"sources":["../src/util/debug.ts"],"sourcesContent":["const DEBUG_GLOBAL_FLAG = '__YOMITAN_CORE_DEBUG__';\nconst DEBUG_STORAGE_KEY = 'yomitan-core:debug';\nconst DEBUG_QUERY_PARAM = 'debugYomitanCore';\n\nfunction getGlobalDebugFlagValue(): unknown {\n try {\n return (globalThis as Record<string, unknown>)[DEBUG_GLOBAL_FLAG];\n } catch (_e) {\n return undefined;\n }\n}\n\nfunction isTruthyFlag(value: unknown): boolean {\n return value === true || value === 1 || value === '1' || value === 'true';\n}\n\nexport function isYomitanCoreDebugEnabled(): boolean {\n const globalFlag = getGlobalDebugFlagValue();\n if (isTruthyFlag(globalFlag)) return true;\n\n if (typeof window === 'undefined') return false;\n\n const queryValue = new URLSearchParams(window.location.search).get(DEBUG_QUERY_PARAM);\n if (isTruthyFlag(queryValue)) {\n return true;\n }\n\n try {\n const storageValue = window.localStorage.getItem(DEBUG_STORAGE_KEY);\n return isTruthyFlag(storageValue);\n } catch (_e) {\n return false;\n }\n}\n\nexport function debugYomitanCore(scope: string, message: string, details?: Record<string, unknown>): void {\n if (!isYomitanCoreDebugEnabled()) return;\n console.info(`[YomitanCoreDebug][${scope}] ${message}`, details ?? {});\n}\n\nexport function codePointPreview(text: string, limit = 48): string[] {\n return Array.from(text.slice(0, limit)).map((char) =>\n `U+${char.codePointAt(0)?.toString(16).toUpperCase().padStart(4, '0')}`,\n );\n}\n\n"],"mappings":";;;AAAA,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAE1B,SAAS,0BAAmC;AACxC,KAAI;AACA,SAAQ,WAAuC;CAClD,SAAQ,IAAI;AACT;CACH;AACJ;AAED,SAAS,aAAaA,OAAyB;AAC3C,QAAO,UAAU,QAAQ,UAAU,KAAK,UAAU,OAAO,UAAU;AACtE;AAED,SAAgB,4BAAqC;CACjD,MAAM,aAAa,yBAAyB;AAC5C,KAAI,aAAa,WAAW,CAAE,QAAO;AAErC,YAAW,WAAW,YAAa,QAAO;CAE1C,MAAM,aAAa,IAAI,gBAAgB,OAAO,SAAS,QAAQ,IAAI,kBAAkB;AACrF,KAAI,aAAa,WAAW,CACxB,QAAO;AAGX,KAAI;EACA,MAAM,eAAe,OAAO,aAAa,QAAQ,kBAAkB;AACnE,SAAO,aAAa,aAAa;CACpC,SAAQ,IAAI;AACT,SAAO;CACV;AACJ;AAED,SAAgB,iBAAiBC,OAAeC,SAAiBC,SAAyC;AACtG,MAAK,2BAA2B,CAAE;AAClC,SAAQ,MAAM,qBAAqB,MAAM,IAAI,QAAQ,GAAG,WAAW,CAAE,EAAC;AACzE;AAED,SAAgB,iBAAiBC,MAAc,QAAQ,IAAc;AACjE,QAAO,MAAM,KAAK,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,UACxC,IAAI,KAAK,YAAY,EAAE,EAAE,SAAS,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,EACzE;AACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/util/debug.ts
|
|
2
|
+
const DEBUG_GLOBAL_FLAG = "__YOMITAN_CORE_DEBUG__";
|
|
3
|
+
const DEBUG_STORAGE_KEY = "yomitan-core:debug";
|
|
4
|
+
const DEBUG_QUERY_PARAM = "debugYomitanCore";
|
|
5
|
+
function getGlobalDebugFlagValue() {
|
|
6
|
+
try {
|
|
7
|
+
return globalThis[DEBUG_GLOBAL_FLAG];
|
|
8
|
+
} catch (_e) {
|
|
9
|
+
return void 0;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function isTruthyFlag(value) {
|
|
13
|
+
return value === true || value === 1 || value === "1" || value === "true";
|
|
14
|
+
}
|
|
15
|
+
function isYomitanCoreDebugEnabled() {
|
|
16
|
+
const globalFlag = getGlobalDebugFlagValue();
|
|
17
|
+
if (isTruthyFlag(globalFlag)) return true;
|
|
18
|
+
if (typeof window === "undefined") return false;
|
|
19
|
+
const queryValue = new URLSearchParams(window.location.search).get(DEBUG_QUERY_PARAM);
|
|
20
|
+
if (isTruthyFlag(queryValue)) return true;
|
|
21
|
+
try {
|
|
22
|
+
const storageValue = window.localStorage.getItem(DEBUG_STORAGE_KEY);
|
|
23
|
+
return isTruthyFlag(storageValue);
|
|
24
|
+
} catch (_e) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function debugYomitanCore(scope, message, details) {
|
|
29
|
+
if (!isYomitanCoreDebugEnabled()) return;
|
|
30
|
+
console.info(`[YomitanCoreDebug][${scope}] ${message}`, details ?? {});
|
|
31
|
+
}
|
|
32
|
+
function codePointPreview(text, limit = 48) {
|
|
33
|
+
return Array.from(text.slice(0, limit)).map((char) => `U+${char.codePointAt(0)?.toString(16).toUpperCase().padStart(4, "0")}`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { codePointPreview, debugYomitanCore };
|
|
38
|
+
//# sourceMappingURL=debug-hF63AFkq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-hF63AFkq.js","names":["value: unknown","scope: string","message: string","details?: Record<string, unknown>","text: string"],"sources":["../src/util/debug.ts"],"sourcesContent":["const DEBUG_GLOBAL_FLAG = '__YOMITAN_CORE_DEBUG__';\nconst DEBUG_STORAGE_KEY = 'yomitan-core:debug';\nconst DEBUG_QUERY_PARAM = 'debugYomitanCore';\n\nfunction getGlobalDebugFlagValue(): unknown {\n try {\n return (globalThis as Record<string, unknown>)[DEBUG_GLOBAL_FLAG];\n } catch (_e) {\n return undefined;\n }\n}\n\nfunction isTruthyFlag(value: unknown): boolean {\n return value === true || value === 1 || value === '1' || value === 'true';\n}\n\nexport function isYomitanCoreDebugEnabled(): boolean {\n const globalFlag = getGlobalDebugFlagValue();\n if (isTruthyFlag(globalFlag)) return true;\n\n if (typeof window === 'undefined') return false;\n\n const queryValue = new URLSearchParams(window.location.search).get(DEBUG_QUERY_PARAM);\n if (isTruthyFlag(queryValue)) {\n return true;\n }\n\n try {\n const storageValue = window.localStorage.getItem(DEBUG_STORAGE_KEY);\n return isTruthyFlag(storageValue);\n } catch (_e) {\n return false;\n }\n}\n\nexport function debugYomitanCore(scope: string, message: string, details?: Record<string, unknown>): void {\n if (!isYomitanCoreDebugEnabled()) return;\n console.info(`[YomitanCoreDebug][${scope}] ${message}`, details ?? {});\n}\n\nexport function codePointPreview(text: string, limit = 48): string[] {\n return Array.from(text.slice(0, limit)).map((char) =>\n `U+${char.codePointAt(0)?.toString(16).toUpperCase().padStart(4, '0')}`,\n );\n}\n\n"],"mappings":";AAAA,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAE1B,SAAS,0BAAmC;AACxC,KAAI;AACA,SAAQ,WAAuC;CAClD,SAAQ,IAAI;AACT;CACH;AACJ;AAED,SAAS,aAAaA,OAAyB;AAC3C,QAAO,UAAU,QAAQ,UAAU,KAAK,UAAU,OAAO,UAAU;AACtE;AAED,SAAgB,4BAAqC;CACjD,MAAM,aAAa,yBAAyB;AAC5C,KAAI,aAAa,WAAW,CAAE,QAAO;AAErC,YAAW,WAAW,YAAa,QAAO;CAE1C,MAAM,aAAa,IAAI,gBAAgB,OAAO,SAAS,QAAQ,IAAI,kBAAkB;AACrF,KAAI,aAAa,WAAW,CACxB,QAAO;AAGX,KAAI;EACA,MAAM,eAAe,OAAO,aAAa,QAAQ,kBAAkB;AACnE,SAAO,aAAa,aAAa;CACpC,SAAQ,IAAI;AACT,SAAO;CACV;AACJ;AAED,SAAgB,iBAAiBC,OAAeC,SAAiBC,SAAyC;AACtG,MAAK,2BAA2B,CAAE;AAClC,SAAQ,MAAM,qBAAqB,MAAM,IAAI,QAAQ,GAAG,WAAW,CAAE,EAAC;AACzE;AAED,SAAgB,iBAAiBC,MAAc,QAAQ,IAAc;AACjE,QAAO,MAAM,KAAK,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,UACxC,IAAI,KAAK,YAAY,EAAE,EAAE,SAAS,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,EACzE;AACJ"}
|
|
@@ -313,4 +313,4 @@ type TermSource = {
|
|
|
313
313
|
//# sourceMappingURL=dictionary.d.ts.map
|
|
314
314
|
|
|
315
315
|
export { Content, Data, DictionaryEntry, DictionaryEntryType, Element, FontStyle, FontWeight, GenericFrequencyData, 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, TermGlossary, TermGlossaryContent, TermGlossaryImage, TermHeadword, TermMetaFrequencyDataWithReading, TermMetaPhoneticData, TermMetaPitchData, TermPronunciation, TermSource, TermSourceMatchSource, TermSourceMatchType, TextAlign, TextDecorationLine, TextDecorationLineOrNone, TextDecorationStyle, TextProcessorRuleChainCandidate, UnstyledElement, VerticalAlign, WordBreak };
|
|
316
|
-
//# sourceMappingURL=dictionary-
|
|
316
|
+
//# sourceMappingURL=dictionary-DdxghSJP.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-
|
|
1
|
+
{"version":3,"file":"dictionary-DdxghSJP.d.ts","names":[],"sources":["../src/types/structured-content.ts","../src/types/dictionary-data.ts","../src/types/dictionary.ts"],"sourcesContent":null,"mappings":"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"}
|
package/dist/{dictionary-data-util-BY_72f3u.cjs.map → dictionary-data-util-DmLJMtGc.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-data-util-BY_72f3u.cjs","names":["dictionaryEntry: Dictionary.TermDictionaryEntry","headwordIndex: number","results: TagGroup[]","dictionaryInfo: DictionaryImporter.Summary[]","results: DictionaryFrequency<DDUTermFrequency>[]","frequencies: DDUTermFrequency[]","averageFrequencies: DDUTermFrequency[]","sourceFrequencies: Dictionary.KanjiFrequency[]","results: DictionaryFrequency<DDUKanjiFrequency>[]","frequencies: DDUKanjiFrequency[]","results: DictionaryGroupedPronunciations[]","pronunciations2: GroupedPronunciation[]","exclusiveReadings: string[]","pronunciations: Dictionary.Pronunciation[]","type: T","results: Dictionary.PronunciationGeneric<T>[]","termTags: { score: number }[]","headwords: Dictionary.TermHeadword[]","headwordIndices: number[]","allTermsSet: Set<string>","allReadingsSet: Set<string>","disambiguations: string[]","wordClasses: string[]","current: string","latest: string","reading: string","pronunciation: Dictionary.Pronunciation","groupedPronunciationList: GroupedPronunciationInternal[]","pronunciation2: Dictionary.Pronunciation","array1: T[]","array2: T[]","tagList1: Dictionary.Tag[]","tagList2: Dictionary.Tag[]","set1: Set<T>","set2: Set<T>","result: T[]","array: unknown[]"],"sources":["../src/util/dictionary-data-util.ts"],"sourcesContent":["import type * as Dictionary from '../types/dictionary';\nimport type {\n KanjiFrequency as DDUKanjiFrequency,\n TermFrequency as DDUTermFrequency,\n DictionaryFrequency,\n DictionaryGroupedPronunciations,\n FrequencyValue,\n GroupedPronunciation,\n GroupedPronunciationInternal,\n TagGroup,\n TermFrequencyType,\n} from '../types/dictionary-data-util';\nimport type * as DictionaryImporter from '../types/dictionary-importer';\n\n/**\n * Computes the harmonic mean of frequency values for a given headword in a dictionary entry.\n */\nexport function getFrequencyHarmonic(dictionaryEntry: Dictionary.TermDictionaryEntry, headwordIndex: number): number {\n const dominated = dictionaryEntry.frequencies\n .filter((f) => f.headwordIndex === headwordIndex)\n .map((f) => f.frequency);\n if (dominated.length === 0) {\n return 0;\n }\n let sum = 0;\n for (const freq of dominated) {\n if (freq <= 0) {\n continue;\n }\n sum += 1 / freq;\n }\n return sum > 0 ? Math.round(dominated.length / sum) : 0;\n}\n\nexport function groupTermTags(dictionaryEntry: Dictionary.TermDictionaryEntry): TagGroup[] {\n const { headwords } = dictionaryEntry;\n const headwordCount = headwords.length;\n const uniqueCheck = headwordCount > 1;\n const resultsIndexMap = new Map<string, number>();\n const results: TagGroup[] = [];\n for (let i = 0; i < headwordCount; ++i) {\n const { tags } = headwords[i];\n for (const tag of tags) {\n if (uniqueCheck) {\n const { name, category, content, dictionaries } = tag;\n const key = createMapKey([name, category, content, dictionaries]);\n const index = resultsIndexMap.get(key);\n if (typeof index !== 'undefined') {\n results[index].headwordIndices.push(i);\n continue;\n }\n resultsIndexMap.set(key, results.length);\n }\n results.push({ tag, headwordIndices: [i] });\n }\n }\n return results;\n}\n\nexport function groupTermFrequencies(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUTermFrequency>[] {\n const { headwords, frequencies: sourceFrequencies } = dictionaryEntry;\n\n const map1 = new Map<\n string,\n Map<string, { term: string; reading: string | null; values: Map<string, FrequencyValue> }>\n >();\n const aliasMap = new Map<string, string>();\n for (const {\n headwordIndex,\n dictionary,\n dictionaryAlias,\n hasReading,\n frequency,\n displayValue,\n } of sourceFrequencies) {\n const { term, reading } = headwords[headwordIndex];\n\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n\n const readingKey = hasReading ? reading : null;\n const key = createMapKey([term, readingKey]);\n let frequencyData = map2.get(key);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { term, reading: readingKey, values: new Map() };\n map2.set(key, frequencyData);\n }\n\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUTermFrequency>[] = [];\n\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUTermFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { term, reading, values } of map2.values()) {\n frequencies.push({ term, reading, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.termMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n\n const averageFrequencies: DDUTermFrequency[] = [];\n for (let i = 0; i < dictionaryEntry.headwords.length; i++) {\n const averageFrequency = getFrequencyHarmonic(dictionaryEntry, i);\n averageFrequencies.push({\n term: dictionaryEntry.headwords[i].term,\n reading: dictionaryEntry.headwords[i].reading,\n values: [{ frequency: averageFrequency, displayValue: averageFrequency.toString() }],\n });\n }\n\n results.push({\n dictionary: 'Average',\n frequencies: averageFrequencies,\n dictionaryAlias: 'Average',\n freqCount: averageFrequencies.length,\n });\n\n return results;\n}\n\nexport function groupKanjiFrequencies(\n sourceFrequencies: Dictionary.KanjiFrequency[],\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUKanjiFrequency>[] {\n const map1 = new Map<string, Map<string, { character: string; values: Map<string, FrequencyValue> }>>();\n const aliasMap = new Map<string, string>();\n for (const { dictionary, dictionaryAlias, character, frequency, displayValue } of sourceFrequencies) {\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n let frequencyData = map2.get(character);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { character, values: new Map() };\n map2.set(character, frequencyData);\n }\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUKanjiFrequency>[] = [];\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUKanjiFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { character, values } of map2.values()) {\n frequencies.push({ character, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.kanjiMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n return results;\n}\n\nexport function getGroupedPronunciations(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n): DictionaryGroupedPronunciations[] {\n const { headwords, pronunciations: termPronunciations } = dictionaryEntry;\n\n const allTerms = new Set<string>();\n const allReadings = new Set<string>();\n const aliasMap = new Map<string, string>();\n for (const { term, reading } of headwords) {\n allTerms.add(term);\n allReadings.add(reading);\n }\n\n const groupedPronunciationsMap = new Map<string, GroupedPronunciationInternal[]>();\n for (const { headwordIndex, dictionary, dictionaryAlias, pronunciations } of termPronunciations) {\n const { term, reading } = headwords[headwordIndex];\n let dictionaryGroupedPronunciationList = groupedPronunciationsMap.get(dictionary);\n if (typeof dictionaryGroupedPronunciationList === 'undefined') {\n dictionaryGroupedPronunciationList = [];\n groupedPronunciationsMap.set(dictionary, dictionaryGroupedPronunciationList);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n for (const pronunciation of pronunciations) {\n let groupedPronunciation = findExistingGroupedPronunciation(\n reading,\n pronunciation,\n dictionaryGroupedPronunciationList,\n );\n if (groupedPronunciation === null) {\n groupedPronunciation = { pronunciation, terms: new Set(), reading };\n dictionaryGroupedPronunciationList.push(groupedPronunciation);\n }\n groupedPronunciation.terms.add(term);\n }\n }\n\n const results: DictionaryGroupedPronunciations[] = [];\n const multipleReadings = allReadings.size > 1;\n for (const [dictionary, dictionaryGroupedPronunciationList] of groupedPronunciationsMap.entries()) {\n const pronunciations2: GroupedPronunciation[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const groupedPronunciation of dictionaryGroupedPronunciationList) {\n const { pronunciation, terms, reading } = groupedPronunciation;\n const exclusiveTerms = !areSetsEqual(terms, allTerms) ? getSetIntersection(terms, allTerms) : [];\n const exclusiveReadings: string[] = [];\n if (multipleReadings) {\n exclusiveReadings.push(reading);\n }\n pronunciations2.push({ pronunciation, terms: [...terms], reading, exclusiveTerms, exclusiveReadings });\n }\n results.push({ dictionary, dictionaryAlias, pronunciations: pronunciations2 });\n }\n return results;\n}\n\nexport function getPronunciationsOfType<T extends Dictionary.PronunciationType>(\n pronunciations: Dictionary.Pronunciation[],\n type: T,\n): Dictionary.PronunciationGeneric<T>[] {\n const results: Dictionary.PronunciationGeneric<T>[] = [];\n for (const pronunciation of pronunciations) {\n if (pronunciation.type === type) {\n results.push(pronunciation as Dictionary.PronunciationGeneric<T>);\n }\n }\n return results;\n}\n\nexport function getTermFrequency(termTags: { score: number }[]): TermFrequencyType {\n let totalScore = 0;\n for (const { score } of termTags) {\n totalScore += score;\n }\n if (totalScore > 0) {\n return 'popular';\n }\n if (totalScore < 0) {\n return 'rare';\n }\n return 'normal';\n}\n\nexport function getDisambiguations(\n headwords: Dictionary.TermHeadword[],\n headwordIndices: number[],\n allTermsSet: Set<string>,\n allReadingsSet: Set<string>,\n): string[] {\n if (allTermsSet.size <= 1 && allReadingsSet.size <= 1) {\n return [];\n }\n const terms = new Set<string>();\n const readings = new Set<string>();\n for (const headwordIndex of headwordIndices) {\n const { term, reading } = headwords[headwordIndex];\n terms.add(term);\n readings.add(reading);\n }\n const disambiguations: string[] = [];\n const addTerms = !areSetsEqual(terms, allTermsSet);\n const addReadings = !areSetsEqual(readings, allReadingsSet);\n if (addTerms) {\n disambiguations.push(...getSetIntersection(terms, allTermsSet));\n }\n if (addReadings) {\n if (addTerms) {\n for (const term of terms) {\n readings.delete(term);\n }\n }\n disambiguations.push(...getSetIntersection(readings, allReadingsSet));\n }\n return disambiguations;\n}\n\nexport function isNonNounVerbOrAdjective(wordClasses: string[]): boolean {\n let isVerbOrAdjective = false;\n let isSuruVerb = false;\n let isNoun = false;\n for (const wordClass of wordClasses) {\n switch (wordClass) {\n case 'v1':\n case 'v5':\n case 'vk':\n case 'vz':\n case 'adj-i':\n isVerbOrAdjective = true;\n break;\n case 'vs':\n isVerbOrAdjective = true;\n isSuruVerb = true;\n break;\n case 'n':\n isNoun = true;\n break;\n }\n }\n return isVerbOrAdjective && !(isSuruVerb && isNoun);\n}\n\nexport function compareRevisions(current: string, latest: string): boolean {\n const simpleVersionTest = /^(\\d+\\.)*\\d+$/;\n if (!simpleVersionTest.test(current) || !simpleVersionTest.test(latest)) {\n return current < latest;\n }\n const currentParts = current.split('.').map((part) => Number.parseInt(part, 10));\n const latestParts = latest.split('.').map((part) => Number.parseInt(part, 10));\n if (currentParts.length !== latestParts.length) {\n return current < latest;\n }\n for (let i = 0; i < currentParts.length; i++) {\n if (currentParts[i] !== latestParts[i]) {\n return currentParts[i] < latestParts[i];\n }\n }\n return false;\n}\n\n// Private helpers\n\nfunction findExistingGroupedPronunciation(\n reading: string,\n pronunciation: Dictionary.Pronunciation,\n groupedPronunciationList: GroupedPronunciationInternal[],\n): GroupedPronunciationInternal | null {\n return (\n groupedPronunciationList.find(\n (gp) => gp.reading === reading && arePronunciationsEquivalent(gp, pronunciation),\n ) ?? null\n );\n}\n\nfunction arePronunciationsEquivalent(\n { pronunciation: pronunciation1 }: GroupedPronunciationInternal,\n pronunciation2: Dictionary.Pronunciation,\n): boolean {\n if (pronunciation1.type !== pronunciation2.type || !areTagListsEqual(pronunciation1.tags, pronunciation2.tags)) {\n return false;\n }\n switch (pronunciation1.type) {\n case 'pitch-accent': {\n const pitchAccent2 = pronunciation2 as Dictionary.PitchAccent;\n return (\n pronunciation1.positions === pitchAccent2.positions &&\n areSimpleArraysEqual(pronunciation1.nasalPositions, pitchAccent2.nasalPositions) &&\n areSimpleArraysEqual(pronunciation1.devoicePositions, pitchAccent2.devoicePositions)\n );\n }\n case 'phonetic-transcription': {\n const phoneticTranscription2 = pronunciation2 as Dictionary.PhoneticTranscription;\n return pronunciation1.ipa === phoneticTranscription2.ipa;\n }\n }\n return true;\n}\n\nfunction areSimpleArraysEqual<T>(array1: T[], array2: T[]): boolean {\n const ii = array1.length;\n if (ii !== array2.length) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction areTagListsEqual(tagList1: Dictionary.Tag[], tagList2: Dictionary.Tag[]): boolean {\n const ii = tagList1.length;\n if (tagList2.length !== ii) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n const tag1 = tagList1[i];\n const tag2 = tagList2[i];\n if (tag1.name !== tag2.name || !areSimpleArraysEqual(tag1.dictionaries, tag2.dictionaries)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areSetsEqual<T>(set1: Set<T>, set2: Set<T>): boolean {\n if (set1.size !== set2.size) {\n return false;\n }\n for (const value of set1) {\n if (!set2.has(value)) {\n return false;\n }\n }\n return true;\n}\n\nfunction getSetIntersection<T>(set1: Set<T>, set2: Set<T>): T[] {\n const result: T[] = [];\n for (const value of set1) {\n if (set2.has(value)) {\n result.push(value);\n }\n }\n return result;\n}\n\nfunction createMapKey(array: unknown[]): string {\n return JSON.stringify(array);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dictionary-data-util-DmLJMtGc.cjs","names":["dictionaryEntry: Dictionary.TermDictionaryEntry","headwordIndex: number","results: TagGroup[]","dictionaryInfo: DictionaryImporter.Summary[]","results: DictionaryFrequency<DDUTermFrequency>[]","frequencies: DDUTermFrequency[]","averageFrequencies: DDUTermFrequency[]","sourceFrequencies: Dictionary.KanjiFrequency[]","results: DictionaryFrequency<DDUKanjiFrequency>[]","frequencies: DDUKanjiFrequency[]","results: DictionaryGroupedPronunciations[]","pronunciations2: GroupedPronunciation[]","exclusiveReadings: string[]","pronunciations: Dictionary.Pronunciation[]","type: T","results: Dictionary.PronunciationGeneric<T>[]","termTags: { score: number }[]","headwords: Dictionary.TermHeadword[]","headwordIndices: number[]","allTermsSet: Set<string>","allReadingsSet: Set<string>","disambiguations: string[]","wordClasses: string[]","current: string","latest: string","reading: string","pronunciation: Dictionary.Pronunciation","groupedPronunciationList: GroupedPronunciationInternal[]","pronunciation2: Dictionary.Pronunciation","array1: T[]","array2: T[]","tagList1: Dictionary.Tag[]","tagList2: Dictionary.Tag[]","set1: Set<T>","set2: Set<T>","result: T[]","array: unknown[]"],"sources":["../src/util/dictionary-data-util.ts"],"sourcesContent":["import type * as Dictionary from '../types/dictionary';\nimport type {\n KanjiFrequency as DDUKanjiFrequency,\n TermFrequency as DDUTermFrequency,\n DictionaryFrequency,\n DictionaryGroupedPronunciations,\n FrequencyValue,\n GroupedPronunciation,\n GroupedPronunciationInternal,\n TagGroup,\n TermFrequencyType,\n} from '../types/dictionary-data-util';\nimport type * as DictionaryImporter from '../types/dictionary-importer';\n\n/**\n * Computes the harmonic mean of frequency values for a given headword in a dictionary entry.\n */\nexport function getFrequencyHarmonic(dictionaryEntry: Dictionary.TermDictionaryEntry, headwordIndex: number): number {\n const dominated = dictionaryEntry.frequencies\n .filter((f) => f.headwordIndex === headwordIndex)\n .map((f) => f.frequency);\n if (dominated.length === 0) {\n return 0;\n }\n let sum = 0;\n for (const freq of dominated) {\n if (freq <= 0) {\n continue;\n }\n sum += 1 / freq;\n }\n return sum > 0 ? Math.round(dominated.length / sum) : 0;\n}\n\nexport function groupTermTags(dictionaryEntry: Dictionary.TermDictionaryEntry): TagGroup[] {\n const { headwords } = dictionaryEntry;\n const headwordCount = headwords.length;\n const uniqueCheck = headwordCount > 1;\n const resultsIndexMap = new Map<string, number>();\n const results: TagGroup[] = [];\n for (let i = 0; i < headwordCount; ++i) {\n const { tags } = headwords[i];\n for (const tag of tags) {\n if (uniqueCheck) {\n const { name, category, content, dictionaries } = tag;\n const key = createMapKey([name, category, content, dictionaries]);\n const index = resultsIndexMap.get(key);\n if (typeof index !== 'undefined') {\n results[index].headwordIndices.push(i);\n continue;\n }\n resultsIndexMap.set(key, results.length);\n }\n results.push({ tag, headwordIndices: [i] });\n }\n }\n return results;\n}\n\nexport function groupTermFrequencies(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUTermFrequency>[] {\n const { headwords, frequencies: sourceFrequencies } = dictionaryEntry;\n\n const map1 = new Map<\n string,\n Map<string, { term: string; reading: string | null; values: Map<string, FrequencyValue> }>\n >();\n const aliasMap = new Map<string, string>();\n for (const {\n headwordIndex,\n dictionary,\n dictionaryAlias,\n hasReading,\n frequency,\n displayValue,\n } of sourceFrequencies) {\n const { term, reading } = headwords[headwordIndex];\n\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n\n const readingKey = hasReading ? reading : null;\n const key = createMapKey([term, readingKey]);\n let frequencyData = map2.get(key);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { term, reading: readingKey, values: new Map() };\n map2.set(key, frequencyData);\n }\n\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUTermFrequency>[] = [];\n\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUTermFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { term, reading, values } of map2.values()) {\n frequencies.push({ term, reading, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.termMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n\n const averageFrequencies: DDUTermFrequency[] = [];\n for (let i = 0; i < dictionaryEntry.headwords.length; i++) {\n const averageFrequency = getFrequencyHarmonic(dictionaryEntry, i);\n averageFrequencies.push({\n term: dictionaryEntry.headwords[i].term,\n reading: dictionaryEntry.headwords[i].reading,\n values: [{ frequency: averageFrequency, displayValue: averageFrequency.toString() }],\n });\n }\n\n results.push({\n dictionary: 'Average',\n frequencies: averageFrequencies,\n dictionaryAlias: 'Average',\n freqCount: averageFrequencies.length,\n });\n\n return results;\n}\n\nexport function groupKanjiFrequencies(\n sourceFrequencies: Dictionary.KanjiFrequency[],\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUKanjiFrequency>[] {\n const map1 = new Map<string, Map<string, { character: string; values: Map<string, FrequencyValue> }>>();\n const aliasMap = new Map<string, string>();\n for (const { dictionary, dictionaryAlias, character, frequency, displayValue } of sourceFrequencies) {\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n let frequencyData = map2.get(character);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { character, values: new Map() };\n map2.set(character, frequencyData);\n }\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUKanjiFrequency>[] = [];\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUKanjiFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { character, values } of map2.values()) {\n frequencies.push({ character, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.kanjiMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n return results;\n}\n\nexport function getGroupedPronunciations(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n): DictionaryGroupedPronunciations[] {\n const { headwords, pronunciations: termPronunciations } = dictionaryEntry;\n\n const allTerms = new Set<string>();\n const allReadings = new Set<string>();\n const aliasMap = new Map<string, string>();\n for (const { term, reading } of headwords) {\n allTerms.add(term);\n allReadings.add(reading);\n }\n\n const groupedPronunciationsMap = new Map<string, GroupedPronunciationInternal[]>();\n for (const { headwordIndex, dictionary, dictionaryAlias, pronunciations } of termPronunciations) {\n const { term, reading } = headwords[headwordIndex];\n let dictionaryGroupedPronunciationList = groupedPronunciationsMap.get(dictionary);\n if (typeof dictionaryGroupedPronunciationList === 'undefined') {\n dictionaryGroupedPronunciationList = [];\n groupedPronunciationsMap.set(dictionary, dictionaryGroupedPronunciationList);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n for (const pronunciation of pronunciations) {\n let groupedPronunciation = findExistingGroupedPronunciation(\n reading,\n pronunciation,\n dictionaryGroupedPronunciationList,\n );\n if (groupedPronunciation === null) {\n groupedPronunciation = { pronunciation, terms: new Set(), reading };\n dictionaryGroupedPronunciationList.push(groupedPronunciation);\n }\n groupedPronunciation.terms.add(term);\n }\n }\n\n const results: DictionaryGroupedPronunciations[] = [];\n const multipleReadings = allReadings.size > 1;\n for (const [dictionary, dictionaryGroupedPronunciationList] of groupedPronunciationsMap.entries()) {\n const pronunciations2: GroupedPronunciation[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const groupedPronunciation of dictionaryGroupedPronunciationList) {\n const { pronunciation, terms, reading } = groupedPronunciation;\n const exclusiveTerms = !areSetsEqual(terms, allTerms) ? getSetIntersection(terms, allTerms) : [];\n const exclusiveReadings: string[] = [];\n if (multipleReadings) {\n exclusiveReadings.push(reading);\n }\n pronunciations2.push({ pronunciation, terms: [...terms], reading, exclusiveTerms, exclusiveReadings });\n }\n results.push({ dictionary, dictionaryAlias, pronunciations: pronunciations2 });\n }\n return results;\n}\n\nexport function getPronunciationsOfType<T extends Dictionary.PronunciationType>(\n pronunciations: Dictionary.Pronunciation[],\n type: T,\n): Dictionary.PronunciationGeneric<T>[] {\n const results: Dictionary.PronunciationGeneric<T>[] = [];\n for (const pronunciation of pronunciations) {\n if (pronunciation.type === type) {\n results.push(pronunciation as Dictionary.PronunciationGeneric<T>);\n }\n }\n return results;\n}\n\nexport function getTermFrequency(termTags: { score: number }[]): TermFrequencyType {\n let totalScore = 0;\n for (const { score } of termTags) {\n totalScore += score;\n }\n if (totalScore > 0) {\n return 'popular';\n }\n if (totalScore < 0) {\n return 'rare';\n }\n return 'normal';\n}\n\nexport function getDisambiguations(\n headwords: Dictionary.TermHeadword[],\n headwordIndices: number[],\n allTermsSet: Set<string>,\n allReadingsSet: Set<string>,\n): string[] {\n if (allTermsSet.size <= 1 && allReadingsSet.size <= 1) {\n return [];\n }\n const terms = new Set<string>();\n const readings = new Set<string>();\n for (const headwordIndex of headwordIndices) {\n const { term, reading } = headwords[headwordIndex];\n terms.add(term);\n readings.add(reading);\n }\n const disambiguations: string[] = [];\n const addTerms = !areSetsEqual(terms, allTermsSet);\n const addReadings = !areSetsEqual(readings, allReadingsSet);\n if (addTerms) {\n disambiguations.push(...getSetIntersection(terms, allTermsSet));\n }\n if (addReadings) {\n if (addTerms) {\n for (const term of terms) {\n readings.delete(term);\n }\n }\n disambiguations.push(...getSetIntersection(readings, allReadingsSet));\n }\n return disambiguations;\n}\n\nexport function isNonNounVerbOrAdjective(wordClasses: string[]): boolean {\n let isVerbOrAdjective = false;\n let isSuruVerb = false;\n let isNoun = false;\n for (const wordClass of wordClasses) {\n switch (wordClass) {\n case 'v1':\n case 'v5':\n case 'vk':\n case 'vz':\n case 'adj-i':\n isVerbOrAdjective = true;\n break;\n case 'vs':\n isVerbOrAdjective = true;\n isSuruVerb = true;\n break;\n case 'n':\n isNoun = true;\n break;\n }\n }\n return isVerbOrAdjective && !(isSuruVerb && isNoun);\n}\n\nexport function compareRevisions(current: string, latest: string): boolean {\n const simpleVersionTest = /^(\\d+\\.)*\\d+$/;\n if (!simpleVersionTest.test(current) || !simpleVersionTest.test(latest)) {\n return current < latest;\n }\n const currentParts = current.split('.').map((part) => Number.parseInt(part, 10));\n const latestParts = latest.split('.').map((part) => Number.parseInt(part, 10));\n if (currentParts.length !== latestParts.length) {\n return current < latest;\n }\n for (let i = 0; i < currentParts.length; i++) {\n if (currentParts[i] !== latestParts[i]) {\n return currentParts[i] < latestParts[i];\n }\n }\n return false;\n}\n\n// Private helpers\n\nfunction findExistingGroupedPronunciation(\n reading: string,\n pronunciation: Dictionary.Pronunciation,\n groupedPronunciationList: GroupedPronunciationInternal[],\n): GroupedPronunciationInternal | null {\n return (\n groupedPronunciationList.find(\n (gp) => gp.reading === reading && arePronunciationsEquivalent(gp, pronunciation),\n ) ?? null\n );\n}\n\nfunction arePronunciationsEquivalent(\n { pronunciation: pronunciation1 }: GroupedPronunciationInternal,\n pronunciation2: Dictionary.Pronunciation,\n): boolean {\n if (pronunciation1.type !== pronunciation2.type || !areTagListsEqual(pronunciation1.tags, pronunciation2.tags)) {\n return false;\n }\n switch (pronunciation1.type) {\n case 'pitch-accent': {\n const pitchAccent2 = pronunciation2 as Dictionary.PitchAccent;\n return (\n pronunciation1.positions === pitchAccent2.positions &&\n areSimpleArraysEqual(pronunciation1.nasalPositions, pitchAccent2.nasalPositions) &&\n areSimpleArraysEqual(pronunciation1.devoicePositions, pitchAccent2.devoicePositions)\n );\n }\n case 'phonetic-transcription': {\n const phoneticTranscription2 = pronunciation2 as Dictionary.PhoneticTranscription;\n return pronunciation1.ipa === phoneticTranscription2.ipa;\n }\n }\n return true;\n}\n\nfunction areSimpleArraysEqual<T>(array1: T[], array2: T[]): boolean {\n const ii = array1.length;\n if (ii !== array2.length) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction areTagListsEqual(tagList1: Dictionary.Tag[], tagList2: Dictionary.Tag[]): boolean {\n const ii = tagList1.length;\n if (tagList2.length !== ii) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n const tag1 = tagList1[i];\n const tag2 = tagList2[i];\n if (tag1.name !== tag2.name || !areSimpleArraysEqual(tag1.dictionaries, tag2.dictionaries)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areSetsEqual<T>(set1: Set<T>, set2: Set<T>): boolean {\n if (set1.size !== set2.size) {\n return false;\n }\n for (const value of set1) {\n if (!set2.has(value)) {\n return false;\n }\n }\n return true;\n}\n\nfunction getSetIntersection<T>(set1: Set<T>, set2: Set<T>): T[] {\n const result: T[] = [];\n for (const value of set1) {\n if (set2.has(value)) {\n result.push(value);\n }\n }\n return result;\n}\n\nfunction createMapKey(array: unknown[]): string {\n return JSON.stringify(array);\n}\n"],"mappings":"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"}
|
|
@@ -320,4 +320,4 @@ function createMapKey(array) {
|
|
|
320
320
|
|
|
321
321
|
//#endregion
|
|
322
322
|
export { compareRevisions, getDisambiguations, getGroupedPronunciations, getPronunciationsOfType, getTermFrequency, groupKanjiFrequencies, groupTermFrequencies, groupTermTags, isNonNounVerbOrAdjective };
|
|
323
|
-
//# sourceMappingURL=dictionary-data-util-
|
|
323
|
+
//# sourceMappingURL=dictionary-data-util-gUUD9ElK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-data-util-CKDT7n2t.js","names":["dictionaryEntry: Dictionary.TermDictionaryEntry","headwordIndex: number","results: TagGroup[]","dictionaryInfo: DictionaryImporter.Summary[]","results: DictionaryFrequency<DDUTermFrequency>[]","frequencies: DDUTermFrequency[]","averageFrequencies: DDUTermFrequency[]","sourceFrequencies: Dictionary.KanjiFrequency[]","results: DictionaryFrequency<DDUKanjiFrequency>[]","frequencies: DDUKanjiFrequency[]","results: DictionaryGroupedPronunciations[]","pronunciations2: GroupedPronunciation[]","exclusiveReadings: string[]","pronunciations: Dictionary.Pronunciation[]","type: T","results: Dictionary.PronunciationGeneric<T>[]","termTags: { score: number }[]","headwords: Dictionary.TermHeadword[]","headwordIndices: number[]","allTermsSet: Set<string>","allReadingsSet: Set<string>","disambiguations: string[]","wordClasses: string[]","current: string","latest: string","reading: string","pronunciation: Dictionary.Pronunciation","groupedPronunciationList: GroupedPronunciationInternal[]","pronunciation2: Dictionary.Pronunciation","array1: T[]","array2: T[]","tagList1: Dictionary.Tag[]","tagList2: Dictionary.Tag[]","set1: Set<T>","set2: Set<T>","result: T[]","array: unknown[]"],"sources":["../src/util/dictionary-data-util.ts"],"sourcesContent":["import type * as Dictionary from '../types/dictionary';\nimport type {\n KanjiFrequency as DDUKanjiFrequency,\n TermFrequency as DDUTermFrequency,\n DictionaryFrequency,\n DictionaryGroupedPronunciations,\n FrequencyValue,\n GroupedPronunciation,\n GroupedPronunciationInternal,\n TagGroup,\n TermFrequencyType,\n} from '../types/dictionary-data-util';\nimport type * as DictionaryImporter from '../types/dictionary-importer';\n\n/**\n * Computes the harmonic mean of frequency values for a given headword in a dictionary entry.\n */\nexport function getFrequencyHarmonic(dictionaryEntry: Dictionary.TermDictionaryEntry, headwordIndex: number): number {\n const dominated = dictionaryEntry.frequencies\n .filter((f) => f.headwordIndex === headwordIndex)\n .map((f) => f.frequency);\n if (dominated.length === 0) {\n return 0;\n }\n let sum = 0;\n for (const freq of dominated) {\n if (freq <= 0) {\n continue;\n }\n sum += 1 / freq;\n }\n return sum > 0 ? Math.round(dominated.length / sum) : 0;\n}\n\nexport function groupTermTags(dictionaryEntry: Dictionary.TermDictionaryEntry): TagGroup[] {\n const { headwords } = dictionaryEntry;\n const headwordCount = headwords.length;\n const uniqueCheck = headwordCount > 1;\n const resultsIndexMap = new Map<string, number>();\n const results: TagGroup[] = [];\n for (let i = 0; i < headwordCount; ++i) {\n const { tags } = headwords[i];\n for (const tag of tags) {\n if (uniqueCheck) {\n const { name, category, content, dictionaries } = tag;\n const key = createMapKey([name, category, content, dictionaries]);\n const index = resultsIndexMap.get(key);\n if (typeof index !== 'undefined') {\n results[index].headwordIndices.push(i);\n continue;\n }\n resultsIndexMap.set(key, results.length);\n }\n results.push({ tag, headwordIndices: [i] });\n }\n }\n return results;\n}\n\nexport function groupTermFrequencies(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUTermFrequency>[] {\n const { headwords, frequencies: sourceFrequencies } = dictionaryEntry;\n\n const map1 = new Map<\n string,\n Map<string, { term: string; reading: string | null; values: Map<string, FrequencyValue> }>\n >();\n const aliasMap = new Map<string, string>();\n for (const {\n headwordIndex,\n dictionary,\n dictionaryAlias,\n hasReading,\n frequency,\n displayValue,\n } of sourceFrequencies) {\n const { term, reading } = headwords[headwordIndex];\n\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n\n const readingKey = hasReading ? reading : null;\n const key = createMapKey([term, readingKey]);\n let frequencyData = map2.get(key);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { term, reading: readingKey, values: new Map() };\n map2.set(key, frequencyData);\n }\n\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUTermFrequency>[] = [];\n\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUTermFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { term, reading, values } of map2.values()) {\n frequencies.push({ term, reading, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.termMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n\n const averageFrequencies: DDUTermFrequency[] = [];\n for (let i = 0; i < dictionaryEntry.headwords.length; i++) {\n const averageFrequency = getFrequencyHarmonic(dictionaryEntry, i);\n averageFrequencies.push({\n term: dictionaryEntry.headwords[i].term,\n reading: dictionaryEntry.headwords[i].reading,\n values: [{ frequency: averageFrequency, displayValue: averageFrequency.toString() }],\n });\n }\n\n results.push({\n dictionary: 'Average',\n frequencies: averageFrequencies,\n dictionaryAlias: 'Average',\n freqCount: averageFrequencies.length,\n });\n\n return results;\n}\n\nexport function groupKanjiFrequencies(\n sourceFrequencies: Dictionary.KanjiFrequency[],\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUKanjiFrequency>[] {\n const map1 = new Map<string, Map<string, { character: string; values: Map<string, FrequencyValue> }>>();\n const aliasMap = new Map<string, string>();\n for (const { dictionary, dictionaryAlias, character, frequency, displayValue } of sourceFrequencies) {\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n let frequencyData = map2.get(character);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { character, values: new Map() };\n map2.set(character, frequencyData);\n }\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUKanjiFrequency>[] = [];\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUKanjiFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { character, values } of map2.values()) {\n frequencies.push({ character, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.kanjiMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n return results;\n}\n\nexport function getGroupedPronunciations(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n): DictionaryGroupedPronunciations[] {\n const { headwords, pronunciations: termPronunciations } = dictionaryEntry;\n\n const allTerms = new Set<string>();\n const allReadings = new Set<string>();\n const aliasMap = new Map<string, string>();\n for (const { term, reading } of headwords) {\n allTerms.add(term);\n allReadings.add(reading);\n }\n\n const groupedPronunciationsMap = new Map<string, GroupedPronunciationInternal[]>();\n for (const { headwordIndex, dictionary, dictionaryAlias, pronunciations } of termPronunciations) {\n const { term, reading } = headwords[headwordIndex];\n let dictionaryGroupedPronunciationList = groupedPronunciationsMap.get(dictionary);\n if (typeof dictionaryGroupedPronunciationList === 'undefined') {\n dictionaryGroupedPronunciationList = [];\n groupedPronunciationsMap.set(dictionary, dictionaryGroupedPronunciationList);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n for (const pronunciation of pronunciations) {\n let groupedPronunciation = findExistingGroupedPronunciation(\n reading,\n pronunciation,\n dictionaryGroupedPronunciationList,\n );\n if (groupedPronunciation === null) {\n groupedPronunciation = { pronunciation, terms: new Set(), reading };\n dictionaryGroupedPronunciationList.push(groupedPronunciation);\n }\n groupedPronunciation.terms.add(term);\n }\n }\n\n const results: DictionaryGroupedPronunciations[] = [];\n const multipleReadings = allReadings.size > 1;\n for (const [dictionary, dictionaryGroupedPronunciationList] of groupedPronunciationsMap.entries()) {\n const pronunciations2: GroupedPronunciation[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const groupedPronunciation of dictionaryGroupedPronunciationList) {\n const { pronunciation, terms, reading } = groupedPronunciation;\n const exclusiveTerms = !areSetsEqual(terms, allTerms) ? getSetIntersection(terms, allTerms) : [];\n const exclusiveReadings: string[] = [];\n if (multipleReadings) {\n exclusiveReadings.push(reading);\n }\n pronunciations2.push({ pronunciation, terms: [...terms], reading, exclusiveTerms, exclusiveReadings });\n }\n results.push({ dictionary, dictionaryAlias, pronunciations: pronunciations2 });\n }\n return results;\n}\n\nexport function getPronunciationsOfType<T extends Dictionary.PronunciationType>(\n pronunciations: Dictionary.Pronunciation[],\n type: T,\n): Dictionary.PronunciationGeneric<T>[] {\n const results: Dictionary.PronunciationGeneric<T>[] = [];\n for (const pronunciation of pronunciations) {\n if (pronunciation.type === type) {\n results.push(pronunciation as Dictionary.PronunciationGeneric<T>);\n }\n }\n return results;\n}\n\nexport function getTermFrequency(termTags: { score: number }[]): TermFrequencyType {\n let totalScore = 0;\n for (const { score } of termTags) {\n totalScore += score;\n }\n if (totalScore > 0) {\n return 'popular';\n }\n if (totalScore < 0) {\n return 'rare';\n }\n return 'normal';\n}\n\nexport function getDisambiguations(\n headwords: Dictionary.TermHeadword[],\n headwordIndices: number[],\n allTermsSet: Set<string>,\n allReadingsSet: Set<string>,\n): string[] {\n if (allTermsSet.size <= 1 && allReadingsSet.size <= 1) {\n return [];\n }\n const terms = new Set<string>();\n const readings = new Set<string>();\n for (const headwordIndex of headwordIndices) {\n const { term, reading } = headwords[headwordIndex];\n terms.add(term);\n readings.add(reading);\n }\n const disambiguations: string[] = [];\n const addTerms = !areSetsEqual(terms, allTermsSet);\n const addReadings = !areSetsEqual(readings, allReadingsSet);\n if (addTerms) {\n disambiguations.push(...getSetIntersection(terms, allTermsSet));\n }\n if (addReadings) {\n if (addTerms) {\n for (const term of terms) {\n readings.delete(term);\n }\n }\n disambiguations.push(...getSetIntersection(readings, allReadingsSet));\n }\n return disambiguations;\n}\n\nexport function isNonNounVerbOrAdjective(wordClasses: string[]): boolean {\n let isVerbOrAdjective = false;\n let isSuruVerb = false;\n let isNoun = false;\n for (const wordClass of wordClasses) {\n switch (wordClass) {\n case 'v1':\n case 'v5':\n case 'vk':\n case 'vz':\n case 'adj-i':\n isVerbOrAdjective = true;\n break;\n case 'vs':\n isVerbOrAdjective = true;\n isSuruVerb = true;\n break;\n case 'n':\n isNoun = true;\n break;\n }\n }\n return isVerbOrAdjective && !(isSuruVerb && isNoun);\n}\n\nexport function compareRevisions(current: string, latest: string): boolean {\n const simpleVersionTest = /^(\\d+\\.)*\\d+$/;\n if (!simpleVersionTest.test(current) || !simpleVersionTest.test(latest)) {\n return current < latest;\n }\n const currentParts = current.split('.').map((part) => Number.parseInt(part, 10));\n const latestParts = latest.split('.').map((part) => Number.parseInt(part, 10));\n if (currentParts.length !== latestParts.length) {\n return current < latest;\n }\n for (let i = 0; i < currentParts.length; i++) {\n if (currentParts[i] !== latestParts[i]) {\n return currentParts[i] < latestParts[i];\n }\n }\n return false;\n}\n\n// Private helpers\n\nfunction findExistingGroupedPronunciation(\n reading: string,\n pronunciation: Dictionary.Pronunciation,\n groupedPronunciationList: GroupedPronunciationInternal[],\n): GroupedPronunciationInternal | null {\n return (\n groupedPronunciationList.find(\n (gp) => gp.reading === reading && arePronunciationsEquivalent(gp, pronunciation),\n ) ?? null\n );\n}\n\nfunction arePronunciationsEquivalent(\n { pronunciation: pronunciation1 }: GroupedPronunciationInternal,\n pronunciation2: Dictionary.Pronunciation,\n): boolean {\n if (pronunciation1.type !== pronunciation2.type || !areTagListsEqual(pronunciation1.tags, pronunciation2.tags)) {\n return false;\n }\n switch (pronunciation1.type) {\n case 'pitch-accent': {\n const pitchAccent2 = pronunciation2 as Dictionary.PitchAccent;\n return (\n pronunciation1.positions === pitchAccent2.positions &&\n areSimpleArraysEqual(pronunciation1.nasalPositions, pitchAccent2.nasalPositions) &&\n areSimpleArraysEqual(pronunciation1.devoicePositions, pitchAccent2.devoicePositions)\n );\n }\n case 'phonetic-transcription': {\n const phoneticTranscription2 = pronunciation2 as Dictionary.PhoneticTranscription;\n return pronunciation1.ipa === phoneticTranscription2.ipa;\n }\n }\n return true;\n}\n\nfunction areSimpleArraysEqual<T>(array1: T[], array2: T[]): boolean {\n const ii = array1.length;\n if (ii !== array2.length) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction areTagListsEqual(tagList1: Dictionary.Tag[], tagList2: Dictionary.Tag[]): boolean {\n const ii = tagList1.length;\n if (tagList2.length !== ii) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n const tag1 = tagList1[i];\n const tag2 = tagList2[i];\n if (tag1.name !== tag2.name || !areSimpleArraysEqual(tag1.dictionaries, tag2.dictionaries)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areSetsEqual<T>(set1: Set<T>, set2: Set<T>): boolean {\n if (set1.size !== set2.size) {\n return false;\n }\n for (const value of set1) {\n if (!set2.has(value)) {\n return false;\n }\n }\n return true;\n}\n\nfunction getSetIntersection<T>(set1: Set<T>, set2: Set<T>): T[] {\n const result: T[] = [];\n for (const value of set1) {\n if (set2.has(value)) {\n result.push(value);\n }\n }\n return result;\n}\n\nfunction createMapKey(array: unknown[]): string {\n return JSON.stringify(array);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dictionary-data-util-gUUD9ElK.js","names":["dictionaryEntry: Dictionary.TermDictionaryEntry","headwordIndex: number","results: TagGroup[]","dictionaryInfo: DictionaryImporter.Summary[]","results: DictionaryFrequency<DDUTermFrequency>[]","frequencies: DDUTermFrequency[]","averageFrequencies: DDUTermFrequency[]","sourceFrequencies: Dictionary.KanjiFrequency[]","results: DictionaryFrequency<DDUKanjiFrequency>[]","frequencies: DDUKanjiFrequency[]","results: DictionaryGroupedPronunciations[]","pronunciations2: GroupedPronunciation[]","exclusiveReadings: string[]","pronunciations: Dictionary.Pronunciation[]","type: T","results: Dictionary.PronunciationGeneric<T>[]","termTags: { score: number }[]","headwords: Dictionary.TermHeadword[]","headwordIndices: number[]","allTermsSet: Set<string>","allReadingsSet: Set<string>","disambiguations: string[]","wordClasses: string[]","current: string","latest: string","reading: string","pronunciation: Dictionary.Pronunciation","groupedPronunciationList: GroupedPronunciationInternal[]","pronunciation2: Dictionary.Pronunciation","array1: T[]","array2: T[]","tagList1: Dictionary.Tag[]","tagList2: Dictionary.Tag[]","set1: Set<T>","set2: Set<T>","result: T[]","array: unknown[]"],"sources":["../src/util/dictionary-data-util.ts"],"sourcesContent":["import type * as Dictionary from '../types/dictionary';\nimport type {\n KanjiFrequency as DDUKanjiFrequency,\n TermFrequency as DDUTermFrequency,\n DictionaryFrequency,\n DictionaryGroupedPronunciations,\n FrequencyValue,\n GroupedPronunciation,\n GroupedPronunciationInternal,\n TagGroup,\n TermFrequencyType,\n} from '../types/dictionary-data-util';\nimport type * as DictionaryImporter from '../types/dictionary-importer';\n\n/**\n * Computes the harmonic mean of frequency values for a given headword in a dictionary entry.\n */\nexport function getFrequencyHarmonic(dictionaryEntry: Dictionary.TermDictionaryEntry, headwordIndex: number): number {\n const dominated = dictionaryEntry.frequencies\n .filter((f) => f.headwordIndex === headwordIndex)\n .map((f) => f.frequency);\n if (dominated.length === 0) {\n return 0;\n }\n let sum = 0;\n for (const freq of dominated) {\n if (freq <= 0) {\n continue;\n }\n sum += 1 / freq;\n }\n return sum > 0 ? Math.round(dominated.length / sum) : 0;\n}\n\nexport function groupTermTags(dictionaryEntry: Dictionary.TermDictionaryEntry): TagGroup[] {\n const { headwords } = dictionaryEntry;\n const headwordCount = headwords.length;\n const uniqueCheck = headwordCount > 1;\n const resultsIndexMap = new Map<string, number>();\n const results: TagGroup[] = [];\n for (let i = 0; i < headwordCount; ++i) {\n const { tags } = headwords[i];\n for (const tag of tags) {\n if (uniqueCheck) {\n const { name, category, content, dictionaries } = tag;\n const key = createMapKey([name, category, content, dictionaries]);\n const index = resultsIndexMap.get(key);\n if (typeof index !== 'undefined') {\n results[index].headwordIndices.push(i);\n continue;\n }\n resultsIndexMap.set(key, results.length);\n }\n results.push({ tag, headwordIndices: [i] });\n }\n }\n return results;\n}\n\nexport function groupTermFrequencies(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUTermFrequency>[] {\n const { headwords, frequencies: sourceFrequencies } = dictionaryEntry;\n\n const map1 = new Map<\n string,\n Map<string, { term: string; reading: string | null; values: Map<string, FrequencyValue> }>\n >();\n const aliasMap = new Map<string, string>();\n for (const {\n headwordIndex,\n dictionary,\n dictionaryAlias,\n hasReading,\n frequency,\n displayValue,\n } of sourceFrequencies) {\n const { term, reading } = headwords[headwordIndex];\n\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n\n const readingKey = hasReading ? reading : null;\n const key = createMapKey([term, readingKey]);\n let frequencyData = map2.get(key);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { term, reading: readingKey, values: new Map() };\n map2.set(key, frequencyData);\n }\n\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUTermFrequency>[] = [];\n\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUTermFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { term, reading, values } of map2.values()) {\n frequencies.push({ term, reading, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.termMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n\n const averageFrequencies: DDUTermFrequency[] = [];\n for (let i = 0; i < dictionaryEntry.headwords.length; i++) {\n const averageFrequency = getFrequencyHarmonic(dictionaryEntry, i);\n averageFrequencies.push({\n term: dictionaryEntry.headwords[i].term,\n reading: dictionaryEntry.headwords[i].reading,\n values: [{ frequency: averageFrequency, displayValue: averageFrequency.toString() }],\n });\n }\n\n results.push({\n dictionary: 'Average',\n frequencies: averageFrequencies,\n dictionaryAlias: 'Average',\n freqCount: averageFrequencies.length,\n });\n\n return results;\n}\n\nexport function groupKanjiFrequencies(\n sourceFrequencies: Dictionary.KanjiFrequency[],\n dictionaryInfo: DictionaryImporter.Summary[],\n): DictionaryFrequency<DDUKanjiFrequency>[] {\n const map1 = new Map<string, Map<string, { character: string; values: Map<string, FrequencyValue> }>>();\n const aliasMap = new Map<string, string>();\n for (const { dictionary, dictionaryAlias, character, frequency, displayValue } of sourceFrequencies) {\n let map2 = map1.get(dictionary);\n if (typeof map2 === 'undefined') {\n map2 = new Map();\n map1.set(dictionary, map2);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n let frequencyData = map2.get(character);\n if (typeof frequencyData === 'undefined') {\n frequencyData = { character, values: new Map() };\n map2.set(character, frequencyData);\n }\n frequencyData.values.set(createMapKey([frequency, displayValue]), { frequency, displayValue });\n }\n\n const results: DictionaryFrequency<DDUKanjiFrequency>[] = [];\n for (const [dictionary, map2] of map1.entries()) {\n const frequencies: DDUKanjiFrequency[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const { character, values } of map2.values()) {\n frequencies.push({ character, values: [...values.values()] });\n }\n const currentDictionaryInfo = dictionaryInfo.find(({ title }) => title === dictionary);\n const freqCount = currentDictionaryInfo?.counts?.kanjiMeta.freq ?? 0;\n results.push({ dictionary, frequencies, dictionaryAlias, freqCount });\n }\n return results;\n}\n\nexport function getGroupedPronunciations(\n dictionaryEntry: Dictionary.TermDictionaryEntry,\n): DictionaryGroupedPronunciations[] {\n const { headwords, pronunciations: termPronunciations } = dictionaryEntry;\n\n const allTerms = new Set<string>();\n const allReadings = new Set<string>();\n const aliasMap = new Map<string, string>();\n for (const { term, reading } of headwords) {\n allTerms.add(term);\n allReadings.add(reading);\n }\n\n const groupedPronunciationsMap = new Map<string, GroupedPronunciationInternal[]>();\n for (const { headwordIndex, dictionary, dictionaryAlias, pronunciations } of termPronunciations) {\n const { term, reading } = headwords[headwordIndex];\n let dictionaryGroupedPronunciationList = groupedPronunciationsMap.get(dictionary);\n if (typeof dictionaryGroupedPronunciationList === 'undefined') {\n dictionaryGroupedPronunciationList = [];\n groupedPronunciationsMap.set(dictionary, dictionaryGroupedPronunciationList);\n aliasMap.set(dictionary, dictionaryAlias);\n }\n for (const pronunciation of pronunciations) {\n let groupedPronunciation = findExistingGroupedPronunciation(\n reading,\n pronunciation,\n dictionaryGroupedPronunciationList,\n );\n if (groupedPronunciation === null) {\n groupedPronunciation = { pronunciation, terms: new Set(), reading };\n dictionaryGroupedPronunciationList.push(groupedPronunciation);\n }\n groupedPronunciation.terms.add(term);\n }\n }\n\n const results: DictionaryGroupedPronunciations[] = [];\n const multipleReadings = allReadings.size > 1;\n for (const [dictionary, dictionaryGroupedPronunciationList] of groupedPronunciationsMap.entries()) {\n const pronunciations2: GroupedPronunciation[] = [];\n const dictionaryAlias = aliasMap.get(dictionary) ?? dictionary;\n for (const groupedPronunciation of dictionaryGroupedPronunciationList) {\n const { pronunciation, terms, reading } = groupedPronunciation;\n const exclusiveTerms = !areSetsEqual(terms, allTerms) ? getSetIntersection(terms, allTerms) : [];\n const exclusiveReadings: string[] = [];\n if (multipleReadings) {\n exclusiveReadings.push(reading);\n }\n pronunciations2.push({ pronunciation, terms: [...terms], reading, exclusiveTerms, exclusiveReadings });\n }\n results.push({ dictionary, dictionaryAlias, pronunciations: pronunciations2 });\n }\n return results;\n}\n\nexport function getPronunciationsOfType<T extends Dictionary.PronunciationType>(\n pronunciations: Dictionary.Pronunciation[],\n type: T,\n): Dictionary.PronunciationGeneric<T>[] {\n const results: Dictionary.PronunciationGeneric<T>[] = [];\n for (const pronunciation of pronunciations) {\n if (pronunciation.type === type) {\n results.push(pronunciation as Dictionary.PronunciationGeneric<T>);\n }\n }\n return results;\n}\n\nexport function getTermFrequency(termTags: { score: number }[]): TermFrequencyType {\n let totalScore = 0;\n for (const { score } of termTags) {\n totalScore += score;\n }\n if (totalScore > 0) {\n return 'popular';\n }\n if (totalScore < 0) {\n return 'rare';\n }\n return 'normal';\n}\n\nexport function getDisambiguations(\n headwords: Dictionary.TermHeadword[],\n headwordIndices: number[],\n allTermsSet: Set<string>,\n allReadingsSet: Set<string>,\n): string[] {\n if (allTermsSet.size <= 1 && allReadingsSet.size <= 1) {\n return [];\n }\n const terms = new Set<string>();\n const readings = new Set<string>();\n for (const headwordIndex of headwordIndices) {\n const { term, reading } = headwords[headwordIndex];\n terms.add(term);\n readings.add(reading);\n }\n const disambiguations: string[] = [];\n const addTerms = !areSetsEqual(terms, allTermsSet);\n const addReadings = !areSetsEqual(readings, allReadingsSet);\n if (addTerms) {\n disambiguations.push(...getSetIntersection(terms, allTermsSet));\n }\n if (addReadings) {\n if (addTerms) {\n for (const term of terms) {\n readings.delete(term);\n }\n }\n disambiguations.push(...getSetIntersection(readings, allReadingsSet));\n }\n return disambiguations;\n}\n\nexport function isNonNounVerbOrAdjective(wordClasses: string[]): boolean {\n let isVerbOrAdjective = false;\n let isSuruVerb = false;\n let isNoun = false;\n for (const wordClass of wordClasses) {\n switch (wordClass) {\n case 'v1':\n case 'v5':\n case 'vk':\n case 'vz':\n case 'adj-i':\n isVerbOrAdjective = true;\n break;\n case 'vs':\n isVerbOrAdjective = true;\n isSuruVerb = true;\n break;\n case 'n':\n isNoun = true;\n break;\n }\n }\n return isVerbOrAdjective && !(isSuruVerb && isNoun);\n}\n\nexport function compareRevisions(current: string, latest: string): boolean {\n const simpleVersionTest = /^(\\d+\\.)*\\d+$/;\n if (!simpleVersionTest.test(current) || !simpleVersionTest.test(latest)) {\n return current < latest;\n }\n const currentParts = current.split('.').map((part) => Number.parseInt(part, 10));\n const latestParts = latest.split('.').map((part) => Number.parseInt(part, 10));\n if (currentParts.length !== latestParts.length) {\n return current < latest;\n }\n for (let i = 0; i < currentParts.length; i++) {\n if (currentParts[i] !== latestParts[i]) {\n return currentParts[i] < latestParts[i];\n }\n }\n return false;\n}\n\n// Private helpers\n\nfunction findExistingGroupedPronunciation(\n reading: string,\n pronunciation: Dictionary.Pronunciation,\n groupedPronunciationList: GroupedPronunciationInternal[],\n): GroupedPronunciationInternal | null {\n return (\n groupedPronunciationList.find(\n (gp) => gp.reading === reading && arePronunciationsEquivalent(gp, pronunciation),\n ) ?? null\n );\n}\n\nfunction arePronunciationsEquivalent(\n { pronunciation: pronunciation1 }: GroupedPronunciationInternal,\n pronunciation2: Dictionary.Pronunciation,\n): boolean {\n if (pronunciation1.type !== pronunciation2.type || !areTagListsEqual(pronunciation1.tags, pronunciation2.tags)) {\n return false;\n }\n switch (pronunciation1.type) {\n case 'pitch-accent': {\n const pitchAccent2 = pronunciation2 as Dictionary.PitchAccent;\n return (\n pronunciation1.positions === pitchAccent2.positions &&\n areSimpleArraysEqual(pronunciation1.nasalPositions, pitchAccent2.nasalPositions) &&\n areSimpleArraysEqual(pronunciation1.devoicePositions, pitchAccent2.devoicePositions)\n );\n }\n case 'phonetic-transcription': {\n const phoneticTranscription2 = pronunciation2 as Dictionary.PhoneticTranscription;\n return pronunciation1.ipa === phoneticTranscription2.ipa;\n }\n }\n return true;\n}\n\nfunction areSimpleArraysEqual<T>(array1: T[], array2: T[]): boolean {\n const ii = array1.length;\n if (ii !== array2.length) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction areTagListsEqual(tagList1: Dictionary.Tag[], tagList2: Dictionary.Tag[]): boolean {\n const ii = tagList1.length;\n if (tagList2.length !== ii) {\n return false;\n }\n for (let i = 0; i < ii; ++i) {\n const tag1 = tagList1[i];\n const tag2 = tagList2[i];\n if (tag1.name !== tag2.name || !areSimpleArraysEqual(tag1.dictionaries, tag2.dictionaries)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areSetsEqual<T>(set1: Set<T>, set2: Set<T>): boolean {\n if (set1.size !== set2.size) {\n return false;\n }\n for (const value of set1) {\n if (!set2.has(value)) {\n return false;\n }\n }\n return true;\n}\n\nfunction getSetIntersection<T>(set1: Set<T>, set2: Set<T>): T[] {\n const result: T[] = [];\n for (const value of set1) {\n if (set2.has(value)) {\n result.push(value);\n }\n }\n return result;\n}\n\nfunction createMapKey(array: unknown[]): string {\n return JSON.stringify(array);\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeleteDictionaryProgressCallback, DictionaryAndQueryRequest, DictionaryCounts, DictionarySet, KanjiEntry, KanjiMeta, MatchType, Media, MediaRequest, ObjectStoreName, Summary, Tag$1 as Tag, TermEntry, TermExactRequest, TermMeta } from "./dictionary-importer-
|
|
1
|
+
import { DeleteDictionaryProgressCallback, DictionaryAndQueryRequest, DictionaryCounts, DictionarySet, KanjiEntry, KanjiMeta, MatchType, Media, MediaRequest, ObjectStoreName, Summary, Tag$1 as Tag, TermEntry, TermExactRequest, TermMeta } from "./dictionary-importer-CDbCAbwG.js";
|
|
2
2
|
import Dexie from "dexie";
|
|
3
3
|
|
|
4
4
|
//#region src/database/schema.d.ts
|
|
@@ -55,4 +55,4 @@ declare class DictionaryDB {
|
|
|
55
55
|
//# sourceMappingURL=dictionary-database.d.ts.map
|
|
56
56
|
|
|
57
57
|
export { DictionaryDB as DictionaryDB$1, OBJECT_STORE_NAMES as OBJECT_STORE_NAMES$1, YomitanDatabase as YomitanDatabase$1 };
|
|
58
|
-
//# sourceMappingURL=dictionary-database-
|
|
58
|
+
//# sourceMappingURL=dictionary-database-D0lvK2n3.d.ts.map
|
package/dist/{dictionary-database-BRAqOF_M.d.ts.map → dictionary-database-D0lvK2n3.d.ts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-database-
|
|
1
|
+
{"version":3,"file":"dictionary-database-D0lvK2n3.d.ts","names":[],"sources":["../src/database/schema.ts","../src/database/dictionary-database.ts"],"sourcesContent":null,"mappings":";;;;cAGa,eAAA,SAAwB,KAAA;SACzB,KAAA,CAAM;EADL,QAAA,EAEE,KAAA,CAAM,KAFQ;EAAA,KAAA,EAGjB,KAAA,CAAM,KAHW;EAAA,SACX,EAGF,KAAA,CAAM,KAHJ;EAAK,OACR,EAGD,KAAA,CAAM,KAHC;EAAK,YACR,EAGC,KAAA,CAAM,KAHP;EAAK,KACP,EAGJ,KAAA,CAAM,KAHI;EAAK,WACP,CAAA,IAAA,CAAA,EAAA,MAAA;;AAER,cAmDC,kBAnDK,EAmDe,eAnDf,EAAA;;;;;cCJL,YAAA;EDHA,QAAA,GAAA;EAAgB,QAAA,OAAA;EAAA,WACX,CAAA,MAAA,CAAA,EAAA,MAAA;EAAK,IACR,CAAA,CAAA,ECUG,ODVG,CAAA,IAAA,CAAA;EAAK,KACd,CAAA,CAAA,EAAM,IAAA;EAAK,IACP,MAAM,CAAA,CAAA,EAAA,OAAA;EAAK,IACb,KAAM,CAAA,CAAA,ECqBH,eDrBG;EAAK,KACN,CAAA,CAAA,ECwBA,ODxBM,CAAA,OAAA,CAAA;EAAK,gBACZ,CAAA,cAAA,EAAA,MAAA,EAAA,UAAA,CAAA,ECuBQ,gCDvBR,CAAA,ECyCX,ODzCW,CAAA,IAAA,CAAA;EAAK,aAPc,CAAA,QAAA,EAAA,MAAA,EAAA,EAAA,YAAA,ECgDvB,aDhDuB,EAAA,SAAA,ECyFiB,SDzFjB,CAAA,EC2F9B,OD3F8B,CC0FU,SD1FV,EAAA,CAAA;EAAK,kBAAA,CAAA,QAAA,EC2F5B,gBD3F4B,EAAA,EAAA,YAAA,ECoJW,aDpJX,CAAA,ECsJnC,ODtJmC,CCqJY,SDrJZ,EAAA,CAAA;EA0D7B,uBAQZ,CAAA,KAAA,ECoFa,yBD5FkC,EAAA,CAAA,ECoHzC,ODpHyC,CCmHW,SDnHX,EAAA,CAAA;qDCoHlC,gBAyBP,QAD+C;mDACxC,gBAyBP,QAD+C;uDACxC,gBAyBP,QAD+C;EArPzC,eAAY,CAAA,KAAA,EAsPX,yBAtPW,EAAA,CAAA,EAoRlB,OApRkB,CAAA,CAmRkC,GAnRlC,GAAA,SAAA,CAAA,EAAA,CAAA;EAAA,eAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAoSoC,OApSpC,CAoRX,GApRW,GAAA,SAAA,CAAA;EAAA,QASP,CAAA,KAAA,EA2RkD,YA3RlD,EAAA,CAAA,EAmS4C,OAnS5C,CAmSuC,KAnSvC,EAAA,CAAA;EAAO,iBAcR,CAAA,CAAA,EAmTc,OAnTd,CAqRoD,OArRpD,EAAA,CAAA;EAAe,mBAIb,CAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAsTZ,OAtTY,CA+SmB,gBA/SnB,CAAA;EAAO,gBAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EA0ViB,OA1VjB,CAAA,OAAA,CAAA;EAiB8C,OACjE,CAAA,eAAA,EAwU2C,eAxU3C,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAkVA,OAlVA,CAAA,IAAA,CAAA;EAAO,aAAA,CAAA,eAAA,EAkVA,eAlVA,EAAA,IAAA,EAAA,OAAA,CAAA,EA+V+E,OA/V/E,CAAA,MAAA,CAAA;EAyCwC,UAAA,CAAA,eAAA,EAsT8C,eAtT9C,EAAA,KAAA,EAAA;IACP,UAAA,EAAA,MAAA;IACxC,IAAA,EAAA,OAAA;EAAO,CAAA,EAAA,EAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EA8TP,OA9TO,CAAA,IAAA,CAAA;EAyDuC,QAAA,WAAA;EACC,QAAA,eAAA;EACX,QAApC,YAAA;EAAO,QAAA,WAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { stringReverse } from "./utilities-bi3EF-q5.js";
|
|
2
|
-
import { YomitanError, toError } from "./errors-
|
|
3
|
-
import { compareRevisions } from "./dictionary-data-util-
|
|
4
|
-
import { parseJson } from "./json-
|
|
5
|
-
import { NoOpMediaLoader } from "./media-loader-
|
|
2
|
+
import { YomitanError, toError } from "./errors-DvKlMRXC.js";
|
|
3
|
+
import { compareRevisions } from "./dictionary-data-util-gUUD9ElK.js";
|
|
4
|
+
import { parseJson } from "./json-rIgOFqVY.js";
|
|
5
|
+
import { NoOpMediaLoader } from "./media-loader-C1WZVVaA.js";
|
|
6
6
|
import { BlobWriter, TextWriter, Uint8ArrayReader, ZipReader } from "@zip.js/zip.js";
|
|
7
7
|
import Ajv from "ajv";
|
|
8
8
|
|
|
@@ -1818,4 +1818,4 @@ var DictionaryImporterClass = class {
|
|
|
1818
1818
|
|
|
1819
1819
|
//#endregion
|
|
1820
1820
|
export { DictionaryImporterClass, getSchemaValidators };
|
|
1821
|
-
//# sourceMappingURL=dictionary-importer-
|
|
1821
|
+
//# sourceMappingURL=dictionary-importer-BPlLeF5R.js.map
|