code-languages 1.27.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/README.md +25 -0
  2. package/dist/api.cjs +58 -59
  3. package/dist/api.d.cts +3 -8665
  4. package/dist/api.d.ts +3 -8665
  5. package/dist/api.js +58 -59
  6. package/dist/detect-slugs.cjs +247 -0
  7. package/dist/detect-slugs.d.cts +42 -0
  8. package/dist/detect-slugs.d.ts +42 -0
  9. package/dist/detect-slugs.js +243 -0
  10. package/dist/detect.cjs +0 -2
  11. package/dist/detect.js +0 -2
  12. package/dist/i18n.cjs +0 -2
  13. package/dist/i18n.js +0 -2
  14. package/dist/index.cjs +78 -59
  15. package/dist/index.d.cts +3 -1
  16. package/dist/index.d.ts +3 -1
  17. package/dist/index.js +76 -60
  18. package/dist/language-registry-nZ-y7PIh.d.cts +551 -0
  19. package/dist/language-registry-nZ-y7PIh.d.ts +551 -0
  20. package/dist/languages/abap.cjs +0 -2
  21. package/dist/languages/abap.js +0 -2
  22. package/dist/languages/actionscript.cjs +0 -2
  23. package/dist/languages/actionscript.js +0 -2
  24. package/dist/languages/ada.cjs +0 -2
  25. package/dist/languages/ada.js +0 -2
  26. package/dist/languages/agda.cjs +0 -2
  27. package/dist/languages/agda.js +0 -2
  28. package/dist/languages/antlr.cjs +0 -2
  29. package/dist/languages/antlr.js +0 -2
  30. package/dist/languages/apex.cjs +0 -2
  31. package/dist/languages/apex.js +0 -2
  32. package/dist/languages/apl.cjs +0 -2
  33. package/dist/languages/apl.js +0 -2
  34. package/dist/languages/applescript.cjs +0 -2
  35. package/dist/languages/applescript.js +0 -2
  36. package/dist/languages/arduino.cjs +0 -2
  37. package/dist/languages/arduino.js +0 -2
  38. package/dist/languages/asciidoc.cjs +0 -2
  39. package/dist/languages/asciidoc.js +0 -2
  40. package/dist/languages/asp.cjs +0 -2
  41. package/dist/languages/asp.js +0 -2
  42. package/dist/languages/assembly.cjs +0 -2
  43. package/dist/languages/assembly.js +0 -2
  44. package/dist/languages/astro.cjs +0 -2
  45. package/dist/languages/astro.js +0 -2
  46. package/dist/languages/autohotkey.cjs +0 -2
  47. package/dist/languages/autohotkey.js +0 -2
  48. package/dist/languages/awk.cjs +0 -2
  49. package/dist/languages/awk.js +0 -2
  50. package/dist/languages/ballerina.cjs +0 -2
  51. package/dist/languages/ballerina.js +0 -2
  52. package/dist/languages/bash.cjs +0 -2
  53. package/dist/languages/bash.js +0 -2
  54. package/dist/languages/batch.cjs +0 -2
  55. package/dist/languages/batch.js +0 -2
  56. package/dist/languages/bazel.cjs +0 -2
  57. package/dist/languages/bazel.js +0 -2
  58. package/dist/languages/bicep.cjs +0 -2
  59. package/dist/languages/bicep.js +0 -2
  60. package/dist/languages/blade.cjs +0 -2
  61. package/dist/languages/blade.js +0 -2
  62. package/dist/languages/c.cjs +0 -2
  63. package/dist/languages/c.js +0 -2
  64. package/dist/languages/carbon.cjs +0 -2
  65. package/dist/languages/carbon.js +0 -2
  66. package/dist/languages/chapel.cjs +0 -2
  67. package/dist/languages/chapel.js +0 -2
  68. package/dist/languages/circom.cjs +0 -2
  69. package/dist/languages/circom.js +0 -2
  70. package/dist/languages/clojure.cjs +0 -2
  71. package/dist/languages/clojure.js +0 -2
  72. package/dist/languages/cmake.cjs +0 -2
  73. package/dist/languages/cmake.js +0 -2
  74. package/dist/languages/cobol.cjs +0 -2
  75. package/dist/languages/cobol.js +0 -2
  76. package/dist/languages/coffeescript.cjs +0 -2
  77. package/dist/languages/coffeescript.js +0 -2
  78. package/dist/languages/coldfusion.cjs +0 -2
  79. package/dist/languages/coldfusion.js +0 -2
  80. package/dist/languages/coq.cjs +0 -2
  81. package/dist/languages/coq.js +0 -2
  82. package/dist/languages/cpp.cjs +0 -2
  83. package/dist/languages/cpp.js +0 -2
  84. package/dist/languages/crystal.cjs +0 -2
  85. package/dist/languages/crystal.js +0 -2
  86. package/dist/languages/csharp.cjs +0 -2
  87. package/dist/languages/csharp.js +0 -2
  88. package/dist/languages/css.cjs +0 -2
  89. package/dist/languages/css.js +0 -2
  90. package/dist/languages/cuda.cjs +0 -2
  91. package/dist/languages/cuda.js +0 -2
  92. package/dist/languages/cue.cjs +0 -2
  93. package/dist/languages/cue.js +0 -2
  94. package/dist/languages/cypher.cjs +0 -2
  95. package/dist/languages/cypher.js +0 -2
  96. package/dist/languages/cython.cjs +0 -2
  97. package/dist/languages/cython.js +0 -2
  98. package/dist/languages/d.cjs +0 -2
  99. package/dist/languages/d.js +0 -2
  100. package/dist/languages/dart.cjs +0 -2
  101. package/dist/languages/dart.js +0 -2
  102. package/dist/languages/dhall.cjs +0 -2
  103. package/dist/languages/dhall.js +0 -2
  104. package/dist/languages/dita.cjs +0 -2
  105. package/dist/languages/dita.js +0 -2
  106. package/dist/languages/dockerfile.cjs +0 -2
  107. package/dist/languages/dockerfile.js +0 -2
  108. package/dist/languages/earthly.cjs +0 -2
  109. package/dist/languages/earthly.js +0 -2
  110. package/dist/languages/eiffel.cjs +0 -2
  111. package/dist/languages/eiffel.js +0 -2
  112. package/dist/languages/elixir.cjs +0 -2
  113. package/dist/languages/elixir.js +0 -2
  114. package/dist/languages/elm.cjs +0 -2
  115. package/dist/languages/elm.js +0 -2
  116. package/dist/languages/erb.cjs +0 -2
  117. package/dist/languages/erb.js +0 -2
  118. package/dist/languages/erlang.cjs +0 -2
  119. package/dist/languages/erlang.js +0 -2
  120. package/dist/languages/fennel.cjs +0 -2
  121. package/dist/languages/fennel.js +0 -2
  122. package/dist/languages/fish.cjs +0 -2
  123. package/dist/languages/fish.js +0 -2
  124. package/dist/languages/forth.cjs +0 -2
  125. package/dist/languages/forth.js +0 -2
  126. package/dist/languages/fortran.cjs +0 -2
  127. package/dist/languages/fortran.js +0 -2
  128. package/dist/languages/fsharp.cjs +0 -2
  129. package/dist/languages/fsharp.js +0 -2
  130. package/dist/languages/gdscript.cjs +0 -2
  131. package/dist/languages/gdscript.js +0 -2
  132. package/dist/languages/git.cjs +0 -2
  133. package/dist/languages/git.js +0 -2
  134. package/dist/languages/gleam.cjs +0 -2
  135. package/dist/languages/gleam.js +0 -2
  136. package/dist/languages/glsl.cjs +0 -2
  137. package/dist/languages/glsl.js +0 -2
  138. package/dist/languages/go.cjs +0 -2
  139. package/dist/languages/go.js +0 -2
  140. package/dist/languages/gradle.cjs +0 -2
  141. package/dist/languages/gradle.js +0 -2
  142. package/dist/languages/graphql.cjs +0 -2
  143. package/dist/languages/graphql.js +0 -2
  144. package/dist/languages/groovy.cjs +0 -2
  145. package/dist/languages/groovy.js +0 -2
  146. package/dist/languages/hack.cjs +0 -2
  147. package/dist/languages/hack.js +0 -2
  148. package/dist/languages/haml.cjs +0 -2
  149. package/dist/languages/haml.js +0 -2
  150. package/dist/languages/handlebars.cjs +0 -2
  151. package/dist/languages/handlebars.js +0 -2
  152. package/dist/languages/haskell.cjs +0 -2
  153. package/dist/languages/haskell.js +0 -2
  154. package/dist/languages/haxe.cjs +0 -2
  155. package/dist/languages/haxe.js +0 -2
  156. package/dist/languages/hcl.cjs +0 -2
  157. package/dist/languages/hcl.js +0 -2
  158. package/dist/languages/hlsl.cjs +0 -2
  159. package/dist/languages/hlsl.js +0 -2
  160. package/dist/languages/hocon.cjs +0 -2
  161. package/dist/languages/hocon.js +0 -2
  162. package/dist/languages/html.cjs +0 -2
  163. package/dist/languages/html.js +0 -2
  164. package/dist/languages/idris.cjs +0 -2
  165. package/dist/languages/idris.js +0 -2
  166. package/dist/languages/ini.cjs +0 -2
  167. package/dist/languages/ini.js +0 -2
  168. package/dist/languages/janet.cjs +0 -2
  169. package/dist/languages/janet.js +0 -2
  170. package/dist/languages/java.cjs +0 -2
  171. package/dist/languages/java.js +0 -2
  172. package/dist/languages/javascript.cjs +0 -2
  173. package/dist/languages/javascript.js +0 -2
  174. package/dist/languages/jinja.cjs +0 -2
  175. package/dist/languages/jinja.js +0 -2
  176. package/dist/languages/json.cjs +0 -2
  177. package/dist/languages/json.js +0 -2
  178. package/dist/languages/json5.cjs +0 -2
  179. package/dist/languages/json5.js +0 -2
  180. package/dist/languages/jsonnet.cjs +0 -2
  181. package/dist/languages/jsonnet.js +0 -2
  182. package/dist/languages/julia.cjs +0 -2
  183. package/dist/languages/julia.js +0 -2
  184. package/dist/languages/jupyter-notebook.cjs +0 -2
  185. package/dist/languages/jupyter-notebook.js +0 -2
  186. package/dist/languages/kotlin.cjs +0 -2
  187. package/dist/languages/kotlin.js +0 -2
  188. package/dist/languages/lean.cjs +0 -2
  189. package/dist/languages/lean.js +0 -2
  190. package/dist/languages/less.cjs +0 -2
  191. package/dist/languages/less.js +0 -2
  192. package/dist/languages/liquid.cjs +0 -2
  193. package/dist/languages/liquid.js +0 -2
  194. package/dist/languages/lisp.cjs +0 -2
  195. package/dist/languages/lisp.js +0 -2
  196. package/dist/languages/llvm-ir.cjs +0 -2
  197. package/dist/languages/llvm-ir.js +0 -2
  198. package/dist/languages/lua.cjs +0 -2
  199. package/dist/languages/lua.js +0 -2
  200. package/dist/languages/luau.cjs +0 -2
  201. package/dist/languages/luau.js +0 -2
  202. package/dist/languages/makefile.cjs +0 -2
  203. package/dist/languages/makefile.js +0 -2
  204. package/dist/languages/mako.cjs +0 -2
  205. package/dist/languages/mako.js +0 -2
  206. package/dist/languages/markdown.cjs +0 -2
  207. package/dist/languages/markdown.js +0 -2
  208. package/dist/languages/mathematica.cjs +0 -2
  209. package/dist/languages/mathematica.js +0 -2
  210. package/dist/languages/matlab.cjs +0 -2
  211. package/dist/languages/matlab.js +0 -2
  212. package/dist/languages/mdx.cjs +0 -2
  213. package/dist/languages/mdx.js +0 -2
  214. package/dist/languages/mermaid.cjs +0 -2
  215. package/dist/languages/mermaid.js +0 -2
  216. package/dist/languages/meson.cjs +0 -2
  217. package/dist/languages/meson.js +0 -2
  218. package/dist/languages/metal.cjs +0 -2
  219. package/dist/languages/metal.js +0 -2
  220. package/dist/languages/mojo.cjs +0 -2
  221. package/dist/languages/mojo.js +0 -2
  222. package/dist/languages/moonbit.cjs +0 -2
  223. package/dist/languages/moonbit.js +0 -2
  224. package/dist/languages/mustache.cjs +0 -2
  225. package/dist/languages/mustache.js +0 -2
  226. package/dist/languages/nginx.cjs +0 -2
  227. package/dist/languages/nginx.js +0 -2
  228. package/dist/languages/nim.cjs +0 -2
  229. package/dist/languages/nim.js +0 -2
  230. package/dist/languages/nix.cjs +0 -2
  231. package/dist/languages/nix.js +0 -2
  232. package/dist/languages/nunjucks.cjs +0 -2
  233. package/dist/languages/nunjucks.js +0 -2
  234. package/dist/languages/nushell.cjs +0 -2
  235. package/dist/languages/nushell.js +0 -2
  236. package/dist/languages/objective-c.cjs +0 -2
  237. package/dist/languages/objective-c.js +0 -2
  238. package/dist/languages/ocaml.cjs +0 -2
  239. package/dist/languages/ocaml.js +0 -2
  240. package/dist/languages/odin.cjs +0 -2
  241. package/dist/languages/odin.js +0 -2
  242. package/dist/languages/opencl.cjs +0 -2
  243. package/dist/languages/opencl.js +0 -2
  244. package/dist/languages/pascal.cjs +0 -2
  245. package/dist/languages/pascal.js +0 -2
  246. package/dist/languages/perl.cjs +0 -2
  247. package/dist/languages/perl.js +0 -2
  248. package/dist/languages/php.cjs +0 -2
  249. package/dist/languages/php.js +0 -2
  250. package/dist/languages/pine-script.cjs +0 -2
  251. package/dist/languages/pine-script.js +0 -2
  252. package/dist/languages/plantuml.cjs +0 -2
  253. package/dist/languages/plantuml.js +0 -2
  254. package/dist/languages/plsql.cjs +0 -2
  255. package/dist/languages/plsql.js +0 -2
  256. package/dist/languages/pony.cjs +0 -2
  257. package/dist/languages/pony.js +0 -2
  258. package/dist/languages/powershell.cjs +0 -2
  259. package/dist/languages/powershell.js +0 -2
  260. package/dist/languages/prolog.cjs +0 -2
  261. package/dist/languages/prolog.js +0 -2
  262. package/dist/languages/promql.cjs +0 -2
  263. package/dist/languages/promql.js +0 -2
  264. package/dist/languages/protobuf.cjs +0 -2
  265. package/dist/languages/protobuf.js +0 -2
  266. package/dist/languages/pug.cjs +0 -2
  267. package/dist/languages/pug.js +0 -2
  268. package/dist/languages/purescript.cjs +0 -2
  269. package/dist/languages/purescript.js +0 -2
  270. package/dist/languages/python.cjs +0 -2
  271. package/dist/languages/python.js +0 -2
  272. package/dist/languages/qml.cjs +0 -2
  273. package/dist/languages/qml.js +0 -2
  274. package/dist/languages/qsharp.cjs +0 -2
  275. package/dist/languages/qsharp.js +0 -2
  276. package/dist/languages/r.cjs +0 -2
  277. package/dist/languages/r.js +0 -2
  278. package/dist/languages/racket.cjs +0 -2
  279. package/dist/languages/racket.js +0 -2
  280. package/dist/languages/raku.cjs +0 -2
  281. package/dist/languages/raku.js +0 -2
  282. package/dist/languages/razor.cjs +0 -2
  283. package/dist/languages/razor.js +0 -2
  284. package/dist/languages/reasonml.cjs +0 -2
  285. package/dist/languages/reasonml.js +0 -2
  286. package/dist/languages/rego.cjs +0 -2
  287. package/dist/languages/rego.js +0 -2
  288. package/dist/languages/rescript.cjs +0 -2
  289. package/dist/languages/rescript.js +0 -2
  290. package/dist/languages/restructuredtext.cjs +0 -2
  291. package/dist/languages/restructuredtext.js +0 -2
  292. package/dist/languages/ruby.cjs +0 -2
  293. package/dist/languages/ruby.js +0 -2
  294. package/dist/languages/rust.cjs +0 -2
  295. package/dist/languages/rust.js +0 -2
  296. package/dist/languages/sas.cjs +0 -2
  297. package/dist/languages/sas.js +0 -2
  298. package/dist/languages/scala.cjs +0 -2
  299. package/dist/languages/scala.js +0 -2
  300. package/dist/languages/scheme.cjs +0 -2
  301. package/dist/languages/scheme.js +0 -2
  302. package/dist/languages/scss.cjs +0 -2
  303. package/dist/languages/scss.js +0 -2
  304. package/dist/languages/smalltalk.cjs +0 -2
  305. package/dist/languages/smalltalk.js +0 -2
  306. package/dist/languages/smarty.cjs +0 -2
  307. package/dist/languages/smarty.js +0 -2
  308. package/dist/languages/solidity.cjs +0 -2
  309. package/dist/languages/solidity.js +0 -2
  310. package/dist/languages/sparql.cjs +0 -2
  311. package/dist/languages/sparql.js +0 -2
  312. package/dist/languages/sql.cjs +0 -2
  313. package/dist/languages/sql.js +0 -2
  314. package/dist/languages/standard-ml.cjs +0 -2
  315. package/dist/languages/standard-ml.js +0 -2
  316. package/dist/languages/starlark.cjs +0 -2
  317. package/dist/languages/starlark.js +0 -2
  318. package/dist/languages/stata.cjs +0 -2
  319. package/dist/languages/stata.js +0 -2
  320. package/dist/languages/stylus.cjs +0 -2
  321. package/dist/languages/stylus.js +0 -2
  322. package/dist/languages/svelte.cjs +0 -2
  323. package/dist/languages/svelte.js +0 -2
  324. package/dist/languages/svg.cjs +0 -2
  325. package/dist/languages/svg.js +0 -2
  326. package/dist/languages/svn.cjs +0 -2
  327. package/dist/languages/svn.js +0 -2
  328. package/dist/languages/swift.cjs +0 -2
  329. package/dist/languages/swift.js +0 -2
  330. package/dist/languages/tcl.cjs +0 -2
  331. package/dist/languages/tcl.js +0 -2
  332. package/dist/languages/tex.cjs +0 -2
  333. package/dist/languages/tex.js +0 -2
  334. package/dist/languages/thrift.cjs +0 -2
  335. package/dist/languages/thrift.js +0 -2
  336. package/dist/languages/tla-plus.cjs +0 -2
  337. package/dist/languages/tla-plus.js +0 -2
  338. package/dist/languages/toml.cjs +0 -2
  339. package/dist/languages/toml.js +0 -2
  340. package/dist/languages/twig.cjs +0 -2
  341. package/dist/languages/twig.js +0 -2
  342. package/dist/languages/typescript.cjs +0 -2
  343. package/dist/languages/typescript.js +0 -2
  344. package/dist/languages/typst.cjs +0 -2
  345. package/dist/languages/typst.js +0 -2
  346. package/dist/languages/v.cjs +0 -2
  347. package/dist/languages/v.js +0 -2
  348. package/dist/languages/vala.cjs +0 -2
  349. package/dist/languages/vala.js +0 -2
  350. package/dist/languages/verilog.cjs +0 -2
  351. package/dist/languages/verilog.js +0 -2
  352. package/dist/languages/vhdl.cjs +0 -2
  353. package/dist/languages/vhdl.js +0 -2
  354. package/dist/languages/visual-basic.cjs +0 -2
  355. package/dist/languages/visual-basic.js +0 -2
  356. package/dist/languages/vue.cjs +0 -2
  357. package/dist/languages/vue.js +0 -2
  358. package/dist/languages/vyper.cjs +0 -2
  359. package/dist/languages/vyper.js +0 -2
  360. package/dist/languages/webassembly.cjs +0 -2
  361. package/dist/languages/webassembly.js +0 -2
  362. package/dist/languages/wgsl.cjs +0 -2
  363. package/dist/languages/wgsl.js +0 -2
  364. package/dist/languages/wren.cjs +0 -2
  365. package/dist/languages/wren.js +0 -2
  366. package/dist/languages/xaml.cjs +0 -2
  367. package/dist/languages/xaml.js +0 -2
  368. package/dist/languages/xml.cjs +0 -2
  369. package/dist/languages/xml.js +0 -2
  370. package/dist/languages/xquery.cjs +0 -2
  371. package/dist/languages/xquery.js +0 -2
  372. package/dist/languages/xslt.cjs +0 -2
  373. package/dist/languages/xslt.js +0 -2
  374. package/dist/languages/yaml.cjs +0 -2
  375. package/dist/languages/yaml.js +0 -2
  376. package/dist/languages/zeek.cjs +0 -2
  377. package/dist/languages/zeek.js +0 -2
  378. package/dist/languages/zig.cjs +0 -2
  379. package/dist/languages/zig.js +0 -2
  380. package/dist/languages/ziggy.cjs +0 -2
  381. package/dist/languages/ziggy.js +0 -2
  382. package/dist/languages/zsh.cjs +0 -2
  383. package/dist/languages/zsh.js +0 -2
  384. package/package.json +6 -1
  385. package/dist/api.cjs.map +0 -1
  386. package/dist/api.js.map +0 -1
  387. package/dist/detect.cjs.map +0 -1
  388. package/dist/detect.js.map +0 -1
  389. package/dist/i18n.cjs.map +0 -1
  390. package/dist/i18n.js.map +0 -1
  391. package/dist/index.cjs.map +0 -1
  392. package/dist/index.js.map +0 -1
  393. package/dist/languages/abap.cjs.map +0 -1
  394. package/dist/languages/abap.js.map +0 -1
  395. package/dist/languages/actionscript.cjs.map +0 -1
  396. package/dist/languages/actionscript.js.map +0 -1
  397. package/dist/languages/ada.cjs.map +0 -1
  398. package/dist/languages/ada.js.map +0 -1
  399. package/dist/languages/agda.cjs.map +0 -1
  400. package/dist/languages/agda.js.map +0 -1
  401. package/dist/languages/antlr.cjs.map +0 -1
  402. package/dist/languages/antlr.js.map +0 -1
  403. package/dist/languages/apex.cjs.map +0 -1
  404. package/dist/languages/apex.js.map +0 -1
  405. package/dist/languages/apl.cjs.map +0 -1
  406. package/dist/languages/apl.js.map +0 -1
  407. package/dist/languages/applescript.cjs.map +0 -1
  408. package/dist/languages/applescript.js.map +0 -1
  409. package/dist/languages/arduino.cjs.map +0 -1
  410. package/dist/languages/arduino.js.map +0 -1
  411. package/dist/languages/asciidoc.cjs.map +0 -1
  412. package/dist/languages/asciidoc.js.map +0 -1
  413. package/dist/languages/asp.cjs.map +0 -1
  414. package/dist/languages/asp.js.map +0 -1
  415. package/dist/languages/assembly.cjs.map +0 -1
  416. package/dist/languages/assembly.js.map +0 -1
  417. package/dist/languages/astro.cjs.map +0 -1
  418. package/dist/languages/astro.js.map +0 -1
  419. package/dist/languages/autohotkey.cjs.map +0 -1
  420. package/dist/languages/autohotkey.js.map +0 -1
  421. package/dist/languages/awk.cjs.map +0 -1
  422. package/dist/languages/awk.js.map +0 -1
  423. package/dist/languages/ballerina.cjs.map +0 -1
  424. package/dist/languages/ballerina.js.map +0 -1
  425. package/dist/languages/bash.cjs.map +0 -1
  426. package/dist/languages/bash.js.map +0 -1
  427. package/dist/languages/batch.cjs.map +0 -1
  428. package/dist/languages/batch.js.map +0 -1
  429. package/dist/languages/bazel.cjs.map +0 -1
  430. package/dist/languages/bazel.js.map +0 -1
  431. package/dist/languages/bicep.cjs.map +0 -1
  432. package/dist/languages/bicep.js.map +0 -1
  433. package/dist/languages/blade.cjs.map +0 -1
  434. package/dist/languages/blade.js.map +0 -1
  435. package/dist/languages/c.cjs.map +0 -1
  436. package/dist/languages/c.js.map +0 -1
  437. package/dist/languages/carbon.cjs.map +0 -1
  438. package/dist/languages/carbon.js.map +0 -1
  439. package/dist/languages/chapel.cjs.map +0 -1
  440. package/dist/languages/chapel.js.map +0 -1
  441. package/dist/languages/circom.cjs.map +0 -1
  442. package/dist/languages/circom.js.map +0 -1
  443. package/dist/languages/clojure.cjs.map +0 -1
  444. package/dist/languages/clojure.js.map +0 -1
  445. package/dist/languages/cmake.cjs.map +0 -1
  446. package/dist/languages/cmake.js.map +0 -1
  447. package/dist/languages/cobol.cjs.map +0 -1
  448. package/dist/languages/cobol.js.map +0 -1
  449. package/dist/languages/coffeescript.cjs.map +0 -1
  450. package/dist/languages/coffeescript.js.map +0 -1
  451. package/dist/languages/coldfusion.cjs.map +0 -1
  452. package/dist/languages/coldfusion.js.map +0 -1
  453. package/dist/languages/coq.cjs.map +0 -1
  454. package/dist/languages/coq.js.map +0 -1
  455. package/dist/languages/cpp.cjs.map +0 -1
  456. package/dist/languages/cpp.js.map +0 -1
  457. package/dist/languages/crystal.cjs.map +0 -1
  458. package/dist/languages/crystal.js.map +0 -1
  459. package/dist/languages/csharp.cjs.map +0 -1
  460. package/dist/languages/csharp.js.map +0 -1
  461. package/dist/languages/css.cjs.map +0 -1
  462. package/dist/languages/css.js.map +0 -1
  463. package/dist/languages/cuda.cjs.map +0 -1
  464. package/dist/languages/cuda.js.map +0 -1
  465. package/dist/languages/cue.cjs.map +0 -1
  466. package/dist/languages/cue.js.map +0 -1
  467. package/dist/languages/cypher.cjs.map +0 -1
  468. package/dist/languages/cypher.js.map +0 -1
  469. package/dist/languages/cython.cjs.map +0 -1
  470. package/dist/languages/cython.js.map +0 -1
  471. package/dist/languages/d.cjs.map +0 -1
  472. package/dist/languages/d.js.map +0 -1
  473. package/dist/languages/dart.cjs.map +0 -1
  474. package/dist/languages/dart.js.map +0 -1
  475. package/dist/languages/dhall.cjs.map +0 -1
  476. package/dist/languages/dhall.js.map +0 -1
  477. package/dist/languages/dita.cjs.map +0 -1
  478. package/dist/languages/dita.js.map +0 -1
  479. package/dist/languages/dockerfile.cjs.map +0 -1
  480. package/dist/languages/dockerfile.js.map +0 -1
  481. package/dist/languages/earthly.cjs.map +0 -1
  482. package/dist/languages/earthly.js.map +0 -1
  483. package/dist/languages/eiffel.cjs.map +0 -1
  484. package/dist/languages/eiffel.js.map +0 -1
  485. package/dist/languages/elixir.cjs.map +0 -1
  486. package/dist/languages/elixir.js.map +0 -1
  487. package/dist/languages/elm.cjs.map +0 -1
  488. package/dist/languages/elm.js.map +0 -1
  489. package/dist/languages/erb.cjs.map +0 -1
  490. package/dist/languages/erb.js.map +0 -1
  491. package/dist/languages/erlang.cjs.map +0 -1
  492. package/dist/languages/erlang.js.map +0 -1
  493. package/dist/languages/fennel.cjs.map +0 -1
  494. package/dist/languages/fennel.js.map +0 -1
  495. package/dist/languages/fish.cjs.map +0 -1
  496. package/dist/languages/fish.js.map +0 -1
  497. package/dist/languages/forth.cjs.map +0 -1
  498. package/dist/languages/forth.js.map +0 -1
  499. package/dist/languages/fortran.cjs.map +0 -1
  500. package/dist/languages/fortran.js.map +0 -1
  501. package/dist/languages/fsharp.cjs.map +0 -1
  502. package/dist/languages/fsharp.js.map +0 -1
  503. package/dist/languages/gdscript.cjs.map +0 -1
  504. package/dist/languages/gdscript.js.map +0 -1
  505. package/dist/languages/git.cjs.map +0 -1
  506. package/dist/languages/git.js.map +0 -1
  507. package/dist/languages/gleam.cjs.map +0 -1
  508. package/dist/languages/gleam.js.map +0 -1
  509. package/dist/languages/glsl.cjs.map +0 -1
  510. package/dist/languages/glsl.js.map +0 -1
  511. package/dist/languages/go.cjs.map +0 -1
  512. package/dist/languages/go.js.map +0 -1
  513. package/dist/languages/gradle.cjs.map +0 -1
  514. package/dist/languages/gradle.js.map +0 -1
  515. package/dist/languages/graphql.cjs.map +0 -1
  516. package/dist/languages/graphql.js.map +0 -1
  517. package/dist/languages/groovy.cjs.map +0 -1
  518. package/dist/languages/groovy.js.map +0 -1
  519. package/dist/languages/hack.cjs.map +0 -1
  520. package/dist/languages/hack.js.map +0 -1
  521. package/dist/languages/haml.cjs.map +0 -1
  522. package/dist/languages/haml.js.map +0 -1
  523. package/dist/languages/handlebars.cjs.map +0 -1
  524. package/dist/languages/handlebars.js.map +0 -1
  525. package/dist/languages/haskell.cjs.map +0 -1
  526. package/dist/languages/haskell.js.map +0 -1
  527. package/dist/languages/haxe.cjs.map +0 -1
  528. package/dist/languages/haxe.js.map +0 -1
  529. package/dist/languages/hcl.cjs.map +0 -1
  530. package/dist/languages/hcl.js.map +0 -1
  531. package/dist/languages/hlsl.cjs.map +0 -1
  532. package/dist/languages/hlsl.js.map +0 -1
  533. package/dist/languages/hocon.cjs.map +0 -1
  534. package/dist/languages/hocon.js.map +0 -1
  535. package/dist/languages/html.cjs.map +0 -1
  536. package/dist/languages/html.js.map +0 -1
  537. package/dist/languages/idris.cjs.map +0 -1
  538. package/dist/languages/idris.js.map +0 -1
  539. package/dist/languages/ini.cjs.map +0 -1
  540. package/dist/languages/ini.js.map +0 -1
  541. package/dist/languages/janet.cjs.map +0 -1
  542. package/dist/languages/janet.js.map +0 -1
  543. package/dist/languages/java.cjs.map +0 -1
  544. package/dist/languages/java.js.map +0 -1
  545. package/dist/languages/javascript.cjs.map +0 -1
  546. package/dist/languages/javascript.js.map +0 -1
  547. package/dist/languages/jinja.cjs.map +0 -1
  548. package/dist/languages/jinja.js.map +0 -1
  549. package/dist/languages/json.cjs.map +0 -1
  550. package/dist/languages/json.js.map +0 -1
  551. package/dist/languages/json5.cjs.map +0 -1
  552. package/dist/languages/json5.js.map +0 -1
  553. package/dist/languages/jsonnet.cjs.map +0 -1
  554. package/dist/languages/jsonnet.js.map +0 -1
  555. package/dist/languages/julia.cjs.map +0 -1
  556. package/dist/languages/julia.js.map +0 -1
  557. package/dist/languages/jupyter-notebook.cjs.map +0 -1
  558. package/dist/languages/jupyter-notebook.js.map +0 -1
  559. package/dist/languages/kotlin.cjs.map +0 -1
  560. package/dist/languages/kotlin.js.map +0 -1
  561. package/dist/languages/lean.cjs.map +0 -1
  562. package/dist/languages/lean.js.map +0 -1
  563. package/dist/languages/less.cjs.map +0 -1
  564. package/dist/languages/less.js.map +0 -1
  565. package/dist/languages/liquid.cjs.map +0 -1
  566. package/dist/languages/liquid.js.map +0 -1
  567. package/dist/languages/lisp.cjs.map +0 -1
  568. package/dist/languages/lisp.js.map +0 -1
  569. package/dist/languages/llvm-ir.cjs.map +0 -1
  570. package/dist/languages/llvm-ir.js.map +0 -1
  571. package/dist/languages/lua.cjs.map +0 -1
  572. package/dist/languages/lua.js.map +0 -1
  573. package/dist/languages/luau.cjs.map +0 -1
  574. package/dist/languages/luau.js.map +0 -1
  575. package/dist/languages/makefile.cjs.map +0 -1
  576. package/dist/languages/makefile.js.map +0 -1
  577. package/dist/languages/mako.cjs.map +0 -1
  578. package/dist/languages/mako.js.map +0 -1
  579. package/dist/languages/markdown.cjs.map +0 -1
  580. package/dist/languages/markdown.js.map +0 -1
  581. package/dist/languages/mathematica.cjs.map +0 -1
  582. package/dist/languages/mathematica.js.map +0 -1
  583. package/dist/languages/matlab.cjs.map +0 -1
  584. package/dist/languages/matlab.js.map +0 -1
  585. package/dist/languages/mdx.cjs.map +0 -1
  586. package/dist/languages/mdx.js.map +0 -1
  587. package/dist/languages/mermaid.cjs.map +0 -1
  588. package/dist/languages/mermaid.js.map +0 -1
  589. package/dist/languages/meson.cjs.map +0 -1
  590. package/dist/languages/meson.js.map +0 -1
  591. package/dist/languages/metal.cjs.map +0 -1
  592. package/dist/languages/metal.js.map +0 -1
  593. package/dist/languages/mojo.cjs.map +0 -1
  594. package/dist/languages/mojo.js.map +0 -1
  595. package/dist/languages/moonbit.cjs.map +0 -1
  596. package/dist/languages/moonbit.js.map +0 -1
  597. package/dist/languages/mustache.cjs.map +0 -1
  598. package/dist/languages/mustache.js.map +0 -1
  599. package/dist/languages/nginx.cjs.map +0 -1
  600. package/dist/languages/nginx.js.map +0 -1
  601. package/dist/languages/nim.cjs.map +0 -1
  602. package/dist/languages/nim.js.map +0 -1
  603. package/dist/languages/nix.cjs.map +0 -1
  604. package/dist/languages/nix.js.map +0 -1
  605. package/dist/languages/nunjucks.cjs.map +0 -1
  606. package/dist/languages/nunjucks.js.map +0 -1
  607. package/dist/languages/nushell.cjs.map +0 -1
  608. package/dist/languages/nushell.js.map +0 -1
  609. package/dist/languages/objective-c.cjs.map +0 -1
  610. package/dist/languages/objective-c.js.map +0 -1
  611. package/dist/languages/ocaml.cjs.map +0 -1
  612. package/dist/languages/ocaml.js.map +0 -1
  613. package/dist/languages/odin.cjs.map +0 -1
  614. package/dist/languages/odin.js.map +0 -1
  615. package/dist/languages/opencl.cjs.map +0 -1
  616. package/dist/languages/opencl.js.map +0 -1
  617. package/dist/languages/pascal.cjs.map +0 -1
  618. package/dist/languages/pascal.js.map +0 -1
  619. package/dist/languages/perl.cjs.map +0 -1
  620. package/dist/languages/perl.js.map +0 -1
  621. package/dist/languages/php.cjs.map +0 -1
  622. package/dist/languages/php.js.map +0 -1
  623. package/dist/languages/pine-script.cjs.map +0 -1
  624. package/dist/languages/pine-script.js.map +0 -1
  625. package/dist/languages/plantuml.cjs.map +0 -1
  626. package/dist/languages/plantuml.js.map +0 -1
  627. package/dist/languages/plsql.cjs.map +0 -1
  628. package/dist/languages/plsql.js.map +0 -1
  629. package/dist/languages/pony.cjs.map +0 -1
  630. package/dist/languages/pony.js.map +0 -1
  631. package/dist/languages/powershell.cjs.map +0 -1
  632. package/dist/languages/powershell.js.map +0 -1
  633. package/dist/languages/prolog.cjs.map +0 -1
  634. package/dist/languages/prolog.js.map +0 -1
  635. package/dist/languages/promql.cjs.map +0 -1
  636. package/dist/languages/promql.js.map +0 -1
  637. package/dist/languages/protobuf.cjs.map +0 -1
  638. package/dist/languages/protobuf.js.map +0 -1
  639. package/dist/languages/pug.cjs.map +0 -1
  640. package/dist/languages/pug.js.map +0 -1
  641. package/dist/languages/purescript.cjs.map +0 -1
  642. package/dist/languages/purescript.js.map +0 -1
  643. package/dist/languages/python.cjs.map +0 -1
  644. package/dist/languages/python.js.map +0 -1
  645. package/dist/languages/qml.cjs.map +0 -1
  646. package/dist/languages/qml.js.map +0 -1
  647. package/dist/languages/qsharp.cjs.map +0 -1
  648. package/dist/languages/qsharp.js.map +0 -1
  649. package/dist/languages/r.cjs.map +0 -1
  650. package/dist/languages/r.js.map +0 -1
  651. package/dist/languages/racket.cjs.map +0 -1
  652. package/dist/languages/racket.js.map +0 -1
  653. package/dist/languages/raku.cjs.map +0 -1
  654. package/dist/languages/raku.js.map +0 -1
  655. package/dist/languages/razor.cjs.map +0 -1
  656. package/dist/languages/razor.js.map +0 -1
  657. package/dist/languages/reasonml.cjs.map +0 -1
  658. package/dist/languages/reasonml.js.map +0 -1
  659. package/dist/languages/rego.cjs.map +0 -1
  660. package/dist/languages/rego.js.map +0 -1
  661. package/dist/languages/rescript.cjs.map +0 -1
  662. package/dist/languages/rescript.js.map +0 -1
  663. package/dist/languages/restructuredtext.cjs.map +0 -1
  664. package/dist/languages/restructuredtext.js.map +0 -1
  665. package/dist/languages/ruby.cjs.map +0 -1
  666. package/dist/languages/ruby.js.map +0 -1
  667. package/dist/languages/rust.cjs.map +0 -1
  668. package/dist/languages/rust.js.map +0 -1
  669. package/dist/languages/sas.cjs.map +0 -1
  670. package/dist/languages/sas.js.map +0 -1
  671. package/dist/languages/scala.cjs.map +0 -1
  672. package/dist/languages/scala.js.map +0 -1
  673. package/dist/languages/scheme.cjs.map +0 -1
  674. package/dist/languages/scheme.js.map +0 -1
  675. package/dist/languages/scss.cjs.map +0 -1
  676. package/dist/languages/scss.js.map +0 -1
  677. package/dist/languages/smalltalk.cjs.map +0 -1
  678. package/dist/languages/smalltalk.js.map +0 -1
  679. package/dist/languages/smarty.cjs.map +0 -1
  680. package/dist/languages/smarty.js.map +0 -1
  681. package/dist/languages/solidity.cjs.map +0 -1
  682. package/dist/languages/solidity.js.map +0 -1
  683. package/dist/languages/sparql.cjs.map +0 -1
  684. package/dist/languages/sparql.js.map +0 -1
  685. package/dist/languages/sql.cjs.map +0 -1
  686. package/dist/languages/sql.js.map +0 -1
  687. package/dist/languages/standard-ml.cjs.map +0 -1
  688. package/dist/languages/standard-ml.js.map +0 -1
  689. package/dist/languages/starlark.cjs.map +0 -1
  690. package/dist/languages/starlark.js.map +0 -1
  691. package/dist/languages/stata.cjs.map +0 -1
  692. package/dist/languages/stata.js.map +0 -1
  693. package/dist/languages/stylus.cjs.map +0 -1
  694. package/dist/languages/stylus.js.map +0 -1
  695. package/dist/languages/svelte.cjs.map +0 -1
  696. package/dist/languages/svelte.js.map +0 -1
  697. package/dist/languages/svg.cjs.map +0 -1
  698. package/dist/languages/svg.js.map +0 -1
  699. package/dist/languages/svn.cjs.map +0 -1
  700. package/dist/languages/svn.js.map +0 -1
  701. package/dist/languages/swift.cjs.map +0 -1
  702. package/dist/languages/swift.js.map +0 -1
  703. package/dist/languages/tcl.cjs.map +0 -1
  704. package/dist/languages/tcl.js.map +0 -1
  705. package/dist/languages/tex.cjs.map +0 -1
  706. package/dist/languages/tex.js.map +0 -1
  707. package/dist/languages/thrift.cjs.map +0 -1
  708. package/dist/languages/thrift.js.map +0 -1
  709. package/dist/languages/tla-plus.cjs.map +0 -1
  710. package/dist/languages/tla-plus.js.map +0 -1
  711. package/dist/languages/toml.cjs.map +0 -1
  712. package/dist/languages/toml.js.map +0 -1
  713. package/dist/languages/twig.cjs.map +0 -1
  714. package/dist/languages/twig.js.map +0 -1
  715. package/dist/languages/typescript.cjs.map +0 -1
  716. package/dist/languages/typescript.js.map +0 -1
  717. package/dist/languages/typst.cjs.map +0 -1
  718. package/dist/languages/typst.js.map +0 -1
  719. package/dist/languages/v.cjs.map +0 -1
  720. package/dist/languages/v.js.map +0 -1
  721. package/dist/languages/vala.cjs.map +0 -1
  722. package/dist/languages/vala.js.map +0 -1
  723. package/dist/languages/verilog.cjs.map +0 -1
  724. package/dist/languages/verilog.js.map +0 -1
  725. package/dist/languages/vhdl.cjs.map +0 -1
  726. package/dist/languages/vhdl.js.map +0 -1
  727. package/dist/languages/visual-basic.cjs.map +0 -1
  728. package/dist/languages/visual-basic.js.map +0 -1
  729. package/dist/languages/vue.cjs.map +0 -1
  730. package/dist/languages/vue.js.map +0 -1
  731. package/dist/languages/vyper.cjs.map +0 -1
  732. package/dist/languages/vyper.js.map +0 -1
  733. package/dist/languages/webassembly.cjs.map +0 -1
  734. package/dist/languages/webassembly.js.map +0 -1
  735. package/dist/languages/wgsl.cjs.map +0 -1
  736. package/dist/languages/wgsl.js.map +0 -1
  737. package/dist/languages/wren.cjs.map +0 -1
  738. package/dist/languages/wren.js.map +0 -1
  739. package/dist/languages/xaml.cjs.map +0 -1
  740. package/dist/languages/xaml.js.map +0 -1
  741. package/dist/languages/xml.cjs.map +0 -1
  742. package/dist/languages/xml.js.map +0 -1
  743. package/dist/languages/xquery.cjs.map +0 -1
  744. package/dist/languages/xquery.js.map +0 -1
  745. package/dist/languages/xslt.cjs.map +0 -1
  746. package/dist/languages/xslt.js.map +0 -1
  747. package/dist/languages/yaml.cjs.map +0 -1
  748. package/dist/languages/yaml.js.map +0 -1
  749. package/dist/languages/zeek.cjs.map +0 -1
  750. package/dist/languages/zeek.js.map +0 -1
  751. package/dist/languages/zig.cjs.map +0 -1
  752. package/dist/languages/zig.js.map +0 -1
  753. package/dist/languages/ziggy.cjs.map +0 -1
  754. package/dist/languages/ziggy.js.map +0 -1
  755. package/dist/languages/zsh.cjs.map +0 -1
  756. package/dist/languages/zsh.js.map +0 -1
@@ -0,0 +1,243 @@
1
+ // src/language-registry.ts
2
+ var languageIndex = [
3
+ { slug: "abap", extensions: [".abap"] },
4
+ { slug: "actionscript", extensions: [".as"] },
5
+ { slug: "ada", extensions: [".adb", ".ads", ".ada"] },
6
+ { slug: "agda", extensions: [".agda", ".lagda", ".lagda.md", ".lagda.rst", ".lagda.tex"] },
7
+ { slug: "antlr", extensions: [".g4"] },
8
+ { slug: "apex", extensions: [".cls", ".trigger"] },
9
+ { slug: "apl", extensions: [".apl", ".dyalog"] },
10
+ { slug: "applescript", extensions: [".applescript", ".scpt", ".scptd"] },
11
+ { slug: "arduino", extensions: [".ino", ".pde"] },
12
+ { slug: "asciidoc", extensions: [".adoc", ".asciidoc", ".asc"] },
13
+ { slug: "asp", extensions: [".asp", ".aspx", ".ascx", ".ashx", ".asmx", ".master"] },
14
+ { slug: "astro", extensions: [".astro"] },
15
+ { slug: "assembly", extensions: [".asm", ".s", ".S", ".inc"] },
16
+ { slug: "awk", extensions: [".awk"] },
17
+ { slug: "autohotkey", extensions: [".ahk", ".ah2"] },
18
+ { slug: "ballerina", extensions: [".bal"] },
19
+ {
20
+ slug: "bash",
21
+ extensions: [".sh", ".bash", ".bashrc", ".bash_profile", ".bash_login", ".profile"]
22
+ },
23
+ { slug: "batch", extensions: [".bat", ".cmd"] },
24
+ {
25
+ slug: "bazel",
26
+ extensions: ["BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"]
27
+ },
28
+ { slug: "bicep", extensions: [".bicep", ".bicepparam"] },
29
+ { slug: "blade", extensions: [".blade.php"] },
30
+ { slug: "c", extensions: [".c", ".h"] },
31
+ { slug: "carbon", extensions: [".carbon"] },
32
+ { slug: "chapel", extensions: [".chpl"] },
33
+ { slug: "circom", extensions: [".circom"] },
34
+ { slug: "cmake", extensions: ["CMakeLists.txt", ".cmake"] },
35
+ { slug: "clojure", extensions: [".clj", ".cljs", ".cljc", ".edn", ".bb"] },
36
+ { slug: "coffeescript", extensions: [".coffee", ".litcoffee", ".cson"] },
37
+ { slug: "coldfusion", extensions: [".cfm", ".cfml", ".cfc"] },
38
+ { slug: "cobol", extensions: [".cob", ".cbl", ".cobol", ".cpy"] },
39
+ { slug: "coq", extensions: [".v"] },
40
+ { slug: "cpp", extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"] },
41
+ { slug: "cypher", extensions: [".cypher", ".cyp"] },
42
+ { slug: "csharp", extensions: [".cs", ".csx"] },
43
+ { slug: "crystal", extensions: [".cr"] },
44
+ { slug: "css", extensions: [".css"] },
45
+ { slug: "cue", extensions: [".cue"] },
46
+ { slug: "cuda", extensions: [".cu", ".cuh"] },
47
+ { slug: "cython", extensions: [".pyx", ".pxd", ".pxi"] },
48
+ { slug: "d", extensions: [".d", ".di"] },
49
+ { slug: "dart", extensions: [".dart"] },
50
+ { slug: "dhall", extensions: [".dhall"] },
51
+ { slug: "dita", extensions: [".dita", ".ditamap", ".ditaval"] },
52
+ { slug: "dockerfile", extensions: ["Dockerfile", ".dockerfile"] },
53
+ { slug: "eiffel", extensions: [".e"] },
54
+ { slug: "earthly", extensions: ["Earthfile"] },
55
+ { slug: "elixir", extensions: [".ex", ".exs", ".eex", ".leex", ".heex"] },
56
+ { slug: "elm", extensions: [".elm"] },
57
+ { slug: "erb", extensions: [".erb", ".rhtml", ".html.erb"] },
58
+ {
59
+ slug: "erlang",
60
+ extensions: [".erl", ".hrl", ".app.src", ".escript", ".xrl", ".yrl", "rebar.config"]
61
+ },
62
+ { slug: "fish", extensions: [".fish"] },
63
+ { slug: "fennel", extensions: [".fnl"] },
64
+ {
65
+ slug: "fortran",
66
+ extensions: [".f", ".for", ".ftn", ".f90", ".f95", ".f03", ".f08", ".f18", ".f23"]
67
+ },
68
+ { slug: "forth", extensions: [".fs", ".fth", ".forth", ".4th"] },
69
+ { slug: "fsharp", extensions: [".fs", ".fsi", ".fsx", ".fsscript"] },
70
+ { slug: "gdscript", extensions: [".gd"] },
71
+ { slug: "git", extensions: [".git", ".gitignore", ".gitattributes", ".gitmodules", ".gitkeep"] },
72
+ { slug: "gleam", extensions: [".gleam"] },
73
+ { slug: "go", extensions: [".go"] },
74
+ { slug: "gradle", extensions: [".gradle", ".gradle.kts"] },
75
+ {
76
+ slug: "glsl",
77
+ extensions: [".glsl", ".vert", ".frag", ".geom", ".tesc", ".tese", ".comp", ".vs", ".fs"]
78
+ },
79
+ { slug: "graphql", extensions: [".graphql", ".gql", ".graphqls"] },
80
+ { slug: "groovy", extensions: [".groovy", ".gvy", ".gy", ".gsh"] },
81
+ { slug: "handlebars", extensions: [".hbs", ".handlebars"] },
82
+ { slug: "hack", extensions: [".hack", ".hh", ".hhi"] },
83
+ { slug: "haml", extensions: [".haml"] },
84
+ { slug: "hocon", extensions: [".hocon"] },
85
+ { slug: "haskell", extensions: [".hs", ".lhs", ".hsc", ".hs-boot", ".hsig", ".cabal"] },
86
+ { slug: "haxe", extensions: [".hx", ".hxml"] },
87
+ { slug: "hcl", extensions: [".hcl", ".tf", ".tfvars", ".pkr.hcl", ".nomad"] },
88
+ { slug: "hlsl", extensions: [".hlsl", ".fx", ".fxh", ".hlsli"] },
89
+ { slug: "html", extensions: [".html", ".htm"] },
90
+ { slug: "idris", extensions: [".idr", ".lidr", ".ipkg"] },
91
+ { slug: "ini", extensions: [".ini"] },
92
+ { slug: "java", extensions: [".java"] },
93
+ { slug: "javascript", extensions: [".js", ".mjs", ".cjs", ".jsx"] },
94
+ { slug: "janet", extensions: [".janet", ".jdn"] },
95
+ { slug: "jinja", extensions: [".jinja", ".jinja2", ".j2"] },
96
+ { slug: "json", extensions: [".json"] },
97
+ { slug: "json5", extensions: [".json5"] },
98
+ { slug: "jsonnet", extensions: [".jsonnet", ".libsonnet"] },
99
+ { slug: "jupyter-notebook", extensions: [".ipynb"] },
100
+ { slug: "julia", extensions: [".jl"] },
101
+ { slug: "kotlin", extensions: [".kt", ".kts"] },
102
+ { slug: "lean", extensions: [".lean"] },
103
+ { slug: "less", extensions: [".less"] },
104
+ { slug: "liquid", extensions: [".liquid"] },
105
+ { slug: "lisp", extensions: [".lisp", ".lsp", ".cl", ".asd"] },
106
+ { slug: "llvm-ir", extensions: [".ll", ".bc"] },
107
+ { slug: "lua", extensions: [".lua", ".rockspec"] },
108
+ { slug: "luau", extensions: [".luau"] },
109
+ { slug: "mako", extensions: [".mako", ".mao"] },
110
+ { slug: "makefile", extensions: ["Makefile", "makefile", "GNUmakefile", ".mk", ".mak"] },
111
+ { slug: "mathematica", extensions: [".wl", ".wls", ".nb"] },
112
+ { slug: "matlab", extensions: [".m", ".mlx"] },
113
+ { slug: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkd"] },
114
+ { slug: "mdx", extensions: [".mdx"] },
115
+ { slug: "mermaid", extensions: [".mmd", ".mermaid"] },
116
+ { slug: "meson", extensions: ["meson.build", "meson_options.txt", "meson.options", ".wrap"] },
117
+ { slug: "metal", extensions: [".metal"] },
118
+ { slug: "mustache", extensions: [".mustache", ".mst"] },
119
+ { slug: "mojo", extensions: [".mojo"] },
120
+ { slug: "moonbit", extensions: [".mbt"] },
121
+ { slug: "svn", extensions: [".svn", "svnserve.conf"] },
122
+ { slug: "nginx", extensions: ["nginx.conf", ".nginx", ".conf"] },
123
+ { slug: "nunjucks", extensions: [".njk", ".nunjucks"] },
124
+ { slug: "nushell", extensions: [".nu"] },
125
+ { slug: "nim", extensions: [".nim", ".nims", ".nimble"] },
126
+ { slug: "nix", extensions: [".nix"] },
127
+ { slug: "ocaml", extensions: [".ml", ".mli", ".mll", ".mly", ".mlt", ".eliom", ".eliomi"] },
128
+ { slug: "objective-c", extensions: [".m", ".mm"] },
129
+ { slug: "odin", extensions: [".odin"] },
130
+ { slug: "opencl", extensions: [".cl", ".clh"] },
131
+ { slug: "pascal", extensions: [".pas", ".pp", ".inc", ".lpr", ".dpr", ".dfm"] },
132
+ { slug: "perl", extensions: [".pl", ".pm", ".pod", ".t", ".psgi"] },
133
+ { slug: "php", extensions: [".php", ".phtml", ".php3", ".php4", ".php5", ".phps"] },
134
+ { slug: "pine-script", extensions: [".pine"] },
135
+ { slug: "plantuml", extensions: [".puml", ".plantuml", ".iuml"] },
136
+ { slug: "plsql", extensions: [".pls", ".pks", ".pkb", ".plsql"] },
137
+ { slug: "pony", extensions: [".pony"] },
138
+ { slug: "powershell", extensions: [".ps1", ".psm1", ".psd1", ".ps1xml"] },
139
+ { slug: "prolog", extensions: [".pl", ".pro", ".prolog", ".P"] },
140
+ { slug: "promql", extensions: [".promql"] },
141
+ { slug: "protobuf", extensions: [".proto"] },
142
+ { slug: "pug", extensions: [".pug", ".jade"] },
143
+ { slug: "purescript", extensions: [".purs"] },
144
+ { slug: "python", extensions: [".py", ".pyw"] },
145
+ { slug: "qml", extensions: [".qml", ".qmltypes", ".qmlproject"] },
146
+ { slug: "qsharp", extensions: [".qs"] },
147
+ { slug: "r", extensions: [".r", ".R", ".rmd", ".Rmd", ".qmd", ".Rprofile"] },
148
+ { slug: "raku", extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"] },
149
+ { slug: "racket", extensions: [".rkt", ".rktd", ".rktl", ".scrbl"] },
150
+ { slug: "razor", extensions: [".cshtml", ".razor"] },
151
+ { slug: "reasonml", extensions: [".re", ".rei"] },
152
+ { slug: "rego", extensions: [".rego"] },
153
+ { slug: "rescript", extensions: [".res", ".resi"] },
154
+ { slug: "restructuredtext", extensions: [".rst", ".rest"] },
155
+ {
156
+ slug: "ruby",
157
+ extensions: [".rb", ".rbw", ".rake", ".gemspec", "Gemfile", "Rakefile", "config.ru"]
158
+ },
159
+ { slug: "rust", extensions: [".rs"] },
160
+ { slug: "sas", extensions: [".sas"] },
161
+ { slug: "scala", extensions: [".scala", ".sc"] },
162
+ { slug: "scss", extensions: [".scss", ".sass"] },
163
+ { slug: "scheme", extensions: [".scm", ".ss", ".sld", ".sls"] },
164
+ { slug: "smalltalk", extensions: [".st"] },
165
+ { slug: "smarty", extensions: [".tpl", ".smarty"] },
166
+ { slug: "solidity", extensions: [".sol"] },
167
+ { slug: "sparql", extensions: [".sparql", ".rq"] },
168
+ { slug: "sql", extensions: [".sql"] },
169
+ { slug: "standard-ml", extensions: [".sml", ".sig", ".fun"] },
170
+ { slug: "starlark", extensions: [".bzl", ".star", ".sky"] },
171
+ { slug: "stata", extensions: [".do", ".ado", ".mata"] },
172
+ { slug: "stylus", extensions: [".styl"] },
173
+ { slug: "svg", extensions: [".svg", ".svgz"] },
174
+ { slug: "svelte", extensions: [".svelte"] },
175
+ { slug: "swift", extensions: [".swift"] },
176
+ { slug: "tcl", extensions: [".tcl", ".tm", ".test"] },
177
+ { slug: "tex", extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"] },
178
+ { slug: "thrift", extensions: [".thrift"] },
179
+ { slug: "tla-plus", extensions: [".tla"] },
180
+ { slug: "toml", extensions: [".toml"] },
181
+ { slug: "twig", extensions: [".twig"] },
182
+ { slug: "typescript", extensions: [".ts", ".tsx", ".mts", ".cts"] },
183
+ { slug: "typst", extensions: [".typ"] },
184
+ { slug: "v", extensions: [".v", ".vsh"] },
185
+ { slug: "vala", extensions: [".vala", ".vapi"] },
186
+ { slug: "verilog", extensions: [".v", ".vh", ".sv", ".svh"] },
187
+ { slug: "vhdl", extensions: [".vhd", ".vhdl"] },
188
+ { slug: "visual-basic", extensions: [".vb"] },
189
+ { slug: "vue", extensions: [".vue"] },
190
+ { slug: "vyper", extensions: [".vy"] },
191
+ { slug: "webassembly", extensions: [".wasm", ".wat"] },
192
+ { slug: "wgsl", extensions: [".wgsl"] },
193
+ { slug: "wren", extensions: [".wren"] },
194
+ { slug: "xaml", extensions: [".xaml", ".baml"] },
195
+ { slug: "xml", extensions: [".xml", ".xsd", ".xsl", ".xslt"] },
196
+ { slug: "xquery", extensions: [".xq", ".xql", ".xqm", ".xquery", ".xqy"] },
197
+ { slug: "xslt", extensions: [".xsl", ".xslt"] },
198
+ { slug: "yaml", extensions: [".yaml", ".yml"] },
199
+ { slug: "zeek", extensions: [".zeek", ".bro"] },
200
+ { slug: "zig", extensions: [".zig", ".zon"] },
201
+ { slug: "ziggy", extensions: [".ziggy", ".ziggy-schema"] },
202
+ {
203
+ slug: "zsh",
204
+ extensions: [".zsh", ".zshrc", ".zshenv", ".zprofile", ".zlogin", ".zlogout", ".zsh-theme"]
205
+ }
206
+ ];
207
+
208
+ // src/match.ts
209
+ var pathSegmentPattern = /[/\\]/;
210
+ var getBasename = (filename) => filename.trim().split(pathSegmentPattern).at(-1)?.toLowerCase() ?? "";
211
+ var matchesExtension = (basename, extension) => {
212
+ const normalizedExtension = extension.toLowerCase();
213
+ if (normalizedExtension.startsWith(".")) {
214
+ return basename.endsWith(normalizedExtension);
215
+ }
216
+ return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
217
+ };
218
+ var detectMatchingEntries = (entries, filename) => {
219
+ const basename = getBasename(filename);
220
+ if (!basename) {
221
+ return [];
222
+ }
223
+ return entries.filter(
224
+ (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
225
+ );
226
+ };
227
+
228
+ // src/detect-slugs.ts
229
+ var detectLanguageSlugs = (filename) => detectMatchingEntries(languageIndex, filename).map((entry) => entry.slug);
230
+ var detectLanguageSlug = (filename) => detectLanguageSlugs(filename).at(0);
231
+ var detectProjectLanguages = (filenames) => {
232
+ const fileCounts = /* @__PURE__ */ new Map();
233
+ for (const filename of filenames) {
234
+ const slug = detectLanguageSlug(filename);
235
+ if (!slug) {
236
+ continue;
237
+ }
238
+ fileCounts.set(slug, (fileCounts.get(slug) ?? 0) + 1);
239
+ }
240
+ return [...fileCounts.entries()].map(([slug, files]) => ({ slug, files })).sort((first, second) => second.files - first.files || first.slug.localeCompare(second.slug));
241
+ };
242
+
243
+ export { detectLanguageSlug, detectLanguageSlugs, detectProjectLanguages };
package/dist/detect.cjs CHANGED
@@ -9236,5 +9236,3 @@ var detectLanguage = (filename) => detectLanguages(filename).at(0);
9236
9236
 
9237
9237
  exports.detectLanguage = detectLanguage;
9238
9238
  exports.detectLanguages = detectLanguages;
9239
- //# sourceMappingURL=detect.cjs.map
9240
- //# sourceMappingURL=detect.cjs.map
package/dist/detect.js CHANGED
@@ -9233,5 +9233,3 @@ var detectLanguages = (filename) => {
9233
9233
  var detectLanguage = (filename) => detectLanguages(filename).at(0);
9234
9234
 
9235
9235
  export { detectLanguage, detectLanguages };
9236
- //# sourceMappingURL=detect.js.map
9237
- //# sourceMappingURL=detect.js.map
package/dist/i18n.cjs CHANGED
@@ -27,5 +27,3 @@ var resolveLocale = (translations, locale) => {
27
27
  };
28
28
 
29
29
  exports.localizeLanguage = localizeLanguage;
30
- //# sourceMappingURL=i18n.cjs.map
31
- //# sourceMappingURL=i18n.cjs.map
package/dist/i18n.js CHANGED
@@ -25,5 +25,3 @@ var resolveLocale = (translations, locale) => {
25
25
  };
26
26
 
27
27
  export { localizeLanguage };
28
- //# sourceMappingURL=i18n.js.map
29
- //# sourceMappingURL=i18n.js.map
package/dist/index.cjs CHANGED
@@ -11038,58 +11038,6 @@ var languages = [
11038
11038
  exports.zsh
11039
11039
  ];
11040
11040
 
11041
- // src/match.ts
11042
- var pathSegmentPattern = /[/\\]/;
11043
- var getBasename = (filename) => filename.trim().split(pathSegmentPattern).at(-1)?.toLowerCase() ?? "";
11044
- var matchesExtension = (basename, extension) => {
11045
- const normalizedExtension = extension.toLowerCase();
11046
- if (normalizedExtension.startsWith(".")) {
11047
- return basename.endsWith(normalizedExtension);
11048
- }
11049
- return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
11050
- };
11051
- var detectMatchingEntries = (entries, filename) => {
11052
- const basename = getBasename(filename);
11053
- if (!basename) {
11054
- return [];
11055
- }
11056
- return entries.filter(
11057
- (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
11058
- );
11059
- };
11060
-
11061
- // src/detect.ts
11062
- var detectLanguages = (filename) => {
11063
- return detectMatchingEntries(languages, filename);
11064
- };
11065
- var detectLanguage = (filename) => detectLanguages(filename).at(0);
11066
-
11067
- // src/i18n.ts
11068
- var localizeLanguage = (language, locale = "en") => {
11069
- const { i18n, ...metadata } = language;
11070
- const resolvedLocale = resolveLocale(i18n, locale);
11071
- const content = i18n[resolvedLocale] ?? i18n.en;
11072
- return {
11073
- ...metadata,
11074
- ...content,
11075
- locale,
11076
- resolvedLocale,
11077
- availableLocales: Object.keys(i18n)
11078
- };
11079
- };
11080
- var resolveLocale = (translations, locale) => {
11081
- const normalizedLocale = locale.toLowerCase();
11082
- const exactLocale = normalizedLocale;
11083
- if (translations[exactLocale]) {
11084
- return exactLocale;
11085
- }
11086
- const baseLocale = normalizedLocale.split("-")[0];
11087
- if (translations[baseLocale]) {
11088
- return baseLocale;
11089
- }
11090
- return "en";
11091
- };
11092
-
11093
11041
  // src/language-registry.ts
11094
11042
  var languageIndex = [
11095
11043
  { slug: "abap", extensions: [".abap"] },
@@ -11482,6 +11430,67 @@ var languageLoaders = {
11482
11430
  };
11483
11431
  var loadLanguage = (slug) => languageLoaders[slug]?.();
11484
11432
 
11433
+ // src/match.ts
11434
+ var pathSegmentPattern = /[/\\]/;
11435
+ var getBasename = (filename) => filename.trim().split(pathSegmentPattern).at(-1)?.toLowerCase() ?? "";
11436
+ var matchesExtension = (basename, extension) => {
11437
+ const normalizedExtension = extension.toLowerCase();
11438
+ if (normalizedExtension.startsWith(".")) {
11439
+ return basename.endsWith(normalizedExtension);
11440
+ }
11441
+ return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
11442
+ };
11443
+ var detectMatchingEntries = (entries, filename) => {
11444
+ const basename = getBasename(filename);
11445
+ if (!basename) {
11446
+ return [];
11447
+ }
11448
+ return entries.filter(
11449
+ (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
11450
+ );
11451
+ };
11452
+
11453
+ // src/detect-slugs.ts
11454
+ var detectLanguageSlugs = (filename) => detectMatchingEntries(languageIndex, filename).map((entry) => entry.slug);
11455
+ var detectLanguageSlug = (filename) => detectLanguageSlugs(filename).at(0);
11456
+ var detectProjectLanguages = (filenames) => {
11457
+ const fileCounts = /* @__PURE__ */ new Map();
11458
+ for (const filename of filenames) {
11459
+ const slug = detectLanguageSlug(filename);
11460
+ if (!slug) {
11461
+ continue;
11462
+ }
11463
+ fileCounts.set(slug, (fileCounts.get(slug) ?? 0) + 1);
11464
+ }
11465
+ return [...fileCounts.entries()].map(([slug, files]) => ({ slug, files })).sort((first, second) => second.files - first.files || first.slug.localeCompare(second.slug));
11466
+ };
11467
+
11468
+ // src/i18n.ts
11469
+ var localizeLanguage = (language, locale = "en") => {
11470
+ const { i18n, ...metadata } = language;
11471
+ const resolvedLocale = resolveLocale(i18n, locale);
11472
+ const content = i18n[resolvedLocale] ?? i18n.en;
11473
+ return {
11474
+ ...metadata,
11475
+ ...content,
11476
+ locale,
11477
+ resolvedLocale,
11478
+ availableLocales: Object.keys(i18n)
11479
+ };
11480
+ };
11481
+ var resolveLocale = (translations, locale) => {
11482
+ const normalizedLocale = locale.toLowerCase();
11483
+ const exactLocale = normalizedLocale;
11484
+ if (translations[exactLocale]) {
11485
+ return exactLocale;
11486
+ }
11487
+ const baseLocale = normalizedLocale.split("-")[0];
11488
+ if (translations[baseLocale]) {
11489
+ return baseLocale;
11490
+ }
11491
+ return "en";
11492
+ };
11493
+
11485
11494
  // src/api.ts
11486
11495
  var defaultLocale = "en";
11487
11496
  var normalizeLanguageSlug = (slug) => slug.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
@@ -11519,11 +11528,11 @@ var createLanguageCollectionRequest = (getLanguageList, loadLanguageList) => {
11519
11528
  };
11520
11529
  return request;
11521
11530
  };
11522
- var loadDetectedLanguages = (filename) => Promise.all(
11523
- detectMatchingEntries(languageIndex, filename).map((entry) => loadLanguage(entry.slug))
11524
- ).then(
11531
+ var loadDetectedLanguages = (filename) => Promise.all(detectLanguageSlugs(filename).map((slug) => loadLanguage(slug))).then(
11525
11532
  (detectedLanguages) => detectedLanguages.filter((language) => Boolean(language))
11526
11533
  );
11534
+ var getLanguageBySlug = (slug) => languages.find((language) => language.slug === slug);
11535
+ var getDetectedLanguages = (filename) => detectLanguageSlugs(filename).map((slug) => getLanguageBySlug(slug)).filter((language) => Boolean(language));
11527
11536
  var api = {
11528
11537
  /**
11529
11538
  * Selects a language by slug.
@@ -11562,7 +11571,10 @@ var api = {
11562
11571
  */
11563
11572
  detect(filename) {
11564
11573
  return createLanguageRequest(
11565
- () => detectLanguage(filename),
11574
+ () => {
11575
+ const slug = detectLanguageSlug(filename);
11576
+ return slug ? getLanguageBySlug(slug) : void 0;
11577
+ },
11566
11578
  async () => (await loadDetectedLanguages(filename)).at(0)
11567
11579
  );
11568
11580
  },
@@ -11573,12 +11585,18 @@ var api = {
11573
11585
  */
11574
11586
  detectAll(filename) {
11575
11587
  return createLanguageCollectionRequest(
11576
- () => detectLanguages(filename),
11588
+ () => getDetectedLanguages(filename),
11577
11589
  () => loadDetectedLanguages(filename)
11578
11590
  );
11579
11591
  }
11580
11592
  };
11581
11593
 
11594
+ // src/detect.ts
11595
+ var detectLanguages = (filename) => {
11596
+ return detectMatchingEntries(languages, filename);
11597
+ };
11598
+ var detectLanguage = (filename) => detectLanguages(filename).at(0);
11599
+
11582
11600
  // src/index.ts
11583
11601
  init_abap();
11584
11602
  init_actionscript();
@@ -11764,8 +11782,9 @@ init_zsh();
11764
11782
 
11765
11783
  exports.api = api;
11766
11784
  exports.detectLanguage = detectLanguage;
11785
+ exports.detectLanguageSlug = detectLanguageSlug;
11786
+ exports.detectLanguageSlugs = detectLanguageSlugs;
11767
11787
  exports.detectLanguages = detectLanguages;
11788
+ exports.detectProjectLanguages = detectProjectLanguages;
11768
11789
  exports.languages = languages;
11769
11790
  exports.localizeLanguage = localizeLanguage;
11770
- //# sourceMappingURL=index.cjs.map
11771
- //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,6 +1,8 @@
1
- export { LanguageSlug, api } from './api.cjs';
1
+ export { api } from './api.cjs';
2
2
  export { detectLanguage, detectLanguages } from './detect.cjs';
3
+ export { ProjectLanguageDetection, detectLanguageSlug, detectLanguageSlugs, detectProjectLanguages } from './detect-slugs.cjs';
3
4
  export { localizeLanguage } from './i18n.cjs';
5
+ export { L as LanguageSlug } from './language-registry-nZ-y7PIh.cjs';
4
6
  export { L as Language, a as LanguageContent, b as LanguageTooling, c as LanguageTranslations, d as Locale, e as LocalizedLanguage } from './types-DHJuiiUR.cjs';
5
7
  export { abap } from './languages/abap.cjs';
6
8
  export { actionscript } from './languages/actionscript.cjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- export { LanguageSlug, api } from './api.js';
1
+ export { api } from './api.js';
2
2
  export { detectLanguage, detectLanguages } from './detect.js';
3
+ export { ProjectLanguageDetection, detectLanguageSlug, detectLanguageSlugs, detectProjectLanguages } from './detect-slugs.js';
3
4
  export { localizeLanguage } from './i18n.js';
5
+ export { L as LanguageSlug } from './language-registry-nZ-y7PIh.js';
4
6
  export { L as Language, a as LanguageContent, b as LanguageTooling, c as LanguageTranslations, d as Locale, e as LocalizedLanguage } from './types-DHJuiiUR.js';
5
7
  export { abap } from './languages/abap.js';
6
8
  export { actionscript } from './languages/actionscript.js';
package/dist/index.js CHANGED
@@ -11036,58 +11036,6 @@ var languages = [
11036
11036
  zsh
11037
11037
  ];
11038
11038
 
11039
- // src/match.ts
11040
- var pathSegmentPattern = /[/\\]/;
11041
- var getBasename = (filename) => filename.trim().split(pathSegmentPattern).at(-1)?.toLowerCase() ?? "";
11042
- var matchesExtension = (basename, extension) => {
11043
- const normalizedExtension = extension.toLowerCase();
11044
- if (normalizedExtension.startsWith(".")) {
11045
- return basename.endsWith(normalizedExtension);
11046
- }
11047
- return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
11048
- };
11049
- var detectMatchingEntries = (entries, filename) => {
11050
- const basename = getBasename(filename);
11051
- if (!basename) {
11052
- return [];
11053
- }
11054
- return entries.filter(
11055
- (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
11056
- );
11057
- };
11058
-
11059
- // src/detect.ts
11060
- var detectLanguages = (filename) => {
11061
- return detectMatchingEntries(languages, filename);
11062
- };
11063
- var detectLanguage = (filename) => detectLanguages(filename).at(0);
11064
-
11065
- // src/i18n.ts
11066
- var localizeLanguage = (language, locale = "en") => {
11067
- const { i18n, ...metadata } = language;
11068
- const resolvedLocale = resolveLocale(i18n, locale);
11069
- const content = i18n[resolvedLocale] ?? i18n.en;
11070
- return {
11071
- ...metadata,
11072
- ...content,
11073
- locale,
11074
- resolvedLocale,
11075
- availableLocales: Object.keys(i18n)
11076
- };
11077
- };
11078
- var resolveLocale = (translations, locale) => {
11079
- const normalizedLocale = locale.toLowerCase();
11080
- const exactLocale = normalizedLocale;
11081
- if (translations[exactLocale]) {
11082
- return exactLocale;
11083
- }
11084
- const baseLocale = normalizedLocale.split("-")[0];
11085
- if (translations[baseLocale]) {
11086
- return baseLocale;
11087
- }
11088
- return "en";
11089
- };
11090
-
11091
11039
  // src/language-registry.ts
11092
11040
  var languageIndex = [
11093
11041
  { slug: "abap", extensions: [".abap"] },
@@ -11480,6 +11428,67 @@ var languageLoaders = {
11480
11428
  };
11481
11429
  var loadLanguage = (slug) => languageLoaders[slug]?.();
11482
11430
 
11431
+ // src/match.ts
11432
+ var pathSegmentPattern = /[/\\]/;
11433
+ var getBasename = (filename) => filename.trim().split(pathSegmentPattern).at(-1)?.toLowerCase() ?? "";
11434
+ var matchesExtension = (basename, extension) => {
11435
+ const normalizedExtension = extension.toLowerCase();
11436
+ if (normalizedExtension.startsWith(".")) {
11437
+ return basename.endsWith(normalizedExtension);
11438
+ }
11439
+ return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
11440
+ };
11441
+ var detectMatchingEntries = (entries, filename) => {
11442
+ const basename = getBasename(filename);
11443
+ if (!basename) {
11444
+ return [];
11445
+ }
11446
+ return entries.filter(
11447
+ (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
11448
+ );
11449
+ };
11450
+
11451
+ // src/detect-slugs.ts
11452
+ var detectLanguageSlugs = (filename) => detectMatchingEntries(languageIndex, filename).map((entry) => entry.slug);
11453
+ var detectLanguageSlug = (filename) => detectLanguageSlugs(filename).at(0);
11454
+ var detectProjectLanguages = (filenames) => {
11455
+ const fileCounts = /* @__PURE__ */ new Map();
11456
+ for (const filename of filenames) {
11457
+ const slug = detectLanguageSlug(filename);
11458
+ if (!slug) {
11459
+ continue;
11460
+ }
11461
+ fileCounts.set(slug, (fileCounts.get(slug) ?? 0) + 1);
11462
+ }
11463
+ return [...fileCounts.entries()].map(([slug, files]) => ({ slug, files })).sort((first, second) => second.files - first.files || first.slug.localeCompare(second.slug));
11464
+ };
11465
+
11466
+ // src/i18n.ts
11467
+ var localizeLanguage = (language, locale = "en") => {
11468
+ const { i18n, ...metadata } = language;
11469
+ const resolvedLocale = resolveLocale(i18n, locale);
11470
+ const content = i18n[resolvedLocale] ?? i18n.en;
11471
+ return {
11472
+ ...metadata,
11473
+ ...content,
11474
+ locale,
11475
+ resolvedLocale,
11476
+ availableLocales: Object.keys(i18n)
11477
+ };
11478
+ };
11479
+ var resolveLocale = (translations, locale) => {
11480
+ const normalizedLocale = locale.toLowerCase();
11481
+ const exactLocale = normalizedLocale;
11482
+ if (translations[exactLocale]) {
11483
+ return exactLocale;
11484
+ }
11485
+ const baseLocale = normalizedLocale.split("-")[0];
11486
+ if (translations[baseLocale]) {
11487
+ return baseLocale;
11488
+ }
11489
+ return "en";
11490
+ };
11491
+
11483
11492
  // src/api.ts
11484
11493
  var defaultLocale = "en";
11485
11494
  var normalizeLanguageSlug = (slug) => slug.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
@@ -11517,11 +11526,11 @@ var createLanguageCollectionRequest = (getLanguageList, loadLanguageList) => {
11517
11526
  };
11518
11527
  return request;
11519
11528
  };
11520
- var loadDetectedLanguages = (filename) => Promise.all(
11521
- detectMatchingEntries(languageIndex, filename).map((entry) => loadLanguage(entry.slug))
11522
- ).then(
11529
+ var loadDetectedLanguages = (filename) => Promise.all(detectLanguageSlugs(filename).map((slug) => loadLanguage(slug))).then(
11523
11530
  (detectedLanguages) => detectedLanguages.filter((language) => Boolean(language))
11524
11531
  );
11532
+ var getLanguageBySlug = (slug) => languages.find((language) => language.slug === slug);
11533
+ var getDetectedLanguages = (filename) => detectLanguageSlugs(filename).map((slug) => getLanguageBySlug(slug)).filter((language) => Boolean(language));
11525
11534
  var api = {
11526
11535
  /**
11527
11536
  * Selects a language by slug.
@@ -11560,7 +11569,10 @@ var api = {
11560
11569
  */
11561
11570
  detect(filename) {
11562
11571
  return createLanguageRequest(
11563
- () => detectLanguage(filename),
11572
+ () => {
11573
+ const slug = detectLanguageSlug(filename);
11574
+ return slug ? getLanguageBySlug(slug) : void 0;
11575
+ },
11564
11576
  async () => (await loadDetectedLanguages(filename)).at(0)
11565
11577
  );
11566
11578
  },
@@ -11571,12 +11583,18 @@ var api = {
11571
11583
  */
11572
11584
  detectAll(filename) {
11573
11585
  return createLanguageCollectionRequest(
11574
- () => detectLanguages(filename),
11586
+ () => getDetectedLanguages(filename),
11575
11587
  () => loadDetectedLanguages(filename)
11576
11588
  );
11577
11589
  }
11578
11590
  };
11579
11591
 
11592
+ // src/detect.ts
11593
+ var detectLanguages = (filename) => {
11594
+ return detectMatchingEntries(languages, filename);
11595
+ };
11596
+ var detectLanguage = (filename) => detectLanguages(filename).at(0);
11597
+
11580
11598
  // src/index.ts
11581
11599
  init_abap();
11582
11600
  init_actionscript();
@@ -11760,6 +11778,4 @@ init_zig();
11760
11778
  init_ziggy();
11761
11779
  init_zsh();
11762
11780
 
11763
- export { abap, actionscript, ada, agda, antlr, apex, api, apl, applescript, arduino, asp, assembly, astro, autohotkey, awk, ballerina, bash, batch, bazel, bicep, blade, c, carbon, chapel, circom, clojure, cmake, cobol, coffeescript, coldfusion, coq, cpp, crystal, csharp, css, cuda, cue, cypher, cython, d, dart, detectLanguage, detectLanguages, dhall, dita, dockerfile, earthly, eiffel, elixir, elm, erb, erlang, fennel, fish, forth, fortran, fsharp, gdscript, git, gleam, glsl, go, gradle, graphql, groovy, hack, haml, handlebars, haskell, haxe, hcl, hlsl, hocon, html, idris, ini, janet, java, javascript, jinja, json, json5, jsonnet, julia, jupyterNotebook, kotlin, languages, lean, less, liquid, lisp, llvmIr, localizeLanguage, lua, luau, makefile, mako, markdown, mathematica, matlab, mdx, mermaid, meson, metal, mojo, moonbit, mustache, nginx, nim, nix, nunjucks, nushell, objectiveC, ocaml, odin, opencl, pascal, perl, php, pineScript, plantuml, plsql, pony, powershell, prolog, promql, protobuf, pug, purescript, python, qml, qsharp, r, racket, raku, razor, reasonml, rego, rescript, restructuredtext, ruby, rust, sas, scala, scheme, scss, smalltalk, smarty, solidity, sparql, sql, standardMl, starlark, stata, stylus, svelte, svg, svn, swift, tcl, tex, thrift, tlaPlus, toml, twig, typescript, typst, v, vala, verilog, vhdl, visualBasic, vue, vyper, webassembly, wgsl, wren, xaml, xml, xquery, xslt, yaml, zeek, zig, ziggy, zsh };
11764
- //# sourceMappingURL=index.js.map
11765
- //# sourceMappingURL=index.js.map
11781
+ export { abap, actionscript, ada, agda, antlr, apex, api, apl, applescript, arduino, asp, assembly, astro, autohotkey, awk, ballerina, bash, batch, bazel, bicep, blade, c, carbon, chapel, circom, clojure, cmake, cobol, coffeescript, coldfusion, coq, cpp, crystal, csharp, css, cuda, cue, cypher, cython, d, dart, detectLanguage, detectLanguageSlug, detectLanguageSlugs, detectLanguages, detectProjectLanguages, dhall, dita, dockerfile, earthly, eiffel, elixir, elm, erb, erlang, fennel, fish, forth, fortran, fsharp, gdscript, git, gleam, glsl, go, gradle, graphql, groovy, hack, haml, handlebars, haskell, haxe, hcl, hlsl, hocon, html, idris, ini, janet, java, javascript, jinja, json, json5, jsonnet, julia, jupyterNotebook, kotlin, languages, lean, less, liquid, lisp, llvmIr, localizeLanguage, lua, luau, makefile, mako, markdown, mathematica, matlab, mdx, mermaid, meson, metal, mojo, moonbit, mustache, nginx, nim, nix, nunjucks, nushell, objectiveC, ocaml, odin, opencl, pascal, perl, php, pineScript, plantuml, plsql, pony, powershell, prolog, promql, protobuf, pug, purescript, python, qml, qsharp, r, racket, raku, razor, reasonml, rego, rescript, restructuredtext, ruby, rust, sas, scala, scheme, scss, smalltalk, smarty, solidity, sparql, sql, standardMl, starlark, stata, stylus, svelte, svg, svn, swift, tcl, tex, thrift, tlaPlus, toml, twig, typescript, typst, v, vala, verilog, vhdl, visualBasic, vue, vyper, webassembly, wgsl, wren, xaml, xml, xquery, xslt, yaml, zeek, zig, ziggy, zsh };