create-daloy 1.0.0-rc.1 → 1.0.0-rc.3

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 CHANGED
@@ -75,7 +75,7 @@ Use `create-daloy --list-templates` to inspect available templates without creat
75
75
 
76
76
  A production-ready Node.js HTTP server using `@daloyjs/core` with:
77
77
 
78
- - Strict TypeScript and `tsx` for instant dev runs.
78
+ - Strict TypeScript run natively by Node.js (built-in type stripping) — no transpiler needed for dev runs.
79
79
  - Hardened `.npmrc` for safer installs.
80
80
  - `secureHeaders`, `requestId`, and `rateLimit` enabled by default (`rateLimit` is global until you configure `keyGenerator` or trusted proxy headers).
81
81
  - A sample `GET /healthz` and contract-first `GET /books/:id` route with Zod validation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-daloy",
3
- "version": "1.0.0-rc.1",
3
+ "version": "1.0.0-rc.3",
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:2793b108-24bc-57cc-b24f-9dbf47b38ed0",
4
+ "serialNumber": "urn:uuid:837a492d-6f26-5ff8-b1e0-689b969309f7",
5
5
  "version": 1,
6
6
  "metadata": {
7
- "timestamp": "2026-07-04T14:31:18.525Z",
7
+ "timestamp": "2026-07-09T19:29:37.132Z",
8
8
  "tools": [
9
9
  {
10
10
  "vendor": "DaloyJS",
11
11
  "name": "daloy-generate-sbom",
12
- "version": "1.0.0-rc.1"
12
+ "version": "1.0.0-rc.3"
13
13
  }
14
14
  ],
15
15
  "authors": [],
16
16
  "component": {
17
17
  "type": "library",
18
- "bom-ref": "pkg:npm/create-daloy@1.0.0-rc.1",
18
+ "bom-ref": "pkg:npm/create-daloy@1.0.0-rc.3",
19
19
  "name": "create-daloy",
20
- "version": "1.0.0-rc.1",
20
+ "version": "1.0.0-rc.3",
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-rc.1",
22
+ "purl": "pkg:npm/create-daloy@1.0.0-rc.3",
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-rc.1",
45
+ "tagId": "swidtag-create-daloy-1.0.0-rc.3",
46
46
  "name": "create-daloy",
47
- "version": "1.0.0-rc.1",
47
+ "version": "1.0.0-rc.3",
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-rc.1",
56
+ "ref": "pkg:npm/create-daloy@1.0.0-rc.3",
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-rc.1",
6
- "documentNamespace": "https://github.com/daloyjs/daloy/sbom/create-daloy-1.0.0-rc.1-2793b108-24bc-57cc-b24f-9dbf47b38ed0",
5
+ "name": "create-daloy-1.0.0-rc.3",
6
+ "documentNamespace": "https://github.com/daloyjs/daloy/sbom/create-daloy-1.0.0-rc.3-837a492d-6f26-5ff8-b1e0-689b969309f7",
7
7
  "creationInfo": {
8
- "created": "2026-07-04T14:31:18.525Z",
8
+ "created": "2026-07-09T19:29:37.132Z",
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-rc.1",
19
+ "versionInfo": "1.0.0-rc.3",
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-rc.1"
30
+ "referenceLocator": "pkg:npm/create-daloy@1.0.0-rc.3"
31
31
  }
32
32
  ]
33
33
  }
@@ -19,11 +19,11 @@
19
19
  "hooks:install": "git config core.hooksPath .githooks"
20
20
  },
21
21
  "dependencies": {
22
- "@daloyjs/core": "^1.0.0-rc.1",
22
+ "@daloyjs/core": "^1.0.0-rc.3",
23
23
  "zod": "^4.4.3"
24
24
  },
25
25
  "devDependencies": {
26
- "@hey-api/openapi-ts": "^0.97.1",
26
+ "@hey-api/openapi-ts": "^0.99.0",
27
27
  "@types/bun": "^1.1.0",
28
28
  "typescript": "^6.0.3"
29
29
  }
@@ -3,22 +3,24 @@
3
3
  "version": "0.0.1",
4
4
  "private": true,
5
5
  "type": "module",
6
+ "engines": {
7
+ "node": "^24.0.0 || >=26.0.0"
8
+ },
6
9
  "scripts": {
7
10
  "dev": "wrangler dev",
8
11
  "deploy": "wrangler deploy",
9
12
  "typecheck": "tsc --noEmit",
10
- "test": "node --import tsx --test tests/**/*.test.ts",
13
+ "test": "node --test tests/**/*.test.ts",
11
14
  "contract": "daloy inspect --check src/index.ts",
12
15
  "audit": "pnpm audit --prod",
13
16
  "hooks:install": "git config core.hooksPath .githooks"
14
17
  },
15
18
  "dependencies": {
16
- "@daloyjs/core": "^1.0.0-rc.1",
19
+ "@daloyjs/core": "^1.0.0-rc.3",
17
20
  "zod": "^4.4.3"
18
21
  },
19
22
  "devDependencies": {
20
23
  "@cloudflare/workers-types": "^4.20240909.0",
21
- "tsx": "^4.22.3",
22
24
  "typescript": "^6.0.3",
23
25
  "wrangler": "^4.0.0"
24
26
  }
@@ -12,7 +12,9 @@
12
12
  "forceConsistentCasingInFileNames": true,
13
13
  "resolveJsonModule": true,
14
14
  "isolatedModules": true,
15
- "noEmit": true
15
+ "noEmit": true,
16
+ "erasableSyntaxOnly": true,
17
+ "verbatimModuleSyntax": true
16
18
  },
17
19
  "include": ["src/**/*"]
18
20
  }
@@ -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-rc.1",
14
- "@daloyjs/core/banner": "jsr:@daloyjs/daloy@^1.0.0-rc.1/banner",
15
- "@daloyjs/core/contract": "jsr:@daloyjs/daloy@^1.0.0-rc.1/contract",
16
- "@daloyjs/core/deno": "jsr:@daloyjs/daloy@^1.0.0-rc.1/deno",
17
- "@daloyjs/core/openapi": "jsr:@daloyjs/daloy@^1.0.0-rc.1/openapi",
13
+ "@daloyjs/core": "jsr:@daloyjs/daloy@^1.0.0-rc.3",
14
+ "@daloyjs/core/banner": "jsr:@daloyjs/daloy@^1.0.0-rc.3/banner",
15
+ "@daloyjs/core/contract": "jsr:@daloyjs/daloy@^1.0.0-rc.3/contract",
16
+ "@daloyjs/core/deno": "jsr:@daloyjs/daloy@^1.0.0-rc.3/deno",
17
+ "@daloyjs/core/openapi": "jsr:@daloyjs/daloy@^1.0.0-rc.3/openapi",
18
18
  "zod": "npm:zod@^4.4.3"
19
19
  },
20
20
  "compilerOptions": {
@@ -34,7 +34,7 @@ When `docs: true` is set in `new App({...})`, three routes are auto-mounted:
34
34
  - `src/index.ts` — calls `buildApp()` and starts the listener via `@daloyjs/core/node`. The only file that opens a port.
35
35
  - `scripts/dump-openapi.ts` — imports `buildApp()` and writes `generated/openapi.json`. Codegen reads from `buildApp()` only — never import `src/index.ts` from scripts.
36
36
  - `generated/` — machine-written by `pnpm gen`. Do not edit by hand.
37
- - `tests/` — `*.test.ts` files run with `node --test` (via `tsx`).
37
+ - `tests/` — `*.test.ts` files run with `node --test` (Node.js strips TypeScript types natively).
38
38
 
39
39
  ## Imports
40
40
 
@@ -243,7 +243,8 @@ needs to run code after the handler.
243
243
  ## Testing best practices
244
244
 
245
245
  Tests live under `tests/` and run with `node --test` (Node's built-in
246
- runner via `tsx`). Use **in-process** requests through `app.request()` —
246
+ runner; Node.js strips TypeScript types natively). Use **in-process**
247
+ requests through `app.request()` —
247
248
  no HTTP server, no port flakiness, no teardown.
248
249
 
249
250
  ```ts
@@ -11,22 +11,21 @@
11
11
  "start": "node dist/index.js",
12
12
  "build": "tsc -p tsconfig.build.json",
13
13
  "typecheck": "tsc --noEmit",
14
- "test": "node --import tsx --test tests/**/*.test.ts",
14
+ "test": "node --test tests/**/*.test.ts",
15
15
  "contract": "daloy inspect --check src/build-app.ts",
16
- "gen:openapi": "node --import tsx scripts/dump-openapi.ts",
16
+ "gen:openapi": "node scripts/dump-openapi.ts",
17
17
  "gen:client": "openapi-ts",
18
18
  "gen": "pnpm gen:openapi && pnpm gen:client",
19
19
  "audit": "pnpm audit --prod",
20
20
  "hooks:install": "git config core.hooksPath .githooks"
21
21
  },
22
22
  "dependencies": {
23
- "@daloyjs/core": "^1.0.0-rc.1",
23
+ "@daloyjs/core": "^1.0.0-rc.3",
24
24
  "zod": "^4.4.3"
25
25
  },
26
26
  "devDependencies": {
27
- "@hey-api/openapi-ts": "^0.97.1",
28
- "@types/node": "^25.7.0",
29
- "tsx": "^4.22.3",
27
+ "@hey-api/openapi-ts": "^0.99.0",
28
+ "@types/node": "^26.1.0",
30
29
  "typescript": "^6.0.3"
31
30
  }
32
31
  }
@@ -13,7 +13,9 @@
13
13
  "forceConsistentCasingInFileNames": true,
14
14
  "resolveJsonModule": true,
15
15
  "allowImportingTsExtensions": true,
16
- "rewriteRelativeImportExtensions": true
16
+ "rewriteRelativeImportExtensions": true,
17
+ "erasableSyntaxOnly": true,
18
+ "verbatimModuleSyntax": true
17
19
  },
18
20
  "include": ["src/**/*", "scripts/**/*", "tests/**/*"],
19
21
  "exclude": ["node_modules", "dist"]
@@ -38,7 +38,7 @@ This project uses TypeScript with `"allowImportingTsExtensions"`, so relative im
38
38
  import handler from "../api/index.ts";
39
39
  ```
40
40
 
41
- You import the file you see. Vercel and tsx resolve `.ts` directly. Bare package imports (`@daloyjs/core`, `zod`, ...) need no extension.
41
+ You import the file you see. Vercel resolves `.ts` at deploy time; Node runs it natively (type stripping). Bare package imports (`@daloyjs/core`, `zod`, ...) need no extension.
42
42
 
43
43
  ## Core rules
44
44
 
@@ -93,7 +93,7 @@ This project uses TypeScript with `"allowImportingTsExtensions"`. Relative impor
93
93
  import handler from "../api/index.ts";
94
94
  ```
95
95
 
96
- Vercel bundles the `api/` functions at deploy time and resolves `.ts` directly, and the test runner (tsx) does too.
96
+ Vercel bundles the `api/` functions at deploy time and resolves `.ts` directly, and Node.js (>= 22.18) runs the tests and dev server directly via native type stripping.
97
97
 
98
98
  ## What's included
99
99
 
@@ -3,22 +3,24 @@
3
3
  "version": "0.0.1",
4
4
  "private": true,
5
5
  "type": "module",
6
+ "engines": {
7
+ "node": "^24.0.0 || >=26.0.0"
8
+ },
6
9
  "scripts": {
7
- "dev": "node --import tsx src/dev.ts",
10
+ "dev": "node --watch src/dev.ts",
8
11
  "deploy": "vercel deploy",
9
12
  "typecheck": "tsc --noEmit",
10
- "test": "node --import tsx --test tests/**/*.test.ts",
13
+ "test": "node --test tests/**/*.test.ts",
11
14
  "contract": "daloy inspect --check api/index.ts",
12
15
  "audit": "pnpm audit --prod",
13
16
  "hooks:install": "git config core.hooksPath .githooks"
14
17
  },
15
18
  "dependencies": {
16
- "@daloyjs/core": "^1.0.0-rc.1",
19
+ "@daloyjs/core": "^1.0.0-rc.3",
17
20
  "zod": "^4.4.3"
18
21
  },
19
22
  "devDependencies": {
20
- "@types/node": "^25.7.0",
21
- "tsx": "^4.22.3",
23
+ "@types/node": "^26.1.0",
22
24
  "typescript": "^6.0.3",
23
25
  "vercel": "^48.0.0"
24
26
  }
@@ -13,7 +13,9 @@
13
13
  "resolveJsonModule": true,
14
14
  "isolatedModules": true,
15
15
  "noEmit": true,
16
- "allowImportingTsExtensions": true
16
+ "allowImportingTsExtensions": true,
17
+ "erasableSyntaxOnly": true,
18
+ "verbatimModuleSyntax": true
17
19
  },
18
20
  "include": ["api/**/*.ts", "src/**/*.ts", "tests/**/*.ts"]
19
21
  }