create-manifest 1.3.3 → 2.0.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.
Files changed (57) hide show
  1. package/README.md +39 -24
  2. package/index.js +51 -0
  3. package/package.json +11 -89
  4. package/starter/.claude/settings.local.json +21 -0
  5. package/starter/.env.example +1 -0
  6. package/starter/@/components/table.tsx +478 -0
  7. package/starter/@/components/ui/button.tsx +62 -0
  8. package/starter/@/components/ui/checkbox.tsx +30 -0
  9. package/starter/README-DEV.md +167 -0
  10. package/starter/components.json +24 -0
  11. package/starter/package.json +42 -0
  12. package/starter/src/flows/list-pokemons.flow.ts +131 -0
  13. package/starter/src/server.ts +165 -0
  14. package/starter/src/web/PokemonList.tsx +125 -0
  15. package/starter/src/web/components/blog-post-card.tsx +286 -0
  16. package/starter/src/web/components/blog-post-list.tsx +291 -0
  17. package/starter/src/web/components/ui/.gitkeep +0 -0
  18. package/starter/src/web/components/ui/button.tsx +62 -0
  19. package/starter/src/web/globals.css +98 -0
  20. package/starter/src/web/hooks/.gitkeep +0 -0
  21. package/starter/src/web/lib/utils.ts +6 -0
  22. package/starter/src/web/root.tsx +36 -0
  23. package/starter/src/web/tsconfig.json +3 -0
  24. package/starter/tsconfig.json +21 -0
  25. package/starter/tsconfig.web.json +24 -0
  26. package/starter/vite.config.ts +36 -0
  27. package/assets/monorepo/README.md +0 -51
  28. package/assets/monorepo/api-package.json +0 -9
  29. package/assets/monorepo/api-readme.md +0 -49
  30. package/assets/monorepo/manifest.yml +0 -34
  31. package/assets/monorepo/root-package.json +0 -15
  32. package/assets/monorepo/web-package.json +0 -10
  33. package/assets/monorepo/web-readme.md +0 -9
  34. package/assets/standalone/README.md +0 -49
  35. package/assets/standalone/api-package.json +0 -9
  36. package/assets/standalone/manifest.yml +0 -34
  37. package/bin/dev.cmd +0 -3
  38. package/bin/dev.js +0 -5
  39. package/bin/run.cmd +0 -3
  40. package/bin/run.js +0 -5
  41. package/dist/commands/index.d.ts +0 -65
  42. package/dist/commands/index.js +0 -480
  43. package/dist/index.d.ts +0 -1
  44. package/dist/index.js +0 -1
  45. package/dist/utils/GetBackendFileContent.d.ts +0 -1
  46. package/dist/utils/GetBackendFileContent.js +0 -21
  47. package/dist/utils/GetLatestPackageVersion.d.ts +0 -1
  48. package/dist/utils/GetLatestPackageVersion.js +0 -5
  49. package/dist/utils/UpdateExtensionJsonFile.d.ts +0 -6
  50. package/dist/utils/UpdateExtensionJsonFile.js +0 -8
  51. package/dist/utils/UpdatePackageJsonFile.d.ts +0 -18
  52. package/dist/utils/UpdatePackageJsonFile.js +0 -21
  53. package/dist/utils/UpdateSettingsJsonFile.d.ts +0 -4
  54. package/dist/utils/UpdateSettingsJsonFile.js +0 -6
  55. package/dist/utils/helpers.d.ts +0 -1
  56. package/dist/utils/helpers.js +0 -11
  57. package/oclif.manifest.json +0 -47
package/README.md CHANGED
@@ -1,42 +1,57 @@
1
1
  # create-manifest
2
2
 
3
- The `create manifest` create a new project with [Manifest](https://manifest.build).
3
+ Create a new Manifest MCP server project with a single command.
4
+
5
+ ## Usage
4
6
 
5
7
  ```bash
6
- yarn create manifest my-project --cursor
8
+ npx create-manifest my-app
7
9
  ```
8
10
 
9
- This will create a new folder named my-project, install Manifest, and configure it for Cursor.
11
+ This will:
10
12
 
11
- You can replace `--cursor` with:
13
+ 1. Create a new directory `my-app`
14
+ 2. Copy the starter template
15
+ 3. Install dependencies
16
+ 4. Start the development server
12
17
 
13
- - `--copilot` for GitHub Copilot
14
- - `--windsurf` for Windsurf
15
- - or remove it entirely if you're not using an AI coding tool
18
+ ## What's Included
16
19
 
17
- You can also specify your project name directly (my-project in the example).
18
- If omitted, the CLI will prompt you for it during setup.
20
+ The starter template includes:
19
21
 
20
- ```bash
21
- npx create-manifest@latest
22
- ```
22
+ - MCP server setup with Express
23
+ - TypeScript configuration
24
+ - Hot reload with Nodemon
25
+ - Vite for building web components
23
26
 
24
- ## Develop
27
+ ## Requirements
25
28
 
26
- ```bash
27
- npm install
29
+ - Node.js 22+
28
30
 
29
- # Run from a test folder to prevent messing with project files.
30
- mkdir test-folder
31
- cd test-folder
32
- ../bin/dev.js
33
- ```
31
+ ## After Creation
34
32
 
35
- However due to the monorepo workspace structure, the launch script will fail as the path to the node modules folder is different than when served. This is normal.
33
+ Your project will be running at `http://localhost:3000`.
36
34
 
37
- ## Publish
35
+ To restart the dev server later:
38
36
 
39
37
  ```bash
40
- npm run build
41
- npm publish
38
+ cd my-app
39
+ npm run dev
42
40
  ```
41
+
42
+ ## Available Scripts
43
+
44
+ Inside the created project, you can run:
45
+
46
+ - `npm run dev` - Start development server with hot reload
47
+ - `npm run build` - Build for production
48
+ - `npm start` - Run production build
49
+
50
+ ## Learn More
51
+
52
+ - [Manifest Documentation](https://manifest.build)
53
+ - [MCP Protocol](https://modelcontextprotocol.io)
54
+
55
+ ## License
56
+
57
+ MIT
package/index.js ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { cpSync, readFileSync, writeFileSync } from 'node:fs'
4
+ import { join, dirname } from 'node:path'
5
+ import { fileURLToPath } from 'node:url'
6
+ import { execSync, spawn } from 'node:child_process'
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url))
9
+
10
+ const projectName = process.argv[2]
11
+
12
+ if (!projectName) {
13
+ console.error('Please provide a project name:')
14
+ console.error(' npx create-manifest my-app')
15
+ process.exit(1)
16
+ }
17
+
18
+ const targetDir = join(process.cwd(), projectName)
19
+ const starterDir = join(__dirname, 'starter')
20
+
21
+ console.log(`\nCreating a new Manifest project in ${targetDir}...\n`)
22
+
23
+ // Copy starter folder to target directory
24
+ cpSync(starterDir, targetDir, { recursive: true })
25
+
26
+ // Update package.json with the project name
27
+ const packageJsonPath = join(targetDir, 'package.json')
28
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'))
29
+ packageJson.name = projectName
30
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n')
31
+
32
+ console.log('Installing dependencies...\n')
33
+
34
+ // Install dependencies
35
+ execSync('npm install', {
36
+ cwd: targetDir,
37
+ stdio: 'inherit'
38
+ })
39
+
40
+ console.log('\nStarting development server...\n')
41
+
42
+ // Run dev script
43
+ const dev = spawn('npm', ['run', 'dev'], {
44
+ cwd: targetDir,
45
+ stdio: 'inherit',
46
+ shell: true
47
+ })
48
+
49
+ dev.on('close', (code) => {
50
+ process.exit(code)
51
+ })
package/package.json CHANGED
@@ -1,99 +1,21 @@
1
1
  {
2
2
  "name": "create-manifest",
3
- "version": "1.3.3",
4
- "author": "Manifest",
5
- "description": "Create a new Manifest backend",
6
- "homepage": "https://manifest.build",
7
- "license": "MIT",
3
+ "version": "2.0.0",
4
+ "description": "Create a new Manifest project",
5
+ "type": "module",
8
6
  "bin": {
9
- "create-manifest": "./bin/run.js"
10
- },
11
- "scripts": {
12
- "build": "shx rm -rf dist && tsc -b",
13
- "watch": "tsc -b --watch",
14
- "postpack": "shx rm -f oclif.manifest.json",
15
- "posttest": "npm run lint",
16
- "prepack": "npm run build && oclif manifest && oclif readme",
17
- "prepare": "npm run build",
18
- "version": "oclif readme && git add README.md"
19
- },
20
- "oclif": {
21
- "bin": "create-manifest",
22
- "dirname": "create-manifest",
23
- "commands": {
24
- "strategy": "single",
25
- "target": "./dist/commands/index.js"
26
- }
27
- },
28
- "plugins": [
29
- "@oclif/plugin-help",
30
- "@oclif/plugin-plugins"
31
- ],
32
- "topicSeparator": " ",
33
- "topics": {
34
- "create": {
35
- "description": "Create a new Manifest backend"
36
- }
37
- },
38
- "dependencies": {
39
- "@inquirer/prompts": "^7.5.1",
40
- "@oclif/core": "^4",
41
- "@oclif/plugin-help": "^6",
42
- "@oclif/plugin-plugins": "^5",
43
- "axios": "^1.9.0",
44
- "chalk": "^5.4.1",
45
- "fs": "^0.0.1-security",
46
- "jsonc-parser": "^3.3.1",
47
- "ora": "^8.2.0",
48
- "path": "^0.12.7",
49
- "tree-kill": "^1.2.2",
50
- "url": "^0.11.4"
51
- },
52
- "devDependencies": {
53
- "@oclif/prettier-config": "^0.2.1",
54
- "@oclif/test": "^4",
55
- "oclif": "^4.17.46",
56
- "shx": "^0.4.0",
57
- "ts-node": "^10.9.2",
58
- "typescript": "^5"
59
- },
60
- "engines": {
61
- "node": ">=18.0.0"
7
+ "create-manifest": "./index.js"
62
8
  },
63
9
  "files": [
64
- "/bin",
65
- "/dist",
66
- "/assets",
67
- "/oclif.manifest.json"
10
+ "index.js",
11
+ "starter"
68
12
  ],
69
- "main": "",
70
- "repository": {
71
- "type": "git",
72
- "url": "git+https://github.com/mnfst/manifest.git"
73
- },
74
- "bugs": "https://github.com/mnfst/manifest/issues",
75
13
  "keywords": [
76
14
  "manifest",
77
- "cursor",
78
- "AI-powered coding",
79
- "backend for LLMs",
80
- "AI code tool",
81
- "backend for vibe coding",
82
- "backend for modern workflows",
83
- "vibe coding",
84
- "vibe coding backend",
85
- "vibe coding api",
86
- "AI assisted coding",
87
- "AI coding",
88
- "windsurf",
89
- "copilot",
90
- "micro-backend",
91
- "backend",
92
- "headless",
93
- "install",
94
- "rest"
15
+ "mcp",
16
+ "create",
17
+ "cli"
95
18
  ],
96
- "types": "dist/index.d.ts",
97
- "exports": "./lib/index.js",
98
- "type": "module"
19
+ "author": "MNFST, Inc.",
20
+ "license": "MIT"
99
21
  }
@@ -0,0 +1,21 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(cat:*)",
5
+ "Bash(npm install:*)",
6
+ "Bash(npm --version:*)",
7
+ "Bash(node --version:*)",
8
+ "Bash(npm cache clean:*)",
9
+ "Bash(npm ls:*)",
10
+ "Bash(npm run build:*)",
11
+ "WebFetch(domain:github.com)",
12
+ "WebFetch(domain:raw.githubusercontent.com)",
13
+ "WebSearch",
14
+ "WebFetch(domain:xmcp.dev)",
15
+ "WebFetch(domain:dev.to)",
16
+ "WebFetch(domain:www.skybridge.tech)",
17
+ "WebFetch(domain:gadget.dev)",
18
+ "Bash(curl:*)"
19
+ ]
20
+ }
21
+ }
@@ -0,0 +1 @@
1
+ PORT=3000