@gherk/reactive-architecture 1.4.2 → 1.4.3
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/dist/index.js +1 -1
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +31 -109
- package/dist/tools/validate.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ import { registerPlanFeaturePrompt } from './prompts/plan-feature.js';
|
|
|
29
29
|
// Create the MCP server
|
|
30
30
|
const server = new McpServer({
|
|
31
31
|
name: 'reactive-architecture',
|
|
32
|
-
version: '1.4.
|
|
32
|
+
version: '1.4.3',
|
|
33
33
|
});
|
|
34
34
|
// Register all tools
|
|
35
35
|
registerArchitectureGuideTool(server);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmNpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyG5D"}
|
package/dist/tools/validate.js
CHANGED
|
@@ -122,132 +122,49 @@ function validateDescription(description) {
|
|
|
122
122
|
}
|
|
123
123
|
return issues;
|
|
124
124
|
}
|
|
125
|
-
function validateCode(code) {
|
|
125
|
+
function validateCode(code, stack) {
|
|
126
126
|
const issues = [];
|
|
127
127
|
const lower = code.toLowerCase();
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const constructsService = /constructor\s*\([^)]*\w+Service/.test(code);
|
|
137
|
-
const importsService = /import\s+.*Service.*\s+from/.test(code);
|
|
138
|
-
if (injectsService || constructsService) {
|
|
128
|
+
// Heuristic detection if stack not provided
|
|
129
|
+
const isAngular = stack === 'angular' || /@angular/.test(code) || /@Component/.test(code);
|
|
130
|
+
const isReact = stack === 'react' || /react/.test(lower) || /use\w+/.test(code);
|
|
131
|
+
// ... (rest of the checks) ...
|
|
132
|
+
// Check 5: Legacy Injection (Constructor) - ANGULAR SPECIFIC
|
|
133
|
+
// Matches: constructor(private service: Service)
|
|
134
|
+
if (isAngular) {
|
|
135
|
+
if (/constructor\s*\(\s*(private|public|protected|readonly)?\s*\w+/.test(code)) {
|
|
139
136
|
issues.push({
|
|
140
137
|
severity: 'error',
|
|
141
|
-
message: '
|
|
142
|
-
'
|
|
143
|
-
|
|
144
|
-
'FIX: Remove Service injection. Inject the Store instead.',
|
|
145
|
-
rule: 'component-injects-service',
|
|
138
|
+
message: 'Legacy Constructor Injection detected. ' +
|
|
139
|
+
'Use the modern `inject(...)` function instead of constructor injection.',
|
|
140
|
+
rule: 'no-constructor-injection',
|
|
146
141
|
});
|
|
147
142
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
// We'll warn if we see usage like "UserService.someMethod" or "new UserService"
|
|
151
|
-
if (/\w+Service\./.test(code) || /new\s+\w+Service/.test(code)) {
|
|
152
|
-
issues.push({
|
|
153
|
-
severity: 'error',
|
|
154
|
-
message: 'Component is using a Service class directly (static or instantiation). ' +
|
|
155
|
-
'All logic must go through the Store.',
|
|
156
|
-
rule: 'component-calls-service',
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// Check 2: Service holding state
|
|
162
|
-
// Matches: class ...Service ... boolean = ... or array = [] (heuristic)
|
|
163
|
-
if (/class\s+\w+Service/.test(code)) {
|
|
164
|
-
if (/subject<|behavior_subject<|signal<|writable</i.test(code)) {
|
|
143
|
+
// Check 6: Legacy Decorators (@Input/@Output) - ANGULAR SPECIFIC
|
|
144
|
+
if (/@Input\(\)/.test(code)) {
|
|
165
145
|
issues.push({
|
|
166
146
|
severity: 'error',
|
|
167
|
-
message: '
|
|
168
|
-
'
|
|
169
|
-
rule: '
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
// Check 3: Cyclomatic Complexity (Mock Linter)
|
|
174
|
-
// Heuristic: Count branching keywords
|
|
175
|
-
const complexityMatches = code.match(/(\bif\b|\bfor\b|\bwhile\b|\bcase\b|\bcatch\b|\?|\|\||&&)/g);
|
|
176
|
-
const complexity = complexityMatches ? complexityMatches.length + 1 : 1;
|
|
177
|
-
// Only strictly enforce on smaller snippets (to avoid flagging whole files)
|
|
178
|
-
// If it looks like a single function (no 'class' keyword)
|
|
179
|
-
const isClass = /\bclass\b/.test(code);
|
|
180
|
-
if (!isClass && complexity > 5) {
|
|
181
|
-
issues.push({
|
|
182
|
-
severity: 'warning',
|
|
183
|
-
message: `Detected High Cyclomatic Complexity (${complexity}). ` +
|
|
184
|
-
'Style Rules limit complexity to 5 per function. ' +
|
|
185
|
-
'Simplify logic or extract helper functions.',
|
|
186
|
-
rule: 'max-complexity',
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
// Check 4: Function Length
|
|
190
|
-
// If it's not a class, check line count
|
|
191
|
-
if (!isClass) {
|
|
192
|
-
// Exclude empty lines and comments
|
|
193
|
-
const meaningfulLines = code.split('\n')
|
|
194
|
-
.map(l => l.trim())
|
|
195
|
-
.filter(l => l && !l.startsWith('//') && !l.startsWith('/*') && !l.startsWith('*'));
|
|
196
|
-
if (meaningfulLines.length > 15) { // 10 lines code + some leeway for imports/signatures
|
|
197
|
-
issues.push({
|
|
198
|
-
severity: 'warning',
|
|
199
|
-
message: `Snippet length (${meaningfulLines.length} lines) exceeds the limit. ` +
|
|
200
|
-
'Functions must be ≤ 10 lines of code. Split into smaller functions.',
|
|
201
|
-
rule: 'max-lines-per-function',
|
|
147
|
+
message: 'Legacy @Input() decorator detected. ' +
|
|
148
|
+
'Use the modern `input()` or `input.required()` signal inputs.',
|
|
149
|
+
rule: 'no-input-decorator',
|
|
202
150
|
});
|
|
203
151
|
}
|
|
204
|
-
|
|
205
|
-
else {
|
|
206
|
-
// Check 4: Function Length
|
|
207
|
-
// ... (existing check) ...
|
|
208
|
-
const lines = code.split('\n').length;
|
|
209
|
-
if (lines > 180) { // 160 + leeway
|
|
152
|
+
if (/@Output\(\)/.test(code)) {
|
|
210
153
|
issues.push({
|
|
211
|
-
severity: '
|
|
212
|
-
message:
|
|
213
|
-
'
|
|
214
|
-
rule: '
|
|
154
|
+
severity: 'error',
|
|
155
|
+
message: 'Legacy @Output() decorator detected. ' +
|
|
156
|
+
'Use the modern `output()` function.',
|
|
157
|
+
rule: 'no-output-decorator',
|
|
215
158
|
});
|
|
216
159
|
}
|
|
217
160
|
}
|
|
218
|
-
// Check 5: Legacy Injection (Constructor)
|
|
219
|
-
// Matches: constructor(private service: Service)
|
|
220
|
-
if (/constructor\s*\(\s*(private|public|protected|readonly)?\s*\w+/.test(code)) {
|
|
221
|
-
issues.push({
|
|
222
|
-
severity: 'error',
|
|
223
|
-
message: 'Legacy Constructor Injection detected. ' +
|
|
224
|
-
'Use the modern `inject(...)` function instead of constructor injection.',
|
|
225
|
-
rule: 'no-constructor-injection',
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
// Check 6: Legacy Decorators (@Input/@Output)
|
|
229
|
-
if (/@Input\(\)/.test(code)) {
|
|
230
|
-
issues.push({
|
|
231
|
-
severity: 'error',
|
|
232
|
-
message: 'Legacy @Input() decorator detected. ' +
|
|
233
|
-
'Use the modern `input()` or `input.required()` signal inputs.',
|
|
234
|
-
rule: 'no-input-decorator',
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
if (/@Output\(\)/.test(code)) {
|
|
238
|
-
issues.push({
|
|
239
|
-
severity: 'error',
|
|
240
|
-
message: 'Legacy @Output() decorator detected. ' +
|
|
241
|
-
'Use the modern `output()` function.',
|
|
242
|
-
rule: 'no-output-decorator',
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
161
|
return issues;
|
|
246
162
|
}
|
|
247
163
|
export function registerValidateTool(server) {
|
|
248
164
|
server.tool('validate_architecture', `Validates whether a proposed frontend architecture or code structure follows ` +
|
|
249
165
|
`the reactive Component → Store → Service pattern. ` +
|
|
250
|
-
`Provide a text description OR a code snippet to receive validation feedback
|
|
166
|
+
`Provide a text description OR a code snippet to receive validation feedback. ` +
|
|
167
|
+
`Can optionally specify the stack to apply framework-specific rules.`, {
|
|
251
168
|
description: z
|
|
252
169
|
.string()
|
|
253
170
|
.optional()
|
|
@@ -256,14 +173,19 @@ export function registerValidateTool(server) {
|
|
|
256
173
|
.string()
|
|
257
174
|
.optional()
|
|
258
175
|
.describe('Code snippet (Component or Service) to validate against architectural rules'),
|
|
259
|
-
|
|
176
|
+
stack: z
|
|
177
|
+
.enum(['angular', 'react', 'vue', 'other'])
|
|
178
|
+
.optional()
|
|
179
|
+
.describe('The technology stack to validate against. If omitted, will attempt to detect from code.')
|
|
180
|
+
}, async ({ description, code, stack }) => {
|
|
260
181
|
let issues = [];
|
|
261
182
|
if (description) {
|
|
262
183
|
issues = [...issues, ...validateDescription(description)];
|
|
263
184
|
}
|
|
264
185
|
if (code) {
|
|
265
|
-
issues = [...issues, ...validateCode(code)];
|
|
186
|
+
issues = [...issues, ...validateCode(code, stack)];
|
|
266
187
|
}
|
|
188
|
+
// ...
|
|
267
189
|
if (issues.length === 0) {
|
|
268
190
|
return {
|
|
269
191
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAChF,uEAAuE;AACvE,4DAA4D;AAC5D,gFAAgF;AAGhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,SAAS,mBAAmB,CAAC,WAAmB;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAExC,oDAAoD;IAEpD,qBAAqB;IACrB,IACI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EACH,sDAAsD;gBACtD,iEAAiE;YACrE,IAAI,EAAE,sBAAsB;SAC/B,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB;IACpB,IACI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAC9B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EACH,8EAA8E;gBAC9E,qDAAqD;YACzD,IAAI,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,6BAA6B;IAC7B,IACI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EACH,qFAAqF;gBACrF,4CAA4C;YAChD,IAAI,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,sDAAsD;IACtD,IACI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EACH,gDAAgD;gBAChD,4FAA4F;YAChG,IAAI,EAAE,eAAe;SACxB,CAAC,CAAC;IACP,CAAC;IAED,2DAA2D;IAE3D,qBAAqB;IACrB,IACI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACnC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzB,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,SAAS;YACnB,OAAO,EACH,+DAA+D;gBAC/D,0EAA0E;YAC9E,IAAI,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,uBAAuB;IACvB,IACI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,SAAS;YACnB,OAAO,EACH,4DAA4D;gBAC5D,sFAAsF;YAC1F,IAAI,EAAE,uBAAuB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB;IACrB,IACI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC5B,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EACjC,CAAC;QACC,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,SAAS;YACnB,OAAO,EACH,6EAA6E;gBAC7E,oDAAoD;YACxD,IAAI,EAAE,yBAAyB;SAClC,CAAC,CAAC;IACP,CAAC;IAED,oCAAoC;IAEpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,YAAY;YACtB,OAAO,EACH,gEAAgE;gBAChE,4EAA4E;YAChF,IAAI,EAAE,eAAe;SACxB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,YAAY;YACtB,OAAO,EACH,0CAA0C;gBAC1C,sFAAsF;YAC1F,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAA6C;IAC7E,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhF,+BAA+B;IAE/B,6DAA6D;IAC7D,iDAAiD;IACjD,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACH,yCAAyC;oBACzC,yEAAyE;gBAC7E,IAAI,EAAE,0BAA0B;aACnC,CAAC,CAAC;QACP,CAAC;QAED,iEAAiE;QACjE,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACH,sCAAsC;oBACtC,+DAA+D;gBACnE,IAAI,EAAE,oBAAoB;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACH,uCAAuC;oBACvC,qCAAqC;gBACzC,IAAI,EAAE,qBAAqB;aAC9B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IAClD,MAAM,CAAC,IAAI,CACP,uBAAuB,EACvB,+EAA+E;QAC/E,oDAAoD;QACpD,+EAA+E;QAC/E,qEAAqE,EACrE;QACI,WAAW,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,+CAA+C,CAClD;QACL,IAAI,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,6EAA6E,CAChF;QACL,KAAK,EAAE,CAAC;aACH,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;aAC1C,QAAQ,EAAE;aACV,QAAQ,CAAC,yFAAyF,CAAC;KAC3G,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACnC,IAAI,MAAM,GAAsB,EAAE,CAAC;QAEnC,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM;QAEN,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,kCAAkC;4BAClC,qGAAqG;4BACrG,6BAA6B;4BAC7B,+DAA+D;4BAC/D,yDAAyD;4BACzD,mDAAmD;4BACnD,4DAA4D;qBACnE;iBACJ;aACJ,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC;QAEtE,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,qCAAqC,CAAC;QACpD,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,gCAAgC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,qCAAqC,CAAC;QACpD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,yBAAyB,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,yBAAyB,CAAC;YACpC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnB,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,mBAAmB,CAAC;YAC9B,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtB,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,MAAM;YACF,SAAS;gBACT,6DAA6D;gBAC7D,2DAA2D;gBAC3D,iEAAiE;gBACjE,oDAAoD,CAAC;QAEzD,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACrD,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gherk/reactive-architecture",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "MCP server that teaches AI assistants the reactive architecture philosophy: Component → Store → Service + Controller → Service → Repository",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|