@frontmcp/sdk 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +30 -18
  2. package/package.json +20 -5
  3. package/src/app/app.registry.d.ts +3 -2
  4. package/src/app/app.registry.js +3 -1
  5. package/src/app/app.registry.js.map +1 -1
  6. package/src/app/instances/app.local.instance.js +2 -2
  7. package/src/app/instances/app.local.instance.js.map +1 -1
  8. package/src/auth/auth.registry.d.ts +34 -2
  9. package/src/auth/auth.registry.js +162 -24
  10. package/src/auth/auth.registry.js.map +1 -1
  11. package/src/auth/auth.utils.js +8 -9
  12. package/src/auth/auth.utils.js.map +1 -1
  13. package/src/auth/authorization/authorization.class.d.ts +125 -0
  14. package/src/auth/authorization/authorization.class.js +224 -0
  15. package/src/auth/authorization/authorization.class.js.map +1 -0
  16. package/src/auth/authorization/authorization.types.d.ts +300 -0
  17. package/src/auth/authorization/authorization.types.js +79 -0
  18. package/src/auth/authorization/authorization.types.js.map +1 -0
  19. package/src/auth/authorization/index.d.ts +5 -0
  20. package/src/auth/authorization/index.js +19 -0
  21. package/src/auth/authorization/index.js.map +1 -0
  22. package/src/auth/authorization/orchestrated.authorization.d.ts +242 -0
  23. package/src/auth/authorization/orchestrated.authorization.js +306 -0
  24. package/src/auth/authorization/orchestrated.authorization.js.map +1 -0
  25. package/src/auth/authorization/public.authorization.d.ts +91 -0
  26. package/src/auth/authorization/public.authorization.js +132 -0
  27. package/src/auth/authorization/public.authorization.js.map +1 -0
  28. package/src/auth/authorization/transparent.authorization.d.ts +130 -0
  29. package/src/auth/authorization/transparent.authorization.js +147 -0
  30. package/src/auth/authorization/transparent.authorization.js.map +1 -0
  31. package/src/auth/consent/consent.types.d.ts +111 -0
  32. package/src/auth/consent/consent.types.js +119 -0
  33. package/src/auth/consent/consent.types.js.map +1 -0
  34. package/src/auth/consent/index.d.ts +1 -0
  35. package/src/auth/consent/index.js +13 -0
  36. package/src/auth/consent/index.js.map +1 -0
  37. package/src/auth/detection/auth-provider-detection.d.ts +84 -0
  38. package/src/auth/detection/auth-provider-detection.js +230 -0
  39. package/src/auth/detection/auth-provider-detection.js.map +1 -0
  40. package/src/auth/detection/index.d.ts +1 -0
  41. package/src/auth/detection/index.js +15 -0
  42. package/src/auth/detection/index.js.map +1 -0
  43. package/src/auth/flows/auth.verify.flow.d.ts +110 -0
  44. package/src/auth/flows/auth.verify.flow.js +379 -0
  45. package/src/auth/flows/auth.verify.flow.js.map +1 -0
  46. package/src/auth/flows/oauth.authorize.flow.d.ts +118 -164
  47. package/src/auth/flows/oauth.authorize.flow.js +701 -33
  48. package/src/auth/flows/oauth.authorize.flow.js.map +1 -1
  49. package/src/auth/flows/oauth.callback.flow.d.ts +117 -0
  50. package/src/auth/flows/oauth.callback.flow.js +357 -0
  51. package/src/auth/flows/oauth.callback.flow.js.map +1 -0
  52. package/src/auth/flows/oauth.register.flow.d.ts +32 -125
  53. package/src/auth/flows/oauth.token.flow.d.ts +52 -154
  54. package/src/auth/flows/oauth.token.flow.js +193 -55
  55. package/src/auth/flows/oauth.token.flow.js.map +1 -1
  56. package/src/auth/flows/session.verify.flow.d.ts +66 -321
  57. package/src/auth/flows/session.verify.flow.js +107 -18
  58. package/src/auth/flows/session.verify.flow.js.map +1 -1
  59. package/src/auth/flows/well-known.jwks.flow.d.ts +34 -205
  60. package/src/auth/flows/well-known.jwks.flow.js +15 -8
  61. package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
  62. package/src/auth/flows/well-known.oauth-authorization-server.flow.d.ts +48 -223
  63. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +2 -3
  64. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +1 -1
  65. package/src/auth/flows/well-known.prm.flow.d.ts +19 -120
  66. package/src/auth/flows/well-known.prm.flow.js +3 -4
  67. package/src/auth/flows/well-known.prm.flow.js.map +1 -1
  68. package/src/auth/instances/instance.local-primary-auth.d.ts +91 -4
  69. package/src/auth/instances/instance.local-primary-auth.js +236 -6
  70. package/src/auth/instances/instance.local-primary-auth.js.map +1 -1
  71. package/src/auth/instances/instance.remote-primary-auth.d.ts +4 -3
  72. package/src/auth/instances/instance.remote-primary-auth.js +2 -2
  73. package/src/auth/instances/instance.remote-primary-auth.js.map +1 -1
  74. package/src/auth/session/authorization-vault.d.ts +611 -0
  75. package/src/auth/session/authorization-vault.js +817 -0
  76. package/src/auth/session/authorization-vault.js.map +1 -0
  77. package/src/auth/session/authorization.store.d.ts +301 -0
  78. package/src/auth/session/authorization.store.js +323 -0
  79. package/src/auth/session/authorization.store.js.map +1 -0
  80. package/src/auth/session/encrypted-authorization-vault.d.ts +181 -0
  81. package/src/auth/session/encrypted-authorization-vault.js +493 -0
  82. package/src/auth/session/encrypted-authorization-vault.js.map +1 -0
  83. package/src/auth/session/index.d.ts +4 -4
  84. package/src/auth/session/index.js +11 -7
  85. package/src/auth/session/index.js.map +1 -1
  86. package/src/auth/session/session.schema.d.ts +1 -1
  87. package/src/auth/session/session.service.d.ts +1 -1
  88. package/src/auth/session/transport-session.manager.d.ts +101 -0
  89. package/src/auth/session/transport-session.manager.js +300 -0
  90. package/src/auth/session/transport-session.manager.js.map +1 -0
  91. package/src/auth/session/transport-session.types.d.ts +457 -0
  92. package/src/auth/session/transport-session.types.js +110 -0
  93. package/src/auth/session/transport-session.types.js.map +1 -0
  94. package/src/auth/session/utils/session-id.utils.d.ts +14 -2
  95. package/src/auth/session/utils/session-id.utils.js +68 -19
  96. package/src/auth/session/utils/session-id.utils.js.map +1 -1
  97. package/src/auth/session/vault-encryption.d.ts +189 -0
  98. package/src/auth/session/vault-encryption.js +263 -0
  99. package/src/auth/session/vault-encryption.js.map +1 -0
  100. package/src/auth/ui/base-layout.d.ts +188 -0
  101. package/src/auth/ui/base-layout.js +292 -0
  102. package/src/auth/ui/base-layout.js.map +1 -0
  103. package/src/auth/ui/htmx-templates.d.ts +135 -0
  104. package/src/auth/ui/htmx-templates.js +433 -0
  105. package/src/auth/ui/htmx-templates.js.map +1 -0
  106. package/src/auth/ui/index.d.ts +11 -0
  107. package/src/auth/ui/index.js +35 -0
  108. package/src/auth/ui/index.js.map +1 -0
  109. package/src/auth/utils/audience.validator.d.ts +129 -0
  110. package/src/auth/utils/audience.validator.js +196 -0
  111. package/src/auth/utils/audience.validator.js.map +1 -0
  112. package/src/auth/utils/index.d.ts +2 -0
  113. package/src/auth/utils/index.js +7 -0
  114. package/src/auth/utils/index.js.map +1 -0
  115. package/src/auth/utils/www-authenticate.utils.d.ts +97 -0
  116. package/src/auth/utils/www-authenticate.utils.js +183 -0
  117. package/src/auth/utils/www-authenticate.utils.js.map +1 -0
  118. package/src/common/common.schema.d.ts +2 -16
  119. package/src/common/constants.d.ts +3 -0
  120. package/src/common/constants.js +6 -1
  121. package/src/common/constants.js.map +1 -1
  122. package/src/common/decorators/decorator-utils.d.ts +131 -0
  123. package/src/common/decorators/decorator-utils.js +195 -0
  124. package/src/common/decorators/decorator-utils.js.map +1 -0
  125. package/src/common/decorators/front-mcp.decorator.js +3 -2
  126. package/src/common/decorators/front-mcp.decorator.js.map +1 -1
  127. package/src/common/decorators/hook.decorator.d.ts +58 -2
  128. package/src/common/decorators/hook.decorator.js +127 -17
  129. package/src/common/decorators/hook.decorator.js.map +1 -1
  130. package/src/common/decorators/plugin.decorator.d.ts +1 -1
  131. package/src/common/decorators/plugin.decorator.js +11 -10
  132. package/src/common/decorators/plugin.decorator.js.map +1 -1
  133. package/src/common/decorators/resource.decorator.d.ts +32 -3
  134. package/src/common/decorators/resource.decorator.js +46 -4
  135. package/src/common/decorators/resource.decorator.js.map +1 -1
  136. package/src/common/decorators/tool.decorator.d.ts +54 -5
  137. package/src/common/decorators/tool.decorator.js.map +1 -1
  138. package/src/common/dynamic/dynamic.plugin.d.ts +22 -11
  139. package/src/common/dynamic/dynamic.plugin.js +7 -1
  140. package/src/common/dynamic/dynamic.plugin.js.map +1 -1
  141. package/src/common/entries/prompt.entry.d.ts +46 -2
  142. package/src/common/entries/prompt.entry.js +10 -0
  143. package/src/common/entries/prompt.entry.js.map +1 -1
  144. package/src/common/entries/resource.entry.d.ts +69 -6
  145. package/src/common/entries/resource.entry.js +27 -3
  146. package/src/common/entries/resource.entry.js.map +1 -1
  147. package/src/common/entries/scope.entry.d.ts +5 -1
  148. package/src/common/entries/scope.entry.js +3 -3
  149. package/src/common/entries/scope.entry.js.map +1 -1
  150. package/src/common/flow/flow.utils.d.ts +56 -0
  151. package/src/common/flow/flow.utils.js +96 -0
  152. package/src/common/flow/flow.utils.js.map +1 -0
  153. package/src/common/index.d.ts +2 -2
  154. package/src/common/index.js +2 -2
  155. package/src/common/index.js.map +1 -1
  156. package/src/common/interfaces/execution-context.interface.d.ts +59 -0
  157. package/src/common/interfaces/execution-context.interface.js +81 -0
  158. package/src/common/interfaces/execution-context.interface.js.map +1 -0
  159. package/src/common/interfaces/flow.interface.d.ts +1 -1
  160. package/src/common/interfaces/flow.interface.js.map +1 -1
  161. package/src/common/interfaces/index.d.ts +1 -0
  162. package/src/common/interfaces/index.js +1 -0
  163. package/src/common/interfaces/index.js.map +1 -1
  164. package/src/common/interfaces/internal/primary-auth-provider.interface.d.ts +17 -2
  165. package/src/common/interfaces/internal/primary-auth-provider.interface.js +52 -4
  166. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +1 -1
  167. package/src/common/interfaces/internal/registry.interface.d.ts +16 -2
  168. package/src/common/interfaces/internal/registry.interface.js.map +1 -1
  169. package/src/common/interfaces/plugin.interface.js.map +1 -1
  170. package/src/common/interfaces/prompt.interface.d.ts +53 -4
  171. package/src/common/interfaces/prompt.interface.js +78 -0
  172. package/src/common/interfaces/prompt.interface.js.map +1 -1
  173. package/src/common/interfaces/resource.interface.d.ts +47 -17
  174. package/src/common/interfaces/resource.interface.js +53 -0
  175. package/src/common/interfaces/resource.interface.js.map +1 -1
  176. package/src/common/interfaces/tool.interface.d.ts +39 -22
  177. package/src/common/interfaces/tool.interface.js +61 -34
  178. package/src/common/interfaces/tool.interface.js.map +1 -1
  179. package/src/common/metadata/adapter.metadata.d.ts +1 -9
  180. package/src/common/metadata/app.metadata.d.ts +425 -730
  181. package/src/common/metadata/auth-provider.metadata.d.ts +2 -12
  182. package/src/common/metadata/flow.metadata.d.ts +10 -25
  183. package/src/common/metadata/front-mcp.metadata.d.ts +602 -1023
  184. package/src/common/metadata/front-mcp.metadata.js +6 -4
  185. package/src/common/metadata/front-mcp.metadata.js.map +1 -1
  186. package/src/common/metadata/hook.metadata.d.ts +1 -1
  187. package/src/common/metadata/hook.metadata.js.map +1 -1
  188. package/src/common/metadata/index.d.ts +1 -0
  189. package/src/common/metadata/index.js +1 -0
  190. package/src/common/metadata/index.js.map +1 -1
  191. package/src/common/metadata/logger.metadata.d.ts +1 -9
  192. package/src/common/metadata/plugin.metadata.d.ts +8 -30
  193. package/src/common/metadata/prompt.metadata.d.ts +4 -161
  194. package/src/common/metadata/provider.metadata.d.ts +2 -12
  195. package/src/common/metadata/resource.metadata.d.ts +6 -98
  196. package/src/common/metadata/resource.metadata.js +15 -6
  197. package/src/common/metadata/resource.metadata.js.map +1 -1
  198. package/src/common/metadata/tool-ui.metadata.d.ts +10 -0
  199. package/src/common/metadata/tool-ui.metadata.js +12 -0
  200. package/src/common/metadata/tool-ui.metadata.js.map +1 -0
  201. package/src/common/metadata/tool.metadata.d.ts +78 -199
  202. package/src/common/metadata/tool.metadata.js +11 -14
  203. package/src/common/metadata/tool.metadata.js.map +1 -1
  204. package/src/common/providers/base-config.provider.d.ts +84 -0
  205. package/src/common/providers/base-config.provider.js +128 -0
  206. package/src/common/providers/base-config.provider.js.map +1 -0
  207. package/src/common/records/plugin.record.d.ts +5 -6
  208. package/src/common/records/plugin.record.js.map +1 -1
  209. package/src/common/records/prompt.record.js.map +1 -1
  210. package/src/common/records/resource.record.d.ts +17 -1
  211. package/src/common/records/resource.record.js +12 -6
  212. package/src/common/records/resource.record.js.map +1 -1
  213. package/src/common/records/tool.record.js.map +1 -1
  214. package/src/common/schemas/annotated-class.schema.d.ts +9 -9
  215. package/src/common/schemas/annotated-class.schema.js +92 -27
  216. package/src/common/schemas/annotated-class.schema.js.map +1 -1
  217. package/src/common/schemas/http-input.schema.d.ts +6 -30
  218. package/src/common/schemas/http-output.schema.d.ts +326 -1630
  219. package/src/common/schemas/http-output.schema.js +39 -1
  220. package/src/common/schemas/http-output.schema.js.map +1 -1
  221. package/src/common/tokens/front-mcp.tokens.js +4 -1
  222. package/src/common/tokens/front-mcp.tokens.js.map +1 -1
  223. package/src/common/tokens/resource.tokens.d.ts +2 -0
  224. package/src/common/tokens/resource.tokens.js +4 -1
  225. package/src/common/tokens/resource.tokens.js.map +1 -1
  226. package/src/common/tokens/tool.tokens.d.ts +2 -0
  227. package/src/common/tokens/tool.tokens.js +2 -0
  228. package/src/common/tokens/tool.tokens.js.map +1 -1
  229. package/src/common/types/auth/jwt.types.d.ts +5 -31
  230. package/src/common/types/auth/session.types.d.ts +97 -192
  231. package/src/common/types/auth/session.types.js +24 -11
  232. package/src/common/types/auth/session.types.js.map +1 -1
  233. package/src/common/types/options/auth.options.d.ts +1013 -490
  234. package/src/common/types/options/auth.options.js +554 -36
  235. package/src/common/types/options/auth.options.js.map +1 -1
  236. package/src/common/types/options/http.options.d.ts +1 -9
  237. package/src/common/types/options/logging.options.d.ts +7 -13
  238. package/src/common/types/options/logging.options.js +4 -0
  239. package/src/common/types/options/logging.options.js.map +1 -1
  240. package/src/common/types/options/server-info.options.d.ts +3 -31
  241. package/src/common/types/options/session.options.d.ts +90 -10
  242. package/src/common/types/options/session.options.js +26 -3
  243. package/src/common/types/options/session.options.js.map +1 -1
  244. package/src/common/utils/decide-request-intent.utils.d.ts +8 -46
  245. package/src/common/utils/decide-request-intent.utils.js +88 -23
  246. package/src/common/utils/decide-request-intent.utils.js.map +1 -1
  247. package/src/completion/flows/complete.flow.d.ts +74 -0
  248. package/src/completion/flows/complete.flow.js +199 -0
  249. package/src/completion/flows/complete.flow.js.map +1 -0
  250. package/src/errors/authorization-required.error.d.ts +189 -0
  251. package/src/errors/authorization-required.error.js +274 -0
  252. package/src/errors/authorization-required.error.js.map +1 -0
  253. package/src/errors/index.d.ts +2 -1
  254. package/src/errors/index.js +17 -1
  255. package/src/errors/index.js.map +1 -1
  256. package/src/errors/mcp.error.d.ts +101 -1
  257. package/src/errors/mcp.error.js +147 -2
  258. package/src/errors/mcp.error.js.map +1 -1
  259. package/src/flows/flow.instance.js +4 -3
  260. package/src/flows/flow.instance.js.map +1 -1
  261. package/src/flows/flow.registry.js.map +1 -1
  262. package/src/flows/flow.stages.js +14 -11
  263. package/src/flows/flow.stages.js.map +1 -1
  264. package/src/front-mcp/front-mcp.providers.d.ts +464 -102
  265. package/src/front-mcp/front-mcp.providers.js +3 -5
  266. package/src/front-mcp/front-mcp.providers.js.map +1 -1
  267. package/src/hooks/hook.instance.d.ts +1 -1
  268. package/src/hooks/hook.instance.js +5 -2
  269. package/src/hooks/hook.instance.js.map +1 -1
  270. package/src/hooks/hook.registry.js +7 -5
  271. package/src/hooks/hook.registry.js.map +1 -1
  272. package/src/index.d.ts +28 -9
  273. package/src/index.js +5 -1
  274. package/src/index.js.map +1 -1
  275. package/src/logger/instances/instance.logger.js +3 -2
  276. package/src/logger/instances/instance.logger.js.map +1 -1
  277. package/src/logger/logger.registry.js +7 -2
  278. package/src/logger/logger.registry.js.map +1 -1
  279. package/src/logging/flows/set-level.flow.d.ts +62 -0
  280. package/src/logging/flows/set-level.flow.js +108 -0
  281. package/src/logging/flows/set-level.flow.js.map +1 -0
  282. package/src/mcp-apps/csp.d.ts +111 -0
  283. package/src/mcp-apps/csp.js +267 -0
  284. package/src/mcp-apps/csp.js.map +1 -0
  285. package/src/mcp-apps/index.d.ts +23 -0
  286. package/src/mcp-apps/index.js +91 -0
  287. package/src/mcp-apps/index.js.map +1 -0
  288. package/src/mcp-apps/schemas.d.ts +403 -0
  289. package/src/mcp-apps/schemas.js +345 -0
  290. package/src/mcp-apps/schemas.js.map +1 -0
  291. package/src/mcp-apps/template.d.ts +94 -0
  292. package/src/mcp-apps/template.js +419 -0
  293. package/src/mcp-apps/template.js.map +1 -0
  294. package/src/mcp-apps/types.d.ts +323 -0
  295. package/src/mcp-apps/types.js +59 -0
  296. package/src/mcp-apps/types.js.map +1 -0
  297. package/src/notification/index.d.ts +1 -0
  298. package/src/notification/index.js +13 -0
  299. package/src/notification/index.js.map +1 -0
  300. package/src/notification/notification.service.d.ts +378 -0
  301. package/src/notification/notification.service.js +727 -0
  302. package/src/notification/notification.service.js.map +1 -0
  303. package/src/plugin/plugin.registry.js +12 -9
  304. package/src/plugin/plugin.registry.js.map +1 -1
  305. package/src/prompt/flows/get-prompt.flow.d.ts +153 -0
  306. package/src/prompt/flows/get-prompt.flow.js +214 -0
  307. package/src/prompt/flows/get-prompt.flow.js.map +1 -0
  308. package/src/prompt/flows/prompts-list.flow.d.ts +67 -0
  309. package/src/prompt/flows/prompts-list.flow.js +176 -0
  310. package/src/prompt/flows/prompts-list.flow.js.map +1 -0
  311. package/src/prompt/index.d.ts +7 -0
  312. package/src/prompt/index.js +17 -0
  313. package/src/prompt/index.js.map +1 -0
  314. package/src/prompt/prompt.events.d.ts +17 -0
  315. package/src/prompt/prompt.events.js +25 -0
  316. package/src/prompt/prompt.events.js.map +1 -0
  317. package/src/prompt/prompt.instance.d.ts +30 -0
  318. package/src/prompt/prompt.instance.js +120 -0
  319. package/src/prompt/prompt.instance.js.map +1 -0
  320. package/src/prompt/prompt.registry.d.ts +79 -12
  321. package/src/prompt/prompt.registry.js +360 -15
  322. package/src/prompt/prompt.registry.js.map +1 -1
  323. package/src/prompt/prompt.types.d.ts +26 -0
  324. package/src/prompt/prompt.types.js +11 -0
  325. package/src/prompt/prompt.types.js.map +1 -0
  326. package/src/prompt/prompt.utils.d.ts +26 -0
  327. package/src/prompt/prompt.utils.js +136 -0
  328. package/src/prompt/prompt.utils.js.map +1 -0
  329. package/src/provider/provider.registry.d.ts +12 -5
  330. package/src/provider/provider.registry.js +30 -138
  331. package/src/provider/provider.registry.js.map +1 -1
  332. package/src/regsitry/registry.base.d.ts +1 -1
  333. package/src/regsitry/registry.base.js.map +1 -1
  334. package/src/resource/flows/read-resource.flow.d.ts +91 -0
  335. package/src/resource/flows/read-resource.flow.js +270 -0
  336. package/src/resource/flows/read-resource.flow.js.map +1 -0
  337. package/src/resource/flows/resource-templates-list.flow.d.ts +64 -0
  338. package/src/resource/flows/resource-templates-list.flow.js +191 -0
  339. package/src/resource/flows/resource-templates-list.flow.js.map +1 -0
  340. package/src/resource/flows/resources-list.flow.d.ts +64 -0
  341. package/src/resource/flows/resources-list.flow.js +196 -0
  342. package/src/resource/flows/resources-list.flow.js.map +1 -0
  343. package/src/resource/flows/subscribe-resource.flow.d.ts +45 -0
  344. package/src/resource/flows/subscribe-resource.flow.js +123 -0
  345. package/src/resource/flows/subscribe-resource.flow.js.map +1 -0
  346. package/src/resource/flows/unsubscribe-resource.flow.d.ts +44 -0
  347. package/src/resource/flows/unsubscribe-resource.flow.js +107 -0
  348. package/src/resource/flows/unsubscribe-resource.flow.js.map +1 -0
  349. package/src/resource/index.d.ts +8 -0
  350. package/src/resource/index.js +20 -0
  351. package/src/resource/index.js.map +1 -0
  352. package/src/resource/resource.events.d.ts +24 -0
  353. package/src/resource/resource.events.js +17 -0
  354. package/src/resource/resource.events.js.map +1 -0
  355. package/src/resource/resource.instance.d.ts +35 -0
  356. package/src/resource/resource.instance.js +163 -0
  357. package/src/resource/resource.instance.js.map +1 -0
  358. package/src/resource/resource.registry.d.ts +106 -12
  359. package/src/resource/resource.registry.js +449 -13
  360. package/src/resource/resource.registry.js.map +1 -1
  361. package/src/resource/resource.types.d.ts +35 -0
  362. package/src/resource/resource.types.js +11 -0
  363. package/src/resource/resource.types.js.map +1 -0
  364. package/src/resource/resource.utils.d.ts +30 -0
  365. package/src/resource/resource.utils.js +151 -0
  366. package/src/resource/resource.utils.js.map +1 -0
  367. package/src/scope/flows/http.request.flow.d.ts +48 -330
  368. package/src/scope/flows/http.request.flow.js +306 -78
  369. package/src/scope/flows/http.request.flow.js.map +1 -1
  370. package/src/scope/scope.instance.d.ts +12 -0
  371. package/src/scope/scope.instance.js +145 -15
  372. package/src/scope/scope.instance.js.map +1 -1
  373. package/src/tool/flows/call-tool.flow.d.ts +64 -1110
  374. package/src/tool/flows/call-tool.flow.js +303 -15
  375. package/src/tool/flows/call-tool.flow.js.map +1 -1
  376. package/src/tool/flows/tools-list.flow.d.ts +32 -473
  377. package/src/tool/flows/tools-list.flow.js +111 -10
  378. package/src/tool/flows/tools-list.flow.js.map +1 -1
  379. package/src/tool/tool.events.d.ts +8 -1
  380. package/src/tool/tool.events.js.map +1 -1
  381. package/src/tool/tool.instance.d.ts +3 -1
  382. package/src/tool/tool.instance.js +17 -3
  383. package/src/tool/tool.instance.js.map +1 -1
  384. package/src/tool/tool.registry.d.ts +7 -1
  385. package/src/tool/tool.registry.js +26 -10
  386. package/src/tool/tool.registry.js.map +1 -1
  387. package/src/tool/tool.types.d.ts +4 -4
  388. package/src/tool/tool.types.js.map +1 -1
  389. package/src/tool/tool.utils.d.ts +3 -12
  390. package/src/tool/tool.utils.js +39 -193
  391. package/src/tool/tool.utils.js.map +1 -1
  392. package/src/tool/ui/index.d.ts +22 -0
  393. package/src/tool/ui/index.js +63 -0
  394. package/src/tool/ui/index.js.map +1 -0
  395. package/src/tool/ui/platform-adapters.d.ts +10 -0
  396. package/src/tool/ui/platform-adapters.js +18 -0
  397. package/src/tool/ui/platform-adapters.js.map +1 -0
  398. package/src/tool/ui/template-helpers.d.ts +46 -0
  399. package/src/tool/ui/template-helpers.js +112 -0
  400. package/src/tool/ui/template-helpers.js.map +1 -0
  401. package/src/tool/ui/ui-resource-template.d.ts +34 -0
  402. package/src/tool/ui/ui-resource-template.js +64 -0
  403. package/src/tool/ui/ui-resource-template.js.map +1 -0
  404. package/src/tool/ui/ui-resource.handler.d.ts +74 -0
  405. package/src/tool/ui/ui-resource.handler.js +129 -0
  406. package/src/tool/ui/ui-resource.handler.js.map +1 -0
  407. package/src/transport/adapters/transport.local.adapter.d.ts +2 -2
  408. package/src/transport/adapters/transport.local.adapter.js +28 -7
  409. package/src/transport/adapters/transport.local.adapter.js.map +1 -1
  410. package/src/transport/adapters/transport.sse.adapter.d.ts +2 -2
  411. package/src/transport/adapters/transport.sse.adapter.js +4 -3
  412. package/src/transport/adapters/transport.sse.adapter.js.map +1 -1
  413. package/src/transport/adapters/transport.streamable-http.adapter.d.ts +10 -3
  414. package/src/transport/adapters/transport.streamable-http.adapter.js +54 -8
  415. package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
  416. package/src/transport/flows/handle.sse.flow.d.ts +29 -63
  417. package/src/transport/flows/handle.sse.flow.js +78 -10
  418. package/src/transport/flows/handle.sse.flow.js.map +1 -1
  419. package/src/transport/flows/handle.stateless-http.flow.d.ts +29 -0
  420. package/src/transport/flows/handle.stateless-http.flow.js +102 -0
  421. package/src/transport/flows/handle.stateless-http.flow.js.map +1 -0
  422. package/src/transport/flows/handle.streamable-http.flow.d.ts +32 -64
  423. package/src/transport/flows/handle.streamable-http.flow.js +158 -26
  424. package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
  425. package/src/transport/legacy/legacy.sse.tranporter.d.ts +9 -0
  426. package/src/transport/legacy/legacy.sse.tranporter.js +17 -2
  427. package/src/transport/legacy/legacy.sse.tranporter.js.map +1 -1
  428. package/src/transport/mcp-handlers/call-tool-request.handler.js +27 -1
  429. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +1 -1
  430. package/src/transport/mcp-handlers/complete-request.handler.d.ts +69 -0
  431. package/src/transport/mcp-handlers/complete-request.handler.js +11 -0
  432. package/src/transport/mcp-handlers/complete-request.handler.js.map +1 -0
  433. package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +87 -0
  434. package/src/transport/mcp-handlers/get-prompt-request.handler.js +11 -0
  435. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +1 -0
  436. package/src/transport/mcp-handlers/index.d.ts +517 -208
  437. package/src/transport/mcp-handlers/index.js +39 -2
  438. package/src/transport/mcp-handlers/index.js.map +1 -1
  439. package/src/transport/mcp-handlers/initialize-request.handler.d.ts +1 -1
  440. package/src/transport/mcp-handlers/initialize-request.handler.js +73 -7
  441. package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
  442. package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +54 -0
  443. package/src/transport/mcp-handlers/list-prompts-request.handler.js +11 -0
  444. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +1 -0
  445. package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +51 -0
  446. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +12 -0
  447. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +1 -0
  448. package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +51 -0
  449. package/src/transport/mcp-handlers/list-resources-request.handler.js +12 -0
  450. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +1 -0
  451. package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +19 -146
  452. package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +46 -0
  453. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +34 -0
  454. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +1 -0
  455. package/src/transport/mcp-handlers/mcp-handlers.types.d.ts +3 -7
  456. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +1 -1
  457. package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +46 -0
  458. package/src/transport/mcp-handlers/read-resource-request.handler.js +12 -0
  459. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +1 -0
  460. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.d.ts +11 -0
  461. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +26 -0
  462. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +1 -0
  463. package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +37 -0
  464. package/src/transport/mcp-handlers/subscribe-request.handler.js +34 -0
  465. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +1 -0
  466. package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +37 -0
  467. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +34 -0
  468. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +1 -0
  469. package/src/transport/transport.local.js +7 -2
  470. package/src/transport/transport.local.js.map +1 -1
  471. package/src/transport/transport.registry.d.ts +30 -0
  472. package/src/transport/transport.registry.js +84 -1
  473. package/src/transport/transport.registry.js.map +1 -1
  474. package/src/transport/transport.types.d.ts +3 -3
  475. package/src/transport/transport.types.js.map +1 -1
  476. package/src/utils/content.utils.d.ts +48 -0
  477. package/src/utils/content.utils.js +194 -0
  478. package/src/utils/content.utils.js.map +1 -0
  479. package/src/utils/index.d.ts +8 -0
  480. package/src/utils/index.js +55 -0
  481. package/src/utils/index.js.map +1 -0
  482. package/src/utils/lineage.utils.d.ts +40 -0
  483. package/src/utils/lineage.utils.js +82 -0
  484. package/src/utils/lineage.utils.js.map +1 -0
  485. package/src/utils/naming.utils.d.ts +46 -0
  486. package/src/utils/naming.utils.js +136 -0
  487. package/src/utils/naming.utils.js.map +1 -0
  488. package/src/utils/types.utils.d.ts +2 -2
  489. package/src/utils/types.utils.js.map +1 -1
  490. package/src/utils/uri-template.utils.d.ts +57 -0
  491. package/src/utils/uri-template.utils.js +113 -0
  492. package/src/utils/uri-template.utils.js.map +1 -0
  493. package/src/utils/uri-validation.utils.d.ts +40 -0
  494. package/src/utils/uri-validation.utils.js +76 -0
  495. package/src/utils/uri-validation.utils.js.map +1 -0
  496. package/src/__test-utils__/fixtures/hook.fixtures.d.ts +0 -46
  497. package/src/__test-utils__/fixtures/hook.fixtures.js +0 -114
  498. package/src/__test-utils__/fixtures/hook.fixtures.js.map +0 -1
  499. package/src/__test-utils__/fixtures/index.d.ts +0 -7
  500. package/src/__test-utils__/fixtures/index.js +0 -11
  501. package/src/__test-utils__/fixtures/index.js.map +0 -1
  502. package/src/__test-utils__/fixtures/plugin.fixtures.d.ts +0 -46
  503. package/src/__test-utils__/fixtures/plugin.fixtures.js +0 -127
  504. package/src/__test-utils__/fixtures/plugin.fixtures.js.map +0 -1
  505. package/src/__test-utils__/fixtures/provider.fixtures.d.ts +0 -69
  506. package/src/__test-utils__/fixtures/provider.fixtures.js +0 -131
  507. package/src/__test-utils__/fixtures/provider.fixtures.js.map +0 -1
  508. package/src/__test-utils__/fixtures/scope.fixtures.d.ts +0 -14
  509. package/src/__test-utils__/fixtures/scope.fixtures.js +0 -59
  510. package/src/__test-utils__/fixtures/scope.fixtures.js.map +0 -1
  511. package/src/__test-utils__/fixtures/tool.fixtures.d.ts +0 -36
  512. package/src/__test-utils__/fixtures/tool.fixtures.js +0 -91
  513. package/src/__test-utils__/fixtures/tool.fixtures.js.map +0 -1
  514. package/src/__test-utils__/helpers/assertion.helpers.d.ts +0 -45
  515. package/src/__test-utils__/helpers/assertion.helpers.js +0 -153
  516. package/src/__test-utils__/helpers/assertion.helpers.js.map +0 -1
  517. package/src/__test-utils__/helpers/async.helpers.d.ts +0 -48
  518. package/src/__test-utils__/helpers/async.helpers.js +0 -112
  519. package/src/__test-utils__/helpers/async.helpers.js.map +0 -1
  520. package/src/__test-utils__/helpers/index.d.ts +0 -6
  521. package/src/__test-utils__/helpers/index.js +0 -10
  522. package/src/__test-utils__/helpers/index.js.map +0 -1
  523. package/src/__test-utils__/helpers/setup.helpers.d.ts +0 -54
  524. package/src/__test-utils__/helpers/setup.helpers.js +0 -106
  525. package/src/__test-utils__/helpers/setup.helpers.js.map +0 -1
  526. package/src/__test-utils__/index.d.ts +0 -9
  527. package/src/__test-utils__/index.js +0 -14
  528. package/src/__test-utils__/index.js.map +0 -1
  529. package/src/__test-utils__/mocks/flow-instance.mock.d.ts +0 -50
  530. package/src/__test-utils__/mocks/flow-instance.mock.js +0 -72
  531. package/src/__test-utils__/mocks/flow-instance.mock.js.map +0 -1
  532. package/src/__test-utils__/mocks/hook-registry.mock.d.ts +0 -25
  533. package/src/__test-utils__/mocks/hook-registry.mock.js +0 -65
  534. package/src/__test-utils__/mocks/hook-registry.mock.js.map +0 -1
  535. package/src/__test-utils__/mocks/index.d.ts +0 -8
  536. package/src/__test-utils__/mocks/index.js +0 -12
  537. package/src/__test-utils__/mocks/index.js.map +0 -1
  538. package/src/__test-utils__/mocks/plugin-registry.mock.d.ts +0 -43
  539. package/src/__test-utils__/mocks/plugin-registry.mock.js +0 -70
  540. package/src/__test-utils__/mocks/plugin-registry.mock.js.map +0 -1
  541. package/src/__test-utils__/mocks/provider-registry.mock.d.ts +0 -39
  542. package/src/__test-utils__/mocks/provider-registry.mock.js +0 -72
  543. package/src/__test-utils__/mocks/provider-registry.mock.js.map +0 -1
  544. package/src/__test-utils__/mocks/tool-registry.mock.d.ts +0 -43
  545. package/src/__test-utils__/mocks/tool-registry.mock.js +0 -79
  546. package/src/__test-utils__/mocks/tool-registry.mock.js.map +0 -1
  547. package/src/auth/path.utils.d.ts +0 -20
  548. package/src/auth/path.utils.js +0 -71
  549. package/src/auth/path.utils.js.map +0 -1
  550. package/src/common/decorators-old/async-with.decorator.d.ts +0 -10
  551. package/src/common/decorators-old/async-with.decorator.js +0 -24
  552. package/src/common/decorators-old/async-with.decorator.js.map +0 -1
  553. package/src/common/decorators-old/auth-hook.decorator.d.ts +0 -14
  554. package/src/common/decorators-old/auth-hook.decorator.js +0 -27
  555. package/src/common/decorators-old/auth-hook.decorator.js.map +0 -1
  556. package/src/common/decorators-old/session-hook.decorator.d.ts +0 -14
  557. package/src/common/decorators-old/session-hook.decorator.js +0 -27
  558. package/src/common/decorators-old/session-hook.decorator.js.map +0 -1
@@ -1,45 +0,0 @@
1
- /**
2
- * Custom assertion helpers for testing SDK components
3
- */
4
- /**
5
- * Asserts that a value is defined (not null or undefined)
6
- */
7
- export declare function assertDefined<T>(value: T | null | undefined, message?: string): asserts value is T;
8
- /**
9
- * Asserts that a value is an instance of a class
10
- */
11
- export declare function assertInstanceOf<T>(value: any, Ctor: new (...args: any[]) => T, message?: string): asserts value is T;
12
- /**
13
- * Asserts that an array contains a specific item
14
- */
15
- export declare function assertContains<T>(array: T[], item: T, message?: string): void;
16
- /**
17
- * Asserts that two arrays have the same elements with the same counts (order doesn't matter)
18
- */
19
- export declare function assertSameElements<T>(actual: T[], expected: T[], message?: string): void;
20
- /**
21
- * Asserts that a map has a specific key
22
- */
23
- export declare function assertHasKey<K, V>(map: Map<K, V>, key: K, message?: string): void;
24
- /**
25
- * Asserts that a promise rejects with a specific error
26
- */
27
- export declare function assertRejects(promise: Promise<any>, expectedError?: string | RegExp | (new (...args: any[]) => Error)): Promise<Error>;
28
- /**
29
- * Asserts that a promise resolves to a specific value
30
- */
31
- export declare function assertResolves<T>(promise: Promise<T>, expectedValue?: T): Promise<T>;
32
- /**
33
- * Creates a spy that captures console output
34
- */
35
- export declare function spyConsole(): {
36
- logs: string[];
37
- warns: string[];
38
- errors: string[];
39
- infos: string[];
40
- restore: () => void;
41
- };
42
- /**
43
- * Suppresses console output during test execution
44
- */
45
- export declare function suppressConsole(): () => void;
@@ -1,153 +0,0 @@
1
- "use strict";
2
- /// <reference types="jest" />
3
- /**
4
- * Custom assertion helpers for testing SDK components
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.assertDefined = assertDefined;
8
- exports.assertInstanceOf = assertInstanceOf;
9
- exports.assertContains = assertContains;
10
- exports.assertSameElements = assertSameElements;
11
- exports.assertHasKey = assertHasKey;
12
- exports.assertRejects = assertRejects;
13
- exports.assertResolves = assertResolves;
14
- exports.spyConsole = spyConsole;
15
- exports.suppressConsole = suppressConsole;
16
- const NO_EXPECTED = Symbol('assertResolves.noExpected');
17
- /**
18
- * Asserts that a value is defined (not null or undefined)
19
- */
20
- function assertDefined(value, message) {
21
- if (value === null || value === undefined) {
22
- throw new Error(message || 'Expected value to be defined');
23
- }
24
- }
25
- /**
26
- * Asserts that a value is an instance of a class
27
- */
28
- function assertInstanceOf(value, Ctor, message) {
29
- if (!(value instanceof Ctor)) {
30
- throw new Error(message ||
31
- `Expected value to be an instance of ${Ctor.name}, but got ${value?.constructor?.name || typeof value}`);
32
- }
33
- }
34
- /**
35
- * Asserts that an array contains a specific item
36
- */
37
- function assertContains(array, item, message) {
38
- if (!array.includes(item)) {
39
- throw new Error(message || `Expected array to contain item`);
40
- }
41
- }
42
- /**
43
- * Asserts that two arrays have the same elements with the same counts (order doesn't matter)
44
- */
45
- function assertSameElements(actual, expected, message) {
46
- if (actual.length !== expected.length) {
47
- throw new Error(message || `Expected arrays to have same length: ${actual.length} vs ${expected.length}`);
48
- }
49
- // Count occurrences of each element in both arrays
50
- const actualCounts = new Map();
51
- const expectedCounts = new Map();
52
- for (const item of actual) {
53
- actualCounts.set(item, (actualCounts.get(item) || 0) + 1);
54
- }
55
- for (const item of expected) {
56
- expectedCounts.set(item, (expectedCounts.get(item) || 0) + 1);
57
- }
58
- // Check that all expected items exist with the correct counts
59
- for (const [item, count] of expectedCounts) {
60
- const actualCount = actualCounts.get(item) || 0;
61
- if (actualCount !== count) {
62
- throw new Error(message || `Expected array to contain ${count} occurrence(s) of ${item}, but found ${actualCount}`);
63
- }
64
- }
65
- // Check that actual doesn't have extra items
66
- for (const [item, count] of actualCounts) {
67
- const expectedCount = expectedCounts.get(item) || 0;
68
- if (expectedCount !== count) {
69
- throw new Error(message || `Expected array to contain ${expectedCount} occurrence(s) of ${item}, but found ${count}`);
70
- }
71
- }
72
- }
73
- /**
74
- * Asserts that a map has a specific key
75
- */
76
- function assertHasKey(map, key, message) {
77
- if (!map.has(key)) {
78
- throw new Error(message || `Expected map to have key`);
79
- }
80
- }
81
- /**
82
- * Asserts that a promise rejects with a specific error
83
- */
84
- async function assertRejects(promise, expectedError) {
85
- try {
86
- await promise;
87
- throw new Error('Expected promise to reject, but it resolved');
88
- }
89
- catch (error) {
90
- if (expectedError) {
91
- if (typeof expectedError === 'string') {
92
- expect(error.message).toContain(expectedError);
93
- }
94
- else if (expectedError instanceof RegExp) {
95
- expect(error.message).toMatch(expectedError);
96
- }
97
- else {
98
- expect(error).toBeInstanceOf(expectedError);
99
- }
100
- }
101
- return error;
102
- }
103
- }
104
- /**
105
- * Asserts that a promise resolves to a specific value
106
- */
107
- async function assertResolves(promise, expectedValue) {
108
- const value = await promise;
109
- const finalExpected = arguments.length > 1 ? expectedValue : NO_EXPECTED;
110
- if (finalExpected !== NO_EXPECTED) {
111
- expect(value).toEqual(finalExpected);
112
- }
113
- return value;
114
- }
115
- /**
116
- * Creates a spy that captures console output
117
- */
118
- function spyConsole() {
119
- const originalConsole = {
120
- log: console.log,
121
- warn: console.warn,
122
- error: console.error,
123
- info: console.info,
124
- };
125
- const logs = [];
126
- const warns = [];
127
- const errors = [];
128
- const infos = [];
129
- console.log = jest.fn((...args) => logs.push(args.join(' ')));
130
- console.warn = jest.fn((...args) => warns.push(args.join(' ')));
131
- console.error = jest.fn((...args) => errors.push(args.join(' ')));
132
- console.info = jest.fn((...args) => infos.push(args.join(' ')));
133
- return {
134
- logs,
135
- warns,
136
- errors,
137
- infos,
138
- restore: () => {
139
- console.log = originalConsole.log;
140
- console.warn = originalConsole.warn;
141
- console.error = originalConsole.error;
142
- console.info = originalConsole.info;
143
- },
144
- };
145
- }
146
- /**
147
- * Suppresses console output during test execution
148
- */
149
- function suppressConsole() {
150
- const spy = spyConsole();
151
- return spy.restore;
152
- }
153
- //# sourceMappingURL=assertion.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertion.helpers.js","sourceRoot":"","sources":["../../../../src/__test-utils__/helpers/assertion.helpers.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B;;GAEG;;AAOH,sCAIC;AAKD,4CAOC;AAKD,wCAIC;AAKD,gDAoCC;AAKD,oCAIC;AAKD,sCAmBC;AAKD,wCAQC;AAKD,gCA8BC;AAKD,0CAGC;AAhKD,MAAM,WAAW,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAExD;;GAEG;AACH,SAAgB,aAAa,CAAI,KAA2B,EAAE,OAAgB;IAC5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,8BAA8B,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAI,KAAU,EAAE,IAA+B,EAAE,OAAgB;IAC/F,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,OAAO;YACL,uCAAuC,IAAI,CAAC,IAAI,aAAa,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,KAAK,EAAE,CAC1G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAI,KAAU,EAAE,IAAO,EAAE,OAAgB;IACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,gCAAgC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAI,MAAW,EAAE,QAAa,EAAE,OAAgB;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,wCAAwC,MAAM,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAa,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAa,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,OAAO,IAAI,6BAA6B,KAAK,qBAAqB,IAAI,eAAe,WAAW,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,OAAO,IAAI,6BAA6B,aAAa,qBAAqB,IAAI,eAAe,KAAK,EAAE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAO,GAAc,EAAE,GAAM,EAAE,OAAgB;IACzE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,0BAA0B,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,OAAqB,EACrB,aAAiE;IAEjE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,aAAa,YAAY,MAAM,EAAE,CAAC;gBAC3C,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,KAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAI,OAAmB,EAAE,aAAiB;IAC5E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;IAC5B,MAAM,aAAa,GAA2B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,aAAmB,CAAC,CAAC,CAAC,WAAW,CAAC;IAExG,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,aAAkB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,MAAM,eAAe,GAAG;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;IAEF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;YACpC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;YACtC,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC","sourcesContent":["/// <reference types=\"jest\" />\n/**\n * Custom assertion helpers for testing SDK components\n */\n\nconst NO_EXPECTED = Symbol('assertResolves.noExpected');\n\n/**\n * Asserts that a value is defined (not null or undefined)\n */\nexport function assertDefined<T>(value: T | null | undefined, message?: string): asserts value is T {\n if (value === null || value === undefined) {\n throw new Error(message || 'Expected value to be defined');\n }\n}\n\n/**\n * Asserts that a value is an instance of a class\n */\nexport function assertInstanceOf<T>(value: any, Ctor: new (...args: any[]) => T, message?: string): asserts value is T {\n if (!(value instanceof Ctor)) {\n throw new Error(\n message ||\n `Expected value to be an instance of ${Ctor.name}, but got ${value?.constructor?.name || typeof value}`,\n );\n }\n}\n\n/**\n * Asserts that an array contains a specific item\n */\nexport function assertContains<T>(array: T[], item: T, message?: string): void {\n if (!array.includes(item)) {\n throw new Error(message || `Expected array to contain item`);\n }\n}\n\n/**\n * Asserts that two arrays have the same elements with the same counts (order doesn't matter)\n */\nexport function assertSameElements<T>(actual: T[], expected: T[], message?: string): void {\n if (actual.length !== expected.length) {\n throw new Error(message || `Expected arrays to have same length: ${actual.length} vs ${expected.length}`);\n }\n\n // Count occurrences of each element in both arrays\n const actualCounts = new Map<T, number>();\n const expectedCounts = new Map<T, number>();\n\n for (const item of actual) {\n actualCounts.set(item, (actualCounts.get(item) || 0) + 1);\n }\n\n for (const item of expected) {\n expectedCounts.set(item, (expectedCounts.get(item) || 0) + 1);\n }\n\n // Check that all expected items exist with the correct counts\n for (const [item, count] of expectedCounts) {\n const actualCount = actualCounts.get(item) || 0;\n if (actualCount !== count) {\n throw new Error(\n message || `Expected array to contain ${count} occurrence(s) of ${item}, but found ${actualCount}`,\n );\n }\n }\n\n // Check that actual doesn't have extra items\n for (const [item, count] of actualCounts) {\n const expectedCount = expectedCounts.get(item) || 0;\n if (expectedCount !== count) {\n throw new Error(\n message || `Expected array to contain ${expectedCount} occurrence(s) of ${item}, but found ${count}`,\n );\n }\n }\n}\n\n/**\n * Asserts that a map has a specific key\n */\nexport function assertHasKey<K, V>(map: Map<K, V>, key: K, message?: string): void {\n if (!map.has(key)) {\n throw new Error(message || `Expected map to have key`);\n }\n}\n\n/**\n * Asserts that a promise rejects with a specific error\n */\nexport async function assertRejects(\n promise: Promise<any>,\n expectedError?: string | RegExp | (new (...args: any[]) => Error),\n): Promise<Error> {\n try {\n await promise;\n throw new Error('Expected promise to reject, but it resolved');\n } catch (error) {\n if (expectedError) {\n if (typeof expectedError === 'string') {\n expect((error as Error).message).toContain(expectedError);\n } else if (expectedError instanceof RegExp) {\n expect((error as Error).message).toMatch(expectedError);\n } else {\n expect(error).toBeInstanceOf(expectedError);\n }\n }\n return error as Error;\n }\n}\n\n/**\n * Asserts that a promise resolves to a specific value\n */\nexport async function assertResolves<T>(promise: Promise<T>, expectedValue?: T): Promise<T> {\n const value = await promise;\n const finalExpected: T | typeof NO_EXPECTED = arguments.length > 1 ? (expectedValue as T) : NO_EXPECTED;\n\n if (finalExpected !== NO_EXPECTED) {\n expect(value).toEqual(finalExpected as T);\n }\n return value;\n}\n\n/**\n * Creates a spy that captures console output\n */\nexport function spyConsole() {\n const originalConsole = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n info: console.info,\n };\n\n const logs: string[] = [];\n const warns: string[] = [];\n const errors: string[] = [];\n const infos: string[] = [];\n\n console.log = jest.fn((...args) => logs.push(args.join(' ')));\n console.warn = jest.fn((...args) => warns.push(args.join(' ')));\n console.error = jest.fn((...args) => errors.push(args.join(' ')));\n console.info = jest.fn((...args) => infos.push(args.join(' ')));\n\n return {\n logs,\n warns,\n errors,\n infos,\n restore: () => {\n console.log = originalConsole.log;\n console.warn = originalConsole.warn;\n console.error = originalConsole.error;\n console.info = originalConsole.info;\n },\n };\n}\n\n/**\n * Suppresses console output during test execution\n */\nexport function suppressConsole() {\n const spy = spyConsole();\n return spy.restore;\n}\n"]}
@@ -1,48 +0,0 @@
1
- /**
2
- * Helper utilities for testing asynchronous operations
3
- */
4
- /**
5
- * Waits for a promise to settle and returns the result or error
6
- */
7
- export declare function settled<T>(promise: Promise<T>): Promise<{
8
- status: 'fulfilled';
9
- value: T;
10
- } | {
11
- status: 'rejected';
12
- reason: any;
13
- }>;
14
- /**
15
- * Waits for a condition to be true with a timeout
16
- */
17
- export declare function waitFor(condition: () => boolean | Promise<boolean>, options?: {
18
- timeout?: number;
19
- interval?: number;
20
- }): Promise<void>;
21
- /**
22
- * Flushes all pending promises (useful for testing async flows)
23
- */
24
- export declare function flushPromises(): Promise<void>;
25
- /**
26
- * Creates a deferred promise that can be resolved/rejected externally
27
- */
28
- export declare function createDeferred<T>(): {
29
- promise: Promise<T>;
30
- resolve: (value: T) => void;
31
- reject: (reason: any) => void;
32
- };
33
- /**
34
- * Runs a function and expects it to throw an error
35
- */
36
- export declare function expectToThrow<T>(fn: () => T | Promise<T>, expectedError?: string | RegExp | (new (...args: any[]) => Error)): Promise<Error>;
37
- /**
38
- * Creates a mock function that tracks calls
39
- */
40
- export declare function createMockFn<T extends (...args: any[]) => any>(): {
41
- fn: jest.Mock<ReturnType<T>, Parameters<T>, any>;
42
- calls: {
43
- args: Parameters<T>;
44
- result?: ReturnType<T>;
45
- error?: any;
46
- }[];
47
- reset: () => void;
48
- };
@@ -1,112 +0,0 @@
1
- "use strict";
2
- /// <reference types="jest" />
3
- /**
4
- * Helper utilities for testing asynchronous operations
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.settled = settled;
8
- exports.waitFor = waitFor;
9
- exports.flushPromises = flushPromises;
10
- exports.createDeferred = createDeferred;
11
- exports.expectToThrow = expectToThrow;
12
- exports.createMockFn = createMockFn;
13
- /**
14
- * Waits for a promise to settle and returns the result or error
15
- */
16
- async function settled(promise) {
17
- try {
18
- const value = await promise;
19
- return { status: 'fulfilled', value };
20
- }
21
- catch (reason) {
22
- return { status: 'rejected', reason };
23
- }
24
- }
25
- /**
26
- * Waits for a condition to be true with a timeout
27
- */
28
- async function waitFor(condition, options = {}) {
29
- const { timeout = 5000, interval = 50 } = options;
30
- const start = Date.now();
31
- while (Date.now() - start < timeout) {
32
- if (await condition()) {
33
- return;
34
- }
35
- await new Promise((resolve) => setTimeout(resolve, interval));
36
- }
37
- throw new Error(`Timeout waiting for condition after ${timeout}ms`);
38
- }
39
- /**
40
- * Flushes all pending promises (useful for testing async flows)
41
- */
42
- async function flushPromises() {
43
- await new Promise((resolve) => setImmediate(resolve));
44
- }
45
- /**
46
- * Creates a deferred promise that can be resolved/rejected externally
47
- */
48
- function createDeferred() {
49
- let resolve;
50
- let reject;
51
- const promise = new Promise((res, rej) => {
52
- resolve = res;
53
- reject = rej;
54
- });
55
- return {
56
- promise,
57
- resolve: resolve,
58
- reject: reject,
59
- };
60
- }
61
- /**
62
- * Runs a function and expects it to throw an error
63
- */
64
- async function expectToThrow(fn, expectedError) {
65
- try {
66
- await fn();
67
- }
68
- catch (error) {
69
- if (expectedError) {
70
- if (typeof expectedError === 'string') {
71
- expect(error.message).toContain(expectedError);
72
- }
73
- else if (expectedError instanceof RegExp) {
74
- expect(error.message).toMatch(expectedError);
75
- }
76
- else {
77
- expect(error).toBeInstanceOf(expectedError);
78
- }
79
- }
80
- return error;
81
- }
82
- throw new Error('Expected function to throw an error, but it did not');
83
- }
84
- /**
85
- * Creates a mock function that tracks calls
86
- */
87
- function createMockFn() {
88
- const calls = [];
89
- const fn = jest.fn((...args) => {
90
- const call = { args };
91
- try {
92
- const result = undefined;
93
- call.result = result;
94
- calls.push(call);
95
- return result;
96
- }
97
- catch (error) {
98
- call.error = error;
99
- calls.push(call);
100
- throw error;
101
- }
102
- });
103
- return {
104
- fn,
105
- calls,
106
- reset: () => {
107
- calls.length = 0;
108
- fn.mockReset();
109
- },
110
- };
111
- }
112
- //# sourceMappingURL=async.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.helpers.js","sourceRoot":"","sources":["../../../../src/__test-utils__/helpers/async.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types=\"jest\" />\n/**\n * Helper utilities for testing asynchronous operations\n */\n\n/**\n * Waits for a promise to settle and returns the result or error\n */\nexport async function settled<T>(\n promise: Promise<T>,\n): Promise<{ status: 'fulfilled'; value: T } | { status: 'rejected'; reason: any }> {\n try {\n const value = await promise;\n return { status: 'fulfilled', value };\n } catch (reason) {\n return { status: 'rejected', reason };\n }\n}\n\n/**\n * Waits for a condition to be true with a timeout\n */\nexport async function waitFor(\n condition: () => boolean | Promise<boolean>,\n options: { timeout?: number; interval?: number } = {},\n): Promise<void> {\n const { timeout = 5000, interval = 50 } = options;\n const start = Date.now();\n\n while (Date.now() - start < timeout) {\n if (await condition()) {\n return;\n }\n await new Promise((resolve) => setTimeout(resolve, interval));\n }\n\n throw new Error(`Timeout waiting for condition after ${timeout}ms`);\n}\n\n/**\n * Flushes all pending promises (useful for testing async flows)\n */\nexport async function flushPromises(): Promise<void> {\n await new Promise((resolve) => setImmediate(resolve));\n}\n\n/**\n * Creates a deferred promise that can be resolved/rejected externally\n */\nexport function createDeferred<T>() {\n let resolve: (value: T) => void;\n let reject: (reason: any) => void;\n\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return {\n promise,\n resolve: resolve!,\n reject: reject!,\n };\n}\n\n/**\n * Runs a function and expects it to throw an error\n */\nexport async function expectToThrow<T>(\n fn: () => T | Promise<T>,\n expectedError?: string | RegExp | (new (...args: any[]) => Error),\n): Promise<Error> {\n try {\n await fn();\n } catch (error) {\n if (expectedError) {\n if (typeof expectedError === 'string') {\n expect((error as Error).message).toContain(expectedError);\n } else if (expectedError instanceof RegExp) {\n expect((error as Error).message).toMatch(expectedError);\n } else {\n expect(error).toBeInstanceOf(expectedError);\n }\n }\n return error as Error;\n }\n\n throw new Error('Expected function to throw an error, but it did not');\n}\n\n/**\n * Creates a mock function that tracks calls\n */\nexport function createMockFn<T extends (...args: any[]) => any>() {\n const calls: Array<{ args: Parameters<T>; result?: ReturnType<T>; error?: any }> = [];\n\n const fn = jest.fn((...args: Parameters<T>): ReturnType<T> => {\n const call: any = { args };\n try {\n const result = undefined as ReturnType<T>;\n call.result = result;\n calls.push(call);\n return result;\n } catch (error) {\n call.error = error;\n calls.push(call);\n throw error;\n }\n });\n\n return {\n fn,\n calls,\n reset: () => {\n calls.length = 0;\n fn.mockReset();\n },\n };\n}\n"]}
@@ -1,6 +0,0 @@
1
- /**
2
- * Helper utilities for testing
3
- */
4
- export * from './async.helpers';
5
- export * from './assertion.helpers';
6
- export * from './setup.helpers';
@@ -1,10 +0,0 @@
1
- "use strict";
2
- /**
3
- * Helper utilities for testing
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const tslib_1 = require("tslib");
7
- tslib_1.__exportStar(require("./async.helpers"), exports);
8
- tslib_1.__exportStar(require("./assertion.helpers"), exports);
9
- tslib_1.__exportStar(require("./setup.helpers"), exports);
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/__test-utils__/helpers/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,0DAAgC;AAChC,8DAAoC;AACpC,0DAAgC","sourcesContent":["/**\n * Helper utilities for testing\n */\n\nexport * from './async.helpers';\nexport * from './assertion.helpers';\nexport * from './setup.helpers';\n"]}
@@ -1,54 +0,0 @@
1
- /**
2
- * Helper utilities for test setup and teardown
3
- */
4
- import 'reflect-metadata';
5
- /**
6
- * Creates a clean test environment with automatic cleanup
7
- */
8
- export declare function createTestEnvironment(): {
9
- /**
10
- * Registers a cleanup function to be called after the test
11
- */
12
- onCleanup(fn: () => void | Promise<void>): void;
13
- /**
14
- * Cleans up all registered resources
15
- */
16
- cleanup(): Promise<void>;
17
- };
18
- /**
19
- * Wraps a test function with automatic environment setup and cleanup
20
- */
21
- export declare function withTestEnvironment<T extends any[]>(testFn: (env: ReturnType<typeof createTestEnvironment>, ...args: T) => Promise<void> | void): (...args: T) => Promise<void>;
22
- /**
23
- * Creates a mock timer for testing time-based operations
24
- */
25
- export declare function useFakeTimers(): {
26
- advance: (ms: number) => void;
27
- runAll: () => void;
28
- runPending: () => void;
29
- };
30
- /**
31
- * Creates a test-specific logger that can be inspected
32
- */
33
- export declare function createTestLogger(): {
34
- log: (message: string, data?: any) => number;
35
- warn: (message: string, data?: any) => number;
36
- error: (message: string, data?: any) => number;
37
- info: (message: string, data?: any) => number;
38
- debug: (message: string, data?: any) => number;
39
- getLogs: () => {
40
- level: string;
41
- message: string;
42
- data?: any;
43
- }[];
44
- clear: () => number;
45
- hasLog: (level: string, message: string) => boolean;
46
- };
47
- /**
48
- * Ensures reflect-metadata is loaded for decorator tests
49
- */
50
- export declare function setupReflectMetadata(): void;
51
- /**
52
- * Clears all mocks between tests
53
- */
54
- export declare function setupMockClearing(): void;
@@ -1,106 +0,0 @@
1
- "use strict";
2
- /// <reference types="jest" />
3
- /**
4
- * Helper utilities for test setup and teardown
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createTestEnvironment = createTestEnvironment;
8
- exports.withTestEnvironment = withTestEnvironment;
9
- exports.useFakeTimers = useFakeTimers;
10
- exports.createTestLogger = createTestLogger;
11
- exports.setupReflectMetadata = setupReflectMetadata;
12
- exports.setupMockClearing = setupMockClearing;
13
- require("reflect-metadata");
14
- /**
15
- * Creates a clean test environment with automatic cleanup
16
- */
17
- function createTestEnvironment() {
18
- const cleanupFns = [];
19
- return {
20
- /**
21
- * Registers a cleanup function to be called after the test
22
- */
23
- onCleanup(fn) {
24
- cleanupFns.push(fn);
25
- },
26
- /**
27
- * Cleans up all registered resources
28
- */
29
- async cleanup() {
30
- for (const fn of cleanupFns.reverse()) {
31
- await fn();
32
- }
33
- cleanupFns.length = 0;
34
- },
35
- };
36
- }
37
- /**
38
- * Wraps a test function with automatic environment setup and cleanup
39
- */
40
- function withTestEnvironment(testFn) {
41
- return async (...args) => {
42
- const env = createTestEnvironment();
43
- try {
44
- await testFn(env, ...args);
45
- }
46
- finally {
47
- await env.cleanup();
48
- }
49
- };
50
- }
51
- /**
52
- * Creates a mock timer for testing time-based operations
53
- */
54
- function useFakeTimers() {
55
- beforeEach(() => {
56
- jest.useFakeTimers();
57
- });
58
- afterEach(() => {
59
- jest.runOnlyPendingTimers();
60
- jest.useRealTimers();
61
- });
62
- return {
63
- advance: (ms) => jest.advanceTimersByTime(ms),
64
- runAll: () => jest.runAllTimers(),
65
- runPending: () => jest.runOnlyPendingTimers(),
66
- };
67
- }
68
- /**
69
- * Creates a test-specific logger that can be inspected
70
- */
71
- function createTestLogger() {
72
- const logs = [];
73
- return {
74
- log: (message, data) => logs.push({ level: 'log', message, data }),
75
- warn: (message, data) => logs.push({ level: 'warn', message, data }),
76
- error: (message, data) => logs.push({ level: 'error', message, data }),
77
- info: (message, data) => logs.push({ level: 'info', message, data }),
78
- debug: (message, data) => logs.push({ level: 'debug', message, data }),
79
- getLogs: () => logs,
80
- clear: () => (logs.length = 0),
81
- hasLog: (level, message) => logs.some((log) => log.level === level && log.message.includes(message)),
82
- };
83
- }
84
- /**
85
- * Ensures reflect-metadata is loaded for decorator tests
86
- */
87
- function setupReflectMetadata() {
88
- beforeAll(() => {
89
- // Ensure reflect-metadata is loaded
90
- if (typeof Reflect === 'undefined' || !Reflect.getMetadata) {
91
- throw new Error('reflect-metadata is not loaded');
92
- }
93
- });
94
- }
95
- /**
96
- * Clears all mocks between tests
97
- */
98
- function setupMockClearing() {
99
- beforeEach(() => {
100
- jest.clearAllMocks();
101
- });
102
- afterEach(() => {
103
- jest.restoreAllMocks();
104
- });
105
- }
106
- //# sourceMappingURL=setup.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.helpers.js","sourceRoot":"","sources":["../../../../src/__test-utils__/helpers/setup.helpers.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B;;GAEG;;AAOH,sDAqBC;AAKD,kDAWC;AAKD,sCAeC;AAKD,4CAcC;AAKD,oDAOC;AAKD,8CAQC;AA1GD,4BAA0B;AAE1B;;GAEG;AACH,SAAgB,qBAAqB;IACnC,MAAM,UAAU,GAAsC,EAAE,CAAC;IAEzD,OAAO;QACL;;WAEG;QACH,SAAS,CAAC,EAA8B;YACtC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,OAAO;YACX,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;YACD,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,MAA2F;IAE3F,OAAO,KAAK,EAAE,GAAG,IAAO,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;QACjC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,IAAI,GAA0D,EAAE,CAAC;IAEvE,OAAO;QACL,GAAG,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChF,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClF,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpF,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClF,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE,CACzC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,oCAAoC;QACpC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/// <reference types=\"jest\" />\n/**\n * Helper utilities for test setup and teardown\n */\n\nimport 'reflect-metadata';\n\n/**\n * Creates a clean test environment with automatic cleanup\n */\nexport function createTestEnvironment() {\n const cleanupFns: Array<() => void | Promise<void>> = [];\n\n return {\n /**\n * Registers a cleanup function to be called after the test\n */\n onCleanup(fn: () => void | Promise<void>): void {\n cleanupFns.push(fn);\n },\n\n /**\n * Cleans up all registered resources\n */\n async cleanup(): Promise<void> {\n for (const fn of cleanupFns.reverse()) {\n await fn();\n }\n cleanupFns.length = 0;\n },\n };\n}\n\n/**\n * Wraps a test function with automatic environment setup and cleanup\n */\nexport function withTestEnvironment<T extends any[]>(\n testFn: (env: ReturnType<typeof createTestEnvironment>, ...args: T) => Promise<void> | void\n) {\n return async (...args: T) => {\n const env = createTestEnvironment();\n try {\n await testFn(env, ...args);\n } finally {\n await env.cleanup();\n }\n };\n}\n\n/**\n * Creates a mock timer for testing time-based operations\n */\nexport function useFakeTimers() {\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n });\n\n return {\n advance: (ms: number) => jest.advanceTimersByTime(ms),\n runAll: () => jest.runAllTimers(),\n runPending: () => jest.runOnlyPendingTimers(),\n };\n}\n\n/**\n * Creates a test-specific logger that can be inspected\n */\nexport function createTestLogger() {\n const logs: Array<{ level: string; message: string; data?: any }> = [];\n\n return {\n log: (message: string, data?: any) => logs.push({ level: 'log', message, data }),\n warn: (message: string, data?: any) => logs.push({ level: 'warn', message, data }),\n error: (message: string, data?: any) => logs.push({ level: 'error', message, data }),\n info: (message: string, data?: any) => logs.push({ level: 'info', message, data }),\n debug: (message: string, data?: any) => logs.push({ level: 'debug', message, data }),\n getLogs: () => logs,\n clear: () => (logs.length = 0),\n hasLog: (level: string, message: string) =>\n logs.some((log) => log.level === level && log.message.includes(message)),\n };\n}\n\n/**\n * Ensures reflect-metadata is loaded for decorator tests\n */\nexport function setupReflectMetadata() {\n beforeAll(() => {\n // Ensure reflect-metadata is loaded\n if (typeof Reflect === 'undefined' || !Reflect.getMetadata) {\n throw new Error('reflect-metadata is not loaded');\n }\n });\n}\n\n/**\n * Clears all mocks between tests\n */\nexport function setupMockClearing() {\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n}\n"]}
@@ -1,9 +0,0 @@
1
- /**
2
- * Test utilities for FrontMCP SDK
3
- *
4
- * This module provides mock factories, test fixtures, and helper functions
5
- * to make testing SDK components easier.
6
- */
7
- export * from './mocks';
8
- export * from './fixtures';
9
- export * from './helpers';
@@ -1,14 +0,0 @@
1
- "use strict";
2
- /// <reference types="jest" />
3
- /**
4
- * Test utilities for FrontMCP SDK
5
- *
6
- * This module provides mock factories, test fixtures, and helper functions
7
- * to make testing SDK components easier.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const tslib_1 = require("tslib");
11
- tslib_1.__exportStar(require("./mocks"), exports);
12
- tslib_1.__exportStar(require("./fixtures"), exports);
13
- tslib_1.__exportStar(require("./helpers"), exports);
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/__test-utils__/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B;;;;;GAKG;;;AAEH,kDAAwB;AACxB,qDAA2B;AAC3B,oDAA0B","sourcesContent":["/// <reference types=\"jest\" />\n/**\n * Test utilities for FrontMCP SDK\n *\n * This module provides mock factories, test fixtures, and helper functions\n * to make testing SDK components easier.\n */\n\nexport * from './mocks';\nexport * from './fixtures';\nexport * from './helpers';\n"]}
@@ -1,50 +0,0 @@
1
- /**
2
- * Mock factory for FlowInstance
3
- */
4
- /**
5
- * Creates a mock FlowInstance for testing
6
- */
7
- export declare function createMockFlowInstance(overrides?: Partial<any>): {
8
- stages: Map<string, any>;
9
- name: string;
10
- metadata: {
11
- name: string;
12
- stages: string[];
13
- };
14
- execute: jest.Mock<Promise<{
15
- success: boolean;
16
- result: string;
17
- }>, [context: any], any>;
18
- addStage: jest.Mock<void, [stageName: string, handler: any], any>;
19
- getStage: jest.Mock<any, [stageName: string], any>;
20
- hasStage: jest.Mock<boolean, [stageName: string], any>;
21
- run: jest.Mock<Promise<any>, [context: any], any>;
22
- };
23
- /**
24
- * Creates a mock flow context
25
- */
26
- export declare function createMockFlowContext(overrides?: Partial<any>): {
27
- flowName: string;
28
- stage: string;
29
- data: {};
30
- result: undefined;
31
- error: undefined;
32
- respond: jest.Mock<{
33
- responded: boolean;
34
- result: any;
35
- }, [result: any], any>;
36
- fail: jest.Mock<{
37
- failed: boolean;
38
- error: any;
39
- }, [error: any], any>;
40
- abort: jest.Mock<{
41
- aborted: boolean;
42
- }, [], any>;
43
- next: jest.Mock<Promise<{
44
- continued: boolean;
45
- }>, [], any>;
46
- };
47
- /**
48
- * Creates a mock stage handler
49
- */
50
- export declare function createMockStageHandler(implementation?: (ctx: any) => Promise<any>): jest.Mock<Promise<any>, [ctx: any], any>;