create-turniza-app 1.0.7 → 1.0.9
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 +16 -2
- package/package.json +3 -2
- package/templates/base/.gitignore.hbs +98 -0
- package/templates/web/astro.config.mjs +1 -5
- package/templates/web/package.json.hbs +4 -4
- package/templates/web/public/.assetsignore +2 -0
- package/templates/web/src/layouts/Layout.astro.hbs +40 -40
- package/templates/web/wrangler.jsonc.hbs +8 -2
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@ A production-ready monorepo with:
|
|
|
9
9
|
| Feature | Details |
|
|
10
10
|
|---------|---------|
|
|
11
11
|
| **Flutter mobile** | iOS + Android with 90+ lint rules + DCM |
|
|
12
|
-
| **Astro web** | SSR on Cloudflare Workers, Preact islands |
|
|
12
|
+
| **Astro web** | Astro 6 (beta) SSR on Cloudflare Workers, Preact islands |
|
|
13
13
|
| **PWA** | Installable, standalone display, manifest, offline-ready |
|
|
14
|
-
| **
|
|
14
|
+
| **Client Router** | SPA-like animated navigation (Astro 6 `ClientRouter`) |
|
|
15
15
|
| **App-native CSS** | Dark theme, safe areas, no bounce, glassmorphism |
|
|
16
16
|
| **Makefile** | Single source of truth for all commands |
|
|
17
17
|
| **Pre-commit hooks** | Lefthook → secrets, format, lint |
|
|
@@ -59,6 +59,20 @@ my-app/
|
|
|
59
59
|
└── GEMINI.md AI agent instructions (Gemini)
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
## Web Stack (Astro 6 Beta)
|
|
63
|
+
|
|
64
|
+
The web app template uses Astro 6 beta with native Cloudflare Workers integration:
|
|
65
|
+
|
|
66
|
+
| Package | Version | Notes |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| `astro` | `^6.0.0-beta.11` | Redesigned dev server with `workerd` runtime |
|
|
69
|
+
| `@astrojs/cloudflare` | `^13.0.0-beta.7` | Workers adapter (Pages → Workers) |
|
|
70
|
+
| `@astrojs/preact` | `^5.0.0-beta.3` | UI islands |
|
|
71
|
+
| `@astrojs/check` | `^0.9.7-beta.1` | Type checking |
|
|
72
|
+
| `wrangler` | `^4.65.0` | Cloudflare CLI (stable) |
|
|
73
|
+
|
|
74
|
+
> ⚠️ **Beta**: These versions will be updated to stable once Astro 6.0.0 is released. Requires **Node.js ≥ 22.12.0**.
|
|
75
|
+
|
|
62
76
|
## Prerequisites
|
|
63
77
|
|
|
64
78
|
| Tool | Install |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-turniza-app",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "CLI scaffold for creating new Turniza monorepo apps (Flutter + Astro + Cloudflare Workers)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"files": [
|
|
40
40
|
"src/**/*",
|
|
41
|
-
"templates/**/*"
|
|
41
|
+
"templates/**/*",
|
|
42
|
+
"templates/**/.*"
|
|
42
43
|
],
|
|
43
44
|
"engines": {
|
|
44
45
|
"node": ">=18",
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# ============================================================
|
|
2
|
+
# {{projectTitle}} – Monorepo .gitignore
|
|
3
|
+
# Flutter + Astro/Bun + IDE + DevSecOps
|
|
4
|
+
# ============================================================
|
|
5
|
+
|
|
6
|
+
# ── Flutter / Dart ──────────────────────────────────────────
|
|
7
|
+
.dart_tool/
|
|
8
|
+
.packages
|
|
9
|
+
.pub-cache/
|
|
10
|
+
.pub/
|
|
11
|
+
build/
|
|
12
|
+
.flutter-plugins
|
|
13
|
+
.flutter-plugins-dependencies
|
|
14
|
+
migrate_working_dir/
|
|
15
|
+
pubspec.lock
|
|
16
|
+
**/doc/api/
|
|
17
|
+
**/ios/Flutter/.last_build_id
|
|
18
|
+
|
|
19
|
+
# Flutter symbolication & obfuscation
|
|
20
|
+
app.*.symbols
|
|
21
|
+
app.*.map.json
|
|
22
|
+
|
|
23
|
+
# Flutter generated (local / machine-specific)
|
|
24
|
+
**/android/local.properties
|
|
25
|
+
**/ios/Flutter/Generated.xcconfig
|
|
26
|
+
**/ios/Flutter/ephemeral/
|
|
27
|
+
**/ios/Flutter/flutter_export_environment.sh
|
|
28
|
+
|
|
29
|
+
# Android Studio build artifacts
|
|
30
|
+
**/android/app/debug
|
|
31
|
+
**/android/app/profile
|
|
32
|
+
**/android/app/release
|
|
33
|
+
|
|
34
|
+
# iOS
|
|
35
|
+
**/ios/Pods/
|
|
36
|
+
**/ios/.symlinks/
|
|
37
|
+
Podfile.lock
|
|
38
|
+
|
|
39
|
+
# Swift / Xcode
|
|
40
|
+
.swiftpm/
|
|
41
|
+
.buildlog/
|
|
42
|
+
*.xcworkspace/
|
|
43
|
+
xcuserdata/
|
|
44
|
+
DerivedData/
|
|
45
|
+
|
|
46
|
+
# ── Astro / Bun / Node ─────────────────────────────────────
|
|
47
|
+
node_modules/
|
|
48
|
+
dist/
|
|
49
|
+
.astro/
|
|
50
|
+
.wrangler/
|
|
51
|
+
*.tsbuildinfo
|
|
52
|
+
bun.lockb
|
|
53
|
+
bun.lock
|
|
54
|
+
|
|
55
|
+
# Package manager logs
|
|
56
|
+
npm-debug.log*
|
|
57
|
+
yarn-debug.log*
|
|
58
|
+
yarn-error.log*
|
|
59
|
+
pnpm-debug.log*
|
|
60
|
+
|
|
61
|
+
# ── Testing ─────────────────────────────────────────────────
|
|
62
|
+
coverage/
|
|
63
|
+
.nyc_output/
|
|
64
|
+
playwright-report/
|
|
65
|
+
test-results/
|
|
66
|
+
blob-report/
|
|
67
|
+
|
|
68
|
+
# ── IDE ─────────────────────────────────────────────────────
|
|
69
|
+
.idea/
|
|
70
|
+
.vscode/
|
|
71
|
+
*.iml
|
|
72
|
+
*.ipr
|
|
73
|
+
*.iws
|
|
74
|
+
*.swp
|
|
75
|
+
*.swo
|
|
76
|
+
*~
|
|
77
|
+
|
|
78
|
+
# ── DevSecOps / Security ───────────────────────────────────
|
|
79
|
+
.env
|
|
80
|
+
.env.*
|
|
81
|
+
!.env.example
|
|
82
|
+
*.pem
|
|
83
|
+
*.key
|
|
84
|
+
*.cert
|
|
85
|
+
*.p12
|
|
86
|
+
*.jks
|
|
87
|
+
secrets/
|
|
88
|
+
|
|
89
|
+
# ── OS ──────────────────────────────────────────────────────
|
|
90
|
+
.DS_Store
|
|
91
|
+
Thumbs.db
|
|
92
|
+
ehthumbs.db
|
|
93
|
+
Desktop.ini
|
|
94
|
+
|
|
95
|
+
# ── Logs & misc ─────────────────────────────────────────────
|
|
96
|
+
*.log
|
|
97
|
+
*.class
|
|
98
|
+
*.pyc
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"typecheck": "astro check"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@astrojs/check": "^0.9.
|
|
21
|
-
"@astrojs/cloudflare": "^
|
|
22
|
-
"@astrojs/preact": "^
|
|
23
|
-
"astro": "^
|
|
20
|
+
"@astrojs/check": "^0.9.7-beta.1",
|
|
21
|
+
"@astrojs/cloudflare": "^13.0.0-beta.7",
|
|
22
|
+
"@astrojs/preact": "^5.0.0-beta.3",
|
|
23
|
+
"astro": "^6.0.0-beta.11",
|
|
24
24
|
"preact": "^10.25.4",
|
|
25
25
|
"wrangler": "^4.65.0"
|
|
26
26
|
},
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
---
|
|
2
|
-
import {
|
|
2
|
+
import { ClientRouter } from 'astro:transitions';
|
|
3
3
|
import '../styles/global.css';
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const { title = '{{projectTitle}}', description = '{{projectDescription}}' } = Astro.props;
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
<html lang="en">
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</html>
|
|
14
|
+
|
|
15
|
+
<head>
|
|
16
|
+
<meta charset="utf-8" />
|
|
17
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
18
|
+
|
|
19
|
+
<!-- SEO -->
|
|
20
|
+
<title>{title}</title>
|
|
21
|
+
<meta name="description" content={description} />
|
|
22
|
+
|
|
23
|
+
<!-- PWA / App-like -->
|
|
24
|
+
<meta name="theme-color" content="#0f172a" />
|
|
25
|
+
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
26
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
27
|
+
<meta name="mobile-web-app-capable" content="yes" />
|
|
28
|
+
<link rel="manifest" href="/manifest.json" />
|
|
29
|
+
|
|
30
|
+
<!-- Icons -->
|
|
31
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
32
|
+
<link rel="icon" href="/favicon.ico" />
|
|
33
|
+
<link rel="apple-touch-icon" href="/icon-192.svg" />
|
|
34
|
+
|
|
35
|
+
<!-- View Transitions -->
|
|
36
|
+
<ClientRouter />
|
|
37
|
+
|
|
38
|
+
<!-- Fonts -->
|
|
39
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
40
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
41
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
42
|
+
|
|
43
|
+
<meta name="generator" content={Astro.generator} />
|
|
44
|
+
</head>
|
|
45
|
+
|
|
46
|
+
<body>
|
|
47
|
+
<slot />
|
|
48
|
+
</body>
|
|
49
|
+
|
|
50
|
+
</html>
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
"$schema": "node_modules/wrangler/config-schema.json",
|
|
3
3
|
"name": "{{projectName}}-web",
|
|
4
4
|
"compatibility_date": "{{compatibilityDate}}",
|
|
5
|
-
"compatibility_flags": ["nodejs_compat"],
|
|
6
|
-
"
|
|
5
|
+
"compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"],
|
|
6
|
+
"assets": {
|
|
7
|
+
"binding": "ASSETS",
|
|
8
|
+
"directory": "./dist"
|
|
9
|
+
},
|
|
10
|
+
"observability": {
|
|
11
|
+
"enabled": true
|
|
12
|
+
}
|
|
7
13
|
}
|