/**
 * Seti icon theme mappings — auto-generated from VS Code's built-in Seti theme.
 * Source: https://github.com/microsoft/vscode/tree/main/extensions/theme-seti
 * License: MIT (Copyright (c) 2014 Jesse Weed, Copyright (c) 2015 Microsoft Corporation)
 *
 * DO NOT EDIT — regenerate with: node scripts/generate-seti-map.mjs
 */

/** Icon definition: [fontCharacter, fontColor] */
type IconDef = readonly [character: string, color: string];

const i: Record<string, IconDef> = {
	_argdown: ['\\E003', '#519aba'],
	_argdown_light: ['\\E003', '#498ba7'],
	_asm: ['\\E004', '#cc3e44'],
	_asm_light: ['\\E004', '#b8383d'],
	_audio: ['\\E005', '#a074c4'],
	_audio_light: ['\\E005', '#9068b0'],
	_babel: ['\\E006', '#cbcb41'],
	_babel_light: ['\\E006', '#b7b73b'],
	_bazel: ['\\E007', '#8dc149'],
	_bazel_1: ['\\E007', '#4d5a5e'],
	_bazel_1_light: ['\\E007', '#455155'],
	_bazel_light: ['\\E007', '#7fae42'],
	_bicep: ['\\E008', '#519aba'],
	_bicep_light: ['\\E008', '#498ba7'],
	_bower: ['\\E009', '#e37933'],
	_bower_light: ['\\E009', '#cc6d2e'],
	_bsl: ['\\E00A', '#cc3e44'],
	_bsl_light: ['\\E00A', '#b8383d'],
	_c: ['\\E00C', '#519aba'],
	_c_1: ['\\E00C', '#a074c4'],
	_c_1_light: ['\\E00C', '#9068b0'],
	_c_2: ['\\E00C', '#cbcb41'],
	_c_2_light: ['\\E00C', '#b7b73b'],
	_c_light: ['\\E00C', '#498ba7'],
	'_c-sharp': ['\\E00B', '#519aba'],
	'_c-sharp_light': ['\\E00B', '#498ba7'],
	_cake: ['\\E00D', '#cc3e44'],
	_cake_light: ['\\E00D', '#b8383d'],
	_cake_php: ['\\E00E', '#cc3e44'],
	_cake_php_light: ['\\E00E', '#b8383d'],
	_clock: ['\\E012', '#519aba'],
	_clock_1: ['\\E012', '#6d8086'],
	_clock_1_light: ['\\E012', '#627379'],
	_clock_light: ['\\E012', '#498ba7'],
	_clojure: ['\\E013', '#8dc149'],
	_clojure_1: ['\\E013', '#519aba'],
	_clojure_1_light: ['\\E013', '#498ba7'],
	_clojure_light: ['\\E013', '#7fae42'],
	'_code-climate': ['\\E014', '#8dc149'],
	'_code-climate_light': ['\\E014', '#7fae42'],
	'_code-search': ['\\E015', '#a074c4'],
	'_code-search_light': ['\\E015', '#9068b0'],
	_coffee: ['\\E016', '#cbcb41'],
	_coffee_light: ['\\E016', '#b7b73b'],
	_coldfusion: ['\\E018', '#519aba'],
	_coldfusion_light: ['\\E018', '#498ba7'],
	_config: ['\\E019', '#6d8086'],
	_config_light: ['\\E019', '#627379'],
	_cpp: ['\\E01A', '#519aba'],
	_cpp_1: ['\\E01A', '#a074c4'],
	_cpp_1_light: ['\\E01A', '#9068b0'],
	_cpp_2: ['\\E01A', '#cbcb41'],
	_cpp_2_light: ['\\E01A', '#b7b73b'],
	_cpp_light: ['\\E01A', '#498ba7'],
	_crystal: ['\\E01B', '#d4d7d6'],
	_crystal_embedded: ['\\E01C', '#d4d7d6'],
	_crystal_embedded_light: ['\\E01C', '#bfc2c1'],
	_crystal_light: ['\\E01B', '#bfc2c1'],
	_css: ['\\E01D', '#519aba'],
	_css_light: ['\\E01D', '#498ba7'],
	_csv: ['\\E01E', '#8dc149'],
	_csv_light: ['\\E01E', '#7fae42'],
	_cu: ['\\E01F', '#8dc149'],
	_cu_1: ['\\E01F', '#a074c4'],
	_cu_1_light: ['\\E01F', '#9068b0'],
	_cu_light: ['\\E01F', '#7fae42'],
	_d: ['\\E020', '#cc3e44'],
	_d_light: ['\\E020', '#b8383d'],
	_dart: ['\\E021', '#519aba'],
	_dart_light: ['\\E021', '#498ba7'],
	_db: ['\\E022', '#f55385'],
	_db_1: ['\\E022', '#519aba'],
	_db_1_light: ['\\E022', '#498ba7'],
	_db_light: ['\\E022', '#dd4b78'],
	_default: ['\\E023', '#d4d7d6'],
	_default_light: ['\\E023', '#bfc2c1'],
	_docker: ['\\E025', '#519aba'],
	_docker_1: ['\\E025', '#4d5a5e'],
	_docker_1_light: ['\\E025', '#455155'],
	_docker_2: ['\\E025', '#8dc149'],
	_docker_2_light: ['\\E025', '#7fae42'],
	_docker_3: ['\\E025', '#f55385'],
	_docker_3_light: ['\\E025', '#dd4b78'],
	_docker_light: ['\\E025', '#498ba7'],
	_ejs: ['\\E027', '#cbcb41'],
	_ejs_light: ['\\E027', '#b7b73b'],
	_elixir: ['\\E028', '#a074c4'],
	_elixir_light: ['\\E028', '#9068b0'],
	_elixir_script: ['\\E029', '#a074c4'],
	_elixir_script_light: ['\\E029', '#9068b0'],
	_elm: ['\\E02A', '#519aba'],
	_elm_light: ['\\E02A', '#498ba7'],
	_eslint: ['\\E02C', '#a074c4'],
	_eslint_1: ['\\E02C', '#4d5a5e'],
	_eslint_1_light: ['\\E02C', '#455155'],
	_eslint_light: ['\\E02C', '#9068b0'],
	_ethereum: ['\\E02D', '#519aba'],
	_ethereum_light: ['\\E02D', '#498ba7'],
	'_f-sharp': ['\\E02E', '#519aba'],
	'_f-sharp_light': ['\\E02E', '#498ba7'],
	_favicon: ['\\E02F', '#cbcb41'],
	_favicon_light: ['\\E02F', '#b7b73b'],
	_firebase: ['\\E030', '#e37933'],
	_firebase_light: ['\\E030', '#cc6d2e'],
	_firefox: ['\\E031', '#e37933'],
	_firefox_light: ['\\E031', '#cc6d2e'],
	_font: ['\\E033', '#cc3e44'],
	_font_light: ['\\E033', '#b8383d'],
	_git: ['\\E034', '#41535b'],
	_git_light: ['\\E034', '#3b4b52'],
	_github: ['\\E037', '#d4d7d6'],
	_github_light: ['\\E037', '#bfc2c1'],
	_gitlab: ['\\E038', '#e37933'],
	_gitlab_light: ['\\E038', '#cc6d2e'],
	_go: ['\\E039', '#519aba'],
	_go_light: ['\\E039', '#498ba7'],
	_go2: ['\\E03A', '#519aba'],
	_go2_light: ['\\E03A', '#498ba7'],
	_godot: ['\\E03B', '#519aba'],
	_godot_1: ['\\E03B', '#cc3e44'],
	_godot_1_light: ['\\E03B', '#b8383d'],
	_godot_2: ['\\E03B', '#cbcb41'],
	_godot_2_light: ['\\E03B', '#b7b73b'],
	_godot_3: ['\\E03B', '#a074c4'],
	_godot_3_light: ['\\E03B', '#9068b0'],
	_godot_light: ['\\E03B', '#498ba7'],
	_gradle: ['\\E03C', '#519aba'],
	_gradle_light: ['\\E03C', '#498ba7'],
	_grails: ['\\E03D', '#8dc149'],
	_grails_light: ['\\E03D', '#7fae42'],
	_graphql: ['\\E03E', '#f55385'],
	_graphql_light: ['\\E03E', '#dd4b78'],
	_grunt: ['\\E03F', '#e37933'],
	_grunt_light: ['\\E03F', '#cc6d2e'],
	_gulp: ['\\E040', '#cc3e44'],
	_gulp_light: ['\\E040', '#b8383d'],
	_hacklang: ['\\E041', '#e37933'],
	_hacklang_light: ['\\E041', '#cc6d2e'],
	_haml: ['\\E042', '#cc3e44'],
	_haml_light: ['\\E042', '#b8383d'],
	_happenings: ['\\E043', '#519aba'],
	_happenings_light: ['\\E043', '#498ba7'],
	_haskell: ['\\E044', '#a074c4'],
	_haskell_light: ['\\E044', '#9068b0'],
	_haxe: ['\\E045', '#e37933'],
	_haxe_1: ['\\E045', '#cbcb41'],
	_haxe_1_light: ['\\E045', '#b7b73b'],
	_haxe_2: ['\\E045', '#519aba'],
	_haxe_2_light: ['\\E045', '#498ba7'],
	_haxe_3: ['\\E045', '#a074c4'],
	_haxe_3_light: ['\\E045', '#9068b0'],
	_haxe_light: ['\\E045', '#cc6d2e'],
	_heroku: ['\\E046', '#a074c4'],
	_heroku_light: ['\\E046', '#9068b0'],
	_hex: ['\\E047', '#cc3e44'],
	_hex_light: ['\\E047', '#b8383d'],
	_html: ['\\E048', '#519aba'],
	_html_1: ['\\E048', '#8dc149'],
	_html_1_light: ['\\E048', '#7fae42'],
	_html_2: ['\\E048', '#cbcb41'],
	_html_2_light: ['\\E048', '#b7b73b'],
	_html_3: ['\\E048', '#e37933'],
	_html_3_light: ['\\E048', '#cc6d2e'],
	_html_erb: ['\\E049', '#cc3e44'],
	_html_erb_light: ['\\E049', '#b8383d'],
	_html_light: ['\\E048', '#498ba7'],
	_ignored: ['\\E04A', '#41535b'],
	_ignored_light: ['\\E04A', '#3b4b52'],
	_illustrator: ['\\E04B', '#cbcb41'],
	_illustrator_light: ['\\E04B', '#b7b73b'],
	_image: ['\\E04C', '#a074c4'],
	_image_light: ['\\E04C', '#9068b0'],
	_info: ['\\E04D', '#519aba'],
	_info_light: ['\\E04D', '#498ba7'],
	_ionic: ['\\E04E', '#519aba'],
	_ionic_light: ['\\E04E', '#498ba7'],
	_jade: ['\\E04F', '#cc3e44'],
	_jade_light: ['\\E04F', '#b8383d'],
	_java: ['\\E050', '#cc3e44'],
	_java_1: ['\\E050', '#519aba'],
	_java_1_light: ['\\E050', '#498ba7'],
	_java_light: ['\\E050', '#b8383d'],
	_javascript: ['\\E051', '#cbcb41'],
	_javascript_1: ['\\E051', '#e37933'],
	_javascript_1_light: ['\\E051', '#cc6d2e'],
	_javascript_2: ['\\E051', '#519aba'],
	_javascript_2_light: ['\\E051', '#498ba7'],
	_javascript_light: ['\\E051', '#b7b73b'],
	_jenkins: ['\\E052', '#cc3e44'],
	_jenkins_light: ['\\E052', '#b8383d'],
	_jinja: ['\\E053', '#cc3e44'],
	_jinja_light: ['\\E053', '#b8383d'],
	_json: ['\\E055', '#cbcb41'],
	_json_1: ['\\E055', '#8dc149'],
	_json_1_light: ['\\E055', '#7fae42'],
	_json_light: ['\\E055', '#b7b73b'],
	_julia: ['\\E056', '#a074c4'],
	_julia_light: ['\\E056', '#9068b0'],
	_karma: ['\\E057', '#8dc149'],
	_karma_light: ['\\E057', '#7fae42'],
	_kotlin: ['\\E058', '#e37933'],
	_kotlin_light: ['\\E058', '#cc6d2e'],
	_less: ['\\E059', '#519aba'],
	_less_light: ['\\E059', '#498ba7'],
	_license: ['\\E05A', '#cbcb41'],
	_license_1: ['\\E05A', '#e37933'],
	_license_1_light: ['\\E05A', '#cc6d2e'],
	_license_2: ['\\E05A', '#cc3e44'],
	_license_2_light: ['\\E05A', '#b8383d'],
	_license_light: ['\\E05A', '#b7b73b'],
	_liquid: ['\\E05B', '#8dc149'],
	_liquid_light: ['\\E05B', '#7fae42'],
	_livescript: ['\\E05C', '#519aba'],
	_livescript_light: ['\\E05C', '#498ba7'],
	_lock: ['\\E05D', '#8dc149'],
	_lock_light: ['\\E05D', '#7fae42'],
	_lua: ['\\E05E', '#519aba'],
	_lua_light: ['\\E05E', '#498ba7'],
	_makefile: ['\\E05F', '#e37933'],
	_makefile_1: ['\\E05F', '#a074c4'],
	_makefile_1_light: ['\\E05F', '#9068b0'],
	_makefile_2: ['\\E05F', '#6d8086'],
	_makefile_2_light: ['\\E05F', '#627379'],
	_makefile_3: ['\\E05F', '#519aba'],
	_makefile_3_light: ['\\E05F', '#498ba7'],
	_makefile_light: ['\\E05F', '#cc6d2e'],
	_markdown: ['\\E060', '#519aba'],
	_markdown_light: ['\\E060', '#498ba7'],
	_maven: ['\\E061', '#cc3e44'],
	_maven_light: ['\\E061', '#b8383d'],
	_mdo: ['\\E062', '#cc3e44'],
	_mdo_light: ['\\E062', '#b8383d'],
	_mustache: ['\\E063', '#e37933'],
	_mustache_light: ['\\E063', '#cc6d2e'],
	_nim: ['\\E065', '#cbcb41'],
	_nim_light: ['\\E065', '#b7b73b'],
	_notebook: ['\\E066', '#519aba'],
	_notebook_light: ['\\E066', '#498ba7'],
	_npm: ['\\E067', '#41535b'],
	_npm_1: ['\\E067', '#cc3e44'],
	_npm_1_light: ['\\E067', '#b8383d'],
	_npm_ignored: ['\\E068', '#41535b'],
	_npm_ignored_light: ['\\E068', '#3b4b52'],
	_npm_light: ['\\E067', '#3b4b52'],
	_nunjucks: ['\\E069', '#8dc149'],
	_nunjucks_light: ['\\E069', '#7fae42'],
	_ocaml: ['\\E06A', '#e37933'],
	_ocaml_light: ['\\E06A', '#cc6d2e'],
	_odata: ['\\E06B', '#e37933'],
	_odata_light: ['\\E06B', '#cc6d2e'],
	_pddl: ['\\E06C', '#a074c4'],
	_pddl_light: ['\\E06C', '#9068b0'],
	_pdf: ['\\E06D', '#cc3e44'],
	_pdf_light: ['\\E06D', '#b8383d'],
	_perl: ['\\E06E', '#519aba'],
	_perl_light: ['\\E06E', '#498ba7'],
	_photoshop: ['\\E06F', '#519aba'],
	_photoshop_light: ['\\E06F', '#498ba7'],
	_php: ['\\E070', '#a074c4'],
	_php_light: ['\\E070', '#9068b0'],
	_pipeline: ['\\E071', '#e37933'],
	_pipeline_light: ['\\E071', '#cc6d2e'],
	_plan: ['\\E072', '#8dc149'],
	_plan_light: ['\\E072', '#7fae42'],
	_platformio: ['\\E073', '#e37933'],
	_platformio_light: ['\\E073', '#cc6d2e'],
	_powershell: ['\\E074', '#519aba'],
	_powershell_light: ['\\E074', '#498ba7'],
	_prisma: ['\\E075', '#519aba'],
	_prisma_light: ['\\E075', '#498ba7'],
	_prolog: ['\\E077', '#e37933'],
	_prolog_light: ['\\E077', '#cc6d2e'],
	_pug: ['\\E078', '#cc3e44'],
	_pug_light: ['\\E078', '#b8383d'],
	_puppet: ['\\E079', '#cbcb41'],
	_puppet_light: ['\\E079', '#b7b73b'],
	_purescript: ['\\E07A', '#d4d7d6'],
	_purescript_light: ['\\E07A', '#bfc2c1'],
	_python: ['\\E07B', '#519aba'],
	_python_light: ['\\E07B', '#498ba7'],
	_R: ['\\E001', '#519aba'],
	_R_light: ['\\E001', '#498ba7'],
	_react: ['\\E07D', '#519aba'],
	_react_1: ['\\E07D', '#e37933'],
	_react_1_light: ['\\E07D', '#cc6d2e'],
	_react_light: ['\\E07D', '#498ba7'],
	_reasonml: ['\\E07E', '#cc3e44'],
	_reasonml_light: ['\\E07E', '#b8383d'],
	_rescript: ['\\E07F', '#cc3e44'],
	_rescript_1: ['\\E07F', '#f55385'],
	_rescript_1_light: ['\\E07F', '#dd4b78'],
	_rescript_light: ['\\E07F', '#b8383d'],
	_rollup: ['\\E080', '#cc3e44'],
	_rollup_light: ['\\E080', '#b8383d'],
	_ruby: ['\\E081', '#cc3e44'],
	_ruby_light: ['\\E081', '#b8383d'],
	_rust: ['\\E082', '#6d8086'],
	_rust_light: ['\\E082', '#627379'],
	_salesforce: ['\\E083', '#519aba'],
	_salesforce_light: ['\\E083', '#498ba7'],
	_sass: ['\\E084', '#f55385'],
	_sass_light: ['\\E084', '#dd4b78'],
	_sbt: ['\\E085', '#519aba'],
	_sbt_light: ['\\E085', '#498ba7'],
	_scala: ['\\E086', '#cc3e44'],
	_scala_light: ['\\E086', '#b8383d'],
	_shell: ['\\E089', '#8dc149'],
	_shell_light: ['\\E089', '#7fae42'],
	_slim: ['\\E08A', '#e37933'],
	_slim_light: ['\\E08A', '#cc6d2e'],
	_smarty: ['\\E08B', '#cbcb41'],
	_smarty_light: ['\\E08B', '#b7b73b'],
	_spring: ['\\E08C', '#8dc149'],
	_spring_light: ['\\E08C', '#7fae42'],
	_stylelint: ['\\E08D', '#d4d7d6'],
	_stylelint_1: ['\\E08D', '#4d5a5e'],
	_stylelint_1_light: ['\\E08D', '#455155'],
	_stylelint_light: ['\\E08D', '#bfc2c1'],
	_stylus: ['\\E08E', '#8dc149'],
	_stylus_light: ['\\E08E', '#7fae42'],
	_sublime: ['\\E08F', '#e37933'],
	_sublime_light: ['\\E08F', '#cc6d2e'],
	_svelte: ['\\E090', '#cc3e44'],
	_svelte_light: ['\\E090', '#b8383d'],
	_svg: ['\\E091', '#a074c4'],
	_svg_1: ['\\E091', '#519aba'],
	_svg_1_light: ['\\E091', '#498ba7'],
	_svg_light: ['\\E091', '#9068b0'],
	_swift: ['\\E092', '#e37933'],
	_swift_light: ['\\E092', '#cc6d2e'],
	_terraform: ['\\E093', '#a074c4'],
	_terraform_light: ['\\E093', '#9068b0'],
	_tex: ['\\E094', '#519aba'],
	_tex_1: ['\\E094', '#cbcb41'],
	_tex_1_light: ['\\E094', '#b7b73b'],
	_tex_2: ['\\E094', '#e37933'],
	_tex_2_light: ['\\E094', '#cc6d2e'],
	_tex_3: ['\\E094', '#d4d7d6'],
	_tex_3_light: ['\\E094', '#bfc2c1'],
	_tex_light: ['\\E094', '#498ba7'],
	_todo: ['\\E096', ''],
	_tsconfig: ['\\E097', '#519aba'],
	_tsconfig_light: ['\\E097', '#498ba7'],
	_twig: ['\\E098', '#8dc149'],
	_twig_light: ['\\E098', '#7fae42'],
	_typescript: ['\\E099', '#519aba'],
	_typescript_1: ['\\E099', '#e37933'],
	_typescript_1_light: ['\\E099', '#cc6d2e'],
	_typescript_light: ['\\E099', '#498ba7'],
	_vala: ['\\E09A', '#6d8086'],
	_vala_light: ['\\E09A', '#627379'],
	_video: ['\\E09B', '#f55385'],
	_video_light: ['\\E09B', '#dd4b78'],
	_vite: ['\\E09C', '#cbcb41'],
	_vite_light: ['\\E09C', '#b7b73b'],
	_vue: ['\\E09D', '#8dc149'],
	_vue_light: ['\\E09D', '#7fae42'],
	_wasm: ['\\E09E', '#a074c4'],
	_wasm_light: ['\\E09E', '#9068b0'],
	_wat: ['\\E09F', '#a074c4'],
	_wat_light: ['\\E09F', '#9068b0'],
	_webpack: ['\\E0A0', '#519aba'],
	_webpack_light: ['\\E0A0', '#498ba7'],
	_wgt: ['\\E0A1', '#519aba'],
	_wgt_light: ['\\E0A1', '#498ba7'],
	_windows: ['\\E0A2', '#519aba'],
	_windows_light: ['\\E0A2', '#498ba7'],
	_word: ['\\E0A3', '#519aba'],
	_word_light: ['\\E0A3', '#498ba7'],
	_xls: ['\\E0A4', '#8dc149'],
	_xls_light: ['\\E0A4', '#7fae42'],
	_xml: ['\\E0A5', '#e37933'],
	_xml_light: ['\\E0A5', '#cc6d2e'],
	_yarn: ['\\E0A6', '#519aba'],
	_yarn_light: ['\\E0A6', '#498ba7'],
	_yml: ['\\E0A7', '#a074c4'],
	_yml_light: ['\\E0A7', '#9068b0'],
	_zig: ['\\E0A8', '#e37933'],
	_zig_light: ['\\E0A8', '#cc6d2e'],
	_zip: ['\\E0A9', '#cc3e44'],
	_zip_1: ['\\E0A9', '#6d8086'],
	_zip_1_light: ['\\E0A9', '#627379'],
	_zip_light: ['\\E0A9', '#b8383d'],
};

const fileNames: Record<string, string> = {
	'babel.config.cjs': '_babel',
	'babel.config.js': '_babel',
	'babel.config.json': '_babel',
	'bower.json': '_bower',
	build: '_bazel',
	'build.bazel': '_bazel',
	changelog: '_clock',
	'changelog.md': '_clock',
	'changelog.txt': '_clock',
	changes: '_clock',
	'changes.md': '_clock',
	'changes.txt': '_clock',
	'cmakelists.txt': '_makefile_3',
	compiling: '_license_1',
	'compiling.md': '_license_1',
	'compiling.txt': '_license_1',
	contributing: '_license_2',
	'contributing.md': '_license_2',
	'contributing.txt': '_license_2',
	copying: '_license',
	'copying.md': '_license',
	'copying.txt': '_license',
	'docker-healthcheck': '_docker_2',
	'eslint.config.js': '_eslint',
	'firebase.json': '_firebase',
	geckodriver: '_firefox',
	'gruntfile.babel.js': '_grunt',
	'gruntfile.coffee': '_grunt',
	'gruntfile.js': '_grunt',
	gulpfile: '_gulp',
	'gulpfile.js': '_gulp',
	'ionic.config.json': '_ionic',
	'ionic.project': '_ionic',
	jenkinsfile: '_jenkins',
	'karma.conf.cjs': '_karma',
	'karma.conf.coffee': '_karma',
	'karma.conf.js': '_karma',
	'karma.conf.mjs': '_karma',
	licence: '_license',
	'licence.md': '_license',
	'licence.txt': '_license',
	license: '_license',
	'license.md': '_license',
	'license.txt': '_license',
	'mime.types': '_config',
	mix: '_hex',
	mvnw: '_maven',
	'npm-debug.log': '_npm_ignored',
	omakefile: '_makefile_2',
	'platformio.ini': '_platformio',
	'pom.xml': '_maven',
	procfile: '_heroku',
	qmakefile: '_makefile_1',
	readme: '_info',
	'readme.md': '_info',
	'readme.txt': '_info',
	'rollup.config.js': '_rollup',
	'sass-lint.yml': '_sass',
	'stylelint.config.cjs': '_stylelint',
	'stylelint.config.js': '_stylelint',
	'stylelint.config.mjs': '_stylelint',
	'swagger.json': '_json_1',
	'swagger.yaml': '_json_1',
	'swagger.yml': '_json_1',
	todo: '_todo',
	'todo.md': '_todo',
	'todo.txt': '_todo',
	'tsconfig.json': '_tsconfig',
	version: '_clock',
	'version.md': '_clock',
	'version.txt': '_clock',
	'vite.config.cjs': '_vite',
	'vite.config.cts': '_vite',
	'vite.config.js': '_vite',
	'vite.config.mjs': '_vite',
	'vite.config.mts': '_vite',
	'vite.config.ts': '_vite',
	'webpack.common.cjs': '_webpack',
	'webpack.common.js': '_webpack',
	'webpack.common.mjs': '_webpack',
	'webpack.common.ts': '_webpack',
	'webpack.config.build.cjs': '_webpack',
	'webpack.config.build.js': '_webpack',
	'webpack.config.build.mjs': '_webpack',
	'webpack.config.build.ts': '_webpack',
	'webpack.config.cjs': '_webpack',
	'webpack.config.js': '_webpack',
	'webpack.config.mjs': '_webpack',
	'webpack.config.ts': '_webpack',
	'webpack.dev.cjs': '_webpack',
	'webpack.dev.js': '_webpack',
	'webpack.dev.mjs': '_webpack',
	'webpack.dev.ts': '_webpack',
	'webpack.prod.cjs': '_webpack',
	'webpack.prod.js': '_webpack',
	'webpack.prod.mjs': '_webpack',
	'webpack.prod.ts': '_webpack',
	workspace: '_bazel',
	'workspace.bazel': '_bazel',
	'yarn.clean': '_yarn',
	'yarn.lock': '_yarn',
};

const fileExtensions: Record<string, string> = {
	'3dm': '_svg_1',
	'3ds': '_svg_1',
	ad: '_argdown',
	ai: '_illustrator',
	apex: '_salesforce',
	argdown: '_argdown',
	article: '_go',
	asax: '_html_2',
	ascx: '_html_1',
	asm: '_asm',
	aspx: '_html',
	avi: '_video',
	avif: '_image',
	babelrc: '_babel',
	'babelrc.cjs': '_babel',
	'babelrc.js': '_babel',
	bazel: '_bazel',
	bazelignore: '_bazel',
	bazelrc: '_bazel_1',
	bazelversion: '_bazel',
	bicep: '_bicep',
	bowerrc: '_bower',
	bsl: '_bsl',
	build: '_bazel',
	bzl: '_bazel',
	cake: '_cake',
	cer: '_lock',
	cert: '_lock',
	cfc: '_coldfusion',
	cfm: '_coldfusion',
	'cjs.map': '_javascript',
	cjsx: '_react',
	class: '_java_1',
	classpath: '_java',
	cls: '_salesforce',
	cmx: '_ocaml',
	cmxa: '_ocaml',
	'codeclimate.yml': '_code-climate',
	component: '_html_3',
	config: '_config',
	cr: '_crystal',
	crt: '_lock',
	cson: '_json',
	'css.map': '_css',
	csv: '_csv',
	ctp: '_cake_php',
	cuh: '_cu_1',
	d: '_d',
	dae: '_svg_1',
	direnv: '_config',
	doc: '_word',
	dockerignore: '_docker_1',
	docx: '_word',
	ds_store: '_ignored',
	dtx: '_tex_2',
	ecr: '_crystal_embedded',
	edn: '_clojure_1',
	ejs: '_ejs',
	elm: '_elm',
	eot: '_font',
	epp: '_puppet',
	erb: '_html_erb',
	'erb.html': '_html_erb',
	es: '_javascript',
	es5: '_javascript',
	es7: '_javascript',
	eslintignore: '_eslint_1',
	eslintrc: '_eslint',
	'eslintrc.cjs': '_eslint',
	'eslintrc.js': '_eslint',
	'eslintrc.json': '_eslint',
	'eslintrc.yaml': '_eslint',
	'eslintrc.yml': '_eslint',
	ex: '_elixir',
	exs: '_elixir_script',
	firebaserc: '_firebase',
	flac: '_audio',
	gd: '_godot',
	gif: '_image',
	gitattributes: '_git',
	gitconfig: '_git',
	'github-issues': '_github',
	gitkeep: '_git',
	'gitlab-ci.yml': '_gitlab',
	gitmodules: '_git',
	godot: '_godot_1',
	gql: '_graphql',
	gradle: '_gradle',
	graphql: '_graphql',
	graphqls: '_graphql',
	gsp: '_grails',
	h: '_c_1',
	'h++': '_cpp_1',
	hack: '_hacklang',
	haml: '_haml',
	happenings: '_happenings',
	hh: '_cpp_1',
	hpp: '_cpp_1',
	hs: '_haskell',
	htaccess: '_config',
	'html.erb': '_html_erb',
	hu: '_cu_1',
	hx: '_haxe',
	hxml: '_haxe_3',
	hxp: '_haxe_2',
	hxs: '_haxe_1',
	hxx: '_cpp_1',
	ico: '_favicon',
	ins: '_tex_3',
	ipynb: '_notebook',
	jade: '_jade',
	jar: '_zip',
	jinja: '_jinja',
	jinja2: '_jinja',
	jpeg: '_image',
	jpg: '_image',
	'js.map': '_javascript',
	jscsrc: '_javascript_2',
	jshintrc: '_javascript_2',
	key: '_lock',
	kt: '_kotlin',
	kts: '_kotlin',
	lhs: '_haskell',
	liquid: '_liquid',
	litcoffee: '_coffee',
	ls: '_livescript',
	master: '_html_2',
	mdo: '_mdo',
	'mjs.map': '_javascript',
	ml: '_ocaml',
	mli: '_ocaml',
	mov: '_video',
	mp3: '_audio',
	mp4: '_video',
	mpg: '_video',
	mustache: '_mustache',
	nim: '_nim',
	nims: '_nim',
	nj: '_nunjucks',
	njk: '_nunjucks',
	njs: '_nunjucks',
	'npm-debug.log': '_npm',
	npmignore: '_npm_1',
	npmrc: '_npm_1',
	nunj: '_nunjucks',
	nunjs: '_nunjucks',
	nunjucks: '_nunjucks',
	obj: '_svg_1',
	odata: '_odata',
	ogg: '_audio',
	ogv: '_video',
	otf: '_font',
	pddl: '_pddl',
	pdf: '_pdf',
	pem: '_lock',
	'php.inc': '_php',
	pipeline: '_pipeline',
	plan: '_plan',
	png: '_image',
	pp: '_puppet',
	prisma: '_prisma',
	pro: '_prolog',
	psd: '_photoshop',
	purs: '_purescript',
	pxm: '_image',
	r: '_R',
	re: '_reasonml',
	res: '_rescript',
	resi: '_rescript_1',
	rmd: '_R',
	s: '_asm',
	sass: '_sass',
	sbt: '_sbt',
	scala: '_scala',
	slang: '_crystal_embedded',
	slide: '_go',
	slim: '_slim',
	slugignore: '_config',
	'smarty.tpl': '_smarty',
	sol: '_ethereum',
	soql: '_db_1',
	'spec.cjs': '_javascript_1',
	'spec.js': '_javascript_1',
	'spec.jsx': '_react_1',
	'spec.mjs': '_javascript_1',
	'spec.ts': '_typescript_1',
	'spec.tsx': '_react_1',
	springbeans: '_spring',
	sss: '_css',
	stache: '_mustache',
	static: '_config',
	stl: '_svg_1',
	styl: '_stylus',
	stylelintignore: '_stylelint_1',
	stylelintrc: '_stylelint',
	'stylelintrc.js': '_stylelint',
	'stylelintrc.json': '_stylelint',
	'stylelintrc.yaml': '_stylelint',
	'stylelintrc.yml': '_stylelint',
	'sublime-project': '_sublime',
	'sublime-workspace': '_sublime',
	svelte: '_svelte',
	svg: '_svg',
	svgx: '_image',
	'test.cjs': '_javascript_1',
	'test.js': '_javascript_1',
	'test.jsx': '_react_1',
	'test.mjs': '_javascript_1',
	'test.ts': '_typescript_1',
	'test.tsx': '_react_1',
	tf: '_terraform',
	'tf.json': '_terraform',
	tfvars: '_terraform',
	'tfvars.json': '_terraform',
	tiff: '_image',
	tmp: '_clock_1',
	toml: '_config',
	tpl: '_smarty',
	tres: '_godot_2',
	tscn: '_godot_3',
	ttf: '_font',
	twig: '_twig',
	vala: '_vala',
	vapi: '_vala',
	vue: '_vue',
	wasm: '_wasm',
	wat: '_wat',
	wav: '_audio',
	webm: '_video',
	webp: '_image',
	wgt: '_wgt',
	woff: '_font',
	woff2: '_font',
	workspace: '_bazel',
	xls: '_xls',
	xlsx: '_xls',
	zig: '_zig',
	zip: '_zip_1',
};

const languageIds: Record<string, string> = {
	argdown: '_argdown',
	bat: '_windows',
	bicep: '_bicep',
	blade: '_php',
	c: '_c',
	chatagent: '_markdown',
	clojure: '_clojure',
	coffeescript: '_coffee',
	cpp: '_cpp',
	csharp: '_c-sharp',
	css: '_css',
	'cuda-cpp': '_cu',
	dart: '_dart',
	'django-html': '_html_3',
	dockercompose: '_docker_3',
	dockerfile: '_docker',
	dotenv: '_config',
	elixir: '_elixir',
	elm: '_elm',
	erb: '_html_erb',
	fsharp: '_f-sharp',
	'git-commit': '_git',
	'github-issues': '_github',
	go: '_go2',
	godot: '_godot',
	gradle: '_gradle',
	groovy: '_grails',
	haml: '_haml',
	handlebars: '_mustache',
	haskell: '_haskell',
	haxe: '_haxe',
	html: '_html_3',
	ignore: '_git',
	instructions: '_markdown',
	jade: '_pug',
	java: '_java',
	javascript: '_javascript',
	javascriptreact: '_react',
	jinja: '_jinja',
	json: '_json',
	jsonc: '_json',
	jsonl: '_json',
	julia: '_julia',
	kotlin: '_kotlin',
	latex: '_tex',
	less: '_less',
	lua: '_lua',
	makefile: '_makefile',
	markdown: '_markdown',
	mustache: '_mustache',
	nunjucks: '_nunjucks',
	'objective-c': '_c_2',
	'objective-cpp': '_cpp_2',
	ocaml: '_ocaml',
	perl: '_perl',
	php: '_php',
	postcss: '_css',
	powershell: '_powershell',
	prompt: '_markdown',
	properties: '_config',
	python: '_python',
	r: '_R',
	razor: '_html',
	rescript: '_rescript',
	ruby: '_ruby',
	rust: '_rust',
	sass: '_sass',
	scss: '_sass',
	'search-result': '_code-search',
	shellscript: '_shell',
	skill: '_markdown',
	sql: '_db',
	stylus: '_stylus',
	swift: '_swift',
	terraform: '_terraform',
	tex: '_tex_1',
	todo: '_todo',
	typescript: '_typescript',
	typescriptreact: '_react',
	vala: '_vala',
	vue: '_vue',
	xml: '_xml',
	yaml: '_yml',
};

const lightFileNames: Record<string, string> = {
	'babel.config.cjs': '_babel_light',
	'babel.config.js': '_babel_light',
	'babel.config.json': '_babel_light',
	'bower.json': '_bower_light',
	build: '_bazel_light',
	'build.bazel': '_bazel_light',
	changelog: '_clock_light',
	'changelog.md': '_clock_light',
	'changelog.txt': '_clock_light',
	changes: '_clock_light',
	'changes.md': '_clock_light',
	'changes.txt': '_clock_light',
	'cmakelists.txt': '_makefile_3_light',
	compiling: '_license_1_light',
	'compiling.md': '_license_1_light',
	'compiling.txt': '_license_1_light',
	contributing: '_license_2_light',
	'contributing.md': '_license_2_light',
	'contributing.txt': '_license_2_light',
	copying: '_license_light',
	'copying.md': '_license_light',
	'copying.txt': '_license_light',
	'docker-healthcheck': '_docker_2_light',
	'eslint.config.js': '_eslint_light',
	'firebase.json': '_firebase_light',
	geckodriver: '_firefox_light',
	'gruntfile.babel.js': '_grunt_light',
	'gruntfile.coffee': '_grunt_light',
	'gruntfile.js': '_grunt_light',
	gulpfile: '_gulp_light',
	'gulpfile.js': '_gulp_light',
	'ionic.config.json': '_ionic_light',
	'ionic.project': '_ionic_light',
	jenkinsfile: '_jenkins_light',
	'karma.conf.cjs': '_karma_light',
	'karma.conf.coffee': '_karma_light',
	'karma.conf.js': '_karma_light',
	'karma.conf.mjs': '_karma_light',
	licence: '_license_light',
	'licence.md': '_license_light',
	'licence.txt': '_license_light',
	license: '_license_light',
	'license.md': '_license_light',
	'license.txt': '_license_light',
	'mime.types': '_config_light',
	mix: '_hex_light',
	mvnw: '_maven_light',
	'npm-debug.log': '_npm_ignored_light',
	omakefile: '_makefile_2_light',
	'platformio.ini': '_platformio_light',
	'pom.xml': '_maven_light',
	procfile: '_heroku_light',
	qmakefile: '_makefile_1_light',
	readme: '_info_light',
	'readme.md': '_info_light',
	'readme.txt': '_info_light',
	'rollup.config.js': '_rollup_light',
	'sass-lint.yml': '_sass_light',
	'stylelint.config.cjs': '_stylelint_light',
	'stylelint.config.js': '_stylelint_light',
	'stylelint.config.mjs': '_stylelint_light',
	'swagger.json': '_json_1_light',
	'swagger.yaml': '_json_1_light',
	'swagger.yml': '_json_1_light',
	'tsconfig.json': '_tsconfig_light',
	version: '_clock_light',
	'version.md': '_clock_light',
	'version.txt': '_clock_light',
	'vite.config.cjs': '_vite_light',
	'vite.config.cts': '_vite_light',
	'vite.config.js': '_vite_light',
	'vite.config.mjs': '_vite_light',
	'vite.config.mts': '_vite_light',
	'vite.config.ts': '_vite_light',
	'webpack.common.cjs': '_webpack_light',
	'webpack.common.js': '_webpack_light',
	'webpack.common.mjs': '_webpack_light',
	'webpack.common.ts': '_webpack_light',
	'webpack.config.build.cjs': '_webpack_light',
	'webpack.config.build.js': '_webpack_light',
	'webpack.config.build.mjs': '_webpack_light',
	'webpack.config.build.ts': '_webpack_light',
	'webpack.config.cjs': '_webpack_light',
	'webpack.config.js': '_webpack_light',
	'webpack.config.mjs': '_webpack_light',
	'webpack.config.ts': '_webpack_light',
	'webpack.dev.cjs': '_webpack_light',
	'webpack.dev.js': '_webpack_light',
	'webpack.dev.mjs': '_webpack_light',
	'webpack.dev.ts': '_webpack_light',
	'webpack.prod.cjs': '_webpack_light',
	'webpack.prod.js': '_webpack_light',
	'webpack.prod.mjs': '_webpack_light',
	'webpack.prod.ts': '_webpack_light',
	workspace: '_bazel_light',
	'workspace.bazel': '_bazel_light',
	'yarn.clean': '_yarn_light',
	'yarn.lock': '_yarn_light',
};

const lightFileExtensions: Record<string, string> = {
	'3dm': '_svg_1_light',
	'3ds': '_svg_1_light',
	ad: '_argdown_light',
	ai: '_illustrator_light',
	apex: '_salesforce_light',
	argdown: '_argdown_light',
	article: '_go_light',
	asax: '_html_2_light',
	ascx: '_html_1_light',
	asm: '_asm_light',
	aspx: '_html_light',
	avi: '_video_light',
	avif: '_image_light',
	babelrc: '_babel_light',
	'babelrc.cjs': '_babel_light',
	'babelrc.js': '_babel_light',
	bazel: '_bazel_light',
	bazelignore: '_bazel_light',
	bazelrc: '_bazel_1_light',
	bazelversion: '_bazel_light',
	bicep: '_bicep_light',
	bowerrc: '_bower_light',
	bsl: '_bsl_light',
	build: '_bazel_light',
	bzl: '_bazel_light',
	cake: '_cake_light',
	cer: '_lock_light',
	cert: '_lock_light',
	cfc: '_coldfusion_light',
	cfm: '_coldfusion_light',
	'cjs.map': '_javascript_light',
	cjsx: '_react_light',
	class: '_java_1_light',
	classpath: '_java_light',
	cls: '_salesforce_light',
	cmx: '_ocaml_light',
	cmxa: '_ocaml_light',
	'codeclimate.yml': '_code-climate_light',
	component: '_html_3_light',
	config: '_config_light',
	cr: '_crystal_light',
	crt: '_lock_light',
	cson: '_json_light',
	'css.map': '_css_light',
	csv: '_csv_light',
	ctp: '_cake_php_light',
	cuh: '_cu_1_light',
	d: '_d_light',
	dae: '_svg_1_light',
	direnv: '_config_light',
	doc: '_word_light',
	dockerignore: '_docker_1_light',
	docx: '_word_light',
	ds_store: '_ignored_light',
	dtx: '_tex_2_light',
	ecr: '_crystal_embedded_light',
	edn: '_clojure_1_light',
	ejs: '_ejs_light',
	elm: '_elm_light',
	eot: '_font_light',
	epp: '_puppet_light',
	erb: '_html_erb_light',
	'erb.html': '_html_erb_light',
	es: '_javascript_light',
	es5: '_javascript_light',
	es7: '_javascript_light',
	eslintignore: '_eslint_1_light',
	eslintrc: '_eslint_light',
	'eslintrc.cjs': '_eslint_light',
	'eslintrc.js': '_eslint_light',
	'eslintrc.json': '_eslint_light',
	'eslintrc.yaml': '_eslint_light',
	'eslintrc.yml': '_eslint_light',
	ex: '_elixir_light',
	exs: '_elixir_script_light',
	firebaserc: '_firebase_light',
	flac: '_audio_light',
	gd: '_godot_light',
	gif: '_image_light',
	gitattributes: '_git_light',
	gitconfig: '_git_light',
	'github-issues': '_github_light',
	gitkeep: '_git_light',
	'gitlab-ci.yml': '_gitlab_light',
	gitmodules: '_git_light',
	godot: '_godot_1_light',
	gql: '_graphql_light',
	gradle: '_gradle_light',
	graphql: '_graphql_light',
	graphqls: '_graphql_light',
	gsp: '_grails_light',
	h: '_c_1_light',
	'h++': '_cpp_1_light',
	hack: '_hacklang_light',
	haml: '_haml_light',
	happenings: '_happenings_light',
	hh: '_cpp_1_light',
	hpp: '_cpp_1_light',
	hs: '_haskell_light',
	htaccess: '_config_light',
	'html.erb': '_html_erb_light',
	hu: '_cu_1_light',
	hx: '_haxe_light',
	hxml: '_haxe_3_light',
	hxp: '_haxe_2_light',
	hxs: '_haxe_1_light',
	hxx: '_cpp_1_light',
	ico: '_favicon_light',
	ins: '_tex_3_light',
	ipynb: '_notebook_light',
	jade: '_jade_light',
	jar: '_zip_light',
	jinja: '_jinja_light',
	jinja2: '_jinja_light',
	jpeg: '_image_light',
	jpg: '_image_light',
	'js.map': '_javascript_light',
	jscsrc: '_javascript_2_light',
	jshintrc: '_javascript_2_light',
	key: '_lock_light',
	kt: '_kotlin_light',
	kts: '_kotlin_light',
	lhs: '_haskell_light',
	liquid: '_liquid_light',
	litcoffee: '_coffee_light',
	ls: '_livescript_light',
	master: '_html_2_light',
	mdo: '_mdo_light',
	'mjs.map': '_javascript_light',
	ml: '_ocaml_light',
	mli: '_ocaml_light',
	mov: '_video_light',
	mp3: '_audio_light',
	mp4: '_video_light',
	mpg: '_video_light',
	mustache: '_mustache_light',
	nim: '_nim_light',
	nims: '_nim_light',
	nj: '_nunjucks_light',
	njk: '_nunjucks_light',
	njs: '_nunjucks_light',
	'npm-debug.log': '_npm_light',
	npmignore: '_npm_1_light',
	npmrc: '_npm_1_light',
	nunj: '_nunjucks_light',
	nunjs: '_nunjucks_light',
	nunjucks: '_nunjucks_light',
	obj: '_svg_1_light',
	odata: '_odata_light',
	ogg: '_audio_light',
	ogv: '_video_light',
	otf: '_font_light',
	pddl: '_pddl_light',
	pdf: '_pdf_light',
	pem: '_lock_light',
	'php.inc': '_php_light',
	pipeline: '_pipeline_light',
	plan: '_plan_light',
	png: '_image_light',
	pp: '_puppet_light',
	prisma: '_prisma_light',
	pro: '_prolog_light',
	psd: '_photoshop_light',
	purs: '_purescript_light',
	pxm: '_image_light',
	r: '_R_light',
	re: '_reasonml_light',
	res: '_rescript_light',
	resi: '_rescript_1_light',
	rmd: '_R_light',
	s: '_asm_light',
	sass: '_sass_light',
	sbt: '_sbt_light',
	scala: '_scala_light',
	slang: '_crystal_embedded_light',
	slide: '_go_light',
	slim: '_slim_light',
	slugignore: '_config_light',
	'smarty.tpl': '_smarty_light',
	sol: '_ethereum_light',
	soql: '_db_1_light',
	'spec.cjs': '_javascript_1_light',
	'spec.js': '_javascript_1_light',
	'spec.jsx': '_react_1_light',
	'spec.mjs': '_javascript_1_light',
	'spec.ts': '_typescript_1_light',
	'spec.tsx': '_react_1_light',
	springbeans: '_spring_light',
	sss: '_css_light',
	stache: '_mustache_light',
	static: '_config_light',
	stl: '_svg_1_light',
	styl: '_stylus_light',
	stylelintignore: '_stylelint_1_light',
	stylelintrc: '_stylelint_light',
	'stylelintrc.js': '_stylelint_light',
	'stylelintrc.json': '_stylelint_light',
	'stylelintrc.yaml': '_stylelint_light',
	'stylelintrc.yml': '_stylelint_light',
	'sublime-project': '_sublime_light',
	'sublime-workspace': '_sublime_light',
	svelte: '_svelte_light',
	svg: '_svg_light',
	svgx: '_image_light',
	'test.cjs': '_javascript_1_light',
	'test.js': '_javascript_1_light',
	'test.jsx': '_react_1_light',
	'test.mjs': '_javascript_1_light',
	'test.ts': '_typescript_1_light',
	'test.tsx': '_react_1_light',
	tf: '_terraform_light',
	'tf.json': '_terraform_light',
	tfvars: '_terraform_light',
	'tfvars.json': '_terraform_light',
	tiff: '_image_light',
	tmp: '_clock_1_light',
	toml: '_config_light',
	tpl: '_smarty_light',
	tres: '_godot_2_light',
	tscn: '_godot_3_light',
	ttf: '_font_light',
	twig: '_twig_light',
	vala: '_vala_light',
	vapi: '_vala_light',
	vue: '_vue_light',
	wasm: '_wasm_light',
	wat: '_wat_light',
	wav: '_audio_light',
	webm: '_video_light',
	webp: '_image_light',
	wgt: '_wgt_light',
	woff: '_font_light',
	woff2: '_font_light',
	workspace: '_bazel_light',
	xls: '_xls_light',
	xlsx: '_xls_light',
	zig: '_zig_light',
	zip: '_zip_1_light',
};

const lightLanguageIds: Record<string, string> = {
	argdown: '_argdown_light',
	bat: '_windows_light',
	bicep: '_bicep_light',
	blade: '_php_light',
	c: '_c_light',
	chatagent: '_markdown_light',
	clojure: '_clojure_light',
	coffeescript: '_coffee_light',
	cpp: '_cpp_light',
	csharp: '_c-sharp_light',
	css: '_css_light',
	'cuda-cpp': '_cu_light',
	dart: '_dart_light',
	'django-html': '_html_3_light',
	dockercompose: '_docker_3_light',
	dockerfile: '_docker_light',
	dotenv: '_config_light',
	elixir: '_elixir_light',
	elm: '_elm_light',
	erb: '_html_erb_light',
	fsharp: '_f-sharp_light',
	'git-commit': '_git_light',
	'github-issues': '_github_light',
	go: '_go2_light',
	godot: '_godot_light',
	gradle: '_gradle_light',
	groovy: '_grails_light',
	haml: '_haml_light',
	handlebars: '_mustache_light',
	haskell: '_haskell_light',
	haxe: '_haxe_light',
	html: '_html_3_light',
	ignore: '_git_light',
	instructions: '_markdown_light',
	jade: '_pug_light',
	java: '_java_light',
	javascript: '_javascript_light',
	javascriptreact: '_react_light',
	jinja: '_jinja_light',
	json: '_json_light',
	jsonc: '_json_light',
	jsonl: '_json_light',
	julia: '_julia_light',
	kotlin: '_kotlin_light',
	latex: '_tex_light',
	less: '_less_light',
	lua: '_lua_light',
	makefile: '_makefile_light',
	markdown: '_markdown_light',
	mustache: '_mustache_light',
	nunjucks: '_nunjucks_light',
	'objective-c': '_c_2_light',
	'objective-cpp': '_cpp_2_light',
	ocaml: '_ocaml_light',
	perl: '_perl_light',
	php: '_php_light',
	postcss: '_css_light',
	powershell: '_powershell_light',
	prompt: '_markdown_light',
	properties: '_config_light',
	python: '_python_light',
	r: '_R_light',
	razor: '_html_light',
	rescript: '_rescript_light',
	ruby: '_ruby_light',
	rust: '_rust_light',
	sass: '_sass_light',
	scss: '_sass_light',
	'search-result': '_code-search_light',
	shellscript: '_shell_light',
	skill: '_markdown_light',
	sql: '_db_light',
	stylus: '_stylus_light',
	swift: '_swift_light',
	terraform: '_terraform_light',
	tex: '_tex_1_light',
	typescript: '_typescript_light',
	typescriptreact: '_react_light',
	vala: '_vala_light',
	vue: '_vue_light',
	xml: '_xml_light',
	yaml: '_yml_light',
};

const defaultFileIcon = '_default';
const defaultFolderIcon = '_folder';
const defaultFolderExpandedIcon = '_folder_open';
const lightDefaultFileIcon = '_default_light';
const lightDefaultFolderIcon = '';
const lightDefaultFolderExpandedIcon = '';

/**
 * File extension to VS Code language ID mapping.
 * Covers languages referenced by the Seti theme's languageIds.
 */
const extToLang: Record<string, string> = {
	'.bash': 'shellscript',
	'.bat': 'bat',
	'.c': 'c',
	'.cc': 'cpp',
	'.cjs': 'javascript',
	'.clj': 'clojure',
	'.cljc': 'clojure',
	'.cljs': 'clojure',
	'.cmd': 'bat',
	'.coffee': 'coffeescript',
	'.cpp': 'cpp',
	'.cs': 'csharp',
	'.cshtml': 'razor',
	'.css': 'css',
	'.cu': 'cuda-cpp',
	'.cxx': 'cpp',
	'.dart': 'dart',
	'.dockerfile': 'dockerfile',
	'.fs': 'fsharp',
	'.fsx': 'fsharp',
	'.gitignore': 'ignore',
	'.go': 'go',
	'.gradle': 'groovy',
	'.groovy': 'groovy',
	'.h': 'c',
	'.handlebars': 'handlebars',
	'.hbs': 'handlebars',
	'.hpp': 'cpp',
	'.htm': 'html',
	'.html': 'html',
	'.java': 'java',
	'.jl': 'julia',
	'.js': 'javascript',
	'.json': 'json',
	'.jsonc': 'jsonc',
	'.jsx': 'javascriptreact',
	'.kt': 'kotlin',
	'.kts': 'kotlin',
	'.less': 'less',
	'.lua': 'lua',
	'.m': 'objective-c',
	'.makefile': 'makefile',
	'.markdown': 'markdown',
	'.md': 'markdown',
	'.mjs': 'javascript',
	'.mk': 'makefile',
	'.mm': 'objective-cpp',
	'.npmignore': 'ignore',
	'.php': 'php',
	'.pl': 'perl',
	'.pm': 'perl',
	'.properties': 'properties',
	'.ps1': 'powershell',
	'.psm1': 'powershell',
	'.py': 'python',
	'.r': 'r',
	'.rb': 'ruby',
	'.rs': 'rust',
	'.sass': 'scss',
	'.scss': 'scss',
	'.sh': 'shellscript',
	'.sql': 'sql',
	'.swift': 'swift',
	'.tex': 'latex',
	'.ts': 'typescript',
	'.tsx': 'typescriptreact',
	'.xml': 'xml',
	'.xsd': 'xml',
	'.xsl': 'xml',
	'.yaml': 'yaml',
	'.yml': 'yaml',
	'.zsh': 'shellscript',
};

export interface SetiIcon {
	readonly character: string;
	readonly color: string;
}

/**
 * Resolve a filename to a Seti icon character and color.
 */
export function resolveSetiFileIcon(filename: string, isLight = false): SetiIcon | undefined {
	const lower = filename.toLowerCase();

	// 1. fileNames (exact match)
	const nameMap = isLight ? lightFileNames : fileNames;
	let defId = nameMap[lower];
	if (defId != null) return lookup(defId);

	// 2. fileExtensions (longest compound extension first)
	const extMap = isLight ? lightFileExtensions : fileExtensions;
	let dotIndex = lower.indexOf('.');
	while (dotIndex !== -1 && dotIndex < lower.length - 1) {
		defId = extMap[lower.substring(dotIndex + 1)];
		if (defId != null) return lookup(defId);
		dotIndex = lower.indexOf('.', dotIndex + 1);
	}

	// 3. languageIds (via extension mapping)
	const langMap = isLight ? lightLanguageIds : languageIds;
	const lastDot = lower.lastIndexOf('.');
	if (lastDot !== -1) {
		const langId = extToLang[lower.substring(lastDot)];
		if (langId != null) {
			defId = langMap[langId];
			if (defId != null) return lookup(defId);
		}
	}

	// 4. Default
	const defaultId = isLight && lightDefaultFileIcon ? lightDefaultFileIcon : defaultFileIcon;
	return lookup(defaultId);
}

/**
 * Resolve a folder icon.
 */
export function resolveSetiFolderIcon(expanded: boolean, isLight = false): SetiIcon | undefined {
	const defId = expanded
		? isLight && lightDefaultFolderExpandedIcon
			? lightDefaultFolderExpandedIcon
			: defaultFolderExpandedIcon
		: isLight && lightDefaultFolderIcon
			? lightDefaultFolderIcon
			: defaultFolderIcon;
	return lookup(defId);
}

function lookup(defId: string): SetiIcon | undefined {
	const def = i[defId];
	if (def == null) return undefined;
	return { character: def[0], color: def[1] };
}
