@shivaedev/create-app 0.6.6 → 0.6.8

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.8 - 2026-10-17
4
+
5
+ ### Fixed
6
+
7
+ - Generated app READMEs describe the variables each process needs and web's ownership of Railway pre-deploy migrations.
8
+ - Creating an app without a configured Git identity no longer stalls for seconds while Git guesses an email from the host name. The initial commit uses the Create App identity unless Git's `user.name` and `user.email` settings or the `GIT_AUTHOR_*` variables provide one; `EMAIL` and host-name guesses no longer count.
9
+ - Keep saved notes and the empty-list message visible without an initial loading message while the generated app refreshes its notes list.
10
+ - A generated app pins the current published framework versions, including `platform` 0.14.2, `effect-prisma` 0.9.2, `effect-test-sql` 0.5.2, `local-postgres` 0.3.0 and `quality` 0.23.0.
11
+
12
+ ## 0.6.7 - 2026-10-17
13
+
14
+ ### Fixed
15
+
16
+ - A generated app gets its own named README and framework guidance, with `CLAUDE.md` linked to `AGENTS.md`, without template maintenance files or names.
17
+ - 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.
18
+ - 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.
19
+ - A generated app logs a warning when PostgreSQL terminates an idle Better Auth connection, instead of crashing the process with an uncaught pool error.
20
+
3
21
  ## 0.6.6 - 2026-10-17
4
22
 
5
23
  ### 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,3 @@
1
+ export declare function databaseName(name: string): string;
2
+ export declare function appFile(path: string, content: string, name: string): string;
3
+ //# sourceMappingURL=appFiles.d.ts.map
@@ -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"}
@@ -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"}