code-languages 1.39.0 → 1.40.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.
- package/README.md +64 -0
- package/dist/{api-EZK9DmOV.d.ts → api-BlQoDQtF.d.ts} +51 -1
- package/dist/{api-C-SCQpIV.d.cts → api-Cvg4BdaR.d.cts} +51 -1
- package/dist/api.cjs +478 -27
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +478 -27
- package/dist/index.cjs +486 -27
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +485 -28
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -17433,6 +17433,291 @@ var detectProjectLanguages = (filenames) => {
|
|
|
17433
17433
|
return [...fileCounts.entries()].map(([slug, files]) => ({ slug, files })).sort((first, second) => second.files - first.files || first.slug.localeCompare(second.slug));
|
|
17434
17434
|
};
|
|
17435
17435
|
|
|
17436
|
+
// src/domain/ecosystem/registry.ts
|
|
17437
|
+
var ECOSYSTEM_REGISTRY = [
|
|
17438
|
+
// Web
|
|
17439
|
+
{
|
|
17440
|
+
slug: "web",
|
|
17441
|
+
name: "Web",
|
|
17442
|
+
description: "Languages used for building websites, web apps, and web standards.",
|
|
17443
|
+
aliases: ["web", "frontend", "browser"],
|
|
17444
|
+
targets: ["Web", "Frontend", "JavaScript", "Static Sites", "CMS", "Web Servers"]
|
|
17445
|
+
},
|
|
17446
|
+
// JavaScript ecosystem
|
|
17447
|
+
{
|
|
17448
|
+
slug: "node",
|
|
17449
|
+
name: "Node.js",
|
|
17450
|
+
description: "Languages that run on or integrate with the Node.js server-side runtime.",
|
|
17451
|
+
aliases: ["node", "nodejs", "node.js"],
|
|
17452
|
+
targets: ["Node.js"]
|
|
17453
|
+
},
|
|
17454
|
+
// JVM
|
|
17455
|
+
{
|
|
17456
|
+
slug: "jvm",
|
|
17457
|
+
name: "JVM",
|
|
17458
|
+
description: "Languages that run on the Java Virtual Machine.",
|
|
17459
|
+
aliases: ["jvm", "java"],
|
|
17460
|
+
targets: ["JVM", "Java", "Kotlin", "Groovy", "Scala"]
|
|
17461
|
+
},
|
|
17462
|
+
// .NET
|
|
17463
|
+
{
|
|
17464
|
+
slug: "dotnet",
|
|
17465
|
+
name: ".NET",
|
|
17466
|
+
description: "Languages that target the .NET platform and runtime.",
|
|
17467
|
+
aliases: ["dotnet", ".net", "net"],
|
|
17468
|
+
targets: [".NET", "ASP.NET", "Blazor", "ASP.NET Core"]
|
|
17469
|
+
},
|
|
17470
|
+
// DevOps / Cloud
|
|
17471
|
+
{
|
|
17472
|
+
slug: "devops",
|
|
17473
|
+
name: "DevOps",
|
|
17474
|
+
description: "Languages used for CI/CD, infrastructure, and automation pipelines.",
|
|
17475
|
+
aliases: ["devops", "cicd", "ci-cd"],
|
|
17476
|
+
targets: ["DevOps", "CI/CD", "Platform Automation", "Cloud tooling"]
|
|
17477
|
+
},
|
|
17478
|
+
{
|
|
17479
|
+
slug: "cloud",
|
|
17480
|
+
name: "Cloud",
|
|
17481
|
+
description: "Languages used for cloud computing, cloud-native applications, and IaC.",
|
|
17482
|
+
aliases: ["cloud", "cloud-native"],
|
|
17483
|
+
targets: [
|
|
17484
|
+
"Cloud",
|
|
17485
|
+
"Cloud Computing",
|
|
17486
|
+
"Cloud Native",
|
|
17487
|
+
"Infrastructure as Code",
|
|
17488
|
+
"Infrastructure"
|
|
17489
|
+
]
|
|
17490
|
+
},
|
|
17491
|
+
{
|
|
17492
|
+
slug: "kubernetes",
|
|
17493
|
+
name: "Kubernetes",
|
|
17494
|
+
description: "Languages and tools used in the Kubernetes ecosystem.",
|
|
17495
|
+
aliases: ["kubernetes", "k8s"],
|
|
17496
|
+
targets: ["Kubernetes"]
|
|
17497
|
+
},
|
|
17498
|
+
// Data
|
|
17499
|
+
{
|
|
17500
|
+
slug: "data-science",
|
|
17501
|
+
name: "Data Science",
|
|
17502
|
+
description: "Languages used for data analysis, machine learning, and statistical computing.",
|
|
17503
|
+
aliases: ["data-science", "ml", "machine-learning", "ai"],
|
|
17504
|
+
targets: ["Data Science", "Machine Learning", "AI", "ML", "Data Analysis", "Analytics"]
|
|
17505
|
+
},
|
|
17506
|
+
{
|
|
17507
|
+
slug: "scientific",
|
|
17508
|
+
name: "Scientific Computing",
|
|
17509
|
+
description: "Languages used in research, numerical computing, and scientific simulations.",
|
|
17510
|
+
aliases: ["scientific", "scientific-computing", "hpc", "research"],
|
|
17511
|
+
targets: [
|
|
17512
|
+
"Scientific Computing",
|
|
17513
|
+
"Research",
|
|
17514
|
+
"HPC",
|
|
17515
|
+
"Numerical Computing",
|
|
17516
|
+
"Numerical Analysis",
|
|
17517
|
+
"Bioinformatics"
|
|
17518
|
+
]
|
|
17519
|
+
},
|
|
17520
|
+
// Systems & Embedded
|
|
17521
|
+
{
|
|
17522
|
+
slug: "systems",
|
|
17523
|
+
name: "Systems",
|
|
17524
|
+
description: "Languages used for operating systems, system utilities, and native development.",
|
|
17525
|
+
aliases: ["systems", "systems-programming", "native"],
|
|
17526
|
+
targets: [
|
|
17527
|
+
"Systems",
|
|
17528
|
+
"Systems Programming",
|
|
17529
|
+
"Systems programming",
|
|
17530
|
+
"Operating Systems",
|
|
17531
|
+
"Native",
|
|
17532
|
+
"Native Applications",
|
|
17533
|
+
"Native applications"
|
|
17534
|
+
]
|
|
17535
|
+
},
|
|
17536
|
+
{
|
|
17537
|
+
slug: "embedded",
|
|
17538
|
+
name: "Embedded",
|
|
17539
|
+
description: "Languages used in firmware, microcontrollers, and embedded hardware.",
|
|
17540
|
+
aliases: ["embedded", "firmware", "iot"],
|
|
17541
|
+
targets: [
|
|
17542
|
+
"Embedded",
|
|
17543
|
+
"Embedded Systems",
|
|
17544
|
+
"Embedded systems",
|
|
17545
|
+
"Firmware",
|
|
17546
|
+
"IoT",
|
|
17547
|
+
"Microcontroller Firmware"
|
|
17548
|
+
]
|
|
17549
|
+
},
|
|
17550
|
+
// Game development
|
|
17551
|
+
{
|
|
17552
|
+
slug: "game-dev",
|
|
17553
|
+
name: "Game Development",
|
|
17554
|
+
description: "Languages used for building video games and game engines.",
|
|
17555
|
+
aliases: ["game-dev", "games", "game-development", "gamedev"],
|
|
17556
|
+
targets: ["Game Development", "Games", "2D Games", "3D Games", "Indie Games", "Modding"]
|
|
17557
|
+
},
|
|
17558
|
+
// Mobile
|
|
17559
|
+
{
|
|
17560
|
+
slug: "mobile",
|
|
17561
|
+
name: "Mobile",
|
|
17562
|
+
description: "Languages used for iOS, Android, and cross-platform mobile development.",
|
|
17563
|
+
aliases: ["mobile", "ios", "android"],
|
|
17564
|
+
targets: ["Mobile", "iOS", "Android", "Flutter", "Mobile Applications", "Mobile UI"]
|
|
17565
|
+
},
|
|
17566
|
+
// Blockchain
|
|
17567
|
+
{
|
|
17568
|
+
slug: "blockchain",
|
|
17569
|
+
name: "Blockchain",
|
|
17570
|
+
description: "Languages used for smart contracts, DeFi, and blockchain development.",
|
|
17571
|
+
aliases: ["blockchain", "web3", "smart-contracts", "crypto"],
|
|
17572
|
+
targets: ["Blockchain", "Smart Contracts", "Ethereum", "Web3", "EVM", "DeFi"]
|
|
17573
|
+
},
|
|
17574
|
+
// GPU / Graphics
|
|
17575
|
+
{
|
|
17576
|
+
slug: "gpu",
|
|
17577
|
+
name: "GPU",
|
|
17578
|
+
description: "Languages used for GPU computing, graphics, and shader programming.",
|
|
17579
|
+
aliases: ["gpu", "graphics", "gpu-programming"],
|
|
17580
|
+
targets: [
|
|
17581
|
+
"GPU Programming",
|
|
17582
|
+
"GPU Computing",
|
|
17583
|
+
"GPU Compute",
|
|
17584
|
+
"WebGPU",
|
|
17585
|
+
"WebGL",
|
|
17586
|
+
"DirectX",
|
|
17587
|
+
"Graphics",
|
|
17588
|
+
"Khronos"
|
|
17589
|
+
]
|
|
17590
|
+
},
|
|
17591
|
+
// WebAssembly
|
|
17592
|
+
{
|
|
17593
|
+
slug: "wasm",
|
|
17594
|
+
name: "WebAssembly",
|
|
17595
|
+
description: "Languages that compile to or run on WebAssembly.",
|
|
17596
|
+
aliases: ["wasm", "webassembly"],
|
|
17597
|
+
targets: ["WebAssembly", "WASI", "WebAssembly Component Model"]
|
|
17598
|
+
},
|
|
17599
|
+
// Enterprise
|
|
17600
|
+
{
|
|
17601
|
+
slug: "enterprise",
|
|
17602
|
+
name: "Enterprise",
|
|
17603
|
+
description: "Languages used in large-scale enterprise software and business applications.",
|
|
17604
|
+
aliases: ["enterprise"],
|
|
17605
|
+
targets: ["Enterprise", "Enterprise Applications", "Enterprise Data", "Enterprise Integration"]
|
|
17606
|
+
},
|
|
17607
|
+
// Formal methods / Verification
|
|
17608
|
+
{
|
|
17609
|
+
slug: "formal-methods",
|
|
17610
|
+
name: "Formal Methods",
|
|
17611
|
+
description: "Languages used for formal proofs, verification, and correctness guarantees.",
|
|
17612
|
+
aliases: ["formal-methods", "verification", "proof-assistants"],
|
|
17613
|
+
targets: [
|
|
17614
|
+
"Formal Methods",
|
|
17615
|
+
"Formal methods",
|
|
17616
|
+
"Verification",
|
|
17617
|
+
"Proof Assistants",
|
|
17618
|
+
"Proof assistants",
|
|
17619
|
+
"Low-level Verification"
|
|
17620
|
+
]
|
|
17621
|
+
},
|
|
17622
|
+
// Compilers / Language tooling
|
|
17623
|
+
{
|
|
17624
|
+
slug: "compilers",
|
|
17625
|
+
name: "Compilers",
|
|
17626
|
+
description: "Languages used in compiler development, language design, and tooling.",
|
|
17627
|
+
aliases: ["compilers", "language-design", "language-tooling"],
|
|
17628
|
+
targets: [
|
|
17629
|
+
"Compilers",
|
|
17630
|
+
"Language Design",
|
|
17631
|
+
"Language Research",
|
|
17632
|
+
"Language Tools",
|
|
17633
|
+
"Language Implementation",
|
|
17634
|
+
"Compiler Development"
|
|
17635
|
+
]
|
|
17636
|
+
},
|
|
17637
|
+
// Unix / Linux
|
|
17638
|
+
{
|
|
17639
|
+
slug: "unix",
|
|
17640
|
+
name: "Unix",
|
|
17641
|
+
description: "Languages and tools used in Unix-like operating systems and shell environments.",
|
|
17642
|
+
aliases: ["unix", "linux", "posix"],
|
|
17643
|
+
targets: ["Unix", "Linux", "macOS", "BSD", "Operating systems"]
|
|
17644
|
+
},
|
|
17645
|
+
// Documentation / Publishing
|
|
17646
|
+
{
|
|
17647
|
+
slug: "documentation",
|
|
17648
|
+
name: "Documentation",
|
|
17649
|
+
description: "Languages used for writing, publishing, and technical documentation.",
|
|
17650
|
+
aliases: ["documentation", "publishing", "technical-writing"],
|
|
17651
|
+
targets: [
|
|
17652
|
+
"Documentation",
|
|
17653
|
+
"Publishing",
|
|
17654
|
+
"Technical Writing",
|
|
17655
|
+
"Technical writing",
|
|
17656
|
+
"Academic Writing",
|
|
17657
|
+
"Academic publishing"
|
|
17658
|
+
]
|
|
17659
|
+
},
|
|
17660
|
+
// Configuration
|
|
17661
|
+
{
|
|
17662
|
+
slug: "configuration",
|
|
17663
|
+
name: "Configuration",
|
|
17664
|
+
description: "Languages used for application and infrastructure configuration.",
|
|
17665
|
+
aliases: ["configuration", "config"],
|
|
17666
|
+
targets: ["Configuration", "Configuration Management"]
|
|
17667
|
+
},
|
|
17668
|
+
// Scripting / Automation
|
|
17669
|
+
{
|
|
17670
|
+
slug: "automation",
|
|
17671
|
+
name: "Automation",
|
|
17672
|
+
description: "Languages used for task automation, scripting, and workflow orchestration.",
|
|
17673
|
+
aliases: ["automation", "scripting"],
|
|
17674
|
+
targets: ["Automation", "Scripting", "DevOps", "CLI", "CLI Tools"]
|
|
17675
|
+
},
|
|
17676
|
+
// Apple / macOS
|
|
17677
|
+
{
|
|
17678
|
+
slug: "apple",
|
|
17679
|
+
name: "Apple",
|
|
17680
|
+
description: "Languages used for macOS, iOS, and the broader Apple platform.",
|
|
17681
|
+
aliases: ["apple", "macos", "apple-platforms"],
|
|
17682
|
+
targets: ["Apple", "Apple Platforms", "macOS", "iOS", "tvOS", "visionOS", "iPadOS"]
|
|
17683
|
+
},
|
|
17684
|
+
// Windows
|
|
17685
|
+
{
|
|
17686
|
+
slug: "windows",
|
|
17687
|
+
name: "Windows",
|
|
17688
|
+
description: "Languages used for Windows application and system development.",
|
|
17689
|
+
aliases: ["windows"],
|
|
17690
|
+
targets: ["Windows", "Windows Forms", "WPF", "UWP", "Desktop Applications"]
|
|
17691
|
+
},
|
|
17692
|
+
// Observability
|
|
17693
|
+
{
|
|
17694
|
+
slug: "observability",
|
|
17695
|
+
name: "Observability",
|
|
17696
|
+
description: "Languages used for monitoring, metrics, logging, and security analytics.",
|
|
17697
|
+
aliases: ["observability", "monitoring", "metrics"],
|
|
17698
|
+
targets: ["Observability", "Monitoring", "Metrics", "Security analytics"]
|
|
17699
|
+
}
|
|
17700
|
+
];
|
|
17701
|
+
function findEcosystem(value) {
|
|
17702
|
+
const key = value.trim().toLowerCase();
|
|
17703
|
+
return ECOSYSTEM_REGISTRY.find((e) => e.aliases.includes(key));
|
|
17704
|
+
}
|
|
17705
|
+
function matchesEcosystem(lang, targets) {
|
|
17706
|
+
const pool = lang.tooling?.ecosystems ?? [];
|
|
17707
|
+
return targets.some((t) => pool.some((s) => s.toLowerCase().includes(t.toLowerCase())));
|
|
17708
|
+
}
|
|
17709
|
+
function ecosystemInfoFromDefinition(def) {
|
|
17710
|
+
return {
|
|
17711
|
+
slug: def.slug,
|
|
17712
|
+
name: def.name,
|
|
17713
|
+
description: def.description,
|
|
17714
|
+
aliases: def.aliases
|
|
17715
|
+
};
|
|
17716
|
+
}
|
|
17717
|
+
function getEcosystems() {
|
|
17718
|
+
return ECOSYSTEM_REGISTRY.map(ecosystemInfoFromDefinition);
|
|
17719
|
+
}
|
|
17720
|
+
|
|
17436
17721
|
// src/domain/i18n/index.ts
|
|
17437
17722
|
var localizeLanguage = (language, locale = "en") => {
|
|
17438
17723
|
const { i18n, ...metadata } = language;
|
|
@@ -18038,7 +18323,6 @@ var languages = [
|
|
|
18038
18323
|
// src/domain/package-manager/registry.ts
|
|
18039
18324
|
var PACKAGE_MANAGER_REGISTRY = [
|
|
18040
18325
|
{
|
|
18041
|
-
slug: "npm",
|
|
18042
18326
|
name: "npm",
|
|
18043
18327
|
color: "#CB3837",
|
|
18044
18328
|
logo: "https://cdn.simpleicons.org/npm",
|
|
@@ -18047,7 +18331,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18047
18331
|
targets: ["npm"]
|
|
18048
18332
|
},
|
|
18049
18333
|
{
|
|
18050
|
-
slug: "pnpm",
|
|
18051
18334
|
name: "pnpm",
|
|
18052
18335
|
color: "#F69220",
|
|
18053
18336
|
logo: "https://cdn.simpleicons.org/pnpm",
|
|
@@ -18056,7 +18339,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18056
18339
|
targets: ["pnpm"]
|
|
18057
18340
|
},
|
|
18058
18341
|
{
|
|
18059
|
-
slug: "yarn",
|
|
18060
18342
|
name: "Yarn",
|
|
18061
18343
|
color: "#2C8EBB",
|
|
18062
18344
|
logo: "https://cdn.simpleicons.org/yarn",
|
|
@@ -18065,7 +18347,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18065
18347
|
targets: ["Yarn"]
|
|
18066
18348
|
},
|
|
18067
18349
|
{
|
|
18068
|
-
slug: "pip",
|
|
18069
18350
|
name: "pip",
|
|
18070
18351
|
color: "#3775A9",
|
|
18071
18352
|
logo: "https://cdn.simpleicons.org/pypi",
|
|
@@ -18074,7 +18355,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18074
18355
|
targets: ["pip"]
|
|
18075
18356
|
},
|
|
18076
18357
|
{
|
|
18077
|
-
slug: "poetry",
|
|
18078
18358
|
name: "Poetry",
|
|
18079
18359
|
color: "#60A5FA",
|
|
18080
18360
|
logo: "https://cdn.simpleicons.org/poetry",
|
|
@@ -18083,7 +18363,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18083
18363
|
targets: ["Poetry"]
|
|
18084
18364
|
},
|
|
18085
18365
|
{
|
|
18086
|
-
slug: "uv",
|
|
18087
18366
|
name: "uv",
|
|
18088
18367
|
color: "#DE5FE9",
|
|
18089
18368
|
logo: "https://avatars.githubusercontent.com/u/115962839?v=4",
|
|
@@ -18092,7 +18371,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18092
18371
|
targets: ["uv"]
|
|
18093
18372
|
},
|
|
18094
18373
|
{
|
|
18095
|
-
slug: "conda",
|
|
18096
18374
|
name: "conda",
|
|
18097
18375
|
color: "#44A833",
|
|
18098
18376
|
logo: "https://cdn.simpleicons.org/anaconda",
|
|
@@ -18101,7 +18379,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18101
18379
|
targets: ["conda"]
|
|
18102
18380
|
},
|
|
18103
18381
|
{
|
|
18104
|
-
slug: "cargo",
|
|
18105
18382
|
name: "Cargo",
|
|
18106
18383
|
color: "#CE422B",
|
|
18107
18384
|
logo: "https://cdn.simpleicons.org/rust",
|
|
@@ -18110,7 +18387,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18110
18387
|
targets: ["Cargo"]
|
|
18111
18388
|
},
|
|
18112
18389
|
{
|
|
18113
|
-
slug: "maven",
|
|
18114
18390
|
name: "Maven",
|
|
18115
18391
|
color: "#C71A36",
|
|
18116
18392
|
logo: "https://cdn.simpleicons.org/apachemaven",
|
|
@@ -18119,7 +18395,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18119
18395
|
targets: ["Maven"]
|
|
18120
18396
|
},
|
|
18121
18397
|
{
|
|
18122
|
-
slug: "gradle",
|
|
18123
18398
|
name: "Gradle",
|
|
18124
18399
|
color: "#02303A",
|
|
18125
18400
|
logo: "https://cdn.simpleicons.org/gradle",
|
|
@@ -18128,7 +18403,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18128
18403
|
targets: ["Gradle"]
|
|
18129
18404
|
},
|
|
18130
18405
|
{
|
|
18131
|
-
slug: "nuget",
|
|
18132
18406
|
name: "NuGet",
|
|
18133
18407
|
color: "#004880",
|
|
18134
18408
|
logo: "https://cdn.simpleicons.org/nuget",
|
|
@@ -18137,7 +18411,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18137
18411
|
targets: ["NuGet"]
|
|
18138
18412
|
},
|
|
18139
18413
|
{
|
|
18140
|
-
slug: "composer",
|
|
18141
18414
|
name: "Composer",
|
|
18142
18415
|
color: "#885630",
|
|
18143
18416
|
logo: "https://cdn.simpleicons.org/composer",
|
|
@@ -18146,7 +18419,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18146
18419
|
targets: ["Composer"]
|
|
18147
18420
|
},
|
|
18148
18421
|
{
|
|
18149
|
-
slug: "hex",
|
|
18150
18422
|
name: "Hex",
|
|
18151
18423
|
color: "#6E4A7E",
|
|
18152
18424
|
logo: "https://cdn.simpleicons.org/elixir",
|
|
@@ -18155,7 +18427,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18155
18427
|
targets: ["Hex"]
|
|
18156
18428
|
},
|
|
18157
18429
|
{
|
|
18158
|
-
slug: "mix",
|
|
18159
18430
|
name: "Mix",
|
|
18160
18431
|
color: "#6E4A7E",
|
|
18161
18432
|
logo: "https://cdn.simpleicons.org/elixir",
|
|
@@ -18164,7 +18435,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18164
18435
|
targets: ["Mix"]
|
|
18165
18436
|
},
|
|
18166
18437
|
{
|
|
18167
|
-
slug: "cabal",
|
|
18168
18438
|
name: "Cabal",
|
|
18169
18439
|
color: "#5D4F85",
|
|
18170
18440
|
logo: "https://cdn.simpleicons.org/haskell",
|
|
@@ -18173,7 +18443,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18173
18443
|
targets: ["Cabal"]
|
|
18174
18444
|
},
|
|
18175
18445
|
{
|
|
18176
|
-
slug: "stack",
|
|
18177
18446
|
name: "Stack",
|
|
18178
18447
|
color: "#5D4F85",
|
|
18179
18448
|
logo: "https://cdn.simpleicons.org/haskell",
|
|
@@ -18182,7 +18451,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18182
18451
|
targets: ["Stack"]
|
|
18183
18452
|
},
|
|
18184
18453
|
{
|
|
18185
|
-
slug: "pub",
|
|
18186
18454
|
name: "pub",
|
|
18187
18455
|
color: "#0175C2",
|
|
18188
18456
|
logo: "https://cdn.simpleicons.org/dart",
|
|
@@ -18191,7 +18459,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18191
18459
|
targets: ["pub"]
|
|
18192
18460
|
},
|
|
18193
18461
|
{
|
|
18194
|
-
slug: "cocoapods",
|
|
18195
18462
|
name: "CocoaPods",
|
|
18196
18463
|
color: "#EE3322",
|
|
18197
18464
|
logo: "https://cdn.simpleicons.org/cocoapods",
|
|
@@ -18200,7 +18467,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18200
18467
|
targets: ["CocoaPods"]
|
|
18201
18468
|
},
|
|
18202
18469
|
{
|
|
18203
|
-
slug: "spm",
|
|
18204
18470
|
name: "Swift PM",
|
|
18205
18471
|
color: "#F05138",
|
|
18206
18472
|
logo: "https://cdn.simpleicons.org/swift",
|
|
@@ -18209,7 +18475,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18209
18475
|
targets: ["Swift Package Manager"]
|
|
18210
18476
|
},
|
|
18211
18477
|
{
|
|
18212
|
-
slug: "rubygems",
|
|
18213
18478
|
name: "RubyGems",
|
|
18214
18479
|
color: "#E9573F",
|
|
18215
18480
|
logo: "https://cdn.simpleicons.org/rubygems",
|
|
@@ -18218,7 +18483,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18218
18483
|
targets: ["RubyGems", "Bundler"]
|
|
18219
18484
|
},
|
|
18220
18485
|
{
|
|
18221
|
-
slug: "go-mod",
|
|
18222
18486
|
name: "Go modules",
|
|
18223
18487
|
color: "#00ADD8",
|
|
18224
18488
|
logo: "https://cdn.simpleicons.org/go",
|
|
@@ -18227,7 +18491,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18227
18491
|
targets: ["Go modules"]
|
|
18228
18492
|
},
|
|
18229
18493
|
{
|
|
18230
|
-
slug: "luarocks",
|
|
18231
18494
|
name: "LuaRocks",
|
|
18232
18495
|
color: "#2C2D72",
|
|
18233
18496
|
logo: "https://cdn.simpleicons.org/lua",
|
|
@@ -18236,7 +18499,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18236
18499
|
targets: ["LuaRocks"]
|
|
18237
18500
|
},
|
|
18238
18501
|
{
|
|
18239
|
-
slug: "opam",
|
|
18240
18502
|
name: "Opam",
|
|
18241
18503
|
color: "#EF7A08",
|
|
18242
18504
|
logo: "https://avatars.githubusercontent.com/u/1841483?v=4",
|
|
@@ -18245,7 +18507,6 @@ var PACKAGE_MANAGER_REGISTRY = [
|
|
|
18245
18507
|
targets: ["opam"]
|
|
18246
18508
|
},
|
|
18247
18509
|
{
|
|
18248
|
-
slug: "cpan",
|
|
18249
18510
|
name: "CPAN",
|
|
18250
18511
|
color: "#39457E",
|
|
18251
18512
|
logo: "https://cdn.simpleicons.org/perl",
|
|
@@ -18263,8 +18524,9 @@ function matchesPackageManager(lang, targets) {
|
|
|
18263
18524
|
return targets.some((t) => pool.some((s) => s.toLowerCase().includes(t.toLowerCase())));
|
|
18264
18525
|
}
|
|
18265
18526
|
function packageManagerInfoFromDefinition(def) {
|
|
18527
|
+
const slug = def.aliases[0] ?? def.name.toLowerCase();
|
|
18266
18528
|
return {
|
|
18267
|
-
slug
|
|
18529
|
+
slug,
|
|
18268
18530
|
name: def.name,
|
|
18269
18531
|
website: def.website,
|
|
18270
18532
|
logo: def.logo,
|
|
@@ -18276,6 +18538,148 @@ function getPackageManagers() {
|
|
|
18276
18538
|
return PACKAGE_MANAGER_REGISTRY.map(packageManagerInfoFromDefinition);
|
|
18277
18539
|
}
|
|
18278
18540
|
|
|
18541
|
+
// src/domain/paradigm/registry.ts
|
|
18542
|
+
var PARADIGM_REGISTRY = [
|
|
18543
|
+
{
|
|
18544
|
+
slug: "functional",
|
|
18545
|
+
name: "Functional",
|
|
18546
|
+
description: "Computation through function evaluation, immutability, and avoiding side effects.",
|
|
18547
|
+
aliases: ["functional", "fp", "pure-functional"],
|
|
18548
|
+
targets: ["functional", "pure functional", "pure"]
|
|
18549
|
+
},
|
|
18550
|
+
{
|
|
18551
|
+
slug: "object-oriented",
|
|
18552
|
+
name: "Object-Oriented",
|
|
18553
|
+
description: "Organizes code around objects with encapsulation, inheritance, and polymorphism.",
|
|
18554
|
+
aliases: ["object-oriented", "oop", "object-oriented-programming"],
|
|
18555
|
+
targets: ["object-oriented", "class-based", "prototype-based"]
|
|
18556
|
+
},
|
|
18557
|
+
{
|
|
18558
|
+
slug: "imperative",
|
|
18559
|
+
name: "Imperative",
|
|
18560
|
+
description: "Specifies sequences of statements that change program state step by step.",
|
|
18561
|
+
aliases: ["imperative", "procedural"],
|
|
18562
|
+
targets: ["imperative", "procedural", "structured"]
|
|
18563
|
+
},
|
|
18564
|
+
{
|
|
18565
|
+
slug: "declarative",
|
|
18566
|
+
name: "Declarative",
|
|
18567
|
+
description: "Expresses the logic of a computation without describing control flow.",
|
|
18568
|
+
aliases: ["declarative"],
|
|
18569
|
+
targets: ["declarative"]
|
|
18570
|
+
},
|
|
18571
|
+
{
|
|
18572
|
+
slug: "logic",
|
|
18573
|
+
name: "Logic",
|
|
18574
|
+
description: "Programs expressed as logical facts, rules, and constraints.",
|
|
18575
|
+
aliases: ["logic", "logic-programming", "constraint"],
|
|
18576
|
+
targets: ["logic", "constraint", "relational"]
|
|
18577
|
+
},
|
|
18578
|
+
{
|
|
18579
|
+
slug: "concurrent",
|
|
18580
|
+
name: "Concurrent",
|
|
18581
|
+
description: "Languages with first-class support for concurrency, actors, and message passing.",
|
|
18582
|
+
aliases: ["concurrent", "actor-model", "parallel"],
|
|
18583
|
+
targets: ["concurrent", "actor-model", "message-passing", "parallel", "distributed"]
|
|
18584
|
+
},
|
|
18585
|
+
{
|
|
18586
|
+
slug: "reactive",
|
|
18587
|
+
name: "Reactive",
|
|
18588
|
+
description: "Languages oriented around data flows and propagation of change.",
|
|
18589
|
+
aliases: ["reactive", "dataflow", "event-driven"],
|
|
18590
|
+
targets: ["reactive", "dataflow", "event-driven"]
|
|
18591
|
+
},
|
|
18592
|
+
{
|
|
18593
|
+
slug: "generic",
|
|
18594
|
+
name: "Generic",
|
|
18595
|
+
description: "Languages with parametric polymorphism and generic type abstractions.",
|
|
18596
|
+
aliases: ["generic", "generics"],
|
|
18597
|
+
targets: ["generic"]
|
|
18598
|
+
},
|
|
18599
|
+
{
|
|
18600
|
+
slug: "scripting",
|
|
18601
|
+
name: "Scripting",
|
|
18602
|
+
description: "Languages designed for automation, shell scripting, and task execution.",
|
|
18603
|
+
aliases: ["scripting", "shell"],
|
|
18604
|
+
targets: ["scripting", "shell"]
|
|
18605
|
+
},
|
|
18606
|
+
{
|
|
18607
|
+
slug: "query",
|
|
18608
|
+
name: "Query",
|
|
18609
|
+
description: "Languages for querying structured data sources and databases.",
|
|
18610
|
+
aliases: ["query", "querying"],
|
|
18611
|
+
targets: ["query"]
|
|
18612
|
+
},
|
|
18613
|
+
{
|
|
18614
|
+
slug: "markup",
|
|
18615
|
+
name: "Markup",
|
|
18616
|
+
description: "Languages for annotating documents with structural tags and formatting.",
|
|
18617
|
+
aliases: ["markup"],
|
|
18618
|
+
targets: ["markup", "hypertext"]
|
|
18619
|
+
},
|
|
18620
|
+
{
|
|
18621
|
+
slug: "templating",
|
|
18622
|
+
name: "Templating",
|
|
18623
|
+
description: "Languages for generating text documents from parameterized templates.",
|
|
18624
|
+
aliases: ["templating", "template"],
|
|
18625
|
+
targets: ["templating", "template"]
|
|
18626
|
+
},
|
|
18627
|
+
{
|
|
18628
|
+
slug: "array",
|
|
18629
|
+
name: "Array",
|
|
18630
|
+
description: "Languages built around vectorized array and matrix operations.",
|
|
18631
|
+
aliases: ["array", "array-oriented"],
|
|
18632
|
+
targets: ["array", "array-oriented"]
|
|
18633
|
+
},
|
|
18634
|
+
{
|
|
18635
|
+
slug: "metaprogramming",
|
|
18636
|
+
name: "Metaprogramming",
|
|
18637
|
+
description: "Languages with strong support for macros, code generation, and reflection.",
|
|
18638
|
+
aliases: ["metaprogramming", "meta", "macro"],
|
|
18639
|
+
targets: ["metaprogramming", "meta-programming", "macro"]
|
|
18640
|
+
},
|
|
18641
|
+
{
|
|
18642
|
+
slug: "systems",
|
|
18643
|
+
name: "Systems",
|
|
18644
|
+
description: "Low-level languages designed for systems, embedded, and OS programming.",
|
|
18645
|
+
aliases: ["systems", "low-level"],
|
|
18646
|
+
targets: ["systems", "low-level"]
|
|
18647
|
+
},
|
|
18648
|
+
{
|
|
18649
|
+
slug: "stack-based",
|
|
18650
|
+
name: "Stack-Based",
|
|
18651
|
+
description: "Languages where computation operates on an explicit stack.",
|
|
18652
|
+
aliases: ["stack-based", "concatenative", "stack"],
|
|
18653
|
+
targets: ["stack-based", "concatenative"]
|
|
18654
|
+
},
|
|
18655
|
+
{
|
|
18656
|
+
slug: "shader",
|
|
18657
|
+
name: "Shader",
|
|
18658
|
+
description: "Languages for GPU programming, graphics pipelines, and shader stages.",
|
|
18659
|
+
aliases: ["shader", "shading", "gpu"],
|
|
18660
|
+
targets: ["shader", "shading", "gpu-programming", "gpu-compute"]
|
|
18661
|
+
}
|
|
18662
|
+
];
|
|
18663
|
+
function findParadigm(value) {
|
|
18664
|
+
const key = value.trim().toLowerCase();
|
|
18665
|
+
return PARADIGM_REGISTRY.find((p) => p.aliases.includes(key));
|
|
18666
|
+
}
|
|
18667
|
+
function matchesParadigm(lang, targets) {
|
|
18668
|
+
const pool = lang.paradigms;
|
|
18669
|
+
return targets.some((t) => pool.some((s) => s.toLowerCase().includes(t.toLowerCase())));
|
|
18670
|
+
}
|
|
18671
|
+
function paradigmInfoFromDefinition(def) {
|
|
18672
|
+
return {
|
|
18673
|
+
slug: def.slug,
|
|
18674
|
+
name: def.name,
|
|
18675
|
+
description: def.description,
|
|
18676
|
+
aliases: def.aliases
|
|
18677
|
+
};
|
|
18678
|
+
}
|
|
18679
|
+
function getParadigms() {
|
|
18680
|
+
return PARADIGM_REGISTRY.map(paradigmInfoFromDefinition);
|
|
18681
|
+
}
|
|
18682
|
+
|
|
18279
18683
|
// src/domain/runtime/registry.ts
|
|
18280
18684
|
var RUNTIME_REGISTRY = [
|
|
18281
18685
|
// JavaScript runtimes
|
|
@@ -18777,6 +19181,7 @@ function getRuntimes() {
|
|
|
18777
19181
|
|
|
18778
19182
|
// src/api.ts
|
|
18779
19183
|
var defaultLocale = "en";
|
|
19184
|
+
var languageMap = new Map(languages.map((l) => [l.slug, l]));
|
|
18780
19185
|
var normalizeLanguageSlug = (slug) => slug.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
|
|
18781
19186
|
var localizeOptionalLanguage = (language, locale) => language ? localizeLanguage(language, locale) : void 0;
|
|
18782
19187
|
var createLanguageRequest = (getLanguage, loadLanguageModule) => {
|
|
@@ -18818,7 +19223,7 @@ var loadDetectedLanguages = async (filename) => {
|
|
|
18818
19223
|
);
|
|
18819
19224
|
return detectedLanguages.filter((language) => Boolean(language));
|
|
18820
19225
|
};
|
|
18821
|
-
var getLanguageBySlug = (slug) =>
|
|
19226
|
+
var getLanguageBySlug = (slug) => languageMap.get(slug);
|
|
18822
19227
|
var getDetectedLanguages = (filename) => detectLanguageSlugs(filename).map((slug) => getLanguageBySlug(slug)).filter((language) => Boolean(language));
|
|
18823
19228
|
var api = {
|
|
18824
19229
|
/**
|
|
@@ -18832,7 +19237,7 @@ var api = {
|
|
|
18832
19237
|
language(slug) {
|
|
18833
19238
|
const normalizedSlug = normalizeLanguageSlug(slug);
|
|
18834
19239
|
return createLanguageRequest(
|
|
18835
|
-
() =>
|
|
19240
|
+
() => languageMap.get(normalizedSlug),
|
|
18836
19241
|
() => loadLanguage(normalizedSlug)
|
|
18837
19242
|
);
|
|
18838
19243
|
},
|
|
@@ -18950,6 +19355,58 @@ var api = {
|
|
|
18950
19355
|
}
|
|
18951
19356
|
};
|
|
18952
19357
|
},
|
|
19358
|
+
/**
|
|
19359
|
+
* Selects every language that uses the given programming paradigm.
|
|
19360
|
+
*
|
|
19361
|
+
* Accepts common aliases: 'functional', 'fp', 'object-oriented', 'oop', 'declarative', etc.
|
|
19362
|
+
* Searches `language.paradigms`.
|
|
19363
|
+
*
|
|
19364
|
+
* @example
|
|
19365
|
+
* api.paradigm('functional').langs().locale('es').get();
|
|
19366
|
+
* api.paradigm('oop').info();
|
|
19367
|
+
*/
|
|
19368
|
+
paradigm(value) {
|
|
19369
|
+
const definition = findParadigm(value);
|
|
19370
|
+
const targets = definition?.targets ?? [value];
|
|
19371
|
+
return {
|
|
19372
|
+
info() {
|
|
19373
|
+
return definition ? paradigmInfoFromDefinition(definition) : void 0;
|
|
19374
|
+
},
|
|
19375
|
+
langs() {
|
|
19376
|
+
const filtered = () => languages.filter((lang) => matchesParadigm(lang, targets));
|
|
19377
|
+
return createLanguageCollectionRequest(filtered, async () => {
|
|
19378
|
+
const loaded = await Promise.all(filtered().map((lang) => loadLanguage(lang.slug)));
|
|
19379
|
+
return loaded.filter((lang) => Boolean(lang));
|
|
19380
|
+
});
|
|
19381
|
+
}
|
|
19382
|
+
};
|
|
19383
|
+
},
|
|
19384
|
+
/**
|
|
19385
|
+
* Selects every language that belongs to the given ecosystem.
|
|
19386
|
+
*
|
|
19387
|
+
* Accepts common aliases: 'web', 'jvm', 'dotnet', 'devops', 'data-science', 'embedded', etc.
|
|
19388
|
+
* Searches `tooling.ecosystems`.
|
|
19389
|
+
*
|
|
19390
|
+
* @example
|
|
19391
|
+
* api.ecosystem('jvm').langs().locale('es').get();
|
|
19392
|
+
* api.ecosystem('blockchain').info();
|
|
19393
|
+
*/
|
|
19394
|
+
ecosystem(value) {
|
|
19395
|
+
const definition = findEcosystem(value);
|
|
19396
|
+
const targets = definition?.targets ?? [value];
|
|
19397
|
+
return {
|
|
19398
|
+
info() {
|
|
19399
|
+
return definition ? ecosystemInfoFromDefinition(definition) : void 0;
|
|
19400
|
+
},
|
|
19401
|
+
langs() {
|
|
19402
|
+
const filtered = () => languages.filter((lang) => matchesEcosystem(lang, targets));
|
|
19403
|
+
return createLanguageCollectionRequest(filtered, async () => {
|
|
19404
|
+
const loaded = await Promise.all(filtered().map((lang) => loadLanguage(lang.slug)));
|
|
19405
|
+
return loaded.filter((lang) => Boolean(lang));
|
|
19406
|
+
});
|
|
19407
|
+
}
|
|
19408
|
+
};
|
|
19409
|
+
},
|
|
18953
19410
|
/**
|
|
18954
19411
|
* Detects every matching language for a filename or path.
|
|
18955
19412
|
*
|
|
@@ -19246,4 +19703,4 @@ init_zig();
|
|
|
19246
19703
|
init_ziggy();
|
|
19247
19704
|
init_zsh();
|
|
19248
19705
|
|
|
19249
|
-
export { abap, actionscript, ada, agda, algol, ampl, ante, antlr, apex, api, apl, applescript, aql, arduino, asciidoc, asp, assembly, assemblyscript, astro, austral, autohotkey, avroIdl, awk, ballerina, bash, basic, batch, bazel, bcpl, bibtex, bicep, blade, bosque, bqn, brainfuck, c, cairo, capnproto, carbon, cel, chapel, circom, clojure, cmake, cobol, coffeescript, coldfusion, coq, cpp, cql, crystal, csharp, css, cuda, cue, curry, cypher, cython, d, dafny, dart, dax, detectLanguage, detectLanguageSlug, detectLanguageSlugs, detectLanguages, detectProjectLanguages, dhall, dita, dockerfile, dot, earthly, editorconfig, eiffel, ejs, elixir, elm, erb, erlang, factor, fe, fennel, fish, flatbuffers, flux, forth, fortran, fql, freemarker, fsharp, fstar, gcode, gdscript, getCategories, getPackageManagers, getRuntimes, gettext, git, gleam, glsl, go, gradle, grain, graphql, gremlin, groovy, hack, haml, handlebars, hare, haskell, haxe, hcl, hlsl, hocon, html, hy, idris, ini, ink, io, isabelle, janet, java, javascript, jinja, jmespath, json, json5, jsonata, jsonc, jsonnet, julia, jupyterNotebook, just, kcl, kdl, koka, kotlin, kql, languages, lean, less, ligo, linkerscript, liquid, lisp, llvmIr, lobster, localizeLanguage, logo, lua, luau, makefile, mako, markdown, marlowe, mathematica, matlab, maxima, mdx, mercury, mermaid, meson, metal, modula2, mojo, moonbit, move, mumps, mustache, n1ql, nginx, nickel, nim, nix, nunjucks, nushell, oberon, objectiveC, ocaml, odin, openapi, opencl, openscad, org, pascal, perl, php, pineScript, pkl, plI, plantuml, plpgsql, plsql, pod, pony, postscript, powerquery, powershell, processing, prolog, promql, protobuf, pug, puppet, purescript, python, qmake, qml, qsharp, r, racket, raku, razor, reasonml, rebol, red, rego, rescript, restructuredtext, roc, rpg, ruby, rust, sas, scala, scheme, scss, self, simula, smalltalk, smarty, snobol, solidity, soql, spark, sparql, spl, sql, standardMl, starlark, stata, stylus, svelte, svg, svn, swift, tcl, tcsh, tex, textile, thrift, tlaPlus, toml, troff, tsql, twig, typescript, typst, unison, v, vala, vale, vba, velocity, verilog, verse, vhdl, visualBasic, vue, vyper, webassembly, wgsl, wren, xaml, xml, xpath, xquery, xslt, yaml, yara, zeek, zig, ziggy, zsh };
|
|
19706
|
+
export { abap, actionscript, ada, agda, algol, ampl, ante, antlr, apex, api, apl, applescript, aql, arduino, asciidoc, asp, assembly, assemblyscript, astro, austral, autohotkey, avroIdl, awk, ballerina, bash, basic, batch, bazel, bcpl, bibtex, bicep, blade, bosque, bqn, brainfuck, c, cairo, capnproto, carbon, cel, chapel, circom, clojure, cmake, cobol, coffeescript, coldfusion, coq, cpp, cql, crystal, csharp, css, cuda, cue, curry, cypher, cython, d, dafny, dart, dax, detectLanguage, detectLanguageSlug, detectLanguageSlugs, detectLanguages, detectProjectLanguages, dhall, dita, dockerfile, dot, earthly, editorconfig, eiffel, ejs, elixir, elm, erb, erlang, factor, fe, fennel, fish, flatbuffers, flux, forth, fortran, fql, freemarker, fsharp, fstar, gcode, gdscript, getCategories, getEcosystems, getPackageManagers, getParadigms, getRuntimes, gettext, git, gleam, glsl, go, gradle, grain, graphql, gremlin, groovy, hack, haml, handlebars, hare, haskell, haxe, hcl, hlsl, hocon, html, hy, idris, ini, ink, io, isabelle, janet, java, javascript, jinja, jmespath, json, json5, jsonata, jsonc, jsonnet, julia, jupyterNotebook, just, kcl, kdl, koka, kotlin, kql, languages, lean, less, ligo, linkerscript, liquid, lisp, llvmIr, lobster, localizeLanguage, logo, lua, luau, makefile, mako, markdown, marlowe, mathematica, matlab, maxima, mdx, mercury, mermaid, meson, metal, modula2, mojo, moonbit, move, mumps, mustache, n1ql, nginx, nickel, nim, nix, nunjucks, nushell, oberon, objectiveC, ocaml, odin, openapi, opencl, openscad, org, pascal, perl, php, pineScript, pkl, plI, plantuml, plpgsql, plsql, pod, pony, postscript, powerquery, powershell, processing, prolog, promql, protobuf, pug, puppet, purescript, python, qmake, qml, qsharp, r, racket, raku, razor, reasonml, rebol, red, rego, rescript, restructuredtext, roc, rpg, ruby, rust, sas, scala, scheme, scss, self, simula, smalltalk, smarty, snobol, solidity, soql, spark, sparql, spl, sql, standardMl, starlark, stata, stylus, svelte, svg, svn, swift, tcl, tcsh, tex, textile, thrift, tlaPlus, toml, troff, tsql, twig, typescript, typst, unison, v, vala, vale, vba, velocity, verilog, verse, vhdl, visualBasic, vue, vyper, webassembly, wgsl, wren, xaml, xml, xpath, xquery, xslt, yaml, yara, zeek, zig, ziggy, zsh };
|