stackscan 0.1.23 → 0.1.24
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 +6 -8
- package/dist/chunk-24PM76MV.mjs +235 -0
- package/dist/chunk-E75XPZ2U.mjs +2237 -0
- package/dist/chunk-HKCVFKM4.mjs +19 -0
- package/dist/chunk-XNTLNSF6.mjs +158 -0
- package/dist/cli.js +14 -8
- package/dist/cli.mjs +3 -3
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +16 -10
- package/dist/index.mjs +4 -4
- package/dist/output.d.mts +3 -3
- package/dist/output.d.ts +3 -3
- package/dist/scan.js +14 -8
- package/dist/scan.mjs +3 -3
- package/dist/sync.js +14 -8
- package/dist/sync.mjs +3 -3
- package/dist/techDefinitions.js +12 -6
- package/dist/techDefinitions.mjs +1 -1
- package/dist/techMap.js +12 -6
- package/dist/techMap.mjs +2 -2
- package/dist/types.d.mts +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
techDefinitions
|
|
3
|
+
} from "./chunk-E75XPZ2U.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
|
+
};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import {
|
|
2
|
+
techMap
|
|
3
|
+
} from "./chunk-HKCVFKM4.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 = "<!-- STACKSCAN_START -->";
|
|
123
|
+
const endMarker = "<!-- STACKSCAN_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
|
+
};
|
package/dist/cli.js
CHANGED
|
@@ -868,7 +868,8 @@ var techDefinitions = [
|
|
|
868
868
|
"id": "figma",
|
|
869
869
|
"name": "Figma",
|
|
870
870
|
"aliases": [
|
|
871
|
-
"figma"
|
|
871
|
+
"figma",
|
|
872
|
+
"figma-api"
|
|
872
873
|
],
|
|
873
874
|
"category": "utility",
|
|
874
875
|
"logo": "utility/figma.svg",
|
|
@@ -878,7 +879,8 @@ var techDefinitions = [
|
|
|
878
879
|
"id": "notion",
|
|
879
880
|
"name": "Notion",
|
|
880
881
|
"aliases": [
|
|
881
|
-
"notion"
|
|
882
|
+
"notion",
|
|
883
|
+
"@notionhq/client"
|
|
882
884
|
],
|
|
883
885
|
"category": "utility",
|
|
884
886
|
"logo": "utility/notion.svg",
|
|
@@ -888,7 +890,8 @@ var techDefinitions = [
|
|
|
888
890
|
"id": "slack",
|
|
889
891
|
"name": "Slack",
|
|
890
892
|
"aliases": [
|
|
891
|
-
"slack"
|
|
893
|
+
"slack",
|
|
894
|
+
"@slack/web-api"
|
|
892
895
|
],
|
|
893
896
|
"category": "utility",
|
|
894
897
|
"logo": "utility/slack.svg",
|
|
@@ -908,7 +911,8 @@ var techDefinitions = [
|
|
|
908
911
|
"id": "githubcopilot",
|
|
909
912
|
"name": "GitHub Copilot",
|
|
910
913
|
"aliases": [
|
|
911
|
-
"github-copilot"
|
|
914
|
+
"github-copilot",
|
|
915
|
+
"github-copilot-extension"
|
|
912
916
|
],
|
|
913
917
|
"category": "ai",
|
|
914
918
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -1540,7 +1544,8 @@ var techDefinitions = [
|
|
|
1540
1544
|
"id": "docker",
|
|
1541
1545
|
"name": "Docker",
|
|
1542
1546
|
"aliases": [
|
|
1543
|
-
"docker"
|
|
1547
|
+
"docker",
|
|
1548
|
+
"dockerode"
|
|
1544
1549
|
],
|
|
1545
1550
|
"category": "container",
|
|
1546
1551
|
"logo": "container/docker.svg",
|
|
@@ -1653,7 +1658,8 @@ var techDefinitions = [
|
|
|
1653
1658
|
"id": "netlify",
|
|
1654
1659
|
"name": "Netlify",
|
|
1655
1660
|
"aliases": [
|
|
1656
|
-
"netlify"
|
|
1661
|
+
"netlify",
|
|
1662
|
+
"netlify-cli"
|
|
1657
1663
|
],
|
|
1658
1664
|
"category": "hosting",
|
|
1659
1665
|
"logo": "hosting/netlify.svg",
|
|
@@ -6006,8 +6012,8 @@ function updateRootReadme(projects) {
|
|
|
6006
6012
|
return;
|
|
6007
6013
|
}
|
|
6008
6014
|
let readmeContent = import_fs.default.readFileSync(readmePath, "utf-8");
|
|
6009
|
-
const startMarker = "<!--
|
|
6010
|
-
const endMarker = "<!--
|
|
6015
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
6016
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
6011
6017
|
let newSection = `${startMarker}
|
|
6012
6018
|
## My Projects
|
|
6013
6019
|
|
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-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-24PM76MV.mjs";
|
|
8
|
+
import "./chunk-HKCVFKM4.mjs";
|
|
9
|
+
import "./chunk-E75XPZ2U.mjs";
|
|
10
10
|
import "./chunk-UJM3S22V.mjs";
|
|
11
11
|
import "./chunk-NGEKE4DQ.mjs";
|
|
12
12
|
import "./chunk-EOKQCSHI.mjs";
|
package/dist/index.d.mts
CHANGED
|
@@ -5,4 +5,4 @@ export { scan } from './scan.mjs';
|
|
|
5
5
|
export { sync } from './sync.mjs';
|
|
6
6
|
export { techDefinitions } from './techDefinitions.mjs';
|
|
7
7
|
export { techMap } from './techMap.mjs';
|
|
8
|
-
export { DetectorResult,
|
|
8
|
+
export { DetectorResult, StackScanConfig, TechDefinition } from './types.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export { scan } from './scan.js';
|
|
|
5
5
|
export { sync } from './sync.js';
|
|
6
6
|
export { techDefinitions } from './techDefinitions.js';
|
|
7
7
|
export { techMap } from './techMap.js';
|
|
8
|
-
export { DetectorResult,
|
|
8
|
+
export { DetectorResult, StackScanConfig, TechDefinition } from './types.js';
|
package/dist/index.js
CHANGED
|
@@ -4502,7 +4502,8 @@ var techDefinitions = [
|
|
|
4502
4502
|
"id": "figma",
|
|
4503
4503
|
"name": "Figma",
|
|
4504
4504
|
"aliases": [
|
|
4505
|
-
"figma"
|
|
4505
|
+
"figma",
|
|
4506
|
+
"figma-api"
|
|
4506
4507
|
],
|
|
4507
4508
|
"category": "utility",
|
|
4508
4509
|
"logo": "utility/figma.svg",
|
|
@@ -4512,7 +4513,8 @@ var techDefinitions = [
|
|
|
4512
4513
|
"id": "notion",
|
|
4513
4514
|
"name": "Notion",
|
|
4514
4515
|
"aliases": [
|
|
4515
|
-
"notion"
|
|
4516
|
+
"notion",
|
|
4517
|
+
"@notionhq/client"
|
|
4516
4518
|
],
|
|
4517
4519
|
"category": "utility",
|
|
4518
4520
|
"logo": "utility/notion.svg",
|
|
@@ -4522,7 +4524,8 @@ var techDefinitions = [
|
|
|
4522
4524
|
"id": "slack",
|
|
4523
4525
|
"name": "Slack",
|
|
4524
4526
|
"aliases": [
|
|
4525
|
-
"slack"
|
|
4527
|
+
"slack",
|
|
4528
|
+
"@slack/web-api"
|
|
4526
4529
|
],
|
|
4527
4530
|
"category": "utility",
|
|
4528
4531
|
"logo": "utility/slack.svg",
|
|
@@ -4542,7 +4545,8 @@ var techDefinitions = [
|
|
|
4542
4545
|
"id": "githubcopilot",
|
|
4543
4546
|
"name": "GitHub Copilot",
|
|
4544
4547
|
"aliases": [
|
|
4545
|
-
"github-copilot"
|
|
4548
|
+
"github-copilot",
|
|
4549
|
+
"github-copilot-extension"
|
|
4546
4550
|
],
|
|
4547
4551
|
"category": "ai",
|
|
4548
4552
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -5174,7 +5178,8 @@ var techDefinitions = [
|
|
|
5174
5178
|
"id": "docker",
|
|
5175
5179
|
"name": "Docker",
|
|
5176
5180
|
"aliases": [
|
|
5177
|
-
"docker"
|
|
5181
|
+
"docker",
|
|
5182
|
+
"dockerode"
|
|
5178
5183
|
],
|
|
5179
5184
|
"category": "container",
|
|
5180
5185
|
"logo": "container/docker.svg",
|
|
@@ -5287,7 +5292,8 @@ var techDefinitions = [
|
|
|
5287
5292
|
"id": "netlify",
|
|
5288
5293
|
"name": "Netlify",
|
|
5289
5294
|
"aliases": [
|
|
5290
|
-
"netlify"
|
|
5295
|
+
"netlify",
|
|
5296
|
+
"netlify-cli"
|
|
5291
5297
|
],
|
|
5292
5298
|
"category": "hosting",
|
|
5293
5299
|
"logo": "hosting/netlify.svg",
|
|
@@ -6093,8 +6099,8 @@ function updateRootReadme(projects) {
|
|
|
6093
6099
|
return;
|
|
6094
6100
|
}
|
|
6095
6101
|
let readmeContent = import_fs.default.readFileSync(readmePath, "utf-8");
|
|
6096
|
-
const startMarker = "<!--
|
|
6097
|
-
const endMarker = "<!--
|
|
6102
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
6103
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
6098
6104
|
let newSection = `${startMarker}
|
|
6099
6105
|
## My Projects
|
|
6100
6106
|
|
|
@@ -6237,8 +6243,8 @@ function updateRootReadme2(projects) {
|
|
|
6237
6243
|
return;
|
|
6238
6244
|
}
|
|
6239
6245
|
let readmeContent = import_fs2.default.readFileSync(readmePath, "utf-8");
|
|
6240
|
-
const startMarker = "<!--
|
|
6241
|
-
const endMarker = "<!--
|
|
6246
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
6247
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
6242
6248
|
let newSection = `${startMarker}
|
|
6243
6249
|
## My Projects
|
|
6244
6250
|
|
package/dist/index.mjs
CHANGED
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
} from "./chunk-ACCTMJVS.mjs";
|
|
5
5
|
import {
|
|
6
6
|
scan
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-24PM76MV.mjs";
|
|
8
8
|
import {
|
|
9
9
|
sync
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XNTLNSF6.mjs";
|
|
11
11
|
import {
|
|
12
12
|
techMap
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-HKCVFKM4.mjs";
|
|
14
14
|
import {
|
|
15
15
|
techDefinitions
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-E75XPZ2U.mjs";
|
|
17
17
|
import {
|
|
18
18
|
copyAssets,
|
|
19
19
|
generateMarkdown,
|
package/dist/output.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DetectorResult,
|
|
1
|
+
import { DetectorResult, StackScanConfig } from './types.mjs';
|
|
2
2
|
|
|
3
|
-
declare function writeOutput(outPath: string, techs: DetectorResult[], config:
|
|
4
|
-
declare function copyAssets(techs: DetectorResult[], dest: string, config:
|
|
3
|
+
declare function writeOutput(outPath: string, techs: DetectorResult[], config: StackScanConfig, format?: "json" | "markdown", assetsOutPath?: string): Promise<void>;
|
|
4
|
+
declare function copyAssets(techs: DetectorResult[], dest: string, config: StackScanConfig): Promise<Set<string>>;
|
|
5
5
|
declare function generateMarkdown(techs: DetectorResult[], assetsPath?: string, availableLogos?: Set<string>): string;
|
|
6
6
|
|
|
7
7
|
export { copyAssets, generateMarkdown, writeOutput };
|
package/dist/output.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DetectorResult,
|
|
1
|
+
import { DetectorResult, StackScanConfig } from './types.js';
|
|
2
2
|
|
|
3
|
-
declare function writeOutput(outPath: string, techs: DetectorResult[], config:
|
|
4
|
-
declare function copyAssets(techs: DetectorResult[], dest: string, config:
|
|
3
|
+
declare function writeOutput(outPath: string, techs: DetectorResult[], config: StackScanConfig, format?: "json" | "markdown", assetsOutPath?: string): Promise<void>;
|
|
4
|
+
declare function copyAssets(techs: DetectorResult[], dest: string, config: StackScanConfig): Promise<Set<string>>;
|
|
5
5
|
declare function generateMarkdown(techs: DetectorResult[], assetsPath?: string, availableLogos?: Set<string>): string;
|
|
6
6
|
|
|
7
7
|
export { copyAssets, generateMarkdown, writeOutput };
|
package/dist/scan.js
CHANGED
|
@@ -876,7 +876,8 @@ var techDefinitions = [
|
|
|
876
876
|
"id": "figma",
|
|
877
877
|
"name": "Figma",
|
|
878
878
|
"aliases": [
|
|
879
|
-
"figma"
|
|
879
|
+
"figma",
|
|
880
|
+
"figma-api"
|
|
880
881
|
],
|
|
881
882
|
"category": "utility",
|
|
882
883
|
"logo": "utility/figma.svg",
|
|
@@ -886,7 +887,8 @@ var techDefinitions = [
|
|
|
886
887
|
"id": "notion",
|
|
887
888
|
"name": "Notion",
|
|
888
889
|
"aliases": [
|
|
889
|
-
"notion"
|
|
890
|
+
"notion",
|
|
891
|
+
"@notionhq/client"
|
|
890
892
|
],
|
|
891
893
|
"category": "utility",
|
|
892
894
|
"logo": "utility/notion.svg",
|
|
@@ -896,7 +898,8 @@ var techDefinitions = [
|
|
|
896
898
|
"id": "slack",
|
|
897
899
|
"name": "Slack",
|
|
898
900
|
"aliases": [
|
|
899
|
-
"slack"
|
|
901
|
+
"slack",
|
|
902
|
+
"@slack/web-api"
|
|
900
903
|
],
|
|
901
904
|
"category": "utility",
|
|
902
905
|
"logo": "utility/slack.svg",
|
|
@@ -916,7 +919,8 @@ var techDefinitions = [
|
|
|
916
919
|
"id": "githubcopilot",
|
|
917
920
|
"name": "GitHub Copilot",
|
|
918
921
|
"aliases": [
|
|
919
|
-
"github-copilot"
|
|
922
|
+
"github-copilot",
|
|
923
|
+
"github-copilot-extension"
|
|
920
924
|
],
|
|
921
925
|
"category": "ai",
|
|
922
926
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -1548,7 +1552,8 @@ var techDefinitions = [
|
|
|
1548
1552
|
"id": "docker",
|
|
1549
1553
|
"name": "Docker",
|
|
1550
1554
|
"aliases": [
|
|
1551
|
-
"docker"
|
|
1555
|
+
"docker",
|
|
1556
|
+
"dockerode"
|
|
1552
1557
|
],
|
|
1553
1558
|
"category": "container",
|
|
1554
1559
|
"logo": "container/docker.svg",
|
|
@@ -1661,7 +1666,8 @@ var techDefinitions = [
|
|
|
1661
1666
|
"id": "netlify",
|
|
1662
1667
|
"name": "Netlify",
|
|
1663
1668
|
"aliases": [
|
|
1664
|
-
"netlify"
|
|
1669
|
+
"netlify",
|
|
1670
|
+
"netlify-cli"
|
|
1665
1671
|
],
|
|
1666
1672
|
"category": "hosting",
|
|
1667
1673
|
"logo": "hosting/netlify.svg",
|
|
@@ -6014,8 +6020,8 @@ function updateRootReadme(projects) {
|
|
|
6014
6020
|
return;
|
|
6015
6021
|
}
|
|
6016
6022
|
let readmeContent = import_fs.default.readFileSync(readmePath, "utf-8");
|
|
6017
|
-
const startMarker = "<!--
|
|
6018
|
-
const endMarker = "<!--
|
|
6023
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
6024
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
6019
6025
|
let newSection = `${startMarker}
|
|
6020
6026
|
## My Projects
|
|
6021
6027
|
|
package/dist/scan.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
scan
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-24PM76MV.mjs";
|
|
4
|
+
import "./chunk-HKCVFKM4.mjs";
|
|
5
|
+
import "./chunk-E75XPZ2U.mjs";
|
|
6
6
|
import "./chunk-UJM3S22V.mjs";
|
|
7
7
|
import "./chunk-NGEKE4DQ.mjs";
|
|
8
8
|
import "./chunk-EOKQCSHI.mjs";
|
package/dist/sync.js
CHANGED
|
@@ -876,7 +876,8 @@ var techDefinitions = [
|
|
|
876
876
|
"id": "figma",
|
|
877
877
|
"name": "Figma",
|
|
878
878
|
"aliases": [
|
|
879
|
-
"figma"
|
|
879
|
+
"figma",
|
|
880
|
+
"figma-api"
|
|
880
881
|
],
|
|
881
882
|
"category": "utility",
|
|
882
883
|
"logo": "utility/figma.svg",
|
|
@@ -886,7 +887,8 @@ var techDefinitions = [
|
|
|
886
887
|
"id": "notion",
|
|
887
888
|
"name": "Notion",
|
|
888
889
|
"aliases": [
|
|
889
|
-
"notion"
|
|
890
|
+
"notion",
|
|
891
|
+
"@notionhq/client"
|
|
890
892
|
],
|
|
891
893
|
"category": "utility",
|
|
892
894
|
"logo": "utility/notion.svg",
|
|
@@ -896,7 +898,8 @@ var techDefinitions = [
|
|
|
896
898
|
"id": "slack",
|
|
897
899
|
"name": "Slack",
|
|
898
900
|
"aliases": [
|
|
899
|
-
"slack"
|
|
901
|
+
"slack",
|
|
902
|
+
"@slack/web-api"
|
|
900
903
|
],
|
|
901
904
|
"category": "utility",
|
|
902
905
|
"logo": "utility/slack.svg",
|
|
@@ -916,7 +919,8 @@ var techDefinitions = [
|
|
|
916
919
|
"id": "githubcopilot",
|
|
917
920
|
"name": "GitHub Copilot",
|
|
918
921
|
"aliases": [
|
|
919
|
-
"github-copilot"
|
|
922
|
+
"github-copilot",
|
|
923
|
+
"github-copilot-extension"
|
|
920
924
|
],
|
|
921
925
|
"category": "ai",
|
|
922
926
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -1548,7 +1552,8 @@ var techDefinitions = [
|
|
|
1548
1552
|
"id": "docker",
|
|
1549
1553
|
"name": "Docker",
|
|
1550
1554
|
"aliases": [
|
|
1551
|
-
"docker"
|
|
1555
|
+
"docker",
|
|
1556
|
+
"dockerode"
|
|
1552
1557
|
],
|
|
1553
1558
|
"category": "container",
|
|
1554
1559
|
"logo": "container/docker.svg",
|
|
@@ -1661,7 +1666,8 @@ var techDefinitions = [
|
|
|
1661
1666
|
"id": "netlify",
|
|
1662
1667
|
"name": "Netlify",
|
|
1663
1668
|
"aliases": [
|
|
1664
|
-
"netlify"
|
|
1669
|
+
"netlify",
|
|
1670
|
+
"netlify-cli"
|
|
1665
1671
|
],
|
|
1666
1672
|
"category": "hosting",
|
|
1667
1673
|
"logo": "hosting/netlify.svg",
|
|
@@ -5937,8 +5943,8 @@ function updateRootReadme(projects) {
|
|
|
5937
5943
|
return;
|
|
5938
5944
|
}
|
|
5939
5945
|
let readmeContent = import_fs.default.readFileSync(readmePath, "utf-8");
|
|
5940
|
-
const startMarker = "<!--
|
|
5941
|
-
const endMarker = "<!--
|
|
5946
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
5947
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
5942
5948
|
let newSection = `${startMarker}
|
|
5943
5949
|
## My Projects
|
|
5944
5950
|
|
package/dist/sync.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sync
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-XNTLNSF6.mjs";
|
|
4
|
+
import "./chunk-HKCVFKM4.mjs";
|
|
5
|
+
import "./chunk-E75XPZ2U.mjs";
|
|
6
6
|
import "./chunk-UJM3S22V.mjs";
|
|
7
7
|
import "./chunk-NGEKE4DQ.mjs";
|
|
8
8
|
import "./chunk-EOKQCSHI.mjs";
|
package/dist/techDefinitions.js
CHANGED
|
@@ -856,7 +856,8 @@ var techDefinitions = [
|
|
|
856
856
|
"id": "figma",
|
|
857
857
|
"name": "Figma",
|
|
858
858
|
"aliases": [
|
|
859
|
-
"figma"
|
|
859
|
+
"figma",
|
|
860
|
+
"figma-api"
|
|
860
861
|
],
|
|
861
862
|
"category": "utility",
|
|
862
863
|
"logo": "utility/figma.svg",
|
|
@@ -866,7 +867,8 @@ var techDefinitions = [
|
|
|
866
867
|
"id": "notion",
|
|
867
868
|
"name": "Notion",
|
|
868
869
|
"aliases": [
|
|
869
|
-
"notion"
|
|
870
|
+
"notion",
|
|
871
|
+
"@notionhq/client"
|
|
870
872
|
],
|
|
871
873
|
"category": "utility",
|
|
872
874
|
"logo": "utility/notion.svg",
|
|
@@ -876,7 +878,8 @@ var techDefinitions = [
|
|
|
876
878
|
"id": "slack",
|
|
877
879
|
"name": "Slack",
|
|
878
880
|
"aliases": [
|
|
879
|
-
"slack"
|
|
881
|
+
"slack",
|
|
882
|
+
"@slack/web-api"
|
|
880
883
|
],
|
|
881
884
|
"category": "utility",
|
|
882
885
|
"logo": "utility/slack.svg",
|
|
@@ -896,7 +899,8 @@ var techDefinitions = [
|
|
|
896
899
|
"id": "githubcopilot",
|
|
897
900
|
"name": "GitHub Copilot",
|
|
898
901
|
"aliases": [
|
|
899
|
-
"github-copilot"
|
|
902
|
+
"github-copilot",
|
|
903
|
+
"github-copilot-extension"
|
|
900
904
|
],
|
|
901
905
|
"category": "ai",
|
|
902
906
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -1528,7 +1532,8 @@ var techDefinitions = [
|
|
|
1528
1532
|
"id": "docker",
|
|
1529
1533
|
"name": "Docker",
|
|
1530
1534
|
"aliases": [
|
|
1531
|
-
"docker"
|
|
1535
|
+
"docker",
|
|
1536
|
+
"dockerode"
|
|
1532
1537
|
],
|
|
1533
1538
|
"category": "container",
|
|
1534
1539
|
"logo": "container/docker.svg",
|
|
@@ -1641,7 +1646,8 @@ var techDefinitions = [
|
|
|
1641
1646
|
"id": "netlify",
|
|
1642
1647
|
"name": "Netlify",
|
|
1643
1648
|
"aliases": [
|
|
1644
|
-
"netlify"
|
|
1649
|
+
"netlify",
|
|
1650
|
+
"netlify-cli"
|
|
1645
1651
|
],
|
|
1646
1652
|
"category": "hosting",
|
|
1647
1653
|
"logo": "hosting/netlify.svg",
|