gherkin-ai 1.3.0 → 1.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"stack-detector.d.ts","sourceRoot":"","sources":["../../src/core/stack-detector.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAsB,GAAG,eAAe,CA0FpF"}
1
+ {"version":3,"file":"stack-detector.d.ts","sourceRoot":"","sources":["../../src/core/stack-detector.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAsB,GAAG,eAAe,CAmNpF"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  /* ==========================================================================
3
- gherkin-ai-cli - Stack & Architecture Auto-Detector for Existing Projects
3
+ gherkin-ai-cli - Multi-Language Stack & Architecture Auto-Detector
4
+ Supports: PHP/Laravel, Ruby/Rails, C#/.NET, Java/Spring, Python/Django/FastAPI,
5
+ Go, Node/Nest/Express, Angular, Ionic, React, Vue, Svelte, Flutter.
4
6
  ========================================================================== */
5
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19,84 +21,196 @@ function detectExistingStack(rootDir = process.cwd()) {
19
21
  rules: { ...config_1.defaultConfig.rules },
20
22
  outputDir: './src'
21
23
  };
22
- const packageJsonPath = path_1.default.join(rootDir, 'package.json');
24
+ const gemfilePath = path_1.default.join(rootDir, 'Gemfile');
25
+ const composerJsonPath = path_1.default.join(rootDir, 'composer.json');
26
+ const artisanPath = path_1.default.join(rootDir, 'artisan');
27
+ const goModPath = path_1.default.join(rootDir, 'go.mod');
23
28
  const pyProjectPath = path_1.default.join(rootDir, 'pyproject.toml');
24
29
  const reqTxtPath = path_1.default.join(rootDir, 'requirements.txt');
30
+ const managePyPath = path_1.default.join(rootDir, 'manage.py');
25
31
  const pomXmlPath = path_1.default.join(rootDir, 'pom.xml');
26
- // 1. Node.js / TypeScript Stack Detection
27
- if ((0, file_system_1.fileExistsSync)(packageJsonPath)) {
32
+ const buildGradlePath = path_1.default.join(rootDir, 'build.gradle');
33
+ const angularJsonPath = path_1.default.join(rootDir, 'angular.json');
34
+ const pubspecPath = path_1.default.join(rootDir, 'pubspec.yaml');
35
+ const packageJsonPath = path_1.default.join(rootDir, 'package.json');
36
+ // 1. Ruby on Rails Stack Detection
37
+ if ((0, file_system_1.fileExistsSync)(gemfilePath)) {
38
+ detected.stack.language = 'ruby';
39
+ detected.stack.framework = 'rails';
40
+ detected.stack.orm = 'active-record';
41
+ detected.stack.database = 'postgresql';
42
+ detected.stack.validation = 'active-model-validations';
43
+ detected.stack.testing = 'rspec';
44
+ detected.architecture = 'monolith';
45
+ detected.outputDir = './app';
46
+ try {
47
+ const gemContent = (0, file_system_1.readFileSync)(gemfilePath);
48
+ if (gemContent.includes('rspec-rails'))
49
+ detected.stack.testing = 'rspec';
50
+ else
51
+ detected.stack.testing = 'minitest';
52
+ }
53
+ catch {
54
+ // Ignore
55
+ }
56
+ }
57
+ // 2. C# / .NET / ASP.NET Core Stack Detection
58
+ else if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'Program.cs')) || (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'appsettings.json'))) {
59
+ detected.stack.language = 'csharp';
60
+ detected.stack.framework = 'dotnet-aspnetcore';
61
+ detected.stack.orm = 'entity-framework-core';
62
+ detected.stack.database = 'sql-server';
63
+ detected.stack.validation = 'fluent-validation';
64
+ detected.stack.testing = 'xunit';
65
+ }
66
+ // 3. PHP / Laravel Stack Detection
67
+ else if ((0, file_system_1.fileExistsSync)(artisanPath) || (0, file_system_1.fileExistsSync)(composerJsonPath)) {
68
+ detected.stack.language = 'php';
69
+ detected.stack.framework = 'laravel';
70
+ detected.stack.orm = 'eloquent';
71
+ detected.stack.database = 'postgresql';
72
+ detected.stack.validation = 'laravel-validation';
73
+ detected.stack.auth = 'laravel-sanctum';
74
+ detected.stack.testing = 'phpunit';
75
+ detected.architecture = 'monolith';
76
+ detected.outputDir = './app';
77
+ if ((0, file_system_1.fileExistsSync)(composerJsonPath)) {
78
+ try {
79
+ const raw = (0, file_system_1.readFileSync)(composerJsonPath);
80
+ const composer = JSON.parse(raw);
81
+ if (composer.name)
82
+ detected.projectName = composer.name.split('/')[1] || composer.name;
83
+ const reqs = { ...(composer.require || {}), ...(composer['require-dev'] || {}) };
84
+ if (reqs['pestphp/pest'])
85
+ detected.stack.testing = 'pest';
86
+ if (reqs['symfony/symfony']) {
87
+ detected.stack.framework = 'symfony';
88
+ detected.stack.orm = 'doctrine';
89
+ }
90
+ }
91
+ catch {
92
+ // Ignore
93
+ }
94
+ }
95
+ }
96
+ // 4. Flutter / Dart Mobile Detection
97
+ else if ((0, file_system_1.fileExistsSync)(pubspecPath)) {
98
+ detected.stack.language = 'dart';
99
+ detected.stack.framework = 'flutter';
100
+ detected.stack.orm = 'sqflite';
101
+ detected.stack.database = 'sqlite';
102
+ detected.stack.validation = 'form-validation';
103
+ detected.stack.testing = 'flutter_test';
104
+ detected.outputDir = './lib';
105
+ }
106
+ // 5. Python Stack Detection (Django / FastAPI / Flask)
107
+ else if ((0, file_system_1.fileExistsSync)(managePyPath) || (0, file_system_1.fileExistsSync)(pyProjectPath) || (0, file_system_1.fileExistsSync)(reqTxtPath)) {
108
+ detected.stack.language = 'python';
109
+ detected.stack.testing = 'pytest';
110
+ detected.stack.database = 'postgresql';
111
+ if ((0, file_system_1.fileExistsSync)(managePyPath)) {
112
+ detected.stack.framework = 'django';
113
+ detected.stack.orm = 'django-orm';
114
+ detected.stack.validation = 'django-forms';
115
+ }
116
+ else {
117
+ detected.stack.framework = 'fastapi';
118
+ detected.stack.orm = 'sqlalchemy';
119
+ detected.stack.validation = 'pydantic';
120
+ }
121
+ }
122
+ // 6. Go Stack Detection
123
+ else if ((0, file_system_1.fileExistsSync)(goModPath)) {
124
+ detected.stack.language = 'go';
125
+ detected.stack.framework = 'gin';
126
+ detected.stack.orm = 'gorm';
127
+ detected.stack.database = 'postgresql';
128
+ detected.stack.validation = 'validator-v10';
129
+ detected.stack.testing = 'testing';
130
+ }
131
+ // 7. Java / Kotlin Stack Detection
132
+ else if ((0, file_system_1.fileExistsSync)(pomXmlPath) || (0, file_system_1.fileExistsSync)(buildGradlePath)) {
133
+ detected.stack.language = 'java';
134
+ detected.stack.framework = 'spring-boot';
135
+ detected.stack.orm = 'hibernate';
136
+ detected.stack.database = 'postgresql';
137
+ detected.stack.validation = 'jakarta-validation';
138
+ detected.stack.testing = 'junit';
139
+ }
140
+ // 8. Node.js / Frontend / Ionic / Angular / React / Vue Stack Detection
141
+ else if ((0, file_system_1.fileExistsSync)(packageJsonPath)) {
28
142
  try {
29
143
  const raw = (0, file_system_1.readFileSync)(packageJsonPath);
30
144
  const pkg = JSON.parse(raw);
31
145
  const allDeps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
32
146
  if (pkg.name)
33
147
  detected.projectName = pkg.name;
34
- // Language
35
- if (allDeps['typescript'] || (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'tsconfig.json'))) {
148
+ // Language Detection (TypeScript if angular, tsconfig or typescript dep exists)
149
+ if (allDeps['typescript'] || (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'tsconfig.json')) || (0, file_system_1.fileExistsSync)(angularJsonPath) || allDeps['@angular/core']) {
36
150
  detected.stack.language = 'typescript';
37
151
  }
38
152
  else {
39
153
  detected.stack.language = 'javascript';
40
154
  }
41
- // Framework
42
- if (allDeps['@nestjs/core'])
155
+ // Angular / Ionic Frontend Detection
156
+ if ((0, file_system_1.fileExistsSync)(angularJsonPath) || allDeps['@angular/core']) {
157
+ if (allDeps['@ionic/angular']) {
158
+ detected.stack.framework = 'ionic-angular';
159
+ }
160
+ else {
161
+ detected.stack.framework = 'angular';
162
+ }
163
+ detected.stack.orm = 'http-client-rxjs';
164
+ detected.stack.database = 'localstorage-indexeddb';
165
+ detected.stack.validation = 'angular-reactive-forms';
166
+ detected.stack.testing = 'jasmine-karma';
167
+ detected.architecture = 'modular';
168
+ detected.outputDir = './src/app';
169
+ }
170
+ // React Native Detection
171
+ else if (allDeps['react-native']) {
172
+ detected.stack.framework = 'react-native';
173
+ detected.stack.orm = 'async-storage';
174
+ detected.stack.database = 'sqlite-capacitor';
175
+ detected.stack.validation = 'zod';
176
+ detected.stack.testing = 'jest';
177
+ detected.architecture = 'modular';
178
+ }
179
+ // React / Next.js Frontend
180
+ else if (allDeps['react'] || allDeps['next']) {
181
+ detected.stack.framework = allDeps['next'] ? 'nextjs' : 'react';
182
+ detected.stack.orm = allDeps['prisma'] ? 'prisma' : 'tanstack-query';
183
+ detected.stack.database = 'postgresql';
184
+ detected.stack.validation = 'zod';
185
+ detected.stack.testing = 'vitest';
186
+ }
187
+ // Vue / Nuxt Frontend
188
+ else if (allDeps['vue'] || allDeps['nuxt']) {
189
+ detected.stack.framework = allDeps['nuxt'] ? 'nuxtjs' : 'vue';
190
+ detected.stack.orm = 'pinia-axios';
191
+ detected.stack.database = 'localstorage';
192
+ detected.stack.validation = 'vee-validate';
193
+ detected.stack.testing = 'vitest';
194
+ }
195
+ // Node.js Backend Frameworks (NestJS, Express, Fastify)
196
+ else if (allDeps['@nestjs/core']) {
43
197
  detected.stack.framework = 'nestjs';
44
- else if (allDeps['express'])
198
+ detected.stack.orm = allDeps['prisma'] ? 'prisma' : 'typeorm';
199
+ detected.stack.validation = 'zod';
200
+ detected.stack.testing = 'jest';
201
+ }
202
+ else if (allDeps['express']) {
45
203
  detected.stack.framework = 'express';
46
- else if (allDeps['fastify'])
47
- detected.stack.framework = 'fastify';
48
- else if (allDeps['next'])
49
- detected.stack.framework = 'nextjs';
50
- // ORM / Persistence
51
- if (allDeps['prisma'] || (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'prisma', 'schema.prisma')))
52
- detected.stack.orm = 'prisma';
53
- else if (allDeps['typeorm'])
54
- detected.stack.orm = 'typeorm';
55
- else if (allDeps['sequelize'])
56
- detected.stack.orm = 'sequelize';
57
- else if (allDeps['mongoose'])
58
- detected.stack.orm = 'mongoose';
59
- // Database
60
- if (allDeps['pg'] || allDeps['postgres'] || allDeps['@prisma/client'])
61
- detected.stack.database = 'postgresql';
62
- else if (allDeps['mongodb'] || allDeps['mongoose'])
63
- detected.stack.database = 'mongodb';
64
- else if (allDeps['redis'] || allDeps['ioredis'])
65
- detected.stack.database = 'redis';
66
- // Validation
67
- if (allDeps['zod'])
204
+ detected.stack.orm = allDeps['prisma'] ? 'prisma' : 'sequelize';
68
205
  detected.stack.validation = 'zod';
69
- else if (allDeps['class-validator'])
70
- detected.stack.validation = 'class-validator';
71
- else if (allDeps['joi'])
72
- detected.stack.validation = 'joi';
73
- // Testing
74
- if (allDeps['jest'])
75
206
  detected.stack.testing = 'jest';
76
- else if (allDeps['vitest'])
77
- detected.stack.testing = 'vitest';
207
+ }
78
208
  }
79
209
  catch {
80
210
  // Ignore JSON parse errors
81
211
  }
82
212
  }
83
- // 2. Python Stack Detection
84
- else if ((0, file_system_1.fileExistsSync)(pyProjectPath) || (0, file_system_1.fileExistsSync)(reqTxtPath)) {
85
- detected.stack.language = 'python';
86
- detected.stack.framework = 'fastapi';
87
- detected.stack.orm = 'sqlalchemy';
88
- detected.stack.validation = 'pydantic';
89
- detected.stack.testing = 'pytest';
90
- }
91
- // 3. Java Stack Detection
92
- else if ((0, file_system_1.fileExistsSync)(pomXmlPath)) {
93
- detected.stack.language = 'java';
94
- detected.stack.framework = 'spring-boot';
95
- detected.stack.orm = 'hibernate';
96
- detected.stack.validation = 'jakarta-validation';
97
- detected.stack.testing = 'junit';
98
- }
99
- // 4. Architecture Style Heuristic Detection
213
+ // 9. Architecture Style Heuristic Detection
100
214
  if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'src', 'domain')) && (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'src', 'ports'))) {
101
215
  detected.architecture = 'hexagonal';
102
216
  }
@@ -106,7 +220,10 @@ function detectExistingStack(rootDir = process.cwd()) {
106
220
  else if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'serverless.yml'))) {
107
221
  detected.architecture = 'serverless';
108
222
  }
109
- else if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'src', 'modules'))) {
223
+ else if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'app', 'Http', 'Controllers')) || (0, file_system_1.fileExistsSync)(artisanPath)) {
224
+ detected.architecture = 'monolith';
225
+ }
226
+ else if ((0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'src', 'modules')) || (0, file_system_1.fileExistsSync)(path_1.default.join(rootDir, 'src', 'app'))) {
110
227
  detected.architecture = 'modular';
111
228
  }
112
229
  return detected;
@@ -1 +1 @@
1
- {"version":3,"file":"stack-detector.js","sourceRoot":"","sources":["../../src/core/stack-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-detector.js","sourceRoot":"","sources":["../../src/core/stack-detector.ts"],"names":[],"mappings":";AAAA;;;;gFAIgF;;;;;AAMhF,kDAmNC;AAvND,gDAAwB;AACxB,sDAAoE;AACpE,qCAA0D;AAE1D,SAAgB,mBAAmB,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACjE,MAAM,QAAQ,GAAoB;QAChC,WAAW,EAAE,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,kBAAkB;QACzD,WAAW,EAAE,YAAY;QACzB,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,EAAE,GAAG,sBAAa,CAAC,KAAK,EAAE;QACjC,KAAK,EAAE,EAAE,GAAG,sBAAa,CAAC,KAAK,EAAE;QACjC,SAAS,EAAE,OAAO;KACnB,CAAC;IAEF,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE3D,mCAAmC;IACnC,IAAI,IAAA,4BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,eAAe,CAAC;QACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;QACvD,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACjC,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC;QACnC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,0BAAY,EAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;;gBACpE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,8CAA8C;SACzC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACpH,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC/C,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,uBAAuB,CAAC;QAC7C,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC;IACD,mCAAmC;SAC9B,IAAI,IAAA,4BAAc,EAAC,WAAW,CAAC,IAAI,IAAA,4BAAc,EAAC,gBAAgB,CAAC,EAAE,CAAC;QACzE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;QAChC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,oBAAoB,CAAC;QACjD,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACxC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;QACnC,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC;QACnC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;QAE7B,IAAI,IAAA,4BAAc,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAA,0BAAY,EAAC,gBAAgB,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,QAAQ,CAAC,IAAI;oBAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;gBAEvF,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjF,IAAI,IAAI,CAAC,cAAc,CAAC;oBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC5B,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;oBACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,qCAAqC;SAChC,IAAI,IAAA,4BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;QACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;QAC9C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;QACxC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,uDAAuD;SAClD,IAAI,IAAA,4BAAc,EAAC,YAAY,CAAC,IAAI,IAAA,4BAAc,EAAC,aAAa,CAAC,IAAI,IAAA,4BAAc,EAAC,UAAU,CAAC,EAAE,CAAC;QACrG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;QAClC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QAEvC,IAAI,IAAA,4BAAc,EAAC,YAAY,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACpC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;YAClC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;YAClC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACzC,CAAC;IACH,CAAC;IACD,wBAAwB;SACnB,IAAI,IAAA,4BAAc,EAAC,SAAS,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC;QAC5C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;IACrC,CAAC;IACD,mCAAmC;SAC9B,IAAI,IAAA,4BAAc,EAAC,UAAU,CAAC,IAAI,IAAA,4BAAc,EAAC,eAAe,CAAC,EAAE,CAAC;QACvE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;QACzC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,oBAAoB,CAAC;QACjD,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC;IACD,wEAAwE;SACnE,IAAI,IAAA,4BAAc,EAAC,eAAe,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAA,0BAAY,EAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;YAEhF,IAAI,GAAG,CAAC,IAAI;gBAAE,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;YAE9C,gFAAgF;YAChF,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChJ,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;YACzC,CAAC;YAED,qCAAqC;YACrC,IAAI,IAAA,4BAAc,EAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChE,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC9B,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBACvC,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC;gBACxC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,wBAAwB,CAAC;gBACnD,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,wBAAwB,CAAC;gBACrD,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC;gBACzC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;gBAClC,QAAQ,CAAC,SAAS,GAAG,WAAW,CAAC;YACnC,CAAC;YACD,yBAAyB;iBACpB,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC;gBAC1C,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,eAAe,CAAC;gBACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC;gBAC7C,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAChC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;YACpC,CAAC;YACD,2BAA2B;iBACtB,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBAChE,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACrE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;gBACvC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;YACpC,CAAC;YACD,sBAAsB;iBACjB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC;gBACnC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACzC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC;gBAC3C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;YACpC,CAAC;YACD,wDAAwD;iBACnD,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;gBACpC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9D,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAClC,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;gBAChE,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAClC,CAAC;QAEH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9G,QAAQ,CAAC,YAAY,GAAG,WAAW,CAAC;IACtC,CAAC;SAAM,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACxH,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC;IACjC,CAAC;SAAM,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAChE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACvC,CAAC;SAAM,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;QAC3G,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC;IACrC,CAAC;SAAM,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,IAAA,4BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACpH,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -2,4 +2,6 @@ export declare function ensureDirSync(dirPath: string): void;
2
2
  export declare function writeFileSync(filePath: string, content: string): void;
3
3
  export declare function readFileSync(filePath: string): string;
4
4
  export declare function fileExistsSync(filePath: string): boolean;
5
+ export declare function removeFileSync(filePath: string): void;
6
+ export declare function removeDirSync(dirPath: string): void;
5
7
  //# sourceMappingURL=file-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD"}
1
+ {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAInD"}
@@ -10,6 +10,8 @@ exports.ensureDirSync = ensureDirSync;
10
10
  exports.writeFileSync = writeFileSync;
11
11
  exports.readFileSync = readFileSync;
12
12
  exports.fileExistsSync = fileExistsSync;
13
+ exports.removeFileSync = removeFileSync;
14
+ exports.removeDirSync = removeDirSync;
13
15
  const fs_1 = __importDefault(require("fs"));
14
16
  const path_1 = __importDefault(require("path"));
15
17
  function ensureDirSync(dirPath) {
@@ -28,4 +30,14 @@ function readFileSync(filePath) {
28
30
  function fileExistsSync(filePath) {
29
31
  return fs_1.default.existsSync(filePath);
30
32
  }
33
+ function removeFileSync(filePath) {
34
+ if (fs_1.default.existsSync(filePath)) {
35
+ fs_1.default.unlinkSync(filePath);
36
+ }
37
+ }
38
+ function removeDirSync(dirPath) {
39
+ if (fs_1.default.existsSync(dirPath)) {
40
+ fs_1.default.rmSync(dirPath, { recursive: true, force: true });
41
+ }
42
+ }
31
43
  //# sourceMappingURL=file-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAKhF,sCAIC;AAED,sCAIC;AAED,oCAEC;AAED,wCAEC;AArBD,4CAAoB;AACpB,gDAAwB;AAExB,SAAgB,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,OAAe;IAC7D,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IAC3C,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,cAAc,CAAC,QAAgB;IAC7C,OAAO,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAKhF,sCAIC;AAED,sCAIC;AAED,oCAEC;AAED,wCAEC;AAED,wCAIC;AAED,sCAIC;AAjCD,4CAAoB;AACpB,gDAAwB;AAExB,SAAgB,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,OAAe;IAC7D,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IAC3C,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,cAAc,CAAC,QAAgB;IAC7C,OAAO,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,OAAe;IAC3C,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,YAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gherkin-ai",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "CLI tool & contract engine translating Gherkin specs into production-grade executable prompts, TypeScript contracts, and seed fixtures for AI Coding Agents.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -33,7 +33,17 @@
33
33
  "antigravity",
34
34
  "ghk",
35
35
  "brownfield",
36
- "detect"
36
+ "detect",
37
+ "laravel",
38
+ "php",
39
+ "ruby",
40
+ "rails",
41
+ "dotnet",
42
+ "csharp",
43
+ "angular",
44
+ "ionic",
45
+ "react-native",
46
+ "flutter"
37
47
  ],
38
48
  "author": "Fenner Eduardo <contact@fennereduardo.com> (https://fennereduardo.com)",
39
49
  "license": "MIT",