@frontmcp/sdk 0.6.0 → 0.6.2

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 (1053) hide show
  1. package/{src/auth → auth}/instances/instance.local-primary-auth.d.ts +1 -1
  2. package/{src/auth → auth}/instances/instance.remote-primary-auth.d.ts +1 -1
  3. package/{src/auth → auth}/session/index.d.ts +1 -0
  4. package/auth/session/vercel-kv-session.store.d.ts +96 -0
  5. package/{src/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
  6. package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1779 -67
  7. package/{src/common → common}/metadata/prompt.metadata.d.ts +4 -0
  8. package/{src/common → common}/metadata/resource.metadata.d.ts +8 -0
  9. package/{src/common → common}/metadata/tool-ui.metadata.d.ts +2 -2
  10. package/{src/common → common}/metadata/tool.metadata.d.ts +4 -0
  11. package/{src/common → common}/schemas/http-output.schema.d.ts +24 -6
  12. package/common/types/options/auth/app-auth.schema.d.ts +275 -0
  13. package/common/types/options/auth/auth.interfaces.d.ts +461 -0
  14. package/common/types/options/auth/auth.schema.d.ts +284 -0
  15. package/common/types/options/auth/auth.utils.d.ts +32 -0
  16. package/common/types/options/auth/index.d.ts +16 -0
  17. package/common/types/options/auth/orchestrated.schema.d.ts +381 -0
  18. package/common/types/options/auth/public.schema.d.ts +42 -0
  19. package/common/types/options/auth/shared.schemas.d.ts +120 -0
  20. package/common/types/options/auth/transparent.schema.d.ts +56 -0
  21. package/common/types/options/auth/transport.deprecated.d.ts +63 -0
  22. package/{src/common → common}/types/options/index.d.ts +1 -1
  23. package/common/types/options/redis.options.d.ts +190 -0
  24. package/{src/common → common}/types/options/server-info.options.d.ts +4 -0
  25. package/{src/common → common}/types/options/transport.options.d.ts +74 -5
  26. package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
  27. package/common/utils/global-config.utils.d.ts +36 -0
  28. package/{src/common → common}/utils/index.d.ts +1 -0
  29. package/{src/completion → completion}/flows/complete.flow.d.ts +6 -8
  30. package/{src/errors → errors}/index.d.ts +1 -1
  31. package/{src/errors → errors}/mcp.error.d.ts +9 -0
  32. package/esm/index.mjs +22664 -0
  33. package/esm/mcp-apps/index.mjs +723 -0
  34. package/esm/package.json +81 -0
  35. package/{src/front-mcp → front-mcp}/front-mcp.providers.d.ts +246 -38
  36. package/front-mcp/index.d.ts +2 -0
  37. package/{src/index.d.ts → index.d.ts} +1 -1
  38. package/index.js +22957 -0
  39. package/logger/logger.tokens.d.ts +1 -0
  40. package/{src/logging → logging}/flows/set-level.flow.d.ts +6 -8
  41. package/mcp-apps/index.js +799 -0
  42. package/package.json +37 -17
  43. package/{src/prompt → prompt}/flows/get-prompt.flow.d.ts +14 -8
  44. package/{src/prompt → prompt}/flows/prompts-list.flow.d.ts +8 -7
  45. package/{src/resource → resource}/flows/read-resource.flow.d.ts +8 -9
  46. package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +8 -7
  47. package/{src/resource → resource}/flows/resources-list.flow.d.ts +8 -7
  48. package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +6 -8
  49. package/{src/resource → resource}/flows/unsubscribe-resource.flow.d.ts +6 -8
  50. package/store/adapters/store.vercel-kv.adapter.d.ts +86 -0
  51. package/{src/store → store}/index.d.ts +2 -0
  52. package/store/store.factory.d.ts +86 -0
  53. package/{src/tool → tool}/flows/call-tool.flow.d.ts +18 -9
  54. package/{src/tool → tool}/flows/tools-list.flow.d.ts +9 -8
  55. package/{src/tool → tool}/ui/index.d.ts +4 -4
  56. package/{src/tool → tool}/ui/platform-adapters.d.ts +2 -2
  57. package/{src/tool → tool}/ui/template-helpers.d.ts +5 -7
  58. package/{src/tool → tool}/ui/ui-resource.handler.d.ts +1 -1
  59. package/{src/transport → transport}/mcp-handlers/complete-request.handler.d.ts +4 -15
  60. package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +5 -15
  61. package/{src/transport → transport}/mcp-handlers/index.d.ts +67 -195
  62. package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +5 -15
  63. package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +5 -15
  64. package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +5 -15
  65. package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +5 -15
  66. package/{src/transport → transport}/mcp-handlers/logging-set-level-request.handler.d.ts +3 -14
  67. package/{src/transport → transport}/mcp-handlers/read-resource-request.handler.d.ts +4 -15
  68. package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +3 -14
  69. package/{src/transport → transport}/mcp-handlers/unsubscribe-request.handler.d.ts +3 -14
  70. package/{src/transport → transport}/transport.registry.d.ts +5 -1
  71. package/README.md +0 -460
  72. package/src/adapter/adapter.instance.js +0 -70
  73. package/src/adapter/adapter.instance.js.map +0 -1
  74. package/src/adapter/adapter.regsitry.js +0 -54
  75. package/src/adapter/adapter.regsitry.js.map +0 -1
  76. package/src/adapter/adapter.utils.js +0 -83
  77. package/src/adapter/adapter.utils.js.map +0 -1
  78. package/src/app/app.registry.js +0 -66
  79. package/src/app/app.registry.js.map +0 -1
  80. package/src/app/app.utils.js +0 -58
  81. package/src/app/app.utils.js.map +0 -1
  82. package/src/app/instances/app.local.instance.js +0 -67
  83. package/src/app/instances/app.local.instance.js.map +0 -1
  84. package/src/app/instances/app.remote.instance.js +0 -36
  85. package/src/app/instances/app.remote.instance.js.map +0 -1
  86. package/src/app/instances/index.js +0 -6
  87. package/src/app/instances/index.js.map +0 -1
  88. package/src/auth/auth.registry.js +0 -219
  89. package/src/auth/auth.registry.js.map +0 -1
  90. package/src/auth/auth.utils.js +0 -84
  91. package/src/auth/auth.utils.js.map +0 -1
  92. package/src/auth/authorization/authorization.class.js +0 -217
  93. package/src/auth/authorization/authorization.class.js.map +0 -1
  94. package/src/auth/authorization/authorization.types.js +0 -79
  95. package/src/auth/authorization/authorization.types.js.map +0 -1
  96. package/src/auth/authorization/index.js +0 -19
  97. package/src/auth/authorization/index.js.map +0 -1
  98. package/src/auth/authorization/orchestrated.authorization.js +0 -306
  99. package/src/auth/authorization/orchestrated.authorization.js.map +0 -1
  100. package/src/auth/authorization/public.authorization.js +0 -132
  101. package/src/auth/authorization/public.authorization.js.map +0 -1
  102. package/src/auth/authorization/transparent.authorization.js +0 -147
  103. package/src/auth/authorization/transparent.authorization.js.map +0 -1
  104. package/src/auth/consent/consent.types.js +0 -119
  105. package/src/auth/consent/consent.types.js.map +0 -1
  106. package/src/auth/consent/index.js +0 -13
  107. package/src/auth/consent/index.js.map +0 -1
  108. package/src/auth/detection/auth-provider-detection.js +0 -230
  109. package/src/auth/detection/auth-provider-detection.js.map +0 -1
  110. package/src/auth/detection/index.js +0 -15
  111. package/src/auth/detection/index.js.map +0 -1
  112. package/src/auth/flows/auth.verify.flow.js +0 -379
  113. package/src/auth/flows/auth.verify.flow.js.map +0 -1
  114. package/src/auth/flows/oauth.authorize.flow.js +0 -822
  115. package/src/auth/flows/oauth.authorize.flow.js.map +0 -1
  116. package/src/auth/flows/oauth.callback.flow.js +0 -357
  117. package/src/auth/flows/oauth.callback.flow.js.map +0 -1
  118. package/src/auth/flows/oauth.register.flow.js +0 -201
  119. package/src/auth/flows/oauth.register.flow.js.map +0 -1
  120. package/src/auth/flows/oauth.token.flow.js +0 -319
  121. package/src/auth/flows/oauth.token.flow.js.map +0 -1
  122. package/src/auth/flows/session.verify.flow.js +0 -304
  123. package/src/auth/flows/session.verify.flow.js.map +0 -1
  124. package/src/auth/flows/well-known.jwks.flow.js +0 -89
  125. package/src/auth/flows/well-known.jwks.flow.js.map +0 -1
  126. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +0 -122
  127. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +0 -1
  128. package/src/auth/flows/well-known.prm.flow.js +0 -106
  129. package/src/auth/flows/well-known.prm.flow.js.map +0 -1
  130. package/src/auth/instances/instance.local-primary-auth.js +0 -308
  131. package/src/auth/instances/instance.local-primary-auth.js.map +0 -1
  132. package/src/auth/instances/instance.remote-primary-auth.js +0 -49
  133. package/src/auth/instances/instance.remote-primary-auth.js.map +0 -1
  134. package/src/auth/jwks/dev-key-persistence.js +0 -219
  135. package/src/auth/jwks/dev-key-persistence.js.map +0 -1
  136. package/src/auth/jwks/index.js +0 -7
  137. package/src/auth/jwks/index.js.map +0 -1
  138. package/src/auth/jwks/jwks.service.js +0 -303
  139. package/src/auth/jwks/jwks.service.js.map +0 -1
  140. package/src/auth/jwks/jwks.types.js +0 -3
  141. package/src/auth/jwks/jwks.types.js.map +0 -1
  142. package/src/auth/jwks/jwks.utils.js +0 -32
  143. package/src/auth/jwks/jwks.utils.js.map +0 -1
  144. package/src/auth/machine-id.js +0 -32
  145. package/src/auth/machine-id.js.map +0 -1
  146. package/src/auth/oauth/flows/oauth.authorize.flow.js +0 -33
  147. package/src/auth/oauth/flows/oauth.authorize.flow.js.map +0 -1
  148. package/src/auth/oauth/flows/oauth.device-authorization.flow.js +0 -48
  149. package/src/auth/oauth/flows/oauth.device-authorization.flow.js.map +0 -1
  150. package/src/auth/oauth/flows/oauth.introspect.flow.js +0 -28
  151. package/src/auth/oauth/flows/oauth.introspect.flow.js.map +0 -1
  152. package/src/auth/oauth/flows/oauth.par.flow.js +0 -29
  153. package/src/auth/oauth/flows/oauth.par.flow.js.map +0 -1
  154. package/src/auth/oauth/flows/oauth.revoke.flow.js +0 -27
  155. package/src/auth/oauth/flows/oauth.revoke.flow.js.map +0 -1
  156. package/src/auth/oauth/flows/oauth.token.flow.js +0 -59
  157. package/src/auth/oauth/flows/oauth.token.flow.js.map +0 -1
  158. package/src/auth/oauth/flows/oauth.userinfo.flow.js +0 -24
  159. package/src/auth/oauth/flows/oauth.userinfo.flow.js.map +0 -1
  160. package/src/auth/oauth/flows/oidc.logout.flow.js +0 -20
  161. package/src/auth/oauth/flows/oidc.logout.flow.js.map +0 -1
  162. package/src/auth/session/authorization-vault.js +0 -817
  163. package/src/auth/session/authorization-vault.js.map +0 -1
  164. package/src/auth/session/authorization.store.js +0 -323
  165. package/src/auth/session/authorization.store.js.map +0 -1
  166. package/src/auth/session/encrypted-authorization-vault.js +0 -493
  167. package/src/auth/session/encrypted-authorization-vault.js.map +0 -1
  168. package/src/auth/session/index.js +0 -16
  169. package/src/auth/session/index.js.map +0 -1
  170. package/src/auth/session/record/session.base.js +0 -125
  171. package/src/auth/session/record/session.base.js.map +0 -1
  172. package/src/auth/session/record/session.stateful.js +0 -55
  173. package/src/auth/session/record/session.stateful.js.map +0 -1
  174. package/src/auth/session/record/session.stateless.js +0 -32
  175. package/src/auth/session/record/session.stateless.js.map +0 -1
  176. package/src/auth/session/record/session.transparent.js +0 -22
  177. package/src/auth/session/record/session.transparent.js.map +0 -1
  178. package/src/auth/session/redis-session.store.js +0 -204
  179. package/src/auth/session/redis-session.store.js.map +0 -1
  180. package/src/auth/session/session.crypto.js +0 -47
  181. package/src/auth/session/session.crypto.js.map +0 -1
  182. package/src/auth/session/session.schema.js +0 -13
  183. package/src/auth/session/session.schema.js.map +0 -1
  184. package/src/auth/session/session.service.js +0 -105
  185. package/src/auth/session/session.service.js.map +0 -1
  186. package/src/auth/session/session.transport.js +0 -20
  187. package/src/auth/session/session.transport.js.map +0 -1
  188. package/src/auth/session/session.types.js +0 -4
  189. package/src/auth/session/session.types.js.map +0 -1
  190. package/src/auth/session/token.refresh.js +0 -63
  191. package/src/auth/session/token.refresh.js.map +0 -1
  192. package/src/auth/session/token.store.js +0 -53
  193. package/src/auth/session/token.store.js.map +0 -1
  194. package/src/auth/session/token.vault.js +0 -54
  195. package/src/auth/session/token.vault.js.map +0 -1
  196. package/src/auth/session/transport-session.manager.js +0 -298
  197. package/src/auth/session/transport-session.manager.js.map +0 -1
  198. package/src/auth/session/transport-session.types.js +0 -111
  199. package/src/auth/session/transport-session.types.js.map +0 -1
  200. package/src/auth/session/utils/auth-token.utils.js +0 -57
  201. package/src/auth/session/utils/auth-token.utils.js.map +0 -1
  202. package/src/auth/session/utils/session-id.utils.js +0 -217
  203. package/src/auth/session/utils/session-id.utils.js.map +0 -1
  204. package/src/auth/session/utils/tiny-ttl-cache.js +0 -26
  205. package/src/auth/session/utils/tiny-ttl-cache.js.map +0 -1
  206. package/src/auth/session/vault-encryption.js +0 -263
  207. package/src/auth/session/vault-encryption.js.map +0 -1
  208. package/src/auth/ui/base-layout.js +0 -279
  209. package/src/auth/ui/base-layout.js.map +0 -1
  210. package/src/auth/ui/index.js +0 -34
  211. package/src/auth/ui/index.js.map +0 -1
  212. package/src/auth/ui/templates.js +0 -426
  213. package/src/auth/ui/templates.js.map +0 -1
  214. package/src/auth/utils/audience.validator.js +0 -196
  215. package/src/auth/utils/audience.validator.js.map +0 -1
  216. package/src/auth/utils/index.js +0 -7
  217. package/src/auth/utils/index.js.map +0 -1
  218. package/src/auth/utils/www-authenticate.utils.js +0 -183
  219. package/src/auth/utils/www-authenticate.utils.js.map +0 -1
  220. package/src/common/common.schema.js +0 -35
  221. package/src/common/common.schema.js.map +0 -1
  222. package/src/common/constants.js +0 -13
  223. package/src/common/constants.js.map +0 -1
  224. package/src/common/decorators/adapter.decorator.js +0 -20
  225. package/src/common/decorators/adapter.decorator.js.map +0 -1
  226. package/src/common/decorators/app.decorator.js +0 -44
  227. package/src/common/decorators/app.decorator.js.map +0 -1
  228. package/src/common/decorators/auth-provider.decorator.js +0 -20
  229. package/src/common/decorators/auth-provider.decorator.js.map +0 -1
  230. package/src/common/decorators/decorator-utils.js +0 -195
  231. package/src/common/decorators/decorator-utils.js.map +0 -1
  232. package/src/common/decorators/flow.decorator.js +0 -19
  233. package/src/common/decorators/flow.decorator.js.map +0 -1
  234. package/src/common/decorators/front-mcp.decorator.js +0 -67
  235. package/src/common/decorators/front-mcp.decorator.js.map +0 -1
  236. package/src/common/decorators/hook.decorator.js +0 -178
  237. package/src/common/decorators/hook.decorator.js.map +0 -1
  238. package/src/common/decorators/index.js +0 -16
  239. package/src/common/decorators/index.js.map +0 -1
  240. package/src/common/decorators/logger.decorator.js +0 -20
  241. package/src/common/decorators/logger.decorator.js.map +0 -1
  242. package/src/common/decorators/plugin.decorator.js +0 -39
  243. package/src/common/decorators/plugin.decorator.js.map +0 -1
  244. package/src/common/decorators/prompt.decorator.js +0 -38
  245. package/src/common/decorators/prompt.decorator.js.map +0 -1
  246. package/src/common/decorators/provider.decorator.js +0 -20
  247. package/src/common/decorators/provider.decorator.js.map +0 -1
  248. package/src/common/decorators/resource.decorator.js +0 -94
  249. package/src/common/decorators/resource.decorator.js.map +0 -1
  250. package/src/common/decorators/tool.decorator.js +0 -45
  251. package/src/common/decorators/tool.decorator.js.map +0 -1
  252. package/src/common/dynamic/dynamic.adapter.js +0 -28
  253. package/src/common/dynamic/dynamic.adapter.js.map +0 -1
  254. package/src/common/dynamic/dynamic.plugin.js +0 -42
  255. package/src/common/dynamic/dynamic.plugin.js.map +0 -1
  256. package/src/common/dynamic/dynamic.utils.js +0 -27
  257. package/src/common/dynamic/dynamic.utils.js.map +0 -1
  258. package/src/common/dynamic/index.js +0 -6
  259. package/src/common/dynamic/index.js.map +0 -1
  260. package/src/common/entries/adapter.entry.js +0 -8
  261. package/src/common/entries/adapter.entry.js.map +0 -1
  262. package/src/common/entries/app.entry.js +0 -9
  263. package/src/common/entries/app.entry.js.map +0 -1
  264. package/src/common/entries/auth-provider.entry.js +0 -8
  265. package/src/common/entries/auth-provider.entry.js.map +0 -1
  266. package/src/common/entries/base.entry.js +0 -17
  267. package/src/common/entries/base.entry.js.map +0 -1
  268. package/src/common/entries/flow.entry.js +0 -21
  269. package/src/common/entries/flow.entry.js.map +0 -1
  270. package/src/common/entries/hook.entry.js +0 -20
  271. package/src/common/entries/hook.entry.js.map +0 -1
  272. package/src/common/entries/index.js +0 -17
  273. package/src/common/entries/index.js.map +0 -1
  274. package/src/common/entries/logger.entry.js +0 -8
  275. package/src/common/entries/logger.entry.js.map +0 -1
  276. package/src/common/entries/plugin.entry.js +0 -8
  277. package/src/common/entries/plugin.entry.js.map +0 -1
  278. package/src/common/entries/prompt.entry.js +0 -18
  279. package/src/common/entries/prompt.entry.js.map +0 -1
  280. package/src/common/entries/provider.entry.js +0 -8
  281. package/src/common/entries/provider.entry.js.map +0 -1
  282. package/src/common/entries/resource.entry.js +0 -35
  283. package/src/common/entries/resource.entry.js.map +0 -1
  284. package/src/common/entries/scope.entry.js +0 -14
  285. package/src/common/entries/scope.entry.js.map +0 -1
  286. package/src/common/entries/tool.entry.js +0 -31
  287. package/src/common/entries/tool.entry.js.map +0 -1
  288. package/src/common/flow/flow.utils.js +0 -96
  289. package/src/common/flow/flow.utils.js.map +0 -1
  290. package/src/common/index.js +0 -20
  291. package/src/common/index.js.map +0 -1
  292. package/src/common/interfaces/adapter.interface.js +0 -3
  293. package/src/common/interfaces/adapter.interface.js.map +0 -1
  294. package/src/common/interfaces/app.interface.js +0 -3
  295. package/src/common/interfaces/app.interface.js.map +0 -1
  296. package/src/common/interfaces/auth-hook.interface.js +0 -135
  297. package/src/common/interfaces/auth-hook.interface.js.map +0 -1
  298. package/src/common/interfaces/auth-provider.interface.js +0 -18
  299. package/src/common/interfaces/auth-provider.interface.js.map +0 -1
  300. package/src/common/interfaces/base.interface.js +0 -3
  301. package/src/common/interfaces/base.interface.js.map +0 -1
  302. package/src/common/interfaces/execution-context.interface.js +0 -166
  303. package/src/common/interfaces/execution-context.interface.js.map +0 -1
  304. package/src/common/interfaces/flow.interface.js +0 -95
  305. package/src/common/interfaces/flow.interface.js.map +0 -1
  306. package/src/common/interfaces/front-mcp.interface.js +0 -3
  307. package/src/common/interfaces/front-mcp.interface.js.map +0 -1
  308. package/src/common/interfaces/hook.interface.js +0 -3
  309. package/src/common/interfaces/hook.interface.js.map +0 -1
  310. package/src/common/interfaces/index.js +0 -21
  311. package/src/common/interfaces/index.js.map +0 -1
  312. package/src/common/interfaces/internal/flow.utils.js +0 -83
  313. package/src/common/interfaces/internal/flow.utils.js.map +0 -1
  314. package/src/common/interfaces/internal/index.js +0 -7
  315. package/src/common/interfaces/internal/index.js.map +0 -1
  316. package/src/common/interfaces/internal/primary-auth-provider.interface.js +0 -81
  317. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +0 -1
  318. package/src/common/interfaces/internal/registry.interface.js +0 -3
  319. package/src/common/interfaces/internal/registry.interface.js.map +0 -1
  320. package/src/common/interfaces/logger.interface.js +0 -10
  321. package/src/common/interfaces/logger.interface.js.map +0 -1
  322. package/src/common/interfaces/plugin.interface.js +0 -3
  323. package/src/common/interfaces/plugin.interface.js.map +0 -1
  324. package/src/common/interfaces/prompt.interface.js +0 -81
  325. package/src/common/interfaces/prompt.interface.js.map +0 -1
  326. package/src/common/interfaces/provider.interface.js +0 -18
  327. package/src/common/interfaces/provider.interface.js.map +0 -1
  328. package/src/common/interfaces/resource.interface.js +0 -56
  329. package/src/common/interfaces/resource.interface.js.map +0 -1
  330. package/src/common/interfaces/scope.interface.js +0 -3
  331. package/src/common/interfaces/scope.interface.js.map +0 -1
  332. package/src/common/interfaces/server.interface.js +0 -18
  333. package/src/common/interfaces/server.interface.js.map +0 -1
  334. package/src/common/interfaces/session-hook.interface.js +0 -140
  335. package/src/common/interfaces/session-hook.interface.js.map +0 -1
  336. package/src/common/interfaces/tool-hook.interface.js +0 -92
  337. package/src/common/interfaces/tool-hook.interface.js.map +0 -1
  338. package/src/common/interfaces/tool.interface.js +0 -117
  339. package/src/common/interfaces/tool.interface.js.map +0 -1
  340. package/src/common/metadata/adapter.metadata.js +0 -10
  341. package/src/common/metadata/adapter.metadata.js.map +0 -1
  342. package/src/common/metadata/app.metadata.js +0 -30
  343. package/src/common/metadata/app.metadata.js.map +0 -1
  344. package/src/common/metadata/auth-provider.metadata.js +0 -19
  345. package/src/common/metadata/auth-provider.metadata.js.map +0 -1
  346. package/src/common/metadata/flow.metadata.js +0 -15
  347. package/src/common/metadata/flow.metadata.js.map +0 -1
  348. package/src/common/metadata/front-mcp.metadata.js +0 -29
  349. package/src/common/metadata/front-mcp.metadata.js.map +0 -1
  350. package/src/common/metadata/hook.metadata.js +0 -3
  351. package/src/common/metadata/hook.metadata.js.map +0 -1
  352. package/src/common/metadata/index.js +0 -17
  353. package/src/common/metadata/index.js.map +0 -1
  354. package/src/common/metadata/logger.metadata.js +0 -10
  355. package/src/common/metadata/logger.metadata.js.map +0 -1
  356. package/src/common/metadata/plugin.metadata.js +0 -18
  357. package/src/common/metadata/plugin.metadata.js.map +0 -1
  358. package/src/common/metadata/prompt.metadata.js +0 -27
  359. package/src/common/metadata/prompt.metadata.js.map +0 -1
  360. package/src/common/metadata/provider.metadata.js +0 -36
  361. package/src/common/metadata/provider.metadata.js.map +0 -1
  362. package/src/common/metadata/resource.metadata.js +0 -31
  363. package/src/common/metadata/resource.metadata.js.map +0 -1
  364. package/src/common/metadata/tool-ui.metadata.js +0 -12
  365. package/src/common/metadata/tool-ui.metadata.js.map +0 -1
  366. package/src/common/metadata/tool.metadata.js +0 -55
  367. package/src/common/metadata/tool.metadata.js.map +0 -1
  368. package/src/common/migrate/auth-transport.migrate.js +0 -140
  369. package/src/common/migrate/auth-transport.migrate.js.map +0 -1
  370. package/src/common/migrate/index.js +0 -6
  371. package/src/common/migrate/index.js.map +0 -1
  372. package/src/common/providers/base-config.provider.js +0 -128
  373. package/src/common/providers/base-config.provider.js.map +0 -1
  374. package/src/common/records/adapter.record.js +0 -11
  375. package/src/common/records/adapter.record.js.map +0 -1
  376. package/src/common/records/app.record.js +0 -9
  377. package/src/common/records/app.record.js.map +0 -1
  378. package/src/common/records/auth-provider.record.js +0 -12
  379. package/src/common/records/auth-provider.record.js.map +0 -1
  380. package/src/common/records/flow.record.js +0 -8
  381. package/src/common/records/flow.record.js.map +0 -1
  382. package/src/common/records/hook.record.js +0 -8
  383. package/src/common/records/hook.record.js.map +0 -1
  384. package/src/common/records/index.js +0 -16
  385. package/src/common/records/index.js.map +0 -1
  386. package/src/common/records/logger.record.js +0 -8
  387. package/src/common/records/logger.record.js.map +0 -1
  388. package/src/common/records/plugin.record.js +0 -11
  389. package/src/common/records/plugin.record.js.map +0 -1
  390. package/src/common/records/prompt.record.js +0 -9
  391. package/src/common/records/prompt.record.js.map +0 -1
  392. package/src/common/records/provider.record.js +0 -14
  393. package/src/common/records/provider.record.js.map +0 -1
  394. package/src/common/records/resource.record.js +0 -20
  395. package/src/common/records/resource.record.js.map +0 -1
  396. package/src/common/records/scope.record.js +0 -9
  397. package/src/common/records/scope.record.js.map +0 -1
  398. package/src/common/records/tool.record.js +0 -9
  399. package/src/common/records/tool.record.js.map +0 -1
  400. package/src/common/schemas/annotated-class.schema.js +0 -109
  401. package/src/common/schemas/annotated-class.schema.js.map +0 -1
  402. package/src/common/schemas/http-input.schema.js +0 -13
  403. package/src/common/schemas/http-input.schema.js.map +0 -1
  404. package/src/common/schemas/http-output.schema.js +0 -321
  405. package/src/common/schemas/http-output.schema.js.map +0 -1
  406. package/src/common/schemas/index.js +0 -8
  407. package/src/common/schemas/index.js.map +0 -1
  408. package/src/common/schemas/session-header.schema.js +0 -42
  409. package/src/common/schemas/session-header.schema.js.map +0 -1
  410. package/src/common/tokens/adapter.tokens.js +0 -11
  411. package/src/common/tokens/adapter.tokens.js.map +0 -1
  412. package/src/common/tokens/app.tokens.js +0 -30
  413. package/src/common/tokens/app.tokens.js.map +0 -1
  414. package/src/common/tokens/auth-provider.tokens.js +0 -12
  415. package/src/common/tokens/auth-provider.tokens.js.map +0 -1
  416. package/src/common/tokens/base.tokens.js +0 -9
  417. package/src/common/tokens/base.tokens.js.map +0 -1
  418. package/src/common/tokens/flow-hook.tokens.js +0 -9
  419. package/src/common/tokens/flow-hook.tokens.js.map +0 -1
  420. package/src/common/tokens/flow.tokens.js +0 -16
  421. package/src/common/tokens/flow.tokens.js.map +0 -1
  422. package/src/common/tokens/front-mcp.tokens.js +0 -24
  423. package/src/common/tokens/front-mcp.tokens.js.map +0 -1
  424. package/src/common/tokens/index.js +0 -17
  425. package/src/common/tokens/index.js.map +0 -1
  426. package/src/common/tokens/logger.tokens.js +0 -11
  427. package/src/common/tokens/logger.tokens.js.map +0 -1
  428. package/src/common/tokens/plugin.tokens.js +0 -18
  429. package/src/common/tokens/plugin.tokens.js.map +0 -1
  430. package/src/common/tokens/prompt.tokens.js +0 -14
  431. package/src/common/tokens/prompt.tokens.js.map +0 -1
  432. package/src/common/tokens/provider.tokens.js +0 -12
  433. package/src/common/tokens/provider.tokens.js.map +0 -1
  434. package/src/common/tokens/resource.tokens.js +0 -28
  435. package/src/common/tokens/resource.tokens.js.map +0 -1
  436. package/src/common/tokens/server.tokens.js +0 -11
  437. package/src/common/tokens/server.tokens.js.map +0 -1
  438. package/src/common/tokens/tool.tokens.js +0 -21
  439. package/src/common/tokens/tool.tokens.js.map +0 -1
  440. package/src/common/types/auth/index.js +0 -6
  441. package/src/common/types/auth/index.js.map +0 -1
  442. package/src/common/types/auth/jwt.types.js +0 -36
  443. package/src/common/types/auth/jwt.types.js.map +0 -1
  444. package/src/common/types/auth/session.types.js +0 -53
  445. package/src/common/types/auth/session.types.js.map +0 -1
  446. package/src/common/types/common.types.js +0 -3
  447. package/src/common/types/common.types.js.map +0 -1
  448. package/src/common/types/index.js +0 -7
  449. package/src/common/types/index.js.map +0 -1
  450. package/src/common/types/options/auth.options.d.ts +0 -1266
  451. package/src/common/types/options/auth.options.js +0 -560
  452. package/src/common/types/options/auth.options.js.map +0 -1
  453. package/src/common/types/options/http.options.js +0 -10
  454. package/src/common/types/options/http.options.js.map +0 -1
  455. package/src/common/types/options/index.js +0 -11
  456. package/src/common/types/options/index.js.map +0 -1
  457. package/src/common/types/options/logging.options.js +0 -33
  458. package/src/common/types/options/logging.options.js.map +0 -1
  459. package/src/common/types/options/redis.options.d.ts +0 -22
  460. package/src/common/types/options/redis.options.js +0 -45
  461. package/src/common/types/options/redis.options.js.map +0 -1
  462. package/src/common/types/options/server-info.options.js +0 -13
  463. package/src/common/types/options/server-info.options.js.map +0 -1
  464. package/src/common/types/options/session.options.js +0 -32
  465. package/src/common/types/options/session.options.js.map +0 -1
  466. package/src/common/types/options/transport.options.js +0 -121
  467. package/src/common/types/options/transport.options.js.map +0 -1
  468. package/src/common/utils/decide-request-intent.utils.js +0 -391
  469. package/src/common/utils/decide-request-intent.utils.js.map +0 -1
  470. package/src/common/utils/index.js +0 -6
  471. package/src/common/utils/index.js.map +0 -1
  472. package/src/common/utils/path.utils.js +0 -66
  473. package/src/common/utils/path.utils.js.map +0 -1
  474. package/src/completion/flows/complete.flow.js +0 -199
  475. package/src/completion/flows/complete.flow.js.map +0 -1
  476. package/src/context/frontmcp-context-storage.js +0 -183
  477. package/src/context/frontmcp-context-storage.js.map +0 -1
  478. package/src/context/frontmcp-context.js +0 -360
  479. package/src/context/frontmcp-context.js.map +0 -1
  480. package/src/context/frontmcp-context.provider.js +0 -61
  481. package/src/context/frontmcp-context.provider.js.map +0 -1
  482. package/src/context/index.js +0 -64
  483. package/src/context/index.js.map +0 -1
  484. package/src/context/request-context-storage.js +0 -183
  485. package/src/context/request-context-storage.js.map +0 -1
  486. package/src/context/request-context.js +0 -209
  487. package/src/context/request-context.js.map +0 -1
  488. package/src/context/request-context.provider.js +0 -51
  489. package/src/context/request-context.provider.js.map +0 -1
  490. package/src/context/session-key.provider.js +0 -65
  491. package/src/context/session-key.provider.js.map +0 -1
  492. package/src/context/trace-context.js +0 -142
  493. package/src/context/trace-context.js.map +0 -1
  494. package/src/errors/authorization-required.error.js +0 -274
  495. package/src/errors/authorization-required.error.js.map +0 -1
  496. package/src/errors/error-handler.js +0 -107
  497. package/src/errors/error-handler.js.map +0 -1
  498. package/src/errors/index.js +0 -44
  499. package/src/errors/index.js.map +0 -1
  500. package/src/errors/mcp.error.js +0 -398
  501. package/src/errors/mcp.error.js.map +0 -1
  502. package/src/exceptions/mcp-exceptions/session-missing.exception.js +0 -11
  503. package/src/exceptions/mcp-exceptions/session-missing.exception.js.map +0 -1
  504. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js +0 -15
  505. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js.map +0 -1
  506. package/src/flows/flow.instance.js +0 -420
  507. package/src/flows/flow.instance.js.map +0 -1
  508. package/src/flows/flow.registry.js +0 -121
  509. package/src/flows/flow.registry.js.map +0 -1
  510. package/src/flows/flow.stages.js +0 -113
  511. package/src/flows/flow.stages.js.map +0 -1
  512. package/src/flows/flow.utils.js +0 -36
  513. package/src/flows/flow.utils.js.map +0 -1
  514. package/src/front-mcp/front-mcp.js +0 -63
  515. package/src/front-mcp/front-mcp.js.map +0 -1
  516. package/src/front-mcp/front-mcp.providers.js +0 -29
  517. package/src/front-mcp/front-mcp.providers.js.map +0 -1
  518. package/src/front-mcp/front-mcp.tokens.js +0 -5
  519. package/src/front-mcp/front-mcp.tokens.js.map +0 -1
  520. package/src/front-mcp/index.d.ts +0 -1
  521. package/src/front-mcp/index.js +0 -5
  522. package/src/front-mcp/index.js.map +0 -1
  523. package/src/front-mcp/serverless-handler.js +0 -61
  524. package/src/front-mcp/serverless-handler.js.map +0 -1
  525. package/src/hooks/hook.instance.js +0 -26
  526. package/src/hooks/hook.instance.js.map +0 -1
  527. package/src/hooks/hook.registry.js +0 -152
  528. package/src/hooks/hook.registry.js.map +0 -1
  529. package/src/hooks/hooks.utils.js +0 -34
  530. package/src/hooks/hooks.utils.js.map +0 -1
  531. package/src/index.js +0 -36
  532. package/src/index.js.map +0 -1
  533. package/src/logger/instances/instance.console-logger.js +0 -75
  534. package/src/logger/instances/instance.console-logger.js.map +0 -1
  535. package/src/logger/instances/instance.logger.js +0 -77
  536. package/src/logger/instances/instance.logger.js.map +0 -1
  537. package/src/logger/logger.registry.js +0 -96
  538. package/src/logger/logger.registry.js.map +0 -1
  539. package/src/logger/logger.tokens.js +0 -3
  540. package/src/logger/logger.tokens.js.map +0 -1
  541. package/src/logger/logger.types.js +0 -8
  542. package/src/logger/logger.types.js.map +0 -1
  543. package/src/logger/logger.utils.js +0 -42
  544. package/src/logger/logger.utils.js.map +0 -1
  545. package/src/logging/flows/set-level.flow.js +0 -108
  546. package/src/logging/flows/set-level.flow.js.map +0 -1
  547. package/src/mcp-apps/csp.js +0 -267
  548. package/src/mcp-apps/csp.js.map +0 -1
  549. package/src/mcp-apps/index.js +0 -91
  550. package/src/mcp-apps/index.js.map +0 -1
  551. package/src/mcp-apps/schemas.js +0 -345
  552. package/src/mcp-apps/schemas.js.map +0 -1
  553. package/src/mcp-apps/template.js +0 -419
  554. package/src/mcp-apps/template.js.map +0 -1
  555. package/src/mcp-apps/types.js +0 -59
  556. package/src/mcp-apps/types.js.map +0 -1
  557. package/src/notification/index.js +0 -13
  558. package/src/notification/index.js.map +0 -1
  559. package/src/notification/notification.service.js +0 -731
  560. package/src/notification/notification.service.js.map +0 -1
  561. package/src/plugin/plugin.registry.js +0 -152
  562. package/src/plugin/plugin.registry.js.map +0 -1
  563. package/src/plugin/plugin.utils.js +0 -88
  564. package/src/plugin/plugin.utils.js.map +0 -1
  565. package/src/prompt/flows/get-prompt.flow.js +0 -214
  566. package/src/prompt/flows/get-prompt.flow.js.map +0 -1
  567. package/src/prompt/flows/prompts-list.flow.js +0 -176
  568. package/src/prompt/flows/prompts-list.flow.js.map +0 -1
  569. package/src/prompt/index.js +0 -17
  570. package/src/prompt/index.js.map +0 -1
  571. package/src/prompt/prompt.events.js +0 -25
  572. package/src/prompt/prompt.events.js.map +0 -1
  573. package/src/prompt/prompt.instance.js +0 -120
  574. package/src/prompt/prompt.instance.js.map +0 -1
  575. package/src/prompt/prompt.registry.js +0 -380
  576. package/src/prompt/prompt.registry.js.map +0 -1
  577. package/src/prompt/prompt.types.js +0 -11
  578. package/src/prompt/prompt.types.js.map +0 -1
  579. package/src/prompt/prompt.utils.js +0 -136
  580. package/src/prompt/prompt.utils.js.map +0 -1
  581. package/src/provider/provider.registry.js +0 -868
  582. package/src/provider/provider.registry.js.map +0 -1
  583. package/src/provider/provider.types.js +0 -3
  584. package/src/provider/provider.types.js.map +0 -1
  585. package/src/provider/provider.utils.js +0 -103
  586. package/src/provider/provider.utils.js.map +0 -1
  587. package/src/regsitry/index.js +0 -5
  588. package/src/regsitry/index.js.map +0 -1
  589. package/src/regsitry/registry.base.js +0 -32
  590. package/src/regsitry/registry.base.js.map +0 -1
  591. package/src/resource/flows/read-resource.flow.js +0 -270
  592. package/src/resource/flows/read-resource.flow.js.map +0 -1
  593. package/src/resource/flows/resource-templates-list.flow.js +0 -191
  594. package/src/resource/flows/resource-templates-list.flow.js.map +0 -1
  595. package/src/resource/flows/resources-list.flow.js +0 -196
  596. package/src/resource/flows/resources-list.flow.js.map +0 -1
  597. package/src/resource/flows/subscribe-resource.flow.js +0 -123
  598. package/src/resource/flows/subscribe-resource.flow.js.map +0 -1
  599. package/src/resource/flows/unsubscribe-resource.flow.js +0 -107
  600. package/src/resource/flows/unsubscribe-resource.flow.js.map +0 -1
  601. package/src/resource/index.js +0 -20
  602. package/src/resource/index.js.map +0 -1
  603. package/src/resource/resource.events.js +0 -17
  604. package/src/resource/resource.events.js.map +0 -1
  605. package/src/resource/resource.instance.js +0 -163
  606. package/src/resource/resource.instance.js.map +0 -1
  607. package/src/resource/resource.registry.js +0 -468
  608. package/src/resource/resource.registry.js.map +0 -1
  609. package/src/resource/resource.types.js +0 -11
  610. package/src/resource/resource.types.js.map +0 -1
  611. package/src/resource/resource.utils.js +0 -151
  612. package/src/resource/resource.utils.js.map +0 -1
  613. package/src/scope/flows/http.request.flow.js +0 -474
  614. package/src/scope/flows/http.request.flow.js.map +0 -1
  615. package/src/scope/index.js +0 -6
  616. package/src/scope/index.js.map +0 -1
  617. package/src/scope/scope.instance.js +0 -263
  618. package/src/scope/scope.instance.js.map +0 -1
  619. package/src/scope/scope.registry.js +0 -94
  620. package/src/scope/scope.registry.js.map +0 -1
  621. package/src/scope/scope.utils.js +0 -61
  622. package/src/scope/scope.utils.js.map +0 -1
  623. package/src/server/adapters/base.host.adapter.js +0 -8
  624. package/src/server/adapters/base.host.adapter.js.map +0 -1
  625. package/src/server/adapters/express.host.adapter.js +0 -70
  626. package/src/server/adapters/express.host.adapter.js.map +0 -1
  627. package/src/server/server.instance.js +0 -54
  628. package/src/server/server.instance.js.map +0 -1
  629. package/src/server/server.types.js +0 -3
  630. package/src/server/server.types.js.map +0 -1
  631. package/src/server/server.validation.js +0 -192
  632. package/src/server/server.validation.js.map +0 -1
  633. package/src/store/adapters/store.base.adapter.js +0 -16
  634. package/src/store/adapters/store.base.adapter.js.map +0 -1
  635. package/src/store/adapters/store.memory.adapter.js +0 -89
  636. package/src/store/adapters/store.memory.adapter.js.map +0 -1
  637. package/src/store/adapters/store.redis.adapter.js +0 -104
  638. package/src/store/adapters/store.redis.adapter.js.map +0 -1
  639. package/src/store/index.js +0 -12
  640. package/src/store/index.js.map +0 -1
  641. package/src/store/store.helpers.js +0 -67
  642. package/src/store/store.helpers.js.map +0 -1
  643. package/src/store/store.registry.js +0 -37
  644. package/src/store/store.registry.js.map +0 -1
  645. package/src/store/store.tokens.js +0 -7
  646. package/src/store/store.tokens.js.map +0 -1
  647. package/src/store/store.types.js +0 -11
  648. package/src/store/store.types.js.map +0 -1
  649. package/src/store/store.utils.js +0 -18
  650. package/src/store/store.utils.js.map +0 -1
  651. package/src/tool/flows/call-tool.flow.js +0 -616
  652. package/src/tool/flows/call-tool.flow.js.map +0 -1
  653. package/src/tool/flows/tools-list.flow.js +0 -328
  654. package/src/tool/flows/tools-list.flow.js.map +0 -1
  655. package/src/tool/tool.events.js +0 -16
  656. package/src/tool/tool.events.js.map +0 -1
  657. package/src/tool/tool.instance.js +0 -117
  658. package/src/tool/tool.instance.js.map +0 -1
  659. package/src/tool/tool.registry.js +0 -353
  660. package/src/tool/tool.registry.js.map +0 -1
  661. package/src/tool/tool.types.js +0 -10
  662. package/src/tool/tool.types.js.map +0 -1
  663. package/src/tool/tool.utils.js +0 -366
  664. package/src/tool/tool.utils.js.map +0 -1
  665. package/src/tool/ui/index.js +0 -63
  666. package/src/tool/ui/index.js.map +0 -1
  667. package/src/tool/ui/platform-adapters.js +0 -18
  668. package/src/tool/ui/platform-adapters.js.map +0 -1
  669. package/src/tool/ui/template-helpers.js +0 -112
  670. package/src/tool/ui/template-helpers.js.map +0 -1
  671. package/src/tool/ui/ui-resource-template.js +0 -64
  672. package/src/tool/ui/ui-resource-template.js.map +0 -1
  673. package/src/tool/ui/ui-resource.handler.js +0 -129
  674. package/src/tool/ui/ui-resource.handler.js.map +0 -1
  675. package/src/transport/adapters/transport.local.adapter.js +0 -148
  676. package/src/transport/adapters/transport.local.adapter.js.map +0 -1
  677. package/src/transport/adapters/transport.sse.adapter.js +0 -65
  678. package/src/transport/adapters/transport.sse.adapter.js.map +0 -1
  679. package/src/transport/adapters/transport.streamable-http.adapter.js +0 -112
  680. package/src/transport/adapters/transport.streamable-http.adapter.js.map +0 -1
  681. package/src/transport/flows/handle.sse.flow.js +0 -197
  682. package/src/transport/flows/handle.sse.flow.js.map +0 -1
  683. package/src/transport/flows/handle.stateless-http.flow.js +0 -102
  684. package/src/transport/flows/handle.stateless-http.flow.js.map +0 -1
  685. package/src/transport/flows/handle.streamable-http.flow.js +0 -315
  686. package/src/transport/flows/handle.streamable-http.flow.js.map +0 -1
  687. package/src/transport/legacy/legacy.sse.tranporter.js +0 -185
  688. package/src/transport/legacy/legacy.sse.tranporter.js.map +0 -1
  689. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js +0 -14
  690. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js.map +0 -1
  691. package/src/transport/mcp-handlers/call-tool-request.handler.js +0 -46
  692. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +0 -1
  693. package/src/transport/mcp-handlers/complete-request.handler.js +0 -11
  694. package/src/transport/mcp-handlers/complete-request.handler.js.map +0 -1
  695. package/src/transport/mcp-handlers/get-prompt-request.handler.js +0 -11
  696. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +0 -1
  697. package/src/transport/mcp-handlers/index.js +0 -57
  698. package/src/transport/mcp-handlers/index.js.map +0 -1
  699. package/src/transport/mcp-handlers/initialize-request.handler.js +0 -109
  700. package/src/transport/mcp-handlers/initialize-request.handler.js.map +0 -1
  701. package/src/transport/mcp-handlers/list-prompts-request.handler.js +0 -11
  702. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +0 -1
  703. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +0 -12
  704. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +0 -1
  705. package/src/transport/mcp-handlers/list-resources-request.handler.js +0 -12
  706. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +0 -1
  707. package/src/transport/mcp-handlers/list-tools-request.handler.js +0 -11
  708. package/src/transport/mcp-handlers/list-tools-request.handler.js.map +0 -1
  709. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +0 -34
  710. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +0 -1
  711. package/src/transport/mcp-handlers/mcp-handlers.types.js +0 -3
  712. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +0 -1
  713. package/src/transport/mcp-handlers/read-resource-request.handler.js +0 -12
  714. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +0 -1
  715. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +0 -26
  716. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +0 -1
  717. package/src/transport/mcp-handlers/subscribe-request.handler.js +0 -34
  718. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +0 -1
  719. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +0 -34
  720. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +0 -1
  721. package/src/transport/transport.error.js +0 -25
  722. package/src/transport/transport.error.js.map +0 -1
  723. package/src/transport/transport.event-store.js +0 -36
  724. package/src/transport/transport.event-store.js.map +0 -1
  725. package/src/transport/transport.local.js +0 -71
  726. package/src/transport/transport.local.js.map +0 -1
  727. package/src/transport/transport.registry.js +0 -523
  728. package/src/transport/transport.registry.js.map +0 -1
  729. package/src/transport/transport.remote.js +0 -31
  730. package/src/transport/transport.remote.js.map +0 -1
  731. package/src/transport/transport.types.js +0 -3
  732. package/src/transport/transport.types.js.map +0 -1
  733. package/src/types/drinen-hooks.types.js +0 -3
  734. package/src/types/drinen-hooks.types.js.map +0 -1
  735. package/src/types/invoke.type.js +0 -34
  736. package/src/types/invoke.type.js.map +0 -1
  737. package/src/types/token.types.js +0 -3
  738. package/src/types/token.types.js.map +0 -1
  739. package/src/utils/content.utils.js +0 -194
  740. package/src/utils/content.utils.js.map +0 -1
  741. package/src/utils/index.js +0 -55
  742. package/src/utils/index.js.map +0 -1
  743. package/src/utils/lineage.utils.js +0 -82
  744. package/src/utils/lineage.utils.js.map +0 -1
  745. package/src/utils/metadata.utils.js +0 -26
  746. package/src/utils/metadata.utils.js.map +0 -1
  747. package/src/utils/naming.utils.js +0 -136
  748. package/src/utils/naming.utils.js.map +0 -1
  749. package/src/utils/server.utils.js +0 -59
  750. package/src/utils/server.utils.js.map +0 -1
  751. package/src/utils/string.utils.js +0 -10
  752. package/src/utils/string.utils.js.map +0 -1
  753. package/src/utils/token.utils.js +0 -65
  754. package/src/utils/token.utils.js.map +0 -1
  755. package/src/utils/types.utils.js +0 -3
  756. package/src/utils/types.utils.js.map +0 -1
  757. package/src/utils/uri-template.utils.js +0 -113
  758. package/src/utils/uri-template.utils.js.map +0 -1
  759. package/src/utils/uri-validation.utils.js +0 -76
  760. package/src/utils/uri-validation.utils.js.map +0 -1
  761. package/{src/adapter → adapter}/adapter.instance.d.ts +0 -0
  762. package/{src/adapter → adapter}/adapter.regsitry.d.ts +0 -0
  763. package/{src/adapter → adapter}/adapter.utils.d.ts +0 -0
  764. package/{src/app → app}/app.registry.d.ts +0 -0
  765. package/{src/app → app}/app.utils.d.ts +0 -0
  766. package/{src/app → app}/instances/app.local.instance.d.ts +0 -0
  767. package/{src/app → app}/instances/app.remote.instance.d.ts +0 -0
  768. package/{src/app → app}/instances/index.d.ts +0 -0
  769. package/{src/auth → auth}/auth.registry.d.ts +0 -0
  770. package/{src/auth → auth}/auth.utils.d.ts +0 -0
  771. package/{src/auth → auth}/authorization/authorization.class.d.ts +0 -0
  772. package/{src/auth → auth}/authorization/authorization.types.d.ts +0 -0
  773. package/{src/auth → auth}/authorization/index.d.ts +0 -0
  774. package/{src/auth → auth}/authorization/orchestrated.authorization.d.ts +0 -0
  775. package/{src/auth → auth}/authorization/public.authorization.d.ts +0 -0
  776. package/{src/auth → auth}/authorization/transparent.authorization.d.ts +0 -0
  777. package/{src/auth → auth}/consent/consent.types.d.ts +0 -0
  778. package/{src/auth → auth}/consent/index.d.ts +0 -0
  779. package/{src/auth → auth}/detection/auth-provider-detection.d.ts +0 -0
  780. package/{src/auth → auth}/detection/index.d.ts +0 -0
  781. package/{src/auth → auth}/flows/auth.verify.flow.d.ts +0 -0
  782. package/{src/auth → auth}/flows/oauth.authorize.flow.d.ts +0 -0
  783. package/{src/auth → auth}/flows/oauth.callback.flow.d.ts +0 -0
  784. package/{src/auth → auth}/flows/oauth.register.flow.d.ts +0 -0
  785. package/{src/auth → auth}/flows/oauth.token.flow.d.ts +0 -0
  786. package/{src/auth → auth}/flows/session.verify.flow.d.ts +0 -0
  787. package/{src/auth → auth}/flows/well-known.jwks.flow.d.ts +0 -0
  788. package/{src/auth → auth}/flows/well-known.oauth-authorization-server.flow.d.ts +0 -0
  789. package/{src/auth → auth}/flows/well-known.prm.flow.d.ts +0 -0
  790. package/{src/auth → auth}/jwks/dev-key-persistence.d.ts +0 -0
  791. package/{src/auth → auth}/jwks/index.d.ts +0 -0
  792. package/{src/auth → auth}/jwks/jwks.service.d.ts +0 -0
  793. package/{src/auth → auth}/jwks/jwks.types.d.ts +0 -0
  794. package/{src/auth → auth}/jwks/jwks.utils.d.ts +0 -0
  795. package/{src/auth → auth}/machine-id.d.ts +0 -0
  796. package/{src/auth → auth}/oauth/flows/oauth.authorize.flow.d.ts +0 -0
  797. package/{src/auth → auth}/oauth/flows/oauth.device-authorization.flow.d.ts +0 -0
  798. package/{src/auth → auth}/oauth/flows/oauth.introspect.flow.d.ts +0 -0
  799. package/{src/auth → auth}/oauth/flows/oauth.par.flow.d.ts +0 -0
  800. package/{src/auth → auth}/oauth/flows/oauth.revoke.flow.d.ts +0 -0
  801. package/{src/auth → auth}/oauth/flows/oauth.token.flow.d.ts +0 -0
  802. package/{src/auth → auth}/oauth/flows/oauth.userinfo.flow.d.ts +0 -0
  803. package/{src/auth → auth}/oauth/flows/oidc.logout.flow.d.ts +0 -0
  804. package/{src/auth → auth}/session/authorization-vault.d.ts +0 -0
  805. package/{src/auth → auth}/session/authorization.store.d.ts +0 -0
  806. package/{src/auth → auth}/session/encrypted-authorization-vault.d.ts +0 -0
  807. package/{src/auth → auth}/session/record/session.base.d.ts +0 -0
  808. package/{src/auth → auth}/session/record/session.stateful.d.ts +0 -0
  809. package/{src/auth → auth}/session/record/session.stateless.d.ts +0 -0
  810. package/{src/auth → auth}/session/record/session.transparent.d.ts +0 -0
  811. package/{src/auth → auth}/session/redis-session.store.d.ts +0 -0
  812. package/{src/auth → auth}/session/session.crypto.d.ts +0 -0
  813. package/{src/auth → auth}/session/session.schema.d.ts +0 -0
  814. package/{src/auth → auth}/session/session.service.d.ts +0 -0
  815. package/{src/auth → auth}/session/session.transport.d.ts +0 -0
  816. package/{src/auth → auth}/session/session.types.d.ts +0 -0
  817. package/{src/auth → auth}/session/token.refresh.d.ts +0 -0
  818. package/{src/auth → auth}/session/token.store.d.ts +0 -0
  819. package/{src/auth → auth}/session/token.vault.d.ts +0 -0
  820. package/{src/auth → auth}/session/transport-session.manager.d.ts +0 -0
  821. package/{src/auth → auth}/session/transport-session.types.d.ts +0 -0
  822. package/{src/auth → auth}/session/utils/auth-token.utils.d.ts +0 -0
  823. package/{src/auth → auth}/session/utils/session-id.utils.d.ts +0 -0
  824. package/{src/auth → auth}/session/utils/tiny-ttl-cache.d.ts +0 -0
  825. package/{src/auth → auth}/session/vault-encryption.d.ts +0 -0
  826. package/{src/auth → auth}/ui/base-layout.d.ts +0 -0
  827. package/{src/auth → auth}/ui/index.d.ts +0 -0
  828. package/{src/auth → auth}/ui/templates.d.ts +0 -0
  829. package/{src/auth → auth}/utils/audience.validator.d.ts +0 -0
  830. package/{src/auth → auth}/utils/index.d.ts +0 -0
  831. package/{src/auth → auth}/utils/www-authenticate.utils.d.ts +0 -0
  832. package/{src/common → common}/common.schema.d.ts +0 -0
  833. package/{src/common → common}/constants.d.ts +0 -0
  834. package/{src/common → common}/decorators/adapter.decorator.d.ts +0 -0
  835. package/{src/common → common}/decorators/app.decorator.d.ts +0 -0
  836. package/{src/common → common}/decorators/auth-provider.decorator.d.ts +0 -0
  837. package/{src/common → common}/decorators/decorator-utils.d.ts +0 -0
  838. package/{src/common → common}/decorators/flow.decorator.d.ts +0 -0
  839. package/{src/common → common}/decorators/front-mcp.decorator.d.ts +0 -0
  840. package/{src/common → common}/decorators/hook.decorator.d.ts +0 -0
  841. package/{src/common → common}/decorators/index.d.ts +0 -0
  842. package/{src/common → common}/decorators/logger.decorator.d.ts +0 -0
  843. package/{src/common → common}/decorators/plugin.decorator.d.ts +0 -0
  844. package/{src/common → common}/decorators/prompt.decorator.d.ts +0 -0
  845. package/{src/common → common}/decorators/provider.decorator.d.ts +0 -0
  846. package/{src/common → common}/decorators/resource.decorator.d.ts +0 -0
  847. package/{src/common → common}/decorators/tool.decorator.d.ts +0 -0
  848. package/{src/common → common}/dynamic/dynamic.adapter.d.ts +0 -0
  849. package/{src/common → common}/dynamic/dynamic.plugin.d.ts +0 -0
  850. package/{src/common → common}/dynamic/dynamic.utils.d.ts +0 -0
  851. package/{src/common → common}/dynamic/index.d.ts +0 -0
  852. package/{src/common → common}/entries/adapter.entry.d.ts +0 -0
  853. package/{src/common → common}/entries/app.entry.d.ts +0 -0
  854. package/{src/common → common}/entries/auth-provider.entry.d.ts +0 -0
  855. package/{src/common → common}/entries/base.entry.d.ts +0 -0
  856. package/{src/common → common}/entries/flow.entry.d.ts +0 -0
  857. package/{src/common → common}/entries/hook.entry.d.ts +0 -0
  858. package/{src/common → common}/entries/index.d.ts +0 -0
  859. package/{src/common → common}/entries/logger.entry.d.ts +0 -0
  860. package/{src/common → common}/entries/plugin.entry.d.ts +0 -0
  861. package/{src/common → common}/entries/prompt.entry.d.ts +0 -0
  862. package/{src/common → common}/entries/provider.entry.d.ts +0 -0
  863. package/{src/common → common}/entries/resource.entry.d.ts +0 -0
  864. package/{src/common → common}/entries/scope.entry.d.ts +0 -0
  865. package/{src/common → common}/entries/tool.entry.d.ts +0 -0
  866. package/{src/common → common}/flow/flow.utils.d.ts +0 -0
  867. package/{src/common → common}/index.d.ts +0 -0
  868. package/{src/common → common}/interfaces/adapter.interface.d.ts +0 -0
  869. package/{src/common → common}/interfaces/app.interface.d.ts +0 -0
  870. package/{src/common → common}/interfaces/auth-hook.interface.d.ts +0 -0
  871. package/{src/common → common}/interfaces/auth-provider.interface.d.ts +0 -0
  872. package/{src/common → common}/interfaces/base.interface.d.ts +0 -0
  873. package/{src/common → common}/interfaces/execution-context.interface.d.ts +0 -0
  874. package/{src/common → common}/interfaces/flow.interface.d.ts +0 -0
  875. package/{src/common → common}/interfaces/front-mcp.interface.d.ts +0 -0
  876. package/{src/common → common}/interfaces/hook.interface.d.ts +0 -0
  877. package/{src/common → common}/interfaces/index.d.ts +0 -0
  878. package/{src/common → common}/interfaces/internal/flow.utils.d.ts +0 -0
  879. package/{src/common → common}/interfaces/internal/index.d.ts +0 -0
  880. package/{src/common → common}/interfaces/internal/registry.interface.d.ts +0 -0
  881. package/{src/common → common}/interfaces/logger.interface.d.ts +0 -0
  882. package/{src/common → common}/interfaces/plugin.interface.d.ts +0 -0
  883. package/{src/common → common}/interfaces/prompt.interface.d.ts +0 -0
  884. package/{src/common → common}/interfaces/provider.interface.d.ts +0 -0
  885. package/{src/common → common}/interfaces/resource.interface.d.ts +0 -0
  886. package/{src/common → common}/interfaces/scope.interface.d.ts +0 -0
  887. package/{src/common → common}/interfaces/server.interface.d.ts +0 -0
  888. package/{src/common → common}/interfaces/session-hook.interface.d.ts +0 -0
  889. package/{src/common → common}/interfaces/tool-hook.interface.d.ts +0 -0
  890. package/{src/common → common}/interfaces/tool.interface.d.ts +0 -0
  891. package/{src/common → common}/metadata/adapter.metadata.d.ts +0 -0
  892. package/{src/common → common}/metadata/app.metadata.d.ts +42 -42
  893. /package/{src/common → common}/metadata/auth-provider.metadata.d.ts +0 -0
  894. /package/{src/common → common}/metadata/flow.metadata.d.ts +0 -0
  895. /package/{src/common → common}/metadata/hook.metadata.d.ts +0 -0
  896. /package/{src/common → common}/metadata/index.d.ts +0 -0
  897. /package/{src/common → common}/metadata/logger.metadata.d.ts +0 -0
  898. /package/{src/common → common}/metadata/plugin.metadata.d.ts +0 -0
  899. /package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
  900. /package/{src/common → common}/migrate/auth-transport.migrate.d.ts +0 -0
  901. /package/{src/common → common}/migrate/index.d.ts +0 -0
  902. /package/{src/common → common}/providers/base-config.provider.d.ts +0 -0
  903. /package/{src/common → common}/records/adapter.record.d.ts +0 -0
  904. /package/{src/common → common}/records/app.record.d.ts +0 -0
  905. /package/{src/common → common}/records/auth-provider.record.d.ts +0 -0
  906. /package/{src/common → common}/records/flow.record.d.ts +0 -0
  907. /package/{src/common → common}/records/hook.record.d.ts +0 -0
  908. /package/{src/common → common}/records/index.d.ts +0 -0
  909. /package/{src/common → common}/records/logger.record.d.ts +0 -0
  910. /package/{src/common → common}/records/plugin.record.d.ts +0 -0
  911. /package/{src/common → common}/records/prompt.record.d.ts +0 -0
  912. /package/{src/common → common}/records/provider.record.d.ts +0 -0
  913. /package/{src/common → common}/records/resource.record.d.ts +0 -0
  914. /package/{src/common → common}/records/scope.record.d.ts +0 -0
  915. /package/{src/common → common}/records/tool.record.d.ts +0 -0
  916. /package/{src/common → common}/schemas/annotated-class.schema.d.ts +0 -0
  917. /package/{src/common → common}/schemas/http-input.schema.d.ts +0 -0
  918. /package/{src/common → common}/schemas/index.d.ts +0 -0
  919. /package/{src/common → common}/schemas/session-header.schema.d.ts +0 -0
  920. /package/{src/common → common}/tokens/adapter.tokens.d.ts +0 -0
  921. /package/{src/common → common}/tokens/app.tokens.d.ts +0 -0
  922. /package/{src/common → common}/tokens/auth-provider.tokens.d.ts +0 -0
  923. /package/{src/common → common}/tokens/base.tokens.d.ts +0 -0
  924. /package/{src/common → common}/tokens/flow-hook.tokens.d.ts +0 -0
  925. /package/{src/common → common}/tokens/flow.tokens.d.ts +0 -0
  926. /package/{src/common → common}/tokens/front-mcp.tokens.d.ts +0 -0
  927. /package/{src/common → common}/tokens/index.d.ts +0 -0
  928. /package/{src/common → common}/tokens/logger.tokens.d.ts +0 -0
  929. /package/{src/common → common}/tokens/plugin.tokens.d.ts +0 -0
  930. /package/{src/common → common}/tokens/prompt.tokens.d.ts +0 -0
  931. /package/{src/common → common}/tokens/provider.tokens.d.ts +0 -0
  932. /package/{src/common → common}/tokens/resource.tokens.d.ts +0 -0
  933. /package/{src/common → common}/tokens/server.tokens.d.ts +0 -0
  934. /package/{src/common → common}/tokens/tool.tokens.d.ts +0 -0
  935. /package/{src/common → common}/types/auth/index.d.ts +0 -0
  936. /package/{src/common → common}/types/auth/jwt.types.d.ts +0 -0
  937. /package/{src/common → common}/types/auth/session.types.d.ts +0 -0
  938. /package/{src/common → common}/types/common.types.d.ts +0 -0
  939. /package/{src/common → common}/types/index.d.ts +0 -0
  940. /package/{src/logger/logger.tokens.d.ts → common/types/options/auth/auth.typecheck.d.ts} +0 -0
  941. /package/{src/common → common}/types/options/http.options.d.ts +0 -0
  942. /package/{src/common → common}/types/options/logging.options.d.ts +0 -0
  943. /package/{src/common → common}/types/options/session.options.d.ts +0 -0
  944. /package/{src/common → common}/utils/path.utils.d.ts +0 -0
  945. /package/{src/context → context}/frontmcp-context-storage.d.ts +0 -0
  946. /package/{src/context → context}/frontmcp-context.d.ts +0 -0
  947. /package/{src/context → context}/frontmcp-context.provider.d.ts +0 -0
  948. /package/{src/context → context}/index.d.ts +0 -0
  949. /package/{src/context → context}/request-context-storage.d.ts +0 -0
  950. /package/{src/context → context}/request-context.d.ts +0 -0
  951. /package/{src/context → context}/request-context.provider.d.ts +0 -0
  952. /package/{src/context → context}/session-key.provider.d.ts +0 -0
  953. /package/{src/context → context}/trace-context.d.ts +0 -0
  954. /package/{src/errors → errors}/authorization-required.error.d.ts +0 -0
  955. /package/{src/errors → errors}/error-handler.d.ts +0 -0
  956. /package/{src/exceptions → exceptions}/mcp-exceptions/session-missing.exception.d.ts +0 -0
  957. /package/{src/exceptions → exceptions}/mcp-exceptions/unsupported-client-version.exception.d.ts +0 -0
  958. /package/{src/flows → flows}/flow.instance.d.ts +0 -0
  959. /package/{src/flows → flows}/flow.registry.d.ts +0 -0
  960. /package/{src/flows → flows}/flow.stages.d.ts +0 -0
  961. /package/{src/flows → flows}/flow.utils.d.ts +0 -0
  962. /package/{src/front-mcp → front-mcp}/front-mcp.d.ts +0 -0
  963. /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
  964. /package/{src/front-mcp → front-mcp}/serverless-handler.d.ts +0 -0
  965. /package/{src/hooks → hooks}/hook.instance.d.ts +0 -0
  966. /package/{src/hooks → hooks}/hook.registry.d.ts +0 -0
  967. /package/{src/hooks → hooks}/hooks.utils.d.ts +0 -0
  968. /package/{src/logger → logger}/instances/instance.console-logger.d.ts +0 -0
  969. /package/{src/logger → logger}/instances/instance.logger.d.ts +0 -0
  970. /package/{src/logger → logger}/logger.registry.d.ts +0 -0
  971. /package/{src/logger → logger}/logger.types.d.ts +0 -0
  972. /package/{src/logger → logger}/logger.utils.d.ts +0 -0
  973. /package/{src/mcp-apps → mcp-apps}/csp.d.ts +0 -0
  974. /package/{src/mcp-apps → mcp-apps}/index.d.ts +0 -0
  975. /package/{src/mcp-apps → mcp-apps}/schemas.d.ts +0 -0
  976. /package/{src/mcp-apps → mcp-apps}/template.d.ts +0 -0
  977. /package/{src/mcp-apps → mcp-apps}/types.d.ts +0 -0
  978. /package/{src/notification → notification}/index.d.ts +0 -0
  979. /package/{src/notification → notification}/notification.service.d.ts +0 -0
  980. /package/{src/plugin → plugin}/plugin.registry.d.ts +0 -0
  981. /package/{src/plugin → plugin}/plugin.utils.d.ts +0 -0
  982. /package/{src/prompt → prompt}/index.d.ts +0 -0
  983. /package/{src/prompt → prompt}/prompt.events.d.ts +0 -0
  984. /package/{src/prompt → prompt}/prompt.instance.d.ts +0 -0
  985. /package/{src/prompt → prompt}/prompt.registry.d.ts +0 -0
  986. /package/{src/prompt → prompt}/prompt.types.d.ts +0 -0
  987. /package/{src/prompt → prompt}/prompt.utils.d.ts +0 -0
  988. /package/{src/provider → provider}/provider.registry.d.ts +0 -0
  989. /package/{src/provider → provider}/provider.types.d.ts +0 -0
  990. /package/{src/provider → provider}/provider.utils.d.ts +0 -0
  991. /package/{src/regsitry → regsitry}/index.d.ts +0 -0
  992. /package/{src/regsitry → regsitry}/registry.base.d.ts +0 -0
  993. /package/{src/resource → resource}/index.d.ts +0 -0
  994. /package/{src/resource → resource}/resource.events.d.ts +0 -0
  995. /package/{src/resource → resource}/resource.instance.d.ts +0 -0
  996. /package/{src/resource → resource}/resource.registry.d.ts +0 -0
  997. /package/{src/resource → resource}/resource.types.d.ts +0 -0
  998. /package/{src/resource → resource}/resource.utils.d.ts +0 -0
  999. /package/{src/scope → scope}/flows/http.request.flow.d.ts +0 -0
  1000. /package/{src/scope → scope}/index.d.ts +0 -0
  1001. /package/{src/scope → scope}/scope.instance.d.ts +0 -0
  1002. /package/{src/scope → scope}/scope.registry.d.ts +0 -0
  1003. /package/{src/scope → scope}/scope.utils.d.ts +0 -0
  1004. /package/{src/server → server}/adapters/base.host.adapter.d.ts +0 -0
  1005. /package/{src/server → server}/adapters/express.host.adapter.d.ts +0 -0
  1006. /package/{src/server → server}/server.instance.d.ts +0 -0
  1007. /package/{src/server → server}/server.types.d.ts +0 -0
  1008. /package/{src/server → server}/server.validation.d.ts +0 -0
  1009. /package/{src/store → store}/adapters/store.base.adapter.d.ts +0 -0
  1010. /package/{src/store → store}/adapters/store.memory.adapter.d.ts +0 -0
  1011. /package/{src/store → store}/adapters/store.redis.adapter.d.ts +0 -0
  1012. /package/{src/store → store}/store.helpers.d.ts +0 -0
  1013. /package/{src/store → store}/store.registry.d.ts +0 -0
  1014. /package/{src/store → store}/store.tokens.d.ts +0 -0
  1015. /package/{src/store → store}/store.types.d.ts +0 -0
  1016. /package/{src/store → store}/store.utils.d.ts +0 -0
  1017. /package/{src/tool → tool}/tool.events.d.ts +0 -0
  1018. /package/{src/tool → tool}/tool.instance.d.ts +0 -0
  1019. /package/{src/tool → tool}/tool.registry.d.ts +0 -0
  1020. /package/{src/tool → tool}/tool.types.d.ts +0 -0
  1021. /package/{src/tool → tool}/tool.utils.d.ts +0 -0
  1022. /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
  1023. /package/{src/transport → transport}/adapters/transport.local.adapter.d.ts +0 -0
  1024. /package/{src/transport → transport}/adapters/transport.sse.adapter.d.ts +0 -0
  1025. /package/{src/transport → transport}/adapters/transport.streamable-http.adapter.d.ts +0 -0
  1026. /package/{src/transport → transport}/flows/handle.sse.flow.d.ts +0 -0
  1027. /package/{src/transport → transport}/flows/handle.stateless-http.flow.d.ts +0 -0
  1028. /package/{src/transport → transport}/flows/handle.streamable-http.flow.d.ts +0 -0
  1029. /package/{src/transport → transport}/legacy/legacy.sse.tranporter.d.ts +0 -0
  1030. /package/{src/transport → transport}/mcp-handlers/Initialized-notification.hanlder.d.ts +0 -0
  1031. /package/{src/transport → transport}/mcp-handlers/call-tool-request.handler.d.ts +0 -0
  1032. /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
  1033. /package/{src/transport → transport}/mcp-handlers/mcp-handlers.types.d.ts +0 -0
  1034. /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
  1035. /package/{src/transport → transport}/transport.error.d.ts +0 -0
  1036. /package/{src/transport → transport}/transport.event-store.d.ts +0 -0
  1037. /package/{src/transport → transport}/transport.local.d.ts +0 -0
  1038. /package/{src/transport → transport}/transport.remote.d.ts +0 -0
  1039. /package/{src/transport → transport}/transport.types.d.ts +0 -0
  1040. /package/{src/types → types}/drinen-hooks.types.d.ts +0 -0
  1041. /package/{src/types → types}/invoke.type.d.ts +0 -0
  1042. /package/{src/types → types}/token.types.d.ts +0 -0
  1043. /package/{src/utils → utils}/content.utils.d.ts +0 -0
  1044. /package/{src/utils → utils}/index.d.ts +0 -0
  1045. /package/{src/utils → utils}/lineage.utils.d.ts +0 -0
  1046. /package/{src/utils → utils}/metadata.utils.d.ts +0 -0
  1047. /package/{src/utils → utils}/naming.utils.d.ts +0 -0
  1048. /package/{src/utils → utils}/server.utils.d.ts +0 -0
  1049. /package/{src/utils → utils}/string.utils.d.ts +0 -0
  1050. /package/{src/utils → utils}/token.utils.d.ts +0 -0
  1051. /package/{src/utils → utils}/types.utils.d.ts +0 -0
  1052. /package/{src/utils → utils}/uri-template.utils.d.ts +0 -0
  1053. /package/{src/utils → utils}/uri-validation.utils.d.ts +0 -0
@@ -1,426 +0,0 @@
1
- "use strict";
2
- /**
3
- * Template Builders for OAuth UI
4
- *
5
- * Server-side HTML rendering with Tailwind CSS for OAuth authorization flows.
6
- * No build step required - pure runtime rendering with Tailwind CSS CDN.
7
- *
8
- * Features:
9
- * - OAuth consent page with multiple apps
10
- * - Incremental authorization page for single app
11
- * - Federated login page for multi-provider selection
12
- * - All pages use Tailwind CSS from CDN (no build required)
13
- * - Google Fonts (Inter) for modern typography
14
- *
15
- * Uses base-layout.ts for consistent HTML shell with CDN resources.
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.escapeHtml = void 0;
19
- exports.buildConsentPage = buildConsentPage;
20
- exports.buildIncrementalAuthPage = buildIncrementalAuthPage;
21
- exports.buildFederatedLoginPage = buildFederatedLoginPage;
22
- exports.buildToolConsentPage = buildToolConsentPage;
23
- exports.buildLoginPage = buildLoginPage;
24
- exports.buildErrorPage = buildErrorPage;
25
- exports.renderToHtml = renderToHtml;
26
- const base_layout_1 = require("./base-layout");
27
- // ============================================
28
- // Utility Functions
29
- // ============================================
30
- /**
31
- * Escape HTML special characters
32
- * Re-exported from base-layout for convenience
33
- */
34
- exports.escapeHtml = base_layout_1.escapeHtml;
35
- // ============================================
36
- // Template Builders
37
- // ============================================
38
- /**
39
- * Build OAuth consent page with Tailwind
40
- * Shows all apps at once with Authorize/Skip buttons
41
- */
42
- function buildConsentPage(params) {
43
- const { apps, clientName, pendingAuthId, csrfToken, callbackPath } = params;
44
- const appCards = apps.map((app) => buildAppCardHtml(app, pendingAuthId, csrfToken, callbackPath)).join('\n');
45
- const content = `
46
- <h1 class="text-3xl font-bold text-gray-900 mb-4">Authorize ${(0, exports.escapeHtml)(clientName)}</h1>
47
- <p class="text-gray-600 mb-8">
48
- Select which apps you want to authorize. You can skip apps and authorize them later when needed.
49
- </p>
50
-
51
- <div class="space-y-4" id="app-list">
52
- ${appCards}
53
- </div>
54
-
55
- <div class="mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-800">
56
- Skipped apps can be authorized later when you try to use their tools (progressive authorization).
57
- </div>`;
58
- return (0, base_layout_1.wideLayout)(content, { title: `Authorize ${clientName}` });
59
- }
60
- /**
61
- * Build single app authorization card HTML
62
- */
63
- function buildAppCardHtml(app, pendingAuthId, csrfToken, callbackPath) {
64
- const icon = app.iconUrl
65
- ? `<img src="${(0, exports.escapeHtml)(app.iconUrl)}" alt="${(0, exports.escapeHtml)(app.appName)}" class="w-12 h-12 rounded-lg object-cover">`
66
- : `<div class="w-12 h-12 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-lg">${(0, exports.escapeHtml)(app.appName.charAt(0).toUpperCase())}</div>`;
67
- const description = app.description ? `<p class="text-sm text-gray-500">${(0, exports.escapeHtml)(app.description)}</p>` : '';
68
- const scopes = app.requiredScopes?.length
69
- ? `<div class="mb-4">
70
- <p class="text-xs font-medium text-gray-500 uppercase tracking-wide mb-2">Permissions</p>
71
- <div class="flex flex-wrap gap-2">
72
- ${app.requiredScopes
73
- .map((scope) => `<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800">${(0, exports.escapeHtml)(scope)}</span>`)
74
- .join('')}
75
- </div>
76
- </div>`
77
- : '';
78
- return `<div class="bg-white rounded-xl shadow-sm border border-gray-200 p-6 hover:shadow-md transition-shadow" data-app-id="${(0, exports.escapeHtml)(app.appId)}">
79
- <div class="flex items-center gap-4 mb-4">
80
- ${icon}
81
- <div class="flex-1">
82
- <h3 class="font-semibold text-gray-900">${(0, exports.escapeHtml)(app.appName)}</h3>
83
- ${description}
84
- </div>
85
- </div>
86
-
87
- ${scopes}
88
-
89
- <form method="POST" action="${(0, exports.escapeHtml)(callbackPath)}" class="flex gap-3 pt-4 border-t border-gray-100">
90
- <input type="hidden" name="csrf" value="${(0, exports.escapeHtml)(csrfToken)}">
91
- <input type="hidden" name="pending_auth_id" value="${(0, exports.escapeHtml)(pendingAuthId)}">
92
- <input type="hidden" name="app" value="${(0, exports.escapeHtml)(app.appId)}">
93
- <button type="submit" name="action" value="authorize"
94
- class="flex-1 bg-blue-600 hover:bg-blue-700 text-white font-medium py-2.5 px-4 rounded-lg transition-colors">
95
- Authorize
96
- </button>
97
- <button type="submit" name="action" value="skip"
98
- class="px-4 py-2.5 text-gray-600 hover:text-gray-900 hover:bg-gray-100 font-medium rounded-lg transition-colors">
99
- Skip
100
- </button>
101
- </form>
102
- </div>`;
103
- }
104
- /**
105
- * Build incremental auth page (single app) with Tailwind
106
- * Used when a tool requires authorization for a skipped app
107
- */
108
- function buildIncrementalAuthPage(params) {
109
- const { app, toolId, sessionHint, callbackPath } = params;
110
- const description = app.description ? `<p class="text-gray-500 mt-2">${(0, exports.escapeHtml)(app.description)}</p>` : '';
111
- const content = `
112
- <!-- Warning icon -->
113
- <div class="flex justify-center mb-6">
114
- <div class="w-16 h-16 rounded-full bg-amber-100 flex items-center justify-center">
115
- <svg class="w-8 h-8 text-amber-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
116
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
117
- </svg>
118
- </div>
119
- </div>
120
-
121
- <h1 class="text-2xl font-bold text-gray-900 text-center mb-2">Authorization Required</h1>
122
- <p class="text-gray-600 text-center mb-8">
123
- To use "<span class="font-mono text-sm bg-gray-100 px-1 rounded">${(0, exports.escapeHtml)(toolId)}</span>", you need to authorize ${(0, exports.escapeHtml)(app.appName)}.
124
- </p>
125
-
126
- <!-- App card -->
127
- <div class="bg-white rounded-xl shadow-sm border border-gray-200 p-6 mb-6">
128
- <div class="flex items-center gap-4 mb-4">
129
- <div class="w-12 h-12 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-lg">
130
- ${(0, exports.escapeHtml)(app.appName.charAt(0).toUpperCase())}
131
- </div>
132
- <div class="flex-1">
133
- <h3 class="font-semibold text-gray-900">${(0, exports.escapeHtml)(app.appName)}</h3>
134
- ${description}
135
- </div>
136
- </div>
137
-
138
- <form method="GET" action="${(0, exports.escapeHtml)(callbackPath)}" class="flex gap-3 pt-4 border-t border-gray-100">
139
- <input type="hidden" name="pending_auth_id" value="${(0, exports.escapeHtml)(sessionHint)}">
140
- <input type="hidden" name="app_id" value="${(0, exports.escapeHtml)(app.appId)}">
141
- <input type="hidden" name="incremental" value="true">
142
- <button type="button" onclick="window.close()"
143
- class="flex-1 px-4 py-2.5 text-gray-600 hover:text-gray-900 hover:bg-gray-100 font-medium rounded-lg transition-colors">
144
- Cancel
145
- </button>
146
- <button type="submit"
147
- class="flex-1 bg-blue-600 hover:bg-blue-700 text-white font-medium py-2.5 px-4 rounded-lg transition-colors">
148
- Authorize
149
- </button>
150
- </form>
151
- </div>
152
-
153
- <div class="p-4 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-800 text-center">
154
- This is an incremental authorization. Your existing session will be expanded to include ${(0, exports.escapeHtml)(app.appName)}.
155
- </div>`;
156
- return (0, base_layout_1.centeredCardLayout)(content, { title: `Authorize ${app.appName}` });
157
- }
158
- /**
159
- * Build federated login page for multi-provider selection
160
- */
161
- function buildFederatedLoginPage(params) {
162
- const { providers, clientName, pendingAuthId, csrfToken, callbackPath } = params;
163
- const providerCards = providers
164
- .map((provider) => {
165
- const isPrimaryBadge = provider.isPrimary
166
- ? `<span class="px-2 py-0.5 text-xs font-medium bg-blue-600 text-white rounded-full">Primary</span>`
167
- : '';
168
- const providerUrl = provider.providerUrl
169
- ? `<p class="text-xs text-gray-400 font-mono truncate">${(0, exports.escapeHtml)(provider.providerUrl)}</p>`
170
- : '';
171
- const appIds = provider.appIds.length > 0
172
- ? `<p class="text-xs text-gray-500 mt-1">Apps: ${provider.appIds.map((id) => (0, exports.escapeHtml)(id)).join(', ')}</p>`
173
- : '';
174
- return `<label class="flex items-start gap-4 p-4 bg-white border-2 border-gray-200 rounded-xl cursor-pointer hover:border-blue-300 transition-colors has-[:checked]:border-blue-500 has-[:checked]:bg-blue-50">
175
- <input type="checkbox" name="providers" value="${(0, exports.escapeHtml)(provider.providerId)}"
176
- class="mt-1 w-5 h-5 rounded border-gray-300" ${provider.isPrimary ? 'checked' : ''}>
177
- <div class="flex-1">
178
- <div class="flex items-center gap-2 mb-1">
179
- <span class="font-semibold text-gray-900">${(0, exports.escapeHtml)(provider.providerName)}</span>
180
- ${isPrimaryBadge}
181
- </div>
182
- <p class="text-sm text-gray-500">Mode: ${(0, exports.escapeHtml)(provider.mode)}</p>
183
- ${providerUrl}
184
- ${appIds}
185
- </div>
186
- </label>`;
187
- })
188
- .join('\n');
189
- const content = `
190
- <h1 class="text-3xl font-bold text-gray-900 mb-4">Select Authorization Providers</h1>
191
- <p class="text-gray-600 mb-8">
192
- ${(0, exports.escapeHtml)(clientName)} uses multiple authentication providers. Select which ones you want to authorize.
193
- </p>
194
-
195
- <form method="GET" action="${(0, exports.escapeHtml)(callbackPath)}" id="federated-form">
196
- <input type="hidden" name="pending_auth_id" value="${(0, exports.escapeHtml)(pendingAuthId)}">
197
- <input type="hidden" name="federated" value="true">
198
-
199
- <!-- Select all toggle -->
200
- <label class="flex items-center gap-3 mb-6 cursor-pointer">
201
- <input type="checkbox" id="select-all" class="w-5 h-5 rounded border-gray-300"
202
- onchange="document.querySelectorAll('input[name=providers]').forEach(cb => cb.checked = this.checked)">
203
- <span class="text-gray-700">Select all providers</span>
204
- </label>
205
-
206
- <!-- Provider cards -->
207
- <div class="space-y-4 mb-8">
208
- ${providerCards}
209
- </div>
210
-
211
- <!-- Email input -->
212
- <div class="mb-6">
213
- <label for="email" class="block text-sm font-medium text-gray-700 mb-2">Email</label>
214
- <input type="email" id="email" name="email" required placeholder="you@example.com"
215
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
216
- </div>
217
-
218
- <!-- Buttons -->
219
- <div class="flex gap-4">
220
- <button type="button"
221
- class="flex-1 px-6 py-3 text-gray-700 bg-gray-100 hover:bg-gray-200 font-medium rounded-lg transition-colors"
222
- onclick="document.querySelectorAll('input[name=providers]').forEach(cb => cb.checked = false); document.getElementById('federated-form').submit();">
223
- Skip All
224
- </button>
225
- <button type="submit"
226
- class="flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors">
227
- Continue
228
- </button>
229
- </div>
230
- </form>
231
-
232
- <div class="mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-800">
233
- Skipped providers can be authorized later when you try to use their tools (progressive authorization).
234
- </div>`;
235
- return (0, base_layout_1.wideLayout)(content, { title: 'Select Providers' });
236
- }
237
- /**
238
- * Build consent page for tool selection
239
- */
240
- function buildToolConsentPage(params) {
241
- const { tools, clientName, pendingAuthId, csrfToken, callbackPath, userName, userEmail } = params;
242
- // Group tools by app
243
- const toolsByApp = {};
244
- for (const tool of tools) {
245
- if (!toolsByApp[tool.appId]) {
246
- toolsByApp[tool.appId] = { appName: tool.appName, tools: [] };
247
- }
248
- toolsByApp[tool.appId].tools.push(tool);
249
- }
250
- const userInfo = userName || userEmail
251
- ? `<div class="p-3 bg-gray-50 rounded-lg mb-6 text-sm">
252
- <span class="text-gray-500">Signed in as: </span>
253
- <span class="font-medium text-gray-900">${(0, exports.escapeHtml)(userName || userEmail || '')}</span>
254
- </div>`
255
- : '';
256
- const appGroups = Object.entries(toolsByApp)
257
- .map(([appId, { appName, tools: appTools }]) => {
258
- const toolItems = appTools
259
- .map((tool) => {
260
- const desc = tool.description
261
- ? `<p class="text-sm text-gray-500 mt-0.5">${(0, exports.escapeHtml)(tool.description)}</p>`
262
- : '';
263
- return `<label class="flex items-start gap-3 p-3 bg-white rounded-lg cursor-pointer hover:bg-gray-50">
264
- <input type="checkbox" name="tools" value="${(0, exports.escapeHtml)(tool.toolId)}" class="mt-0.5 w-5 h-5 rounded border-gray-300" checked>
265
- <div>
266
- <span class="font-medium text-gray-900">${(0, exports.escapeHtml)(tool.toolName)}</span>
267
- ${desc}
268
- </div>
269
- </label>`;
270
- })
271
- .join('\n');
272
- return `<div class="bg-gray-50 rounded-xl overflow-hidden">
273
- <div class="flex items-center justify-between px-4 py-3 bg-gray-100">
274
- <div class="flex items-center gap-3">
275
- <div class="w-8 h-8 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm">
276
- ${(0, exports.escapeHtml)(appName.charAt(0).toUpperCase())}
277
- </div>
278
- <span class="font-semibold text-gray-900">${(0, exports.escapeHtml)(appName)}</span>
279
- </div>
280
- <button type="button" class="text-sm text-blue-600 hover:text-blue-800"
281
- onclick="const container = this.closest('.bg-gray-50').querySelector('[data-app]'); const cbs = container.querySelectorAll('input[name=tools]'); const allChecked = [...cbs].every(cb => cb.checked); cbs.forEach(cb => cb.checked = !allChecked); updateCount();">
282
- Toggle All
283
- </button>
284
- </div>
285
- <div class="p-4 space-y-2" data-app="${(0, exports.escapeHtml)(appId)}">
286
- ${toolItems}
287
- </div>
288
- </div>`;
289
- })
290
- .join('\n');
291
- const updateCountScript = `
292
- <script>
293
- function updateCount() {
294
- const all = document.querySelectorAll('input[name="tools"]');
295
- const checked = document.querySelectorAll('input[name="tools"]:checked');
296
- document.getElementById('selection-count').textContent = checked.length + ' of ' + all.length + ' selected';
297
- document.getElementById('select-all').checked = all.length > 0 && all.length === checked.length;
298
- }
299
- document.querySelectorAll('input[name="tools"]').forEach(cb => cb.addEventListener('change', updateCount));
300
- </script>`;
301
- const content = `
302
- <h1 class="text-3xl font-bold text-gray-900 mb-4">Select Tools to Enable</h1>
303
- <p class="text-gray-600 mb-6">
304
- Choose which tools ${(0, exports.escapeHtml)(clientName)} can access. You can change this later.
305
- </p>
306
-
307
- ${userInfo}
308
-
309
- <form method="POST" action="${(0, exports.escapeHtml)(callbackPath)}" id="consent-form">
310
- <input type="hidden" name="csrf" value="${(0, exports.escapeHtml)(csrfToken)}">
311
- <input type="hidden" name="pending_auth_id" value="${(0, exports.escapeHtml)(pendingAuthId)}">
312
-
313
- <!-- Select all toggle -->
314
- <div class="flex items-center justify-between mb-6">
315
- <label class="flex items-center gap-3 cursor-pointer">
316
- <input type="checkbox" id="select-all" class="w-5 h-5 rounded border-gray-300" checked
317
- onchange="document.querySelectorAll('input[name=tools]').forEach(cb => cb.checked = this.checked); updateCount();">
318
- <span class="text-gray-700">Select all tools</span>
319
- </label>
320
- <span id="selection-count" class="text-sm text-gray-500">${tools.length} of ${tools.length} selected</span>
321
- </div>
322
-
323
- <!-- Tool groups by app -->
324
- <div class="space-y-6 mb-8">
325
- ${appGroups}
326
- </div>
327
-
328
- <!-- Buttons -->
329
- <div class="flex gap-4">
330
- <button type="button" onclick="history.back()"
331
- class="flex-1 px-6 py-3 text-gray-700 bg-gray-100 hover:bg-gray-200 font-medium rounded-lg transition-colors">
332
- Cancel
333
- </button>
334
- <button type="submit"
335
- class="flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors">
336
- Confirm Selection
337
- </button>
338
- </div>
339
- </form>
340
- ${updateCountScript}`;
341
- return (0, base_layout_1.extraWideLayout)(content, { title: 'Select Tools' });
342
- }
343
- /**
344
- * Build simple login page
345
- */
346
- function buildLoginPage(params) {
347
- const { clientName, scope, pendingAuthId, callbackPath } = params;
348
- const scopesHtml = scope
349
- ? `<div class="p-4 bg-gray-50 rounded-lg mb-6">
350
- <p class="text-xs font-medium text-gray-500 uppercase tracking-wide mb-2">Requested permissions</p>
351
- <p class="text-gray-700">${scope
352
- .split(' ')
353
- .map((s) => (0, exports.escapeHtml)(s))
354
- .join(', ') || 'Default access'}</p>
355
- </div>`
356
- : '';
357
- const content = `
358
- <div class="bg-white rounded-2xl shadow-xl p-8">
359
- <h1 class="text-3xl font-bold text-gray-900 mb-2 text-center">Sign In</h1>
360
- <p class="text-gray-600 mb-8 text-center">Authorize access to ${(0, exports.escapeHtml)(clientName)}</p>
361
-
362
- ${scopesHtml}
363
-
364
- <form method="GET" action="${(0, exports.escapeHtml)(callbackPath)}">
365
- <input type="hidden" name="pending_auth_id" value="${(0, exports.escapeHtml)(pendingAuthId)}">
366
-
367
- <!-- Email -->
368
- <div class="mb-4">
369
- <label for="email" class="block text-sm font-medium text-gray-700 mb-2">Email</label>
370
- <input type="email" id="email" name="email" required placeholder="you@example.com"
371
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
372
- </div>
373
-
374
- <!-- Name (optional) -->
375
- <div class="mb-6">
376
- <label for="name" class="block text-sm font-medium text-gray-700 mb-2">Name (optional)</label>
377
- <input type="text" id="name" name="name" placeholder="Your name"
378
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
379
- </div>
380
-
381
- <!-- Submit -->
382
- <button type="submit"
383
- class="w-full px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors">
384
- Authorize
385
- </button>
386
- </form>
387
-
388
- <p class="text-center text-sm text-gray-500 mt-6">Client: ${(0, exports.escapeHtml)(clientName)}</p>
389
- </div>`;
390
- return (0, base_layout_1.centeredCardLayout)(content, { title: 'Sign In' });
391
- }
392
- /**
393
- * Build error page
394
- */
395
- function buildErrorPage(params) {
396
- const { error, description } = params;
397
- const content = `
398
- <div class="bg-white rounded-2xl shadow-xl p-8 text-center">
399
- <!-- Error icon -->
400
- <div class="flex justify-center mb-6">
401
- <div class="w-16 h-16 rounded-full bg-red-100 flex items-center justify-center">
402
- <svg class="w-8 h-8 text-red-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
403
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
404
- </svg>
405
- </div>
406
- </div>
407
-
408
- <h1 class="text-2xl font-bold text-gray-900 mb-4">Authorization Error</h1>
409
- <p class="mb-4">
410
- <code class="px-2 py-1 bg-gray-100 rounded text-red-600 font-mono text-sm">${(0, exports.escapeHtml)(error)}</code>
411
- </p>
412
- <p class="text-gray-600">${(0, exports.escapeHtml)(description)}</p>
413
- </div>`;
414
- return (0, base_layout_1.centeredCardLayout)(content, { title: 'Error' });
415
- }
416
- // ============================================
417
- // Legacy Compatibility - renderToHtml wrapper
418
- // ============================================
419
- /**
420
- * Simple wrapper for compatibility - just returns the HTML string
421
- * (Templates are already complete HTML documents)
422
- */
423
- function renderToHtml(html, _options) {
424
- return html;
425
- }
426
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/auth/ui/templates.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Template Builders for OAuth UI\n *\n * Server-side HTML rendering with Tailwind CSS for OAuth authorization flows.\n * No build step required - pure runtime rendering with Tailwind CSS CDN.\n *\n * Features:\n * - OAuth consent page with multiple apps\n * - Incremental authorization page for single app\n * - Federated login page for multi-provider selection\n * - All pages use Tailwind CSS from CDN (no build required)\n * - Google Fonts (Inter) for modern typography\n *\n * Uses base-layout.ts for consistent HTML shell with CDN resources.\n */\n\nimport {\n baseLayout,\n wideLayout,\n extraWideLayout,\n centeredCardLayout,\n escapeHtml as baseEscapeHtml,\n} from './base-layout';\n\n// ============================================\n// Types\n// ============================================\n\n/**\n * App information for authorization cards\n */\nexport interface AppAuthCard {\n /** App identifier */\n appId: string;\n /** Display name */\n appName: string;\n /** App description */\n description?: string;\n /** Icon URL (optional, will use initials fallback) */\n iconUrl?: string;\n /** Scopes required by this app */\n requiredScopes?: string[];\n}\n\n/**\n * Provider information for federated login\n */\nexport interface ProviderCard {\n /** Provider identifier */\n providerId: string;\n /** Display name */\n providerName: string;\n /** Provider URL (for remote providers) */\n providerUrl?: string;\n /** Auth mode */\n mode: string;\n /** App IDs associated with this provider */\n appIds: string[];\n /** Whether this is the parent/primary provider */\n isPrimary?: boolean;\n}\n\n/**\n * Tool information for consent page\n */\nexport interface ToolCard {\n /** Tool identifier */\n toolId: string;\n /** Display name */\n toolName: string;\n /** Tool description */\n description?: string;\n /** Parent app ID */\n appId: string;\n /** Parent app name */\n appName: string;\n}\n\n// ============================================\n// Utility Functions\n// ============================================\n\n/**\n * Escape HTML special characters\n * Re-exported from base-layout for convenience\n */\nexport const escapeHtml = baseEscapeHtml;\n\n// ============================================\n// Template Builders\n// ============================================\n\n/**\n * Build OAuth consent page with Tailwind\n * Shows all apps at once with Authorize/Skip buttons\n */\nexport function buildConsentPage(params: {\n apps: AppAuthCard[];\n clientName: string;\n pendingAuthId: string;\n csrfToken: string;\n callbackPath: string;\n}): string {\n const { apps, clientName, pendingAuthId, csrfToken, callbackPath } = params;\n\n const appCards = apps.map((app) => buildAppCardHtml(app, pendingAuthId, csrfToken, callbackPath)).join('\\n');\n\n const content = `\n <h1 class=\"text-3xl font-bold text-gray-900 mb-4\">Authorize ${escapeHtml(clientName)}</h1>\n <p class=\"text-gray-600 mb-8\">\n Select which apps you want to authorize. You can skip apps and authorize them later when needed.\n </p>\n\n <div class=\"space-y-4\" id=\"app-list\">\n ${appCards}\n </div>\n\n <div class=\"mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-800\">\n Skipped apps can be authorized later when you try to use their tools (progressive authorization).\n </div>`;\n\n return wideLayout(content, { title: `Authorize ${clientName}` });\n}\n\n/**\n * Build single app authorization card HTML\n */\nfunction buildAppCardHtml(app: AppAuthCard, pendingAuthId: string, csrfToken: string, callbackPath: string): string {\n const icon = app.iconUrl\n ? `<img src=\"${escapeHtml(app.iconUrl)}\" alt=\"${escapeHtml(\n app.appName,\n )}\" class=\"w-12 h-12 rounded-lg object-cover\">`\n : `<div class=\"w-12 h-12 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-lg\">${escapeHtml(\n app.appName.charAt(0).toUpperCase(),\n )}</div>`;\n\n const description = app.description ? `<p class=\"text-sm text-gray-500\">${escapeHtml(app.description)}</p>` : '';\n\n const scopes = app.requiredScopes?.length\n ? `<div class=\"mb-4\">\n <p class=\"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2\">Permissions</p>\n <div class=\"flex flex-wrap gap-2\">\n ${app.requiredScopes\n .map(\n (scope) =>\n `<span class=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800\">${escapeHtml(\n scope,\n )}</span>`,\n )\n .join('')}\n </div>\n </div>`\n : '';\n\n return `<div class=\"bg-white rounded-xl shadow-sm border border-gray-200 p-6 hover:shadow-md transition-shadow\" data-app-id=\"${escapeHtml(\n app.appId,\n )}\">\n <div class=\"flex items-center gap-4 mb-4\">\n ${icon}\n <div class=\"flex-1\">\n <h3 class=\"font-semibold text-gray-900\">${escapeHtml(app.appName)}</h3>\n ${description}\n </div>\n </div>\n\n ${scopes}\n\n <form method=\"POST\" action=\"${escapeHtml(callbackPath)}\" class=\"flex gap-3 pt-4 border-t border-gray-100\">\n <input type=\"hidden\" name=\"csrf\" value=\"${escapeHtml(csrfToken)}\">\n <input type=\"hidden\" name=\"pending_auth_id\" value=\"${escapeHtml(pendingAuthId)}\">\n <input type=\"hidden\" name=\"app\" value=\"${escapeHtml(app.appId)}\">\n <button type=\"submit\" name=\"action\" value=\"authorize\"\n class=\"flex-1 bg-blue-600 hover:bg-blue-700 text-white font-medium py-2.5 px-4 rounded-lg transition-colors\">\n Authorize\n </button>\n <button type=\"submit\" name=\"action\" value=\"skip\"\n class=\"px-4 py-2.5 text-gray-600 hover:text-gray-900 hover:bg-gray-100 font-medium rounded-lg transition-colors\">\n Skip\n </button>\n </form>\n </div>`;\n}\n\n/**\n * Build incremental auth page (single app) with Tailwind\n * Used when a tool requires authorization for a skipped app\n */\nexport function buildIncrementalAuthPage(params: {\n app: AppAuthCard;\n toolId: string;\n sessionHint: string;\n callbackPath: string;\n}): string {\n const { app, toolId, sessionHint, callbackPath } = params;\n\n const description = app.description ? `<p class=\"text-gray-500 mt-2\">${escapeHtml(app.description)}</p>` : '';\n\n const content = `\n <!-- Warning icon -->\n <div class=\"flex justify-center mb-6\">\n <div class=\"w-16 h-16 rounded-full bg-amber-100 flex items-center justify-center\">\n <svg class=\"w-8 h-8 text-amber-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"/>\n </svg>\n </div>\n </div>\n\n <h1 class=\"text-2xl font-bold text-gray-900 text-center mb-2\">Authorization Required</h1>\n <p class=\"text-gray-600 text-center mb-8\">\n To use \"<span class=\"font-mono text-sm bg-gray-100 px-1 rounded\">${escapeHtml(\n toolId,\n )}</span>\", you need to authorize ${escapeHtml(app.appName)}.\n </p>\n\n <!-- App card -->\n <div class=\"bg-white rounded-xl shadow-sm border border-gray-200 p-6 mb-6\">\n <div class=\"flex items-center gap-4 mb-4\">\n <div class=\"w-12 h-12 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-lg\">\n ${escapeHtml(app.appName.charAt(0).toUpperCase())}\n </div>\n <div class=\"flex-1\">\n <h3 class=\"font-semibold text-gray-900\">${escapeHtml(app.appName)}</h3>\n ${description}\n </div>\n </div>\n\n <form method=\"GET\" action=\"${escapeHtml(callbackPath)}\" class=\"flex gap-3 pt-4 border-t border-gray-100\">\n <input type=\"hidden\" name=\"pending_auth_id\" value=\"${escapeHtml(sessionHint)}\">\n <input type=\"hidden\" name=\"app_id\" value=\"${escapeHtml(app.appId)}\">\n <input type=\"hidden\" name=\"incremental\" value=\"true\">\n <button type=\"button\" onclick=\"window.close()\"\n class=\"flex-1 px-4 py-2.5 text-gray-600 hover:text-gray-900 hover:bg-gray-100 font-medium rounded-lg transition-colors\">\n Cancel\n </button>\n <button type=\"submit\"\n class=\"flex-1 bg-blue-600 hover:bg-blue-700 text-white font-medium py-2.5 px-4 rounded-lg transition-colors\">\n Authorize\n </button>\n </form>\n </div>\n\n <div class=\"p-4 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-800 text-center\">\n This is an incremental authorization. Your existing session will be expanded to include ${escapeHtml(\n app.appName,\n )}.\n </div>`;\n\n return centeredCardLayout(content, { title: `Authorize ${app.appName}` });\n}\n\n/**\n * Build federated login page for multi-provider selection\n */\nexport function buildFederatedLoginPage(params: {\n providers: ProviderCard[];\n clientName: string;\n pendingAuthId: string;\n csrfToken: string;\n callbackPath: string;\n}): string {\n const { providers, clientName, pendingAuthId, csrfToken, callbackPath } = params;\n\n const providerCards = providers\n .map((provider) => {\n const isPrimaryBadge = provider.isPrimary\n ? `<span class=\"px-2 py-0.5 text-xs font-medium bg-blue-600 text-white rounded-full\">Primary</span>`\n : '';\n\n const providerUrl = provider.providerUrl\n ? `<p class=\"text-xs text-gray-400 font-mono truncate\">${escapeHtml(provider.providerUrl)}</p>`\n : '';\n\n const appIds =\n provider.appIds.length > 0\n ? `<p class=\"text-xs text-gray-500 mt-1\">Apps: ${provider.appIds.map((id) => escapeHtml(id)).join(', ')}</p>`\n : '';\n\n return `<label class=\"flex items-start gap-4 p-4 bg-white border-2 border-gray-200 rounded-xl cursor-pointer hover:border-blue-300 transition-colors has-[:checked]:border-blue-500 has-[:checked]:bg-blue-50\">\n <input type=\"checkbox\" name=\"providers\" value=\"${escapeHtml(provider.providerId)}\"\n class=\"mt-1 w-5 h-5 rounded border-gray-300\" ${provider.isPrimary ? 'checked' : ''}>\n <div class=\"flex-1\">\n <div class=\"flex items-center gap-2 mb-1\">\n <span class=\"font-semibold text-gray-900\">${escapeHtml(provider.providerName)}</span>\n ${isPrimaryBadge}\n </div>\n <p class=\"text-sm text-gray-500\">Mode: ${escapeHtml(provider.mode)}</p>\n ${providerUrl}\n ${appIds}\n </div>\n </label>`;\n })\n .join('\\n');\n\n const content = `\n <h1 class=\"text-3xl font-bold text-gray-900 mb-4\">Select Authorization Providers</h1>\n <p class=\"text-gray-600 mb-8\">\n ${escapeHtml(clientName)} uses multiple authentication providers. Select which ones you want to authorize.\n </p>\n\n <form method=\"GET\" action=\"${escapeHtml(callbackPath)}\" id=\"federated-form\">\n <input type=\"hidden\" name=\"pending_auth_id\" value=\"${escapeHtml(pendingAuthId)}\">\n <input type=\"hidden\" name=\"federated\" value=\"true\">\n\n <!-- Select all toggle -->\n <label class=\"flex items-center gap-3 mb-6 cursor-pointer\">\n <input type=\"checkbox\" id=\"select-all\" class=\"w-5 h-5 rounded border-gray-300\"\n onchange=\"document.querySelectorAll('input[name=providers]').forEach(cb => cb.checked = this.checked)\">\n <span class=\"text-gray-700\">Select all providers</span>\n </label>\n\n <!-- Provider cards -->\n <div class=\"space-y-4 mb-8\">\n ${providerCards}\n </div>\n\n <!-- Email input -->\n <div class=\"mb-6\">\n <label for=\"email\" class=\"block text-sm font-medium text-gray-700 mb-2\">Email</label>\n <input type=\"email\" id=\"email\" name=\"email\" required placeholder=\"you@example.com\"\n class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500\">\n </div>\n\n <!-- Buttons -->\n <div class=\"flex gap-4\">\n <button type=\"button\"\n class=\"flex-1 px-6 py-3 text-gray-700 bg-gray-100 hover:bg-gray-200 font-medium rounded-lg transition-colors\"\n onclick=\"document.querySelectorAll('input[name=providers]').forEach(cb => cb.checked = false); document.getElementById('federated-form').submit();\">\n Skip All\n </button>\n <button type=\"submit\"\n class=\"flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors\">\n Continue\n </button>\n </div>\n </form>\n\n <div class=\"mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-800\">\n Skipped providers can be authorized later when you try to use their tools (progressive authorization).\n </div>`;\n\n return wideLayout(content, { title: 'Select Providers' });\n}\n\n/**\n * Build consent page for tool selection\n */\nexport function buildToolConsentPage(params: {\n tools: ToolCard[];\n clientName: string;\n pendingAuthId: string;\n csrfToken: string;\n callbackPath: string;\n userName?: string;\n userEmail?: string;\n}): string {\n const { tools, clientName, pendingAuthId, csrfToken, callbackPath, userName, userEmail } = params;\n\n // Group tools by app\n const toolsByApp: Record<string, { appName: string; tools: ToolCard[] }> = {};\n for (const tool of tools) {\n if (!toolsByApp[tool.appId]) {\n toolsByApp[tool.appId] = { appName: tool.appName, tools: [] };\n }\n toolsByApp[tool.appId].tools.push(tool);\n }\n\n const userInfo =\n userName || userEmail\n ? `<div class=\"p-3 bg-gray-50 rounded-lg mb-6 text-sm\">\n <span class=\"text-gray-500\">Signed in as: </span>\n <span class=\"font-medium text-gray-900\">${escapeHtml(userName || userEmail || '')}</span>\n </div>`\n : '';\n\n const appGroups = Object.entries(toolsByApp)\n .map(([appId, { appName, tools: appTools }]) => {\n const toolItems = appTools\n .map((tool) => {\n const desc = tool.description\n ? `<p class=\"text-sm text-gray-500 mt-0.5\">${escapeHtml(tool.description)}</p>`\n : '';\n return `<label class=\"flex items-start gap-3 p-3 bg-white rounded-lg cursor-pointer hover:bg-gray-50\">\n <input type=\"checkbox\" name=\"tools\" value=\"${escapeHtml(\n tool.toolId,\n )}\" class=\"mt-0.5 w-5 h-5 rounded border-gray-300\" checked>\n <div>\n <span class=\"font-medium text-gray-900\">${escapeHtml(tool.toolName)}</span>\n ${desc}\n </div>\n </label>`;\n })\n .join('\\n');\n\n return `<div class=\"bg-gray-50 rounded-xl overflow-hidden\">\n <div class=\"flex items-center justify-between px-4 py-3 bg-gray-100\">\n <div class=\"flex items-center gap-3\">\n <div class=\"w-8 h-8 rounded-lg bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm\">\n ${escapeHtml(appName.charAt(0).toUpperCase())}\n </div>\n <span class=\"font-semibold text-gray-900\">${escapeHtml(appName)}</span>\n </div>\n <button type=\"button\" class=\"text-sm text-blue-600 hover:text-blue-800\"\n onclick=\"const container = this.closest('.bg-gray-50').querySelector('[data-app]'); const cbs = container.querySelectorAll('input[name=tools]'); const allChecked = [...cbs].every(cb => cb.checked); cbs.forEach(cb => cb.checked = !allChecked); updateCount();\">\n Toggle All\n </button>\n </div>\n <div class=\"p-4 space-y-2\" data-app=\"${escapeHtml(appId)}\">\n ${toolItems}\n </div>\n </div>`;\n })\n .join('\\n');\n\n const updateCountScript = `\n <script>\n function updateCount() {\n const all = document.querySelectorAll('input[name=\"tools\"]');\n const checked = document.querySelectorAll('input[name=\"tools\"]:checked');\n document.getElementById('selection-count').textContent = checked.length + ' of ' + all.length + ' selected';\n document.getElementById('select-all').checked = all.length > 0 && all.length === checked.length;\n }\n document.querySelectorAll('input[name=\"tools\"]').forEach(cb => cb.addEventListener('change', updateCount));\n </script>`;\n\n const content = `\n <h1 class=\"text-3xl font-bold text-gray-900 mb-4\">Select Tools to Enable</h1>\n <p class=\"text-gray-600 mb-6\">\n Choose which tools ${escapeHtml(clientName)} can access. You can change this later.\n </p>\n\n ${userInfo}\n\n <form method=\"POST\" action=\"${escapeHtml(callbackPath)}\" id=\"consent-form\">\n <input type=\"hidden\" name=\"csrf\" value=\"${escapeHtml(csrfToken)}\">\n <input type=\"hidden\" name=\"pending_auth_id\" value=\"${escapeHtml(pendingAuthId)}\">\n\n <!-- Select all toggle -->\n <div class=\"flex items-center justify-between mb-6\">\n <label class=\"flex items-center gap-3 cursor-pointer\">\n <input type=\"checkbox\" id=\"select-all\" class=\"w-5 h-5 rounded border-gray-300\" checked\n onchange=\"document.querySelectorAll('input[name=tools]').forEach(cb => cb.checked = this.checked); updateCount();\">\n <span class=\"text-gray-700\">Select all tools</span>\n </label>\n <span id=\"selection-count\" class=\"text-sm text-gray-500\">${tools.length} of ${tools.length} selected</span>\n </div>\n\n <!-- Tool groups by app -->\n <div class=\"space-y-6 mb-8\">\n ${appGroups}\n </div>\n\n <!-- Buttons -->\n <div class=\"flex gap-4\">\n <button type=\"button\" onclick=\"history.back()\"\n class=\"flex-1 px-6 py-3 text-gray-700 bg-gray-100 hover:bg-gray-200 font-medium rounded-lg transition-colors\">\n Cancel\n </button>\n <button type=\"submit\"\n class=\"flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors\">\n Confirm Selection\n </button>\n </div>\n </form>\n ${updateCountScript}`;\n\n return extraWideLayout(content, { title: 'Select Tools' });\n}\n\n/**\n * Build simple login page\n */\nexport function buildLoginPage(params: {\n clientName: string;\n scope: string;\n pendingAuthId: string;\n callbackPath: string;\n}): string {\n const { clientName, scope, pendingAuthId, callbackPath } = params;\n\n const scopesHtml = scope\n ? `<div class=\"p-4 bg-gray-50 rounded-lg mb-6\">\n <p class=\"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2\">Requested permissions</p>\n <p class=\"text-gray-700\">${\n scope\n .split(' ')\n .map((s) => escapeHtml(s))\n .join(', ') || 'Default access'\n }</p>\n </div>`\n : '';\n\n const content = `\n <div class=\"bg-white rounded-2xl shadow-xl p-8\">\n <h1 class=\"text-3xl font-bold text-gray-900 mb-2 text-center\">Sign In</h1>\n <p class=\"text-gray-600 mb-8 text-center\">Authorize access to ${escapeHtml(clientName)}</p>\n\n ${scopesHtml}\n\n <form method=\"GET\" action=\"${escapeHtml(callbackPath)}\">\n <input type=\"hidden\" name=\"pending_auth_id\" value=\"${escapeHtml(pendingAuthId)}\">\n\n <!-- Email -->\n <div class=\"mb-4\">\n <label for=\"email\" class=\"block text-sm font-medium text-gray-700 mb-2\">Email</label>\n <input type=\"email\" id=\"email\" name=\"email\" required placeholder=\"you@example.com\"\n class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500\">\n </div>\n\n <!-- Name (optional) -->\n <div class=\"mb-6\">\n <label for=\"name\" class=\"block text-sm font-medium text-gray-700 mb-2\">Name (optional)</label>\n <input type=\"text\" id=\"name\" name=\"name\" placeholder=\"Your name\"\n class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500\">\n </div>\n\n <!-- Submit -->\n <button type=\"submit\"\n class=\"w-full px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors\">\n Authorize\n </button>\n </form>\n\n <p class=\"text-center text-sm text-gray-500 mt-6\">Client: ${escapeHtml(clientName)}</p>\n </div>`;\n\n return centeredCardLayout(content, { title: 'Sign In' });\n}\n\n/**\n * Build error page\n */\nexport function buildErrorPage(params: { error: string; description: string }): string {\n const { error, description } = params;\n\n const content = `\n <div class=\"bg-white rounded-2xl shadow-xl p-8 text-center\">\n <!-- Error icon -->\n <div class=\"flex justify-center mb-6\">\n <div class=\"w-16 h-16 rounded-full bg-red-100 flex items-center justify-center\">\n <svg class=\"w-8 h-8 text-red-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </div>\n </div>\n\n <h1 class=\"text-2xl font-bold text-gray-900 mb-4\">Authorization Error</h1>\n <p class=\"mb-4\">\n <code class=\"px-2 py-1 bg-gray-100 rounded text-red-600 font-mono text-sm\">${escapeHtml(error)}</code>\n </p>\n <p class=\"text-gray-600\">${escapeHtml(description)}</p>\n </div>`;\n\n return centeredCardLayout(content, { title: 'Error' });\n}\n\n// ============================================\n// Legacy Compatibility - renderToHtml wrapper\n// ============================================\n\n/**\n * Simple wrapper for compatibility - just returns the HTML string\n * (Templates are already complete HTML documents)\n */\nexport function renderToHtml(html: string, _options?: { title?: string }): string {\n return html;\n}\n"]}