create-mn-app 0.0.6

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 (51) hide show
  1. package/README.md +239 -0
  2. package/bin/create-midnight-app.js +47 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +35 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/create-app.d.ts +10 -0
  8. package/dist/create-app.d.ts.map +1 -0
  9. package/dist/create-app.js +186 -0
  10. package/dist/create-app.js.map +1 -0
  11. package/dist/installers/package-installer.d.ts +8 -0
  12. package/dist/installers/package-installer.d.ts.map +1 -0
  13. package/dist/installers/package-installer.js +62 -0
  14. package/dist/installers/package-installer.js.map +1 -0
  15. package/dist/installers/proof-server-setup.d.ts +6 -0
  16. package/dist/installers/proof-server-setup.d.ts.map +1 -0
  17. package/dist/installers/proof-server-setup.js +54 -0
  18. package/dist/installers/proof-server-setup.js.map +1 -0
  19. package/dist/installers/wallet-generator.d.ts +4 -0
  20. package/dist/installers/wallet-generator.d.ts.map +1 -0
  21. package/dist/installers/wallet-generator.js +64 -0
  22. package/dist/installers/wallet-generator.js.map +1 -0
  23. package/dist/test.d.ts +2 -0
  24. package/dist/test.d.ts.map +1 -0
  25. package/dist/test.js +53 -0
  26. package/dist/test.js.map +1 -0
  27. package/dist/utils/git-utils.d.ts +6 -0
  28. package/dist/utils/git-utils.d.ts.map +1 -0
  29. package/dist/utils/git-utils.js +51 -0
  30. package/dist/utils/git-utils.js.map +1 -0
  31. package/dist/utils/template-manager.d.ts +7 -0
  32. package/dist/utils/template-manager.d.ts.map +1 -0
  33. package/dist/utils/template-manager.js +61 -0
  34. package/dist/utils/template-manager.js.map +1 -0
  35. package/dist/utils/validation.d.ts +6 -0
  36. package/dist/utils/validation.d.ts.map +1 -0
  37. package/dist/utils/validation.js +32 -0
  38. package/dist/utils/validation.js.map +1 -0
  39. package/package.json +60 -0
  40. package/templates/hello-world/README.md.template +99 -0
  41. package/templates/hello-world/_env.template +0 -0
  42. package/templates/hello-world/_gitignore +52 -0
  43. package/templates/hello-world/contracts/hello-world.compact.template +12 -0
  44. package/templates/hello-world/nodemon.json.template +7 -0
  45. package/templates/hello-world/package.json.template +51 -0
  46. package/templates/hello-world/src/check-balance.ts.template +107 -0
  47. package/templates/hello-world/src/cli.ts.template +194 -0
  48. package/templates/hello-world/src/deploy.ts.template +218 -0
  49. package/templates/hello-world/src/providers/midnight-providers.ts.template +46 -0
  50. package/templates/hello-world/src/utils/environment.ts.template +51 -0
  51. package/templates/hello-world/tsconfig.json.template +20 -0
package/README.md ADDED
@@ -0,0 +1,239 @@
1
+ # create-mn-app 🌙
2
+
3
+ Create Midnight Network applications with zero configuration.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/create-mn-app.svg)](https://www.npmjs.com/package/create-mn-app)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ ```bash
9
+ npx create-mn-app my-app
10
+ cd my-app
11
+ npm run setup
12
+ ```
13
+
14
+ ## Features
15
+
16
+ - ⚡ **Zero configuration** - Works out of the box with sensible defaults
17
+ - 🔧 **Modern tooling** - TypeScript, hot reloading, auto-compilation
18
+ - 🛡️ **Best practices** - Secure wallet generation, proper project structure
19
+ - 🚀 **Fast setup** - From zero to working app in 60 seconds
20
+ - 🎯 **Developer friendly** - Clear error messages, helpful guides
21
+ - 📦 **ES Modules** - Modern JavaScript module system
22
+ - 🐳 **Docker integration** - Automated proof server setup
23
+
24
+ ## Quick Start
25
+
26
+ ```bash
27
+ # Create a new Midnight app
28
+ npx create-mn-app my-midnight-app
29
+
30
+ # Navigate to your project
31
+ cd my-midnight-app
32
+
33
+ # Setup and deploy your contract
34
+ npm run setup
35
+ ```
36
+
37
+ ## What's Included?
38
+
39
+ Your generated project includes:
40
+
41
+ - 📝 **Hello World Contract** - A simple Compact contract to get started
42
+ - 🔐 **Wallet Setup** - Auto-generated wallet with secure seed phrase
43
+ - 🛠️ **Development Environment** - Pre-configured TypeScript, nodemon, and build tools
44
+ - 📚 **Provider Setup** - Midnight network providers (indexer, proof, state, ZK config)
45
+ - 🎨 **Interactive CLI** - Test your contracts with a user-friendly command-line interface
46
+ - 📋 **Environment Config** - `.env` file with network configuration
47
+ - 🔄 **Git Ready** - Initialized git repository with proper `.gitignore`
48
+
49
+ ## Available Commands
50
+
51
+ Once your project is created, you can run:
52
+
53
+ ### `npm run setup`
54
+
55
+ Complete setup pipeline:
56
+
57
+ 1. Compiles Compact contracts
58
+ 2. Builds TypeScript to JavaScript
59
+ 3. Deploys contracts to the network
60
+
61
+ ### `npm run cli`
62
+
63
+ Opens an interactive command-line interface to:
64
+
65
+ - Connect your wallet
66
+ - Store messages in the contract
67
+ - Retrieve stored messages
68
+ - Test contract functionality
69
+
70
+ ### `npm run compile`
71
+
72
+ Compiles your Compact smart contracts from `contracts/` to `contracts/managed/`
73
+
74
+ ### `npm run build`
75
+
76
+ Builds your TypeScript source code to JavaScript in the `dist/` directory
77
+
78
+ ### `npm run deploy`
79
+
80
+ Deploys your compiled contract to the Midnight testnet
81
+
82
+ ### `npm run check-balance`
83
+
84
+ Checks your wallet balance. Useful for verifying if test tokens from the faucet have arrived before deploying.
85
+
86
+ ## Project Structure
87
+
88
+ ```
89
+ my-midnight-app/
90
+ ├── contracts/
91
+ │ ├── hello-world.compact # Your Compact smart contract
92
+ │ └── managed/ # Compiled contract output
93
+ ├── src/
94
+ │ ├── cli.ts # Interactive CLI application
95
+ │ ├── deploy.ts # Contract deployment script
96
+ │ ├── providers/
97
+ │ │ └── midnight-providers.ts # Network provider configuration
98
+ │ └── utils/
99
+ │ └── environment.ts # Environment management
100
+ ├── .env # Environment variables & wallet seed
101
+ ├── .gitignore
102
+ ├── package.json
103
+ ├── tsconfig.json
104
+ └── nodemon.json
105
+ ```
106
+
107
+ ## Templates
108
+
109
+ ### Hello World (Default)
110
+
111
+ A simple message storage contract demonstrating:
112
+
113
+ - State management
114
+ - Public and private data
115
+ - Contract deployment
116
+ - Interactive testing
117
+
118
+ **More templates coming soon!**
119
+
120
+ ## Requirements
121
+
122
+ - **Node.js** 18.0.0 or higher
123
+ - **Docker** (for running the proof server)
124
+ - **npm**, **yarn**, or **pnpm** package manager
125
+
126
+ ## Package Manager Options
127
+
128
+ You can use your preferred package manager:
129
+
130
+ ```bash
131
+ # npm (default)
132
+ npx create-mn-app my-app
133
+
134
+ # Yarn
135
+ npx create-mn-app my-app --yarn
136
+
137
+ # pnpm
138
+ npx create-mn-app my-app --pnpm
139
+ ```
140
+
141
+ ## Usage Options
142
+
143
+ ```bash
144
+ npx create-mn-app [project-name] [options]
145
+
146
+ Options:
147
+ --template <name> Specify a template (default: hello-world)
148
+ --yarn Use Yarn as package manager
149
+ --pnpm Use pnpm as package manager
150
+ --npm Use npm as package manager
151
+ --skip-install Skip dependency installation
152
+ --skip-git Skip git initialization
153
+ -h, --help Display help information
154
+ ```
155
+
156
+ ## Environment Configuration
157
+
158
+ Your `.env` file contains important configuration:
159
+
160
+ ```env
161
+ # Wallet Configuration
162
+ WALLET_SEED=your-generated-seed-phrase
163
+
164
+ # Network Configuration
165
+ MIDNIGHT_NETWORK=testnet
166
+ INDEXER_URL=https://indexer.testnet.midnight.network
167
+ INDEXER_WS_URL=wss://indexer.testnet.midnight.network
168
+ PROOF_SERVER_URL=http://localhost:6300
169
+ ```
170
+
171
+ ⚠️ **Important**: Never commit your `.env` file or share your wallet seed phrase!
172
+
173
+ ## Troubleshooting
174
+
175
+ ### Waiting for faucet funds
176
+
177
+ If your deployment is waiting for funds from the testnet faucet:
178
+
179
+ ```bash
180
+ # Option 1: Let the script wait (it will auto-detect funds)
181
+ # Just leave it running after requesting from the faucet
182
+
183
+ # Option 2: Stop and check manually
184
+ # Press Ctrl+C to stop, then:
185
+ npm run check-balance
186
+
187
+ # Once funded, deploy:
188
+ npm run deploy
189
+ ```
190
+
191
+ 💡 **Note**: Faucet transactions typically take 2-5 minutes to process.
192
+
193
+ ### Port 6300 already in use
194
+
195
+ If you see "Bind for 0.0.0.0:6300 failed: port is already allocated":
196
+
197
+ ```bash
198
+ # Stop the existing proof server
199
+ docker ps
200
+ docker stop <container-id>
201
+
202
+ # Or run on a different port (update .env accordingly)
203
+ ```
204
+
205
+ ### Module resolution errors
206
+
207
+ Make sure you're using Node.js 18+ and the project was created with the latest version:
208
+
209
+ ```bash
210
+ node --version
211
+ npx create-mn-app@latest my-app
212
+ ```
213
+
214
+ ### Docker not running
215
+
216
+ Ensure Docker Desktop is running before starting the development server:
217
+
218
+ ```bash
219
+ docker --version
220
+ ```
221
+
222
+ ## Learn More
223
+
224
+ - 📖 [Midnight Documentation](https://docs.midnight.network)
225
+ - 🚀 [Getting Started Guide](https://docs.midnight.network/getting-started)
226
+ - 💬 [Midnight Discord Community](https://discord.gg/midnight)
227
+ - 🐙 [GitHub Repository](https://github.com/Olanetsoft/create-midnight-app)
228
+
229
+ ## Contributing
230
+
231
+ Contributions are welcome! Please feel free to submit a Pull Request.
232
+
233
+ ## License
234
+
235
+ MIT © [Olanetsoft](https://github.com/Olanetsoft)
236
+
237
+ ---
238
+
239
+ Built with ❤️ for the Midnight Network community 🌙✨
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawn } = require("cross-spawn");
4
+ const path = require("path");
5
+ const semver = require("semver");
6
+
7
+ // Check Node.js version
8
+ const currentNodeVersion = process.versions.node;
9
+
10
+ if (!semver.satisfies(currentNodeVersion, ">=18.0.0")) {
11
+ console.error(
12
+ "\x1b[31m" + // Red
13
+ "You are running Node " +
14
+ currentNodeVersion +
15
+ ".\n" +
16
+ "Create Midnight App requires Node 18 or higher.\n" +
17
+ "Please update your version of Node." +
18
+ "\x1b[0m" // Reset
19
+ );
20
+ process.exit(1);
21
+ }
22
+
23
+ // Run the main CLI
24
+ const result = spawn.sync(
25
+ process.execPath,
26
+ [path.resolve(__dirname, "../dist/cli.js"), ...process.argv.slice(2)],
27
+ { stdio: "inherit" }
28
+ );
29
+
30
+ if (result.signal) {
31
+ if (result.signal === "SIGKILL") {
32
+ console.log(
33
+ "The build failed because the process exited too early. " +
34
+ "This probably means the system ran out of memory or someone called " +
35
+ "`kill -9` on the process."
36
+ );
37
+ } else if (result.signal === "SIGTERM") {
38
+ console.log(
39
+ "The build failed because the process exited too early. " +
40
+ "Someone might have called `kill` or `killall`, or the system could " +
41
+ "be shutting down."
42
+ );
43
+ }
44
+ process.exit(1);
45
+ }
46
+
47
+ process.exit(result.status || 0);
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const commander_1 = require("commander");
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const create_app_1 = require("./create-app");
9
+ const program = new commander_1.Command();
10
+ program
11
+ .name("create-midnight-app")
12
+ .description("Create a new Midnight Network application")
13
+ .version("1.0.0")
14
+ .argument("[project-directory]", "Directory name for your project")
15
+ .option("-t, --template <name>", "Template to use", "hello-world")
16
+ .option("--use-npm", "Use npm instead of yarn")
17
+ .option("--use-pnpm", "Use pnpm instead of yarn")
18
+ .option("--skip-install", "Skip package installation")
19
+ .option("--skip-git", "Skip git repository initialization")
20
+ .option("--verbose", "Show detailed output")
21
+ .action(async (projectDirectory, options) => {
22
+ console.log(chalk_1.default.blue.bold("🌙 Create Midnight App\n"));
23
+ try {
24
+ await (0, create_app_1.createApp)(projectDirectory, options);
25
+ }
26
+ catch (error) {
27
+ console.error(chalk_1.default.red("✖ Error creating app:"), error instanceof Error ? error.message : error);
28
+ if (options.verbose && error instanceof Error) {
29
+ console.error(chalk_1.default.gray(error.stack));
30
+ }
31
+ process.exit(1);
32
+ }
33
+ });
34
+ program.parse();
35
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,6CAAyC;AAEzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,qBAAqB,CAAC;KAC3B,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAClE,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,aAAa,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAChD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,MAAM,CAAC,YAAY,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,IAAA,sBAAS,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAClC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface CreateAppOptions {
2
+ template: string;
3
+ useNpm?: boolean;
4
+ usePnpm?: boolean;
5
+ skipInstall?: boolean;
6
+ skipGit?: boolean;
7
+ verbose?: boolean;
8
+ }
9
+ export declare function createApp(projectDirectory: string | undefined, options: CreateAppOptions): Promise<void>;
10
+ //# sourceMappingURL=create-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../src/create-app.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,SAAS,CAC7B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createApp = createApp;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const ora_1 = __importDefault(require("ora"));
11
+ const prompts_1 = __importDefault(require("prompts"));
12
+ const validation_1 = require("./utils/validation");
13
+ const package_installer_1 = require("./installers/package-installer");
14
+ const template_manager_1 = require("./utils/template-manager");
15
+ const wallet_generator_1 = require("./installers/wallet-generator");
16
+ const proof_server_setup_1 = require("./installers/proof-server-setup");
17
+ const git_utils_1 = require("./utils/git-utils");
18
+ async function createApp(projectDirectory, options) {
19
+ let projectName = projectDirectory;
20
+ // Interactive mode if no project name provided
21
+ if (!projectName) {
22
+ const response = await (0, prompts_1.default)({
23
+ type: "text",
24
+ name: "projectName",
25
+ message: "What is your project named?",
26
+ initial: "my-midnight-app",
27
+ validate: (value) => {
28
+ const validation = (0, validation_1.validateProjectName)(value);
29
+ return validation.valid || validation.problems[0];
30
+ },
31
+ });
32
+ if (!response.projectName) {
33
+ console.log(chalk_1.default.yellow("\n✖ Operation cancelled."));
34
+ process.exit(0);
35
+ }
36
+ projectName = response.projectName;
37
+ }
38
+ const validation = (0, validation_1.validateProjectName)(projectName);
39
+ if (!validation.valid) {
40
+ console.error(chalk_1.default.red(`✖ Invalid project name: ${validation.problems[0]}`));
41
+ process.exit(1);
42
+ }
43
+ const projectPath = path_1.default.resolve(projectName);
44
+ // Check if directory exists
45
+ if (fs_extra_1.default.existsSync(projectPath)) {
46
+ const { overwrite } = await (0, prompts_1.default)({
47
+ type: "confirm",
48
+ name: "overwrite",
49
+ message: `Directory ${chalk_1.default.cyan(projectName)} already exists. Overwrite?`,
50
+ initial: false,
51
+ });
52
+ if (!overwrite) {
53
+ console.log(chalk_1.default.yellow("✖ Operation cancelled."));
54
+ process.exit(0);
55
+ }
56
+ await fs_extra_1.default.remove(projectPath);
57
+ }
58
+ console.log(`Creating a new Midnight app in ${chalk_1.default.green(projectPath)}.\n`);
59
+ // Main creation process
60
+ await createProject(projectPath, projectName, options);
61
+ // Success message and instructions
62
+ console.log();
63
+ console.log(chalk_1.default.green.bold("━".repeat(60)));
64
+ console.log(chalk_1.default.green.bold("🎉 Success! Your Midnight app is ready."));
65
+ console.log(chalk_1.default.green.bold("━".repeat(60)));
66
+ console.log();
67
+ console.log(chalk_1.default.white.bold("📂 Project created at:"));
68
+ console.log(` ${chalk_1.default.cyan(projectPath)}`);
69
+ console.log();
70
+ console.log(chalk_1.default.white.bold("🚀 Next Steps:"));
71
+ console.log();
72
+ console.log(chalk_1.default.yellow(" 1.") + " Navigate to your project:");
73
+ console.log(` ${chalk_1.default.cyan(`cd ${projectName}`)}`);
74
+ console.log();
75
+ console.log(chalk_1.default.yellow(" 2.") + " Setup and deploy your contract:");
76
+ console.log(` ${chalk_1.default.cyan("npm run setup")}`);
77
+ console.log();
78
+ console.log(chalk_1.default.white.bold("📚 Available Commands:"));
79
+ console.log();
80
+ console.log(` ${chalk_1.default.cyan("npm run setup")}`);
81
+ console.log(chalk_1.default.gray(" Compile contract, build, and deploy"));
82
+ console.log();
83
+ console.log(` ${chalk_1.default.cyan("npm run cli")}`);
84
+ console.log(chalk_1.default.gray(" Interactive CLI to test your contract"));
85
+ console.log();
86
+ console.log(` ${chalk_1.default.cyan("npm run compile")}`);
87
+ console.log(chalk_1.default.gray(" Compile Compact contracts"));
88
+ console.log();
89
+ console.log(` ${chalk_1.default.cyan("npm run build")}`);
90
+ console.log(chalk_1.default.gray(" Build TypeScript to JavaScript"));
91
+ console.log();
92
+ console.log(chalk_1.default.green.bold("━".repeat(60)));
93
+ console.log();
94
+ console.log(chalk_1.default.magenta("💡 Tips:"));
95
+ console.log(chalk_1.default.gray(" • Make sure Docker is running for the proof server"));
96
+ console.log(chalk_1.default.gray(" • Check .env for your wallet seed and network config"));
97
+ console.log(chalk_1.default.gray(" • Visit https://docs.midnight.network for documentation"));
98
+ console.log();
99
+ console.log(chalk_1.default.white("Happy coding! ") + chalk_1.default.yellow("🌙✨"));
100
+ console.log();
101
+ }
102
+ async function createProject(projectPath, projectName, options) {
103
+ const packageManager = options.usePnpm
104
+ ? "pnpm"
105
+ : options.useNpm
106
+ ? "npm"
107
+ : "yarn";
108
+ // Create project directory
109
+ await fs_extra_1.default.ensureDir(projectPath);
110
+ process.chdir(projectPath);
111
+ // Initialize template
112
+ const templateSpinner = (0, ora_1.default)("Creating project structure...").start();
113
+ try {
114
+ const templateManager = new template_manager_1.TemplateManager(options.template);
115
+ await templateManager.scaffold(projectPath, projectName);
116
+ templateSpinner.succeed("Project structure created");
117
+ }
118
+ catch (error) {
119
+ templateSpinner.fail("Failed to create project structure");
120
+ throw error;
121
+ }
122
+ // Generate wallet
123
+ const walletSpinner = (0, ora_1.default)("Generating secure wallet...").start();
124
+ try {
125
+ const walletGenerator = new wallet_generator_1.WalletGenerator();
126
+ const walletSeed = await walletGenerator.generate(projectPath);
127
+ walletSpinner.succeed(`Wallet generated (seed: ${walletSeed.substring(0, 8)}...)`);
128
+ }
129
+ catch (error) {
130
+ walletSpinner.fail("Failed to generate wallet");
131
+ throw error;
132
+ }
133
+ // Install dependencies
134
+ if (!options.skipInstall) {
135
+ const installSpinner = (0, ora_1.default)(`Installing dependencies with ${packageManager}...`).start();
136
+ try {
137
+ const installer = new package_installer_1.PackageInstaller(packageManager);
138
+ await installer.install(projectPath);
139
+ installSpinner.succeed("Dependencies installed");
140
+ }
141
+ catch (error) {
142
+ installSpinner.fail("Failed to install dependencies");
143
+ console.log(chalk_1.default.yellow("\n⚠ You can install dependencies manually by running:"));
144
+ console.log(chalk_1.default.cyan(` ${packageManager} install`));
145
+ }
146
+ }
147
+ // Initialize git
148
+ if (!options.skipGit) {
149
+ const gitSpinner = (0, ora_1.default)("Initializing git repository...").start();
150
+ try {
151
+ await git_utils_1.GitUtils.init(projectPath);
152
+ gitSpinner.succeed("Git repository initialized");
153
+ }
154
+ catch (error) {
155
+ gitSpinner.warn("Git repository initialization skipped");
156
+ }
157
+ }
158
+ // Check Docker for proof server
159
+ const proofSpinner = (0, ora_1.default)("Checking Docker for proof server...").start();
160
+ try {
161
+ const proofSetup = new proof_server_setup_1.ProofServerSetup();
162
+ const isAvailable = await proofSetup.verify();
163
+ if (isAvailable) {
164
+ proofSpinner.succeed("Docker is ready for proof server");
165
+ }
166
+ else {
167
+ proofSpinner.warn("Docker not available - install it to use proof server");
168
+ }
169
+ }
170
+ catch (error) {
171
+ proofSpinner.warn("Docker check failed - install Docker to use proof server");
172
+ }
173
+ // Compile initial contract
174
+ if (!options.skipInstall) {
175
+ const compileSpinner = (0, ora_1.default)("Compiling initial contract...").start();
176
+ try {
177
+ const installer = new package_installer_1.PackageInstaller(packageManager);
178
+ await installer.runScript(projectPath, "compile");
179
+ compileSpinner.succeed("Contract compiled successfully");
180
+ }
181
+ catch (error) {
182
+ compileSpinner.warn('Contract compilation skipped - run "npm run compile" manually');
183
+ }
184
+ }
185
+ }
186
+ //# sourceMappingURL=create-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../src/create-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare class PackageInstaller {
2
+ private packageManager;
3
+ constructor(packageManager: "npm" | "yarn" | "pnpm");
4
+ install(projectPath: string): Promise<void>;
5
+ runScript(projectPath: string, script: string): Promise<void>;
6
+ static detectPackageManager(): "npm" | "yarn" | "pnpm";
7
+ }
8
+ //# sourceMappingURL=package-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.d.ts","sourceRoot":"","sources":["../../src/installers/package-installer.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAgB;IACf,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;IAErD,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE,MAAM,CAAC,oBAAoB,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM;CASvD"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PackageInstaller = void 0;
4
+ const cross_spawn_1 = require("cross-spawn");
5
+ class PackageInstaller {
6
+ constructor(packageManager) {
7
+ this.packageManager = packageManager;
8
+ }
9
+ async install(projectPath) {
10
+ return new Promise((resolve, reject) => {
11
+ const child = (0, cross_spawn_1.spawn)(this.packageManager, ["install"], {
12
+ cwd: projectPath,
13
+ stdio: "pipe",
14
+ });
15
+ let output = "";
16
+ child.stdout?.on("data", (data) => {
17
+ output += data.toString();
18
+ });
19
+ child.stderr?.on("data", (data) => {
20
+ output += data.toString();
21
+ });
22
+ child.on("close", (code) => {
23
+ if (code === 0) {
24
+ resolve();
25
+ }
26
+ else {
27
+ reject(new Error(`Package installation failed with code ${code}:\n${output}`));
28
+ }
29
+ });
30
+ child.on("error", reject);
31
+ });
32
+ }
33
+ async runScript(projectPath, script) {
34
+ return new Promise((resolve, reject) => {
35
+ const args = this.packageManager === "npm" ? ["run", script] : [script];
36
+ const child = (0, cross_spawn_1.spawn)(this.packageManager, args, {
37
+ cwd: projectPath,
38
+ stdio: "pipe",
39
+ });
40
+ child.on("close", (code) => {
41
+ if (code === 0) {
42
+ resolve();
43
+ }
44
+ else {
45
+ reject(new Error(`Script "${script}" failed with code ${code}`));
46
+ }
47
+ });
48
+ child.on("error", reject);
49
+ });
50
+ }
51
+ static detectPackageManager() {
52
+ if (process.env.npm_config_user_agent?.includes("yarn")) {
53
+ return "yarn";
54
+ }
55
+ if (process.env.npm_config_user_agent?.includes("pnpm")) {
56
+ return "pnpm";
57
+ }
58
+ return "npm";
59
+ }
60
+ }
61
+ exports.PackageInstaller = PackageInstaller;
62
+ //# sourceMappingURL=package-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.js","sourceRoot":"","sources":["../../src/installers/package-installer.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAGpC,MAAa,gBAAgB;IAC3B,YAAoB,cAAuC;QAAvC,mBAAc,GAAd,cAAc,CAAyB;IAAG,CAAC;IAE/D,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE;gBACpD,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CACJ,IAAI,KAAK,CACP,yCAAyC,IAAI,MAAM,MAAM,EAAE,CAC5D,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,MAAc;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAExE,MAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE;gBAC7C,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,MAAM,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,oBAAoB;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAjED,4CAiEC"}
@@ -0,0 +1,6 @@
1
+ export declare class ProofServerSetup {
2
+ verify(): Promise<boolean>;
3
+ private isDockerAvailable;
4
+ private isProofServerImageAvailable;
5
+ }
6
+ //# sourceMappingURL=proof-server-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proof-server-setup.d.ts","sourceRoot":"","sources":["../../src/installers/proof-server-setup.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAgB;IACrB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;YAelB,iBAAiB;YAgBjB,2BAA2B;CA0B1C"}