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.js
CHANGED
|
@@ -10754,7 +10754,7 @@ var init_nix = __esm({
|
|
|
10754
10754
|
packageManagers: ["nix", "nix flakes"],
|
|
10755
10755
|
ecosystems: ["Linux", "macOS", "NixOS", "DevOps"]
|
|
10756
10756
|
},
|
|
10757
|
-
version: "2.
|
|
10757
|
+
version: "2.35.2",
|
|
10758
10758
|
logo: "https://cdn.simpleicons.org/nixos/5277C3",
|
|
10759
10759
|
color: "#5277C3",
|
|
10760
10760
|
i18n: {
|
|
@@ -18465,6 +18465,50 @@ var init_zsh = __esm({
|
|
|
18465
18465
|
});
|
|
18466
18466
|
|
|
18467
18467
|
// src/domain/category/registry.ts
|
|
18468
|
+
var CATEGORY_REGISTRY = [
|
|
18469
|
+
{
|
|
18470
|
+
slug: "frontend",
|
|
18471
|
+
name: "Frontend",
|
|
18472
|
+
description: "Languages that target the browser only.",
|
|
18473
|
+
aliases: ["frontend", "front-end"]
|
|
18474
|
+
},
|
|
18475
|
+
{
|
|
18476
|
+
slug: "backend",
|
|
18477
|
+
name: "Backend",
|
|
18478
|
+
description: "Languages that run on a server runtime.",
|
|
18479
|
+
aliases: ["backend", "back-end", "server"]
|
|
18480
|
+
},
|
|
18481
|
+
{
|
|
18482
|
+
slug: "fullstack",
|
|
18483
|
+
name: "Fullstack",
|
|
18484
|
+
description: "Languages that target both the browser and a server runtime.",
|
|
18485
|
+
aliases: ["fullstack", "full-stack"]
|
|
18486
|
+
},
|
|
18487
|
+
{
|
|
18488
|
+
slug: "systems",
|
|
18489
|
+
name: "Systems",
|
|
18490
|
+
description: "Low-level, native, and embedded programming languages.",
|
|
18491
|
+
aliases: ["systems", "systems-programming", "low-level"]
|
|
18492
|
+
},
|
|
18493
|
+
{
|
|
18494
|
+
slug: "data-science",
|
|
18495
|
+
name: "Data Science",
|
|
18496
|
+
description: "Languages for data analysis, machine learning, and scientific computing.",
|
|
18497
|
+
aliases: ["data-science", "datascience", "data"]
|
|
18498
|
+
},
|
|
18499
|
+
{
|
|
18500
|
+
slug: "scripting",
|
|
18501
|
+
name: "Scripting",
|
|
18502
|
+
description: "Shell and scripting languages.",
|
|
18503
|
+
aliases: ["scripting", "shell"]
|
|
18504
|
+
},
|
|
18505
|
+
{
|
|
18506
|
+
slug: "other",
|
|
18507
|
+
name: "Other",
|
|
18508
|
+
description: "Languages that do not match any other category.",
|
|
18509
|
+
aliases: ["other"]
|
|
18510
|
+
}
|
|
18511
|
+
];
|
|
18468
18512
|
var BROWSER_TARGETS = ["Browser"];
|
|
18469
18513
|
var SERVER_TARGETS = [
|
|
18470
18514
|
"Node.js",
|
|
@@ -18534,8 +18578,20 @@ function matchesCategory(lang, category) {
|
|
|
18534
18578
|
return !browser && !server && !poolMatches(pool, SYSTEMS_TARGETS) && !poolMatches(pool, DATA_TARGETS) && !poolMatches(pool, SCRIPT_TARGETS);
|
|
18535
18579
|
}
|
|
18536
18580
|
}
|
|
18581
|
+
function findCategory(value) {
|
|
18582
|
+
const key = value.trim().toLowerCase();
|
|
18583
|
+
return CATEGORY_REGISTRY.find((c2) => c2.aliases.includes(key));
|
|
18584
|
+
}
|
|
18585
|
+
function categoryInfoFromDefinition(def) {
|
|
18586
|
+
return {
|
|
18587
|
+
slug: def.slug,
|
|
18588
|
+
name: def.name,
|
|
18589
|
+
description: def.description,
|
|
18590
|
+
aliases: def.aliases
|
|
18591
|
+
};
|
|
18592
|
+
}
|
|
18537
18593
|
function getCategories() {
|
|
18538
|
-
return
|
|
18594
|
+
return CATEGORY_REGISTRY.map((c2) => c2.slug);
|
|
18539
18595
|
}
|
|
18540
18596
|
|
|
18541
18597
|
// src/domain/detection/match.ts
|
|
@@ -20486,6 +20542,14 @@ function packageManagerInfoFromDefinition(def) {
|
|
|
20486
20542
|
aliases: def.aliases
|
|
20487
20543
|
};
|
|
20488
20544
|
}
|
|
20545
|
+
function packageManagersForRuntime(names) {
|
|
20546
|
+
const keys = names.map((name) => name.trim().toLowerCase());
|
|
20547
|
+
return PACKAGE_MANAGER_REGISTRY.filter(
|
|
20548
|
+
(pm) => keys.some(
|
|
20549
|
+
(key) => pm.name.toLowerCase() === key || pm.aliases.includes(key) || pm.targets.some((target) => target.toLowerCase() === key)
|
|
20550
|
+
)
|
|
20551
|
+
).map(packageManagerInfoFromDefinition);
|
|
20552
|
+
}
|
|
20489
20553
|
function getPackageManagers() {
|
|
20490
20554
|
return PACKAGE_MANAGER_REGISTRY.map(packageManagerInfoFromDefinition);
|
|
20491
20555
|
}
|
|
@@ -21163,13 +21227,93 @@ var createLanguageRequest = (getLanguage, loadLanguageModule) => {
|
|
|
21163
21227
|
};
|
|
21164
21228
|
return request;
|
|
21165
21229
|
};
|
|
21230
|
+
var getLanguageBySlug = (slug) => languageMap.get(slug);
|
|
21231
|
+
var getRelationSlugs = (language) => {
|
|
21232
|
+
const { supersetOf = [], dialectOf = [], compilesTo = [] } = language.relations ?? {};
|
|
21233
|
+
return [...supersetOf, ...dialectOf, ...compilesTo];
|
|
21234
|
+
};
|
|
21235
|
+
var categoryPredicate = (value) => {
|
|
21236
|
+
const resolvedCategory = findCategory(value)?.slug ?? value;
|
|
21237
|
+
return (language) => matchesCategory(language, resolvedCategory);
|
|
21238
|
+
};
|
|
21239
|
+
var paradigmPredicate = (value) => {
|
|
21240
|
+
const targets = findParadigm(value)?.targets ?? [value];
|
|
21241
|
+
return (language) => matchesParadigm(language, targets);
|
|
21242
|
+
};
|
|
21243
|
+
var runtimePredicate = (value) => {
|
|
21244
|
+
const targets = findRuntime(value)?.targets ?? [value];
|
|
21245
|
+
return (language) => matchesRuntime(language, targets);
|
|
21246
|
+
};
|
|
21247
|
+
var packageManagerPredicate = (value) => {
|
|
21248
|
+
const targets = findPackageManager(value)?.targets ?? [value];
|
|
21249
|
+
return (language) => matchesPackageManager(language, targets);
|
|
21250
|
+
};
|
|
21251
|
+
var ecosystemPredicate = (value) => {
|
|
21252
|
+
const targets = findEcosystem(value)?.targets ?? [value];
|
|
21253
|
+
return (language) => matchesEcosystem(language, targets);
|
|
21254
|
+
};
|
|
21255
|
+
var extensionPredicate = (value) => {
|
|
21256
|
+
const normalized = value.trim().toLowerCase();
|
|
21257
|
+
return (language) => language.extensions.some((extension) => {
|
|
21258
|
+
const normalizedExtension = extension.toLowerCase();
|
|
21259
|
+
return normalizedExtension === normalized || normalizedExtension === `.${normalized}`;
|
|
21260
|
+
});
|
|
21261
|
+
};
|
|
21262
|
+
var statusPredicate = (value) => (language) => (language.status ?? "active") === value;
|
|
21263
|
+
var relatedPredicate = (slug) => {
|
|
21264
|
+
const resolvedSlug = resolveLanguageLookup(slug);
|
|
21265
|
+
const source = getLanguageBySlug(resolvedSlug);
|
|
21266
|
+
const outgoing = new Set(source ? getRelationSlugs(source) : []);
|
|
21267
|
+
return (language) => language.slug !== resolvedSlug && (outgoing.has(language.slug) || getRelationSlugs(language).includes(resolvedSlug));
|
|
21268
|
+
};
|
|
21166
21269
|
var createLanguageCollectionRequest = (getLanguageList, loadLanguageList) => {
|
|
21167
21270
|
let requestedLocale = defaultLocale;
|
|
21271
|
+
const narrow = (predicate) => {
|
|
21272
|
+
const filtered = () => getLanguageList().filter(predicate);
|
|
21273
|
+
const next = createLanguageCollectionRequest(filtered, async () => {
|
|
21274
|
+
const loaded = await Promise.all(filtered().map((language) => loadLanguage(language.slug)));
|
|
21275
|
+
return loaded.filter((language) => Boolean(language));
|
|
21276
|
+
});
|
|
21277
|
+
return next.locale(requestedLocale);
|
|
21278
|
+
};
|
|
21168
21279
|
const request = {
|
|
21169
21280
|
locale(locale) {
|
|
21170
21281
|
requestedLocale = locale;
|
|
21171
21282
|
return request;
|
|
21172
21283
|
},
|
|
21284
|
+
category(value) {
|
|
21285
|
+
return narrow(categoryPredicate(value));
|
|
21286
|
+
},
|
|
21287
|
+
paradigm(value) {
|
|
21288
|
+
return narrow(paradigmPredicate(value));
|
|
21289
|
+
},
|
|
21290
|
+
runtime(value) {
|
|
21291
|
+
return narrow(runtimePredicate(value));
|
|
21292
|
+
},
|
|
21293
|
+
packageManager(value) {
|
|
21294
|
+
return narrow(packageManagerPredicate(value));
|
|
21295
|
+
},
|
|
21296
|
+
ecosystem(value) {
|
|
21297
|
+
return narrow(ecosystemPredicate(value));
|
|
21298
|
+
},
|
|
21299
|
+
extension(value) {
|
|
21300
|
+
return narrow(extensionPredicate(value));
|
|
21301
|
+
},
|
|
21302
|
+
status(value) {
|
|
21303
|
+
return narrow(statusPredicate(value));
|
|
21304
|
+
},
|
|
21305
|
+
related(slug) {
|
|
21306
|
+
return narrow(relatedPredicate(slug));
|
|
21307
|
+
},
|
|
21308
|
+
slugs() {
|
|
21309
|
+
return getLanguageList().map((language) => language.slug);
|
|
21310
|
+
},
|
|
21311
|
+
count() {
|
|
21312
|
+
return getLanguageList().length;
|
|
21313
|
+
},
|
|
21314
|
+
first() {
|
|
21315
|
+
return localizeOptionalLanguage(getLanguageList().at(0), requestedLocale);
|
|
21316
|
+
},
|
|
21173
21317
|
get() {
|
|
21174
21318
|
return getLanguageList().map((language) => localizeLanguage(language, requestedLocale));
|
|
21175
21319
|
},
|
|
@@ -21187,17 +21331,20 @@ var createFilteredLanguageCollection = (predicate) => {
|
|
|
21187
21331
|
return loaded.filter((language) => Boolean(language));
|
|
21188
21332
|
});
|
|
21189
21333
|
};
|
|
21334
|
+
var createGroupSelection = (definition, toInfo, predicate) => ({
|
|
21335
|
+
info() {
|
|
21336
|
+
return definition ? toInfo(definition) : void 0;
|
|
21337
|
+
},
|
|
21338
|
+
langs() {
|
|
21339
|
+
return createFilteredLanguageCollection(predicate);
|
|
21340
|
+
}
|
|
21341
|
+
});
|
|
21190
21342
|
var loadDetectedLanguages = async (filename) => {
|
|
21191
21343
|
const detectedLanguages = await Promise.all(
|
|
21192
21344
|
detectLanguageSlugs(filename).map((slug) => loadLanguage(slug))
|
|
21193
21345
|
);
|
|
21194
21346
|
return detectedLanguages.filter((language) => Boolean(language));
|
|
21195
21347
|
};
|
|
21196
|
-
var getLanguageBySlug = (slug) => languageMap.get(slug);
|
|
21197
|
-
var getRelationSlugs = (language) => {
|
|
21198
|
-
const { supersetOf = [], dialectOf = [], compilesTo = [] } = language.relations ?? {};
|
|
21199
|
-
return [...supersetOf, ...dialectOf, ...compilesTo];
|
|
21200
|
-
};
|
|
21201
21348
|
var getDetectedLanguages = (filename) => detectLanguageSlugs(filename).map((slug) => getLanguageBySlug(slug)).filter((language) => Boolean(language));
|
|
21202
21349
|
var api = {
|
|
21203
21350
|
/**
|
|
@@ -21261,15 +21408,9 @@ var api = {
|
|
|
21261
21408
|
* api.extension('ts').langs().locale('es').get();
|
|
21262
21409
|
*/
|
|
21263
21410
|
extension(value) {
|
|
21264
|
-
const normalized = value.trim().toLowerCase();
|
|
21265
21411
|
return {
|
|
21266
21412
|
langs() {
|
|
21267
|
-
return createFilteredLanguageCollection(
|
|
21268
|
-
(language) => language.extensions.some((extension) => {
|
|
21269
|
-
const normalizedExtension = extension.toLowerCase();
|
|
21270
|
-
return normalizedExtension === normalized || normalizedExtension === `.${normalized}`;
|
|
21271
|
-
})
|
|
21272
|
-
);
|
|
21413
|
+
return createFilteredLanguageCollection(extensionPredicate(value));
|
|
21273
21414
|
}
|
|
21274
21415
|
};
|
|
21275
21416
|
},
|
|
@@ -21325,9 +21466,7 @@ var api = {
|
|
|
21325
21466
|
status(value) {
|
|
21326
21467
|
return {
|
|
21327
21468
|
langs() {
|
|
21328
|
-
return createFilteredLanguageCollection(
|
|
21329
|
-
(language) => (language.status ?? "active") === value
|
|
21330
|
-
);
|
|
21469
|
+
return createFilteredLanguageCollection(statusPredicate(value));
|
|
21331
21470
|
}
|
|
21332
21471
|
};
|
|
21333
21472
|
},
|
|
@@ -21340,14 +21479,9 @@ var api = {
|
|
|
21340
21479
|
* api.related('typescript').langs().get(); // JavaScript
|
|
21341
21480
|
*/
|
|
21342
21481
|
related(slug) {
|
|
21343
|
-
const resolvedSlug = resolveLanguageLookup(slug);
|
|
21344
21482
|
return {
|
|
21345
21483
|
langs() {
|
|
21346
|
-
|
|
21347
|
-
const outgoing = new Set(source ? getRelationSlugs(source) : []);
|
|
21348
|
-
return createFilteredLanguageCollection(
|
|
21349
|
-
(language) => language.slug !== resolvedSlug && (outgoing.has(language.slug) || getRelationSlugs(language).includes(resolvedSlug))
|
|
21350
|
-
);
|
|
21484
|
+
return createFilteredLanguageCollection(relatedPredicate(slug));
|
|
21351
21485
|
}
|
|
21352
21486
|
};
|
|
21353
21487
|
},
|
|
@@ -21360,16 +21494,14 @@ var api = {
|
|
|
21360
21494
|
* @example
|
|
21361
21495
|
* api.runtime('node').langs().locale('es').get();
|
|
21362
21496
|
* api.runtime('.net').info();
|
|
21497
|
+
* api.runtime('node').packageManagers();
|
|
21363
21498
|
*/
|
|
21364
21499
|
runtime(value) {
|
|
21365
21500
|
const definition = findRuntime(value);
|
|
21366
|
-
const targets = definition?.targets ?? [value];
|
|
21367
21501
|
return {
|
|
21368
|
-
|
|
21369
|
-
|
|
21370
|
-
|
|
21371
|
-
langs() {
|
|
21372
|
-
return createFilteredLanguageCollection((language) => matchesRuntime(language, targets));
|
|
21502
|
+
...createGroupSelection(definition, runtimeInfoFromDefinition, runtimePredicate(value)),
|
|
21503
|
+
packageManagers() {
|
|
21504
|
+
return definition ? packageManagersForRuntime(definition.packageManagers) : [];
|
|
21373
21505
|
}
|
|
21374
21506
|
};
|
|
21375
21507
|
},
|
|
@@ -21387,14 +21519,11 @@ var api = {
|
|
|
21387
21519
|
const definition = findPackageManager(value);
|
|
21388
21520
|
const targets = definition?.targets ?? [value];
|
|
21389
21521
|
return {
|
|
21390
|
-
|
|
21391
|
-
|
|
21392
|
-
|
|
21393
|
-
|
|
21394
|
-
|
|
21395
|
-
(language) => matchesPackageManager(language, targets)
|
|
21396
|
-
);
|
|
21397
|
-
},
|
|
21522
|
+
...createGroupSelection(
|
|
21523
|
+
definition,
|
|
21524
|
+
packageManagerInfoFromDefinition,
|
|
21525
|
+
packageManagerPredicate(value)
|
|
21526
|
+
),
|
|
21398
21527
|
runtimes() {
|
|
21399
21528
|
return runtimesForPackageManager(targets);
|
|
21400
21529
|
}
|
|
@@ -21416,14 +21545,15 @@ var api = {
|
|
|
21416
21545
|
*
|
|
21417
21546
|
* @example
|
|
21418
21547
|
* api.category('backend').langs().locale('es').get();
|
|
21548
|
+
* api.category('backend').info();
|
|
21419
21549
|
* await api.category('data-science').langs().load();
|
|
21420
21550
|
*/
|
|
21421
21551
|
category(value) {
|
|
21422
|
-
return
|
|
21423
|
-
|
|
21424
|
-
|
|
21425
|
-
|
|
21426
|
-
|
|
21552
|
+
return createGroupSelection(
|
|
21553
|
+
findCategory(value),
|
|
21554
|
+
categoryInfoFromDefinition,
|
|
21555
|
+
categoryPredicate(value)
|
|
21556
|
+
);
|
|
21427
21557
|
},
|
|
21428
21558
|
/**
|
|
21429
21559
|
* Selects every language that uses the given programming paradigm.
|
|
@@ -21436,16 +21566,11 @@ var api = {
|
|
|
21436
21566
|
* api.paradigm('oop').info();
|
|
21437
21567
|
*/
|
|
21438
21568
|
paradigm(value) {
|
|
21439
|
-
|
|
21440
|
-
|
|
21441
|
-
|
|
21442
|
-
|
|
21443
|
-
|
|
21444
|
-
},
|
|
21445
|
-
langs() {
|
|
21446
|
-
return createFilteredLanguageCollection((language) => matchesParadigm(language, targets));
|
|
21447
|
-
}
|
|
21448
|
-
};
|
|
21569
|
+
return createGroupSelection(
|
|
21570
|
+
findParadigm(value),
|
|
21571
|
+
paradigmInfoFromDefinition,
|
|
21572
|
+
paradigmPredicate(value)
|
|
21573
|
+
);
|
|
21449
21574
|
},
|
|
21450
21575
|
/**
|
|
21451
21576
|
* Selects every language that belongs to the given ecosystem.
|
|
@@ -21458,16 +21583,11 @@ var api = {
|
|
|
21458
21583
|
* api.ecosystem('blockchain').info();
|
|
21459
21584
|
*/
|
|
21460
21585
|
ecosystem(value) {
|
|
21461
|
-
|
|
21462
|
-
|
|
21463
|
-
|
|
21464
|
-
|
|
21465
|
-
|
|
21466
|
-
},
|
|
21467
|
-
langs() {
|
|
21468
|
-
return createFilteredLanguageCollection((language) => matchesEcosystem(language, targets));
|
|
21469
|
-
}
|
|
21470
|
-
};
|
|
21586
|
+
return createGroupSelection(
|
|
21587
|
+
findEcosystem(value),
|
|
21588
|
+
ecosystemInfoFromDefinition,
|
|
21589
|
+
ecosystemPredicate(value)
|
|
21590
|
+
);
|
|
21471
21591
|
},
|
|
21472
21592
|
/**
|
|
21473
21593
|
* Detects every matching language for a filename or path.
|
package/dist/languages/nix.cjs
CHANGED
package/dist/languages/nix.js
CHANGED