code-languages 1.42.5 → 1.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -1
- package/dist/{api-DfKZeygA.d.ts → api-CiSr3n5R.d.ts} +44 -2
- package/dist/{api-D10hZgSz.d.cts → api-jHE_4U3C.d.cts} +44 -2
- package/dist/api.cjs +181 -61
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +181 -61
- package/dist/detect.cjs +1 -1
- package/dist/detect.js +1 -1
- package/dist/index.cjs +182 -62
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +182 -62
- package/dist/languages/nix.cjs +1 -1
- package/dist/languages/nix.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -10756,7 +10756,7 @@ var init_nix = __esm({
|
|
|
10756
10756
|
packageManagers: ["nix", "nix flakes"],
|
|
10757
10757
|
ecosystems: ["Linux", "macOS", "NixOS", "DevOps"]
|
|
10758
10758
|
},
|
|
10759
|
-
version: "2.
|
|
10759
|
+
version: "2.35.2",
|
|
10760
10760
|
logo: "https://cdn.simpleicons.org/nixos/5277C3",
|
|
10761
10761
|
color: "#5277C3",
|
|
10762
10762
|
i18n: {
|
|
@@ -18467,6 +18467,50 @@ var init_zsh = __esm({
|
|
|
18467
18467
|
});
|
|
18468
18468
|
|
|
18469
18469
|
// src/domain/category/registry.ts
|
|
18470
|
+
var CATEGORY_REGISTRY = [
|
|
18471
|
+
{
|
|
18472
|
+
slug: "frontend",
|
|
18473
|
+
name: "Frontend",
|
|
18474
|
+
description: "Languages that target the browser only.",
|
|
18475
|
+
aliases: ["frontend", "front-end"]
|
|
18476
|
+
},
|
|
18477
|
+
{
|
|
18478
|
+
slug: "backend",
|
|
18479
|
+
name: "Backend",
|
|
18480
|
+
description: "Languages that run on a server runtime.",
|
|
18481
|
+
aliases: ["backend", "back-end", "server"]
|
|
18482
|
+
},
|
|
18483
|
+
{
|
|
18484
|
+
slug: "fullstack",
|
|
18485
|
+
name: "Fullstack",
|
|
18486
|
+
description: "Languages that target both the browser and a server runtime.",
|
|
18487
|
+
aliases: ["fullstack", "full-stack"]
|
|
18488
|
+
},
|
|
18489
|
+
{
|
|
18490
|
+
slug: "systems",
|
|
18491
|
+
name: "Systems",
|
|
18492
|
+
description: "Low-level, native, and embedded programming languages.",
|
|
18493
|
+
aliases: ["systems", "systems-programming", "low-level"]
|
|
18494
|
+
},
|
|
18495
|
+
{
|
|
18496
|
+
slug: "data-science",
|
|
18497
|
+
name: "Data Science",
|
|
18498
|
+
description: "Languages for data analysis, machine learning, and scientific computing.",
|
|
18499
|
+
aliases: ["data-science", "datascience", "data"]
|
|
18500
|
+
},
|
|
18501
|
+
{
|
|
18502
|
+
slug: "scripting",
|
|
18503
|
+
name: "Scripting",
|
|
18504
|
+
description: "Shell and scripting languages.",
|
|
18505
|
+
aliases: ["scripting", "shell"]
|
|
18506
|
+
},
|
|
18507
|
+
{
|
|
18508
|
+
slug: "other",
|
|
18509
|
+
name: "Other",
|
|
18510
|
+
description: "Languages that do not match any other category.",
|
|
18511
|
+
aliases: ["other"]
|
|
18512
|
+
}
|
|
18513
|
+
];
|
|
18470
18514
|
var BROWSER_TARGETS = ["Browser"];
|
|
18471
18515
|
var SERVER_TARGETS = [
|
|
18472
18516
|
"Node.js",
|
|
@@ -18536,8 +18580,20 @@ function matchesCategory(lang, category) {
|
|
|
18536
18580
|
return !browser && !server && !poolMatches(pool, SYSTEMS_TARGETS) && !poolMatches(pool, DATA_TARGETS) && !poolMatches(pool, SCRIPT_TARGETS);
|
|
18537
18581
|
}
|
|
18538
18582
|
}
|
|
18583
|
+
function findCategory(value) {
|
|
18584
|
+
const key = value.trim().toLowerCase();
|
|
18585
|
+
return CATEGORY_REGISTRY.find((c2) => c2.aliases.includes(key));
|
|
18586
|
+
}
|
|
18587
|
+
function categoryInfoFromDefinition(def) {
|
|
18588
|
+
return {
|
|
18589
|
+
slug: def.slug,
|
|
18590
|
+
name: def.name,
|
|
18591
|
+
description: def.description,
|
|
18592
|
+
aliases: def.aliases
|
|
18593
|
+
};
|
|
18594
|
+
}
|
|
18539
18595
|
function getCategories() {
|
|
18540
|
-
return
|
|
18596
|
+
return CATEGORY_REGISTRY.map((c2) => c2.slug);
|
|
18541
18597
|
}
|
|
18542
18598
|
|
|
18543
18599
|
// src/domain/detection/match.ts
|
|
@@ -20488,6 +20544,14 @@ function packageManagerInfoFromDefinition(def) {
|
|
|
20488
20544
|
aliases: def.aliases
|
|
20489
20545
|
};
|
|
20490
20546
|
}
|
|
20547
|
+
function packageManagersForRuntime(names) {
|
|
20548
|
+
const keys = names.map((name) => name.trim().toLowerCase());
|
|
20549
|
+
return PACKAGE_MANAGER_REGISTRY.filter(
|
|
20550
|
+
(pm) => keys.some(
|
|
20551
|
+
(key) => pm.name.toLowerCase() === key || pm.aliases.includes(key) || pm.targets.some((target) => target.toLowerCase() === key)
|
|
20552
|
+
)
|
|
20553
|
+
).map(packageManagerInfoFromDefinition);
|
|
20554
|
+
}
|
|
20491
20555
|
function getPackageManagers() {
|
|
20492
20556
|
return PACKAGE_MANAGER_REGISTRY.map(packageManagerInfoFromDefinition);
|
|
20493
20557
|
}
|
|
@@ -21165,13 +21229,93 @@ var createLanguageRequest = (getLanguage, loadLanguageModule) => {
|
|
|
21165
21229
|
};
|
|
21166
21230
|
return request;
|
|
21167
21231
|
};
|
|
21232
|
+
var getLanguageBySlug = (slug) => languageMap.get(slug);
|
|
21233
|
+
var getRelationSlugs = (language) => {
|
|
21234
|
+
const { supersetOf = [], dialectOf = [], compilesTo = [] } = language.relations ?? {};
|
|
21235
|
+
return [...supersetOf, ...dialectOf, ...compilesTo];
|
|
21236
|
+
};
|
|
21237
|
+
var categoryPredicate = (value) => {
|
|
21238
|
+
const resolvedCategory = findCategory(value)?.slug ?? value;
|
|
21239
|
+
return (language) => matchesCategory(language, resolvedCategory);
|
|
21240
|
+
};
|
|
21241
|
+
var paradigmPredicate = (value) => {
|
|
21242
|
+
const targets = findParadigm(value)?.targets ?? [value];
|
|
21243
|
+
return (language) => matchesParadigm(language, targets);
|
|
21244
|
+
};
|
|
21245
|
+
var runtimePredicate = (value) => {
|
|
21246
|
+
const targets = findRuntime(value)?.targets ?? [value];
|
|
21247
|
+
return (language) => matchesRuntime(language, targets);
|
|
21248
|
+
};
|
|
21249
|
+
var packageManagerPredicate = (value) => {
|
|
21250
|
+
const targets = findPackageManager(value)?.targets ?? [value];
|
|
21251
|
+
return (language) => matchesPackageManager(language, targets);
|
|
21252
|
+
};
|
|
21253
|
+
var ecosystemPredicate = (value) => {
|
|
21254
|
+
const targets = findEcosystem(value)?.targets ?? [value];
|
|
21255
|
+
return (language) => matchesEcosystem(language, targets);
|
|
21256
|
+
};
|
|
21257
|
+
var extensionPredicate = (value) => {
|
|
21258
|
+
const normalized = value.trim().toLowerCase();
|
|
21259
|
+
return (language) => language.extensions.some((extension) => {
|
|
21260
|
+
const normalizedExtension = extension.toLowerCase();
|
|
21261
|
+
return normalizedExtension === normalized || normalizedExtension === `.${normalized}`;
|
|
21262
|
+
});
|
|
21263
|
+
};
|
|
21264
|
+
var statusPredicate = (value) => (language) => (language.status ?? "active") === value;
|
|
21265
|
+
var relatedPredicate = (slug) => {
|
|
21266
|
+
const resolvedSlug = resolveLanguageLookup(slug);
|
|
21267
|
+
const source = getLanguageBySlug(resolvedSlug);
|
|
21268
|
+
const outgoing = new Set(source ? getRelationSlugs(source) : []);
|
|
21269
|
+
return (language) => language.slug !== resolvedSlug && (outgoing.has(language.slug) || getRelationSlugs(language).includes(resolvedSlug));
|
|
21270
|
+
};
|
|
21168
21271
|
var createLanguageCollectionRequest = (getLanguageList, loadLanguageList) => {
|
|
21169
21272
|
let requestedLocale = defaultLocale;
|
|
21273
|
+
const narrow = (predicate) => {
|
|
21274
|
+
const filtered = () => getLanguageList().filter(predicate);
|
|
21275
|
+
const next = createLanguageCollectionRequest(filtered, async () => {
|
|
21276
|
+
const loaded = await Promise.all(filtered().map((language) => loadLanguage(language.slug)));
|
|
21277
|
+
return loaded.filter((language) => Boolean(language));
|
|
21278
|
+
});
|
|
21279
|
+
return next.locale(requestedLocale);
|
|
21280
|
+
};
|
|
21170
21281
|
const request = {
|
|
21171
21282
|
locale(locale) {
|
|
21172
21283
|
requestedLocale = locale;
|
|
21173
21284
|
return request;
|
|
21174
21285
|
},
|
|
21286
|
+
category(value) {
|
|
21287
|
+
return narrow(categoryPredicate(value));
|
|
21288
|
+
},
|
|
21289
|
+
paradigm(value) {
|
|
21290
|
+
return narrow(paradigmPredicate(value));
|
|
21291
|
+
},
|
|
21292
|
+
runtime(value) {
|
|
21293
|
+
return narrow(runtimePredicate(value));
|
|
21294
|
+
},
|
|
21295
|
+
packageManager(value) {
|
|
21296
|
+
return narrow(packageManagerPredicate(value));
|
|
21297
|
+
},
|
|
21298
|
+
ecosystem(value) {
|
|
21299
|
+
return narrow(ecosystemPredicate(value));
|
|
21300
|
+
},
|
|
21301
|
+
extension(value) {
|
|
21302
|
+
return narrow(extensionPredicate(value));
|
|
21303
|
+
},
|
|
21304
|
+
status(value) {
|
|
21305
|
+
return narrow(statusPredicate(value));
|
|
21306
|
+
},
|
|
21307
|
+
related(slug) {
|
|
21308
|
+
return narrow(relatedPredicate(slug));
|
|
21309
|
+
},
|
|
21310
|
+
slugs() {
|
|
21311
|
+
return getLanguageList().map((language) => language.slug);
|
|
21312
|
+
},
|
|
21313
|
+
count() {
|
|
21314
|
+
return getLanguageList().length;
|
|
21315
|
+
},
|
|
21316
|
+
first() {
|
|
21317
|
+
return localizeOptionalLanguage(getLanguageList().at(0), requestedLocale);
|
|
21318
|
+
},
|
|
21175
21319
|
get() {
|
|
21176
21320
|
return getLanguageList().map((language) => localizeLanguage(language, requestedLocale));
|
|
21177
21321
|
},
|
|
@@ -21189,17 +21333,20 @@ var createFilteredLanguageCollection = (predicate) => {
|
|
|
21189
21333
|
return loaded.filter((language) => Boolean(language));
|
|
21190
21334
|
});
|
|
21191
21335
|
};
|
|
21336
|
+
var createGroupSelection = (definition, toInfo, predicate) => ({
|
|
21337
|
+
info() {
|
|
21338
|
+
return definition ? toInfo(definition) : void 0;
|
|
21339
|
+
},
|
|
21340
|
+
langs() {
|
|
21341
|
+
return createFilteredLanguageCollection(predicate);
|
|
21342
|
+
}
|
|
21343
|
+
});
|
|
21192
21344
|
var loadDetectedLanguages = async (filename) => {
|
|
21193
21345
|
const detectedLanguages = await Promise.all(
|
|
21194
21346
|
detectLanguageSlugs(filename).map((slug) => loadLanguage(slug))
|
|
21195
21347
|
);
|
|
21196
21348
|
return detectedLanguages.filter((language) => Boolean(language));
|
|
21197
21349
|
};
|
|
21198
|
-
var getLanguageBySlug = (slug) => languageMap.get(slug);
|
|
21199
|
-
var getRelationSlugs = (language) => {
|
|
21200
|
-
const { supersetOf = [], dialectOf = [], compilesTo = [] } = language.relations ?? {};
|
|
21201
|
-
return [...supersetOf, ...dialectOf, ...compilesTo];
|
|
21202
|
-
};
|
|
21203
21350
|
var getDetectedLanguages = (filename) => detectLanguageSlugs(filename).map((slug) => getLanguageBySlug(slug)).filter((language) => Boolean(language));
|
|
21204
21351
|
var api = {
|
|
21205
21352
|
/**
|
|
@@ -21263,15 +21410,9 @@ var api = {
|
|
|
21263
21410
|
* api.extension('ts').langs().locale('es').get();
|
|
21264
21411
|
*/
|
|
21265
21412
|
extension(value) {
|
|
21266
|
-
const normalized = value.trim().toLowerCase();
|
|
21267
21413
|
return {
|
|
21268
21414
|
langs() {
|
|
21269
|
-
return createFilteredLanguageCollection(
|
|
21270
|
-
(language) => language.extensions.some((extension) => {
|
|
21271
|
-
const normalizedExtension = extension.toLowerCase();
|
|
21272
|
-
return normalizedExtension === normalized || normalizedExtension === `.${normalized}`;
|
|
21273
|
-
})
|
|
21274
|
-
);
|
|
21415
|
+
return createFilteredLanguageCollection(extensionPredicate(value));
|
|
21275
21416
|
}
|
|
21276
21417
|
};
|
|
21277
21418
|
},
|
|
@@ -21327,9 +21468,7 @@ var api = {
|
|
|
21327
21468
|
status(value) {
|
|
21328
21469
|
return {
|
|
21329
21470
|
langs() {
|
|
21330
|
-
return createFilteredLanguageCollection(
|
|
21331
|
-
(language) => (language.status ?? "active") === value
|
|
21332
|
-
);
|
|
21471
|
+
return createFilteredLanguageCollection(statusPredicate(value));
|
|
21333
21472
|
}
|
|
21334
21473
|
};
|
|
21335
21474
|
},
|
|
@@ -21342,14 +21481,9 @@ var api = {
|
|
|
21342
21481
|
* api.related('typescript').langs().get(); // JavaScript
|
|
21343
21482
|
*/
|
|
21344
21483
|
related(slug) {
|
|
21345
|
-
const resolvedSlug = resolveLanguageLookup(slug);
|
|
21346
21484
|
return {
|
|
21347
21485
|
langs() {
|
|
21348
|
-
|
|
21349
|
-
const outgoing = new Set(source ? getRelationSlugs(source) : []);
|
|
21350
|
-
return createFilteredLanguageCollection(
|
|
21351
|
-
(language) => language.slug !== resolvedSlug && (outgoing.has(language.slug) || getRelationSlugs(language).includes(resolvedSlug))
|
|
21352
|
-
);
|
|
21486
|
+
return createFilteredLanguageCollection(relatedPredicate(slug));
|
|
21353
21487
|
}
|
|
21354
21488
|
};
|
|
21355
21489
|
},
|
|
@@ -21362,16 +21496,14 @@ var api = {
|
|
|
21362
21496
|
* @example
|
|
21363
21497
|
* api.runtime('node').langs().locale('es').get();
|
|
21364
21498
|
* api.runtime('.net').info();
|
|
21499
|
+
* api.runtime('node').packageManagers();
|
|
21365
21500
|
*/
|
|
21366
21501
|
runtime(value) {
|
|
21367
21502
|
const definition = findRuntime(value);
|
|
21368
|
-
const targets = definition?.targets ?? [value];
|
|
21369
21503
|
return {
|
|
21370
|
-
|
|
21371
|
-
|
|
21372
|
-
|
|
21373
|
-
langs() {
|
|
21374
|
-
return createFilteredLanguageCollection((language) => matchesRuntime(language, targets));
|
|
21504
|
+
...createGroupSelection(definition, runtimeInfoFromDefinition, runtimePredicate(value)),
|
|
21505
|
+
packageManagers() {
|
|
21506
|
+
return definition ? packageManagersForRuntime(definition.packageManagers) : [];
|
|
21375
21507
|
}
|
|
21376
21508
|
};
|
|
21377
21509
|
},
|
|
@@ -21389,14 +21521,11 @@ var api = {
|
|
|
21389
21521
|
const definition = findPackageManager(value);
|
|
21390
21522
|
const targets = definition?.targets ?? [value];
|
|
21391
21523
|
return {
|
|
21392
|
-
|
|
21393
|
-
|
|
21394
|
-
|
|
21395
|
-
|
|
21396
|
-
|
|
21397
|
-
(language) => matchesPackageManager(language, targets)
|
|
21398
|
-
);
|
|
21399
|
-
},
|
|
21524
|
+
...createGroupSelection(
|
|
21525
|
+
definition,
|
|
21526
|
+
packageManagerInfoFromDefinition,
|
|
21527
|
+
packageManagerPredicate(value)
|
|
21528
|
+
),
|
|
21400
21529
|
runtimes() {
|
|
21401
21530
|
return runtimesForPackageManager(targets);
|
|
21402
21531
|
}
|
|
@@ -21418,14 +21547,15 @@ var api = {
|
|
|
21418
21547
|
*
|
|
21419
21548
|
* @example
|
|
21420
21549
|
* api.category('backend').langs().locale('es').get();
|
|
21550
|
+
* api.category('backend').info();
|
|
21421
21551
|
* await api.category('data-science').langs().load();
|
|
21422
21552
|
*/
|
|
21423
21553
|
category(value) {
|
|
21424
|
-
return
|
|
21425
|
-
|
|
21426
|
-
|
|
21427
|
-
|
|
21428
|
-
|
|
21554
|
+
return createGroupSelection(
|
|
21555
|
+
findCategory(value),
|
|
21556
|
+
categoryInfoFromDefinition,
|
|
21557
|
+
categoryPredicate(value)
|
|
21558
|
+
);
|
|
21429
21559
|
},
|
|
21430
21560
|
/**
|
|
21431
21561
|
* Selects every language that uses the given programming paradigm.
|
|
@@ -21438,16 +21568,11 @@ var api = {
|
|
|
21438
21568
|
* api.paradigm('oop').info();
|
|
21439
21569
|
*/
|
|
21440
21570
|
paradigm(value) {
|
|
21441
|
-
|
|
21442
|
-
|
|
21443
|
-
|
|
21444
|
-
|
|
21445
|
-
|
|
21446
|
-
},
|
|
21447
|
-
langs() {
|
|
21448
|
-
return createFilteredLanguageCollection((language) => matchesParadigm(language, targets));
|
|
21449
|
-
}
|
|
21450
|
-
};
|
|
21571
|
+
return createGroupSelection(
|
|
21572
|
+
findParadigm(value),
|
|
21573
|
+
paradigmInfoFromDefinition,
|
|
21574
|
+
paradigmPredicate(value)
|
|
21575
|
+
);
|
|
21451
21576
|
},
|
|
21452
21577
|
/**
|
|
21453
21578
|
* Selects every language that belongs to the given ecosystem.
|
|
@@ -21460,16 +21585,11 @@ var api = {
|
|
|
21460
21585
|
* api.ecosystem('blockchain').info();
|
|
21461
21586
|
*/
|
|
21462
21587
|
ecosystem(value) {
|
|
21463
|
-
|
|
21464
|
-
|
|
21465
|
-
|
|
21466
|
-
|
|
21467
|
-
|
|
21468
|
-
},
|
|
21469
|
-
langs() {
|
|
21470
|
-
return createFilteredLanguageCollection((language) => matchesEcosystem(language, targets));
|
|
21471
|
-
}
|
|
21472
|
-
};
|
|
21588
|
+
return createGroupSelection(
|
|
21589
|
+
findEcosystem(value),
|
|
21590
|
+
ecosystemInfoFromDefinition,
|
|
21591
|
+
ecosystemPredicate(value)
|
|
21592
|
+
);
|
|
21473
21593
|
},
|
|
21474
21594
|
/**
|
|
21475
21595
|
* Detects every matching language for a filename or path.
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as CategoryRequest, E as EcosystemInfo,
|
|
1
|
+
export { C as CategoryInfo, a as CategoryRequest, E as EcosystemInfo, b as EcosystemRequest, c as ExtensionRequest, L as LanguageCategory, P as PackageManagerInfo, d as ParadigmInfo, e as ParadigmRequest, R as RelatedRequest, f as ResolvedLanguageRequest, g as RuntimeInfo, S as StatusRequest, h as api, i as getCategories, j as getEcosystems, k as getPackageManagers, l as getParadigms, m as getRuntimes, n as getStatuses } from './api-jHE_4U3C.cjs';
|
|
2
2
|
export { detectLanguage, detectLanguageByShebang, detectLanguages } from './detect.cjs';
|
|
3
3
|
export { ProjectLanguageDetection, detectLanguageSlug, detectLanguageSlugs, detectProjectLanguages } from './detect-slugs.cjs';
|
|
4
4
|
export { d as detectLanguageSlugByShebang, g as getShebangInterpreters } from './shebang-Be8JBsB_.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as CategoryRequest, E as EcosystemInfo,
|
|
1
|
+
export { C as CategoryInfo, a as CategoryRequest, E as EcosystemInfo, b as EcosystemRequest, c as ExtensionRequest, L as LanguageCategory, P as PackageManagerInfo, d as ParadigmInfo, e as ParadigmRequest, R as RelatedRequest, f as ResolvedLanguageRequest, g as RuntimeInfo, S as StatusRequest, h as api, i as getCategories, j as getEcosystems, k as getPackageManagers, l as getParadigms, m as getRuntimes, n as getStatuses } from './api-CiSr3n5R.js';
|
|
2
2
|
export { detectLanguage, detectLanguageByShebang, detectLanguages } from './detect.js';
|
|
3
3
|
export { ProjectLanguageDetection, detectLanguageSlug, detectLanguageSlugs, detectProjectLanguages } from './detect-slugs.js';
|
|
4
4
|
export { d as detectLanguageSlugByShebang, g as getShebangInterpreters } from './shebang-wOz_EqIy.js';
|