create-daloy 1.0.0-beta.5 → 1.0.0-beta.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/README.md +3 -0
- package/bin/create-daloy.mjs +33 -8
- package/package.json +1 -1
- package/sbom.cdx.json +9 -9
- package/sbom.spdx.json +5 -5
- package/templates/bun-basic/package.json +1 -1
- package/templates/cloudflare-worker/package.json +1 -1
- package/templates/deno-basic/deno.json +5 -5
- package/templates/node-basic/package.json +1 -1
- package/templates/vercel/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,9 @@ pnpm create daloy@latest my-api
|
|
|
17
17
|
npm create daloy@latest my-api
|
|
18
18
|
yarn create daloy my-api
|
|
19
19
|
bun create daloy my-api
|
|
20
|
+
|
|
21
|
+
# scaffold into the current directory
|
|
22
|
+
pnpm create daloy@latest .
|
|
20
23
|
```
|
|
21
24
|
|
|
22
25
|
The CLI is interactive when arguments are missing. It will ask you for:
|
package/bin/create-daloy.mjs
CHANGED
|
@@ -363,6 +363,7 @@ ${heading("Usage")}
|
|
|
363
363
|
${color(COLORS.cyan, "npm")} create daloy@latest ${color(COLORS.dim, "[project-name] [options]")}
|
|
364
364
|
${color(COLORS.cyan, "yarn")} create daloy ${color(COLORS.dim, "[project-name] [options]")}
|
|
365
365
|
${color(COLORS.cyan, "bun")} create daloy ${color(COLORS.dim, "[project-name] [options]")}
|
|
366
|
+
${color(COLORS.dim, "Use . as the project name to scaffold into the current directory.")}
|
|
366
367
|
|
|
367
368
|
${heading("Options")}
|
|
368
369
|
${color(COLORS.green, "--template <name>")} ${TEMPLATES.join(" | ")} ${color(COLORS.dim, "(default: node-basic)")}
|
|
@@ -568,7 +569,8 @@ const VALID_CODE_OWNER =
|
|
|
568
569
|
|
|
569
570
|
function validateProjectName(name) {
|
|
570
571
|
if (!name || !name.trim()) return "Project name cannot be empty.";
|
|
571
|
-
if (name === "."
|
|
572
|
+
if (name === ".") return true;
|
|
573
|
+
if (name === "..") return "Use a real directory name.";
|
|
572
574
|
if (name.length > 214) return "Project name is too long (max 214 chars).";
|
|
573
575
|
if (!VALID_NAME.test(name)) {
|
|
574
576
|
return "Project name must be a valid npm package name (lowercase, no spaces, no leading dot/underscore).";
|
|
@@ -576,6 +578,10 @@ function validateProjectName(name) {
|
|
|
576
578
|
return true;
|
|
577
579
|
}
|
|
578
580
|
|
|
581
|
+
function projectPackageName(projectName, cwd) {
|
|
582
|
+
return projectName === "." ? path.basename(cwd).toLowerCase() : projectName;
|
|
583
|
+
}
|
|
584
|
+
|
|
579
585
|
async function isDirEmpty(dir) {
|
|
580
586
|
try {
|
|
581
587
|
const entries = await readdir(dir);
|
|
@@ -1677,7 +1683,7 @@ function createSpinner(initialMessage) {
|
|
|
1677
1683
|
};
|
|
1678
1684
|
}
|
|
1679
1685
|
|
|
1680
|
-
function printSummary({ projectName, template, packageManager, installDeps, skipPackageManager, withCi, withDeploy, missingTools = [] }) {
|
|
1686
|
+
function printSummary({ projectName, shouldChangeDirectory = true, template, packageManager, installDeps, skipPackageManager, withCi, withDeploy, missingTools = [] }) {
|
|
1681
1687
|
const templateMeta = TEMPLATE_OPTIONS.find((option) => option.value === template);
|
|
1682
1688
|
const templateLabel = templateMeta ? `${templateMeta.title} ${color(COLORS.dim, `(${template})`)}` : template;
|
|
1683
1689
|
const summaryLines = [
|
|
@@ -1703,7 +1709,9 @@ function printSummary({ projectName, template, packageManager, installDeps, skip
|
|
|
1703
1709
|
|
|
1704
1710
|
const arrow = color(COLORS.cyan, SYMBOLS.arrow);
|
|
1705
1711
|
console.log(`${color(COLORS.bold, "Next steps")}`);
|
|
1706
|
-
|
|
1712
|
+
if (shouldChangeDirectory) {
|
|
1713
|
+
console.log(` ${arrow} ${color(COLORS.cyan, `cd ${projectName}`)}`);
|
|
1714
|
+
}
|
|
1707
1715
|
if (skipPackageManager) {
|
|
1708
1716
|
console.log(` ${arrow} ${color(COLORS.cyan, "deno task dev")}`);
|
|
1709
1717
|
} else {
|
|
@@ -1835,7 +1843,14 @@ async function main() {
|
|
|
1835
1843
|
process.exit(1);
|
|
1836
1844
|
}
|
|
1837
1845
|
|
|
1838
|
-
const
|
|
1846
|
+
const cwd = process.cwd();
|
|
1847
|
+
const packageName = projectPackageName(projectName, cwd);
|
|
1848
|
+
const packageNameCheck = projectName === "." ? validateProjectName(packageName) : true;
|
|
1849
|
+
if (packageNameCheck !== true) {
|
|
1850
|
+
logError(`Current directory name "${packageName}" cannot be used as a package name. ${packageNameCheck}`);
|
|
1851
|
+
process.exit(1);
|
|
1852
|
+
}
|
|
1853
|
+
const targetDir = projectName === "." ? cwd : path.resolve(cwd, projectName);
|
|
1839
1854
|
if (existsSync(targetDir)) {
|
|
1840
1855
|
const empty = await isDirEmpty(targetDir);
|
|
1841
1856
|
if (!empty && !opts.force) {
|
|
@@ -1927,8 +1942,8 @@ async function main() {
|
|
|
1927
1942
|
logStep("Minimal mode applied", `${count} file${count === 1 ? "" : "s"} trimmed`);
|
|
1928
1943
|
}
|
|
1929
1944
|
if (!skipPackageManager) {
|
|
1930
|
-
await patchPackageJson(targetDir,
|
|
1931
|
-
logStep("Package metadata written",
|
|
1945
|
+
await patchPackageJson(targetDir, packageName, packageManager);
|
|
1946
|
+
logStep("Package metadata written", packageName);
|
|
1932
1947
|
await patchTemplateTextFiles(targetDir, packageManager);
|
|
1933
1948
|
await patchDockerignoreForPackageManager(targetDir, packageManager);
|
|
1934
1949
|
if (packageManager !== "pnpm") {
|
|
@@ -1985,13 +2000,23 @@ async function main() {
|
|
|
1985
2000
|
if (tail.trim().length > 0) {
|
|
1986
2001
|
console.error(color(COLORS.dim, tail));
|
|
1987
2002
|
}
|
|
1988
|
-
logWarn(`Retry inside ${projectName} with: ${packageManager} install`);
|
|
2003
|
+
logWarn(`Retry inside ${projectName === "." ? "this directory" : projectName} with: ${packageManager} install`);
|
|
1989
2004
|
} else {
|
|
1990
2005
|
spinner.stop(`Installed dependencies with ${color(COLORS.cyan, packageManager)}`);
|
|
1991
2006
|
}
|
|
1992
2007
|
}
|
|
1993
2008
|
|
|
1994
|
-
printSummary({
|
|
2009
|
+
printSummary({
|
|
2010
|
+
projectName: packageName,
|
|
2011
|
+
shouldChangeDirectory: projectName !== ".",
|
|
2012
|
+
template,
|
|
2013
|
+
packageManager,
|
|
2014
|
+
installDeps,
|
|
2015
|
+
skipPackageManager,
|
|
2016
|
+
withCi,
|
|
2017
|
+
withDeploy,
|
|
2018
|
+
missingTools,
|
|
2019
|
+
});
|
|
1995
2020
|
} catch (err) {
|
|
1996
2021
|
rl?.close();
|
|
1997
2022
|
if (err && err.message === "Cancelled") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-daloy",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.6",
|
|
4
4
|
"description": "Scaffold a new DaloyJS project. Run with `pnpm create daloy`, `npm create daloy@latest`, `yarn create daloy`, or `bun create daloy`.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/sbom.cdx.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:f43c9f53-eb2b-530b-a5b0-1406b6ec4e9f",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-07-
|
|
7
|
+
"timestamp": "2026-07-01T22:47:11.159Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "DaloyJS",
|
|
11
11
|
"name": "daloy-generate-sbom",
|
|
12
|
-
"version": "1.0.0-beta.
|
|
12
|
+
"version": "1.0.0-beta.6"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"authors": [],
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
|
-
"bom-ref": "pkg:npm/create-daloy@1.0.0-beta.
|
|
18
|
+
"bom-ref": "pkg:npm/create-daloy@1.0.0-beta.6",
|
|
19
19
|
"name": "create-daloy",
|
|
20
|
-
"version": "1.0.0-beta.
|
|
20
|
+
"version": "1.0.0-beta.6",
|
|
21
21
|
"description": "Scaffold a new DaloyJS project. Run with `pnpm create daloy`, `npm create daloy@latest`, `yarn create daloy`, or `bun create daloy`.",
|
|
22
|
-
"purl": "pkg:npm/create-daloy@1.0.0-beta.
|
|
22
|
+
"purl": "pkg:npm/create-daloy@1.0.0-beta.6",
|
|
23
23
|
"licenses": [
|
|
24
24
|
{
|
|
25
25
|
"license": {
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
}
|
|
43
43
|
],
|
|
44
44
|
"swid": {
|
|
45
|
-
"tagId": "swidtag-create-daloy-1.0.0-beta.
|
|
45
|
+
"tagId": "swidtag-create-daloy-1.0.0-beta.6",
|
|
46
46
|
"name": "create-daloy",
|
|
47
|
-
"version": "1.0.0-beta.
|
|
47
|
+
"version": "1.0.0-beta.6",
|
|
48
48
|
"tagVersion": 0,
|
|
49
49
|
"patch": false
|
|
50
50
|
}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"components": [],
|
|
54
54
|
"dependencies": [
|
|
55
55
|
{
|
|
56
|
-
"ref": "pkg:npm/create-daloy@1.0.0-beta.
|
|
56
|
+
"ref": "pkg:npm/create-daloy@1.0.0-beta.6",
|
|
57
57
|
"dependsOn": []
|
|
58
58
|
}
|
|
59
59
|
]
|
package/sbom.spdx.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"spdxVersion": "SPDX-2.3",
|
|
3
3
|
"dataLicense": "CC0-1.0",
|
|
4
4
|
"SPDXID": "SPDXRef-DOCUMENT",
|
|
5
|
-
"name": "create-daloy-1.0.0-beta.
|
|
6
|
-
"documentNamespace": "https://github.com/daloyjs/daloy/sbom/create-daloy-1.0.0-beta.
|
|
5
|
+
"name": "create-daloy-1.0.0-beta.6",
|
|
6
|
+
"documentNamespace": "https://github.com/daloyjs/daloy/sbom/create-daloy-1.0.0-beta.6-f43c9f53-eb2b-530b-a5b0-1406b6ec4e9f",
|
|
7
7
|
"creationInfo": {
|
|
8
|
-
"created": "2026-07-
|
|
8
|
+
"created": "2026-07-01T22:47:11.159Z",
|
|
9
9
|
"creators": [
|
|
10
10
|
"Tool: daloy-generate-sbom",
|
|
11
11
|
"Organization: DaloyJS"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
{
|
|
17
17
|
"SPDXID": "SPDXRef-Package-create-daloy",
|
|
18
18
|
"name": "create-daloy",
|
|
19
|
-
"versionInfo": "1.0.0-beta.
|
|
19
|
+
"versionInfo": "1.0.0-beta.6",
|
|
20
20
|
"downloadLocation": "https://github.com/daloyjs/daloy",
|
|
21
21
|
"filesAnalyzed": false,
|
|
22
22
|
"licenseConcluded": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
{
|
|
28
28
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
29
29
|
"referenceType": "purl",
|
|
30
|
-
"referenceLocator": "pkg:npm/create-daloy@1.0.0-beta.
|
|
30
|
+
"referenceLocator": "pkg:npm/create-daloy@1.0.0-beta.6"
|
|
31
31
|
}
|
|
32
32
|
]
|
|
33
33
|
}
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"hooks:install": "git config core.hooksPath .githooks"
|
|
11
11
|
},
|
|
12
12
|
"imports": {
|
|
13
|
-
"@daloyjs/core": "jsr:@daloyjs/daloy@^1.0.0-beta.
|
|
14
|
-
"@daloyjs/core/banner": "jsr:@daloyjs/daloy@^1.0.0-beta.
|
|
15
|
-
"@daloyjs/core/contract": "jsr:@daloyjs/daloy@^1.0.0-beta.
|
|
16
|
-
"@daloyjs/core/deno": "jsr:@daloyjs/daloy@^1.0.0-beta.
|
|
17
|
-
"@daloyjs/core/openapi": "jsr:@daloyjs/daloy@^1.0.0-beta.
|
|
13
|
+
"@daloyjs/core": "jsr:@daloyjs/daloy@^1.0.0-beta.6",
|
|
14
|
+
"@daloyjs/core/banner": "jsr:@daloyjs/daloy@^1.0.0-beta.6/banner",
|
|
15
|
+
"@daloyjs/core/contract": "jsr:@daloyjs/daloy@^1.0.0-beta.6/contract",
|
|
16
|
+
"@daloyjs/core/deno": "jsr:@daloyjs/daloy@^1.0.0-beta.6/deno",
|
|
17
|
+
"@daloyjs/core/openapi": "jsr:@daloyjs/daloy@^1.0.0-beta.6/openapi",
|
|
18
18
|
"zod": "npm:zod@^4.4.3"
|
|
19
19
|
},
|
|
20
20
|
"compilerOptions": {
|