stackscan 0.1.18 → 0.1.21

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 (58) hide show
  1. package/dist/chunk-2R4IRVBW.mjs +19 -0
  2. package/dist/chunk-3JWM3QKI.mjs +2013 -0
  3. package/dist/chunk-5XOMETBV.mjs +158 -0
  4. package/dist/chunk-6E7OGKNB.mjs +235 -0
  5. package/dist/chunk-75Z7C4SW.mjs +19 -0
  6. package/dist/chunk-7UBBON7U.mjs +235 -0
  7. package/dist/chunk-AU42WGBI.mjs +158 -0
  8. package/dist/chunk-BPDLELPJ.mjs +235 -0
  9. package/dist/chunk-C34SNVKF.mjs +158 -0
  10. package/dist/chunk-I3UOYSTL.mjs +2160 -0
  11. package/dist/chunk-JFE6WNCW.mjs +235 -0
  12. package/dist/chunk-K4C62LWE.mjs +158 -0
  13. package/dist/chunk-LR4VZIMK.mjs +19 -0
  14. package/dist/chunk-MEH6MW3S.mjs +235 -0
  15. package/dist/chunk-NWUJIUCE.mjs +2028 -0
  16. package/dist/chunk-QBOEIUY2.mjs +2231 -0
  17. package/dist/chunk-QNTMPVPN.mjs +19 -0
  18. package/dist/chunk-RRAAD3VC.mjs +2075 -0
  19. package/dist/chunk-TEUMOU3M.mjs +158 -0
  20. package/dist/chunk-ZI6X666F.mjs +19 -0
  21. package/dist/cli.js +287 -36
  22. package/dist/cli.mjs +3 -3
  23. package/dist/index.js +287 -36
  24. package/dist/index.mjs +6 -6
  25. package/dist/scan.js +287 -36
  26. package/dist/scan.mjs +3 -3
  27. package/dist/sync.js +287 -36
  28. package/dist/sync.mjs +3 -3
  29. package/dist/techDefinitions.js +287 -36
  30. package/dist/techDefinitions.mjs +1 -1
  31. package/dist/techMap.js +287 -36
  32. package/dist/techMap.mjs +2 -2
  33. package/package.json +1 -1
  34. package/public/assets/logos/ai/githubcopilot.svg +1 -0
  35. package/public/assets/logos/backend/convex.svg +5 -0
  36. package/public/assets/logos/backend/springboot.svg +1 -0
  37. package/public/assets/logos/cli/chalk.svg +1 -0
  38. package/public/assets/logos/cli/commander.svg +1 -0
  39. package/public/assets/logos/cli/ora.svg +1 -0
  40. package/public/assets/logos/cloud/aws.svg +38 -0
  41. package/public/assets/logos/css/mantine.svg +1 -0
  42. package/public/assets/logos/css/shadcn.svg +6 -0
  43. package/public/assets/logos/defaults/package.svg +18 -0
  44. package/public/assets/logos/defaults/terminal.svg +16 -0
  45. package/public/assets/logos/defaults/wrench.svg +15 -0
  46. package/public/assets/logos/language/css3.svg +6 -0
  47. package/public/assets/logos/language/html5.svg +6 -0
  48. package/public/assets/logos/language/typescript.svg +1 -1
  49. package/public/assets/logos/runtime/nodejs.svg +28 -0
  50. package/public/assets/logos/runtime/tsnode.svg +1 -0
  51. package/public/assets/logos/utility/cosmiconfig.svg +1 -0
  52. package/public/assets/logos/utility/fast-glob.svg +1 -0
  53. package/public/assets/logos/utility/figma.svg +1 -0
  54. package/public/assets/logos/utility/fs-extra.svg +1 -0
  55. package/public/assets/logos/utility/lucide.svg +1 -0
  56. package/public/assets/logos/utility/notion.svg +1 -0
  57. package/public/assets/logos/utility/slack.svg +1 -0
  58. package/public/assets/logos/utility/trello.svg +1 -0
@@ -0,0 +1,158 @@
1
+ import {
2
+ techMap
3
+ } from "./chunk-QNTMPVPN.mjs";
4
+ import {
5
+ copyAssets,
6
+ generateMarkdown
7
+ } from "./chunk-UJM3S22V.mjs";
8
+ import {
9
+ simple_icons_hex_default
10
+ } from "./chunk-EH2SEQZP.mjs";
11
+
12
+ // src/sync.ts
13
+ import fs from "fs";
14
+ import path from "path";
15
+ var BASE_DIR = path.join(process.cwd(), "public", "stackscan");
16
+ var SKIPPED_TECHS = [
17
+ "react-dom"
18
+ ];
19
+ async function sync(options = {}) {
20
+ console.log("\u{1F680} Starting Sync...");
21
+ if (options.color) {
22
+ console.log(`\u{1F3A8} Color mode: ${options.color}`);
23
+ }
24
+ if (!fs.existsSync(BASE_DIR)) {
25
+ console.log(`Creating stackscan directory at: ${BASE_DIR}`);
26
+ fs.mkdirSync(BASE_DIR, { recursive: true });
27
+ console.log('Please place your project folders inside "public/stackscan/" and run this command again.');
28
+ process.exit(0);
29
+ }
30
+ const entries = fs.readdirSync(BASE_DIR, { withFileTypes: true });
31
+ const projectDirs = entries.filter((dirent) => dirent.isDirectory() && dirent.name !== "input" && dirent.name !== "output");
32
+ if (projectDirs.length === 0) {
33
+ console.log('\u26A0\uFE0F No project directories found in "public/stackscan/".');
34
+ return;
35
+ }
36
+ console.log(`Found ${projectDirs.length} projects to process.
37
+ `);
38
+ const allProjects = [];
39
+ const allTechs = [];
40
+ for (const dir of projectDirs) {
41
+ const projectPath = path.join(BASE_DIR, dir.name);
42
+ const packageJsonPath = path.join(projectPath, "package.json");
43
+ if (fs.existsSync(packageJsonPath)) {
44
+ try {
45
+ const content = fs.readFileSync(packageJsonPath, "utf-8");
46
+ const pkg = JSON.parse(content);
47
+ const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
48
+ const detectedTechs = [];
49
+ Object.keys(allDeps).forEach((dep) => {
50
+ if (SKIPPED_TECHS.includes(dep)) return;
51
+ if (techMap[dep]) {
52
+ const tech = techMap[dep];
53
+ let color = null;
54
+ if (options.color === "white") color = "#FFFFFF";
55
+ else if (options.color === "black") color = "#000000";
56
+ else if (options.color && options.color.startsWith("#")) color = options.color;
57
+ else {
58
+ const depSlug = dep.toLowerCase();
59
+ const nameSlug = tech.name.toLowerCase();
60
+ const nameSlugNoSpaces = tech.name.toLowerCase().replace(/\s+/g, "");
61
+ const hex = simple_icons_hex_default[depSlug] || simple_icons_hex_default[nameSlug] || simple_icons_hex_default[nameSlugNoSpaces];
62
+ if (hex) color = `#${hex}`;
63
+ }
64
+ detectedTechs.push({
65
+ name: tech.name,
66
+ slug: dep,
67
+ logo: tech.logo,
68
+ // Raw path for resolution
69
+ color
70
+ });
71
+ }
72
+ });
73
+ let uniqueTechs = Array.from(new Set(detectedTechs.map((t) => t.slug))).map((slug) => detectedTechs.find((t) => t.slug === slug));
74
+ const seenLogos = /* @__PURE__ */ new Set();
75
+ uniqueTechs = uniqueTechs.filter((t) => {
76
+ if (seenLogos.has(t.logo)) {
77
+ return false;
78
+ }
79
+ seenLogos.add(t.logo);
80
+ return true;
81
+ });
82
+ const assetsDir = path.join(process.cwd(), "public", "assets", "logos");
83
+ if (options.copyAssets !== false) {
84
+ await copyAssets(uniqueTechs, assetsDir, { colorMode: options.color });
85
+ }
86
+ const techsWithUrls = uniqueTechs.map((t) => ({
87
+ ...t,
88
+ logo: `https://raw.githubusercontent.com/benjamindotdev/stackscan/main/public/assets/logos/${t.logo}`,
89
+ relativePath: `./public/assets/logos/${t.logo}`
90
+ }));
91
+ allTechs.push(...techsWithUrls);
92
+ fs.writeFileSync(
93
+ path.join(projectPath, "stack.json"),
94
+ JSON.stringify(techsWithUrls, null, 2)
95
+ );
96
+ const mdContent = generateMarkdown(techsWithUrls);
97
+ fs.writeFileSync(path.join(projectPath, "stack.md"), mdContent);
98
+ allProjects.push({
99
+ name: dir.name,
100
+ techs: techsWithUrls
101
+ });
102
+ console.log(`\u2705 ${dir.name.padEnd(20)} -> stack.json (${uniqueTechs.length} techs)`);
103
+ } catch (err) {
104
+ console.error(`\u274C Error processing ${dir.name}:`, err.message);
105
+ }
106
+ } else {
107
+ console.warn(`\u26A0\uFE0F Skipping "${dir.name}": No package.json found.`);
108
+ }
109
+ }
110
+ if (allProjects.length > 0) {
111
+ updateRootReadme(allProjects);
112
+ }
113
+ console.log("\n\u2728 Sync complete.");
114
+ }
115
+ function updateRootReadme(projects) {
116
+ const readmePath = path.join(process.cwd(), "README.md");
117
+ if (!fs.existsSync(readmePath)) {
118
+ console.log("\u26A0\uFE0F No root README.md found to update.");
119
+ return;
120
+ }
121
+ let readmeContent = fs.readFileSync(readmePath, "utf-8");
122
+ const startMarker = "<!-- STACKSYNC_START -->";
123
+ const endMarker = "<!-- STACKSYNC_END -->";
124
+ let newSection = `${startMarker}
125
+ ## My Projects
126
+
127
+ `;
128
+ for (const p of projects) {
129
+ newSection += `### ${p.name}
130
+ `;
131
+ newSection += `<p>
132
+ `;
133
+ for (const t of p.techs) {
134
+ const src = t.relativePath || t.logo;
135
+ newSection += ` <img src="${src}" alt="${t.name}" height="25" style="margin-right: 10px;" />
136
+ `;
137
+ }
138
+ newSection += `</p>
139
+
140
+ `;
141
+ }
142
+ newSection += `${endMarker}`;
143
+ if (readmeContent.includes(startMarker) && readmeContent.includes(endMarker)) {
144
+ const regex = new RegExp(`${startMarker}[\\s\\S]*?${endMarker}`);
145
+ readmeContent = readmeContent.replace(regex, newSection);
146
+ console.log(`\u{1F4DD} Updated root README.md with ${projects.length} projects.`);
147
+ } else {
148
+ readmeContent += `
149
+
150
+ ${newSection}`;
151
+ console.log(`\u{1F4DD} Appended projects to root README.md.`);
152
+ }
153
+ fs.writeFileSync(readmePath, readmeContent);
154
+ }
155
+
156
+ export {
157
+ sync
158
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ techDefinitions
3
+ } from "./chunk-QBOEIUY2.mjs";
4
+
5
+ // src/techMap.ts
6
+ var techMap = {};
7
+ for (const def of techDefinitions) {
8
+ for (const alias of def.aliases) {
9
+ techMap[alias] = {
10
+ name: def.name,
11
+ logo: def.logo,
12
+ type: def.category
13
+ };
14
+ }
15
+ }
16
+
17
+ export {
18
+ techMap
19
+ };
package/dist/cli.js CHANGED
@@ -160,7 +160,10 @@ var techDefinitions = [
160
160
  "id": "remix",
161
161
  "name": "Remix",
162
162
  "aliases": [
163
- "remix"
163
+ "remix",
164
+ "@remix-run/react",
165
+ "@remix-run/node",
166
+ "@remix-run/serve"
164
167
  ],
165
168
  "category": "frontend",
166
169
  "logo": "frontend/remix.svg",
@@ -240,7 +243,10 @@ var techDefinitions = [
240
243
  "id": "angular",
241
244
  "name": "Angular",
242
245
  "aliases": [
243
- "@angular/core"
246
+ "@angular/core",
247
+ "@angular/common",
248
+ "@angular/platform-browser",
249
+ "@angular/cli"
244
250
  ],
245
251
  "category": "frontend",
246
252
  "logo": "frontend/angular.svg",
@@ -250,7 +256,9 @@ var techDefinitions = [
250
256
  "id": "lit",
251
257
  "name": "Lit",
252
258
  "aliases": [
253
- "lit"
259
+ "lit",
260
+ "lit-element",
261
+ "lit-html"
254
262
  ],
255
263
  "category": "frontend",
256
264
  "logo": "frontend/lit.svg",
@@ -270,7 +278,8 @@ var techDefinitions = [
270
278
  "id": "ember",
271
279
  "name": "Ember",
272
280
  "aliases": [
273
- "ember-source"
281
+ "ember-source",
282
+ "ember-cli"
274
283
  ],
275
284
  "category": "frontend",
276
285
  "logo": "frontend/emberdotjs.svg",
@@ -370,20 +379,12 @@ var techDefinitions = [
370
379
  "id": "mantine",
371
380
  "name": "Mantine",
372
381
  "aliases": [
373
- "@mantine/core"
382
+ "@mantine/core",
383
+ "@mantine/hooks",
384
+ "@mantine/form"
374
385
  ],
375
386
  "category": "css",
376
- "logo": "fallback/mantine-logo.svg",
377
- "frameworks": []
378
- },
379
- {
380
- "id": "shadcnui",
381
- "name": "shadcn/ui",
382
- "aliases": [
383
- "shadcn"
384
- ],
385
- "category": "css",
386
- "logo": "css/shadcnui.svg",
387
+ "logo": "css/mantine.svg",
387
388
  "frameworks": []
388
389
  },
389
390
  {
@@ -420,7 +421,8 @@ var techDefinitions = [
420
421
  "id": "headlessui",
421
422
  "name": "Headless UI",
422
423
  "aliases": [
423
- "@headlessui/react"
424
+ "@headlessui/react",
425
+ "@headlessui/vue"
424
426
  ],
425
427
  "category": "css",
426
428
  "logo": "css/headlessui.svg",
@@ -430,7 +432,9 @@ var techDefinitions = [
430
432
  "id": "emotion",
431
433
  "name": "Emotion",
432
434
  "aliases": [
433
- "@emotion/react"
435
+ "@emotion/react",
436
+ "@emotion/styled",
437
+ "@emotion/css"
434
438
  ],
435
439
  "category": "css",
436
440
  "logo": "css/emotion.svg",
@@ -490,7 +494,9 @@ var techDefinitions = [
490
494
  "id": "redux",
491
495
  "name": "Redux",
492
496
  "aliases": [
493
- "redux"
497
+ "redux",
498
+ "react-redux",
499
+ "@reduxjs/toolkit"
494
500
  ],
495
501
  "category": "state",
496
502
  "logo": "state/redux.svg",
@@ -500,7 +506,9 @@ var techDefinitions = [
500
506
  "id": "mobx",
501
507
  "name": "MobX",
502
508
  "aliases": [
503
- "mobx"
509
+ "mobx",
510
+ "mobx-react",
511
+ "mobx-react-lite"
504
512
  ],
505
513
  "category": "state",
506
514
  "logo": "state/mobx.svg",
@@ -540,7 +548,9 @@ var techDefinitions = [
540
548
  "id": "xstate",
541
549
  "name": "XState",
542
550
  "aliases": [
543
- "xstate"
551
+ "xstate",
552
+ "@xstate/react",
553
+ "@xstate/fsm"
544
554
  ],
545
555
  "category": "state",
546
556
  "logo": "state/xstate.svg",
@@ -550,7 +560,10 @@ var techDefinitions = [
550
560
  "id": "tanstackquery",
551
561
  "name": "TanStack Query",
552
562
  "aliases": [
553
- "@tanstack/react-query"
563
+ "@tanstack/react-query",
564
+ "@tanstack/vue-query",
565
+ "@tanstack/svelte-query",
566
+ "react-query"
554
567
  ],
555
568
  "category": "state",
556
569
  "logo": "fallback/reactquery.svg",
@@ -760,7 +773,11 @@ var techDefinitions = [
760
773
  "id": "storybook",
761
774
  "name": "Storybook",
762
775
  "aliases": [
763
- "@storybook/react"
776
+ "storybook",
777
+ "@storybook/react",
778
+ "@storybook/vue",
779
+ "@storybook/angular",
780
+ "@storybook/addon-essentials"
764
781
  ],
765
782
  "category": "testing",
766
783
  "logo": "testing/storybook.svg",
@@ -836,6 +853,77 @@ var techDefinitions = [
836
853
  "logo": "runtime/deno.svg",
837
854
  "frameworks": []
838
855
  },
856
+ {
857
+ "id": "nodejs",
858
+ "name": "Node.js",
859
+ "aliases": [
860
+ "@types/node",
861
+ "node"
862
+ ],
863
+ "category": "runtime",
864
+ "logo": "runtime/nodejs.svg",
865
+ "frameworks": []
866
+ },
867
+ {
868
+ "id": "figma",
869
+ "name": "Figma",
870
+ "aliases": [
871
+ "figma"
872
+ ],
873
+ "category": "utility",
874
+ "logo": "utility/figma.svg",
875
+ "frameworks": []
876
+ },
877
+ {
878
+ "id": "notion",
879
+ "name": "Notion",
880
+ "aliases": [
881
+ "notion"
882
+ ],
883
+ "category": "utility",
884
+ "logo": "utility/notion.svg",
885
+ "frameworks": []
886
+ },
887
+ {
888
+ "id": "slack",
889
+ "name": "Slack",
890
+ "aliases": [
891
+ "slack"
892
+ ],
893
+ "category": "utility",
894
+ "logo": "utility/slack.svg",
895
+ "frameworks": []
896
+ },
897
+ {
898
+ "id": "trello",
899
+ "name": "Trello",
900
+ "aliases": [
901
+ "trello"
902
+ ],
903
+ "category": "utility",
904
+ "logo": "utility/trello.svg",
905
+ "frameworks": []
906
+ },
907
+ {
908
+ "id": "githubcopilot",
909
+ "name": "GitHub Copilot",
910
+ "aliases": [
911
+ "github-copilot"
912
+ ],
913
+ "category": "ai",
914
+ "logo": "ai/githubcopilot.svg",
915
+ "frameworks": []
916
+ },
917
+ {
918
+ "id": "chatgpt",
919
+ "name": "ChatGPT",
920
+ "aliases": [
921
+ "chatgpt"
922
+ ],
923
+ "category": "ai",
924
+ "logo": "ai/openai.svg",
925
+ "frameworks": []
926
+ },
839
927
  {
840
928
  "id": "adonisjs",
841
929
  "name": "AdonisJS",
@@ -940,7 +1028,8 @@ var techDefinitions = [
940
1028
  "id": "prisma",
941
1029
  "name": "Prisma",
942
1030
  "aliases": [
943
- "prisma"
1031
+ "prisma",
1032
+ "@prisma/client"
944
1033
  ],
945
1034
  "category": "orm",
946
1035
  "logo": "orm/prisma.svg",
@@ -980,7 +1069,9 @@ var techDefinitions = [
980
1069
  "id": "postgresql",
981
1070
  "name": "PostgreSQL",
982
1071
  "aliases": [
983
- "pg"
1072
+ "pg",
1073
+ "pg-promise",
1074
+ "node-postgres"
984
1075
  ],
985
1076
  "category": "database",
986
1077
  "logo": "database/postgresql.svg",
@@ -1011,7 +1102,8 @@ var techDefinitions = [
1011
1102
  "id": "sqlite",
1012
1103
  "name": "SQLite",
1013
1104
  "aliases": [
1014
- "sqlite3"
1105
+ "sqlite3",
1106
+ "better-sqlite3"
1015
1107
  ],
1016
1108
  "category": "database",
1017
1109
  "logo": "database/sqlite.svg",
@@ -1031,7 +1123,9 @@ var techDefinitions = [
1031
1123
  "id": "redis",
1032
1124
  "name": "Redis",
1033
1125
  "aliases": [
1034
- "redis"
1126
+ "redis",
1127
+ "ioredis",
1128
+ "@redis/client"
1035
1129
  ],
1036
1130
  "category": "database",
1037
1131
  "logo": "database/redis.svg",
@@ -1211,7 +1305,11 @@ var techDefinitions = [
1211
1305
  "id": "auth0",
1212
1306
  "name": "Auth0",
1213
1307
  "aliases": [
1214
- "auth0"
1308
+ "auth0",
1309
+ "auth0-js",
1310
+ "@auth0/auth0-react",
1311
+ "@auth0/auth0-vue",
1312
+ "@auth0/auth0-angular"
1215
1313
  ],
1216
1314
  "category": "auth",
1217
1315
  "logo": "auth/auth0.svg",
@@ -1221,7 +1319,9 @@ var techDefinitions = [
1221
1319
  "id": "clerk",
1222
1320
  "name": "Clerk",
1223
1321
  "aliases": [
1224
- "@clerk/nextjs"
1322
+ "@clerk/nextjs",
1323
+ "@clerk/clerk-react",
1324
+ "@clerk/clerk-sdk-node"
1225
1325
  ],
1226
1326
  "category": "auth",
1227
1327
  "logo": "auth/clerk.svg",
@@ -1231,7 +1331,9 @@ var techDefinitions = [
1231
1331
  "id": "supabaseauth",
1232
1332
  "name": "Supabase Auth",
1233
1333
  "aliases": [
1234
- "@supabase/auth-helpers-nextjs"
1334
+ "@supabase/auth-helpers-nextjs",
1335
+ "@supabase/auth-helpers-react",
1336
+ "@supabase/ssr"
1235
1337
  ],
1236
1338
  "category": "auth",
1237
1339
  "logo": "database/supabase.svg",
@@ -1241,7 +1343,10 @@ var techDefinitions = [
1241
1343
  "id": "firebaseauth",
1242
1344
  "name": "Firebase Auth",
1243
1345
  "aliases": [
1244
- "firebase"
1346
+ "firebase",
1347
+ "firebase-admin",
1348
+ "@firebase/app",
1349
+ "@firebase/auth"
1245
1350
  ],
1246
1351
  "category": "auth",
1247
1352
  "logo": "auth/firebase.svg",
@@ -1323,7 +1428,9 @@ var techDefinitions = [
1323
1428
  "id": "langchain",
1324
1429
  "name": "LangChain",
1325
1430
  "aliases": [
1326
- "langchain"
1431
+ "langchain",
1432
+ "@langchain/core",
1433
+ "@langchain/openai"
1327
1434
  ],
1328
1435
  "category": "ai",
1329
1436
  "logo": "ai/langchain.svg",
@@ -1503,10 +1610,13 @@ var techDefinitions = [
1503
1610
  "id": "aws",
1504
1611
  "name": "AWS",
1505
1612
  "aliases": [
1506
- "aws-sdk"
1613
+ "aws-sdk",
1614
+ "@aws-sdk/client-s3",
1615
+ "@aws-sdk/client-dynamodb",
1616
+ "@aws-sdk/client-lambda"
1507
1617
  ],
1508
1618
  "category": "cloud",
1509
- "logo": "cloud/amazonwebservices.svg",
1619
+ "logo": "cloud/aws.svg",
1510
1620
  "frameworks": []
1511
1621
  },
1512
1622
  {
@@ -1723,7 +1833,8 @@ var techDefinitions = [
1723
1833
  "id": "shopify",
1724
1834
  "name": "Shopify",
1725
1835
  "aliases": [
1726
- "@shopify/shopify-api"
1836
+ "@shopify/shopify-api",
1837
+ "shopify"
1727
1838
  ],
1728
1839
  "category": "cms",
1729
1840
  "logo": "cms/shopify.svg",
@@ -1983,7 +2094,9 @@ var techDefinitions = [
1983
2094
  "id": "stripe",
1984
2095
  "name": "Stripe",
1985
2096
  "aliases": [
1986
- "stripe"
2097
+ "stripe",
2098
+ "@stripe/stripe-js",
2099
+ "@stripe/react-stripe-js"
1987
2100
  ],
1988
2101
  "category": "payment",
1989
2102
  "logo": "payment/stripe.svg",
@@ -2008,6 +2121,144 @@ var techDefinitions = [
2008
2121
  "category": "payment",
2009
2122
  "logo": "fallback/lemonsqueezy.svg",
2010
2123
  "frameworks": []
2124
+ },
2125
+ {
2126
+ "id": "css",
2127
+ "name": "CSS",
2128
+ "aliases": [
2129
+ "css"
2130
+ ],
2131
+ "category": "language",
2132
+ "logo": "language/css3.svg",
2133
+ "frameworks": []
2134
+ },
2135
+ {
2136
+ "id": "html",
2137
+ "name": "HTML",
2138
+ "aliases": [
2139
+ "html"
2140
+ ],
2141
+ "category": "language",
2142
+ "logo": "language/html5.svg",
2143
+ "frameworks": []
2144
+ },
2145
+ {
2146
+ "id": "convex",
2147
+ "name": "Convex",
2148
+ "aliases": [
2149
+ "convex",
2150
+ "convex-dev"
2151
+ ],
2152
+ "category": "backend",
2153
+ "logo": "backend/convex.svg",
2154
+ "frameworks": []
2155
+ },
2156
+ {
2157
+ "id": "shadcn",
2158
+ "name": "shadcn/ui",
2159
+ "aliases": [
2160
+ "shadcn",
2161
+ "shadcn-ui",
2162
+ "shadcn/ui"
2163
+ ],
2164
+ "category": "css",
2165
+ "logo": "css/shadcn.svg",
2166
+ "frameworks": []
2167
+ },
2168
+ {
2169
+ "id": "springboot",
2170
+ "name": "Spring Boot",
2171
+ "aliases": [
2172
+ "spring-boot"
2173
+ ],
2174
+ "category": "backend",
2175
+ "logo": "backend/springboot.svg",
2176
+ "frameworks": []
2177
+ },
2178
+ {
2179
+ "id": "chalk",
2180
+ "name": "Chalk",
2181
+ "aliases": [
2182
+ "chalk"
2183
+ ],
2184
+ "category": "cli",
2185
+ "logo": "cli/chalk.svg",
2186
+ "frameworks": []
2187
+ },
2188
+ {
2189
+ "id": "commander",
2190
+ "name": "Commander.js",
2191
+ "aliases": [
2192
+ "commander"
2193
+ ],
2194
+ "category": "cli",
2195
+ "logo": "cli/commander.svg",
2196
+ "frameworks": []
2197
+ },
2198
+ {
2199
+ "id": "ora",
2200
+ "name": "Ora",
2201
+ "aliases": [
2202
+ "ora"
2203
+ ],
2204
+ "category": "cli",
2205
+ "logo": "cli/ora.svg",
2206
+ "frameworks": []
2207
+ },
2208
+ {
2209
+ "id": "cosmiconfig",
2210
+ "name": "Cosmiconfig",
2211
+ "aliases": [
2212
+ "cosmiconfig"
2213
+ ],
2214
+ "category": "utility",
2215
+ "logo": "utility/cosmiconfig.svg",
2216
+ "frameworks": []
2217
+ },
2218
+ {
2219
+ "id": "fastglob",
2220
+ "name": "fast-glob",
2221
+ "aliases": [
2222
+ "fast-glob"
2223
+ ],
2224
+ "category": "utility",
2225
+ "logo": "utility/fast-glob.svg",
2226
+ "frameworks": []
2227
+ },
2228
+ {
2229
+ "id": "fsextra",
2230
+ "name": "fs-extra",
2231
+ "aliases": [
2232
+ "fs-extra"
2233
+ ],
2234
+ "category": "utility",
2235
+ "logo": "utility/fs-extra.svg",
2236
+ "frameworks": []
2237
+ },
2238
+ {
2239
+ "id": "lucide",
2240
+ "name": "Lucide",
2241
+ "aliases": [
2242
+ "lucide",
2243
+ "lucide-react",
2244
+ "lucide-static",
2245
+ "lucide-vue-next",
2246
+ "lucide-angular",
2247
+ "lucide-svelte"
2248
+ ],
2249
+ "category": "utility",
2250
+ "logo": "utility/lucide.svg",
2251
+ "frameworks": []
2252
+ },
2253
+ {
2254
+ "id": "tsnode",
2255
+ "name": "ts-node",
2256
+ "aliases": [
2257
+ "ts-node"
2258
+ ],
2259
+ "category": "runtime",
2260
+ "logo": "runtime/tsnode.svg",
2261
+ "frameworks": []
2011
2262
  }
2012
2263
  ];
2013
2264
 
package/dist/cli.mjs CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-ACCTMJVS.mjs";
5
5
  import {
6
6
  scan
7
- } from "./chunk-OX7SYHLD.mjs";
8
- import "./chunk-LSUI3VI4.mjs";
9
- import "./chunk-LB3L25FS.mjs";
7
+ } from "./chunk-7UBBON7U.mjs";
8
+ import "./chunk-ZI6X666F.mjs";
9
+ import "./chunk-QBOEIUY2.mjs";
10
10
  import "./chunk-UJM3S22V.mjs";
11
11
  import "./chunk-NGEKE4DQ.mjs";
12
12
  import "./chunk-EOKQCSHI.mjs";