create-fhevm-example 1.2.3 → 1.3.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 +72 -146
- package/dist/scripts/add-mode.d.ts +11 -0
- package/dist/scripts/add-mode.d.ts.map +1 -0
- package/dist/{add-mode.js → scripts/add-mode.js} +84 -58
- package/dist/scripts/builders.d.ts +19 -0
- package/dist/scripts/builders.d.ts.map +1 -0
- package/dist/scripts/builders.js +211 -0
- package/dist/{config.d.ts → scripts/config.d.ts} +24 -3
- package/dist/scripts/config.d.ts.map +1 -0
- package/dist/scripts/config.js +465 -0
- package/dist/scripts/doctor.d.ts +11 -0
- package/dist/scripts/doctor.d.ts.map +1 -0
- package/dist/scripts/doctor.js +165 -0
- package/dist/scripts/generate-config.d.ts +9 -0
- package/dist/scripts/generate-config.d.ts.map +1 -0
- package/dist/scripts/generate-config.js +323 -0
- package/dist/scripts/generate-docs.d.ts +10 -0
- package/dist/scripts/generate-docs.d.ts.map +1 -0
- package/dist/scripts/generate-docs.js +190 -0
- package/dist/scripts/index.d.ts +12 -0
- package/dist/scripts/index.d.ts.map +1 -0
- package/dist/scripts/index.js +384 -0
- package/dist/scripts/maintenance.d.ts +13 -0
- package/dist/scripts/maintenance.d.ts.map +1 -0
- package/dist/scripts/maintenance.js +271 -0
- package/dist/{prompts.d.ts → scripts/ui.d.ts} +8 -7
- package/dist/scripts/ui.d.ts.map +1 -0
- package/dist/scripts/ui.js +170 -0
- package/dist/scripts/utils.d.ts +86 -0
- package/dist/scripts/utils.d.ts.map +1 -0
- package/dist/scripts/utils.js +525 -0
- package/package.json +25 -13
- package/dist/add-mode.d.ts +0 -21
- package/dist/add-mode.d.ts.map +0 -1
- package/dist/add-mode.js.map +0 -1
- package/dist/builders.d.ts +0 -30
- package/dist/builders.d.ts.map +0 -1
- package/dist/builders.js +0 -195
- package/dist/builders.js.map +0 -1
- package/dist/commands.d.ts +0 -19
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js +0 -91
- package/dist/commands.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -398
- package/dist/config.js.map +0 -1
- package/dist/constants.d.ts +0 -16
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -40
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -337
- package/dist/index.js.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js +0 -79
- package/dist/prompts.js.map +0 -1
- package/dist/ui.d.ts +0 -35
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -155
- package/dist/ui.js.map +0 -1
- package/dist/utils.d.ts +0 -99
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -285
- package/dist/utils.js.map +0 -1
package/dist/index.js
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* create-fhevm-example - CLI for creating FHEVM example projects
|
|
4
|
-
*
|
|
5
|
-
* Usage:
|
|
6
|
-
* npx create-fhevm-example # Interactive mode
|
|
7
|
-
* npx create-fhevm-example --example <name> # Create single example
|
|
8
|
-
* npx create-fhevm-example --category <name> # Create category project
|
|
9
|
-
* npx create-fhevm-example --add # Add to existing project
|
|
10
|
-
*
|
|
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)
|
|
18
|
-
*/
|
|
19
|
-
import * as p from "@clack/prompts";
|
|
20
|
-
import pc from "picocolors";
|
|
21
|
-
import * as fs from "fs";
|
|
22
|
-
import * as path from "path";
|
|
23
|
-
import * as os from "os";
|
|
24
|
-
// Config
|
|
25
|
-
import { EXAMPLES, CATEGORIES } from "./config.js";
|
|
26
|
-
// Utilities
|
|
27
|
-
import { cloneTemplate, initSubmodule, log, ERROR_MESSAGES, validateExample, validateCategory, validateDirectoryNotExists, } from "./utils.js";
|
|
28
|
-
// Builders
|
|
29
|
-
import { createSingleExample, createCategoryProject } from "./builders.js";
|
|
30
|
-
// UI (Prompts + Commands)
|
|
31
|
-
import { promptSelectCategory, promptSelectExampleFromCategory, promptSelectCategoryProject, askInstallAndTest, runInstallAndTest, } from "./ui.js";
|
|
32
|
-
// Add Mode
|
|
33
|
-
import { runAddMode } from "./add-mode.js";
|
|
34
|
-
// =============================================================================
|
|
35
|
-
// INTERACTIVE MODE
|
|
36
|
-
// =============================================================================
|
|
37
|
-
/**
|
|
38
|
-
* Main interactive mode flow
|
|
39
|
-
* Guides user through project creation with prompts
|
|
40
|
-
*/
|
|
41
|
-
async function runInteractiveMode() {
|
|
42
|
-
console.clear();
|
|
43
|
-
p.intro(pc.bgCyan(pc.black(" ⚡ FHEVM Example Factory ")));
|
|
44
|
-
// Step 1: Choose mode (single example or category)
|
|
45
|
-
const mode = await p.select({
|
|
46
|
-
message: "What would you like to create?",
|
|
47
|
-
options: [
|
|
48
|
-
{
|
|
49
|
-
value: "single",
|
|
50
|
-
label: "Single example",
|
|
51
|
-
hint: "One example contract with tests",
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
value: "category",
|
|
55
|
-
label: "Category project",
|
|
56
|
-
hint: "Multiple examples by category",
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
});
|
|
60
|
-
if (p.isCancel(mode)) {
|
|
61
|
-
p.cancel("Operation cancelled.");
|
|
62
|
-
process.exit(0);
|
|
63
|
-
}
|
|
64
|
-
let exampleName = "";
|
|
65
|
-
let categoryName = "";
|
|
66
|
-
let projectName = "";
|
|
67
|
-
// Step 2: Select based on mode
|
|
68
|
-
if (mode === "single") {
|
|
69
|
-
const selectedCategory = await promptSelectCategory();
|
|
70
|
-
if (p.isCancel(selectedCategory)) {
|
|
71
|
-
p.cancel("Operation cancelled.");
|
|
72
|
-
process.exit(0);
|
|
73
|
-
}
|
|
74
|
-
exampleName = await promptSelectExampleFromCategory(selectedCategory);
|
|
75
|
-
if (p.isCancel(exampleName)) {
|
|
76
|
-
p.cancel("Operation cancelled.");
|
|
77
|
-
process.exit(0);
|
|
78
|
-
}
|
|
79
|
-
projectName = await p.text({
|
|
80
|
-
message: "Project name:",
|
|
81
|
-
placeholder: `my-${exampleName}-project`,
|
|
82
|
-
defaultValue: `my-${exampleName}-project`,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
categoryName = await promptSelectCategoryProject();
|
|
87
|
-
if (p.isCancel(categoryName)) {
|
|
88
|
-
p.cancel("Operation cancelled.");
|
|
89
|
-
process.exit(0);
|
|
90
|
-
}
|
|
91
|
-
projectName = await p.text({
|
|
92
|
-
message: "Project name:",
|
|
93
|
-
placeholder: `my-${categoryName}-project`,
|
|
94
|
-
defaultValue: `my-${categoryName}-project`,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (p.isCancel(projectName)) {
|
|
98
|
-
p.cancel("Operation cancelled.");
|
|
99
|
-
process.exit(0);
|
|
100
|
-
}
|
|
101
|
-
// Step 3: Output directory
|
|
102
|
-
const outputDir = await p.text({
|
|
103
|
-
message: "Output directory:",
|
|
104
|
-
placeholder: `./${projectName}`,
|
|
105
|
-
defaultValue: `./${projectName}`,
|
|
106
|
-
});
|
|
107
|
-
if (p.isCancel(outputDir)) {
|
|
108
|
-
p.cancel("Operation cancelled.");
|
|
109
|
-
process.exit(0);
|
|
110
|
-
}
|
|
111
|
-
const resolvedOutput = path.resolve(process.cwd(), outputDir);
|
|
112
|
-
if (fs.existsSync(resolvedOutput)) {
|
|
113
|
-
p.log.error(`Directory already exists: ${resolvedOutput}`);
|
|
114
|
-
process.exit(1);
|
|
115
|
-
}
|
|
116
|
-
// Step 4: Create project
|
|
117
|
-
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "fhevm-"));
|
|
118
|
-
const s = p.spinner();
|
|
119
|
-
try {
|
|
120
|
-
s.start("Downloading template...");
|
|
121
|
-
const tempRepoPath = await cloneTemplate(tempDir);
|
|
122
|
-
s.message("Initializing submodules...");
|
|
123
|
-
await initSubmodule(tempRepoPath);
|
|
124
|
-
s.message("Scaffolding your confidential project...");
|
|
125
|
-
if (mode === "single") {
|
|
126
|
-
await createSingleExample(exampleName, resolvedOutput, tempRepoPath);
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
await createCategoryProject(categoryName, resolvedOutput, tempRepoPath);
|
|
130
|
-
}
|
|
131
|
-
s.stop("🎉 Project scaffolded successfully!");
|
|
132
|
-
const relativePath = path.relative(process.cwd(), resolvedOutput);
|
|
133
|
-
p.log.success(`📁 Created: ${pc.cyan(relativePath)}`);
|
|
134
|
-
if (mode === "single") {
|
|
135
|
-
const exampleConfig = EXAMPLES[exampleName];
|
|
136
|
-
p.log.info(`📝 Example: ${pc.yellow(exampleConfig?.title || exampleName)}`);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
const categoryConfig = CATEGORIES[categoryName];
|
|
140
|
-
p.log.info(`📦 Category: ${pc.yellow(categoryConfig?.name || categoryName)}`);
|
|
141
|
-
p.log.info(`📄 Contracts: ${pc.green(String(categoryConfig?.contracts.length || 0))}`);
|
|
142
|
-
}
|
|
143
|
-
await askInstallAndTest(resolvedOutput, relativePath);
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
s.stop("Failed to create project");
|
|
147
|
-
p.log.error(error instanceof Error ? error.message : String(error));
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
finally {
|
|
151
|
-
if (fs.existsSync(tempDir)) {
|
|
152
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
p.outro(pc.green("✅ Setup complete. Happy encrypting!"));
|
|
156
|
-
}
|
|
157
|
-
// =============================================================================
|
|
158
|
-
// DIRECT MODE (CLI Arguments)
|
|
159
|
-
// =============================================================================
|
|
160
|
-
/**
|
|
161
|
-
* Shows help information for CLI usage
|
|
162
|
-
*/
|
|
163
|
-
function showHelp() {
|
|
164
|
-
console.log(`
|
|
165
|
-
${pc.bgCyan(pc.black(pc.bold(" 🔐 create-fhevm-example ")))}
|
|
166
|
-
${pc.dim("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")}
|
|
167
|
-
|
|
168
|
-
${pc.cyan(pc.bold("📋 USAGE"))}
|
|
169
|
-
|
|
170
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.dim("→")} Interactive mode ${pc.yellow("(recommended)")}
|
|
171
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--example")} ${pc.yellow("<name>")} ${pc.dim("→")} Create single example
|
|
172
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--category")} ${pc.yellow("<name>")} ${pc.dim("→")} Create category project
|
|
173
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--add")} ${pc.dim("→")} Add to existing project
|
|
174
|
-
|
|
175
|
-
${pc.cyan(pc.bold("⚙️ OPTIONS"))}
|
|
176
|
-
|
|
177
|
-
${pc.green("--example")} ${pc.dim("<name>")} Create a single example project
|
|
178
|
-
${pc.green("--category")} ${pc.dim("<name>")} Create a category project
|
|
179
|
-
${pc.green("--add")} Add FHEVM to existing Hardhat project
|
|
180
|
-
${pc.green("--target")} ${pc.dim("<dir>")} Target directory for --add mode
|
|
181
|
-
${pc.green("--output")} ${pc.dim("<dir>")} Output directory
|
|
182
|
-
${pc.green("--install")} Auto-install dependencies
|
|
183
|
-
${pc.green("--test")} Auto-run tests (requires --install)
|
|
184
|
-
${pc.green("--help")}${pc.dim(", -h")} Show this help message
|
|
185
|
-
|
|
186
|
-
${pc.cyan(pc.bold("⚡ EXAMPLES"))}
|
|
187
|
-
|
|
188
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--example")} ${pc.yellow("fhe-counter")}
|
|
189
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--category")} ${pc.yellow("basic")} ${pc.green("--output")} ${pc.blue("./my-project")}
|
|
190
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--add")}
|
|
191
|
-
${pc.dim("$")} ${pc.white("npx create-fhevm-example")} ${pc.green("--example")} ${pc.yellow("fhe-counter")} ${pc.green("--install")} ${pc.green("--test")}
|
|
192
|
-
|
|
193
|
-
${pc.cyan(pc.bold("📦 AVAILABLE EXAMPLES"))}
|
|
194
|
-
|
|
195
|
-
${pc.dim(Object.keys(EXAMPLES).slice(0, 10).join(", "))}
|
|
196
|
-
${pc.dim("...")} and ${pc.yellow(String(Object.keys(EXAMPLES).length - 10))} more
|
|
197
|
-
|
|
198
|
-
${pc.cyan(pc.bold("📁 AVAILABLE CATEGORIES"))}
|
|
199
|
-
|
|
200
|
-
${Object.keys(CATEGORIES)
|
|
201
|
-
.map((c) => pc.yellow(c))
|
|
202
|
-
.join(", ")}
|
|
203
|
-
|
|
204
|
-
${pc.dim("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")}
|
|
205
|
-
${pc.dim("📚 Documentation:")} ${pc.blue("https://github.com/NecipAkgz/fhevm-example-factory")}
|
|
206
|
-
`);
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Parses CLI arguments into a key-value object
|
|
210
|
-
*/
|
|
211
|
-
function parseArgs(args) {
|
|
212
|
-
const parsed = {};
|
|
213
|
-
for (let i = 0; i < args.length; i++) {
|
|
214
|
-
const arg = args[i];
|
|
215
|
-
if (arg.startsWith("--")) {
|
|
216
|
-
const key = arg.slice(2);
|
|
217
|
-
const nextArg = args[i + 1];
|
|
218
|
-
if (nextArg && !nextArg.startsWith("--")) {
|
|
219
|
-
parsed[key] = nextArg;
|
|
220
|
-
i++;
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
parsed[key] = true;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else if (arg === "-h") {
|
|
227
|
-
parsed["help"] = true;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
return parsed;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Handles direct mode (CLI with arguments, non-interactive)
|
|
234
|
-
*/
|
|
235
|
-
async function runDirectMode(args) {
|
|
236
|
-
const parsedArgs = parseArgs(args);
|
|
237
|
-
if (parsedArgs["help"]) {
|
|
238
|
-
showHelp();
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
// Handle --add mode
|
|
242
|
-
if (parsedArgs["add"]) {
|
|
243
|
-
const targetDir = parsedArgs["target"];
|
|
244
|
-
await runAddMode(targetDir);
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
const exampleName = parsedArgs["example"];
|
|
248
|
-
const categoryName = parsedArgs["category"];
|
|
249
|
-
const outputDir = parsedArgs["output"];
|
|
250
|
-
const shouldInstall = parsedArgs["install"] === true;
|
|
251
|
-
// Validation
|
|
252
|
-
if (!exampleName && !categoryName) {
|
|
253
|
-
log.error(ERROR_MESSAGES.EXAMPLE_REQUIRED);
|
|
254
|
-
showHelp();
|
|
255
|
-
process.exit(1);
|
|
256
|
-
}
|
|
257
|
-
if (exampleName && categoryName) {
|
|
258
|
-
log.error(ERROR_MESSAGES.BOTH_SPECIFIED);
|
|
259
|
-
process.exit(1);
|
|
260
|
-
}
|
|
261
|
-
const mode = exampleName ? "example" : "category";
|
|
262
|
-
const name = (exampleName || categoryName);
|
|
263
|
-
try {
|
|
264
|
-
if (mode === "example") {
|
|
265
|
-
validateExample(name);
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
validateCategory(name);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
catch (error) {
|
|
272
|
-
log.error(error instanceof Error ? error.message : String(error));
|
|
273
|
-
log.message("Available: " +
|
|
274
|
-
Object.keys(mode === "example" ? EXAMPLES : CATEGORIES).join(", "));
|
|
275
|
-
process.exit(1);
|
|
276
|
-
}
|
|
277
|
-
const defaultOutput = mode === "example" ? `./my-${name}-project` : `./my-${name}-examples`;
|
|
278
|
-
const output = outputDir || defaultOutput;
|
|
279
|
-
const resolved = path.resolve(process.cwd(), output);
|
|
280
|
-
try {
|
|
281
|
-
validateDirectoryNotExists(resolved);
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
log.error(error instanceof Error ? error.message : String(error));
|
|
285
|
-
process.exit(1);
|
|
286
|
-
}
|
|
287
|
-
// Create project
|
|
288
|
-
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "fhevm-"));
|
|
289
|
-
try {
|
|
290
|
-
log.info(`Creating ${mode}: ${name}`);
|
|
291
|
-
log.dim("Downloading template...");
|
|
292
|
-
const tempRepoPath = await cloneTemplate(tempDir);
|
|
293
|
-
log.dim("Initializing submodules...");
|
|
294
|
-
await initSubmodule(tempRepoPath);
|
|
295
|
-
log.dim("Creating project...");
|
|
296
|
-
if (mode === "example") {
|
|
297
|
-
await createSingleExample(name, resolved, tempRepoPath);
|
|
298
|
-
}
|
|
299
|
-
else {
|
|
300
|
-
await createCategoryProject(name, resolved, tempRepoPath);
|
|
301
|
-
}
|
|
302
|
-
log.success(`✓ Created: ${output}`);
|
|
303
|
-
if (shouldInstall) {
|
|
304
|
-
log.dim("\nInstalling dependencies...");
|
|
305
|
-
await runInstallAndTest(resolved);
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
log.dim(`\nNext: cd ${output} && npm install && npm run compile && npm run test`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
catch (error) {
|
|
312
|
-
log.error(error instanceof Error ? error.message : String(error));
|
|
313
|
-
process.exit(1);
|
|
314
|
-
}
|
|
315
|
-
finally {
|
|
316
|
-
if (fs.existsSync(tempDir)) {
|
|
317
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
// =============================================================================
|
|
322
|
-
// MAIN ENTRY POINT
|
|
323
|
-
// =============================================================================
|
|
324
|
-
async function main() {
|
|
325
|
-
const args = process.argv.slice(2);
|
|
326
|
-
if (args.length > 0) {
|
|
327
|
-
await runDirectMode(args);
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
await runInteractiveMode();
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
main().catch((error) => {
|
|
334
|
-
log.error("Fatal error: " + (error instanceof Error ? error.message : String(error)));
|
|
335
|
-
process.exit(1);
|
|
336
|
-
});
|
|
337
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjE;AAMD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAoBrE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAe1B;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAS5E"}
|
package/dist/prompts.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive Prompts
|
|
3
|
-
*
|
|
4
|
-
* Category and example selection prompts for interactive mode.
|
|
5
|
-
* Similar structure to main project's interactive flows.
|
|
6
|
-
*/
|
|
7
|
-
import * as p from "@clack/prompts";
|
|
8
|
-
import { EXAMPLES, CATEGORIES } from "./config.js";
|
|
9
|
-
import { CATEGORY_ICON, CATEGORY_ORDER } from "./utils.js";
|
|
10
|
-
// =============================================================================
|
|
11
|
-
// Category Helpers
|
|
12
|
-
// =============================================================================
|
|
13
|
-
/**
|
|
14
|
-
* Counts how many examples exist in each category
|
|
15
|
-
*/
|
|
16
|
-
export function countExamplesPerCategory() {
|
|
17
|
-
const counts = {};
|
|
18
|
-
for (const config of Object.values(EXAMPLES)) {
|
|
19
|
-
counts[config.category] = (counts[config.category] || 0) + 1;
|
|
20
|
-
}
|
|
21
|
-
return counts;
|
|
22
|
-
}
|
|
23
|
-
// =============================================================================
|
|
24
|
-
// Selection Prompts
|
|
25
|
-
// =============================================================================
|
|
26
|
-
/**
|
|
27
|
-
* Prompts user to select a category
|
|
28
|
-
* Returns the selected category name
|
|
29
|
-
*/
|
|
30
|
-
export async function promptSelectCategory() {
|
|
31
|
-
const categoryCounts = countExamplesPerCategory();
|
|
32
|
-
// Get all categories, prioritizing CATEGORY_ORDER, then alphabetically sorted others
|
|
33
|
-
const allCategories = Object.keys(categoryCounts);
|
|
34
|
-
const orderedCategories = [
|
|
35
|
-
...CATEGORY_ORDER.filter((cat) => allCategories.includes(cat)),
|
|
36
|
-
...allCategories.filter((cat) => !CATEGORY_ORDER.includes(cat)).sort(),
|
|
37
|
-
];
|
|
38
|
-
return p.select({
|
|
39
|
-
message: "Select a category:",
|
|
40
|
-
options: orderedCategories.map((category) => ({
|
|
41
|
-
value: category,
|
|
42
|
-
label: `${CATEGORY_ICON} ${category}`,
|
|
43
|
-
hint: `${categoryCounts[category] || 0} example${categoryCounts[category] !== 1 ? "s" : ""}`,
|
|
44
|
-
})),
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Prompts user to select an example from a specific category
|
|
49
|
-
* Returns the selected example name
|
|
50
|
-
*/
|
|
51
|
-
export async function promptSelectExampleFromCategory(category) {
|
|
52
|
-
const categoryExamples = Object.entries(EXAMPLES)
|
|
53
|
-
.filter(([, config]) => config.category === category)
|
|
54
|
-
.map(([key, config]) => ({
|
|
55
|
-
value: key,
|
|
56
|
-
label: key,
|
|
57
|
-
hint: config.description.slice(0, 80) +
|
|
58
|
-
(config.description.length > 80 ? "..." : ""),
|
|
59
|
-
}));
|
|
60
|
-
return p.select({
|
|
61
|
-
message: `Select an example from ${category}:`,
|
|
62
|
-
options: categoryExamples,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Prompts user to select a category project
|
|
67
|
-
* Returns the selected category key (lowercase)
|
|
68
|
-
*/
|
|
69
|
-
export async function promptSelectCategoryProject() {
|
|
70
|
-
return p.select({
|
|
71
|
-
message: "Select a category:",
|
|
72
|
-
options: Object.entries(CATEGORIES).map(([key, config]) => ({
|
|
73
|
-
value: key,
|
|
74
|
-
label: `${CATEGORY_ICON} ${config.name}`,
|
|
75
|
-
hint: `${config.contracts.length} contracts`,
|
|
76
|
-
})),
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Interface - Prompts & Commands
|
|
3
|
-
*
|
|
4
|
-
* Interactive prompts and command execution for CLI.
|
|
5
|
-
* Combines functionality from prompts.ts and commands.ts
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Counts how many examples exist in each category
|
|
9
|
-
*/
|
|
10
|
-
export declare function countExamplesPerCategory(): Record<string, number>;
|
|
11
|
-
/**
|
|
12
|
-
* Prompts user to select a category
|
|
13
|
-
*/
|
|
14
|
-
export declare function promptSelectCategory(): Promise<string | symbol>;
|
|
15
|
-
/**
|
|
16
|
-
* Prompts user to select an example from a specific category
|
|
17
|
-
*/
|
|
18
|
-
export declare function promptSelectExampleFromCategory(category: string): Promise<string | symbol>;
|
|
19
|
-
/**
|
|
20
|
-
* Prompts user to select a category project
|
|
21
|
-
*/
|
|
22
|
-
export declare function promptSelectCategoryProject(): Promise<string | symbol>;
|
|
23
|
-
/**
|
|
24
|
-
* Runs npm install, compile, and test in the project directory
|
|
25
|
-
*/
|
|
26
|
-
export declare function runInstallAndTest(projectPath: string): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Shows quick start commands for the created project
|
|
29
|
-
*/
|
|
30
|
-
export declare function showQuickStart(relativePath: string): void;
|
|
31
|
-
/**
|
|
32
|
-
* Asks user if they want to install and test
|
|
33
|
-
*/
|
|
34
|
-
export declare function askInstallAndTest(resolvedOutput: string, relativePath: string): Promise<void>;
|
|
35
|
-
//# sourceMappingURL=ui.d.ts.map
|
package/dist/ui.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjE;AAMD;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAoBrE;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAe1B;AAED;;GAEG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAS5E;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1E;AAED;;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/ui.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Interface - Prompts & Commands
|
|
3
|
-
*
|
|
4
|
-
* Interactive prompts and command execution for CLI.
|
|
5
|
-
* Combines functionality from prompts.ts and commands.ts
|
|
6
|
-
*/
|
|
7
|
-
import * as p from "@clack/prompts";
|
|
8
|
-
import pc from "picocolors";
|
|
9
|
-
import { EXAMPLES, CATEGORIES } from "./config.js";
|
|
10
|
-
import { CATEGORY_ICON, CATEGORY_ORDER, runCommand, extractTestResults, } from "./utils.js";
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// Category Helpers
|
|
13
|
-
// =============================================================================
|
|
14
|
-
/**
|
|
15
|
-
* Counts how many examples exist in each category
|
|
16
|
-
*/
|
|
17
|
-
export function countExamplesPerCategory() {
|
|
18
|
-
const counts = {};
|
|
19
|
-
for (const config of Object.values(EXAMPLES)) {
|
|
20
|
-
counts[config.category] = (counts[config.category] || 0) + 1;
|
|
21
|
-
}
|
|
22
|
-
return counts;
|
|
23
|
-
}
|
|
24
|
-
// =============================================================================
|
|
25
|
-
// Selection Prompts
|
|
26
|
-
// =============================================================================
|
|
27
|
-
/**
|
|
28
|
-
* Prompts user to select a category
|
|
29
|
-
*/
|
|
30
|
-
export async function promptSelectCategory() {
|
|
31
|
-
const categoryCounts = countExamplesPerCategory();
|
|
32
|
-
// Get all categories, prioritizing CATEGORY_ORDER, then alphabetically sorted others
|
|
33
|
-
const allCategories = Object.keys(categoryCounts);
|
|
34
|
-
const orderedCategories = [
|
|
35
|
-
...CATEGORY_ORDER.filter((cat) => allCategories.includes(cat)),
|
|
36
|
-
...allCategories.filter((cat) => !CATEGORY_ORDER.includes(cat)).sort(),
|
|
37
|
-
];
|
|
38
|
-
return p.select({
|
|
39
|
-
message: "Select a category:",
|
|
40
|
-
options: orderedCategories.map((category) => ({
|
|
41
|
-
value: category,
|
|
42
|
-
label: `${CATEGORY_ICON} ${category}`,
|
|
43
|
-
hint: `${categoryCounts[category] || 0} example${categoryCounts[category] !== 1 ? "s" : ""}`,
|
|
44
|
-
})),
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Prompts user to select an example from a specific category
|
|
49
|
-
*/
|
|
50
|
-
export async function promptSelectExampleFromCategory(category) {
|
|
51
|
-
const categoryExamples = Object.entries(EXAMPLES)
|
|
52
|
-
.filter(([, config]) => config.category === category)
|
|
53
|
-
.map(([key, config]) => ({
|
|
54
|
-
value: key,
|
|
55
|
-
label: key,
|
|
56
|
-
hint: config.description.slice(0, 80) +
|
|
57
|
-
(config.description.length > 80 ? "..." : ""),
|
|
58
|
-
}));
|
|
59
|
-
return p.select({
|
|
60
|
-
message: `Select an example from ${category}:`,
|
|
61
|
-
options: categoryExamples,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Prompts user to select a category project
|
|
66
|
-
*/
|
|
67
|
-
export async function promptSelectCategoryProject() {
|
|
68
|
-
return p.select({
|
|
69
|
-
message: "Select a category:",
|
|
70
|
-
options: Object.entries(CATEGORIES).map(([key, config]) => ({
|
|
71
|
-
value: key,
|
|
72
|
-
label: `${CATEGORY_ICON} ${config.name}`,
|
|
73
|
-
hint: `${config.contracts.length} contracts`,
|
|
74
|
-
})),
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
// =============================================================================
|
|
78
|
-
// Install & Test Commands
|
|
79
|
-
// =============================================================================
|
|
80
|
-
/**
|
|
81
|
-
* Runs npm install, compile, and test in the project directory
|
|
82
|
-
*/
|
|
83
|
-
export async function runInstallAndTest(projectPath) {
|
|
84
|
-
const steps = [
|
|
85
|
-
{
|
|
86
|
-
name: "Installing dependencies",
|
|
87
|
-
cmd: "npm",
|
|
88
|
-
args: ["install"],
|
|
89
|
-
showOutput: false,
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "Compiling contracts",
|
|
93
|
-
cmd: "npm",
|
|
94
|
-
args: ["run", "compile"],
|
|
95
|
-
showOutput: false,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
name: "Running tests",
|
|
99
|
-
cmd: "npm",
|
|
100
|
-
args: ["run", "test"],
|
|
101
|
-
showOutput: true,
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
for (const step of steps) {
|
|
105
|
-
const s = p.spinner();
|
|
106
|
-
s.start(step.name + "...");
|
|
107
|
-
try {
|
|
108
|
-
const output = await runCommand(step.cmd, step.args, projectPath);
|
|
109
|
-
if (step.showOutput) {
|
|
110
|
-
const testResults = extractTestResults(output);
|
|
111
|
-
s.stop(testResults
|
|
112
|
-
? pc.green(`✓ ${step.name} - ${testResults}`)
|
|
113
|
-
: pc.green(`✓ ${step.name} completed`));
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
s.stop(pc.green(`✓ ${step.name} completed`));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
s.stop(pc.red(`✗ ${step.name} failed`));
|
|
121
|
-
if (error instanceof Error) {
|
|
122
|
-
p.log.error(error.message);
|
|
123
|
-
}
|
|
124
|
-
throw new Error(`${step.name} failed`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
p.log.success(pc.green("🔐 All encryption tests passed!"));
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Shows quick start commands for the created project
|
|
131
|
-
*/
|
|
132
|
-
export function showQuickStart(relativePath) {
|
|
133
|
-
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");
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Asks user if they want to install and test
|
|
137
|
-
*/
|
|
138
|
-
export async function askInstallAndTest(resolvedOutput, relativePath) {
|
|
139
|
-
const shouldInstall = await p.confirm({
|
|
140
|
-
message: "Install dependencies and run tests?",
|
|
141
|
-
initialValue: false,
|
|
142
|
-
});
|
|
143
|
-
if (p.isCancel(shouldInstall)) {
|
|
144
|
-
showQuickStart(relativePath);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
if (shouldInstall) {
|
|
148
|
-
p.log.message("");
|
|
149
|
-
await runInstallAndTest(resolvedOutput);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
showQuickStart(relativePath);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|