@aws/nx-plugin 1.0.0-rc.23 → 1.0.0-rc.25

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 (774) hide show
  1. package/LICENSE-THIRD-PARTY +3643 -1208
  2. package/package.json +30 -15
  3. package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
  4. package/src/agentcore-gateway/attach-upstream.js +19 -22
  5. package/src/agentcore-gateway/attach-upstream.js.map +1 -1
  6. package/src/agentcore-gateway/gateway-connection/generator.d.ts +4 -4
  7. package/src/agentcore-gateway/gateway-connection/generator.js +45 -46
  8. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
  9. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  10. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  11. package/src/agentcore-gateway/gateway-connection/schema.d.ts +1 -0
  12. package/src/agentcore-gateway/gateway-connection/schema.json +5 -0
  13. package/src/agentcore-gateway/generator.js +93 -73
  14. package/src/agentcore-gateway/generator.js.map +1 -1
  15. package/src/agentcore-gateway/mcp-connection/generator.d.ts +3 -3
  16. package/src/agentcore-gateway/mcp-connection/generator.js +27 -31
  17. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
  18. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  19. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  20. package/src/agentcore-gateway/mcp-connection/schema.d.ts +1 -0
  21. package/src/agentcore-gateway/mcp-connection/schema.json +5 -0
  22. package/src/agentcore-gateway/schema.d.js +6 -0
  23. package/src/agentcore-gateway/schema.d.js.map +1 -0
  24. package/src/agentcore-gateway/schema.d.ts +1 -0
  25. package/src/agentcore-gateway/schema.json +5 -0
  26. package/src/bin/aws-nx-mcp.js +14 -0
  27. package/src/bin/aws-nx-mcp.js.map +1 -0
  28. package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
  29. package/src/connection/agent-local-dev.js +42 -0
  30. package/src/connection/agent-local-dev.js.map +1 -0
  31. package/src/connection/agent-runtime-config.js +9 -14
  32. package/src/connection/agent-runtime-config.js.map +1 -1
  33. package/src/connection/generator.d.ts +1 -0
  34. package/src/connection/generator.js +265 -206
  35. package/src/connection/generator.js.map +1 -1
  36. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  37. package/src/connection/local-dev.js +37 -0
  38. package/src/connection/local-dev.js.map +1 -0
  39. package/src/connection/schema.d.js +6 -0
  40. package/src/connection/schema.d.js.map +1 -0
  41. package/src/connection/schema.d.ts +1 -0
  42. package/src/connection/schema.json +5 -0
  43. package/src/index.js +2 -5
  44. package/src/index.js.map +1 -1
  45. package/src/infra/app/__snapshots__/generator.spec.ts.snap +33 -47
  46. package/src/infra/app/generator.js +140 -124
  47. package/src/infra/app/generator.js.map +1 -1
  48. package/src/infra/app/schema.d.js +6 -0
  49. package/src/infra/app/schema.d.js.map +1 -0
  50. package/src/infra/app/schema.d.ts +1 -1
  51. package/src/infra/app/schema.json +5 -0
  52. package/src/license/config-types.js +5 -3
  53. package/src/license/config-types.js.map +1 -1
  54. package/src/license/config.d.ts +1 -1
  55. package/src/license/config.js +267 -242
  56. package/src/license/config.js.map +1 -1
  57. package/src/license/dependency-check/check.js +51 -46
  58. package/src/license/dependency-check/check.js.map +1 -1
  59. package/src/license/dependency-check/collectors/collector.js +41 -71
  60. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  61. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  62. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  63. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  64. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  65. package/src/license/dependency-check/evaluator.js +40 -68
  66. package/src/license/dependency-check/evaluator.js.map +1 -1
  67. package/src/license/dependency-check/executor.js +30 -22
  68. package/src/license/dependency-check/executor.js.map +1 -1
  69. package/src/license/dependency-check/pre-approved.js +949 -336
  70. package/src/license/dependency-check/pre-approved.js.map +1 -1
  71. package/src/license/dependency-check/types.js +2 -3
  72. package/src/license/dependency-check/types.js.map +1 -1
  73. package/src/license/generator.js +55 -60
  74. package/src/license/generator.js.map +1 -1
  75. package/src/license/index.js +3 -9
  76. package/src/license/index.js.map +1 -1
  77. package/src/license/known-exceptions.js +14 -13
  78. package/src/license/known-exceptions.js.map +1 -1
  79. package/src/license/schema.d.js +6 -0
  80. package/src/license/schema.d.js.map +1 -0
  81. package/src/license/schema.d.ts +2 -0
  82. package/src/license/schema.json +5 -0
  83. package/src/license/sync/generator.js +94 -119
  84. package/src/license/sync/generator.js.map +1 -1
  85. package/src/license/sync/project-file-sync.js +28 -35
  86. package/src/license/sync/project-file-sync.js.map +1 -1
  87. package/src/mcp-server/generator-info.js +130 -160
  88. package/src/mcp-server/generator-info.js.map +1 -1
  89. package/src/mcp-server/guide-pipeline.js +184 -206
  90. package/src/mcp-server/guide-pipeline.js.map +1 -1
  91. package/src/mcp-server/guide-render.js +10 -25
  92. package/src/mcp-server/guide-render.js.map +1 -1
  93. package/src/mcp-server/index.js +6 -10
  94. package/src/mcp-server/index.js.map +1 -1
  95. package/src/mcp-server/mdx-ast.js +39 -57
  96. package/src/mcp-server/mdx-ast.js.map +1 -1
  97. package/src/mcp-server/option-filter.js +33 -47
  98. package/src/mcp-server/option-filter.js.map +1 -1
  99. package/src/mcp-server/schema-registry.js +27 -40
  100. package/src/mcp-server/schema-registry.js.map +1 -1
  101. package/src/mcp-server/schema.js +9 -7
  102. package/src/mcp-server/schema.js.map +1 -1
  103. package/src/mcp-server/server.js +20 -24
  104. package/src/mcp-server/server.js.map +1 -1
  105. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  106. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  107. package/src/mcp-server/tools/general-guidance.js +45 -25
  108. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  109. package/src/mcp-server/tools/generator-guide.js +29 -37
  110. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  111. package/src/mcp-server/tools/list-generators.js +19 -25
  112. package/src/mcp-server/tools/list-generators.js.map +1 -1
  113. package/src/open-api/ts-client/generator.js +16 -26
  114. package/src/open-api/ts-client/generator.js.map +1 -1
  115. package/src/open-api/ts-client/schema.d.js +6 -0
  116. package/src/open-api/ts-client/schema.d.js.map +1 -0
  117. package/src/open-api/ts-hooks/generator.js +13 -21
  118. package/src/open-api/ts-hooks/generator.js.map +1 -1
  119. package/src/open-api/ts-hooks/schema.d.js +6 -0
  120. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  121. package/src/open-api/ts-metadata/generator.js +12 -20
  122. package/src/open-api/ts-metadata/generator.js.map +1 -1
  123. package/src/open-api/ts-metadata/schema.d.js +6 -0
  124. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  125. package/src/open-api/utils/codegen-data/languages.js +42 -60
  126. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  127. package/src/open-api/utils/codegen-data/types.js +31 -30
  128. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  129. package/src/open-api/utils/codegen-data.js +253 -269
  130. package/src/open-api/utils/codegen-data.js.map +1 -1
  131. package/src/open-api/utils/normalise.js +242 -241
  132. package/src/open-api/utils/normalise.js.map +1 -1
  133. package/src/open-api/utils/parse.js +8 -14
  134. package/src/open-api/utils/parse.js.map +1 -1
  135. package/src/open-api/utils/refs.js +12 -22
  136. package/src/open-api/utils/refs.js.map +1 -1
  137. package/src/open-api/utils/types.js +5 -2
  138. package/src/open-api/utils/types.js.map +1 -1
  139. package/src/preset/__snapshots__/generator.spec.ts.snap +32 -7
  140. package/src/preset/generator.d.ts +1 -1
  141. package/src/preset/generator.js +134 -113
  142. package/src/preset/generator.js.map +1 -1
  143. package/src/preset/schema.d.js +6 -0
  144. package/src/preset/schema.d.js.map +1 -0
  145. package/src/preset/schema.d.ts +1 -1
  146. package/src/preset/schema.json +5 -5
  147. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
  148. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +16 -853
  149. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
  150. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
  151. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
  152. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
  153. package/src/py/agent/a2a-connection/generator.js +74 -75
  154. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  155. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  156. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  157. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  158. package/src/py/agent/a2a-connection/schema.json +5 -0
  159. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
  160. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
  161. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
  162. package/src/py/agent/gateway-connection/generator.js +65 -58
  163. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  164. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  165. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  166. package/src/py/agent/gateway-connection/schema.d.ts +1 -0
  167. package/src/py/agent/gateway-connection/schema.json +5 -0
  168. package/src/py/agent/generator.js +230 -194
  169. package/src/py/agent/generator.js.map +1 -1
  170. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
  171. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
  172. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
  173. package/src/py/agent/mcp-connection/generator.js +57 -52
  174. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  175. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  176. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  177. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  178. package/src/py/agent/mcp-connection/schema.json +5 -0
  179. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
  180. package/src/py/agent/react-connection/generator.d.ts +1 -1
  181. package/src/py/agent/react-connection/generator.js +55 -59
  182. package/src/py/agent/react-connection/generator.js.map +1 -1
  183. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  184. package/src/py/agent/react-connection/local-dev.js +36 -0
  185. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  186. package/src/py/agent/react-connection/schema.d.js +8 -0
  187. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  188. package/src/py/agent/react-connection/schema.d.ts +1 -0
  189. package/src/py/agent/react-connection/schema.json +5 -0
  190. package/src/py/agent/schema.d.js +6 -0
  191. package/src/py/agent/schema.d.js.map +1 -0
  192. package/src/py/agent/schema.d.ts +1 -0
  193. package/src/py/agent/schema.json +5 -0
  194. package/src/py/api/generator.js +12 -11
  195. package/src/py/api/generator.js.map +1 -1
  196. package/src/py/api/schema.d.js +6 -0
  197. package/src/py/api/schema.d.js.map +1 -0
  198. package/src/py/api/schema.d.ts +1 -0
  199. package/src/py/api/schema.json +5 -0
  200. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
  201. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  202. package/src/py/dynamodb/agent-connection/generator.js +30 -30
  203. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  204. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  205. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  206. package/src/py/dynamodb/agent-connection/schema.d.ts +1 -0
  207. package/src/py/dynamodb/agent-connection/schema.json +5 -0
  208. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
  209. package/src/py/dynamodb/fast-api-connection/generator.js +29 -29
  210. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  211. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  212. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  213. package/src/py/dynamodb/fast-api-connection/schema.d.ts +1 -0
  214. package/src/py/dynamodb/fast-api-connection/schema.json +5 -0
  215. package/src/py/dynamodb/files/__name__/client.py.template +5 -5
  216. package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
  217. package/src/py/dynamodb/files/config.json.template +1 -1
  218. package/src/py/dynamodb/generator.js +66 -62
  219. package/src/py/dynamodb/generator.js.map +1 -1
  220. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  221. package/src/py/dynamodb/mcp-server-connection/generator.js +30 -30
  222. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  223. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  224. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  225. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  226. package/src/py/dynamodb/mcp-server-connection/schema.json +5 -0
  227. package/src/py/dynamodb/schema.d.js +6 -0
  228. package/src/py/dynamodb/schema.d.js.map +1 -0
  229. package/src/py/dynamodb/schema.d.ts +1 -0
  230. package/src/py/dynamodb/schema.json +5 -0
  231. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
  232. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
  233. package/src/py/fast-api/generator.js +82 -85
  234. package/src/py/fast-api/generator.js.map +1 -1
  235. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
  236. package/src/py/fast-api/react/generator.d.ts +2 -2
  237. package/src/py/fast-api/react/generator.js +25 -25
  238. package/src/py/fast-api/react/generator.js.map +1 -1
  239. package/src/py/fast-api/react/open-api.js +28 -29
  240. package/src/py/fast-api/react/open-api.js.map +1 -1
  241. package/src/py/fast-api/react/schema.d.js +6 -0
  242. package/src/py/fast-api/react/schema.d.js.map +1 -0
  243. package/src/py/fast-api/react/schema.d.ts +1 -0
  244. package/src/py/fast-api/react/schema.json +5 -0
  245. package/src/py/fast-api/schema.d.js +6 -0
  246. package/src/py/fast-api/schema.d.js.map +1 -0
  247. package/src/py/fast-api/schema.d.ts +1 -0
  248. package/src/py/fast-api/schema.json +5 -0
  249. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  250. package/src/py/lambda-function/generator.js +60 -59
  251. package/src/py/lambda-function/generator.js.map +1 -1
  252. package/src/py/lambda-function/schema.d.js +6 -0
  253. package/src/py/lambda-function/schema.d.js.map +1 -0
  254. package/src/py/lambda-function/schema.d.ts +1 -0
  255. package/src/py/lambda-function/schema.json +5 -0
  256. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +8 -8
  257. package/src/py/mcp-server/generator.js +152 -132
  258. package/src/py/mcp-server/generator.js.map +1 -1
  259. package/src/py/mcp-server/schema.d.js +6 -0
  260. package/src/py/mcp-server/schema.d.js.map +1 -0
  261. package/src/py/mcp-server/schema.d.ts +1 -0
  262. package/src/py/mcp-server/schema.json +5 -0
  263. package/src/py/project/generator.js +132 -90
  264. package/src/py/project/generator.js.map +1 -1
  265. package/src/py/project/schema.d.js +6 -0
  266. package/src/py/project/schema.d.js.map +1 -0
  267. package/src/py/project/schema.d.ts +1 -0
  268. package/src/py/project/schema.json +5 -0
  269. package/src/sdk/agentcore-gateway.d.ts +6 -0
  270. package/src/sdk/agentcore-gateway.js +7 -0
  271. package/src/sdk/agentcore-gateway.js.map +1 -0
  272. package/src/sdk/connection.d.ts +6 -0
  273. package/src/sdk/connection.js +6 -0
  274. package/src/sdk/connection.js.map +1 -0
  275. package/{sdk → src/sdk}/license.d.ts +4 -4
  276. package/src/sdk/license.js +7 -0
  277. package/src/sdk/license.js.map +1 -0
  278. package/src/sdk/open-api.d.ts +10 -0
  279. package/src/sdk/open-api.js +8 -0
  280. package/src/sdk/open-api.js.map +1 -0
  281. package/src/sdk/py.d.ts +14 -0
  282. package/src/sdk/py.js +10 -0
  283. package/src/sdk/py.js.map +1 -0
  284. package/src/sdk/terraform.d.ts +6 -0
  285. package/src/sdk/terraform.js +7 -0
  286. package/src/sdk/terraform.js.map +1 -0
  287. package/src/sdk/ts.d.ts +33 -0
  288. package/src/sdk/ts.js +35 -0
  289. package/src/sdk/ts.js.map +1 -0
  290. package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
  291. package/src/sdk/utils/ast.js +6 -0
  292. package/src/sdk/utils/ast.js.map +1 -0
  293. package/{sdk → src/sdk}/utils/format.d.ts +1 -1
  294. package/src/sdk/utils/format.js +6 -0
  295. package/src/sdk/utils/format.js.map +1 -0
  296. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  297. package/src/sdk/utils/test.js +6 -0
  298. package/src/sdk/utils/test.js.map +1 -0
  299. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -8
  300. package/src/smithy/project/files/build.Dockerfile.template +1 -4
  301. package/src/smithy/project/generator.js +48 -43
  302. package/src/smithy/project/generator.js.map +1 -1
  303. package/src/smithy/project/schema.d.js +6 -0
  304. package/src/smithy/project/schema.d.js.map +1 -0
  305. package/src/smithy/project/schema.d.ts +1 -0
  306. package/src/smithy/project/schema.json +5 -0
  307. package/src/smithy/react-connection/generator.js +39 -47
  308. package/src/smithy/react-connection/generator.js.map +1 -1
  309. package/src/smithy/react-connection/schema.d.js +6 -0
  310. package/src/smithy/react-connection/schema.d.js.map +1 -0
  311. package/src/smithy/react-connection/schema.d.ts +1 -0
  312. package/src/smithy/react-connection/schema.json +5 -0
  313. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
  314. package/src/smithy/ts/api/generator.js +125 -110
  315. package/src/smithy/ts/api/generator.js.map +1 -1
  316. package/src/smithy/ts/api/schema.d.js +6 -0
  317. package/src/smithy/ts/api/schema.d.js.map +1 -0
  318. package/src/smithy/ts/api/schema.d.ts +1 -0
  319. package/src/smithy/ts/api/schema.json +5 -0
  320. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  321. package/src/terraform/project/generator.js +151 -104
  322. package/src/terraform/project/generator.js.map +1 -1
  323. package/src/terraform/project/schema.d.js +9 -0
  324. package/src/terraform/project/schema.d.js.map +1 -0
  325. package/src/terraform/project/schema.d.ts +1 -0
  326. package/src/terraform/project/schema.json +5 -0
  327. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
  328. package/src/trpc/backend/generator.d.ts +1 -1
  329. package/src/trpc/backend/generator.js +97 -86
  330. package/src/trpc/backend/generator.js.map +1 -1
  331. package/src/trpc/backend/schema.d.js +6 -0
  332. package/src/trpc/backend/schema.d.js.map +1 -0
  333. package/src/trpc/backend/schema.d.ts +1 -0
  334. package/src/trpc/backend/schema.json +5 -0
  335. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
  336. package/src/trpc/react/generator.d.ts +1 -1
  337. package/src/trpc/react/generator.js +63 -58
  338. package/src/trpc/react/generator.js.map +1 -1
  339. package/src/trpc/react/schema.d.js +6 -0
  340. package/src/trpc/react/schema.d.js.map +1 -0
  341. package/src/trpc/react/schema.d.ts +1 -0
  342. package/src/trpc/react/schema.json +5 -0
  343. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
  344. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
  345. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
  346. package/src/ts/agent/a2a-connection/generator.js +62 -55
  347. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  348. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  349. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  350. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  351. package/src/ts/agent/a2a-connection/schema.json +5 -0
  352. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
  353. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
  354. package/src/ts/agent/gateway-connection/generator.js +61 -53
  355. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  356. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  357. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  358. package/src/ts/agent/gateway-connection/schema.d.ts +1 -0
  359. package/src/ts/agent/gateway-connection/schema.json +5 -0
  360. package/src/ts/agent/generator.js +169 -137
  361. package/src/ts/agent/generator.js.map +1 -1
  362. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
  363. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
  364. package/src/ts/agent/mcp-connection/generator.js +52 -47
  365. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  366. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  367. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  368. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  369. package/src/ts/agent/mcp-connection/schema.json +5 -0
  370. package/src/ts/agent/react-connection/generator.d.ts +1 -1
  371. package/src/ts/agent/react-connection/generator.js +86 -80
  372. package/src/ts/agent/react-connection/generator.js.map +1 -1
  373. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  374. package/src/ts/agent/react-connection/local-dev.js +17 -0
  375. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  376. package/src/ts/agent/react-connection/schema.d.js +8 -0
  377. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  378. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  379. package/src/ts/agent/react-connection/schema.json +5 -0
  380. package/src/ts/agent/schema.d.js +6 -0
  381. package/src/ts/agent/schema.d.js.map +1 -0
  382. package/src/ts/agent/schema.d.ts +1 -0
  383. package/src/ts/agent/schema.json +5 -0
  384. package/src/ts/api/generator.js +16 -16
  385. package/src/ts/api/generator.js.map +1 -1
  386. package/src/ts/api/schema.d.js +6 -0
  387. package/src/ts/api/schema.d.js.map +1 -0
  388. package/src/ts/api/schema.d.ts +1 -0
  389. package/src/ts/api/schema.json +5 -0
  390. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
  391. package/src/ts/astro-docs/generator.js +63 -51
  392. package/src/ts/astro-docs/generator.js.map +1 -1
  393. package/src/ts/astro-docs/schema.d.js +6 -0
  394. package/src/ts/astro-docs/schema.d.js.map +1 -0
  395. package/src/ts/astro-docs/schema.d.ts +2 -2
  396. package/src/ts/astro-docs/schema.json +3 -3
  397. package/src/ts/docs/generator.js +10 -10
  398. package/src/ts/docs/generator.js.map +1 -1
  399. package/src/ts/docs/schema.d.js +6 -0
  400. package/src/ts/docs/schema.d.js.map +1 -0
  401. package/src/ts/docs/schema.d.ts +1 -4
  402. package/src/ts/docs/schema.json +3 -3
  403. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
  404. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  405. package/src/ts/dynamodb/agent-connection/generator.js +21 -23
  406. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  407. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  408. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  409. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  410. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  411. package/src/ts/dynamodb/files/config.json.template +1 -1
  412. package/src/ts/dynamodb/files/src/client.ts.template +7 -7
  413. package/src/ts/dynamodb/generator.js +68 -63
  414. package/src/ts/dynamodb/generator.js.map +1 -1
  415. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  416. package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
  417. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  418. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  419. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  420. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  421. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  422. package/src/ts/dynamodb/schema.d.js +6 -0
  423. package/src/ts/dynamodb/schema.d.js.map +1 -0
  424. package/src/ts/dynamodb/schema.d.ts +1 -0
  425. package/src/ts/dynamodb/schema.json +5 -0
  426. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  427. package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
  428. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  429. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  430. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  431. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  432. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  433. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  434. package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
  435. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  436. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  437. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  438. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  439. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  440. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  441. package/src/ts/lambda-function/generator.js +59 -56
  442. package/src/ts/lambda-function/generator.js.map +1 -1
  443. package/src/ts/lambda-function/io.js +83 -52
  444. package/src/ts/lambda-function/io.js.map +1 -1
  445. package/src/ts/lambda-function/schema.d.js +6 -0
  446. package/src/ts/lambda-function/schema.d.js.map +1 -0
  447. package/src/ts/lambda-function/schema.d.ts +1 -0
  448. package/src/ts/lambda-function/schema.json +5 -0
  449. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -36
  450. package/src/ts/lib/biome.js +37 -37
  451. package/src/ts/lib/biome.js.map +1 -1
  452. package/src/ts/lib/generator.js +82 -80
  453. package/src/ts/lib/generator.js.map +1 -1
  454. package/src/ts/lib/schema.d.js +6 -0
  455. package/src/ts/lib/schema.d.js.map +1 -0
  456. package/src/ts/lib/schema.d.ts +1 -1
  457. package/src/ts/lib/schema.json +5 -0
  458. package/src/ts/lib/ts-project-utils.js +65 -70
  459. package/src/ts/lib/ts-project-utils.js.map +1 -1
  460. package/src/ts/lib/types.js +5 -2
  461. package/src/ts/lib/types.js.map +1 -1
  462. package/src/ts/lib/vitest.js +29 -26
  463. package/src/ts/lib/vitest.js.map +1 -1
  464. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  465. package/src/ts/mcp-server/generator.js +161 -139
  466. package/src/ts/mcp-server/generator.js.map +1 -1
  467. package/src/ts/mcp-server/schema.d.js +6 -0
  468. package/src/ts/mcp-server/schema.d.js.map +1 -0
  469. package/src/ts/mcp-server/schema.d.ts +1 -0
  470. package/src/ts/mcp-server/schema.json +5 -0
  471. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -12
  472. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  473. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  474. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  475. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  476. package/src/ts/nx-generator/generator.js +88 -84
  477. package/src/ts/nx-generator/generator.js.map +1 -1
  478. package/src/ts/nx-generator/schema.d.js +6 -0
  479. package/src/ts/nx-generator/schema.d.js.map +1 -0
  480. package/src/ts/nx-generator/schema.d.ts +1 -0
  481. package/src/ts/nx-generator/schema.json +5 -0
  482. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
  483. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  484. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  485. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  486. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  487. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  488. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
  489. package/src/ts/nx-plugin/generator.js +57 -49
  490. package/src/ts/nx-plugin/generator.js.map +1 -1
  491. package/src/ts/nx-plugin/schema.d.js +9 -0
  492. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  493. package/src/ts/nx-plugin/schema.json +5 -0
  494. package/src/ts/nx-plugin/utils.js +32 -44
  495. package/src/ts/nx-plugin/utils.js.map +1 -1
  496. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +30 -30
  497. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
  498. package/src/ts/rdb/agent-connection/generator.js +38 -39
  499. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  500. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  501. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  502. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  503. package/src/ts/rdb/agent-connection/schema.json +5 -0
  504. package/src/ts/rdb/files/config.json.template +1 -1
  505. package/src/ts/rdb/files/prisma.config.ts.template +2 -2
  506. package/src/ts/rdb/files/src/prisma.ts.template +7 -7
  507. package/src/ts/rdb/files/src/utils.ts.template +1 -0
  508. package/src/ts/rdb/generator.js +134 -117
  509. package/src/ts/rdb/generator.js.map +1 -1
  510. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
  511. package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
  512. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  513. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  514. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  515. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  516. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  517. package/src/ts/rdb/schema.d.js +6 -0
  518. package/src/ts/rdb/schema.d.js.map +1 -0
  519. package/src/ts/rdb/schema.d.ts +1 -0
  520. package/src/ts/rdb/schema.json +5 -0
  521. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  522. package/src/ts/rdb/smithy-connection/generator.js +46 -43
  523. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  524. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  525. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  526. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  527. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  528. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  529. package/src/ts/rdb/trpc-connection/generator.js +36 -31
  530. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  531. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  532. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  533. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  534. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  535. package/src/ts/rdb/utils.js +9 -11
  536. package/src/ts/rdb/utils.js.map +1 -1
  537. package/src/ts/react-website/agui/generator.js +69 -61
  538. package/src/ts/react-website/agui/generator.js.map +1 -1
  539. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +178 -284
  540. package/src/ts/react-website/app/generator.d.ts +1 -1
  541. package/src/ts/react-website/app/generator.js +212 -191
  542. package/src/ts/react-website/app/generator.js.map +1 -1
  543. package/src/ts/react-website/app/schema.d.js +6 -0
  544. package/src/ts/react-website/app/schema.d.js.map +1 -0
  545. package/src/ts/react-website/app/schema.d.ts +1 -1
  546. package/src/ts/react-website/app/schema.json +11 -6
  547. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
  548. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +10 -3
  549. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  550. package/src/ts/react-website/cognito-auth/generator.d.ts +1 -1
  551. package/src/ts/react-website/cognito-auth/generator.js +64 -60
  552. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  553. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  554. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  555. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  556. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  557. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  558. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  559. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  560. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  561. package/src/ts/react-website/runtime-config/generator.js +29 -31
  562. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  563. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  564. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  565. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  566. package/src/ts/react-website/runtime-config/schema.json +5 -0
  567. package/src/ts/sync/generator.js +60 -59
  568. package/src/ts/sync/generator.js.map +1 -1
  569. package/src/ts/website/app/generator.js +10 -10
  570. package/src/ts/website/app/generator.js.map +1 -1
  571. package/src/ts/website/app/schema.d.js +6 -0
  572. package/src/ts/website/app/schema.d.js.map +1 -0
  573. package/src/ts/website/app/schema.d.ts +1 -1
  574. package/src/ts/website/app/schema.json +11 -6
  575. package/src/ts/website/auth/generator.d.ts +1 -1
  576. package/src/ts/website/auth/generator.js +11 -10
  577. package/src/ts/website/auth/generator.js.map +1 -1
  578. package/src/ts/website/auth/schema.d.js +6 -0
  579. package/src/ts/website/auth/schema.d.js.map +1 -0
  580. package/src/ts/website/auth/schema.d.ts +1 -0
  581. package/src/ts/website/auth/schema.json +5 -0
  582. package/src/utils/agent-chat/agent-chat.d.ts +1 -1
  583. package/src/utils/agent-chat/agent-chat.js +11 -12
  584. package/src/utils/agent-chat/agent-chat.js.map +1 -1
  585. package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
  586. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
  587. package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
  588. package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
  589. package/src/utils/agent-connection/agent-connection.js +129 -146
  590. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  591. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
  592. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
  593. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
  594. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
  595. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
  596. package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
  597. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  598. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  599. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +4 -4
  600. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
  601. package/src/utils/api-constructs/api-constructs.js +30 -31
  602. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  603. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
  604. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
  605. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  606. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
  607. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
  608. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
  609. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  610. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  611. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  612. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  613. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  614. package/src/utils/ast/website.js +17 -19
  615. package/src/utils/ast/website.js.map +1 -1
  616. package/src/utils/ast.js +72 -97
  617. package/src/utils/ast.js.map +1 -1
  618. package/src/utils/bundle/bundle.js +50 -47
  619. package/src/utils/bundle/bundle.js.map +1 -1
  620. package/src/utils/commands.js +47 -26
  621. package/src/utils/commands.js.map +1 -1
  622. package/src/utils/config/index.d.ts +2 -2
  623. package/src/utils/config/index.js +5 -4
  624. package/src/utils/config/index.js.map +1 -1
  625. package/src/utils/config/utils.js +48 -58
  626. package/src/utils/config/utils.js.map +1 -1
  627. package/src/utils/connection/open-api/react.d.ts +5 -5
  628. package/src/utils/connection/open-api/react.js +81 -77
  629. package/src/utils/connection/open-api/react.js.map +1 -1
  630. package/src/utils/containers.js +22 -23
  631. package/src/utils/containers.js.map +1 -1
  632. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
  633. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  634. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
  635. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  636. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
  637. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
  638. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
  639. package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +11 -3
  640. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  641. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  642. package/src/utils/files/common/scripts/src/rdb/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
  643. package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
  644. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
  645. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  646. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
  647. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  648. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
  649. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  650. package/src/utils/format.js +153 -99
  651. package/src/utils/format.js.map +1 -1
  652. package/src/utils/fs.js +14 -13
  653. package/src/utils/fs.js.map +1 -1
  654. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  655. package/src/utils/function-constructs/function-constructs.js +21 -26
  656. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  657. package/src/utils/generators.js +18 -20
  658. package/src/utils/generators.js.map +1 -1
  659. package/src/utils/git.js +19 -34
  660. package/src/utils/git.js.map +1 -1
  661. package/src/utils/iac-providers.js +5 -5
  662. package/src/utils/iac-providers.js.map +1 -1
  663. package/src/utils/iac.js +12 -14
  664. package/src/utils/iac.js.map +1 -1
  665. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
  666. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +2 -2
  667. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
  668. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  669. package/src/utils/identity-constructs/identity-constructs.js +24 -28
  670. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  671. package/src/utils/install.d.ts +32 -0
  672. package/src/utils/install.js +56 -0
  673. package/src/utils/install.js.map +1 -0
  674. package/src/utils/js.js +27 -20
  675. package/src/utils/js.js.map +1 -1
  676. package/src/utils/mcp.js +34 -41
  677. package/src/utils/mcp.js.map +1 -1
  678. package/src/utils/metrics.js +30 -45
  679. package/src/utils/metrics.js.map +1 -1
  680. package/src/utils/mock-project-graph.js +8 -12
  681. package/src/utils/mock-project-graph.js.map +1 -1
  682. package/src/utils/names.js +25 -51
  683. package/src/utils/names.js.map +1 -1
  684. package/src/utils/npm-scope.js +9 -17
  685. package/src/utils/npm-scope.js.map +1 -1
  686. package/src/utils/nx.d.ts +18 -2
  687. package/src/utils/nx.js +111 -74
  688. package/src/utils/nx.js.map +1 -1
  689. package/src/utils/nxlv-python.js +27 -15
  690. package/src/utils/nxlv-python.js.map +1 -1
  691. package/src/utils/object.js +5 -11
  692. package/src/utils/object.js.map +1 -1
  693. package/src/utils/paths.js +11 -15
  694. package/src/utils/paths.js.map +1 -1
  695. package/src/utils/pkg-manager.js +4 -9
  696. package/src/utils/pkg-manager.js.map +1 -1
  697. package/src/utils/pnpm-workspace.js +22 -22
  698. package/src/utils/pnpm-workspace.js.map +1 -1
  699. package/src/utils/port.js +26 -36
  700. package/src/utils/port.js.map +1 -1
  701. package/src/utils/py.js +43 -52
  702. package/src/utils/py.js.map +1 -1
  703. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  704. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
  705. package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
  706. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  707. package/src/utils/shared-constructs-constants.js +16 -16
  708. package/src/utils/shared-constructs-constants.js.map +1 -1
  709. package/src/utils/shared-constructs.js +57 -54
  710. package/src/utils/shared-constructs.js.map +1 -1
  711. package/src/utils/shared-dynamodb-scripts.js +16 -14
  712. package/src/utils/shared-dynamodb-scripts.js.map +1 -1
  713. package/src/utils/shared-infra-config.js +30 -31
  714. package/src/utils/shared-infra-config.js.map +1 -1
  715. package/src/utils/shared-infra-scripts.js +30 -25
  716. package/src/utils/shared-infra-scripts.js.map +1 -1
  717. package/src/utils/shared-rdb-scripts.d.ts +8 -3
  718. package/src/utils/shared-rdb-scripts.js +21 -13
  719. package/src/utils/shared-rdb-scripts.js.map +1 -1
  720. package/src/utils/shared-scripts.js +12 -17
  721. package/src/utils/shared-scripts.js.map +1 -1
  722. package/src/utils/shared-shadcn.js +64 -60
  723. package/src/utils/shared-shadcn.js.map +1 -1
  724. package/src/utils/test.d.ts +8 -0
  725. package/src/utils/test.js +33 -25
  726. package/src/utils/test.js.map +1 -1
  727. package/src/utils/toml.js +7 -15
  728. package/src/utils/toml.js.map +1 -1
  729. package/src/utils/versions.d.ts +93 -66
  730. package/src/utils/versions.js +102 -85
  731. package/src/utils/versions.js.map +1 -1
  732. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  733. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
  734. package/src/utils/website-constructs/website-constructs.js +31 -30
  735. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  736. package/bin/aws-nx-mcp.js +0 -17
  737. package/bin/aws-nx-mcp.js.map +0 -1
  738. package/sdk/agentcore-gateway.d.ts +0 -6
  739. package/sdk/agentcore-gateway.js +0 -11
  740. package/sdk/agentcore-gateway.js.map +0 -1
  741. package/sdk/connection.d.ts +0 -6
  742. package/sdk/connection.js +0 -10
  743. package/sdk/connection.js.map +0 -1
  744. package/sdk/license.js +0 -14
  745. package/sdk/license.js.map +0 -1
  746. package/sdk/open-api.d.ts +0 -10
  747. package/sdk/open-api.js +0 -15
  748. package/sdk/open-api.js.map +0 -1
  749. package/sdk/py.d.ts +0 -14
  750. package/sdk/py.js +0 -18
  751. package/sdk/py.js.map +0 -1
  752. package/sdk/terraform.d.ts +0 -6
  753. package/sdk/terraform.js +0 -11
  754. package/sdk/terraform.js.map +0 -1
  755. package/sdk/ts.d.ts +0 -33
  756. package/sdk/ts.js +0 -53
  757. package/sdk/ts.js.map +0 -1
  758. package/sdk/utils/ast.js +0 -12
  759. package/sdk/utils/ast.js.map +0 -1
  760. package/sdk/utils/format.js +0 -10
  761. package/sdk/utils/format.js.map +0 -1
  762. package/sdk/utils/test.js +0 -10
  763. package/sdk/utils/test.js.map +0 -1
  764. package/src/connection/agent-serve-local.js +0 -48
  765. package/src/connection/agent-serve-local.js.map +0 -1
  766. package/src/connection/serve-local.js +0 -41
  767. package/src/connection/serve-local.js.map +0 -1
  768. package/src/py/agent/react-connection/serve-local.js +0 -38
  769. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  770. package/src/ts/agent/react-connection/serve-local.js +0 -19
  771. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  772. package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
  773. /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
  774. /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"guide-pipeline.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/guide-pipeline.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,oDAAoB;AAepB,gDAK2B;AAE3B,iDAIwB;AACxB,uCAQmB;AACnB,mDAMyB;AAmBzB,IAAI,WAA4C,CAAC;AACjD,MAAM,cAAc,GAAG,GAAwB,EAAE;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC1B,OAAO,EAAE,CAAC,gEAAa,SAAS,GAAC,CAAC,CAAC,OAAO;YAC1C,WAAW,EAAE,CAAC,gEAAa,cAAc,GAAC,CAAC,CAAC,OAAO;YACnD,SAAS,EAAE,CAAC,gEAAa,YAAY,GAAC,CAAC,CAAC,OAAO;YAC/C,eAAe,EAAE,CAAC,gEAAa,kBAAkB,GAAC,CAAC,CAAC,OAAO;YAC3D,iBAAiB,EAAE,CAAC,gEAAa,oBAAoB,GAAC,CAAC,CAAC,OAAO;SAChE,CAAC,CAAC,EAAE,CAAC;IACR,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,IAAgB,EAAQ,EAAE,CAClE,IAAI;KACD,OAAO,EAAE;KACT,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACrB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;KAC3B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACnB,KAAK,CAAC,MAAM,CAAS,CAAC;AAE3B;wEACwE;AACjE,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB;AAEF,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,IAAgB,EAAU,EAAE,CAC5D,MAAM,CACJ,IAAI;KACD,OAAO,EAAE;KACT,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;KAC3B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACnB,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;IACzB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,KAAK;CACtB,CAAC;KACD,SAAS,CAAC,IAAI,CAAC,CACnB,CAAC;AAEG,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAa,EACb,IAAqB,EACJ,EAAE;IACnB,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE3C,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAZW,QAAA,0BAA0B,8BAYrC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,IAAU,EACV,IAAqB,EACrB,IAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO;IAStB,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,MAAiB,EAAQ,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAyB,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAA,sBAAY,EAAC,KAAK,CAAC;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAA,wBAAc,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3C,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,IAAA,kCAA0B,EAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC,CACH,CAAC;IAEF,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YACvD,IAAI,WAAW,KAAK,SAAS;gBAAE,SAAS;YACxC,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAsB;gBACjC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBACpE,QAAQ,EAAE,WAAW,CAAC,QAAyC;aAChE,CAAC;YACF,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvC,OAAkC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,CAAC;YACA,MAAM,CAAC,QAA0B,CAAC,MAAM,CACvC,KAAK,EACL,CAAC,EACD,OAAsB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,IAAU,EACV,OAA2C,EACrC,EAAE;IACR,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC;IAEzB,MAAM,SAAS,GAAG,CAAC,MAAiB,EAAQ,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAyB,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAA,sBAAY,EAAC,KAAK,CAAC;gBAAE,SAAS;YAEnC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI;oBAAE,SAAS,CAAC,0BAA0B;gBAC/C,2EAA2E;gBAC3E,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,WAAW,GAAG,IAAA,iCAAiB,EAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;wBACvD,CAAC,CAAE,KAAK,CAAC,QAA0B;wBACnC,CAAC,CAAC,EAAE,CAAC;oBACP,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;oBACtC,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACpC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAClD,MAAM,MAAM,GAAsB;wBAChC,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,KAAK;wBACX,UAAU,EAAE,EAAE;wBACd,QAAQ,EAAE,IAAqC;qBAChD,CAAC;oBACF,SAAS,CAAC,MAAM,CAAC,CAAC;oBAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAI,MAAM,CAAC,QAA0B,CAAC,CAAC;oBAC7D,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACX,CAAC;gBACD,kEAAkE;gBAClE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAChE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAChD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACxB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtB,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAI,KAAK,CAAC,QAA0B,CAAC,IAAI,CACrD,CAAC,CAAC,EAA0B,EAAE,CAC5B,IAAA,sBAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CACzC,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAyB,CAAC;oBAChD,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC/B,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrB,SAAS;gBACX,CAAC;gBACD,SAAS;YACX,CAAC;YAED,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,IAAgB,EAChB,GAAwB,EACT,EAAE;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,IAAI,GAAI,IAAI,CAAC,QAA0B,CAAC,IAAI,CAChD,CAAC,CAAC,EAA0B,EAAE,CAC5B,IAAA,sBAAY,EAAC,CAAC,CAAC;QACf,CAAC,CAAC,IAAI,KAAK,UAAU;QACrB,IAAA,wBAAc,EAAC,CAAC,EAAE,MAAM,CAAC,KAAK,QAAQ,CACzC,CAAC;IACF,OAAQ,IAAI,EAAE,QAA0B,IAAI,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CACtB,IAAuB,EACvB,OAA2C,EACd,EAAE;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAyB,CAAC;IAChD,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAA,sBAAY,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,wBAAc,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,SAAoB,CAAC;QACzB,IAAI,CAAC;YACH,SAAS,GAAG,IAAA,mCAAmB,EAAC,YAAqB,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,IAAA,iCAAiB,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC7D,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,SAA0C,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,sBAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAC/C,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACpE,IAAI,WAAW,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAc,EAAQ,EAAE;IAC/C,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAC/D,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAG,CACrB,MAAkB,EAClB,SAAoB,EACpB,GAAY,EACC,EAAE;IACf,MAAM,MAAM,GAAG,IAAA,iCAAiB,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,WAAW;QAC7B,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,EAAE,WAAW,CAAC;QACpC,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAkB,WAAW,CAAC,GAAG,CAChD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAgB,CACzD,CAAC;IACF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,CAAC,GAAG,WAAW,EAAE,GAAI,MAAM,CAAC,QAA0B,CAAU;KAC5D,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAyB,EAAE;IAChE,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAA,mCAAmB,EAAC,MAAe,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,IAAU,EACV,IAAqB,EACrB,IAAgB,EACV,EAAE;IACR,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,MAAiB,EAAQ,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAyB,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAA,sBAAY,EAAC,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;gBACtC,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,IAAgB,EAChB,IAAqB,EACrB,EAAU,EACV,IAAgB,EACW,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,OAAO;gBACL,SAAS,CACP,QAAQ;qBACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,6BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;qBAClD,IAAI,CAAC,IAAI,CAAC,CACd;aACF,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAC;YACnC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,OAAO,qBAAqB,CAC1B,IAAA,qCAAsB,EAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,EAChE,IAAI,CACL,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAC;YACnC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,OAAO,qBAAqB,CAAC,IAAA,2BAAY,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC;YACjC,MAAM,GAAG,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,KAAK,CAGzB,CAAC;YACd,OAAO,CAAC,SAAS,CAAC,IAAA,wCAA6B,EAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GACP,IAAA,wBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAA,4BAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG;gBAAE,OAAO,SAAS,CAAC;YAC3B,OAAO;gBACL,SAAS,CAAC,IAAA,8BAAmB,EAAC,EAAE,EAAE,GAAG,EAAE,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aAClE,CAAC;QACJ,CAAC;QACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,OAAO;gBACL,SAAS,CACP,QAAQ;qBACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0CAA+B,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC;qBAClD,IAAI,CAAC,IAAI,CAAC,CACd;aACF,CAAC;QACJ,CAAC;QACD,KAAK,2BAA2B,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,OAAO;gBACL,SAAS,CACP,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yCAA8B,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtE;aACF,CAAC;QACJ,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAC5B,QAAgB,EAChB,IAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAS,CAAC;IAC9E,OAAO,QAAQ,CAAC,QAAyB,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,UAA6B,EAC7B,WAAmB,EAGP,EAAE;IACd,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;2CAC2C;AAC3C,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAwB,EAAE;IAClE,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAA,4CAA4B,EAAC,MAAe,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/mcp-server/guide-pipeline.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport fs from 'fs';\n/**\n * Unified + remark-mdx pipeline for the MCP `generator-guide` tool.\n *\n * Passes (in order, each over the already-transformed tree):\n * 1. Snippet inlining — `<Snippet name>` → recursive post-process.\n * 2. Filter transforms — `<OptionFilter>`, `<Infrastructure>` slot\n * selection, `<Tabs><TabItem _filter>` pruning.\n * 3. Component transforms — `<NxCommands>` / `<RunGenerator>` /\n * `<GeneratorParameters>` / `<CreateNxWorkspaceCommand>` /\n * `<InstallCommand>` / `<PackageManagerShortCommand>` /\n * `<PackageManagerExecCommand>` render down to markdown.\n */\nimport type { Root, RootContent } from 'mdast';\nimport type { MdxJsxFlowElement } from 'mdast-util-mdx-jsx';\nimport {\n buildCreateNxWorkspaceCommand,\n buildInstallCommand,\n buildPackageManagerExecCommand,\n buildPackageManagerShortCommand,\n} from '../utils/commands';\nimport type { NxGeneratorInfo } from '../utils/generators';\nimport {\n buildNxCommand,\n renderGeneratorCommand,\n renderSchema,\n} from './guide-render';\nimport {\n hasBareAttr,\n isJsxElement,\n type JsxElement,\n type JsxParent,\n readEstreeAttr,\n readExpressionAttr,\n readStringAttr,\n} from './mdx-ast';\nimport {\n describePredicate,\n evaluatePredicate,\n extractStringArrayExpression,\n type Predicate,\n parseWhenExpression,\n} from './option-filter';\n\nexport interface PipelineOptions {\n generators: NxGeneratorInfo[];\n packageManager?: string;\n snippetContentProvider?: (name: string) => Promise<string> | string;\n options?: Record<string, string>;\n}\n\n// unified v11 is ESM-only and this package is CJS; dynamic import + rolldown's\n// inlineDynamicImports bundles everything into the published MCP binary.\ninterface RemarkDeps {\n unified: typeof import('unified').unified;\n remarkParse: typeof import('remark-parse').default;\n remarkMdx: typeof import('remark-mdx').default;\n remarkStringify: typeof import('remark-stringify').default;\n remarkFrontmatter: typeof import('remark-frontmatter').default;\n}\n\nlet depsPromise: Promise<RemarkDeps> | undefined;\nconst loadRemarkDeps = (): Promise<RemarkDeps> => {\n if (!depsPromise) {\n depsPromise = (async () => ({\n unified: (await import('unified')).unified,\n remarkParse: (await import('remark-parse')).default,\n remarkMdx: (await import('remark-mdx')).default,\n remarkStringify: (await import('remark-stringify')).default,\n remarkFrontmatter: (await import('remark-frontmatter')).default,\n }))();\n }\n return depsPromise;\n};\n\nconst parseMdxWithDeps = (source: string, deps: RemarkDeps): Root =>\n deps\n .unified()\n .use(deps.remarkParse)\n .use(deps.remarkFrontmatter)\n .use(deps.remarkMdx)\n .parse(source) as Root;\n\n/** Parse MDX (with frontmatter) into mdast. Exposed so callers like\n * `fetchGuideFrontmatters` don't need to re-load remark themselves. */\nexport const parseMdx = async (source: string): Promise<Root> => {\n const deps = await loadRemarkDeps();\n return parseMdxWithDeps(source, deps);\n};\n\nconst stringifyMdx = (tree: Root, deps: RemarkDeps): string =>\n String(\n deps\n .unified()\n .use(deps.remarkFrontmatter)\n .use(deps.remarkMdx)\n .use(deps.remarkStringify, {\n bullet: '-',\n fences: true,\n listItemIndent: 'one',\n })\n .stringify(tree),\n );\n\nexport const postProcessGuideWithRemark = async (\n guide: string,\n opts: PipelineOptions,\n): Promise<string> => {\n const deps = await loadRemarkDeps();\n const tree = parseMdxWithDeps(guide, deps);\n\n await inlineSnippets(tree, opts, deps);\n applyFilterTransforms(tree, opts.options);\n applyComponentTransforms(tree, opts, deps);\n\n return stringifyMdx(tree, deps);\n};\n\nconst inlineSnippets = async (\n tree: Root,\n opts: PipelineOptions,\n deps: RemarkDeps,\n): Promise<void> => {\n const provider = opts.snippetContentProvider;\n if (!provider) return;\n\n interface PendingSnippet {\n parent: JsxParent;\n index: number;\n name: string;\n node: JsxElement;\n }\n\n const pending: PendingSnippet[] = [];\n const walk = (parent: JsxParent): void => {\n const children = parent.children as RootContent[];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (!isJsxElement(child)) continue;\n if (child.name === 'Snippet') {\n const name = readStringAttr(child, 'name');\n if (name) pending.push({ parent, index: i, name, node: child });\n continue;\n }\n walk(child);\n }\n };\n walk(tree);\n if (pending.length === 0) return;\n\n const fetched = await Promise.all(\n pending.map(async (p) => {\n let raw = '';\n try {\n raw = await provider(p.name);\n } catch {\n raw = '';\n }\n if (!raw) return { ...p, replacement: undefined };\n const processed = await postProcessGuideWithRemark(raw.trim(), opts);\n return { ...p, replacement: processed };\n }),\n );\n\n // Splice in descending index order per parent so earlier indices stay valid.\n const byParent = new Map<JsxParent, (typeof fetched)[number][]>();\n for (const f of fetched) {\n const bucket = byParent.get(f.parent) ?? [];\n bucket.push(f);\n byParent.set(f.parent, bucket);\n }\n for (const [parent, items] of byParent) {\n items.sort((a, b) => b.index - a.index);\n for (const { index, name, replacement, node } of items) {\n if (replacement === undefined) continue;\n const snippetTree = parseMdxWithDeps(replacement, deps);\n const wrapper: MdxJsxFlowElement = {\n type: 'mdxJsxFlowElement',\n name: 'Snippet',\n attributes: [{ type: 'mdxJsxAttribute', name: 'name', value: name }],\n children: snippetTree.children as MdxJsxFlowElement['children'],\n };\n if ('position' in node && node.position) {\n (wrapper as { position?: unknown }).position = node.position;\n }\n (parent.children as RootContent[]).splice(\n index,\n 1,\n wrapper as RootContent,\n );\n }\n }\n};\n\nconst applyFilterTransforms = (\n tree: Root,\n options: Record<string, string> | undefined,\n): void => {\n const iac = options?.iac;\n\n const transform = (parent: JsxParent): void => {\n const children = parent.children as RootContent[];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (!isJsxElement(child)) continue;\n\n if (child.name === 'OptionFilter') {\n const when = parseWhenAttr(child);\n if (!when) continue; // malformed — leave alone\n // Recurse first so nested filters collapse before we replace this wrapper.\n transform(child);\n const not = hasBareAttr(child, 'not');\n if (options) {\n const replacement = evaluatePredicate(when, not, options)\n ? (child.children as RootContent[])\n : [];\n children.splice(i, 1, ...replacement);\n i += replacement.length - 1;\n } else {\n children.splice(i, 1, buildNoteQuote(child, when, not));\n }\n continue;\n }\n\n if (child.name === 'Infrastructure') {\n if (iac === 'cdk' || iac === 'terraform') {\n const body = selectInfrastructureSlot(child, iac);\n const pseudo: MdxJsxFlowElement = {\n type: 'mdxJsxFlowElement',\n name: 'tmp',\n attributes: [],\n children: body as MdxJsxFlowElement['children'],\n };\n transform(pseudo);\n children.splice(i, 1, ...(pseudo.children as RootContent[]));\n i--;\n continue;\n }\n // No iac → keep both slots so readers / agents see both variants.\n transform(child);\n continue;\n }\n\n if (child.name === 'Tabs' && child.type === 'mdxJsxFlowElement') {\n transform(child);\n const dropped = applyTabsFilter(child, options);\n if (dropped === 'empty') {\n children.splice(i, 1);\n i--;\n continue;\n }\n if (dropped === 'inline') {\n const survivor = (child.children as RootContent[]).find(\n (c): c is MdxJsxFlowElement =>\n isJsxElement(c) && c.name === 'TabItem',\n )!;\n const body = survivor.children as RootContent[];\n children.splice(i, 1, ...body);\n i += body.length - 1;\n continue;\n }\n continue;\n }\n\n transform(child);\n }\n };\n transform(tree);\n};\n\nconst selectInfrastructureSlot = (\n node: JsxElement,\n iac: 'cdk' | 'terraform',\n): RootContent[] => {\n const slotName = iac.toLowerCase();\n const frag = (node.children as RootContent[]).find(\n (c): c is MdxJsxFlowElement =>\n isJsxElement(c) &&\n c.name === 'Fragment' &&\n readStringAttr(c, 'slot') === slotName,\n );\n return (frag?.children as RootContent[]) ?? [];\n};\n\n/**\n * Prune TabItems whose `_filter` doesn't match `options`. Returns:\n * - `'empty'` if the <Tabs> now has no <TabItem>s — caller drops it.\n * - `'inline'` if exactly one filtered <TabItem> survived — caller\n * inlines the body so agents see just the picked variant.\n * - `'keep'` otherwise.\n */\nconst applyTabsFilter = (\n tabs: MdxJsxFlowElement,\n options: Record<string, string> | undefined,\n): 'empty' | 'inline' | 'keep' => {\n const children = tabs.children as RootContent[];\n const surviving: RootContent[] = [];\n let anyFiltered = false;\n for (const child of children) {\n if (!isJsxElement(child) || child.name !== 'TabItem') {\n surviving.push(child);\n continue;\n }\n const filterEstree = readEstreeAttr(child, '_filter');\n if (!filterEstree) {\n surviving.push(child);\n continue;\n }\n anyFiltered = true;\n let predicate: Predicate;\n try {\n predicate = parseWhenExpression(filterEstree as never);\n } catch {\n stripFilterAttr(child);\n surviving.push(child);\n continue;\n }\n if (!options || evaluatePredicate(predicate, false, options)) {\n stripFilterAttr(child);\n surviving.push(child);\n }\n }\n if (anyFiltered) {\n tabs.children = surviving as MdxJsxFlowElement['children'];\n }\n const tabItems = surviving.filter(\n (c) => isJsxElement(c) && c.name === 'TabItem',\n );\n if (tabItems.length === 0 && surviving.length === 0) return 'empty';\n if (anyFiltered && tabItems.length === 1) return 'inline';\n return 'keep';\n};\n\nconst stripFilterAttr = (el: JsxElement): void => {\n el.attributes = el.attributes.filter(\n (a) => !(a.type === 'mdxJsxAttribute' && a.name === '_filter'),\n );\n};\n\n/**\n * `> [!NOTE] Only when …` blockquote. The alert header goes through as an\n * `html` node so remark-stringify doesn't escape the `[`/`]` brackets —\n * downstream agents match on the literal GitHub alert syntax.\n */\nconst buildNoteQuote = (\n source: JsxElement,\n predicate: Predicate,\n not: boolean,\n): RootContent => {\n const marker = describePredicate(predicate, not);\n const description = readStringAttr(source, 'description');\n const headerLines = description\n ? [`[!NOTE] ${marker}`, description]\n : [`[!NOTE] ${marker}`];\n const headerNodes: RootContent[] = headerLines.map(\n (line) => ({ type: 'html', value: line }) as RootContent,\n );\n return {\n type: 'blockquote',\n children: [...headerNodes, ...(source.children as RootContent[])] as never,\n } as RootContent;\n};\n\nconst parseWhenAttr = (node: JsxElement): Predicate | undefined => {\n const estree = readEstreeAttr(node, 'when');\n if (!estree) return undefined;\n try {\n return parseWhenExpression(estree as never);\n } catch {\n return undefined;\n }\n};\n\nconst applyComponentTransforms = (\n tree: Root,\n opts: PipelineOptions,\n deps: RemarkDeps,\n): void => {\n const pm = opts.packageManager ?? 'pnpm';\n const transform = (parent: JsxParent): void => {\n const children = parent.children as RootContent[];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (!isJsxElement(child)) continue;\n const replacement = renderComponent(child, opts, pm, deps);\n if (replacement !== undefined) {\n children.splice(i, 1, ...replacement);\n i += replacement.length - 1;\n continue;\n }\n transform(child);\n }\n };\n transform(tree);\n};\n\nconst renderComponent = (\n node: JsxElement,\n opts: PipelineOptions,\n pm: string,\n deps: RemarkDeps,\n): RootContent[] | undefined => {\n switch (node.name) {\n case 'NxCommands': {\n const commands = readCommandsAttr(node);\n if (!commands) return undefined;\n return [\n codeBlock(\n commands\n .map((c) => buildNxCommand(c, opts.packageManager))\n .join('\\n'),\n ),\n ];\n }\n case 'RunGenerator': {\n const generatorId = readStringAttr(node, 'generator');\n if (!generatorId) return undefined;\n const schema = findSchema(opts.generators, generatorId);\n if (!schema) return undefined;\n return parseMarkdownFragment(\n renderGeneratorCommand(generatorId, schema, opts.packageManager),\n deps,\n );\n }\n case 'GeneratorParameters': {\n const generatorId = readStringAttr(node, 'generator');\n if (!generatorId) return undefined;\n const schema = findSchema(opts.generators, generatorId);\n if (!schema) return undefined;\n return parseMarkdownFragment(renderSchema(schema), deps);\n }\n case 'CreateNxWorkspaceCommand': {\n const workspace = readStringAttr(node, 'workspace');\n if (!workspace) return undefined;\n const iac = readStringAttr(node, 'iac') as\n | 'cdk'\n | 'terraform'\n | undefined;\n return [codeBlock(buildCreateNxWorkspaceCommand(pm, workspace, iac))];\n }\n case 'InstallCommand': {\n const pkg =\n readStringAttr(node, 'pkg') ?? readExpressionAttr(node, 'pkg');\n if (!pkg) return undefined;\n return [\n codeBlock(buildInstallCommand(pm, pkg, hasBareAttr(node, 'dev'))),\n ];\n }\n case 'PackageManagerShortCommand': {\n const commands = readCommandsAttr(node);\n if (!commands) return undefined;\n return [\n codeBlock(\n commands\n .map((c) => buildPackageManagerShortCommand(pm, c))\n .join('\\n'),\n ),\n ];\n }\n case 'PackageManagerExecCommand': {\n const commands = readCommandsAttr(node);\n if (!commands) return undefined;\n return [\n codeBlock(\n commands.map((c) => buildPackageManagerExecCommand(pm, c)).join('\\n'),\n ),\n ];\n }\n default:\n return undefined;\n }\n};\n\nconst codeBlock = (body: string): RootContent => ({\n type: 'code',\n lang: 'bash',\n value: body,\n});\n\nconst parseMarkdownFragment = (\n markdown: string,\n deps: RemarkDeps,\n): RootContent[] => {\n const fragTree = deps.unified().use(deps.remarkParse).parse(markdown) as Root;\n return fragTree.children as RootContent[];\n};\n\nconst findSchema = (\n generators: NxGeneratorInfo[],\n generatorId: string,\n):\n | { properties?: Record<string, unknown>; required?: string[] }\n | undefined => {\n const info = generators.find((g) => g.id === generatorId);\n if (!info) return undefined;\n try {\n return JSON.parse(fs.readFileSync(info.resolvedSchemaPath, 'utf-8'));\n } catch {\n return undefined;\n }\n};\n\n/** Parse the `commands={[…]}` attribute from the estree that remark-mdx\n * attaches to the JSX attribute value. */\nconst readCommandsAttr = (node: JsxElement): string[] | undefined => {\n const estree = readEstreeAttr(node, 'commands');\n if (!estree) return undefined;\n try {\n return extractStringArrayExpression(estree as never);\n } catch {\n return undefined;\n }\n};\n"],"names":["fs","buildCreateNxWorkspaceCommand","buildInstallCommand","buildPackageManagerExecCommand","buildPackageManagerShortCommand","buildNxCommand","renderGeneratorCommand","renderSchema","hasBareAttr","isJsxElement","readEstreeAttr","readExpressionAttr","readStringAttr","describePredicate","evaluatePredicate","extractStringArrayExpression","parseWhenExpression","depsPromise","loadRemarkDeps","unified","remarkParse","default","remarkMdx","remarkStringify","remarkFrontmatter","parseMdxWithDeps","source","deps","use","parse","parseMdx","stringifyMdx","tree","String","bullet","fences","listItemIndent","stringify","postProcessGuideWithRemark","guide","opts","inlineSnippets","applyFilterTransforms","options","applyComponentTransforms","provider","snippetContentProvider","pending","walk","parent","children","i","length","child","name","push","index","node","fetched","Promise","all","map","p","raw","replacement","undefined","processed","trim","byParent","Map","f","bucket","get","set","items","sort","a","b","snippetTree","wrapper","type","attributes","value","position","splice","iac","transform","when","parseWhenAttr","not","buildNoteQuote","body","selectInfrastructureSlot","pseudo","dropped","applyTabsFilter","survivor","find","c","slotName","toLowerCase","frag","tabs","surviving","anyFiltered","filterEstree","predicate","stripFilterAttr","tabItems","filter","el","marker","description","headerLines","headerNodes","line","estree","pm","packageManager","renderComponent","commands","readCommandsAttr","codeBlock","join","generatorId","schema","findSchema","generators","parseMarkdownFragment","workspace","pkg","lang","markdown","fragTree","info","g","id","JSON","readFileSync","resolvedSchemaPath"],"mappings":"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"}
@@ -1,50 +1,35 @@
1
- "use strict";
2
1
  /**
3
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
3
  * SPDX-License-Identifier: Apache-2.0
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.renderGeneratorCommand = exports.renderSchema = exports.buildNxCommand = void 0;
8
- /**
4
+ */ /**
9
5
  * Shared rendering helpers used by the unified/remark-mdx guide pipeline.
10
6
  * Kept in their own module so `generator-info.ts` (which still exports
11
7
  * `renderGeneratorInfo` for list-generators) and the pipeline both render
12
8
  * identical command strings without either re-implementing the other.
13
- */
14
- const commands_1 = require("../utils/commands");
9
+ */ import { buildPackageManagerExecCommand } from "../utils/commands.js";
15
10
  /**
16
11
  * Build an nx command, optionally prefixed by the package manager's exec
17
12
  * wrapper. A bare `nx <command>` is returned when no package manager is
18
13
  * passed, matching the legacy regex-based post-processor's behaviour.
19
- */
20
- const buildNxCommand = (command, pm) => pm ? (0, commands_1.buildPackageManagerExecCommand)(pm, `nx ${command}`) : `nx ${command}`;
21
- exports.buildNxCommand = buildNxCommand;
14
+ */ export const buildNxCommand = (command, pm)=>pm ? buildPackageManagerExecCommand(pm, `nx ${command}`) : `nx ${command}`;
22
15
  /**
23
16
  * Serialise a generator schema's `properties` map to the bullet list
24
17
  * `<GeneratorParameters>` expands to.
25
- */
26
- const renderSchema = (schema) => {
18
+ */ export const renderSchema = (schema)=>{
27
19
  const required = new Set(schema.required ?? []);
28
- return Object.entries(schema.properties ?? {})
29
- .map(([parameter, raw]) => {
20
+ return Object.entries(schema.properties ?? {}).map(([parameter, raw])=>{
30
21
  const p = raw;
31
22
  const enumPart = p.enum ? ` [options: ${p.enum.join(', ')}]` : '';
32
23
  const requiredPart = required.has(parameter) ? ` (required)` : '';
33
24
  return `- ${parameter} [type: ${p.type}]${enumPart}${requiredPart} ${p.description}`;
34
- })
35
- .join('\n');
25
+ }).join('\n');
36
26
  };
37
- exports.renderSchema = renderSchema;
38
27
  /**
39
28
  * Build the fenced-code invocation that `<RunGenerator>` expands to.
40
- */
41
- const renderGeneratorCommand = (generatorId, schema, packageManager) => {
29
+ */ export const renderGeneratorCommand = (generatorId, schema, packageManager)=>{
42
30
  const required = new Set(schema.required ?? []);
43
- const args = Object.keys(schema.properties ?? {})
44
- .filter((k) => required.has(k))
45
- .map((k) => `--${k}=<${k}>`)
46
- .join(' ');
47
- return `\`\`\`bash\n${(0, exports.buildNxCommand)(`g @aws/nx-plugin:${generatorId} --no-interactive ${args}`, packageManager)}\n\`\`\``;
31
+ const args = Object.keys(schema.properties ?? {}).filter((k)=>required.has(k)).map((k)=>`--${k}=<${k}>`).join(' ');
32
+ return `\`\`\`bash\n${buildNxCommand(`g @aws/nx-plugin:${generatorId} --no-interactive ${args}`, packageManager)}\n\`\`\``;
48
33
  };
49
- exports.renderGeneratorCommand = renderGeneratorCommand;
34
+
50
35
  //# sourceMappingURL=guide-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guide-render.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/guide-render.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;;;GAKG;AACH,gDAAmE;AAEnE;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAW,EAAE,EAAE,CAC7D,EAAE,CAAC,CAAC,CAAC,IAAA,yCAA8B,EAAC,EAAE,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC;AADhE,QAAA,cAAc,kBACkD;AAE7E;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,MAG5B,EAAU,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,GAIT,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,SAAS,WAAW,CAAC,CAAC,IAAI,IAAI,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACvF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEF;;GAEG;AACI,MAAM,sBAAsB,GAAG,CACpC,WAAmB,EACnB,MAAqE,EACrE,cAAuB,EACf,EAAE;IACV,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;SAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,eAAe,IAAA,sBAAc,EAClC,oBAAoB,WAAW,qBAAqB,IAAI,EAAE,EAC1D,cAAc,CACf,UAAU,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,sBAAsB,0BAcjC"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/mcp-server/guide-render.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Shared rendering helpers used by the unified/remark-mdx guide pipeline.\n * Kept in their own module so `generator-info.ts` (which still exports\n * `renderGeneratorInfo` for list-generators) and the pipeline both render\n * identical command strings without either re-implementing the other.\n */\nimport { buildPackageManagerExecCommand } from '../utils/commands';\n\n/**\n * Build an nx command, optionally prefixed by the package manager's exec\n * wrapper. A bare `nx <command>` is returned when no package manager is\n * passed, matching the legacy regex-based post-processor's behaviour.\n */\nexport const buildNxCommand = (command: string, pm?: string) =>\n pm ? buildPackageManagerExecCommand(pm, `nx ${command}`) : `nx ${command}`;\n\n/**\n * Serialise a generator schema's `properties` map to the bullet list\n * `<GeneratorParameters>` expands to.\n */\nexport const renderSchema = (schema: {\n properties?: Record<string, unknown>;\n required?: string[];\n}): string => {\n const required = new Set(schema.required ?? []);\n return Object.entries(schema.properties ?? {})\n .map(([parameter, raw]) => {\n const p = raw as {\n type?: string;\n enum?: unknown[];\n description?: string;\n };\n const enumPart = p.enum ? ` [options: ${p.enum.join(', ')}]` : '';\n const requiredPart = required.has(parameter) ? ` (required)` : '';\n return `- ${parameter} [type: ${p.type}]${enumPart}${requiredPart} ${p.description}`;\n })\n .join('\\n');\n};\n\n/**\n * Build the fenced-code invocation that `<RunGenerator>` expands to.\n */\nexport const renderGeneratorCommand = (\n generatorId: string,\n schema: { properties?: Record<string, unknown>; required?: string[] },\n packageManager?: string,\n): string => {\n const required = new Set(schema.required ?? []);\n const args = Object.keys(schema.properties ?? {})\n .filter((k) => required.has(k))\n .map((k) => `--${k}=<${k}>`)\n .join(' ');\n return `\\`\\`\\`bash\\n${buildNxCommand(\n `g @aws/nx-plugin:${generatorId} --no-interactive ${args}`,\n packageManager,\n )}\\n\\`\\`\\``;\n};\n"],"names":["buildPackageManagerExecCommand","buildNxCommand","command","pm","renderSchema","schema","required","Set","Object","entries","properties","map","parameter","raw","p","enumPart","enum","join","requiredPart","has","type","description","renderGeneratorCommand","generatorId","packageManager","args","keys","filter","k"],"mappings":"AAAA;;;CAGC,GAED;;;;;CAKC,GACD,SAASA,8BAA8B,QAAQ,uBAAoB;AAEnE;;;;CAIC,GACD,OAAO,MAAMC,iBAAiB,CAACC,SAAiBC,KAC9CA,KAAKH,+BAA+BG,IAAI,CAAC,GAAG,EAAED,SAAS,IAAI,CAAC,GAAG,EAAEA,SAAS,CAAC;AAE7E;;;CAGC,GACD,OAAO,MAAME,eAAe,CAACC;IAI3B,MAAMC,WAAW,IAAIC,IAAIF,OAAOC,QAAQ,IAAI,EAAE;IAC9C,OAAOE,OAAOC,OAAO,CAACJ,OAAOK,UAAU,IAAI,CAAC,GACzCC,GAAG,CAAC,CAAC,CAACC,WAAWC,IAAI;QACpB,MAAMC,IAAID;QAKV,MAAME,WAAWD,EAAEE,IAAI,GAAG,CAAC,WAAW,EAAEF,EAAEE,IAAI,CAACC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG;QAC/D,MAAMC,eAAeZ,SAASa,GAAG,CAACP,aAAa,CAAC,WAAW,CAAC,GAAG;QAC/D,OAAO,CAAC,EAAE,EAAEA,UAAU,QAAQ,EAAEE,EAAEM,IAAI,CAAC,CAAC,EAAEL,WAAWG,aAAa,CAAC,EAAEJ,EAAEO,WAAW,EAAE;IACtF,GACCJ,IAAI,CAAC;AACV,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMK,yBAAyB,CACpCC,aACAlB,QACAmB;IAEA,MAAMlB,WAAW,IAAIC,IAAIF,OAAOC,QAAQ,IAAI,EAAE;IAC9C,MAAMmB,OAAOjB,OAAOkB,IAAI,CAACrB,OAAOK,UAAU,IAAI,CAAC,GAC5CiB,MAAM,CAAC,CAACC,IAAMtB,SAASa,GAAG,CAACS,IAC3BjB,GAAG,CAAC,CAACiB,IAAM,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,EAC1BX,IAAI,CAAC;IACR,OAAO,CAAC,YAAY,EAAEhB,eACpB,CAAC,iBAAiB,EAAEsB,YAAY,kBAAkB,EAAEE,MAAM,EAC1DD,gBACA,QAAQ,CAAC;AACb,EAAE"}
@@ -1,16 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startMcpServer = void 0;
4
1
  /**
5
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
3
  * SPDX-License-Identifier: Apache-2.0
7
- */
8
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
9
- const server_1 = require("./server");
10
- const startMcpServer = async () => {
11
- const transport = new stdio_js_1.StdioServerTransport();
12
- await (0, server_1.createServer)().connect(transport);
4
+ */ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
+ import { createServer } from "./server.js";
6
+ export const startMcpServer = async ()=>{
7
+ const transport = new StdioServerTransport();
8
+ await createServer().connect(transport);
13
9
  console.error('Nx Plugin for AWS MCP Server listening on STDIO');
14
10
  };
15
- exports.startMcpServer = startMcpServer;
11
+
16
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,wEAAiF;AACjF,qCAAwC;AAEjC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,IAAA,qBAAY,GAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACnE,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/mcp-server/index.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { createServer } from './server';\n\nexport const startMcpServer = async () => {\n const transport = new StdioServerTransport();\n await createServer().connect(transport);\n console.error('Nx Plugin for AWS MCP Server listening on STDIO');\n};\n"],"names":["StdioServerTransport","createServer","startMcpServer","transport","connect","console","error"],"mappings":"AAAA;;;CAGC,GACD,SAASA,oBAAoB,QAAQ,4CAA4C;AACjF,SAASC,YAAY,QAAQ,cAAW;AAExC,OAAO,MAAMC,iBAAiB;IAC5B,MAAMC,YAAY,IAAIH;IACtB,MAAMC,eAAeG,OAAO,CAACD;IAC7BE,QAAQC,KAAK,CAAC;AAChB,EAAE"}
@@ -1,100 +1,82 @@
1
- "use strict";
2
1
  /**
3
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
3
  * SPDX-License-Identifier: Apache-2.0
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.extractFrontmatter = exports.collectFilterableKeysFromJsx = exports.walkJsx = exports.hasBareAttr = exports.readEstreeAttr = exports.readExpressionAttr = exports.readStringAttr = exports.isJsxElement = void 0;
8
- const tslib_1 = require("tslib");
9
- const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
10
- const option_filter_1 = require("./option-filter");
11
- const isJsxElement = (node) => node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement';
12
- exports.isJsxElement = isJsxElement;
13
- const findAttr = (node, name) => node.attributes.find((a) => a.type === 'mdxJsxAttribute' && a.name === name);
14
- const readStringAttr = (node, name) => {
4
+ */ import yaml from "js-yaml";
5
+ import { parseWhenExpression } from "./option-filter.js";
6
+ export const isJsxElement = (node)=>node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement';
7
+ const findAttr = (node, name)=>node.attributes.find((a)=>a.type === 'mdxJsxAttribute' && a.name === name);
8
+ export const readStringAttr = (node, name)=>{
15
9
  const attr = findAttr(node, name);
16
10
  return typeof attr?.value === 'string' ? attr.value : undefined;
17
11
  };
18
- exports.readStringAttr = readStringAttr;
19
- const readExpressionAttr = (node, name) => {
12
+ export const readExpressionAttr = (node, name)=>{
20
13
  const attr = findAttr(node, name);
21
14
  if (attr && typeof attr.value === 'object' && attr.value !== null) {
22
15
  return attr.value.value;
23
16
  }
24
17
  return undefined;
25
18
  };
26
- exports.readExpressionAttr = readExpressionAttr;
27
- const readEstreeAttr = (node, name) => {
19
+ export const readEstreeAttr = (node, name)=>{
28
20
  const attr = findAttr(node, name);
29
21
  if (attr && typeof attr.value === 'object' && attr.value !== null) {
30
22
  return attr.value.data?.estree;
31
23
  }
32
24
  return undefined;
33
25
  };
34
- exports.readEstreeAttr = readEstreeAttr;
35
- const hasBareAttr = (node, name) => node.attributes.some((a) => a.type === 'mdxJsxAttribute' && a.name === name);
36
- exports.hasBareAttr = hasBareAttr;
37
- /** Walk every JSX element in the subtree, pre-order. */
38
- const walkJsx = (parent, visit) => {
26
+ export const hasBareAttr = (node, name)=>node.attributes.some((a)=>a.type === 'mdxJsxAttribute' && a.name === name);
27
+ /** Walk every JSX element in the subtree, pre-order. */ export const walkJsx = (parent, visit)=>{
39
28
  const children = parent.children;
40
- for (const child of children) {
41
- if (!(0, exports.isJsxElement)(child))
42
- continue;
29
+ for (const child of children){
30
+ if (!isJsxElement(child)) continue;
43
31
  visit(child, parent);
44
- (0, exports.walkJsx)(child, visit);
32
+ walkJsx(child, visit);
45
33
  }
46
34
  };
47
- exports.walkJsx = walkJsx;
48
35
  /**
49
36
  * Every option key referenced by `<OptionFilter when>` or
50
37
  * `<TabItem _filter>` in the subtree. Malformed predicates are skipped.
51
- */
52
- const collectFilterableKeysFromJsx = (tree) => {
38
+ */ export const collectFilterableKeysFromJsx = (tree)=>{
53
39
  const keys = new Set();
54
- (0, exports.walkJsx)(tree, (node) => {
55
- const attrName = node.name === 'OptionFilter'
56
- ? 'when'
57
- : node.name === 'TabItem'
58
- ? '_filter'
59
- : undefined;
60
- if (!attrName)
61
- return;
62
- const estree = (0, exports.readEstreeAttr)(node, attrName);
63
- if (!estree)
64
- return;
40
+ walkJsx(tree, (node)=>{
41
+ const attrName = node.name === 'OptionFilter' ? 'when' : node.name === 'TabItem' ? '_filter' : undefined;
42
+ if (!attrName) return;
43
+ const estree = readEstreeAttr(node, attrName);
44
+ if (!estree) return;
65
45
  try {
66
- for (const key of Object.keys((0, option_filter_1.parseWhenExpression)(estree))) {
46
+ for (const key of Object.keys(parseWhenExpression(estree))){
67
47
  keys.add(key);
68
48
  }
69
- }
70
- catch {
71
- // Malformed / partially-typed — skip.
49
+ } catch {
50
+ // Malformed / partially-typed — skip.
72
51
  }
73
52
  });
74
53
  return keys;
75
54
  };
76
- exports.collectFilterableKeysFromJsx = collectFilterableKeysFromJsx;
77
55
  /**
78
56
  * Parse the leading `---…---` YAML frontmatter from an mdast Root produced
79
57
  * with `remark-frontmatter`. Returns `{ data, bodyOffset }` where
80
58
  * `bodyOffset` is the character index after the closing `---` — slice the
81
59
  * original source from it to get the body without re-stringifying the tree.
82
- */
83
- const extractFrontmatter = (tree) => {
84
- const node = tree.children.find((c) => c.type === 'yaml');
85
- if (!node)
86
- return { data: {}, bodyOffset: 0 };
60
+ */ export const extractFrontmatter = (tree)=>{
61
+ const node = tree.children.find((c)=>c.type === 'yaml');
62
+ if (!node) return {
63
+ data: {},
64
+ bodyOffset: 0
65
+ };
87
66
  let parsed;
88
67
  try {
89
- parsed = js_yaml_1.default.load(node.value);
90
- }
91
- catch {
92
- return { data: {}, bodyOffset: node.position?.end.offset ?? 0 };
68
+ parsed = yaml.load(node.value);
69
+ } catch {
70
+ return {
71
+ data: {},
72
+ bodyOffset: node.position?.end.offset ?? 0
73
+ };
93
74
  }
94
- const data = parsed && typeof parsed === 'object' && !Array.isArray(parsed)
95
- ? parsed
96
- : {};
97
- return { data, bodyOffset: node.position?.end.offset ?? 0 };
75
+ const data = parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
76
+ return {
77
+ data,
78
+ bodyOffset: node.position?.end.offset ?? 0
79
+ };
98
80
  };
99
- exports.extractFrontmatter = extractFrontmatter;
81
+
100
82
  //# sourceMappingURL=mdx-ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdx-ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/mdx-ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/mcp-server/mdx-ast.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport yaml from 'js-yaml';\nimport type { Root, RootContent, Yaml } from 'mdast';\nimport type {\n MdxJsxAttribute,\n MdxJsxAttributeValueExpression,\n MdxJsxFlowElement,\n MdxJsxTextElement,\n} from 'mdast-util-mdx-jsx';\nimport { parseWhenExpression } from './option-filter';\n\nexport type JsxParent = Root | MdxJsxFlowElement | MdxJsxTextElement;\nexport type JsxElement = MdxJsxFlowElement | MdxJsxTextElement;\n\nexport const isJsxElement = (node: RootContent): node is JsxElement =>\n node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement';\n\nconst findAttr = (\n node: JsxElement,\n name: string,\n): MdxJsxAttribute | undefined =>\n node.attributes.find(\n (a): a is MdxJsxAttribute =>\n a.type === 'mdxJsxAttribute' && a.name === name,\n );\n\nexport const readStringAttr = (\n node: JsxElement,\n name: string,\n): string | undefined => {\n const attr = findAttr(node, name);\n return typeof attr?.value === 'string' ? attr.value : undefined;\n};\n\nexport const readExpressionAttr = (\n node: JsxElement,\n name: string,\n): string | undefined => {\n const attr = findAttr(node, name);\n if (attr && typeof attr.value === 'object' && attr.value !== null) {\n return (attr.value as MdxJsxAttributeValueExpression).value;\n }\n return undefined;\n};\n\nexport const readEstreeAttr = (\n node: JsxElement,\n name: string,\n): unknown | undefined => {\n const attr = findAttr(node, name);\n if (attr && typeof attr.value === 'object' && attr.value !== null) {\n return (attr.value as MdxJsxAttributeValueExpression).data?.estree;\n }\n return undefined;\n};\n\nexport const hasBareAttr = (node: JsxElement, name: string): boolean =>\n node.attributes.some((a) => a.type === 'mdxJsxAttribute' && a.name === name);\n\n/** Walk every JSX element in the subtree, pre-order. */\nexport const walkJsx = (\n parent: JsxParent,\n visit: (node: JsxElement, parent: JsxParent) => void,\n): void => {\n const children = parent.children as RootContent[];\n for (const child of children) {\n if (!isJsxElement(child)) continue;\n visit(child, parent);\n walkJsx(child, visit);\n }\n};\n\n/**\n * Every option key referenced by `<OptionFilter when>` or\n * `<TabItem _filter>` in the subtree. Malformed predicates are skipped.\n */\nexport const collectFilterableKeysFromJsx = (tree: Root): Set<string> => {\n const keys = new Set<string>();\n walkJsx(tree, (node) => {\n const attrName =\n node.name === 'OptionFilter'\n ? 'when'\n : node.name === 'TabItem'\n ? '_filter'\n : undefined;\n if (!attrName) return;\n const estree = readEstreeAttr(node, attrName);\n if (!estree) return;\n try {\n for (const key of Object.keys(parseWhenExpression(estree as never))) {\n keys.add(key);\n }\n } catch {\n // Malformed / partially-typed — skip.\n }\n });\n return keys;\n};\n\n/**\n * Parse the leading `---…---` YAML frontmatter from an mdast Root produced\n * with `remark-frontmatter`. Returns `{ data, bodyOffset }` where\n * `bodyOffset` is the character index after the closing `---` — slice the\n * original source from it to get the body without re-stringifying the tree.\n */\nexport const extractFrontmatter = (\n tree: Root,\n): { data: Record<string, unknown>; bodyOffset: number } => {\n const node = tree.children.find((c): c is Yaml => c.type === 'yaml');\n if (!node) return { data: {}, bodyOffset: 0 };\n let parsed: unknown;\n try {\n parsed = yaml.load(node.value);\n } catch {\n return { data: {}, bodyOffset: node.position?.end.offset ?? 0 };\n }\n const data =\n parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : {};\n return { data, bodyOffset: node.position?.end.offset ?? 0 };\n};\n"],"names":["yaml","parseWhenExpression","isJsxElement","node","type","findAttr","name","attributes","find","a","readStringAttr","attr","value","undefined","readExpressionAttr","readEstreeAttr","data","estree","hasBareAttr","some","walkJsx","parent","visit","children","child","collectFilterableKeysFromJsx","tree","keys","Set","attrName","key","Object","add","extractFrontmatter","c","bodyOffset","parsed","load","position","end","offset","Array","isArray"],"mappings":"AAAA;;;CAGC,GAED,OAAOA,UAAU,UAAU;AAQ3B,SAASC,mBAAmB,QAAQ,qBAAkB;AAKtD,OAAO,MAAMC,eAAe,CAACC,OAC3BA,KAAKC,IAAI,KAAK,uBAAuBD,KAAKC,IAAI,KAAK,oBAAoB;AAEzE,MAAMC,WAAW,CACfF,MACAG,OAEAH,KAAKI,UAAU,CAACC,IAAI,CAClB,CAACC,IACCA,EAAEL,IAAI,KAAK,qBAAqBK,EAAEH,IAAI,KAAKA;AAGjD,OAAO,MAAMI,iBAAiB,CAC5BP,MACAG;IAEA,MAAMK,OAAON,SAASF,MAAMG;IAC5B,OAAO,OAAOK,MAAMC,UAAU,WAAWD,KAAKC,KAAK,GAAGC;AACxD,EAAE;AAEF,OAAO,MAAMC,qBAAqB,CAChCX,MACAG;IAEA,MAAMK,OAAON,SAASF,MAAMG;IAC5B,IAAIK,QAAQ,OAAOA,KAAKC,KAAK,KAAK,YAAYD,KAAKC,KAAK,KAAK,MAAM;QACjE,OAAO,AAACD,KAAKC,KAAK,CAAoCA,KAAK;IAC7D;IACA,OAAOC;AACT,EAAE;AAEF,OAAO,MAAME,iBAAiB,CAC5BZ,MACAG;IAEA,MAAMK,OAAON,SAASF,MAAMG;IAC5B,IAAIK,QAAQ,OAAOA,KAAKC,KAAK,KAAK,YAAYD,KAAKC,KAAK,KAAK,MAAM;QACjE,OAAO,AAACD,KAAKC,KAAK,CAAoCI,IAAI,EAAEC;IAC9D;IACA,OAAOJ;AACT,EAAE;AAEF,OAAO,MAAMK,cAAc,CAACf,MAAkBG,OAC5CH,KAAKI,UAAU,CAACY,IAAI,CAAC,CAACV,IAAMA,EAAEL,IAAI,KAAK,qBAAqBK,EAAEH,IAAI,KAAKA,MAAM;AAE/E,sDAAsD,GACtD,OAAO,MAAMc,UAAU,CACrBC,QACAC;IAEA,MAAMC,WAAWF,OAAOE,QAAQ;IAChC,KAAK,MAAMC,SAASD,SAAU;QAC5B,IAAI,CAACrB,aAAasB,QAAQ;QAC1BF,MAAME,OAAOH;QACbD,QAAQI,OAAOF;IACjB;AACF,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMG,+BAA+B,CAACC;IAC3C,MAAMC,OAAO,IAAIC;IACjBR,QAAQM,MAAM,CAACvB;QACb,MAAM0B,WACJ1B,KAAKG,IAAI,KAAK,iBACV,SACAH,KAAKG,IAAI,KAAK,YACZ,YACAO;QACR,IAAI,CAACgB,UAAU;QACf,MAAMZ,SAASF,eAAeZ,MAAM0B;QACpC,IAAI,CAACZ,QAAQ;QACb,IAAI;YACF,KAAK,MAAMa,OAAOC,OAAOJ,IAAI,CAAC1B,oBAAoBgB,SAAmB;gBACnEU,KAAKK,GAAG,CAACF;YACX;QACF,EAAE,OAAM;QACN,sCAAsC;QACxC;IACF;IACA,OAAOH;AACT,EAAE;AAEF;;;;;CAKC,GACD,OAAO,MAAMM,qBAAqB,CAChCP;IAEA,MAAMvB,OAAOuB,KAAKH,QAAQ,CAACf,IAAI,CAAC,CAAC0B,IAAiBA,EAAE9B,IAAI,KAAK;IAC7D,IAAI,CAACD,MAAM,OAAO;QAAEa,MAAM,CAAC;QAAGmB,YAAY;IAAE;IAC5C,IAAIC;IACJ,IAAI;QACFA,SAASpC,KAAKqC,IAAI,CAAClC,KAAKS,KAAK;IAC/B,EAAE,OAAM;QACN,OAAO;YAAEI,MAAM,CAAC;YAAGmB,YAAYhC,KAAKmC,QAAQ,EAAEC,IAAIC,UAAU;QAAE;IAChE;IACA,MAAMxB,OACJoB,UAAU,OAAOA,WAAW,YAAY,CAACK,MAAMC,OAAO,CAACN,UAClDA,SACD,CAAC;IACP,OAAO;QAAEpB;QAAMmB,YAAYhC,KAAKmC,QAAQ,EAAEC,IAAIC,UAAU;IAAE;AAC5D,EAAE"}
@@ -1,21 +1,22 @@
1
- "use strict";
2
1
  /**
3
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
3
  * SPDX-License-Identifier: Apache-2.0
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.extractStringArrayExpression = exports.describePredicate = exports.evaluatePredicate = exports.parseWhenExpression = void 0;
8
- /**
4
+ */ /**
5
+ * Predicate helpers for `<OptionFilter when>` / `<TabItem _filter>`.
6
+ * Parses the estree AST that remark-mdx attaches to each attribute value
7
+ * — we never evaluate arbitrary JS; only string/number/boolean literals and
8
+ * arrays of them are allowed so the same helpers can run in the browser
9
+ * and in the user's shell.
10
+ */ /**
9
11
  * Turn the `data.estree` of an `MdxJsxAttributeValueExpression` into a
10
12
  * `Predicate`. The estree is a Program wrapping a single ObjectExpression.
11
- */
12
- const parseWhenExpression = (estree) => {
13
+ */ export const parseWhenExpression = (estree)=>{
13
14
  const expression = unwrapProgram(estree);
14
15
  if (expression.type !== 'ObjectExpression') {
15
16
  throw new Error(`[option-filter] Expected object literal in 'when' prop, got ${expression.type}`);
16
17
  }
17
18
  const result = {};
18
- for (const prop of expression.properties) {
19
+ for (const prop of expression.properties){
19
20
  if (prop.type !== 'Property') {
20
21
  throw new Error(`[option-filter] Unsupported entry type '${prop.type}' in 'when' prop`);
21
22
  }
@@ -23,97 +24,82 @@ const parseWhenExpression = (estree) => {
23
24
  }
24
25
  return result;
25
26
  };
26
- exports.parseWhenExpression = parseWhenExpression;
27
27
  /**
28
28
  * AND across keys, OR within a key's values, `not` negates. A key not
29
29
  * present in `options` is "no opinion". A predicate whose keys have no
30
30
  * intersection with `options` short-circuits to true.
31
- */
32
- const evaluatePredicate = (predicate, not, options) => {
31
+ */ export const evaluatePredicate = (predicate, not, options)=>{
33
32
  let matched = true;
34
33
  let anyKeyTested = false;
35
- for (const [key, values] of Object.entries(predicate)) {
34
+ for (const [key, values] of Object.entries(predicate)){
36
35
  const selected = options[key];
37
- if (selected === undefined)
38
- continue;
36
+ if (selected === undefined) continue;
39
37
  anyKeyTested = true;
40
38
  if (!values.includes(selected)) {
41
39
  matched = false;
42
40
  break;
43
41
  }
44
42
  }
45
- if (!anyKeyTested)
46
- return true;
43
+ if (!anyKeyTested) return true;
47
44
  return not ? !matched : matched;
48
45
  };
49
- exports.evaluatePredicate = evaluatePredicate;
50
- /** Short human label used on the docs pill and in the `> [!NOTE] Only when …` marker. */
51
- const describePredicate = (predicate, not) => {
52
- const parts = Object.entries(predicate).map(([k, vs]) => `${k} = ${vs.join(' | ')}`);
46
+ /** Short human label used on the docs pill and in the `> [!NOTE] Only when …` marker. */ export const describePredicate = (predicate, not)=>{
47
+ const parts = Object.entries(predicate).map(([k, vs])=>`${k} = ${vs.join(' | ')}`);
53
48
  return `${not ? 'Not when ' : 'Only when '}${parts.join(', ')}`;
54
49
  };
55
- exports.describePredicate = describePredicate;
56
- const unwrapProgram = (estree) => {
57
- if (estree.type !== 'Program')
58
- return estree;
50
+ const unwrapProgram = (estree)=>{
51
+ if (estree.type !== 'Program') return estree;
59
52
  const program = estree;
60
- if (program.body.length !== 1)
61
- return estree;
53
+ if (program.body.length !== 1) return estree;
62
54
  const stmt = program.body[0];
63
- return stmt.type === 'ExpressionStatement'
64
- ? stmt.expression
65
- : estree;
55
+ return stmt.type === 'ExpressionStatement' ? stmt.expression : estree;
66
56
  };
67
- const extractKey = (prop) => {
57
+ const extractKey = (prop)=>{
68
58
  const k = prop.key;
69
- if (k.type === 'Identifier')
70
- return k.name;
71
- if (k.type === 'Literal' && typeof k.value === 'string')
72
- return k.value;
59
+ if (k.type === 'Identifier') return k.name;
60
+ if (k.type === 'Literal' && typeof k.value === 'string') return k.value;
73
61
  throw new Error(`[option-filter] Unsupported key type '${k.type}' in 'when' prop`);
74
62
  };
75
- const extractValues = (value) => {
63
+ const extractValues = (value)=>{
76
64
  if (value.type === 'ArrayExpression') {
77
65
  const arr = value;
78
- return arr.elements.map((el) => {
66
+ return arr.elements.map((el)=>{
79
67
  if (el === null || el.type === 'SpreadElement') {
80
68
  throw new Error(`[option-filter] Unsupported array element in 'when' prop`);
81
69
  }
82
70
  return extractScalar(el);
83
71
  });
84
72
  }
85
- return [extractScalar(value)];
73
+ return [
74
+ extractScalar(value)
75
+ ];
86
76
  };
87
77
  /**
88
78
  * Extract a `string[]` from the estree of an attribute-value expression
89
79
  * like `{['a', 'b']}`. Used by JSX attribute readers (e.g. the
90
80
  * `commands={[...]}` prop on <NxCommands>). Throws if anything other than
91
81
  * string / number / boolean literal array elements are encountered.
92
- */
93
- const extractStringArrayExpression = (estree) => {
82
+ */ export const extractStringArrayExpression = (estree)=>{
94
83
  const expression = unwrapProgram(estree);
95
84
  if (expression.type !== 'ArrayExpression') {
96
85
  throw new Error(`[option-filter] Expected array literal, got ${expression.type}`);
97
86
  }
98
87
  const arr = expression;
99
- return arr.elements.map((el) => {
88
+ return arr.elements.map((el)=>{
100
89
  if (el === null || el.type === 'SpreadElement') {
101
90
  throw new Error(`[option-filter] Unsupported array element`);
102
91
  }
103
92
  return extractScalar(el);
104
93
  });
105
94
  };
106
- exports.extractStringArrayExpression = extractStringArrayExpression;
107
- const extractScalar = (node) => {
95
+ const extractScalar = (node)=>{
108
96
  if (node.type === 'Literal') {
109
97
  const lit = node;
110
- if (typeof lit.value === 'string' ||
111
- typeof lit.value === 'number' ||
112
- typeof lit.value === 'boolean') {
98
+ if (typeof lit.value === 'string' || typeof lit.value === 'number' || typeof lit.value === 'boolean') {
113
99
  return String(lit.value);
114
100
  }
115
101
  }
116
- throw new Error(`[option-filter] Unsupported value type '${node.type}' in 'when' prop. ` +
117
- 'Use string, number, boolean literals or arrays of them.');
102
+ throw new Error(`[option-filter] Unsupported value type '${node.type}' in 'when' prop. ` + 'Use string, number, boolean literals or arrays of them.');
118
103
  };
104
+
119
105
  //# sourceMappingURL=option-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"option-filter.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/option-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/mcp-server/option-filter.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Predicate helpers for `<OptionFilter when>` / `<TabItem _filter>`.\n * Parses the estree AST that remark-mdx attaches to each attribute value\n * — we never evaluate arbitrary JS; only string/number/boolean literals and\n * arrays of them are allowed so the same helpers can run in the browser\n * and in the user's shell.\n */\n\nimport type {\n ArrayExpression,\n Node as EstreeNode,\n Literal,\n Program,\n Property,\n} from 'estree';\n\nexport type Predicate = Record<string, string[]>;\n\n/**\n * Turn the `data.estree` of an `MdxJsxAttributeValueExpression` into a\n * `Predicate`. The estree is a Program wrapping a single ObjectExpression.\n */\nexport const parseWhenExpression = (estree: EstreeNode): Predicate => {\n const expression = unwrapProgram(estree);\n if (expression.type !== 'ObjectExpression') {\n throw new Error(\n `[option-filter] Expected object literal in 'when' prop, got ${expression.type}`,\n );\n }\n const result: Predicate = {};\n for (const prop of expression.properties) {\n if (prop.type !== 'Property') {\n throw new Error(\n `[option-filter] Unsupported entry type '${prop.type}' in 'when' prop`,\n );\n }\n result[extractKey(prop)] = extractValues(prop.value);\n }\n return result;\n};\n\n/**\n * AND across keys, OR within a key's values, `not` negates. A key not\n * present in `options` is \"no opinion\". A predicate whose keys have no\n * intersection with `options` short-circuits to true.\n */\nexport const evaluatePredicate = (\n predicate: Predicate,\n not: boolean,\n options: Record<string, string>,\n): boolean => {\n let matched = true;\n let anyKeyTested = false;\n for (const [key, values] of Object.entries(predicate)) {\n const selected = options[key];\n if (selected === undefined) continue;\n anyKeyTested = true;\n if (!values.includes(selected)) {\n matched = false;\n break;\n }\n }\n if (!anyKeyTested) return true;\n return not ? !matched : matched;\n};\n\n/** Short human label used on the docs pill and in the `> [!NOTE] Only when …` marker. */\nexport const describePredicate = (\n predicate: Predicate,\n not: boolean,\n): string => {\n const parts = Object.entries(predicate).map(\n ([k, vs]) => `${k} = ${vs.join(' | ')}`,\n );\n return `${not ? 'Not when ' : 'Only when '}${parts.join(', ')}`;\n};\n\nconst unwrapProgram = (estree: EstreeNode): EstreeNode => {\n if (estree.type !== 'Program') return estree;\n const program = estree as Program;\n if (program.body.length !== 1) return estree;\n const stmt = program.body[0];\n return stmt.type === 'ExpressionStatement'\n ? (stmt.expression as EstreeNode)\n : estree;\n};\n\nconst extractKey = (prop: Property): string => {\n const k = prop.key;\n if (k.type === 'Identifier') return k.name;\n if (k.type === 'Literal' && typeof k.value === 'string') return k.value;\n throw new Error(\n `[option-filter] Unsupported key type '${k.type}' in 'when' prop`,\n );\n};\n\nconst extractValues = (value: Property['value']): string[] => {\n if (value.type === 'ArrayExpression') {\n const arr = value as ArrayExpression;\n return arr.elements.map((el) => {\n if (el === null || el.type === 'SpreadElement') {\n throw new Error(\n `[option-filter] Unsupported array element in 'when' prop`,\n );\n }\n return extractScalar(el);\n });\n }\n return [extractScalar(value)];\n};\n\n/**\n * Extract a `string[]` from the estree of an attribute-value expression\n * like `{['a', 'b']}`. Used by JSX attribute readers (e.g. the\n * `commands={[...]}` prop on <NxCommands>). Throws if anything other than\n * string / number / boolean literal array elements are encountered.\n */\nexport const extractStringArrayExpression = (estree: EstreeNode): string[] => {\n const expression = unwrapProgram(estree);\n if (expression.type !== 'ArrayExpression') {\n throw new Error(\n `[option-filter] Expected array literal, got ${expression.type}`,\n );\n }\n const arr = expression as ArrayExpression;\n return arr.elements.map((el) => {\n if (el === null || el.type === 'SpreadElement') {\n throw new Error(`[option-filter] Unsupported array element`);\n }\n return extractScalar(el);\n });\n};\n\nconst extractScalar = (node: EstreeNode): string => {\n if (node.type === 'Literal') {\n const lit = node as Literal;\n if (\n typeof lit.value === 'string' ||\n typeof lit.value === 'number' ||\n typeof lit.value === 'boolean'\n ) {\n return String(lit.value);\n }\n }\n throw new Error(\n `[option-filter] Unsupported value type '${node.type}' in 'when' prop. ` +\n 'Use string, number, boolean literals or arrays of them.',\n );\n};\n"],"names":["parseWhenExpression","estree","expression","unwrapProgram","type","Error","result","prop","properties","extractKey","extractValues","value","evaluatePredicate","predicate","not","options","matched","anyKeyTested","key","values","Object","entries","selected","undefined","includes","describePredicate","parts","map","k","vs","join","program","body","length","stmt","name","arr","elements","el","extractScalar","extractStringArrayExpression","node","lit","String"],"mappings":"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"}