@shivaedev/create-app 0.6.5 → 0.6.7
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 +15 -0
- package/README.md +10 -0
- package/dist/appFiles.d.ts +3 -0
- package/dist/appFiles.d.ts.map +1 -0
- package/dist/appFiles.js +21 -0
- package/dist/appFiles.js.map +1 -0
- package/dist/cli.js +65 -65
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +18 -11
- package/dist/createApp.js.map +1 -1
- package/dist/packTemplate.d.ts.map +1 -1
- package/dist/packTemplate.js +17 -2
- package/dist/packTemplate.js.map +1 -1
- package/docs/roadmap.md +1 -0
- package/package.json +2 -1
- package/src/appFiles.ts +23 -0
- package/src/createApp.ts +19 -12
- package/src/packTemplate.ts +17 -2
- package/template.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.7 - 2026-10-17
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- A generated app gets its own named README and framework guidance, with `CLAUDE.md` linked to `AGENTS.md`, without template maintenance files or names.
|
|
8
|
+
- A generated app uses matching development and test database names in both environment files, reads only `TEST_DATABASE_URL` for tests, and includes only existing TypeScript paths.
|
|
9
|
+
- A generated app keeps non-secret files and its installed lockfile at mode `0644`, with `.env.local` at `0600`, and pins the current published framework versions.
|
|
10
|
+
- A generated app logs a warning when PostgreSQL terminates an idle Better Auth connection, instead of crashing the process with an uncaught pool error.
|
|
11
|
+
|
|
12
|
+
## 0.6.6 - 2026-10-17
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- New apps start on `@shivaedev/effect-test-sql` 0.5.1, whose migration steps accept zero-padded migration names as written.
|
|
17
|
+
|
|
3
18
|
## 0.6.5 - 2026-10-17
|
|
4
19
|
|
|
5
20
|
### Changed
|
package/README.md
CHANGED
|
@@ -6,8 +6,16 @@ Start a Platform application without copying repository files or editing workspa
|
|
|
6
6
|
|
|
7
7
|
The starter brings PostgreSQL, authenticated RPC and a React notes screen together in a small application you can change. Its source stays in Platform's `examples/starter`, so the generator carries the same app that the framework maintains.
|
|
8
8
|
|
|
9
|
+
```sh
|
|
10
|
+
pnpm create @shivaedev/app my-app
|
|
11
|
+
```
|
|
12
|
+
|
|
9
13
|
```text
|
|
10
14
|
Created my-app.
|
|
15
|
+
|
|
16
|
+
Next steps:
|
|
17
|
+
cd 'my-app'
|
|
18
|
+
pnpm dev
|
|
11
19
|
```
|
|
12
20
|
|
|
13
21
|
## Create and run
|
|
@@ -29,6 +37,8 @@ pnpm dev
|
|
|
29
37
|
|
|
30
38
|
The command writes a git-ignored `.env.local` with a fresh authentication secret and local development and test database URLs. Existing files are never overwritten. Database names replace dots and hyphens in the app name with underscores, prefix a name starting with a digit with `app_`, and limit the stem to 58 characters before adding `_dev` and `_test`.
|
|
31
39
|
|
|
40
|
+
A generated app gets a README titled with its name, its own framework guidance in `AGENTS.md`, and `CLAUDE.md` linked to that guidance. Its `.env.example` uses the same database names as `.env.local`. Template maintenance documentation and the published-version manifest stay in the source repository. Non-secret application files and the installed lockfile use mode `0644`; `.env.local` uses `0600`.
|
|
41
|
+
|
|
32
42
|
When Git is available and the destination is outside an existing repository, the command initializes a repository before setup and commits the generated files and installed lockfile afterward. The first commit runs Quality's lint and typecheck gates; a failed gate leaves it uncommitted. It uses your Git identity, with a local commit identity when none is configured. Pass `--no-git` to skip repository creation. A generated app includes a GitHub Actions workflow that runs `pnpm run ci` against PostgreSQL and a `.railway/railway.ts` that defines PostgreSQL, builds the web and worker services, runs migrations before deployment, starts both processes and checks `/health` on the web service.
|
|
33
43
|
|
|
34
44
|
Run `pnpm run setup` after cloning the generated repository to install dependencies and the hook for that checkout. Run `pnpm ready` for the full local gate: lint, typecheck, build and tests, using the same script as CI.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appFiles.d.ts","sourceRoot":"","sources":["../src/appFiles.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAKxC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAWlE"}
|
package/dist/appFiles.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
const decodeManifest = Schema.decodeUnknownSync(Schema.fromJsonString(Schema.Record(Schema.String, Schema.Unknown)));
|
|
3
|
+
export function databaseName(name) {
|
|
4
|
+
return name
|
|
5
|
+
.replaceAll(/[.-]/gu, "_")
|
|
6
|
+
.replace(/^[^a-z]/u, "app_$&")
|
|
7
|
+
.slice(0, 58);
|
|
8
|
+
}
|
|
9
|
+
export function appFile(path, content, name) {
|
|
10
|
+
if (path === "package.json") {
|
|
11
|
+
return `${JSON.stringify({ ...decodeManifest(content), name }, null, "\t")}\n`;
|
|
12
|
+
}
|
|
13
|
+
if (path === ".env.example") {
|
|
14
|
+
return content.replaceAll("starter_dev", `${databaseName(name)}_dev`).replaceAll("starter_test", `${databaseName(name)}_test`);
|
|
15
|
+
}
|
|
16
|
+
if (["AGENTS.md", "README.md"].includes(path)) {
|
|
17
|
+
return content.replaceAll("{{appName}}", name);
|
|
18
|
+
}
|
|
19
|
+
return content;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=appFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appFiles.js","sourceRoot":"","sources":["../src/appFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAErH,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,OAAO,IAAI;SACT,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;SAC7B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY;IAClE,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;IAChF,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChI,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|