swagger-to-playwright-api-clients 1.0.27 → 1.0.28

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.
Files changed (55) hide show
  1. package/README.md +49 -57
  2. package/dist/api.d.ts +2 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +10 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.js +4 -1
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config/types.d.ts +13 -0
  9. package/dist/config/types.d.ts.map +1 -1
  10. package/dist/config/types.js +2 -0
  11. package/dist/config/types.js.map +1 -1
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +3 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/utils/copyHelpers.d.ts +24 -0
  17. package/dist/utils/copyHelpers.d.ts.map +1 -0
  18. package/dist/utils/copyHelpers.js +94 -0
  19. package/dist/utils/copyHelpers.js.map +1 -0
  20. package/dist/utils/logger.d.ts +0 -14
  21. package/dist/utils/logger.d.ts.map +1 -1
  22. package/dist/utils/logger.js +5 -47
  23. package/dist/utils/logger.js.map +1 -1
  24. package/dist/utils/swagger/run-generator.d.ts.map +1 -1
  25. package/dist/utils/swagger/run-generator.js +0 -3
  26. package/dist/utils/swagger/run-generator.js.map +1 -1
  27. package/dist/utils/templates/ApiAssertions.template.d.ts +6 -0
  28. package/dist/utils/templates/ApiAssertions.template.d.ts.map +1 -0
  29. package/dist/utils/templates/ApiAssertions.template.js +128 -0
  30. package/dist/utils/templates/ApiAssertions.template.js.map +1 -0
  31. package/dist/utils/templates/ApiStatusCodes.template.d.ts +6 -0
  32. package/dist/utils/templates/ApiStatusCodes.template.d.ts.map +1 -0
  33. package/dist/utils/templates/ApiStatusCodes.template.js +45 -0
  34. package/dist/utils/templates/ApiStatusCodes.template.js.map +1 -0
  35. package/dist/utils/templates/SecurityPayloads.template.d.ts +6 -0
  36. package/dist/utils/templates/SecurityPayloads.template.d.ts.map +1 -0
  37. package/dist/utils/templates/SecurityPayloads.template.js +156 -0
  38. package/dist/utils/templates/SecurityPayloads.template.js.map +1 -0
  39. package/dist/utils/templates/SetupHelpers.template.d.ts +6 -0
  40. package/dist/utils/templates/SetupHelpers.template.d.ts.map +1 -0
  41. package/dist/utils/templates/SetupHelpers.template.js +69 -0
  42. package/dist/utils/templates/SetupHelpers.template.js.map +1 -0
  43. package/dist/utils/templates/TestDataGenerator.template.d.ts +6 -0
  44. package/dist/utils/templates/TestDataGenerator.template.d.ts.map +1 -0
  45. package/dist/utils/templates/TestDataGenerator.template.js +407 -0
  46. package/dist/utils/templates/TestDataGenerator.template.js.map +1 -0
  47. package/dist/utils/templates/TypeValidator.template.d.ts +6 -0
  48. package/dist/utils/templates/TypeValidator.template.d.ts.map +1 -0
  49. package/dist/utils/templates/TypeValidator.template.js +194 -0
  50. package/dist/utils/templates/TypeValidator.template.js.map +1 -0
  51. package/dist/utils/templates/index.d.ts +10 -0
  52. package/dist/utils/templates/index.d.ts.map +1 -0
  53. package/dist/utils/templates/index.js +19 -0
  54. package/dist/utils/templates/index.js.map +1 -0
  55. package/package.json +1 -1
package/README.md CHANGED
@@ -87,70 +87,51 @@ npx swagger-to-playwright --help
87
87
  npx swagger-to-playwright init
88
88
  ```
89
89
 
90
- ## Programmatic Usage
90
+ ## Wrting Tests with Generated Clients
91
91
 
92
- ```typescript
93
- import { generate, generateFromConfig } from 'swagger-to-playwright-api-clients';
94
-
95
- // Generate from a single source
96
- const result = await generate({
97
- source: './swagger.json',
98
- type: 'file',
99
- outputDir: './src/clients',
100
- serviceName: 'MyService',
101
- });
92
+ The generator produces typed fixture clients, assertion helpers, test data utilities,
93
+ and status-code constants so tests stay concise and consistent.
102
94
 
103
- // Generate from config object
104
- const results = await generateFromConfig({
105
- outputDir: './src/clients',
106
- sources: [{ type: 'file', source: './swagger.json', serviceName: 'MyService' }],
107
- });
108
- ```
95
+ ```typescript
96
+ // Import test & expect from the generated fixtures — NOT from @playwright/test
97
+ import { test, expect } from '../src/fixtures/fixtures';
98
+ import { ApiAssertions } from '../src/utils/ApiAssertions';
99
+ import { STATUS } from '../src/helpers/ApiStatusCodes';
100
+ import { random } from '../src/utils/TestDataGenerator';
109
101
 
110
- ## Using Generated Clients
102
+ test('get all pets', async ({ petClient }) => {
103
+ const { body, status } = await petClient.findPetsByStatus('available');
111
104
 
112
- ```typescript
113
- import { test, expect } from '@playwright/test';
114
- import { BaseAPIClient } from './clients/BaseAPIClient';
115
- import { MyServiceActivityClient } from './clients/generatedClients/MyService/Activity/MyServiceActivityClient';
116
-
117
- test('API test example', async () => {
118
- const baseClient = new BaseAPIClient('https://api.example.com', {
119
- 'Content-Type': 'application/json',
120
- Authorization: 'Bearer your-token',
121
- });
122
- await baseClient.init();
105
+ ApiAssertions.expectStatus(status, STATUS.OK);
106
+ expect(body?.length).toBeGreaterThan(0);
107
+ });
123
108
 
124
- const activityClient = new MyServiceActivityClient(baseClient);
109
+ test('create and delete a pet', async ({ petClient, cleanup }) => {
110
+ const payload = { name: random.fullName(), status: 'available' };
125
111
 
126
- const { body, status } = await activityClient.getActivities();
112
+ const { body, status } = await petClient.addPet(payload);
127
113
 
128
- expect(status).toBe(200);
129
- expect(body.activities).toBeDefined();
114
+ // Register cleanup BEFORE asserting so teardown runs even on failure
115
+ cleanup.register(async () => {
116
+ await petClient.deletePet(body?.id);
117
+ });
130
118
 
131
- await baseClient.dispose();
119
+ ApiAssertions.expectStatus(status, STATUS.OK);
120
+ expect(body?.name).toBe(payload.name);
132
121
  });
133
122
  ```
134
123
 
135
124
  ### With Request/Response Logging
136
125
 
137
126
  ```typescript
138
- import { getLogger, configureLogger } from 'swagger-to-playwright-api-clients';
139
- import { BaseAPIClient } from './clients/BaseAPIClient';
127
+ import { configureLogger, getLogger } from 'swagger-to-playwright-api-clients';
140
128
 
141
- // Configure logger (optional - uses defaults if not called)
129
+ // Configure logger (optional reads generator-config.ts by default)
142
130
  configureLogger({
143
131
  level: 'debug',
144
132
  console: true,
145
133
  file: false,
146
134
  });
147
-
148
- // Pass logger to BaseAPIClient for request/response logging
149
- const baseClient = new BaseAPIClient(
150
- 'https://api.example.com',
151
- { 'Content-Type': 'application/json' },
152
- getLogger() // Winston logger instance
153
- );
154
135
  ```
155
136
 
156
137
  ## Configuration Options
@@ -184,19 +165,30 @@ const config: AutomationConfig = {
184
165
  ## Generated Structure
185
166
 
186
167
  ```
187
- src/clients/
188
- ├── BaseAPIClient.ts # Base client (auto-copied)
189
- └── generatedClients/
190
- └── MyService/
191
- ├── Activity/
192
- ├── types.ts
193
- └── MyServiceActivityClient.ts
194
- ├── Users/
195
- ├── types.ts
196
- └── MyServiceUsersClient.ts
197
- └── Root/
198
- ├── types.ts
199
- └── MyServiceRootClient.ts
168
+ src/
169
+ ├── clients/
170
+ │ ├── BaseAPIClient.ts # Base client (auto-copied)
171
+ └── generatedClients/
172
+ │ └── MyService/
173
+ ├── Activity/
174
+ ├── types.ts
175
+ │ │ └── MyServiceActivityClient.ts
176
+ ├── Users/
177
+ ├── types.ts
178
+ │ │ └── MyServiceUsersClient.ts
179
+ │ └── Root/
180
+ │ ├── types.ts
181
+ │ └── MyServiceRootClient.ts
182
+ ├── fixtures/
183
+ │ └── fixtures.ts # Playwright fixtures with typed clients
184
+ ├── helpers/
185
+ │ ├── ApiStatusCodes.ts # Named HTTP status constants
186
+ │ └── SetupHelpers.ts # Precondition / teardown helpers
187
+ └── utils/
188
+ ├── ApiAssertions.ts # Typed assertion helpers
189
+ ├── SecurityPayloads.ts # Security test payloads
190
+ ├── TestDataGenerator.ts # Random test data builders
191
+ └── TypeValidator.ts # Runtime type validation
200
192
  ```
201
193
 
202
194
  ## Peer Dependencies
package/dist/api.d.ts CHANGED
@@ -14,6 +14,8 @@ export declare function generate(options: {
14
14
  outputDir: string;
15
15
  baseClientPath?: string;
16
16
  copyBaseClient?: boolean;
17
+ copyHelperFunctions?: boolean;
18
+ helperFunctionsDir?: string;
17
19
  }): Promise<GeneratorResult>;
18
20
  /**
19
21
  * Generate API clients from a configuration object
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAA2C,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAgB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAoB,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAIrF;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4B3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CActF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwC9E"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAA2C,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAgB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAoB,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKrF;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,eAAe,CAAC,CAmC3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBtF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwC9E"}
package/dist/api.js CHANGED
@@ -46,15 +46,20 @@ const types_1 = require("./config/types");
46
46
  const run_generator_1 = require("./utils/swagger/run-generator");
47
47
  const SwaggerGenerator_1 = require("./utils/swagger/SwaggerGenerator");
48
48
  const copyBaseClient_1 = require("./utils/copyBaseClient");
49
+ const copyHelpers_1 = require("./utils/copyHelpers");
49
50
  /**
50
51
  * Generate API clients from a single swagger source
51
52
  */
52
53
  async function generate(options) {
53
- const { source, type, outputDir, baseClientPath, copyBaseClient: shouldCopyBaseClient = true, } = options;
54
+ const { source, type, outputDir, baseClientPath, copyBaseClient: shouldCopyBaseClient = true, copyHelperFunctions: shouldCopyHelpers = true, helperFunctionsDir, } = options;
54
55
  // Copy BaseAPIClient if needed
55
56
  if (shouldCopyBaseClient && !baseClientPath) {
56
57
  await (0, copyBaseClient_1.copyBaseClient)(outputDir);
57
58
  }
59
+ // Copy helper/utility files if needed
60
+ if (shouldCopyHelpers) {
61
+ await (0, copyHelpers_1.copyHelpers)(outputDir, helperFunctionsDir);
62
+ }
58
63
  const generatedClientsDir = path.join(outputDir, 'generatedClients');
59
64
  await fs.promises.mkdir(generatedClientsDir, { recursive: true });
60
65
  const generator = new SwaggerGenerator_1.SwaggerGenerator({
@@ -83,6 +88,10 @@ async function generateFromConfig(config) {
83
88
  // Use the default base client path relative to generated clients
84
89
  mergedConfig.baseClientPath = types_1.DEFAULT_BASE_CLIENT_PATH;
85
90
  }
91
+ // Copy helper/utility files if needed
92
+ if (mergedConfig.copyHelperFunctions !== false) {
93
+ await (0, copyHelpers_1.copyHelpers)(mergedConfig.outputDir, mergedConfig.helperFunctionsDir);
94
+ }
86
95
  return (0, run_generator_1.runGenerator)(mergedConfig);
87
96
  }
88
97
  /**
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -131,6 +131,9 @@ const config: AutomationConfig = {
131
131
  // Whether to copy BaseAPIClient.ts to output directory
132
132
  copyBaseClient: true,
133
133
 
134
+ // Whether to copy helper/utility files (TestDataGenerator, ApiAssertions, TypeValidator, ApiStatusCodes)
135
+ copyHelperFunctions: true,
136
+
134
137
  // BaseAPIClient import path (relative to generated client files)
135
138
  // Generated clients are at: outputDir/generatedClients/FolderName/
136
139
  // Default: '../../BaseAPIClient' - library will copy BaseAPIClient.ts to outputDir
@@ -164,7 +167,7 @@ const config: AutomationConfig = {
164
167
 
165
168
  // Output directory for the generated fixtures file
166
169
  // Default: same as outputDir
167
- // fixturesDir: path.join(__dirname, 'src/tests'),
170
+ fixturesDir: path.join(__dirname, 'src/fixtures'),
168
171
 
169
172
  // Swagger/OpenAPI sources
170
173
  sources: [
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,+BAAiE;AAGjE,MAAM,oBAAoB,GAAG;IAC5B,qBAAqB;IACrB,qBAAqB;IACrB,6BAA6B;IAC7B,6BAA6B;CAC7B,CAAC;AAEF,KAAK,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,SAAS;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCZ,CAAC,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,sCAAsC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACzD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAEnE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFtB,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,IAAI;IAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,cAAc;IACd,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,SAAS,EAAE,CAAC;QACZ,OAAO;IACR,CAAC;IAED,iBAAiB;IACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,YAAY,EAAE,CAAC;QACf,OAAO;IACR,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,UAAU,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAE/E,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,IAAA,cAAQ,EAAC;YAC7B,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,YAAY,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,OAAO;IACR,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAU,EAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAkB,EAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,19 @@ export interface AutomationConfig {
91
91
  * Default: true (if baseClientPath is not provided)
92
92
  */
93
93
  copyBaseClient?: boolean;
94
+ /**
95
+ * Optional: Whether to copy helper/utility files to output directory
96
+ * Copies: TestDataGenerator, ApiAssertions, TypeValidator, CleanupManager,
97
+ * SecurityPayloads, ResponseLogger (utils/) and ApiStatusCodes, SetupHelpers (helpers/)
98
+ * Default: true
99
+ */
100
+ copyHelperFunctions?: boolean;
101
+ /**
102
+ * Optional: Base directory for helper/utility files.
103
+ * By default, files are written to the parent of outputDir (e.g. src/)
104
+ * so that when outputDir is src/clients/, helpers land at src/utils/ and src/helpers/.
105
+ */
106
+ helperFunctionsDir?: string;
94
107
  /**
95
108
  * Optional: Whether to clean output directory before generation
96
109
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAOjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,gBAAgB,CASnD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAOjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAWnD,CAAC"}
@@ -25,6 +25,8 @@ exports.defaultConfig = {
25
25
  cleanOutput: true,
26
26
  parallel: false,
27
27
  copyBaseClient: true,
28
+ copyHelperFunctions: true,
29
+ helperFunctionsDir: undefined, // Default: parent of outputDir
28
30
  baseClientPath: exports.DEFAULT_BASE_CLIENT_PATH,
29
31
  logger: exports.defaultLoggerConfig,
30
32
  prettierConfig: undefined, // Use default Prettier config
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgJH;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAChD,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,OAAO,EAAE,MAAM;IAC5B,QAAQ,EAAE,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,aAAa,GAA8B;IACvD,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,gCAAwB;IACxC,MAAM,EAAE,2BAAmB;IAC3B,cAAc,EAAE,SAAS,EAAE,8BAA8B;IACzD,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,SAAS,EAAE,6BAA6B;CACrD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+JH;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAChD,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,OAAO,EAAE,MAAM;IAC5B,QAAQ,EAAE,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,aAAa,GAA8B;IACvD,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,SAAS,EAAE,+BAA+B;IAC9D,cAAc,EAAE,gCAAwB;IACxC,MAAM,EAAE,2BAAmB;IAC3B,cAAc,EAAE,SAAS,EAAE,8BAA8B;IACzD,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,SAAS,EAAE,6BAA6B;CACrD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,10 +11,11 @@ export * from './utils/swagger/types';
11
11
  export * from './utils/swagger/utils/naming';
12
12
  export * from './utils/swagger/utils/pathUtils';
13
13
  export { AutomationConfig, SwaggerSourceConfig, LoggerConfig, LogLevel, defaultConfig, defaultLoggerConfig, DEFAULT_BASE_CLIENT_PATH, } from './config/types';
14
- export { default as logger, getLogger, configureLogger, getLoggerConfig, persistLoggerConfig, LOGGER_CONFIG_FILE, logRequest, logError, } from './utils/logger';
14
+ export { default as logger, getLogger, configureLogger, getLoggerConfig, logRequest, logError, } from './utils/logger';
15
15
  export { formatCode, formatFile, formatFiles, loadPrettierConfig, clearPrettierCache, } from './utils/formatter';
16
16
  export { runGenerator, RunResults } from './utils/swagger/run-generator';
17
17
  export { BaseAPIClient, RequestOptions, APIResponseResult, QueryParamValue, } from './clients/BaseAPIClient';
18
18
  export { copyBaseClient } from './utils/copyBaseClient';
19
+ export { copyHelpers } from './utils/copyHelpers';
19
20
  export { generate, generateFromConfig, loadConfig } from './api';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,cAAc,uBAAuB,CAAC;AAGtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,OAAO,IAAI,MAAM,EACjB,SAAS,EACT,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,QAAQ,GACR,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,cAAc,uBAAuB,CAAC;AAGtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,OAAO,IAAI,MAAM,EACjB,SAAS,EACT,eAAe,EACf,eAAe,EACf,UAAU,EACV,QAAQ,GACR,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21
21
  return (mod && mod.__esModule) ? mod : { "default": mod };
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.loadConfig = exports.generateFromConfig = exports.generate = exports.copyBaseClient = exports.BaseAPIClient = exports.runGenerator = exports.clearPrettierCache = exports.loadPrettierConfig = exports.formatFiles = exports.formatFile = exports.formatCode = exports.logError = exports.logRequest = exports.LOGGER_CONFIG_FILE = exports.persistLoggerConfig = exports.getLoggerConfig = exports.configureLogger = exports.getLogger = exports.logger = exports.DEFAULT_BASE_CLIENT_PATH = exports.defaultLoggerConfig = exports.defaultConfig = exports.FileWriter = exports.ClientGenerator = exports.TypeGenerator = exports.SwaggerParser = exports.generateFromUrl = exports.generateFromFile = exports.SwaggerGenerator = void 0;
24
+ exports.loadConfig = exports.generateFromConfig = exports.generate = exports.copyHelpers = exports.copyBaseClient = exports.BaseAPIClient = exports.runGenerator = exports.clearPrettierCache = exports.loadPrettierConfig = exports.formatFiles = exports.formatFile = exports.formatCode = exports.logError = exports.logRequest = exports.getLoggerConfig = exports.configureLogger = exports.getLogger = exports.logger = exports.DEFAULT_BASE_CLIENT_PATH = exports.defaultLoggerConfig = exports.defaultConfig = exports.FileWriter = exports.ClientGenerator = exports.TypeGenerator = exports.SwaggerParser = exports.generateFromUrl = exports.generateFromFile = exports.SwaggerGenerator = void 0;
25
25
  // Core generator exports
26
26
  var SwaggerGenerator_1 = require("./utils/swagger/SwaggerGenerator");
27
27
  Object.defineProperty(exports, "SwaggerGenerator", { enumerable: true, get: function () { return SwaggerGenerator_1.SwaggerGenerator; } });
@@ -51,8 +51,6 @@ Object.defineProperty(exports, "logger", { enumerable: true, get: function () {
51
51
  Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_1.getLogger; } });
52
52
  Object.defineProperty(exports, "configureLogger", { enumerable: true, get: function () { return logger_1.configureLogger; } });
53
53
  Object.defineProperty(exports, "getLoggerConfig", { enumerable: true, get: function () { return logger_1.getLoggerConfig; } });
54
- Object.defineProperty(exports, "persistLoggerConfig", { enumerable: true, get: function () { return logger_1.persistLoggerConfig; } });
55
- Object.defineProperty(exports, "LOGGER_CONFIG_FILE", { enumerable: true, get: function () { return logger_1.LOGGER_CONFIG_FILE; } });
56
54
  Object.defineProperty(exports, "logRequest", { enumerable: true, get: function () { return logger_1.logRequest; } });
57
55
  Object.defineProperty(exports, "logError", { enumerable: true, get: function () { return logger_1.logError; } });
58
56
  // Formatter exports - for formatting generated code
@@ -71,6 +69,8 @@ Object.defineProperty(exports, "BaseAPIClient", { enumerable: true, get: functio
71
69
  // Copy utilities for generated output
72
70
  var copyBaseClient_1 = require("./utils/copyBaseClient");
73
71
  Object.defineProperty(exports, "copyBaseClient", { enumerable: true, get: function () { return copyBaseClient_1.copyBaseClient; } });
72
+ var copyHelpers_1 = require("./utils/copyHelpers");
73
+ Object.defineProperty(exports, "copyHelpers", { enumerable: true, get: function () { return copyHelpers_1.copyHelpers; } });
74
74
  // Programmatic API
75
75
  var api_1 = require("./api");
76
76
  Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return api_1.generate; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,qEAM0C;AALzC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAIhB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,wGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsC;AAEtC,kBAAkB;AAClB,+DAA6C;AAC7C,kEAAgD;AAEhD,eAAe;AACf,wCAQwB;AAHvB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AACnB,iHAAA,wBAAwB,OAAA;AAGzB,gEAAgE;AAChE,yCASwB;AARvB,iHAAA,OAAO,OAAU;AACjB,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAClB,oGAAA,UAAU,OAAA;AACV,kGAAA,QAAQ,OAAA;AAGT,oDAAoD;AACpD,+CAM2B;AAL1B,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAGnB,SAAS;AACT,+DAAyE;AAAhE,6GAAA,YAAY,OAAA;AAErB,kCAAkC;AAClC,yDAKiC;AAJhC,8GAAA,aAAa,OAAA;AAMd,sCAAsC;AACtC,yDAAwD;AAA/C,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,6BAAiE;AAAxD,+FAAA,QAAQ,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,iGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,qEAM0C;AALzC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAIhB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,wGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsC;AAEtC,kBAAkB;AAClB,+DAA6C;AAC7C,kEAAgD;AAEhD,eAAe;AACf,wCAQwB;AAHvB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AACnB,iHAAA,wBAAwB,OAAA;AAGzB,gEAAgE;AAChE,yCAOwB;AANvB,iHAAA,OAAO,OAAU;AACjB,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,kGAAA,QAAQ,OAAA;AAGT,oDAAoD;AACpD,+CAM2B;AAL1B,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAGnB,SAAS;AACT,+DAAyE;AAAhE,6GAAA,YAAY,OAAA;AAErB,kCAAkC;AAClC,yDAKiC;AAJhC,8GAAA,aAAa,OAAA;AAMd,sCAAsC;AACtC,yDAAwD;AAA/C,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,mBAAmB;AACnB,6BAAiE;AAAxD,+FAAA,QAAQ,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,iGAAA,UAAU,OAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Utility to copy helper/utility files to user's project
3
+ *
4
+ * Copies:
5
+ * utils/ — TestDataGenerator, ApiAssertions, TypeValidator, SecurityPayloads
6
+ * helpers/ — ApiStatusCodes, SetupHelpers
7
+ *
8
+ * Files are written to the PARENT of outputDir so they land in src/utils/ and
9
+ * src/helpers/ when outputDir is src/clients/. Override with helperFunctionsDir.
10
+ */
11
+ /**
12
+ * Copy all helper/utility files to the user's project.
13
+ *
14
+ * By default, files are written to the PARENT of outputDir so that when
15
+ * outputDir is `src/clients/`, helpers land at `src/utils/` and `src/helpers/`.
16
+ *
17
+ * Override with an explicit `helperFunctionsDir` to write elsewhere.
18
+ *
19
+ * @param outputDir The main outputDir from config (e.g. `src/clients/`)
20
+ * @param helperFunctionsDir Optional explicit base dir for helpers
21
+ * @returns Array of absolute paths of written files
22
+ */
23
+ export declare function copyHelpers(outputDir: string, helperFunctionsDir?: string): Promise<string[]>;
24
+ //# sourceMappingURL=copyHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/copyHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmCH;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAChC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * Utility to copy helper/utility files to user's project
4
+ *
5
+ * Copies:
6
+ * utils/ — TestDataGenerator, ApiAssertions, TypeValidator, SecurityPayloads
7
+ * helpers/ — ApiStatusCodes, SetupHelpers
8
+ *
9
+ * Files are written to the PARENT of outputDir so they land in src/utils/ and
10
+ * src/helpers/ when outputDir is src/clients/. Override with helperFunctionsDir.
11
+ */
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 __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.copyHelpers = copyHelpers;
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const logger_1 = __importDefault(require("./logger"));
53
+ const templates_1 = require("./templates");
54
+ const HELPER_FILES = [
55
+ // utils/
56
+ { relativePath: 'utils/TestDataGenerator.ts', content: templates_1.TEST_DATA_GENERATOR_CONTENT },
57
+ { relativePath: 'utils/ApiAssertions.ts', content: templates_1.API_ASSERTIONS_CONTENT },
58
+ { relativePath: 'utils/TypeValidator.ts', content: templates_1.TYPE_VALIDATOR_CONTENT },
59
+ { relativePath: 'utils/SecurityPayloads.ts', content: templates_1.SECURITY_PAYLOADS_CONTENT },
60
+ // helpers/
61
+ { relativePath: 'helpers/ApiStatusCodes.ts', content: templates_1.API_STATUS_CODES_CONTENT },
62
+ { relativePath: 'helpers/SetupHelpers.ts', content: templates_1.SETUP_HELPERS_CONTENT },
63
+ ];
64
+ // ── Public API ───────────────────────────────────────────────────────────
65
+ /**
66
+ * Copy all helper/utility files to the user's project.
67
+ *
68
+ * By default, files are written to the PARENT of outputDir so that when
69
+ * outputDir is `src/clients/`, helpers land at `src/utils/` and `src/helpers/`.
70
+ *
71
+ * Override with an explicit `helperFunctionsDir` to write elsewhere.
72
+ *
73
+ * @param outputDir The main outputDir from config (e.g. `src/clients/`)
74
+ * @param helperFunctionsDir Optional explicit base dir for helpers
75
+ * @returns Array of absolute paths of written files
76
+ */
77
+ async function copyHelpers(outputDir, helperFunctionsDir) {
78
+ const baseDir = helperFunctionsDir
79
+ ? path.resolve(helperFunctionsDir)
80
+ : path.resolve(outputDir, '..');
81
+ logger_1.default.info(`Copying helper functions to: ${baseDir}`);
82
+ const written = [];
83
+ for (const file of HELPER_FILES) {
84
+ const targetPath = path.join(baseDir, file.relativePath);
85
+ // Ensure parent directory exists
86
+ await fs.promises.mkdir(path.dirname(targetPath), { recursive: true });
87
+ await fs.promises.writeFile(targetPath, file.content, 'utf-8');
88
+ logger_1.default.info(`Helper copied to: ${targetPath}`);
89
+ written.push(targetPath);
90
+ }
91
+ logger_1.default.info(`Copied ${written.length} helper file(s)`);
92
+ return written;
93
+ }
94
+ //# sourceMappingURL=copyHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyHelpers.js","sourceRoot":"","sources":["../../src/utils/copyHelpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CH,kCAyBC;AAtED,uCAAyB;AACzB,2CAA6B;AAC7B,sDAA8B;AAC9B,2CAOqB;AAUrB,MAAM,YAAY,GAAiB;IAClC,SAAS;IACT,EAAE,YAAY,EAAE,4BAA4B,EAAE,OAAO,EAAE,uCAA2B,EAAE;IACpF,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,kCAAsB,EAAE;IAC3E,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,kCAAsB,EAAE;IAC3E,EAAE,YAAY,EAAE,2BAA2B,EAAE,OAAO,EAAE,qCAAyB,EAAE;IACjF,WAAW;IACX,EAAE,YAAY,EAAE,2BAA2B,EAAE,OAAO,EAAE,oCAAwB,EAAE;IAChF,EAAE,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAE,iCAAqB,EAAE;CAC3E,CAAC;AAEF,4EAA4E;AAE5E;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAChC,SAAiB,EACjB,kBAA2B;IAE3B,MAAM,OAAO,GAAG,kBAAkB;QACjC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjC,gBAAM,CAAC,IAAI,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzD,iCAAiC;QACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,gBAAM,CAAC,IAAI,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1,10 +1,5 @@
1
1
  import winston from 'winston';
2
2
  import { LoggerConfig } from '../config/types';
3
- /**
4
- * Pre-resolved logger config file written during generation.
5
- * This JSON file can always be loaded without ts-node.
6
- */
7
- export declare const LOGGER_CONFIG_FILE = ".swagger-logger-config.json";
8
3
  /**
9
4
  * Initialize or reconfigure the logger with given configuration
10
5
  * Call this at application startup with your config
@@ -19,15 +14,6 @@ export declare function getLogger(): winston.Logger;
19
14
  * Get the current logger configuration
20
15
  */
21
16
  export declare function getLoggerConfig(): LoggerConfig;
22
- /**
23
- * Persist the logger configuration as a JSON file in the project root.
24
- * This allows the logger to discover the consumer's config during Playwright
25
- * test runs without needing ts-node to load the .ts config file.
26
- *
27
- * Relative outputDir paths are resolved to absolute paths so they remain
28
- * correct regardless of the working directory at runtime.
29
- */
30
- export declare function persistLoggerConfig(config: LoggerConfig): void;
31
17
  declare const logger: winston.Logger;
32
18
  export declare const logRequest: (method: string, url: string, statusCode: number, duration: number) => void;
33
19
  export declare const logError: (error: Error, context?: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AAO9E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAgMhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAIzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAY9D;AAGD,QAAA,MAAM,MAAM,gBAAc,CAAC;AAG3B,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,gBAAY,KAAG,IAGrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AAuL9E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAIzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAGD,QAAA,MAAM,MAAM,gBAAc,CAAC;AAG3B,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,gBAAY,KAAG,IAGrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -36,11 +36,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.logError = exports.logRequest = exports.LOGGER_CONFIG_FILE = void 0;
39
+ exports.logError = exports.logRequest = void 0;
40
40
  exports.configureLogger = configureLogger;
41
41
  exports.getLogger = getLogger;
42
42
  exports.getLoggerConfig = getLoggerConfig;
43
- exports.persistLoggerConfig = persistLoggerConfig;
44
43
  const winston_1 = __importDefault(require("winston"));
45
44
  const path_1 = __importDefault(require("path"));
46
45
  const fs = __importStar(require("fs"));
@@ -49,11 +48,6 @@ const types_1 = require("../config/types");
49
48
  let loggerInstance = null;
50
49
  let currentConfig = { ...types_1.defaultLoggerConfig };
51
50
  let configLoaded = false;
52
- /**
53
- * Pre-resolved logger config file written during generation.
54
- * This JSON file can always be loaded without ts-node.
55
- */
56
- exports.LOGGER_CONFIG_FILE = '.swagger-logger-config.json';
57
51
  /**
58
52
  * Config file names to look for (in order of priority)
59
53
  */
@@ -69,29 +63,15 @@ const CONFIG_FILE_NAMES = [
69
63
  * even during test runs (not just during generation).
70
64
  *
71
65
  * Priority:
72
- * 1. .swagger-logger-config.json (written during generation, always loadable)
73
- * 2. generator-config.js / swagger-generator.config.js
74
- * 3. generator-config.ts / swagger-generator.config.ts (requires ts-node)
66
+ * 1. generator-config.js / swagger-generator.config.js
67
+ * 2. generator-config.ts / swagger-generator.config.ts (requires ts-node)
75
68
  */
76
69
  function loadConfigFromFile() {
77
70
  if (configLoaded)
78
71
  return currentConfig;
79
72
  configLoaded = true;
80
73
  const cwd = process.cwd();
81
- // 1. Try the pre-resolved JSON config (written during generation)
82
- const jsonConfigPath = path_1.default.join(cwd, exports.LOGGER_CONFIG_FILE);
83
- if (fs.existsSync(jsonConfigPath)) {
84
- try {
85
- const raw = fs.readFileSync(jsonConfigPath, 'utf-8');
86
- const loggerConfig = JSON.parse(raw);
87
- currentConfig = { ...types_1.defaultLoggerConfig, ...loggerConfig };
88
- return currentConfig;
89
- }
90
- catch {
91
- // JSON file exists but can't be parsed — fall through
92
- }
93
- }
94
- // 2. Try .js config files (no ts-node needed)
74
+ // 1. Try .js config files (no ts-node needed)
95
75
  for (const configName of CONFIG_FILE_NAMES) {
96
76
  if (!configName.endsWith('.js'))
97
77
  continue;
@@ -110,7 +90,7 @@ function loadConfigFromFile() {
110
90
  }
111
91
  }
112
92
  }
113
- // 3. Try loading .ts config files if ts-node is available
93
+ // 2. Try loading .ts config files if ts-node is available
114
94
  for (const configName of CONFIG_FILE_NAMES) {
115
95
  if (!configName.endsWith('.ts'))
116
96
  continue;
@@ -243,28 +223,6 @@ function getLogger() {
243
223
  function getLoggerConfig() {
244
224
  return { ...currentConfig };
245
225
  }
246
- /**
247
- * Persist the logger configuration as a JSON file in the project root.
248
- * This allows the logger to discover the consumer's config during Playwright
249
- * test runs without needing ts-node to load the .ts config file.
250
- *
251
- * Relative outputDir paths are resolved to absolute paths so they remain
252
- * correct regardless of the working directory at runtime.
253
- */
254
- function persistLoggerConfig(config) {
255
- try {
256
- const resolved = { ...config };
257
- // Resolve relative outputDir to absolute so it works from any cwd
258
- if (resolved.outputDir && !path_1.default.isAbsolute(resolved.outputDir)) {
259
- resolved.outputDir = path_1.default.resolve(process.cwd(), resolved.outputDir);
260
- }
261
- const configPath = path_1.default.join(process.cwd(), exports.LOGGER_CONFIG_FILE);
262
- fs.writeFileSync(configPath, JSON.stringify(resolved, null, 2), 'utf-8');
263
- }
264
- catch {
265
- // Non-critical — logger will fall back to other discovery methods
266
- }
267
- }
268
226
  // Create default logger instance
269
227
  const logger = getLogger();
270
228
  // Utility methods