yosr-seed 0.2.4 → 0.2.6
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/CHANGELOG.md +30 -0
- package/README.md +2 -1
- package/dist/adopt.js +22 -8
- package/dist/adopt.js.map +1 -1
- package/dist/create.js +37 -7
- package/dist/create.js.map +1 -1
- package/dist/doctor.js +42 -2
- package/dist/doctor.js.map +1 -1
- package/dist/engine/ci/apply.d.ts +4 -0
- package/dist/engine/ci/apply.js +8 -1
- package/dist/engine/ci/apply.js.map +1 -1
- package/dist/engine/ci/content.d.ts +1 -1
- package/dist/engine/ci/content.js +20 -0
- package/dist/engine/ci/content.js.map +1 -1
- package/dist/engine/gate/run.d.ts +28 -2
- package/dist/engine/gate/run.js +226 -15
- package/dist/engine/gate/run.js.map +1 -1
- package/dist/engine/index.d.ts +6 -6
- package/dist/engine/index.js +4 -4
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/render/package-manager.d.ts +21 -0
- package/dist/engine/render/package-manager.js +75 -1
- package/dist/engine/render/package-manager.js.map +1 -1
- package/dist/engine/render/render.d.ts +1 -1
- package/dist/engine/render/render.js +44 -8
- package/dist/engine/render/render.js.map +1 -1
- package/dist/engine/render/types.d.ts +5 -1
- package/dist/gate.js +68 -12
- package/dist/gate.js.map +1 -1
- package/dist/help.js +17 -1
- package/dist/help.js.map +1 -1
- package/dist/preflight.d.ts +17 -1
- package/dist/preflight.js +58 -5
- package/dist/preflight.js.map +1 -1
- package/dist/schemas/seed.answers.schema.json +3 -1
- package/dist/schemas/seed.template.schema.json +12 -2
- package/dist/templates.d.ts +1 -1
- package/dist/templates.js +24 -0
- package/dist/templates.js.map +1 -1
- package/package.json +8 -6
package/dist/preflight.js
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import { existsSync, readdirSync } from "node:fs";
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { findPython, nodeVersionMessage, pythonMessage } from "./engine/index.js";
|
|
4
|
+
import { dotnetMessage, findDotnet, findJava, findPython, javaMessage, nodeVersionMessage, packageManagerBinary, pythonMessage, } from "./engine/index.js";
|
|
5
|
+
/** Post-create “run the app” hint on the success outro. */
|
|
6
|
+
export function projectRunHint(manager) {
|
|
7
|
+
switch (manager) {
|
|
8
|
+
case "npm":
|
|
9
|
+
return "npm run dev";
|
|
10
|
+
case "uv":
|
|
11
|
+
return "uv run dev";
|
|
12
|
+
case "dotnet":
|
|
13
|
+
return "dotnet run --project src/App";
|
|
14
|
+
case "maven":
|
|
15
|
+
return "mvn -B -q spring-boot:run";
|
|
16
|
+
case "pnpm":
|
|
17
|
+
return "pnpm dev";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
5
20
|
export function liveProbe() {
|
|
6
21
|
return {
|
|
7
22
|
version(command) {
|
|
@@ -43,6 +58,18 @@ export function liveProbe() {
|
|
|
43
58
|
text: `${text.length > 0 ? text : "Python"} (${found.path})`,
|
|
44
59
|
};
|
|
45
60
|
},
|
|
61
|
+
dotnet(range) {
|
|
62
|
+
const found = findDotnet(range);
|
|
63
|
+
if (!found.found || found.version === undefined)
|
|
64
|
+
return { found: false, text: "" };
|
|
65
|
+
return { found: true, text: `.NET SDK ${found.version}` };
|
|
66
|
+
},
|
|
67
|
+
java(range) {
|
|
68
|
+
const found = findJava(range);
|
|
69
|
+
if (!found.found || found.version === undefined)
|
|
70
|
+
return { found: false, text: "" };
|
|
71
|
+
return { found: true, text: `JDK ${found.version}` };
|
|
72
|
+
},
|
|
46
73
|
};
|
|
47
74
|
}
|
|
48
75
|
export function nodeCheck(version) {
|
|
@@ -52,18 +79,24 @@ export function nodeCheck(version) {
|
|
|
52
79
|
return { name: "node", ok: true, line: `Node.js ${version}` };
|
|
53
80
|
}
|
|
54
81
|
export function packageManagerCheck(manager, probe) {
|
|
55
|
-
const
|
|
82
|
+
const binary = packageManagerBinary(manager);
|
|
83
|
+
const found = probe.version(binary);
|
|
56
84
|
if (!found.found) {
|
|
57
85
|
const line = manager === "pnpm"
|
|
58
86
|
? "pnpm not found. Run `corepack enable` or pass --package-manager npm"
|
|
59
87
|
: manager === "uv"
|
|
60
88
|
? "uv not found. Install it from https://docs.astral.sh/uv/ and try again."
|
|
61
|
-
:
|
|
89
|
+
: manager === "dotnet"
|
|
90
|
+
? "dotnet not found. Install the .NET SDK from https://dot.net/download and try again."
|
|
91
|
+
: manager === "maven"
|
|
92
|
+
? "mvn not found. Install Maven from https://maven.apache.org/download.cgi and try again."
|
|
93
|
+
: "npm not found. Install Node.js, which includes npm, or pass --package-manager pnpm";
|
|
62
94
|
return { name: "package-manager", ok: false, line };
|
|
63
95
|
}
|
|
64
|
-
const
|
|
96
|
+
const label = manager === "maven" ? "mvn" : manager;
|
|
97
|
+
const text = found.text.startsWith(label)
|
|
65
98
|
? found.text
|
|
66
|
-
: `${
|
|
99
|
+
: `${label} ${found.text}`;
|
|
67
100
|
return { name: "package-manager", ok: true, line: text };
|
|
68
101
|
}
|
|
69
102
|
/** Python for a Python template (`engines.python`, for example `>=3.12`). */
|
|
@@ -76,6 +109,26 @@ export function pythonCheck(range, probe) {
|
|
|
76
109
|
return { name: "python", ok: false, line: pythonMessage(range) };
|
|
77
110
|
return { name: "python", ok: true, line: found.text };
|
|
78
111
|
}
|
|
112
|
+
/** .NET SDK for an ASP.NET Core template (`engines.dotnet`, for example `>=10.0`). */
|
|
113
|
+
export function dotnetCheck(range, probe) {
|
|
114
|
+
const found = probe.dotnet?.(range) ?? {
|
|
115
|
+
found: true,
|
|
116
|
+
text: `.NET SDK ${range}`,
|
|
117
|
+
};
|
|
118
|
+
if (!found.found)
|
|
119
|
+
return { name: "dotnet", ok: false, line: dotnetMessage(range) };
|
|
120
|
+
return { name: "dotnet", ok: true, line: found.text };
|
|
121
|
+
}
|
|
122
|
+
/** JDK for a Spring Boot template (`engines.java`, for example `>=25`). */
|
|
123
|
+
export function javaCheck(range, probe) {
|
|
124
|
+
const found = probe.java?.(range) ?? {
|
|
125
|
+
found: true,
|
|
126
|
+
text: `JDK ${range}`,
|
|
127
|
+
};
|
|
128
|
+
if (!found.found)
|
|
129
|
+
return { name: "java", ok: false, line: javaMessage(range) };
|
|
130
|
+
return { name: "java", ok: true, line: found.text };
|
|
131
|
+
}
|
|
79
132
|
export function gitCheck(enabled, probe, identity) {
|
|
80
133
|
if (!enabled)
|
|
81
134
|
return { name: "git", ok: true, line: "git skipped (--no-git)" };
|
package/dist/preflight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,14 @@
|
|
|
86
86
|
"python": {
|
|
87
87
|
"type": "string",
|
|
88
88
|
"description": "Python version range the generated project needs (Python templates only), e.g. \">=3.12\". create and gate refuse when uv cannot find a matching interpreter."
|
|
89
|
+
},
|
|
90
|
+
"dotnet": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": ".NET SDK version range the generated project needs (ASP.NET Core templates), e.g. \">=10.0\". create and gate refuse when no matching SDK is on PATH."
|
|
93
|
+
},
|
|
94
|
+
"java": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "JDK version range the generated project needs (Spring templates later), e.g. \">=25\". create and gate refuse when no matching JDK is on PATH."
|
|
89
97
|
}
|
|
90
98
|
}
|
|
91
99
|
},
|
|
@@ -1521,9 +1529,11 @@
|
|
|
1521
1529
|
"enum": [
|
|
1522
1530
|
"pnpm",
|
|
1523
1531
|
"npm",
|
|
1524
|
-
"uv"
|
|
1532
|
+
"uv",
|
|
1533
|
+
"dotnet",
|
|
1534
|
+
"maven"
|
|
1525
1535
|
],
|
|
1526
|
-
"description": "pnpm and npm for Node templates, uv for Python
|
|
1536
|
+
"description": "pnpm and npm for Node templates, uv for Python, dotnet for ASP.NET Core, maven for Spring (later). yarn and bun are planned for later."
|
|
1527
1537
|
}
|
|
1528
1538
|
}
|
|
1529
1539
|
}
|
package/dist/templates.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TemplateManifest } from "./engine/index.js";
|
|
2
|
-
export declare const TEMPLATE_IDS: readonly ["next-fullstack", "fastapi", "hono", "vite-react", "astro-site"];
|
|
2
|
+
export declare const TEMPLATE_IDS: readonly ["next-fullstack", "fastapi", "hono", "vite-react", "astro-site", "dotnet", "spring"];
|
|
3
3
|
export type TemplateId = (typeof TEMPLATE_IDS)[number];
|
|
4
4
|
export declare const DEFAULT_TEMPLATE: TemplateId;
|
|
5
5
|
export type TemplateEntry = {
|
package/dist/templates.js
CHANGED
|
@@ -7,6 +7,8 @@ export const TEMPLATE_IDS = [
|
|
|
7
7
|
"hono",
|
|
8
8
|
"vite-react",
|
|
9
9
|
"astro-site",
|
|
10
|
+
"dotnet",
|
|
11
|
+
"spring",
|
|
10
12
|
];
|
|
11
13
|
export const DEFAULT_TEMPLATE = "next-fullstack";
|
|
12
14
|
export const TEMPLATES = {
|
|
@@ -55,6 +57,24 @@ export const TEMPLATES = {
|
|
|
55
57
|
stack: "Astro, TypeScript, ESLint, Prettier, html-validate",
|
|
56
58
|
ask: "Add a second feature card about accessibility.",
|
|
57
59
|
},
|
|
60
|
+
dotnet: {
|
|
61
|
+
id: "dotnet",
|
|
62
|
+
packageName: "@yosr-ai/template-dotnet",
|
|
63
|
+
label: "ASP.NET Core API",
|
|
64
|
+
hint: ".NET 10, minimal API, EF Core optional",
|
|
65
|
+
intro: "ASP.NET Core API starter",
|
|
66
|
+
stack: "ASP.NET Core, .NET 10, xUnit, EF Core (Postgres optional)",
|
|
67
|
+
ask: "Add a DELETE /notes/{id} endpoint.",
|
|
68
|
+
},
|
|
69
|
+
spring: {
|
|
70
|
+
id: "spring",
|
|
71
|
+
packageName: "@yosr-ai/template-spring",
|
|
72
|
+
label: "Spring Boot API",
|
|
73
|
+
hint: "Java 25, Spring Boot, JPA optional",
|
|
74
|
+
intro: "Spring Boot API starter",
|
|
75
|
+
stack: "Spring Boot, Java 25, JUnit 5, Spring Data JPA (Postgres optional)",
|
|
76
|
+
ask: "Add a DELETE /notes/{id} endpoint.",
|
|
77
|
+
},
|
|
58
78
|
};
|
|
59
79
|
export function isTemplateId(value) {
|
|
60
80
|
return TEMPLATE_IDS.includes(value);
|
|
@@ -73,6 +93,10 @@ function packageJsonUrl(id) {
|
|
|
73
93
|
return import.meta.resolve("@yosr-ai/template-vite-react/package.json");
|
|
74
94
|
if (id === "astro-site")
|
|
75
95
|
return import.meta.resolve("@yosr-ai/template-astro-site/package.json");
|
|
96
|
+
if (id === "dotnet")
|
|
97
|
+
return import.meta.resolve("@yosr-ai/template-dotnet/package.json");
|
|
98
|
+
if (id === "spring")
|
|
99
|
+
return import.meta.resolve("@yosr-ai/template-spring/package.json");
|
|
76
100
|
return import.meta.resolve("@yosr-ai/template-next-fullstack/package.json");
|
|
77
101
|
}
|
|
78
102
|
/** Directory of the installed template package for `id`. */
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB;IAChB,SAAS;IACT,MAAM;IACN,YAAY;IACZ,YAAY;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yosr-seed",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Yosr Seed CLI. Creates a project from a template.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://seed.yosr.ai",
|
|
@@ -29,11 +29,13 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@clack/prompts": "1.8.1",
|
|
32
|
-
"@yosr-ai/template-fastapi": "0.2.
|
|
33
|
-
"@yosr-ai/template-hono": "0.2.
|
|
34
|
-
"@yosr-ai/template-next-fullstack": "0.2.
|
|
35
|
-
"@yosr-ai/template-vite-react": "0.2.
|
|
36
|
-
"@yosr-ai/template-astro-site": "0.2.
|
|
32
|
+
"@yosr-ai/template-fastapi": "0.2.6",
|
|
33
|
+
"@yosr-ai/template-hono": "0.2.6",
|
|
34
|
+
"@yosr-ai/template-next-fullstack": "0.2.6",
|
|
35
|
+
"@yosr-ai/template-vite-react": "0.2.6",
|
|
36
|
+
"@yosr-ai/template-astro-site": "0.2.6",
|
|
37
|
+
"@yosr-ai/template-dotnet": "0.2.6",
|
|
38
|
+
"@yosr-ai/template-spring": "0.2.6",
|
|
37
39
|
"ajv": "8.20.0",
|
|
38
40
|
"ajv-formats": "3.0.1",
|
|
39
41
|
"prettier": "3.9.10"
|