create-zerotal 1.0.3 → 1.0.4
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
|
@@ -8,6 +8,17 @@ follows the Zerotal monorepo's unified versioning.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [1.0.4] — 2026-08-07
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **The Flow starter rendered unstyled.** Its layout linked `/app.css` while the
|
|
16
|
+
asset build writes `public/css/app.css`, so every page loaded with a 404 for
|
|
17
|
+
the stylesheet — a one-segment path mismatch that looks like a CSS problem.
|
|
18
|
+
A test now asserts the rendered page names the path the build produces.
|
|
19
|
+
- The Flow starter also declares a favicon, so a fresh `serve --dev` no longer
|
|
20
|
+
logs a 404 for `/favicon.ico` on every page load.
|
|
21
|
+
|
|
11
22
|
## [1.0.3] — 2026-08-07
|
|
12
23
|
|
|
13
24
|
### Changed
|
package/package.json
CHANGED
package/src/scaffold.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type Template = 'minimal' | 'api' | 'admin' | 'flow' | 'react' | 'vue';
|
|
|
13
13
|
// "^1.1.0" found for specifier "zerotal"` — the first thing anyone trying the
|
|
14
14
|
// framework saw. `scaffold.test.ts` now asserts the two agree, so CI fails rather
|
|
15
15
|
// than the user's install.
|
|
16
|
-
export const ZT_VERSION = '^1.0.
|
|
16
|
+
export const ZT_VERSION = '^1.0.4';
|
|
17
17
|
|
|
18
18
|
export interface ScaffoldOptions {
|
|
19
19
|
name: string;
|
|
@@ -18,13 +18,17 @@ const GUEST_NAV = [
|
|
|
18
18
|
];
|
|
19
19
|
|
|
20
20
|
export class AppLayout extends Layout {
|
|
21
|
-
// Built by `bun zt serve` from resources/css/app.css (Tailwind)
|
|
21
|
+
// Built by `bun zt serve` from resources/css/app.css (Tailwind). The bundler
|
|
22
|
+
// mirrors the source layout under the asset outDir, so it lands at
|
|
23
|
+
// public/css/app.css and is served from /css/app.css — not /app.css.
|
|
24
|
+
//
|
|
22
25
|
// A getter (not a static field) so asset() re-runs per request and picks up
|
|
23
26
|
// the latest ?v= cache-busting token after a dev rebuild.
|
|
24
27
|
static override get head(): string {
|
|
25
28
|
return `
|
|
26
29
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
27
|
-
<link rel="
|
|
30
|
+
<link rel="icon" href="/zt.svg" type="image/svg+xml">
|
|
31
|
+
<link rel="stylesheet" href="${asset("/css/app.css")}">
|
|
28
32
|
`;
|
|
29
33
|
}
|
|
30
34
|
|
|
@@ -74,3 +74,17 @@ describe('auth', () => {
|
|
|
74
74
|
expect(res.status).toBe(302);
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The stylesheet link has to name the path the asset build actually writes.
|
|
80
|
+
* It shipped pointing at /app.css while the build produced public/css/app.css,
|
|
81
|
+
* so every page rendered unstyled with a 404 in the log — a failure that looks
|
|
82
|
+
* like a CSS problem and is really a one-segment path mismatch.
|
|
83
|
+
*/
|
|
84
|
+
describe('assets', () => {
|
|
85
|
+
test('links the stylesheet where the build writes it', async () => {
|
|
86
|
+
const res = await app.get('/');
|
|
87
|
+
|
|
88
|
+
res.assertSee('/css/app.css');
|
|
89
|
+
});
|
|
90
|
+
});
|