create-fhevm-example 1.1.5 → 1.2.1
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 +46 -10
- package/dist/add-mode.js +1 -1
- package/dist/add-mode.js.map +1 -1
- package/dist/builders.d.ts +30 -0
- package/dist/builders.d.ts.map +1 -0
- package/dist/builders.js +195 -0
- package/dist/builders.js.map +1 -0
- package/dist/commands.d.ts +19 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +91 -0
- package/dist/commands.js.map +1 -0
- package/dist/constants.d.ts +16 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +40 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +8 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +80 -439
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +26 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +79 -0
- package/dist/prompts.js.map +1 -0
- package/dist/ui.d.ts +35 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +155 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils.d.ts +63 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +88 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@ Create FHEVM example projects with a single command.
|
|
|
8
8
|
npx create-fhevm-example
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+

|
|
12
|
+
|
|
11
13
|
This launches an interactive CLI that guides you through creating a project.
|
|
12
14
|
|
|
13
15
|
## Direct Mode
|
|
@@ -48,19 +50,24 @@ npx create-fhevm-example --example fhe-counter --output ./my-project --install
|
|
|
48
50
|
|
|
49
51
|
**Concepts**: `fhe-access-control`, `fhe-input-proof`, `fhe-handles`, `fhe-anti-patterns`
|
|
50
52
|
|
|
53
|
+
**Gaming**: `rock-paper-scissors`, `encrypted-lottery`, `encrypted-poker`
|
|
54
|
+
|
|
51
55
|
**OpenZeppelin**: `erc7984`, `erc7984-erc20-wrapper`, `swap-erc7984-to-erc20`, `swap-erc7984-to-erc7984`, `vesting-wallet`
|
|
52
56
|
|
|
53
|
-
**Advanced**: `blind-auction`, `hidden-voting`
|
|
57
|
+
**Advanced**: `blind-auction`, `hidden-voting`, `private-payroll`, `encrypted-escrow`, `private-kyc`
|
|
54
58
|
|
|
55
59
|
## Available Categories
|
|
56
60
|
|
|
57
61
|
| Category | Description |
|
|
58
62
|
|----------|-------------|
|
|
59
|
-
| `basic` |
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
63
|
+
| `basic` | Basic encryption and counter examples (1 contract) |
|
|
64
|
+
| `basicencryption` | Single and multiple value encryption (2 contracts) |
|
|
65
|
+
| `basicdecryption` | Public and user decryption examples (4 contracts) |
|
|
66
|
+
| `basicfheoperations` | FHE arithmetic and comparison (4 contracts) |
|
|
67
|
+
| `concepts` | Access control, proofs, handles, anti-patterns (4 contracts) |
|
|
68
|
+
| `gaming` | Rock-paper-scissors, lottery, poker (3 contracts) |
|
|
69
|
+
| `openzeppelin` | ERC7984, wrappers, swaps, vesting (5 contracts) |
|
|
70
|
+
| `advanced` | Blind auction, voting, payroll, escrow, KYC (5 contracts) |
|
|
64
71
|
|
|
65
72
|
## What Gets Created
|
|
66
73
|
|
|
@@ -89,6 +96,35 @@ npx create-fhevm-example --example fhe-counter --output ./my-project --install
|
|
|
89
96
|
|
|
90
97
|
>This section is for contributors and maintainers of the package.
|
|
91
98
|
|
|
99
|
+
### File Structure
|
|
100
|
+
|
|
101
|
+
The package follows a modular structure similar to the main project's `scripts/` directory:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
src/
|
|
105
|
+
├── index.ts # Main entry point + CLI modes (~320 lines)
|
|
106
|
+
├── builders.ts # createSingleExample, createCategoryProject (~250 lines)
|
|
107
|
+
├── ui.ts # Interactive prompts + install/test commands (~180 lines)
|
|
108
|
+
├── utils.ts # Utilities + constants + validation + logging (~350 lines)
|
|
109
|
+
├── config.ts # Auto-generated examples & categories (~440 lines)
|
|
110
|
+
└── add-mode.ts # Add FHEVM to existing projects (~370 lines)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Key Components:**
|
|
114
|
+
- `index.ts` - Main CLI entry point, handles interactive and direct modes
|
|
115
|
+
- `builders.ts` - Project creation logic (single example, category project)
|
|
116
|
+
- `ui.ts` - User interface (prompts + commands, replaces old prompts.ts + commands.ts)
|
|
117
|
+
- `utils.ts` - File operations, constants, validation, logging utilities
|
|
118
|
+
- `config.ts` - Auto-generated configuration from monorepo contracts
|
|
119
|
+
- `add-mode.ts` - Add FHEVM to existing Hardhat projects
|
|
120
|
+
|
|
121
|
+
**Design Principles:**
|
|
122
|
+
- **Modular**: Each file has a single responsibility
|
|
123
|
+
- **Aligned**: Mirrors main project's `scripts/` structure
|
|
124
|
+
- **Maintainable**: Easy to understand and update
|
|
125
|
+
- **Type-safe**: Full TypeScript coverage
|
|
126
|
+
- **Consistent**: Standardized logging, error handling, validation
|
|
127
|
+
|
|
92
128
|
### Configuration
|
|
93
129
|
|
|
94
130
|
The CLI uses a configuration file that defines all available examples and categories. This file is **auto-generated** by scanning the monorepo's contracts directory.
|
|
@@ -153,10 +189,10 @@ npm unlink -g create-fhevm-example
|
|
|
153
189
|
|
|
154
190
|
### Scripts
|
|
155
191
|
|
|
156
|
-
- `npm run build` - Compile TypeScript
|
|
157
|
-
- `npm run dev` - Watch mode
|
|
158
|
-
- `npm run update:config` -
|
|
159
|
-
- `npm run prepublishOnly` - Auto-runs update:config + build
|
|
192
|
+
- `npm run build` - Compile TypeScript to `dist/`
|
|
193
|
+
- `npm run dev` - Watch mode for development
|
|
194
|
+
- `npm run update:config` - Regenerate config from monorepo contracts
|
|
195
|
+
- `npm run prepublishOnly` - Auto-runs before publish (update:config + build)
|
|
160
196
|
|
|
161
197
|
---
|
|
162
198
|
|
package/dist/add-mode.js
CHANGED
|
@@ -296,6 +296,6 @@ export async function runAddMode(targetDir) {
|
|
|
296
296
|
p.log.success(pc.green("✨ FHEVM capabilities added successfully!"));
|
|
297
297
|
p.log.message("");
|
|
298
298
|
p.note(`${pc.dim("$")} npm install\n${pc.dim("$")} npm run compile\n${pc.dim("$")} npm run test`, "🚀 Next Steps");
|
|
299
|
-
p.outro(pc.green("
|
|
299
|
+
p.outro(pc.green("✅ Setup complete. Happy encrypting!"));
|
|
300
300
|
}
|
|
301
301
|
//# sourceMappingURL=add-mode.js.map
|
package/dist/add-mode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-mode.js","sourceRoot":"","sources":["../src/add-mode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-mode.js","sourceRoot":"","sources":["../src/add-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Builders
|
|
3
|
+
*
|
|
4
|
+
* Creates single example and category projects from templates.
|
|
5
|
+
* Similar to main project's create-example.ts and create-category.ts
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Cleans up template-specific files after copying
|
|
9
|
+
* Similar to cleanupTemplate() in main project's shared/utils.ts
|
|
10
|
+
*/
|
|
11
|
+
export declare function cleanupTemplate(outputDir: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a single example project from the template
|
|
14
|
+
*
|
|
15
|
+
* Steps:
|
|
16
|
+
* 1. Copy template directory and clean up
|
|
17
|
+
* 2. Download contract and test files from GitHub
|
|
18
|
+
* 3. Update package.json and deploy scripts
|
|
19
|
+
*/
|
|
20
|
+
export declare function createSingleExample(exampleName: string, outputDir: string, tempRepoPath: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a category project with multiple examples
|
|
23
|
+
*
|
|
24
|
+
* Steps:
|
|
25
|
+
* 1. Copy template directory and clean up
|
|
26
|
+
* 2. Download all contracts and tests for the category
|
|
27
|
+
* 3. Update package.json
|
|
28
|
+
*/
|
|
29
|
+
export declare function createCategoryProject(categoryName: string, outputDir: string, tempRepoPath: string): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAmDvD;AAoED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAMD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA4Df"}
|
package/dist/builders.js
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Builders
|
|
3
|
+
*
|
|
4
|
+
* Creates single example and category projects from templates.
|
|
5
|
+
* Similar to main project's create-example.ts and create-category.ts
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from "fs";
|
|
8
|
+
import * as path from "path";
|
|
9
|
+
import { EXAMPLES, CATEGORIES } from "./config.js";
|
|
10
|
+
import { copyDirectoryRecursive, getContractName, downloadFileFromGitHub, runCommand, generateDeployScript, } from "./utils.js";
|
|
11
|
+
import { TEST_TYPES_CONTENT } from "./utils.js";
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Template Cleanup
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Cleans up template-specific files after copying
|
|
17
|
+
* Similar to cleanupTemplate() in main project's shared/utils.ts
|
|
18
|
+
*/
|
|
19
|
+
export function cleanupTemplate(outputDir) {
|
|
20
|
+
// Remove .git directory
|
|
21
|
+
const gitDir = path.join(outputDir, ".git");
|
|
22
|
+
if (fs.existsSync(gitDir)) {
|
|
23
|
+
fs.rmSync(gitDir, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
// Remove FHECounter.sol (template example)
|
|
26
|
+
const templateContract = path.join(outputDir, "contracts", "FHECounter.sol");
|
|
27
|
+
if (fs.existsSync(templateContract)) {
|
|
28
|
+
fs.unlinkSync(templateContract);
|
|
29
|
+
}
|
|
30
|
+
// Remove .gitkeep files
|
|
31
|
+
const contractsGitkeep = path.join(outputDir, "contracts", ".gitkeep");
|
|
32
|
+
if (fs.existsSync(contractsGitkeep)) {
|
|
33
|
+
fs.unlinkSync(contractsGitkeep);
|
|
34
|
+
}
|
|
35
|
+
// Clear test directory (remove template tests)
|
|
36
|
+
const testDir = path.join(outputDir, "test");
|
|
37
|
+
if (fs.existsSync(testDir)) {
|
|
38
|
+
fs.readdirSync(testDir).forEach((file) => {
|
|
39
|
+
if (file.endsWith(".ts") || file === ".gitkeep") {
|
|
40
|
+
fs.unlinkSync(path.join(testDir, file));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// Remove FHECounter task import from hardhat.config.ts
|
|
45
|
+
const configPath = path.join(outputDir, "hardhat.config.ts");
|
|
46
|
+
if (fs.existsSync(configPath)) {
|
|
47
|
+
let configContent = fs.readFileSync(configPath, "utf-8");
|
|
48
|
+
configContent = configContent.replace(/import "\.\/tasks\/FHECounter";\n?/g, "");
|
|
49
|
+
fs.writeFileSync(configPath, configContent);
|
|
50
|
+
}
|
|
51
|
+
// Remove FHECounter task file
|
|
52
|
+
const oldTaskFile = path.join(outputDir, "tasks", "FHECounter.ts");
|
|
53
|
+
if (fs.existsSync(oldTaskFile)) {
|
|
54
|
+
fs.unlinkSync(oldTaskFile);
|
|
55
|
+
}
|
|
56
|
+
// Create test/types.ts for type safety
|
|
57
|
+
fs.writeFileSync(path.join(outputDir, "test", "types.ts"), TEST_TYPES_CONTENT);
|
|
58
|
+
}
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// Helper Functions
|
|
61
|
+
// =============================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Downloads contract dependencies to the output directory
|
|
64
|
+
*/
|
|
65
|
+
async function downloadDependencies(dependencies, outputDir) {
|
|
66
|
+
for (const depPath of dependencies) {
|
|
67
|
+
const relativePath = depPath.replace(/^contracts\//, "");
|
|
68
|
+
const depDestPath = path.join(outputDir, "contracts", relativePath);
|
|
69
|
+
const depDestDir = path.dirname(depDestPath);
|
|
70
|
+
if (!fs.existsSync(depDestDir)) {
|
|
71
|
+
fs.mkdirSync(depDestDir, { recursive: true });
|
|
72
|
+
}
|
|
73
|
+
await downloadFileFromGitHub(depPath, depDestPath);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Updates package.json with project name, description, and npm dependencies
|
|
78
|
+
*/
|
|
79
|
+
function updatePackageJson(outputDir, projectName, description, npmDependencies) {
|
|
80
|
+
const packageJsonPath = path.join(outputDir, "package.json");
|
|
81
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
82
|
+
packageJson.name = projectName;
|
|
83
|
+
if (description) {
|
|
84
|
+
packageJson.description = description;
|
|
85
|
+
}
|
|
86
|
+
if (npmDependencies && Object.keys(npmDependencies).length > 0) {
|
|
87
|
+
if (!packageJson.dependencies) {
|
|
88
|
+
packageJson.dependencies = {};
|
|
89
|
+
}
|
|
90
|
+
Object.assign(packageJson.dependencies, npmDependencies);
|
|
91
|
+
}
|
|
92
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Initializes git repository (optional, fails silently)
|
|
96
|
+
*/
|
|
97
|
+
async function initGitRepo(outputDir) {
|
|
98
|
+
try {
|
|
99
|
+
await runCommand("git", ["init"], outputDir);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
// Git init is optional
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// =============================================================================
|
|
106
|
+
// Single Example Builder
|
|
107
|
+
// =============================================================================
|
|
108
|
+
/**
|
|
109
|
+
* Creates a single example project from the template
|
|
110
|
+
*
|
|
111
|
+
* Steps:
|
|
112
|
+
* 1. Copy template directory and clean up
|
|
113
|
+
* 2. Download contract and test files from GitHub
|
|
114
|
+
* 3. Update package.json and deploy scripts
|
|
115
|
+
*/
|
|
116
|
+
export async function createSingleExample(exampleName, outputDir, tempRepoPath) {
|
|
117
|
+
const example = EXAMPLES[exampleName];
|
|
118
|
+
if (!example) {
|
|
119
|
+
throw new Error(`Unknown example: ${exampleName}`);
|
|
120
|
+
}
|
|
121
|
+
const templateDir = path.join(tempRepoPath, "fhevm-hardhat-template");
|
|
122
|
+
const contractName = getContractName(example.contract);
|
|
123
|
+
if (!contractName) {
|
|
124
|
+
throw new Error("Could not extract contract name");
|
|
125
|
+
}
|
|
126
|
+
// Step 1: Copy template and clean up
|
|
127
|
+
copyDirectoryRecursive(templateDir, outputDir);
|
|
128
|
+
cleanupTemplate(outputDir);
|
|
129
|
+
// Step 2: Download example contract
|
|
130
|
+
await downloadFileFromGitHub(example.contract, path.join(outputDir, "contracts", `${contractName}.sol`));
|
|
131
|
+
// Download contract dependencies if specified
|
|
132
|
+
if (example.dependencies) {
|
|
133
|
+
await downloadDependencies(example.dependencies, outputDir);
|
|
134
|
+
}
|
|
135
|
+
// Step 3: Download test file
|
|
136
|
+
await downloadFileFromGitHub(example.test, path.join(outputDir, "test", path.basename(example.test)));
|
|
137
|
+
// Step 4: Update deploy script and package.json
|
|
138
|
+
fs.writeFileSync(path.join(outputDir, "deploy", "deploy.ts"), generateDeployScript(contractName));
|
|
139
|
+
updatePackageJson(outputDir, `fhevm-example-${exampleName}`, example.description, example.npmDependencies);
|
|
140
|
+
// Initialize git repository
|
|
141
|
+
await initGitRepo(outputDir);
|
|
142
|
+
}
|
|
143
|
+
// =============================================================================
|
|
144
|
+
// Category Project Builder
|
|
145
|
+
// =============================================================================
|
|
146
|
+
/**
|
|
147
|
+
* Creates a category project with multiple examples
|
|
148
|
+
*
|
|
149
|
+
* Steps:
|
|
150
|
+
* 1. Copy template directory and clean up
|
|
151
|
+
* 2. Download all contracts and tests for the category
|
|
152
|
+
* 3. Update package.json
|
|
153
|
+
*/
|
|
154
|
+
export async function createCategoryProject(categoryName, outputDir, tempRepoPath) {
|
|
155
|
+
const category = CATEGORIES[categoryName];
|
|
156
|
+
if (!category) {
|
|
157
|
+
throw new Error(`Unknown category: ${categoryName}`);
|
|
158
|
+
}
|
|
159
|
+
const templateDir = path.join(tempRepoPath, "fhevm-hardhat-template");
|
|
160
|
+
// Step 1: Copy template and clean up
|
|
161
|
+
copyDirectoryRecursive(templateDir, outputDir);
|
|
162
|
+
cleanupTemplate(outputDir);
|
|
163
|
+
// Step 2: Download all contracts and tests
|
|
164
|
+
for (const item of category.contracts) {
|
|
165
|
+
const contractName = getContractName(item.sol);
|
|
166
|
+
if (contractName) {
|
|
167
|
+
await downloadFileFromGitHub(item.sol, path.join(outputDir, "contracts", `${contractName}.sol`));
|
|
168
|
+
}
|
|
169
|
+
if (item.test) {
|
|
170
|
+
await downloadFileFromGitHub(item.test, path.join(outputDir, "test", path.basename(item.test)));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Collect dependencies from all examples in this category
|
|
174
|
+
const allDependencies = new Set();
|
|
175
|
+
const allNpmDependencies = {};
|
|
176
|
+
for (const [exampleName, exampleConfig] of Object.entries(EXAMPLES)) {
|
|
177
|
+
if (exampleConfig.category === category.name.replace(" Examples", "")) {
|
|
178
|
+
if (exampleConfig.dependencies) {
|
|
179
|
+
exampleConfig.dependencies.forEach((dep) => allDependencies.add(dep));
|
|
180
|
+
}
|
|
181
|
+
if (exampleConfig.npmDependencies) {
|
|
182
|
+
Object.assign(allNpmDependencies, exampleConfig.npmDependencies);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Download all collected dependencies
|
|
187
|
+
if (allDependencies.size > 0) {
|
|
188
|
+
await downloadDependencies(Array.from(allDependencies), outputDir);
|
|
189
|
+
}
|
|
190
|
+
// Step 3: Update package.json
|
|
191
|
+
updatePackageJson(outputDir, `fhevm-examples-${categoryName}`, undefined, allNpmDependencies);
|
|
192
|
+
// Initialize git repository
|
|
193
|
+
await initGitRepo(outputDir);
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Execution & Install/Test
|
|
3
|
+
*
|
|
4
|
+
* Runs npm install, compile, and test commands.
|
|
5
|
+
* Similar to main project's shared/commands.ts
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Runs npm install, compile, and test in the project directory
|
|
9
|
+
*/
|
|
10
|
+
export declare function runInstallAndTest(projectPath: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Shows quick start commands for the created project
|
|
13
|
+
*/
|
|
14
|
+
export declare function showQuickStart(relativePath: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Asks user if they want to install and test, then runs or shows quick start
|
|
17
|
+
*/
|
|
18
|
+
export declare function askInstallAndTest(resolvedOutput: string, relativePath: string): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1E;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/commands.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Execution & Install/Test
|
|
3
|
+
*
|
|
4
|
+
* Runs npm install, compile, and test commands.
|
|
5
|
+
* Similar to main project's shared/commands.ts
|
|
6
|
+
*/
|
|
7
|
+
import * as p from "@clack/prompts";
|
|
8
|
+
import pc from "picocolors";
|
|
9
|
+
import { runCommand, extractTestResults } from "./utils.js";
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Install & Test
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Runs npm install, compile, and test in the project directory
|
|
15
|
+
*/
|
|
16
|
+
export async function runInstallAndTest(projectPath) {
|
|
17
|
+
const steps = [
|
|
18
|
+
{
|
|
19
|
+
name: "Installing dependencies",
|
|
20
|
+
cmd: "npm",
|
|
21
|
+
args: ["install"],
|
|
22
|
+
showOutput: false,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "Compiling contracts",
|
|
26
|
+
cmd: "npm",
|
|
27
|
+
args: ["run", "compile"],
|
|
28
|
+
showOutput: false,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "Running tests",
|
|
32
|
+
cmd: "npm",
|
|
33
|
+
args: ["run", "test"],
|
|
34
|
+
showOutput: true,
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
for (const step of steps) {
|
|
38
|
+
const s = p.spinner();
|
|
39
|
+
s.start(step.name + "...");
|
|
40
|
+
try {
|
|
41
|
+
const output = await runCommand(step.cmd, step.args, projectPath);
|
|
42
|
+
if (step.showOutput) {
|
|
43
|
+
const testResults = extractTestResults(output);
|
|
44
|
+
s.stop(testResults
|
|
45
|
+
? pc.green(`✓ ${step.name} - ${testResults}`)
|
|
46
|
+
: pc.green(`✓ ${step.name} completed`));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
s.stop(pc.green(`✓ ${step.name} completed`));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
s.stop(pc.red(`✗ ${step.name} failed`));
|
|
54
|
+
if (error instanceof Error) {
|
|
55
|
+
p.log.error(error.message);
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`${step.name} failed`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
p.log.success(pc.green("All steps completed successfully!"));
|
|
61
|
+
}
|
|
62
|
+
// =============================================================================
|
|
63
|
+
// Quick Start Display
|
|
64
|
+
// =============================================================================
|
|
65
|
+
/**
|
|
66
|
+
* Shows quick start commands for the created project
|
|
67
|
+
*/
|
|
68
|
+
export function showQuickStart(relativePath) {
|
|
69
|
+
p.note(`${pc.dim("$")} cd ${relativePath}\n${pc.dim("$")} npm install\n${pc.dim("$")} npm run compile\n${pc.dim("$")} npm run test`, "🚀 Quick Start");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Asks user if they want to install and test, then runs or shows quick start
|
|
73
|
+
*/
|
|
74
|
+
export async function askInstallAndTest(resolvedOutput, relativePath) {
|
|
75
|
+
const shouldInstall = await p.confirm({
|
|
76
|
+
message: "Install dependencies and run tests?",
|
|
77
|
+
initialValue: false,
|
|
78
|
+
});
|
|
79
|
+
if (p.isCancel(shouldInstall)) {
|
|
80
|
+
showQuickStart(relativePath);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (shouldInstall) {
|
|
84
|
+
p.log.message("");
|
|
85
|
+
await runInstallAndTest(resolvedOutput);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
showQuickStart(relativePath);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for the CLI
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Simple folder icon for all categories
|
|
6
|
+
*/
|
|
7
|
+
export declare const CATEGORY_ICON = "\uD83D\uDCC1";
|
|
8
|
+
/**
|
|
9
|
+
* Display order for example categories in the interactive prompt
|
|
10
|
+
*/
|
|
11
|
+
export declare const CATEGORY_ORDER: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Content for test/types.ts file
|
|
14
|
+
*/
|
|
15
|
+
export declare const TEST_TYPES_CONTENT = "import type { HardhatEthersSigner } from \"@nomicfoundation/hardhat-ethers/signers\";\n\n/**\n * Common signers interface used across test files\n */\nexport interface Signers {\n owner: HardhatEthersSigner;\n alice: HardhatEthersSigner;\n}\n";
|
|
16
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAO,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,cAAc,UAS1B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,kBAAkB,yPAS9B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for the CLI
|
|
3
|
+
*/
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// Category Display
|
|
6
|
+
// =============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Simple folder icon for all categories
|
|
9
|
+
*/
|
|
10
|
+
export const CATEGORY_ICON = "📁";
|
|
11
|
+
/**
|
|
12
|
+
* Display order for example categories in the interactive prompt
|
|
13
|
+
*/
|
|
14
|
+
export const CATEGORY_ORDER = [
|
|
15
|
+
"Basic",
|
|
16
|
+
"Basic - Encryption",
|
|
17
|
+
"Basic - Decryption",
|
|
18
|
+
"Basic - FHE Operations",
|
|
19
|
+
"Concepts",
|
|
20
|
+
"Gaming",
|
|
21
|
+
"Openzeppelin",
|
|
22
|
+
"Advanced",
|
|
23
|
+
];
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Template Content
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Content for test/types.ts file
|
|
29
|
+
*/
|
|
30
|
+
export const TEST_TYPES_CONTENT = `import type { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Common signers interface used across test files
|
|
34
|
+
*/
|
|
35
|
+
export interface Signers {
|
|
36
|
+
owner: HardhatEthersSigner;
|
|
37
|
+
alice: HardhatEthersSigner;
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO;IACP,oBAAoB;IACpB,oBAAoB;IACpB,wBAAwB;IACxB,UAAU;IACV,QAAQ;IACR,cAAc;IACd,UAAU;CACX,CAAC;AAEF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;CASjC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,17 +6,15 @@
|
|
|
6
6
|
* npx create-fhevm-example # Interactive mode
|
|
7
7
|
* npx create-fhevm-example --example <name> # Create single example
|
|
8
8
|
* npx create-fhevm-example --category <name> # Create category project
|
|
9
|
+
* npx create-fhevm-example --add # Add to existing project
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* 6. INTERACTIVE MODE - Main interactive flow
|
|
18
|
-
* 7. DIRECT MODE - CLI argument handling
|
|
19
|
-
* 8. MAIN ENTRY POINT
|
|
11
|
+
* This is the main entry point - similar to scripts/create.ts in main project.
|
|
12
|
+
* Actual logic is split into:
|
|
13
|
+
* - builders.ts (createSingleExample, createCategoryProject)
|
|
14
|
+
* - ui.ts (prompts + commands)
|
|
15
|
+
* - utils.ts (file operations + constants + utilities)
|
|
16
|
+
* - config.ts (examples & categories)
|
|
17
|
+
* - add-mode.ts (add to existing project)
|
|
20
18
|
*/
|
|
21
19
|
export {};
|
|
22
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG"}
|