specforge-mcp 0.11.0 → 0.12.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/dist/engine/agent-generator.test.d.ts +2 -0
  2. package/dist/engine/agent-generator.test.d.ts.map +1 -0
  3. package/dist/engine/agent-generator.test.js +556 -0
  4. package/dist/engine/agent-generator.test.js.map +1 -0
  5. package/dist/engine/analyzer.test.d.ts +2 -0
  6. package/dist/engine/analyzer.test.d.ts.map +1 -0
  7. package/dist/engine/analyzer.test.js +1461 -0
  8. package/dist/engine/analyzer.test.js.map +1 -0
  9. package/dist/engine/auditor.test.d.ts +2 -0
  10. package/dist/engine/auditor.test.d.ts.map +1 -0
  11. package/dist/engine/auditor.test.js +2075 -0
  12. package/dist/engine/auditor.test.js.map +1 -0
  13. package/dist/engine/context-budget/checkpoint.d.ts +8 -0
  14. package/dist/engine/context-budget/checkpoint.d.ts.map +1 -0
  15. package/dist/engine/context-budget/checkpoint.js +79 -0
  16. package/dist/engine/context-budget/checkpoint.js.map +1 -0
  17. package/dist/engine/context-budget/compressor.d.ts +20 -0
  18. package/dist/engine/context-budget/compressor.d.ts.map +1 -0
  19. package/dist/engine/context-budget/compressor.js +122 -0
  20. package/dist/engine/context-budget/compressor.js.map +1 -0
  21. package/dist/engine/context-budget/index.d.ts +5 -0
  22. package/dist/engine/context-budget/index.d.ts.map +1 -0
  23. package/dist/engine/context-budget/index.js +6 -0
  24. package/dist/engine/context-budget/index.js.map +1 -0
  25. package/dist/engine/context-budget/optimizer.d.ts +8 -0
  26. package/dist/engine/context-budget/optimizer.d.ts.map +1 -0
  27. package/dist/engine/context-budget/optimizer.js +87 -0
  28. package/dist/engine/context-budget/optimizer.js.map +1 -0
  29. package/dist/engine/context-budget/tracker.d.ts +19 -0
  30. package/dist/engine/context-budget/tracker.d.ts.map +1 -0
  31. package/dist/engine/context-budget/tracker.js +113 -0
  32. package/dist/engine/context-budget/tracker.js.map +1 -0
  33. package/dist/engine/doc-generator.test.d.ts +2 -0
  34. package/dist/engine/doc-generator.test.d.ts.map +1 -0
  35. package/dist/engine/doc-generator.test.js +961 -0
  36. package/dist/engine/doc-generator.test.js.map +1 -0
  37. package/dist/engine/estimator.test.d.ts +2 -0
  38. package/dist/engine/estimator.test.d.ts.map +1 -0
  39. package/dist/engine/estimator.test.js +334 -0
  40. package/dist/engine/estimator.test.js.map +1 -0
  41. package/dist/engine/skill-generator.test.d.ts +2 -0
  42. package/dist/engine/skill-generator.test.d.ts.map +1 -0
  43. package/dist/engine/skill-generator.test.js +742 -0
  44. package/dist/engine/skill-generator.test.js.map +1 -0
  45. package/dist/engine/test-spec-generator/criterion-parser.d.ts +6 -0
  46. package/dist/engine/test-spec-generator/criterion-parser.d.ts.map +1 -0
  47. package/dist/engine/test-spec-generator/criterion-parser.js +96 -0
  48. package/dist/engine/test-spec-generator/criterion-parser.js.map +1 -0
  49. package/dist/engine/{test-spec-generator.d.ts → test-spec-generator/index.d.ts} +5 -2
  50. package/dist/engine/test-spec-generator/index.d.ts.map +1 -0
  51. package/dist/engine/test-spec-generator/index.js +29 -0
  52. package/dist/engine/test-spec-generator/index.js.map +1 -0
  53. package/dist/engine/test-spec-generator/labels.d.ts +5 -0
  54. package/dist/engine/test-spec-generator/labels.d.ts.map +1 -0
  55. package/dist/engine/test-spec-generator/labels.js +62 -0
  56. package/dist/engine/test-spec-generator/labels.js.map +1 -0
  57. package/dist/engine/test-spec-generator/scenario-builders.d.ts +3 -0
  58. package/dist/engine/test-spec-generator/scenario-builders.d.ts.map +1 -0
  59. package/dist/engine/test-spec-generator/scenario-builders.js +184 -0
  60. package/dist/engine/test-spec-generator/scenario-builders.js.map +1 -0
  61. package/dist/engine/validator.test.d.ts +2 -0
  62. package/dist/engine/validator.test.d.ts.map +1 -0
  63. package/dist/engine/validator.test.js +2371 -0
  64. package/dist/engine/validator.test.js.map +1 -0
  65. package/dist/engine/web-fetcher.test.d.ts +2 -0
  66. package/dist/engine/web-fetcher.test.d.ts.map +1 -0
  67. package/dist/engine/web-fetcher.test.js +360 -0
  68. package/dist/engine/web-fetcher.test.js.map +1 -0
  69. package/dist/i18n/index.test.d.ts +2 -0
  70. package/dist/i18n/index.test.d.ts.map +1 -0
  71. package/dist/i18n/index.test.js +375 -0
  72. package/dist/i18n/index.test.js.map +1 -0
  73. package/dist/index.js +0 -0
  74. package/dist/index.test.d.ts +2 -0
  75. package/dist/index.test.d.ts.map +1 -0
  76. package/dist/index.test.js +124 -0
  77. package/dist/index.test.js.map +1 -0
  78. package/dist/resources/patterns.test.d.ts +2 -0
  79. package/dist/resources/patterns.test.d.ts.map +1 -0
  80. package/dist/resources/patterns.test.js +142 -0
  81. package/dist/resources/patterns.test.js.map +1 -0
  82. package/dist/resources/process.test.d.ts +2 -0
  83. package/dist/resources/process.test.d.ts.map +1 -0
  84. package/dist/resources/process.test.js +48 -0
  85. package/dist/resources/process.test.js.map +1 -0
  86. package/dist/resources/registry.test.d.ts +2 -0
  87. package/dist/resources/registry.test.d.ts.map +1 -0
  88. package/dist/resources/registry.test.js +138 -0
  89. package/dist/resources/registry.test.js.map +1 -0
  90. package/dist/resources/specs.test.d.ts +2 -0
  91. package/dist/resources/specs.test.d.ts.map +1 -0
  92. package/dist/resources/specs.test.js +130 -0
  93. package/dist/resources/specs.test.js.map +1 -0
  94. package/dist/resources/templates.test.d.ts +2 -0
  95. package/dist/resources/templates.test.d.ts.map +1 -0
  96. package/dist/resources/templates.test.js +119 -0
  97. package/dist/resources/templates.test.js.map +1 -0
  98. package/dist/smoke.test.d.ts +2 -0
  99. package/dist/smoke.test.d.ts.map +1 -0
  100. package/dist/smoke.test.js +229 -0
  101. package/dist/smoke.test.js.map +1 -0
  102. package/dist/storage/base-store.test.d.ts +2 -0
  103. package/dist/storage/base-store.test.d.ts.map +1 -0
  104. package/dist/storage/base-store.test.js +180 -0
  105. package/dist/storage/base-store.test.js.map +1 -0
  106. package/dist/storage/checkpoint-store.d.ts +12 -0
  107. package/dist/storage/checkpoint-store.d.ts.map +1 -0
  108. package/dist/storage/checkpoint-store.js +85 -0
  109. package/dist/storage/checkpoint-store.js.map +1 -0
  110. package/dist/storage/global-store.test.d.ts +2 -0
  111. package/dist/storage/global-store.test.d.ts.map +1 -0
  112. package/dist/storage/global-store.test.js +327 -0
  113. package/dist/storage/global-store.test.js.map +1 -0
  114. package/dist/storage/index.test.d.ts +2 -0
  115. package/dist/storage/index.test.d.ts.map +1 -0
  116. package/dist/storage/index.test.js +56 -0
  117. package/dist/storage/index.test.js.map +1 -0
  118. package/dist/storage/knowledge-store.test.d.ts +2 -0
  119. package/dist/storage/knowledge-store.test.d.ts.map +1 -0
  120. package/dist/storage/knowledge-store.test.js +368 -0
  121. package/dist/storage/knowledge-store.test.js.map +1 -0
  122. package/dist/storage/metrics-store.test.d.ts +2 -0
  123. package/dist/storage/metrics-store.test.d.ts.map +1 -0
  124. package/dist/storage/metrics-store.test.js +212 -0
  125. package/dist/storage/metrics-store.test.js.map +1 -0
  126. package/dist/storage/pattern-store.test.d.ts +2 -0
  127. package/dist/storage/pattern-store.test.d.ts.map +1 -0
  128. package/dist/storage/pattern-store.test.js +224 -0
  129. package/dist/storage/pattern-store.test.js.map +1 -0
  130. package/dist/storage/spec-store.test.d.ts +2 -0
  131. package/dist/storage/spec-store.test.d.ts.map +1 -0
  132. package/dist/storage/spec-store.test.js +227 -0
  133. package/dist/storage/spec-store.test.js.map +1 -0
  134. package/dist/tools/audit.test.d.ts +2 -0
  135. package/dist/tools/audit.test.d.ts.map +1 -0
  136. package/dist/tools/audit.test.js +169 -0
  137. package/dist/tools/audit.test.js.map +1 -0
  138. package/dist/tools/challenge-spec.test.d.ts +2 -0
  139. package/dist/tools/challenge-spec.test.d.ts.map +1 -0
  140. package/dist/tools/challenge-spec.test.js +782 -0
  141. package/dist/tools/challenge-spec.test.js.map +1 -0
  142. package/dist/tools/check-versions.test.d.ts +2 -0
  143. package/dist/tools/check-versions.test.d.ts.map +1 -0
  144. package/dist/tools/check-versions.test.js +214 -0
  145. package/dist/tools/check-versions.test.js.map +1 -0
  146. package/dist/tools/clarify-requirements.test.d.ts +2 -0
  147. package/dist/tools/clarify-requirements.test.d.ts.map +1 -0
  148. package/dist/tools/clarify-requirements.test.js +161 -0
  149. package/dist/tools/clarify-requirements.test.js.map +1 -0
  150. package/dist/tools/consult-docs.test.d.ts +2 -0
  151. package/dist/tools/consult-docs.test.d.ts.map +1 -0
  152. package/dist/tools/consult-docs.test.js +140 -0
  153. package/dist/tools/consult-docs.test.js.map +1 -0
  154. package/dist/tools/context-budget.d.ts +3 -0
  155. package/dist/tools/context-budget.d.ts.map +1 -0
  156. package/dist/tools/context-budget.js +131 -0
  157. package/dist/tools/context-budget.js.map +1 -0
  158. package/dist/tools/create-spec.test.d.ts +2 -0
  159. package/dist/tools/create-spec.test.d.ts.map +1 -0
  160. package/dist/tools/create-spec.test.js +233 -0
  161. package/dist/tools/create-spec.test.js.map +1 -0
  162. package/dist/tools/define-ui-contract.test.d.ts +2 -0
  163. package/dist/tools/define-ui-contract.test.d.ts.map +1 -0
  164. package/dist/tools/define-ui-contract.test.js +479 -0
  165. package/dist/tools/define-ui-contract.test.js.map +1 -0
  166. package/dist/tools/design-schema.test.d.ts +2 -0
  167. package/dist/tools/design-schema.test.d.ts.map +1 -0
  168. package/dist/tools/design-schema.test.js +301 -0
  169. package/dist/tools/design-schema.test.js.map +1 -0
  170. package/dist/tools/detect-agent.test.d.ts +2 -0
  171. package/dist/tools/detect-agent.test.d.ts.map +1 -0
  172. package/dist/tools/detect-agent.test.js +133 -0
  173. package/dist/tools/detect-agent.test.js.map +1 -0
  174. package/dist/tools/detect-drift.test.d.ts +2 -0
  175. package/dist/tools/detect-drift.test.d.ts.map +1 -0
  176. package/dist/tools/detect-drift.test.js +312 -0
  177. package/dist/tools/detect-drift.test.js.map +1 -0
  178. package/dist/tools/discover-mcps.test.d.ts +2 -0
  179. package/dist/tools/discover-mcps.test.d.ts.map +1 -0
  180. package/dist/tools/discover-mcps.test.js +345 -0
  181. package/dist/tools/discover-mcps.test.js.map +1 -0
  182. package/dist/tools/estimate.test.d.ts +2 -0
  183. package/dist/tools/estimate.test.d.ts.map +1 -0
  184. package/dist/tools/estimate.test.js +137 -0
  185. package/dist/tools/estimate.test.js.map +1 -0
  186. package/dist/tools/generate-adr.test.d.ts +2 -0
  187. package/dist/tools/generate-adr.test.d.ts.map +1 -0
  188. package/dist/tools/generate-adr.test.js +206 -0
  189. package/dist/tools/generate-adr.test.js.map +1 -0
  190. package/dist/tools/generate-checklist.test.d.ts +2 -0
  191. package/dist/tools/generate-checklist.test.d.ts.map +1 -0
  192. package/dist/tools/generate-checklist.test.js +201 -0
  193. package/dist/tools/generate-checklist.test.js.map +1 -0
  194. package/dist/tools/generate-docs.test.d.ts +2 -0
  195. package/dist/tools/generate-docs.test.d.ts.map +1 -0
  196. package/dist/tools/generate-docs.test.js +183 -0
  197. package/dist/tools/generate-docs.test.js.map +1 -0
  198. package/dist/tools/generate-execution-plan.test.d.ts +2 -0
  199. package/dist/tools/generate-execution-plan.test.d.ts.map +1 -0
  200. package/dist/tools/generate-execution-plan.test.js +643 -0
  201. package/dist/tools/generate-execution-plan.test.js.map +1 -0
  202. package/dist/tools/generate-rules.test.d.ts +2 -0
  203. package/dist/tools/generate-rules.test.d.ts.map +1 -0
  204. package/dist/tools/generate-rules.test.js +148 -0
  205. package/dist/tools/generate-rules.test.js.map +1 -0
  206. package/dist/tools/generate-skill.test.d.ts +2 -0
  207. package/dist/tools/generate-skill.test.d.ts.map +1 -0
  208. package/dist/tools/generate-skill.test.js +138 -0
  209. package/dist/tools/generate-skill.test.js.map +1 -0
  210. package/dist/tools/generate-sub-agent.test.d.ts +2 -0
  211. package/dist/tools/generate-sub-agent.test.d.ts.map +1 -0
  212. package/dist/tools/generate-sub-agent.test.js +162 -0
  213. package/dist/tools/generate-sub-agent.test.js.map +1 -0
  214. package/dist/tools/generate-tests/dispatchers/ai-ml-dispatcher.d.ts +3 -0
  215. package/dist/tools/generate-tests/dispatchers/ai-ml-dispatcher.d.ts.map +1 -0
  216. package/dist/tools/generate-tests/dispatchers/ai-ml-dispatcher.js +33 -0
  217. package/dist/tools/generate-tests/dispatchers/ai-ml-dispatcher.js.map +1 -0
  218. package/dist/tools/generate-tests/dispatchers/database-security-dispatcher.d.ts +5 -0
  219. package/dist/tools/generate-tests/dispatchers/database-security-dispatcher.d.ts.map +1 -0
  220. package/dist/tools/generate-tests/dispatchers/database-security-dispatcher.js +25 -0
  221. package/dist/tools/generate-tests/dispatchers/database-security-dispatcher.js.map +1 -0
  222. package/dist/tools/generate-tests/dispatchers/distributed-dispatcher.d.ts +3 -0
  223. package/dist/tools/generate-tests/dispatchers/distributed-dispatcher.d.ts.map +1 -0
  224. package/dist/tools/generate-tests/dispatchers/distributed-dispatcher.js +29 -0
  225. package/dist/tools/generate-tests/dispatchers/distributed-dispatcher.js.map +1 -0
  226. package/dist/tools/generate-tests/dispatchers/frontend-dispatcher.d.ts +3 -0
  227. package/dist/tools/generate-tests/dispatchers/frontend-dispatcher.d.ts.map +1 -0
  228. package/dist/tools/generate-tests/dispatchers/frontend-dispatcher.js +34 -0
  229. package/dist/tools/generate-tests/dispatchers/frontend-dispatcher.js.map +1 -0
  230. package/dist/tools/generate-tests/dispatchers/infra-dispatcher.d.ts +3 -0
  231. package/dist/tools/generate-tests/dispatchers/infra-dispatcher.d.ts.map +1 -0
  232. package/dist/tools/generate-tests/dispatchers/infra-dispatcher.js +37 -0
  233. package/dist/tools/generate-tests/dispatchers/infra-dispatcher.js.map +1 -0
  234. package/dist/tools/generate-tests/dispatchers/protocols-dispatcher.d.ts +3 -0
  235. package/dist/tools/generate-tests/dispatchers/protocols-dispatcher.d.ts.map +1 -0
  236. package/dist/tools/generate-tests/dispatchers/protocols-dispatcher.js +27 -0
  237. package/dist/tools/generate-tests/dispatchers/protocols-dispatcher.js.map +1 -0
  238. package/dist/tools/generate-tests/generators/database/detectors.d.ts +6 -0
  239. package/dist/tools/generate-tests/generators/database/detectors.d.ts.map +1 -0
  240. package/dist/tools/generate-tests/generators/database/detectors.js +36 -0
  241. package/dist/tools/generate-tests/generators/database/detectors.js.map +1 -0
  242. package/dist/tools/generate-tests/generators/database/index.d.ts +8 -0
  243. package/dist/tools/generate-tests/generators/database/index.d.ts.map +1 -0
  244. package/dist/tools/generate-tests/generators/database/index.js +29 -0
  245. package/dist/tools/generate-tests/generators/database/index.js.map +1 -0
  246. package/dist/tools/generate-tests/generators/database/python-scaffold.d.ts +2 -0
  247. package/dist/tools/generate-tests/generators/database/python-scaffold.d.ts.map +1 -0
  248. package/dist/tools/generate-tests/generators/database/python-scaffold.js +104 -0
  249. package/dist/tools/generate-tests/generators/database/python-scaffold.js.map +1 -0
  250. package/dist/tools/generate-tests/generators/database/test-defs.d.ts +3 -0
  251. package/dist/tools/generate-tests/generators/database/test-defs.d.ts.map +1 -0
  252. package/dist/tools/generate-tests/generators/database/test-defs.js +57 -0
  253. package/dist/tools/generate-tests/generators/database/test-defs.js.map +1 -0
  254. package/dist/tools/generate-tests/generators/database/ts-scaffold.d.ts +2 -0
  255. package/dist/tools/generate-tests/generators/database/ts-scaffold.d.ts.map +1 -0
  256. package/dist/tools/generate-tests/generators/database/ts-scaffold.js +118 -0
  257. package/dist/tools/generate-tests/generators/database/ts-scaffold.js.map +1 -0
  258. package/dist/tools/generate-tests/generators/microservices/detectors.d.ts +5 -0
  259. package/dist/tools/generate-tests/generators/microservices/detectors.d.ts.map +1 -0
  260. package/dist/tools/generate-tests/generators/microservices/detectors.js +47 -0
  261. package/dist/tools/generate-tests/generators/microservices/detectors.js.map +1 -0
  262. package/dist/tools/generate-tests/generators/microservices/index.d.ts +8 -0
  263. package/dist/tools/generate-tests/generators/microservices/index.d.ts.map +1 -0
  264. package/dist/tools/generate-tests/generators/microservices/index.js +26 -0
  265. package/dist/tools/generate-tests/generators/microservices/index.js.map +1 -0
  266. package/dist/tools/generate-tests/generators/microservices/python-scaffold.d.ts +2 -0
  267. package/dist/tools/generate-tests/generators/microservices/python-scaffold.d.ts.map +1 -0
  268. package/dist/tools/generate-tests/generators/microservices/python-scaffold.js +98 -0
  269. package/dist/tools/generate-tests/generators/microservices/python-scaffold.js.map +1 -0
  270. package/dist/tools/generate-tests/generators/microservices/test-defs.d.ts +3 -0
  271. package/dist/tools/generate-tests/generators/microservices/test-defs.d.ts.map +1 -0
  272. package/dist/tools/generate-tests/generators/microservices/test-defs.js +61 -0
  273. package/dist/tools/generate-tests/generators/microservices/test-defs.js.map +1 -0
  274. package/dist/tools/generate-tests/generators/microservices/ts-scaffold.d.ts +2 -0
  275. package/dist/tools/generate-tests/generators/microservices/ts-scaffold.d.ts.map +1 -0
  276. package/dist/tools/generate-tests/generators/microservices/ts-scaffold.js +123 -0
  277. package/dist/tools/generate-tests/generators/microservices/ts-scaffold.js.map +1 -0
  278. package/dist/tools/generate-tests/generators/security/detectors.d.ts +8 -0
  279. package/dist/tools/generate-tests/generators/security/detectors.d.ts.map +1 -0
  280. package/dist/tools/generate-tests/generators/security/detectors.js +61 -0
  281. package/dist/tools/generate-tests/generators/security/detectors.js.map +1 -0
  282. package/dist/tools/generate-tests/generators/security/index.d.ts +8 -0
  283. package/dist/tools/generate-tests/generators/security/index.d.ts.map +1 -0
  284. package/dist/tools/generate-tests/generators/security/index.js +28 -0
  285. package/dist/tools/generate-tests/generators/security/index.js.map +1 -0
  286. package/dist/tools/generate-tests/generators/security/python-scaffold.d.ts +2 -0
  287. package/dist/tools/generate-tests/generators/security/python-scaffold.d.ts.map +1 -0
  288. package/dist/tools/generate-tests/generators/security/python-scaffold.js +89 -0
  289. package/dist/tools/generate-tests/generators/security/python-scaffold.js.map +1 -0
  290. package/dist/tools/generate-tests/generators/security/test-defs.d.ts +3 -0
  291. package/dist/tools/generate-tests/generators/security/test-defs.d.ts.map +1 -0
  292. package/dist/tools/generate-tests/generators/security/test-defs.js +48 -0
  293. package/dist/tools/generate-tests/generators/security/test-defs.js.map +1 -0
  294. package/dist/tools/generate-tests/generators/security/ts-scaffold.d.ts +2 -0
  295. package/dist/tools/generate-tests/generators/security/ts-scaffold.d.ts.map +1 -0
  296. package/dist/tools/generate-tests/generators/security/ts-scaffold.js +107 -0
  297. package/dist/tools/generate-tests/generators/security/ts-scaffold.js.map +1 -0
  298. package/dist/tools/generate-tests/spec-dispatcher.d.ts.map +1 -1
  299. package/dist/tools/generate-tests/spec-dispatcher.js +14 -166
  300. package/dist/tools/generate-tests/spec-dispatcher.js.map +1 -1
  301. package/dist/tools/generate-tests.test.d.ts +2 -0
  302. package/dist/tools/generate-tests.test.d.ts.map +1 -0
  303. package/dist/tools/generate-tests.test.js +222 -0
  304. package/dist/tools/generate-tests.test.js.map +1 -0
  305. package/dist/tools/init-constitution.test.d.ts +2 -0
  306. package/dist/tools/init-constitution.test.d.ts.map +1 -0
  307. package/dist/tools/init-constitution.test.js +398 -0
  308. package/dist/tools/init-constitution.test.js.map +1 -0
  309. package/dist/tools/init-project.test.d.ts +2 -0
  310. package/dist/tools/init-project.test.d.ts.map +1 -0
  311. package/dist/tools/init-project.test.js +158 -0
  312. package/dist/tools/init-project.test.js.map +1 -0
  313. package/dist/tools/integrate-pm.test.d.ts +2 -0
  314. package/dist/tools/integrate-pm.test.d.ts.map +1 -0
  315. package/dist/tools/integrate-pm.test.js +558 -0
  316. package/dist/tools/integrate-pm.test.js.map +1 -0
  317. package/dist/tools/learn.test.d.ts +2 -0
  318. package/dist/tools/learn.test.d.ts.map +1 -0
  319. package/dist/tools/learn.test.js +123 -0
  320. package/dist/tools/learn.test.js.map +1 -0
  321. package/dist/tools/list-specs.test.d.ts +2 -0
  322. package/dist/tools/list-specs.test.d.ts.map +1 -0
  323. package/dist/tools/list-specs.test.js +110 -0
  324. package/dist/tools/list-specs.test.js.map +1 -0
  325. package/dist/tools/manage-context.test.d.ts +2 -0
  326. package/dist/tools/manage-context.test.d.ts.map +1 -0
  327. package/dist/tools/manage-context.test.js +359 -0
  328. package/dist/tools/manage-context.test.js.map +1 -0
  329. package/dist/tools/manage-git.test.d.ts +2 -0
  330. package/dist/tools/manage-git.test.d.ts.map +1 -0
  331. package/dist/tools/manage-git.test.js +882 -0
  332. package/dist/tools/manage-git.test.js.map +1 -0
  333. package/dist/tools/orchestrate.test.d.ts +2 -0
  334. package/dist/tools/orchestrate.test.d.ts.map +1 -0
  335. package/dist/tools/orchestrate.test.js +1117 -0
  336. package/dist/tools/orchestrate.test.js.map +1 -0
  337. package/dist/tools/reconcile-spec.test.d.ts +2 -0
  338. package/dist/tools/reconcile-spec.test.d.ts.map +1 -0
  339. package/dist/tools/reconcile-spec.test.js +259 -0
  340. package/dist/tools/reconcile-spec.test.js.map +1 -0
  341. package/dist/tools/register-platform-tools/lifecycle-infra-tools.d.ts.map +1 -1
  342. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +37 -1
  343. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js.map +1 -1
  344. package/dist/tools/register-platform-tools.test.d.ts +2 -0
  345. package/dist/tools/register-platform-tools.test.d.ts.map +1 -0
  346. package/dist/tools/register-platform-tools.test.js +404 -0
  347. package/dist/tools/register-platform-tools.test.js.map +1 -0
  348. package/dist/tools/register-spec-tools/analysis-tools.d.ts.map +1 -1
  349. package/dist/tools/register-spec-tools/analysis-tools.js +1 -0
  350. package/dist/tools/register-spec-tools/analysis-tools.js.map +1 -1
  351. package/dist/tools/register-spec-tools.test.d.ts +2 -0
  352. package/dist/tools/register-spec-tools.test.d.ts.map +1 -0
  353. package/dist/tools/register-spec-tools.test.js +407 -0
  354. package/dist/tools/register-spec-tools.test.js.map +1 -0
  355. package/dist/tools/reverse-engineer.test.d.ts +2 -0
  356. package/dist/tools/reverse-engineer.test.d.ts.map +1 -0
  357. package/dist/tools/reverse-engineer.test.js +206 -0
  358. package/dist/tools/reverse-engineer.test.js.map +1 -0
  359. package/dist/tools/schemas/index.d.ts +1 -1
  360. package/dist/tools/schemas/index.d.ts.map +1 -1
  361. package/dist/tools/schemas/index.js +1 -1
  362. package/dist/tools/schemas/index.js.map +1 -1
  363. package/dist/tools/schemas/infra.d.ts +8 -0
  364. package/dist/tools/schemas/infra.d.ts.map +1 -1
  365. package/dist/tools/schemas/infra.js +3 -0
  366. package/dist/tools/schemas/infra.js.map +1 -1
  367. package/dist/tools/schemas.d.ts +20 -0
  368. package/dist/tools/schemas.d.ts.map +1 -0
  369. package/dist/tools/schemas.js +133 -0
  370. package/dist/tools/schemas.js.map +1 -0
  371. package/dist/tools/schemas.test.d.ts +2 -0
  372. package/dist/tools/schemas.test.d.ts.map +1 -0
  373. package/dist/tools/schemas.test.js +245 -0
  374. package/dist/tools/schemas.test.js.map +1 -0
  375. package/dist/tools/set-locale.test.d.ts +2 -0
  376. package/dist/tools/set-locale.test.d.ts.map +1 -0
  377. package/dist/tools/set-locale.test.js +74 -0
  378. package/dist/tools/set-locale.test.js.map +1 -0
  379. package/dist/tools/suggest-mcps.test.d.ts +2 -0
  380. package/dist/tools/suggest-mcps.test.d.ts.map +1 -0
  381. package/dist/tools/suggest-mcps.test.js +198 -0
  382. package/dist/tools/suggest-mcps.test.js.map +1 -0
  383. package/dist/tools/suggest-stack.test.d.ts +2 -0
  384. package/dist/tools/suggest-stack.test.d.ts.map +1 -0
  385. package/dist/tools/suggest-stack.test.js +181 -0
  386. package/dist/tools/suggest-stack.test.js.map +1 -0
  387. package/dist/tools/suggest-tooling.test.d.ts +2 -0
  388. package/dist/tools/suggest-tooling.test.d.ts.map +1 -0
  389. package/dist/tools/suggest-tooling.test.js +213 -0
  390. package/dist/tools/suggest-tooling.test.js.map +1 -0
  391. package/dist/tools/summarize-spec.test.d.ts +2 -0
  392. package/dist/tools/summarize-spec.test.d.ts.map +1 -0
  393. package/dist/tools/summarize-spec.test.js +180 -0
  394. package/dist/tools/summarize-spec.test.js.map +1 -0
  395. package/dist/tools/update-status.test.d.ts +2 -0
  396. package/dist/tools/update-status.test.d.ts.map +1 -0
  397. package/dist/tools/update-status.test.js +142 -0
  398. package/dist/tools/update-status.test.js.map +1 -0
  399. package/dist/tools/validate.test.d.ts +2 -0
  400. package/dist/tools/validate.test.d.ts.map +1 -0
  401. package/dist/tools/validate.test.js +137 -0
  402. package/dist/tools/validate.test.js.map +1 -0
  403. package/dist/types/context-budget.d.ts +90 -0
  404. package/dist/types/context-budget.d.ts.map +1 -0
  405. package/dist/types/context-budget.js +3 -0
  406. package/dist/types/context-budget.js.map +1 -0
  407. package/dist/types/index.d.ts +1 -0
  408. package/dist/types/index.d.ts.map +1 -1
  409. package/dist/types/index.js +1 -0
  410. package/dist/types/index.js.map +1 -1
  411. package/dist/types/testing.d.ts +10 -0
  412. package/dist/types/testing.d.ts.map +1 -1
  413. package/package.json +1 -1
  414. package/src/i18n/messages/en.json +8 -2
  415. package/src/i18n/messages/es.json +8 -2
  416. package/src/i18n/messages/pt.json +6 -0
  417. package/dist/engine/test-spec-generator.d.ts.map +0 -1
  418. package/dist/engine/test-spec-generator.js +0 -348
  419. package/dist/engine/test-spec-generator.js.map +0 -1
  420. package/dist/tools/generate-tests/generators/database-test-generator.d.ts +0 -11
  421. package/dist/tools/generate-tests/generators/database-test-generator.d.ts.map +0 -1
  422. package/dist/tools/generate-tests/generators/database-test-generator.js +0 -329
  423. package/dist/tools/generate-tests/generators/database-test-generator.js.map +0 -1
  424. package/dist/tools/generate-tests/generators/microservices-test-generator.d.ts +0 -10
  425. package/dist/tools/generate-tests/generators/microservices-test-generator.d.ts.map +0 -1
  426. package/dist/tools/generate-tests/generators/microservices-test-generator.js +0 -341
  427. package/dist/tools/generate-tests/generators/microservices-test-generator.js.map +0 -1
  428. package/dist/tools/generate-tests/generators/security-test-generator.d.ts +0 -11
  429. package/dist/tools/generate-tests/generators/security-test-generator.d.ts.map +0 -1
  430. package/dist/tools/generate-tests/generators/security-test-generator.js +0 -318
  431. package/dist/tools/generate-tests/generators/security-test-generator.js.map +0 -1
@@ -1,348 +0,0 @@
1
- // src/engine/test-spec-generator.ts
2
- // SPEC-058a Section B: Transform HU.md acceptance criteria into Given/When/Then test scenarios
3
- // Keywords that trigger edge-case scenario generation
4
- const EDGE_CASE_KEYWORDS = [
5
- 'never',
6
- 'always',
7
- 'only',
8
- 'at least',
9
- 'maximum',
10
- 'minimum',
11
- 'must not',
12
- 'shall not',
13
- 'exactly',
14
- 'no more than',
15
- 'no less than',
16
- ];
17
- function getLabels(locale) {
18
- if (locale === 'es') {
19
- return {
20
- happyPath: 'camino feliz',
21
- error: 'error',
22
- edgeCase: 'caso extremo',
23
- givenSetup: 'un proyecto con la configuración requerida',
24
- whenExecuted: 'se ejecuta la operación',
25
- thenCorrect: 'se genera correctamente',
26
- thenFails: 'falla con un error claro',
27
- thenEdge: 'se aplica el límite correctamente',
28
- negatePrefix: 'no',
29
- defaultSetup: 'el sistema está configurado correctamente',
30
- };
31
- }
32
- if (locale === 'pt') {
33
- return {
34
- happyPath: 'caminho feliz',
35
- error: 'erro',
36
- edgeCase: 'caso extremo',
37
- givenSetup: 'um projeto com a configuração necessária',
38
- whenExecuted: 'a operação é executada',
39
- thenCorrect: 'é gerado corretamente',
40
- thenFails: 'falha com um erro claro',
41
- thenEdge: 'o limite é aplicado corretamente',
42
- negatePrefix: 'não',
43
- defaultSetup: 'o sistema está configurado corretamente',
44
- };
45
- }
46
- return {
47
- happyPath: 'happy path',
48
- error: 'error',
49
- edgeCase: 'edge case',
50
- givenSetup: 'a project with the required configuration',
51
- whenExecuted: 'the operation is executed',
52
- thenCorrect: 'is generated correctly',
53
- thenFails: 'fails with a clear error message',
54
- thenEdge: 'the boundary is applied correctly',
55
- negatePrefix: 'not',
56
- defaultSetup: 'the system is properly configured',
57
- };
58
- }
59
- function hasEdgeCaseKeyword(criterion) {
60
- const lower = criterion.toLowerCase();
61
- return EDGE_CASE_KEYWORDS.some((kw) => lower.includes(kw));
62
- }
63
- function suggestTestData(criterion) {
64
- const lower = criterion.toLowerCase();
65
- if (lower.includes('api') || lower.includes('endpoint') || lower.includes('url')) {
66
- return 'endpoint: "https://api.example.com/v1/resource", method: "POST"';
67
- }
68
- if (lower.includes('user') || lower.includes('usuario') || lower.includes('usuário')) {
69
- return 'user: { id: "usr-123", email: "test@example.com", role: "admin" }';
70
- }
71
- if (lower.includes('email')) {
72
- return 'email: "user@example.com", subject: "Test subject", body: "Test body"';
73
- }
74
- if (lower.includes('file') || lower.includes('arquivo') || lower.includes('fichero')) {
75
- return 'file: { path: "/tmp/test.json", size: 1024, mimeType: "application/json" }';
76
- }
77
- if (lower.includes('database') || lower.includes('db') || lower.includes('banco')) {
78
- return 'db: { host: "localhost", port: 5432, name: "test_db" }';
79
- }
80
- if (lower.includes('token') || lower.includes('auth') || lower.includes('jwt')) {
81
- return 'token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.test.signature"';
82
- }
83
- if (lower.includes('config')) {
84
- return 'config: { enabled: true, timeout: 5000, retries: 3 }';
85
- }
86
- if (lower.includes('spec') || lower.includes('criteria')) {
87
- return 'specId: "SPEC-001", title: "Test feature", criteria: ["criterion 1", "criterion 2"]';
88
- }
89
- return undefined;
90
- }
91
- function extractGiven(criterion, labels) {
92
- const lower = criterion.toLowerCase();
93
- // If criterion mentions a precondition pattern ("given X", "when X exists")
94
- if (lower.startsWith('given ') || lower.startsWith('dado ') || lower.startsWith('dado que ')) {
95
- const match = /^(?:given|dado(?: que)?)\s+(.+?)(?:\s+when\s+|\s+,\s+|\s+then\s+|$)/i.exec(criterion);
96
- if (match?.[1]) {
97
- return match[1];
98
- }
99
- }
100
- return labels.givenSetup;
101
- }
102
- function extractWhen(criterion, labels) {
103
- const lower = criterion.toLowerCase();
104
- // Pattern: "X generates Y" → when: "X is executed"
105
- const generatesMatch = /^(.+?)\s+generates?\s+/i.exec(criterion);
106
- if (generatesMatch?.[1]) {
107
- return labels.locale === 'es'
108
- ? `se ejecuta "${generatesMatch[1].trim()}"`
109
- : labels.locale === 'pt'
110
- ? `"${generatesMatch[1].trim()}" é executado`
111
- : `"${generatesMatch[1].trim()}" is executed`;
112
- }
113
- // Pattern: "X creates Y"
114
- const createsMatch = /^(.+?)\s+creates?\s+/i.exec(criterion);
115
- if (createsMatch?.[1]) {
116
- return labels.locale === 'es'
117
- ? `se ejecuta "${createsMatch[1].trim()}"`
118
- : labels.locale === 'pt'
119
- ? `"${createsMatch[1].trim()}" é executado`
120
- : `"${createsMatch[1].trim()}" is executed`;
121
- }
122
- // Pattern: "X returns Y"
123
- const returnsMatch = /^(.+?)\s+returns?\s+/i.exec(criterion);
124
- if (returnsMatch?.[1]) {
125
- const subject = returnsMatch[1].trim();
126
- return lower.includes(subject.toLowerCase())
127
- ? `${subject} is called`
128
- : /* v8 ignore next 1 */ labels.whenExecuted;
129
- }
130
- return labels.whenExecuted;
131
- }
132
- function extractThen(criterion, labels) {
133
- const lower = criterion.toLowerCase();
134
- // "X generates Y" → then: "Y is generated correctly"
135
- const generatesMatch = /generates?\s+(.+)/i.exec(criterion);
136
- if (generatesMatch?.[1]) {
137
- const target = generatesMatch[1].trim().replace(/\.$/, '');
138
- return `${target} ${labels.thenCorrect}`;
139
- }
140
- // "X creates Y"
141
- const createsMatch = /creates?\s+(.+)/i.exec(criterion);
142
- if (createsMatch?.[1]) {
143
- const target = createsMatch[1].trim().replace(/\.$/, '');
144
- return `${target} ${labels.thenCorrect}`;
145
- }
146
- // "X returns Y"
147
- const returnsMatch = /returns?\s+(.+)/i.exec(criterion);
148
- if (returnsMatch?.[1]) {
149
- const target = returnsMatch[1].trim().replace(/\.$/, '');
150
- return `${target} ${labels.thenCorrect}`;
151
- }
152
- // Fallback: use the criterion itself as the expected result
153
- return lower.startsWith('the ') || lower.startsWith('el ') || lower.startsWith('o ')
154
- ? criterion.replace(/\.$/, '')
155
- : criterion.replace(/\.$/, '') + ' ' + labels.thenCorrect;
156
- }
157
- function buildHappyPath(criterion, _criterionId, labels) {
158
- const testData = suggestTestData(criterion);
159
- const step = {
160
- type: 'happy-path',
161
- given: extractGiven(criterion, labels),
162
- when: extractWhen(criterion, labels),
163
- then: extractThen(criterion, labels),
164
- };
165
- if (testData !== undefined) {
166
- step.testData = testData;
167
- }
168
- return step;
169
- }
170
- function buildErrorScenario(criterion, _criterionId, labels) {
171
- const lower = criterion.toLowerCase();
172
- // Negate the condition to get the error case
173
- let errorWhen;
174
- if (lower.includes('valid') || lower.includes('valid')) {
175
- errorWhen =
176
- labels.locale === 'es'
177
- ? 'se proporciona entrada inválida'
178
- : labels.locale === 'pt'
179
- ? 'entrada inválida é fornecida'
180
- : 'invalid input is provided';
181
- }
182
- else if (lower.includes('exist') || lower.includes('existe')) {
183
- errorWhen =
184
- labels.locale === 'es'
185
- ? 'el recurso requerido no existe'
186
- : labels.locale === 'pt'
187
- ? 'o recurso necessário não existe'
188
- : 'the required resource does not exist';
189
- }
190
- else {
191
- errorWhen =
192
- labels.locale === 'es'
193
- ? 'la condición requerida no se cumple'
194
- : labels.locale === 'pt'
195
- ? 'a condição necessária não é atendida'
196
- : 'the required condition is not met';
197
- }
198
- const errorGiven = labels.locale === 'es'
199
- ? 'un proyecto con configuración incorrecta o datos faltantes'
200
- : labels.locale === 'pt'
201
- ? 'um projeto com configuração incorreta ou dados ausentes'
202
- : 'a project with incorrect configuration or missing data';
203
- return {
204
- type: 'error',
205
- given: errorGiven,
206
- when: errorWhen,
207
- then: `the operation ${labels.thenFails}`,
208
- };
209
- }
210
- function buildEdgeCaseScenario(criterion, _criterionId, labels) {
211
- const lower = criterion.toLowerCase();
212
- let edgeGiven;
213
- let edgeWhen;
214
- let edgeThen;
215
- if (lower.includes('maximum') || lower.includes('max') || lower.includes('máximo')) {
216
- edgeGiven =
217
- labels.locale === 'es'
218
- ? 'el sistema está al límite máximo permitido'
219
- : labels.locale === 'pt'
220
- ? 'o sistema está no limite máximo permitido'
221
- : 'the system is at the maximum allowed limit';
222
- edgeWhen =
223
- labels.locale === 'es'
224
- ? 'se intenta superar el límite máximo'
225
- : labels.locale === 'pt'
226
- ? 'tenta-se exceder o limite máximo'
227
- : 'an attempt is made to exceed the maximum limit';
228
- edgeThen =
229
- labels.locale === 'es'
230
- ? 'se rechaza con el mensaje de error apropiado'
231
- : labels.locale === 'pt'
232
- ? 'é rejeitado com a mensagem de erro apropriada'
233
- : 'it is rejected with the appropriate error message';
234
- }
235
- else if (lower.includes('minimum') || lower.includes('min') || lower.includes('mínimo')) {
236
- edgeGiven =
237
- labels.locale === 'es'
238
- ? 'el sistema está al límite mínimo permitido'
239
- : labels.locale === 'pt'
240
- ? 'o sistema está no limite mínimo permitido'
241
- : 'the system is at the minimum allowed limit';
242
- edgeWhen =
243
- labels.locale === 'es'
244
- ? 'se intenta ir por debajo del mínimo'
245
- : labels.locale === 'pt'
246
- ? 'tenta-se ficar abaixo do mínimo'
247
- : 'an attempt is made to go below the minimum';
248
- edgeThen =
249
- labels.locale === 'es'
250
- ? 'se rechaza con el mensaje de error apropiado'
251
- : labels.locale === 'pt'
252
- ? 'é rejeitado com a mensagem de erro apropriada'
253
- : 'it is rejected with the appropriate error message';
254
- }
255
- else if (lower.includes('always') || lower.includes('siempre') || lower.includes('sempre')) {
256
- edgeGiven =
257
- labels.locale === 'es'
258
- ? 'múltiples ejecuciones consecutivas bajo diferentes condiciones'
259
- : labels.locale === 'pt'
260
- ? 'múltiplas execuções consecutivas sob diferentes condições'
261
- : 'multiple consecutive executions under different conditions';
262
- edgeWhen =
263
- labels.locale === 'es'
264
- ? 'la operación se ejecuta repetidamente'
265
- : labels.locale === 'pt'
266
- ? 'a operação é executada repetidamente'
267
- : 'the operation is executed repeatedly';
268
- edgeThen =
269
- labels.locale === 'es'
270
- ? 'el resultado es consistente en todas las ejecuciones'
271
- : labels.locale === 'pt'
272
- ? 'o resultado é consistente em todas as execuções'
273
- : 'the result is consistent across all executions';
274
- }
275
- else if (lower.includes('never') || lower.includes('nunca') || lower.includes('jamais')) {
276
- edgeGiven =
277
- labels.locale === 'es'
278
- ? 'una condición que podría violar la restricción'
279
- : labels.locale === 'pt'
280
- ? 'uma condição que poderia violar a restrição'
281
- : 'a condition that could violate the constraint';
282
- edgeWhen =
283
- labels.locale === 'es'
284
- ? 'se ejecuta la operación con datos límite'
285
- : labels.locale === 'pt'
286
- ? 'a operação é executada com dados limítrofes'
287
- : 'the operation is executed with boundary data';
288
- edgeThen =
289
- labels.locale === 'es'
290
- ? 'la restricción se mantiene sin excepciones'
291
- : labels.locale === 'pt'
292
- ? 'a restrição é mantida sem exceções'
293
- : 'the constraint is maintained without exceptions';
294
- }
295
- else {
296
- // Generic edge case for "only", "at least", "exactly", etc.
297
- edgeGiven =
298
- labels.locale === 'es'
299
- ? 'una condición límite específica'
300
- : labels.locale === 'pt'
301
- ? 'uma condição limite específica'
302
- : 'a specific boundary condition';
303
- edgeWhen = labels.whenExecuted;
304
- edgeThen = `the boundary ${labels.thenEdge}`;
305
- }
306
- return {
307
- type: 'edge-case',
308
- given: edgeGiven,
309
- when: edgeWhen,
310
- then: edgeThen,
311
- };
312
- }
313
- function buildScenarios(criterion, criterionId, locale) {
314
- const baseLabels = getLabels(locale);
315
- const labels = { ...baseLabels, locale };
316
- const steps = [
317
- buildHappyPath(criterion, criterionId, labels),
318
- buildErrorScenario(criterion, criterionId, labels),
319
- ];
320
- if (hasEdgeCaseKeyword(criterion)) {
321
- steps.push(buildEdgeCaseScenario(criterion, criterionId, labels));
322
- }
323
- return steps;
324
- }
325
- /**
326
- * Generates a TestSpec from a list of acceptance criteria strings.
327
- * Each criterion produces at least 2 scenarios (happy-path + error).
328
- * Criteria containing boundary keywords also get an edge-case scenario.
329
- */
330
- export function generateTestSpec(specId, specTitle, criteria, locale) {
331
- const scenarios = criteria.map((criterion, index) => {
332
- const criterionId = `${specId}-C${String(index + 1).padStart(2, '0')}`;
333
- return {
334
- criterionId,
335
- criterion,
336
- scenarios: buildScenarios(criterion, criterionId, locale),
337
- };
338
- });
339
- const totalScenarios = scenarios.reduce((sum, s) => sum + s.scenarios.length, 0);
340
- return {
341
- specId,
342
- specTitle,
343
- locale,
344
- scenarios,
345
- totalScenarios,
346
- };
347
- }
348
- //# sourceMappingURL=test-spec-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-spec-generator.js","sourceRoot":"","sources":["../../src/engine/test-spec-generator.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,+FAA+F;AAU/F,sDAAsD;AACtD,MAAM,kBAAkB,GAAG;IACzB,OAAO;IACP,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;IACT,cAAc;IACd,cAAc;CACf,CAAC;AAEF,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,SAAS,EAAE,cAAc;YACzB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,4CAA4C;YACxD,YAAY,EAAE,yBAAyB;YACvC,WAAW,EAAE,yBAAyB;YACtC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,mCAAmC;YAC7C,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,2CAA2C;SAC1D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,0CAA0C;YACtD,YAAY,EAAE,wBAAwB;YACtC,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,yBAAyB;YACpC,QAAQ,EAAE,kCAAkC;YAC5C,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,yCAAyC;SACxD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,2CAA2C;QACvD,YAAY,EAAE,2BAA2B;QACzC,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,mCAAmC;QAC7C,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,mCAAmC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjF,OAAO,iEAAiE,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,OAAO,mEAAmE,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,uEAAuE,CAAC;IACjF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,OAAO,4EAA4E,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClF,OAAO,wDAAwD,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,OAAO,8DAA8D,CAAC;IACxE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,sDAAsD,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,qFAAqF,CAAC;IAC/F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,MAAgC;IACvE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,4EAA4E;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7F,MAAM,KAAK,GAAG,sEAAsE,CAAC,IAAI,CACvF,SAAS,CACV,CAAC;QACF,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB,EAAE,MAAgC;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,mDAAmD;IACnD,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI;YAC3B,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG;YAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;gBACtB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe;gBAC7C,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC;IACpD,CAAC;IACD,yBAAyB;IACzB,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI;YAC3B,CAAC,CAAC,eAAe,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG;YAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;gBACtB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe;gBAC3C,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,CAAC;IACD,yBAAyB;IACzB,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1C,CAAC,CAAC,GAAG,OAAO,YAAY;YACxB,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB,EAAE,MAAgC;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,qDAAqD;IACrD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IACD,gBAAgB;IAChB,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IACD,gBAAgB;IAChB,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IACD,4DAA4D;IAC5D,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAClF,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CACrB,SAAiB,EACjB,YAAoB,EACpB,MAAgC;IAEhC,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAqB;QAC7B,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;QACpC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAiB,EACjB,YAAoB,EACpB,MAAgC;IAEhC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,6CAA6C;IAC7C,IAAI,SAAiB,CAAC;IACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,8BAA8B;oBAChC,CAAC,CAAC,2BAA2B,CAAC;IACtC,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,sCAAsC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,qCAAqC;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,sCAAsC;oBACxC,CAAC,CAAC,mCAAmC,CAAC;IAC9C,CAAC;IACD,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,IAAI;QACpB,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;YACtB,CAAC,CAAC,yDAAyD;YAC3D,CAAC,CAAC,wDAAwD,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,iBAAiB,MAAM,CAAC,SAAS,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAiB,EACjB,YAAoB,EACpB,MAAgC;IAEhC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,SAAiB,CAAC;IACtB,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAgB,CAAC;IAErB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnF,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,4CAA4C;gBAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,2CAA2C;oBAC7C,CAAC,CAAC,4CAA4C,CAAC;QACrD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,qCAAqC;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,kCAAkC;oBACpC,CAAC,CAAC,gDAAgD,CAAC;QACzD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,8CAA8C;gBAChD,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,+CAA+C;oBACjD,CAAC,CAAC,mDAAmD,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,4CAA4C;gBAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,2CAA2C;oBAC7C,CAAC,CAAC,4CAA4C,CAAC;QACrD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,qCAAqC;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,4CAA4C,CAAC;QACrD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,8CAA8C;gBAChD,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,+CAA+C;oBACjD,CAAC,CAAC,mDAAmD,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7F,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,gEAAgE;gBAClE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,2DAA2D;oBAC7D,CAAC,CAAC,4DAA4D,CAAC;QACrE,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,sCAAsC;oBACxC,CAAC,CAAC,sCAAsC,CAAC;QAC/C,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,sDAAsD;gBACxD,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,iDAAiD;oBACnD,CAAC,CAAC,gDAAgD,CAAC;IAC3D,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,gDAAgD;gBAClD,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,6CAA6C;oBAC/C,CAAC,CAAC,+CAA+C,CAAC;QACxD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,6CAA6C;oBAC/C,CAAC,CAAC,8CAA8C,CAAC;QACvD,QAAQ;YACN,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,4CAA4C;gBAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,iDAAiD,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,SAAS;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;gBACpB,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;oBACtB,CAAC,CAAC,gCAAgC;oBAClC,CAAC,CAAC,+BAA+B,CAAC;QACxC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;QAC/B,QAAQ,GAAG,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,SAAiB,EACjB,WAAmB,EACnB,MAAc;IAEd,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAA6B,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,CAAC;IAEnE,MAAM,KAAK,GAAuB;QAChC,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;QAC9C,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;KACnD,CAAC;IAEF,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,SAAiB,EACjB,QAAkB,EAClB,MAAc;IAEd,MAAM,SAAS,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QAClE,MAAM,WAAW,GAAG,GAAG,MAAM,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO;YACL,WAAW;YACX,SAAS;YACT,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;SAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjF,OAAO;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { TestDefinition, TestFile, ProjectKnowledge } from '../../../types/index.js';
2
- export declare function detectCaching(knowledge: ProjectKnowledge): string | null;
3
- export declare function detectSearchEngine(knowledge: ProjectKnowledge): string | null;
4
- export declare function hasOrm(knowledge: ProjectKnowledge): boolean;
5
- export declare function isDatabaseTestProject(knowledge: ProjectKnowledge): boolean;
6
- export declare function generateDatabaseTestDefs(title: string, testDir: string, _testExt: string, knowledge: ProjectKnowledge): TestDefinition[];
7
- export declare function generateDatabaseTestFiles(spec: {
8
- title: string;
9
- slug: string;
10
- }, testDir: string, framework: string, language: string, testExt: string, autoGenerate: boolean, knowledge: ProjectKnowledge): TestFile[];
11
- //# sourceMappingURL=database-test-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database-test-generator.d.ts","sourceRoot":"","sources":["../../../../src/tools/generate-tests/generators/database-test-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY1F,wBAAgB,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAQxE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAQ7E;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAE1E;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,gBAAgB,GAC1B,cAAc,EAAE,CAwDlB;AAkPD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,gBAAgB,GAC1B,QAAQ,EAAE,CAoBZ"}