@flight-framework/cli 0.0.16 → 0.2.0
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/LICENSE +21 -0
- package/README.md +70 -0
- package/dist/bin.js +524 -13
- package/dist/bin.js.map +1 -1
- package/dist/index.js +524 -13
- package/dist/index.js.map +1 -1
- package/package.json +51 -51
- package/templates/use-cases/api/README.md +41 -0
- package/templates/use-cases/api/package.json.template +14 -0
- package/templates/use-cases/api/src/routes/api/health.get.ts.template +3 -0
- package/templates/use-cases/blog/README.md +47 -0
- package/templates/use-cases/blog/flight.config.ts.template +11 -0
- package/templates/use-cases/blog/package.json.template +15 -0
- package/templates/use-cases/blog/src/routes/blog/[slug].page.tsx.template +23 -0
- package/templates/use-cases/blog/src/routes/index.page.tsx.template +9 -0
- package/templates/use-cases/docs/README.md +49 -0
- package/templates/use-cases/docs/package.json.template +15 -0
- package/templates/use-cases/docs/src/content/index.md.template +16 -0
- package/templates/use-cases/ecommerce/README.md +32 -0
- package/templates/use-cases/ecommerce/package.json.template +16 -0
- package/templates/use-cases/ecommerce/src/routes/index.page.tsx.template +9 -0
- package/templates/use-cases/saas/README.md +34 -0
- package/templates/use-cases/saas/package.json.template +15 -0
- package/templates/use-cases/saas/src/routes/index.page.tsx.template +9 -0
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"main": "./dist/index.js",
|
|
23
|
-
"types": "./dist/index.d.ts",
|
|
24
|
-
"files": [
|
|
25
|
-
"dist",
|
|
26
|
-
"templates"
|
|
27
|
-
],
|
|
28
|
-
"scripts": {
|
|
29
|
-
"build": "tsup",
|
|
30
|
-
"dev": "tsup --watch",
|
|
31
|
-
"test": "vitest run",
|
|
32
|
-
"lint": "eslint src/",
|
|
33
|
-
"clean": "rimraf dist",
|
|
34
|
-
"typecheck": "tsc --noEmit"
|
|
35
|
-
},
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@flight-framework/core": "^0.3.0",
|
|
38
|
-
"@flight-framework/http": "0.0.3",
|
|
39
|
-
"cac": "^6.7.14",
|
|
40
|
-
"picocolors": "^1.1.0",
|
|
41
|
-
"prompts": "^2.4.2"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@types/node": "^22.0.0",
|
|
45
|
-
"@types/prompts": "^2.4.9",
|
|
46
|
-
"rimraf": "^6.0.0",
|
|
47
|
-
"tsup": "^8.0.0",
|
|
48
|
-
"typescript": "^5.7.0",
|
|
49
|
-
"vitest": "^2.0.0"
|
|
50
|
-
},
|
|
51
|
-
"peerDependencies": {
|
|
52
|
-
"vite": "^6.0.0 || ^7.0.0"
|
|
2
|
+
"name": "@flight-framework/cli",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Command-line interface for Flight Framework",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"flight",
|
|
7
|
+
"cli",
|
|
8
|
+
"framework"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Flight Contributors",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"bin": {
|
|
14
|
+
"flight": "./dist/bin.js"
|
|
15
|
+
},
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js"
|
|
53
20
|
}
|
|
21
|
+
},
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"templates"
|
|
27
|
+
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@flight-framework/core": "^0.3.0",
|
|
30
|
+
"@flight-framework/http": "0.0.3",
|
|
31
|
+
"cac": "^6.7.14",
|
|
32
|
+
"picocolors": "^1.1.0",
|
|
33
|
+
"prompts": "^2.4.2"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^22.0.0",
|
|
37
|
+
"@types/prompts": "^2.4.9",
|
|
38
|
+
"rimraf": "^6.0.0",
|
|
39
|
+
"tsup": "^8.0.0",
|
|
40
|
+
"typescript": "^5.7.0",
|
|
41
|
+
"vitest": "^2.0.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"vite": "^6.0.0 || ^7.0.0"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsup",
|
|
48
|
+
"dev": "tsup --watch",
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"lint": "eslint src/",
|
|
51
|
+
"clean": "rimraf dist",
|
|
52
|
+
"typecheck": "tsc --noEmit"
|
|
53
|
+
}
|
|
54
54
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# API Starter
|
|
2
|
+
|
|
3
|
+
A minimal API-only template with Flight. No UI framework.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- REST API routes
|
|
8
|
+
- OpenAPI ready
|
|
9
|
+
- Database integration ready
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/routes/api/
|
|
22
|
+
├── health.get.ts # Health check
|
|
23
|
+
├── users.get.ts # List users
|
|
24
|
+
├── users.post.ts # Create user
|
|
25
|
+
└── users/[id].get.ts # Get user by ID
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Example
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
// src/routes/api/users.get.ts
|
|
32
|
+
export function GET() {
|
|
33
|
+
return Response.json({ users: [] });
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Customize
|
|
38
|
+
|
|
39
|
+
- Add your database driver
|
|
40
|
+
- Generate OpenAPI docs
|
|
41
|
+
- Add authentication middleware
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "flight dev",
|
|
8
|
+
"build": "flight build",
|
|
9
|
+
"start": "flight start"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@flight-framework/http": "latest"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Blog Starter
|
|
2
|
+
|
|
3
|
+
A minimal blog template with Flight.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- File-based blog posts
|
|
8
|
+
- SEO optimized
|
|
9
|
+
- RSS feed ready
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/
|
|
22
|
+
├── routes/
|
|
23
|
+
│ ├── index.page.tsx # Home page
|
|
24
|
+
│ └── blog/
|
|
25
|
+
│ └── [slug].page.tsx # Blog post
|
|
26
|
+
└── content/
|
|
27
|
+
└── posts/ # Add .md files here
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Add Posts
|
|
31
|
+
|
|
32
|
+
Create markdown files in `src/content/posts/`:
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
---
|
|
36
|
+
title: My First Post
|
|
37
|
+
date: 2026-01-13
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
Your content here.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Customize
|
|
44
|
+
|
|
45
|
+
- Edit `flight.config.ts` for SEO defaults
|
|
46
|
+
- Add components in `src/components/`
|
|
47
|
+
- Modify layout in `src/routes/_layout.tsx`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "flight dev",
|
|
8
|
+
"build": "flight build",
|
|
9
|
+
"preview": "flight preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@flight-framework/core": "latest",
|
|
13
|
+
"@flight-framework/seo": "latest"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { notFound } from '@flight-framework/core';
|
|
2
|
+
|
|
3
|
+
export async function loader({ params }) {
|
|
4
|
+
// Replace with your content loading logic
|
|
5
|
+
const post = await getPost(params.slug);
|
|
6
|
+
if (!post) notFound();
|
|
7
|
+
return { post };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default function BlogPost({ data }) {
|
|
11
|
+
return (
|
|
12
|
+
<article>
|
|
13
|
+
<h1>{data.post.title}</h1>
|
|
14
|
+
<time>{data.post.date}</time>
|
|
15
|
+
<div dangerouslySetInnerHTML={{ __html: data.post.content }} />
|
|
16
|
+
</article>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Placeholder - implement your own content loading
|
|
21
|
+
async function getPost(slug: string) {
|
|
22
|
+
return null; // Load from filesystem, CMS, or database
|
|
23
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Documentation Starter
|
|
2
|
+
|
|
3
|
+
A minimal documentation site template with Flight.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Markdown content
|
|
8
|
+
- Auto-navigation
|
|
9
|
+
- SEO optimized
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/
|
|
22
|
+
├── content/
|
|
23
|
+
│ ├── index.md # Home
|
|
24
|
+
│ ├── getting-started.md
|
|
25
|
+
│ └── api/
|
|
26
|
+
│ └── reference.md
|
|
27
|
+
└── routes/
|
|
28
|
+
└── [...slug].page.tsx # Renders markdown
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Add Pages
|
|
32
|
+
|
|
33
|
+
Create markdown files in `src/content/`:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
---
|
|
37
|
+
title: My Page
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# My Page
|
|
41
|
+
|
|
42
|
+
Content here.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Customize
|
|
46
|
+
|
|
47
|
+
- Add sidebar navigation
|
|
48
|
+
- Customize layout
|
|
49
|
+
- Add search functionality
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "flight dev",
|
|
8
|
+
"build": "flight build",
|
|
9
|
+
"preview": "flight preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@flight-framework/core": "latest",
|
|
13
|
+
"@flight-framework/seo": "latest"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# {{PROJECT_NAME}} Documentation
|
|
6
|
+
|
|
7
|
+
Welcome to your documentation site.
|
|
8
|
+
|
|
9
|
+
## Getting Started
|
|
10
|
+
|
|
11
|
+
Add markdown files to `src/content/` to create pages.
|
|
12
|
+
|
|
13
|
+
## Next Steps
|
|
14
|
+
|
|
15
|
+
- [Getting Started](./getting-started.md)
|
|
16
|
+
- [API Reference](./api/reference.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# E-commerce Starter
|
|
2
|
+
|
|
3
|
+
A minimal e-commerce template with Flight.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Product catalog
|
|
8
|
+
- Cart ready (implement your logic)
|
|
9
|
+
- Payment integration ready
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/routes/
|
|
22
|
+
├── index.page.tsx # Home
|
|
23
|
+
├── products/
|
|
24
|
+
│ └── [id].page.tsx # Product detail
|
|
25
|
+
└── cart.page.tsx # Shopping cart
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Customize
|
|
29
|
+
|
|
30
|
+
- Add your database logic in route loaders
|
|
31
|
+
- Connect your payment provider
|
|
32
|
+
- Extend with authentication
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "flight dev",
|
|
8
|
+
"build": "flight build",
|
|
9
|
+
"preview": "flight preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@flight-framework/core": "latest",
|
|
13
|
+
"@flight-framework/seo": "latest",
|
|
14
|
+
"@flight-framework/image": "latest"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SaaS Starter
|
|
2
|
+
|
|
3
|
+
A minimal SaaS application template with Flight.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Auth ready (add your provider)
|
|
8
|
+
- Dashboard layout
|
|
9
|
+
- User settings page
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/routes/
|
|
22
|
+
├── index.page.tsx # Landing page
|
|
23
|
+
├── login.page.tsx # Login
|
|
24
|
+
├── dashboard/
|
|
25
|
+
│ ├── _middleware.ts # Auth guard
|
|
26
|
+
│ ├── index.page.tsx # Dashboard home
|
|
27
|
+
│ └── settings.page.tsx # User settings
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Customize
|
|
31
|
+
|
|
32
|
+
- Connect authentication provider
|
|
33
|
+
- Add database integration
|
|
34
|
+
- Extend dashboard with your features
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "flight dev",
|
|
8
|
+
"build": "flight build",
|
|
9
|
+
"preview": "flight preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@flight-framework/core": "latest",
|
|
13
|
+
"@flight-framework/auth": "latest"
|
|
14
|
+
}
|
|
15
|
+
}
|