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.
- package/README.md +16 -8
- package/dist/add.mjs +3 -2
- package/dist/chunk-24PM76MV.mjs +235 -0
- package/dist/chunk-2ZANNQYS.mjs +162 -0
- package/dist/chunk-5AYPCRZA.mjs +21 -0
- package/dist/chunk-CFGUYUPP.mjs +42 -0
- package/dist/chunk-DF3YGYKJ.mjs +2241 -0
- package/dist/chunk-E75XPZ2U.mjs +2237 -0
- package/dist/chunk-GFZMRHRT.mjs +181 -0
- package/dist/chunk-HKCVFKM4.mjs +19 -0
- package/dist/chunk-HT4RZGLE.mjs +267 -0
- package/dist/chunk-IFB4PCXR.mjs +28 -0
- package/dist/chunk-MFJXW5RR.mjs +6 -0
- package/dist/chunk-SECL5E42.mjs +23 -0
- package/dist/chunk-STCTH5AY.mjs +15619 -0
- package/dist/chunk-XNTLNSF6.mjs +158 -0
- package/dist/chunk-ZYFKPOWH.mjs +54 -0
- package/dist/cli.js +48 -15
- package/dist/cli.mjs +11 -7
- package/dist/defaults.mjs +3 -2
- package/dist/defaults.test.d.mts +2 -0
- package/dist/defaults.test.d.ts +2 -0
- package/dist/defaults.test.js +17007 -0
- package/dist/defaults.test.mjs +30 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +50 -17
- package/dist/index.mjs +18 -12
- package/dist/magic-string.es-WH4FGKAB.mjs +1315 -0
- package/dist/output.d.mts +3 -3
- package/dist/output.d.ts +3 -3
- package/dist/output.mjs +4 -3
- package/dist/output.test.d.mts +2 -0
- package/dist/output.test.d.ts +2 -0
- package/dist/output.test.js +20687 -0
- package/dist/output.test.mjs +160 -0
- package/dist/scan.js +48 -15
- package/dist/scan.mjs +7 -6
- package/dist/scan.test.d.mts +2 -0
- package/dist/scan.test.d.ts +2 -0
- package/dist/scan.test.js +23184 -0
- package/dist/scan.test.mjs +183 -0
- package/dist/simple-icons-hex.mjs +1 -0
- package/dist/sync.js +15 -10
- package/dist/sync.mjs +7 -6
- package/dist/techDefinitions.js +13 -8
- package/dist/techDefinitions.mjs +3 -2
- package/dist/techMap.js +13 -8
- package/dist/techMap.mjs +4 -3
- package/dist/techMap.test.d.mts +2 -0
- package/dist/techMap.test.d.ts +2 -0
- package/dist/techMap.test.js +19240 -0
- package/dist/techMap.test.mjs +38 -0
- package/dist/types.d.mts +2 -2
- package/dist/types.d.ts +2 -2
- package/dist/types.mjs +3 -2
- package/package.json +9 -4
- package/public/assets/logos/defaults/package.svg +18 -18
- package/public/assets/logos/defaults/terminal.svg +16 -16
- package/public/assets/logos/defaults/wrench.svg +15 -15
- package/public/assets/logos/testing/vitest.svg +1 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import {
|
|
2
|
+
scan
|
|
3
|
+
} from "./chunk-HT4RZGLE.mjs";
|
|
4
|
+
import "./chunk-SECL5E42.mjs";
|
|
5
|
+
import "./chunk-DF3YGYKJ.mjs";
|
|
6
|
+
import {
|
|
7
|
+
afterEach,
|
|
8
|
+
beforeEach,
|
|
9
|
+
describe,
|
|
10
|
+
globalExpect,
|
|
11
|
+
it,
|
|
12
|
+
vi
|
|
13
|
+
} from "./chunk-STCTH5AY.mjs";
|
|
14
|
+
import "./chunk-GFZMRHRT.mjs";
|
|
15
|
+
import "./chunk-EH2SEQZP.mjs";
|
|
16
|
+
import "./chunk-IFB4PCXR.mjs";
|
|
17
|
+
import {
|
|
18
|
+
init_esm_shims
|
|
19
|
+
} from "./chunk-5AYPCRZA.mjs";
|
|
20
|
+
import "./chunk-CFGUYUPP.mjs";
|
|
21
|
+
|
|
22
|
+
// src/scan.test.ts
|
|
23
|
+
init_esm_shims();
|
|
24
|
+
import fs from "fs";
|
|
25
|
+
import path from "path";
|
|
26
|
+
vi.mock("fs", () => {
|
|
27
|
+
return {
|
|
28
|
+
default: {
|
|
29
|
+
existsSync: vi.fn(),
|
|
30
|
+
readFileSync: vi.fn(),
|
|
31
|
+
readdirSync: vi.fn(),
|
|
32
|
+
mkdirSync: vi.fn(),
|
|
33
|
+
writeFileSync: vi.fn(),
|
|
34
|
+
renameSync: vi.fn(),
|
|
35
|
+
statSync: vi.fn()
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
vi.mock("./output", () => ({
|
|
40
|
+
generateMarkdown: vi.fn(() => "mock markdown"),
|
|
41
|
+
copyAssets: vi.fn(() => Promise.resolve(/* @__PURE__ */ new Set()))
|
|
42
|
+
}));
|
|
43
|
+
describe("scan module", () => {
|
|
44
|
+
let mockExit;
|
|
45
|
+
let consoleLogSpy;
|
|
46
|
+
let consoleWarnSpy;
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
vi.clearAllMocks();
|
|
49
|
+
fs.existsSync.mockReturnValue(true);
|
|
50
|
+
fs.statSync.mockReturnValue({ isFile: () => true });
|
|
51
|
+
mockExit = vi.spyOn(process, "exit").mockImplementation((code) => {
|
|
52
|
+
throw new Error(`process.exit(${code})`);
|
|
53
|
+
});
|
|
54
|
+
consoleLogSpy = vi.spyOn(console, "log").mockImplementation(() => {
|
|
55
|
+
});
|
|
56
|
+
consoleWarnSpy = vi.spyOn(console, "warn").mockImplementation(() => {
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
afterEach(() => {
|
|
60
|
+
mockExit.mockRestore();
|
|
61
|
+
consoleLogSpy.mockRestore();
|
|
62
|
+
consoleWarnSpy.mockRestore();
|
|
63
|
+
});
|
|
64
|
+
it("should scan single project and generate output", async () => {
|
|
65
|
+
const pkgJson = JSON.stringify({
|
|
66
|
+
dependencies: {
|
|
67
|
+
"react": "18.0.0",
|
|
68
|
+
"typescript": "5.0.0"
|
|
69
|
+
},
|
|
70
|
+
devDependencies: {
|
|
71
|
+
"vitest": "1.0.0"
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
fs.readFileSync.mockImplementation((p) => {
|
|
75
|
+
if (p.endsWith("package.json")) return pkgJson;
|
|
76
|
+
return "";
|
|
77
|
+
});
|
|
78
|
+
await scan("my-project", { out: "out.json" });
|
|
79
|
+
globalExpect(fs.writeFileSync).toHaveBeenCalled();
|
|
80
|
+
const calls = fs.writeFileSync.mock.calls;
|
|
81
|
+
const outCall = calls.find((c) => c[0] === path.resolve("out.json"));
|
|
82
|
+
globalExpect(outCall).toBeDefined();
|
|
83
|
+
const output = JSON.parse(outCall[1]);
|
|
84
|
+
const slugs = output.map((t) => t.slug);
|
|
85
|
+
globalExpect(slugs).toContain("react");
|
|
86
|
+
globalExpect(slugs).toContain("typescript");
|
|
87
|
+
globalExpect(slugs).toContain("vitest");
|
|
88
|
+
});
|
|
89
|
+
it("should skip SKIPPED_TECHS (react-dom)", async () => {
|
|
90
|
+
const pkgJson = JSON.stringify({
|
|
91
|
+
dependencies: {
|
|
92
|
+
"react": "18.0.0",
|
|
93
|
+
"react-dom": "18.0.0"
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
fs.readFileSync.mockReturnValue(pkgJson);
|
|
97
|
+
await scan("my-project", { out: "out.json" });
|
|
98
|
+
const calls = fs.writeFileSync.mock.calls;
|
|
99
|
+
const outCall = calls.find((c) => c[0] === path.resolve("out.json"));
|
|
100
|
+
const output = JSON.parse(outCall[1]);
|
|
101
|
+
const slugs = output.map((t) => t.slug);
|
|
102
|
+
globalExpect(slugs).toContain("react");
|
|
103
|
+
globalExpect(slugs).not.toContain("react-dom");
|
|
104
|
+
});
|
|
105
|
+
it("should fail gracefully if package.json is missing", async () => {
|
|
106
|
+
fs.existsSync.mockReturnValue(false);
|
|
107
|
+
await globalExpect(scan("test-path")).rejects.toThrow("process.exit(1)");
|
|
108
|
+
});
|
|
109
|
+
describe("workspace mode", () => {
|
|
110
|
+
beforeEach(() => {
|
|
111
|
+
fs.existsSync.mockImplementation((p) => {
|
|
112
|
+
if (p.endsWith("stackscan")) return true;
|
|
113
|
+
if (p.endsWith("package.json")) return true;
|
|
114
|
+
if (p.endsWith("README.md")) return true;
|
|
115
|
+
return true;
|
|
116
|
+
});
|
|
117
|
+
fs.readdirSync.mockImplementation((p) => {
|
|
118
|
+
return [
|
|
119
|
+
{ name: "project-a", isDirectory: () => true },
|
|
120
|
+
{ name: "project-b", isDirectory: () => true },
|
|
121
|
+
{ name: "input", isDirectory: () => true }
|
|
122
|
+
// Should be ignored
|
|
123
|
+
];
|
|
124
|
+
});
|
|
125
|
+
fs.statSync.mockReturnValue({ isFile: () => true });
|
|
126
|
+
fs.readFileSync.mockReturnValue("{}");
|
|
127
|
+
});
|
|
128
|
+
it("should scan all projects in workspace", async () => {
|
|
129
|
+
await scan();
|
|
130
|
+
globalExpect(fs.writeFileSync).toHaveBeenCalled();
|
|
131
|
+
const calls = fs.writeFileSync.mock.calls;
|
|
132
|
+
const projectACall = calls.find((c) => c[0].includes("project-a") && c[0].endsWith("stack.json"));
|
|
133
|
+
const projectBCall = calls.find((c) => c[0].includes("project-b") && c[0].endsWith("stack.json"));
|
|
134
|
+
globalExpect(projectACall).toBeDefined();
|
|
135
|
+
globalExpect(projectBCall).toBeDefined();
|
|
136
|
+
});
|
|
137
|
+
it("should update root README if enabled", async () => {
|
|
138
|
+
fs.readFileSync.mockImplementation((p) => {
|
|
139
|
+
if (typeof p === "string" && p.endsWith("README.md")) {
|
|
140
|
+
return "# My README\n<!-- STACKSCAN_START -->OLD CONTENT<!-- STACKSCAN_END -->";
|
|
141
|
+
}
|
|
142
|
+
if (typeof p === "string" && p.endsWith("package.json")) {
|
|
143
|
+
return JSON.stringify({ name: "sub-project", dependencies: {} });
|
|
144
|
+
}
|
|
145
|
+
return "{}";
|
|
146
|
+
});
|
|
147
|
+
await scan({ readme: true });
|
|
148
|
+
const calls = fs.writeFileSync.mock.calls;
|
|
149
|
+
const readmeCall = calls.find((c) => c[0].endsWith("README.md"));
|
|
150
|
+
globalExpect(readmeCall).toBeDefined();
|
|
151
|
+
globalExpect(readmeCall[1]).toContain("<!-- STACKSCAN_START -->");
|
|
152
|
+
globalExpect(readmeCall[1]).toContain("<!-- STACKSCAN_END -->");
|
|
153
|
+
});
|
|
154
|
+
it("should create stackscan directory if it does not exist", async () => {
|
|
155
|
+
fs.existsSync.mockImplementation((p) => {
|
|
156
|
+
if (p.endsWith("stackscan")) return false;
|
|
157
|
+
return true;
|
|
158
|
+
});
|
|
159
|
+
await globalExpect(scan()).rejects.toThrow("process.exit(0)");
|
|
160
|
+
globalExpect(fs.mkdirSync).toHaveBeenCalledWith(globalExpect.stringContaining("stackscan"), globalExpect.anything());
|
|
161
|
+
});
|
|
162
|
+
it("should warn if no projects found", async () => {
|
|
163
|
+
fs.readdirSync.mockReturnValue([]);
|
|
164
|
+
await scan();
|
|
165
|
+
globalExpect(consoleLogSpy).toHaveBeenCalledWith(globalExpect.stringContaining("No project directories found"));
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe("argument handling", () => {
|
|
169
|
+
it("should handle options object as first argument", async () => {
|
|
170
|
+
fs.readdirSync.mockReturnValue([
|
|
171
|
+
{ name: "project-a", isDirectory: () => true }
|
|
172
|
+
]);
|
|
173
|
+
fs.existsSync.mockReturnValue(true);
|
|
174
|
+
fs.readFileSync.mockImplementation((p) => {
|
|
175
|
+
if (p.endsWith("package.json")) return "{}";
|
|
176
|
+
return "";
|
|
177
|
+
});
|
|
178
|
+
const options = { readme: false };
|
|
179
|
+
await scan(options);
|
|
180
|
+
globalExpect(consoleLogSpy).toHaveBeenCalledWith(globalExpect.stringContaining("Skipping README update"));
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
});
|
package/dist/sync.js
CHANGED
|
@@ -581,7 +581,7 @@ var techDefinitions = [
|
|
|
581
581
|
"id": "rtkquery",
|
|
582
582
|
"name": "RTK Query",
|
|
583
583
|
"aliases": [
|
|
584
|
-
"@
|
|
584
|
+
"@rtk-query/graphql-request-base-query"
|
|
585
585
|
],
|
|
586
586
|
"category": "state",
|
|
587
587
|
"logo": "state/redux.svg",
|
|
@@ -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",
|
|
@@ -1620,7 +1625,6 @@ var techDefinitions = [
|
|
|
1620
1625
|
"aliases": [
|
|
1621
1626
|
"aws-sdk",
|
|
1622
1627
|
"@aws-sdk/client-s3",
|
|
1623
|
-
"@aws-sdk/client-dynamodb",
|
|
1624
1628
|
"@aws-sdk/client-lambda"
|
|
1625
1629
|
],
|
|
1626
1630
|
"category": "cloud",
|
|
@@ -1661,7 +1665,8 @@ var techDefinitions = [
|
|
|
1661
1665
|
"id": "netlify",
|
|
1662
1666
|
"name": "Netlify",
|
|
1663
1667
|
"aliases": [
|
|
1664
|
-
"netlify"
|
|
1668
|
+
"netlify",
|
|
1669
|
+
"netlify-cli"
|
|
1665
1670
|
],
|
|
1666
1671
|
"category": "hosting",
|
|
1667
1672
|
"logo": "hosting/netlify.svg",
|
|
@@ -5937,8 +5942,8 @@ function updateRootReadme(projects) {
|
|
|
5937
5942
|
return;
|
|
5938
5943
|
}
|
|
5939
5944
|
let readmeContent = import_fs.default.readFileSync(readmePath, "utf-8");
|
|
5940
|
-
const startMarker = "<!--
|
|
5941
|
-
const endMarker = "<!--
|
|
5945
|
+
const startMarker = "<!-- STACKSCAN_START -->";
|
|
5946
|
+
const endMarker = "<!-- STACKSCAN_END -->";
|
|
5942
5947
|
let newSection = `${startMarker}
|
|
5943
5948
|
## My Projects
|
|
5944
5949
|
|
package/dist/sync.mjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sync
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-NGEKE4DQ.mjs";
|
|
8
|
-
import "./chunk-EOKQCSHI.mjs";
|
|
3
|
+
} from "./chunk-2ZANNQYS.mjs";
|
|
4
|
+
import "./chunk-SECL5E42.mjs";
|
|
5
|
+
import "./chunk-DF3YGYKJ.mjs";
|
|
6
|
+
import "./chunk-GFZMRHRT.mjs";
|
|
9
7
|
import "./chunk-EH2SEQZP.mjs";
|
|
8
|
+
import "./chunk-IFB4PCXR.mjs";
|
|
9
|
+
import "./chunk-5AYPCRZA.mjs";
|
|
10
|
+
import "./chunk-CFGUYUPP.mjs";
|
|
10
11
|
export {
|
|
11
12
|
sync
|
|
12
13
|
};
|
package/dist/techDefinitions.js
CHANGED
|
@@ -561,7 +561,7 @@ var techDefinitions = [
|
|
|
561
561
|
"id": "rtkquery",
|
|
562
562
|
"name": "RTK Query",
|
|
563
563
|
"aliases": [
|
|
564
|
-
"@
|
|
564
|
+
"@rtk-query/graphql-request-base-query"
|
|
565
565
|
],
|
|
566
566
|
"category": "state",
|
|
567
567
|
"logo": "state/redux.svg",
|
|
@@ -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",
|
|
@@ -1600,7 +1605,6 @@ var techDefinitions = [
|
|
|
1600
1605
|
"aliases": [
|
|
1601
1606
|
"aws-sdk",
|
|
1602
1607
|
"@aws-sdk/client-s3",
|
|
1603
|
-
"@aws-sdk/client-dynamodb",
|
|
1604
1608
|
"@aws-sdk/client-lambda"
|
|
1605
1609
|
],
|
|
1606
1610
|
"category": "cloud",
|
|
@@ -1641,7 +1645,8 @@ var techDefinitions = [
|
|
|
1641
1645
|
"id": "netlify",
|
|
1642
1646
|
"name": "Netlify",
|
|
1643
1647
|
"aliases": [
|
|
1644
|
-
"netlify"
|
|
1648
|
+
"netlify",
|
|
1649
|
+
"netlify-cli"
|
|
1645
1650
|
],
|
|
1646
1651
|
"category": "hosting",
|
|
1647
1652
|
"logo": "hosting/netlify.svg",
|
package/dist/techDefinitions.mjs
CHANGED
package/dist/techMap.js
CHANGED
|
@@ -563,7 +563,7 @@ var techDefinitions = [
|
|
|
563
563
|
"id": "rtkquery",
|
|
564
564
|
"name": "RTK Query",
|
|
565
565
|
"aliases": [
|
|
566
|
-
"@
|
|
566
|
+
"@rtk-query/graphql-request-base-query"
|
|
567
567
|
],
|
|
568
568
|
"category": "state",
|
|
569
569
|
"logo": "state/redux.svg",
|
|
@@ -858,7 +858,8 @@ var techDefinitions = [
|
|
|
858
858
|
"id": "figma",
|
|
859
859
|
"name": "Figma",
|
|
860
860
|
"aliases": [
|
|
861
|
-
"figma"
|
|
861
|
+
"figma",
|
|
862
|
+
"figma-api"
|
|
862
863
|
],
|
|
863
864
|
"category": "utility",
|
|
864
865
|
"logo": "utility/figma.svg",
|
|
@@ -868,7 +869,8 @@ var techDefinitions = [
|
|
|
868
869
|
"id": "notion",
|
|
869
870
|
"name": "Notion",
|
|
870
871
|
"aliases": [
|
|
871
|
-
"notion"
|
|
872
|
+
"notion",
|
|
873
|
+
"@notionhq/client"
|
|
872
874
|
],
|
|
873
875
|
"category": "utility",
|
|
874
876
|
"logo": "utility/notion.svg",
|
|
@@ -878,7 +880,8 @@ var techDefinitions = [
|
|
|
878
880
|
"id": "slack",
|
|
879
881
|
"name": "Slack",
|
|
880
882
|
"aliases": [
|
|
881
|
-
"slack"
|
|
883
|
+
"slack",
|
|
884
|
+
"@slack/web-api"
|
|
882
885
|
],
|
|
883
886
|
"category": "utility",
|
|
884
887
|
"logo": "utility/slack.svg",
|
|
@@ -898,7 +901,8 @@ var techDefinitions = [
|
|
|
898
901
|
"id": "githubcopilot",
|
|
899
902
|
"name": "GitHub Copilot",
|
|
900
903
|
"aliases": [
|
|
901
|
-
"github-copilot"
|
|
904
|
+
"github-copilot",
|
|
905
|
+
"github-copilot-extension"
|
|
902
906
|
],
|
|
903
907
|
"category": "ai",
|
|
904
908
|
"logo": "ai/githubcopilot.svg",
|
|
@@ -1530,7 +1534,8 @@ var techDefinitions = [
|
|
|
1530
1534
|
"id": "docker",
|
|
1531
1535
|
"name": "Docker",
|
|
1532
1536
|
"aliases": [
|
|
1533
|
-
"docker"
|
|
1537
|
+
"docker",
|
|
1538
|
+
"dockerode"
|
|
1534
1539
|
],
|
|
1535
1540
|
"category": "container",
|
|
1536
1541
|
"logo": "container/docker.svg",
|
|
@@ -1602,7 +1607,6 @@ var techDefinitions = [
|
|
|
1602
1607
|
"aliases": [
|
|
1603
1608
|
"aws-sdk",
|
|
1604
1609
|
"@aws-sdk/client-s3",
|
|
1605
|
-
"@aws-sdk/client-dynamodb",
|
|
1606
1610
|
"@aws-sdk/client-lambda"
|
|
1607
1611
|
],
|
|
1608
1612
|
"category": "cloud",
|
|
@@ -1643,7 +1647,8 @@ var techDefinitions = [
|
|
|
1643
1647
|
"id": "netlify",
|
|
1644
1648
|
"name": "Netlify",
|
|
1645
1649
|
"aliases": [
|
|
1646
|
-
"netlify"
|
|
1650
|
+
"netlify",
|
|
1651
|
+
"netlify-cli"
|
|
1647
1652
|
],
|
|
1648
1653
|
"category": "hosting",
|
|
1649
1654
|
"logo": "hosting/netlify.svg",
|
package/dist/techMap.mjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
techMap
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-SECL5E42.mjs";
|
|
4
|
+
import "./chunk-DF3YGYKJ.mjs";
|
|
5
|
+
import "./chunk-5AYPCRZA.mjs";
|
|
6
|
+
import "./chunk-CFGUYUPP.mjs";
|
|
6
7
|
export {
|
|
7
8
|
techMap
|
|
8
9
|
};
|