@ycookiey/yfuzzy 0.4.0 → 0.4.1

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/dist/entry.d.ts CHANGED
@@ -14,6 +14,10 @@ export interface IndexEntry {
14
14
  /** romaji 空間の単語の頭(単語の頭のかなから始まる音節の先頭。tier 1 の段、spec 4.1) */
15
15
  readonly kunreiHeads: ReadonlySet<number>;
16
16
  readonly hepburnHeads: ReadonlySet<number>;
17
+ /** 上の各単語の頭の昇順の一覧(tier 1 の頭文字の一致用) */
18
+ readonly kanaHeadList: readonly number[];
19
+ readonly kunreiHeadList: readonly number[];
20
+ readonly hepburnHeadList: readonly number[];
17
21
  /** 各空間の文字集合マスク(前置フィルタ用、空間が無効なら 0) */
18
22
  readonly kanaMask: number;
19
23
  readonly kunreiMask: number;
@@ -1 +1 @@
1
- {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAI9E,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+BAA+B;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7B;AA0BD,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAoB1F;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAG5D"}
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAI9E,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,qCAAqC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+BAA+B;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7B;AA8BD,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAyB1F;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAG5D"}
package/dist/entry.js CHANGED
@@ -31,19 +31,27 @@ function romajiHeads(form, heads) {
31
31
  out.add(s.romajiStart);
32
32
  return out;
33
33
  }
34
+ function sorted(set) {
35
+ return [...set].sort((a, b) => a - b);
36
+ }
34
37
  /** 1 item からエントリを構築する */
35
38
  export function buildEntry(raw, refIndex, romaji) {
36
39
  const kana = normalize(raw);
37
40
  const kunrei = kunreiEnabled(romaji) ? toRomajiForm(kana.text, KUNREI) : null;
38
41
  const hepburn = hepburnEnabled(romaji) ? toRomajiForm(kana.text, HEPBURN) : null;
39
42
  const heads = wordHeads(kana, raw);
43
+ const kunreiHeads = romajiHeads(kunrei, heads);
44
+ const hepburnHeads = romajiHeads(hepburn, heads);
40
45
  return {
41
46
  refIndex,
42
47
  raw,
43
48
  kana,
44
49
  kanaBoundaries: heads,
45
- kunreiHeads: romajiHeads(kunrei, heads),
46
- hepburnHeads: romajiHeads(hepburn, heads),
50
+ kunreiHeads,
51
+ hepburnHeads,
52
+ kanaHeadList: sorted(heads),
53
+ kunreiHeadList: sorted(kunreiHeads),
54
+ hepburnHeadList: sorted(hepburnHeads),
47
55
  kanaMask: charMask(kana.text),
48
56
  kunreiMask: kunrei ? charMask(kunrei.text) : 0,
49
57
  hepburnMask: hepburn ? charMask(hepburn.text) : 0,
package/dist/entry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"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"}
package/dist/lattice.d.ts CHANGED
@@ -14,6 +14,10 @@ export interface Lattice {
14
14
  readonly outEdges: Int32Array;
15
15
  /** 始点から出る辺の文字 */
16
16
  readonly firstChars: ReadonlySet<string>;
17
+ /** 同じく文字コード(data.charCodeAt と照らす) */
18
+ readonly firstCodes: ReadonlySet<number>;
19
+ /** 始点→終端の経路(文字列, 打鍵の辺を通るか)。PATH_LIMIT 本を超えるときは null(状態遷移で照合する) */
20
+ readonly paths: readonly (readonly [string, boolean])[] | null;
17
21
  }
18
22
  /** 正規化済み literal 文字列からラティスを作る。打鍵の辺が無ければ null(文字列照合で足りる) */
19
23
  export declare function buildLattice(s: string): Lattice | null;
@@ -46,6 +50,11 @@ export interface Expanded {
46
50
  readonly inBit: Int32Array;
47
51
  /** 入り辺が打鍵の辺か */
48
52
  readonly inKs: Uint8Array;
53
+ /** 状態 x から出る辺 [outStart[x] .. outStart[x+1]) の行き先・文字コード・打鍵の辺か */
54
+ readonly outStart: Int32Array;
55
+ readonly outTo: Int32Array;
56
+ readonly outCh: Int32Array;
57
+ readonly outKs: Uint8Array;
49
58
  /** 終端の状態と経路長(経路長昇順) */
50
59
  readonly finals: readonly [x: number, m: number][];
51
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../src/lattice.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,iBAAiB;IACjB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAuEtD;AASD,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkB7F;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AAQD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAwClG;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;CACpD;AAID,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA6CpD"}
1
+ {"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../src/lattice.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,iBAAiB;IACjB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;CAChE;AAKD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAoFtD;AASD,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkB7F;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AAQD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAwClG;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;CACpD;AAID,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA4DpD"}
package/dist/lattice.js CHANGED
@@ -3,6 +3,8 @@
3
3
  // 節点番号は位相順(辺は常に番号の小さい節点から大きい節点へ)。
4
4
  import { keystrokeTable, keystrokeMaxKanaLen } from './keystroke.js';
5
5
  import { charMask } from './charmask.js';
6
+ /** 列挙しておく経路の上限 */
7
+ const PATH_LIMIT = 32;
6
8
  /** 正規化済み literal 文字列からラティスを作る。打鍵の辺が無ければ null(文字列照合で足りる) */
7
9
  export function buildLattice(s) {
8
10
  const table = keystrokeTable();
@@ -81,7 +83,24 @@ export function buildLattice(s) {
81
83
  const firstChars = new Set();
82
84
  for (let k = outStart[0]; k < outStart[1]; k++)
83
85
  firstChars.add(ch[outEdges[k]]);
84
- return { nodeCount: V, final: remap[n], from, to, ch, ks, bit, outStart, outEdges, firstChars };
86
+ const firstCodes = new Set([...firstChars].map((c) => c.charCodeAt(0)));
87
+ // 経路が少なければ列挙しておく(連続一致を文字列の startsWith / indexOf で調べられる)
88
+ let paths = [];
89
+ const walk = (v, s, k) => {
90
+ if (paths === null)
91
+ return;
92
+ if (v === remap[n]) {
93
+ if (paths.length >= PATH_LIMIT)
94
+ paths = null;
95
+ else
96
+ paths.push([s, k]);
97
+ return;
98
+ }
99
+ for (let e = outStart[v]; e < outStart[v + 1]; e++)
100
+ walk(to[e], s + ch[e], k || ks[e] === 1);
101
+ };
102
+ walk(0, '', false);
103
+ return { nodeCount: V, final: remap[n], from, to, ch, ks, bit, outStart, outEdges, firstChars, firstCodes, paths };
85
104
  }
86
105
  let reachBuf = new Uint8Array(0);
87
106
  function reachScratch(size) {
@@ -233,8 +252,25 @@ export function expandByDepth(lat) {
233
252
  inKs[p++] = k;
234
253
  }
235
254
  }
255
+ const outStart = new Int32Array(X + 1);
256
+ for (let k = 0; k < total; k++)
257
+ outStart[inFrom[k] + 1]++;
258
+ for (let x = 0; x < X; x++)
259
+ outStart[x + 1] += outStart[x];
260
+ const fill = outStart.slice(0, X);
261
+ const outTo = new Int32Array(total);
262
+ const outCh = new Int32Array(total);
263
+ const outKs = new Uint8Array(total);
264
+ for (let x = 0; x < X; x++) {
265
+ for (let k = inStart[x]; k < inStart[x + 1]; k++) {
266
+ const o = fill[inFrom[k]]++;
267
+ outTo[o] = x;
268
+ outCh[o] = inCh[k];
269
+ outKs[o] = inKs[k];
270
+ }
271
+ }
236
272
  const finals = depths[lat.final].map((m) => [xid(lat.final, m), m]);
237
- const ex = { X, depth, inStart, inFrom, inCh, inBit, inKs, finals };
273
+ const ex = { X, depth, inStart, inFrom, inCh, inBit, inKs, outStart, outTo, outCh, outKs, finals };
238
274
  expandedCache.set(lat, ex);
239
275
  return ex;
240
276
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lattice.js","sourceRoot":"","sources":["../src/lattice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lattice.js","sourceRoot":"","sources":["../src/lattice.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tier1-exact.d.ts","sourceRoot":"","sources":["../../src/tiers/tier1-exact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,YAAY,CAAC;AA8QjD,eAAO,MAAM,UAAU,EAAE,OAqBxB,CAAC"}
1
+ {"version":3,"file":"tier1-exact.d.ts","sourceRoot":"","sources":["../../src/tiers/tier1-exact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,YAAY,CAAC;AAyVjD,eAAO,MAAM,UAAU,EAAE,OAqBxB,CAAC"}
@@ -48,184 +48,270 @@ function substring(query, data, heads, space, factor, minLen) {
48
48
  }
49
49
  return contiguous(INNER, raw, space, first, query.length);
50
50
  }
51
+ // 頭文字の一致の作業領域(呼び出しごとの確保を避けて使い回す)
52
+ let iniOk = new Uint8Array(0);
53
+ let iniSuf = new Uint8Array(0);
51
54
  /**
52
55
  * 頭文字の一致: クエリの各文字を、単語の頭から始め、直前の続き(+1)か後ろの単語の頭に置けるか。
53
- * 置き方は先頭寄り・続き優先で決める。単語の頭が先頭だけのデータは前方一致と同じため扱わない。
56
+ * = クエリを、単語の頭から始まる連続一致の断片に分け、断片の頭が右へ進むように並べられるか。
57
+ * 単語の頭(heads、昇順)の上だけで解くため、計算量はデータ長によらない。
58
+ * 置き方は先頭寄り・続き優先(各断片を並べ切れる範囲で最長、次の断片は最も前の単語の頭)。
59
+ * 単語の頭が先頭だけのデータは前方一致と同じため扱わない。
54
60
  */
55
61
  function initials(query, data, heads, space, factor) {
56
62
  const m = query.length;
57
63
  const n = data.length;
58
- if (m < 2 || n === 0 || heads.size < 2)
64
+ const H = heads.length;
65
+ if (m < 2 || n === 0 || H < 2)
59
66
  return null;
60
- // ok[i*n + p]: query[i] を p に置いて query[i..] を並べ切れる
61
- const ok = new Uint8Array(m * n);
67
+ const c0 = query.charCodeAt(0);
68
+ let start = false;
69
+ for (let k = 0; k < H && !start; k++)
70
+ start = data.charCodeAt(heads[k]) === c0;
71
+ if (!start)
72
+ return null;
73
+ // ok[i*H + k]: query[i..] を、heads[k] から始まる断片から並べ切れる。
74
+ // suf[i*(H+1) + k]: k 以降のいずれかで ok(右端 k = H は 0)
75
+ if (iniOk.length < m * H)
76
+ iniOk = new Uint8Array(m * H);
77
+ if (iniSuf.length < (m + 1) * (H + 1))
78
+ iniSuf = new Uint8Array((m + 1) * (H + 1));
79
+ const ok = iniOk;
80
+ const suf = iniSuf;
81
+ const lcp = (i, k) => {
82
+ const h = heads[k];
83
+ let l = 0;
84
+ while (i + l < m && h + l < n && query.charCodeAt(i + l) === data.charCodeAt(h + l))
85
+ l++;
86
+ return l;
87
+ };
88
+ // 断片 heads[k] .. heads[k]+len-1 の次に置ける最初の単語の頭の添字
89
+ const nextHead = (k, len) => {
90
+ const end = heads[k] + len;
91
+ let j = k + 1;
92
+ while (j < H && heads[j] < end)
93
+ j++;
94
+ return j;
95
+ };
62
96
  for (let i = m - 1; i >= 0; i--) {
63
- let headAfter = false; // p より後ろに query[i+1] を置ける単語の頭がある
64
- for (let p = n - 1; p >= 0; p--) {
65
- if (data[p] === query[i]) {
66
- ok[i * n + p] = i === m - 1 || (p + 1 < n && ok[(i + 1) * n + p + 1] === 1) || headAfter ? 1 : 0;
97
+ for (let k = 0; k < H; k++) {
98
+ const L = lcp(i, k);
99
+ let v = 0;
100
+ for (let len = 1; len <= L && !v; len++) {
101
+ if (i + len === m || suf[(i + len) * (H + 1) + nextHead(k, len)])
102
+ v = 1;
67
103
  }
68
- if (i < m - 1 && heads.has(p) && ok[(i + 1) * n + p])
69
- headAfter = true;
104
+ ok[i * H + k] = v;
70
105
  }
106
+ suf[i * (H + 1) + H] = 0;
107
+ for (let k = H - 1; k >= 0; k--)
108
+ suf[i * (H + 1) + k] = ok[i * H + k] | suf[i * (H + 1) + k + 1];
71
109
  }
72
- let p = -1;
73
- for (let s = 0; s < n; s++) {
74
- if (heads.has(s) && ok[s]) {
75
- p = s;
76
- break;
77
- }
78
- }
79
- if (p < 0)
110
+ if (!suf[0])
80
111
  return null;
81
- const positions = [p];
82
- for (let i = 1; i < m; i++) {
83
- if (p + 1 < n && ok[i * n + p + 1])
84
- p = p + 1;
85
- else {
86
- let q = p + 1;
87
- while (!(heads.has(q) && ok[i * n + q]))
88
- q++;
89
- p = q;
112
+ const positions = [];
113
+ let k = 0;
114
+ while (!ok[k])
115
+ k++;
116
+ for (let i = 0; i < m;) {
117
+ // 並べ切れる範囲で最長の断片
118
+ let len = lcp(i, k);
119
+ while (!(i + len === m || suf[(i + len) * (H + 1) + nextHead(k, len)]))
120
+ len--;
121
+ for (let t = 0; t < len; t++)
122
+ positions.push(heads[k] + t);
123
+ i += len;
124
+ if (i < m) {
125
+ k = nextHead(k, len);
126
+ while (!ok[i * H + k])
127
+ k++;
90
128
  }
91
- positions.push(p);
92
129
  }
93
130
  return { intraScore: grade(INITIALS, (m / n) * factor), space, offset: 0, len: 0, positions };
94
131
  }
95
132
  const scratchMatch = { plain: 0, ks: 0 };
133
+ // [打鍵経由か][段] → 最長の長さと位置(呼び出しごとの確保を避けて使い回す)
134
+ const segLen = [new Int32Array(4), new Int32Array(4)];
135
+ const segAt = [new Int32Array(4), new Int32Array(4)];
136
+ function takeSeg(f, cls, l, s) {
137
+ if (l > segLen[f][cls]) {
138
+ segLen[f][cls] = l;
139
+ segAt[f][cls] = s;
140
+ }
141
+ }
96
142
  /**
97
143
  * ラティスの連続一致・頭文字の候補を評価順(入力文字のまま → 打鍵経由、各々 先頭 > 単語の頭 > 頭文字 > 途中)で渡す。
98
144
  * 長さは一致した経路の長さ。同じ段では最長、同長は最も前の位置。
145
+ * 頭文字は、既にある候補を上回り得るとき(上限 = 最長の経路で素点を取ったとき)だけ求める。
99
146
  */
100
- function latticeCandidates(lat, data, heads, consider) {
147
+ function latticeCandidates(lat, data, heads, headList) {
101
148
  const N = data.length;
102
149
  if (N === 0)
103
150
  return;
104
- // [打鍵経由か][段] → 最長の長さと位置
105
- const len = [new Int32Array(4), new Int32Array(4)];
106
- const at = [new Int32Array(4), new Int32Array(4)];
107
- const take = (f, cls, l, s) => {
108
- if (l > len[f][cls]) {
109
- len[f][cls] = l;
110
- at[f][cls] = s;
151
+ for (let f = 0; f < 2; f++) {
152
+ segLen[f].fill(0);
153
+ segAt[f].fill(0);
154
+ }
155
+ if (lat.paths !== null) {
156
+ // 経路ごとに出現位置を調べる(各段で最長、同じ長さは最も前の位置。状態遷移で辿るのと同じ結果)
157
+ for (const [p, ks] of lat.paths) {
158
+ const f = ks ? 1 : 0;
159
+ for (let s = data.indexOf(p); s >= 0; s = data.indexOf(p, s + 1)) {
160
+ const cls = s === 0 ? PREFIX : heads.has(s) ? WORD : INNER;
161
+ if (f === 1 && cls !== PREFIX && p.length < 2)
162
+ continue; // 打鍵の部分一致は2文字以上
163
+ if (p.length > segLen[f][cls] || (p.length === segLen[f][cls] && s < segAt[f][cls])) {
164
+ segLen[f][cls] = p.length;
165
+ segAt[f][cls] = s;
166
+ }
167
+ }
168
+ }
169
+ }
170
+ else {
171
+ for (let s = 0; s < N; s++) {
172
+ if (!lat.firstCodes.has(data.charCodeAt(s)))
173
+ continue;
174
+ contiguousAt(lat, data, s, scratchMatch);
175
+ const cls = s === 0 ? PREFIX : heads.has(s) ? WORD : INNER;
176
+ takeSeg(0, cls, scratchMatch.plain, s);
177
+ if (cls === PREFIX || scratchMatch.ks >= 2)
178
+ takeSeg(1, cls, scratchMatch.ks, s); // 打鍵の部分一致は2文字以上
179
+ }
180
+ }
181
+ const prefixFactor = [KANA_PREFIX, ROMAJI_PREFIX];
182
+ const substringFactor = [KANA_SUBSTRING, ROMAJI_SUBSTRING];
183
+ for (let f = 0; f < 2; f++) {
184
+ const l = segLen[f][PREFIX];
185
+ if (l > 0)
186
+ consider(contiguous(PREFIX, (l / N) * prefixFactor[f], 'kana', 0, l));
187
+ }
188
+ for (let f = 0; f < 2; f++) {
189
+ const l = segLen[f][WORD];
190
+ if (l > 0)
191
+ consider(contiguous(WORD, (l / N) * substringFactor[f], 'kana', segAt[f][WORD], l));
192
+ }
193
+ if (headList.length >= 2) {
194
+ const ex = expandByDepth(lat);
195
+ const longest = ex.finals[ex.finals.length - 1][1];
196
+ if (longest >= 2 && (best === null || best.intraScore < grade(INITIALS, (longest / N) * KANA_SUBSTRING))) {
197
+ const ini = latticeInitials(lat, data, headList);
198
+ for (let f = 0; f < 2; f++) {
199
+ const hit = ini[f];
200
+ if (hit) {
201
+ const intraScore = grade(INITIALS, (hit.length / N) * substringFactor[f]);
202
+ consider({ intraScore, space: 'kana', offset: 0, len: 0, positions: hit });
203
+ }
204
+ }
111
205
  }
112
- };
113
- for (let s = 0; s < N; s++) {
114
- if (!lat.firstChars.has(data[s]))
115
- continue;
116
- contiguousAt(lat, data, s, scratchMatch);
117
- const cls = s === 0 ? PREFIX : heads.has(s) ? WORD : INNER;
118
- take(0, cls, scratchMatch.plain, s);
119
- if (cls === PREFIX || scratchMatch.ks >= 2)
120
- take(1, cls, scratchMatch.ks, s); // 打鍵の部分一致は2文字以上
121
206
  }
122
- const ini = heads.size >= 2 ? latticeInitials(lat, data, heads) : null;
123
- const factors = [
124
- [KANA_PREFIX, KANA_SUBSTRING],
125
- [ROMAJI_PREFIX, ROMAJI_SUBSTRING],
126
- ];
127
207
  for (let f = 0; f < 2; f++) {
128
- const [pf, sf] = factors[f];
129
- if (len[f][PREFIX] > 0)
130
- consider(contiguous(PREFIX, (len[f][PREFIX] / N) * pf, 'kana', 0, len[f][PREFIX]));
131
- if (len[f][WORD] > 0)
132
- consider(contiguous(WORD, (len[f][WORD] / N) * sf, 'kana', at[f][WORD], len[f][WORD]));
133
- const hit = ini?.[f];
134
- if (hit)
135
- consider({ intraScore: grade(INITIALS, (hit.length / N) * sf), space: 'kana', offset: 0, len: 0, positions: hit });
136
- if (len[f][INNER] > 0)
137
- consider(contiguous(INNER, (len[f][INNER] / N) * sf, 'kana', at[f][INNER], len[f][INNER]));
208
+ const l = segLen[f][INNER];
209
+ if (l > 0)
210
+ consider(contiguous(INNER, (l / N) * substringFactor[f], 'kana', segAt[f][INNER], l));
138
211
  }
139
212
  }
213
+ // latticeInitials の作業領域(状態 = 展開状態 * 2 + 打鍵経由フラグ)
214
+ let iniAvail = new Int32Array(0); // その状態から次の断片を始められる最小の位置(断片の終わり + 1)
215
+ let iniRecHead = new Int32Array(0); // iniAvail を決めた断片の頭の位置
216
+ let iniRecFrom = new Int32Array(0); // その断片を始めた状態(-1 = 始点)
217
+ let iniCur = new Int32Array(0);
218
+ let iniCurOrigin = new Int32Array(0);
219
+ let iniNext = new Int32Array(0);
220
+ let iniNextOrigin = new Int32Array(0);
221
+ let iniStamp = new Int32Array(0);
222
+ let iniGen = 0;
140
223
  /**
141
- * 頭文字の一致のラティス版。展開状態 × 打鍵経由フラグ × 置いた位置で到達を解き、
142
- * フラグごとに最長の経路(経路長 2 以上)の位置列を返す。
224
+ * 頭文字の一致のラティス版。単語の頭を左から順に、その位置で断片を始められる状態から連続一致を辿り、
225
+ * 断片の終わりで「次の断片を始められる最小の位置」を状態ごとに記録する(最小で足りる: 早く終わるほど後ろの
226
+ * 単語の頭を多く使える)。フラグごとに最長の経路(経路長 2 以上)の位置列を返す。
143
227
  */
144
228
  function latticeInitials(lat, data, heads) {
145
- const ex = expandByDepth(lat);
146
- const { X, inStart, inFrom, inCh, inKs } = ex;
229
+ const out = [null, null];
147
230
  const n = data.length;
148
- // reach[(x*2+f)*n + p]: 状態 x・フラグ f の経路の最後の文字を p に置ける
149
- const reach = new Uint8Array(X * 2 * n);
150
- const minPos = new Int32Array(X * 2).fill(n); // reach が立つ最小の p
151
- for (let x = 1; x < X; x++) {
152
- for (let k = inStart[x]; k < inStart[x + 1]; k++) {
153
- const y = inFrom[k];
154
- const c = inCh[k];
155
- const ks = inKs[k];
156
- for (let fy = 0; fy < 2; fy++) {
157
- if (y !== 0 && minPos[y * 2 + fy] >= n)
158
- continue;
159
- if (y === 0 && fy === 1)
160
- continue;
161
- const f = fy | ks;
162
- const base = (x * 2 + f) * n;
163
- const ybase = (y * 2 + fy) * n;
164
- for (let p = 0; p < n; p++) {
165
- if (data.charCodeAt(p) !== c || reach[base + p])
231
+ let start = false;
232
+ for (let k = 0; k < heads.length && !start; k++)
233
+ start = lat.firstCodes.has(data.charCodeAt(heads[k]));
234
+ if (!start)
235
+ return out;
236
+ const ex = expandByDepth(lat);
237
+ const { outStart, outTo, outCh, outKs } = ex;
238
+ const S = ex.X * 2;
239
+ if (iniAvail.length < S) {
240
+ iniAvail = new Int32Array(S);
241
+ iniRecHead = new Int32Array(S);
242
+ iniRecFrom = new Int32Array(S);
243
+ iniCur = new Int32Array(S);
244
+ iniCurOrigin = new Int32Array(S);
245
+ iniNext = new Int32Array(S);
246
+ iniNextOrigin = new Int32Array(S);
247
+ iniStamp = new Int32Array(S);
248
+ iniGen = 0;
249
+ }
250
+ const INF = 1 << 30;
251
+ iniAvail.fill(INF, 0, S);
252
+ iniAvail[0] = 0; // 始点(展開状態 0・フラグ 0)はどの単語の頭からでも始められる
253
+ iniRecFrom[0] = -1;
254
+ for (const h of heads) {
255
+ // この単語の頭で断片を始められる状態(iniAvail ≤ h)
256
+ let curLen = 0;
257
+ for (let st = 0; st < S; st++) {
258
+ if (iniAvail[st] <= h) {
259
+ iniCur[curLen] = st;
260
+ iniCurOrigin[curLen++] = st;
261
+ }
262
+ }
263
+ for (let p = h; p < n && curLen > 0; p++) {
264
+ const c = data.charCodeAt(p);
265
+ iniGen++;
266
+ let nextLen = 0;
267
+ for (let a = 0; a < curLen; a++) {
268
+ const st = iniCur[a];
269
+ const x = st >> 1;
270
+ const f = st & 1;
271
+ for (let k = outStart[x]; k < outStart[x + 1]; k++) {
272
+ if (outCh[k] !== c)
273
+ continue;
274
+ const ns = outTo[k] * 2 + (f | outKs[k]);
275
+ if (iniStamp[ns] === iniGen)
166
276
  continue;
167
- const can = y === 0 ? heads.has(p) : (p > 0 && reach[ybase + p - 1] === 1) || (heads.has(p) && minPos[y * 2 + fy] < p);
168
- if (can) {
169
- reach[base + p] = 1;
170
- if (p < minPos[x * 2 + f])
171
- minPos[x * 2 + f] = p;
277
+ iniStamp[ns] = iniGen;
278
+ iniNext[nextLen] = ns;
279
+ iniNextOrigin[nextLen++] = iniCurOrigin[a];
280
+ if (p + 1 < iniAvail[ns]) {
281
+ iniAvail[ns] = p + 1;
282
+ iniRecHead[ns] = h;
283
+ iniRecFrom[ns] = iniCurOrigin[a];
172
284
  }
173
285
  }
174
286
  }
287
+ const tc = iniCur;
288
+ iniCur = iniNext;
289
+ iniNext = tc;
290
+ const to = iniCurOrigin;
291
+ iniCurOrigin = iniNextOrigin;
292
+ iniNextOrigin = to;
293
+ curLen = nextLen;
175
294
  }
176
295
  }
177
- const out = [null, null];
178
296
  for (let f = 0; f < 2; f++) {
179
297
  for (let i = ex.finals.length - 1; i >= 0 && out[f] === null; i--) {
180
298
  const [xf, m] = ex.finals[i];
181
- if (m < 2 || minPos[xf * 2 + f] >= n)
182
- continue;
183
- out[f] = traceInitials(ex, reach, data, heads, xf, f, minPos[xf * 2 + f]);
184
- }
185
- }
186
- return out;
187
- }
188
- /** latticeInitials の到達表から位置列を後ろ向きに復元する(続き優先) */
189
- function traceInitials(ex, reach, data, heads, x0, f0, p0) {
190
- const { inStart, inFrom, inCh, inKs } = ex;
191
- const n = data.length;
192
- const positions = [p0];
193
- let x = x0;
194
- let f = f0;
195
- let p = p0;
196
- while (x !== 0) {
197
- let next = null;
198
- for (let k = inStart[x]; k < inStart[x + 1] && next === null; k++) {
199
- if (inCh[k] !== data.charCodeAt(p))
200
- continue;
201
- const y = inFrom[k];
202
- if (y === 0) {
203
- if (inKs[k] === f && heads.has(p))
204
- next = [0, 0, -1];
299
+ const st = xf * 2 + f;
300
+ if (m < 2 || iniAvail[st] >= INF)
205
301
  continue;
302
+ // 断片を後ろからたどって位置列を復元する
303
+ const positions = [];
304
+ for (let t = st; t > 0 && iniRecFrom[t] !== -1; t = iniRecFrom[t]) {
305
+ const h = iniRecHead[t];
306
+ for (let q = iniAvail[t] - 1; q >= h; q--)
307
+ positions.push(q);
308
+ if (iniRecFrom[t] === 0)
309
+ break;
206
310
  }
207
- for (let fy = 0; fy < 2 && next === null; fy++) {
208
- if ((fy | inKs[k]) !== f)
209
- continue;
210
- const ybase = (y * 2 + fy) * n;
211
- if (p > 0 && reach[ybase + p - 1])
212
- next = [y, fy, p - 1];
213
- else if (heads.has(p)) {
214
- for (let q = p - 1; q >= 0; q--) {
215
- if (reach[ybase + q]) {
216
- next = [y, fy, q];
217
- break;
218
- }
219
- }
220
- }
221
- }
311
+ out[f] = positions.reverse();
222
312
  }
223
- if (next === null || next[0] === 0)
224
- break;
225
- [x, f, p] = next;
226
- positions.push(p);
227
313
  }
228
- return positions.reverse();
314
+ return out;
229
315
  }
230
316
  // 照合中の最良候補(1 回の tier1Exact 呼び出し内で使う。JS は単一スレッド・同期実行のため安全)。
231
317
  // strict > により、同点では先に評価した(=優先順が上の)候補が残る
@@ -235,11 +321,16 @@ function consider(c) {
235
321
  best = c;
236
322
  }
237
323
  /** 文字列クエリ1空間分のサブマッチ(単語の頭が先頭だけなら頭文字は前方一致と同じため省く) */
238
- function considerSpace(query, data, heads, space, prefixFactor, substringFactor, minLen) {
324
+ function considerSpace(query, data, heads, headList, space, prefixFactor, substringFactor, minLen, qMask, dMask) {
325
+ // どのサブマッチもクエリの全文字がデータにあることが前提(charMask の衝突は安全側)
326
+ if ((qMask & ~dMask) !== 0)
327
+ return;
239
328
  consider(prefix(query, data, space, prefixFactor));
240
329
  consider(substring(query, data, heads, space, substringFactor, minLen));
241
- if (heads.size >= 2)
242
- consider(initials(query, data, heads, space, substringFactor));
330
+ // 頭文字の素点は query.length / data.length 固定。既にある候補を上回れないなら求めない
331
+ if (headList.length >= 2 && (best === null || best.intraScore < grade(INITIALS, (query.length / data.length) * substringFactor))) {
332
+ consider(initials(query, data, headList, space, substringFactor));
333
+ }
243
334
  }
244
335
  export const tier1Exact = (q, e) => {
245
336
  best = null;
@@ -247,17 +338,17 @@ export const tier1Exact = (q, e) => {
247
338
  if (q.lattice !== null && e.hasKeystrokeChar) {
248
339
  // データに打鍵の文字が無ければ打鍵経路は一致し得ないため文字列照合(else)と同値
249
340
  if (latticeFeasible(q.lattice, e.kanaMask))
250
- latticeCandidates(q.lattice, kana, e.kanaBoundaries, consider);
341
+ latticeCandidates(q.lattice, kana, e.kanaBoundaries, e.kanaHeadList);
251
342
  }
252
343
  else if (!q.shadowed) {
253
- considerSpace(q.kana, kana, e.kanaBoundaries, 'kana', KANA_PREFIX, KANA_SUBSTRING, 1);
344
+ considerSpace(q.kana, kana, e.kanaBoundaries, e.kanaHeadList, 'kana', KANA_PREFIX, KANA_SUBSTRING, 1, q.kanaMask, e.kanaMask);
254
345
  }
255
346
  if (q.kunrei !== null && e.kunrei !== null) {
256
- considerSpace(q.kunrei, e.kunrei.text, e.kunreiHeads, 'kunrei', ROMAJI_PREFIX, ROMAJI_SUBSTRING, 2);
347
+ considerSpace(q.kunrei, e.kunrei.text, e.kunreiHeads, e.kunreiHeadList, 'kunrei', ROMAJI_PREFIX, ROMAJI_SUBSTRING, 2, q.kunreiMask, e.kunreiMask);
257
348
  }
258
349
  if (q.hepburn !== null && e.hepburn !== null) {
259
350
  const f = HEPBURN_PENALTY;
260
- considerSpace(q.hepburn, e.hepburn.text, e.hepburnHeads, 'hepburn', ROMAJI_PREFIX * f, ROMAJI_SUBSTRING * f, 2);
351
+ considerSpace(q.hepburn, e.hepburn.text, e.hepburnHeads, e.hepburnHeadList, 'hepburn', ROMAJI_PREFIX * f, ROMAJI_SUBSTRING * f, 2, q.hepburnMask, e.hepburnMask);
261
352
  }
262
353
  if (best === null)
263
354
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"tier1-exact.js","sourceRoot":"","sources":["../../src/tiers/tier1-exact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier1-exact.js","sourceRoot":"","sources":["../../src/tiers/tier1-exact.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tier3-typo.d.ts","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,YAAY,CAAC;AAoKjD,eAAO,MAAM,SAAS,EAAE,OA2BvB,CAAC"}
1
+ {"version":3,"file":"tier3-typo.d.ts","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,YAAY,CAAC;AAsKjD,eAAO,MAAM,SAAS,EAAE,OA2BvB,CAAC"}
@@ -18,8 +18,9 @@ function osaScratch(size) {
18
18
  }
19
19
  /**
20
20
  * OSA prefix 距離。q を t の任意の prefix に合わせる最小編集距離(末尾余り無料)。
21
- * 行最小 > maxDist で早期打ち切り。最終 j 走査は [m-maxDist, m+maxDist] の窓のみ
22
- * (窓外は |i-j| 由来で必ず maxDist 超過)。dp はフラット Int32 スクラッチを再利用。
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
- dp[row] = i; // 列0
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 = Infinity;
43
- for (let j = 1; j <= n; j++) {
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
- let v = Math.min(dp[prow + j] + 1, // 削除
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 maxDist + 1; // 早期打ち切り
61
+ return OVER; // 早期打ち切り
57
62
  }
58
63
  // prefix 距離 = q を t の任意 prefix に合わせた最小。窓外は maxDist 超過のため走査不要
59
64
  const mrow = m * cols;
@@ -1 +1 @@
1
- {"version":3,"file":"tier3-typo.js","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier3-typo.js","sourceRoot":"","sources":["../../src/tiers/tier3-typo.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- /*! @ycookiey/yfuzzy v0.4.0 | MIT | includes wanakana (MIT), Mozc romaji table (BSD-3-Clause) | https://github.com/ycookiey/yfuzzy */
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.4.1 | MIT | includes wanakana (MIT), Mozc romaji table (BSD-3-Clause) | https://github.com/ycookiey/yfuzzy */
2
+ "use strict";var yfuzzy=(()=>{var At=Object.defineProperty;var _n=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var Mn=Object.prototype.hasOwnProperty;var Cn=(t,n)=>{for(var o in n)At(t,o,{get:n[o],enumerable:!0})},On=(t,n,o,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of Ln(n))!Mn.call(t,s)&&s!==o&&At(t,s,{get:()=>n[s],enumerable:!(e=_n(n,s))||e.enumerable});return t};var Rn=t=>On(At({},"__esModule",{value:!0}),t);var ve={};Cn(ve,{createIndex:()=>Nn,search:()=>We});var Hn="\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 Kn(t){let n=[],o=0;for(let e of t)n.push({cp:e,start:o,end:o+e.length}),o+=e.length;return n}function Ht(t,n,o){let e=n==="all"||n==="preKana",s=n==="all"||n==="postKana",i=Kn(t),c="",r=[];for(let a=0;a<i.length;a++){let p=i[a],u=p.cp.codePointAt(0),l,h=p.end;if(e&&u===12288)l=" ";else if(e&&u>=65281&&u<=65374){let d=String.fromCharCode(u-65248);l=d>="A"&&d<="Z"?d.toLowerCase():d}else if(e&&u>=65&&u<=90)l=p.cp.toLowerCase();else if(s&&u>=65377&&u<=65437){let d=Hn[u-65377],k=a+1<i.length?i[a+1]:null,x=k?k.cp.codePointAt(0):-1;if(x===65438||x===65439){let I=(d+(x===65438?"\u3099":"\u309A")).normalize("NFC");[...I].length===1?(l=I,h=k.end,a++):l=d}else l=d}else s&&u===65438?l="\u309B":s&&u===65439?l="\u309C":s&&u>=12353&&u<=12438?l=String.fromCodePoint(u+96):l=p.cp;if(o){let d=[p.start,h];for(let k=0;k<l.length;k++)r.push(d)}c+=l}return{text:c,map:r}}function Kt(t){let{text:n,map:o}=Ht(t,"all",!0);return{text:n,map:o}}function V(t,n){return Ht(t,n,!1).text}var Ut={\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"},jt={\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 Pt={\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"},Dt={\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 nt={single:Ut,digraphs:jt},et={single:Pt,digraphs:Dt};function ot(t){return t==="both"||t==="kunrei"}function rt(t){return t==="both"||t==="hepburn"}function Bt(t,n){if(t.length===2){let e=n.digraphs[t];if(e!==void 0)return e}let o=n.single[t];return o!==void 0?o:t.toLowerCase()}function Ft(t){return/^[bcdfghjklmnpqrstvwxyz]/.test(t)}var Un="\u30C3",jn="\u30FC",Pn=new Set(["\u30A1","\u30A3","\u30A5","\u30A7","\u30A9","\u30E3","\u30E5","\u30E7","\u30EE"]),Dn=/[ァ-ヺー]/,Bn=/[ァ-ヺ]/,Fn=/[0-9a-z]/;function zn(t){return Dn.test(t)||Fn.test(t)}function Wn(t){let n=[],o=0,e=!1,s=-1;for(;o<t.length;){let i=t[o];if(i===Un){e||(e=!0,s=o),o+=1;continue}if(i===jn){let u=n[n.length-1];u&&(u.kanaLen+=1),o+=1;continue}let c=e?s:o,r=o+1<t.length?t[o+1]:"",a=r!==""&&Pn.has(r)&&Bn.test(i)?2:1,p=t.slice(o,o+a);n.push({core:p,sokuon:e,kanaStart:c,kanaLen:o+a-c}),e=!1,s=-1,o+=a}return n}function vn(t,n){let o=[],e=new Set,s=0,i="";for(let c of t){let r=Bt(c.core,n);c.sokuon&&r.length>0&&Ft(r)&&(r=r[0]+r),e.add(s),o.push({kanaStart:c.kanaStart,kanaLen:c.kanaLen,romajiStart:s,romajiLen:r.length}),s+=r.length,i+=r}return{text:i,syllables:o,boundaries:e}}function st(t,n){return vn(Wn(t),n)}function kt(t,n){return st(t,n).text}function zt(t){let n=new Set([0]);for(let o=0;o<t.length;o++)if(!zn(t[o])){let e=o+1;e<t.length&&n.add(e)}return n}function it(t){let n="^"+t+"$",o=new Set;for(let e=0;e+1<n.length;e++)o.add(n.slice(e,e+2));return o}function O(t){let n=0;for(let o=0;o<t.length;o++)n|=1<<t.charCodeAt(o)%31;return n}function Wt(t){let n=0,o=t;for(;o!==0;)o&=o-1,n++;return n}var vt=/[a-z]/;function Gn(t,n){let o=zt(t.text),e=t.text,s=i=>n.slice(t.map[i][0],t.map[i][1]);for(let i=1;i<e.length;i++){if(!vt.test(e[i])||!vt.test(e[i-1]))continue;let c=s(i),r=s(i-1);c!==c.toLowerCase()&&r===r.toLowerCase()&&o.add(i)}return o}function Gt(t,n){let o=new Set;if(t===null)return o;for(let e of t.syllables)n.has(e.kanaStart)&&o.add(e.romajiStart);return o}function mt(t){return[...t].sort((n,o)=>n-o)}function $t(t,n,o){let e=Kt(t),s=ot(o)?st(e.text,nt):null,i=rt(o)?st(e.text,et):null,c=Gn(e,t),r=Gt(s,c),a=Gt(i,c);return{refIndex:n,raw:t,kana:e,kanaBoundaries:c,kunreiHeads:r,hepburnHeads:a,kanaHeadList:mt(c),kunreiHeadList:mt(r),hepburnHeadList:mt(a),kanaMask:O(e.text),kunreiMask:s?O(s.text):0,hepburnMask:i?O(i.text):0,kunrei:s,hepburn:i,hasKeystrokeChar:/[a-z'-]/.test(e.text),bigrams:null}}function Jt(t){return t.bigrams===null&&(t.bigrams=it(t.kana.text)),t.bigrams}var $n={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"}},Xt={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"},Vt={ya:"\u3083",yi:"\u3043",yu:"\u3085",ye:"\u3047",yo:"\u3087"},Yt={a:"\u3041",i:"\u3043",u:"\u3045",e:"\u3047",o:"\u3049"},Qt={sh:"sy",ch:"ty",cy:"ty",chy:"ty",shy:"sy",j:"zy",jy:"zy",shi:"si",chi:"ti",tsu:"tu",ji:"zi",fu:"hu"},Jn={tu:"\u3063",wa:"\u308E",ka:"\u30F5",ke:"\u30F6",...Yt,...Vt},Xn={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"},Qn={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 Zt(t){return Object.entries(t).reduce((n,[o,e])=>(n[o]=typeof e=="string"?{"":e}:Zt(e),n),{})}function Vn(t,n){return n.split("").reduce((o,e)=>(o[e]===void 0&&(o[e]={}),o[e]),t)}function Yn(){let t=Zt($n),n=s=>Vn(t,s);Object.entries(Xt).forEach(([s,i])=>{Object.entries(Vt).forEach(([c,r])=>{n(s+c)[""]=i+r})}),Object.entries(Qn).forEach(([s,i])=>{Object.entries(Yt).forEach(([c,r])=>{n(s+c)[""]=i+r})}),["n","n'","xn"].forEach(s=>{n(s)[""]="\u3093"}),t.c=JSON.parse(JSON.stringify(t.k)),Object.entries(Qt).forEach(([s,i])=>{let c=s.slice(0,s.length-1),r=s.charAt(s.length-1),a=n(c);a[r]=JSON.parse(JSON.stringify(n(i)))});function o(s){return[...Object.entries(Qt),["c","k"]].reduce((i,[c,r])=>s.startsWith(r)?i.concat(s.replace(r,c)):i,[])}Object.entries(Jn).forEach(([s,i])=>{let c=l=>l.charAt(l.length-1),r=l=>l.slice(0,l.length-1),a=`x${s}`,p=n(a);p[""]=i;let u=n(`l${r(s)}`);u[c(s)]=p,o(s).forEach(l=>{["l","x"].forEach(h=>{let d=n(h+r(l));d[c(l)]=n(h+s)})})}),Object.entries(Xn).forEach(([s,i])=>{n(s)[""]=i});function e(s){return Object.entries(s).reduce((i,[c,r])=>(i[c]=c?e(r):`\u3063${r}`,i),{})}return[...Object.keys(Xt),"c","y","w","j"].forEach(s=>{let i=t[s];i[s]=e(i)}),delete t.n.n,Object.freeze(JSON.parse(JSON.stringify(t)))}var gt=null;function qt(){return gt==null&&(gt=Yn()),gt}function Zn(t,n){let o=n;function e(c,r){if(c[r]!==void 0)return Object.assign({"":c[""]+r},c[r])}function s(c,r){let a=c.charAt(0);return i(Object.assign({"":a},o[a]),c.slice(1),r,r+1)}function i(c,r,a,p){if(!r)return c[""]?[[a,p,c[""]]]:[];if(Object.keys(c).length===1)return[[a,p,c[""]],...s(r,p)];let u=e(c,r.charAt(0));return u===void 0?[[a,p,c[""]],...s(r,p)]:i(u,r.slice(1),a,p+1)}return s(t,0)}function tn(t){return Zn(t.toLowerCase(),qt()).map(n=>n[2]??"").join("")}function nn(){let t=[],n=(o,e)=>{for(let[s,i]of Object.entries(o))s===""?e!==""&&/^[ぁ-ゖヵヶ]+$/.test(i)&&t.push([e,i]):n(i,e+s)};return n(qt(),""),t}function en(t){return tn(t)}var qn=new Set(["ci","ce","qu"]),te=[["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"]],ne=new Set("qvlxkgszjtdhfbpmyrwc"),ct=null,yt=0;function St(){if(ct!==null)return ct;let t=new Map,n=(e,s)=>{let i=V(s,"postKana"),c=t.get(i);c===void 0&&t.set(i,c=new Set),c.add(e)},o=[];for(let[e,s]of nn())qn.has(e)||s.startsWith("\u3063")&&e.length>1&&e[0]===e[1]||o.push([e,s]);o.push(...te);for(let[e,s]of o)n(e,s),!s.startsWith("\u3063")&&(ne.has(e[0])&&n(e[0]+e,"\u3063"+s),e.startsWith("ch")&&n("t"+e,"\u3063"+s));for(let e of t.keys())e.length>yt&&(yt=e.length);return ct=new Map([...t].map(([e,s])=>[e,[...s]])),ct}function on(){return St(),yt}var ee=32;function an(t){let n=St(),o=on(),e=t.length,s=Array.from({length:e+1},(g,T)=>[T]),i=e+1,c=[],r=new Set,a=(g,T,_,L)=>{let M=`${g},${T},${_},${L}`;r.has(M)||(r.add(M),c.push([g,T,_,L]))},p=!1;for(let g=0;g<e;g++){a(g,g+1,t[g],0);let T=new Map;for(let _=1;_<=o&&g+_<=e;_++){let L=n.get(t.slice(g,g+_));if(L!==void 0)for(let M of L){p=!0;let P=g;for(let R=0;R<M.length-1;R++){let Q=M.slice(0,R+1),D=T.get(Q);D===void 0&&(D=i++,T.set(Q,D),s[g].push(D)),a(P,D,M[R],1),P=D}a(P,g+_,M[M.length-1],1)}}}if(!p)return null;let u=new Int32Array(i),l=0;for(let g of s)for(let T of g)u[T]=l++;let h=c.length,d=c.map(([g,T,_,L])=>[u[g],u[T],_,L]);d.sort((g,T)=>g[0]-T[0]||g[1]-T[1]);let k=new Int32Array(h),x=new Int32Array(h),y=new Array(h),I=new Uint8Array(h),m=new Int32Array(h);d.forEach(([g,T,_,L],M)=>{k[M]=g,x[M]=T,y[M]=_,I[M]=L,m[M]=O(_)});let A=l,S=new Int32Array(A+1);for(let g=0;g<h;g++)S[k[g]+1]++;for(let g=0;g<A;g++)S[g+1]+=S[g];let b=new Int32Array(h);for(let g=0;g<h;g++)b[g]=g;let N=new Set;for(let g=S[0];g<S[1];g++)N.add(y[b[g]]);let f=new Set([...N].map(g=>g.charCodeAt(0))),w=[],E=(g,T,_)=>{if(w!==null){if(g===u[e]){w.length>=ee?w=null:w.push([T,_]);return}for(let L=S[g];L<S[g+1];L++)E(x[L],T+y[L],_||I[L]===1)}};return E(0,"",!1),{nodeCount:A,final:u[e],from:k,to:x,ch:y,ks:I,bit:m,outStart:S,outEdges:b,firstChars:N,firstCodes:f,paths:w}}var at=new Uint8Array(0);function un(t){return at.length<t&&(at=new Uint8Array(t)),at.fill(0,0,t),at}function ut(t,n){let o=un(t.nodeCount);o[0]=1;for(let e=0;e<t.from.length;e++)o[t.from[e]]&&(t.bit[e]&n)!==0&&(o[t.to[e]]=1);return o[t.final]===1}function ln(t,n,o){let e=un(t.nodeCount);e[0]=1;for(let s=0;s<n.length;s++){let i=n[s];for(let c=t.nodeCount-1;c>=0;c--)if(e[c])for(let r=t.outStart[c];r<t.outStart[c+1];r++){let a=t.outEdges[r];t.ch[a]===i&&(o&&c===0&&t.to[a]===t.final||(e[t.to[a]]=1))}if(e[t.final])return!0}return!1}var rn=new Int32Array(0),sn=new Int32Array(0),B=new Int32Array(0),F=0;function fn(t,n,o,e){e.plain=0,e.ks=0;let s=t.nodeCount*2;B.length<s&&(B=new Int32Array(s),rn=new Int32Array(s),sn=new Int32Array(s),F=0);let i=rn,c=sn,r=1;i[0]=0;let a=t.final*2;for(let p=o;p<n.length&&r>0;p++){let u=n[p];F++;let l=0;for(let k=0;k<r;k++){let x=i[k],y=x>>1,I=x&1;for(let m=t.outStart[y];m<t.outStart[y+1];m++){let A=t.outEdges[m];if(t.ch[A]!==u)continue;let S=t.to[A]*2+(I|t.ks[A]);B[S]!==F&&(B[S]=F,c[l++]=S)}}let h=p-o+1;B[a]===F&&(e.plain=h),B[a+1]===F&&(e.ks=h);let d=i;i=c,c=d,r=l}}var cn=new WeakMap;function Y(t){let n=cn.get(t);if(n!==void 0)return n;let o=t.nodeCount,e=Array.from({length:o},()=>[]);e[0].push(0);for(let f=0;f<o;f++)for(let w=t.outStart[f];w<t.outStart[f+1];w++){let E=t.to[t.outEdges[w]];for(let g of e[f])e[E].includes(g+1)||e[E].push(g+1)}for(let f of e)f.sort((w,E)=>w-E);let s=new Int32Array(o+1);for(let f=0;f<o;f++)s[f+1]=s[f]+e[f].length;let i=s[o],c=(f,w)=>s[f]+e[f].indexOf(w),r=new Int32Array(i);for(let f=0;f<o;f++)for(let w of e[f])r[c(f,w)]=w;let a=Array.from({length:i},()=>[]);for(let f=0;f<t.from.length;f++){let w=t.from[f],E=t.to[f];for(let g of e[w])a[c(E,g+1)].push([c(w,g),t.ch[f].charCodeAt(0),t.bit[f],t.ks[f]])}let p=new Int32Array(i+1);for(let f=0;f<i;f++)p[f+1]=p[f]+a[f].length;let u=p[i],l=new Int32Array(u),h=new Int32Array(u),d=new Int32Array(u),k=new Uint8Array(u),x=0;for(let f of a)for(let[w,E,g,T]of f)l[x]=w,h[x]=E,d[x]=g,k[x++]=T;let y=new Int32Array(i+1);for(let f=0;f<u;f++)y[l[f]+1]++;for(let f=0;f<i;f++)y[f+1]+=y[f];let I=y.slice(0,i),m=new Int32Array(u),A=new Int32Array(u),S=new Uint8Array(u);for(let f=0;f<i;f++)for(let w=p[f];w<p[f+1];w++){let E=I[l[w]]++;m[E]=f,A[E]=h[w],S[E]=k[w]}let b=e[t.final].map(f=>[c(t.final,f),f]),N={X:i,depth:r,inStart:p,inFrom:l,inCh:h,inBit:d,inKs:k,outStart:y,outTo:m,outCh:A,outKs:S,finals:b};return cn.set(t,N),N}function hn(t,n,o="phonetic"){let e=V(t,"preKana"),s=V(o==="phonetic"?en(e):e,"postKana"),i=o==="phonetic",c=i&&ot(n)?kt(s,nt):null,r=i&&rt(n)?kt(s,et):null;return{kana:s,singleChar:oe(s),kunrei:c,hepburn:r,kanaMask:O(s),kunreiMask:c!==null?O(c):0,hepburnMask:r!==null?O(r):0,lattice:i?null:an(s),shadowed:!1,bigrams:null}}function oe(t){return t.length===0?!1:t.length===String.fromCodePoint(t.codePointAt(0)).length}function pn(t){return t.bigrams===null&&(t.bigrams=it(t.kana)),t.bigrams}var re=["-"," ","\u30FB","_"];function se(t){return t===!1||t===void 0?[]:t===!0?re:t}function ie(t){return t.replace(/[\\\]^-]/g,"\\$&")}function dn(t,n){let o=se(n);if(o.length===0)return t===""?[]:[t];let e=o.map(ie).join(""),s=new RegExp(`[${e}]`,"g");if(!s.test(t))return t===""?[]:[t];let i=[],c=new Set,r=u=>{u!==""&&!c.has(u)&&(c.add(u),i.push(u))};r(t);let a=[...t].at(-1);return o.includes(a)||r(t.replace(s,"")),r(t.replace(s," ")),i}var kn=1,Tt=.9,Nt=.97,_t=.87,ce=.99,U=3,v=2,dt=1,G=0;function q(t,n){return(t+n)/4}function J(t,n,o,e,s){return{intraScore:q(t,n),space:o,offset:e,len:s,positions:null}}function ae(t,n){let o=[];for(let e=0;e<t;e++)o.push(n+e);return o}function ue(t,n,o,e){return t.length===0||n.length===0||!n.startsWith(t)?null:J(U,t.length/n.length*e,o,0,t.length)}function le(t,n,o,e,s,i){if(t.length<i||n.length===0)return null;let c=n.indexOf(t,1);if(c<0)return null;let r=t.length/n.length*s;for(let a=c;a>=0;a=n.indexOf(t,a+1))if(o.has(a))return J(v,r,e,a,t.length);return J(G,r,e,c,t.length)}var xt=new Uint8Array(0),It=new Uint8Array(0);function fe(t,n,o,e,s){let i=t.length,c=n.length,r=o.length;if(i<2||c===0||r<2)return null;let a=t.charCodeAt(0),p=!1;for(let y=0;y<r&&!p;y++)p=n.charCodeAt(o[y])===a;if(!p)return null;xt.length<i*r&&(xt=new Uint8Array(i*r)),It.length<(i+1)*(r+1)&&(It=new Uint8Array((i+1)*(r+1)));let u=xt,l=It,h=(y,I)=>{let m=o[I],A=0;for(;y+A<i&&m+A<c&&t.charCodeAt(y+A)===n.charCodeAt(m+A);)A++;return A},d=(y,I)=>{let m=o[y]+I,A=y+1;for(;A<r&&o[A]<m;)A++;return A};for(let y=i-1;y>=0;y--){for(let I=0;I<r;I++){let m=h(y,I),A=0;for(let S=1;S<=m&&!A;S++)(y+S===i||l[(y+S)*(r+1)+d(I,S)])&&(A=1);u[y*r+I]=A}l[y*(r+1)+r]=0;for(let I=r-1;I>=0;I--)l[y*(r+1)+I]=u[y*r+I]|l[y*(r+1)+I+1]}if(!l[0])return null;let k=[],x=0;for(;!u[x];)x++;for(let y=0;y<i;){let I=h(y,x);for(;!(y+I===i||l[(y+I)*(r+1)+d(x,I)]);)I--;for(let m=0;m<I;m++)k.push(o[x]+m);if(y+=I,y<i)for(x=d(x,I);!u[y*r+x];)x++}return{intraScore:q(dt,i/c*s),space:e,offset:0,len:0,positions:k}}var lt={plain:0,ks:0},K=[new Int32Array(4),new Int32Array(4)],$=[new Int32Array(4),new Int32Array(4)];function An(t,n,o,e){o>K[t][n]&&(K[t][n]=o,$[t][n]=e)}function he(t,n,o,e){let s=n.length;if(s===0)return;for(let r=0;r<2;r++)K[r].fill(0),$[r].fill(0);if(t.paths!==null)for(let[r,a]of t.paths){let p=a?1:0;for(let u=n.indexOf(r);u>=0;u=n.indexOf(r,u+1)){let l=u===0?U:o.has(u)?v:G;p===1&&l!==U&&r.length<2||(r.length>K[p][l]||r.length===K[p][l]&&u<$[p][l])&&(K[p][l]=r.length,$[p][l]=u)}}else for(let r=0;r<s;r++){if(!t.firstCodes.has(n.charCodeAt(r)))continue;fn(t,n,r,lt);let a=r===0?U:o.has(r)?v:G;An(0,a,lt.plain,r),(a===U||lt.ks>=2)&&An(1,a,lt.ks,r)}let i=[kn,Nt],c=[Tt,_t];for(let r=0;r<2;r++){let a=K[r][U];a>0&&j(J(U,a/s*i[r],"kana",0,a))}for(let r=0;r<2;r++){let a=K[r][v];a>0&&j(J(v,a/s*c[r],"kana",$[r][v],a))}if(e.length>=2){let r=Y(t),a=r.finals[r.finals.length-1][1];if(a>=2&&(C===null||C.intraScore<q(dt,a/s*Tt))){let p=pe(t,n,e);for(let u=0;u<2;u++){let l=p[u];if(l){let h=q(dt,l.length/s*c[u]);j({intraScore:h,space:"kana",offset:0,len:0,positions:l})}}}}for(let r=0;r<2;r++){let a=K[r][G];a>0&&j(J(G,a/s*c[r],"kana",$[r][G],a))}}var H=new Int32Array(0),wt=new Int32Array(0),z=new Int32Array(0),Z=new Int32Array(0),W=new Int32Array(0),ft=new Int32Array(0),ht=new Int32Array(0),bt=new Int32Array(0),pt=0;function pe(t,n,o){let e=[null,null],s=n.length,i=!1;for(let d=0;d<o.length&&!i;d++)i=t.firstCodes.has(n.charCodeAt(o[d]));if(!i)return e;let c=Y(t),{outStart:r,outTo:a,outCh:p,outKs:u}=c,l=c.X*2;H.length<l&&(H=new Int32Array(l),wt=new Int32Array(l),z=new Int32Array(l),Z=new Int32Array(l),W=new Int32Array(l),ft=new Int32Array(l),ht=new Int32Array(l),bt=new Int32Array(l),pt=0);let h=1<<30;H.fill(h,0,l),H[0]=0,z[0]=-1;for(let d of o){let k=0;for(let x=0;x<l;x++)H[x]<=d&&(Z[k]=x,W[k++]=x);for(let x=d;x<s&&k>0;x++){let y=n.charCodeAt(x);pt++;let I=0;for(let S=0;S<k;S++){let b=Z[S],N=b>>1,f=b&1;for(let w=r[N];w<r[N+1];w++){if(p[w]!==y)continue;let E=a[w]*2+(f|u[w]);bt[E]!==pt&&(bt[E]=pt,ft[I]=E,ht[I++]=W[S],x+1<H[E]&&(H[E]=x+1,wt[E]=d,z[E]=W[S]))}}let m=Z;Z=ft,ft=m;let A=W;W=ht,ht=A,k=I}}for(let d=0;d<2;d++)for(let k=c.finals.length-1;k>=0&&e[d]===null;k--){let[x,y]=c.finals[k],I=x*2+d;if(y<2||H[I]>=h)continue;let m=[];for(let A=I;A>0&&z[A]!==-1;A=z[A]){let S=wt[A];for(let b=H[A]-1;b>=S;b--)m.push(b);if(z[A]===0)break}e[d]=m.reverse()}return e}var C=null;function j(t){t!==null&&(C===null||t.intraScore>C.intraScore)&&(C=t)}function Et(t,n,o,e,s,i,c,r,a,p){(a&~p)===0&&(j(ue(t,n,s,i)),j(le(t,n,o,s,c,r)),e.length>=2&&(C===null||C.intraScore<q(dt,t.length/n.length*c))&&j(fe(t,n,e,s,c)))}var mn=(t,n)=>{C=null;let o=n.kana.text;if(t.lattice!==null&&n.hasKeystrokeChar?ut(t.lattice,n.kanaMask)&&he(t.lattice,o,n.kanaBoundaries,n.kanaHeadList):t.shadowed||Et(t.kana,o,n.kanaBoundaries,n.kanaHeadList,"kana",kn,Tt,1,t.kanaMask,n.kanaMask),t.kunrei!==null&&n.kunrei!==null&&Et(t.kunrei,n.kunrei.text,n.kunreiHeads,n.kunreiHeadList,"kunrei",Nt,_t,2,t.kunreiMask,n.kunreiMask),t.hepburn!==null&&n.hepburn!==null){let s=ce;Et(t.hepburn,n.hepburn.text,n.hepburnHeads,n.hepburnHeadList,"hepburn",Nt*s,_t*s,2,t.hepburnMask,n.hepburnMask)}if(C===null)return null;let e=C;return C=null,{tier:1,intraScore:e.intraScore,space:e.space,positions:e.positions??ae(e.len,e.offset)}};var de=16,Ae=-3,ke=-1,me=8,ge=4,ye=2,Se=.55,xe=.3,Ie=.15,gn=2,X=-1e9,Lt=new Int32Array(0),yn=new Uint8Array(0);function we(t){Lt.length<t&&(Lt=new Int32Array(t),yn=new Uint8Array(t))}function be(t,n){let o=0;for(let e=0;e<n.length&&o<t.length;e++)t[o]===n[e]&&o++;return o===t.length}function Sn(t,n,o){let e=t.length,s=n.length;if(e===0||s===0||!be(t,n))return null;let i=s+1;we((e+1)*i);let c=Lt,r=yn;for(let k=0;k<=s;k++)c[k]=0,r[k]=0;for(let k=1;k<=e;k++){let x=k*i,y=(k-1)*i,I=t[k-1];c[x]=X,r[x]=0;for(let m=1;m<=s;m++){let A=X,S=0,b=c[x+m-1];b>X&&(A=b+(r[x+m-1]?Ae:ke),S=0);let N=c[y+m-1];if(I===n[m-1]&&N>X){let f=0;o.has(m-1)&&(f+=me),r[y+m-1]&&(f+=ge),k===1&&(f+=ye);let w=N+de+f;w>=A&&(A=w,S=1)}c[x+m]=A,r[x+m]=S}}let a=e*i,p=-1,u=X;for(let k=e;k<=s;k++)c[a+k]>u&&(u=c[a+k],p=k);if(p<0||u===X)return null;let l=[],h=e,d=p;for(;h>0&&d>0;)r[h*i+d]&&(l.push(d-1),h--),d--;return l.reverse(),l}function xn(t,n,o,e){let s=0;for(let u of t)e.has(u)&&s++;let i=s/n,c=1,r=1;for(let u=1;u<t.length;u++)t[u]===t[u-1]+1?(r++,r>c&&(c=r)):r=1;let a=c/n,p=1-t[0]/o;return Se*i+xe*a+Ie*p}function Ee(t,n,o,e,s){if(n.length===0||!ut(t,o)||!ln(t,n,s))return null;let i=null,c=(r,a,p)=>{if(r===t.final){if(a.length<gn)return;let u=Sn(a,n,e);if(u===null)return;let l=xn(u,a.length,n.length,e);(i===null||l>i.intraScore)&&(i={intraScore:l,positions:u});return}for(let u=t.outStart[r];u<t.outStart[r+1];u++){let l=t.outEdges[u],h=t.ch[l],d=n.indexOf(h,p);d>=0&&c(t.to[l],a+h,d+1)}};return c(0,"",0),i}var In=(t,n)=>{let o=null,e=(i,c,r,a,p,u)=>{if(i===null||i.length<gn||r.length===0||(c&~a)!==0)return;let l=Sn(i,r,p);if(l===null)return;let h=xn(l,i.length,r.length,p);(o===null||h>o.intraScore)&&(o={intraScore:h,space:u,positions:l})};if(t.lattice!==null&&n.hasKeystrokeChar){let i=Ee(t.lattice,n.kana.text,n.kanaMask,n.kanaBoundaries,t.singleChar);i!==null&&(o={intraScore:i.intraScore,space:"kana",positions:i.positions})}else t.shadowed||e(t.kana,t.kanaMask,n.kana.text,n.kanaMask,n.kanaBoundaries,"kana");if(n.kunrei&&e(t.kunrei,t.kunreiMask,n.kunrei.text,n.kunreiMask,n.kunrei.boundaries,"kunrei"),n.hepburn&&e(t.hepburn,t.hepburnMask,n.hepburn.text,n.hepburnMask,n.hepburn.boundaries,"hepburn"),o===null)return null;let s=o;return{tier:2,intraScore:s.intraScore,space:s.space,positions:s.positions}};var Rt=2;function tt(t){return Math.max(1,Math.ceil(t/3))}var Mt=new Int32Array(0);function Te(t){return Mt.length<t&&(Mt=new Int32Array(t)),Mt}function Ne(t,n,o){let e=t.length,s=n.length;if(e===0)return 0;if(s+o<e)return o+1;let i=o+1,c=s+1,r=Te((e+1)*c);for(let h=0;h<=Math.min(s,o);h++)r[h]=h;for(let h=1;h<=e;h++){let d=h*c,k=(h-1)*c,x=(h-2)*c,y=Math.max(1,h-o),I=Math.min(s,h+o),m=t[h-1],A=h>1?t[h-2]:"",S=h<=o?h:i;h<=o&&(r[d]=h);for(let b=y;b<=I;b++){let N=m===n[b-1]?0:1,f=b<=h-1+o?r[k+b]+1:i,w=b-1>=h-o?r[d+b-1]+1:i,E=Math.min(f,w,r[k+b-1]+N);h>1&&b>1&&m===n[b-2]&&A===n[b-1]&&(E=Math.min(E,r[x+b-2]+1)),r[d+b]=E,E<S&&(S=E)}if(S>o)return i}let a=e*c,p=Math.max(0,e-o),u=Math.min(s,e+o),l=r[a+p];for(let h=p+1;h<=u;h++)r[a+h]<l&&(l=r[a+h]);return l}var Ct=new Int32Array(0),Ot=new Int32Array(0);function _e(t,n,o){let e=n.length;if(e===0)return null;let s=Y(t),{X:i,inStart:c,inFrom:r,inCh:a,inBit:p}=s;Ot.length<i&&(Ot=new Int32Array(i));let u=Ot;u[0]=0;for(let m=1;m<i;m++){let A=1073741824;for(let S=c[m];S<c[m+1];S++){let b=u[r[S]]+((p[S]&o)===0?1:0);b<A&&(A=b)}u[m]=A}let l=-1;for(let[m,A]of s.finals)A>=Rt&&e+tt(A)>=A&&u[m]<=tt(A)&&(l=Math.max(l,tt(A)));if(l<0)return null;let h=1<<29,d=e+1;Ct.length<i*d&&(Ct=new Int32Array(i*d));let k=Ct,x=s.depth,y=(m,A)=>{let S=A-x[m];return A<0||S>l||S<-l?h:k[m*d+A]};for(let m=0;m<=Math.min(e,l);m++)k[m]=m;for(let m=1;m<i;m++){let A=x[m],S=Math.max(0,A-l),b=Math.min(e,A+l),N=m*d;for(let f=S;f<=b;f++){if(f===0){k[N]=A;continue}let w=n.charCodeAt(f-1),E=f>1?n.charCodeAt(f-2):-1,g=(f-1>=S?k[N+f-1]:h)+1;for(let T=c[m];T<c[m+1];T++){let _=r[T],L=a[T],M=y(_,f)+1,P=y(_,f-1)+(L===w?0:1);if(M<g&&(g=M),P<g&&(g=P),L===E){for(let R=c[_];R<c[_+1];R++)if(a[R]===w){let Q=y(r[R],f-2)+1;Q<g&&(g=Q)}}}k[N+f]=g}}let I=null;for(let[m,A]of s.finals){if(A<Rt)continue;let S=tt(A);if(e+S<A||u[m]>S)continue;let b=h;for(let f=Math.max(0,A-l);f<=Math.min(e,A+l);f++){let w=k[m*d+f];w<b&&(b=w)}if(b>S)continue;let N=1-b/(S+1);(I===null||N>I)&&(I=N)}return I}var wn=(t,n)=>{let o=null,e=(i,c,r,a,p)=>{if(i===null||i.length<Rt||r.length===0)return;let u=tt(i.length);if(Wt(c&~a)>u)return;let l=Ne(i,r,u);if(l>u)return;let h=1-l/(u+1);(o===null||h>o.intraScore)&&(o={intraScore:h,space:p})};if(t.lattice!==null&&n.hasKeystrokeChar){let i=_e(t.lattice,n.kana.text,n.kanaMask);i!==null&&(o={intraScore:i,space:"kana"})}else t.shadowed||e(t.kana,t.kanaMask,n.kana.text,n.kanaMask,"kana");if(n.kunrei&&t.kunrei!==null?e(t.kunrei,t.kunreiMask,n.kunrei.text,n.kunreiMask,"kunrei"):n.hepburn&&t.hepburn!==null&&e(t.hepburn,t.hepburnMask,n.hepburn.text,n.hepburnMask,"hepburn"),o===null)return null;let s=o;return{tier:3,intraScore:s.intraScore,space:s.space,positions:null}};var Le=.8,Me=.2,Ce=.3,bn=(t,n)=>{if(t.shadowed)return null;let o=pn(t),e=Jt(n);if(o.size===0||e.size===0)return null;let s=0;for(let p of o)e.has(p)&&s++;let i=o.size-s,c=e.size-s,r=s+Le*i+Me*c;if(r===0)return null;let a=s/r;return a<Ce?null:{tier:4,intraScore:a,space:"kana",positions:null}};var Oe=[mn,In,wn,bn];function Re(t){return t==="literal"?["literal"]:t==="phonetic"?["phonetic"]:["literal","phonetic"]}function He(t,n,o){let e=o.map(s=>hn(t,n,s));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 Ke(t){return t<0?0:t>1?1:t}function Ue(t){return(4-t.tier+Ke(t.intraScore))/4}function je(t,n,o){let e=null;for(let s of o){let i=t(s,n);if(i===null)continue;let c=Ue(i);(e===null||c>e.score)&&(e={refIndex:n.refIndex,score:c,tier:i.tier,match:i})}return e}function En(t,n,o){let e=t.trim();if(e==="")return[];let s=dn(e,o.separatorExpansion);if(s.length===0)return[];let i=Re(o.matching),c=s.flatMap(h=>He(h,o.romaji,i)),r=Oe.slice(0,o.maxTier),{limit:a,minScore:p}=o,u=[],l=new Uint8Array(n.length);for(let h of r){for(let d=0;d<n.length;d++){if(l[d])continue;let k=je(h,n[d],c);k!==null&&(l[d]=1,k.score>=p&&u.push(k))}if(a!==void 0&&u.length>=a)break}return u.sort((h,d)=>d.score-h.score||h.refIndex-d.refIndex),a!==void 0?u.slice(0,a):u}function Pe(t,n){for(let o of n)if(t>=o.romajiStart&&t<o.romajiStart+o.romajiLen){let e=[];for(let s=0;s<o.kanaLen;s++)e.push(o.kanaStart+s);return e}return[]}function De(t){if(t.length===0)return[];t.sort((o,e)=>o[0]-e[0]||o[1]-e[1]);let n=[];for(let[o,e]of t){let s=n[n.length-1];s&&o<=s[1]?e>s[1]&&(s[1]=e):n.push([o,e])}return n}function Tn(t,n){if(n.positions===null)return[];let o=new Set;if(n.space==="kana")for(let i of n.positions)o.add(i);else{let i=n.space==="kunrei"?t.kunrei:t.hepburn;if(i)for(let c of n.positions)for(let r of Pe(c,i.syllables))o.add(r)}let e=t.kana.map,s=[];for(let i of o){let c=e[i];c&&s.push([c[0],c[1]])}return De(s)}var Be=3,Fe=0;function ze(t,n,o,e){return{romaji:t,separatorExpansion:n,matching:o,maxTier:e.maxTier??Be,minScore:e.minScore??Fe,limit:e.limit,includeMatches:e.includeMatches??!1}}function Nn(t,n={}){let o=n.getText??(a=>a),e=n.romaji??"both",s=n.separatorExpansion??!1,i=n.matching??"both",c={limit:n.limit,maxTier:n.maxTier,minScore:n.minScore,includeMatches:n.includeMatches},r=t.map((a,p)=>$t(o(a),p,e));return{size:t.length,search(a,p={}){let u={...c,...p},l=ze(e,s,i,u);return En(a,r,l).map(d=>{let k={item:t[d.refIndex],refIndex:d.refIndex,score:d.score,tier:d.tier};return l.includeMatches&&d.match.positions!==null&&(k.matches=Tn(r[d.refIndex],d.match)),k})}}}function We(t,n,o={}){return Nn(n,o).search(t)}return Rn(ve);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ycookiey/yfuzzy",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Japanese-aware fuzzy search library",
5
5
  "license": "MIT",
6
6
  "publishConfig": {