@ironbackend/core 1.0.0 → 1.0.2
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 +108 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -95
- package/dist/index.js.map +1 -1
- package/dist/rules/index.js +35 -43
- package/dist/rules/index.js.map +1 -1
- package/dist/schema.d.ts +151 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +97 -0
- package/dist/schema.js.map +1 -0
- package/dist/security/index.js +17 -22
- package/dist/security/index.js.map +1 -1
- package/dist/stacks/index.js +15 -21
- package/dist/stacks/index.js.map +1 -1
- package/dist/styles/clean-monolith.js +1 -4
- package/dist/styles/clean-monolith.js.map +1 -1
- package/dist/styles/event-driven.js +2 -5
- package/dist/styles/event-driven.js.map +1 -1
- package/dist/styles/hexagonal.js +1 -4
- package/dist/styles/hexagonal.js.map +1 -1
- package/dist/styles/index.d.ts +2 -2
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +28 -41
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/microservices.js +2 -5
- package/dist/styles/microservices.js.map +1 -1
- package/dist/styles/modular-monolith.js +1 -4
- package/dist/styles/modular-monolith.js.map +1 -1
- package/dist/styles/specialized.js +3 -6
- package/dist/styles/specialized.js.map +1 -1
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/performance.d.ts +31 -0
- package/dist/utils/performance.d.ts.map +1 -0
- package/dist/utils/performance.js +71 -0
- package/dist/utils/performance.js.map +1 -0
- package/package.json +6 -2
package/README.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# @ironbackend/core
|
|
2
|
+
|
|
3
|
+
Backend architecture knowledge base for AI coding assistants.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@ironbackend/core)
|
|
6
|
+
[](../../LICENSE)
|
|
7
|
+
|
|
8
|
+
## What's Inside
|
|
9
|
+
|
|
10
|
+
- **10 Architecture Styles** - Clean Monolith, Hexagonal, CQRS, Microservices, and more
|
|
11
|
+
- **4 Tech Stacks** - Node/NestJS, Java/Spring, .NET/ASP.NET Core, Python/FastAPI
|
|
12
|
+
- **50+ Design Rules** - API, domain, error handling, transactions, naming conventions
|
|
13
|
+
- **Security Playbooks** - Authentication strategies and security guidelines
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @ironbackend/core
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import {
|
|
25
|
+
getStyle,
|
|
26
|
+
getStack,
|
|
27
|
+
allRules,
|
|
28
|
+
securityPlaybook
|
|
29
|
+
} from '@ironbackend/core';
|
|
30
|
+
|
|
31
|
+
// Get an architecture style
|
|
32
|
+
const hexagonal = getStyle('hexagonal');
|
|
33
|
+
console.log(hexagonal.name); // 'Hexagonal Architecture'
|
|
34
|
+
console.log(hexagonal.principles); // ['Domain and application core...', ...]
|
|
35
|
+
|
|
36
|
+
// Get a tech stack
|
|
37
|
+
const nestjs = getStack('node-nestjs');
|
|
38
|
+
console.log(nestjs.framework); // 'NestJS'
|
|
39
|
+
console.log(nestjs.conventions); // Stack-specific conventions
|
|
40
|
+
|
|
41
|
+
// Access design rules
|
|
42
|
+
console.log(allRules.length); // 50+ rules
|
|
43
|
+
const apiRules = allRules.filter(r => r.category === 'api');
|
|
44
|
+
|
|
45
|
+
// Security playbook
|
|
46
|
+
console.log(securityPlaybook.authStrategies);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Architecture Styles
|
|
50
|
+
|
|
51
|
+
| ID | Name | Best For |
|
|
52
|
+
|----|------|----------|
|
|
53
|
+
| `clean-monolith` | Clean Monolith | Small teams, startups |
|
|
54
|
+
| `modular-monolith` | Modular Monolith | Growing teams, bounded contexts |
|
|
55
|
+
| `hexagonal` | Hexagonal | Test-driven development |
|
|
56
|
+
| `event-driven` | Event-Driven | High throughput |
|
|
57
|
+
| `cqrs` | CQRS | Read-heavy workloads |
|
|
58
|
+
| `microservices-sync` | Microservices (Sync) | Multiple teams |
|
|
59
|
+
| `microservices-async` | Microservices (Async) | Decoupled services |
|
|
60
|
+
| `serverless` | Serverless | Variable traffic |
|
|
61
|
+
| `read-heavy` | Read-Heavy API | Aggressive caching |
|
|
62
|
+
| `automation` | Automation/Bot | Scheduled jobs |
|
|
63
|
+
|
|
64
|
+
## Tech Stacks
|
|
65
|
+
|
|
66
|
+
| ID | Stack |
|
|
67
|
+
|----|-------|
|
|
68
|
+
| `node-nestjs` | Node.js + NestJS + PostgreSQL |
|
|
69
|
+
| `java-spring` | Java + Spring Boot + PostgreSQL |
|
|
70
|
+
| `dotnet-aspnetcore` | .NET + ASP.NET Core + SQL Server |
|
|
71
|
+
| `python-fastapi` | Python + FastAPI + PostgreSQL |
|
|
72
|
+
|
|
73
|
+
## API Reference
|
|
74
|
+
|
|
75
|
+
### Styles
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
getStyle(id: string): ArchitectureStyle | undefined
|
|
79
|
+
getStyleIds(): string[]
|
|
80
|
+
findStyles(filter: Partial<ArchitectureStyle>): ArchitectureStyle[]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Stacks
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
getStack(id: string): TechStack | undefined
|
|
87
|
+
getStackIds(): string[]
|
|
88
|
+
findStacksByLanguage(language: string): TechStack[]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Rules
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
allRules: DesignRule[]
|
|
95
|
+
getRulesByCategory(category: string): DesignRule[]
|
|
96
|
+
getRule(id: string): DesignRule | undefined
|
|
97
|
+
getErrorRules(): DesignRule[]
|
|
98
|
+
getWarnRules(): DesignRule[]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Related Packages
|
|
102
|
+
|
|
103
|
+
- [`@ironbackend/cli`](https://www.npmjs.com/package/@ironbackend/cli) - CLI tool
|
|
104
|
+
- [`@ironbackend/prompts`](https://www.npmjs.com/package/@ironbackend/prompts) - Prompt builders
|
|
105
|
+
|
|
106
|
+
## License
|
|
107
|
+
|
|
108
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - Security & reliability playbooks
|
|
10
10
|
*/
|
|
11
11
|
export * from './types.js';
|
|
12
|
+
export * from './schema.js';
|
|
12
13
|
export * as styles from './styles/index.js';
|
|
13
14
|
export { getStyle, getStyleIds, findStyles, cleanMonolith, modularMonolith, hexagonal, eventDriven, cqrs, microservicesSync, microservicesAsync, serverless, readHeavy, automation, } from './styles/index.js';
|
|
14
15
|
export * as stacks from './stacks/index.js';
|
|
@@ -17,10 +18,7 @@ export * as rules from './rules/index.js';
|
|
|
17
18
|
export { allRules, rulesByCategory, getRulesByCategory, getRule, getErrorRules, getWarnRules, formatRulesForPrompt, apiRules, domainRules, errorHandlingRules, transactionRules, dataAccessRules, namingRules, validationRules, asyncRules, } from './rules/index.js';
|
|
18
19
|
export * as security from './security/index.js';
|
|
19
20
|
export { securityPlaybook, authStrategies, getAuthStrategy, formatSecurityForPrompt, } from './security/index.js';
|
|
20
|
-
|
|
21
|
-
* IronBackend version
|
|
22
|
-
*/
|
|
23
|
-
export declare const VERSION = "1.0.0";
|
|
21
|
+
export declare const VERSION: string;
|
|
24
22
|
/**
|
|
25
23
|
* Quick access to all data
|
|
26
24
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAkB7B,eAAO,MAAM,OAAO,QAAe,CAAC;AAOpC;;GAEG;AACH,wBAAgB,UAAU;;;;;EAOzB"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @ironbackend/core
|
|
4
3
|
* Backend Architecture Intelligence for AI Coding Assistants
|
|
@@ -9,110 +8,46 @@
|
|
|
9
8
|
* - Design rules database
|
|
10
9
|
* - Security & reliability playbooks
|
|
11
10
|
*/
|
|
12
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
-
}
|
|
18
|
-
Object.defineProperty(o, k2, desc);
|
|
19
|
-
}) : (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
o[k2] = m[k];
|
|
22
|
-
}));
|
|
23
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
-
}) : function(o, v) {
|
|
26
|
-
o["default"] = v;
|
|
27
|
-
});
|
|
28
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
29
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
30
|
-
};
|
|
31
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
-
var ownKeys = function(o) {
|
|
33
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
-
var ar = [];
|
|
35
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
-
return ar;
|
|
37
|
-
};
|
|
38
|
-
return ownKeys(o);
|
|
39
|
-
};
|
|
40
|
-
return function (mod) {
|
|
41
|
-
if (mod && mod.__esModule) return mod;
|
|
42
|
-
var result = {};
|
|
43
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
-
__setModuleDefault(result, mod);
|
|
45
|
-
return result;
|
|
46
|
-
};
|
|
47
|
-
})();
|
|
48
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.VERSION = exports.formatSecurityForPrompt = exports.getAuthStrategy = exports.authStrategies = exports.securityPlaybook = exports.security = exports.asyncRules = exports.validationRules = exports.namingRules = exports.dataAccessRules = exports.transactionRules = exports.errorHandlingRules = exports.domainRules = exports.apiRules = exports.formatRulesForPrompt = exports.getWarnRules = exports.getErrorRules = exports.getRule = exports.getRulesByCategory = exports.rulesByCategory = exports.allRules = exports.rules = exports.pythonFastapi = exports.dotnetAspnetcore = exports.javaSpring = exports.nodeNestjs = exports.findStacksByLanguage = exports.getStackIds = exports.getStack = exports.stacks = exports.automation = exports.readHeavy = exports.serverless = exports.microservicesAsync = exports.microservicesSync = exports.cqrs = exports.eventDriven = exports.hexagonal = exports.modularMonolith = exports.cleanMonolith = exports.findStyles = exports.getStyleIds = exports.getStyle = exports.styles = void 0;
|
|
50
|
-
exports.getAllData = getAllData;
|
|
51
11
|
// Types
|
|
52
|
-
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
// Schema Validation
|
|
14
|
+
export * from './schema.js';
|
|
53
15
|
// Architecture Styles
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Object.defineProperty(exports, "getStyle", { enumerable: true, get: function () { return index_js_1.getStyle; } });
|
|
57
|
-
Object.defineProperty(exports, "getStyleIds", { enumerable: true, get: function () { return index_js_1.getStyleIds; } });
|
|
58
|
-
Object.defineProperty(exports, "findStyles", { enumerable: true, get: function () { return index_js_1.findStyles; } });
|
|
59
|
-
Object.defineProperty(exports, "cleanMonolith", { enumerable: true, get: function () { return index_js_1.cleanMonolith; } });
|
|
60
|
-
Object.defineProperty(exports, "modularMonolith", { enumerable: true, get: function () { return index_js_1.modularMonolith; } });
|
|
61
|
-
Object.defineProperty(exports, "hexagonal", { enumerable: true, get: function () { return index_js_1.hexagonal; } });
|
|
62
|
-
Object.defineProperty(exports, "eventDriven", { enumerable: true, get: function () { return index_js_1.eventDriven; } });
|
|
63
|
-
Object.defineProperty(exports, "cqrs", { enumerable: true, get: function () { return index_js_1.cqrs; } });
|
|
64
|
-
Object.defineProperty(exports, "microservicesSync", { enumerable: true, get: function () { return index_js_1.microservicesSync; } });
|
|
65
|
-
Object.defineProperty(exports, "microservicesAsync", { enumerable: true, get: function () { return index_js_1.microservicesAsync; } });
|
|
66
|
-
Object.defineProperty(exports, "serverless", { enumerable: true, get: function () { return index_js_1.serverless; } });
|
|
67
|
-
Object.defineProperty(exports, "readHeavy", { enumerable: true, get: function () { return index_js_1.readHeavy; } });
|
|
68
|
-
Object.defineProperty(exports, "automation", { enumerable: true, get: function () { return index_js_1.automation; } });
|
|
16
|
+
export * as styles from './styles/index.js';
|
|
17
|
+
export { getStyle, getStyleIds, findStyles, cleanMonolith, modularMonolith, hexagonal, eventDriven, cqrs, microservicesSync, microservicesAsync, serverless, readHeavy, automation, } from './styles/index.js';
|
|
69
18
|
// Tech Stacks
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Object.defineProperty(exports, "getStack", { enumerable: true, get: function () { return index_js_2.getStack; } });
|
|
73
|
-
Object.defineProperty(exports, "getStackIds", { enumerable: true, get: function () { return index_js_2.getStackIds; } });
|
|
74
|
-
Object.defineProperty(exports, "findStacksByLanguage", { enumerable: true, get: function () { return index_js_2.findStacksByLanguage; } });
|
|
75
|
-
Object.defineProperty(exports, "nodeNestjs", { enumerable: true, get: function () { return index_js_2.nodeNestjs; } });
|
|
76
|
-
Object.defineProperty(exports, "javaSpring", { enumerable: true, get: function () { return index_js_2.javaSpring; } });
|
|
77
|
-
Object.defineProperty(exports, "dotnetAspnetcore", { enumerable: true, get: function () { return index_js_2.dotnetAspnetcore; } });
|
|
78
|
-
Object.defineProperty(exports, "pythonFastapi", { enumerable: true, get: function () { return index_js_2.pythonFastapi; } });
|
|
19
|
+
export * as stacks from './stacks/index.js';
|
|
20
|
+
export { getStack, getStackIds, findStacksByLanguage, nodeNestjs, javaSpring, dotnetAspnetcore, pythonFastapi, } from './stacks/index.js';
|
|
79
21
|
// Design Rules
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Object.defineProperty(exports, "allRules", { enumerable: true, get: function () { return index_js_3.allRules; } });
|
|
83
|
-
Object.defineProperty(exports, "rulesByCategory", { enumerable: true, get: function () { return index_js_3.rulesByCategory; } });
|
|
84
|
-
Object.defineProperty(exports, "getRulesByCategory", { enumerable: true, get: function () { return index_js_3.getRulesByCategory; } });
|
|
85
|
-
Object.defineProperty(exports, "getRule", { enumerable: true, get: function () { return index_js_3.getRule; } });
|
|
86
|
-
Object.defineProperty(exports, "getErrorRules", { enumerable: true, get: function () { return index_js_3.getErrorRules; } });
|
|
87
|
-
Object.defineProperty(exports, "getWarnRules", { enumerable: true, get: function () { return index_js_3.getWarnRules; } });
|
|
88
|
-
Object.defineProperty(exports, "formatRulesForPrompt", { enumerable: true, get: function () { return index_js_3.formatRulesForPrompt; } });
|
|
89
|
-
Object.defineProperty(exports, "apiRules", { enumerable: true, get: function () { return index_js_3.apiRules; } });
|
|
90
|
-
Object.defineProperty(exports, "domainRules", { enumerable: true, get: function () { return index_js_3.domainRules; } });
|
|
91
|
-
Object.defineProperty(exports, "errorHandlingRules", { enumerable: true, get: function () { return index_js_3.errorHandlingRules; } });
|
|
92
|
-
Object.defineProperty(exports, "transactionRules", { enumerable: true, get: function () { return index_js_3.transactionRules; } });
|
|
93
|
-
Object.defineProperty(exports, "dataAccessRules", { enumerable: true, get: function () { return index_js_3.dataAccessRules; } });
|
|
94
|
-
Object.defineProperty(exports, "namingRules", { enumerable: true, get: function () { return index_js_3.namingRules; } });
|
|
95
|
-
Object.defineProperty(exports, "validationRules", { enumerable: true, get: function () { return index_js_3.validationRules; } });
|
|
96
|
-
Object.defineProperty(exports, "asyncRules", { enumerable: true, get: function () { return index_js_3.asyncRules; } });
|
|
22
|
+
export * as rules from './rules/index.js';
|
|
23
|
+
export { allRules, rulesByCategory, getRulesByCategory, getRule, getErrorRules, getWarnRules, formatRulesForPrompt, apiRules, domainRules, errorHandlingRules, transactionRules, dataAccessRules, namingRules, validationRules, asyncRules, } from './rules/index.js';
|
|
97
24
|
// Security
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
Object.defineProperty(exports, "authStrategies", { enumerable: true, get: function () { return index_js_4.authStrategies; } });
|
|
102
|
-
Object.defineProperty(exports, "getAuthStrategy", { enumerable: true, get: function () { return index_js_4.getAuthStrategy; } });
|
|
103
|
-
Object.defineProperty(exports, "formatSecurityForPrompt", { enumerable: true, get: function () { return index_js_4.formatSecurityForPrompt; } });
|
|
25
|
+
export * as security from './security/index.js';
|
|
26
|
+
export { securityPlaybook, authStrategies, getAuthStrategy, formatSecurityForPrompt, } from './security/index.js';
|
|
27
|
+
import { createRequire } from 'module';
|
|
104
28
|
/**
|
|
105
|
-
* IronBackend version
|
|
29
|
+
* IronBackend version - dynamically read from package.json
|
|
106
30
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
const
|
|
111
|
-
|
|
31
|
+
const getVersion = () => {
|
|
32
|
+
try {
|
|
33
|
+
const require = createRequire(import.meta.url);
|
|
34
|
+
const pkg = require('../package.json');
|
|
35
|
+
return pkg.version;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Fallback for edge cases
|
|
39
|
+
return '1.0.0';
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const VERSION = getVersion();
|
|
43
|
+
import * as _styles from './styles/index.js';
|
|
44
|
+
import * as _stacks from './stacks/index.js';
|
|
45
|
+
import * as _rules from './rules/index.js';
|
|
46
|
+
import * as _security from './security/index.js';
|
|
112
47
|
/**
|
|
113
48
|
* Quick access to all data
|
|
114
49
|
*/
|
|
115
|
-
function getAllData() {
|
|
50
|
+
export function getAllData() {
|
|
116
51
|
return {
|
|
117
52
|
styles: _styles.styles,
|
|
118
53
|
stacks: _stacks.stacks,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,GACb,MAAM,mBAAmB,CAAC;AAE3B,cAAc;AACd,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACH,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAE3B,eAAe;AACf,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACb,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,GAAG,GAAW,EAAE;IAC5B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACL,0BAA0B;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAEpC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,QAAQ,EAAE,SAAS,CAAC,gBAAgB;KACvC,CAAC;AACN,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* IronBackend Design Rules
|
|
4
3
|
* Enforceable rules for backend development
|
|
5
4
|
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.rulesByCategory = exports.allRules = exports.asyncRules = exports.validationRules = exports.namingRules = exports.dataAccessRules = exports.transactionRules = exports.errorHandlingRules = exports.domainRules = exports.apiRules = void 0;
|
|
8
|
-
exports.getRulesByCategory = getRulesByCategory;
|
|
9
|
-
exports.getRule = getRule;
|
|
10
|
-
exports.getErrorRules = getErrorRules;
|
|
11
|
-
exports.getWarnRules = getWarnRules;
|
|
12
|
-
exports.formatRulesForPrompt = formatRulesForPrompt;
|
|
13
5
|
// ============================================================================
|
|
14
6
|
// API Design Rules
|
|
15
7
|
// ============================================================================
|
|
16
|
-
|
|
8
|
+
export const apiRules = [
|
|
17
9
|
{
|
|
18
10
|
id: 'API-001',
|
|
19
11
|
category: 'API',
|
|
@@ -88,7 +80,7 @@ exports.apiRules = [
|
|
|
88
80
|
// ============================================================================
|
|
89
81
|
// Domain Modeling Rules
|
|
90
82
|
// ============================================================================
|
|
91
|
-
|
|
83
|
+
export const domainRules = [
|
|
92
84
|
{
|
|
93
85
|
id: 'DOM-001',
|
|
94
86
|
category: 'DOMAIN',
|
|
@@ -149,7 +141,7 @@ exports.domainRules = [
|
|
|
149
141
|
// ============================================================================
|
|
150
142
|
// Error Handling Rules
|
|
151
143
|
// ============================================================================
|
|
152
|
-
|
|
144
|
+
export const errorHandlingRules = [
|
|
153
145
|
{
|
|
154
146
|
id: 'ERR-001',
|
|
155
147
|
category: 'ERROR_HANDLING',
|
|
@@ -210,7 +202,7 @@ exports.errorHandlingRules = [
|
|
|
210
202
|
// ============================================================================
|
|
211
203
|
// Transaction Rules
|
|
212
204
|
// ============================================================================
|
|
213
|
-
|
|
205
|
+
export const transactionRules = [
|
|
214
206
|
{
|
|
215
207
|
id: 'TXN-001',
|
|
216
208
|
category: 'TRANSACTIONS',
|
|
@@ -257,7 +249,7 @@ exports.transactionRules = [
|
|
|
257
249
|
// ============================================================================
|
|
258
250
|
// Data Access Rules
|
|
259
251
|
// ============================================================================
|
|
260
|
-
|
|
252
|
+
export const dataAccessRules = [
|
|
261
253
|
{
|
|
262
254
|
id: 'DAT-001',
|
|
263
255
|
category: 'DATA_ACCESS',
|
|
@@ -311,7 +303,7 @@ exports.dataAccessRules = [
|
|
|
311
303
|
// ============================================================================
|
|
312
304
|
// Naming Rules
|
|
313
305
|
// ============================================================================
|
|
314
|
-
|
|
306
|
+
export const namingRules = [
|
|
315
307
|
{
|
|
316
308
|
id: 'NAM-001',
|
|
317
309
|
category: 'NAMING',
|
|
@@ -365,7 +357,7 @@ exports.namingRules = [
|
|
|
365
357
|
// ============================================================================
|
|
366
358
|
// Validation Rules
|
|
367
359
|
// ============================================================================
|
|
368
|
-
|
|
360
|
+
export const validationRules = [
|
|
369
361
|
{
|
|
370
362
|
id: 'VAL-001',
|
|
371
363
|
category: 'VALIDATION',
|
|
@@ -405,7 +397,7 @@ exports.validationRules = [
|
|
|
405
397
|
// ============================================================================
|
|
406
398
|
// Async / Concurrency Rules
|
|
407
399
|
// ============================================================================
|
|
408
|
-
|
|
400
|
+
export const asyncRules = [
|
|
409
401
|
{
|
|
410
402
|
id: 'ASY-001',
|
|
411
403
|
category: 'ASYNC',
|
|
@@ -452,54 +444,54 @@ exports.asyncRules = [
|
|
|
452
444
|
// ============================================================================
|
|
453
445
|
// Aggregated Exports
|
|
454
446
|
// ============================================================================
|
|
455
|
-
|
|
456
|
-
...
|
|
457
|
-
...
|
|
458
|
-
...
|
|
459
|
-
...
|
|
460
|
-
...
|
|
461
|
-
...
|
|
462
|
-
...
|
|
463
|
-
...
|
|
447
|
+
export const allRules = [
|
|
448
|
+
...apiRules,
|
|
449
|
+
...domainRules,
|
|
450
|
+
...errorHandlingRules,
|
|
451
|
+
...transactionRules,
|
|
452
|
+
...dataAccessRules,
|
|
453
|
+
...namingRules,
|
|
454
|
+
...validationRules,
|
|
455
|
+
...asyncRules,
|
|
464
456
|
];
|
|
465
|
-
|
|
466
|
-
'API':
|
|
467
|
-
'DOMAIN':
|
|
468
|
-
'ERROR_HANDLING':
|
|
469
|
-
'TRANSACTIONS':
|
|
470
|
-
'DATA_ACCESS':
|
|
471
|
-
'NAMING':
|
|
472
|
-
'VALIDATION':
|
|
473
|
-
'ASYNC':
|
|
457
|
+
export const rulesByCategory = {
|
|
458
|
+
'API': apiRules,
|
|
459
|
+
'DOMAIN': domainRules,
|
|
460
|
+
'ERROR_HANDLING': errorHandlingRules,
|
|
461
|
+
'TRANSACTIONS': transactionRules,
|
|
462
|
+
'DATA_ACCESS': dataAccessRules,
|
|
463
|
+
'NAMING': namingRules,
|
|
464
|
+
'VALIDATION': validationRules,
|
|
465
|
+
'ASYNC': asyncRules,
|
|
474
466
|
};
|
|
475
467
|
/**
|
|
476
468
|
* Get rules by category
|
|
477
469
|
*/
|
|
478
|
-
function getRulesByCategory(category) {
|
|
479
|
-
return
|
|
470
|
+
export function getRulesByCategory(category) {
|
|
471
|
+
return rulesByCategory[category] || [];
|
|
480
472
|
}
|
|
481
473
|
/**
|
|
482
474
|
* Get rule by ID
|
|
483
475
|
*/
|
|
484
|
-
function getRule(id) {
|
|
485
|
-
return
|
|
476
|
+
export function getRule(id) {
|
|
477
|
+
return allRules.find(rule => rule.id === id);
|
|
486
478
|
}
|
|
487
479
|
/**
|
|
488
480
|
* Get all ERROR severity rules
|
|
489
481
|
*/
|
|
490
|
-
function getErrorRules() {
|
|
491
|
-
return
|
|
482
|
+
export function getErrorRules() {
|
|
483
|
+
return allRules.filter(rule => rule.severity === 'ERROR');
|
|
492
484
|
}
|
|
493
485
|
/**
|
|
494
486
|
* Get all WARN severity rules
|
|
495
487
|
*/
|
|
496
|
-
function getWarnRules() {
|
|
497
|
-
return
|
|
488
|
+
export function getWarnRules() {
|
|
489
|
+
return allRules.filter(rule => rule.severity === 'WARN');
|
|
498
490
|
}
|
|
499
491
|
/**
|
|
500
492
|
* Format rules for AI prompt
|
|
501
493
|
*/
|
|
502
|
-
function formatRulesForPrompt(rules) {
|
|
494
|
+
export function formatRulesForPrompt(rules) {
|
|
503
495
|
return rules.map(rule => `[${rule.severity}] ${rule.id}: ${rule.rule}`).join('\n');
|
|
504
496
|
}
|
|
505
497
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
|