@ycookiey/yfuzzy 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +144 -0
  3. package/THIRD_PARTY_NOTICES.md +38 -0
  4. package/dist/ablate.d.ts +8 -0
  5. package/dist/ablate.d.ts.map +1 -0
  6. package/dist/ablate.js +11 -0
  7. package/dist/ablate.js.map +1 -0
  8. package/dist/bigram.d.ts +6 -0
  9. package/dist/bigram.d.ts.map +1 -0
  10. package/dist/bigram.js +17 -0
  11. package/dist/bigram.js.map +1 -0
  12. package/dist/charmask.d.ts +5 -0
  13. package/dist/charmask.d.ts.map +1 -0
  14. package/dist/charmask.js +23 -0
  15. package/dist/charmask.js.map +1 -0
  16. package/dist/entry.d.ts +29 -0
  17. package/dist/entry.d.ts.map +1 -0
  18. package/dist/entry.js +32 -0
  19. package/dist/entry.js.map +1 -0
  20. package/dist/expand.d.ts +12 -0
  21. package/dist/expand.d.ts.map +1 -0
  22. package/dist/expand.js +52 -0
  23. package/dist/expand.js.map +1 -0
  24. package/dist/index.d.ts +11 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +56 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/matches.d.ts +8 -0
  29. package/dist/matches.d.ts.map +1 -0
  30. package/dist/matches.js +68 -0
  31. package/dist/matches.js.map +1 -0
  32. package/dist/normalize.d.ts +24 -0
  33. package/dist/normalize.d.ts.map +1 -0
  34. package/dist/normalize.js +114 -0
  35. package/dist/normalize.js.map +1 -0
  36. package/dist/pipeline.d.ts +31 -0
  37. package/dist/pipeline.d.ts.map +1 -0
  38. package/dist/pipeline.js +75 -0
  39. package/dist/pipeline.js.map +1 -0
  40. package/dist/query.d.ts +21 -0
  41. package/dist/query.d.ts.map +1 -0
  42. package/dist/query.js +33 -0
  43. package/dist/query.js.map +1 -0
  44. package/dist/romaji/convert.d.ts +23 -0
  45. package/dist/romaji/convert.d.ts.map +1 -0
  46. package/dist/romaji/convert.js +34 -0
  47. package/dist/romaji/convert.js.map +1 -0
  48. package/dist/romaji/table-hepburn.d.ts +5 -0
  49. package/dist/romaji/table-hepburn.d.ts.map +1 -0
  50. package/dist/romaji/table-hepburn.js +46 -0
  51. package/dist/romaji/table-hepburn.js.map +1 -0
  52. package/dist/romaji/table-kunrei.d.ts +5 -0
  53. package/dist/romaji/table-kunrei.d.ts.map +1 -0
  54. package/dist/romaji/table-kunrei.js +46 -0
  55. package/dist/romaji/table-kunrei.js.map +1 -0
  56. package/dist/syllable.d.ts +37 -0
  57. package/dist/syllable.d.ts.map +1 -0
  58. package/dist/syllable.js +91 -0
  59. package/dist/syllable.js.map +1 -0
  60. package/dist/tiers/tier1-exact.d.ts +3 -0
  61. package/dist/tiers/tier1-exact.d.ts.map +1 -0
  62. package/dist/tiers/tier1-exact.js +59 -0
  63. package/dist/tiers/tier1-exact.js.map +1 -0
  64. package/dist/tiers/tier2-flexible.d.ts +3 -0
  65. package/dist/tiers/tier2-flexible.d.ts.map +1 -0
  66. package/dist/tiers/tier2-flexible.js +169 -0
  67. package/dist/tiers/tier2-flexible.js.map +1 -0
  68. package/dist/tiers/tier3-typo.d.ts +3 -0
  69. package/dist/tiers/tier3-typo.d.ts.map +1 -0
  70. package/dist/tiers/tier3-typo.js +95 -0
  71. package/dist/tiers/tier3-typo.js.map +1 -0
  72. package/dist/tiers/tier4-structural.d.ts +3 -0
  73. package/dist/tiers/tier4-structural.d.ts.map +1 -0
  74. package/dist/tiers/tier4-structural.js +29 -0
  75. package/dist/tiers/tier4-structural.js.map +1 -0
  76. package/dist/tiers/types.d.ts +17 -0
  77. package/dist/tiers/types.d.ts.map +1 -0
  78. package/dist/tiers/types.js +4 -0
  79. package/dist/tiers/types.js.map +1 -0
  80. package/dist/to-kana.d.ts +2 -0
  81. package/dist/to-kana.d.ts.map +1 -0
  82. package/dist/to-kana.js +8 -0
  83. package/dist/to-kana.js.map +1 -0
  84. package/dist/types.d.ts +42 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +3 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/vendor/wanakana/romaji-to-kana.d.ts +6 -0
  89. package/dist/vendor/wanakana/romaji-to-kana.d.ts.map +1 -0
  90. package/dist/vendor/wanakana/romaji-to-kana.js +182 -0
  91. package/dist/vendor/wanakana/romaji-to-kana.js.map +1 -0
  92. package/package.json +54 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ローマ字→ひらがな変換(非IME・記号リテラル)。
3
+ * 変換できない文字(子音のみ等)はそのまま残す。出力はひらがな。
4
+ */
5
+ export declare function romajiToKana(input: string): string;
6
+ //# sourceMappingURL=romaji-to-kana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"romaji-to-kana.d.ts","sourceRoot":"","sources":["../../../src/vendor/wanakana/romaji-to-kana.ts"],"names":[],"mappings":"AAqNA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD"}
@@ -0,0 +1,182 @@
1
+ // =============================================================================
2
+ // Vendored from WanaKana v5.3.1 (https://github.com/WaniKani/WanaKana)
3
+ // Copyright (c) 2013 WaniKani Community Github — MIT License
4
+ // Full license text: ../../../THIRD_PARTY_NOTICES.md
5
+ //
6
+ // Ported to TypeScript and modified for yfuzzy. Modifications:
7
+ // 1. 記号変換を除外(wanakana の SPECIAL_SYMBOLS: `-`→ー, `/`→・ 等を不採用)。
8
+ // yfuzzy は separator をリテラル扱いするため(spec 2.2 / 3章)。
9
+ // 2. 非IMEモード固定(applyMapping の convertEnding=true)。末尾の単独 `n` は
10
+ // ん に確定する(pokemon → ぽけもん)。IME_MODE_MAP は移植しない。
11
+ // 3. 出力は常にひらがな。大文字→カタカナ変換は移植せず、カタカナ化は
12
+ // 呼び出し側(normalize step5)に委ねる。
13
+ // 4. memoize-one / dequal / customMapping / useObsoleteKana は不要のため除外。
14
+ //
15
+ // 元実装: src/toKana.js, src/utils/kanaMapping.js, src/utils/romajiToKanaMap.js
16
+ // =============================================================================
17
+ // prettier-ignore
18
+ const BASIC_KUNREI = {
19
+ a: 'あ', i: 'い', u: 'う', e: 'え', o: 'お',
20
+ k: { a: 'か', i: 'き', u: 'く', e: 'け', o: 'こ' },
21
+ s: { a: 'さ', i: 'し', u: 'す', e: 'せ', o: 'そ' },
22
+ t: { a: 'た', i: 'ち', u: 'つ', e: 'て', o: 'と' },
23
+ n: { a: 'な', i: 'に', u: 'ぬ', e: 'ね', o: 'の' },
24
+ h: { a: 'は', i: 'ひ', u: 'ふ', e: 'へ', o: 'ほ' },
25
+ m: { a: 'ま', i: 'み', u: 'む', e: 'め', o: 'も' },
26
+ y: { a: 'や', u: 'ゆ', o: 'よ' },
27
+ r: { a: 'ら', i: 'り', u: 'る', e: 'れ', o: 'ろ' },
28
+ w: { a: 'わ', i: 'ゐ', e: 'ゑ', o: 'を' },
29
+ g: { a: 'が', i: 'ぎ', u: 'ぐ', e: 'げ', o: 'ご' },
30
+ z: { a: 'ざ', i: 'じ', u: 'ず', e: 'ぜ', o: 'ぞ' },
31
+ d: { a: 'だ', i: 'ぢ', u: 'づ', e: 'で', o: 'ど' },
32
+ b: { a: 'ば', i: 'び', u: 'ぶ', e: 'べ', o: 'ぼ' },
33
+ p: { a: 'ぱ', i: 'ぴ', u: 'ぷ', e: 'ぺ', o: 'ぽ' },
34
+ v: { a: 'ゔぁ', i: 'ゔぃ', u: 'ゔ', e: 'ゔぇ', o: 'ゔぉ' },
35
+ };
36
+ const CONSONANTS = {
37
+ k: 'き', s: 'し', t: 'ち', n: 'に', h: 'ひ', m: 'み', r: 'り',
38
+ g: 'ぎ', z: 'じ', d: 'ぢ', b: 'び', p: 'ぴ', v: 'ゔ', q: 'く', f: 'ふ',
39
+ };
40
+ const SMALL_Y = { ya: 'ゃ', yi: 'ぃ', yu: 'ゅ', ye: 'ぇ', yo: 'ょ' };
41
+ const SMALL_VOWELS = { a: 'ぁ', i: 'ぃ', u: 'ぅ', e: 'ぇ', o: 'ぉ' };
42
+ const ALIASES = {
43
+ sh: 'sy', ch: 'ty', cy: 'ty', chy: 'ty', shy: 'sy', j: 'zy', jy: 'zy',
44
+ shi: 'si', chi: 'ti', tsu: 'tu', ji: 'zi', fu: 'hu',
45
+ };
46
+ const SMALL_LETTERS = {
47
+ tu: 'っ', wa: 'ゎ', ka: 'ヵ', ke: 'ヶ',
48
+ ...SMALL_VOWELS,
49
+ ...SMALL_Y,
50
+ };
51
+ const SPECIAL_CASES = {
52
+ yi: 'い', wu: 'う', ye: 'いぇ', wi: 'うぃ', we: 'うぇ', kwa: 'くぁ', whu: 'う',
53
+ tha: 'てゃ', thu: 'てゅ', tho: 'てょ', dha: 'でゃ', dhu: 'でゅ', dho: 'でょ',
54
+ };
55
+ const AIUEO_CONSTRUCTIONS = {
56
+ wh: 'う', kw: 'く', qw: 'く', q: 'く', gw: 'ぐ', sw: 'す', ts: 'つ',
57
+ th: 'て', tw: 'と', dh: 'で', dw: 'ど', fw: 'ふ', f: 'ふ',
58
+ };
59
+ function transform(tree) {
60
+ return Object.entries(tree).reduce((map, [char, subtree]) => {
61
+ map[char] = typeof subtree === 'string' ? { '': subtree } : transform(subtree);
62
+ return map;
63
+ }, {});
64
+ }
65
+ function getSubTreeOf(tree, str) {
66
+ return str.split('').reduce((node, char) => {
67
+ if (node[char] === undefined)
68
+ node[char] = {};
69
+ return node[char];
70
+ }, tree);
71
+ }
72
+ function createRomajiToKanaTree() {
73
+ const kanaTree = transform(BASIC_KUNREI);
74
+ const subtreeOf = (str) => getSubTreeOf(kanaTree, str);
75
+ // きゃ, しゃ 等
76
+ Object.entries(CONSONANTS).forEach(([consonant, yKana]) => {
77
+ Object.entries(SMALL_Y).forEach(([roma, kana]) => {
78
+ subtreeOf(consonant + roma)[''] = yKana + kana;
79
+ });
80
+ });
81
+ // 注: wanakana の SPECIAL_SYMBOLS(記号変換)はここで意図的に追加しない(改変点1)
82
+ // うぃ, くぃ 等
83
+ Object.entries(AIUEO_CONSTRUCTIONS).forEach(([consonant, aiueoKana]) => {
84
+ Object.entries(SMALL_VOWELS).forEach(([vowel, kana]) => {
85
+ subtreeOf(consonant + vowel)[''] = aiueoKana + kana;
86
+ });
87
+ });
88
+ // ん の各表記
89
+ ['n', "n'", 'xn'].forEach((nChar) => {
90
+ subtreeOf(nChar)[''] = 'ん';
91
+ });
92
+ // c は k と等価(ただし chi/cha 等は別なので copy)
93
+ kanaTree.c = JSON.parse(JSON.stringify(kanaTree.k));
94
+ Object.entries(ALIASES).forEach(([str, alternative]) => {
95
+ const allExceptLast = str.slice(0, str.length - 1);
96
+ const last = str.charAt(str.length - 1);
97
+ const parentTree = subtreeOf(allExceptLast);
98
+ parentTree[last] = JSON.parse(JSON.stringify(subtreeOf(alternative)));
99
+ });
100
+ function getAlternatives(str) {
101
+ return [...Object.entries(ALIASES), ['c', 'k']].reduce((list, [alt, roma]) => (str.startsWith(roma) ? list.concat(str.replace(roma, alt)) : list), []);
102
+ }
103
+ Object.entries(SMALL_LETTERS).forEach(([kunreiRoma, kana]) => {
104
+ const last = (char) => char.charAt(char.length - 1);
105
+ const allExceptLast = (chars) => chars.slice(0, chars.length - 1);
106
+ const xRoma = `x${kunreiRoma}`;
107
+ const xSubtree = subtreeOf(xRoma);
108
+ xSubtree[''] = kana;
109
+ const parentTree = subtreeOf(`l${allExceptLast(kunreiRoma)}`);
110
+ parentTree[last(kunreiRoma)] = xSubtree;
111
+ getAlternatives(kunreiRoma).forEach((altRoma) => {
112
+ ['l', 'x'].forEach((prefix) => {
113
+ const altParentTree = subtreeOf(prefix + allExceptLast(altRoma));
114
+ altParentTree[last(altRoma)] = subtreeOf(prefix + kunreiRoma);
115
+ });
116
+ });
117
+ });
118
+ Object.entries(SPECIAL_CASES).forEach(([str, kana]) => {
119
+ subtreeOf(str)[''] = kana;
120
+ });
121
+ // kka, tta 等(促音)
122
+ function addTsu(tree) {
123
+ return Object.entries(tree).reduce((tsuTree, [key, value]) => {
124
+ tsuTree[key] = !key ? `っ${value}` : addTsu(value);
125
+ return tsuTree;
126
+ }, {});
127
+ }
128
+ [...Object.keys(CONSONANTS), 'c', 'y', 'w', 'j'].forEach((consonant) => {
129
+ const subtree = kanaTree[consonant];
130
+ subtree[consonant] = addTsu(subtree);
131
+ });
132
+ // nn は っん にしない
133
+ delete kanaTree.n.n;
134
+ return Object.freeze(JSON.parse(JSON.stringify(kanaTree)));
135
+ }
136
+ let cachedTree = null;
137
+ function getTree() {
138
+ if (cachedTree == null)
139
+ cachedTree = createRomajiToKanaTree();
140
+ return cachedTree;
141
+ }
142
+ // 非IME固定のため convertEnding は常に true。
143
+ function applyMapping(str, mapping) {
144
+ const root = mapping;
145
+ function nextSubtree(tree, nextChar) {
146
+ const subtree = tree[nextChar];
147
+ if (subtree === undefined)
148
+ return undefined;
149
+ return Object.assign({ '': tree[''] + nextChar }, tree[nextChar]);
150
+ }
151
+ function newChunk(remaining, currentCursor) {
152
+ const firstChar = remaining.charAt(0);
153
+ return parse(Object.assign({ '': firstChar }, root[firstChar]), remaining.slice(1), currentCursor, currentCursor + 1);
154
+ }
155
+ function parse(tree, remaining, lastCursor, currentCursor) {
156
+ if (!remaining) {
157
+ // convertEnding=true 固定: 末尾も確定する
158
+ return tree[''] ? [[lastCursor, currentCursor, tree['']]] : [];
159
+ }
160
+ if (Object.keys(tree).length === 1) {
161
+ const head = [lastCursor, currentCursor, tree['']];
162
+ return [head, ...newChunk(remaining, currentCursor)];
163
+ }
164
+ const subtree = nextSubtree(tree, remaining.charAt(0));
165
+ if (subtree === undefined) {
166
+ const head = [lastCursor, currentCursor, tree['']];
167
+ return [head, ...newChunk(remaining, currentCursor)];
168
+ }
169
+ return parse(subtree, remaining.slice(1), lastCursor, currentCursor + 1);
170
+ }
171
+ return newChunk(str, 0);
172
+ }
173
+ /**
174
+ * ローマ字→ひらがな変換(非IME・記号リテラル)。
175
+ * 変換できない文字(子音のみ等)はそのまま残す。出力はひらがな。
176
+ */
177
+ export function romajiToKana(input) {
178
+ return applyMapping(input.toLowerCase(), getTree())
179
+ .map((token) => token[2] ?? '')
180
+ .join('');
181
+ }
182
+ //# sourceMappingURL=romaji-to-kana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"romaji-to-kana.js","sourceRoot":"","sources":["../../../src/vendor/wanakana/romaji-to-kana.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@ycookiey/yfuzzy",
3
+ "version": "0.1.0",
4
+ "description": "Japanese-aware fuzzy search library",
5
+ "license": "MIT",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "author": "ycookiey",
10
+ "keywords": [
11
+ "fuzzy",
12
+ "fuzzy-search",
13
+ "search",
14
+ "japanese",
15
+ "kana",
16
+ "romaji",
17
+ "katakana",
18
+ "hiragana",
19
+ "typeahead",
20
+ "autocomplete"
21
+ ],
22
+ "type": "module",
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js"
29
+ }
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "README.md",
34
+ "LICENSE",
35
+ "THIRD_PARTY_NOTICES.md"
36
+ ],
37
+ "scripts": {
38
+ "build": "tsc -p tsconfig.build.json",
39
+ "typecheck": "tsc -p tsconfig.json",
40
+ "test": "vitest run",
41
+ "test:watch": "vitest",
42
+ "bench": "npm run build && node bench/run.js",
43
+ "prepublishOnly": "npm run build"
44
+ },
45
+ "devDependencies": {
46
+ "fuse.js": "^7.4.2",
47
+ "fuzzysort": "^3.1.0",
48
+ "typescript": "^6.0.3",
49
+ "vitest": "^4.1.8"
50
+ },
51
+ "engines": {
52
+ "node": ">=18"
53
+ }
54
+ }