katanakit-js 2.13.7 → 2.14.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 (310) hide show
  1. package/README.md +233 -0
  2. package/dist/adapters/assistant/assistant.service.d.ts +27 -0
  3. package/dist/adapters/assistant/assistant.service.d.ts.map +1 -0
  4. package/dist/adapters/assistant/assistant.service.js +76 -0
  5. package/dist/adapters/assistant/assistant.service.js.map +1 -0
  6. package/dist/adapters/assistant/index.d.ts +2 -0
  7. package/dist/adapters/assistant/index.d.ts.map +1 -0
  8. package/dist/adapters/assistant/index.js +2 -0
  9. package/dist/adapters/assistant/index.js.map +1 -0
  10. package/dist/adapters/assistant/main.d.ts +2 -0
  11. package/dist/adapters/assistant/main.d.ts.map +1 -0
  12. package/dist/adapters/assistant/main.js +12 -0
  13. package/dist/adapters/assistant/main.js.map +1 -0
  14. package/dist/adapters/astro/astro.service.d.ts.map +1 -0
  15. package/dist/adapters/astro/astro.service.js.map +1 -0
  16. package/dist/adapters/astro/index.d.ts.map +1 -0
  17. package/dist/adapters/astro/index.js.map +1 -0
  18. package/dist/adapters/astro/rss.service.d.ts.map +1 -0
  19. package/dist/adapters/astro/rss.service.js.map +1 -0
  20. package/dist/adapters/astro/seo.service.d.ts.map +1 -0
  21. package/dist/adapters/astro/seo.service.js.map +1 -0
  22. package/dist/adapters/express/app.d.ts.map +1 -0
  23. package/dist/adapters/express/app.js.map +1 -0
  24. package/dist/{katanakit-js/adapters → adapters}/express/index.d.ts +1 -1
  25. package/dist/adapters/express/index.d.ts.map +1 -0
  26. package/dist/{katanakit-js/adapters → adapters}/express/index.js +1 -1
  27. package/dist/adapters/express/index.js.map +1 -0
  28. package/dist/{katanakit-js/adapters → adapters}/express/main.d.ts.map +1 -1
  29. package/dist/adapters/express/main.js.map +1 -0
  30. package/dist/adapters/express/products.controller.d.ts.map +1 -0
  31. package/dist/adapters/express/products.controller.js.map +1 -0
  32. package/dist/adapters/express/router.d.ts.map +1 -0
  33. package/dist/adapters/express/router.js.map +1 -0
  34. package/dist/adapters/express/server.d.ts +63 -0
  35. package/dist/adapters/express/server.d.ts.map +1 -0
  36. package/dist/{katanakit-js/adapters → adapters}/express/server.js +45 -6
  37. package/dist/adapters/express/server.js.map +1 -0
  38. package/dist/adapters/index.d.ts.map +1 -0
  39. package/dist/adapters/index.js.map +1 -0
  40. package/dist/adapters/nuxt/index.d.ts.map +1 -0
  41. package/dist/adapters/nuxt/index.js.map +1 -0
  42. package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -0
  43. package/dist/adapters/nuxt/nuxt.service.js.map +1 -0
  44. package/dist/adapters/telegram/index.d.ts +3 -0
  45. package/dist/adapters/telegram/index.d.ts.map +1 -0
  46. package/dist/adapters/telegram/index.js +2 -0
  47. package/dist/adapters/telegram/index.js.map +1 -0
  48. package/dist/adapters/telegram/main.d.ts +2 -0
  49. package/dist/adapters/telegram/main.d.ts.map +1 -0
  50. package/dist/adapters/telegram/main.js +11 -0
  51. package/dist/adapters/telegram/main.js.map +1 -0
  52. package/dist/adapters/telegram/telegram.service.d.ts +60 -0
  53. package/dist/adapters/telegram/telegram.service.d.ts.map +1 -0
  54. package/dist/adapters/telegram/telegram.service.js +103 -0
  55. package/dist/adapters/telegram/telegram.service.js.map +1 -0
  56. package/dist/adapters/vue/index.d.ts.map +1 -0
  57. package/dist/adapters/vue/index.js.map +1 -0
  58. package/dist/adapters/vue/vue.service.d.ts.map +1 -0
  59. package/dist/adapters/vue/vue.service.js.map +1 -0
  60. package/dist/adapters/whatsapp/index.d.ts +3 -0
  61. package/dist/adapters/whatsapp/index.d.ts.map +1 -0
  62. package/dist/adapters/whatsapp/index.js +2 -0
  63. package/dist/adapters/whatsapp/index.js.map +1 -0
  64. package/dist/adapters/whatsapp/main.d.ts +2 -0
  65. package/dist/adapters/whatsapp/main.d.ts.map +1 -0
  66. package/dist/adapters/whatsapp/main.js +14 -0
  67. package/dist/adapters/whatsapp/main.js.map +1 -0
  68. package/dist/adapters/whatsapp/whatsapp.service.d.ts +96 -0
  69. package/dist/adapters/whatsapp/whatsapp.service.d.ts.map +1 -0
  70. package/dist/adapters/whatsapp/whatsapp.service.js +191 -0
  71. package/dist/adapters/whatsapp/whatsapp.service.js.map +1 -0
  72. package/dist/config/index.d.ts.map +1 -0
  73. package/dist/config/index.js.map +1 -0
  74. package/dist/config/seo-meta.types.d.ts.map +1 -0
  75. package/dist/config/seo-meta.types.js.map +1 -0
  76. package/dist/config/seo.service.d.ts.map +1 -0
  77. package/dist/config/seo.service.js.map +1 -0
  78. package/dist/config/site.config.d.ts.map +1 -0
  79. package/dist/config/site.config.js.map +1 -0
  80. package/dist/{katanakit-js/core → core}/index.d.ts +2 -0
  81. package/dist/core/index.d.ts.map +1 -0
  82. package/dist/{katanakit-js/core → core}/index.js +2 -0
  83. package/dist/core/index.js.map +1 -0
  84. package/dist/core/services/agent.service.d.ts +76 -0
  85. package/dist/core/services/agent.service.d.ts.map +1 -0
  86. package/dist/core/services/agent.service.js +291 -0
  87. package/dist/core/services/agent.service.js.map +1 -0
  88. package/dist/core/services/assistant.service.d.ts +94 -0
  89. package/dist/core/services/assistant.service.d.ts.map +1 -0
  90. package/dist/core/services/assistant.service.js +200 -0
  91. package/dist/core/services/assistant.service.js.map +1 -0
  92. package/dist/core/services/dates.service.d.ts.map +1 -0
  93. package/dist/core/services/dates.service.js.map +1 -0
  94. package/dist/core/services/error.service.d.ts.map +1 -0
  95. package/dist/core/services/error.service.js.map +1 -0
  96. package/dist/core/services/formatter.service.d.ts.map +1 -0
  97. package/dist/core/services/formatter.service.js.map +1 -0
  98. package/dist/core/services/generator.service.d.ts.map +1 -0
  99. package/dist/core/services/generator.service.js.map +1 -0
  100. package/dist/core/services/geometry.service.d.ts.map +1 -0
  101. package/dist/core/services/geometry.service.js.map +1 -0
  102. package/dist/core/services/http.service.d.ts.map +1 -0
  103. package/dist/core/services/http.service.js.map +1 -0
  104. package/dist/core/services/logger.service.d.ts.map +1 -0
  105. package/dist/core/services/logger.service.js.map +1 -0
  106. package/dist/core/services/reactive.service.d.ts.map +1 -0
  107. package/dist/core/services/reactive.service.js.map +1 -0
  108. package/dist/core/services/timing.service.d.ts.map +1 -0
  109. package/dist/core/services/timing.service.js.map +1 -0
  110. package/dist/core/services/utils.service.d.ts.map +1 -0
  111. package/dist/core/services/utils.service.js.map +1 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/infrastructure/dom/dom.service.d.ts.map +1 -0
  115. package/dist/infrastructure/dom/dom.service.js.map +1 -0
  116. package/dist/infrastructure/index.d.ts.map +1 -0
  117. package/dist/infrastructure/index.js.map +1 -0
  118. package/dist/infrastructure/observer/observer.service.d.ts.map +1 -0
  119. package/dist/infrastructure/observer/observer.service.js.map +1 -0
  120. package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -0
  121. package/dist/infrastructure/sensors/sensors.service.js.map +1 -0
  122. package/dist/{katanakit-js/infrastructure → infrastructure}/storage/storage.service.d.ts +3 -2
  123. package/dist/infrastructure/storage/storage.service.d.ts.map +1 -0
  124. package/dist/{katanakit-js/infrastructure → infrastructure}/storage/storage.service.js +24 -28
  125. package/dist/infrastructure/storage/storage.service.js.map +1 -0
  126. package/dist/infrastructure/theme/theme.service.d.ts.map +1 -0
  127. package/dist/infrastructure/theme/theme.service.js.map +1 -0
  128. package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -0
  129. package/dist/infrastructure/viewport/viewport.service.js.map +1 -0
  130. package/dist/infrastructure/worker/worker.service.d.ts.map +1 -0
  131. package/dist/infrastructure/worker/worker.service.js.map +1 -0
  132. package/dist/prisma/assistant.store.d.ts +11 -0
  133. package/dist/prisma/assistant.store.d.ts.map +1 -0
  134. package/dist/prisma/assistant.store.js +40 -0
  135. package/dist/prisma/assistant.store.js.map +1 -0
  136. package/dist/prisma/db.d.ts.map +1 -0
  137. package/dist/prisma/db.js.map +1 -0
  138. package/dist/prisma/index.d.ts +3 -0
  139. package/dist/prisma/index.d.ts.map +1 -0
  140. package/dist/prisma/index.js +3 -0
  141. package/dist/prisma/index.js.map +1 -0
  142. package/dist/{katanakit-js/prisma → prisma}/schema.json +321 -13
  143. package/dist/prisma/use-prisma.d.ts.map +1 -0
  144. package/dist/prisma/use-prisma.js.map +1 -0
  145. package/dist/{katanakit-js/types → types}/index.d.ts +127 -0
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/{katanakit-js/types → types}/index.js.map +1 -1
  148. package/package.json +30 -9
  149. package/dist/katanakit-js/adapters/astro/astro.service.d.ts.map +0 -1
  150. package/dist/katanakit-js/adapters/astro/astro.service.js.map +0 -1
  151. package/dist/katanakit-js/adapters/astro/index.d.ts.map +0 -1
  152. package/dist/katanakit-js/adapters/astro/index.js.map +0 -1
  153. package/dist/katanakit-js/adapters/astro/rss.service.d.ts.map +0 -1
  154. package/dist/katanakit-js/adapters/astro/rss.service.js.map +0 -1
  155. package/dist/katanakit-js/adapters/astro/seo.service.d.ts.map +0 -1
  156. package/dist/katanakit-js/adapters/astro/seo.service.js.map +0 -1
  157. package/dist/katanakit-js/adapters/express/app.d.ts.map +0 -1
  158. package/dist/katanakit-js/adapters/express/app.js.map +0 -1
  159. package/dist/katanakit-js/adapters/express/index.d.ts.map +0 -1
  160. package/dist/katanakit-js/adapters/express/index.js.map +0 -1
  161. package/dist/katanakit-js/adapters/express/main.js.map +0 -1
  162. package/dist/katanakit-js/adapters/express/products.controller.d.ts.map +0 -1
  163. package/dist/katanakit-js/adapters/express/products.controller.js.map +0 -1
  164. package/dist/katanakit-js/adapters/express/router.d.ts.map +0 -1
  165. package/dist/katanakit-js/adapters/express/router.js.map +0 -1
  166. package/dist/katanakit-js/adapters/express/server.d.ts +0 -39
  167. package/dist/katanakit-js/adapters/express/server.d.ts.map +0 -1
  168. package/dist/katanakit-js/adapters/express/server.js.map +0 -1
  169. package/dist/katanakit-js/adapters/index.d.ts.map +0 -1
  170. package/dist/katanakit-js/adapters/index.js.map +0 -1
  171. package/dist/katanakit-js/adapters/nuxt/index.d.ts.map +0 -1
  172. package/dist/katanakit-js/adapters/nuxt/index.js.map +0 -1
  173. package/dist/katanakit-js/adapters/nuxt/nuxt.service.d.ts.map +0 -1
  174. package/dist/katanakit-js/adapters/nuxt/nuxt.service.js.map +0 -1
  175. package/dist/katanakit-js/adapters/vue/index.d.ts.map +0 -1
  176. package/dist/katanakit-js/adapters/vue/index.js.map +0 -1
  177. package/dist/katanakit-js/adapters/vue/vue.service.d.ts.map +0 -1
  178. package/dist/katanakit-js/adapters/vue/vue.service.js.map +0 -1
  179. package/dist/katanakit-js/config/index.d.ts.map +0 -1
  180. package/dist/katanakit-js/config/index.js.map +0 -1
  181. package/dist/katanakit-js/config/seo-meta.types.d.ts.map +0 -1
  182. package/dist/katanakit-js/config/seo-meta.types.js.map +0 -1
  183. package/dist/katanakit-js/config/seo.service.d.ts.map +0 -1
  184. package/dist/katanakit-js/config/seo.service.js.map +0 -1
  185. package/dist/katanakit-js/config/site.config.d.ts.map +0 -1
  186. package/dist/katanakit-js/config/site.config.js.map +0 -1
  187. package/dist/katanakit-js/core/index.d.ts.map +0 -1
  188. package/dist/katanakit-js/core/index.js.map +0 -1
  189. package/dist/katanakit-js/core/services/dates.service.d.ts.map +0 -1
  190. package/dist/katanakit-js/core/services/dates.service.js.map +0 -1
  191. package/dist/katanakit-js/core/services/error.service.d.ts.map +0 -1
  192. package/dist/katanakit-js/core/services/error.service.js.map +0 -1
  193. package/dist/katanakit-js/core/services/formatter.service.d.ts.map +0 -1
  194. package/dist/katanakit-js/core/services/formatter.service.js.map +0 -1
  195. package/dist/katanakit-js/core/services/generator.service.d.ts.map +0 -1
  196. package/dist/katanakit-js/core/services/generator.service.js.map +0 -1
  197. package/dist/katanakit-js/core/services/geometry.service.d.ts.map +0 -1
  198. package/dist/katanakit-js/core/services/geometry.service.js.map +0 -1
  199. package/dist/katanakit-js/core/services/http.service.d.ts.map +0 -1
  200. package/dist/katanakit-js/core/services/http.service.js.map +0 -1
  201. package/dist/katanakit-js/core/services/logger.service.d.ts.map +0 -1
  202. package/dist/katanakit-js/core/services/logger.service.js.map +0 -1
  203. package/dist/katanakit-js/core/services/reactive.service.d.ts.map +0 -1
  204. package/dist/katanakit-js/core/services/reactive.service.js.map +0 -1
  205. package/dist/katanakit-js/core/services/timing.service.d.ts.map +0 -1
  206. package/dist/katanakit-js/core/services/timing.service.js.map +0 -1
  207. package/dist/katanakit-js/core/services/utils.service.d.ts.map +0 -1
  208. package/dist/katanakit-js/core/services/utils.service.js.map +0 -1
  209. package/dist/katanakit-js/index.d.ts.map +0 -1
  210. package/dist/katanakit-js/index.js.map +0 -1
  211. package/dist/katanakit-js/infrastructure/dom/dom.service.d.ts.map +0 -1
  212. package/dist/katanakit-js/infrastructure/dom/dom.service.js.map +0 -1
  213. package/dist/katanakit-js/infrastructure/index.d.ts.map +0 -1
  214. package/dist/katanakit-js/infrastructure/index.js.map +0 -1
  215. package/dist/katanakit-js/infrastructure/observer/observer.service.d.ts.map +0 -1
  216. package/dist/katanakit-js/infrastructure/observer/observer.service.js.map +0 -1
  217. package/dist/katanakit-js/infrastructure/sensors/sensors.service.d.ts.map +0 -1
  218. package/dist/katanakit-js/infrastructure/sensors/sensors.service.js.map +0 -1
  219. package/dist/katanakit-js/infrastructure/storage/storage.service.d.ts.map +0 -1
  220. package/dist/katanakit-js/infrastructure/storage/storage.service.js.map +0 -1
  221. package/dist/katanakit-js/infrastructure/theme/theme.service.d.ts.map +0 -1
  222. package/dist/katanakit-js/infrastructure/theme/theme.service.js.map +0 -1
  223. package/dist/katanakit-js/infrastructure/viewport/viewport.service.d.ts.map +0 -1
  224. package/dist/katanakit-js/infrastructure/viewport/viewport.service.js.map +0 -1
  225. package/dist/katanakit-js/infrastructure/worker/worker.service.d.ts.map +0 -1
  226. package/dist/katanakit-js/infrastructure/worker/worker.service.js.map +0 -1
  227. package/dist/katanakit-js/prisma/db.d.ts.map +0 -1
  228. package/dist/katanakit-js/prisma/db.js.map +0 -1
  229. package/dist/katanakit-js/prisma/index.d.ts +0 -2
  230. package/dist/katanakit-js/prisma/index.d.ts.map +0 -1
  231. package/dist/katanakit-js/prisma/index.js +0 -2
  232. package/dist/katanakit-js/prisma/index.js.map +0 -1
  233. package/dist/katanakit-js/prisma/use-prisma.d.ts.map +0 -1
  234. package/dist/katanakit-js/prisma/use-prisma.js.map +0 -1
  235. package/dist/katanakit-js/types/index.d.ts.map +0 -1
  236. /package/dist/{katanakit-js/adapters → adapters}/astro/astro.service.d.ts +0 -0
  237. /package/dist/{katanakit-js/adapters → adapters}/astro/astro.service.js +0 -0
  238. /package/dist/{katanakit-js/adapters → adapters}/astro/index.d.ts +0 -0
  239. /package/dist/{katanakit-js/adapters → adapters}/astro/index.js +0 -0
  240. /package/dist/{katanakit-js/adapters → adapters}/astro/rss.service.d.ts +0 -0
  241. /package/dist/{katanakit-js/adapters → adapters}/astro/rss.service.js +0 -0
  242. /package/dist/{katanakit-js/adapters → adapters}/astro/seo.service.d.ts +0 -0
  243. /package/dist/{katanakit-js/adapters → adapters}/astro/seo.service.js +0 -0
  244. /package/dist/{katanakit-js/adapters → adapters}/express/app.d.ts +0 -0
  245. /package/dist/{katanakit-js/adapters → adapters}/express/app.js +0 -0
  246. /package/dist/{katanakit-js/adapters → adapters}/express/main.d.ts +0 -0
  247. /package/dist/{katanakit-js/adapters → adapters}/express/main.js +0 -0
  248. /package/dist/{katanakit-js/adapters → adapters}/express/products.controller.d.ts +0 -0
  249. /package/dist/{katanakit-js/adapters → adapters}/express/products.controller.js +0 -0
  250. /package/dist/{katanakit-js/adapters → adapters}/express/router.d.ts +0 -0
  251. /package/dist/{katanakit-js/adapters → adapters}/express/router.js +0 -0
  252. /package/dist/{katanakit-js/adapters → adapters}/index.d.ts +0 -0
  253. /package/dist/{katanakit-js/adapters → adapters}/index.js +0 -0
  254. /package/dist/{katanakit-js/adapters → adapters}/nuxt/index.d.ts +0 -0
  255. /package/dist/{katanakit-js/adapters → adapters}/nuxt/index.js +0 -0
  256. /package/dist/{katanakit-js/adapters → adapters}/nuxt/nuxt.service.d.ts +0 -0
  257. /package/dist/{katanakit-js/adapters → adapters}/nuxt/nuxt.service.js +0 -0
  258. /package/dist/{katanakit-js/adapters → adapters}/vue/index.d.ts +0 -0
  259. /package/dist/{katanakit-js/adapters → adapters}/vue/index.js +0 -0
  260. /package/dist/{katanakit-js/adapters → adapters}/vue/vue.service.d.ts +0 -0
  261. /package/dist/{katanakit-js/adapters → adapters}/vue/vue.service.js +0 -0
  262. /package/dist/{katanakit-js/config → config}/index.d.ts +0 -0
  263. /package/dist/{katanakit-js/config → config}/index.js +0 -0
  264. /package/dist/{katanakit-js/config → config}/seo-meta.types.d.ts +0 -0
  265. /package/dist/{katanakit-js/config → config}/seo-meta.types.js +0 -0
  266. /package/dist/{katanakit-js/config → config}/seo.service.d.ts +0 -0
  267. /package/dist/{katanakit-js/config → config}/seo.service.js +0 -0
  268. /package/dist/{katanakit-js/config → config}/site.config.d.ts +0 -0
  269. /package/dist/{katanakit-js/config → config}/site.config.js +0 -0
  270. /package/dist/{katanakit-js/core → core}/services/dates.service.d.ts +0 -0
  271. /package/dist/{katanakit-js/core → core}/services/dates.service.js +0 -0
  272. /package/dist/{katanakit-js/core → core}/services/error.service.d.ts +0 -0
  273. /package/dist/{katanakit-js/core → core}/services/error.service.js +0 -0
  274. /package/dist/{katanakit-js/core → core}/services/formatter.service.d.ts +0 -0
  275. /package/dist/{katanakit-js/core → core}/services/formatter.service.js +0 -0
  276. /package/dist/{katanakit-js/core → core}/services/generator.service.d.ts +0 -0
  277. /package/dist/{katanakit-js/core → core}/services/generator.service.js +0 -0
  278. /package/dist/{katanakit-js/core → core}/services/geometry.service.d.ts +0 -0
  279. /package/dist/{katanakit-js/core → core}/services/geometry.service.js +0 -0
  280. /package/dist/{katanakit-js/core → core}/services/http.service.d.ts +0 -0
  281. /package/dist/{katanakit-js/core → core}/services/http.service.js +0 -0
  282. /package/dist/{katanakit-js/core → core}/services/logger.service.d.ts +0 -0
  283. /package/dist/{katanakit-js/core → core}/services/logger.service.js +0 -0
  284. /package/dist/{katanakit-js/core → core}/services/reactive.service.d.ts +0 -0
  285. /package/dist/{katanakit-js/core → core}/services/reactive.service.js +0 -0
  286. /package/dist/{katanakit-js/core → core}/services/timing.service.d.ts +0 -0
  287. /package/dist/{katanakit-js/core → core}/services/timing.service.js +0 -0
  288. /package/dist/{katanakit-js/core → core}/services/utils.service.d.ts +0 -0
  289. /package/dist/{katanakit-js/core → core}/services/utils.service.js +0 -0
  290. /package/dist/{katanakit-js/index.d.ts → index.d.ts} +0 -0
  291. /package/dist/{katanakit-js/index.js → index.js} +0 -0
  292. /package/dist/{katanakit-js/infrastructure → infrastructure}/dom/dom.service.d.ts +0 -0
  293. /package/dist/{katanakit-js/infrastructure → infrastructure}/dom/dom.service.js +0 -0
  294. /package/dist/{katanakit-js/infrastructure → infrastructure}/index.d.ts +0 -0
  295. /package/dist/{katanakit-js/infrastructure → infrastructure}/index.js +0 -0
  296. /package/dist/{katanakit-js/infrastructure → infrastructure}/observer/observer.service.d.ts +0 -0
  297. /package/dist/{katanakit-js/infrastructure → infrastructure}/observer/observer.service.js +0 -0
  298. /package/dist/{katanakit-js/infrastructure → infrastructure}/sensors/sensors.service.d.ts +0 -0
  299. /package/dist/{katanakit-js/infrastructure → infrastructure}/sensors/sensors.service.js +0 -0
  300. /package/dist/{katanakit-js/infrastructure → infrastructure}/theme/theme.service.d.ts +0 -0
  301. /package/dist/{katanakit-js/infrastructure → infrastructure}/theme/theme.service.js +0 -0
  302. /package/dist/{katanakit-js/infrastructure → infrastructure}/viewport/viewport.service.d.ts +0 -0
  303. /package/dist/{katanakit-js/infrastructure → infrastructure}/viewport/viewport.service.js +0 -0
  304. /package/dist/{katanakit-js/infrastructure → infrastructure}/worker/worker.service.d.ts +0 -0
  305. /package/dist/{katanakit-js/infrastructure → infrastructure}/worker/worker.service.js +0 -0
  306. /package/dist/{katanakit-js/prisma → prisma}/db.d.ts +0 -0
  307. /package/dist/{katanakit-js/prisma → prisma}/db.js +0 -0
  308. /package/dist/{katanakit-js/prisma → prisma}/use-prisma.d.ts +0 -0
  309. /package/dist/{katanakit-js/prisma → prisma}/use-prisma.js +0 -0
  310. /package/dist/{katanakit-js/types → types}/index.js +0 -0
@@ -5,8 +5,20 @@ import router from "./router.js";
5
5
  /** Module-level state for the Express server. */
6
6
  let app = null;
7
7
  let started = false;
8
+ let finalized = false;
9
+ /**
10
+ * Returns the raw request body buffer captured by the JSON parser, if any.
11
+ * Needed to verify webhook signatures (e.g. `X-Hub-Signature-256`).
12
+ *
13
+ * @param request - The Express request.
14
+ * @returns The raw body buffer, or `undefined` when not available.
15
+ */
16
+ export function useGetRawBody(request) {
17
+ return request.rawBody;
18
+ }
8
19
  /**
9
20
  * Set up CORS, JSON body parser and URL-encoded middleware.
21
+ * The JSON parser also captures the raw body for signature verification.
10
22
  *
11
23
  * @param expressApp - Express application instance
12
24
  *
@@ -25,7 +37,12 @@ function useExpressSetupMiddlewares(expressApp) {
25
37
  methods: ["GET", "POST", "PUT", "DELETE"],
26
38
  }));
27
39
  expressApp.disable("x-powered-by");
28
- expressApp.use(express.json({ limit: "100kb" }));
40
+ expressApp.use(express.json({
41
+ limit: "100kb",
42
+ verify: (req, _res, buf) => {
43
+ req.rawBody = buf;
44
+ },
45
+ }));
29
46
  expressApp.use(express.urlencoded({ extended: true, limit: "100kb" }));
30
47
  }
31
48
  /**
@@ -49,7 +66,8 @@ function useExpressSetupRoutes(expressApp) {
49
66
  expressApp.use("/", router);
50
67
  }
51
68
  /**
52
- * Set up global error handling and 404 fallback.
69
+ * Set up global error handling and 404 fallback. Register this AFTER all
70
+ * channel routers are mounted so it does not shadow them.
53
71
  *
54
72
  * @param expressApp - Express application instance
55
73
  *
@@ -61,7 +79,7 @@ function useExpressSetupRoutes(expressApp) {
61
79
  */
62
80
  function useExpressSetupErrorHandling(expressApp) {
63
81
  expressApp.use((err, _req, res, _next) => {
64
- console.error("Unhandled error:", err);
82
+ useLogger("error", "Unhandled error:", err);
65
83
  res.status(500).json({ error: "Internal Server Error" });
66
84
  });
67
85
  expressApp.use((_req, res) => {
@@ -69,14 +87,17 @@ function useExpressSetupErrorHandling(expressApp) {
69
87
  });
70
88
  }
71
89
  /**
72
- * Create and configure the Express application.
90
+ * Create and configure the Express application. Mount channel routers on the
91
+ * returned app BEFORE calling {@link useExpressFinalize} / {@link useExpressStart},
92
+ * otherwise the 404 catch-all will shadow them.
73
93
  *
74
94
  * @returns Configured Express Application instance
75
95
  *
76
96
  * @example
77
97
  * ```ts
78
98
  * const expressApp = useExpressCreate();
79
- * // App is ready with middleware, routes and error handling
99
+ * expressApp.use("/assistant", useCreateAssistantRouter());
100
+ * useExpressStart();
80
101
  * ```
81
102
  */
82
103
  export const useExpressCreate = () => {
@@ -85,11 +106,28 @@ export const useExpressCreate = () => {
85
106
  app = express();
86
107
  useExpressSetupMiddlewares(app);
87
108
  useExpressSetupRoutes(app);
88
- useExpressSetupErrorHandling(app);
89
109
  return app;
90
110
  };
111
+ /**
112
+ * Registers the error handler and 404 catch-all. Idempotent. Call this after
113
+ * mounting every channel router so it runs last. {@link useExpressStart}
114
+ * invokes it automatically.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * useExpressGetApp().use("/assistant", useCreateAssistantRouter());
119
+ * useExpressFinalize();
120
+ * ```
121
+ */
122
+ export const useExpressFinalize = () => {
123
+ if (finalized)
124
+ return;
125
+ finalized = true;
126
+ useExpressSetupErrorHandling(useExpressCreate());
127
+ };
91
128
  /**
92
129
  * Start the Express HTTP server. Idempotent — subsequent calls are no-ops.
130
+ * Finalizes error handling before listening.
93
131
  *
94
132
  * @param port - Port to listen on (default: 3000)
95
133
  * @param host - Host to bind to (default: "localhost")
@@ -104,6 +142,7 @@ export const useExpressStart = (port = 3000, host = "localhost") => {
104
142
  if (started)
105
143
  return;
106
144
  started = true;
145
+ useExpressFinalize();
107
146
  const expressApp = useExpressCreate();
108
147
  expressApp.listen(port, host, () => {
109
148
  useLogger("info", `Server running on http://${host}:${port}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/nuxt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/nuxt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuxt.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/nuxt/nuxt.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAUxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,EAAE,EAAE,OAAO,CAAC;CACZ,CAaA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,KAAK,EAAE;IAAE,IAAI,EAAE;QAAE,GAAG,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EAChD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWvC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuxt.service.js","sourceRoot":"","sources":["../../../src/adapters/nuxt/nuxt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C,IAAI,iBAAmD,CAAC;AAExD,SAAS,oBAAoB;IAC5B,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC;IAC9D,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAoC,CAAC;QAC5D,iBAAiB,GAAG,OAAO,EAAE,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACR,iBAAiB,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,SAAS,CAAI,MAAsB,EAAE,OAAgB;IACpE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;IAEvF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IAE9C,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAI,MAAsB;IAKxD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,OAAO;QACN,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;SAC3B;QACD,EAAE,EAAE,KAAK;KACT,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC/B,KAAgD,EAChD,MAAsB;IAEtB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IACvD,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;QAC3B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;KAC3B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB,EAAE,OAAe;IACzD,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAK9B,CAAC;IACF,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;IAC1B,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IACvB,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { TelegramConfig, TelegramPollingOptions, TelegramReplyFn, } from "./telegram.service.js";
2
+ export { TELEGRAM_API_BASE, useHandleTelegramUpdate, useInitTelegram, useStartTelegramPolling, useTelegramSendMessage, } from "./telegram.service.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,cAAc,EACd,sBAAsB,EACtB,eAAe,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { TELEGRAM_API_BASE, useHandleTelegramUpdate, useInitTelegram, useStartTelegramPolling, useTelegramSendMessage, } from "./telegram.service.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/telegram/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "dotenv/config";
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import "dotenv/config";
2
+ import { useInitAssistant } from "../../core/services/assistant.service.js";
3
+ import { useInitTelegram, useStartTelegramPolling } from "./telegram.service.js";
4
+ const token = process.env.TELEGRAM_BOT_TOKEN;
5
+ if (!token) {
6
+ throw new Error("[telegram] TELEGRAM_BOT_TOKEN is not set.");
7
+ }
8
+ useInitAssistant();
9
+ useInitTelegram({ token });
10
+ useStartTelegramPolling();
11
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/adapters/telegram/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;IACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC9D,CAAC;AAED,gBAAgB,EAAE,CAAC;AACnB,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAE3B,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { AssistantResult } from "../../types/index.js";
2
+ /** Default Telegram Bot API base URL. */
3
+ export declare const TELEGRAM_API_BASE = "https://api.telegram.org";
4
+ /** Configuration for a Telegram bot. */
5
+ export interface TelegramConfig {
6
+ token: string;
7
+ apiBaseUrl?: string;
8
+ }
9
+ /** Callback producing an assistant reply for a channel session. */
10
+ export type TelegramReplyFn = (sessionId: string, text: string) => Promise<AssistantResult>;
11
+ /**
12
+ * Registers the Telegram bot configuration.
13
+ *
14
+ * @param cfg - Bot token (from BotFather) and optional API base URL.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * useInitTelegram({ token: process.env.TELEGRAM_BOT_TOKEN });
19
+ * ```
20
+ */
21
+ export declare function useInitTelegram(cfg: TelegramConfig): void;
22
+ /**
23
+ * Sends a text message to a Telegram chat.
24
+ *
25
+ * @param chatId - Destination chat id.
26
+ * @param text - Message body.
27
+ * @returns The Telegram API response.
28
+ */
29
+ export declare function useTelegramSendMessage(chatId: number, text: string): Promise<Response>;
30
+ /**
31
+ * Handles a single Telegram update: replies to inbound text messages.
32
+ *
33
+ * @param update - A Telegram update object (from `getUpdates` or a webhook).
34
+ * @param reply - Reply callback. Defaults to the assistant {@link useReply}.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * await useHandleTelegramUpdate(update);
39
+ * ```
40
+ */
41
+ export declare function useHandleTelegramUpdate(update: unknown, reply?: TelegramReplyFn): Promise<void>;
42
+ /** Options for the long-polling loop. */
43
+ export interface TelegramPollingOptions {
44
+ intervalMs?: number;
45
+ signal?: AbortSignal;
46
+ reply?: TelegramReplyFn;
47
+ }
48
+ /**
49
+ * Starts the long-polling loop that keeps fetching and answering updates.
50
+ * Runs until the provided signal aborts (or forever).
51
+ *
52
+ * @param options - Polling cadence, abort signal and reply callback.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * useStartTelegramPolling();
57
+ * ```
58
+ */
59
+ export declare function useStartTelegramPolling(options?: TelegramPollingOptions): Promise<void>;
60
+ //# sourceMappingURL=telegram.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/telegram.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAa5F;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAO5F;AAQD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,eAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCjG"}
@@ -0,0 +1,103 @@
1
+ import { useReply } from "../../core/services/assistant.service.js";
2
+ import { useLogger } from "../../core/services/logger.service.js";
3
+ import { useSleep } from "../../core/services/utils.service.js";
4
+ /** Default Telegram Bot API base URL. */
5
+ export const TELEGRAM_API_BASE = "https://api.telegram.org";
6
+ /** Module-level bot configuration. */
7
+ let config = null;
8
+ /** Retrieves the configured bot or throws. */
9
+ function getConfig() {
10
+ if (!config) {
11
+ throw new Error("[Telegram] Not configured. Call useInitTelegram() first.");
12
+ }
13
+ return config;
14
+ }
15
+ /**
16
+ * Registers the Telegram bot configuration.
17
+ *
18
+ * @param cfg - Bot token (from BotFather) and optional API base URL.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * useInitTelegram({ token: process.env.TELEGRAM_BOT_TOKEN });
23
+ * ```
24
+ */
25
+ export function useInitTelegram(cfg) {
26
+ config = { ...cfg };
27
+ }
28
+ /**
29
+ * Sends a text message to a Telegram chat.
30
+ *
31
+ * @param chatId - Destination chat id.
32
+ * @param text - Message body.
33
+ * @returns The Telegram API response.
34
+ */
35
+ export async function useTelegramSendMessage(chatId, text) {
36
+ const { token, apiBaseUrl } = getConfig();
37
+ return fetch(`${apiBaseUrl ?? TELEGRAM_API_BASE}/bot${token}/sendMessage`, {
38
+ method: "POST",
39
+ headers: { "Content-Type": "application/json" },
40
+ body: JSON.stringify({ chat_id: chatId, text }),
41
+ });
42
+ }
43
+ /**
44
+ * Handles a single Telegram update: replies to inbound text messages.
45
+ *
46
+ * @param update - A Telegram update object (from `getUpdates` or a webhook).
47
+ * @param reply - Reply callback. Defaults to the assistant {@link useReply}.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * await useHandleTelegramUpdate(update);
52
+ * ```
53
+ */
54
+ export async function useHandleTelegramUpdate(update, reply = useReply) {
55
+ const message = update?.message;
56
+ if (!message?.text || message.text.trim() === "")
57
+ return;
58
+ const sessionId = `telegram:${message.chat.id}`;
59
+ const result = await reply(sessionId, message.text);
60
+ if (result.ok) {
61
+ await useTelegramSendMessage(message.chat.id, result.data.reply);
62
+ }
63
+ }
64
+ /**
65
+ * Starts the long-polling loop that keeps fetching and answering updates.
66
+ * Runs until the provided signal aborts (or forever).
67
+ *
68
+ * @param options - Polling cadence, abort signal and reply callback.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * useStartTelegramPolling();
73
+ * ```
74
+ */
75
+ export async function useStartTelegramPolling(options = {}) {
76
+ const { intervalMs = 2000, signal, reply = useReply } = options;
77
+ const { token, apiBaseUrl } = getConfig();
78
+ const base = apiBaseUrl ?? TELEGRAM_API_BASE;
79
+ let offset = 0;
80
+ while (!signal?.aborted) {
81
+ try {
82
+ const response = await fetch(`${base}/bot${token}/getUpdates?timeout=30&offset=${offset}`, {
83
+ signal,
84
+ });
85
+ if (!response.ok) {
86
+ throw new Error(`getUpdates HTTP ${response.status}`);
87
+ }
88
+ const data = (await response.json());
89
+ for (const update of data.result ?? []) {
90
+ offset = Math.max(offset, update.update_id + 1);
91
+ await useHandleTelegramUpdate(update, reply);
92
+ }
93
+ }
94
+ catch (error) {
95
+ if (signal?.aborted)
96
+ break;
97
+ const message = error instanceof Error ? error.message : String(error);
98
+ useLogger("error", `[Telegram] ${message}`);
99
+ }
100
+ await useSleep(intervalMs);
101
+ }
102
+ }
103
+ //# sourceMappingURL=telegram.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.service.js","sourceRoot":"","sources":["../../../src/adapters/telegram/telegram.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/vue/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/vue/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/vue/vue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,QAAQ,EAEb,KAAK,GAAG,EAKR,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,QAAQ,EAAe,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,sDAAsD;IACtD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpB,0DAA0D;IAC1D,KAAK,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,oCAAoC;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC5B,gBAAgB,CAAC,CAAC,CAAC,CAiErB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.service.js","sourceRoot":"","sources":["../../../src/adapters/vue/vue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,KAAK,EAEL,WAAW,EAEX,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,GACL,MAAM,KAAK,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAiB/D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAC7B,OAAe,EACf,YAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAG,UAAU,CAAW,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAkB,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,gBAAgB,GAA2B,IAAI,CAAC;IACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACzC,MAAM,OAAO,GAAG,EAAE,cAAc,CAAC;QACjC,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,gBAAgB,GAAG,UAAU,CAAC;QAE9B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAEnB,MAAM,MAAM,GAAmB,MAAM,QAAQ,CAAI,OAAO,EAAE,YAAY,EAAE;YACvE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC5C,OAAO;QACR,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,4DAA4D;YAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC;IAEF,6DAA6D;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,KAAK,CACJ,OAAO,EACP,GAAG,EAAE;YACJ,KAAK,OAAO,EAAE,CAAC;QAChB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,IAAI,kBAAkB,EAAE,EAAE,CAAC;QAC1B,WAAW,CAAC,GAAG,EAAE;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,KAAK,OAAO,EAAE,CAAC;IAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { WhatsAppConfig, WhatsAppReplyFn } from "./whatsapp.service.js";
2
+ export { useCreateWhatsAppRouter, useHandleWhatsAppMessage, useInitWhatsApp, useSendWhatsAppMessage, useStartWhatsApp, useVerifyWhatsAppSignature, useVerifyWhatsAppWebhook, WHATSAPP_API_BASE, WHATSAPP_API_VERSION, WHATSAPP_MAX_MESSAGES_PER_WEBHOOK, } from "./whatsapp.service.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/whatsapp/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,iCAAiC,GACjC,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useCreateWhatsAppRouter, useHandleWhatsAppMessage, useInitWhatsApp, useSendWhatsAppMessage, useStartWhatsApp, useVerifyWhatsAppSignature, useVerifyWhatsAppWebhook, WHATSAPP_API_BASE, WHATSAPP_API_VERSION, WHATSAPP_MAX_MESSAGES_PER_WEBHOOK, } from "./whatsapp.service.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/whatsapp/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,iCAAiC,GACjC,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "dotenv/config";
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/adapters/whatsapp/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ import "dotenv/config";
2
+ import { useInitAssistant } from "../../core/services/assistant.service.js";
3
+ import { useInitWhatsApp, useStartWhatsApp } from "./whatsapp.service.js";
4
+ const token = process.env.WHATSAPP_TOKEN;
5
+ const phoneNumberId = process.env.WHATSAPP_PHONE_NUMBER_ID;
6
+ const verifyToken = process.env.WHATSAPP_VERIFY_TOKEN;
7
+ const appSecret = process.env.WHATSAPP_APP_SECRET;
8
+ if (!token || !phoneNumberId || !verifyToken || !appSecret) {
9
+ throw new Error("[whatsapp] WHATSAPP_TOKEN, WHATSAPP_PHONE_NUMBER_ID, WHATSAPP_VERIFY_TOKEN and WHATSAPP_APP_SECRET must be set.");
10
+ }
11
+ useInitAssistant();
12
+ useInitWhatsApp({ token, phoneNumberId, verifyToken, appSecret });
13
+ useStartWhatsApp(Number(process.env.PORT ?? 3000), process.env.HOST ?? "localhost");
14
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/adapters/whatsapp/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACzC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;AAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAElD,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CACd,iHAAiH,CACjH,CAAC;AACH,CAAC;AAED,gBAAgB,EAAE,CAAC;AACnB,eAAe,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAElE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { Router } from "express";
2
+ import type { AssistantResult } from "../../types/index.js";
3
+ /** Default WhatsApp Cloud API (Graph) base URL. */
4
+ export declare const WHATSAPP_API_BASE = "https://graph.facebook.com";
5
+ /** Default Graph API version. */
6
+ export declare const WHATSAPP_API_VERSION = "v21.0";
7
+ /** Cap of inbound messages processed per webhook payload (cost-amplification guard). */
8
+ export declare const WHATSAPP_MAX_MESSAGES_PER_WEBHOOK = 5;
9
+ /** Configuration for the WhatsApp Cloud API integration. */
10
+ export interface WhatsAppConfig {
11
+ token: string;
12
+ phoneNumberId: string;
13
+ verifyToken: string;
14
+ /** Meta app secret used to verify webhook signatures (`X-Hub-Signature-256`). */
15
+ appSecret: string;
16
+ apiVersion?: string;
17
+ apiBaseUrl?: string;
18
+ }
19
+ /** Callback producing an assistant reply for a channel session. */
20
+ export type WhatsAppReplyFn = (sessionId: string, text: string) => Promise<AssistantResult>;
21
+ /**
22
+ * Registers the WhatsApp Cloud API configuration.
23
+ *
24
+ * @param cfg - Access token, phone number id and webhook verify token.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * useInitWhatsApp({
29
+ * token: process.env.WHATSAPP_TOKEN,
30
+ * phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID,
31
+ * verifyToken: process.env.WHATSAPP_VERIFY_TOKEN,
32
+ * appSecret: process.env.WHATSAPP_APP_SECRET,
33
+ * });
34
+ * ```
35
+ */
36
+ export declare function useInitWhatsApp(cfg: WhatsAppConfig): void;
37
+ /**
38
+ * Verifies a Meta webhook delivery signature (`X-Hub-Signature-256`).
39
+ *
40
+ * @param rawBody - The raw request body buffer captured by the JSON parser.
41
+ * @param signatureHeader - Value of the `X-Hub-Signature-256` header.
42
+ * @returns `true` when the signature matches the app secret HMAC.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const ok = useVerifyWhatsAppSignature(useGetRawBody(req), req.header("x-hub-signature-256"));
47
+ * ```
48
+ */
49
+ export declare function useVerifyWhatsAppSignature(rawBody: Buffer | undefined, signatureHeader: string | undefined): boolean;
50
+ /**
51
+ * Verifies a Meta webhook challenge. Returns the challenge to echo on success,
52
+ * or `null` when the mode or token is invalid.
53
+ *
54
+ * @param mode - `hub.mode` query param.
55
+ * @param verifyToken - `hub.verify_token` query param.
56
+ * @param challenge - `hub.challenge` query param.
57
+ * @returns The challenge string when valid, otherwise `null`.
58
+ */
59
+ export declare function useVerifyWhatsAppWebhook(mode: string, verifyToken: string, challenge: string): string | null;
60
+ /**
61
+ * Sends a text message to a WhatsApp number via the Cloud API.
62
+ *
63
+ * @param to - Destination number (E.164).
64
+ * @param text - Message body.
65
+ * @returns The Graph API response.
66
+ */
67
+ export declare function useSendWhatsAppMessage(to: string, text: string): Promise<Response>;
68
+ /**
69
+ * Handles a WhatsApp webhook payload: replies to each inbound text message.
70
+ *
71
+ * @param payload - The JSON webhook body from Meta.
72
+ * @param reply - Reply callback. Defaults to the assistant {@link useReply}.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * await useHandleWhatsAppMessage(payload);
77
+ * ```
78
+ */
79
+ export declare function useHandleWhatsAppMessage(payload: unknown, reply?: WhatsAppReplyFn): Promise<void>;
80
+ /** Builds the Express router exposing the WhatsApp webhook. */
81
+ export declare function useCreateWhatsAppRouter(): Router;
82
+ /**
83
+ * Mounts the WhatsApp webhook on the shared Express app and starts the server.
84
+ *
85
+ * @param port - Port to listen on (default: 3000)
86
+ * @param host - Host to bind to (default: "localhost")
87
+ * @param mountPath - Base path for the webhook routes (default: "/whatsapp")
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * useStartWhatsApp(3000, "localhost");
92
+ * // GET /whatsapp/webhook (verify), POST /whatsapp/webhook (messages)
93
+ * ```
94
+ */
95
+ export declare function useStartWhatsApp(port?: number, host?: string, mountPath?: string): void;
96
+ //# sourceMappingURL=whatsapp.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/whatsapp/whatsapp.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,iCAAiC;AACjC,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,wFAAwF;AACxF,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAa5F;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEzD;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GACjC,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAMf;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkBxF;AAkBD;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC7C,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,eAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,IAAI,MAAM,CAwChD;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAO,EAAE,IAAI,SAAc,EAAE,SAAS,SAAc,GAAG,IAAI,CAM/F"}