create-sprint 0.0.68 → 0.0.70
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/dist/index.js +14 -7
- package/dist/templates/configFiles.js +11 -5
- package/dist/templates/env.js +8 -8
- package/dist/templates/packageJson.js +14 -14
- package/package.json +1 -1
- package/src/index.ts +17 -5
- package/src/templates/configFiles.ts +11 -5
- package/src/templates/env.ts +8 -8
- package/src/templates/packageJson.ts +15 -17
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export async function runCLI(args) {
|
|
|
22
22
|
projectName: options.projectName || "sprint-app",
|
|
23
23
|
language: options.language || "typescript",
|
|
24
24
|
telemetry: options.telemetry || "none",
|
|
25
|
+
swagger: options.swagger ?? true,
|
|
25
26
|
docker: options.docker || false,
|
|
26
27
|
};
|
|
27
28
|
}
|
|
@@ -48,6 +49,7 @@ export async function runCLI(args) {
|
|
|
48
49
|
{ value: "discord", label: "Discord Webhook", hint: "sends to a channel" },
|
|
49
50
|
],
|
|
50
51
|
}),
|
|
52
|
+
swagger: () => p.confirm({ message: "Add Swagger UI & OpenAPI?", initialValue: true }),
|
|
51
53
|
docker: () => p.confirm({ message: "Add Docker support?", initialValue: false }),
|
|
52
54
|
}, {
|
|
53
55
|
onCancel: () => {
|
|
@@ -59,7 +61,7 @@ export async function runCLI(args) {
|
|
|
59
61
|
const targetDir = config.projectName === "." ? process.cwd() : join(process.cwd(), config.projectName);
|
|
60
62
|
const s = p.spinner();
|
|
61
63
|
s.start("Creating project");
|
|
62
|
-
await createProject(config.projectName, config.language, config.telemetry, config.docker);
|
|
64
|
+
await createProject(config.projectName, config.language, config.telemetry, config.swagger, config.docker);
|
|
63
65
|
s.stop("Project created");
|
|
64
66
|
let installDeps = true;
|
|
65
67
|
if (options.skipInstall) {
|
|
@@ -128,6 +130,10 @@ function parseArgs(args) {
|
|
|
128
130
|
options.projectName = ".";
|
|
129
131
|
if (args.includes("--docker"))
|
|
130
132
|
options.docker = true;
|
|
133
|
+
if (args.includes("--swagger"))
|
|
134
|
+
options.swagger = true;
|
|
135
|
+
else if (args.includes("--no-swagger"))
|
|
136
|
+
options.swagger = false;
|
|
131
137
|
if (args.includes("--no-install"))
|
|
132
138
|
options.skipInstall = true;
|
|
133
139
|
if (telemetryArg && ["sentry", "glitchtip", "discord", "none"].includes(telemetryArg))
|
|
@@ -135,7 +141,7 @@ function parseArgs(args) {
|
|
|
135
141
|
return options;
|
|
136
142
|
}
|
|
137
143
|
;
|
|
138
|
-
async function createProject(projectName, language, telemetry, useDocker) {
|
|
144
|
+
async function createProject(projectName, language, telemetry, swagger, useDocker) {
|
|
139
145
|
const isCurrentDir = projectName === ".";
|
|
140
146
|
const targetDir = isCurrentDir ? process.cwd() : join(process.cwd(), projectName);
|
|
141
147
|
if (!isCurrentDir && existsSync(targetDir)) {
|
|
@@ -146,17 +152,17 @@ async function createProject(projectName, language, telemetry, useDocker) {
|
|
|
146
152
|
await mkdir(targetDir, { recursive: true });
|
|
147
153
|
let pkgJson;
|
|
148
154
|
if (language === "typescript")
|
|
149
|
-
pkgJson = getTypeScriptPackageJson(projectName, telemetry);
|
|
155
|
+
pkgJson = getTypeScriptPackageJson(projectName, telemetry, swagger);
|
|
150
156
|
else
|
|
151
|
-
pkgJson = getJavaScriptPackageJson(projectName, telemetry);
|
|
157
|
+
pkgJson = getJavaScriptPackageJson(projectName, telemetry, swagger);
|
|
152
158
|
await writeFile(join(targetDir, "package.json"), JSON.stringify(pkgJson, null, 2));
|
|
153
159
|
if (language === "typescript") {
|
|
154
160
|
await writeFile(join(targetDir, "tsconfig.json"), getTsConfig());
|
|
155
161
|
await writeFile(join(targetDir, "vite.config.ts"), getViteConfig());
|
|
156
|
-
await writeFile(join(targetDir, "sprint.config.ts"), getSprintConfigFile(language, telemetry));
|
|
162
|
+
await writeFile(join(targetDir, "sprint.config.ts"), getSprintConfigFile(language, telemetry, swagger));
|
|
157
163
|
}
|
|
158
164
|
else
|
|
159
|
-
await writeFile(join(targetDir, "sprint.config.js"), getSprintConfigFile(language, telemetry));
|
|
165
|
+
await writeFile(join(targetDir, "sprint.config.js"), getSprintConfigFile(language, telemetry, swagger));
|
|
160
166
|
const srcDir = join(targetDir, "src");
|
|
161
167
|
await mkdir(srcDir, { recursive: true });
|
|
162
168
|
await mkdir(join(srcDir, "middlewares"), { recursive: true });
|
|
@@ -165,6 +171,7 @@ async function createProject(projectName, language, telemetry, useDocker) {
|
|
|
165
171
|
await mkdir(join(srcDir, "schemas"), { recursive: true });
|
|
166
172
|
await mkdir(join(srcDir, "cronjobs"), { recursive: true });
|
|
167
173
|
await mkdir(join(srcDir, "config"), { recursive: true });
|
|
174
|
+
await mkdir(join(srcDir, "services"), { recursive: true });
|
|
168
175
|
if (language === "typescript") {
|
|
169
176
|
await writeFile(join(srcDir, "config", "index.ts"), "");
|
|
170
177
|
await writeFile(join(srcDir, "config", "clients.ts"), "");
|
|
@@ -173,7 +180,7 @@ async function createProject(projectName, language, telemetry, useDocker) {
|
|
|
173
180
|
await writeFile(join(srcDir, "config", "index.js"), "");
|
|
174
181
|
await writeFile(join(srcDir, "config", "clients.js"), "");
|
|
175
182
|
}
|
|
176
|
-
await writeFile(join(srcDir, "
|
|
183
|
+
await writeFile(join(srcDir, "services", ".gitkeep"), "");
|
|
177
184
|
await writeFile(join(srcDir, "app." + (language === "typescript" ? "ts" : "js")), getMainFile(language));
|
|
178
185
|
await writeFile(join(srcDir, "routes", "home." + (language === "typescript" ? "ts" : "js")), getHomeRoute(language));
|
|
179
186
|
await writeFile(join(srcDir, "routes", "admin." + (language === "typescript" ? "ts" : "js")), getAdminRoute(language));
|
|
@@ -52,14 +52,17 @@ export default defineConfig({
|
|
|
52
52
|
`;
|
|
53
53
|
}
|
|
54
54
|
;
|
|
55
|
-
export function getSprintConfigFile(language, telemetry) {
|
|
55
|
+
export function getSprintConfigFile(language, telemetry, swagger) {
|
|
56
56
|
if (language === "typescript") {
|
|
57
57
|
let config = `import type { SprintOptions } from "sprint-es";
|
|
58
58
|
|
|
59
59
|
export const config: SprintOptions = {
|
|
60
60
|
openapi: {
|
|
61
|
-
|
|
62
|
-
generateOnBuild:
|
|
61
|
+
enabled: ${swagger},
|
|
62
|
+
generateOnBuild: ${swagger},
|
|
63
|
+
swaggerUi: {
|
|
64
|
+
enabled: ${swagger}
|
|
65
|
+
}
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
68
|
|
|
@@ -91,8 +94,11 @@ initTelemetry({
|
|
|
91
94
|
}
|
|
92
95
|
let config = `export const config = {
|
|
93
96
|
openapi: {
|
|
94
|
-
|
|
95
|
-
generateOnBuild:
|
|
97
|
+
enabled: ${swagger},
|
|
98
|
+
generateOnBuild: ${swagger},
|
|
99
|
+
swaggerUi: {
|
|
100
|
+
enabled: ${swagger}
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
103
|
};
|
|
98
104
|
`;
|
package/dist/templates/env.js
CHANGED
|
@@ -29,9 +29,9 @@ export function getEnvDevelopment(telemetry) {
|
|
|
29
29
|
const keys = generateJWTKeys();
|
|
30
30
|
let env = `NODE_ENV=development
|
|
31
31
|
PORT=5000
|
|
32
|
-
JWT_PUBLIC_KEY=
|
|
33
|
-
JWT_PRIVATE_KEY=
|
|
34
|
-
JWT_ENCRYPTION_SECRET=
|
|
32
|
+
JWT_PUBLIC_KEY="${keys.publicKey}"
|
|
33
|
+
JWT_PRIVATE_KEY="${keys.privateKey}"
|
|
34
|
+
JWT_ENCRYPTION_SECRET="${crypto.randomBytes(32).toString("hex")}"
|
|
35
35
|
`;
|
|
36
36
|
if (telemetry === "sentry" || telemetry === "glitchtip") {
|
|
37
37
|
env += `
|
|
@@ -52,20 +52,20 @@ export function getEnvProduction(telemetry) {
|
|
|
52
52
|
const keys = generateJWTKeys();
|
|
53
53
|
let env = `NODE_ENV=production
|
|
54
54
|
PORT=5000
|
|
55
|
-
JWT_PUBLIC_KEY=
|
|
56
|
-
JWT_PRIVATE_KEY=
|
|
57
|
-
JWT_ENCRYPTION_SECRET=
|
|
55
|
+
JWT_PUBLIC_KEY="${keys.publicKey}"
|
|
56
|
+
JWT_PRIVATE_KEY="${keys.privateKey}"
|
|
57
|
+
JWT_ENCRYPTION_SECRET="${crypto.randomBytes(32).toString("hex")}"
|
|
58
58
|
`;
|
|
59
59
|
if (telemetry === "sentry" || telemetry === "glitchtip") {
|
|
60
60
|
env += `
|
|
61
61
|
# Sentry / GlitchTip
|
|
62
|
-
SENTRY_DSN=
|
|
62
|
+
SENTRY_DSN=""
|
|
63
63
|
`;
|
|
64
64
|
}
|
|
65
65
|
else if (telemetry === "discord") {
|
|
66
66
|
env += `
|
|
67
67
|
# Discord Webhook URL
|
|
68
|
-
DISCORD_TELEMETRY_WEBHOOK_URL=
|
|
68
|
+
DISCORD_TELEMETRY_WEBHOOK_URL=""
|
|
69
69
|
`;
|
|
70
70
|
}
|
|
71
71
|
return env;
|
|
@@ -8,21 +8,21 @@ export function generateJWTKeys() {
|
|
|
8
8
|
return keys;
|
|
9
9
|
}
|
|
10
10
|
;
|
|
11
|
-
export function getTypeScriptPackageJson(name, telemetry) {
|
|
11
|
+
export function getTypeScriptPackageJson(name, telemetry, swagger) {
|
|
12
12
|
const deps = {
|
|
13
|
-
"sprint-es": "^0.0.
|
|
13
|
+
"sprint-es": "^0.0.56"
|
|
14
14
|
};
|
|
15
15
|
const devDeps = {
|
|
16
16
|
"@types/node": "^22.0.0",
|
|
17
17
|
"tsx": "^4.19.0",
|
|
18
|
-
typescript: "^5.6.0"
|
|
18
|
+
typescript: "^5.6.0"
|
|
19
19
|
};
|
|
20
|
-
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
20
|
+
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
21
21
|
deps["@sentry/node"] = "^8.0.0";
|
|
22
|
-
|
|
23
|
-
else if (telemetry === "discord") {
|
|
22
|
+
else if (telemetry === "discord")
|
|
24
23
|
deps["axios"] = "^1.6.0";
|
|
25
|
-
|
|
24
|
+
if (swagger)
|
|
25
|
+
deps["swagger-ui-express"] = "^5.0.0";
|
|
26
26
|
return {
|
|
27
27
|
name: name === "." ? "sprint-app" : name,
|
|
28
28
|
version: "0.0.1",
|
|
@@ -35,20 +35,20 @@ export function getTypeScriptPackageJson(name, telemetry) {
|
|
|
35
35
|
"generate:keys": "sprint-es generate-keys"
|
|
36
36
|
},
|
|
37
37
|
dependencies: deps,
|
|
38
|
-
devDependencies: devDeps
|
|
38
|
+
devDependencies: devDeps
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
;
|
|
42
|
-
export function getJavaScriptPackageJson(name, telemetry) {
|
|
42
|
+
export function getJavaScriptPackageJson(name, telemetry, swagger) {
|
|
43
43
|
const deps = {
|
|
44
|
-
"sprint-es": "^0.0.
|
|
44
|
+
"sprint-es": "^0.0.56"
|
|
45
45
|
};
|
|
46
|
-
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
46
|
+
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
47
47
|
deps["@sentry/node"] = "^8.0.0";
|
|
48
|
-
|
|
49
|
-
else if (telemetry === "discord") {
|
|
48
|
+
else if (telemetry === "discord")
|
|
50
49
|
deps["axios"] = "^1.6.0";
|
|
51
|
-
|
|
50
|
+
if (swagger)
|
|
51
|
+
deps["swagger-ui-express"] = "^5.0.0";
|
|
52
52
|
return {
|
|
53
53
|
name: name === "." ? "sprint-app" : name,
|
|
54
54
|
version: "0.0.1",
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface CLIOptions {
|
|
|
11
11
|
projectName?: string;
|
|
12
12
|
language?: "typescript" | "javascript";
|
|
13
13
|
telemetry?: "none" | "sentry" | "glitchtip" | "discord";
|
|
14
|
+
swagger?: boolean;
|
|
14
15
|
docker?: boolean;
|
|
15
16
|
skipInstall?: boolean;
|
|
16
17
|
skipPrompts?: boolean;
|
|
@@ -32,6 +33,7 @@ export async function runCLI(args: string[]) {
|
|
|
32
33
|
projectName: string;
|
|
33
34
|
language: "typescript" | "javascript";
|
|
34
35
|
telemetry: string;
|
|
36
|
+
swagger: boolean;
|
|
35
37
|
docker: boolean;
|
|
36
38
|
};
|
|
37
39
|
|
|
@@ -40,6 +42,7 @@ export async function runCLI(args: string[]) {
|
|
|
40
42
|
projectName: options.projectName || "sprint-app",
|
|
41
43
|
language: options.language || "typescript",
|
|
42
44
|
telemetry: options.telemetry || "none",
|
|
45
|
+
swagger: options.swagger ?? true,
|
|
43
46
|
docker: options.docker || false,
|
|
44
47
|
};
|
|
45
48
|
} else {
|
|
@@ -72,6 +75,9 @@ export async function runCLI(args: string[]) {
|
|
|
72
75
|
],
|
|
73
76
|
}),
|
|
74
77
|
|
|
78
|
+
swagger: () =>
|
|
79
|
+
p.confirm({ message: "Add Swagger UI & OpenAPI?", initialValue: true }),
|
|
80
|
+
|
|
75
81
|
docker: () =>
|
|
76
82
|
p.confirm({ message: "Add Docker support?", initialValue: false }),
|
|
77
83
|
},
|
|
@@ -92,6 +98,7 @@ export async function runCLI(args: string[]) {
|
|
|
92
98
|
config.projectName,
|
|
93
99
|
config.language,
|
|
94
100
|
config.telemetry,
|
|
101
|
+
config.swagger,
|
|
95
102
|
config.docker,
|
|
96
103
|
);
|
|
97
104
|
s.stop("Project created");
|
|
@@ -164,6 +171,9 @@ function parseArgs(args: string[]): CLIOptions {
|
|
|
164
171
|
|
|
165
172
|
if (args.includes("--docker")) options.docker = true;
|
|
166
173
|
|
|
174
|
+
if (args.includes("--swagger")) options.swagger = true;
|
|
175
|
+
else if (args.includes("--no-swagger")) options.swagger = false;
|
|
176
|
+
|
|
167
177
|
if (args.includes("--no-install")) options.skipInstall = true;
|
|
168
178
|
|
|
169
179
|
if (telemetryArg && ["sentry", "glitchtip", "discord", "none"].includes(telemetryArg)) options.telemetry = telemetryArg as CLIOptions["telemetry"];
|
|
@@ -175,6 +185,7 @@ async function createProject(
|
|
|
175
185
|
projectName: string,
|
|
176
186
|
language: "typescript" | "javascript",
|
|
177
187
|
telemetry: string,
|
|
188
|
+
swagger: boolean,
|
|
178
189
|
useDocker: boolean
|
|
179
190
|
) {
|
|
180
191
|
const isCurrentDir = projectName === ".";
|
|
@@ -188,16 +199,16 @@ async function createProject(
|
|
|
188
199
|
if (!isCurrentDir) await mkdir(targetDir, { recursive: true });
|
|
189
200
|
|
|
190
201
|
let pkgJson;
|
|
191
|
-
if (language === "typescript") pkgJson = getTypeScriptPackageJson(projectName, telemetry);
|
|
192
|
-
else pkgJson = getJavaScriptPackageJson(projectName, telemetry);
|
|
202
|
+
if (language === "typescript") pkgJson = getTypeScriptPackageJson(projectName, telemetry, swagger);
|
|
203
|
+
else pkgJson = getJavaScriptPackageJson(projectName, telemetry, swagger);
|
|
193
204
|
|
|
194
205
|
await writeFile(join(targetDir, "package.json"), JSON.stringify(pkgJson, null, 2));
|
|
195
206
|
|
|
196
207
|
if (language === "typescript") {
|
|
197
208
|
await writeFile(join(targetDir, "tsconfig.json"), getTsConfig());
|
|
198
209
|
await writeFile(join(targetDir, "vite.config.ts"), getViteConfig());
|
|
199
|
-
await writeFile(join(targetDir, "sprint.config.ts"), getSprintConfigFile(language, telemetry));
|
|
200
|
-
} else await writeFile(join(targetDir, "sprint.config.js"), getSprintConfigFile(language, telemetry));
|
|
210
|
+
await writeFile(join(targetDir, "sprint.config.ts"), getSprintConfigFile(language, telemetry, swagger));
|
|
211
|
+
} else await writeFile(join(targetDir, "sprint.config.js"), getSprintConfigFile(language, telemetry, swagger));
|
|
201
212
|
|
|
202
213
|
const srcDir = join(targetDir, "src");
|
|
203
214
|
await mkdir(srcDir, { recursive: true });
|
|
@@ -208,6 +219,7 @@ async function createProject(
|
|
|
208
219
|
await mkdir(join(srcDir, "schemas"), { recursive: true });
|
|
209
220
|
await mkdir(join(srcDir, "cronjobs"), { recursive: true });
|
|
210
221
|
await mkdir(join(srcDir, "config"), { recursive: true });
|
|
222
|
+
await mkdir(join(srcDir, "services"), { recursive: true });
|
|
211
223
|
|
|
212
224
|
if (language === "typescript") {
|
|
213
225
|
await writeFile(join(srcDir, "config", "index.ts"), "");
|
|
@@ -217,7 +229,7 @@ async function createProject(
|
|
|
217
229
|
await writeFile(join(srcDir, "config", "clients.js"), "");
|
|
218
230
|
}
|
|
219
231
|
|
|
220
|
-
await writeFile(join(srcDir, "
|
|
232
|
+
await writeFile(join(srcDir, "services", ".gitkeep"), "");
|
|
221
233
|
|
|
222
234
|
await writeFile(join(srcDir, "app." + (language === "typescript" ? "ts" : "js")), getMainFile(language));
|
|
223
235
|
|
|
@@ -52,14 +52,17 @@ export default defineConfig({
|
|
|
52
52
|
`;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export function getSprintConfigFile(language: string, telemetry: string) {
|
|
55
|
+
export function getSprintConfigFile(language: string, telemetry: string, swagger: boolean) {
|
|
56
56
|
if (language === "typescript") {
|
|
57
57
|
let config = `import type { SprintOptions } from "sprint-es";
|
|
58
58
|
|
|
59
59
|
export const config: SprintOptions = {
|
|
60
60
|
openapi: {
|
|
61
|
-
|
|
62
|
-
generateOnBuild:
|
|
61
|
+
enabled: ${swagger},
|
|
62
|
+
generateOnBuild: ${swagger},
|
|
63
|
+
swaggerUi: {
|
|
64
|
+
enabled: ${swagger}
|
|
65
|
+
}
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
68
|
|
|
@@ -93,8 +96,11 @@ initTelemetry({
|
|
|
93
96
|
|
|
94
97
|
let config = `export const config = {
|
|
95
98
|
openapi: {
|
|
96
|
-
|
|
97
|
-
generateOnBuild:
|
|
99
|
+
enabled: ${swagger},
|
|
100
|
+
generateOnBuild: ${swagger},
|
|
101
|
+
swaggerUi: {
|
|
102
|
+
enabled: ${swagger}
|
|
103
|
+
}
|
|
98
104
|
}
|
|
99
105
|
};
|
|
100
106
|
`;
|
package/src/templates/env.ts
CHANGED
|
@@ -31,9 +31,9 @@ export function getEnvDevelopment(telemetry: string) {
|
|
|
31
31
|
const keys = generateJWTKeys();
|
|
32
32
|
let env = `NODE_ENV=development
|
|
33
33
|
PORT=5000
|
|
34
|
-
JWT_PUBLIC_KEY=
|
|
35
|
-
JWT_PRIVATE_KEY=
|
|
36
|
-
JWT_ENCRYPTION_SECRET=
|
|
34
|
+
JWT_PUBLIC_KEY="${keys.publicKey}"
|
|
35
|
+
JWT_PRIVATE_KEY="${keys.privateKey}"
|
|
36
|
+
JWT_ENCRYPTION_SECRET="${crypto.randomBytes(32).toString("hex")}"
|
|
37
37
|
`;
|
|
38
38
|
|
|
39
39
|
if (telemetry === "sentry" || telemetry === "glitchtip") {
|
|
@@ -55,20 +55,20 @@ export function getEnvProduction(telemetry: string) {
|
|
|
55
55
|
const keys = generateJWTKeys();
|
|
56
56
|
let env = `NODE_ENV=production
|
|
57
57
|
PORT=5000
|
|
58
|
-
JWT_PUBLIC_KEY=
|
|
59
|
-
JWT_PRIVATE_KEY=
|
|
60
|
-
JWT_ENCRYPTION_SECRET=
|
|
58
|
+
JWT_PUBLIC_KEY="${keys.publicKey}"
|
|
59
|
+
JWT_PRIVATE_KEY="${keys.privateKey}"
|
|
60
|
+
JWT_ENCRYPTION_SECRET="${crypto.randomBytes(32).toString("hex")}"
|
|
61
61
|
`;
|
|
62
62
|
|
|
63
63
|
if (telemetry === "sentry" || telemetry === "glitchtip") {
|
|
64
64
|
env += `
|
|
65
65
|
# Sentry / GlitchTip
|
|
66
|
-
SENTRY_DSN=
|
|
66
|
+
SENTRY_DSN=""
|
|
67
67
|
`;
|
|
68
68
|
} else if (telemetry === "discord") {
|
|
69
69
|
env += `
|
|
70
70
|
# Discord Webhook URL
|
|
71
|
-
DISCORD_TELEMETRY_WEBHOOK_URL=
|
|
71
|
+
DISCORD_TELEMETRY_WEBHOOK_URL=""
|
|
72
72
|
`;
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -10,26 +10,25 @@ export function generateJWTKeys(): JWTKeys {
|
|
|
10
10
|
modulusLength: 4096,
|
|
11
11
|
publicKeyEncoding: { type: "spki", format: "pem" },
|
|
12
12
|
privateKeyEncoding: { type: "pkcs8", format: "pem" }
|
|
13
|
-
}) as unknown as { publicKey: string; privateKey: string };
|
|
13
|
+
}) as unknown as { publicKey: string; privateKey: string; };
|
|
14
14
|
return keys;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
export function getTypeScriptPackageJson(name: string, telemetry: string) {
|
|
17
|
+
export function getTypeScriptPackageJson(name: string, telemetry: string, swagger: boolean) {
|
|
18
18
|
const deps: Record<string, string> = {
|
|
19
|
-
"sprint-es": "^0.0.
|
|
19
|
+
"sprint-es": "^0.0.56"
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
const devDeps: Record<string, string> = {
|
|
23
23
|
"@types/node": "^22.0.0",
|
|
24
24
|
"tsx": "^4.19.0",
|
|
25
|
-
typescript: "^5.6.0"
|
|
25
|
+
typescript: "^5.6.0"
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
28
|
+
if (telemetry === "sentry" || telemetry === "glitchtip") deps["@sentry/node"] = "^8.0.0";
|
|
29
|
+
else if (telemetry === "discord") deps["axios"] = "^1.6.0";
|
|
30
|
+
|
|
31
|
+
if (swagger) deps["swagger-ui-express"] = "^5.0.0";
|
|
33
32
|
|
|
34
33
|
return {
|
|
35
34
|
name: name === "." ? "sprint-app" : name,
|
|
@@ -43,20 +42,19 @@ export function getTypeScriptPackageJson(name: string, telemetry: string) {
|
|
|
43
42
|
"generate:keys": "sprint-es generate-keys"
|
|
44
43
|
},
|
|
45
44
|
dependencies: deps,
|
|
46
|
-
devDependencies: devDeps
|
|
45
|
+
devDependencies: devDeps
|
|
47
46
|
};
|
|
48
47
|
};
|
|
49
48
|
|
|
50
|
-
export function getJavaScriptPackageJson(name: string, telemetry: string) {
|
|
49
|
+
export function getJavaScriptPackageJson(name: string, telemetry: string, swagger: boolean) {
|
|
51
50
|
const deps: Record<string, string> = {
|
|
52
|
-
"sprint-es": "^0.0.
|
|
51
|
+
"sprint-es": "^0.0.56"
|
|
53
52
|
};
|
|
54
53
|
|
|
55
|
-
if (telemetry === "sentry" || telemetry === "glitchtip")
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
54
|
+
if (telemetry === "sentry" || telemetry === "glitchtip") deps["@sentry/node"] = "^8.0.0";
|
|
55
|
+
else if (telemetry === "discord") deps["axios"] = "^1.6.0";
|
|
56
|
+
|
|
57
|
+
if (swagger) deps["swagger-ui-express"] = "^5.0.0";
|
|
60
58
|
|
|
61
59
|
return {
|
|
62
60
|
name: name === "." ? "sprint-app" : name,
|