henkan 2.4.7 → 2.4.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAYhC,OAAO,EACL,eAAe,EAEf,SAAS,EACT,aAAa,EAIb,qBAAqB,EAErB,WAAW,EACX,WAAW,EAEX,QAAQ,EACR,SAAS,EAET,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,KAAK,EAEL,aAAa,EAEb,WAAW,EACX,aAAa,EAIb,OAAO,EAEP,sBAAsB,EACtB,MAAM,EACN,YAAY,EACZ,aAAa,EAGb,IAAI,EACJ,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAK3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAKxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAWtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,EACrC,YAAY,CAAC,EAAE,IAAI,GAClB,sBAAsB,CAyDxB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,GAClC,QAAQ,EAAE,CAmLZ;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CA0F9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAiFzE;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAe1B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,EAC/B,QAAQ,EAAE,SAAS,SAAS,EAAE,GAC7B,WAAW,EAAE,CAiDf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,EAC/B,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,YAAY,EAAE,SAAS,IAAI,EAAE,GAC5B,qBAAqB,EAAE,CAyDzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,EAC5B,QAAQ,CAAC,EAAE,SAAS,SAAS,EAAE,EAC/B,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,EACzC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,EACnD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAC1B,SAAS,CAoKX;AAmCD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAkB3E;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuB9B;AAuBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,SAAS,iBAAiB,EAAE,EAC/C,MAAM,EAAE,SAAS,QAAQ,EAAE,GAC1B,kBAAkB,EAAE,CAokBtB;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAC1B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwB/B;AAmCD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,aAAa,EAC3C,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,aAAa,EAC5C,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EACzC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,KAAK,GAAG,SAAS,CAkLnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,aAAa,EAC3C,QAAQ,CAAC,EAAE,IAAI,EACf,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,aAAa,EAC5C,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EACzC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,KAAK,GAAG,SAAS,CAgDnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,YAAY,EAAE,YAAY,GAAG,QAAQ,EACrC,IAAI,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,cAAc,EAC3C,QAAQ,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,aAAa,EAC/C,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,eAAe,EACrD,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAChE,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,GAAG,SAAS,CA0XlB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,CAIzD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,CAOrD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,IAAI,CAInD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,CAIzD;AAoBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkc7E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,eAAe,CAAC,EAAE,eAAe,EACjC,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAmIR"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **generateAnkiNote**(`entry`, `customData?`): `string`[]
10
10
 
11
- Defined in: [utils.ts:2494](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2494)
11
+ Defined in: [utils.ts:2559](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2559)
12
12
 
13
13
  Generates an array where each field holds an entry’s info wrapped in HTML tags.
14
14
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **generateAnkiNotesFile**(`list`, `defaultNoteInfo?`, `customData?`): `string`
10
10
 
11
- Defined in: [utils.ts:2953](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2953)
11
+ Defined in: [utils.ts:3018](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L3018)
12
12
 
13
13
  Generates an Anki notes file with each entry’s info organized into fields, either in HTML or plain text.
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "henkan",
3
- "version": "2.4.7",
3
+ "version": "2.4.9",
4
4
  "description": "Converter & Simplifier for JMdict, KANJIDIC, KRADFILE2, RADKFILE2 and Tanaka Corpus",
5
5
  "keywords": [
6
6
  "fjsd",
@@ -72,13 +72,13 @@
72
72
  },
73
73
  "devDependencies": {
74
74
  "@types/node": "^24.10.9",
75
- "@typescript-eslint/eslint-plugin": "^8.53.1",
76
- "@typescript-eslint/parser": "^8.53.1",
75
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
76
+ "@typescript-eslint/parser": "^8.54.0",
77
77
  "@vitest/coverage-v8": "^4.0.18",
78
78
  "esbuild": "^0.27.2",
79
79
  "eslint": "^9.39.2",
80
80
  "eslint-plugin-import": "^2.32.0",
81
- "eslint-plugin-jsdoc": "^62.4.0",
81
+ "eslint-plugin-jsdoc": "^62.5.0",
82
82
  "eslint-plugin-prettier": "^5.5.5",
83
83
  "prettier": "^3.8.1",
84
84
  "rimraf": "^6.1.2",
package/src/utils.ts CHANGED
@@ -2258,16 +2258,37 @@ export function getWord(
2258
2258
  ? new Set<string>(rkf.kanjiForms.map((kf: DictKanjiForm) => kf.form))
2259
2259
  : undefined;
2260
2260
 
2261
+ const meanings: string[] = new Set<string>(
2262
+ dictWord.meanings.flatMap((m: DictMeaning) =>
2263
+ m.translations.map((t: DictTranslation) => {
2264
+ if (typeof t === "string")
2265
+ return t.replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "").trim();
2266
+ else
2267
+ return t.translation
2268
+ .replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "")
2269
+ .trim();
2270
+ }),
2271
+ ),
2272
+ )
2273
+ .values()
2274
+ .toArray();
2275
+
2261
2276
  let kanjiFormExamples: {
2262
2277
  ex: TanakaExample;
2263
2278
  partIndex: number;
2264
2279
  form?: string | undefined;
2280
+ includesTranslation?: true | undefined;
2265
2281
  }[] = [];
2266
2282
  const readingMatchingKanjiFormExamples: {
2267
2283
  ex: TanakaExample;
2268
2284
  partIndex: number;
2269
2285
  }[] = [];
2270
- const readingExamples: { ex: TanakaExample; partIndex: number }[] = [];
2286
+ let readingExamples: {
2287
+ ex: TanakaExample;
2288
+ partIndex: number;
2289
+ referenceIDMatch?: true | undefined;
2290
+ includesTranslation?: true | undefined;
2291
+ }[] = [];
2271
2292
  const readingMatchingKanjiForms: Set<string> = new Set<string>();
2272
2293
  const seenPhrases: Set<string> = new Set<string>();
2273
2294
 
@@ -2302,6 +2323,11 @@ export function getWord(
2302
2323
  ex: example,
2303
2324
  partIndex: i,
2304
2325
  form: part.baseForm,
2326
+ ...(meanings.some((m: string) =>
2327
+ example.translation.includes(m),
2328
+ )
2329
+ ? { includesTranslation: true }
2330
+ : {}),
2305
2331
  });
2306
2332
 
2307
2333
  seenPhrases.add(example.phrase);
@@ -2315,7 +2341,15 @@ export function getWord(
2315
2341
  (readingAsBaseFormMatch || referenceIDMatch) &&
2316
2342
  kanjiForms === undefined
2317
2343
  ) {
2318
- readingExamples.push({ ex: example, partIndex: i });
2344
+ readingExamples.push({
2345
+ ex: example,
2346
+ partIndex: i,
2347
+ ...(referenceIDMatch ? { referenceIDMatch: true } : {}),
2348
+ ...(!referenceIDMatch &&
2349
+ meanings.some((m: string) => example.translation.includes(m))
2350
+ ? { includesTranslation: true }
2351
+ : {}),
2352
+ });
2319
2353
 
2320
2354
  seenPhrases.add(example.phrase);
2321
2355
 
@@ -2323,19 +2357,51 @@ export function getWord(
2323
2357
  }
2324
2358
  }
2325
2359
 
2326
- if (readingMatchingKanjiForms.size > 0)
2360
+ const hasKfExamplesWithTranslation: boolean = kanjiFormExamples.some(
2361
+ (ex: {
2362
+ ex: TanakaExample;
2363
+ partIndex: number;
2364
+ form?: string | undefined;
2365
+ includesTranslation?: true | undefined;
2366
+ }) => ex.includesTranslation === true,
2367
+ );
2368
+
2369
+ if (kanjiFormExamples.length > 0 && readingMatchingKanjiForms.size > 0)
2327
2370
  kanjiFormExamples = kanjiFormExamples.filter(
2328
2371
  (ex: {
2329
2372
  ex: TanakaExample;
2330
2373
  partIndex: number;
2331
2374
  form?: string | undefined;
2332
- }) => ex.form !== undefined && readingMatchingKanjiForms.has(ex.form),
2375
+ includesTranslation?: true | undefined;
2376
+ }) =>
2377
+ (!hasKfExamplesWithTranslation ||
2378
+ ex.includesTranslation === true) &&
2379
+ ex.form !== undefined &&
2380
+ readingMatchingKanjiForms.has(ex.form),
2333
2381
  );
2334
2382
 
2335
- const includeKanjiFormExamples: boolean = word.kanjiForms !== undefined;
2383
+ if (
2384
+ readingExamples.length > 0 &&
2385
+ readingExamples.some(
2386
+ (ex: {
2387
+ ex: TanakaExample;
2388
+ partIndex: number;
2389
+ referenceIDMatch?: true | undefined;
2390
+ includesTranslation?: true | undefined;
2391
+ }) => ex.includesTranslation === true || ex.referenceIDMatch === true,
2392
+ )
2393
+ )
2394
+ readingExamples = readingExamples.filter(
2395
+ (ex: {
2396
+ ex: TanakaExample;
2397
+ partIndex: number;
2398
+ referenceIDMatch?: true | undefined;
2399
+ includesTranslation?: true | undefined;
2400
+ }) => ex.includesTranslation === true || ex.referenceIDMatch === true,
2401
+ );
2336
2402
 
2337
2403
  let wordExamples: { ex: TanakaExample; partIndex: number }[] = [
2338
- ...(includeKanjiFormExamples
2404
+ ...(word.kanjiForms !== undefined
2339
2405
  ? [...readingMatchingKanjiFormExamples, ...kanjiFormExamples]
2340
2406
  : readingExamples),
2341
2407
  ].toSorted(
@@ -2345,7 +2411,6 @@ export function getWord(
2345
2411
  ) => a.ex.phrase.length - b.ex.phrase.length,
2346
2412
  );
2347
2413
 
2348
- readingMatchingKanjiForms.clear();
2349
2414
  seenPhrases.clear();
2350
2415
 
2351
2416
  const glossSpecificExamples: {