@el-j/magic-helix-core 4.0.0-beta.1 → 4.0.0-beta.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-B88j4AyE.js +13 -0
- package/dist/index-B88j4AyE.js.map +1 -0
- package/dist/index-CY-pQbuu.cjs +2 -0
- package/dist/index-CY-pQbuu.cjs.map +1 -0
- package/dist/index.cjs +75 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.mjs +2234 -51
- package/dist/index.mjs.map +1 -1
- package/dist/pattern-combiner.d.ts +1 -1
- package/dist/plugin-loader.d.ts +7 -1
- package/package.json +4 -4
- package/dist/BasePlugin-6wv0hYJ9.js +0 -98
- package/dist/BasePlugin-6wv0hYJ9.js.map +0 -1
- package/dist/BasePlugin-odQJAKA-.cjs +0 -2
- package/dist/BasePlugin-odQJAKA-.cjs.map +0 -1
- package/dist/builtin-plugins/base/BasePlugin.d.ts +0 -69
- package/dist/builtin-plugins/csharp/index.d.ts +0 -20
- package/dist/builtin-plugins/go/index.d.ts +0 -23
- package/dist/builtin-plugins/index.d.ts +0 -15
- package/dist/builtin-plugins/java/index.d.ts +0 -22
- package/dist/builtin-plugins/nodejs/index.d.ts +0 -44
- package/dist/builtin-plugins/php/index.d.ts +0 -20
- package/dist/builtin-plugins/python/index.d.ts +0 -27
- package/dist/builtin-plugins/ruby/index.d.ts +0 -20
- package/dist/builtin-plugins/rust/index.d.ts +0 -53
- package/dist/builtin-plugins/swift/index.d.ts +0 -22
- package/dist/default_templates/angular/angular-core.md +0 -19
- package/dist/default_templates/architecture/codeowners.md +0 -123
- package/dist/default_templates/architecture/monorepo.md +0 -146
- package/dist/default_templates/architecture/nx.md +0 -122
- package/dist/default_templates/architecture/turborepo.md +0 -114
- package/dist/default_templates/ci/github-actions.md +0 -268
- package/dist/default_templates/ci/gitlab-ci.md +0 -330
- package/dist/default_templates/containers/docker-multistage.md +0 -120
- package/dist/default_templates/containers/kubernetes-deploy.md +0 -210
- package/dist/default_templates/devops/docker-compose.md +0 -111
- package/dist/default_templates/devops/docker-dockerfile.md +0 -94
- package/dist/default_templates/devops/github-actions.md +0 -160
- package/dist/default_templates/devops/gitlab-ci.md +0 -210
- package/dist/default_templates/dotnet/framework-aspnetcore.md +0 -205
- package/dist/default_templates/dotnet/framework-blazor.md +0 -271
- package/dist/default_templates/dotnet/lang-csharp.md +0 -162
- package/dist/default_templates/generic/lang-typescript.md +0 -11
- package/dist/default_templates/generic/state-redux.md +0 -21
- package/dist/default_templates/generic/state-rxjs.md +0 -6
- package/dist/default_templates/generic/style-mui.md +0 -23
- package/dist/default_templates/generic/style-tailwind.md +0 -6
- package/dist/default_templates/generic/test-cypress.md +0 -21
- package/dist/default_templates/generic/test-jest.md +0 -20
- package/dist/default_templates/generic/test-playwright.md +0 -21
- package/dist/default_templates/generic/test-vitest.md +0 -6
- package/dist/default_templates/go/lang-go.md +0 -571
- package/dist/default_templates/java/build-gradle.md +0 -102
- package/dist/default_templates/java/build-maven.md +0 -86
- package/dist/default_templates/java/framework-spring-boot.md +0 -179
- package/dist/default_templates/java/lang-java.md +0 -78
- package/dist/default_templates/java/lang-kotlin.md +0 -88
- package/dist/default_templates/meta/magic-helix-meta.md +0 -213
- package/dist/default_templates/meta/meta-debug.md +0 -459
- package/dist/default_templates/meta/meta-implement.md +0 -450
- package/dist/default_templates/meta/meta-roadmap.md +0 -265
- package/dist/default_templates/nestjs/nestjs-core.md +0 -7
- package/dist/default_templates/patterns/architecture/clean-architecture.md +0 -469
- package/dist/default_templates/patterns/architecture/dependency-injection.md +0 -517
- package/dist/default_templates/patterns/architecture/domain-driven-design.md +0 -621
- package/dist/default_templates/patterns/architecture/layered-architecture.md +0 -382
- package/dist/default_templates/patterns/architecture/repository-pattern.md +0 -408
- package/dist/default_templates/patterns/domain-expertise/nextjs-rules.md +0 -115
- package/dist/default_templates/patterns/domain-expertise/react-patterns.md +0 -181
- package/dist/default_templates/patterns/domain-expertise/server-components.md +0 -212
- package/dist/default_templates/patterns/domain-expertise/shadcn-ui.md +0 -52
- package/dist/default_templates/patterns/domain-expertise/tailwind-patterns.md +0 -52
- package/dist/default_templates/patterns/environment/container-awareness.md +0 -17
- package/dist/default_templates/patterns/environment/ide-features.md +0 -17
- package/dist/default_templates/patterns/environment/os-commands.md +0 -17
- package/dist/default_templates/patterns/organization/heading-hierarchy.md +0 -103
- package/dist/default_templates/patterns/organization/sequential-workflows.md +0 -102
- package/dist/default_templates/patterns/organization/xml-rule-groups.md +0 -64
- package/dist/default_templates/patterns/reasoning/agent-loop.md +0 -151
- package/dist/default_templates/patterns/reasoning/confirmation-gates.md +0 -141
- package/dist/default_templates/patterns/reasoning/dependency-analysis.md +0 -132
- package/dist/default_templates/patterns/reasoning/one-tool-per-iteration.md +0 -152
- package/dist/default_templates/patterns/reasoning/preview-before-action.md +0 -194
- package/dist/default_templates/patterns/reasoning/reflection-checkpoints.md +0 -166
- package/dist/default_templates/patterns/reasoning/result-verification.md +0 -157
- package/dist/default_templates/patterns/reasoning/subtask-breakdown.md +0 -131
- package/dist/default_templates/patterns/reasoning/thinking-tags.md +0 -100
- package/dist/default_templates/patterns/role-definition/capability-declarations.md +0 -72
- package/dist/default_templates/patterns/role-definition/expert-identity.md +0 -45
- package/dist/default_templates/patterns/role-definition/scope-boundaries.md +0 -61
- package/dist/default_templates/patterns/safety/code-safety-rules.md +0 -17
- package/dist/default_templates/patterns/safety/credential-handling.md +0 -17
- package/dist/default_templates/patterns/safety/destructive-warnings.md +0 -17
- package/dist/default_templates/patterns/safety/refusal-messages.md +0 -17
- package/dist/default_templates/patterns/tone/adaptive-tone.md +0 -17
- package/dist/default_templates/patterns/tone/concise-communication.md +0 -17
- package/dist/default_templates/patterns/tone/forbidden-phrases.md +0 -17
- package/dist/default_templates/patterns/tool-guidelines/function-schemas.md +0 -143
- package/dist/default_templates/patterns/tool-guidelines/parameter-examples.md +0 -137
- package/dist/default_templates/patterns/tool-guidelines/usage-policies.md +0 -105
- package/dist/default_templates/php/framework-laravel.md +0 -112
- package/dist/default_templates/php/lang-php.md +0 -94
- package/dist/default_templates/python/lang-python.md +0 -508
- package/dist/default_templates/react/react-core.md +0 -677
- package/dist/default_templates/react/react-zustand.md +0 -7
- package/dist/default_templates/ruby/framework-rails.md +0 -309
- package/dist/default_templates/ruby/framework-sinatra.md +0 -227
- package/dist/default_templates/ruby/lang-ruby.md +0 -216
- package/dist/default_templates/rust/lang-rust.md +0 -89
- package/dist/default_templates/swift/framework-vapor.md +0 -352
- package/dist/default_templates/swift/lang-swift.md +0 -291
- package/dist/default_templates/vue/style-primevue.md +0 -6
- package/dist/default_templates/vue/style-quasar.md +0 -22
- package/dist/default_templates/vue/vue-core.md +0 -28
- package/dist/default_templates/vue/vue-pinia.md +0 -5
- package/dist/index-AkVwRl-r.js +0 -92
- package/dist/index-AkVwRl-r.js.map +0 -1
- package/dist/index-B6BeG1yT.cjs +0 -68
- package/dist/index-B6BeG1yT.cjs.map +0 -1
- package/dist/index-B8pyjKdF.js +0 -94
- package/dist/index-B8pyjKdF.js.map +0 -1
- package/dist/index-B_6W_RnJ.cjs +0 -76
- package/dist/index-B_6W_RnJ.cjs.map +0 -1
- package/dist/index-Bg8DD8ku.js +0 -216
- package/dist/index-Bg8DD8ku.js.map +0 -1
- package/dist/index-BkJhe5Af.js +0 -1748
- package/dist/index-BkJhe5Af.js.map +0 -1
- package/dist/index-Bv4Q1Pr7.cjs +0 -33
- package/dist/index-Bv4Q1Pr7.cjs.map +0 -1
- package/dist/index-CN8J45Nc.cjs +0 -24
- package/dist/index-CN8J45Nc.cjs.map +0 -1
- package/dist/index-CPbv2Od1.js +0 -62
- package/dist/index-CPbv2Od1.js.map +0 -1
- package/dist/index-Cf-MC6Al.js +0 -63
- package/dist/index-Cf-MC6Al.js.map +0 -1
- package/dist/index-DDPXXXDy.cjs +0 -19
- package/dist/index-DDPXXXDy.cjs.map +0 -1
- package/dist/index-DO30AzDe.cjs +0 -19
- package/dist/index-DO30AzDe.cjs.map +0 -1
- package/dist/index-Dm37u5ut.js +0 -2128
- package/dist/index-Dm37u5ut.js.map +0 -1
- package/dist/index-DqHvgoXJ.cjs +0 -19
- package/dist/index-DqHvgoXJ.cjs.map +0 -1
- package/dist/index-J1qAfsnO.cjs +0 -2
- package/dist/index-J1qAfsnO.cjs.map +0 -1
- package/dist/index-Jz0HYZ7B.js +0 -13
- package/dist/index-Jz0HYZ7B.js.map +0 -1
- package/dist/index-K39pdw94.cjs +0 -31
- package/dist/index-K39pdw94.cjs.map +0 -1
- package/dist/index-L3IVvhd1.cjs +0 -89
- package/dist/index-L3IVvhd1.cjs.map +0 -1
- package/dist/index-OT2XAJkc.js +0 -117
- package/dist/index-OT2XAJkc.js.map +0 -1
- package/dist/index-TPAX4XKg.cjs +0 -30
- package/dist/index-TPAX4XKg.cjs.map +0 -1
- package/dist/index-WmVSB57y.js +0 -107
- package/dist/index-WmVSB57y.js.map +0 -1
- package/dist/index-mYXvc3Fs.js +0 -68
- package/dist/index-mYXvc3Fs.js.map +0 -1
package/dist/index-Bg8DD8ku.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import * as t from "node:path";
|
|
2
|
-
import { B as r } from "./BasePlugin-6wv0hYJ9.js";
|
|
3
|
-
class c extends r {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments), this.name = "nodejs", this.displayName = "Node.js", this.version = "3.0.0", this.priority = 100;
|
|
6
|
-
}
|
|
7
|
-
// High priority - very common
|
|
8
|
-
async detect(e) {
|
|
9
|
-
if (!this.fileExists(e, "package.json"))
|
|
10
|
-
return null;
|
|
11
|
-
const s = this.readJSON(e, "package.json");
|
|
12
|
-
if (!s)
|
|
13
|
-
return {
|
|
14
|
-
language: "JavaScript/TypeScript",
|
|
15
|
-
name: this.getProjectName(e),
|
|
16
|
-
dependencies: {},
|
|
17
|
-
manifestFile: "package.json",
|
|
18
|
-
projectPath: e
|
|
19
|
-
};
|
|
20
|
-
const a = this.parseDependencies(
|
|
21
|
-
s,
|
|
22
|
-
"dependencies",
|
|
23
|
-
"devDependencies"
|
|
24
|
-
), n = {
|
|
25
|
-
language: "JavaScript/TypeScript",
|
|
26
|
-
name: s.name || this.getProjectName(e),
|
|
27
|
-
description: s.description,
|
|
28
|
-
dependencies: a,
|
|
29
|
-
manifestFile: "package.json",
|
|
30
|
-
projectPath: e
|
|
31
|
-
}, i = this.extractWorkspaces(s);
|
|
32
|
-
return i.length > 0 && (n.workspaceMembers = i), n;
|
|
33
|
-
}
|
|
34
|
-
getTemplates() {
|
|
35
|
-
return [
|
|
36
|
-
{
|
|
37
|
-
name: "lang-typescript",
|
|
38
|
-
tags: ["typescript"],
|
|
39
|
-
content: () => this.loadTemplateFromFile(
|
|
40
|
-
t.join(__dirname, "templates/lang-typescript.md")
|
|
41
|
-
).then((e) => e || this.getTypescriptTemplate())
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: "react-core",
|
|
45
|
-
tags: ["react"],
|
|
46
|
-
content: () => this.loadTemplateFromFile(
|
|
47
|
-
t.join(__dirname, "templates/react-core.md")
|
|
48
|
-
).then((e) => e || this.getReactTemplate())
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "react-zustand",
|
|
52
|
-
tags: ["zustand"],
|
|
53
|
-
content: () => this.loadTemplateFromFile(
|
|
54
|
-
t.join(__dirname, "templates/react-zustand.md")
|
|
55
|
-
).then((e) => e || this.getReactZustandTemplate())
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: "vue-core",
|
|
59
|
-
tags: ["vue"],
|
|
60
|
-
content: () => this.loadTemplateFromFile(
|
|
61
|
-
t.join(__dirname, "templates/vue-core.md")
|
|
62
|
-
).then((e) => e || this.getVueTemplate())
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "vue-pinia",
|
|
66
|
-
tags: ["pinia"],
|
|
67
|
-
content: () => this.loadTemplateFromFile(
|
|
68
|
-
t.join(__dirname, "templates/vue-pinia.md")
|
|
69
|
-
).then((e) => e || this.getVuePiniaTemplate())
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: "nestjs-core",
|
|
73
|
-
tags: ["nestjs"],
|
|
74
|
-
content: () => this.loadTemplateFromFile(
|
|
75
|
-
t.join(__dirname, "templates/nestjs-core.md")
|
|
76
|
-
).then((e) => e || this.getNestJSTemplate())
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: "style-tailwind",
|
|
80
|
-
tags: ["tailwind"],
|
|
81
|
-
content: () => this.loadTemplateFromFile(
|
|
82
|
-
t.join(__dirname, "templates/style-tailwind.md")
|
|
83
|
-
).then((e) => e || this.getTailwindTemplate())
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: "test-vitest",
|
|
87
|
-
tags: ["vitest"],
|
|
88
|
-
content: () => this.loadTemplateFromFile(
|
|
89
|
-
t.join(__dirname, "templates/test-vitest.md")
|
|
90
|
-
).then((e) => e || this.getVitestTemplate())
|
|
91
|
-
}
|
|
92
|
-
];
|
|
93
|
-
}
|
|
94
|
-
getDependencyTagMap() {
|
|
95
|
-
return {
|
|
96
|
-
react: "react",
|
|
97
|
-
"react-dom": "react",
|
|
98
|
-
vue: "vue",
|
|
99
|
-
"@vue/runtime-core": "vue",
|
|
100
|
-
pinia: "pinia",
|
|
101
|
-
"@nestjs/core": "nestjs",
|
|
102
|
-
tailwindcss: "tailwind",
|
|
103
|
-
vitest: "vitest",
|
|
104
|
-
zustand: "zustand",
|
|
105
|
-
typescript: "typescript"
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
getConfigFileTagMap() {
|
|
109
|
-
return {
|
|
110
|
-
"tailwind.config.js": "tailwind",
|
|
111
|
-
"tailwind.config.ts": "tailwind",
|
|
112
|
-
"vitest.config.js": "vitest",
|
|
113
|
-
"vitest.config.ts": "vitest",
|
|
114
|
-
"tsconfig.json": "typescript"
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
// Private helper methods
|
|
118
|
-
extractWorkspaces(e) {
|
|
119
|
-
return e.workspaces ? (Array.isArray(e.workspaces) ? e.workspaces : e.workspaces.packages || []).map((a) => a.replace(/\/\*$/, "")) : [];
|
|
120
|
-
}
|
|
121
|
-
// Fallback template content (if files don't exist)
|
|
122
|
-
getTypescriptTemplate() {
|
|
123
|
-
return `# TypeScript Guidelines
|
|
124
|
-
|
|
125
|
-
This project uses TypeScript for type safety.
|
|
126
|
-
|
|
127
|
-
## Type Safety
|
|
128
|
-
- Use strict type checking
|
|
129
|
-
- Avoid \`any\` types
|
|
130
|
-
- Prefer interfaces over types for objects
|
|
131
|
-
|
|
132
|
-
## Best Practices
|
|
133
|
-
- Enable all strict compiler options
|
|
134
|
-
- Use proper type inference
|
|
135
|
-
- Leverage utility types`;
|
|
136
|
-
}
|
|
137
|
-
getReactTemplate() {
|
|
138
|
-
return `# React Development Guidelines
|
|
139
|
-
|
|
140
|
-
This project uses React.
|
|
141
|
-
|
|
142
|
-
## Component Structure
|
|
143
|
-
- Use functional components with hooks
|
|
144
|
-
- Keep components focused and reusable
|
|
145
|
-
- Follow React best practices
|
|
146
|
-
|
|
147
|
-
## State Management
|
|
148
|
-
- Use appropriate state management for complexity
|
|
149
|
-
- Consider component composition
|
|
150
|
-
- Leverage React context when needed`;
|
|
151
|
-
}
|
|
152
|
-
getReactZustandTemplate() {
|
|
153
|
-
return `# Zustand State Management
|
|
154
|
-
|
|
155
|
-
This project uses Zustand for state management.
|
|
156
|
-
|
|
157
|
-
## Store Structure
|
|
158
|
-
- Create focused, modular stores
|
|
159
|
-
- Use selectors to prevent unnecessary re-renders
|
|
160
|
-
- Follow Zustand best practices`;
|
|
161
|
-
}
|
|
162
|
-
getVueTemplate() {
|
|
163
|
-
return `# Vue.js Development Guidelines
|
|
164
|
-
|
|
165
|
-
This project uses Vue.js.
|
|
166
|
-
|
|
167
|
-
## Component Structure
|
|
168
|
-
- Use Composition API
|
|
169
|
-
- Follow Vue.js style guide
|
|
170
|
-
- Keep components composable and reusable`;
|
|
171
|
-
}
|
|
172
|
-
getVuePiniaTemplate() {
|
|
173
|
-
return `# Pinia State Management
|
|
174
|
-
|
|
175
|
-
This project uses Pinia for state management.
|
|
176
|
-
|
|
177
|
-
## Store Structure
|
|
178
|
-
- Create modular stores
|
|
179
|
-
- Use composition stores pattern
|
|
180
|
-
- Follow Pinia best practices`;
|
|
181
|
-
}
|
|
182
|
-
getNestJSTemplate() {
|
|
183
|
-
return `# NestJS Development Guidelines
|
|
184
|
-
|
|
185
|
-
This project uses NestJS framework.
|
|
186
|
-
|
|
187
|
-
## Architecture
|
|
188
|
-
- Follow modular architecture
|
|
189
|
-
- Use dependency injection
|
|
190
|
-
- Implement proper error handling`;
|
|
191
|
-
}
|
|
192
|
-
getTailwindTemplate() {
|
|
193
|
-
return `# Tailwind CSS Guidelines
|
|
194
|
-
|
|
195
|
-
This project uses Tailwind CSS.
|
|
196
|
-
|
|
197
|
-
## Styling Approach
|
|
198
|
-
- Use utility-first classes
|
|
199
|
-
- Create reusable components
|
|
200
|
-
- Follow Tailwind best practices`;
|
|
201
|
-
}
|
|
202
|
-
getVitestTemplate() {
|
|
203
|
-
return `# Vitest Testing Guidelines
|
|
204
|
-
|
|
205
|
-
This project uses Vitest for testing.
|
|
206
|
-
|
|
207
|
-
## Testing Strategy
|
|
208
|
-
- Write unit tests for utilities
|
|
209
|
-
- Use component testing
|
|
210
|
-
- Follow testing best practices`;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
export {
|
|
214
|
-
c as NodeJSPlugin
|
|
215
|
-
};
|
|
216
|
-
//# sourceMappingURL=index-Bg8DD8ku.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bg8DD8ku.js","sources":["../src/builtin-plugins/nodejs/index.ts"],"sourcesContent":["/**\n * Node.js Language Plugin\n *\n * Detects Node.js/JavaScript/TypeScript projects via package.json\n * Supports npm workspaces for monorepo detection\n */\n\nimport * as path from 'node:path';\nimport type { ProjectMetadata, TemplateDefinition } from '../../types';\nimport { BasePlugin } from '../base/BasePlugin';\n\ninterface PackageJson {\n name?: string;\n description?: string;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n workspaces?: string[] | { packages: string[] };\n}\n\nexport class NodeJSPlugin extends BasePlugin {\n name = 'nodejs';\n displayName = 'Node.js';\n version = '3.0.0';\n priority = 100; // High priority - very common\n\n async detect(projectPath: string): Promise<ProjectMetadata | null> {\n if (!this.fileExists(projectPath, 'package.json')) {\n return null;\n }\n\n const pkg = this.readJSON<PackageJson>(projectPath, 'package.json');\n if (!pkg) {\n // package.json exists but couldn't parse - still consider it a Node.js project\n return {\n language: 'JavaScript/TypeScript',\n name: this.getProjectName(projectPath),\n dependencies: {},\n manifestFile: 'package.json',\n projectPath,\n };\n }\n\n const deps = this.parseDependencies(\n pkg as Record<string, unknown>,\n 'dependencies',\n 'devDependencies',\n );\n\n const metadata: ProjectMetadata = {\n language: 'JavaScript/TypeScript',\n name: pkg.name || this.getProjectName(projectPath),\n description: pkg.description,\n dependencies: deps,\n manifestFile: 'package.json',\n projectPath,\n };\n\n // Check for workspaces (monorepo support)\n const workspaces = this.extractWorkspaces(pkg);\n if (workspaces.length > 0) {\n metadata.workspaceMembers = workspaces;\n }\n\n return metadata;\n }\n\n getTemplates(): TemplateDefinition[] {\n return [\n {\n name: 'lang-typescript',\n tags: ['typescript'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/lang-typescript.md'),\n ).then((c) => c || this.getTypescriptTemplate()),\n },\n {\n name: 'react-core',\n tags: ['react'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/react-core.md'),\n ).then((c) => c || this.getReactTemplate()),\n },\n {\n name: 'react-zustand',\n tags: ['zustand'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/react-zustand.md'),\n ).then((c) => c || this.getReactZustandTemplate()),\n },\n {\n name: 'vue-core',\n tags: ['vue'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/vue-core.md'),\n ).then((c) => c || this.getVueTemplate()),\n },\n {\n name: 'vue-pinia',\n tags: ['pinia'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/vue-pinia.md'),\n ).then((c) => c || this.getVuePiniaTemplate()),\n },\n {\n name: 'nestjs-core',\n tags: ['nestjs'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/nestjs-core.md'),\n ).then((c) => c || this.getNestJSTemplate()),\n },\n {\n name: 'style-tailwind',\n tags: ['tailwind'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/style-tailwind.md'),\n ).then((c) => c || this.getTailwindTemplate()),\n },\n {\n name: 'test-vitest',\n tags: ['vitest'],\n content: () =>\n this.loadTemplateFromFile(\n path.join(__dirname, 'templates/test-vitest.md'),\n ).then((c) => c || this.getVitestTemplate()),\n },\n ];\n }\n\n getDependencyTagMap() {\n return {\n react: 'react',\n 'react-dom': 'react',\n vue: 'vue',\n '@vue/runtime-core': 'vue',\n pinia: 'pinia',\n '@nestjs/core': 'nestjs',\n tailwindcss: 'tailwind',\n vitest: 'vitest',\n zustand: 'zustand',\n typescript: 'typescript',\n };\n }\n\n getConfigFileTagMap() {\n return {\n 'tailwind.config.js': 'tailwind',\n 'tailwind.config.ts': 'tailwind',\n 'vitest.config.js': 'vitest',\n 'vitest.config.ts': 'vitest',\n 'tsconfig.json': 'typescript',\n };\n }\n\n // Private helper methods\n\n private extractWorkspaces(pkg: PackageJson): string[] {\n if (!pkg.workspaces) return [];\n\n const workspacePatterns = Array.isArray(pkg.workspaces)\n ? pkg.workspaces\n : pkg.workspaces.packages || [];\n\n // Convert glob patterns to actual paths (simplified - just remove wildcards)\n return workspacePatterns.map((pattern) => pattern.replace(/\\/\\*$/, ''));\n }\n\n // Fallback template content (if files don't exist)\n\n private getTypescriptTemplate(): string {\n return `# TypeScript Guidelines\n\nThis project uses TypeScript for type safety.\n\n## Type Safety\n- Use strict type checking\n- Avoid \\`any\\` types\n- Prefer interfaces over types for objects\n\n## Best Practices\n- Enable all strict compiler options\n- Use proper type inference\n- Leverage utility types`;\n }\n\n private getReactTemplate(): string {\n return `# React Development Guidelines\n\nThis project uses React.\n\n## Component Structure\n- Use functional components with hooks\n- Keep components focused and reusable\n- Follow React best practices\n\n## State Management\n- Use appropriate state management for complexity\n- Consider component composition\n- Leverage React context when needed`;\n }\n\n private getReactZustandTemplate(): string {\n return `# Zustand State Management\n\nThis project uses Zustand for state management.\n\n## Store Structure\n- Create focused, modular stores\n- Use selectors to prevent unnecessary re-renders\n- Follow Zustand best practices`;\n }\n\n private getVueTemplate(): string {\n return `# Vue.js Development Guidelines\n\nThis project uses Vue.js.\n\n## Component Structure\n- Use Composition API\n- Follow Vue.js style guide\n- Keep components composable and reusable`;\n }\n\n private getVuePiniaTemplate(): string {\n return `# Pinia State Management\n\nThis project uses Pinia for state management.\n\n## Store Structure\n- Create modular stores\n- Use composition stores pattern\n- Follow Pinia best practices`;\n }\n\n private getNestJSTemplate(): string {\n return `# NestJS Development Guidelines\n\nThis project uses NestJS framework.\n\n## Architecture\n- Follow modular architecture\n- Use dependency injection\n- Implement proper error handling`;\n }\n\n private getTailwindTemplate(): string {\n return `# Tailwind CSS Guidelines\n\nThis project uses Tailwind CSS.\n\n## Styling Approach\n- Use utility-first classes\n- Create reusable components\n- Follow Tailwind best practices`;\n }\n\n private getVitestTemplate(): string {\n return `# Vitest Testing Guidelines\n\nThis project uses Vitest for testing.\n\n## Testing Strategy\n- Write unit tests for utilities\n- Use component testing\n- Follow testing best practices`;\n }\n}\n"],"names":["NodeJSPlugin","BasePlugin","projectPath","pkg","deps","metadata","workspaces","path","c","pattern"],"mappings":"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"}
|