@travisennis/acai 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -760
- package/bin/acai +52 -0
- package/dist/agent/index.d.ts +12 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +380 -199
- package/dist/agent/sub-agent.d.ts +23 -0
- package/dist/agent/sub-agent.d.ts.map +1 -0
- package/dist/agent/sub-agent.js +109 -0
- package/dist/cli/index.d.ts +26 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/{cli.js → cli/index.js} +84 -77
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +2 -1
- package/dist/cli/stdin.d.ts.map +1 -0
- package/dist/{stdin.js → cli/stdin.js} +11 -0
- package/dist/commands/copy/index.js +2 -2
- package/dist/commands/copy/utils.d.ts.map +1 -1
- package/dist/commands/copy/utils.js +15 -13
- package/dist/commands/generate-rules/index.d.ts +1 -1
- package/dist/commands/generate-rules/index.d.ts.map +1 -1
- package/dist/commands/generate-rules/index.js +16 -101
- package/dist/commands/generate-rules/service.d.ts +22 -0
- package/dist/commands/generate-rules/service.d.ts.map +1 -0
- package/dist/commands/generate-rules/service.js +103 -0
- package/dist/commands/handoff/index.js +2 -2
- package/dist/commands/health/index.js +1 -1
- package/dist/commands/health/utils.d.ts +3 -2
- package/dist/commands/health/utils.d.ts.map +1 -1
- package/dist/commands/health/utils.js +6 -0
- package/dist/commands/history/index.d.ts +1 -1
- package/dist/commands/history/index.d.ts.map +1 -1
- package/dist/commands/history/index.js +17 -18
- package/dist/commands/history/types.d.ts +38 -0
- package/dist/commands/history/types.d.ts.map +1 -1
- package/dist/commands/history/utils.d.ts.map +1 -1
- package/dist/commands/history/utils.js +63 -58
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +3 -8
- package/dist/commands/init-project/index.d.ts.map +1 -1
- package/dist/commands/init-project/index.js +3 -3
- package/dist/commands/init-project/utils.d.ts +2 -1
- package/dist/commands/init-project/utils.d.ts.map +1 -1
- package/dist/commands/init-project/utils.js +10 -2
- package/dist/commands/list-tools/index.d.ts.map +1 -1
- package/dist/commands/list-tools/index.js +7 -31
- package/dist/commands/manager.d.ts +2 -2
- package/dist/commands/manager.d.ts.map +1 -1
- package/dist/commands/manager.js +55 -33
- package/dist/commands/model/index.d.ts.map +1 -1
- package/dist/commands/model/index.js +20 -151
- package/dist/commands/model/model-panel.d.ts +4 -0
- package/dist/commands/model/model-panel.d.ts.map +1 -0
- package/dist/commands/model/model-panel.js +144 -0
- package/dist/commands/paste/index.d.ts.map +1 -1
- package/dist/commands/paste/index.js +59 -62
- package/dist/commands/paste/utils.d.ts.map +1 -1
- package/dist/commands/paste/utils.js +88 -58
- package/dist/commands/pickup/index.d.ts.map +1 -1
- package/dist/commands/pickup/index.js +6 -3
- package/dist/commands/pickup/utils.js +3 -3
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +33 -50
- package/dist/commands/review/index.d.ts.map +1 -1
- package/dist/commands/review/index.js +3 -117
- package/dist/commands/review/review-panel.d.ts +3 -0
- package/dist/commands/review/review-panel.d.ts.map +1 -0
- package/dist/commands/review/review-panel.js +186 -0
- package/dist/commands/review/utils.d.ts +15 -1
- package/dist/commands/review/utils.d.ts.map +1 -1
- package/dist/commands/review/utils.js +127 -68
- package/dist/commands/session/index.d.ts +1 -1
- package/dist/commands/session/index.d.ts.map +1 -1
- package/dist/commands/session/index.js +124 -135
- package/dist/commands/shell/index.d.ts.map +1 -1
- package/dist/commands/shell/index.js +16 -1
- package/dist/commands/types.d.ts +2 -2
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/{config.d.ts → config/index.d.ts} +20 -9
- package/dist/config/index.d.ts.map +1 -0
- package/dist/{config.js → config/index.js} +43 -42
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +75 -55
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -141
- package/dist/middleware/cache.d.ts.map +1 -1
- package/dist/middleware/cache.js +18 -36
- package/dist/models/ai-config.d.ts +1 -0
- package/dist/models/ai-config.d.ts.map +1 -1
- package/dist/models/ai-config.js +4 -3
- package/dist/models/anthropic-provider.d.ts +2 -5
- package/dist/models/anthropic-provider.d.ts.map +1 -1
- package/dist/models/anthropic-provider.js +3 -70
- package/dist/models/deepseek-provider.d.ts +1 -0
- package/dist/models/deepseek-provider.d.ts.map +1 -1
- package/dist/models/google-provider.d.ts +2 -3
- package/dist/models/google-provider.d.ts.map +1 -1
- package/dist/models/google-provider.js +0 -26
- package/dist/models/groq-provider.d.ts +1 -0
- package/dist/models/groq-provider.d.ts.map +1 -1
- package/dist/models/manager.d.ts +13 -2
- package/dist/models/manager.d.ts.map +1 -1
- package/dist/models/manager.js +20 -8
- package/dist/models/openai-provider.d.ts +2 -5
- package/dist/models/openai-provider.d.ts.map +1 -1
- package/dist/models/openai-provider.js +0 -52
- package/dist/models/opencode-go-provider.d.ts +25 -0
- package/dist/models/opencode-go-provider.d.ts.map +1 -0
- package/dist/models/opencode-go-provider.js +78 -0
- package/dist/models/opencode-zen-provider.d.ts +7 -3
- package/dist/models/opencode-zen-provider.d.ts.map +1 -1
- package/dist/models/opencode-zen-provider.js +49 -10
- package/dist/models/openrouter-provider.d.ts +27 -31
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +121 -180
- package/dist/models/providers.d.ts +3 -3
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/providers.js +6 -0
- package/dist/models/xai-provider.d.ts +4 -3
- package/dist/models/xai-provider.d.ts.map +1 -1
- package/dist/models/xai-provider.js +18 -18
- package/dist/modes/manager.d.ts +24 -0
- package/dist/modes/manager.d.ts.map +1 -0
- package/dist/modes/manager.js +77 -0
- package/dist/modes/prompts.d.ts +2 -0
- package/dist/modes/prompts.d.ts.map +1 -0
- package/dist/modes/prompts.js +142 -0
- package/dist/prompts/mentions.d.ts +11 -0
- package/dist/prompts/mentions.d.ts.map +1 -0
- package/dist/{mentions.js → prompts/mentions.js} +55 -85
- package/dist/{prompts.d.ts → prompts/system-prompt.d.ts} +7 -2
- package/dist/prompts/system-prompt.d.ts.map +1 -0
- package/dist/{prompts.js → prompts/system-prompt.js} +31 -16
- package/dist/repl/index.d.ts +174 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/{repl-new.js → repl/index.js} +397 -76
- package/dist/repl/project-status.d.ts +1 -0
- package/dist/repl/project-status.d.ts.map +1 -1
- package/dist/repl/project-status.js +4 -1
- package/dist/sessions/manager.d.ts +92 -0
- package/dist/sessions/manager.d.ts.map +1 -1
- package/dist/sessions/manager.js +262 -9
- package/dist/sessions/summary.d.ts +4 -0
- package/dist/sessions/summary.d.ts.map +1 -0
- package/dist/sessions/summary.js +30 -0
- package/dist/skills/index.d.ts +29 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +294 -0
- package/dist/subagents/index.d.ts +16 -0
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +231 -0
- package/dist/terminal/control.d.ts +1 -1
- package/dist/terminal/control.d.ts.map +1 -1
- package/dist/terminal/control.js +3 -3
- package/dist/terminal/east-asian-width.d.ts.map +1 -1
- package/dist/terminal/east-asian-width.js +404 -351
- package/dist/terminal/keys.d.ts +17 -0
- package/dist/terminal/keys.d.ts.map +1 -1
- package/dist/terminal/keys.js +37 -0
- package/dist/terminal/select-prompt.d.ts.map +1 -1
- package/dist/terminal/select-prompt.js +24 -12
- package/dist/terminal/string-width.d.ts.map +1 -1
- package/dist/terminal/string-width.js +25 -27
- package/dist/terminal/style.d.ts.map +1 -1
- package/dist/terminal/style.js +4 -7
- package/dist/terminal/supports-color.d.ts.map +1 -1
- package/dist/terminal/supports-color.js +41 -27
- package/dist/terminal/table/cell.d.ts +12 -0
- package/dist/terminal/table/cell.d.ts.map +1 -1
- package/dist/terminal/table/cell.js +40 -25
- package/dist/terminal/table/layout-manager.d.ts.map +1 -1
- package/dist/terminal/table/layout-manager.js +100 -68
- package/dist/terminal/table/utils.d.ts +1 -1
- package/dist/terminal/table/utils.d.ts.map +1 -1
- package/dist/terminal/table/utils.js +17 -10
- package/dist/terminal/wrap-ansi.d.ts.map +1 -1
- package/dist/terminal/wrap-ansi.js +174 -105
- package/dist/tokens/tracker.d.ts +1 -0
- package/dist/tokens/tracker.d.ts.map +1 -1
- package/dist/tokens/tracker.js +3 -0
- package/dist/tools/agent.d.ts +27 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +81 -0
- package/dist/tools/apply-patch.d.ts +62 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +377 -0
- package/dist/tools/bash.d.ts +4 -3
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +349 -141
- package/dist/tools/directory-tree.d.ts +3 -3
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +8 -5
- package/dist/tools/dynamic-tool-loader.d.ts +3 -6
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-loader.js +20 -4
- package/dist/tools/edit-file.d.ts +7 -7
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +292 -85
- package/dist/tools/glob.d.ts +6 -6
- package/dist/tools/glob.d.ts.map +1 -1
- package/dist/tools/glob.js +110 -63
- package/dist/tools/grep.d.ts +15 -12
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +315 -193
- package/dist/tools/index.d.ts +114 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +39 -24
- package/dist/tools/ls.d.ts +2 -2
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +7 -5
- package/dist/tools/read-file.d.ts +4 -6
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +84 -39
- package/dist/tools/save-file.d.ts +3 -3
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +36 -31
- package/dist/tools/skill.d.ts +23 -0
- package/dist/tools/skill.d.ts.map +1 -0
- package/dist/tools/skill.js +65 -0
- package/dist/tools/think.d.ts.map +1 -1
- package/dist/tools/think.js +2 -9
- package/dist/tools/utils.d.ts +2 -0
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +12 -0
- package/dist/tools/web-fetch.d.ts +50 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +446 -0
- package/dist/tools/web-search.d.ts +44 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +226 -0
- package/dist/tui/autocomplete/attachment-provider.d.ts +3 -6
- package/dist/tui/autocomplete/attachment-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/attachment-provider.js +25 -78
- package/dist/tui/autocomplete/base-provider.d.ts +1 -0
- package/dist/tui/autocomplete/base-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/combined-provider.d.ts +1 -4
- package/dist/tui/autocomplete/combined-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/combined-provider.js +3 -17
- package/dist/tui/autocomplete/command-provider.d.ts +1 -0
- package/dist/tui/autocomplete/command-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/command-provider.js +3 -0
- package/dist/tui/autocomplete/file-search-provider.d.ts +2 -1
- package/dist/tui/autocomplete/file-search-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/file-search-provider.js +37 -17
- package/dist/tui/autocomplete/skill-provider.d.ts +17 -0
- package/dist/tui/autocomplete/skill-provider.d.ts.map +1 -0
- package/dist/tui/autocomplete/skill-provider.js +49 -0
- package/dist/tui/autocomplete/utils.d.ts +2 -1
- package/dist/tui/autocomplete/utils.d.ts.map +1 -1
- package/dist/tui/autocomplete/utils.js +25 -23
- package/dist/tui/autocomplete.d.ts +2 -2
- package/dist/tui/autocomplete.d.ts.map +1 -1
- package/dist/tui/autocomplete.js +3 -5
- package/dist/tui/components/assistant-message.d.ts.map +1 -1
- package/dist/tui/components/assistant-message.js +0 -4
- package/dist/tui/components/editor.d.ts +18 -3
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +211 -237
- package/dist/tui/components/footer.d.ts +6 -4
- package/dist/tui/components/footer.d.ts.map +1 -1
- package/dist/tui/components/footer.js +49 -25
- package/dist/tui/components/markdown.d.ts +10 -7
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/markdown.js +57 -39
- package/dist/tui/components/modal.d.ts.map +1 -1
- package/dist/tui/components/modal.js +35 -33
- package/dist/tui/components/notification.d.ts +13 -2
- package/dist/tui/components/notification.d.ts.map +1 -1
- package/dist/tui/components/notification.js +36 -2
- package/dist/tui/components/progress-bar.js +1 -1
- package/dist/tui/components/select-list.d.ts +1 -0
- package/dist/tui/components/select-list.d.ts.map +1 -1
- package/dist/tui/components/select-list.js +14 -11
- package/dist/tui/components/text.d.ts +16 -0
- package/dist/tui/components/text.d.ts.map +1 -1
- package/dist/tui/components/text.js +72 -57
- package/dist/tui/components/thinking-block.d.ts +9 -0
- package/dist/tui/components/thinking-block.d.ts.map +1 -1
- package/dist/tui/components/thinking-block.js +43 -11
- package/dist/tui/components/tool-execution.d.ts +5 -1
- package/dist/tui/components/tool-execution.d.ts.map +1 -1
- package/dist/tui/components/tool-execution.js +19 -10
- package/dist/tui/components/user-message.d.ts.map +1 -1
- package/dist/tui/components/user-message.js +0 -3
- package/dist/tui/components/welcome.d.ts +2 -1
- package/dist/tui/components/welcome.d.ts.map +1 -1
- package/dist/tui/components/welcome.js +2 -2
- package/dist/tui/editor-launcher.d.ts +3 -2
- package/dist/tui/editor-launcher.d.ts.map +1 -1
- package/dist/tui/index.d.ts +0 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/terminal.d.ts.map +1 -1
- package/dist/tui/terminal.js +10 -2
- package/dist/tui/tui.d.ts +43 -0
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +166 -41
- package/dist/tui/utils.d.ts +1 -5
- package/dist/tui/utils.d.ts.map +1 -1
- package/dist/tui/utils.js +271 -44
- package/dist/utils/bash/parse.d.ts +19 -0
- package/dist/utils/bash/parse.d.ts.map +1 -0
- package/dist/utils/bash/parse.js +223 -0
- package/dist/utils/bash/quote.d.ts +6 -0
- package/dist/utils/bash/quote.d.ts.map +1 -0
- package/dist/utils/bash/quote.js +23 -0
- package/dist/utils/bash.d.ts.map +1 -1
- package/dist/utils/bash.js +211 -126
- package/dist/utils/command-protection.d.ts +28 -0
- package/dist/utils/command-protection.d.ts.map +1 -0
- package/dist/utils/command-protection.js +324 -0
- package/dist/utils/dedent.d.ts.map +1 -0
- package/dist/utils/env-expand.d.ts +2 -0
- package/dist/utils/env-expand.d.ts.map +1 -0
- package/dist/utils/env-expand.js +8 -0
- package/dist/utils/filesystem/path-display.d.ts +11 -0
- package/dist/utils/filesystem/path-display.d.ts.map +1 -0
- package/dist/utils/filesystem/path-display.js +32 -0
- package/dist/utils/filesystem/security.d.ts +2 -2
- package/dist/utils/filesystem/security.d.ts.map +1 -1
- package/dist/utils/filesystem/security.js +28 -30
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/{formatting.js → utils/formatting.js} +1 -1
- package/dist/utils/git.d.ts +4 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +30 -0
- package/dist/utils/glob.d.ts +1 -1
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/{logger.js → utils/logger.js} +1 -1
- package/dist/utils/parsing.d.ts.map +1 -0
- package/dist/utils/process.d.ts.map +1 -1
- package/dist/utils/process.js +90 -37
- package/dist/utils/templates.d.ts +2 -0
- package/dist/utils/templates.d.ts.map +1 -0
- package/dist/utils/templates.js +24 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/{version.js → utils/version.js} +1 -1
- package/package.json +35 -26
- package/dist/cli.d.ts +0 -23
- package/dist/cli.d.ts.map +0 -1
- package/dist/commands/add-directory/types.d.ts +0 -6
- package/dist/commands/add-directory/types.d.ts.map +0 -1
- package/dist/commands/add-directory/types.js +0 -1
- package/dist/commands/copy/types.d.ts +0 -3
- package/dist/commands/copy/types.d.ts.map +0 -1
- package/dist/commands/copy/types.js +0 -1
- package/dist/commands/exit/index.d.ts +0 -10
- package/dist/commands/exit/index.d.ts.map +0 -1
- package/dist/commands/exit/index.js +0 -21
- package/dist/commands/exit/types.d.ts +0 -8
- package/dist/commands/exit/types.d.ts.map +0 -1
- package/dist/commands/exit/types.js +0 -1
- package/dist/commands/exit/utils.d.ts +0 -2
- package/dist/commands/exit/utils.d.ts.map +0 -1
- package/dist/commands/exit/utils.js +0 -13
- package/dist/commands/prompt/index.d.ts +0 -5
- package/dist/commands/prompt/index.d.ts.map +0 -1
- package/dist/commands/prompt/index.js +0 -122
- package/dist/commands/prompt/types.d.ts +0 -15
- package/dist/commands/prompt/types.d.ts.map +0 -1
- package/dist/commands/prompt/types.js +0 -1
- package/dist/commands/prompt/utils.d.ts +0 -12
- package/dist/commands/prompt/utils.d.ts.map +0 -1
- package/dist/commands/prompt/utils.js +0 -107
- package/dist/commands/reset/index.d.ts +0 -3
- package/dist/commands/reset/index.d.ts.map +0 -1
- package/dist/commands/reset/index.js +0 -25
- package/dist/commands/reset/types.d.ts +0 -1
- package/dist/commands/reset/types.d.ts.map +0 -1
- package/dist/commands/reset/types.js +0 -3
- package/dist/commands/review/types.d.ts +0 -12
- package/dist/commands/review/types.d.ts.map +0 -1
- package/dist/commands/review/types.js +0 -1
- package/dist/commands/save/index.d.ts +0 -3
- package/dist/commands/save/index.d.ts.map +0 -1
- package/dist/commands/save/index.js +0 -19
- package/dist/config.d.ts.map +0 -1
- package/dist/dedent.d.ts.map +0 -1
- package/dist/formatting.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/mentions.d.ts +0 -14
- package/dist/mentions.d.ts.map +0 -1
- package/dist/parsing.d.ts.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/repl-new.d.ts +0 -65
- package/dist/repl-new.d.ts.map +0 -1
- package/dist/skills.d.ts +0 -16
- package/dist/skills.d.ts.map +0 -1
- package/dist/skills.js +0 -233
- package/dist/stdin.d.ts.map +0 -1
- package/dist/tui/autocomplete/path-provider.d.ts +0 -21
- package/dist/tui/autocomplete/path-provider.d.ts.map +0 -1
- package/dist/tui/autocomplete/path-provider.js +0 -164
- package/dist/utils/iterables.d.ts +0 -2
- package/dist/utils/iterables.d.ts.map +0 -1
- package/dist/utils/iterables.js +0 -6
- package/dist/version.d.ts.map +0 -1
- /package/dist/{dedent.d.ts → utils/dedent.d.ts} +0 -0
- /package/dist/{dedent.js → utils/dedent.js} +0 -0
- /package/dist/{formatting.d.ts → utils/formatting.d.ts} +0 -0
- /package/dist/{logger.d.ts → utils/logger.d.ts} +0 -0
- /package/dist/{parsing.d.ts → utils/parsing.d.ts} +0 -0
- /package/dist/{parsing.js → utils/parsing.js} +0 -0
- /package/dist/{version.d.ts → utils/version.d.ts} +0 -0
|
@@ -3,365 +3,418 @@ function validate(codePoint) {
|
|
|
3
3
|
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
+
// Individual code points that are ambiguous (stored in Set for O(1) lookup)
|
|
7
|
+
const AMBIGUOUS_CODE_POINTS = new Set([
|
|
8
|
+
0xa1,
|
|
9
|
+
0xa4,
|
|
10
|
+
0xa7,
|
|
11
|
+
0xa8,
|
|
12
|
+
0xaa,
|
|
13
|
+
0xad,
|
|
14
|
+
0xae, // 0xa1-0xae range (partial)
|
|
15
|
+
0xc6,
|
|
16
|
+
0xd0,
|
|
17
|
+
0xd7,
|
|
18
|
+
0xd8, // 0xc6-0xd8 range (partial)
|
|
19
|
+
0xe6,
|
|
20
|
+
0xec,
|
|
21
|
+
0xed,
|
|
22
|
+
0xf0,
|
|
23
|
+
0xf2,
|
|
24
|
+
0xf3, // 0xe6-0xf3 range (partial)
|
|
25
|
+
0xfc,
|
|
26
|
+
0xfe, // 0xfc-0xfe
|
|
27
|
+
0x101,
|
|
28
|
+
0x111,
|
|
29
|
+
0x113,
|
|
30
|
+
0x11b, // 0x101-0x11b range (partial)
|
|
31
|
+
0x126,
|
|
32
|
+
0x127,
|
|
33
|
+
0x12b, // 0x126-0x12b range (partial)
|
|
34
|
+
0x138, // 0x138
|
|
35
|
+
0x144, // 0x144
|
|
36
|
+
0x14d,
|
|
37
|
+
0x152,
|
|
38
|
+
0x153, // 0x14d-0x153 range (partial)
|
|
39
|
+
0x166,
|
|
40
|
+
0x167,
|
|
41
|
+
0x16b, // 0x166-0x16b range (partial)
|
|
42
|
+
0x1ce,
|
|
43
|
+
0x1d0,
|
|
44
|
+
0x1d2,
|
|
45
|
+
0x1d4,
|
|
46
|
+
0x1d6,
|
|
47
|
+
0x1d8,
|
|
48
|
+
0x1da,
|
|
49
|
+
0x1dc, // 0x1ce-0x1dc range
|
|
50
|
+
0x251,
|
|
51
|
+
0x261, // 0x251-0x261 range (partial)
|
|
52
|
+
0x2c4,
|
|
53
|
+
0x2c7, // 0x2c4-0x2c7 range (partial)
|
|
54
|
+
0x2cd,
|
|
55
|
+
0x2d0, // 0x2cd-0x2d0 range (partial)
|
|
56
|
+
0x2dd,
|
|
57
|
+
0x2df, // 0x2dd-0x2df range (partial)
|
|
58
|
+
0x401,
|
|
59
|
+
0x451, // 0x401, 0x451
|
|
60
|
+
0x2010, // 0x2010
|
|
61
|
+
0x2018,
|
|
62
|
+
0x2019,
|
|
63
|
+
0x201c,
|
|
64
|
+
0x201d, // 0x2018-0x201d range
|
|
65
|
+
0x2020,
|
|
66
|
+
0x2021,
|
|
67
|
+
0x2022, // 0x2020-0x2022 range
|
|
68
|
+
0x2024,
|
|
69
|
+
0x2025,
|
|
70
|
+
0x2026,
|
|
71
|
+
0x2027, // 0x2024-0x2027 range
|
|
72
|
+
0x2030,
|
|
73
|
+
0x2032,
|
|
74
|
+
0x2033,
|
|
75
|
+
0x2035, // 0x2030-0x2035 range (partial)
|
|
76
|
+
0x203b,
|
|
77
|
+
0x203e, // 0x203b-0x203e range
|
|
78
|
+
0x2074,
|
|
79
|
+
0x207f, // 0x2074-0x207f range
|
|
80
|
+
0x20ac, // 0x20ac
|
|
81
|
+
0x2103,
|
|
82
|
+
0x2105,
|
|
83
|
+
0x2109, // 0x2103-0x2109 range (partial)
|
|
84
|
+
0x2113,
|
|
85
|
+
0x2116, // 0x2113-0x2116 range
|
|
86
|
+
0x2121,
|
|
87
|
+
0x2122,
|
|
88
|
+
0x2126,
|
|
89
|
+
0x212b, // 0x2121-0x212b range
|
|
90
|
+
0x2153,
|
|
91
|
+
0x2154, // 0x2153-0x2154
|
|
92
|
+
0x2189, // 0x2189
|
|
93
|
+
0x21b8,
|
|
94
|
+
0x21b9, // 0x21b8-0x21b9
|
|
95
|
+
0x21d2,
|
|
96
|
+
0x21d4, // 0x21d2-0x21d4
|
|
97
|
+
0x21e7, // 0x21e7
|
|
98
|
+
0x2200,
|
|
99
|
+
0x2202,
|
|
100
|
+
0x2203,
|
|
101
|
+
0x2207, // 0x2200-0x2207 range (partial)
|
|
102
|
+
0x2208,
|
|
103
|
+
0x220b, // 0x2208-0x220b range
|
|
104
|
+
0x220f,
|
|
105
|
+
0x2211, // 0x220f-0x2211 range
|
|
106
|
+
0x2215, // 0x2215
|
|
107
|
+
0x221a, // 0x221a
|
|
108
|
+
0x2223,
|
|
109
|
+
0x2225, // 0x2223-0x2225 range
|
|
110
|
+
0x222e, // 0x222e
|
|
111
|
+
0x223c,
|
|
112
|
+
0x223d, // 0x223c-0x223d
|
|
113
|
+
0x2248,
|
|
114
|
+
0x224c, // 0x2248-0x224c
|
|
115
|
+
0x2252, // 0x2252
|
|
116
|
+
0x2260,
|
|
117
|
+
0x2261, // 0x2260-0x2261
|
|
118
|
+
0x226a,
|
|
119
|
+
0x226b, // 0x226a-0x226b
|
|
120
|
+
0x226e,
|
|
121
|
+
0x226f, // 0x226e-0x226f
|
|
122
|
+
0x2282,
|
|
123
|
+
0x2283, // 0x2282-0x2283
|
|
124
|
+
0x2286,
|
|
125
|
+
0x2287, // 0x2286-0x2287
|
|
126
|
+
0x2295,
|
|
127
|
+
0x2299, // 0x2295-0x2299
|
|
128
|
+
0x22a5,
|
|
129
|
+
0x22bf, // 0x22a5-0x22bf
|
|
130
|
+
0x2312, // 0x2312
|
|
131
|
+
0x25a0,
|
|
132
|
+
0x25a1, // 0x25a0-0x25a1
|
|
133
|
+
0x25b2,
|
|
134
|
+
0x25b3, // 0x25b2-0x25b3
|
|
135
|
+
0x25b6,
|
|
136
|
+
0x25b7, // 0x25b6-0x25b7
|
|
137
|
+
0x25bc,
|
|
138
|
+
0x25bd, // 0x25bc-0x25bd
|
|
139
|
+
0x25c0,
|
|
140
|
+
0x25c1, // 0x25c0-0x25c1
|
|
141
|
+
0x25cb, // 0x25cb
|
|
142
|
+
0x25ef, // 0x25ef
|
|
143
|
+
0x2605,
|
|
144
|
+
0x2606, // 0x2605-0x2606
|
|
145
|
+
0x2609, // 0x2609
|
|
146
|
+
0x260e,
|
|
147
|
+
0x260f, // 0x260e-0x260f
|
|
148
|
+
0x261c,
|
|
149
|
+
0x261e, // 0x261c-0x261e
|
|
150
|
+
0x2640,
|
|
151
|
+
0x2642, // 0x2640-0x2642
|
|
152
|
+
0x2660,
|
|
153
|
+
0x2661, // 0x2660-0x2661
|
|
154
|
+
0x266d,
|
|
155
|
+
0x266f, // 0x266d-0x266f
|
|
156
|
+
0x269e,
|
|
157
|
+
0x269f, // 0x269e-0x269f
|
|
158
|
+
0x26bf, // 0x26bf
|
|
159
|
+
0x26e3, // 0x26e3
|
|
160
|
+
0x26e8,
|
|
161
|
+
0x26e9, // 0x26e8-0x26e9
|
|
162
|
+
0x26f4, // 0x26f4
|
|
163
|
+
0x26fb,
|
|
164
|
+
0x26fc,
|
|
165
|
+
0x26fe,
|
|
166
|
+
0x26ff, // 0x26fb-0x26ff
|
|
167
|
+
0x273d, // 0x273d
|
|
168
|
+
0xfffd, // 0xfffd
|
|
169
|
+
0x1f18f,
|
|
170
|
+
0x1f190, // 0x1f18f-0x1f190
|
|
171
|
+
]);
|
|
172
|
+
// Ranges of ambiguous code points (stored as [start, end] tuples)
|
|
173
|
+
const AMBIGUOUS_RANGES = [
|
|
174
|
+
[0xb0, 0xb4], // Latin Extended Additional
|
|
175
|
+
[0xb6, 0xba], // Latin Extended Additional
|
|
176
|
+
[0xbc, 0xbf], // Latin Extended Additional
|
|
177
|
+
[0xde, 0xe1], // Latin Extended Additional
|
|
178
|
+
[0xe8, 0xea], // Latin Extended Additional
|
|
179
|
+
[0xf7, 0xfa], // Latin Extended Additional
|
|
180
|
+
[0x101, 0x101], // Added for completeness
|
|
181
|
+
[0x111, 0x111],
|
|
182
|
+
[0x113, 0x113],
|
|
183
|
+
[0x11b, 0x11b],
|
|
184
|
+
[0x131, 0x133], // Latin Extended Additional
|
|
185
|
+
[0x13f, 0x142], // Latin Extended Additional
|
|
186
|
+
[0x144, 0x144],
|
|
187
|
+
[0x148, 0x14b], // Latin Extended Additional
|
|
188
|
+
[0x14d, 0x14d],
|
|
189
|
+
[0x152, 0x153], // Latin Extended Additional
|
|
190
|
+
[0x166, 0x167], // Latin Extended Additional
|
|
191
|
+
[0x16b, 0x16b],
|
|
192
|
+
[0x2c9, 0x2cb], // Cyrillic Extended Additional
|
|
193
|
+
[0x2d8, 0x2db], // Cyrillic Extended Additional
|
|
194
|
+
[0x300, 0x36f], // Combining Diacritical Marks
|
|
195
|
+
[0x391, 0x3a1], // Greek and Coptic (uppercase)
|
|
196
|
+
[0x3a3, 0x3a9], // Greek and Coptic (uppercase)
|
|
197
|
+
[0x3b1, 0x3c1], // Greek and Coptic (lowercase)
|
|
198
|
+
[0x3c3, 0x3c9], // Greek and Coptic (lowercase)
|
|
199
|
+
[0x410, 0x44f], // Cyrillic
|
|
200
|
+
[0x2013, 0x2016], // General Punctuation
|
|
201
|
+
[0x2024, 0x2027], // General Punctuation
|
|
202
|
+
[0x215b, 0x215e], // Number Forms
|
|
203
|
+
[0x2160, 0x216b], // Number Forms (Roman numerals)
|
|
204
|
+
[0x2170, 0x2179], // Number Forms (small Roman)
|
|
205
|
+
[0x2190, 0x2199], // Arrows
|
|
206
|
+
[0x21d2, 0x21d2],
|
|
207
|
+
[0x21d4, 0x21d4],
|
|
208
|
+
[0x221d, 0x2220], // Mathematical Operators
|
|
209
|
+
[0x2227, 0x222c], // Mathematical Operators
|
|
210
|
+
[0x2234, 0x2237], // Mathematical Operators
|
|
211
|
+
[0x223c, 0x223d], // Mathematical Operators
|
|
212
|
+
[0x2248, 0x2248],
|
|
213
|
+
[0x224c, 0x224c],
|
|
214
|
+
[0x2252, 0x2252],
|
|
215
|
+
[0x2260, 0x2261], // Mathematical Operators
|
|
216
|
+
[0x2264, 0x2267], // Mathematical Operators
|
|
217
|
+
[0x226a, 0x226b], // Mathematical Operators
|
|
218
|
+
[0x226e, 0x226f], // Mathematical Operators
|
|
219
|
+
[0x2282, 0x2283], // Mathematical Operators
|
|
220
|
+
[0x2286, 0x2287], // Mathematical Operators
|
|
221
|
+
[0x2295, 0x2295],
|
|
222
|
+
[0x2299, 0x2299],
|
|
223
|
+
[0x22a5, 0x22a5],
|
|
224
|
+
[0x22bf, 0x22bf],
|
|
225
|
+
[0x2312, 0x2312],
|
|
226
|
+
[0x2460, 0x24e9], // Enclosed Alphanumerics
|
|
227
|
+
[0x24eb, 0x254b], // Enclosed Alphanumerics
|
|
228
|
+
[0x2550, 0x2573], // Box Drawing
|
|
229
|
+
[0x2580, 0x258f], // Block Elements
|
|
230
|
+
[0x2592, 0x2595], // Block Elements
|
|
231
|
+
[0x25a3, 0x25a9], // Geometric Shapes
|
|
232
|
+
[0x25b2, 0x25b3], // Geometric Shapes
|
|
233
|
+
[0x25b6, 0x25b7], // Geometric Shapes
|
|
234
|
+
[0x25bc, 0x25bd], // Geometric Shapes
|
|
235
|
+
[0x25c0, 0x25c1], // Geometric Shapes
|
|
236
|
+
[0x25c6, 0x25c8], // Geometric Shapes
|
|
237
|
+
[0x25ce, 0x25d1], // Geometric Shapes
|
|
238
|
+
[0x25e2, 0x25e5], // Geometric Shapes
|
|
239
|
+
[0x2605, 0x2606], // Miscellaneous Symbols
|
|
240
|
+
[0x2609, 0x2609],
|
|
241
|
+
[0x260e, 0x260f], // Miscellaneous Symbols
|
|
242
|
+
[0x261c, 0x261e], // Miscellaneous Symbols
|
|
243
|
+
[0x2640, 0x2640],
|
|
244
|
+
[0x2642, 0x2642],
|
|
245
|
+
[0x2660, 0x2661], // Miscellaneous Symbols
|
|
246
|
+
[0x2663, 0x2665], // Miscellaneous Symbols
|
|
247
|
+
[0x2667, 0x266a], // Miscellaneous Symbols
|
|
248
|
+
[0x266c, 0x266c],
|
|
249
|
+
[0x266d, 0x266d],
|
|
250
|
+
[0x266f, 0x266f],
|
|
251
|
+
[0x26c6, 0x26cd], // Miscellaneous Symbols
|
|
252
|
+
[0x26cf, 0x26d3], // Miscellaneous Symbols
|
|
253
|
+
[0x26d5, 0x26e1], // Miscellaneous Symbols
|
|
254
|
+
[0x26e8, 0x26e9], // Miscellaneous Symbols
|
|
255
|
+
[0x26eb, 0x26f1], // Miscellaneous Symbols
|
|
256
|
+
[0x26f4, 0x26f4],
|
|
257
|
+
[0x26f6, 0x26f9], // Miscellaneous Symbols
|
|
258
|
+
[0x26fb, 0x26fc], // Miscellaneous Symbols
|
|
259
|
+
[0x26fe, 0x26ff], // Miscellaneous Symbols
|
|
260
|
+
[0x2776, 0x277f], // Dingbats
|
|
261
|
+
[0x2b56, 0x2b59], // Miscellaneous Symbols and Arrows
|
|
262
|
+
[0x3248, 0x324f], // Enclosed CJK
|
|
263
|
+
[0xe000, 0xf8ff], // Private Use Area
|
|
264
|
+
[0xfe00, 0xfe0f], // Variation Selectors
|
|
265
|
+
[0x1f100, 0x1f10a], // Enclosed Alphanumeric Supplement
|
|
266
|
+
[0x1f110, 0x1f12d], // Enclosed Alphanumeric Supplement
|
|
267
|
+
[0x1f130, 0x1f169], // Enclosed Alphanumeric Supplement
|
|
268
|
+
[0x1f170, 0x1f18d], // Enclosed Alphanumeric Supplement
|
|
269
|
+
[0x1f19b, 0x1f1ac], // Enclosed Alphanumeric Supplement
|
|
270
|
+
[0xe0100, 0xe01ef], // Variation Selectors Supplement
|
|
271
|
+
[0xf0000, 0xffffd], // Supplementary Private Use Area-A
|
|
272
|
+
[0x100000, 0x10fffd], // Supplementary Private Use Area-B
|
|
273
|
+
];
|
|
6
274
|
function isAmbiguous(codePoint) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
codePoint
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
codePoint === 0xd0 ||
|
|
19
|
-
codePoint === 0xd7 ||
|
|
20
|
-
codePoint === 0xd8 ||
|
|
21
|
-
(codePoint >= 0xde && codePoint <= 0xe1) ||
|
|
22
|
-
codePoint === 0xe6 ||
|
|
23
|
-
(codePoint >= 0xe8 && codePoint <= 0xea) ||
|
|
24
|
-
codePoint === 0xec ||
|
|
25
|
-
codePoint === 0xed ||
|
|
26
|
-
codePoint === 0xf0 ||
|
|
27
|
-
codePoint === 0xf2 ||
|
|
28
|
-
codePoint === 0xf3 ||
|
|
29
|
-
(codePoint >= 0xf7 && codePoint <= 0xfa) ||
|
|
30
|
-
codePoint === 0xfc ||
|
|
31
|
-
codePoint === 0xfe ||
|
|
32
|
-
codePoint === 0x101 ||
|
|
33
|
-
codePoint === 0x111 ||
|
|
34
|
-
codePoint === 0x113 ||
|
|
35
|
-
codePoint === 0x11b ||
|
|
36
|
-
codePoint === 0x126 ||
|
|
37
|
-
codePoint === 0x127 ||
|
|
38
|
-
codePoint === 0x12b ||
|
|
39
|
-
(codePoint >= 0x131 && codePoint <= 0x133) ||
|
|
40
|
-
codePoint === 0x138 ||
|
|
41
|
-
(codePoint >= 0x13f && codePoint <= 0x142) ||
|
|
42
|
-
codePoint === 0x144 ||
|
|
43
|
-
(codePoint >= 0x148 && codePoint <= 0x14b) ||
|
|
44
|
-
codePoint === 0x14d ||
|
|
45
|
-
codePoint === 0x152 ||
|
|
46
|
-
codePoint === 0x153 ||
|
|
47
|
-
codePoint === 0x166 ||
|
|
48
|
-
codePoint === 0x167 ||
|
|
49
|
-
codePoint === 0x16b ||
|
|
50
|
-
codePoint === 0x1ce ||
|
|
51
|
-
codePoint === 0x1d0 ||
|
|
52
|
-
codePoint === 0x1d2 ||
|
|
53
|
-
codePoint === 0x1d4 ||
|
|
54
|
-
codePoint === 0x1d6 ||
|
|
55
|
-
codePoint === 0x1d8 ||
|
|
56
|
-
codePoint === 0x1da ||
|
|
57
|
-
codePoint === 0x1dc ||
|
|
58
|
-
codePoint === 0x251 ||
|
|
59
|
-
codePoint === 0x261 ||
|
|
60
|
-
codePoint === 0x2c4 ||
|
|
61
|
-
codePoint === 0x2c7 ||
|
|
62
|
-
(codePoint >= 0x2c9 && codePoint <= 0x2cb) ||
|
|
63
|
-
codePoint === 0x2cd ||
|
|
64
|
-
codePoint === 0x2d0 ||
|
|
65
|
-
(codePoint >= 0x2d8 && codePoint <= 0x2db) ||
|
|
66
|
-
codePoint === 0x2dd ||
|
|
67
|
-
codePoint === 0x2df ||
|
|
68
|
-
(codePoint >= 0x300 && codePoint <= 0x36f) ||
|
|
69
|
-
(codePoint >= 0x391 && codePoint <= 0x3a1) ||
|
|
70
|
-
(codePoint >= 0x3a3 && codePoint <= 0x3a9) ||
|
|
71
|
-
(codePoint >= 0x3b1 && codePoint <= 0x3c1) ||
|
|
72
|
-
(codePoint >= 0x3c3 && codePoint <= 0x3c9) ||
|
|
73
|
-
codePoint === 0x401 ||
|
|
74
|
-
(codePoint >= 0x410 && codePoint <= 0x44f) ||
|
|
75
|
-
codePoint === 0x451 ||
|
|
76
|
-
codePoint === 0x2010 ||
|
|
77
|
-
(codePoint >= 0x2013 && codePoint <= 0x2016) ||
|
|
78
|
-
codePoint === 0x2018 ||
|
|
79
|
-
codePoint === 0x2019 ||
|
|
80
|
-
codePoint === 0x201c ||
|
|
81
|
-
codePoint === 0x201d ||
|
|
82
|
-
(codePoint >= 0x2020 && codePoint <= 0x2022) ||
|
|
83
|
-
(codePoint >= 0x2024 && codePoint <= 0x2027) ||
|
|
84
|
-
codePoint === 0x2030 ||
|
|
85
|
-
codePoint === 0x2032 ||
|
|
86
|
-
codePoint === 0x2033 ||
|
|
87
|
-
codePoint === 0x2035 ||
|
|
88
|
-
codePoint === 0x203b ||
|
|
89
|
-
codePoint === 0x203e ||
|
|
90
|
-
codePoint === 0x2074 ||
|
|
91
|
-
codePoint === 0x207f ||
|
|
92
|
-
(codePoint >= 0x2081 && codePoint <= 0x2084) ||
|
|
93
|
-
codePoint === 0x20ac ||
|
|
94
|
-
codePoint === 0x2103 ||
|
|
95
|
-
codePoint === 0x2105 ||
|
|
96
|
-
codePoint === 0x2109 ||
|
|
97
|
-
codePoint === 0x2113 ||
|
|
98
|
-
codePoint === 0x2116 ||
|
|
99
|
-
codePoint === 0x2121 ||
|
|
100
|
-
codePoint === 0x2122 ||
|
|
101
|
-
codePoint === 0x2126 ||
|
|
102
|
-
codePoint === 0x212b ||
|
|
103
|
-
codePoint === 0x2153 ||
|
|
104
|
-
codePoint === 0x2154 ||
|
|
105
|
-
(codePoint >= 0x215b && codePoint <= 0x215e) ||
|
|
106
|
-
(codePoint >= 0x2160 && codePoint <= 0x216b) ||
|
|
107
|
-
(codePoint >= 0x2170 && codePoint <= 0x2179) ||
|
|
108
|
-
codePoint === 0x2189 ||
|
|
109
|
-
(codePoint >= 0x2190 && codePoint <= 0x2199) ||
|
|
110
|
-
codePoint === 0x21b8 ||
|
|
111
|
-
codePoint === 0x21b9 ||
|
|
112
|
-
codePoint === 0x21d2 ||
|
|
113
|
-
codePoint === 0x21d4 ||
|
|
114
|
-
codePoint === 0x21e7 ||
|
|
115
|
-
codePoint === 0x2200 ||
|
|
116
|
-
codePoint === 0x2202 ||
|
|
117
|
-
codePoint === 0x2203 ||
|
|
118
|
-
codePoint === 0x2207 ||
|
|
119
|
-
codePoint === 0x2208 ||
|
|
120
|
-
codePoint === 0x220b ||
|
|
121
|
-
codePoint === 0x220f ||
|
|
122
|
-
codePoint === 0x2211 ||
|
|
123
|
-
codePoint === 0x2215 ||
|
|
124
|
-
codePoint === 0x221a ||
|
|
125
|
-
(codePoint >= 0x221d && codePoint <= 0x2220) ||
|
|
126
|
-
codePoint === 0x2223 ||
|
|
127
|
-
codePoint === 0x2225 ||
|
|
128
|
-
(codePoint >= 0x2227 && codePoint <= 0x222c) ||
|
|
129
|
-
codePoint === 0x222e ||
|
|
130
|
-
(codePoint >= 0x2234 && codePoint <= 0x2237) ||
|
|
131
|
-
codePoint === 0x223c ||
|
|
132
|
-
codePoint === 0x223d ||
|
|
133
|
-
codePoint === 0x2248 ||
|
|
134
|
-
codePoint === 0x224c ||
|
|
135
|
-
codePoint === 0x2252 ||
|
|
136
|
-
codePoint === 0x2260 ||
|
|
137
|
-
codePoint === 0x2261 ||
|
|
138
|
-
(codePoint >= 0x2264 && codePoint <= 0x2267) ||
|
|
139
|
-
codePoint === 0x226a ||
|
|
140
|
-
codePoint === 0x226b ||
|
|
141
|
-
codePoint === 0x226e ||
|
|
142
|
-
codePoint === 0x226f ||
|
|
143
|
-
codePoint === 0x2282 ||
|
|
144
|
-
codePoint === 0x2283 ||
|
|
145
|
-
codePoint === 0x2286 ||
|
|
146
|
-
codePoint === 0x2287 ||
|
|
147
|
-
codePoint === 0x2295 ||
|
|
148
|
-
codePoint === 0x2299 ||
|
|
149
|
-
codePoint === 0x22a5 ||
|
|
150
|
-
codePoint === 0x22bf ||
|
|
151
|
-
codePoint === 0x2312 ||
|
|
152
|
-
(codePoint >= 0x2460 && codePoint <= 0x24e9) ||
|
|
153
|
-
(codePoint >= 0x24eb && codePoint <= 0x254b) ||
|
|
154
|
-
(codePoint >= 0x2550 && codePoint <= 0x2573) ||
|
|
155
|
-
(codePoint >= 0x2580 && codePoint <= 0x258f) ||
|
|
156
|
-
(codePoint >= 0x2592 && codePoint <= 0x2595) ||
|
|
157
|
-
codePoint === 0x25a0 ||
|
|
158
|
-
codePoint === 0x25a1 ||
|
|
159
|
-
(codePoint >= 0x25a3 && codePoint <= 0x25a9) ||
|
|
160
|
-
codePoint === 0x25b2 ||
|
|
161
|
-
codePoint === 0x25b3 ||
|
|
162
|
-
codePoint === 0x25b6 ||
|
|
163
|
-
codePoint === 0x25b7 ||
|
|
164
|
-
codePoint === 0x25bc ||
|
|
165
|
-
codePoint === 0x25bd ||
|
|
166
|
-
codePoint === 0x25c0 ||
|
|
167
|
-
codePoint === 0x25c1 ||
|
|
168
|
-
(codePoint >= 0x25c6 && codePoint <= 0x25c8) ||
|
|
169
|
-
codePoint === 0x25cb ||
|
|
170
|
-
(codePoint >= 0x25ce && codePoint <= 0x25d1) ||
|
|
171
|
-
(codePoint >= 0x25e2 && codePoint <= 0x25e5) ||
|
|
172
|
-
codePoint === 0x25ef ||
|
|
173
|
-
codePoint === 0x2605 ||
|
|
174
|
-
codePoint === 0x2606 ||
|
|
175
|
-
codePoint === 0x2609 ||
|
|
176
|
-
codePoint === 0x260e ||
|
|
177
|
-
codePoint === 0x260f ||
|
|
178
|
-
codePoint === 0x261c ||
|
|
179
|
-
codePoint === 0x261e ||
|
|
180
|
-
codePoint === 0x2640 ||
|
|
181
|
-
codePoint === 0x2642 ||
|
|
182
|
-
codePoint === 0x2660 ||
|
|
183
|
-
codePoint === 0x2661 ||
|
|
184
|
-
(codePoint >= 0x2663 && codePoint <= 0x2665) ||
|
|
185
|
-
(codePoint >= 0x2667 && codePoint <= 0x266a) ||
|
|
186
|
-
codePoint === 0x266c ||
|
|
187
|
-
codePoint === 0x266d ||
|
|
188
|
-
codePoint === 0x266f ||
|
|
189
|
-
codePoint === 0x269e ||
|
|
190
|
-
codePoint === 0x269f ||
|
|
191
|
-
codePoint === 0x26bf ||
|
|
192
|
-
(codePoint >= 0x26c6 && codePoint <= 0x26cd) ||
|
|
193
|
-
(codePoint >= 0x26cf && codePoint <= 0x26d3) ||
|
|
194
|
-
(codePoint >= 0x26d5 && codePoint <= 0x26e1) ||
|
|
195
|
-
codePoint === 0x26e3 ||
|
|
196
|
-
codePoint === 0x26e8 ||
|
|
197
|
-
codePoint === 0x26e9 ||
|
|
198
|
-
(codePoint >= 0x26eb && codePoint <= 0x26f1) ||
|
|
199
|
-
codePoint === 0x26f4 ||
|
|
200
|
-
(codePoint >= 0x26f6 && codePoint <= 0x26f9) ||
|
|
201
|
-
codePoint === 0x26fb ||
|
|
202
|
-
codePoint === 0x26fc ||
|
|
203
|
-
codePoint === 0x26fe ||
|
|
204
|
-
codePoint === 0x26ff ||
|
|
205
|
-
codePoint === 0x273d ||
|
|
206
|
-
(codePoint >= 0x2776 && codePoint <= 0x277f) ||
|
|
207
|
-
(codePoint >= 0x2b56 && codePoint <= 0x2b59) ||
|
|
208
|
-
(codePoint >= 0x3248 && codePoint <= 0x324f) ||
|
|
209
|
-
(codePoint >= 0xe000 && codePoint <= 0xf8ff) ||
|
|
210
|
-
(codePoint >= 0xfe00 && codePoint <= 0xfe0f) ||
|
|
211
|
-
codePoint === 0xfffd ||
|
|
212
|
-
(codePoint >= 0x1f100 && codePoint <= 0x1f10a) ||
|
|
213
|
-
(codePoint >= 0x1f110 && codePoint <= 0x1f12d) ||
|
|
214
|
-
(codePoint >= 0x1f130 && codePoint <= 0x1f169) ||
|
|
215
|
-
(codePoint >= 0x1f170 && codePoint <= 0x1f18d) ||
|
|
216
|
-
codePoint === 0x1f18f ||
|
|
217
|
-
codePoint === 0x1f190 ||
|
|
218
|
-
(codePoint >= 0x1f19b && codePoint <= 0x1f1ac) ||
|
|
219
|
-
(codePoint >= 0xe0100 && codePoint <= 0xe01ef) ||
|
|
220
|
-
(codePoint >= 0xf0000 && codePoint <= 0xffffd) ||
|
|
221
|
-
(codePoint >= 0x100000 && codePoint <= 0x10fffd));
|
|
275
|
+
// Check individual code points first (O(1) lookup)
|
|
276
|
+
if (AMBIGUOUS_CODE_POINTS.has(codePoint)) {
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
// Then check ranges (linear in number of ranges, which is much smaller)
|
|
280
|
+
for (const [start, end] of AMBIGUOUS_RANGES) {
|
|
281
|
+
if (codePoint >= start && codePoint <= end) {
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return false;
|
|
222
286
|
}
|
|
223
287
|
function isFullWidth(codePoint) {
|
|
224
288
|
return (codePoint === 0x3000 ||
|
|
225
289
|
(codePoint >= 0xff01 && codePoint <= 0xff60) ||
|
|
226
290
|
(codePoint >= 0xffe0 && codePoint <= 0xffe6));
|
|
227
291
|
}
|
|
292
|
+
const WIDE_RANGES = [
|
|
293
|
+
[0x1100, 0x115f],
|
|
294
|
+
[0x231a, 0x231b],
|
|
295
|
+
[0x2329, 0x232a],
|
|
296
|
+
[0x23e9, 0x23ec],
|
|
297
|
+
[0x23f0, 0x23f0],
|
|
298
|
+
[0x23f3, 0x23f3],
|
|
299
|
+
[0x25fd, 0x25fe],
|
|
300
|
+
[0x2614, 0x2615],
|
|
301
|
+
[0x2630, 0x2637],
|
|
302
|
+
[0x2648, 0x2653],
|
|
303
|
+
[0x267f, 0x267f],
|
|
304
|
+
[0x268a, 0x268f],
|
|
305
|
+
[0x2693, 0x2693],
|
|
306
|
+
[0x26a1, 0x26a1],
|
|
307
|
+
[0x26aa, 0x26ab],
|
|
308
|
+
[0x26bd, 0x26be],
|
|
309
|
+
[0x26c4, 0x26c5],
|
|
310
|
+
[0x26ce, 0x26ce],
|
|
311
|
+
[0x26d4, 0x26d4],
|
|
312
|
+
[0x26ea, 0x26ea],
|
|
313
|
+
[0x26f2, 0x26f3],
|
|
314
|
+
[0x26f5, 0x26f5],
|
|
315
|
+
[0x26fa, 0x26fa],
|
|
316
|
+
[0x26fd, 0x26fd],
|
|
317
|
+
[0x2705, 0x2705],
|
|
318
|
+
[0x270a, 0x270b],
|
|
319
|
+
[0x2728, 0x2728],
|
|
320
|
+
[0x274c, 0x274c],
|
|
321
|
+
[0x274e, 0x274e],
|
|
322
|
+
[0x2753, 0x2755],
|
|
323
|
+
[0x2757, 0x2757],
|
|
324
|
+
[0x2795, 0x2797],
|
|
325
|
+
[0x27b0, 0x27b0],
|
|
326
|
+
[0x27bf, 0x27bf],
|
|
327
|
+
[0x2b1b, 0x2b1c],
|
|
328
|
+
[0x2b50, 0x2b50],
|
|
329
|
+
[0x2b55, 0x2b55],
|
|
330
|
+
[0x2e80, 0x2e99],
|
|
331
|
+
[0x2e9b, 0x2ef3],
|
|
332
|
+
[0x2f00, 0x2fd5],
|
|
333
|
+
[0x2ff0, 0x2fff],
|
|
334
|
+
[0x3001, 0x303e],
|
|
335
|
+
[0x3041, 0x3096],
|
|
336
|
+
[0x3099, 0x30ff],
|
|
337
|
+
[0x3105, 0x312f],
|
|
338
|
+
[0x3131, 0x318e],
|
|
339
|
+
[0x3190, 0x31e5],
|
|
340
|
+
[0x31ef, 0x321e],
|
|
341
|
+
[0x3220, 0x3247],
|
|
342
|
+
[0x3250, 0xa48c],
|
|
343
|
+
[0xa490, 0xa4c6],
|
|
344
|
+
[0xa960, 0xa97c],
|
|
345
|
+
[0xac00, 0xd7a3],
|
|
346
|
+
[0xf900, 0xfaff],
|
|
347
|
+
[0xfe10, 0xfe19],
|
|
348
|
+
[0xfe30, 0xfe52],
|
|
349
|
+
[0xfe54, 0xfe66],
|
|
350
|
+
[0xfe68, 0xfe6b],
|
|
351
|
+
[0x16fe0, 0x16fe4],
|
|
352
|
+
[0x16ff0, 0x16ff6],
|
|
353
|
+
[0x17000, 0x18cd5],
|
|
354
|
+
[0x18cff, 0x18d1e],
|
|
355
|
+
[0x18d80, 0x18df2],
|
|
356
|
+
[0x1aff0, 0x1aff3],
|
|
357
|
+
[0x1aff5, 0x1affb],
|
|
358
|
+
[0x1affd, 0x1affe],
|
|
359
|
+
[0x1b000, 0x1b122],
|
|
360
|
+
[0x1b132, 0x1b132],
|
|
361
|
+
[0x1b150, 0x1b152],
|
|
362
|
+
[0x1b155, 0x1b155],
|
|
363
|
+
[0x1b164, 0x1b167],
|
|
364
|
+
[0x1b170, 0x1b2fb],
|
|
365
|
+
[0x1d300, 0x1d356],
|
|
366
|
+
[0x1d360, 0x1d376],
|
|
367
|
+
[0x1f004, 0x1f004],
|
|
368
|
+
[0x1f0cf, 0x1f0cf],
|
|
369
|
+
[0x1f18e, 0x1f18e],
|
|
370
|
+
[0x1f191, 0x1f19a],
|
|
371
|
+
[0x1f200, 0x1f202],
|
|
372
|
+
[0x1f210, 0x1f23b],
|
|
373
|
+
[0x1f240, 0x1f248],
|
|
374
|
+
[0x1f250, 0x1f251],
|
|
375
|
+
[0x1f260, 0x1f265],
|
|
376
|
+
[0x1f300, 0x1f320],
|
|
377
|
+
[0x1f32d, 0x1f335],
|
|
378
|
+
[0x1f337, 0x1f37c],
|
|
379
|
+
[0x1f37e, 0x1f393],
|
|
380
|
+
[0x1f3a0, 0x1f3ca],
|
|
381
|
+
[0x1f3cf, 0x1f3d3],
|
|
382
|
+
[0x1f3e0, 0x1f3f0],
|
|
383
|
+
[0x1f3f4, 0x1f3f4],
|
|
384
|
+
[0x1f3f8, 0x1f43e],
|
|
385
|
+
[0x1f440, 0x1f440],
|
|
386
|
+
[0x1f442, 0x1f4fc],
|
|
387
|
+
[0x1f4ff, 0x1f53d],
|
|
388
|
+
[0x1f54b, 0x1f54e],
|
|
389
|
+
[0x1f550, 0x1f567],
|
|
390
|
+
[0x1f57a, 0x1f57a],
|
|
391
|
+
[0x1f595, 0x1f596],
|
|
392
|
+
[0x1f5a4, 0x1f5a4],
|
|
393
|
+
[0x1f5fb, 0x1f64f],
|
|
394
|
+
[0x1f680, 0x1f6c5],
|
|
395
|
+
[0x1f6cc, 0x1f6cc],
|
|
396
|
+
[0x1f6d0, 0x1f6d2],
|
|
397
|
+
[0x1f6d5, 0x1f6d8],
|
|
398
|
+
[0x1f6dc, 0x1f6df],
|
|
399
|
+
[0x1f6eb, 0x1f6ec],
|
|
400
|
+
[0x1f6f4, 0x1f6fc],
|
|
401
|
+
[0x1f7e0, 0x1f7eb],
|
|
402
|
+
[0x1f7f0, 0x1f7f0],
|
|
403
|
+
[0x1f90c, 0x1f93a],
|
|
404
|
+
[0x1f93c, 0x1f945],
|
|
405
|
+
[0x1f947, 0x1f9ff],
|
|
406
|
+
[0x1fa70, 0x1fa7c],
|
|
407
|
+
[0x1fa80, 0x1fa8a],
|
|
408
|
+
[0x1fa8e, 0x1fac6],
|
|
409
|
+
[0x1fac8, 0x1fac8],
|
|
410
|
+
[0x1facd, 0x1fadc],
|
|
411
|
+
[0x1fadf, 0x1faea],
|
|
412
|
+
[0x1faef, 0x1faf8],
|
|
413
|
+
[0x20000, 0x2fffd],
|
|
414
|
+
[0x30000, 0x3fffd],
|
|
415
|
+
];
|
|
228
416
|
function isWide(codePoint) {
|
|
229
|
-
return ((codePoint >=
|
|
230
|
-
codePoint === 0x231a ||
|
|
231
|
-
codePoint === 0x231b ||
|
|
232
|
-
codePoint === 0x2329 ||
|
|
233
|
-
codePoint === 0x232a ||
|
|
234
|
-
(codePoint >= 0x23e9 && codePoint <= 0x23ec) ||
|
|
235
|
-
codePoint === 0x23f0 ||
|
|
236
|
-
codePoint === 0x23f3 ||
|
|
237
|
-
codePoint === 0x25fd ||
|
|
238
|
-
codePoint === 0x25fe ||
|
|
239
|
-
codePoint === 0x2614 ||
|
|
240
|
-
codePoint === 0x2615 ||
|
|
241
|
-
(codePoint >= 0x2630 && codePoint <= 0x2637) ||
|
|
242
|
-
(codePoint >= 0x2648 && codePoint <= 0x2653) ||
|
|
243
|
-
codePoint === 0x267f ||
|
|
244
|
-
(codePoint >= 0x268a && codePoint <= 0x268f) ||
|
|
245
|
-
codePoint === 0x2693 ||
|
|
246
|
-
codePoint === 0x26a1 ||
|
|
247
|
-
codePoint === 0x26aa ||
|
|
248
|
-
codePoint === 0x26ab ||
|
|
249
|
-
codePoint === 0x26bd ||
|
|
250
|
-
codePoint === 0x26be ||
|
|
251
|
-
codePoint === 0x26c4 ||
|
|
252
|
-
codePoint === 0x26c5 ||
|
|
253
|
-
codePoint === 0x26ce ||
|
|
254
|
-
codePoint === 0x26d4 ||
|
|
255
|
-
codePoint === 0x26ea ||
|
|
256
|
-
codePoint === 0x26f2 ||
|
|
257
|
-
codePoint === 0x26f3 ||
|
|
258
|
-
codePoint === 0x26f5 ||
|
|
259
|
-
codePoint === 0x26fa ||
|
|
260
|
-
codePoint === 0x26fd ||
|
|
261
|
-
codePoint === 0x2705 ||
|
|
262
|
-
codePoint === 0x270a ||
|
|
263
|
-
codePoint === 0x270b ||
|
|
264
|
-
codePoint === 0x2728 ||
|
|
265
|
-
codePoint === 0x274c ||
|
|
266
|
-
codePoint === 0x274e ||
|
|
267
|
-
(codePoint >= 0x2753 && codePoint <= 0x2755) ||
|
|
268
|
-
codePoint === 0x2757 ||
|
|
269
|
-
(codePoint >= 0x2795 && codePoint <= 0x2797) ||
|
|
270
|
-
codePoint === 0x27b0 ||
|
|
271
|
-
codePoint === 0x27bf ||
|
|
272
|
-
codePoint === 0x2b1b ||
|
|
273
|
-
codePoint === 0x2b1c ||
|
|
274
|
-
codePoint === 0x2b50 ||
|
|
275
|
-
codePoint === 0x2b55 ||
|
|
276
|
-
(codePoint >= 0x2e80 && codePoint <= 0x2e99) ||
|
|
277
|
-
(codePoint >= 0x2e9b && codePoint <= 0x2ef3) ||
|
|
278
|
-
(codePoint >= 0x2f00 && codePoint <= 0x2fd5) ||
|
|
279
|
-
(codePoint >= 0x2ff0 && codePoint <= 0x2fff) ||
|
|
280
|
-
(codePoint >= 0x3001 && codePoint <= 0x303e) ||
|
|
281
|
-
(codePoint >= 0x3041 && codePoint <= 0x3096) ||
|
|
282
|
-
(codePoint >= 0x3099 && codePoint <= 0x30ff) ||
|
|
283
|
-
(codePoint >= 0x3105 && codePoint <= 0x312f) ||
|
|
284
|
-
(codePoint >= 0x3131 && codePoint <= 0x318e) ||
|
|
285
|
-
(codePoint >= 0x3190 && codePoint <= 0x31e5) ||
|
|
286
|
-
(codePoint >= 0x31ef && codePoint <= 0x321e) ||
|
|
287
|
-
(codePoint >= 0x3220 && codePoint <= 0x3247) ||
|
|
288
|
-
(codePoint >= 0x3250 && codePoint <= 0xa48c) ||
|
|
289
|
-
(codePoint >= 0xa490 && codePoint <= 0xa4c6) ||
|
|
290
|
-
(codePoint >= 0xa960 && codePoint <= 0xa97c) ||
|
|
291
|
-
(codePoint >= 0xac00 && codePoint <= 0xd7a3) ||
|
|
292
|
-
(codePoint >= 0xf900 && codePoint <= 0xfaff) ||
|
|
293
|
-
(codePoint >= 0xfe10 && codePoint <= 0xfe19) ||
|
|
294
|
-
(codePoint >= 0xfe30 && codePoint <= 0xfe52) ||
|
|
295
|
-
(codePoint >= 0xfe54 && codePoint <= 0xfe66) ||
|
|
296
|
-
(codePoint >= 0xfe68 && codePoint <= 0xfe6b) ||
|
|
297
|
-
(codePoint >= 0x16fe0 && codePoint <= 0x16fe4) ||
|
|
298
|
-
(codePoint >= 0x16ff0 && codePoint <= 0x16ff6) ||
|
|
299
|
-
(codePoint >= 0x17000 && codePoint <= 0x18cd5) ||
|
|
300
|
-
(codePoint >= 0x18cff && codePoint <= 0x18d1e) ||
|
|
301
|
-
(codePoint >= 0x18d80 && codePoint <= 0x18df2) ||
|
|
302
|
-
(codePoint >= 0x1aff0 && codePoint <= 0x1aff3) ||
|
|
303
|
-
(codePoint >= 0x1aff5 && codePoint <= 0x1affb) ||
|
|
304
|
-
codePoint === 0x1affd ||
|
|
305
|
-
codePoint === 0x1affe ||
|
|
306
|
-
(codePoint >= 0x1b000 && codePoint <= 0x1b122) ||
|
|
307
|
-
codePoint === 0x1b132 ||
|
|
308
|
-
(codePoint >= 0x1b150 && codePoint <= 0x1b152) ||
|
|
309
|
-
codePoint === 0x1b155 ||
|
|
310
|
-
(codePoint >= 0x1b164 && codePoint <= 0x1b167) ||
|
|
311
|
-
(codePoint >= 0x1b170 && codePoint <= 0x1b2fb) ||
|
|
312
|
-
(codePoint >= 0x1d300 && codePoint <= 0x1d356) ||
|
|
313
|
-
(codePoint >= 0x1d360 && codePoint <= 0x1d376) ||
|
|
314
|
-
codePoint === 0x1f004 ||
|
|
315
|
-
codePoint === 0x1f0cf ||
|
|
316
|
-
codePoint === 0x1f18e ||
|
|
317
|
-
(codePoint >= 0x1f191 && codePoint <= 0x1f19a) ||
|
|
318
|
-
(codePoint >= 0x1f200 && codePoint <= 0x1f202) ||
|
|
319
|
-
(codePoint >= 0x1f210 && codePoint <= 0x1f23b) ||
|
|
320
|
-
(codePoint >= 0x1f240 && codePoint <= 0x1f248) ||
|
|
321
|
-
codePoint === 0x1f250 ||
|
|
322
|
-
codePoint === 0x1f251 ||
|
|
323
|
-
(codePoint >= 0x1f260 && codePoint <= 0x1f265) ||
|
|
324
|
-
(codePoint >= 0x1f300 && codePoint <= 0x1f320) ||
|
|
325
|
-
(codePoint >= 0x1f32d && codePoint <= 0x1f335) ||
|
|
326
|
-
(codePoint >= 0x1f337 && codePoint <= 0x1f37c) ||
|
|
327
|
-
(codePoint >= 0x1f37e && codePoint <= 0x1f393) ||
|
|
328
|
-
(codePoint >= 0x1f3a0 && codePoint <= 0x1f3ca) ||
|
|
329
|
-
(codePoint >= 0x1f3cf && codePoint <= 0x1f3d3) ||
|
|
330
|
-
(codePoint >= 0x1f3e0 && codePoint <= 0x1f3f0) ||
|
|
331
|
-
codePoint === 0x1f3f4 ||
|
|
332
|
-
(codePoint >= 0x1f3f8 && codePoint <= 0x1f43e) ||
|
|
333
|
-
codePoint === 0x1f440 ||
|
|
334
|
-
(codePoint >= 0x1f442 && codePoint <= 0x1f4fc) ||
|
|
335
|
-
(codePoint >= 0x1f4ff && codePoint <= 0x1f53d) ||
|
|
336
|
-
(codePoint >= 0x1f54b && codePoint <= 0x1f54e) ||
|
|
337
|
-
(codePoint >= 0x1f550 && codePoint <= 0x1f567) ||
|
|
338
|
-
codePoint === 0x1f57a ||
|
|
339
|
-
codePoint === 0x1f595 ||
|
|
340
|
-
codePoint === 0x1f596 ||
|
|
341
|
-
codePoint === 0x1f5a4 ||
|
|
342
|
-
(codePoint >= 0x1f5fb && codePoint <= 0x1f64f) ||
|
|
343
|
-
(codePoint >= 0x1f680 && codePoint <= 0x1f6c5) ||
|
|
344
|
-
codePoint === 0x1f6cc ||
|
|
345
|
-
(codePoint >= 0x1f6d0 && codePoint <= 0x1f6d2) ||
|
|
346
|
-
(codePoint >= 0x1f6d5 && codePoint <= 0x1f6d8) ||
|
|
347
|
-
(codePoint >= 0x1f6dc && codePoint <= 0x1f6df) ||
|
|
348
|
-
codePoint === 0x1f6eb ||
|
|
349
|
-
codePoint === 0x1f6ec ||
|
|
350
|
-
(codePoint >= 0x1f6f4 && codePoint <= 0x1f6fc) ||
|
|
351
|
-
(codePoint >= 0x1f7e0 && codePoint <= 0x1f7eb) ||
|
|
352
|
-
codePoint === 0x1f7f0 ||
|
|
353
|
-
(codePoint >= 0x1f90c && codePoint <= 0x1f93a) ||
|
|
354
|
-
(codePoint >= 0x1f93c && codePoint <= 0x1f945) ||
|
|
355
|
-
(codePoint >= 0x1f947 && codePoint <= 0x1f9ff) ||
|
|
356
|
-
(codePoint >= 0x1fa70 && codePoint <= 0x1fa7c) ||
|
|
357
|
-
(codePoint >= 0x1fa80 && codePoint <= 0x1fa8a) ||
|
|
358
|
-
(codePoint >= 0x1fa8e && codePoint <= 0x1fac6) ||
|
|
359
|
-
codePoint === 0x1fac8 ||
|
|
360
|
-
(codePoint >= 0x1facd && codePoint <= 0x1fadc) ||
|
|
361
|
-
(codePoint >= 0x1fadf && codePoint <= 0x1faea) ||
|
|
362
|
-
(codePoint >= 0x1faef && codePoint <= 0x1faf8) ||
|
|
363
|
-
(codePoint >= 0x20000 && codePoint <= 0x2fffd) ||
|
|
364
|
-
(codePoint >= 0x30000 && codePoint <= 0x3fffd));
|
|
417
|
+
return WIDE_RANGES.some(([start, end]) => codePoint >= start && codePoint <= end);
|
|
365
418
|
}
|
|
366
419
|
function getCategory(codePoint) {
|
|
367
420
|
if (isAmbiguous(codePoint))
|