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 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
- | **View Transitions** | SPA-like animated navigation between pages |
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.7",
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
@@ -6,10 +6,6 @@ import preact from '@astrojs/preact';
6
6
  // https://astro.build/config
7
7
  export default defineConfig({
8
8
  output: 'server',
9
- adapter: cloudflare({
10
- platformProxy: {
11
- enabled: true,
12
- },
13
- }),
9
+ adapter: cloudflare(),
14
10
  integrations: [preact()],
15
11
  });
@@ -17,10 +17,10 @@
17
17
  "typecheck": "astro check"
18
18
  },
19
19
  "dependencies": {
20
- "@astrojs/check": "^0.9.4",
21
- "@astrojs/cloudflare": "^12.6.12",
22
- "@astrojs/preact": "^4.0.10",
23
- "astro": "^5.17.1",
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
  },
@@ -0,0 +1,2 @@
1
+ _worker.js
2
+ _routes.json
@@ -1,50 +1,50 @@
1
1
  ---
2
- import { ViewTransitions } from 'astro:transitions';
2
+ import { ClientRouter } from 'astro:transitions';
3
3
  import '../styles/global.css';
4
4
 
5
5
  interface Props {
6
- title?: string;
7
- description?: string;
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
- <head>
15
- <meta charset="utf-8" />
16
- <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
17
-
18
- <!-- SEO -->
19
- <title>{title}</title>
20
- <meta name="description" content={description} />
21
-
22
- <!-- PWA / App-like -->
23
- <meta name="theme-color" content="#0f172a" />
24
- <meta name="apple-mobile-web-app-capable" content="yes" />
25
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
26
- <meta name="mobile-web-app-capable" content="yes" />
27
- <link rel="manifest" href="/manifest.json" />
28
-
29
- <!-- Icons -->
30
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
31
- <link rel="icon" href="/favicon.ico" />
32
- <link rel="apple-touch-icon" href="/icon-192.svg" />
33
-
34
- <!-- View Transitions -->
35
- <ViewTransitions />
36
-
37
- <!-- Fonts -->
38
- <link rel="preconnect" href="https://fonts.googleapis.com" />
39
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
40
- <link
41
- href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
42
- rel="stylesheet"
43
- />
44
-
45
- <meta name="generator" content={Astro.generator} />
46
- </head>
47
- <body>
48
- <slot />
49
- </body>
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
- "pages_build_output_dir": "./dist"
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
  }