heraspec 0.1.6 → 0.1.8
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 +36 -1
- package/bin/heraspec.js +5 -1
- package/bin/heraspec.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
|
-
# HeraSpec
|
|
1
|
+
# HeraSpec
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://img.shields.io/npm/v/heraspec?style=for-the-badge&color=007ec6" alt="npm version" />
|
|
5
|
+
<img src="https://img.shields.io/npm/l/heraspec?style=for-the-badge&color=97ca00" alt="license" />
|
|
6
|
+
<img src="https://img.shields.io/node/v/heraspec?style=for-the-badge&color=339933" alt="node version" />
|
|
7
|
+
<img src="https://img.shields.io/github/actions/workflow/status/PolyXGO/HeraSpec/build.yml?style=for-the-badge" alt="build status" />
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<img src="https://img.shields.io/npm/dm/heraspec?style=flat-square&color=20c20e" alt="downloads" />
|
|
12
|
+
<img src="https://img.shields.io/github/stars/PolyXGO/HeraSpec?style=flat-square&color=007ec6" alt="stars" />
|
|
13
|
+
<img src="https://img.shields.io/github/forks/PolyXGO/HeraSpec?style=flat-square&color=007ec6" alt="forks" />
|
|
14
|
+
<img src="https://img.shields.io/github/issues/PolyXGO/HeraSpec?style=flat-square&color=red" alt="issues" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<p align="left">
|
|
20
|
+
<a href="https://polyxgo.com"><strong>🌐 Website</strong></a> •
|
|
21
|
+
<a href="https://github.com/PolyXGO/HeraSpec"><strong>💻 GitHub</strong></a> •
|
|
22
|
+
<a href="https://www.npmjs.com/package/heraspec"><strong>📦 NPM</strong></a> •
|
|
23
|
+
<a href="./docs/en/USER_GUIDE.md"><strong>📚 Documentation</strong></a>
|
|
24
|
+
</p>
|
|
2
25
|
|
|
3
26
|
HeraSpec is a specification-based development framework that helps you:
|
|
27
|
+
|
|
4
28
|
- Plan before coding by creating detailed project specifications
|
|
5
29
|
- Track changes through delta specifications
|
|
6
30
|
- Work across multiple project types (WordPress, Laravel, React, etc.)
|
|
@@ -52,6 +76,17 @@ Integrate with AI tools for better development workflow: Cursor, Antigravity, Wi
|
|
|
52
76
|
- **Copilot** - Enhanced development with structured specs
|
|
53
77
|
- **Claude Desktop** - MCP-ready architecture for AI assistance
|
|
54
78
|
|
|
79
|
+
## Showcase
|
|
80
|
+
|
|
81
|
+
Here are some products built partially or entirely using the HeraSpec framework:
|
|
82
|
+
|
|
83
|
+
- [FlexNote for Perfex CRM](https://codecanyon.net/item/flexinote-for-perfex-crm/60590690) - Advanced note management with AI capabilities.
|
|
84
|
+
- [PolyUtilities for Perfex CRM](https://codecanyon.net/item/polyutilities-for-perfex-crm-quick-access-menu-custom-js-css-and-more/49522529) - Essential toolkit for Perfex CRM customization.
|
|
85
|
+
- [Demo Builder for Perfex CRM](https://erp.polyxgo.com/code/project/demo-builder-for-perfex-crm) - Automated demo instance creator.
|
|
86
|
+
- [PolyMetrics](https://erp.polyxgo.com/code/project/polymetrics) - Product price analysis extension for Envato.
|
|
87
|
+
- [PolyDemo](https://erp.polyxgo.com/code/project/polydemo) - Dynamic demonstration environment for web applications.
|
|
88
|
+
- [Smart Payment for Perfex CRM](https://erp.polyxgo.com/code/project/smart-payment-for-perfex-crm) - Intelligent payment gateway integration.
|
|
89
|
+
|
|
55
90
|
## License
|
|
56
91
|
|
|
57
92
|
MIT License - see [LICENSE](./LICENSE) file for details.
|
package/bin/heraspec.js
CHANGED
|
@@ -3300,9 +3300,13 @@ Test type: ${testType}`));
|
|
|
3300
3300
|
async generateTestFiles(specs, testDir, testType, projectInfo) {
|
|
3301
3301
|
const createdFiles = [];
|
|
3302
3302
|
for (const spec of specs) {
|
|
3303
|
-
const testContent = this.generateTestContent(spec, testType, projectInfo);
|
|
3304
3303
|
const testFileName = this.getTestFileName(spec.name, testType, projectInfo);
|
|
3305
3304
|
const testFilePath = path13.join(testDir, testFileName);
|
|
3305
|
+
if (await FileSystemUtils.fileExists(testFilePath)) {
|
|
3306
|
+
console.log(chalk8.yellow(` \u2139 Skipping ${path13.basename(testFilePath)} - already exists.`));
|
|
3307
|
+
continue;
|
|
3308
|
+
}
|
|
3309
|
+
const testContent = this.generateTestContent(spec, testType, projectInfo);
|
|
3306
3310
|
await FileSystemUtils.writeFile(testFilePath, testContent);
|
|
3307
3311
|
createdFiles.push(testFilePath);
|
|
3308
3312
|
}
|