briyah 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/.prettierrc +7 -0
  2. package/dist/ai/LLM/anthropic.module.d.ts +2 -0
  3. package/dist/ai/LLM/anthropic.module.js +21 -0
  4. package/dist/ai/LLM/anthropic.service.d.ts +27 -0
  5. package/dist/ai/LLM/anthropic.service.js +329 -0
  6. package/dist/ai/LLM/base-ai.service.d.ts +45 -0
  7. package/dist/ai/LLM/base-ai.service.js +409 -0
  8. package/dist/ai/LLM/deepseek.module.d.ts +2 -0
  9. package/dist/ai/LLM/deepseek.module.js +21 -0
  10. package/dist/ai/LLM/deepseek.service.d.ts +15 -0
  11. package/dist/ai/LLM/deepseek.service.js +279 -0
  12. package/dist/ai/LLM/fal.module.d.ts +2 -0
  13. package/dist/ai/LLM/fal.module.js +21 -0
  14. package/dist/ai/LLM/fal.service.d.ts +17 -0
  15. package/dist/ai/LLM/fal.service.js +314 -0
  16. package/dist/ai/LLM/googleai.module.d.ts +2 -0
  17. package/dist/ai/LLM/googleai.module.js +21 -0
  18. package/dist/ai/LLM/googleai.service.d.ts +20 -0
  19. package/dist/ai/LLM/googleai.service.js +271 -0
  20. package/dist/ai/LLM/grok.module.d.ts +2 -0
  21. package/dist/ai/LLM/grok.module.js +21 -0
  22. package/dist/ai/LLM/grok.service.d.ts +14 -0
  23. package/dist/ai/LLM/grok.service.js +263 -0
  24. package/dist/ai/LLM/mock.module.d.ts +2 -0
  25. package/dist/ai/LLM/mock.module.js +21 -0
  26. package/dist/ai/LLM/mock.service.d.ts +13 -0
  27. package/dist/ai/LLM/mock.service.js +194 -0
  28. package/dist/ai/LLM/openai.module.d.ts +2 -0
  29. package/dist/ai/LLM/openai.module.js +21 -0
  30. package/dist/ai/LLM/openai.service.d.ts +21 -0
  31. package/dist/ai/LLM/openai.service.js +421 -0
  32. package/dist/ai/LLM/together.module.d.ts +2 -0
  33. package/dist/ai/LLM/together.module.js +21 -0
  34. package/dist/ai/LLM/together.service.d.ts +18 -0
  35. package/dist/ai/LLM/together.service.js +285 -0
  36. package/dist/ai/LLM/vertexai.module.d.ts +2 -0
  37. package/dist/ai/LLM/vertexai.module.js +21 -0
  38. package/dist/ai/LLM/vertexai.service.d.ts +17 -0
  39. package/dist/ai/LLM/vertexai.service.js +323 -0
  40. package/dist/ai/agent-config.d.ts +32 -0
  41. package/dist/ai/agent-config.js +2 -0
  42. package/dist/ai/agent-factory.d.ts +15 -0
  43. package/dist/ai/agent-factory.js +24 -0
  44. package/dist/ai/agent-message.service.d.ts +9 -0
  45. package/dist/ai/agent-message.service.js +56 -0
  46. package/dist/ai/agent-store.module.d.ts +2 -0
  47. package/dist/ai/agent-store.module.js +21 -0
  48. package/dist/ai/agent-store.service.d.ts +31 -0
  49. package/dist/ai/agent-store.service.js +352 -0
  50. package/dist/ai/agent.d.ts +75 -0
  51. package/dist/ai/agent.js +174 -0
  52. package/dist/ai/ai-factory.module.d.ts +2 -0
  53. package/dist/ai/ai-factory.module.js +40 -0
  54. package/dist/ai/ai-factory.service.d.ts +24 -0
  55. package/dist/ai/ai-factory.service.js +94 -0
  56. package/dist/ai/artifact.module.d.ts +2 -0
  57. package/dist/ai/artifact.module.js +22 -0
  58. package/dist/ai/artifact.service.d.ts +21 -0
  59. package/dist/ai/artifact.service.js +239 -0
  60. package/dist/ai/attached-file.module.d.ts +2 -0
  61. package/dist/ai/attached-file.module.js +22 -0
  62. package/dist/ai/attached-file.service.d.ts +35 -0
  63. package/dist/ai/attached-file.service.js +253 -0
  64. package/dist/ai/model_prices.d.ts +2 -0
  65. package/dist/ai/model_prices.js +54 -0
  66. package/dist/ai/published-agents.service.d.ts +13 -0
  67. package/dist/ai/published-agents.service.js +118 -0
  68. package/dist/app/balance-message.service.d.ts +8 -0
  69. package/dist/app/balance-message.service.js +45 -0
  70. package/dist/app/balance.module.d.ts +2 -0
  71. package/dist/app/balance.module.js +20 -0
  72. package/dist/app/balance.service.d.ts +18 -0
  73. package/dist/app/balance.service.js +158 -0
  74. package/dist/app/stripe.controller.d.ts +31 -0
  75. package/dist/app/stripe.controller.js +150 -0
  76. package/dist/app/stripe.module.d.ts +2 -0
  77. package/dist/app/stripe.module.js +22 -0
  78. package/dist/app/stripe.service.d.ts +28 -0
  79. package/dist/app/stripe.service.js +198 -0
  80. package/dist/app/transaction.service.d.ts +15 -0
  81. package/dist/app/transaction.service.js +139 -0
  82. package/dist/app/user-service-factory.d.ts +21 -0
  83. package/dist/app/user-service-factory.js +81 -0
  84. package/dist/app/user-service-manager.d.ts +28 -0
  85. package/dist/app/user-service-manager.js +102 -0
  86. package/dist/app.controller.d.ts +232 -0
  87. package/dist/app.controller.js +2536 -0
  88. package/dist/app.module.d.ts +2 -0
  89. package/dist/app.module.js +45 -0
  90. package/dist/app.service.d.ts +186 -0
  91. package/dist/app.service.js +1334 -0
  92. package/dist/auth/agent-access.decorator.d.ts +2 -0
  93. package/dist/auth/agent-access.decorator.js +10 -0
  94. package/dist/auth/auth.controller.d.ts +38 -0
  95. package/dist/auth/auth.controller.js +356 -0
  96. package/dist/auth/auth.module.d.ts +2 -0
  97. package/dist/auth/auth.module.js +55 -0
  98. package/dist/auth/auth.service.d.ts +14 -0
  99. package/dist/auth/auth.service.js +84 -0
  100. package/dist/auth/dto/bot-login.dto.d.ts +4 -0
  101. package/dist/auth/dto/bot-login.dto.js +2 -0
  102. package/dist/auth/dto/password-reset.dto.d.ts +11 -0
  103. package/dist/auth/dto/password-reset.dto.js +2 -0
  104. package/dist/auth/dto/phone-login.dto.d.ts +8 -0
  105. package/dist/auth/dto/phone-login.dto.js +2 -0
  106. package/dist/auth/dto/phone-verification.dto.d.ts +9 -0
  107. package/dist/auth/dto/phone-verification.dto.js +2 -0
  108. package/dist/auth/jwt-auth.guard.d.ts +13 -0
  109. package/dist/auth/jwt-auth.guard.js +143 -0
  110. package/dist/auth/jwt.strategy.d.ts +17 -0
  111. package/dist/auth/jwt.strategy.js +45 -0
  112. package/dist/auth/phone-validation.service.d.ts +7 -0
  113. package/dist/auth/phone-validation.service.js +50 -0
  114. package/dist/auth/public.decorator.d.ts +2 -0
  115. package/dist/auth/public.decorator.js +7 -0
  116. package/dist/auth/rate-limit.service.d.ts +16 -0
  117. package/dist/auth/rate-limit.service.js +84 -0
  118. package/dist/auth/room-access.decorator.d.ts +2 -0
  119. package/dist/auth/room-access.decorator.js +10 -0
  120. package/dist/auth/scopes.decorator.d.ts +2 -0
  121. package/dist/auth/scopes.decorator.js +7 -0
  122. package/dist/auth/scopes.guard.d.ts +9 -0
  123. package/dist/auth/scopes.guard.js +82 -0
  124. package/dist/auth/session.guard.d.ts +7 -0
  125. package/dist/auth/session.guard.js +55 -0
  126. package/dist/auth/twilio.service.d.ts +15 -0
  127. package/dist/auth/twilio.service.js +139 -0
  128. package/dist/auth/users.service.d.ts +24 -0
  129. package/dist/auth/users.service.js +149 -0
  130. package/dist/common/errors.d.ts +12 -0
  131. package/dist/common/errors.js +43 -0
  132. package/dist/config/configuration.module.d.ts +2 -0
  133. package/dist/config/configuration.module.js +20 -0
  134. package/dist/config/configuration.service.d.ts +26 -0
  135. package/dist/config/configuration.service.js +131 -0
  136. package/dist/main.js +15749 -0
  137. package/dist/room/artifact-store.service.d.ts +15 -0
  138. package/dist/room/artifact-store.service.js +226 -0
  139. package/dist/room/artifact.d.ts +6 -0
  140. package/dist/room/artifact.js +2 -0
  141. package/dist/room/message.d.ts +19 -0
  142. package/dist/room/message.js +70 -0
  143. package/dist/room/published-rooms.service.d.ts +12 -0
  144. package/dist/room/published-rooms.service.js +108 -0
  145. package/dist/room/room-config.d.ts +12 -0
  146. package/dist/room/room-config.js +2 -0
  147. package/dist/room/room-factory.d.ts +7 -0
  148. package/dist/room/room-factory.js +16 -0
  149. package/dist/room/room-message.module.d.ts +2 -0
  150. package/dist/room/room-message.module.js +21 -0
  151. package/dist/room/room-message.service.d.ts +8 -0
  152. package/dist/room/room-message.service.js +44 -0
  153. package/dist/room/room-store.module.d.ts +2 -0
  154. package/dist/room/room-store.module.js +25 -0
  155. package/dist/room/room-store.service.d.ts +38 -0
  156. package/dist/room/room-store.service.js +353 -0
  157. package/dist/room/room.d.ts +107 -0
  158. package/dist/room/room.js +833 -0
  159. package/dist/sdk/briyah-config.d.ts +13 -0
  160. package/dist/sdk/briyah-config.js +32 -0
  161. package/dist/sdk/briyah.d.ts +36 -0
  162. package/dist/sdk/briyah.js +122 -0
  163. package/dist/sdk/index.d.ts +6 -0
  164. package/dist/sdk/index.js +11 -0
  165. package/dist/server/src/ai/LLM/anthropic.module.d.ts +2 -0
  166. package/dist/server/src/ai/LLM/anthropic.module.js +21 -0
  167. package/dist/server/src/ai/LLM/anthropic.service.d.ts +27 -0
  168. package/dist/server/src/ai/LLM/anthropic.service.js +329 -0
  169. package/dist/server/src/ai/LLM/base-ai.service.d.ts +45 -0
  170. package/dist/server/src/ai/LLM/base-ai.service.js +409 -0
  171. package/dist/server/src/ai/LLM/deepseek.module.d.ts +2 -0
  172. package/dist/server/src/ai/LLM/deepseek.module.js +21 -0
  173. package/dist/server/src/ai/LLM/deepseek.service.d.ts +15 -0
  174. package/dist/server/src/ai/LLM/deepseek.service.js +279 -0
  175. package/dist/server/src/ai/LLM/fal.module.d.ts +2 -0
  176. package/dist/server/src/ai/LLM/fal.module.js +21 -0
  177. package/dist/server/src/ai/LLM/fal.service.d.ts +17 -0
  178. package/dist/server/src/ai/LLM/fal.service.js +314 -0
  179. package/dist/server/src/ai/LLM/googleai.module.d.ts +2 -0
  180. package/dist/server/src/ai/LLM/googleai.module.js +21 -0
  181. package/dist/server/src/ai/LLM/googleai.service.d.ts +20 -0
  182. package/dist/server/src/ai/LLM/googleai.service.js +271 -0
  183. package/dist/server/src/ai/LLM/grok.module.d.ts +2 -0
  184. package/dist/server/src/ai/LLM/grok.module.js +21 -0
  185. package/dist/server/src/ai/LLM/grok.service.d.ts +14 -0
  186. package/dist/server/src/ai/LLM/grok.service.js +263 -0
  187. package/dist/server/src/ai/LLM/mock.module.d.ts +2 -0
  188. package/dist/server/src/ai/LLM/mock.module.js +21 -0
  189. package/dist/server/src/ai/LLM/mock.service.d.ts +13 -0
  190. package/dist/server/src/ai/LLM/mock.service.js +194 -0
  191. package/dist/server/src/ai/LLM/openai.module.d.ts +2 -0
  192. package/dist/server/src/ai/LLM/openai.module.js +21 -0
  193. package/dist/server/src/ai/LLM/openai.service.d.ts +21 -0
  194. package/dist/server/src/ai/LLM/openai.service.js +421 -0
  195. package/dist/server/src/ai/LLM/together.module.d.ts +2 -0
  196. package/dist/server/src/ai/LLM/together.module.js +21 -0
  197. package/dist/server/src/ai/LLM/together.service.d.ts +18 -0
  198. package/dist/server/src/ai/LLM/together.service.js +285 -0
  199. package/dist/server/src/ai/LLM/vertexai.module.d.ts +2 -0
  200. package/dist/server/src/ai/LLM/vertexai.module.js +21 -0
  201. package/dist/server/src/ai/LLM/vertexai.service.d.ts +17 -0
  202. package/dist/server/src/ai/LLM/vertexai.service.js +323 -0
  203. package/dist/server/src/ai/agent-config.d.ts +32 -0
  204. package/dist/server/src/ai/agent-config.js +2 -0
  205. package/dist/server/src/ai/agent-factory.d.ts +15 -0
  206. package/dist/server/src/ai/agent-factory.js +24 -0
  207. package/dist/server/src/ai/agent-message.service.d.ts +9 -0
  208. package/dist/server/src/ai/agent-message.service.js +56 -0
  209. package/dist/server/src/ai/agent-store.module.d.ts +2 -0
  210. package/dist/server/src/ai/agent-store.module.js +21 -0
  211. package/dist/server/src/ai/agent-store.service.d.ts +31 -0
  212. package/dist/server/src/ai/agent-store.service.js +352 -0
  213. package/dist/server/src/ai/agent.d.ts +75 -0
  214. package/dist/server/src/ai/agent.js +174 -0
  215. package/dist/server/src/ai/ai-factory.module.d.ts +2 -0
  216. package/dist/server/src/ai/ai-factory.module.js +40 -0
  217. package/dist/server/src/ai/ai-factory.service.d.ts +24 -0
  218. package/dist/server/src/ai/ai-factory.service.js +94 -0
  219. package/dist/server/src/ai/artifact.module.d.ts +2 -0
  220. package/dist/server/src/ai/artifact.module.js +22 -0
  221. package/dist/server/src/ai/artifact.service.d.ts +21 -0
  222. package/dist/server/src/ai/artifact.service.js +239 -0
  223. package/dist/server/src/ai/attached-file.module.d.ts +2 -0
  224. package/dist/server/src/ai/attached-file.module.js +22 -0
  225. package/dist/server/src/ai/attached-file.service.d.ts +35 -0
  226. package/dist/server/src/ai/attached-file.service.js +253 -0
  227. package/dist/server/src/ai/model_prices.d.ts +2 -0
  228. package/dist/server/src/ai/model_prices.js +54 -0
  229. package/dist/server/src/ai/published-agents.service.d.ts +13 -0
  230. package/dist/server/src/ai/published-agents.service.js +118 -0
  231. package/dist/server/src/app/balance-message.service.d.ts +8 -0
  232. package/dist/server/src/app/balance-message.service.js +45 -0
  233. package/dist/server/src/app/balance.module.d.ts +2 -0
  234. package/dist/server/src/app/balance.module.js +20 -0
  235. package/dist/server/src/app/balance.service.d.ts +18 -0
  236. package/dist/server/src/app/balance.service.js +158 -0
  237. package/dist/server/src/app/stripe.controller.d.ts +31 -0
  238. package/dist/server/src/app/stripe.controller.js +148 -0
  239. package/dist/server/src/app/stripe.module.d.ts +2 -0
  240. package/dist/server/src/app/stripe.module.js +22 -0
  241. package/dist/server/src/app/stripe.service.d.ts +28 -0
  242. package/dist/server/src/app/stripe.service.js +198 -0
  243. package/dist/server/src/app/transaction.service.d.ts +15 -0
  244. package/dist/server/src/app/transaction.service.js +139 -0
  245. package/dist/server/src/app/user-service-factory.d.ts +21 -0
  246. package/dist/server/src/app/user-service-factory.js +81 -0
  247. package/dist/server/src/app/user-service-manager.d.ts +28 -0
  248. package/dist/server/src/app/user-service-manager.js +102 -0
  249. package/dist/server/src/app.controller.d.ts +232 -0
  250. package/dist/server/src/app.controller.js +2534 -0
  251. package/dist/server/src/app.module.d.ts +2 -0
  252. package/dist/server/src/app.module.js +45 -0
  253. package/dist/server/src/app.service.d.ts +186 -0
  254. package/dist/server/src/app.service.js +1334 -0
  255. package/dist/server/src/auth/agent-access.decorator.d.ts +2 -0
  256. package/dist/server/src/auth/agent-access.decorator.js +10 -0
  257. package/dist/server/src/auth/auth.controller.d.ts +38 -0
  258. package/dist/server/src/auth/auth.controller.js +356 -0
  259. package/dist/server/src/auth/auth.module.d.ts +2 -0
  260. package/dist/server/src/auth/auth.module.js +55 -0
  261. package/dist/server/src/auth/auth.service.d.ts +14 -0
  262. package/dist/server/src/auth/auth.service.js +84 -0
  263. package/dist/server/src/auth/dto/bot-login.dto.d.ts +4 -0
  264. package/dist/server/src/auth/dto/bot-login.dto.js +2 -0
  265. package/dist/server/src/auth/dto/password-reset.dto.d.ts +11 -0
  266. package/dist/server/src/auth/dto/password-reset.dto.js +2 -0
  267. package/dist/server/src/auth/dto/phone-login.dto.d.ts +8 -0
  268. package/dist/server/src/auth/dto/phone-login.dto.js +2 -0
  269. package/dist/server/src/auth/dto/phone-verification.dto.d.ts +9 -0
  270. package/dist/server/src/auth/dto/phone-verification.dto.js +2 -0
  271. package/dist/server/src/auth/jwt-auth.guard.d.ts +13 -0
  272. package/dist/server/src/auth/jwt-auth.guard.js +143 -0
  273. package/dist/server/src/auth/jwt.strategy.d.ts +17 -0
  274. package/dist/server/src/auth/jwt.strategy.js +45 -0
  275. package/dist/server/src/auth/phone-validation.service.d.ts +7 -0
  276. package/dist/server/src/auth/phone-validation.service.js +50 -0
  277. package/dist/server/src/auth/public.decorator.d.ts +2 -0
  278. package/dist/server/src/auth/public.decorator.js +7 -0
  279. package/dist/server/src/auth/rate-limit.service.d.ts +16 -0
  280. package/dist/server/src/auth/rate-limit.service.js +84 -0
  281. package/dist/server/src/auth/room-access.decorator.d.ts +2 -0
  282. package/dist/server/src/auth/room-access.decorator.js +10 -0
  283. package/dist/server/src/auth/scopes.decorator.d.ts +2 -0
  284. package/dist/server/src/auth/scopes.decorator.js +7 -0
  285. package/dist/server/src/auth/scopes.guard.d.ts +9 -0
  286. package/dist/server/src/auth/scopes.guard.js +82 -0
  287. package/dist/server/src/auth/session.guard.d.ts +7 -0
  288. package/dist/server/src/auth/session.guard.js +55 -0
  289. package/dist/server/src/auth/twilio.service.d.ts +15 -0
  290. package/dist/server/src/auth/twilio.service.js +139 -0
  291. package/dist/server/src/auth/users.service.d.ts +24 -0
  292. package/dist/server/src/auth/users.service.js +149 -0
  293. package/dist/server/src/common/errors.d.ts +12 -0
  294. package/dist/server/src/common/errors.js +43 -0
  295. package/dist/server/src/config/configuration.module.d.ts +2 -0
  296. package/dist/server/src/config/configuration.module.js +20 -0
  297. package/dist/server/src/config/configuration.service.d.ts +26 -0
  298. package/dist/server/src/config/configuration.service.js +131 -0
  299. package/dist/server/src/room/artifact-store.service.d.ts +15 -0
  300. package/dist/server/src/room/artifact-store.service.js +226 -0
  301. package/dist/server/src/room/artifact.d.ts +6 -0
  302. package/dist/server/src/room/artifact.js +2 -0
  303. package/dist/server/src/room/message.d.ts +19 -0
  304. package/dist/server/src/room/message.js +70 -0
  305. package/dist/server/src/room/published-rooms.service.d.ts +12 -0
  306. package/dist/server/src/room/published-rooms.service.js +108 -0
  307. package/dist/server/src/room/room-config.d.ts +12 -0
  308. package/dist/server/src/room/room-config.js +2 -0
  309. package/dist/server/src/room/room-factory.d.ts +7 -0
  310. package/dist/server/src/room/room-factory.js +16 -0
  311. package/dist/server/src/room/room-message.module.d.ts +2 -0
  312. package/dist/server/src/room/room-message.module.js +21 -0
  313. package/dist/server/src/room/room-message.service.d.ts +8 -0
  314. package/dist/server/src/room/room-message.service.js +44 -0
  315. package/dist/server/src/room/room-store.module.d.ts +2 -0
  316. package/dist/server/src/room/room-store.module.js +25 -0
  317. package/dist/server/src/room/room-store.service.d.ts +38 -0
  318. package/dist/server/src/room/room-store.service.js +353 -0
  319. package/dist/server/src/room/room.d.ts +107 -0
  320. package/dist/server/src/room/room.js +833 -0
  321. package/dist/server/src/sdk/briyah-config.d.ts +13 -0
  322. package/dist/server/src/sdk/briyah-config.js +32 -0
  323. package/dist/server/src/sdk/briyah.d.ts +36 -0
  324. package/dist/server/src/sdk/briyah.js +122 -0
  325. package/dist/server/src/sdk/index.d.ts +6 -0
  326. package/dist/server/src/sdk/index.js +11 -0
  327. package/dist/server/src/shared/shared.module.d.ts +2 -0
  328. package/dist/server/src/shared/shared.module.js +46 -0
  329. package/dist/server/src/story/story-message.service.d.ts +10 -0
  330. package/dist/server/src/story/story-message.service.js +57 -0
  331. package/dist/server/src/story/story-progress.service.d.ts +8 -0
  332. package/dist/server/src/story/story-progress.service.js +44 -0
  333. package/dist/server/src/story/story-store.module.d.ts +2 -0
  334. package/dist/server/src/story/story-store.module.js +22 -0
  335. package/dist/server/src/story/story-store.service.d.ts +23 -0
  336. package/dist/server/src/story/story-store.service.js +392 -0
  337. package/dist/server/src/story/story.service.d.ts +94 -0
  338. package/dist/server/src/story/story.service.js +1797 -0
  339. package/dist/shared/shared.module.d.ts +2 -0
  340. package/dist/shared/shared.module.js +46 -0
  341. package/dist/shared/types/app.types.d.ts +296 -0
  342. package/dist/shared/types/app.types.js +17 -0
  343. package/dist/story/story-message.service.d.ts +10 -0
  344. package/dist/story/story-message.service.js +57 -0
  345. package/dist/story/story-progress.service.d.ts +8 -0
  346. package/dist/story/story-progress.service.js +44 -0
  347. package/dist/story/story-store.module.d.ts +2 -0
  348. package/dist/story/story-store.module.js +22 -0
  349. package/dist/story/story-store.service.d.ts +23 -0
  350. package/dist/story/story-store.service.js +392 -0
  351. package/dist/story/story.service.d.ts +94 -0
  352. package/dist/story/story.service.js +1797 -0
  353. package/eslint.config.js +29 -0
  354. package/package.json +125 -0
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.JwtAuthGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const public_decorator_1 = require("./public.decorator");
16
+ const jwt_1 = require("@nestjs/jwt");
17
+ const published_agents_service_1 = require("../ai/published-agents.service");
18
+ const published_rooms_service_1 = require("../room/published-rooms.service");
19
+ let JwtAuthGuard = class JwtAuthGuard {
20
+ reflector;
21
+ jwtService;
22
+ publishedAgentsService;
23
+ publishedRoomsService;
24
+ constructor(reflector, jwtService, publishedAgentsService, publishedRoomsService) {
25
+ this.reflector = reflector;
26
+ this.jwtService = jwtService;
27
+ this.publishedAgentsService = publishedAgentsService;
28
+ this.publishedRoomsService = publishedRoomsService;
29
+ }
30
+ async canActivate(context) {
31
+ const isPublic = this.reflector.getAllAndOverride(public_decorator_1.IS_PUBLIC_KEY, [
32
+ context.getHandler(),
33
+ context.getClass(),
34
+ ]);
35
+ if (isPublic) {
36
+ return true;
37
+ }
38
+ const request = context.switchToHttp().getRequest();
39
+ const agentIdHeader = request.headers['x-briyah-agent-id'];
40
+ if (agentIdHeader) {
41
+ const userId = this.publishedAgentsService.getUserId(agentIdHeader);
42
+ if (!userId) {
43
+ console.log(`[AUTH] Invalid or unpublished agent ID in header: ${agentIdHeader}`);
44
+ return false;
45
+ }
46
+ request.user = {
47
+ sub: userId,
48
+ userId: userId,
49
+ type: 'agent-access',
50
+ scope: ['agent:read', 'agent:interact'],
51
+ agentId: agentIdHeader,
52
+ authSource: 'header',
53
+ };
54
+ return true;
55
+ }
56
+ const roomIdHeader = request.headers['x-briyah-room-id'];
57
+ if (roomIdHeader) {
58
+ const userId = this.publishedRoomsService.getUserId(roomIdHeader);
59
+ if (!userId) {
60
+ console.log(`[AUTH] Invalid or unpublished room ID in header: ${roomIdHeader}`);
61
+ return false;
62
+ }
63
+ request.user = {
64
+ sub: userId,
65
+ userId: userId,
66
+ type: 'room-access',
67
+ scope: ['room:read', 'room:interact'],
68
+ roomId: roomIdHeader,
69
+ authSource: 'header',
70
+ };
71
+ return true;
72
+ }
73
+ const url = request.url;
74
+ const agentSseMatch = url.match(/\/agents\/([^\/\?]+)\/messages/);
75
+ if (agentSseMatch) {
76
+ const agentId = agentSseMatch[1];
77
+ const userId = this.publishedAgentsService.getUserId(agentId);
78
+ if (userId) {
79
+ request.user = {
80
+ sub: userId,
81
+ userId: userId,
82
+ type: 'agent-access',
83
+ scope: ['agent:read', 'agent:interact'],
84
+ agentId: agentId,
85
+ authSource: 'sse-url',
86
+ };
87
+ return true;
88
+ }
89
+ }
90
+ const roomSseMatch = url.match(/\/rooms\/([^\/\?]+)\/messages/);
91
+ if (roomSseMatch) {
92
+ const roomId = roomSseMatch[1];
93
+ const userId = this.publishedRoomsService.getUserId(roomId);
94
+ if (userId) {
95
+ request.user = {
96
+ sub: userId,
97
+ userId: userId,
98
+ type: 'room-access',
99
+ scope: ['room:read', 'room:interact'],
100
+ roomId: roomId,
101
+ authSource: 'sse-url',
102
+ };
103
+ return true;
104
+ }
105
+ }
106
+ let token = request.cookies?.briyah_jwt;
107
+ if (!token) {
108
+ const authHeader = request.headers.authorization;
109
+ if (authHeader && authHeader.startsWith('Bearer ')) {
110
+ token = authHeader.substring(7);
111
+ }
112
+ }
113
+ if (!token) {
114
+ return false;
115
+ }
116
+ try {
117
+ const payload = await this.jwtService.verifyAsync(token);
118
+ request.user = {
119
+ sub: payload.sub,
120
+ userId: payload.sub,
121
+ phoneNumber: payload.phoneNumber,
122
+ type: payload.type || 'user',
123
+ scope: payload.scope || ['user:full'],
124
+ mode: payload.mode,
125
+ agentId: payload.agentId,
126
+ roomId: payload.roomId,
127
+ };
128
+ return true;
129
+ }
130
+ catch (error) {
131
+ console.log('[AUTH] Invalid JWT token:', error.message);
132
+ return false;
133
+ }
134
+ }
135
+ };
136
+ exports.JwtAuthGuard = JwtAuthGuard;
137
+ exports.JwtAuthGuard = JwtAuthGuard = __decorate([
138
+ (0, common_1.Injectable)(),
139
+ __metadata("design:paramtypes", [core_1.Reflector,
140
+ jwt_1.JwtService,
141
+ published_agents_service_1.PublishedAgentsService,
142
+ published_rooms_service_1.PublishedRoomsService])
143
+ ], JwtAuthGuard);
@@ -0,0 +1,17 @@
1
+ import { Strategy } from 'passport-jwt';
2
+ import { ConfigService } from '@nestjs/config';
3
+ declare const JwtStrategy_base: new (...args: [opt: import("passport-jwt").StrategyOptionsWithRequest] | [opt: import("passport-jwt").StrategyOptionsWithoutRequest]) => Strategy & {
4
+ validate(...args: any[]): unknown;
5
+ };
6
+ export declare class JwtStrategy extends JwtStrategy_base {
7
+ private configService;
8
+ constructor(configService: ConfigService);
9
+ validate(payload: any): Promise<{
10
+ username: any;
11
+ sub: any;
12
+ type: any;
13
+ agentId: any;
14
+ scope: any;
15
+ }>;
16
+ }
17
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.JwtStrategy = void 0;
13
+ const passport_jwt_1 = require("passport-jwt");
14
+ const passport_1 = require("@nestjs/passport");
15
+ const common_1 = require("@nestjs/common");
16
+ const config_1 = require("@nestjs/config");
17
+ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(passport_jwt_1.Strategy) {
18
+ configService;
19
+ constructor(configService) {
20
+ const jwtSecret = configService.get('JWT_SECRET');
21
+ if (!jwtSecret) {
22
+ throw new Error('JWT_SECRET environment variable not set');
23
+ }
24
+ super({
25
+ jwtFromRequest: passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken(),
26
+ ignoreExpiration: false,
27
+ secretOrKey: jwtSecret,
28
+ });
29
+ this.configService = configService;
30
+ }
31
+ async validate(payload) {
32
+ return {
33
+ username: payload.username,
34
+ sub: payload.sub,
35
+ type: payload.type || 'user',
36
+ agentId: payload.agentId,
37
+ scope: payload.scope || ['user:full'],
38
+ };
39
+ }
40
+ };
41
+ exports.JwtStrategy = JwtStrategy;
42
+ exports.JwtStrategy = JwtStrategy = __decorate([
43
+ (0, common_1.Injectable)(),
44
+ __metadata("design:paramtypes", [config_1.ConfigService])
45
+ ], JwtStrategy);
@@ -0,0 +1,7 @@
1
+ export declare class PhoneValidationService {
2
+ normalizePhone(input: string): string;
3
+ validatePhoneFormat(input: string): boolean;
4
+ formatPhoneForDisplay(phone: string): string;
5
+ isTestPhoneNumber(input: string): boolean;
6
+ validateNotTestNumber(input: string): boolean;
7
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PhoneValidationService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let PhoneValidationService = class PhoneValidationService {
12
+ normalizePhone(input) {
13
+ if (!input)
14
+ return '';
15
+ const digits = input.replace(/\D/g, '');
16
+ if (digits.length === 11 && digits.startsWith('1')) {
17
+ return digits.substring(1);
18
+ }
19
+ return digits.length === 10 ? digits : '';
20
+ }
21
+ validatePhoneFormat(input) {
22
+ const normalized = this.normalizePhone(input);
23
+ if (normalized.length !== 10)
24
+ return false;
25
+ const firstDigit = parseInt(normalized[0]);
26
+ if (firstDigit === 0 || firstDigit === 1)
27
+ return false;
28
+ return true;
29
+ }
30
+ formatPhoneForDisplay(phone) {
31
+ const normalized = this.normalizePhone(phone);
32
+ if (normalized.length !== 10)
33
+ return phone;
34
+ return `(${normalized.substring(0, 3)}) ${normalized.substring(3, 6)}-${normalized.substring(6)}`;
35
+ }
36
+ isTestPhoneNumber(input) {
37
+ const normalized = this.normalizePhone(input);
38
+ return normalized.startsWith('555');
39
+ }
40
+ validateNotTestNumber(input) {
41
+ if (process.env.NODE_ENV === 'production' && this.isTestPhoneNumber(input)) {
42
+ return false;
43
+ }
44
+ return true;
45
+ }
46
+ };
47
+ exports.PhoneValidationService = PhoneValidationService;
48
+ exports.PhoneValidationService = PhoneValidationService = __decorate([
49
+ (0, common_1.Injectable)()
50
+ ], PhoneValidationService);
@@ -0,0 +1,2 @@
1
+ export declare const IS_PUBLIC_KEY = "isPublic";
2
+ export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Public = exports.IS_PUBLIC_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.IS_PUBLIC_KEY = 'isPublic';
6
+ const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
7
+ exports.Public = Public;
@@ -0,0 +1,16 @@
1
+ export declare class RateLimitService {
2
+ private readonly logger;
3
+ private readonly attemptMap;
4
+ private readonly MAX_ATTEMPTS;
5
+ private readonly WINDOW_MINUTES;
6
+ private cleanupInterval;
7
+ constructor();
8
+ checkRateLimit(phone: string): {
9
+ allowed: boolean;
10
+ remainingAttempts?: number;
11
+ };
12
+ recordAttempt(phone: string): void;
13
+ clearAttempts(phone: string): void;
14
+ private cleanup;
15
+ onModuleDestroy(): void;
16
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var RateLimitService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RateLimitService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ let RateLimitService = RateLimitService_1 = class RateLimitService {
16
+ logger = new common_1.Logger(RateLimitService_1.name);
17
+ attemptMap = new Map();
18
+ MAX_ATTEMPTS = 3;
19
+ WINDOW_MINUTES = 15;
20
+ cleanupInterval;
21
+ constructor() {
22
+ this.cleanupInterval = setInterval(() => {
23
+ this.cleanup();
24
+ }, 60 * 60 * 1000);
25
+ }
26
+ checkRateLimit(phone) {
27
+ const entry = this.attemptMap.get(phone);
28
+ if (!entry) {
29
+ return { allowed: true, remainingAttempts: this.MAX_ATTEMPTS };
30
+ }
31
+ if (new Date() > entry.resetAt) {
32
+ this.attemptMap.delete(phone);
33
+ return { allowed: true, remainingAttempts: this.MAX_ATTEMPTS };
34
+ }
35
+ if (entry.count >= this.MAX_ATTEMPTS) {
36
+ return { allowed: false, remainingAttempts: 0 };
37
+ }
38
+ return {
39
+ allowed: true,
40
+ remainingAttempts: this.MAX_ATTEMPTS - entry.count,
41
+ };
42
+ }
43
+ recordAttempt(phone) {
44
+ const entry = this.attemptMap.get(phone);
45
+ const now = new Date();
46
+ if (!entry || now > entry.resetAt) {
47
+ this.attemptMap.set(phone, {
48
+ count: 1,
49
+ resetAt: new Date(now.getTime() + this.WINDOW_MINUTES * 60 * 1000),
50
+ });
51
+ }
52
+ else {
53
+ entry.count++;
54
+ }
55
+ this.logger.debug(`Rate limit recorded for ${phone}: ${this.attemptMap.get(phone)?.count}/${this.MAX_ATTEMPTS}`);
56
+ }
57
+ clearAttempts(phone) {
58
+ this.attemptMap.delete(phone);
59
+ this.logger.debug(`Rate limit cleared for ${phone}`);
60
+ }
61
+ cleanup() {
62
+ const now = new Date();
63
+ let cleaned = 0;
64
+ for (const [phone, entry] of this.attemptMap.entries()) {
65
+ if (now > entry.resetAt) {
66
+ this.attemptMap.delete(phone);
67
+ cleaned++;
68
+ }
69
+ }
70
+ if (cleaned > 0) {
71
+ this.logger.debug(`Cleaned up ${cleaned} expired rate limit entries`);
72
+ }
73
+ }
74
+ onModuleDestroy() {
75
+ if (this.cleanupInterval) {
76
+ clearInterval(this.cleanupInterval);
77
+ }
78
+ }
79
+ };
80
+ exports.RateLimitService = RateLimitService;
81
+ exports.RateLimitService = RateLimitService = RateLimitService_1 = __decorate([
82
+ (0, common_1.Injectable)(),
83
+ __metadata("design:paramtypes", [])
84
+ ], RateLimitService);
@@ -0,0 +1,2 @@
1
+ export declare const RoomReadAccess: () => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
2
+ export declare const RoomAccess: () => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoomAccess = exports.RoomReadAccess = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const scopes_guard_1 = require("./scopes.guard");
6
+ const scopes_decorator_1 = require("./scopes.decorator");
7
+ const RoomReadAccess = () => (0, common_1.applyDecorators)((0, common_1.UseGuards)(scopes_guard_1.ScopesGuard), (0, scopes_decorator_1.RequireScopes)('room:read'));
8
+ exports.RoomReadAccess = RoomReadAccess;
9
+ const RoomAccess = () => (0, common_1.applyDecorators)((0, common_1.UseGuards)(scopes_guard_1.ScopesGuard), (0, scopes_decorator_1.RequireScopes)('room:read', 'room:interact'));
10
+ exports.RoomAccess = RoomAccess;
@@ -0,0 +1,2 @@
1
+ export declare const SCOPES_KEY = "scopes";
2
+ export declare const RequireScopes: (...scopes: string[]) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequireScopes = exports.SCOPES_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.SCOPES_KEY = 'scopes';
6
+ const RequireScopes = (...scopes) => (0, common_1.SetMetadata)(exports.SCOPES_KEY, scopes);
7
+ exports.RequireScopes = RequireScopes;
@@ -0,0 +1,9 @@
1
+ import { ExecutionContext, CanActivate } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class ScopesGuard implements CanActivate {
4
+ private reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ private extractAgentIdFromRequest;
8
+ private extractRoomIdFromRequest;
9
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ScopesGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const scopes_decorator_1 = require("./scopes.decorator");
16
+ let ScopesGuard = class ScopesGuard {
17
+ reflector;
18
+ constructor(reflector) {
19
+ this.reflector = reflector;
20
+ }
21
+ async canActivate(context) {
22
+ const request = context.switchToHttp().getRequest();
23
+ if (!request.user) {
24
+ return false;
25
+ }
26
+ const requiredScopes = this.reflector.getAllAndOverride(scopes_decorator_1.SCOPES_KEY, [
27
+ context.getHandler(),
28
+ context.getClass(),
29
+ ]);
30
+ if (!requiredScopes || requiredScopes.length === 0) {
31
+ return true;
32
+ }
33
+ const user = request.user;
34
+ const userScopes = user.scope || [];
35
+ if (userScopes.includes('user:full')) {
36
+ return true;
37
+ }
38
+ const hasAllScopes = requiredScopes.every((scope) => userScopes.includes(scope));
39
+ if (!hasAllScopes) {
40
+ throw new common_1.ForbiddenException('Insufficient permissions');
41
+ }
42
+ if (user.type === 'agent-access' && user.agentId) {
43
+ const agentId = this.extractAgentIdFromRequest(request);
44
+ if (agentId && agentId !== user.agentId) {
45
+ throw new common_1.ForbiddenException('Token not valid for this agent');
46
+ }
47
+ }
48
+ if (user.type === 'room-access' && user.roomId) {
49
+ const roomId = this.extractRoomIdFromRequest(request);
50
+ if (roomId && roomId !== user.roomId) {
51
+ throw new common_1.ForbiddenException('Token not valid for this room');
52
+ }
53
+ }
54
+ return true;
55
+ }
56
+ extractAgentIdFromRequest(request) {
57
+ if (request.params?.agentId) {
58
+ return request.params.agentId;
59
+ }
60
+ if (request.body?.agentId) {
61
+ return request.body.agentId;
62
+ }
63
+ return null;
64
+ }
65
+ extractRoomIdFromRequest(request) {
66
+ if (request.params?.roomId) {
67
+ return request.params.roomId;
68
+ }
69
+ if (request.query?.roomId) {
70
+ return request.query.roomId;
71
+ }
72
+ if (request.body?.roomId) {
73
+ return request.body.roomId;
74
+ }
75
+ return null;
76
+ }
77
+ };
78
+ exports.ScopesGuard = ScopesGuard;
79
+ exports.ScopesGuard = ScopesGuard = __decorate([
80
+ (0, common_1.Injectable)(),
81
+ __metadata("design:paramtypes", [core_1.Reflector])
82
+ ], ScopesGuard);
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { JwtService } from '@nestjs/jwt';
3
+ export declare class SessionGuard implements CanActivate {
4
+ private jwtService;
5
+ constructor(jwtService: JwtService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SessionGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const jwt_1 = require("@nestjs/jwt");
15
+ let SessionGuard = class SessionGuard {
16
+ jwtService;
17
+ constructor(jwtService) {
18
+ this.jwtService = jwtService;
19
+ }
20
+ async canActivate(context) {
21
+ const request = context.switchToHttp().getRequest();
22
+ let token = request.cookies?.briyah_jwt;
23
+ if (!token) {
24
+ const authHeader = request.headers.authorization;
25
+ if (authHeader && authHeader.startsWith('Bearer ')) {
26
+ token = authHeader.substring(7);
27
+ }
28
+ }
29
+ if (!token) {
30
+ return false;
31
+ }
32
+ try {
33
+ const payload = await this.jwtService.verifyAsync(token);
34
+ request.user = {
35
+ sub: payload.sub,
36
+ userId: payload.sub,
37
+ phoneNumber: payload.phoneNumber,
38
+ type: payload.type || 'user',
39
+ scope: payload.scope || ['user:full'],
40
+ mode: payload.mode,
41
+ agentId: payload.agentId,
42
+ roomId: payload.roomId,
43
+ };
44
+ return true;
45
+ }
46
+ catch (_error) {
47
+ return false;
48
+ }
49
+ }
50
+ };
51
+ exports.SessionGuard = SessionGuard;
52
+ exports.SessionGuard = SessionGuard = __decorate([
53
+ (0, common_1.Injectable)(),
54
+ __metadata("design:paramtypes", [jwt_1.JwtService])
55
+ ], SessionGuard);
@@ -0,0 +1,15 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ export declare class TwilioService {
3
+ private configService;
4
+ private readonly TWILIO_ACCOUNT_SID;
5
+ private readonly TWILIO_AUTH_TOKEN;
6
+ private readonly TWILIO_API_URL;
7
+ private readonly TWILIO_PHONE;
8
+ private readonly TWILIO_VERIFY_SID;
9
+ constructor(configService: ConfigService);
10
+ sendVerification(to: string, channel?: 'sms' | 'call'): Promise<any>;
11
+ checkVerification(to: string, code: string): Promise<any>;
12
+ sendSms(to: string, body: string): Promise<any>;
13
+ private isTestMode;
14
+ private isTestPhoneNumber;
15
+ }