create-fhevm-playground-pro 1.0.21 → 1.0.23

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.
@@ -0,0 +1,7 @@
1
+ // This file is required by ts-node to inject hardhat globals into tests
2
+ import('hardhat').then((hre) => {
3
+ Object.assign(global, {
4
+ ethers: hre.ethers,
5
+ expect: require('chai').expect,
6
+ });
7
+ });
@@ -9,10 +9,11 @@ const config = {
9
9
  artifacts: './artifacts'
10
10
  },
11
11
  mocha: {
12
+ extensions: ['ts', 'js'],
13
+ spec: 'test/**/*.test.{ts,js}',
12
14
  require: ['ts-node/register'],
13
- extensions: ['js'],
14
- spec: 'test/**/*.test.js',
15
- timeout: 200000
15
+ timeout: 200000,
16
+ reporter: 'spec'
16
17
  }
17
18
  };
18
19
 
@@ -70,35 +70,22 @@ async function createExample(options) {
70
70
  console.log(chalk_1.default.cyan(`Overlaid contracts from ${exampleDirName}-premium`));
71
71
  }
72
72
  if (fs_extra_1.default.existsSync(testSrc)) {
73
- // Copy tests directory content
74
- const testFiles = fs_extra_1.default.readdirSync(testSrc);
75
- for (const file of testFiles) {
76
- const srcPath = path_1.default.join(testSrc, file);
77
- if (fs_extra_1.default.statSync(srcPath).isFile()) {
78
- const destPath = path_1.default.join(testDest, file);
79
- // Convert .ts to .js (rename extension)
80
- const destFileName = file.endsWith('.ts') ? file.replace('.ts', '.js') : file;
81
- const finalDestPath = path_1.default.join(testDest, destFileName);
82
- let content = fs_extra_1.default.readFileSync(srcPath, 'utf-8');
83
- // Fix import paths in test files
84
- content = content.replace(/import\s+{([^}]+)}\s+from\s+"\.\.\/\.\.\/\.\.\/\.\.\/scripts\/test-helpers"/, 'import { $1 } from "./test-helpers.js"');
85
- // Only convert to .js if it's a .ts file - remove type annotations carefully
86
- if (file.endsWith('.ts')) {
87
- // Remove ": TypeAnnotation" patterns but be very specific:
88
- // Match ": " followed by type patterns (capitalized names, generics, etc.)
89
- // Use negative lookbehind to avoid matching destructuring patterns like { name: value }
90
- // Actually, simpler approach: only match patterns clearly TypeScript
91
- // Pattern: ": " followed by word starting with capital or keywords
92
- content = content.replace(/:\s*(any|void|string|number|boolean|object|never|unknown|keyof|readonly)\b/g, '');
93
- // Also match capitalized type names
94
- content = content.replace(/:\s*([A-Z][A-Za-z0-9_$<>\[\]|&\s]*?)(?=[,}\)\n=;])/g, '');
95
- // Remove function return type annotations like ": Promise<void>"
96
- content = content.replace(/\)\s*:\s*([A-Z][A-Za-z0-9_$<>\[\]|&\s]*?)\s*{/g, ') {');
97
- }
98
- fs_extra_1.default.writeFileSync(finalDestPath, content);
99
- }
100
- }
73
+ fs_extra_1.default.copySync(testSrc, testDest, { overwrite: true });
101
74
  console.log(chalk_1.default.cyan(`Overlaid tests from ${exampleDirName}-premium`));
75
+ // Fix import paths in test files for standalone projects
76
+ const testFiles = fs_extra_1.default.readdirSync(testDest).filter(f => f.endsWith('.ts') || f.endsWith('.js'));
77
+ for (const testFile of testFiles) {
78
+ const testPath = path_1.default.join(testDest, testFile);
79
+ let testContent = fs_extra_1.default.readFileSync(testPath, 'utf-8');
80
+ // Replace absolute paths: ../../../../scripts/test-helpers -> ./test-helpers.js
81
+ testContent = testContent.replace(/import\s+{([^}]+)}\s+from\s+"\.\.\/\.\.\/\.\.\/\.\.\/scripts\/test-helpers"/, 'import { $1 } from "./test-helpers.js"');
82
+ // Replace hardhat import to work around ESM/CommonJS issues
83
+ // Change: import { ethers } from "hardhat"
84
+ // To: const { ethers } = await import("hardhat")
85
+ // Actually, just remove the import and use globals injected by Hardhat
86
+ testContent = testContent.replace(/import\s*{\s*ethers\s*}\s*from\s*["']hardhat["']\s*;?\n/g, '');
87
+ fs_extra_1.default.writeFileSync(testPath, testContent);
88
+ }
102
89
  // Create test-helpers.js stub if it doesn't exist
103
90
  const testHelpersPath = path_1.default.join(testDest, 'test-helpers.js');
104
91
  if (!fs_extra_1.default.existsSync(testHelpersPath)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-fhevm-playground-pro",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Premium scaffolding CLI for fhEVM Playground Pro – Zama bounty",
5
5
  "main": "dist/create-example.js",
6
6
  "bin": {