code-languages 1.2.0 → 1.3.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 (126) hide show
  1. package/README.md +46 -2
  2. package/dist/detect.cjs +745 -0
  3. package/dist/detect.cjs.map +1 -0
  4. package/dist/detect.d.cts +25 -0
  5. package/dist/detect.d.ts +25 -0
  6. package/dist/detect.js +742 -0
  7. package/dist/detect.js.map +1 -0
  8. package/dist/i18n.d.cts +5 -1
  9. package/dist/i18n.d.ts +5 -1
  10. package/dist/index.cjs +291 -24
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +627 -1
  13. package/dist/index.d.ts +627 -1
  14. package/dist/index.js +284 -25
  15. package/dist/index.js.map +1 -1
  16. package/dist/languages/astro.cjs +34 -0
  17. package/dist/languages/astro.cjs.map +1 -0
  18. package/dist/languages/astro.d.cts +29 -0
  19. package/dist/languages/astro.d.ts +29 -0
  20. package/dist/languages/astro.js +32 -0
  21. package/dist/languages/astro.js.map +1 -0
  22. package/dist/languages/bash.cjs +5 -0
  23. package/dist/languages/bash.cjs.map +1 -1
  24. package/dist/languages/bash.d.cts +5 -0
  25. package/dist/languages/bash.d.ts +5 -0
  26. package/dist/languages/bash.js +5 -0
  27. package/dist/languages/bash.js.map +1 -1
  28. package/dist/languages/c.cjs +5 -0
  29. package/dist/languages/c.cjs.map +1 -1
  30. package/dist/languages/c.d.cts +5 -0
  31. package/dist/languages/c.d.ts +5 -0
  32. package/dist/languages/c.js +5 -0
  33. package/dist/languages/c.js.map +1 -1
  34. package/dist/languages/cpp.cjs +6 -1
  35. package/dist/languages/cpp.cjs.map +1 -1
  36. package/dist/languages/cpp.d.cts +5 -0
  37. package/dist/languages/cpp.d.ts +5 -0
  38. package/dist/languages/cpp.js +6 -1
  39. package/dist/languages/cpp.js.map +1 -1
  40. package/dist/languages/dockerfile.cjs +4 -0
  41. package/dist/languages/dockerfile.cjs.map +1 -1
  42. package/dist/languages/dockerfile.d.cts +4 -0
  43. package/dist/languages/dockerfile.d.ts +4 -0
  44. package/dist/languages/dockerfile.js +4 -0
  45. package/dist/languages/dockerfile.js.map +1 -1
  46. package/dist/languages/go.cjs +5 -0
  47. package/dist/languages/go.cjs.map +1 -1
  48. package/dist/languages/go.d.cts +5 -0
  49. package/dist/languages/go.d.ts +5 -0
  50. package/dist/languages/go.js +5 -0
  51. package/dist/languages/go.js.map +1 -1
  52. package/dist/languages/groovy.cjs +5 -0
  53. package/dist/languages/groovy.cjs.map +1 -1
  54. package/dist/languages/groovy.d.cts +5 -0
  55. package/dist/languages/groovy.d.ts +5 -0
  56. package/dist/languages/groovy.js +5 -0
  57. package/dist/languages/groovy.js.map +1 -1
  58. package/dist/languages/java.cjs +5 -0
  59. package/dist/languages/java.cjs.map +1 -1
  60. package/dist/languages/java.d.cts +5 -0
  61. package/dist/languages/java.d.ts +5 -0
  62. package/dist/languages/java.js +5 -0
  63. package/dist/languages/java.js.map +1 -1
  64. package/dist/languages/javascript.cjs +5 -0
  65. package/dist/languages/javascript.cjs.map +1 -1
  66. package/dist/languages/javascript.d.cts +5 -0
  67. package/dist/languages/javascript.d.ts +5 -0
  68. package/dist/languages/javascript.js +5 -0
  69. package/dist/languages/javascript.js.map +1 -1
  70. package/dist/languages/kotlin.cjs +5 -0
  71. package/dist/languages/kotlin.cjs.map +1 -1
  72. package/dist/languages/kotlin.d.cts +5 -0
  73. package/dist/languages/kotlin.d.ts +5 -0
  74. package/dist/languages/kotlin.js +5 -0
  75. package/dist/languages/kotlin.js.map +1 -1
  76. package/dist/languages/php.cjs +34 -0
  77. package/dist/languages/php.cjs.map +1 -0
  78. package/dist/languages/php.d.cts +29 -0
  79. package/dist/languages/php.d.ts +29 -0
  80. package/dist/languages/php.js +32 -0
  81. package/dist/languages/php.js.map +1 -0
  82. package/dist/languages/python.cjs +5 -0
  83. package/dist/languages/python.cjs.map +1 -1
  84. package/dist/languages/python.d.cts +5 -0
  85. package/dist/languages/python.d.ts +5 -0
  86. package/dist/languages/python.js +5 -0
  87. package/dist/languages/python.js.map +1 -1
  88. package/dist/languages/rust.cjs +5 -0
  89. package/dist/languages/rust.cjs.map +1 -1
  90. package/dist/languages/rust.d.cts +5 -0
  91. package/dist/languages/rust.d.ts +5 -0
  92. package/dist/languages/rust.js +5 -0
  93. package/dist/languages/rust.js.map +1 -1
  94. package/dist/languages/scss.cjs +34 -0
  95. package/dist/languages/scss.cjs.map +1 -0
  96. package/dist/languages/scss.d.cts +29 -0
  97. package/dist/languages/scss.d.ts +29 -0
  98. package/dist/languages/scss.js +32 -0
  99. package/dist/languages/scss.js.map +1 -0
  100. package/dist/languages/swift.cjs +5 -0
  101. package/dist/languages/swift.cjs.map +1 -1
  102. package/dist/languages/swift.d.cts +5 -0
  103. package/dist/languages/swift.d.ts +5 -0
  104. package/dist/languages/swift.js +5 -0
  105. package/dist/languages/swift.js.map +1 -1
  106. package/dist/languages/typescript.cjs +5 -0
  107. package/dist/languages/typescript.cjs.map +1 -1
  108. package/dist/languages/typescript.d.cts +5 -0
  109. package/dist/languages/typescript.d.ts +5 -0
  110. package/dist/languages/typescript.js +5 -0
  111. package/dist/languages/typescript.js.map +1 -1
  112. package/dist/languages/vue.cjs +34 -0
  113. package/dist/languages/vue.cjs.map +1 -0
  114. package/dist/languages/vue.d.cts +29 -0
  115. package/dist/languages/vue.d.ts +29 -0
  116. package/dist/languages/vue.js +32 -0
  117. package/dist/languages/vue.js.map +1 -0
  118. package/dist/languages/webassembly.cjs +34 -0
  119. package/dist/languages/webassembly.cjs.map +1 -0
  120. package/dist/languages/webassembly.d.cts +29 -0
  121. package/dist/languages/webassembly.d.ts +29 -0
  122. package/dist/languages/webassembly.js +32 -0
  123. package/dist/languages/webassembly.js.map +1 -0
  124. package/dist/{i18n-BXk47f_R.d.cts → types-CZDaRR4t.d.cts} +11 -3
  125. package/dist/{i18n-BXk47f_R.d.ts → types-CZDaRR4t.d.ts} +11 -3
  126. package/package.json +42 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Structured metadata for programming languages, packaged as a typed, tree-shakeable TypeScript library.
10
10
 
11
- `code-languages` is useful when you need a small source of truth for language names, slugs, file extensions, release metadata, websites, paradigms, and logos in developer tools, docs sites, learning platforms, or editor-like interfaces. It currently includes metadata for 20 languages.
11
+ `code-languages` is useful when you need a small source of truth for language names, slugs, file extensions, release metadata, websites, paradigms, and logos in developer tools, docs sites, learning platforms, or editor-like interfaces. It currently includes metadata for 25 languages.
12
12
 
13
13
  ## Features
14
14
 
@@ -44,6 +44,7 @@ console.log(typescript.paradigms);
44
44
  Import multiple languages:
45
45
 
46
46
  ```ts
47
+ import { astro } from "code-languages/astro";
47
48
  import { bash } from "code-languages/bash";
48
49
  import { c } from "code-languages/c";
49
50
  import { cpp } from "code-languages/cpp";
@@ -55,13 +56,18 @@ import { java } from "code-languages/java";
55
56
  import { html } from "code-languages/html";
56
57
  import { kotlin } from "code-languages/kotlin";
57
58
  import { markdown } from "code-languages/markdown";
59
+ import { php } from "code-languages/php";
58
60
  import { python } from "code-languages/python";
61
+ import { scss } from "code-languages/scss";
59
62
  import { json } from "code-languages/json";
60
63
  import { sql } from "code-languages/sql";
61
64
  import { swift } from "code-languages/swift";
65
+ import { vue } from "code-languages/vue";
66
+ import { webassembly } from "code-languages/webassembly";
62
67
  import { xml } from "code-languages/xml";
63
68
  import { yaml } from "code-languages/yaml";
64
69
 
70
+ console.log(astro.version);
65
71
  console.log(bash.version);
66
72
  console.log(c.extensions);
67
73
  console.log(cpp.i18n.en.name);
@@ -73,10 +79,14 @@ console.log(java.version);
73
79
  console.log(html.extensions);
74
80
  console.log(kotlin.version);
75
81
  console.log(markdown.website);
82
+ console.log(php.version);
76
83
  console.log(python.publishedDate);
84
+ console.log(scss.extensions);
77
85
  console.log(json.i18n.en.description);
78
86
  console.log(sql.i18n.en.name);
79
87
  console.log(swift.version);
88
+ console.log(vue.website);
89
+ console.log(webassembly.extensions);
80
90
  console.log(xml.extensions);
81
91
  console.log(yaml.version);
82
92
  ```
@@ -85,10 +95,13 @@ Import from the package root when bundle size is not a concern:
85
95
 
86
96
  ```ts
87
97
  import {
98
+ astro,
88
99
  bash,
89
100
  c,
90
101
  cpp,
91
102
  css,
103
+ detectLanguage,
104
+ detectLanguages,
92
105
  dockerfile,
93
106
  go,
94
107
  groovy,
@@ -98,14 +111,21 @@ import {
98
111
  kotlin,
99
112
  localizeLanguage,
100
113
  markdown,
114
+ php,
101
115
  rust,
116
+ scss,
102
117
  sql,
103
118
  swift,
104
119
  typescript,
120
+ vue,
121
+ webassembly,
105
122
  xml,
106
123
  yaml,
107
124
  } from "code-languages";
108
125
 
126
+ console.log(localizeLanguage(astro, "es").description);
127
+ console.log(detectLanguage("src/index.ts")?.slug);
128
+ console.log(detectLanguages("include/config.h").map((language) => language.slug));
109
129
  console.log(localizeLanguage(bash, "es").description);
110
130
  console.log(c.version);
111
131
  console.log(cpp.website);
@@ -116,10 +136,14 @@ console.log(localizeLanguage(java).name);
116
136
  console.log(html.website);
117
137
  console.log(localizeLanguage(kotlin, "es-PE").description);
118
138
  console.log(markdown.extensions);
139
+ console.log(localizeLanguage(php, "es").description);
119
140
  console.log(go.logo);
141
+ console.log(localizeLanguage(scss).name);
120
142
  console.log(json.website);
121
143
  console.log(sql.extensions);
122
144
  console.log(swift.i18n.en.description);
145
+ console.log(localizeLanguage(vue, "es").description);
146
+ console.log(localizeLanguage(webassembly).name);
123
147
  console.log(localizeLanguage(xml, "es").name);
124
148
  console.log(yaml.paradigms);
125
149
  ```
@@ -144,6 +168,11 @@ export interface Language {
144
168
  author: string;
145
169
  website: string;
146
170
  paradigms: string[];
171
+ tooling?: {
172
+ runtimes?: string[];
173
+ packageManagers?: string[];
174
+ ecosystems?: string[];
175
+ };
147
176
  version: string;
148
177
  logo: string;
149
178
  i18n: {
@@ -172,13 +201,24 @@ console.log(language.resolvedLocale); // "es"
172
201
  2. Base language from a regional locale, for example `es-PE` -> `es`.
173
202
  3. English fallback, for example `fr-FR` -> `en`.
174
203
 
204
+ Use `detectLanguage` or `detectLanguages` to infer languages from filenames:
205
+
206
+ ```ts
207
+ import { detectLanguage, detectLanguages } from "code-languages/detect";
208
+
209
+ console.log(detectLanguage("src/index.ts")?.slug); // "typescript"
210
+ console.log(detectLanguage("Dockerfile")?.slug); // "dockerfile"
211
+ console.log(detectLanguages("include/config.h").map((language) => language.slug)); // ["c", "cpp"]
212
+ ```
213
+
175
214
  ## Supported Languages
176
215
 
177
216
  | Language | Slug | Extensions | Version | Import |
178
217
  |---|---|---|---|---|
218
+ | Astro | `astro` | `.astro` | `6.3.1` | `code-languages/astro` |
179
219
  | Bash | `bash` | `.sh`, `.bash`, `.bashrc`, `.bash_profile`, `.bash_login`, `.profile` | `5.3` | `code-languages/bash` |
180
220
  | C | `c` | `.c`, `.h` | `C23` | `code-languages/c` |
181
- | C++ | `cpp` | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hh`, `.hxx` | `C++23` | `code-languages/cpp` |
221
+ | C++ | `cpp` | `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp`, `.hh`, `.hxx` | `C++23` | `code-languages/cpp` |
182
222
  | Dockerfile | `dockerfile` | `Dockerfile`, `.dockerfile` | `1.10` | `code-languages/dockerfile` |
183
223
  | Groovy | `groovy` | `.groovy`, `.gvy`, `.gy`, `.gsh` | `5.0.5` | `code-languages/groovy` |
184
224
  | TypeScript | `typescript` | `.ts`, `.tsx`, `.mts`, `.cts` | `6.0` | `code-languages/typescript` |
@@ -188,6 +228,7 @@ console.log(language.resolvedLocale); // "es"
188
228
  | Java | `java` | `.java` | `26` | `code-languages/java` |
189
229
  | Swift | `swift` | `.swift` | `6.2.2` | `code-languages/swift` |
190
230
  | Kotlin | `kotlin` | `.kt`, `.kts` | `2.3.20` | `code-languages/kotlin` |
231
+ | PHP | `php` | `.php`, `.phtml`, `.php3`, `.php4`, `.php5`, `.phps` | `8.5.6` | `code-languages/php` |
191
232
  | HTML | `html` | `.html`, `.htm` | `Living Standard` | `code-languages/html` |
192
233
  | CSS | `css` | `.css` | `Living Standard` | `code-languages/css` |
193
234
  | Markdown | `markdown` | `.md`, `.markdown`, `.mdown`, `.mkd` | `CommonMark 0.31.2` | `code-languages/markdown` |
@@ -195,6 +236,9 @@ console.log(language.resolvedLocale); // "es"
195
236
  | YAML | `yaml` | `.yaml`, `.yml` | `1.2.2` | `code-languages/yaml` |
196
237
  | Python | `python` | `.py`, `.pyw` | `3.14.4` | `code-languages/python` |
197
238
  | Rust | `rust` | `.rs` | `1.95.0` | `code-languages/rust` |
239
+ | Sass | `scss` | `.scss`, `.sass` | `1.99.0` | `code-languages/scss` |
240
+ | Vue | `vue` | `.vue` | `3.5.34` | `code-languages/vue` |
241
+ | WebAssembly | `webassembly` | `.wasm`, `.wat` | `3.0` | `code-languages/webassembly` |
198
242
  | Go | `go` | `.go` | `1.26.3` | `code-languages/go` |
199
243
 
200
244
  ## Development