{
  "version": 3,
  "sources": ["../src/rules.ts", "../src/Tokenizer.Kuromoji.ts"],
  "sourcesContent": ["import type { TokenizeRule } from \"./Tokenizer.Kuromoji\";\n\nexport const regExpAlphabetOrNumber = new RegExp(/^(.*[a-zA-Z1-9]).*$/);\nexport const regExpNotAlphabetOrNumber = new RegExp(/^(?!.*[a-zA-Z1-9]).*$/);\nexport const regExpUpperAlphabet = new RegExp(/^(.*[A-Z]).*$/);\nexport const regExpAlphabet = new RegExp(/^(.*[a-zA-Z]).*$/);\nexport const regExpNominative = new RegExp(\n  /^(?=\\b(I|You|We|He|She|They)\\b).*$/,\n);\nexport const regExpPeriod = new RegExp(/^(.*[.,\u3001\u3002]).*$/);\nexport const regExpNotPeriod = new RegExp(/^(?!.*[.,\u3001\u3002]).*$/);\nexport const regExpMark = new RegExp(/^(.*[!?\uFF01\uFF1F]).*$/);\nexport const regExpNotMark = new RegExp(/^(?!.*[!?\uFF01\uFF1F]).*$/);\nexport const regExpWhitespace = new RegExp(/^\\s+$/);\nexport const regExpNotCloseApostrophe = new RegExp(\n  /^(?!.*['\"`](\\s|$)).*$/,\n  \"g\",\n);\nexport const regExpOpenParentheses = new RegExp(\n  /^(.*[[(\uFF08\u300C\u300E\u3010\u301D\u275D\u201C]).*$/,\n  \"g\",\n);\nexport const regExpCloseParentheses = new RegExp(\n  /^(.*[\\])\uFF09\u300D\u300F\u3011\u301F\u275E\u201D]).*$/,\n  \"g\",\n);\nexport const regExpHiragana = new RegExp(/^(.*[\\u3040-\\u309F]).*$/);\nexport const regExpKatakana = new RegExp(/^(.*[\\u30A0-\\u30FF]).*$/);\nexport const regExpKanji = new RegExp(/^(.*[\\u4E00-\\u9FFF]).*$/);\nexport const regExpLongNote = new RegExp(/^(.*[\u30FC\uFF5E]).*$/);\nexport const regExpNotLongNote = new RegExp(/^(?!.*[\u30FC\uFF5E]).*$/);\n\nexport const DEFAULT_BRAKE_RULES: TokenizeRule[] = [\n  {\n    before: {\n      surface_form: [regExpWhitespace],\n    },\n    current: {\n      surface_form: [regExpUpperAlphabet, regExpOpenParentheses],\n    },\n    insert: \"before\",\n  },\n  {\n    after: {\n      surface_form: [regExpOpenParentheses],\n    },\n  },\n  {\n    after: {\n      surface_form: [regExpOpenParentheses],\n    },\n  },\n  {\n    current: {\n      surface_form: [regExpCloseParentheses],\n    },\n  },\n  {\n    before: {\n      surface_form: [regExpAlphabetOrNumber],\n    },\n    current: {\n      surface_form: [regExpWhitespace],\n    },\n    after: {\n      surface_form: [regExpNominative],\n    },\n    insert: \"before\",\n  },\n  {\n    before: {\n      surface_form: [regExpAlphabetOrNumber],\n    },\n    current: {\n      surface_form: [regExpWhitespace],\n    },\n    after: {\n      surface_form: [regExpNotAlphabetOrNumber],\n    },\n    length: {\n      remaining: {\n        largerThan: 5,\n      },\n    },\n    insert: \"before\",\n  },\n  {\n    before: {\n      surface_form: [regExpNotAlphabetOrNumber],\n    },\n    current: {\n      surface_form: [regExpWhitespace],\n    },\n    after: {\n      surface_form: [regExpAlphabetOrNumber],\n    },\n    insert: \"before\",\n  },\n  {\n    current: {\n      surface_form: [regExpAlphabet],\n    },\n    after: {\n      surface_form: [regExpHiragana, regExpKatakana, regExpKanji],\n    },\n    length: {\n      remaining: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    current: {\n      surface_form: [regExpHiragana, regExpKatakana, regExpKanji],\n    },\n    after: {\n      surface_form: [regExpAlphabet],\n    },\n    length: {\n      remaining: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    current: {\n      surface_form: [regExpKatakana],\n    },\n    after: {\n      surface_form: [regExpHiragana, regExpKanji],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", true]],\n    },\n    length: {\n      past: {\n        largerThan: 5,\n      },\n      remaining: {\n        largerThan: 5,\n      },\n    },\n  },\n  {\n    current: {\n      surface_form: [regExpHiragana, regExpKanji],\n    },\n    after: {\n      surface_form: [regExpKatakana],\n    },\n    length: {\n      past: {\n        largerThan: 5,\n      },\n      remaining: {\n        largerThan: 5,\n      },\n    },\n  },\n  {\n    before: {\n      surface_form: [regExpNotAlphabetOrNumber],\n    },\n    current: {\n      surface_form: [regExpWhitespace],\n    },\n    after: {\n      surface_form: [regExpNotAlphabetOrNumber],\n    },\n    insert: \"before\",\n  },\n  {\n    current: {\n      surface_form: [regExpPeriod],\n    },\n    after: {\n      surface_form: [regExpNotPeriod],\n    },\n  },\n  {\n    current: {\n      surface_form: [regExpMark],\n    },\n    after: {\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    current: {\n      pos_detail_1: [[\"\u8AAD\u70B9\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u56FA\u6709\u540D\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u56FA\u6709\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", true]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u30B5\u5909\u63A5\u7D9A\", true]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", \"\u5F62\u5BB9\u52D5\u8A5E\u8A9E\u5E79\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", \"\u526F\u8A5E\u5316\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u9023\u4F53\u5316\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u526F\u8A5E\u53EF\u80FD\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", \"\u56FA\u6709\u540D\u8A5E\", \"\u6570\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", false]],\n      pos_detail_2: [[\"\u52A9\u6570\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", false]],\n      pos_detail_2: [[\"\u4E00\u822C\", true]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", \"\u56FA\u6709\u540D\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", \"\u56FA\u6709\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n    length: {\n      remaining: {\n        nextIsLastTokenInWord: true,\n      },\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u9023\u4F53\u5316\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", false]],\n      surface_form: [regExpNotMark],\n    },\n    length: {\n      remaining: {\n        largerThan: 4,\n      },\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    length: {\n      remaining: {\n        nextIsLastTokenInWord: true,\n        largerThan: 4,\n      },\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u5F62\u5BB9\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n      conjugated_form: [[\"\u9023\u7528\u30BF\u63A5\u7D9A\", false]],\n    },\n    length: {\n      remaining: {\n        largerThan: 4,\n      },\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n      pos_detail_2: [[\"\u5F15\u7528\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", \"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u4FC2\u52A9\u8A5E\", true]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u7D9A\u52A9\u8A5E\", \"\u7D42\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u9023\u4F53\u5316\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n      surface_form: [regExpNotLongNote],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", true]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u9023\u4F53\u5316\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u30B5\u5909\u63A5\u7D9A\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u526F\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u526F\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n      conjugated_form: [[\"\u9023\u7528\u5F62\", true]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u56FA\u6709\u540D\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", false]],\n      pos_detail_2: [[\"\u526F\u8A5E\u53EF\u80FD\", false]],\n    },\n    after: {\n      pos: [[\"\u526F\u8A5E\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u526F\u8A5E\", \"\u9023\u4F53\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u6570\", true]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", true]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u526F\u8A5E\", false]],\n      pos_detail_1: [[\"\u52A9\u8A5E\u985E\u63A5\u7D9A\", true]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u526F\u52A9\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u7D9A\u52A9\u8A5E\", false]],\n    },\n    insert: \"before\",\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", true]],\n    },\n    current: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n      conjugated_type: [[\"\u4E94\u6BB5\u30FB\u30BF\u884C\", true]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", \"\u63A5\u5C3E\", true]],\n      surface_form: [regExpNotLongNote],\n    },\n    length: {\n      after: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    after: {\n      surface_form: [regExpNotCloseApostrophe],\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", \"\u526F\u8A5E\u53EF\u80FD\", true]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u7D9A\u52A9\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos_detail_1: [[\"\u7A7A\u767D\", true]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u4FC2\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n      conjugated_form: [[\"\u9023\u7528\u5F62\", \"\u672A\u7136\u30A6\u63A5\u7D9A\", true]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u4FC2\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", \"\u526F\u8A5E\", false]],\n    },\n    length: {\n      past: {\n        largerThan: 3,\n      },\n      after: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u9023\u4F53\u8A5E\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u52D5\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u683C\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52A9\u52D5\u8A5E\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4E00\u822C\", false]],\n      surface_form: [regExpNotMark],\n    },\n    length: {\n      after: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u52D5\u8A5E\", false]],\n      conjugated_form: [[\"\u4F53\u8A00\u63A5\u7D9A\", true]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", \"\u526F\u8A5E\u53EF\u80FD\", true]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u52D5\u8A5E\", false]],\n      conjugated_form: [[\"\u4EEE\u5B9A\u5F62\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52A9\u52D5\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u9023\u4F53\u8A5E\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u7D9A\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u5F62\u5BB9\u52D5\u8A5E\u8A9E\u5E79\", false]],\n      surface_form: [regExpNotMark],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    current: {\n      pos: [[\"\u52A9\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u7D9A\u52A9\u8A5E\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u4EE3\u540D\u8A5E\", false]],\n      surface_form: [regExpNotMark],\n    },\n    length: {\n      remaining: {\n        nextIsLastTokenInWord: false,\n      },\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u5F62\u5BB9\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u63A5\u5C3E\", true]],\n      surface_form: [regExpNotMark],\n    },\n    length: {\n      remaining: {\n        largerThan: 10,\n      },\n    },\n  },\n  {\n    before: {\n      pos: [[\"\u5F62\u5BB9\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    current: {\n      pos: [[\"\u540D\u8A5E\", false]],\n      pos_detail_1: [[\"\u975E\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u52D5\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n  {\n    current: {\n      pos: [[\"\u5F62\u5BB9\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n    after: {\n      pos: [[\"\u5F62\u5BB9\u8A5E\", false]],\n      pos_detail_1: [[\"\u81EA\u7ACB\", false]],\n    },\n  },\n];\n\nexport const DEFAULT_WHITESPACE_RULES: TokenizeRule[] = [\n  {\n    after: {\n      surface_form: [regExpWhitespace],\n    },\n  },\n];\n", "import type { CreateLineArgs, WordTimeline } from \"@ioris/core\";\nimport type { IpadicFeatures, Tokenizer } from \"kuromoji\";\nimport {\n  DEFAULT_BRAKE_RULES,\n  DEFAULT_WHITESPACE_RULES,\n  regExpCloseParentheses,\n  regExpNotAlphabetOrNumber,\n} from \"./rules\";\n\ntype RuleInput = RegExp | [...string[], boolean];\n\nconst DEBUG = process.env.NODE_ENV !== \"production\";\n\nexport type TokenizeRule = {\n  before?: {\n    [key in keyof IpadicFeatures]?: RuleInput[];\n  };\n  current?: {\n    [key in keyof IpadicFeatures]?: RuleInput[];\n  };\n  after?: {\n    [key in keyof IpadicFeatures]?: RuleInput[];\n  };\n  length?: {\n    current?: {\n      largerThan?: number;\n      shorterThan?: number;\n      nextIsLastTokenInWord?: boolean;\n    };\n    after?: {\n      largerThan?: number;\n      shorterThan?: number;\n      nextIsLastTokenInWord?: boolean;\n    };\n    past?: {\n      largerThan?: number;\n      shorterThan?: number;\n      forFirstToken?: boolean;\n    };\n    remaining?: {\n      largerThan?: number;\n      shorterThan?: number;\n      nextIsLastTokenInWord?: boolean;\n      forLastToken?: boolean;\n    };\n  };\n  insert?: \"before\" | \"current\";\n};\n\nfunction countNonParenthesesCharacters(text: string):\n  | {\n      begin: number;\n      end: number;\n      text: string;\n    }[]\n  | undefined {\n  // \"\", '', `` \u306B\u56F2\u307E\u308C\u305F\u6587\u5B57\u5217\u3092\u62BD\u51FA\n  const apostropheMatches = [\n    ...text.matchAll(new RegExp(/[\"'][^\"']*[\"']|`[^`]*`/g)),\n  ];\n  const parenthesesMatches = [\n    ...text.matchAll(\n      new RegExp(/[[(\uFF08\u300C\u300E\u3010\u301D\u275D\u201C][^\\])\uFF09\u300D\u300F\u3011\u301F\u275E\u201D]*[\\])\uFF09\u300D\u300F\u3011\u301F\u275E\u201D]/g),\n    ),\n  ];\n  const matches = [...parenthesesMatches, ...apostropheMatches];\n\n  return [\n    ...matches.map((match) => {\n      const begin = match.index + 1;\n      const end = begin + (match[0].length - 2);\n      const extractedText = text.slice(begin, end);\n      return {\n        begin,\n        end,\n        text: extractedText,\n      };\n    }),\n  ];\n}\n\nexport async function LineArgsTokenizer(props: {\n  lineArgs: CreateLineArgs;\n  tokenizer: Tokenizer<IpadicFeatures>;\n  brakeRules?: TokenizeRule[];\n  whitespaceRules?: TokenizeRule[];\n}): Promise<Map<number, CreateLineArgs>> {\n  const { lineArgs, tokenizer } = props;\n  const tokensByLinePosition = lineArgs.timelines.reduce<\n    Map<\n      number,\n      Map<number, { features: IpadicFeatures; timeline: WordTimeline }>\n    >\n  >(\n    (\n      acc: Map<\n        number,\n        Map<number, { features: IpadicFeatures; timeline: WordTimeline }>\n      >,\n      timeline: WordTimeline,\n      index: number,\n    ) => {\n      const timelinePosition = index + 1;\n\n      // \u7279\u6B8A\u306A\u6587\u5B57\u5217\u306F\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u308B\n      const text = timeline.text.replaceAll(\")(\", \") (\");\n      const tokens = tokenizer.tokenize(text);\n      const last = acc.get(timelinePosition) || new Map();\n\n      for (const features of tokens) {\n        const currentFeaturesText = Array.from(\n          acc.get(timelinePosition)?.values() || [],\n        )\n          .map(\n            (token: { features: IpadicFeatures; timeline: WordTimeline }) =>\n              token.features.surface_form,\n          )\n          .join(\"\");\n\n        if (last.size === 0) {\n          last.set(1, {\n            features,\n            timeline,\n          });\n          acc.set(timelinePosition, last);\n          continue;\n        }\n\n        if (text === currentFeaturesText) {\n          const timeline = lineArgs.timelines[acc.size];\n          const newMap = new Map();\n          newMap.set(1, {\n            features,\n            timeline,\n          });\n          acc.set(timelinePosition, newMap);\n        } else {\n          const timeline = lineArgs.timelines[timelinePosition - 1];\n          if (timeline) {\n            last.set(last.size + 1, {\n              features,\n              timeline,\n            });\n            acc.set(timelinePosition, last);\n          }\n        }\n      }\n\n      return acc;\n    },\n    new Map(),\n  );\n\n  const args = convertTokensToLineArgs(\n    tokensByLinePosition,\n    props.brakeRules,\n    props.whitespaceRules,\n  );\n\n  return args;\n}\n\nfunction convertTokensToLineArgs(\n  tokensByLinePosition: Map<\n    number,\n    Map<number, { features: IpadicFeatures; timeline: WordTimeline }>\n  >,\n  brakeRules: TokenizeRule[] = DEFAULT_BRAKE_RULES,\n  whitespaceRules: TokenizeRule[] = DEFAULT_WHITESPACE_RULES,\n): Map<number, CreateLineArgs> {\n  let lastHasBrakePosition = 0;\n  return Array.from(tokensByLinePosition).reduce<Map<number, CreateLineArgs>>(\n    (lineAcc, [linePosition, tokens]) => {\n      const lineTokens = Array.from(tokens);\n      const first = lineTokens[0]?.[1];\n      const firstToken = first ? first.features : undefined;\n      const last = lineTokens[lineTokens.length - 1]?.[1];\n      const lastToken = last ? last.features : undefined;\n      const wordsMap: WordTimeline[] = lineTokens.reduce<WordTimeline[]>(\n        (wordAcc, [wordPosition, { features, timeline }]) => {\n          const beforeFeatures = tokens.get(wordPosition - 1)?.features;\n          const nextFeatures = tokens.get(wordPosition + 1)?.features;\n          const countInParentheses = countNonParenthesesCharacters(\n            timeline.text,\n          );\n          const hasParentheses = countInParentheses !== undefined;\n          const isCloseParentheses =\n            hasParentheses && nextFeatures\n              ? regExpNotAlphabetOrNumber.test(nextFeatures.surface_form) &&\n                countInParentheses.some((parentheses) => {\n                  return parentheses.end + 1 === features.word_position;\n                })\n              : false;\n          const inParentheses = hasParentheses\n            ? countInParentheses\n                .filter((parentheses) => {\n                  return (\n                    parentheses.begin < features.word_position &&\n                    features.word_position < parentheses.end\n                  );\n                })\n                .find((parentheses) => {\n                  return parentheses.text.length <= 10;\n                }) !== undefined\n            : false;\n\n          const durationByChar = Number.parseFloat(\n            (\n              (timeline.end - timeline.begin) /\n              timeline.text.replaceAll(/\\s+/g, \"\").length\n            ).toFixed(3),\n          );\n          const duration = durationByChar * features.surface_form.length;\n          const begin =\n            wordPosition === 1\n              ? timeline.begin\n              : wordAcc[wordAcc.length - 1]?.end || 0;\n\n          const lastTokenInWord = wordPosition === tokens.size;\n          const nextIsLastTokenInWord =\n            tokens.get(wordPosition + 2)?.features === undefined;\n\n          const spaceIndexes = timeline.text\n            .split(\"\")\n            .reduce<number[]>((acc: number[], char: string, index: number) => {\n              if (char === \" \") {\n                acc.push(index);\n              }\n              return acc;\n            }, []);\n\n          const nextSpaceIndex = spaceIndexes.find(\n            (index: number) => index > features.word_position,\n          );\n\n          const remainLengthBetweenBeforeBrake = lastHasBrakePosition\n            ? features.word_position - lastHasBrakePosition\n            : 0;\n\n          const remainLengthBetweenNextBrake = nextSpaceIndex\n            ? nextSpaceIndex +\n              1 -\n              features.word_position -\n              features.surface_form.length\n            : 0;\n\n          const remainTextLengthForLineFirst = firstToken\n            ? features.word_position - firstToken.word_position\n            : 0;\n\n          const remainTextLengthForLineEnd = lastToken\n            ? lastToken.word_position +\n              lastToken.surface_form.length -\n              features.word_position -\n              features.surface_form.length\n            : 0;\n\n          const hasNewLine = checkMatchedRules({\n            beforeFeatures,\n            features,\n            nextFeatures,\n            lastTokenInWord,\n            nextIsLastTokenInWord,\n            rules: brakeRules,\n            remainLengthBetweenBeforeBrake,\n            remainLengthBetweenNextBrake,\n            remainTextLengthForLineFirst,\n            remainTextLengthForLineEnd,\n          });\n          const hasWhitespace = checkMatchedRules({\n            beforeFeatures,\n            features,\n            nextFeatures,\n            lastTokenInWord,\n            nextIsLastTokenInWord,\n            rules: whitespaceRules,\n            remainLengthBetweenBeforeBrake,\n            remainLengthBetweenNextBrake,\n            remainTextLengthForLineFirst,\n            remainTextLengthForLineEnd,\n          });\n\n          if (DEBUG) {\n            // eslint-disable-next-line no-console\n            console.table({\n              inParentheses,\n              lastHasBrakePosition,\n              wordPosition,\n              beforeFeatures,\n              features,\n              nextFeatures,\n              remainLengthBetweenBeforeBrake,\n              remainLengthBetweenNextBrake,\n              remainTextLengthForLineFirst,\n              remainTextLengthForLineEnd,\n              nextIsLastTokenInWord,\n              hasNewLine,\n              hasWhitespace,\n            });\n            console.dir(countInParentheses, { depth: null });\n            console.dir(hasNewLine, { depth: null });\n            console.dir(hasWhitespace, { depth: null });\n          }\n\n          const hasNewLineMatchedRule =\n            (nextFeatures && isCloseParentheses) ||\n            hasNewLine.matchedRule !== undefined;\n          if (hasNewLineMatchedRule) {\n            lastHasBrakePosition = wordPosition - lastHasBrakePosition;\n          }\n\n          if (\n            !inParentheses &&\n            hasNewLineMatchedRule &&\n            hasNewLine.matchedRule?.insert === \"before\"\n          ) {\n            wordAcc[wordAcc.length - 1].hasNewLine = true;\n          }\n\n          if (features.surface_form.match(/^\\s+$/)) {\n            if (hasNewLineMatchedRule) {\n              wordAcc[wordAcc.length - 1].hasNewLine = true;\n            }\n            return wordAcc;\n          }\n\n          const end = Number.parseFloat((begin + duration).toFixed(3));\n\n          wordAcc.push({\n            wordID: crypto.randomUUID(),\n            begin,\n            end,\n            text: features.surface_form,\n            hasNewLine:\n              !inParentheses &&\n              hasNewLineMatchedRule &&\n              hasNewLine.matchedRule?.insert !== \"before\",\n            hasWhitespace: hasWhitespace.matchedRule !== undefined,\n          });\n          return wordAcc;\n        },\n        [],\n      );\n\n      lineAcc.set(lineAcc.size + 1, {\n        position: linePosition,\n        timelines: wordsMap,\n      });\n      return lineAcc;\n    },\n    new Map<number, CreateLineArgs>(),\n  );\n}\n\nfunction isMatchRule(\n  input: RuleInput,\n  value: IpadicFeatures[keyof IpadicFeatures],\n): boolean {\n  if (value === undefined || typeof value !== \"string\") {\n    return false;\n  }\n  if (Array.isArray(input)) {\n    const values = input.slice(0, -1);\n    return input.at(-1)\n      ? values.every((v) => v !== value)\n      : values.some((v) => v === value);\n  }\n  return input.test(value);\n}\n\nfunction checkMatchedRules(props: {\n  rules: TokenizeRule[];\n  beforeFeatures: IpadicFeatures | undefined;\n  features: IpadicFeatures;\n  nextFeatures: IpadicFeatures | undefined;\n  lastTokenInWord: boolean;\n  nextIsLastTokenInWord: boolean;\n  remainLengthBetweenBeforeBrake: number;\n  remainLengthBetweenNextBrake: number;\n  remainTextLengthForLineFirst: number;\n  remainTextLengthForLineEnd: number;\n}): {\n  matchedRule: TokenizeRule | undefined;\n  before: boolean;\n  current: boolean;\n  after: boolean;\n  common: boolean;\n} {\n  const ret: {\n    matchedRule: TokenizeRule | undefined;\n    before: boolean;\n    current: boolean;\n    after: boolean;\n    common: boolean;\n  } = {\n    matchedRule: undefined,\n    before: false,\n    current: false,\n    after: false,\n    common: false,\n  };\n\n  if (props.nextFeatures?.surface_form.match(regExpCloseParentheses)) {\n    return ret;\n  }\n\n  props.rules.some((rule) => {\n    const beforeMatch = rule.before\n      ? Object.keys(rule.before).every((key) => {\n          return rule.before\n            ? rule.before[key as keyof IpadicFeatures]?.some((input) => {\n                const featureKey = key as keyof IpadicFeatures;\n                if (\n                  !props.beforeFeatures ||\n                  !props.beforeFeatures[featureKey]\n                ) {\n                  return false;\n                }\n                return isMatchRule(input, props.beforeFeatures[featureKey]);\n              }) === true\n            : false;\n        })\n      : true;\n\n    const currentMatch = rule.current\n      ? Object.keys(rule.current).every((key) => {\n          const { current, length } = rule;\n          const nextIsLastTokenInWord = length?.remaining\n            ? length.remaining.nextIsLastTokenInWord === undefined\n              ? true\n              : props.nextIsLastTokenInWord ===\n                length.remaining.nextIsLastTokenInWord\n            : true;\n\n          const pastLengthPassed =\n            length === undefined\n              ? true\n              : length?.past\n                ? length.past.largerThan\n                  ? (length.past.forFirstToken ||\n                    props.remainLengthBetweenBeforeBrake === 0\n                      ? props.remainTextLengthForLineFirst\n                      : props.remainLengthBetweenBeforeBrake) >=\n                    length.past.largerThan\n                  : length.past.shorterThan\n                    ? (length.past.forFirstToken ||\n                      props.remainLengthBetweenBeforeBrake === 0\n                        ? props.remainTextLengthForLineFirst\n                        : props.remainLengthBetweenBeforeBrake) <=\n                      length.past.shorterThan\n                    : true\n                : true;\n\n          const remainLengthPassed =\n            length === undefined\n              ? true\n              : length?.remaining\n                ? length.remaining.largerThan\n                  ? (length.remaining.forLastToken ||\n                    props.remainLengthBetweenNextBrake === 0\n                      ? props.remainTextLengthForLineEnd\n                      : props.remainLengthBetweenNextBrake) >=\n                    length.remaining.largerThan\n                  : length.remaining.shorterThan\n                    ? (length.remaining.forLastToken ||\n                      props.remainLengthBetweenNextBrake === 0\n                        ? props.remainTextLengthForLineEnd\n                        : props.remainLengthBetweenNextBrake) <=\n                      length.remaining.shorterThan\n                    : true\n                : true;\n\n          const lengthPassed = length?.current\n            ? length.current.largerThan\n              ? props.features.surface_form.length >= length.current.largerThan\n              : length.current.shorterThan\n                ? props.features.surface_form.length <=\n                  length.current.shorterThan\n                : true\n            : true;\n\n          return current\n            ? current[key as keyof IpadicFeatures]?.some((input) => {\n                const featureKey = key as keyof IpadicFeatures;\n                if (!props.features[featureKey]) {\n                  return false;\n                }\n                return isMatchRule(input, props.features[featureKey]);\n              }) === true &&\n                nextIsLastTokenInWord &&\n                pastLengthPassed &&\n                remainLengthPassed &&\n                lengthPassed\n            : false;\n        })\n      : true;\n\n    const afterMatch = rule.after\n      ? Object.keys(rule.after).every((key) => {\n          const { after, length } = rule;\n          const nextIsLastTokenInWord =\n            props.nextIsLastTokenInWord && length?.after\n              ? length.after.nextIsLastTokenInWord === true\n              : true;\n\n          const remainLengthPassed =\n            length?.after && props.nextFeatures?.surface_form\n              ? length.after.largerThan\n                ? props.nextFeatures.surface_form.length >=\n                  length.after.largerThan\n                : length.after.shorterThan\n                  ? props.nextFeatures.surface_form.length <=\n                    length.after.shorterThan\n                  : true\n              : true;\n\n          return after\n            ? after[key as keyof IpadicFeatures]?.some((input) => {\n                const featureKey = key as keyof IpadicFeatures;\n                if (!props.nextFeatures || !props.nextFeatures[featureKey]) {\n                  return false;\n                }\n                return isMatchRule(input, props.nextFeatures[featureKey]);\n              }) === true &&\n                nextIsLastTokenInWord &&\n                remainLengthPassed\n            : false;\n        })\n      : true;\n\n    ret.before = beforeMatch;\n    ret.current = currentMatch;\n    ret.after = afterMatch;\n\n    if (beforeMatch && currentMatch && afterMatch) {\n      ret.matchedRule = rule;\n      ret.before = true;\n      ret.current = true;\n      ret.after = true;\n      return true;\n    }\n  });\n\n  if (props.lastTokenInWord && ret.matchedRule?.insert !== \"before\") {\n    return {\n      matchedRule: undefined,\n      before: false,\n      current: false,\n      after: false,\n      common: false,\n    };\n  }\n\n  return ret;\n}\n\nexport default LineArgsTokenizer;\n"],
  "mappings": "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",
  "names": ["regExpAlphabetOrNumber", "regExpNotAlphabetOrNumber", "regExpUpperAlphabet", "regExpAlphabet", "regExpNominative", "regExpPeriod", "regExpNotPeriod", "regExpMark", "regExpNotMark", "regExpWhitespace", "regExpNotCloseApostrophe", "regExpOpenParentheses", "regExpCloseParentheses", "regExpHiragana", "regExpKatakana", "regExpKanji", "regExpLongNote", "regExpNotLongNote", "DEFAULT_BRAKE_RULES", "DEFAULT_WHITESPACE_RULES", "DEBUG", "countNonParenthesesCharacters", "text", "apostropheMatches", "match", "begin", "end", "extractedText", "LineArgsTokenizer", "props", "lineArgs", "tokenizer", "tokensByLinePosition", "acc", "timeline", "index", "timelinePosition", "tokens", "last", "features", "currentFeaturesText", "token", "newMap", "convertTokensToLineArgs", "brakeRules", "DEFAULT_BRAKE_RULES", "whitespaceRules", "DEFAULT_WHITESPACE_RULES", "lastHasBrakePosition", "lineAcc", "linePosition", "lineTokens", "first", "firstToken", "lastToken", "wordsMap", "wordAcc", "wordPosition", "beforeFeatures", "nextFeatures", "countInParentheses", "hasParentheses", "isCloseParentheses", "regExpNotAlphabetOrNumber", "parentheses", "inParentheses", "duration", "lastTokenInWord", "nextIsLastTokenInWord", "nextSpaceIndex", "char", "remainLengthBetweenBeforeBrake", "remainLengthBetweenNextBrake", "remainTextLengthForLineFirst", "remainTextLengthForLineEnd", "hasNewLine", "checkMatchedRules", "hasWhitespace", "hasNewLineMatchedRule", "isMatchRule", "input", "value", "values", "v", "ret", "regExpCloseParentheses", "rule", "beforeMatch", "key", "featureKey", "currentMatch", "current", "length", "pastLengthPassed", "remainLengthPassed", "lengthPassed", "afterMatch", "after"]
}
