create-mn-app 0.3.19 → 0.3.21

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.
@@ -21,31 +21,52 @@ exports.GitCloner = void 0;
21
21
  const child_process_1 = require("child_process");
22
22
  const fs_extra_1 = __importDefault(require("fs-extra"));
23
23
  const path_1 = __importDefault(require("path"));
24
+ const debug_js_1 = require("./debug.js");
24
25
  class GitCloner {
25
26
  /**
26
- * Clone a GitHub repository
27
+ * Clone a GitHub repository with retry logic
27
28
  */
28
- static async clone(repo, targetPath, branch = "main") {
29
+ static async clone(repo, targetPath, branch = "main", retries = 3) {
30
+ // Sanitize inputs to prevent command injection
31
+ if (!/^[a-zA-Z0-9_.\-\/]+$/.test(repo)) {
32
+ throw new Error(`Invalid repository name: ${repo}`);
33
+ }
34
+ if (!/^[a-zA-Z0-9_.\-]+$/.test(branch)) {
35
+ throw new Error(`Invalid branch name: ${branch}`);
36
+ }
29
37
  const repoUrl = `https://github.com/${repo}.git`;
30
38
  try {
31
- // Check if git is available
32
39
  (0, child_process_1.execSync)("git --version", { stdio: "ignore" });
33
40
  }
34
41
  catch {
35
42
  throw new Error("Git is not installed. Please install Git from https://git-scm.com");
36
43
  }
37
- try {
38
- // Clone with depth 1 for faster cloning
39
- (0, child_process_1.execSync)(`git clone --depth 1 --branch ${branch} ${repoUrl} "${targetPath}"`, { stdio: "pipe" });
40
- // Remove .git directory to make it a fresh project
41
- const gitDir = path_1.default.join(targetPath, ".git");
42
- if (fs_extra_1.default.existsSync(gitDir)) {
43
- await fs_extra_1.default.remove(gitDir);
44
+ let lastError;
45
+ for (let attempt = 1; attempt <= retries; attempt++) {
46
+ try {
47
+ // Clean up partial clone from previous attempt
48
+ if (attempt > 1 && fs_extra_1.default.existsSync(targetPath)) {
49
+ await fs_extra_1.default.remove(targetPath);
50
+ }
51
+ (0, child_process_1.execSync)(`git clone --depth 1 --branch "${branch}" "${repoUrl}" "${targetPath}"`, { stdio: "pipe" });
52
+ // Remove .git directory to make it a fresh project
53
+ const gitDir = path_1.default.join(targetPath, ".git");
54
+ if (fs_extra_1.default.existsSync(gitDir)) {
55
+ await fs_extra_1.default.remove(gitDir);
56
+ }
57
+ return;
58
+ }
59
+ catch (error) {
60
+ lastError = error instanceof Error ? error : new Error(String(error));
61
+ (0, debug_js_1.debug)(`Clone attempt ${attempt}/${retries} failed: ${lastError.message}`);
62
+ if (attempt < retries) {
63
+ const delay = Math.pow(2, attempt) * 1000;
64
+ (0, debug_js_1.debug)(`Retrying in ${delay}ms...`);
65
+ await new Promise((resolve) => setTimeout(resolve, delay));
66
+ }
44
67
  }
45
68
  }
46
- catch (error) {
47
- throw new Error(`Failed to clone repository ${repo}. Please check your internet connection and try again.`);
48
- }
69
+ throw new Error(`Failed to clone repository ${repo} after ${retries} attempts. Please check your internet connection and try again.`);
49
70
  }
50
71
  /**
51
72
  * Check if git is available
@@ -1 +1 @@
1
- {"version":3,"file":"git-cloner.js","sourceRoot":"","sources":["../../src/utils/git-cloner.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,yCAAyC;AACzC,sCAAsC;AACtC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;;;;AAEjC,iDAAyC;AACzC,wDAA0B;AAC1B,gDAAwB;AAGxB,MAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,UAAkB,EAClB,SAAiB,MAAM;QAEvB,MAAM,OAAO,GAAG,sBAAsB,IAAI,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,4BAA4B;YAC5B,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,wCAAwC;YACxC,IAAA,wBAAQ,EACN,gCAAgC,MAAM,IAAI,OAAO,KAAK,UAAU,GAAG,EACnE,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;YAEF,mDAAmD;YACnD,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,IAAI,kBAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,kBAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,wDAAwD,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAlDD,8BAkDC"}
1
+ {"version":3,"file":"git-cloner.js","sourceRoot":"","sources":["../../src/utils/git-cloner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":"AAmBA,qBAAa,QAAQ;WACN,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;mBAqBhC,cAAc;mBASd,aAAa;CAqBnC"}
1
+ {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":"AAiBA,qBAAa,QAAQ;WACN,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;mBAqBhC,cAAc;mBASd,aAAa;CAqBnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,yCAAyC;AACzC,sCAAsC;AACtC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,6CAAoC;AAIpC,MAAa,QAAQ;IACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAmB;QACnC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,gBAAgB;QAChB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpD,wBAAwB;QACxB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACpC,QAAQ;YACR,IAAI;YACJ,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAChC,GAAW,EACX,IAAc;QAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,KAAK,EAAE,IAAI,EAAE;gBAC/B,GAAG;gBACH,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,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApDD,4BAoDC"}
1
+ {"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,yCAAyC;AACzC,sCAAsC;AACtC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,6CAAoC;AAEpC,MAAa,QAAQ;IACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAmB;QACnC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,gBAAgB;QAChB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpD,wBAAwB;QACxB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACpC,QAAQ;YACR,IAAI;YACJ,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAChC,GAAW,EACX,IAAc;QAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,KAAK,EAAE,IAAI,EAAE;gBAC/B,GAAG;gBACH,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,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApDD,4BAoDC"}
@@ -1,23 +1,13 @@
1
- import type { PackageManager } from "./package-manager.js";
2
- export interface SetupStep {
3
- title: string;
4
- commands: string[];
5
- cwd?: string;
6
- optional?: boolean;
7
- }
1
+ import { type PackageManager } from "./package-manager.js";
8
2
  export declare class SetupGuide {
9
3
  /**
10
- * Get setup instructions for a template
4
+ * Display setup instructions for a template (data-driven)
11
5
  */
12
6
  static getInstructions(templateName: string, projectName: string, packageManager: PackageManager): void;
13
7
  /**
14
- * Display Counter template instructions
15
- */
16
- private static displayCounterInstructions;
17
- /**
18
- * Display Bboard template instructions
8
+ * Render setup steps from template metadata
19
9
  */
20
- private static displayBboardInstructions;
10
+ private static displaySteps;
21
11
  /**
22
12
  * Display post-clone message
23
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"setup-guide.d.ts","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,IAAI;IAaP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA6DzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAiFxC;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAY3D"}
1
+ {"version":3,"file":"setup-guide.d.ts","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAe9B,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,IAAI;IA0BP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAmC3B;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAY3D"}
@@ -20,108 +20,65 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.SetupGuide = void 0;
21
21
  const chalk_1 = __importDefault(require("chalk"));
22
22
  const templates_js_1 = require("./templates.js");
23
+ const package_manager_js_1 = require("./package-manager.js");
24
+ function resolveCommand(cmd, projectName, pm) {
25
+ const pmInfo = (0, package_manager_js_1.getPackageManagerInfo)(pm);
26
+ return cmd
27
+ .replace(/\{\{projectName\}\}/g, projectName)
28
+ .replace(/\{\{installCmd\}\}/g, pmInfo.installCommand)
29
+ .replace(/\{\{runCmd\}\}/g, pmInfo.runCommand);
30
+ }
23
31
  class SetupGuide {
24
32
  /**
25
- * Get setup instructions for a template
33
+ * Display setup instructions for a template (data-driven)
26
34
  */
27
35
  static getInstructions(templateName, projectName, packageManager) {
28
36
  const template = (0, templates_js_1.getTemplate)(templateName);
29
37
  if (!template || template.type !== "remote")
30
38
  return;
31
- console.log(chalk_1.default.bold("\n[" + chalk_1.default.blue("→") + "] Next Steps\n"));
32
- if (templateName === "counter") {
33
- this.displayCounterInstructions(projectName, packageManager);
39
+ console.log();
40
+ console.log(chalk_1.default.green("◇") + chalk_1.default.bold(" Next steps"));
41
+ console.log(chalk_1.default.dim("│"));
42
+ // Display project structure if defined
43
+ if (template.projectStructure && template.projectStructure.length > 0) {
44
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.bold("Project structure"));
45
+ for (const line of template.projectStructure) {
46
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.dim(line));
47
+ }
48
+ console.log(chalk_1.default.dim("│"));
34
49
  }
35
- else if (templateName === "bboard") {
36
- this.displayBboardInstructions(projectName, packageManager);
50
+ // Display setup steps if defined
51
+ if (template.setupSteps) {
52
+ this.displaySteps(template, projectName, packageManager);
37
53
  }
38
- }
39
- /**
40
- * Display Counter template instructions
41
- */
42
- static displayCounterInstructions(projectName, pm) {
43
- const installCmd = pm === "npm"
44
- ? "npm install"
45
- : pm === "yarn"
46
- ? "yarn"
47
- : pm === "pnpm"
48
- ? "pnpm install"
49
- : "bun install";
50
- const runCmd = pm === "npm" ? "npm run" : pm;
51
- console.log(chalk_1.default.gray(" project structure:"));
52
- console.log(chalk_1.default.gray(" ├─ contract/ smart contract (compact)"));
53
- console.log(chalk_1.default.gray(" └─ counter-cli/ cli interface"));
54
- console.log();
55
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd ${projectName}`));
56
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(installCmd));
57
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd contract && ${runCmd} compact`));
58
- console.log(chalk_1.default.gray(" (downloads ~500MB zk parameters on first run)"));
59
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`${runCmd} build`));
60
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd ../counter-cli && ${runCmd} build`));
61
- console.log();
62
- console.log(chalk_1.default.bold("[" + chalk_1.default.magenta("i") + "] Proof Server\n"));
63
- console.log(chalk_1.default.gray(" $ ") +
64
- chalk_1.default.cyan("docker run -d -p 6300:6300 -e PORT=6300 midnightntwrk/proof-server:7.0.0"));
65
- console.log(chalk_1.default.gray(" (runs in background)"));
66
- console.log();
67
- console.log(chalk_1.default.bold("[" + chalk_1.default.green("▶") + "] Run Application\n"));
68
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd counter-cli && ${runCmd} start`));
69
- console.log();
70
- console.log(chalk_1.default.bold("[" + chalk_1.default.yellow("!") + "] Important\n"));
71
- console.log(chalk_1.default.gray(" • create wallet and fund from faucet"));
72
- console.log(chalk_1.default.gray(" • Preprod faucet: https://faucet.preprod.midnight.network/"));
73
- console.log(chalk_1.default.gray(" • funding takes 2-3 minutes"));
74
- console.log(chalk_1.default.gray(" • see README.md for detailed guide"));
54
+ console.log(chalk_1.default.dim("└"));
75
55
  console.log();
76
56
  }
77
57
  /**
78
- * Display Bboard template instructions
58
+ * Render setup steps from template metadata
79
59
  */
80
- static displayBboardInstructions(projectName, pm) {
81
- const installCmd = pm === "npm"
82
- ? "npm install"
83
- : pm === "yarn"
84
- ? "yarn"
85
- : pm === "pnpm"
86
- ? "pnpm install"
87
- : "bun install";
88
- const runCmd = pm === "npm" ? "npm run" : pm;
89
- console.log(chalk_1.default.gray(" project structure:"));
90
- console.log(chalk_1.default.gray(" ├─ contract/ smart contract (compact)"));
91
- console.log(chalk_1.default.gray(" ├─ api/ shared api methods"));
92
- console.log(chalk_1.default.gray(" ├─ bboard-cli/ cli interface"));
93
- console.log(chalk_1.default.gray(" └─ bboard-ui/ web browser interface"));
94
- console.log();
95
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd ${projectName}`));
96
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(installCmd));
97
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd api && ${installCmd} && cd ..`));
98
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd contract && ${installCmd}`));
99
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`${runCmd} compact`));
100
- console.log(chalk_1.default.gray(" (downloads ~500MB zk parameters on first run)"));
101
- console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`${runCmd} build && cd ..`));
102
- console.log(chalk_1.default.gray(" $ ") +
103
- chalk_1.default.cyan(`cd bboard-cli && ${installCmd} && ${runCmd} build && cd ..`));
104
- console.log();
105
- console.log(chalk_1.default.bold("[" + chalk_1.default.magenta("i") + "] Proof Server\n"));
106
- console.log(chalk_1.default.gray(" $ ") +
107
- chalk_1.default.cyan("docker run -d -p 6300:6300 -e PORT=6300 midnightntwrk/proof-server:7.0.0"));
108
- console.log(chalk_1.default.gray(" (runs in background)"));
109
- console.log();
110
- console.log(chalk_1.default.bold("[" + chalk_1.default.green("▶") + "] Run CLI\n"));
111
- console.log(chalk_1.default.gray(" $ ") +
112
- chalk_1.default.cyan(`cd bboard-cli && ${runCmd} preprod-remote`));
113
- console.log();
114
- console.log(chalk_1.default.bold("[" + chalk_1.default.blue("◎") + "] Run Web UI (optional)\n"));
115
- console.log(chalk_1.default.gray(" $ ") +
116
- chalk_1.default.cyan(`cd bboard-ui && ${installCmd} && ${runCmd} build:start`));
117
- console.log(chalk_1.default.gray(" requires Lace wallet browser extension"));
118
- console.log();
119
- console.log(chalk_1.default.bold("[" + chalk_1.default.yellow("!") + "] Important\n"));
120
- console.log(chalk_1.default.gray(" • create wallet and fund from faucet"));
121
- console.log(chalk_1.default.gray(" • Preprod faucet: https://faucet.preprod.midnight.network/"));
122
- console.log(chalk_1.default.gray(" • funding takes 2-3 minutes"));
123
- console.log(chalk_1.default.gray(" • see README.md for detailed guide"));
124
- console.log();
60
+ static displaySteps(template, projectName, pm) {
61
+ if (!template.setupSteps)
62
+ return;
63
+ template.setupSteps.forEach((step, index) => {
64
+ const isLast = index === template.setupSteps.length - 1;
65
+ const icon = step.commands.length > 0 ? "" : "▲";
66
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.blue(icon) + chalk_1.default.bold(` ${step.title}`));
67
+ for (const cmd of step.commands) {
68
+ const resolved = resolveCommand(cmd, projectName, pm);
69
+ console.log(chalk_1.default.dim(" ") + chalk_1.default.cyan(resolved));
70
+ }
71
+ if (step.note) {
72
+ const lines = step.note.split("\n");
73
+ for (const line of lines) {
74
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.dim(line));
75
+ }
76
+ }
77
+ if (!isLast) {
78
+ console.log(chalk_1.default.dim(""));
79
+ }
80
+ });
81
+ console.log(chalk_1.default.dim(""));
125
82
  }
126
83
  /**
127
84
  * Display post-clone message
@@ -130,11 +87,11 @@ class SetupGuide {
130
87
  const template = (0, templates_js_1.getTemplate)(templateName);
131
88
  if (!template)
132
89
  return;
133
- console.log(chalk_1.default.bold("\n[" + chalk_1.default.green("✓") + "] Clone Complete\n"));
90
+ console.log();
91
+ console.log(chalk_1.default.green("◆") + chalk_1.default.bold(" Clone complete"));
134
92
  if (template.requiresCompactCompiler) {
135
- console.log(chalk_1.default.gray(" compact compiler required"));
136
- console.log(chalk_1.default.gray(" follow setup instructions below"));
137
- console.log();
93
+ console.log(chalk_1.default.dim(""));
94
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.dim("Compact compiler required"));
138
95
  }
139
96
  }
140
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-guide.js","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-guide.js","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- export interface Template {
2
- name: string;
3
- display: string;
1
+ export type TemplateCategory = "contract" | "dapp" | "connector";
2
+ export interface CategoryInfo {
3
+ title: string;
4
4
  description: string;
5
- available: boolean;
6
- comingSoon?: boolean;
5
+ }
6
+ export interface TemplateSetupStep {
7
+ title: string;
8
+ commands: string[];
9
+ note?: string;
7
10
  }
8
11
  export interface Template {
9
12
  name: string;
@@ -12,10 +15,13 @@ export interface Template {
12
15
  available: boolean;
13
16
  comingSoon?: boolean;
14
17
  type: "bundled" | "remote";
18
+ category: TemplateCategory;
15
19
  repo?: string;
16
20
  nodeVersion?: number;
17
21
  requiresCompactCompiler?: boolean;
18
22
  compactVersion?: string;
23
+ projectStructure?: string[];
24
+ setupSteps?: TemplateSetupStep[];
19
25
  }
20
26
  export declare const templates: Template[];
21
27
  /**
@@ -34,4 +40,20 @@ export declare function getTemplate(name: string): Template | undefined;
34
40
  * Validate template name
35
41
  */
36
42
  export declare function isValidTemplate(name: string): boolean;
43
+ /**
44
+ * Get all defined categories (includes empty ones for discoverability)
45
+ */
46
+ export declare function getCategories(): TemplateCategory[];
47
+ /**
48
+ * Get templates filtered by category
49
+ */
50
+ export declare function getTemplatesByCategory(category: TemplateCategory): Template[];
51
+ /**
52
+ * Get display info for a category
53
+ */
54
+ export declare function getCategoryDisplay(category: TemplateCategory): CategoryInfo;
55
+ /**
56
+ * List all templates grouped by category
57
+ */
58
+ export declare function listTemplates(): void;
37
59
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EAkD/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAiBD,eAAO,MAAM,SAAS,EAAE,QAAQ,EAkI/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,gBAAgB,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAE7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,YAAY,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CA4CpC"}
@@ -13,12 +13,34 @@
13
13
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
14
  // See the License for the specific language governing permissions and
15
15
  // limitations under the License.
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
16
19
  Object.defineProperty(exports, "__esModule", { value: true });
17
20
  exports.templates = void 0;
18
21
  exports.getAvailableTemplates = getAvailableTemplates;
19
22
  exports.getAllTemplates = getAllTemplates;
20
23
  exports.getTemplate = getTemplate;
21
24
  exports.isValidTemplate = isValidTemplate;
25
+ exports.getCategories = getCategories;
26
+ exports.getTemplatesByCategory = getTemplatesByCategory;
27
+ exports.getCategoryDisplay = getCategoryDisplay;
28
+ exports.listTemplates = listTemplates;
29
+ const chalk_1 = __importDefault(require("chalk"));
30
+ const categoryInfo = {
31
+ contract: {
32
+ title: "Contract",
33
+ description: "Deploy and test contracts",
34
+ },
35
+ dapp: {
36
+ title: "Full DApp",
37
+ description: "Complete application with UI and contract",
38
+ },
39
+ connector: {
40
+ title: "Connector",
41
+ description: "Integration examples and patterns",
42
+ },
43
+ };
22
44
  exports.templates = [
23
45
  {
24
46
  name: "hello-world",
@@ -26,6 +48,7 @@ exports.templates = [
26
48
  description: "Simple starter template with basic contract deployment",
27
49
  available: true,
28
50
  type: "bundled",
51
+ category: "contract",
29
52
  },
30
53
  {
31
54
  name: "counter",
@@ -33,10 +56,44 @@ exports.templates = [
33
56
  description: "Increment/decrement app demonstrating state management",
34
57
  available: true,
35
58
  type: "remote",
59
+ category: "dapp",
36
60
  repo: "midnightntwrk/example-counter",
37
61
  nodeVersion: 22,
38
62
  requiresCompactCompiler: true,
39
- compactVersion: "0.23.0",
63
+ compactVersion: "0.28.0",
64
+ projectStructure: [
65
+ "contract/ smart contract (compact)",
66
+ "counter-cli/ cli interface",
67
+ ],
68
+ setupSteps: [
69
+ {
70
+ title: "Build",
71
+ commands: [
72
+ "cd {{projectName}}",
73
+ "{{installCmd}}",
74
+ "cd contract && {{runCmd}} compact",
75
+ "{{runCmd}} build",
76
+ "cd ../counter-cli && {{runCmd}} build",
77
+ ],
78
+ note: "downloads ~500MB zk parameters on first run",
79
+ },
80
+ {
81
+ title: "Proof Server",
82
+ commands: [
83
+ "docker run -d -p 6300:6300 -e PORT=6300 midnightntwrk/proof-server:7.0.0",
84
+ ],
85
+ note: "runs in background",
86
+ },
87
+ {
88
+ title: "Run Application",
89
+ commands: ["cd counter-cli && {{runCmd}} start"],
90
+ },
91
+ {
92
+ title: "Important",
93
+ commands: [],
94
+ note: "create wallet and fund from faucet\nPreprod faucet: https://faucet.preprod.midnight.network/\nfunding takes 2-3 minutes\nsee README.md for detailed guide",
95
+ },
96
+ ],
40
97
  },
41
98
  {
42
99
  name: "bboard",
@@ -44,10 +101,53 @@ exports.templates = [
44
101
  description: "Bulletin board with multi-user interactions and privacy patterns",
45
102
  available: true,
46
103
  type: "remote",
104
+ category: "dapp",
47
105
  repo: "midnightntwrk/example-bboard",
48
106
  nodeVersion: 22,
49
107
  requiresCompactCompiler: true,
50
- compactVersion: "0.23.0",
108
+ compactVersion: "0.28.0",
109
+ projectStructure: [
110
+ "contract/ smart contract (compact)",
111
+ "api/ shared api methods",
112
+ "bboard-cli/ cli interface",
113
+ "bboard-ui/ web browser interface",
114
+ ],
115
+ setupSteps: [
116
+ {
117
+ title: "Build",
118
+ commands: [
119
+ "cd {{projectName}}",
120
+ "{{installCmd}}",
121
+ "cd api && {{installCmd}} && cd ..",
122
+ "cd contract && {{installCmd}}",
123
+ "{{runCmd}} compact",
124
+ "{{runCmd}} build && cd ..",
125
+ "cd bboard-cli && {{installCmd}} && {{runCmd}} build && cd ..",
126
+ ],
127
+ note: "downloads ~500MB zk parameters on first run",
128
+ },
129
+ {
130
+ title: "Proof Server",
131
+ commands: [
132
+ "docker run -d -p 6300:6300 -e PORT=6300 midnightntwrk/proof-server:7.0.0",
133
+ ],
134
+ note: "runs in background",
135
+ },
136
+ {
137
+ title: "Run CLI",
138
+ commands: ["cd bboard-cli && {{runCmd}} preprod-remote"],
139
+ },
140
+ {
141
+ title: "Run Web UI (optional)",
142
+ commands: ["cd bboard-ui && {{installCmd}} && {{runCmd}} build:start"],
143
+ note: "requires Lace wallet browser extension",
144
+ },
145
+ {
146
+ title: "Important",
147
+ commands: [],
148
+ note: "create wallet and fund from faucet\nPreprod faucet: https://faucet.preprod.midnight.network/\nfunding takes 2-3 minutes\nsee README.md for detailed guide",
149
+ },
150
+ ],
51
151
  },
52
152
  {
53
153
  name: "dex",
@@ -56,6 +156,7 @@ exports.templates = [
56
156
  available: false,
57
157
  comingSoon: true,
58
158
  type: "remote",
159
+ category: "dapp",
59
160
  repo: "midnightntwrk/example-dex",
60
161
  },
61
162
  {
@@ -65,6 +166,7 @@ exports.templates = [
65
166
  available: false,
66
167
  comingSoon: true,
67
168
  type: "remote",
169
+ category: "dapp",
68
170
  repo: "midnightntwrk/midnight-kitties",
69
171
  },
70
172
  ];
@@ -93,4 +195,58 @@ function isValidTemplate(name) {
93
195
  const template = getTemplate(name);
94
196
  return template !== undefined && template.available;
95
197
  }
198
+ /**
199
+ * Get all defined categories (includes empty ones for discoverability)
200
+ */
201
+ function getCategories() {
202
+ return Object.keys(categoryInfo);
203
+ }
204
+ /**
205
+ * Get templates filtered by category
206
+ */
207
+ function getTemplatesByCategory(category) {
208
+ return exports.templates.filter((t) => t.category === category);
209
+ }
210
+ /**
211
+ * Get display info for a category
212
+ */
213
+ function getCategoryDisplay(category) {
214
+ return categoryInfo[category];
215
+ }
216
+ /**
217
+ * List all templates grouped by category
218
+ */
219
+ function listTemplates() {
220
+ const categories = getCategories();
221
+ console.log(chalk_1.default.dim("│"));
222
+ for (const category of categories) {
223
+ const info = getCategoryDisplay(category);
224
+ const categoryTemplates = getTemplatesByCategory(category);
225
+ const available = categoryTemplates.filter((t) => t.available);
226
+ const comingSoon = categoryTemplates.filter((t) => t.comingSoon);
227
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.bold(info.title));
228
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.dim(info.description));
229
+ console.log(chalk_1.default.dim("│"));
230
+ if (available.length === 0 && comingSoon.length === 0) {
231
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.yellow("Coming soon"));
232
+ console.log(chalk_1.default.dim("│"));
233
+ continue;
234
+ }
235
+ for (const t of available) {
236
+ const nameCol = t.name.padEnd(20);
237
+ console.log(chalk_1.default.dim("│ ") + chalk_1.default.green(nameCol) + chalk_1.default.dim(t.description));
238
+ }
239
+ for (const t of comingSoon) {
240
+ const nameCol = t.name.padEnd(20);
241
+ console.log(chalk_1.default.dim("│ ") +
242
+ chalk_1.default.dim(nameCol) +
243
+ chalk_1.default.dim(t.description) +
244
+ " " +
245
+ chalk_1.default.yellow("(coming soon)"));
246
+ }
247
+ console.log(chalk_1.default.dim("│"));
248
+ }
249
+ console.log(chalk_1.default.dim("└"));
250
+ console.log();
251
+ }
96
252
  //# sourceMappingURL=templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,yCAAyC;AACzC,sCAAsC;AACtC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AA8EjC,sDAEC;AAKD,0CAEC;AAKD,kCAEC;AAKD,0CAGC;AA/EY,QAAA,SAAS,GAAe;IACnC;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,SAAS;KAChB;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,EAAE;QACf,uBAAuB,EAAE,IAAI;QAC7B,cAAc,EAAE,QAAQ;KACzB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,yBAAyB;QAClC,WAAW,EACT,kEAAkE;QACpE,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,EAAE;QACf,uBAAuB,EAAE,IAAI;QAC7B,cAAc,EAAE,QAAQ;KACzB;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,2BAA2B;KAClC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EACT,+EAA+E;QACjF,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gCAAgC;KACvC;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,qBAAqB;IACnC,OAAO,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,iBAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,iBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}