@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,139 @@
1
+ /**
2
+ * OpenAPI types - specification parsing and comparison
3
+ * @module types/openapi
4
+ */
5
+ import type { OpenAPIV3 } from 'openapi-types';
6
+ import type { HttpMethod } from './core.js';
7
+ /**
8
+ * Parsed OpenAPI endpoint information
9
+ */
10
+ export interface ParsedEndpoint {
11
+ /**
12
+ * HTTP method
13
+ */
14
+ method: HttpMethod;
15
+ /**
16
+ * Path (e.g., /api/users/{id})
17
+ */
18
+ path: string;
19
+ /**
20
+ * Operation object from OpenAPI spec
21
+ */
22
+ operation: OpenAPIV3.OperationObject;
23
+ /**
24
+ * Path parameters
25
+ */
26
+ pathParams: OpenAPIV3.ParameterObject[];
27
+ /**
28
+ * Query parameters
29
+ */
30
+ queryParams: OpenAPIV3.ParameterObject[];
31
+ /**
32
+ * Header parameters
33
+ */
34
+ headerParams: OpenAPIV3.ParameterObject[];
35
+ /**
36
+ * Request body schema (if applicable)
37
+ */
38
+ requestBody?: OpenAPIV3.SchemaObject;
39
+ /**
40
+ * Content-Type for request body (from OpenAPI spec)
41
+ * @example 'application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'
42
+ */
43
+ requestContentType?: string;
44
+ /**
45
+ * Response schemas by status code
46
+ */
47
+ responses: Record<number, OpenAPIV3.SchemaObject>;
48
+ /**
49
+ * Security requirements for this endpoint
50
+ */
51
+ security?: OpenAPIV3.SecurityRequirementObject[];
52
+ /**
53
+ * Resolved security scheme objects for this endpoint
54
+ */
55
+ securitySchemes?: OpenAPIV3.SecuritySchemeObject[];
56
+ /**
57
+ * Whether this endpoint requires authentication
58
+ * Determined from OpenAPI security field
59
+ * - security: [] → false (explicitly public)
60
+ * - security: [{ ... }] → true (requires auth)
61
+ * - security: undefined → true (uses global security)
62
+ */
63
+ requiresAuth?: boolean;
64
+ }
65
+ /**
66
+ * Options for comparing two OpenAPI specifications
67
+ */
68
+ export interface SpecComparisonOptions {
69
+ /**
70
+ * Whether to detect breaking changes
71
+ * @default true
72
+ */
73
+ detectBreakingChanges?: boolean;
74
+ /**
75
+ * Whether to detect non-breaking changes
76
+ * @default true
77
+ */
78
+ detectNonBreakingChanges?: boolean;
79
+ /**
80
+ * Whether to ignore description changes
81
+ * @default true
82
+ */
83
+ ignoreDescriptionChanges?: boolean;
84
+ }
85
+ /**
86
+ * Result of comparing two OpenAPI specifications
87
+ */
88
+ export interface SpecComparisonResult {
89
+ /**
90
+ * Breaking changes detected
91
+ */
92
+ breakingChanges: SpecChange[];
93
+ /**
94
+ * Non-breaking changes detected
95
+ */
96
+ nonBreakingChanges: SpecChange[];
97
+ /**
98
+ * Whether the specs are compatible (no breaking changes)
99
+ */
100
+ isCompatible: boolean;
101
+ /**
102
+ * Summary message
103
+ */
104
+ summary: string;
105
+ }
106
+ /**
107
+ * Represents a change between two OpenAPI specifications
108
+ */
109
+ export interface SpecChange {
110
+ /**
111
+ * Type of change
112
+ */
113
+ type: 'endpoint-removed' | 'endpoint-added' | 'field-removed' | 'field-added' | 'type-changed' | 'validation-added' | 'validation-removed' | 'status-code-changed';
114
+ /**
115
+ * Location of the change (endpoint path)
116
+ */
117
+ location: string;
118
+ /**
119
+ * HTTP method (if applicable)
120
+ */
121
+ method?: HttpMethod;
122
+ /**
123
+ * Description of the change
124
+ */
125
+ description: string;
126
+ /**
127
+ * Old value (before change)
128
+ */
129
+ oldValue?: unknown;
130
+ /**
131
+ * New value (after change)
132
+ */
133
+ newValue?: unknown;
134
+ /**
135
+ * Whether this is a breaking change
136
+ */
137
+ breaking: boolean;
138
+ }
139
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/types/openapi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC,eAAe,CAAC;IAErC;;OAEG;IACH,UAAU,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IAExC;;OAEG;IACH,WAAW,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IAEzC;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC;IAErC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,yBAAyB,EAAE,CAAC;IAEjD;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAC;IAEnD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,eAAe,EAAE,UAAU,EAAE,CAAC;IAE9B;;OAEG;IACH,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAEjC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GACvE,cAAc,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;IAEzF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * OpenAPI types - specification parsing and comparison
3
+ * @module types/openapi
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/types/openapi.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Pact contract types - consumer-driven contracts
3
+ * @module types/pact
4
+ */
5
+ /**
6
+ * Pact consumer contract
7
+ */
8
+ export interface PactContract {
9
+ /**
10
+ * Consumer information
11
+ */
12
+ consumer: {
13
+ name: string;
14
+ };
15
+ /**
16
+ * Provider information
17
+ */
18
+ provider: {
19
+ name: string;
20
+ };
21
+ /**
22
+ * List of interactions between consumer and provider
23
+ */
24
+ interactions: PactInteraction[];
25
+ /**
26
+ * Metadata about the contract
27
+ */
28
+ metadata: {
29
+ pactSpecification: {
30
+ version: string;
31
+ };
32
+ };
33
+ }
34
+ /**
35
+ * Represents a single interaction in a Pact contract
36
+ */
37
+ export interface PactInteraction {
38
+ /**
39
+ * Description of what the interaction represents
40
+ */
41
+ description: string;
42
+ /**
43
+ * Provider state required for this interaction
44
+ * @example "user with id exists"
45
+ */
46
+ providerState?: string;
47
+ /**
48
+ * The request expected from the consumer
49
+ */
50
+ request: {
51
+ method: string;
52
+ path: string;
53
+ query?: Record<string, string>;
54
+ headers?: Record<string, unknown>;
55
+ body?: unknown;
56
+ matchingRules?: Record<string, unknown>;
57
+ };
58
+ /**
59
+ * The response the provider should return
60
+ */
61
+ response: {
62
+ status: number;
63
+ headers?: Record<string, unknown>;
64
+ body?: unknown;
65
+ matchingRules?: Record<string, unknown>;
66
+ };
67
+ }
68
+ /**
69
+ * Pact matchers for flexible matching
70
+ */
71
+ export type PactMatchers = Record<string, {
72
+ match: 'type' | 'regex' | 'integer' | 'decimal';
73
+ regex?: string;
74
+ min?: number;
75
+ }>;
76
+ /**
77
+ * Result of Pact provider verification
78
+ */
79
+ export interface PactVerificationResult {
80
+ /**
81
+ * Whether verification succeeded
82
+ */
83
+ success: boolean;
84
+ /**
85
+ * Provider name
86
+ */
87
+ provider: string;
88
+ /**
89
+ * Verification output (if successful)
90
+ */
91
+ output?: string;
92
+ /**
93
+ * Error message (if failed)
94
+ */
95
+ error?: string;
96
+ /**
97
+ * Timestamp of verification
98
+ */
99
+ timestamp: Date;
100
+ }
101
+ //# sourceMappingURL=pact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact.d.ts","sourceRoot":"","sources":["../../src/types/pact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE;QACR,iBAAiB,EAAE;YACjB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN;IACE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Pact contract types - consumer-driven contracts
3
+ * @module types/pact
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=pact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact.js","sourceRoot":"","sources":["../../src/types/pact.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Reporting types - test results and violations
3
+ * @module types/reporting
4
+ */
5
+ import type { HttpMethod } from './core.js';
6
+ import type { TestCase } from './test-case.js';
7
+ /**
8
+ * Summary of test execution for a complete test suite
9
+ */
10
+ export interface TestSuiteSummary {
11
+ /**
12
+ * Total number of tests executed
13
+ */
14
+ total: number;
15
+ /**
16
+ * Number of passed tests
17
+ */
18
+ passed: number;
19
+ /**
20
+ * Number of failed tests
21
+ */
22
+ failed: number;
23
+ /**
24
+ * Number of skipped tests
25
+ */
26
+ skipped: number;
27
+ /**
28
+ * Total duration in milliseconds
29
+ */
30
+ duration: number;
31
+ /**
32
+ * Average response time in milliseconds
33
+ */
34
+ avgResponseTime: number;
35
+ /**
36
+ * Start time of test execution
37
+ */
38
+ startTime: Date;
39
+ /**
40
+ * End time of test execution
41
+ */
42
+ endTime: Date;
43
+ /**
44
+ * Tests grouped by category
45
+ */
46
+ byCategory: Record<string, {
47
+ passed: number;
48
+ failed: number;
49
+ total: number;
50
+ }>;
51
+ /**
52
+ * Tests grouped by endpoint
53
+ */
54
+ byEndpoint: Record<string, {
55
+ passed: number;
56
+ failed: number;
57
+ total: number;
58
+ }>;
59
+ }
60
+ /**
61
+ * Represents a violation of the OpenAPI contract
62
+ */
63
+ export interface ContractViolation {
64
+ /**
65
+ * Type of violation
66
+ */
67
+ type: 'missing-validation' | 'wrong-status' | 'schema-mismatch' | 'missing-field' | 'extra-field';
68
+ /**
69
+ * Severity of the violation
70
+ */
71
+ severity: 'critical' | 'high' | 'medium' | 'low';
72
+ /**
73
+ * Endpoint where the violation occurred
74
+ */
75
+ endpoint: string;
76
+ /**
77
+ * HTTP method
78
+ */
79
+ method: HttpMethod;
80
+ /**
81
+ * Description of the violation
82
+ */
83
+ description: string;
84
+ /**
85
+ * The test case that detected this violation
86
+ */
87
+ testCase: TestCase;
88
+ /**
89
+ * Suggested fix for the violation
90
+ */
91
+ suggestion?: string;
92
+ }
93
+ //# sourceMappingURL=reporting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../src/types/reporting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9E;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,oBAAoB,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAAG,aAAa,CAAC;IAElG;;OAEG;IACH,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEjD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reporting types - test results and violations
3
+ * @module types/reporting
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=reporting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../src/types/reporting.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Test case types - definitions and configuration
3
+ * @module types/test-case
4
+ */
5
+ import type { OpenAPIV3 } from 'openapi-types';
6
+ import type { HttpMethod, TestCaseCategory, TestStatus, ValidationError } from './core.js';
7
+ /**
8
+ * Represents a single test case to be executed
9
+ */
10
+ export interface TestCase {
11
+ /**
12
+ * Unique identifier for the test case
13
+ */
14
+ id: string;
15
+ /**
16
+ * Human-readable name describing what is being tested
17
+ */
18
+ name: string;
19
+ /**
20
+ * Detailed description of the test case
21
+ */
22
+ description?: string;
23
+ /**
24
+ * Category of the test case
25
+ */
26
+ category: TestCaseCategory;
27
+ /**
28
+ * HTTP method to use
29
+ */
30
+ method: HttpMethod;
31
+ /**
32
+ * Request path (e.g., /api/users/{id})
33
+ */
34
+ path: string;
35
+ /**
36
+ * Path parameters to substitute in the path
37
+ * @example { id: '123' } for path /api/users/{id}
38
+ */
39
+ pathParams?: Record<string, string | number>;
40
+ /**
41
+ * Query parameters to append to the URL
42
+ */
43
+ queryParams?: Record<string, string | number | boolean>;
44
+ /**
45
+ * Request headers
46
+ */
47
+ headers?: Record<string, string>;
48
+ /**
49
+ * Request body (for POST, PUT, PATCH)
50
+ */
51
+ body?: unknown;
52
+ /**
53
+ * Content-Type for request body
54
+ * @example 'application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'
55
+ * @default 'application/json'
56
+ */
57
+ contentType?: string;
58
+ /**
59
+ * Expected HTTP status code
60
+ */
61
+ expectedStatus: number;
62
+ /**
63
+ * Expected response schema (JSON Schema)
64
+ */
65
+ expectedSchema?: OpenAPIV3.SchemaObject;
66
+ /**
67
+ * Expected error response pattern (for error cases)
68
+ */
69
+ expectedError?: {
70
+ /**
71
+ * Field that should be mentioned in the error
72
+ */
73
+ field?: string;
74
+ /**
75
+ * Pattern to match in error message
76
+ */
77
+ message?: RegExp | string;
78
+ };
79
+ /**
80
+ * Whether to validate the response against the schema
81
+ * @default true
82
+ */
83
+ validateSchema?: boolean;
84
+ /**
85
+ * Business rule ID that this test validates (if applicable)
86
+ */
87
+ ruleId?: string;
88
+ /**
89
+ * Whether this endpoint requires authentication
90
+ * Determined from OpenAPI security schemes
91
+ * If false, auth headers will NOT be sent (e.g., public login endpoints)
92
+ * @default true
93
+ */
94
+ requiresAuth?: boolean;
95
+ /**
96
+ * Expected error message for business rule violations
97
+ */
98
+ expectedErrorMessage?: string;
99
+ /**
100
+ * Setup function to run before the test (e.g., create dependencies)
101
+ */
102
+ setup?: () => Promise<void>;
103
+ /**
104
+ * Teardown function to run after the test (e.g., cleanup)
105
+ */
106
+ teardown?: () => Promise<void>;
107
+ /**
108
+ * Custom token field name for auto-detection
109
+ * Use when your API returns the token in a non-standard field
110
+ * Supports dot notation for nested fields (e.g., "data.auth.token")
111
+ * @example 'myCustomToken', 'response.credentials.jwt', 'auth.session_key'
112
+ */
113
+ tokenField?: string;
114
+ /**
115
+ * Origin of the test case
116
+ * - 'heuristic': Generated from schema rules and boundary analysis
117
+ * - 'ai': Generated by AI from domain knowledge or user stories
118
+ * @default 'heuristic'
119
+ */
120
+ origin?: 'heuristic' | 'ai';
121
+ /**
122
+ * Confidence level in the test case
123
+ * - 'high': Derived directly from spec (happy-path, required fields)
124
+ * - 'medium': Boundary values, enum variations
125
+ * - 'low': AI-generated from user stories or domain inference
126
+ */
127
+ confidence?: 'high' | 'medium' | 'low';
128
+ /**
129
+ * Internal metadata (not exposed to users)
130
+ */
131
+ metadata?: Record<string, unknown>;
132
+ }
133
+ /**
134
+ * Result of executing a single test case
135
+ */
136
+ export interface TestResult {
137
+ /**
138
+ * The test case that was executed
139
+ */
140
+ testCase: TestCase;
141
+ /**
142
+ * Execution status
143
+ */
144
+ status: TestStatus;
145
+ /**
146
+ * Actual HTTP status code received
147
+ */
148
+ actualStatus?: number;
149
+ /**
150
+ * Actual response body received
151
+ */
152
+ actualBody?: unknown;
153
+ /**
154
+ * Actual response headers received
155
+ */
156
+ actualHeaders?: Record<string, string>;
157
+ /**
158
+ * Response time in milliseconds
159
+ */
160
+ responseTime?: number;
161
+ /**
162
+ * Error message if the test failed
163
+ */
164
+ error?: string;
165
+ /**
166
+ * Schema validation errors (if schema validation failed)
167
+ */
168
+ schemaErrors?: ValidationError[];
169
+ /**
170
+ * Timestamp when the test started
171
+ */
172
+ startTime: Date;
173
+ /**
174
+ * Timestamp when the test ended
175
+ */
176
+ endTime?: Date;
177
+ }
178
+ /**
179
+ * Boundary value for testing edge cases
180
+ */
181
+ export interface BoundaryValue {
182
+ /**
183
+ * Type of boundary value
184
+ */
185
+ type: 'valid' | 'invalid';
186
+ /**
187
+ * The actual value to test
188
+ */
189
+ value: unknown;
190
+ /**
191
+ * Description of what this boundary represents
192
+ */
193
+ description: string;
194
+ /**
195
+ * Expected error type (for invalid boundaries)
196
+ */
197
+ expectedError?: string;
198
+ }
199
+ /**
200
+ * Configuration for test generation
201
+ */
202
+ export interface TestGenerationConfig {
203
+ /**
204
+ * Whether to generate happy path tests
205
+ * @default true
206
+ */
207
+ includeHappyPath?: boolean;
208
+ /**
209
+ * Whether to generate edge case tests
210
+ * @default true
211
+ */
212
+ includeEdgeCases?: boolean;
213
+ /**
214
+ * Whether to generate error case tests
215
+ * @default true
216
+ */
217
+ includeErrorCases?: boolean;
218
+ /**
219
+ * Maximum number of optional field combinations to test
220
+ * @default 10
221
+ */
222
+ maxOptionalCombinations?: number;
223
+ /**
224
+ * Whether to generate tests for all enum values
225
+ * @default true
226
+ */
227
+ testAllEnumValues?: boolean;
228
+ /**
229
+ * Additional custom test cases to include
230
+ */
231
+ customTests?: TestCase[];
232
+ }
233
+ //# sourceMappingURL=test-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-case.d.ts","sourceRoot":"","sources":["../../src/types/test-case.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Test case types - definitions and configuration
3
+ * @module types/test-case
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=test-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-case.js","sourceRoot":"","sources":["../../src/types/test-case.ts"],"names":[],"mappings":"AAAA;;;GAGG"}