@ycookiey/yfuzzy 0.4.0 → 0.5.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 +14 -0
- package/dist/entry.d.ts +12 -0
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +18 -3
- package/dist/entry.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lattice.d.ts +9 -0
- package/dist/lattice.d.ts.map +1 -1
- package/dist/lattice.js +38 -2
- package/dist/lattice.js.map +1 -1
- package/dist/matches.d.ts +5 -0
- package/dist/matches.d.ts.map +1 -1
- package/dist/matches.js +3 -3
- package/dist/matches.js.map +1 -1
- package/dist/pipeline.d.ts +2 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +46 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/query.d.ts +6 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +13 -1
- package/dist/query.js.map +1 -1
- package/dist/romaji/convert.d.ts +2 -0
- package/dist/romaji/convert.d.ts.map +1 -1
- package/dist/romaji/convert.js +8 -0
- package/dist/romaji/convert.js.map +1 -1
- package/dist/terms.d.ts +20 -0
- package/dist/terms.d.ts.map +1 -0
- package/dist/terms.js +199 -0
- package/dist/terms.js.map +1 -0
- package/dist/tiers/tier1-exact.d.ts +31 -1
- package/dist/tiers/tier1-exact.d.ts.map +1 -1
- package/dist/tiers/tier1-exact.js +255 -153
- package/dist/tiers/tier1-exact.js.map +1 -1
- package/dist/tiers/tier2-flexible.d.ts.map +1 -1
- package/dist/tiers/tier2-flexible.js +3 -1
- package/dist/tiers/tier2-flexible.js.map +1 -1
- package/dist/tiers/tier3-typo.d.ts.map +1 -1
- package/dist/tiers/tier3-typo.js +17 -12
- package/dist/tiers/tier3-typo.js.map +1 -1
- package/dist/tiers/tier4-structural.js +1 -1
- package/dist/tiers/tier4-structural.js.map +1 -1
- package/dist/tiers/types.d.ts +4 -1
- package/dist/tiers/types.d.ts.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/yfuzzy.min.js +2 -2
- package/package.json +1 -1
package/dist/tiers/tier3-typo.js
CHANGED
|
@@ -18,8 +18,9 @@ function osaScratch(size) {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* OSA prefix 距離。q を t の任意の prefix に合わせる最小編集距離(末尾余り無料)。
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* dp[i][j] ≥ |i − j| なので、|i − j| ≤ maxDist の帯の外は必ず maxDist を超える。帯の中だけを解き
|
|
22
|
+
* (帯の外は超過扱い)、maxDist 以内の値は帯の中の経路だけで決まるため結果は全面を解くのと同じ。
|
|
23
|
+
* 行最小 > maxDist で早期打ち切り。dp はフラット Int32 スクラッチを再利用。
|
|
23
24
|
*/
|
|
24
25
|
function osaPrefixDistance(q, t, maxDist) {
|
|
25
26
|
const m = q.length;
|
|
@@ -28,23 +29,27 @@ function osaPrefixDistance(q, t, maxDist) {
|
|
|
28
29
|
return 0;
|
|
29
30
|
if (n + maxDist < m)
|
|
30
31
|
return maxDist + 1; // 長さ差だけで超過
|
|
32
|
+
const OVER = maxDist + 1;
|
|
31
33
|
const cols = n + 1;
|
|
32
34
|
const dp = osaScratch((m + 1) * cols);
|
|
33
|
-
for (let j = 0; j <= n; j++)
|
|
34
|
-
dp[j] = j; // 行0
|
|
35
|
+
for (let j = 0; j <= Math.min(n, maxDist); j++)
|
|
36
|
+
dp[j] = j; // 行0(帯の中)
|
|
35
37
|
for (let i = 1; i <= m; i++) {
|
|
36
38
|
const row = i * cols;
|
|
37
39
|
const prow = (i - 1) * cols;
|
|
38
40
|
const pprow = (i - 2) * cols;
|
|
39
|
-
|
|
41
|
+
const lo = Math.max(1, i - maxDist);
|
|
42
|
+
const hi = Math.min(n, i + maxDist);
|
|
40
43
|
const qi = q[i - 1];
|
|
41
44
|
const qim1 = i > 1 ? q[i - 2] : '';
|
|
42
|
-
let rowMin =
|
|
43
|
-
|
|
45
|
+
let rowMin = i <= maxDist ? i : OVER;
|
|
46
|
+
if (i <= maxDist)
|
|
47
|
+
dp[row] = i; // 列0
|
|
48
|
+
for (let j = lo; j <= hi; j++) {
|
|
44
49
|
const cost = qi === t[j - 1] ? 0 : 1;
|
|
45
|
-
|
|
46
|
-
dp[row + j - 1] + 1
|
|
47
|
-
dp[prow + j - 1] + cost);
|
|
50
|
+
const del = j <= i - 1 + maxDist ? dp[prow + j] + 1 : OVER; // 前の行の帯の外は超過
|
|
51
|
+
const ins = j - 1 >= i - maxDist ? dp[row + j - 1] + 1 : OVER;
|
|
52
|
+
let v = Math.min(del, ins, dp[prow + j - 1] + cost); // 削除・挿入・置換/一致
|
|
48
53
|
if (i > 1 && j > 1 && qi === t[j - 2] && qim1 === t[j - 1]) {
|
|
49
54
|
v = Math.min(v, dp[pprow + j - 2] + 1); // 転置
|
|
50
55
|
}
|
|
@@ -53,7 +58,7 @@ function osaPrefixDistance(q, t, maxDist) {
|
|
|
53
58
|
rowMin = v;
|
|
54
59
|
}
|
|
55
60
|
if (rowMin > maxDist)
|
|
56
|
-
return
|
|
61
|
+
return OVER; // 早期打ち切り
|
|
57
62
|
}
|
|
58
63
|
// prefix 距離 = q を t の任意 prefix に合わせた最小。窓外は maxDist 超過のため走査不要
|
|
59
64
|
const mrow = m * cols;
|
|
@@ -201,6 +206,6 @@ export const tier3Typo = (q, e) => {
|
|
|
201
206
|
if (best === null)
|
|
202
207
|
return null;
|
|
203
208
|
const c = best;
|
|
204
|
-
return { tier: 3, intraScore: c.intraScore, space: c.space, positions: null };
|
|
209
|
+
return { tier: 3, kind: 'typo', intraScore: c.intraScore, space: c.space, positions: null };
|
|
205
210
|
};
|
|
206
211
|
//# sourceMappingURL=tier3-typo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier3-typo.js","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,gEAAgE;AAChE,8CAA8C;AAC9C,iDAAiD;AAKjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAgB,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,gDAAgD;AAChD,4BAA4B;AAC5B,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"tier3-typo.js","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,6 @@ export const tier4Structural = (q, e) => {
|
|
|
26
26
|
const tversky = inter / denom;
|
|
27
27
|
if (tversky < THRESHOLD)
|
|
28
28
|
return null;
|
|
29
|
-
return { tier: 4, intraScore: tversky, space: 'kana', positions: null };
|
|
29
|
+
return { tier: 4, kind: 'similar', intraScore: tversky, space: 'kana', positions: null };
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=tier4-structural.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier4-structural.js","sourceRoot":"","sources":["../../src/tiers/tier4-structural.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,2CAA2C;AAC3C,sDAAsD;AACtD,iDAAiD;AAKjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,2BAA2B;AAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,2BAA2B;AAC7C,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAY,CAAC,CAAkB,EAAE,CAAa,EAAE,EAAE;IAC5E,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;IAC7D,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,KAAK,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACnD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tier4-structural.js","sourceRoot":"","sources":["../../src/tiers/tier4-structural.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,2CAA2C;AAC3C,sDAAsD;AACtD,iDAAiD;AAKjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,2BAA2B;AAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,2BAA2B;AAC7C,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAY,CAAC,CAAkB,EAAE,CAAa,EAAE,EAAE;IAC5E,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;IAC7D,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,KAAK,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACnD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3F,CAAC,CAAC"}
|
package/dist/tiers/types.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { NormalizedQuery } from '../query.js';
|
|
2
2
|
import type { IndexEntry } from '../entry.js';
|
|
3
|
+
import type { MatchKind } from '../types.js';
|
|
3
4
|
/** 照合空間。matches 逆変換(M8)がどの空間の位置かを判別する */
|
|
4
|
-
export type Space = 'kana' | 'kunrei' | 'hepburn';
|
|
5
|
+
export type Space = 'kana' | 'kunrei' | 'hepburn' | 'long';
|
|
5
6
|
/** 1 tier の照合結果。null = 非マッチ */
|
|
6
7
|
export interface TierMatch {
|
|
7
8
|
readonly tier: 1 | 2 | 3 | 4;
|
|
9
|
+
/** 一致の種類(spec 5章) */
|
|
10
|
+
readonly kind: MatchKind;
|
|
8
11
|
/** tier 内相対スコア(0–1、大きいほど良い) */
|
|
9
12
|
readonly intraScore: number;
|
|
10
13
|
/** 一致した空間 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tiers/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tiers/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,yCAAyC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,aAAa;IACb,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED,2CAA2C;AAC3C,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,UAAU,KAAK,SAAS,GAAG,IAAI,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -30,6 +30,11 @@ export interface SearchOptions {
|
|
|
30
30
|
includeMatches?: boolean;
|
|
31
31
|
}
|
|
32
32
|
/** 検索結果1件 */
|
|
33
|
+
/**
|
|
34
|
+
* 一致の種類(spec 5章)。tier 1: prefix(item の先頭から)・word(単語の頭から)・initials(各単語の頭文字)・
|
|
35
|
+
* inner(単語の途中)、tier 2: subsequence(飛び飛び)、tier 3: typo(誤字)、tier 4: similar(構造の類似)
|
|
36
|
+
*/
|
|
37
|
+
export type MatchKind = 'prefix' | 'word' | 'initials' | 'inner' | 'subsequence' | 'typo' | 'similar';
|
|
33
38
|
export interface SearchResult<T> {
|
|
34
39
|
item: T;
|
|
35
40
|
/** items 内の位置 */
|
|
@@ -38,6 +43,8 @@ export interface SearchResult<T> {
|
|
|
38
43
|
score: number;
|
|
39
44
|
/** マッチした層 */
|
|
40
45
|
tier: 1 | 2 | 3 | 4;
|
|
46
|
+
/** 一致の種類(複数の語のクエリでは最も弱い語の種類) */
|
|
47
|
+
kind: MatchKind;
|
|
41
48
|
/** 元文字列上の一致区間 [start, end)(includeMatches 時かつ tier 1/2 のみ) */
|
|
42
49
|
matches?: readonly [number, number][];
|
|
43
50
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7D,+BAA+B;AAC/B,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,aAAa;AACb,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC;IACR,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACvC;AAED,iBAAiB;AACjB,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7D,+BAA+B;AAC/B,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,aAAa;AACb;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtG,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC;IACR,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,gCAAgC;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACvC;AAED,iBAAiB;AACjB,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
|
package/dist/yfuzzy.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @ycookiey/yfuzzy v0.
|
|
2
|
-
"use strict";var yfuzzy=(()=>{var et=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var pn=Object.getOwnPropertyNames;var dn=Object.prototype.hasOwnProperty;var mn=(t,e)=>{for(var o in e)et(t,o,{get:e[o],enumerable:!0})},An=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pn(e))!dn.call(t,r)&&r!==o&&et(t,r,{get:()=>e[r],enumerable:!(n=hn(e,r))||n.enumerable});return t};var kn=t=>An(et({},"__esModule",{value:!0}),t);var _e={};mn(_e,{createIndex:()=>ln,search:()=>Ne});var yn="\u3002\u300C\u300D\u3001\u30FB\u30F2\u30A1\u30A3\u30A5\u30A7\u30A9\u30E3\u30E5\u30E7\u30C3\u30FC\u30A2\u30A4\u30A6\u30A8\u30AA\u30AB\u30AD\u30AF\u30B1\u30B3\u30B5\u30B7\u30B9\u30BB\u30BD\u30BF\u30C1\u30C4\u30C6\u30C8\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D2\u30D5\u30D8\u30DB\u30DE\u30DF\u30E0\u30E1\u30E2\u30E4\u30E6\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EF\u30F3";function gn(t){let e=[],o=0;for(let n of t)e.push({cp:n,start:o,end:o+n.length}),o+=n.length;return e}function kt(t,e,o){let n=e==="all"||e==="preKana",r=e==="all"||e==="postKana",s=gn(t),i="",a=[];for(let l=0;l<s.length;l++){let d=s[l],c=d.cp.codePointAt(0),u,p=d.end;if(n&&c===12288)u=" ";else if(n&&c>=65281&&c<=65374){let h=String.fromCharCode(c-65248);u=h>="A"&&h<="Z"?h.toLowerCase():h}else if(n&&c>=65&&c<=90)u=d.cp.toLowerCase();else if(r&&c>=65377&&c<=65437){let h=yn[c-65377],m=l+1<s.length?s[l+1]:null,g=m?m.cp.codePointAt(0):-1;if(g===65438||g===65439){let b=(h+(g===65438?"\u3099":"\u309A")).normalize("NFC");[...b].length===1?(u=b,p=m.end,l++):u=h}else u=h}else r&&c===65438?u="\u309B":r&&c===65439?u="\u309C":r&&c>=12353&&c<=12438?u=String.fromCodePoint(c+96):u=d.cp;if(o){let h=[d.start,p];for(let m=0;m<u.length;m++)a.push(h)}i+=u}return{text:i,map:a}}function yt(t){let{text:e,map:o}=kt(t,"all",!0);return{text:e,map:o}}function z(t,e){return kt(t,e,!1).text}var gt={\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u30B5:"sa",\u30B7:"si",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u30B6:"za",\u30B8:"zi",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u30BF:"ta",\u30C1:"ti",\u30C4:"tu",\u30C6:"te",\u30C8:"to",\u30C0:"da",\u30C2:"di",\u30C5:"du",\u30C7:"de",\u30C9:"do",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u30CF:"ha",\u30D2:"hi",\u30D5:"hu",\u30D8:"he",\u30DB:"ho",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u30EF:"wa",\u30F2:"wo",\u30F3:"n",\u30F4:"vu",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo"},St={\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30AD\u30A7:"kye",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B7\u30E3:"sya",\u30B7\u30E5:"syu",\u30B7\u30E7:"syo",\u30B7\u30A7:"sye",\u30B8\u30E3:"zya",\u30B8\u30E5:"zyu",\u30B8\u30E7:"zyo",\u30B8\u30A7:"zye",\u30C1\u30E3:"tya",\u30C1\u30E5:"tyu",\u30C1\u30E7:"tyo",\u30C1\u30A7:"tye",\u30C2\u30E3:"dya",\u30C2\u30E5:"dyu",\u30C2\u30E7:"dyo",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u30D5\u30A1:"fa",\u30D5\u30A3:"fi",\u30D5\u30A7:"fe",\u30D5\u30A9:"fo",\u30F4\u30A1:"va",\u30F4\u30A3:"vi",\u30F4\u30A7:"ve",\u30F4\u30A9:"vo",\u30A6\u30A3:"wi",\u30A6\u30A7:"we",\u30A6\u30A9:"wo",\u30C6\u30A3:"ti",\u30C8\u30A5:"tu",\u30C7\u30A3:"di",\u30C9\u30A5:"du",\u30C4\u30A1:"tua",\u30C4\u30A3:"tui",\u30C4\u30A7:"tue",\u30C4\u30A9:"tuo",\u30A4\u30A7:"ye"};var xt={\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u30B5:"sa",\u30B7:"shi",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u30B6:"za",\u30B8:"ji",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u30BF:"ta",\u30C1:"chi",\u30C4:"tsu",\u30C6:"te",\u30C8:"to",\u30C0:"da",\u30C2:"di",\u30C5:"du",\u30C7:"de",\u30C9:"do",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u30CF:"ha",\u30D2:"hi",\u30D5:"fu",\u30D8:"he",\u30DB:"ho",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u30EF:"wa",\u30F2:"wo",\u30F3:"n",\u30F4:"vu",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo"},bt={\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30AD\u30A7:"kye",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B7\u30E3:"sha",\u30B7\u30E5:"shu",\u30B7\u30E7:"sho",\u30B7\u30A7:"she",\u30B8\u30E3:"ja",\u30B8\u30E5:"ju",\u30B8\u30E7:"jo",\u30B8\u30A7:"je",\u30C1\u30E3:"cha",\u30C1\u30E5:"chu",\u30C1\u30E7:"cho",\u30C1\u30A7:"che",\u30C2\u30E3:"dya",\u30C2\u30E5:"dyu",\u30C2\u30E7:"dyo",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u30D5\u30A1:"fa",\u30D5\u30A3:"fi",\u30D5\u30A7:"fe",\u30D5\u30A9:"fo",\u30F4\u30A1:"va",\u30F4\u30A3:"vi",\u30F4\u30A7:"ve",\u30F4\u30A9:"vo",\u30A6\u30A3:"wi",\u30A6\u30A7:"we",\u30A6\u30A9:"wo",\u30C6\u30A3:"ti",\u30C8\u30A5:"tu",\u30C7\u30A3:"di",\u30C9\u30A5:"du",\u30C4\u30A1:"tsa",\u30C4\u30A3:"tsi",\u30C4\u30A7:"tse",\u30C4\u30A9:"tso",\u30A4\u30A7:"ye"};var v={single:gt,digraphs:St},G={single:xt,digraphs:bt};function $(t){return t==="both"||t==="kunrei"}function J(t){return t==="both"||t==="hepburn"}function Et(t,e){if(t.length===2){let n=e.digraphs[t];if(n!==void 0)return n}let o=e.single[t];return o!==void 0?o:t.toLowerCase()}function It(t){return/^[bcdfghjklmnpqrstvwxyz]/.test(t)}var Sn="\u30C3",xn="\u30FC",bn=new Set(["\u30A1","\u30A3","\u30A5","\u30A7","\u30A9","\u30E3","\u30E5","\u30E7","\u30EE"]),En=/[ァ-ヺー]/,In=/[ァ-ヺ]/,Tn=/[0-9a-z]/;function wn(t){return En.test(t)||Tn.test(t)}function Nn(t){let e=[],o=0,n=!1,r=-1;for(;o<t.length;){let s=t[o];if(s===Sn){n||(n=!0,r=o),o+=1;continue}if(s===xn){let c=e[e.length-1];c&&(c.kanaLen+=1),o+=1;continue}let i=n?r:o,a=o+1<t.length?t[o+1]:"",l=a!==""&&bn.has(a)&&In.test(s)?2:1,d=t.slice(o,o+l);e.push({core:d,sokuon:n,kanaStart:i,kanaLen:o+l-i}),n=!1,r=-1,o+=l}return e}function _n(t,e){let o=[],n=new Set,r=0,s="";for(let i of t){let a=Et(i.core,e);i.sokuon&&a.length>0&&It(a)&&(a=a[0]+a),n.add(r),o.push({kanaStart:i.kanaStart,kanaLen:i.kanaLen,romajiStart:r,romajiLen:a.length}),r+=a.length,s+=a}return{text:s,syllables:o,boundaries:n}}function X(t,e){return _n(Nn(t),e)}function ot(t,e){return X(t,e).text}function Tt(t){let e=new Set([0]);for(let o=0;o<t.length;o++)if(!wn(t[o])){let n=o+1;n<t.length&&e.add(n)}return e}function Q(t){let e="^"+t+"$",o=new Set;for(let n=0;n+1<e.length;n++)o.add(e.slice(n,n+2));return o}function _(t){let e=0;for(let o=0;o<t.length;o++)e|=1<<t.charCodeAt(o)%31;return e}function wt(t){let e=0,o=t;for(;o!==0;)o&=o-1,e++;return e}var Nt=/[a-z]/;function Ln(t,e){let o=Tt(t.text),n=t.text,r=s=>e.slice(t.map[s][0],t.map[s][1]);for(let s=1;s<n.length;s++){if(!Nt.test(n[s])||!Nt.test(n[s-1]))continue;let i=r(s),a=r(s-1);i!==i.toLowerCase()&&a===a.toLowerCase()&&o.add(s)}return o}function _t(t,e){let o=new Set;if(t===null)return o;for(let n of t.syllables)e.has(n.kanaStart)&&o.add(n.romajiStart);return o}function Lt(t,e,o){let n=yt(t),r=$(o)?X(n.text,v):null,s=J(o)?X(n.text,G):null,i=Ln(n,t);return{refIndex:e,raw:t,kana:n,kanaBoundaries:i,kunreiHeads:_t(r,i),hepburnHeads:_t(s,i),kanaMask:_(n.text),kunreiMask:r?_(r.text):0,hepburnMask:s?_(s.text):0,kunrei:r,hepburn:s,hasKeystrokeChar:/[a-z'-]/.test(n.text),bigrams:null}}function Mt(t){return t.bigrams===null&&(t.bigrams=Q(t.kana.text)),t.bigrams}var Mn={a:"\u3042",i:"\u3044",u:"\u3046",e:"\u3048",o:"\u304A",k:{a:"\u304B",i:"\u304D",u:"\u304F",e:"\u3051",o:"\u3053"},s:{a:"\u3055",i:"\u3057",u:"\u3059",e:"\u305B",o:"\u305D"},t:{a:"\u305F",i:"\u3061",u:"\u3064",e:"\u3066",o:"\u3068"},n:{a:"\u306A",i:"\u306B",u:"\u306C",e:"\u306D",o:"\u306E"},h:{a:"\u306F",i:"\u3072",u:"\u3075",e:"\u3078",o:"\u307B"},m:{a:"\u307E",i:"\u307F",u:"\u3080",e:"\u3081",o:"\u3082"},y:{a:"\u3084",u:"\u3086",o:"\u3088"},r:{a:"\u3089",i:"\u308A",u:"\u308B",e:"\u308C",o:"\u308D"},w:{a:"\u308F",i:"\u3090",e:"\u3091",o:"\u3092"},g:{a:"\u304C",i:"\u304E",u:"\u3050",e:"\u3052",o:"\u3054"},z:{a:"\u3056",i:"\u3058",u:"\u305A",e:"\u305C",o:"\u305E"},d:{a:"\u3060",i:"\u3062",u:"\u3065",e:"\u3067",o:"\u3069"},b:{a:"\u3070",i:"\u3073",u:"\u3076",e:"\u3079",o:"\u307C"},p:{a:"\u3071",i:"\u3074",u:"\u3077",e:"\u307A",o:"\u307D"},v:{a:"\u3094\u3041",i:"\u3094\u3043",u:"\u3094",e:"\u3094\u3047",o:"\u3094\u3049"}},Rt={k:"\u304D",s:"\u3057",t:"\u3061",n:"\u306B",h:"\u3072",m:"\u307F",r:"\u308A",g:"\u304E",z:"\u3058",d:"\u3062",b:"\u3073",p:"\u3074",v:"\u3094",q:"\u304F",f:"\u3075"},Ct={ya:"\u3083",yi:"\u3043",yu:"\u3085",ye:"\u3047",yo:"\u3087"},Kt={a:"\u3041",i:"\u3043",u:"\u3045",e:"\u3047",o:"\u3049"},Ot={sh:"sy",ch:"ty",cy:"ty",chy:"ty",shy:"sy",j:"zy",jy:"zy",shi:"si",chi:"ti",tsu:"tu",ji:"zi",fu:"hu"},Rn={tu:"\u3063",wa:"\u308E",ka:"\u30F5",ke:"\u30F6",...Kt,...Ct},On={yi:"\u3044",wu:"\u3046",ye:"\u3044\u3047",wi:"\u3046\u3043",we:"\u3046\u3047",kwa:"\u304F\u3041",whu:"\u3046",tha:"\u3066\u3083",thu:"\u3066\u3085",tho:"\u3066\u3087",dha:"\u3067\u3083",dhu:"\u3067\u3085",dho:"\u3067\u3087"},Cn={wh:"\u3046",kw:"\u304F",qw:"\u304F",q:"\u304F",gw:"\u3050",sw:"\u3059",ts:"\u3064",th:"\u3066",tw:"\u3068",dh:"\u3067",dw:"\u3069",fw:"\u3075",f:"\u3075"};function Ut(t){return Object.entries(t).reduce((e,[o,n])=>(e[o]=typeof n=="string"?{"":n}:Ut(n),e),{})}function Kn(t,e){return e.split("").reduce((o,n)=>(o[n]===void 0&&(o[n]={}),o[n]),t)}function Un(){let t=Ut(Mn),e=r=>Kn(t,r);Object.entries(Rt).forEach(([r,s])=>{Object.entries(Ct).forEach(([i,a])=>{e(r+i)[""]=s+a})}),Object.entries(Cn).forEach(([r,s])=>{Object.entries(Kt).forEach(([i,a])=>{e(r+i)[""]=s+a})}),["n","n'","xn"].forEach(r=>{e(r)[""]="\u3093"}),t.c=JSON.parse(JSON.stringify(t.k)),Object.entries(Ot).forEach(([r,s])=>{let i=r.slice(0,r.length-1),a=r.charAt(r.length-1),l=e(i);l[a]=JSON.parse(JSON.stringify(e(s)))});function o(r){return[...Object.entries(Ot),["c","k"]].reduce((s,[i,a])=>r.startsWith(a)?s.concat(r.replace(a,i)):s,[])}Object.entries(Rn).forEach(([r,s])=>{let i=u=>u.charAt(u.length-1),a=u=>u.slice(0,u.length-1),l=`x${r}`,d=e(l);d[""]=s;let c=e(`l${a(r)}`);c[i(r)]=d,o(r).forEach(u=>{["l","x"].forEach(p=>{let h=e(p+a(u));h[i(u)]=e(p+r)})})}),Object.entries(On).forEach(([r,s])=>{e(r)[""]=s});function n(r){return Object.entries(r).reduce((s,[i,a])=>(s[i]=i?n(a):`\u3063${a}`,s),{})}return[...Object.keys(Rt),"c","y","w","j"].forEach(r=>{let s=t[r];s[r]=n(s)}),delete t.n.n,Object.freeze(JSON.parse(JSON.stringify(t)))}var rt=null;function jt(){return rt==null&&(rt=Un()),rt}function jn(t,e){let o=e;function n(i,a){if(i[a]!==void 0)return Object.assign({"":i[""]+a},i[a])}function r(i,a){let l=i.charAt(0);return s(Object.assign({"":l},o[l]),i.slice(1),a,a+1)}function s(i,a,l,d){if(!a)return i[""]?[[l,d,i[""]]]:[];if(Object.keys(i).length===1)return[[l,d,i[""]],...r(a,d)];let c=n(i,a.charAt(0));return c===void 0?[[l,d,i[""]],...r(a,d)]:s(c,a.slice(1),l,d+1)}return r(t,0)}function Ht(t){return jn(t.toLowerCase(),jt()).map(e=>e[2]??"").join("")}function Dt(){let t=[],e=(o,n)=>{for(let[r,s]of Object.entries(o))r===""?n!==""&&/^[ぁ-ゖヵヶ]+$/.test(s)&&t.push([n,s]):e(s,n+r)};return e(jt(),""),t}function Pt(t){return Ht(t)}var Hn=new Set(["ci","ce","qu"]),Dn=[["ci","\u3057"],["ce","\u305B"],["qu","\u304F"],["nn","\u3093"],["-","\u30FC"],["t'i","\u3066\u3043"],["t'yu","\u3066\u3085"],["d'i","\u3067\u3043"],["d'yu","\u3067\u3085"],["t'u","\u3068\u3045"],["d'u","\u3069\u3045"],["hwa","\u3075\u3041"],["hwi","\u3075\u3043"],["hwe","\u3075\u3047"],["hwo","\u3075\u3049"],["hwyu","\u3075\u3085"],["zwa","\u305A\u3041"],["zwi","\u305A\u3043"],["zwu","\u305A\u3045"],["zwe","\u305A\u3047"],["zwo","\u305A\u3049"],["wyi","\u3090"],["wye","\u3091"]],Pn=new Set("qvlxkgszjtdhfbpmyrwc"),V=null,st=0;function it(){if(V!==null)return V;let t=new Map,e=(n,r)=>{let s=z(r,"postKana"),i=t.get(s);i===void 0&&t.set(s,i=new Set),i.add(n)},o=[];for(let[n,r]of Dt())Hn.has(n)||r.startsWith("\u3063")&&n.length>1&&n[0]===n[1]||o.push([n,r]);o.push(...Dn);for(let[n,r]of o)e(n,r),!r.startsWith("\u3063")&&(Pn.has(n[0])&&e(n[0]+n,"\u3063"+r),n.startsWith("ch")&&e("t"+n,"\u3063"+r));for(let n of t.keys())n.length>st&&(st=n.length);return V=new Map([...t].map(([n,r])=>[n,[...r]])),V}function Bt(){return it(),st}function vt(t){let e=it(),o=Bt(),n=t.length,r=Array.from({length:n+1},(k,I)=>[I]),s=n+1,i=[],a=new Set,l=(k,I,N,w)=>{let T=`${k},${I},${N},${w}`;a.has(T)||(a.add(T),i.push([k,I,N,w]))},d=!1;for(let k=0;k<n;k++){l(k,k+1,t[k],0);let I=new Map;for(let N=1;N<=o&&k+N<=n;N++){let w=e.get(t.slice(k,k+N));if(w!==void 0)for(let T of w){d=!0;let M=k;for(let R=0;R<T.length-1;R++){let B=T.slice(0,R+1),L=I.get(B);L===void 0&&(L=s++,I.set(B,L),r[k].push(L)),l(M,L,T[R],1),M=L}l(M,k+N,T[T.length-1],1)}}}if(!d)return null;let c=new Int32Array(s),u=0;for(let k of r)for(let I of k)c[I]=u++;let p=i.length,h=i.map(([k,I,N,w])=>[c[k],c[I],N,w]);h.sort((k,I)=>k[0]-I[0]||k[1]-I[1]);let m=new Int32Array(p),g=new Int32Array(p),S=new Array(p),b=new Uint8Array(p),f=new Int32Array(p);h.forEach(([k,I,N,w],T)=>{m[T]=k,g[T]=I,S[T]=N,b[T]=w,f[T]=_(N)});let A=u,y=new Int32Array(A+1);for(let k=0;k<p;k++)y[m[k]+1]++;for(let k=0;k<A;k++)y[k+1]+=y[k];let x=new Int32Array(p);for(let k=0;k<p;k++)x[k]=k;let E=new Set;for(let k=y[0];k<y[1];k++)E.add(S[x[k]]);return{nodeCount:A,final:c[n],from:m,to:g,ch:S,ks:b,bit:f,outStart:y,outEdges:x,firstChars:E}}var Y=new Uint8Array(0);function Gt(t){return Y.length<t&&(Y=new Uint8Array(t)),Y.fill(0,0,t),Y}function Z(t,e){let o=Gt(t.nodeCount);o[0]=1;for(let n=0;n<t.from.length;n++)o[t.from[n]]&&(t.bit[n]&e)!==0&&(o[t.to[n]]=1);return o[t.final]===1}function $t(t,e,o){let n=Gt(t.nodeCount);n[0]=1;for(let r=0;r<e.length;r++){let s=e[r];for(let i=t.nodeCount-1;i>=0;i--)if(n[i])for(let a=t.outStart[i];a<t.outStart[i+1];a++){let l=t.outEdges[a];t.ch[l]===s&&(o&&i===0&&t.to[l]===t.final||(n[t.to[l]]=1))}if(n[t.final])return!0}return!1}var zt=new Int32Array(0),Ft=new Int32Array(0),j=new Int32Array(0),H=0;function Jt(t,e,o,n){n.plain=0,n.ks=0;let r=t.nodeCount*2;j.length<r&&(j=new Int32Array(r),zt=new Int32Array(r),Ft=new Int32Array(r),H=0);let s=zt,i=Ft,a=1;s[0]=0;let l=t.final*2;for(let d=o;d<e.length&&a>0;d++){let c=e[d];H++;let u=0;for(let m=0;m<a;m++){let g=s[m],S=g>>1,b=g&1;for(let f=t.outStart[S];f<t.outStart[S+1];f++){let A=t.outEdges[f];if(t.ch[A]!==c)continue;let y=t.to[A]*2+(b|t.ks[A]);j[y]!==H&&(j[y]=H,i[u++]=y)}}let p=d-o+1;j[l]===H&&(n.plain=p),j[l+1]===H&&(n.ks=p);let h=s;s=i,i=h,a=u}}var Wt=new WeakMap;function q(t){let e=Wt.get(t);if(e!==void 0)return e;let o=t.nodeCount,n=Array.from({length:o},()=>[]);n[0].push(0);for(let f=0;f<o;f++)for(let A=t.outStart[f];A<t.outStart[f+1];A++){let y=t.to[t.outEdges[A]];for(let x of n[f])n[y].includes(x+1)||n[y].push(x+1)}for(let f of n)f.sort((A,y)=>A-y);let r=new Int32Array(o+1);for(let f=0;f<o;f++)r[f+1]=r[f]+n[f].length;let s=r[o],i=(f,A)=>r[f]+n[f].indexOf(A),a=new Int32Array(s);for(let f=0;f<o;f++)for(let A of n[f])a[i(f,A)]=A;let l=Array.from({length:s},()=>[]);for(let f=0;f<t.from.length;f++){let A=t.from[f],y=t.to[f];for(let x of n[A])l[i(y,x+1)].push([i(A,x),t.ch[f].charCodeAt(0),t.bit[f],t.ks[f]])}let d=new Int32Array(s+1);for(let f=0;f<s;f++)d[f+1]=d[f]+l[f].length;let c=d[s],u=new Int32Array(c),p=new Int32Array(c),h=new Int32Array(c),m=new Uint8Array(c),g=0;for(let f of l)for(let[A,y,x,E]of f)u[g]=A,p[g]=y,h[g]=x,m[g++]=E;let S=n[t.final].map(f=>[i(t.final,f),f]),b={X:s,depth:a,inStart:d,inFrom:u,inCh:p,inBit:h,inKs:m,finals:S};return Wt.set(t,b),b}function Xt(t,e,o="phonetic"){let n=z(t,"preKana"),r=z(o==="phonetic"?Pt(n):n,"postKana"),s=o==="phonetic",i=s&&$(e)?ot(r,v):null,a=s&&J(e)?ot(r,G):null;return{kana:r,singleChar:Bn(r),kunrei:i,hepburn:a,kanaMask:_(r),kunreiMask:i!==null?_(i):0,hepburnMask:a!==null?_(a):0,lattice:s?null:vt(r),shadowed:!1,bigrams:null}}function Bn(t){return t.length===0?!1:t.length===String.fromCodePoint(t.codePointAt(0)).length}function Qt(t){return t.bigrams===null&&(t.bigrams=Q(t.kana)),t.bigrams}var zn=["-"," ","\u30FB","_"];function Fn(t){return t===!1||t===void 0?[]:t===!0?zn:t}function Wn(t){return t.replace(/[\\\]^-]/g,"\\$&")}function Vt(t,e){let o=Fn(e);if(o.length===0)return t===""?[]:[t];let n=o.map(Wn).join(""),r=new RegExp(`[${n}]`,"g");if(!r.test(t))return t===""?[]:[t];let s=[],i=new Set,a=c=>{c!==""&&!i.has(c)&&(i.add(c),s.push(c))};a(t);let l=[...t].at(-1);return o.includes(l)||a(t.replace(r,"")),a(t.replace(r," ")),s}var Yt=1,Zt=.9,at=.97,ut=.87,vn=.99,O=3,C=2,qt=1,K=0;function ft(t,e){return(t+e)/4}function D(t,e,o,n,r){return{intraScore:ft(t,e),space:o,offset:n,len:r,positions:null}}function Gn(t,e){let o=[];for(let n=0;n<t;n++)o.push(e+n);return o}function $n(t,e,o,n){return t.length===0||e.length===0||!e.startsWith(t)?null:D(O,t.length/e.length*n,o,0,t.length)}function Jn(t,e,o,n,r,s){if(t.length<s||e.length===0)return null;let i=e.indexOf(t,1);if(i<0)return null;let a=t.length/e.length*r;for(let l=i;l>=0;l=e.indexOf(t,l+1))if(o.has(l))return D(C,a,n,l,t.length);return D(K,a,n,i,t.length)}function Xn(t,e,o,n,r){let s=t.length,i=e.length;if(s<2||i===0||o.size<2)return null;let a=new Uint8Array(s*i);for(let c=s-1;c>=0;c--){let u=!1;for(let p=i-1;p>=0;p--)e[p]===t[c]&&(a[c*i+p]=c===s-1||p+1<i&&a[(c+1)*i+p+1]===1||u?1:0),c<s-1&&o.has(p)&&a[(c+1)*i+p]&&(u=!0)}let l=-1;for(let c=0;c<i;c++)if(o.has(c)&&a[c]){l=c;break}if(l<0)return null;let d=[l];for(let c=1;c<s;c++){if(l+1<i&&a[c*i+l+1])l=l+1;else{let u=l+1;for(;!(o.has(u)&&a[c*i+u]);)u++;l=u}d.push(l)}return{intraScore:ft(qt,s/i*r),space:n,offset:0,len:0,positions:d}}var tt={plain:0,ks:0};function Qn(t,e,o,n){let r=e.length;if(r===0)return;let s=[new Int32Array(4),new Int32Array(4)],i=[new Int32Array(4),new Int32Array(4)],a=(c,u,p,h)=>{p>s[c][u]&&(s[c][u]=p,i[c][u]=h)};for(let c=0;c<r;c++){if(!t.firstChars.has(e[c]))continue;Jt(t,e,c,tt);let u=c===0?O:o.has(c)?C:K;a(0,u,tt.plain,c),(u===O||tt.ks>=2)&&a(1,u,tt.ks,c)}let l=o.size>=2?Vn(t,e,o):null,d=[[Yt,Zt],[at,ut]];for(let c=0;c<2;c++){let[u,p]=d[c];s[c][O]>0&&n(D(O,s[c][O]/r*u,"kana",0,s[c][O])),s[c][C]>0&&n(D(C,s[c][C]/r*p,"kana",i[c][C],s[c][C]));let h=l?.[c];h&&n({intraScore:ft(qt,h.length/r*p),space:"kana",offset:0,len:0,positions:h}),s[c][K]>0&&n(D(K,s[c][K]/r*p,"kana",i[c][K],s[c][K]))}}function Vn(t,e,o){let n=q(t),{X:r,inStart:s,inFrom:i,inCh:a,inKs:l}=n,d=e.length,c=new Uint8Array(r*2*d),u=new Int32Array(r*2).fill(d);for(let h=1;h<r;h++)for(let m=s[h];m<s[h+1];m++){let g=i[m],S=a[m],b=l[m];for(let f=0;f<2;f++){if(g!==0&&u[g*2+f]>=d||g===0&&f===1)continue;let A=f|b,y=(h*2+A)*d,x=(g*2+f)*d;for(let E=0;E<d;E++){if(e.charCodeAt(E)!==S||c[y+E])continue;(g===0?o.has(E):E>0&&c[x+E-1]===1||o.has(E)&&u[g*2+f]<E)&&(c[y+E]=1,E<u[h*2+A]&&(u[h*2+A]=E))}}}let p=[null,null];for(let h=0;h<2;h++)for(let m=n.finals.length-1;m>=0&&p[h]===null;m--){let[g,S]=n.finals[m];S<2||u[g*2+h]>=d||(p[h]=Yn(n,c,e,o,g,h,u[g*2+h]))}return p}function Yn(t,e,o,n,r,s,i){let{inStart:a,inFrom:l,inCh:d,inKs:c}=t,u=o.length,p=[i],h=r,m=s,g=i;for(;h!==0;){let S=null;for(let b=a[h];b<a[h+1]&&S===null;b++){if(d[b]!==o.charCodeAt(g))continue;let f=l[b];if(f===0){c[b]===m&&n.has(g)&&(S=[0,0,-1]);continue}for(let A=0;A<2&&S===null;A++){if((A|c[b])!==m)continue;let y=(f*2+A)*u;if(g>0&&e[y+g-1])S=[f,A,g-1];else if(n.has(g)){for(let x=g-1;x>=0;x--)if(e[y+x]){S=[f,A,x];break}}}}if(S===null||S[0]===0)break;[h,m,g]=S,p.push(g)}return p.reverse()}var U=null;function nt(t){t!==null&&(U===null||t.intraScore>U.intraScore)&&(U=t)}function ct(t,e,o,n,r,s,i){nt($n(t,e,n,r)),nt(Jn(t,e,o,n,s,i)),o.size>=2&&nt(Xn(t,e,o,n,s))}var tn=(t,e)=>{U=null;let o=e.kana.text;if(t.lattice!==null&&e.hasKeystrokeChar?Z(t.lattice,e.kanaMask)&&Qn(t.lattice,o,e.kanaBoundaries,nt):t.shadowed||ct(t.kana,o,e.kanaBoundaries,"kana",Yt,Zt,1),t.kunrei!==null&&e.kunrei!==null&&ct(t.kunrei,e.kunrei.text,e.kunreiHeads,"kunrei",at,ut,2),t.hepburn!==null&&e.hepburn!==null){let r=vn;ct(t.hepburn,e.hepburn.text,e.hepburnHeads,"hepburn",at*r,ut*r,2)}if(U===null)return null;let n=U;return U=null,{tier:1,intraScore:n.intraScore,space:n.space,positions:n.positions??Gn(n.len,n.offset)}};var Zn=16,qn=-3,te=-1,ne=8,ee=4,oe=2,re=.55,se=.3,ie=.15,nn=2,P=-1e9,lt=new Int32Array(0),en=new Uint8Array(0);function ce(t){lt.length<t&&(lt=new Int32Array(t),en=new Uint8Array(t))}function ae(t,e){let o=0;for(let n=0;n<e.length&&o<t.length;n++)t[o]===e[n]&&o++;return o===t.length}function on(t,e,o){let n=t.length,r=e.length;if(n===0||r===0||!ae(t,e))return null;let s=r+1;ce((n+1)*s);let i=lt,a=en;for(let m=0;m<=r;m++)i[m]=0,a[m]=0;for(let m=1;m<=n;m++){let g=m*s,S=(m-1)*s,b=t[m-1];i[g]=P,a[g]=0;for(let f=1;f<=r;f++){let A=P,y=0,x=i[g+f-1];x>P&&(A=x+(a[g+f-1]?qn:te),y=0);let E=i[S+f-1];if(b===e[f-1]&&E>P){let k=0;o.has(f-1)&&(k+=ne),a[S+f-1]&&(k+=ee),m===1&&(k+=oe);let I=E+Zn+k;I>=A&&(A=I,y=1)}i[g+f]=A,a[g+f]=y}}let l=n*s,d=-1,c=P;for(let m=n;m<=r;m++)i[l+m]>c&&(c=i[l+m],d=m);if(d<0||c===P)return null;let u=[],p=n,h=d;for(;p>0&&h>0;)a[p*s+h]&&(u.push(h-1),p--),h--;return u.reverse(),u}function rn(t,e,o,n){let r=0;for(let c of t)n.has(c)&&r++;let s=r/e,i=1,a=1;for(let c=1;c<t.length;c++)t[c]===t[c-1]+1?(a++,a>i&&(i=a)):a=1;let l=i/e,d=1-t[0]/o;return re*s+se*l+ie*d}function ue(t,e,o,n,r){if(e.length===0||!Z(t,o)||!$t(t,e,r))return null;let s=null,i=(a,l,d)=>{if(a===t.final){if(l.length<nn)return;let c=on(l,e,n);if(c===null)return;let u=rn(c,l.length,e.length,n);(s===null||u>s.intraScore)&&(s={intraScore:u,positions:c});return}for(let c=t.outStart[a];c<t.outStart[a+1];c++){let u=t.outEdges[c],p=t.ch[u],h=e.indexOf(p,d);h>=0&&i(t.to[u],l+p,h+1)}};return i(0,"",0),s}var sn=(t,e)=>{let o=null,n=(s,i,a,l,d,c)=>{if(s===null||s.length<nn||a.length===0||(i&~l)!==0)return;let u=on(s,a,d);if(u===null)return;let p=rn(u,s.length,a.length,d);(o===null||p>o.intraScore)&&(o={intraScore:p,space:c,positions:u})};if(t.lattice!==null&&e.hasKeystrokeChar){let s=ue(t.lattice,e.kana.text,e.kanaMask,e.kanaBoundaries,t.singleChar);s!==null&&(o={intraScore:s.intraScore,space:"kana",positions:s.positions})}else t.shadowed||n(t.kana,t.kanaMask,e.kana.text,e.kanaMask,e.kanaBoundaries,"kana");if(e.kunrei&&n(t.kunrei,t.kunreiMask,e.kunrei.text,e.kunreiMask,e.kunrei.boundaries,"kunrei"),e.hepburn&&n(t.hepburn,t.hepburnMask,e.hepburn.text,e.hepburnMask,e.hepburn.boundaries,"hepburn"),o===null)return null;let r=o;return{tier:2,intraScore:r.intraScore,space:r.space,positions:r.positions}};var mt=2;function F(t){return Math.max(1,Math.ceil(t/3))}var ht=new Int32Array(0);function fe(t){return ht.length<t&&(ht=new Int32Array(t)),ht}function le(t,e,o){let n=t.length,r=e.length;if(n===0)return 0;if(r+o<n)return o+1;let s=r+1,i=fe((n+1)*s);for(let u=0;u<=r;u++)i[u]=u;for(let u=1;u<=n;u++){let p=u*s,h=(u-1)*s,m=(u-2)*s;i[p]=u;let g=t[u-1],S=u>1?t[u-2]:"",b=1/0;for(let f=1;f<=r;f++){let A=g===e[f-1]?0:1,y=Math.min(i[h+f]+1,i[p+f-1]+1,i[h+f-1]+A);u>1&&f>1&&g===e[f-2]&&S===e[f-1]&&(y=Math.min(y,i[m+f-2]+1)),i[p+f]=y,y<b&&(b=y)}if(b>o)return o+1}let a=n*s,l=Math.max(0,n-o),d=Math.min(r,n+o),c=i[a+l];for(let u=l+1;u<=d;u++)i[a+u]<c&&(c=i[a+u]);return c}var pt=new Int32Array(0),dt=new Int32Array(0);function he(t,e,o){let n=e.length;if(n===0)return null;let r=q(t),{X:s,inStart:i,inFrom:a,inCh:l,inBit:d}=r;dt.length<s&&(dt=new Int32Array(s));let c=dt;c[0]=0;for(let f=1;f<s;f++){let A=1073741824;for(let y=i[f];y<i[f+1];y++){let x=c[a[y]]+((d[y]&o)===0?1:0);x<A&&(A=x)}c[f]=A}let u=-1;for(let[f,A]of r.finals)A>=mt&&n+F(A)>=A&&c[f]<=F(A)&&(u=Math.max(u,F(A)));if(u<0)return null;let p=1<<29,h=n+1;pt.length<s*h&&(pt=new Int32Array(s*h));let m=pt,g=r.depth,S=(f,A)=>{let y=A-g[f];return A<0||y>u||y<-u?p:m[f*h+A]};for(let f=0;f<=Math.min(n,u);f++)m[f]=f;for(let f=1;f<s;f++){let A=g[f],y=Math.max(0,A-u),x=Math.min(n,A+u),E=f*h;for(let k=y;k<=x;k++){if(k===0){m[E]=A;continue}let I=e.charCodeAt(k-1),N=k>1?e.charCodeAt(k-2):-1,w=(k-1>=y?m[E+k-1]:p)+1;for(let T=i[f];T<i[f+1];T++){let M=a[T],R=l[T],B=S(M,k)+1,L=S(M,k-1)+(R===I?0:1);if(B<w&&(w=B),L<w&&(w=L),R===N){for(let W=i[M];W<i[M+1];W++)if(l[W]===I){let At=S(a[W],k-2)+1;At<w&&(w=At)}}}m[E+k]=w}}let b=null;for(let[f,A]of r.finals){if(A<mt)continue;let y=F(A);if(n+y<A||c[f]>y)continue;let x=p;for(let k=Math.max(0,A-u);k<=Math.min(n,A+u);k++){let I=m[f*h+k];I<x&&(x=I)}if(x>y)continue;let E=1-x/(y+1);(b===null||E>b)&&(b=E)}return b}var cn=(t,e)=>{let o=null,n=(s,i,a,l,d)=>{if(s===null||s.length<mt||a.length===0)return;let c=F(s.length);if(wt(i&~l)>c)return;let u=le(s,a,c);if(u>c)return;let p=1-u/(c+1);(o===null||p>o.intraScore)&&(o={intraScore:p,space:d})};if(t.lattice!==null&&e.hasKeystrokeChar){let s=he(t.lattice,e.kana.text,e.kanaMask);s!==null&&(o={intraScore:s,space:"kana"})}else t.shadowed||n(t.kana,t.kanaMask,e.kana.text,e.kanaMask,"kana");if(e.kunrei&&t.kunrei!==null?n(t.kunrei,t.kunreiMask,e.kunrei.text,e.kunreiMask,"kunrei"):e.hepburn&&t.hepburn!==null&&n(t.hepburn,t.hepburnMask,e.hepburn.text,e.hepburnMask,"hepburn"),o===null)return null;let r=o;return{tier:3,intraScore:r.intraScore,space:r.space,positions:null}};var pe=.8,de=.2,me=.3,an=(t,e)=>{if(t.shadowed)return null;let o=Qt(t),n=Mt(e);if(o.size===0||n.size===0)return null;let r=0;for(let d of o)n.has(d)&&r++;let s=o.size-r,i=n.size-r,a=r+pe*s+de*i;if(a===0)return null;let l=r/a;return l<me?null:{tier:4,intraScore:l,space:"kana",positions:null}};var Ae=[tn,sn,cn,an];function ke(t){return t==="literal"?["literal"]:t==="phonetic"?["phonetic"]:["literal","phonetic"]}function ye(t,e,o){let n=o.map(r=>Xt(t,e,r));if(n.length===2&&n[0].kana===n[1].kana){if(n[0].lattice===null)return[n[1]];n[0].shadowed=!0}return n}function ge(t){return t<0?0:t>1?1:t}function Se(t){return(4-t.tier+ge(t.intraScore))/4}function xe(t,e,o){let n=null;for(let r of o){let s=t(r,e);if(s===null)continue;let i=Se(s);(n===null||i>n.score)&&(n={refIndex:e.refIndex,score:i,tier:s.tier,match:s})}return n}function un(t,e,o){let n=t.trim();if(n==="")return[];let r=Vt(n,o.separatorExpansion);if(r.length===0)return[];let s=ke(o.matching),i=r.flatMap(p=>ye(p,o.romaji,s)),a=Ae.slice(0,o.maxTier),{limit:l,minScore:d}=o,c=[],u=new Uint8Array(e.length);for(let p of a){for(let h=0;h<e.length;h++){if(u[h])continue;let m=xe(p,e[h],i);m!==null&&(u[h]=1,m.score>=d&&c.push(m))}if(l!==void 0&&c.length>=l)break}return c.sort((p,h)=>h.score-p.score||p.refIndex-h.refIndex),l!==void 0?c.slice(0,l):c}function be(t,e){for(let o of e)if(t>=o.romajiStart&&t<o.romajiStart+o.romajiLen){let n=[];for(let r=0;r<o.kanaLen;r++)n.push(o.kanaStart+r);return n}return[]}function Ee(t){if(t.length===0)return[];t.sort((o,n)=>o[0]-n[0]||o[1]-n[1]);let e=[];for(let[o,n]of t){let r=e[e.length-1];r&&o<=r[1]?n>r[1]&&(r[1]=n):e.push([o,n])}return e}function fn(t,e){if(e.positions===null)return[];let o=new Set;if(e.space==="kana")for(let s of e.positions)o.add(s);else{let s=e.space==="kunrei"?t.kunrei:t.hepburn;if(s)for(let i of e.positions)for(let a of be(i,s.syllables))o.add(a)}let n=t.kana.map,r=[];for(let s of o){let i=n[s];i&&r.push([i[0],i[1]])}return Ee(r)}var Ie=3,Te=0;function we(t,e,o,n){return{romaji:t,separatorExpansion:e,matching:o,maxTier:n.maxTier??Ie,minScore:n.minScore??Te,limit:n.limit,includeMatches:n.includeMatches??!1}}function ln(t,e={}){let o=e.getText??(l=>l),n=e.romaji??"both",r=e.separatorExpansion??!1,s=e.matching??"both",i={limit:e.limit,maxTier:e.maxTier,minScore:e.minScore,includeMatches:e.includeMatches},a=t.map((l,d)=>Lt(o(l),d,n));return{size:t.length,search(l,d={}){let c={...i,...d},u=we(n,r,s,c);return un(l,a,u).map(h=>{let m={item:t[h.refIndex],refIndex:h.refIndex,score:h.score,tier:h.tier};return u.includeMatches&&h.match.positions!==null&&(m.matches=fn(a[h.refIndex],h.match)),m})}}}function Ne(t,e,o={}){return ln(e,o).search(t)}return kn(_e);})();
|
|
1
|
+
/*! @ycookiey/yfuzzy v0.5.0 | MIT | includes wanakana (MIT), Mozc romaji table (BSD-3-Clause) | https://github.com/ycookiey/yfuzzy */
|
|
2
|
+
"use strict";var yfuzzy=(()=>{var Mn=Object.defineProperty;var vt=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Gt=Object.prototype.hasOwnProperty;var Xt=(n,t)=>{for(var o in t)Mn(n,o,{get:t[o],enumerable:!0})},$t=(n,t,o,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zt(t))!Gt.call(n,r)&&r!==o&&Mn(n,r,{get:()=>t[r],enumerable:!(e=vt(t,r))||e.enumerable});return n};var Jt=n=>$t(Mn({},"__esModule",{value:!0}),n);var fo={};Xt(fo,{createIndex:()=>Wt,search:()=>uo});var Vt="\u3002\u300C\u300D\u3001\u30FB\u30F2\u30A1\u30A3\u30A5\u30A7\u30A9\u30E3\u30E5\u30E7\u30C3\u30FC\u30A2\u30A4\u30A6\u30A8\u30AA\u30AB\u30AD\u30AF\u30B1\u30B3\u30B5\u30B7\u30B9\u30BB\u30BD\u30BF\u30C1\u30C4\u30C6\u30C8\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D2\u30D5\u30D8\u30DB\u30DE\u30DF\u30E0\u30E1\u30E2\u30E4\u30E6\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EF\u30F3";function Qt(n){let t=[],o=0;for(let e of n)t.push({cp:e,start:o,end:o+e.length}),o+=e.length;return t}function Yn(n,t,o){let e=t==="all"||t==="preKana",r=t==="all"||t==="postKana",i=Qt(n),c="",s=[];for(let a=0;a<i.length;a++){let f=i[a],l=f.cp.codePointAt(0),u,h=f.end;if(e&&l===12288)u=" ";else if(e&&l>=65281&&l<=65374){let d=String.fromCharCode(l-65248);u=d>="A"&&d<="Z"?d.toLowerCase():d}else if(e&&l>=65&&l<=90)u=f.cp.toLowerCase();else if(r&&l>=65377&&l<=65437){let d=Vt[l-65377],k=a+1<i.length?i[a+1]:null,S=k?k.cp.codePointAt(0):-1;if(S===65438||S===65439){let w=(d+(S===65438?"\u3099":"\u309A")).normalize("NFC");[...w].length===1?(u=w,h=k.end,a++):u=d}else u=d}else r&&l===65438?u="\u309B":r&&l===65439?u="\u309C":r&&l>=12353&&l<=12438?u=String.fromCodePoint(l+96):u=f.cp;if(o){let d=[f.start,h];for(let k=0;k<u.length;k++)s.push(d)}c+=u}return{text:c,map:s}}function Zn(n){let{text:t,map:o}=Yn(n,"all",!0);return{text:t,map:o}}function G(n,t){return Yn(n,t,!1).text}var qn={\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u30B5:"sa",\u30B7:"si",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u30B6:"za",\u30B8:"zi",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u30BF:"ta",\u30C1:"ti",\u30C4:"tu",\u30C6:"te",\u30C8:"to",\u30C0:"da",\u30C2:"di",\u30C5:"du",\u30C7:"de",\u30C9:"do",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u30CF:"ha",\u30D2:"hi",\u30D5:"hu",\u30D8:"he",\u30DB:"ho",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u30EF:"wa",\u30F2:"wo",\u30F3:"n",\u30F4:"vu",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo"},nt={\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30AD\u30A7:"kye",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B7\u30E3:"sya",\u30B7\u30E5:"syu",\u30B7\u30E7:"syo",\u30B7\u30A7:"sye",\u30B8\u30E3:"zya",\u30B8\u30E5:"zyu",\u30B8\u30E7:"zyo",\u30B8\u30A7:"zye",\u30C1\u30E3:"tya",\u30C1\u30E5:"tyu",\u30C1\u30E7:"tyo",\u30C1\u30A7:"tye",\u30C2\u30E3:"dya",\u30C2\u30E5:"dyu",\u30C2\u30E7:"dyo",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u30D5\u30A1:"fa",\u30D5\u30A3:"fi",\u30D5\u30A7:"fe",\u30D5\u30A9:"fo",\u30F4\u30A1:"va",\u30F4\u30A3:"vi",\u30F4\u30A7:"ve",\u30F4\u30A9:"vo",\u30A6\u30A3:"wi",\u30A6\u30A7:"we",\u30A6\u30A9:"wo",\u30C6\u30A3:"ti",\u30C8\u30A5:"tu",\u30C7\u30A3:"di",\u30C9\u30A5:"du",\u30C4\u30A1:"tua",\u30C4\u30A3:"tui",\u30C4\u30A7:"tue",\u30C4\u30A9:"tuo",\u30A4\u30A7:"ye"};var tt={\u30A2:"a",\u30A4:"i",\u30A6:"u",\u30A8:"e",\u30AA:"o",\u30AB:"ka",\u30AD:"ki",\u30AF:"ku",\u30B1:"ke",\u30B3:"ko",\u30AC:"ga",\u30AE:"gi",\u30B0:"gu",\u30B2:"ge",\u30B4:"go",\u30B5:"sa",\u30B7:"shi",\u30B9:"su",\u30BB:"se",\u30BD:"so",\u30B6:"za",\u30B8:"ji",\u30BA:"zu",\u30BC:"ze",\u30BE:"zo",\u30BF:"ta",\u30C1:"chi",\u30C4:"tsu",\u30C6:"te",\u30C8:"to",\u30C0:"da",\u30C2:"di",\u30C5:"du",\u30C7:"de",\u30C9:"do",\u30CA:"na",\u30CB:"ni",\u30CC:"nu",\u30CD:"ne",\u30CE:"no",\u30CF:"ha",\u30D2:"hi",\u30D5:"fu",\u30D8:"he",\u30DB:"ho",\u30D0:"ba",\u30D3:"bi",\u30D6:"bu",\u30D9:"be",\u30DC:"bo",\u30D1:"pa",\u30D4:"pi",\u30D7:"pu",\u30DA:"pe",\u30DD:"po",\u30DE:"ma",\u30DF:"mi",\u30E0:"mu",\u30E1:"me",\u30E2:"mo",\u30E4:"ya",\u30E6:"yu",\u30E8:"yo",\u30E9:"ra",\u30EA:"ri",\u30EB:"ru",\u30EC:"re",\u30ED:"ro",\u30EF:"wa",\u30F2:"wo",\u30F3:"n",\u30F4:"vu",\u30A1:"a",\u30A3:"i",\u30A5:"u",\u30A7:"e",\u30A9:"o",\u30E3:"ya",\u30E5:"yu",\u30E7:"yo"},et={\u30AD\u30E3:"kya",\u30AD\u30E5:"kyu",\u30AD\u30E7:"kyo",\u30AD\u30A7:"kye",\u30AE\u30E3:"gya",\u30AE\u30E5:"gyu",\u30AE\u30E7:"gyo",\u30B7\u30E3:"sha",\u30B7\u30E5:"shu",\u30B7\u30E7:"sho",\u30B7\u30A7:"she",\u30B8\u30E3:"ja",\u30B8\u30E5:"ju",\u30B8\u30E7:"jo",\u30B8\u30A7:"je",\u30C1\u30E3:"cha",\u30C1\u30E5:"chu",\u30C1\u30E7:"cho",\u30C1\u30A7:"che",\u30C2\u30E3:"dya",\u30C2\u30E5:"dyu",\u30C2\u30E7:"dyo",\u30CB\u30E3:"nya",\u30CB\u30E5:"nyu",\u30CB\u30E7:"nyo",\u30D2\u30E3:"hya",\u30D2\u30E5:"hyu",\u30D2\u30E7:"hyo",\u30D3\u30E3:"bya",\u30D3\u30E5:"byu",\u30D3\u30E7:"byo",\u30D4\u30E3:"pya",\u30D4\u30E5:"pyu",\u30D4\u30E7:"pyo",\u30DF\u30E3:"mya",\u30DF\u30E5:"myu",\u30DF\u30E7:"myo",\u30EA\u30E3:"rya",\u30EA\u30E5:"ryu",\u30EA\u30E7:"ryo",\u30D5\u30A1:"fa",\u30D5\u30A3:"fi",\u30D5\u30A7:"fe",\u30D5\u30A9:"fo",\u30F4\u30A1:"va",\u30F4\u30A3:"vi",\u30F4\u30A7:"ve",\u30F4\u30A9:"vo",\u30A6\u30A3:"wi",\u30A6\u30A7:"we",\u30A6\u30A9:"wo",\u30C6\u30A3:"ti",\u30C8\u30A5:"tu",\u30C7\u30A3:"di",\u30C9\u30A5:"du",\u30C4\u30A1:"tsa",\u30C4\u30A3:"tsi",\u30C4\u30A7:"tse",\u30C4\u30A9:"tso",\u30A4\u30A7:"ye"};var en={single:qn,digraphs:nt},on={single:tt,digraphs:et};function rn(n){return n==="both"||n==="kunrei"}function sn(n){return n==="both"||n==="hepburn"}function dn(n){return rn(n)?en:sn(n)?on:null}function ot(n,t){if(n.length===2){let e=t.digraphs[n];if(e!==void 0)return e}let o=t.single[n];return o!==void 0?o:n.toLowerCase()}function rt(n){return/^[bcdfghjklmnpqrstvwxyz]/.test(n)}var Yt="\u30C3",Zt="\u30FC",qt=new Set(["\u30A1","\u30A3","\u30A5","\u30A7","\u30A9","\u30E3","\u30E5","\u30E7","\u30EE"]),ne=/[ァ-ヺー]/,te=/[ァ-ヺ]/,ee=/[0-9a-z]/;function oe(n){return ne.test(n)||ee.test(n)}function re(n){let t=[],o=0,e=!1,r=-1;for(;o<n.length;){let i=n[o];if(i===Yt){e||(e=!0,r=o),o+=1;continue}if(i===Zt){let l=t[t.length-1];l&&(l.kanaLen+=1),o+=1;continue}let c=e?r:o,s=o+1<n.length?n[o+1]:"",a=s!==""&&qt.has(s)&&te.test(i)?2:1,f=n.slice(o,o+a);t.push({core:f,sokuon:e,kanaStart:c,kanaLen:o+a-c}),e=!1,r=-1,o+=a}return t}function se(n,t){let o=[],e=new Set,r=0,i="";for(let c of n){let s=ot(c.core,t);c.sokuon&&s.length>0&&rt(s)&&(s=s[0]+s),e.add(r),o.push({kanaStart:c.kanaStart,kanaLen:c.kanaLen,romajiStart:r,romajiLen:s.length}),r+=s.length,i+=s}return{text:i,syllables:o,boundaries:e}}function cn(n,t){return se(re(n),t)}function kn(n,t){return cn(n,t).text}function st(n){let t=new Set([0]);for(let o=0;o<n.length;o++)if(!oe(n[o])){let e=o+1;e<n.length&&t.add(e)}return t}function mn(n){let t="^"+n+"$",o=new Set;for(let e=0;e+1<t.length;e++)o.add(t.slice(e,e+2));return o}function C(n){let t=0;for(let o=0;o<n.length;o++)t|=1<<n.charCodeAt(o)%31;return t}function it(n){let t=0,o=n;for(;o!==0;)o&=o-1,t++;return t}var ct=/[a-z]/;function ie(n,t){let o=st(n.text),e=n.text,r=i=>t.slice(n.map[i][0],n.map[i][1]);for(let i=1;i<e.length;i++){if(!ct.test(e[i])||!ct.test(e[i-1]))continue;let c=r(i),s=r(i-1);c!==c.toLowerCase()&&s===s.toLowerCase()&&o.add(i)}return o}function Ln(n,t){let o=new Set;if(n===null)return o;for(let e of n.syllables)t.has(e.kanaStart)&&o.add(e.romajiStart);return o}function gn(n){return[...n].sort((t,o)=>t-o)}function at(n,t,o){let e=Zn(n),r=rn(o)?cn(e.text,en):null,i=sn(o)?cn(e.text,on):null,c=ie(e,n),s=Ln(r,c),a=Ln(i,c),f=dn(o),l=f!==null&&e.text.includes("\u30FC")?cn(e.text.replaceAll("\u30FC","-"),f):null,u=Ln(l,c);return{refIndex:t,raw:n,kana:e,kanaBoundaries:c,kunreiHeads:s,hepburnHeads:a,kanaHeadList:gn(c),kunreiHeadList:gn(s),hepburnHeadList:gn(a),long:l,longHeads:u,longHeadList:gn(u),longMask:l?C(l.text):0,kanaMask:C(e.text),kunreiMask:r?C(r.text):0,hepburnMask:i?C(i.text):0,kunrei:r,hepburn:i,hasKeystrokeChar:/[a-z'-]/.test(e.text),bigrams:null}}function lt(n){return n.bigrams===null&&(n.bigrams=mn(n.kana.text)),n.bigrams}var ce={a:"\u3042",i:"\u3044",u:"\u3046",e:"\u3048",o:"\u304A",k:{a:"\u304B",i:"\u304D",u:"\u304F",e:"\u3051",o:"\u3053"},s:{a:"\u3055",i:"\u3057",u:"\u3059",e:"\u305B",o:"\u305D"},t:{a:"\u305F",i:"\u3061",u:"\u3064",e:"\u3066",o:"\u3068"},n:{a:"\u306A",i:"\u306B",u:"\u306C",e:"\u306D",o:"\u306E"},h:{a:"\u306F",i:"\u3072",u:"\u3075",e:"\u3078",o:"\u307B"},m:{a:"\u307E",i:"\u307F",u:"\u3080",e:"\u3081",o:"\u3082"},y:{a:"\u3084",u:"\u3086",o:"\u3088"},r:{a:"\u3089",i:"\u308A",u:"\u308B",e:"\u308C",o:"\u308D"},w:{a:"\u308F",i:"\u3090",e:"\u3091",o:"\u3092"},g:{a:"\u304C",i:"\u304E",u:"\u3050",e:"\u3052",o:"\u3054"},z:{a:"\u3056",i:"\u3058",u:"\u305A",e:"\u305C",o:"\u305E"},d:{a:"\u3060",i:"\u3062",u:"\u3065",e:"\u3067",o:"\u3069"},b:{a:"\u3070",i:"\u3073",u:"\u3076",e:"\u3079",o:"\u307C"},p:{a:"\u3071",i:"\u3074",u:"\u3077",e:"\u307A",o:"\u307D"},v:{a:"\u3094\u3041",i:"\u3094\u3043",u:"\u3094",e:"\u3094\u3047",o:"\u3094\u3049"}},ut={k:"\u304D",s:"\u3057",t:"\u3061",n:"\u306B",h:"\u3072",m:"\u307F",r:"\u308A",g:"\u304E",z:"\u3058",d:"\u3062",b:"\u3073",p:"\u3074",v:"\u3094",q:"\u304F",f:"\u3075"},ht={ya:"\u3083",yi:"\u3043",yu:"\u3085",ye:"\u3047",yo:"\u3087"},pt={a:"\u3041",i:"\u3043",u:"\u3045",e:"\u3047",o:"\u3049"},ft={sh:"sy",ch:"ty",cy:"ty",chy:"ty",shy:"sy",j:"zy",jy:"zy",shi:"si",chi:"ti",tsu:"tu",ji:"zi",fu:"hu"},ae={tu:"\u3063",wa:"\u308E",ka:"\u30F5",ke:"\u30F6",...pt,...ht},le={yi:"\u3044",wu:"\u3046",ye:"\u3044\u3047",wi:"\u3046\u3043",we:"\u3046\u3047",kwa:"\u304F\u3041",whu:"\u3046",tha:"\u3066\u3083",thu:"\u3066\u3085",tho:"\u3066\u3087",dha:"\u3067\u3083",dhu:"\u3067\u3085",dho:"\u3067\u3087"},ue={wh:"\u3046",kw:"\u304F",qw:"\u304F",q:"\u304F",gw:"\u3050",sw:"\u3059",ts:"\u3064",th:"\u3066",tw:"\u3068",dh:"\u3067",dw:"\u3069",fw:"\u3075",f:"\u3075"};function dt(n){return Object.entries(n).reduce((t,[o,e])=>(t[o]=typeof e=="string"?{"":e}:dt(e),t),{})}function fe(n,t){return t.split("").reduce((o,e)=>(o[e]===void 0&&(o[e]={}),o[e]),n)}function he(){let n=dt(ce),t=r=>fe(n,r);Object.entries(ut).forEach(([r,i])=>{Object.entries(ht).forEach(([c,s])=>{t(r+c)[""]=i+s})}),Object.entries(ue).forEach(([r,i])=>{Object.entries(pt).forEach(([c,s])=>{t(r+c)[""]=i+s})}),["n","n'","xn"].forEach(r=>{t(r)[""]="\u3093"}),n.c=JSON.parse(JSON.stringify(n.k)),Object.entries(ft).forEach(([r,i])=>{let c=r.slice(0,r.length-1),s=r.charAt(r.length-1),a=t(c);a[s]=JSON.parse(JSON.stringify(t(i)))});function o(r){return[...Object.entries(ft),["c","k"]].reduce((i,[c,s])=>r.startsWith(s)?i.concat(r.replace(s,c)):i,[])}Object.entries(ae).forEach(([r,i])=>{let c=u=>u.charAt(u.length-1),s=u=>u.slice(0,u.length-1),a=`x${r}`,f=t(a);f[""]=i;let l=t(`l${s(r)}`);l[c(r)]=f,o(r).forEach(u=>{["l","x"].forEach(h=>{let d=t(h+s(u));d[c(u)]=t(h+r)})})}),Object.entries(le).forEach(([r,i])=>{t(r)[""]=i});function e(r){return Object.entries(r).reduce((i,[c,s])=>(i[c]=c?e(s):`\u3063${s}`,i),{})}return[...Object.keys(ut),"c","y","w","j"].forEach(r=>{let i=n[r];i[r]=e(i)}),delete n.n.n,Object.freeze(JSON.parse(JSON.stringify(n)))}var On=null;function kt(){return On==null&&(On=he()),On}function pe(n,t){let o=t;function e(c,s){if(c[s]!==void 0)return Object.assign({"":c[""]+s},c[s])}function r(c,s){let a=c.charAt(0);return i(Object.assign({"":a},o[a]),c.slice(1),s,s+1)}function i(c,s,a,f){if(!s)return c[""]?[[a,f,c[""]]]:[];if(Object.keys(c).length===1)return[[a,f,c[""]],...r(s,f)];let l=e(c,s.charAt(0));return l===void 0?[[a,f,c[""]],...r(s,f)]:i(l,s.slice(1),a,f+1)}return r(n,0)}function mt(n){return pe(n.toLowerCase(),kt()).map(t=>t[2]??"").join("")}function gt(){let n=[],t=(o,e)=>{for(let[r,i]of Object.entries(o))r===""?e!==""&&/^[ぁ-ゖヵヶ]+$/.test(i)&&n.push([e,i]):t(i,e+r)};return t(kt(),""),n}function Cn(n){return mt(n)}var de=new Set(["ci","ce","qu"]),ke=[["ci","\u3057"],["ce","\u305B"],["qu","\u304F"],["nn","\u3093"],["-","\u30FC"],["t'i","\u3066\u3043"],["t'yu","\u3066\u3085"],["d'i","\u3067\u3043"],["d'yu","\u3067\u3085"],["t'u","\u3068\u3045"],["d'u","\u3069\u3045"],["hwa","\u3075\u3041"],["hwi","\u3075\u3043"],["hwe","\u3075\u3047"],["hwo","\u3075\u3049"],["hwyu","\u3075\u3085"],["zwa","\u305A\u3041"],["zwi","\u305A\u3043"],["zwu","\u305A\u3045"],["zwe","\u305A\u3047"],["zwo","\u305A\u3049"],["wyi","\u3090"],["wye","\u3091"]],me=new Set("qvlxkgszjtdhfbpmyrwc"),An=null,Rn=0;function Hn(){if(An!==null)return An;let n=new Map,t=(e,r)=>{let i=G(r,"postKana"),c=n.get(i);c===void 0&&n.set(i,c=new Set),c.add(e)},o=[];for(let[e,r]of gt())de.has(e)||r.startsWith("\u3063")&&e.length>1&&e[0]===e[1]||o.push([e,r]);o.push(...ke);for(let[e,r]of o)t(e,r),!r.startsWith("\u3063")&&(me.has(e[0])&&t(e[0]+e,"\u3063"+r),e.startsWith("ch")&&t("t"+e,"\u3063"+r));for(let e of n.keys())e.length>Rn&&(Rn=e.length);return An=new Map([...n].map(([e,r])=>[e,[...r]])),An}function At(){return Hn(),Rn}var ge=32;function wt(n){let t=Hn(),o=At(),e=n.length,r=Array.from({length:e+1},(A,T)=>[T]),i=e+1,c=[],s=new Set,a=(A,T,_,M)=>{let L=`${A},${T},${_},${M}`;s.has(L)||(s.add(L),c.push([A,T,_,M]))},f=!1;for(let A=0;A<e;A++){a(A,A+1,n[A],0);let T=new Map;for(let _=1;_<=o&&A+_<=e;_++){let M=t.get(n.slice(A,A+_));if(M!==void 0)for(let L of M){f=!0;let v=A;for(let K=0;K<L.length-1;K++){let tn=L.slice(0,K+1),z=T.get(tn);z===void 0&&(z=i++,T.set(tn,z),r[A].push(z)),a(v,z,L[K],1),v=z}a(v,A+_,L[L.length-1],1)}}}if(!f)return null;let l=new Int32Array(i),u=0;for(let A of r)for(let T of A)l[T]=u++;let h=c.length,d=c.map(([A,T,_,M])=>[l[A],l[T],_,M]);d.sort((A,T)=>A[0]-T[0]||A[1]-T[1]);let k=new Int32Array(h),S=new Int32Array(h),x=new Array(h),w=new Uint8Array(h),g=new Int32Array(h);d.forEach(([A,T,_,M],L)=>{k[L]=A,S[L]=T,x[L]=_,w[L]=M,g[L]=C(_)});let m=u,y=new Int32Array(m+1);for(let A=0;A<h;A++)y[k[A]+1]++;for(let A=0;A<m;A++)y[A+1]+=y[A];let b=new Int32Array(h);for(let A=0;A<h;A++)b[A]=A;let N=new Set;for(let A=y[0];A<y[1];A++)N.add(x[b[A]]);let p=new Set([...N].map(A=>A.charCodeAt(0))),I=[],E=(A,T,_)=>{if(I!==null){if(A===l[e]){I.length>=ge?I=null:I.push([T,_]);return}for(let M=y[A];M<y[A+1];M++)E(S[M],T+x[M],_||w[M]===1)}};return E(0,"",!1),{nodeCount:m,final:l[e],from:k,to:S,ch:x,ks:w,bit:g,outStart:y,outEdges:b,firstChars:N,firstCodes:p,paths:I}}var Sn=new Uint8Array(0);function It(n){return Sn.length<n&&(Sn=new Uint8Array(n)),Sn.fill(0,0,n),Sn}function xn(n,t){let o=It(n.nodeCount);o[0]=1;for(let e=0;e<n.from.length;e++)o[n.from[e]]&&(n.bit[e]&t)!==0&&(o[n.to[e]]=1);return o[n.final]===1}function bt(n,t,o){let e=It(n.nodeCount);e[0]=1;for(let r=0;r<t.length;r++){let i=t[r];for(let c=n.nodeCount-1;c>=0;c--)if(e[c])for(let s=n.outStart[c];s<n.outStart[c+1];s++){let a=n.outEdges[s];n.ch[a]===i&&(o&&c===0&&n.to[a]===n.final||(e[n.to[a]]=1))}if(e[n.final])return!0}return!1}var St=new Int32Array(0),xt=new Int32Array(0),X=new Int32Array(0),$=0;function yn(n,t,o,e){e.plain=0,e.ks=0;let r=n.nodeCount*2;X.length<r&&(X=new Int32Array(r),St=new Int32Array(r),xt=new Int32Array(r),$=0);let i=St,c=xt,s=1;i[0]=0;let a=n.final*2;for(let f=o;f<t.length&&s>0;f++){let l=t[f];$++;let u=0;for(let k=0;k<s;k++){let S=i[k],x=S>>1,w=S&1;for(let g=n.outStart[x];g<n.outStart[x+1];g++){let m=n.outEdges[g];if(n.ch[m]!==l)continue;let y=n.to[m]*2+(w|n.ks[m]);X[y]!==$&&(X[y]=$,c[u++]=y)}}let h=f-o+1;X[a]===$&&(e.plain=h),X[a+1]===$&&(e.ks=h);let d=i;i=c,c=d,s=u}}var yt=new WeakMap;function an(n){let t=yt.get(n);if(t!==void 0)return t;let o=n.nodeCount,e=Array.from({length:o},()=>[]);e[0].push(0);for(let p=0;p<o;p++)for(let I=n.outStart[p];I<n.outStart[p+1];I++){let E=n.to[n.outEdges[I]];for(let A of e[p])e[E].includes(A+1)||e[E].push(A+1)}for(let p of e)p.sort((I,E)=>I-E);let r=new Int32Array(o+1);for(let p=0;p<o;p++)r[p+1]=r[p]+e[p].length;let i=r[o],c=(p,I)=>r[p]+e[p].indexOf(I),s=new Int32Array(i);for(let p=0;p<o;p++)for(let I of e[p])s[c(p,I)]=I;let a=Array.from({length:i},()=>[]);for(let p=0;p<n.from.length;p++){let I=n.from[p],E=n.to[p];for(let A of e[I])a[c(E,A+1)].push([c(I,A),n.ch[p].charCodeAt(0),n.bit[p],n.ks[p]])}let f=new Int32Array(i+1);for(let p=0;p<i;p++)f[p+1]=f[p]+a[p].length;let l=f[i],u=new Int32Array(l),h=new Int32Array(l),d=new Int32Array(l),k=new Uint8Array(l),S=0;for(let p of a)for(let[I,E,A,T]of p)u[S]=I,h[S]=E,d[S]=A,k[S++]=T;let x=new Int32Array(i+1);for(let p=0;p<l;p++)x[u[p]+1]++;for(let p=0;p<i;p++)x[p+1]+=x[p];let w=x.slice(0,i),g=new Int32Array(l),m=new Int32Array(l),y=new Uint8Array(l);for(let p=0;p<i;p++)for(let I=f[p];I<f[p+1];I++){let E=w[u[I]]++;g[E]=p,m[E]=h[I],y[E]=k[I]}let b=e[n.final].map(p=>[c(n.final,p),p]),N={X:i,depth:s,inStart:f,inFrom:u,inCh:h,inBit:d,inKs:k,outStart:x,outTo:g,outCh:m,outKs:y,finals:b};return yt.set(n,N),N}function Et(n,t,o="phonetic"){let e=G(n,"preKana"),r=G(o==="phonetic"?Cn(e):e,"postKana"),i=o==="phonetic",c=i&&rn(t)?kn(r,en):null,s=i&&sn(t)?kn(r,on):null,a=i?Se(e,t):null;return{kana:r,singleChar:xe(r),kunrei:c,hepburn:s,kanaMask:C(r),kunreiMask:c!==null?C(c):0,hepburnMask:s!==null?C(s):0,long:a,longMask:a!==null?C(a):0,lattice:i?null:wt(r),shadowed:!1,bigrams:null}}var Ae=/([aiueo])\1|[aiueo]-/;function Se(n,t){let o=dn(t);if(o===null||!Ae.test(n))return null;let e=n.replace(/([aiueo])\1+/g,"$1-");return kn(G(Cn(e),"postKana"),o)}function xe(n){return n.length===0?!1:n.length===String.fromCodePoint(n.codePointAt(0)).length}function Tt(n){return n.bigrams===null&&(n.bigrams=mn(n.kana)),n.bigrams}var ye=["-"," ","\u30FB","_"];function we(n){return n===!1||n===void 0?[]:n===!0?ye:n}function Ie(n){return n.replace(/[\\\]^-]/g,"\\$&")}function Kn(n,t){let o=we(t);if(o.length===0)return n===""?[]:[n];let e=o.map(Ie).join(""),r=new RegExp(`[${e}]`,"g");if(!r.test(n))return n===""?[]:[n];let i=[],c=new Set,s=l=>{l!==""&&!c.has(l)&&(c.add(l),i.push(l))};s(n);let a=[...n].at(-1);return o.includes(a)||s(n.replace(r,"")),s(n.replace(r," ")),i}var un=1,q=.9,D=.97,B=.87,Bn=.99,O=3,H=2,Y=1,P=0,fn=["inner","initials","word","prefix"];function W(n,t){return(n+t)/4}function Z(n,t,o,e,r){return{intraScore:W(n,t),cls:n,space:o,offset:e,len:r,positions:null}}function be(n,t){let o=[];for(let e=0;e<n;e++)o.push(t+e);return o}function Ee(n,t,o,e){return n.length===0||t.length===0||!t.startsWith(n)?null:Z(O,n.length/t.length*e,o,0,n.length)}function Te(n,t,o,e,r,i){if(n.length<i||t.length===0)return null;let c=t.indexOf(n,1);if(c<0)return null;let s=n.length/t.length*r;for(let a=c;a>=0;a=t.indexOf(n,a+1))if(o.has(a))return Z(H,s,e,a,n.length);return Z(P,s,e,c,n.length)}var Un=new Uint8Array(0),jn=new Uint8Array(0);function Fn(n,t,o,e,r){let i=n.length,c=t.length,s=o.length;if(i<2||c===0||s<2)return null;let a=n.charCodeAt(0),f=!1;for(let x=0;x<s&&!f;x++)f=t.charCodeAt(o[x])===a;if(!f)return null;Un.length<i*s&&(Un=new Uint8Array(i*s)),jn.length<(i+1)*(s+1)&&(jn=new Uint8Array((i+1)*(s+1)));let l=Un,u=jn,h=(x,w)=>{let g=o[w],m=0;for(;x+m<i&&g+m<c&&n.charCodeAt(x+m)===t.charCodeAt(g+m);)m++;return m},d=(x,w)=>{let g=o[x]+w,m=x+1;for(;m<s&&o[m]<g;)m++;return m};for(let x=i-1;x>=0;x--){for(let w=0;w<s;w++){let g=h(x,w),m=0;for(let y=1;y<=g&&!m;y++)(x+y===i||u[(x+y)*(s+1)+d(w,y)])&&(m=1);l[x*s+w]=m}u[x*(s+1)+s]=0;for(let w=s-1;w>=0;w--)u[x*(s+1)+w]=l[x*s+w]|u[x*(s+1)+w+1]}if(!u[0])return null;let k=[],S=0;for(;!l[S];)S++;for(let x=0;x<i;){let w=h(x,S);for(;!(x+w===i||u[(x+w)*(s+1)+d(S,w)]);)w--;for(let g=0;g<w;g++)k.push(o[S]+g);if(x+=w,x<i)for(S=d(S,w);!l[x*s+S];)S++}return{intraScore:W(Y,i/c*r),cls:Y,space:e,offset:0,len:0,positions:k}}var wn={plain:0,ks:0},j=[new Int32Array(4),new Int32Array(4)],Q=[new Int32Array(4),new Int32Array(4)];function Nt(n,t,o,e){o>j[n][t]&&(j[n][t]=o,Q[n][t]=e)}function Ne(n,t,o,e){let r=t.length;if(r===0)return;for(let s=0;s<2;s++)j[s].fill(0),Q[s].fill(0);if(n.paths!==null)for(let[s,a]of n.paths){let f=a?1:0;for(let l=t.indexOf(s);l>=0;l=t.indexOf(s,l+1)){let u=l===0?O:o.has(l)?H:P;f===1&&u!==O&&s.length<2||(s.length>j[f][u]||s.length===j[f][u]&&l<Q[f][u])&&(j[f][u]=s.length,Q[f][u]=l)}}else for(let s=0;s<r;s++){if(!n.firstCodes.has(t.charCodeAt(s)))continue;yn(n,t,s,wn);let a=s===0?O:o.has(s)?H:P;Nt(0,a,wn.plain,s),(a===O||wn.ks>=2)&&Nt(1,a,wn.ks,s)}let i=[un,D],c=[q,B];for(let s=0;s<2;s++){let a=j[s][O];a>0&&F(Z(O,a/r*i[s],"kana",0,a))}for(let s=0;s<2;s++){let a=j[s][H];a>0&&F(Z(H,a/r*c[s],"kana",Q[s][H],a))}if(e.length>=2){let s=an(n),a=s.finals[s.finals.length-1][1];if(a>=2&&(R===null||R.intraScore<W(Y,a/r*q))){let f=_e(n,t,e);for(let l=0;l<2;l++){let u=f[l];if(u){let h=W(Y,u.length/r*c[l]);F({intraScore:h,cls:Y,space:"kana",offset:0,len:0,positions:u})}}}}for(let s=0;s<2;s++){let a=j[s][P];a>0&&F(Z(P,a/r*c[s],"kana",Q[s][P],a))}}var U=new Int32Array(0),Pn=new Int32Array(0),J=new Int32Array(0),ln=new Int32Array(0),V=new Int32Array(0),In=new Int32Array(0),bn=new Int32Array(0),Dn=new Int32Array(0),En=0;function _e(n,t,o){let e=[null,null],r=t.length,i=!1;for(let d=0;d<o.length&&!i;d++)i=n.firstCodes.has(t.charCodeAt(o[d]));if(!i)return e;let c=an(n),{outStart:s,outTo:a,outCh:f,outKs:l}=c,u=c.X*2;U.length<u&&(U=new Int32Array(u),Pn=new Int32Array(u),J=new Int32Array(u),ln=new Int32Array(u),V=new Int32Array(u),In=new Int32Array(u),bn=new Int32Array(u),Dn=new Int32Array(u),En=0);let h=1<<30;U.fill(h,0,u),U[0]=0,J[0]=-1;for(let d of o){let k=0;for(let S=0;S<u;S++)U[S]<=d&&(ln[k]=S,V[k++]=S);for(let S=d;S<r&&k>0;S++){let x=t.charCodeAt(S);En++;let w=0;for(let y=0;y<k;y++){let b=ln[y],N=b>>1,p=b&1;for(let I=s[N];I<s[N+1];I++){if(f[I]!==x)continue;let E=a[I]*2+(p|l[I]);Dn[E]!==En&&(Dn[E]=En,In[w]=E,bn[w++]=V[y],S+1<U[E]&&(U[E]=S+1,Pn[E]=d,J[E]=V[y]))}}let g=ln;ln=In,In=g;let m=V;V=bn,bn=m,k=w}}for(let d=0;d<2;d++)for(let k=c.finals.length-1;k>=0&&e[d]===null;k--){let[S,x]=c.finals[k],w=S*2+d;if(x<2||U[w]>=h)continue;let g=[];for(let m=w;m>0&&J[m]!==-1;m=J[m]){let y=Pn[m];for(let b=U[m]-1;b>=y;b--)g.push(b);if(J[m]===0)break}e[d]=g.reverse()}return e}var R=null;function F(n){n!==null&&(R===null||n.intraScore>R.intraScore)&&(R=n)}function Tn(n,t,o,e,r,i,c,s,a,f){(a&~f)===0&&(F(Ee(n,t,r,i)),F(Te(n,t,o,r,c,s)),e.length>=2&&(R===null||R.intraScore<W(Y,n.length/t.length*c))&&F(Fn(n,t,e,r,c)))}var Nn=(n,t)=>{R=null;let o=t.kana.text;if(n.lattice!==null&&t.hasKeystrokeChar?xn(n.lattice,t.kanaMask)&&Ne(n.lattice,o,t.kanaBoundaries,t.kanaHeadList):n.shadowed||Tn(n.kana,o,t.kanaBoundaries,t.kanaHeadList,"kana",un,q,1,n.kanaMask,t.kanaMask),n.kunrei!==null&&t.kunrei!==null&&Tn(n.kunrei,t.kunrei.text,t.kunreiHeads,t.kunreiHeadList,"kunrei",D,B,2,n.kunreiMask,t.kunreiMask),n.hepburn!==null&&t.hepburn!==null){let r=Bn;Tn(n.hepburn,t.hepburn.text,t.hepburnHeads,t.hepburnHeadList,"hepburn",D*r,B*r,2,n.hepburnMask,t.hepburnMask)}if(n.long!==null&&t.long!==null&&Tn(n.long,t.long.text,t.longHeads,t.longHeadList,"long",D,B,2,n.longMask,t.longMask),R===null)return null;let e=R;return R=null,{tier:1,kind:fn[e.cls],intraScore:e.intraScore,space:e.space,positions:e.positions??be(e.len,e.offset)}};function Wn(n,t){for(let o of t)if(n>=o.romajiStart&&n<o.romajiStart+o.romajiLen){let e=[];for(let r=0;r<o.kanaLen;r++)e.push(o.kanaStart+r);return e}return[]}function vn(n){if(n.length===0)return[];n.sort((o,e)=>o[0]-e[0]||o[1]-e[1]);let t=[];for(let[o,e]of n){let r=t[t.length-1];r&&o<=r[1]?e>r[1]&&(r[1]=e):t.push([o,e])}return t}function zn(n,t){if(t.positions===null)return[];let o=new Set;if(t.space==="kana")for(let i of t.positions)o.add(i);else{let i=t.space==="kunrei"?n.kunrei:t.space==="hepburn"?n.hepburn:n.long;if(i)for(let c of t.positions)for(let s of Wn(c,i.syllables))o.add(s)}let e=n.kana.map,r=[];for(let i of o){let c=e[i];c&&r.push([c[0],c[1]])}return vn(r)}var Me=4096;function Le(n,t){let o=0,e=t.length-1;for(;o<e;){let r=o+e+1>>1;t[r]<=n?o=r:e=r-1}return o}function Oe(n,t){return t==="kunrei"?n.kunrei:t==="hepburn"?n.hepburn:t==="long"?n.long:null}function Ce(n,t){return t==="kunrei"?[n.kunreiHeads,n.kunreiHeadList]:t==="hepburn"?[n.hepburnHeads,n.hepburnHeadList]:t==="long"?[n.longHeads,n.longHeadList]:[n.kanaBoundaries,n.kanaHeadList]}function Gn(n,t,o,e,r,i,c){if(o&&i<H)return;let s=e==="kana"?r:r.flatMap(l=>Wn(l,Oe(t,e).syllables)),a=[...new Set(s.map(l=>Le(l,t.kanaHeadList)))].sort((l,u)=>l-u),f={tier:1,kind:fn[i],intraScore:W(i,c),space:e,positions:r};n.push({cls:i,raw:c,words:a,match:f})}function _t(n,t){return Array.from({length:t},(o,e)=>n+e)}function _n(n,t,o,e,r,i,c,s,a,f,l){if(e.length===0||r.length===0||(f&~l)!==0)return;let[u,h]=Ce(t,i),d=r.length;for(let S=r.indexOf(e);S>=0;S=r.indexOf(e,S+1)){let x=S===0?O:u.has(S)?H:P;if(x!==O&&e.length<a)continue;let w=x===O?c:s;Gn(n,t,o,i,_t(S,e.length),x,e.length/d*w)}let k=Fn(e,r,h,i,s);k!==null&&Gn(n,t,o,i,k.positions,k.cls,k.intraScore*4-k.cls)}var hn={plain:0,ks:0};function Re(n,t,o,e){let r=o.kana.text;if(t.lattice!==null&&o.hasKeystrokeChar){let i=t.lattice,c=r.length,s=(a,f,l)=>{let u=a===0?O:o.kanaBoundaries.has(a)?H:P;if(l&&u!==O&&f<2)return;let h=l?u===O?D:B:u===O?un:q;Gn(n,o,e,"kana",_t(a,f),u,f/c*h)};if(i.paths!==null)for(let[a,f]of i.paths)for(let l=r.indexOf(a);l>=0;l=r.indexOf(a,l+1))s(l,a.length,f);else for(let a=0;a<c;a++)i.firstCodes.has(r.charCodeAt(a))&&(yn(i,r,a,hn),hn.plain>0&&s(a,hn.plain,!1),hn.ks>0&&s(a,hn.ks,!0))}else t.shadowed||_n(n,o,e,t.kana,r,"kana",un,q,1,t.kanaMask,o.kanaMask);if(t.kunrei!==null&&o.kunrei!==null&&_n(n,o,e,t.kunrei,o.kunrei.text,"kunrei",D,B,2,t.kunreiMask,o.kunreiMask),t.hepburn!==null&&o.hepburn!==null){let i=Bn;_n(n,o,e,t.hepburn,o.hepburn.text,"hepburn",D*i,B*i,2,t.hepburnMask,o.hepburnMask)}t.long!==null&&o.long!==null&&_n(n,o,e,t.long,o.long.text,"long",D,B,2,t.longMask,o.longMask)}function He(n){let t=new Map;for(let o of n){let e=o.words.join(","),r=t.get(e);(r===void 0||o.match.intraScore>r.match.intraScore)&&t.set(e,o)}return[...t.values()].sort((o,e)=>e.match.intraScore-o.match.intraScore)}function Ke(n,t){return t===null?!0:n.cls!==t.cls?n.cls>t.cls:n.ordered!==t.ordered?n.ordered:n.raw>t.raw}function Ue(n){let t=n,o=s=>s.reduce((a,f)=>a*Math.max(1,f.length),1);for(let s=64;o(t)>Me&&s>1;s>>=1)t=n.map(a=>a.slice(0,s));let e=null,r=[],i=new Set,c=s=>{if(s===t.length){let a=r[0];for(let u of r)u.match.intraScore<a.match.intraScore&&(a=u);let f=!0;for(let u=1;u<r.length&&f;u++)f=r[u-1].words[r[u-1].words.length-1]<r[u].words[0];let l={cls:a.cls,raw:a.raw,ordered:f,parts:r.map(u=>u.match)};Ke(l,e)&&(e=l);return}for(let a of t[s])if(!a.words.some(f=>i.has(f))){for(let f of a.words)i.add(f);r.push(a),c(s+1),r.pop();for(let f of a.words)i.delete(f)}};return c(0),e}function Mt(n,t,o){let e=o;for(let i of n)e=e.filter(c=>i.some(s=>Nn(s,c)!==null));let r=new Map;for(let i of e){let c=[];for(let a=0;a<n.length;a++){let f=[];for(let l of n[a])Re(f,l,i,t[a]);if(f.length===0)break;c.push(He(f))}if(c.length<n.length)continue;let s=Ue(c);s!==null&&r.set(i.refIndex,s)}return r}var je=16,Pe=-3,De=-1,Be=8,Fe=4,We=2,ve=.55,ze=.3,Ge=.15,Lt=2,nn=-1e9,Xn=new Int32Array(0),Ot=new Uint8Array(0);function Xe(n){Xn.length<n&&(Xn=new Int32Array(n),Ot=new Uint8Array(n))}function $e(n,t){let o=0;for(let e=0;e<t.length&&o<n.length;e++)n[o]===t[e]&&o++;return o===n.length}function Ct(n,t,o){let e=n.length,r=t.length;if(e===0||r===0||!$e(n,t))return null;let i=r+1;Xe((e+1)*i);let c=Xn,s=Ot;for(let k=0;k<=r;k++)c[k]=0,s[k]=0;for(let k=1;k<=e;k++){let S=k*i,x=(k-1)*i,w=n[k-1];c[S]=nn,s[S]=0;for(let g=1;g<=r;g++){let m=nn,y=0,b=c[S+g-1];b>nn&&(m=b+(s[S+g-1]?Pe:De),y=0);let N=c[x+g-1];if(w===t[g-1]&&N>nn){let p=0;o.has(g-1)&&(p+=Be),s[x+g-1]&&(p+=Fe),k===1&&(p+=We);let I=N+je+p;I>=m&&(m=I,y=1)}c[S+g]=m,s[S+g]=y}}let a=e*i,f=-1,l=nn;for(let k=e;k<=r;k++)c[a+k]>l&&(l=c[a+k],f=k);if(f<0||l===nn)return null;let u=[],h=e,d=f;for(;h>0&&d>0;)s[h*i+d]&&(u.push(d-1),h--),d--;return u.reverse(),u}function Rt(n,t,o,e){let r=0;for(let l of n)e.has(l)&&r++;let i=r/t,c=1,s=1;for(let l=1;l<n.length;l++)n[l]===n[l-1]+1?(s++,s>c&&(c=s)):s=1;let a=c/t,f=1-n[0]/o;return ve*i+ze*a+Ge*f}function Je(n,t,o,e,r){if(t.length===0||!xn(n,o)||!bt(n,t,r))return null;let i=null,c=(s,a,f)=>{if(s===n.final){if(a.length<Lt)return;let l=Ct(a,t,e);if(l===null)return;let u=Rt(l,a.length,t.length,e);(i===null||u>i.intraScore)&&(i={intraScore:u,positions:l});return}for(let l=n.outStart[s];l<n.outStart[s+1];l++){let u=n.outEdges[l],h=n.ch[u],d=t.indexOf(h,f);d>=0&&c(n.to[u],a+h,d+1)}};return c(0,"",0),i}var Ht=(n,t)=>{let o=null,e=(i,c,s,a,f,l)=>{if(i===null||i.length<Lt||s.length===0||(c&~a)!==0)return;let u=Ct(i,s,f);if(u===null)return;let h=Rt(u,i.length,s.length,f);(o===null||h>o.intraScore)&&(o={intraScore:h,space:l,positions:u})};if(n.lattice!==null&&t.hasKeystrokeChar){let i=Je(n.lattice,t.kana.text,t.kanaMask,t.kanaBoundaries,n.singleChar);i!==null&&(o={intraScore:i.intraScore,space:"kana",positions:i.positions})}else n.shadowed||e(n.kana,n.kanaMask,t.kana.text,t.kanaMask,t.kanaBoundaries,"kana");if(t.kunrei&&e(n.kunrei,n.kunreiMask,t.kunrei.text,t.kunreiMask,t.kunrei.boundaries,"kunrei"),t.hepburn&&e(n.hepburn,n.hepburnMask,t.hepburn.text,t.hepburnMask,t.hepburn.boundaries,"hepburn"),t.long&&e(n.long,n.longMask,t.long.text,t.longMask,t.long.boundaries,"long"),o===null)return null;let r=o;return{tier:2,kind:"subsequence",intraScore:r.intraScore,space:r.space,positions:r.positions}};var Qn=2;function pn(n){return Math.max(1,Math.ceil(n/3))}var $n=new Int32Array(0);function Ve(n){return $n.length<n&&($n=new Int32Array(n)),$n}function Qe(n,t,o){let e=n.length,r=t.length;if(e===0)return 0;if(r+o<e)return o+1;let i=o+1,c=r+1,s=Ve((e+1)*c);for(let h=0;h<=Math.min(r,o);h++)s[h]=h;for(let h=1;h<=e;h++){let d=h*c,k=(h-1)*c,S=(h-2)*c,x=Math.max(1,h-o),w=Math.min(r,h+o),g=n[h-1],m=h>1?n[h-2]:"",y=h<=o?h:i;h<=o&&(s[d]=h);for(let b=x;b<=w;b++){let N=g===t[b-1]?0:1,p=b<=h-1+o?s[k+b]+1:i,I=b-1>=h-o?s[d+b-1]+1:i,E=Math.min(p,I,s[k+b-1]+N);h>1&&b>1&&g===t[b-2]&&m===t[b-1]&&(E=Math.min(E,s[S+b-2]+1)),s[d+b]=E,E<y&&(y=E)}if(y>o)return i}let a=e*c,f=Math.max(0,e-o),l=Math.min(r,e+o),u=s[a+f];for(let h=f+1;h<=l;h++)s[a+h]<u&&(u=s[a+h]);return u}var Jn=new Int32Array(0),Vn=new Int32Array(0);function Ye(n,t,o){let e=t.length;if(e===0)return null;let r=an(n),{X:i,inStart:c,inFrom:s,inCh:a,inBit:f}=r;Vn.length<i&&(Vn=new Int32Array(i));let l=Vn;l[0]=0;for(let g=1;g<i;g++){let m=1073741824;for(let y=c[g];y<c[g+1];y++){let b=l[s[y]]+((f[y]&o)===0?1:0);b<m&&(m=b)}l[g]=m}let u=-1;for(let[g,m]of r.finals)m>=Qn&&e+pn(m)>=m&&l[g]<=pn(m)&&(u=Math.max(u,pn(m)));if(u<0)return null;let h=1<<29,d=e+1;Jn.length<i*d&&(Jn=new Int32Array(i*d));let k=Jn,S=r.depth,x=(g,m)=>{let y=m-S[g];return m<0||y>u||y<-u?h:k[g*d+m]};for(let g=0;g<=Math.min(e,u);g++)k[g]=g;for(let g=1;g<i;g++){let m=S[g],y=Math.max(0,m-u),b=Math.min(e,m+u),N=g*d;for(let p=y;p<=b;p++){if(p===0){k[N]=m;continue}let I=t.charCodeAt(p-1),E=p>1?t.charCodeAt(p-2):-1,A=(p-1>=y?k[N+p-1]:h)+1;for(let T=c[g];T<c[g+1];T++){let _=s[T],M=a[T],L=x(_,p)+1,v=x(_,p-1)+(M===I?0:1);if(L<A&&(A=L),v<A&&(A=v),M===E){for(let K=c[_];K<c[_+1];K++)if(a[K]===I){let tn=x(s[K],p-2)+1;tn<A&&(A=tn)}}}k[N+p]=A}}let w=null;for(let[g,m]of r.finals){if(m<Qn)continue;let y=pn(m);if(e+y<m||l[g]>y)continue;let b=h;for(let p=Math.max(0,m-u);p<=Math.min(e,m+u);p++){let I=k[g*d+p];I<b&&(b=I)}if(b>y)continue;let N=1-b/(y+1);(w===null||N>w)&&(w=N)}return w}var Kt=(n,t)=>{let o=null,e=(i,c,s,a,f)=>{if(i===null||i.length<Qn||s.length===0)return;let l=pn(i.length);if(it(c&~a)>l)return;let u=Qe(i,s,l);if(u>l)return;let h=1-u/(l+1);(o===null||h>o.intraScore)&&(o={intraScore:h,space:f})};if(n.lattice!==null&&t.hasKeystrokeChar){let i=Ye(n.lattice,t.kana.text,t.kanaMask);i!==null&&(o={intraScore:i,space:"kana"})}else n.shadowed||e(n.kana,n.kanaMask,t.kana.text,t.kanaMask,"kana");if(t.kunrei&&n.kunrei!==null?e(n.kunrei,n.kunreiMask,t.kunrei.text,t.kunreiMask,"kunrei"):t.hepburn&&n.hepburn!==null&&e(n.hepburn,n.hepburnMask,t.hepburn.text,t.hepburnMask,"hepburn"),o===null)return null;let r=o;return{tier:3,kind:"typo",intraScore:r.intraScore,space:r.space,positions:null}};var Ze=.8,qe=.2,no=.3,Ut=(n,t)=>{if(n.shadowed)return null;let o=Tt(n),e=lt(t);if(o.size===0||e.size===0)return null;let r=0;for(let f of o)e.has(f)&&r++;let i=o.size-r,c=e.size-r,s=r+Ze*i+qe*c;if(s===0)return null;let a=r/s;return a<no?null:{tier:4,kind:"similar",intraScore:a,space:"kana",positions:null}};var to=[Nn,Ht,Kt,Ut];function Pt(n){return n==="literal"?["literal"]:n==="phonetic"?["phonetic"]:["literal","phonetic"]}function Dt(n,t,o){let e=o.map(r=>Et(n,t,r));if(e.length===2&&e[0].kana===e[1].kana){if(e[0].lattice===null)return[e[1]];e[0].shadowed=!0}return e}function eo(n){return n<0?0:n>1?1:n}function oo(n){return(4-n.tier+eo(n.intraScore))/4}function ro(n,t,o){let e=null;for(let r of o){let i=n(r,t);if(i===null)continue;let c=oo(i);(e===null||c>e.score)&&(e={refIndex:t.refIndex,score:c,tier:i.tier,match:i})}return e}function Bt(n,t,o){let e=n.trim();if(e==="")return[];let r=e.split(/\s+/u);return r.length>=2?io(e,r,t,o):Ft(e,t,o)}var so={prefix:3,word:2,initials:1,inner:0};function jt(n,t,o){return(3+(n+(t?.5:0)+.5*o)/4)/4}function io(n,t,o,e){let r=Pt(e.matching),i=t.map(f=>Kn(f,e.separatorExpansion).flatMap(l=>Dt(l,e.romaji,r))),c=t.map(f=>[...f].length===1),s=new Map;for(let f of Ft(n,o,{...e,minScore:0})){if(f.tier!==1){s.set(f.refIndex,f);continue}let l=so[f.match.kind];s.set(f.refIndex,{...f,score:jt(l,!0,f.match.intraScore*4-l)})}for(let[f,l]of Mt(i,c,o)){let u=jt(l.cls,l.ordered,l.raw),h=s.get(f);if(h!==void 0&&h.score>=u)continue;let d={tier:1,kind:fn[l.cls],intraScore:u*4-3,space:"kana",positions:null};s.set(f,{refIndex:f,score:u,tier:1,match:d,parts:l.parts})}let a=[...s.values()].filter(f=>f.score>=e.minScore);return a.sort((f,l)=>l.score-f.score||f.refIndex-l.refIndex),e.limit!==void 0?a.slice(0,e.limit):a}function Ft(n,t,o){let e=Kn(n,o.separatorExpansion);if(e.length===0)return[];let r=Pt(o.matching),i=e.flatMap(u=>Dt(u,o.romaji,r)),c=to.slice(0,o.maxTier),{limit:s,minScore:a}=o,f=[],l=new Uint8Array(t.length);for(let u of c){for(let h=0;h<t.length;h++){if(l[h])continue;let d=ro(u,t[h],i);d!==null&&(l[h]=1,d.score>=a&&f.push(d))}if(s!==void 0&&f.length>=s)break}return f.sort((u,h)=>h.score-u.score||u.refIndex-h.refIndex),s!==void 0?f.slice(0,s):f}var co=3,ao=0;function lo(n,t,o,e){return{romaji:n,separatorExpansion:t,matching:o,maxTier:e.maxTier??co,minScore:e.minScore??ao,limit:e.limit,includeMatches:e.includeMatches??!1}}function Wt(n,t={}){let o=t.getText??(a=>a),e=t.romaji??"both",r=t.separatorExpansion??!1,i=t.matching??"both",c={limit:t.limit,maxTier:t.maxTier,minScore:t.minScore,includeMatches:t.includeMatches},s=n.map((a,f)=>at(o(a),f,e));return{size:n.length,search(a,f={}){let l={...c,...f},u=lo(e,r,i,l);return Bt(a,s,u).map(d=>{let k={item:n[d.refIndex],refIndex:d.refIndex,score:d.score,tier:d.tier,kind:d.match.kind};return u.includeMatches&&d.parts!==void 0?k.matches=vn(d.parts.flatMap(S=>zn(s[d.refIndex],S))):u.includeMatches&&d.match.positions!==null&&(k.matches=zn(s[d.refIndex],d.match)),k})}}}function uo(n,t,o={}){return Wt(t,o).search(n)}return Jt(fo);})();
|