stackscan 0.1.23 → 0.1.29

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 (61) hide show
  1. package/README.md +16 -8
  2. package/dist/add.mjs +3 -2
  3. package/dist/chunk-24PM76MV.mjs +235 -0
  4. package/dist/chunk-2ZANNQYS.mjs +162 -0
  5. package/dist/chunk-5AYPCRZA.mjs +21 -0
  6. package/dist/chunk-CFGUYUPP.mjs +42 -0
  7. package/dist/chunk-DF3YGYKJ.mjs +2241 -0
  8. package/dist/chunk-E75XPZ2U.mjs +2237 -0
  9. package/dist/chunk-GFZMRHRT.mjs +181 -0
  10. package/dist/chunk-HKCVFKM4.mjs +19 -0
  11. package/dist/chunk-HT4RZGLE.mjs +267 -0
  12. package/dist/chunk-IFB4PCXR.mjs +28 -0
  13. package/dist/chunk-MFJXW5RR.mjs +6 -0
  14. package/dist/chunk-SECL5E42.mjs +23 -0
  15. package/dist/chunk-STCTH5AY.mjs +15619 -0
  16. package/dist/chunk-XNTLNSF6.mjs +158 -0
  17. package/dist/chunk-ZYFKPOWH.mjs +54 -0
  18. package/dist/cli.js +48 -15
  19. package/dist/cli.mjs +11 -7
  20. package/dist/defaults.mjs +3 -2
  21. package/dist/defaults.test.d.mts +2 -0
  22. package/dist/defaults.test.d.ts +2 -0
  23. package/dist/defaults.test.js +17007 -0
  24. package/dist/defaults.test.mjs +30 -0
  25. package/dist/index.d.mts +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.js +50 -17
  28. package/dist/index.mjs +18 -12
  29. package/dist/magic-string.es-WH4FGKAB.mjs +1315 -0
  30. package/dist/output.d.mts +3 -3
  31. package/dist/output.d.ts +3 -3
  32. package/dist/output.mjs +4 -3
  33. package/dist/output.test.d.mts +2 -0
  34. package/dist/output.test.d.ts +2 -0
  35. package/dist/output.test.js +20687 -0
  36. package/dist/output.test.mjs +160 -0
  37. package/dist/scan.js +48 -15
  38. package/dist/scan.mjs +7 -6
  39. package/dist/scan.test.d.mts +2 -0
  40. package/dist/scan.test.d.ts +2 -0
  41. package/dist/scan.test.js +23184 -0
  42. package/dist/scan.test.mjs +183 -0
  43. package/dist/simple-icons-hex.mjs +1 -0
  44. package/dist/sync.js +15 -10
  45. package/dist/sync.mjs +7 -6
  46. package/dist/techDefinitions.js +13 -8
  47. package/dist/techDefinitions.mjs +3 -2
  48. package/dist/techMap.js +13 -8
  49. package/dist/techMap.mjs +4 -3
  50. package/dist/techMap.test.d.mts +2 -0
  51. package/dist/techMap.test.d.ts +2 -0
  52. package/dist/techMap.test.js +19240 -0
  53. package/dist/techMap.test.mjs +38 -0
  54. package/dist/types.d.mts +2 -2
  55. package/dist/types.d.ts +2 -2
  56. package/dist/types.mjs +3 -2
  57. package/package.json +9 -4
  58. package/public/assets/logos/defaults/package.svg +18 -18
  59. package/public/assets/logos/defaults/terminal.svg +16 -16
  60. package/public/assets/logos/defaults/wrench.svg +15 -15
  61. package/public/assets/logos/testing/vitest.svg +1 -1
@@ -0,0 +1,38 @@
1
+ import {
2
+ techMap
3
+ } from "./chunk-SECL5E42.mjs";
4
+ import {
5
+ techDefinitions
6
+ } from "./chunk-DF3YGYKJ.mjs";
7
+ import {
8
+ describe,
9
+ globalExpect,
10
+ it
11
+ } from "./chunk-STCTH5AY.mjs";
12
+ import {
13
+ init_esm_shims
14
+ } from "./chunk-5AYPCRZA.mjs";
15
+ import "./chunk-CFGUYUPP.mjs";
16
+
17
+ // src/techMap.test.ts
18
+ init_esm_shims();
19
+ describe("techMap", () => {
20
+ it("should be populated", () => {
21
+ globalExpect(Object.keys(techMap).length).toBeGreaterThan(0);
22
+ });
23
+ it("should map typescript alias correctly", () => {
24
+ globalExpect(techMap["typescript"]).toEqual({
25
+ name: "TypeScript",
26
+ logo: "language/typescript.svg",
27
+ type: "language"
28
+ });
29
+ });
30
+ it("should include all aliases from definitions", () => {
31
+ techDefinitions.forEach((def) => {
32
+ def.aliases.forEach((alias) => {
33
+ globalExpect(techMap[alias]).toBeDefined();
34
+ globalExpect(techMap[alias].name).toBe(def.name);
35
+ });
36
+ });
37
+ });
38
+ });
package/dist/types.d.mts CHANGED
@@ -12,7 +12,7 @@ interface TechDefinition {
12
12
  logo: string;
13
13
  frameworks?: string[];
14
14
  }
15
- interface StackSyncConfig {
15
+ interface StackScanConfig {
16
16
  ignore?: string[];
17
17
  aliases?: Record<string, string>;
18
18
  logosPath?: string;
@@ -21,4 +21,4 @@ interface StackSyncConfig {
21
21
  iconColors?: Record<string, string>;
22
22
  }
23
23
 
24
- export type { DetectorResult, StackSyncConfig, TechDefinition };
24
+ export type { DetectorResult, StackScanConfig, TechDefinition };
package/dist/types.d.ts CHANGED
@@ -12,7 +12,7 @@ interface TechDefinition {
12
12
  logo: string;
13
13
  frameworks?: string[];
14
14
  }
15
- interface StackSyncConfig {
15
+ interface StackScanConfig {
16
16
  ignore?: string[];
17
17
  aliases?: Record<string, string>;
18
18
  logosPath?: string;
@@ -21,4 +21,4 @@ interface StackSyncConfig {
21
21
  iconColors?: Record<string, string>;
22
22
  }
23
23
 
24
- export type { DetectorResult, StackSyncConfig, TechDefinition };
24
+ export type { DetectorResult, StackScanConfig, TechDefinition };
package/dist/types.mjs CHANGED
@@ -1,2 +1,3 @@
1
- import "./chunk-WAXGOBY2.mjs";
2
- import "./chunk-EOKQCSHI.mjs";
1
+ import "./chunk-MFJXW5RR.mjs";
2
+ import "./chunk-5AYPCRZA.mjs";
3
+ import "./chunk-CFGUYUPP.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stackscan",
3
- "version": "0.1.23",
3
+ "version": "0.1.29",
4
4
  "description": "Automatically detect tech stacks from repositories and generate logos, JSON, and markdown for portfolios.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -11,8 +11,11 @@
11
11
  "scripts": {
12
12
  "build": "tsup src --format cjs,esm --dts --shims",
13
13
  "dev": "tsup src --watch",
14
- "start": "node dist/cli.js",
15
- "scan": "ts-node src/scan.ts"
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "test:coverage": "vitest run --coverage",
17
+ "scan": "ts-node src/scan.ts",
18
+ "start": "node dist/cli.js"
16
19
  },
17
20
  "keywords": [
18
21
  "tech-stack",
@@ -50,8 +53,10 @@
50
53
  "devDependencies": {
51
54
  "@types/fs-extra": "^11.0.4",
52
55
  "@types/node": "^24.10.1",
56
+ "@vitest/coverage-v8": "^4.0.18",
53
57
  "simple-icons": "^15.22.0",
54
58
  "tsup": "^8.0.1",
55
- "typescript": "^5.6.3"
59
+ "typescript": "^5.6.3",
60
+ "vitest": "^4.0.18"
56
61
  }
57
62
  }
@@ -1,18 +1,18 @@
1
- <!-- @license lucide-static v0.555.0 - ISC -->
2
- <svg
3
- class="lucide lucide-package"
4
- xmlns="http://www.w3.org/2000/svg"
5
- width="24"
6
- height="24"
7
- viewBox="0 0 24 24"
8
- fill="none"
9
- stroke="currentColor"
10
- stroke-width="2"
11
- stroke-linecap="round"
12
- stroke-linejoin="round"
13
- >
14
- <path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" />
15
- <path d="M12 22V12" />
16
- <polyline points="3.29 7 12 12 20.71 7" />
17
- <path d="m7.5 4.27 9 5.15" />
18
- </svg>
1
+ <!-- @license lucide-static v0.555.0 - ISC -->
2
+ <svg
3
+ class="lucide lucide-package"
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="24"
6
+ height="24"
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ stroke="currentColor"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ >
14
+ <path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" />
15
+ <path d="M12 22V12" />
16
+ <polyline points="3.29 7 12 12 20.71 7" />
17
+ <path d="m7.5 4.27 9 5.15" />
18
+ </svg>
@@ -1,16 +1,16 @@
1
- <!-- @license lucide-static v0.555.0 - ISC -->
2
- <svg
3
- class="lucide lucide-terminal"
4
- xmlns="http://www.w3.org/2000/svg"
5
- width="24"
6
- height="24"
7
- viewBox="0 0 24 24"
8
- fill="none"
9
- stroke="currentColor"
10
- stroke-width="2"
11
- stroke-linecap="round"
12
- stroke-linejoin="round"
13
- >
14
- <path d="M12 19h8" />
15
- <path d="m4 17 6-6-6-6" />
16
- </svg>
1
+ <!-- @license lucide-static v0.555.0 - ISC -->
2
+ <svg
3
+ class="lucide lucide-terminal"
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="24"
6
+ height="24"
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ stroke="currentColor"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ >
14
+ <path d="M12 19h8" />
15
+ <path d="m4 17 6-6-6-6" />
16
+ </svg>
@@ -1,15 +1,15 @@
1
- <!-- @license lucide-static v0.555.0 - ISC -->
2
- <svg
3
- class="lucide lucide-wrench"
4
- xmlns="http://www.w3.org/2000/svg"
5
- width="24"
6
- height="24"
7
- viewBox="0 0 24 24"
8
- fill="none"
9
- stroke="currentColor"
10
- stroke-width="2"
11
- stroke-linecap="round"
12
- stroke-linejoin="round"
13
- >
14
- <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z" />
15
- </svg>
1
+ <!-- @license lucide-static v0.555.0 - ISC -->
2
+ <svg
3
+ class="lucide lucide-wrench"
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="24"
6
+ height="24"
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ stroke="currentColor"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ >
14
+ <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z" />
15
+ </svg>
@@ -1 +1 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vitest</title><path d="M13.74024 1.05293a.49504.49504 0 0 0-.1569.02512.49338.49338 0 0 0-.25056.1876L7.59513 9.56159a.4895.4895 0 0 0-.08373.22327.48846.48846 0 0 0 .03163.23629.4893.4893 0 0 0 .13985.19319.4927.4927 0 0 0 .2149.10481l3.70685.78609-.22947 4.58007a.48834.48834 0 0 0 .08466.30017.49205.49205 0 0 0 .24931.18854c.10157.03398.21174.03444.3135.00064a.49387.49387 0 0 0 .25056-.18761l5.73735-8.29594a.4884.4884 0 0 0 .08404-.22327c.009-.08015-.0016-.16137-.03163-.23629a.48835.48835 0 0 0-.13985-.19319.49318.49318 0 0 0-.2149-.1048l-3.70686-.7861.22947-4.58008a.48802.48802 0 0 0-.08466-.30017.4913.4913 0 0 0-.24931-.18853.49439.49439 0 0 0-.1566-.02574zM1.15697 9.78795c-.30647.0012-.60009.12378-.81679.34048a1.16107 1.16107 0 0 0-.34017.81648 1.162 1.162 0 0 0 .33366.81957l10.84241 10.8421a1.15762 1.15762 0 0 0 .37677.25211 1.1583 1.1583 0 0 0 .44467.08838c.00084 0 .0016-.00031.0025-.00031.00073 0 .0014.00031.0022.00031a1.15827 1.15827 0 0 0 .44467-.08838 1.15731 1.15731 0 0 0 .37677-.2521l10.84236-10.8421a1.16272 1.16272 0 0 0 .33397-.81958c-.0013-.30647-.12376-.59976-.34048-.81648a1.1616 1.1616 0 0 0-.81679-.34048 1.16114 1.16114 0 0 0-.81926.33366l-5.4012 5.4009c-.0078.0074-.01718.01255-.02482.02015L12 20.14011l-4.59776-4.59745c-.0074-.0074-.01659-.01238-.02419-.01954l-5.4015-5.40151a1.162 1.162 0 0 0-.81958-.33366Z"/></svg>
1
+ <svg fill="#6E9F18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vitest</title><path d="M13.74024 1.05293a.49504.49504 0 0 0-.1569.02512.49338.49338 0 0 0-.25056.1876L7.59513 9.56159a.4895.4895 0 0 0-.08373.22327.48846.48846 0 0 0 .03163.23629.4893.4893 0 0 0 .13985.19319.4927.4927 0 0 0 .2149.10481l3.70685.78609-.22947 4.58007a.48834.48834 0 0 0 .08466.30017.49205.49205 0 0 0 .24931.18854c.10157.03398.21174.03444.3135.00064a.49387.49387 0 0 0 .25056-.18761l5.73735-8.29594a.4884.4884 0 0 0 .08404-.22327c.009-.08015-.0016-.16137-.03163-.23629a.48835.48835 0 0 0-.13985-.19319.49318.49318 0 0 0-.2149-.1048l-3.70686-.7861.22947-4.58008a.48802.48802 0 0 0-.08466-.30017.4913.4913 0 0 0-.24931-.18853.49439.49439 0 0 0-.1566-.02574zM1.15697 9.78795c-.30647.0012-.60009.12378-.81679.34048a1.16107 1.16107 0 0 0-.34017.81648 1.162 1.162 0 0 0 .33366.81957l10.84241 10.8421a1.15762 1.15762 0 0 0 .37677.25211 1.1583 1.1583 0 0 0 .44467.08838c.00084 0 .0016-.00031.0025-.00031.00073 0 .0014.00031.0022.00031a1.15827 1.15827 0 0 0 .44467-.08838 1.15731 1.15731 0 0 0 .37677-.2521l10.84236-10.8421a1.16272 1.16272 0 0 0 .33397-.81958c-.0013-.30647-.12376-.59976-.34048-.81648a1.1616 1.1616 0 0 0-.81679-.34048 1.16114 1.16114 0 0 0-.81926.33366l-5.4012 5.4009c-.0078.0074-.01718.01255-.02482.02015L12 20.14011l-4.59776-4.59745c-.0074-.0074-.01659-.01238-.02419-.01954l-5.4015-5.40151a1.162 1.162 0 0 0-.81958-.33366Z"/></svg>