@machina.ai/openapi-contract-tester 2.1.0

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 (431) hide show
  1. package/.env.example +91 -0
  2. package/README.md +472 -0
  3. package/dist/ai-engine/assertion-generator.d.ts +48 -0
  4. package/dist/ai-engine/assertion-generator.d.ts.map +1 -0
  5. package/dist/ai-engine/assertion-generator.js +166 -0
  6. package/dist/ai-engine/assertion-generator.js.map +1 -0
  7. package/dist/ai-engine/context-data-generator.d.ts +38 -0
  8. package/dist/ai-engine/context-data-generator.d.ts.map +1 -0
  9. package/dist/ai-engine/context-data-generator.js +146 -0
  10. package/dist/ai-engine/context-data-generator.js.map +1 -0
  11. package/dist/ai-engine/dataflow-detector.d.ts +53 -0
  12. package/dist/ai-engine/dataflow-detector.d.ts.map +1 -0
  13. package/dist/ai-engine/dataflow-detector.js +217 -0
  14. package/dist/ai-engine/dataflow-detector.js.map +1 -0
  15. package/dist/ai-engine/dependency-detector.d.ts +52 -0
  16. package/dist/ai-engine/dependency-detector.d.ts.map +1 -0
  17. package/dist/ai-engine/dependency-detector.js +241 -0
  18. package/dist/ai-engine/dependency-detector.js.map +1 -0
  19. package/dist/ai-engine/edge-case-suggester.d.ts +63 -0
  20. package/dist/ai-engine/edge-case-suggester.d.ts.map +1 -0
  21. package/dist/ai-engine/edge-case-suggester.js +177 -0
  22. package/dist/ai-engine/edge-case-suggester.js.map +1 -0
  23. package/dist/ai-engine/index.d.ts +13 -0
  24. package/dist/ai-engine/index.d.ts.map +1 -0
  25. package/dist/ai-engine/index.js +13 -0
  26. package/dist/ai-engine/index.js.map +1 -0
  27. package/dist/analyzers/ai-failure-analyzer.d.ts +41 -0
  28. package/dist/analyzers/ai-failure-analyzer.d.ts.map +1 -0
  29. package/dist/analyzers/ai-failure-analyzer.js +220 -0
  30. package/dist/analyzers/ai-failure-analyzer.js.map +1 -0
  31. package/dist/analyzers/comparison-utils.d.ts +31 -0
  32. package/dist/analyzers/comparison-utils.d.ts.map +1 -0
  33. package/dist/analyzers/comparison-utils.js +85 -0
  34. package/dist/analyzers/comparison-utils.js.map +1 -0
  35. package/dist/analyzers/context-analyzer.d.ts +49 -0
  36. package/dist/analyzers/context-analyzer.d.ts.map +1 -0
  37. package/dist/analyzers/context-analyzer.js +292 -0
  38. package/dist/analyzers/context-analyzer.js.map +1 -0
  39. package/dist/analyzers/dependency-analyzer.d.ts +44 -0
  40. package/dist/analyzers/dependency-analyzer.d.ts.map +1 -0
  41. package/dist/analyzers/dependency-analyzer.js +313 -0
  42. package/dist/analyzers/dependency-analyzer.js.map +1 -0
  43. package/dist/analyzers/failure-analyzer.d.ts +122 -0
  44. package/dist/analyzers/failure-analyzer.d.ts.map +1 -0
  45. package/dist/analyzers/failure-analyzer.js +140 -0
  46. package/dist/analyzers/failure-analyzer.js.map +1 -0
  47. package/dist/analyzers/failure-detectors/index.d.ts +33 -0
  48. package/dist/analyzers/failure-detectors/index.d.ts.map +1 -0
  49. package/dist/analyzers/failure-detectors/index.js +164 -0
  50. package/dist/analyzers/failure-detectors/index.js.map +1 -0
  51. package/dist/analyzers/failure-discrepancy-correlator.d.ts +111 -0
  52. package/dist/analyzers/failure-discrepancy-correlator.d.ts.map +1 -0
  53. package/dist/analyzers/failure-discrepancy-correlator.js +202 -0
  54. package/dist/analyzers/failure-discrepancy-correlator.js.map +1 -0
  55. package/dist/analyzers/index.d.ts +10 -0
  56. package/dist/analyzers/index.d.ts.map +1 -0
  57. package/dist/analyzers/index.js +10 -0
  58. package/dist/analyzers/index.js.map +1 -0
  59. package/dist/analyzers/semantic-matcher.d.ts +123 -0
  60. package/dist/analyzers/semantic-matcher.d.ts.map +1 -0
  61. package/dist/analyzers/semantic-matcher.js +297 -0
  62. package/dist/analyzers/semantic-matcher.js.map +1 -0
  63. package/dist/analyzers/source-comparator.d.ts +177 -0
  64. package/dist/analyzers/source-comparator.d.ts.map +1 -0
  65. package/dist/analyzers/source-comparator.js +225 -0
  66. package/dist/analyzers/source-comparator.js.map +1 -0
  67. package/dist/business-rules/business-rules-analyzer.d.ts +44 -0
  68. package/dist/business-rules/business-rules-analyzer.d.ts.map +1 -0
  69. package/dist/business-rules/business-rules-analyzer.js +363 -0
  70. package/dist/business-rules/business-rules-analyzer.js.map +1 -0
  71. package/dist/business-rules/business-rules-generator.d.ts +78 -0
  72. package/dist/business-rules/business-rules-generator.d.ts.map +1 -0
  73. package/dist/business-rules/business-rules-generator.js +357 -0
  74. package/dist/business-rules/business-rules-generator.js.map +1 -0
  75. package/dist/business-rules/extractors/rule-extractors.d.ts +50 -0
  76. package/dist/business-rules/extractors/rule-extractors.d.ts.map +1 -0
  77. package/dist/business-rules/extractors/rule-extractors.js +189 -0
  78. package/dist/business-rules/extractors/rule-extractors.js.map +1 -0
  79. package/dist/business-rules/value-generators.d.ts +70 -0
  80. package/dist/business-rules/value-generators.d.ts.map +1 -0
  81. package/dist/business-rules/value-generators.js +142 -0
  82. package/dist/business-rules/value-generators.js.map +1 -0
  83. package/dist/executor/auth-providers/auth-header-builder.d.ts +16 -0
  84. package/dist/executor/auth-providers/auth-header-builder.d.ts.map +1 -0
  85. package/dist/executor/auth-providers/auth-header-builder.js +47 -0
  86. package/dist/executor/auth-providers/auth-header-builder.js.map +1 -0
  87. package/dist/executor/auth-providers/oauth2-provider.d.ts +19 -0
  88. package/dist/executor/auth-providers/oauth2-provider.d.ts.map +1 -0
  89. package/dist/executor/auth-providers/oauth2-provider.js +114 -0
  90. package/dist/executor/auth-providers/oauth2-provider.js.map +1 -0
  91. package/dist/executor/http-client.d.ts +133 -0
  92. package/dist/executor/http-client.d.ts.map +1 -0
  93. package/dist/executor/http-client.js +172 -0
  94. package/dist/executor/http-client.js.map +1 -0
  95. package/dist/executor/http-request-builder.d.ts +69 -0
  96. package/dist/executor/http-request-builder.d.ts.map +1 -0
  97. package/dist/executor/http-request-builder.js +140 -0
  98. package/dist/executor/http-request-builder.js.map +1 -0
  99. package/dist/executor/http-response-parser.d.ts +28 -0
  100. package/dist/executor/http-response-parser.d.ts.map +1 -0
  101. package/dist/executor/http-response-parser.js +74 -0
  102. package/dist/executor/http-response-parser.js.map +1 -0
  103. package/dist/executor/response-handler.d.ts +66 -0
  104. package/dist/executor/response-handler.d.ts.map +1 -0
  105. package/dist/executor/response-handler.js +135 -0
  106. package/dist/executor/response-handler.js.map +1 -0
  107. package/dist/executor/result-processor.d.ts +27 -0
  108. package/dist/executor/result-processor.d.ts.map +1 -0
  109. package/dist/executor/result-processor.js +140 -0
  110. package/dist/executor/result-processor.js.map +1 -0
  111. package/dist/executor/result-utils.d.ts +21 -0
  112. package/dist/executor/result-utils.d.ts.map +1 -0
  113. package/dist/executor/result-utils.js +29 -0
  114. package/dist/executor/result-utils.js.map +1 -0
  115. package/dist/executor/test-executor.d.ts +49 -0
  116. package/dist/executor/test-executor.d.ts.map +1 -0
  117. package/dist/executor/test-executor.js +226 -0
  118. package/dist/executor/test-executor.js.map +1 -0
  119. package/dist/executor/test-runner.d.ts +85 -0
  120. package/dist/executor/test-runner.d.ts.map +1 -0
  121. package/dist/executor/test-runner.js +177 -0
  122. package/dist/executor/test-runner.js.map +1 -0
  123. package/dist/executor/token-detector/index.d.ts +7 -0
  124. package/dist/executor/token-detector/index.d.ts.map +1 -0
  125. package/dist/executor/token-detector/index.js +7 -0
  126. package/dist/executor/token-detector/index.js.map +1 -0
  127. package/dist/executor/token-detector/token-detector.d.ts +64 -0
  128. package/dist/executor/token-detector/token-detector.d.ts.map +1 -0
  129. package/dist/executor/token-detector/token-detector.js +140 -0
  130. package/dist/executor/token-detector/token-detector.js.map +1 -0
  131. package/dist/generators/business-rule-from-stories-generator.d.ts +30 -0
  132. package/dist/generators/business-rule-from-stories-generator.d.ts.map +1 -0
  133. package/dist/generators/business-rule-from-stories-generator.js +227 -0
  134. package/dist/generators/business-rule-from-stories-generator.js.map +1 -0
  135. package/dist/generators/data/ai-data-generator.d.ts +23 -0
  136. package/dist/generators/data/ai-data-generator.d.ts.map +1 -0
  137. package/dist/generators/data/ai-data-generator.js +41 -0
  138. package/dist/generators/data/ai-data-generator.js.map +1 -0
  139. package/dist/generators/data/base-generator.d.ts +121 -0
  140. package/dist/generators/data/base-generator.d.ts.map +1 -0
  141. package/dist/generators/data/base-generator.js +200 -0
  142. package/dist/generators/data/base-generator.js.map +1 -0
  143. package/dist/generators/data/heuristic-data-generator.d.ts +28 -0
  144. package/dist/generators/data/heuristic-data-generator.d.ts.map +1 -0
  145. package/dist/generators/data/heuristic-data-generator.js +49 -0
  146. package/dist/generators/data/heuristic-data-generator.js.map +1 -0
  147. package/dist/generators/data/index.d.ts +48 -0
  148. package/dist/generators/data/index.d.ts.map +1 -0
  149. package/dist/generators/data/index.js +201 -0
  150. package/dist/generators/data/index.js.map +1 -0
  151. package/dist/generators/data/schema-walker.d.ts +45 -0
  152. package/dist/generators/data/schema-walker.d.ts.map +1 -0
  153. package/dist/generators/data/schema-walker.js +103 -0
  154. package/dist/generators/data/schema-walker.js.map +1 -0
  155. package/dist/generators/data/type-strategies.d.ts +79 -0
  156. package/dist/generators/data/type-strategies.d.ts.map +1 -0
  157. package/dist/generators/data/type-strategies.js +394 -0
  158. package/dist/generators/data/type-strategies.js.map +1 -0
  159. package/dist/generators/data-generator.d.ts +11 -0
  160. package/dist/generators/data-generator.d.ts.map +1 -0
  161. package/dist/generators/data-generator.js +11 -0
  162. package/dist/generators/data-generator.js.map +1 -0
  163. package/dist/generators/edge-case-generator.d.ts +55 -0
  164. package/dist/generators/edge-case-generator.d.ts.map +1 -0
  165. package/dist/generators/edge-case-generator.js +327 -0
  166. package/dist/generators/edge-case-generator.js.map +1 -0
  167. package/dist/generators/edge-cases/boundary-analyzer.d.ts +26 -0
  168. package/dist/generators/edge-cases/boundary-analyzer.d.ts.map +1 -0
  169. package/dist/generators/edge-cases/boundary-analyzer.js +95 -0
  170. package/dist/generators/edge-cases/boundary-analyzer.js.map +1 -0
  171. package/dist/generators/error-case-generator.d.ts +11 -0
  172. package/dist/generators/error-case-generator.d.ts.map +1 -0
  173. package/dist/generators/error-case-generator.js +11 -0
  174. package/dist/generators/error-case-generator.js.map +1 -0
  175. package/dist/generators/errors/auth-error-strategy.d.ts +36 -0
  176. package/dist/generators/errors/auth-error-strategy.d.ts.map +1 -0
  177. package/dist/generators/errors/auth-error-strategy.js +118 -0
  178. package/dist/generators/errors/auth-error-strategy.js.map +1 -0
  179. package/dist/generators/errors/business-error-strategy.d.ts +44 -0
  180. package/dist/generators/errors/business-error-strategy.d.ts.map +1 -0
  181. package/dist/generators/errors/business-error-strategy.js +152 -0
  182. package/dist/generators/errors/business-error-strategy.js.map +1 -0
  183. package/dist/generators/errors/error-strategy-factory.d.ts +27 -0
  184. package/dist/generators/errors/error-strategy-factory.d.ts.map +1 -0
  185. package/dist/generators/errors/error-strategy-factory.js +47 -0
  186. package/dist/generators/errors/error-strategy-factory.js.map +1 -0
  187. package/dist/generators/errors/error-strategy.d.ts +62 -0
  188. package/dist/generators/errors/error-strategy.d.ts.map +1 -0
  189. package/dist/generators/errors/error-strategy.js +69 -0
  190. package/dist/generators/errors/error-strategy.js.map +1 -0
  191. package/dist/generators/errors/index.d.ts +23 -0
  192. package/dist/generators/errors/index.d.ts.map +1 -0
  193. package/dist/generators/errors/index.js +73 -0
  194. package/dist/generators/errors/index.js.map +1 -0
  195. package/dist/generators/errors/validation-error-strategy.d.ts +25 -0
  196. package/dist/generators/errors/validation-error-strategy.d.ts.map +1 -0
  197. package/dist/generators/errors/validation-error-strategy.js +214 -0
  198. package/dist/generators/errors/validation-error-strategy.js.map +1 -0
  199. package/dist/generators/happy-path-generator.d.ts +93 -0
  200. package/dist/generators/happy-path-generator.d.ts.map +1 -0
  201. package/dist/generators/happy-path-generator.js +275 -0
  202. package/dist/generators/happy-path-generator.js.map +1 -0
  203. package/dist/generators/test-enricher.d.ts +44 -0
  204. package/dist/generators/test-enricher.d.ts.map +1 -0
  205. package/dist/generators/test-enricher.js +109 -0
  206. package/dist/generators/test-enricher.js.map +1 -0
  207. package/dist/index.d.ts +9 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +14 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/llm/ai-cache.d.ts +123 -0
  212. package/dist/llm/ai-cache.d.ts.map +1 -0
  213. package/dist/llm/ai-cache.js +220 -0
  214. package/dist/llm/ai-cache.js.map +1 -0
  215. package/dist/llm/ai-client.d.ts +92 -0
  216. package/dist/llm/ai-client.d.ts.map +1 -0
  217. package/dist/llm/ai-client.js +386 -0
  218. package/dist/llm/ai-client.js.map +1 -0
  219. package/dist/llm/data-generator-ai.d.ts +84 -0
  220. package/dist/llm/data-generator-ai.d.ts.map +1 -0
  221. package/dist/llm/data-generator-ai.js +284 -0
  222. package/dist/llm/data-generator-ai.js.map +1 -0
  223. package/dist/llm/index.d.ts +7 -0
  224. package/dist/llm/index.d.ts.map +1 -0
  225. package/dist/llm/index.js +7 -0
  226. package/dist/llm/index.js.map +1 -0
  227. package/dist/mcp/handlers/base-handler.d.ts +72 -0
  228. package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
  229. package/dist/mcp/handlers/base-handler.js +86 -0
  230. package/dist/mcp/handlers/base-handler.js.map +1 -0
  231. package/dist/mcp/handlers/compare-sources.d.ts +91 -0
  232. package/dist/mcp/handlers/compare-sources.d.ts.map +1 -0
  233. package/dist/mcp/handlers/compare-sources.js +182 -0
  234. package/dist/mcp/handlers/compare-sources.js.map +1 -0
  235. package/dist/mcp/handlers/export-results.d.ts +53 -0
  236. package/dist/mcp/handlers/export-results.d.ts.map +1 -0
  237. package/dist/mcp/handlers/export-results.js +132 -0
  238. package/dist/mcp/handlers/export-results.js.map +1 -0
  239. package/dist/mcp/handlers/export-to-postman.d.ts +65 -0
  240. package/dist/mcp/handlers/export-to-postman.d.ts.map +1 -0
  241. package/dist/mcp/handlers/export-to-postman.js +128 -0
  242. package/dist/mcp/handlers/export-to-postman.js.map +1 -0
  243. package/dist/mcp/handlers/generate-tests.d.ts +74 -0
  244. package/dist/mcp/handlers/generate-tests.d.ts.map +1 -0
  245. package/dist/mcp/handlers/generate-tests.js +519 -0
  246. package/dist/mcp/handlers/generate-tests.js.map +1 -0
  247. package/dist/mcp/handlers/index.d.ts +13 -0
  248. package/dist/mcp/handlers/index.d.ts.map +1 -0
  249. package/dist/mcp/handlers/index.js +12 -0
  250. package/dist/mcp/handlers/index.js.map +1 -0
  251. package/dist/mcp/handlers/run-tests.d.ts +89 -0
  252. package/dist/mcp/handlers/run-tests.d.ts.map +1 -0
  253. package/dist/mcp/handlers/run-tests.js +233 -0
  254. package/dist/mcp/handlers/run-tests.js.map +1 -0
  255. package/dist/mcp/handlers/types.d.ts +61 -0
  256. package/dist/mcp/handlers/types.d.ts.map +1 -0
  257. package/dist/mcp/handlers/types.js +9 -0
  258. package/dist/mcp/handlers/types.js.map +1 -0
  259. package/dist/mcp/server.d.ts +64 -0
  260. package/dist/mcp/server.d.ts.map +1 -0
  261. package/dist/mcp/server.js +200 -0
  262. package/dist/mcp/server.js.map +1 -0
  263. package/dist/mcp/services/file-service.d.ts +66 -0
  264. package/dist/mcp/services/file-service.d.ts.map +1 -0
  265. package/dist/mcp/services/file-service.js +143 -0
  266. package/dist/mcp/services/file-service.js.map +1 -0
  267. package/dist/mcp/services/llm-service.d.ts +70 -0
  268. package/dist/mcp/services/llm-service.d.ts.map +1 -0
  269. package/dist/mcp/services/llm-service.js +189 -0
  270. package/dist/mcp/services/llm-service.js.map +1 -0
  271. package/dist/mcp/services/postman-service.d.ts +128 -0
  272. package/dist/mcp/services/postman-service.d.ts.map +1 -0
  273. package/dist/mcp/services/postman-service.js +266 -0
  274. package/dist/mcp/services/postman-service.js.map +1 -0
  275. package/dist/mcp/services/report-service.d.ts +81 -0
  276. package/dist/mcp/services/report-service.d.ts.map +1 -0
  277. package/dist/mcp/services/report-service.js +210 -0
  278. package/dist/mcp/services/report-service.js.map +1 -0
  279. package/dist/mcp/services/spec-service.d.ts +58 -0
  280. package/dist/mcp/services/spec-service.d.ts.map +1 -0
  281. package/dist/mcp/services/spec-service.js +140 -0
  282. package/dist/mcp/services/spec-service.js.map +1 -0
  283. package/dist/parsers/endpoint-extractor.d.ts +32 -0
  284. package/dist/parsers/endpoint-extractor.d.ts.map +1 -0
  285. package/dist/parsers/endpoint-extractor.js +160 -0
  286. package/dist/parsers/endpoint-extractor.js.map +1 -0
  287. package/dist/parsers/openapi-parser.d.ts +120 -0
  288. package/dist/parsers/openapi-parser.d.ts.map +1 -0
  289. package/dist/parsers/openapi-parser.js +257 -0
  290. package/dist/parsers/openapi-parser.js.map +1 -0
  291. package/dist/parsers/visitors/auth-visitor.d.ts +28 -0
  292. package/dist/parsers/visitors/auth-visitor.d.ts.map +1 -0
  293. package/dist/parsers/visitors/auth-visitor.js +116 -0
  294. package/dist/parsers/visitors/auth-visitor.js.map +1 -0
  295. package/dist/prd/index.d.ts +10 -0
  296. package/dist/prd/index.d.ts.map +1 -0
  297. package/dist/prd/index.js +10 -0
  298. package/dist/prd/index.js.map +1 -0
  299. package/dist/prd/prd-reader.d.ts +124 -0
  300. package/dist/prd/prd-reader.d.ts.map +1 -0
  301. package/dist/prd/prd-reader.js +308 -0
  302. package/dist/prd/prd-reader.js.map +1 -0
  303. package/dist/prd/prd-storage.d.ts +232 -0
  304. package/dist/prd/prd-storage.d.ts.map +1 -0
  305. package/dist/prd/prd-storage.js +129 -0
  306. package/dist/prd/prd-storage.js.map +1 -0
  307. package/dist/repairers/test-auto-repairer.d.ts +61 -0
  308. package/dist/repairers/test-auto-repairer.d.ts.map +1 -0
  309. package/dist/repairers/test-auto-repairer.js +213 -0
  310. package/dist/repairers/test-auto-repairer.js.map +1 -0
  311. package/dist/reporters/comparison-report-generator.d.ts +58 -0
  312. package/dist/reporters/comparison-report-generator.d.ts.map +1 -0
  313. package/dist/reporters/comparison-report-generator.js +369 -0
  314. package/dist/reporters/comparison-report-generator.js.map +1 -0
  315. package/dist/reporters/gherkin-formatter.d.ts +34 -0
  316. package/dist/reporters/gherkin-formatter.d.ts.map +1 -0
  317. package/dist/reporters/gherkin-formatter.js +231 -0
  318. package/dist/reporters/gherkin-formatter.js.map +1 -0
  319. package/dist/reporters/html-report-generator.d.ts +174 -0
  320. package/dist/reporters/html-report-generator.d.ts.map +1 -0
  321. package/dist/reporters/html-report-generator.js +194 -0
  322. package/dist/reporters/html-report-generator.js.map +1 -0
  323. package/dist/reporters/report-charts.d.ts +23 -0
  324. package/dist/reporters/report-charts.d.ts.map +1 -0
  325. package/dist/reporters/report-charts.js +182 -0
  326. package/dist/reporters/report-charts.js.map +1 -0
  327. package/dist/reporters/report-sections.d.ts +34 -0
  328. package/dist/reporters/report-sections.d.ts.map +1 -0
  329. package/dist/reporters/report-sections.js +481 -0
  330. package/dist/reporters/report-sections.js.map +1 -0
  331. package/dist/reporters/report-styles.d.ts +12 -0
  332. package/dist/reporters/report-styles.d.ts.map +1 -0
  333. package/dist/reporters/report-styles.js +412 -0
  334. package/dist/reporters/report-styles.js.map +1 -0
  335. package/dist/reporters/report-test-details.d.ts +56 -0
  336. package/dist/reporters/report-test-details.d.ts.map +1 -0
  337. package/dist/reporters/report-test-details.js +328 -0
  338. package/dist/reporters/report-test-details.js.map +1 -0
  339. package/dist/reporters/report-utils.d.ts +40 -0
  340. package/dist/reporters/report-utils.d.ts.map +1 -0
  341. package/dist/reporters/report-utils.js +163 -0
  342. package/dist/reporters/report-utils.js.map +1 -0
  343. package/dist/types/ai-config.d.ts +63 -0
  344. package/dist/types/ai-config.d.ts.map +1 -0
  345. package/dist/types/ai-config.js +79 -0
  346. package/dist/types/ai-config.js.map +1 -0
  347. package/dist/types/business-rules.d.ts +235 -0
  348. package/dist/types/business-rules.d.ts.map +1 -0
  349. package/dist/types/business-rules.js +6 -0
  350. package/dist/types/business-rules.js.map +1 -0
  351. package/dist/types/config.d.ts +106 -0
  352. package/dist/types/config.d.ts.map +1 -0
  353. package/dist/types/config.js +6 -0
  354. package/dist/types/config.js.map +1 -0
  355. package/dist/types/core.d.ts +72 -0
  356. package/dist/types/core.d.ts.map +1 -0
  357. package/dist/types/core.js +6 -0
  358. package/dist/types/core.js.map +1 -0
  359. package/dist/types/index.d.ts +17 -0
  360. package/dist/types/index.d.ts.map +1 -0
  361. package/dist/types/index.js +10 -0
  362. package/dist/types/index.js.map +1 -0
  363. package/dist/types/openapi.d.ts +139 -0
  364. package/dist/types/openapi.d.ts.map +1 -0
  365. package/dist/types/openapi.js +6 -0
  366. package/dist/types/openapi.js.map +1 -0
  367. package/dist/types/pact.d.ts +101 -0
  368. package/dist/types/pact.d.ts.map +1 -0
  369. package/dist/types/pact.js +6 -0
  370. package/dist/types/pact.js.map +1 -0
  371. package/dist/types/reporting.d.ts +93 -0
  372. package/dist/types/reporting.d.ts.map +1 -0
  373. package/dist/types/reporting.js +6 -0
  374. package/dist/types/reporting.js.map +1 -0
  375. package/dist/types/test-case.d.ts +233 -0
  376. package/dist/types/test-case.d.ts.map +1 -0
  377. package/dist/types/test-case.js +6 -0
  378. package/dist/types/test-case.js.map +1 -0
  379. package/dist/types/test-execution.d.ts +80 -0
  380. package/dist/types/test-execution.d.ts.map +1 -0
  381. package/dist/types/test-execution.js +6 -0
  382. package/dist/types/test-execution.js.map +1 -0
  383. package/dist/utils/auth-generator.d.ts +30 -0
  384. package/dist/utils/auth-generator.d.ts.map +1 -0
  385. package/dist/utils/auth-generator.js +68 -0
  386. package/dist/utils/auth-generator.js.map +1 -0
  387. package/dist/utils/config.d.ts +181 -0
  388. package/dist/utils/config.d.ts.map +1 -0
  389. package/dist/utils/config.js +141 -0
  390. package/dist/utils/config.js.map +1 -0
  391. package/dist/utils/coverage-calculator.d.ts +81 -0
  392. package/dist/utils/coverage-calculator.d.ts.map +1 -0
  393. package/dist/utils/coverage-calculator.js +134 -0
  394. package/dist/utils/coverage-calculator.js.map +1 -0
  395. package/dist/utils/data-loader.d.ts +52 -0
  396. package/dist/utils/data-loader.d.ts.map +1 -0
  397. package/dist/utils/data-loader.js +192 -0
  398. package/dist/utils/data-loader.js.map +1 -0
  399. package/dist/utils/errors.d.ts +167 -0
  400. package/dist/utils/errors.d.ts.map +1 -0
  401. package/dist/utils/errors.js +257 -0
  402. package/dist/utils/errors.js.map +1 -0
  403. package/dist/utils/logger.d.ts +220 -0
  404. package/dist/utils/logger.d.ts.map +1 -0
  405. package/dist/utils/logger.js +325 -0
  406. package/dist/utils/logger.js.map +1 -0
  407. package/dist/utils/openapi-discovery.d.ts +31 -0
  408. package/dist/utils/openapi-discovery.d.ts.map +1 -0
  409. package/dist/utils/openapi-discovery.js +322 -0
  410. package/dist/utils/openapi-discovery.js.map +1 -0
  411. package/dist/utils/path-resolver.d.ts +101 -0
  412. package/dist/utils/path-resolver.d.ts.map +1 -0
  413. package/dist/utils/path-resolver.js +167 -0
  414. package/dist/utils/path-resolver.js.map +1 -0
  415. package/dist/utils/resilience.d.ts +181 -0
  416. package/dist/utils/resilience.d.ts.map +1 -0
  417. package/dist/utils/resilience.js +269 -0
  418. package/dist/utils/resilience.js.map +1 -0
  419. package/dist/validators/openapi-validator.d.ts +198 -0
  420. package/dist/validators/openapi-validator.d.ts.map +1 -0
  421. package/dist/validators/openapi-validator.js +349 -0
  422. package/dist/validators/openapi-validator.js.map +1 -0
  423. package/dist/validators/response-matcher.d.ts +84 -0
  424. package/dist/validators/response-matcher.d.ts.map +1 -0
  425. package/dist/validators/response-matcher.js +234 -0
  426. package/dist/validators/response-matcher.js.map +1 -0
  427. package/dist/validators/schema-validator.d.ts +174 -0
  428. package/dist/validators/schema-validator.d.ts.map +1 -0
  429. package/dist/validators/schema-validator.js +340 -0
  430. package/dist/validators/schema-validator.js.map +1 -0
  431. package/package.json +76 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Heuristic Data Generator
3
+ *
4
+ * Fast, deterministic (when seeded) data generator using Faker.js only.
5
+ * No AI calls - suitable for bulk test data generation.
6
+ *
7
+ * @module generators/data/heuristic-data-generator
8
+ */
9
+ import type { OpenAPIV3 } from 'openapi-types';
10
+ import { BaseDataGenerator, type GeneratorOptions } from './base-generator.js';
11
+ /**
12
+ * Heuristic-based data generator.
13
+ * Uses Faker.js strategies; no AI calls.
14
+ * Reproducible when seed is provided.
15
+ */
16
+ export declare class HeuristicDataGenerator extends BaseDataGenerator {
17
+ constructor(seed?: number);
18
+ private registerStrategies;
19
+ /**
20
+ * Generate data for the given schema (async, backward-compatible)
21
+ */
22
+ generate(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): Promise<unknown>;
23
+ /**
24
+ * Generate data for the given schema (sync, faker-only)
25
+ */
26
+ generateSync(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): unknown;
27
+ }
28
+ //# sourceMappingURL=heuristic-data-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heuristic-data-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/data/heuristic-data-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAW/E;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,IAAI,CAAC,EAAE,MAAM;IAQzB,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC;IAInB;;OAEG;IACH,YAAY,CACV,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO;CAGX"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Heuristic Data Generator
3
+ *
4
+ * Fast, deterministic (when seeded) data generator using Faker.js only.
5
+ * No AI calls - suitable for bulk test data generation.
6
+ *
7
+ * @module generators/data/heuristic-data-generator
8
+ */
9
+ import { faker } from '@faker-js/faker';
10
+ import { BaseDataGenerator } from './base-generator.js';
11
+ import { StringGenerationStrategy, IntegerGenerationStrategy, NumberGenerationStrategy, BooleanGenerationStrategy, ArrayGenerationStrategy, ObjectGenerationStrategy, EnumGenerationStrategy, } from './type-strategies.js';
12
+ /**
13
+ * Heuristic-based data generator.
14
+ * Uses Faker.js strategies; no AI calls.
15
+ * Reproducible when seed is provided.
16
+ */
17
+ export class HeuristicDataGenerator extends BaseDataGenerator {
18
+ constructor(seed) {
19
+ super();
20
+ if (seed !== undefined) {
21
+ faker.seed(seed);
22
+ }
23
+ this.registerStrategies();
24
+ }
25
+ registerStrategies() {
26
+ const arrayStrategy = new ArrayGenerationStrategy(this);
27
+ const objectStrategy = new ObjectGenerationStrategy(this);
28
+ this.strategies.set('string', new StringGenerationStrategy());
29
+ this.strategies.set('integer', new IntegerGenerationStrategy());
30
+ this.strategies.set('number', new NumberGenerationStrategy());
31
+ this.strategies.set('boolean', new BooleanGenerationStrategy());
32
+ this.strategies.set('array', arrayStrategy);
33
+ this.strategies.set('object', objectStrategy);
34
+ this.strategies.set('enum', new EnumGenerationStrategy());
35
+ }
36
+ /**
37
+ * Generate data for the given schema (async, backward-compatible)
38
+ */
39
+ async generate(schema, options = {}) {
40
+ return this.generateValue(schema, options.includeOptional ?? true, options);
41
+ }
42
+ /**
43
+ * Generate data for the given schema (sync, faker-only)
44
+ */
45
+ generateSync(schema, options = {}) {
46
+ return this.generateValueSync(schema, options.includeOptional ?? true, options);
47
+ }
48
+ }
49
+ //# sourceMappingURL=heuristic-data-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heuristic-data-generator.js","sourceRoot":"","sources":["../../../src/generators/data/heuristic-data-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAyB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAC3D,YAAY,IAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,kBAAkB;QACxB,MAAM,aAAa,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,wBAAwB,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,wBAAwB,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,MAA8B,EAC9B,UAA4B,EAAE;QAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,YAAY,CACV,MAA8B,EAC9B,UAA4B,EAAE;QAE9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Data Generator - Public API
3
+ *
4
+ * Factory functions and re-exports for data generation.
5
+ * Maintains full backward compatibility with the original data-generator.ts API.
6
+ *
7
+ * @module generators/data
8
+ */
9
+ import type { OpenAPIV3 } from 'openapi-types';
10
+ export { BaseDataGenerator, type GeneratorOptions, type TypeGenerationStrategy, aiLevelToMode } from './base-generator.js';
11
+ export { HeuristicDataGenerator } from './heuristic-data-generator.js';
12
+ export { AIDataGenerator } from './ai-data-generator.js';
13
+ export { SchemaWalker, type SchemaVisitor } from './schema-walker.js';
14
+ export { StringGenerationStrategy, IntegerGenerationStrategy, NumberGenerationStrategy, BooleanGenerationStrategy, ArrayGenerationStrategy, ObjectGenerationStrategy, EnumGenerationStrategy, generateStringValue, generateIntegerValue, generateNumberValue, } from './type-strategies.js';
15
+ import type { GeneratorOptions } from './base-generator.js';
16
+ /**
17
+ * Generates test data based on a JSON Schema
18
+ *
19
+ * @param schema - JSON Schema object (from OpenAPI spec)
20
+ * @param options - Generation options
21
+ * @returns Generated data matching the schema
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const data = await generateDataFromSchema(schema, { aiMode: 'hybrid' });
26
+ * ```
27
+ */
28
+ export declare function generateDataFromSchema(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): Promise<unknown>;
29
+ /**
30
+ * Synchronous wrapper for generateDataFromSchema
31
+ * Only use this when aiMode is 'faker' (default) or not specified
32
+ *
33
+ * @deprecated Use generateDataFromSchema for AI-powered generation
34
+ */
35
+ export declare function generateDataFromSchemaSync(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): unknown;
36
+ /**
37
+ * Generates a value at the minimum constraint boundary
38
+ */
39
+ export declare function generateMinimumValue(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): Promise<unknown>;
40
+ /**
41
+ * Generates a value at the maximum constraint boundary
42
+ */
43
+ export declare function generateMaximumValue(schema: OpenAPIV3.SchemaObject, options?: GeneratorOptions): Promise<unknown>;
44
+ /**
45
+ * Generates an invalid value that violates schema constraints
46
+ */
47
+ export declare function generateInvalidValue(schema: OpenAPIV3.SchemaObject, violationType: 'type' | 'format' | 'minimum' | 'maximum' | 'minLength' | 'maxLength' | 'minItems' | 'maxItems' | 'pattern' | 'enum' | 'required'): unknown;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/data/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3H,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAaT;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GACvE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GACrE,OAAO,CA0ET"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Data Generator - Public API
3
+ *
4
+ * Factory functions and re-exports for data generation.
5
+ * Maintains full backward compatibility with the original data-generator.ts API.
6
+ *
7
+ * @module generators/data
8
+ */
9
+ import { faker } from '@faker-js/faker';
10
+ import { HeuristicDataGenerator } from './heuristic-data-generator.js';
11
+ import { AIDataGenerator } from './ai-data-generator.js';
12
+ // ─── Re-exports ───────────────────────────────────────────────────────────────
13
+ export { BaseDataGenerator, aiLevelToMode } from './base-generator.js';
14
+ export { HeuristicDataGenerator } from './heuristic-data-generator.js';
15
+ export { AIDataGenerator } from './ai-data-generator.js';
16
+ export { SchemaWalker } from './schema-walker.js';
17
+ export { StringGenerationStrategy, IntegerGenerationStrategy, NumberGenerationStrategy, BooleanGenerationStrategy, ArrayGenerationStrategy, ObjectGenerationStrategy, EnumGenerationStrategy, generateStringValue, generateIntegerValue, generateNumberValue, } from './type-strategies.js';
18
+ /**
19
+ * Generates test data based on a JSON Schema
20
+ *
21
+ * @param schema - JSON Schema object (from OpenAPI spec)
22
+ * @param options - Generation options
23
+ * @returns Generated data matching the schema
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const data = await generateDataFromSchema(schema, { aiMode: 'hybrid' });
28
+ * ```
29
+ */
30
+ export async function generateDataFromSchema(schema, options = {}) {
31
+ const { seed } = options;
32
+ if (seed !== undefined) {
33
+ faker.seed(seed);
34
+ }
35
+ const generator = options.aiMode && options.aiMode !== 'faker'
36
+ ? new AIDataGenerator(seed)
37
+ : new HeuristicDataGenerator(seed);
38
+ return generator.generate(schema, options);
39
+ }
40
+ /**
41
+ * Synchronous wrapper for generateDataFromSchema
42
+ * Only use this when aiMode is 'faker' (default) or not specified
43
+ *
44
+ * @deprecated Use generateDataFromSchema for AI-powered generation
45
+ */
46
+ export function generateDataFromSchemaSync(schema, options = {}) {
47
+ if (options.aiMode && options.aiMode !== 'faker') {
48
+ throw new Error('Cannot use sync generation with AI mode. Use generateDataFromSchema instead.');
49
+ }
50
+ const { seed } = options;
51
+ if (seed !== undefined) {
52
+ faker.seed(seed);
53
+ }
54
+ const syncOptions = { ...options, aiMode: 'faker' };
55
+ const generator = new HeuristicDataGenerator(seed);
56
+ return generator.generateSync(schema, syncOptions);
57
+ }
58
+ /**
59
+ * Generates a value at the minimum constraint boundary
60
+ */
61
+ export async function generateMinimumValue(schema, options = {}) {
62
+ const generator = new HeuristicDataGenerator();
63
+ switch (schema.type) {
64
+ case 'string':
65
+ if (schema.minLength !== undefined) {
66
+ return faker.string.alphanumeric(schema.minLength);
67
+ }
68
+ return '';
69
+ case 'integer':
70
+ case 'number':
71
+ if (schema.minimum !== undefined) {
72
+ return schema.exclusiveMinimum ? schema.minimum + 1 : schema.minimum;
73
+ }
74
+ return 0;
75
+ case 'array': {
76
+ const arraySchema = schema;
77
+ if (schema.minItems !== undefined && arraySchema.items && !('$ref' in arraySchema.items)) {
78
+ const items = [];
79
+ for (let i = 0; i < schema.minItems; i++) {
80
+ items.push(await generator.generateValue(arraySchema.items, true, options));
81
+ }
82
+ return items;
83
+ }
84
+ return [];
85
+ }
86
+ default:
87
+ return generator.generate(schema, options);
88
+ }
89
+ }
90
+ /**
91
+ * Generates a value at the maximum constraint boundary
92
+ */
93
+ export async function generateMaximumValue(schema, options = {}) {
94
+ const generator = new HeuristicDataGenerator();
95
+ switch (schema.type) {
96
+ case 'string':
97
+ if (schema.maxLength !== undefined) {
98
+ return faker.string.alphanumeric(schema.maxLength);
99
+ }
100
+ return faker.string.alphanumeric(100);
101
+ case 'integer':
102
+ case 'number':
103
+ if (schema.maximum !== undefined) {
104
+ return schema.exclusiveMaximum ? schema.maximum - 1 : schema.maximum;
105
+ }
106
+ return 100;
107
+ case 'array': {
108
+ const arraySchema = schema;
109
+ if (schema.maxItems !== undefined && arraySchema.items && !('$ref' in arraySchema.items)) {
110
+ const items = [];
111
+ for (let i = 0; i < schema.maxItems; i++) {
112
+ items.push(await generator.generateValue(arraySchema.items, true, options));
113
+ }
114
+ return items;
115
+ }
116
+ return [await generator.generate(schema, options)];
117
+ }
118
+ default:
119
+ return generator.generate(schema, options);
120
+ }
121
+ }
122
+ /**
123
+ * Generates an invalid value that violates schema constraints
124
+ */
125
+ export function generateInvalidValue(schema, violationType) {
126
+ switch (violationType) {
127
+ case 'type':
128
+ if (schema.type === 'string')
129
+ return 123;
130
+ if (schema.type === 'integer' || schema.type === 'number')
131
+ return 'not-a-number';
132
+ if (schema.type === 'boolean')
133
+ return 'not-a-boolean';
134
+ if (schema.type === 'array')
135
+ return { notAn: 'array' };
136
+ if (schema.type === 'object')
137
+ return ['not', 'an', 'object'];
138
+ return null;
139
+ case 'format':
140
+ if (schema.format === 'email')
141
+ return 'not-an-email';
142
+ if (schema.format === 'uuid')
143
+ return '123-456-789';
144
+ if (schema.format === 'date-time')
145
+ return 'not-a-date';
146
+ if (schema.format === 'uri' || schema.format === 'url')
147
+ return 'invalid-url-format';
148
+ return 'invalid-format';
149
+ case 'minimum':
150
+ if (schema.type === 'integer' || schema.type === 'number') {
151
+ const min = schema.minimum ?? 0;
152
+ return min - 1;
153
+ }
154
+ return -999;
155
+ case 'maximum':
156
+ if (schema.type === 'integer' || schema.type === 'number') {
157
+ const max = schema.maximum ?? 100;
158
+ return max + 1;
159
+ }
160
+ return 9999;
161
+ case 'minLength':
162
+ if (schema.minLength !== undefined && schema.minLength > 0) {
163
+ return faker.string.alphanumeric(schema.minLength - 1);
164
+ }
165
+ return '';
166
+ case 'maxLength':
167
+ if (schema.maxLength !== undefined) {
168
+ return faker.string.alphanumeric(schema.maxLength + 1);
169
+ }
170
+ return faker.string.alphanumeric(1000);
171
+ case 'minItems':
172
+ return [];
173
+ case 'maxItems':
174
+ if (schema.type === 'array' && schema.maxItems !== undefined) {
175
+ const arraySchema = schema;
176
+ if (arraySchema.items && !('$ref' in arraySchema.items)) {
177
+ const generator = new HeuristicDataGenerator();
178
+ const items = [];
179
+ for (let i = 0; i < schema.maxItems + 1; i++) {
180
+ items.push(generator.generateValueSync(arraySchema.items, true, {}));
181
+ }
182
+ return items;
183
+ }
184
+ }
185
+ return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
186
+ case 'enum':
187
+ if (schema.enum && schema.enum.length > 0) {
188
+ if (schema.type === 'string')
189
+ return 'not-in-enum';
190
+ if (schema.type === 'integer')
191
+ return 99999;
192
+ return 'invalid';
193
+ }
194
+ return 'invalid-enum-value';
195
+ case 'pattern':
196
+ return 'INVALID_PATTERN_VALUE';
197
+ default:
198
+ return null;
199
+ }
200
+ }
201
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/data/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Schema Walker - Visitor Pattern
3
+ *
4
+ * Traverses OpenAPI schemas recursively, applying visitor callbacks.
5
+ * Useful for schema analysis, validation, and transformation.
6
+ *
7
+ * @module generators/data/schema-walker
8
+ */
9
+ import type { OpenAPIV3 } from 'openapi-types';
10
+ /**
11
+ * Visitor interface for schema traversal
12
+ */
13
+ export interface SchemaVisitor {
14
+ visitSchema(schema: OpenAPIV3.SchemaObject, path: string[]): void;
15
+ visitProperty?(schema: OpenAPIV3.SchemaObject, propertyName: string, path: string[]): void;
16
+ visitArrayItem?(schema: OpenAPIV3.SchemaObject, path: string[]): void;
17
+ }
18
+ /**
19
+ * Schema Walker - traverses OpenAPI schemas using the Visitor pattern
20
+ */
21
+ export declare class SchemaWalker {
22
+ /**
23
+ * Walk schema and apply visitor at each node
24
+ */
25
+ walk(schema: OpenAPIV3.SchemaObject, visitor: SchemaVisitor, path?: string[]): void;
26
+ /**
27
+ * Collect all leaf schemas (primitives without nested structures)
28
+ */
29
+ collectLeafSchemas(schema: OpenAPIV3.SchemaObject): Array<{
30
+ path: string[];
31
+ schema: OpenAPIV3.SchemaObject;
32
+ }>;
33
+ /**
34
+ * Find schemas by type
35
+ */
36
+ findSchemasByType(schema: OpenAPIV3.SchemaObject, type: string): Array<{
37
+ path: string[];
38
+ schema: OpenAPIV3.SchemaObject;
39
+ }>;
40
+ /**
41
+ * Check if schema is a leaf (primitive without nested structures)
42
+ */
43
+ private isLeafSchema;
44
+ }
45
+ //# sourceMappingURL=schema-walker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-walker.d.ts","sourceRoot":"","sources":["../../../src/generators/data/schema-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClE,aAAa,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3F,cAAc,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvE;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,IAAI;IAoDvF;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAA;KAAE,CAAC;IAe7G;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAA;KAAE,CAAC;IAe1H;;OAEG;IACH,OAAO,CAAC,YAAY;CAOrB"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Schema Walker - Visitor Pattern
3
+ *
4
+ * Traverses OpenAPI schemas recursively, applying visitor callbacks.
5
+ * Useful for schema analysis, validation, and transformation.
6
+ *
7
+ * @module generators/data/schema-walker
8
+ */
9
+ /**
10
+ * Schema Walker - traverses OpenAPI schemas using the Visitor pattern
11
+ */
12
+ export class SchemaWalker {
13
+ /**
14
+ * Walk schema and apply visitor at each node
15
+ */
16
+ walk(schema, visitor, path = []) {
17
+ visitor.visitSchema(schema, path);
18
+ // Walk properties
19
+ if (schema.properties) {
20
+ for (const [key, propSchema] of Object.entries(schema.properties)) {
21
+ if ('$ref' in propSchema)
22
+ continue; // Skip unresolved refs
23
+ const propPath = [...path, key];
24
+ if (visitor.visitProperty) {
25
+ visitor.visitProperty(propSchema, key, propPath);
26
+ }
27
+ this.walk(propSchema, visitor, propPath);
28
+ }
29
+ }
30
+ // Walk array items
31
+ if ('items' in schema && schema.items) {
32
+ const arraySchema = schema;
33
+ if (!('$ref' in arraySchema.items)) {
34
+ const itemPath = [...path, '[item]'];
35
+ if (visitor.visitArrayItem) {
36
+ visitor.visitArrayItem(arraySchema.items, itemPath);
37
+ }
38
+ this.walk(arraySchema.items, visitor, itemPath);
39
+ }
40
+ }
41
+ // Walk composition schemas
42
+ if (schema.allOf) {
43
+ schema.allOf.forEach((subSchema, index) => {
44
+ if (!('$ref' in subSchema)) {
45
+ this.walk(subSchema, visitor, [...path, `allOf[${index}]`]);
46
+ }
47
+ });
48
+ }
49
+ if (schema.oneOf && schema.oneOf.length > 0) {
50
+ const first = schema.oneOf[0];
51
+ if (!('$ref' in first)) {
52
+ this.walk(first, visitor, [...path, 'oneOf[0]']);
53
+ }
54
+ }
55
+ if (schema.anyOf && schema.anyOf.length > 0) {
56
+ const first = schema.anyOf[0];
57
+ if (!('$ref' in first)) {
58
+ this.walk(first, visitor, [...path, 'anyOf[0]']);
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * Collect all leaf schemas (primitives without nested structures)
64
+ */
65
+ collectLeafSchemas(schema) {
66
+ const leaves = [];
67
+ const collector = {
68
+ visitSchema: (s, p) => {
69
+ if (this.isLeafSchema(s)) {
70
+ leaves.push({ path: p, schema: s });
71
+ }
72
+ }
73
+ };
74
+ this.walk(schema, collector);
75
+ return leaves;
76
+ }
77
+ /**
78
+ * Find schemas by type
79
+ */
80
+ findSchemasByType(schema, type) {
81
+ const matches = [];
82
+ const finder = {
83
+ visitSchema: (s, p) => {
84
+ if (s.type === type) {
85
+ matches.push({ path: p, schema: s });
86
+ }
87
+ }
88
+ };
89
+ this.walk(schema, finder);
90
+ return matches;
91
+ }
92
+ /**
93
+ * Check if schema is a leaf (primitive without nested structures)
94
+ */
95
+ isLeafSchema(schema) {
96
+ return !schema.properties &&
97
+ !('items' in schema) &&
98
+ !schema.allOf &&
99
+ !schema.oneOf &&
100
+ !schema.anyOf;
101
+ }
102
+ }
103
+ //# sourceMappingURL=schema-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-walker.js","sourceRoot":"","sources":["../../../src/generators/data/schema-walker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Type Generation Strategies - Strategy Pattern
3
+ *
4
+ * Implements specific value generators for each JSON Schema type.
5
+ * Each strategy handles one type (string, number, integer, boolean, array, object, enum).
6
+ *
7
+ * @module generators/data/type-strategies
8
+ */
9
+ import type { OpenAPIV3 } from 'openapi-types';
10
+ import type { BaseDataGenerator, GeneratorOptions, TypeGenerationStrategy } from './base-generator.js';
11
+ /**
12
+ * Core string generation logic (shared by sync and async)
13
+ */
14
+ export declare function generateStringValue(schema: OpenAPIV3.SchemaObject): string;
15
+ /**
16
+ * String generation strategy
17
+ */
18
+ export declare class StringGenerationStrategy implements TypeGenerationStrategy {
19
+ generate(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): Promise<string>;
20
+ generateSync(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): string;
21
+ }
22
+ /**
23
+ * Core integer generation logic
24
+ */
25
+ export declare function generateIntegerValue(schema: OpenAPIV3.SchemaObject): number;
26
+ /**
27
+ * Core number (float) generation logic
28
+ */
29
+ export declare function generateNumberValue(schema: OpenAPIV3.SchemaObject): number;
30
+ /**
31
+ * Integer generation strategy
32
+ */
33
+ export declare class IntegerGenerationStrategy implements TypeGenerationStrategy {
34
+ generate(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): Promise<number>;
35
+ generateSync(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): number;
36
+ }
37
+ /**
38
+ * Number (float) generation strategy
39
+ */
40
+ export declare class NumberGenerationStrategy implements TypeGenerationStrategy {
41
+ generate(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): Promise<number>;
42
+ generateSync(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): number;
43
+ }
44
+ /**
45
+ * Boolean generation strategy
46
+ */
47
+ export declare class BooleanGenerationStrategy implements TypeGenerationStrategy {
48
+ generate(_schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): Promise<boolean>;
49
+ generateSync(_schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): boolean;
50
+ }
51
+ /**
52
+ * Array generation strategy
53
+ */
54
+ export declare class ArrayGenerationStrategy implements TypeGenerationStrategy {
55
+ private readonly generator;
56
+ constructor(generator: BaseDataGenerator);
57
+ generate(schema: OpenAPIV3.SchemaObject, includeOptional: boolean, options: GeneratorOptions, _propertyName?: string): Promise<unknown[]>;
58
+ generateSync(schema: OpenAPIV3.SchemaObject, includeOptional: boolean, options: GeneratorOptions, _propertyName?: string): unknown[];
59
+ }
60
+ /**
61
+ * Object generation strategy
62
+ */
63
+ export declare class ObjectGenerationStrategy implements TypeGenerationStrategy {
64
+ private readonly generator;
65
+ constructor(generator: BaseDataGenerator);
66
+ generate(schema: OpenAPIV3.SchemaObject, includeOptional: boolean, options: GeneratorOptions, _propertyName?: string): Promise<Record<string, unknown>>;
67
+ generateSync(schema: OpenAPIV3.SchemaObject, includeOptional: boolean, options: GeneratorOptions, _propertyName?: string): Record<string, unknown>;
68
+ private buildObject;
69
+ private buildObjectSync;
70
+ private buildObjectAsync;
71
+ }
72
+ /**
73
+ * Enum generation strategy
74
+ */
75
+ export declare class EnumGenerationStrategy implements TypeGenerationStrategy {
76
+ generate(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): Promise<unknown>;
77
+ generateSync(schema: OpenAPIV3.SchemaObject, _includeOptional: boolean, _options: GeneratorOptions, _propertyName?: string): unknown;
78
+ }
79
+ //# sourceMappingURL=type-strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-strategies.d.ts","sourceRoot":"","sources":["../../../src/generators/data/type-strategies.ts"],"names":[],"mappings":"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"}