@patroltech/agent-capabilities 0.0.0-stage → 0.2.1

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 (443) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -2
  3. package/dist/actions/alerts.d.ts +3 -0
  4. package/dist/actions/alerts.d.ts.map +1 -0
  5. package/dist/actions/alerts.js +90 -0
  6. package/dist/actions/alerts.js.map +1 -0
  7. package/dist/actions/batch-policy.d.ts +67 -0
  8. package/dist/actions/batch-policy.d.ts.map +1 -0
  9. package/dist/actions/batch-policy.js +73 -0
  10. package/dist/actions/batch-policy.js.map +1 -0
  11. package/dist/actions/checkpoint-archive.d.ts +3 -0
  12. package/dist/actions/checkpoint-archive.d.ts.map +1 -0
  13. package/dist/actions/checkpoint-archive.js +173 -0
  14. package/dist/actions/checkpoint-archive.js.map +1 -0
  15. package/dist/actions/checkpoint-geo.d.ts +4 -0
  16. package/dist/actions/checkpoint-geo.d.ts.map +1 -0
  17. package/dist/actions/checkpoint-geo.js +286 -0
  18. package/dist/actions/checkpoint-geo.js.map +1 -0
  19. package/dist/actions/checkpoints.d.ts +10 -0
  20. package/dist/actions/checkpoints.d.ts.map +1 -0
  21. package/dist/actions/checkpoints.js +222 -0
  22. package/dist/actions/checkpoints.js.map +1 -0
  23. package/dist/actions/guard.d.ts +13 -0
  24. package/dist/actions/guard.d.ts.map +1 -0
  25. package/dist/actions/guard.js +30 -0
  26. package/dist/actions/guard.js.map +1 -0
  27. package/dist/actions/incidents.d.ts +3 -0
  28. package/dist/actions/incidents.d.ts.map +1 -0
  29. package/dist/actions/incidents.js +260 -0
  30. package/dist/actions/incidents.js.map +1 -0
  31. package/dist/actions/index.d.ts +20 -0
  32. package/dist/actions/index.d.ts.map +1 -0
  33. package/dist/actions/index.js +60 -0
  34. package/dist/actions/index.js.map +1 -0
  35. package/dist/actions/locations.d.ts +4 -0
  36. package/dist/actions/locations.d.ts.map +1 -0
  37. package/dist/actions/locations.js +202 -0
  38. package/dist/actions/locations.js.map +1 -0
  39. package/dist/actions/names.d.ts +27 -0
  40. package/dist/actions/names.d.ts.map +1 -0
  41. package/dist/actions/names.js +48 -0
  42. package/dist/actions/names.js.map +1 -0
  43. package/dist/actions/patrollers.d.ts +6 -0
  44. package/dist/actions/patrollers.d.ts.map +1 -0
  45. package/dist/actions/patrollers.js +172 -0
  46. package/dist/actions/patrollers.js.map +1 -0
  47. package/dist/actions/route-schedules.d.ts +4 -0
  48. package/dist/actions/route-schedules.d.ts.map +1 -0
  49. package/dist/actions/route-schedules.js +110 -0
  50. package/dist/actions/route-schedules.js.map +1 -0
  51. package/dist/actions/routes.d.ts +5 -0
  52. package/dist/actions/routes.d.ts.map +1 -0
  53. package/dist/actions/routes.js +348 -0
  54. package/dist/actions/routes.js.map +1 -0
  55. package/dist/actions/support/antifraud-rules.d.ts +53 -0
  56. package/dist/actions/support/antifraud-rules.d.ts.map +1 -0
  57. package/dist/actions/support/antifraud-rules.js +121 -0
  58. package/dist/actions/support/antifraud-rules.js.map +1 -0
  59. package/dist/actions/support/elegir-ubicacion.d.ts +31 -0
  60. package/dist/actions/support/elegir-ubicacion.d.ts.map +1 -0
  61. package/dist/actions/support/elegir-ubicacion.js +42 -0
  62. package/dist/actions/support/elegir-ubicacion.js.map +1 -0
  63. package/dist/actions/support/next-step.d.ts +26 -0
  64. package/dist/actions/support/next-step.d.ts.map +1 -0
  65. package/dist/actions/support/next-step.js +55 -0
  66. package/dist/actions/support/next-step.js.map +1 -0
  67. package/dist/actions/support/route-impact.d.ts +25 -0
  68. package/dist/actions/support/route-impact.d.ts.map +1 -0
  69. package/dist/actions/support/route-impact.js +76 -0
  70. package/dist/actions/support/route-impact.js.map +1 -0
  71. package/dist/actions/support/route-lookup.d.ts +27 -0
  72. package/dist/actions/support/route-lookup.d.ts.map +1 -0
  73. package/dist/actions/support/route-lookup.js +44 -0
  74. package/dist/actions/support/route-lookup.js.map +1 -0
  75. package/dist/actions/support/schedule.d.ts +38 -0
  76. package/dist/actions/support/schedule.d.ts.map +1 -0
  77. package/dist/actions/support/schedule.js +62 -0
  78. package/dist/actions/support/schedule.js.map +1 -0
  79. package/dist/actions/support/shared.d.ts +112 -0
  80. package/dist/actions/support/shared.d.ts.map +1 -0
  81. package/dist/actions/support/shared.js +171 -0
  82. package/dist/actions/support/shared.js.map +1 -0
  83. package/dist/actions/support/texts.d.ts +47 -0
  84. package/dist/actions/support/texts.d.ts.map +1 -0
  85. package/dist/actions/support/texts.js +134 -0
  86. package/dist/actions/support/texts.js.map +1 -0
  87. package/dist/actions/support/turno.d.ts +16 -0
  88. package/dist/actions/support/turno.d.ts.map +1 -0
  89. package/dist/actions/support/turno.js +35 -0
  90. package/dist/actions/support/turno.js.map +1 -0
  91. package/dist/actions/support/user-access.d.ts +72 -0
  92. package/dist/actions/support/user-access.d.ts.map +1 -0
  93. package/dist/actions/support/user-access.js +194 -0
  94. package/dist/actions/support/user-access.js.map +1 -0
  95. package/dist/actions/types.d.ts +130 -0
  96. package/dist/actions/types.d.ts.map +1 -0
  97. package/dist/actions/types.js +20 -0
  98. package/dist/actions/types.js.map +1 -0
  99. package/dist/actions/user-roles.d.ts +4 -0
  100. package/dist/actions/user-roles.d.ts.map +1 -0
  101. package/dist/actions/user-roles.js +195 -0
  102. package/dist/actions/user-roles.js.map +1 -0
  103. package/dist/actions/users.d.ts +3 -0
  104. package/dist/actions/users.d.ts.map +1 -0
  105. package/dist/actions/users.js +146 -0
  106. package/dist/actions/users.js.map +1 -0
  107. package/dist/catalog/buildCatalog.d.ts +19 -0
  108. package/dist/catalog/buildCatalog.d.ts.map +1 -0
  109. package/dist/catalog/buildCatalog.js +38 -0
  110. package/dist/catalog/buildCatalog.js.map +1 -0
  111. package/dist/catalog/english.d.ts +17 -0
  112. package/dist/catalog/english.d.ts.map +1 -0
  113. package/dist/catalog/english.js +392 -0
  114. package/dist/catalog/english.js.map +1 -0
  115. package/dist/catalog/entries.d.ts +6 -0
  116. package/dist/catalog/entries.d.ts.map +1 -0
  117. package/dist/catalog/entries.js +610 -0
  118. package/dist/catalog/entries.js.map +1 -0
  119. package/dist/catalog/types.d.ts +61 -0
  120. package/dist/catalog/types.d.ts.map +1 -0
  121. package/dist/catalog/types.js +2 -0
  122. package/dist/catalog/types.js.map +1 -0
  123. package/dist/context.d.ts +37 -0
  124. package/dist/context.d.ts.map +1 -0
  125. package/dist/context.js +11 -0
  126. package/dist/context.js.map +1 -0
  127. package/dist/deps.d.ts +23 -0
  128. package/dist/deps.d.ts.map +1 -0
  129. package/dist/deps.js +12 -0
  130. package/dist/deps.js.map +1 -0
  131. package/dist/domain/access-logs-csv.d.ts +25 -0
  132. package/dist/domain/access-logs-csv.d.ts.map +1 -0
  133. package/dist/domain/access-logs-csv.js +36 -0
  134. package/dist/domain/access-logs-csv.js.map +1 -0
  135. package/dist/domain/backend-errors.d.ts +54 -0
  136. package/dist/domain/backend-errors.d.ts.map +1 -0
  137. package/dist/domain/backend-errors.js +364 -0
  138. package/dist/domain/backend-errors.js.map +1 -0
  139. package/dist/domain/country.d.ts +9 -0
  140. package/dist/domain/country.d.ts.map +1 -0
  141. package/dist/domain/country.js +13 -0
  142. package/dist/domain/country.js.map +1 -0
  143. package/dist/domain/date-range.d.ts +33 -0
  144. package/dist/domain/date-range.d.ts.map +1 -0
  145. package/dist/domain/date-range.js +110 -0
  146. package/dist/domain/date-range.js.map +1 -0
  147. package/dist/domain/geo.d.ts +14 -0
  148. package/dist/domain/geo.d.ts.map +1 -0
  149. package/dist/domain/geo.js +22 -0
  150. package/dist/domain/geo.js.map +1 -0
  151. package/dist/domain/guard-app-message.d.ts +15 -0
  152. package/dist/domain/guard-app-message.d.ts.map +1 -0
  153. package/dist/domain/guard-app-message.js +39 -0
  154. package/dist/domain/guard-app-message.js.map +1 -0
  155. package/dist/domain/incident-priority.d.ts +25 -0
  156. package/dist/domain/incident-priority.d.ts.map +1 -0
  157. package/dist/domain/incident-priority.js +15 -0
  158. package/dist/domain/incident-priority.js.map +1 -0
  159. package/dist/domain/incident-status.d.ts +29 -0
  160. package/dist/domain/incident-status.d.ts.map +1 -0
  161. package/dist/domain/incident-status.js +44 -0
  162. package/dist/domain/incident-status.js.map +1 -0
  163. package/dist/domain/language.d.ts +39 -0
  164. package/dist/domain/language.d.ts.map +1 -0
  165. package/dist/domain/language.js +112 -0
  166. package/dist/domain/language.js.map +1 -0
  167. package/dist/domain/money.d.ts +3 -0
  168. package/dist/domain/money.d.ts.map +1 -0
  169. package/dist/domain/money.js +12 -0
  170. package/dist/domain/money.js.map +1 -0
  171. package/dist/domain/puesta-en-marcha.d.ts +47 -0
  172. package/dist/domain/puesta-en-marcha.d.ts.map +1 -0
  173. package/dist/domain/puesta-en-marcha.js +22 -0
  174. package/dist/domain/puesta-en-marcha.js.map +1 -0
  175. package/dist/domain/qr-image.d.ts +25 -0
  176. package/dist/domain/qr-image.d.ts.map +1 -0
  177. package/dist/domain/qr-image.js +28 -0
  178. package/dist/domain/qr-image.js.map +1 -0
  179. package/dist/domain/resolve-by-name.d.ts +32 -0
  180. package/dist/domain/resolve-by-name.d.ts.map +1 -0
  181. package/dist/domain/resolve-by-name.js +40 -0
  182. package/dist/domain/resolve-by-name.js.map +1 -0
  183. package/dist/domain/route-checkpoints.d.ts +31 -0
  184. package/dist/domain/route-checkpoints.d.ts.map +1 -0
  185. package/dist/domain/route-checkpoints.js +27 -0
  186. package/dist/domain/route-checkpoints.js.map +1 -0
  187. package/dist/domain/route-schedule.d.ts +88 -0
  188. package/dist/domain/route-schedule.d.ts.map +1 -0
  189. package/dist/domain/route-schedule.js +203 -0
  190. package/dist/domain/route-schedule.js.map +1 -0
  191. package/dist/domain/scan-explanation.d.ts +25 -0
  192. package/dist/domain/scan-explanation.d.ts.map +1 -0
  193. package/dist/domain/scan-explanation.js +99 -0
  194. package/dist/domain/scan-explanation.js.map +1 -0
  195. package/dist/domain/scans-csv.d.ts +37 -0
  196. package/dist/domain/scans-csv.d.ts.map +1 -0
  197. package/dist/domain/scans-csv.js +67 -0
  198. package/dist/domain/scans-csv.js.map +1 -0
  199. package/dist/domain/timezone.d.ts +61 -0
  200. package/dist/domain/timezone.d.ts.map +1 -0
  201. package/dist/domain/timezone.js +113 -0
  202. package/dist/domain/timezone.js.map +1 -0
  203. package/dist/domain/tool-result.d.ts +55 -0
  204. package/dist/domain/tool-result.d.ts.map +1 -0
  205. package/dist/domain/tool-result.js +47 -0
  206. package/dist/domain/tool-result.js.map +1 -0
  207. package/dist/domain/urls.d.ts +33 -0
  208. package/dist/domain/urls.d.ts.map +1 -0
  209. package/dist/domain/urls.js +20 -0
  210. package/dist/domain/urls.js.map +1 -0
  211. package/dist/gateway/PatrolTechGateway.d.ts +195 -0
  212. package/dist/gateway/PatrolTechGateway.d.ts.map +1 -0
  213. package/dist/gateway/PatrolTechGateway.js +2 -0
  214. package/dist/gateway/PatrolTechGateway.js.map +1 -0
  215. package/dist/gateway/index.d.ts +4 -0
  216. package/dist/gateway/index.d.ts.map +1 -0
  217. package/dist/gateway/index.js +4 -0
  218. package/dist/gateway/index.js.map +1 -0
  219. package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts +145 -0
  220. package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts.map +1 -0
  221. package/dist/gateway/sdk/SdkPatrolTechGateway.js +101 -0
  222. package/dist/gateway/sdk/SdkPatrolTechGateway.js.map +1 -0
  223. package/dist/gateway/sdk/access.d.ts +8 -0
  224. package/dist/gateway/sdk/access.d.ts.map +1 -0
  225. package/dist/gateway/sdk/access.js +39 -0
  226. package/dist/gateway/sdk/access.js.map +1 -0
  227. package/dist/gateway/sdk/billing.d.ts +7 -0
  228. package/dist/gateway/sdk/billing.d.ts.map +1 -0
  229. package/dist/gateway/sdk/billing.js +92 -0
  230. package/dist/gateway/sdk/billing.js.map +1 -0
  231. package/dist/gateway/sdk/checkpoint-mappers.d.ts +23 -0
  232. package/dist/gateway/sdk/checkpoint-mappers.d.ts.map +1 -0
  233. package/dist/gateway/sdk/checkpoint-mappers.js +59 -0
  234. package/dist/gateway/sdk/checkpoint-mappers.js.map +1 -0
  235. package/dist/gateway/sdk/checkpoints.d.ts +33 -0
  236. package/dist/gateway/sdk/checkpoints.d.ts.map +1 -0
  237. package/dist/gateway/sdk/checkpoints.js +163 -0
  238. package/dist/gateway/sdk/checkpoints.js.map +1 -0
  239. package/dist/gateway/sdk/errors.d.ts +10 -0
  240. package/dist/gateway/sdk/errors.d.ts.map +1 -0
  241. package/dist/gateway/sdk/errors.js +46 -0
  242. package/dist/gateway/sdk/errors.js.map +1 -0
  243. package/dist/gateway/sdk/incidents.d.ts +18 -0
  244. package/dist/gateway/sdk/incidents.d.ts.map +1 -0
  245. package/dist/gateway/sdk/incidents.js +98 -0
  246. package/dist/gateway/sdk/incidents.js.map +1 -0
  247. package/dist/gateway/sdk/index.d.ts +4 -0
  248. package/dist/gateway/sdk/index.d.ts.map +1 -0
  249. package/dist/gateway/sdk/index.js +4 -0
  250. package/dist/gateway/sdk/index.js.map +1 -0
  251. package/dist/gateway/sdk/list.d.ts +15 -0
  252. package/dist/gateway/sdk/list.d.ts.map +1 -0
  253. package/dist/gateway/sdk/list.js +12 -0
  254. package/dist/gateway/sdk/list.js.map +1 -0
  255. package/dist/gateway/sdk/locations.d.ts +24 -0
  256. package/dist/gateway/sdk/locations.d.ts.map +1 -0
  257. package/dist/gateway/sdk/locations.js +44 -0
  258. package/dist/gateway/sdk/locations.js.map +1 -0
  259. package/dist/gateway/sdk/patrollers.d.ts +26 -0
  260. package/dist/gateway/sdk/patrollers.d.ts.map +1 -0
  261. package/dist/gateway/sdk/patrollers.js +132 -0
  262. package/dist/gateway/sdk/patrollers.js.map +1 -0
  263. package/dist/gateway/sdk/rounds.d.ts +15 -0
  264. package/dist/gateway/sdk/rounds.d.ts.map +1 -0
  265. package/dist/gateway/sdk/rounds.js +142 -0
  266. package/dist/gateway/sdk/rounds.js.map +1 -0
  267. package/dist/gateway/sdk/routes.d.ts +18 -0
  268. package/dist/gateway/sdk/routes.d.ts.map +1 -0
  269. package/dist/gateway/sdk/routes.js +74 -0
  270. package/dist/gateway/sdk/routes.js.map +1 -0
  271. package/dist/gateway/sdk/scans.d.ts +4 -0
  272. package/dist/gateway/sdk/scans.d.ts.map +1 -0
  273. package/dist/gateway/sdk/scans.js +72 -0
  274. package/dist/gateway/sdk/scans.js.map +1 -0
  275. package/dist/gateway/sdk/transport.d.ts +77 -0
  276. package/dist/gateway/sdk/transport.d.ts.map +1 -0
  277. package/dist/gateway/sdk/transport.js +81 -0
  278. package/dist/gateway/sdk/transport.js.map +1 -0
  279. package/dist/gateway/sdk/users.d.ts +15 -0
  280. package/dist/gateway/sdk/users.d.ts.map +1 -0
  281. package/dist/gateway/sdk/users.js +49 -0
  282. package/dist/gateway/sdk/users.js.map +1 -0
  283. package/dist/gateway/types/access.d.ts +32 -0
  284. package/dist/gateway/types/access.d.ts.map +1 -0
  285. package/dist/gateway/types/access.js +2 -0
  286. package/dist/gateway/types/access.js.map +1 -0
  287. package/dist/gateway/types/billing.d.ts +60 -0
  288. package/dist/gateway/types/billing.d.ts.map +1 -0
  289. package/dist/gateway/types/billing.js +2 -0
  290. package/dist/gateway/types/billing.js.map +1 -0
  291. package/dist/gateway/types/checkpoints.d.ts +84 -0
  292. package/dist/gateway/types/checkpoints.d.ts.map +1 -0
  293. package/dist/gateway/types/checkpoints.js +2 -0
  294. package/dist/gateway/types/checkpoints.js.map +1 -0
  295. package/dist/gateway/types/common.d.ts +13 -0
  296. package/dist/gateway/types/common.d.ts.map +1 -0
  297. package/dist/gateway/types/common.js +2 -0
  298. package/dist/gateway/types/common.js.map +1 -0
  299. package/dist/gateway/types/incidents.d.ts +53 -0
  300. package/dist/gateway/types/incidents.d.ts.map +1 -0
  301. package/dist/gateway/types/incidents.js +2 -0
  302. package/dist/gateway/types/incidents.js.map +1 -0
  303. package/dist/gateway/types/index.d.ts +12 -0
  304. package/dist/gateway/types/index.d.ts.map +1 -0
  305. package/dist/gateway/types/index.js +12 -0
  306. package/dist/gateway/types/index.js.map +1 -0
  307. package/dist/gateway/types/locations.d.ts +7 -0
  308. package/dist/gateway/types/locations.d.ts.map +1 -0
  309. package/dist/gateway/types/locations.js +2 -0
  310. package/dist/gateway/types/locations.js.map +1 -0
  311. package/dist/gateway/types/patrollers.d.ts +68 -0
  312. package/dist/gateway/types/patrollers.d.ts.map +1 -0
  313. package/dist/gateway/types/patrollers.js +15 -0
  314. package/dist/gateway/types/patrollers.js.map +1 -0
  315. package/dist/gateway/types/rounds.d.ts +89 -0
  316. package/dist/gateway/types/rounds.d.ts.map +1 -0
  317. package/dist/gateway/types/rounds.js +2 -0
  318. package/dist/gateway/types/rounds.js.map +1 -0
  319. package/dist/gateway/types/routes.d.ts +48 -0
  320. package/dist/gateway/types/routes.d.ts.map +1 -0
  321. package/dist/gateway/types/routes.js +2 -0
  322. package/dist/gateway/types/routes.js.map +1 -0
  323. package/dist/gateway/types/scans.d.ts +44 -0
  324. package/dist/gateway/types/scans.d.ts.map +1 -0
  325. package/dist/gateway/types/scans.js +2 -0
  326. package/dist/gateway/types/scans.js.map +1 -0
  327. package/dist/gateway/types/users.d.ts +32 -0
  328. package/dist/gateway/types/users.d.ts.map +1 -0
  329. package/dist/gateway/types/users.js +2 -0
  330. package/dist/gateway/types/users.js.map +1 -0
  331. package/dist/index.d.ts +32 -0
  332. package/dist/index.d.ts.map +1 -0
  333. package/dist/index.js +40 -0
  334. package/dist/index.js.map +1 -0
  335. package/dist/ports/FileSink.d.ts +20 -0
  336. package/dist/ports/FileSink.d.ts.map +1 -0
  337. package/dist/ports/FileSink.js +2 -0
  338. package/dist/ports/FileSink.js.map +1 -0
  339. package/dist/ports/Logger.d.ts +16 -0
  340. package/dist/ports/Logger.d.ts.map +1 -0
  341. package/dist/ports/Logger.js +7 -0
  342. package/dist/ports/Logger.js.map +1 -0
  343. package/dist/ports/PendingActionStore.d.ts +84 -0
  344. package/dist/ports/PendingActionStore.d.ts.map +1 -0
  345. package/dist/ports/PendingActionStore.js +16 -0
  346. package/dist/ports/PendingActionStore.js.map +1 -0
  347. package/dist/reads/access.d.ts +4 -0
  348. package/dist/reads/access.d.ts.map +1 -0
  349. package/dist/reads/access.js +129 -0
  350. package/dist/reads/access.js.map +1 -0
  351. package/dist/reads/checkpoints.d.ts +4 -0
  352. package/dist/reads/checkpoints.d.ts.map +1 -0
  353. package/dist/reads/checkpoints.js +152 -0
  354. package/dist/reads/checkpoints.js.map +1 -0
  355. package/dist/reads/files.d.ts +9 -0
  356. package/dist/reads/files.d.ts.map +1 -0
  357. package/dist/reads/files.js +222 -0
  358. package/dist/reads/files.js.map +1 -0
  359. package/dist/reads/incidents.d.ts +4 -0
  360. package/dist/reads/incidents.d.ts.map +1 -0
  361. package/dist/reads/incidents.js +159 -0
  362. package/dist/reads/incidents.js.map +1 -0
  363. package/dist/reads/index.d.ts +11 -0
  364. package/dist/reads/index.d.ts.map +1 -0
  365. package/dist/reads/index.js +51 -0
  366. package/dist/reads/index.js.map +1 -0
  367. package/dist/reads/onboarding.d.ts +4 -0
  368. package/dist/reads/onboarding.d.ts.map +1 -0
  369. package/dist/reads/onboarding.js +41 -0
  370. package/dist/reads/onboarding.js.map +1 -0
  371. package/dist/reads/organization.d.ts +26 -0
  372. package/dist/reads/organization.d.ts.map +1 -0
  373. package/dist/reads/organization.js +45 -0
  374. package/dist/reads/organization.js.map +1 -0
  375. package/dist/reads/patrollers.d.ts +11 -0
  376. package/dist/reads/patrollers.d.ts.map +1 -0
  377. package/dist/reads/patrollers.js +172 -0
  378. package/dist/reads/patrollers.js.map +1 -0
  379. package/dist/reads/plan.d.ts +4 -0
  380. package/dist/reads/plan.d.ts.map +1 -0
  381. package/dist/reads/plan.js +195 -0
  382. package/dist/reads/plan.js.map +1 -0
  383. package/dist/reads/rounds.d.ts +4 -0
  384. package/dist/reads/rounds.d.ts.map +1 -0
  385. package/dist/reads/rounds.js +160 -0
  386. package/dist/reads/rounds.js.map +1 -0
  387. package/dist/reads/routes.d.ts +4 -0
  388. package/dist/reads/routes.d.ts.map +1 -0
  389. package/dist/reads/routes.js +34 -0
  390. package/dist/reads/routes.js.map +1 -0
  391. package/dist/reads/support/access-locations.d.ts +22 -0
  392. package/dist/reads/support/access-locations.d.ts.map +1 -0
  393. package/dist/reads/support/access-locations.js +55 -0
  394. package/dist/reads/support/access-locations.js.map +1 -0
  395. package/dist/reads/support/excel.d.ts +10 -0
  396. package/dist/reads/support/excel.d.ts.map +1 -0
  397. package/dist/reads/support/excel.js +35 -0
  398. package/dist/reads/support/excel.js.map +1 -0
  399. package/dist/reads/support/params.d.ts +50 -0
  400. package/dist/reads/support/params.d.ts.map +1 -0
  401. package/dist/reads/support/params.js +73 -0
  402. package/dist/reads/support/params.js.map +1 -0
  403. package/dist/reads/support/resolve.d.ts +17 -0
  404. package/dist/reads/support/resolve.d.ts.map +1 -0
  405. package/dist/reads/support/resolve.js +33 -0
  406. package/dist/reads/support/resolve.js.map +1 -0
  407. package/dist/reads/support/results.d.ts +22 -0
  408. package/dist/reads/support/results.d.ts.map +1 -0
  409. package/dist/reads/support/results.js +41 -0
  410. package/dist/reads/support/results.js.map +1 -0
  411. package/dist/reads/support/roles.d.ts +13 -0
  412. package/dist/reads/support/roles.d.ts.map +1 -0
  413. package/dist/reads/support/roles.js +27 -0
  414. package/dist/reads/support/roles.js.map +1 -0
  415. package/dist/reads/support/scans.d.ts +31 -0
  416. package/dist/reads/support/scans.d.ts.map +1 -0
  417. package/dist/reads/support/scans.js +66 -0
  418. package/dist/reads/support/scans.js.map +1 -0
  419. package/dist/reads/types.d.ts +48 -0
  420. package/dist/reads/types.d.ts.map +1 -0
  421. package/dist/reads/types.js +5 -0
  422. package/dist/reads/types.js.map +1 -0
  423. package/dist/reads/users.d.ts +4 -0
  424. package/dist/reads/users.d.ts.map +1 -0
  425. package/dist/reads/users.js +57 -0
  426. package/dist/reads/users.js.map +1 -0
  427. package/dist/testing/FakePatrolTechGateway.d.ts +212 -0
  428. package/dist/testing/FakePatrolTechGateway.d.ts.map +1 -0
  429. package/dist/testing/FakePatrolTechGateway.js +712 -0
  430. package/dist/testing/FakePatrolTechGateway.js.map +1 -0
  431. package/dist/testing/RecordingFileSink.d.ts +12 -0
  432. package/dist/testing/RecordingFileSink.d.ts.map +1 -0
  433. package/dist/testing/RecordingFileSink.js +12 -0
  434. package/dist/testing/RecordingFileSink.js.map +1 -0
  435. package/dist/testing/index.d.ts +4 -0
  436. package/dist/testing/index.d.ts.map +1 -0
  437. package/dist/testing/index.js +4 -0
  438. package/dist/testing/index.js.map +1 -0
  439. package/dist/testing/reads.d.ts +34 -0
  440. package/dist/testing/reads.d.ts.map +1 -0
  441. package/dist/testing/reads.js +39 -0
  442. package/dist/testing/reads.js.map +1 -0
  443. package/package.json +76 -4
@@ -0,0 +1,89 @@
1
+ export interface RoundsStatus {
2
+ /** Días hacia atrás que cubren los totales (los del resumen de soporte). */
3
+ windowDays: number;
4
+ open: number;
5
+ completed: number;
6
+ incomplete: number;
7
+ }
8
+ export interface SupportSummary {
9
+ rounds: {
10
+ windowDays: number;
11
+ inProgress: number;
12
+ completed: number;
13
+ incomplete: number;
14
+ expired: number;
15
+ };
16
+ patrollers: {
17
+ total: number;
18
+ active: number;
19
+ inactive: number;
20
+ alert: number;
21
+ };
22
+ checkpoints: {
23
+ total: number;
24
+ };
25
+ suspiciousScans: {
26
+ windowDays: number;
27
+ flagged: number;
28
+ };
29
+ }
30
+ export interface RoundRef {
31
+ id: string;
32
+ status: string;
33
+ patrollerName: string | null;
34
+ completedCheckpoints: number;
35
+ totalCheckpoints: number;
36
+ startTime: string;
37
+ endTime: string | null;
38
+ }
39
+ export interface RoundDetail {
40
+ status: string;
41
+ scannedCount: number;
42
+ totalCount: number;
43
+ checkpoints: RoundCheckpointDetail[];
44
+ }
45
+ export interface RouteRoundsSummary {
46
+ routeName: string;
47
+ isActive: boolean;
48
+ /** Presente si las rondas de ESTA ruta no se pudieron leer: `rounds: []` no significa "no tiene rondas". */
49
+ error?: string;
50
+ rounds: {
51
+ status: string;
52
+ patrollerName: string | null;
53
+ completedCheckpoints: number;
54
+ totalCheckpoints: number;
55
+ startTime: string;
56
+ endTime: string | null;
57
+ }[];
58
+ }
59
+ export interface RoundCheckpointDetail {
60
+ /** null si el backend no da el nombre (así lo declara el OpenAPI). */
61
+ checkpointName: string | null;
62
+ order: number;
63
+ scanned: boolean;
64
+ scanTime: string | null;
65
+ }
66
+ export type RoundCheckpointsResult = {
67
+ found: true;
68
+ routeName: string;
69
+ status: string;
70
+ scannedCount: number;
71
+ totalCount: number;
72
+ checkpoints: RoundCheckpointDetail[];
73
+ } | {
74
+ found: false;
75
+ reason: 'route_not_found';
76
+ opciones: string[];
77
+ } | {
78
+ found: false;
79
+ reason: 'route_ambiguous';
80
+ opciones: string[];
81
+ } | {
82
+ found: false;
83
+ reason: 'route_not_specified';
84
+ opciones: string[];
85
+ } | {
86
+ found: false;
87
+ reason: 'no_rounds';
88
+ };
89
+ //# sourceMappingURL=rounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rounds.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/rounds.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,eAAe,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,4GAA4G;IAC5G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,qBAAqB,EAAE,CAAC;CACtC,GACD;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAE/D;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAE/D;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rounds.js","sourceRoot":"","sources":["../../../src/gateway/types/rounds.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ export interface RouteRef {
2
+ id: string;
3
+ name: string;
4
+ isActive: boolean;
5
+ /** Ubicación de la ruta; ausente o null si no se conoce. */
6
+ locationId?: string | null;
7
+ }
8
+ /** Horario de una ruta tal como lo guarda el backend: horas `HH:MM` y días ISO (1=lun..7=dom), en UTC. */
9
+ export interface RouteTimeWindow {
10
+ id: string;
11
+ startTime: string;
12
+ endTime: string;
13
+ days: number[];
14
+ }
15
+ /** `GET /api/routes/:id/details`: la ruta con sus checkpoints (en orden) y sus horarios. */
16
+ export interface RouteDetails {
17
+ id: string;
18
+ name: string;
19
+ isActive: boolean;
20
+ locationId: string;
21
+ checkpoints: {
22
+ checkpointId: string;
23
+ order: number;
24
+ }[];
25
+ timeWindows: RouteTimeWindow[];
26
+ }
27
+ /** Horario a enviar al backend: horas UTC y la zona en la que se configuró (para que lo reproyecte al cambiar la hora). */
28
+ export interface NewTimeWindow {
29
+ startTime: string;
30
+ endTime: string;
31
+ days: number[];
32
+ timezone: string;
33
+ }
34
+ /** `POST /api/routes/complete`. El `id` lo pone el bot: así un alta dudosa se comprueba por él. */
35
+ export interface NewRoute {
36
+ id: string;
37
+ name: string;
38
+ organizationId: string;
39
+ locationId: string;
40
+ requiresOrderedScan: boolean;
41
+ checkpoints: {
42
+ checkpointId: string;
43
+ order: number;
44
+ }[];
45
+ timeWindows: NewTimeWindow[];
46
+ scheduleTimezone: string;
47
+ }
48
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/routes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,0GAA0G;AAC1G,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,2HAA2H;AAC3H,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mGAAmG;AACnG,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/gateway/types/routes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ /** Móvil con el que se hizo un escaneo, tal como lo informa la app. Sin los campos que no vienen. */
2
+ export interface ScanDevice {
3
+ modelo?: string;
4
+ sistema?: string;
5
+ /** Porcentaje 0-100 (el backend ya lo multiplica por 100). */
6
+ bateriaPct?: number;
7
+ cargando?: boolean;
8
+ conexion?: string;
9
+ }
10
+ export interface RecentScan {
11
+ timestamp: string;
12
+ checkpointName: string | null;
13
+ patrollerName: string | null;
14
+ fraudFlagged: boolean;
15
+ /** Estado de validación en lenguaje de cliente, con su motivo real (ver domain/scan-explanation). */
16
+ validacion: string;
17
+ /** Motivos reales de la sospecha; vacío si no es sospechoso. */
18
+ motivosSospecha: string[];
19
+ dispositivo?: ScanDevice;
20
+ /** Distancia del móvil al punto según la regla de proximidad GPS, si se evaluó. */
21
+ distanciaGpsM?: number;
22
+ /** Precisión del GPS del móvil en ese escaneo, si se evaluó la proximidad. */
23
+ precisionGpsM?: number;
24
+ }
25
+ /**
26
+ * Filtros de `GET /api/scans`. `patrollerId`/`checkpointId`/`locationId` son
27
+ * ids ya resueltos (el backend no filtra por nombre).
28
+ */
29
+ export interface ScanQuery {
30
+ /** Máximo 100 (el backend rechaza más). */
31
+ limit?: number;
32
+ /** Página 1-based de `limit` escaneos. */
33
+ page?: number;
34
+ dateFrom?: string;
35
+ dateTo?: string;
36
+ patrollerId?: string;
37
+ checkpointId?: string;
38
+ locationId?: string;
39
+ /** `fraudStatus=flagged`. */
40
+ soloSospechosos?: boolean;
41
+ /** `validationStatus=rejected` (lo que el panel marca como no válido). */
42
+ soloNoValidos?: boolean;
43
+ }
44
+ //# sourceMappingURL=scans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scans.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/scans.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,qGAAqG;IACrG,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scans.js","sourceRoot":"","sources":["../../../src/gateway/types/scans.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ /** Usuario del panel con sus roles en la organización (`ambito` LOCATION → `scopeId` es la ubicación). */
2
+ export interface OrgUser {
3
+ id: string;
4
+ nombre: string;
5
+ email: string;
6
+ /** `id` = el `userRoleId` que piden cambiar el rol y quitar el acceso. */
7
+ roles: {
8
+ id: string;
9
+ rol: string;
10
+ ambito: string;
11
+ scopeId: string;
12
+ }[];
13
+ }
14
+ /**
15
+ * Invitación al panel. Sin `id` a propósito: el backend lo usaría para crear el
16
+ * usuario. `locationId` solo con `roleScope` LOCATION, y siempre de las
17
+ * ubicaciones de la organización (el backend no lo comprueba).
18
+ */
19
+ export interface NewOrgUser {
20
+ organizationId: string;
21
+ name: string;
22
+ email: string;
23
+ roleType: 'VIEWER' | 'EDITOR' | 'ADMIN';
24
+ roleScope: 'ORGANIZATION' | 'LOCATION';
25
+ locationId?: string;
26
+ }
27
+ /** `cuentaNueva` false = el email ya tenía cuenta y solo se le añade el rol; `emailEnviado` false = falló el correo de bienvenida. */
28
+ export interface InviteResult {
29
+ cuentaNueva: boolean;
30
+ emailEnviado: boolean;
31
+ }
32
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/users.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvE;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,SAAS,EAAE,cAAc,GAAG,UAAU,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sIAAsI;AACtI,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/gateway/types/users.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ export * from './context.js';
2
+ export * from './deps.js';
3
+ export * from './domain/urls.js';
4
+ export * from './ports/Logger.js';
5
+ export * from './ports/FileSink.js';
6
+ export * from './ports/PendingActionStore.js';
7
+ export * from './gateway/index.js';
8
+ export * from './domain/language.js';
9
+ export * from './domain/incident-status.js';
10
+ export * from './domain/resolve-by-name.js';
11
+ export * from './domain/scan-explanation.js';
12
+ export * from './domain/route-schedule.js';
13
+ export * from './domain/route-checkpoints.js';
14
+ export * from './domain/geo.js';
15
+ export * from './domain/backend-errors.js';
16
+ export * from './domain/qr-image.js';
17
+ export * from './domain/guard-app-message.js';
18
+ export * from './domain/date-range.js';
19
+ export * from './domain/timezone.js';
20
+ export * from './domain/scans-csv.js';
21
+ export * from './domain/access-logs-csv.js';
22
+ export * from './domain/tool-result.js';
23
+ export * from './domain/puesta-en-marcha.js';
24
+ export * from './domain/country.js';
25
+ export * from './domain/money.js';
26
+ export * from './reads/index.js';
27
+ export * from './actions/index.js';
28
+ export * from './catalog/types.js';
29
+ export * from './catalog/entries.js';
30
+ export * from './catalog/buildCatalog.js';
31
+ export * from './catalog/english.js';
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,40 @@
1
+ // Contexto de sesión común a lecturas y acciones (organización canónica y anti-fuga)
2
+ export * from './context.js';
3
+ // Dependencias comunes del catálogo (gateway, logger, enlaces)
4
+ export * from './deps.js';
5
+ export * from './domain/urls.js';
6
+ // Puertos (los implementa cada consumidor)
7
+ export * from './ports/Logger.js';
8
+ export * from './ports/FileSink.js';
9
+ export * from './ports/PendingActionStore.js';
10
+ // Puerto de la API de PatrolTech y sus tipos (el fake va en ./testing)
11
+ export * from './gateway/index.js';
12
+ // Dominio puro
13
+ export * from './domain/language.js';
14
+ export * from './domain/incident-status.js';
15
+ export * from './domain/resolve-by-name.js';
16
+ export * from './domain/scan-explanation.js';
17
+ export * from './domain/route-schedule.js';
18
+ export * from './domain/route-checkpoints.js';
19
+ export * from './domain/geo.js';
20
+ export * from './domain/backend-errors.js';
21
+ export * from './domain/qr-image.js';
22
+ export * from './domain/guard-app-message.js';
23
+ export * from './domain/date-range.js';
24
+ export * from './domain/timezone.js';
25
+ export * from './domain/scans-csv.js';
26
+ export * from './domain/access-logs-csv.js';
27
+ export * from './domain/tool-result.js';
28
+ export * from './domain/puesta-en-marcha.js';
29
+ export * from './domain/country.js';
30
+ export * from './domain/money.js';
31
+ // Capacidades de lectura
32
+ export * from './reads/index.js';
33
+ // Acciones de escritura (propuesta y confirmación)
34
+ export * from './actions/index.js';
35
+ // Catálogo único: metadatos, canales y filtro por canal
36
+ export * from './catalog/types.js';
37
+ export * from './catalog/entries.js';
38
+ export * from './catalog/buildCatalog.js';
39
+ export * from './catalog/english.js';
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,cAAc,cAAc,CAAC;AAE7B,+DAA+D;AAC/D,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AAEjC,2CAA2C;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,uEAAuE;AACvE,cAAc,oBAAoB,CAAC;AAEnC,eAAe;AACf,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,yBAAyB;AACzB,cAAc,kBAAkB,CAAC;AAEjC,mDAAmD;AACnD,cAAc,oBAAoB,CAAC;AAEnC,wDAAwD;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Dónde dejar los ficheros que generan las capacidades (el QR de un checkpoint,
3
+ * un Excel de escaneos…). Cada consumidor lo implementa a su manera: el bot los
4
+ * envía por el chat, el servidor MCP los devuelve como contenido de la herramienta.
5
+ */
6
+ export interface FileSink {
7
+ /** Una imagen PNG, con un pie opcional. */
8
+ sendImage(file: {
9
+ png: Uint8Array;
10
+ caption?: string;
11
+ }): Promise<void>;
12
+ /** Un documento cualquiera (p. ej. un CSV para Excel), con un pie opcional. */
13
+ sendDocument(file: {
14
+ bytes: Uint8Array;
15
+ filename: string;
16
+ mimeType: string;
17
+ caption?: string;
18
+ }): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=FileSink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSink.d.ts","sourceRoot":"","sources":["../../src/ports/FileSink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,SAAS,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,+EAA+E;IAC/E,YAAY,CAAC,IAAI,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FileSink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSink.js","sourceRoot":"","sources":["../../src/ports/FileSink.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Logger que las capacidades reciben por inyección: el paquete no sabe dónde se
3
+ * escribe (JSON por consola en el bot, stderr en el servidor MCP…) ni depende de
4
+ * ningún logger global.
5
+ *
6
+ * Convención: si el contexto trae un error, va en `meta.err`. El logger del bot
7
+ * (`info(event, ctx)`) cumple esta interfaz tal cual.
8
+ */
9
+ export interface Logger {
10
+ info(msg: string, meta?: Record<string, unknown>): void;
11
+ warn(msg: string, meta?: Record<string, unknown>): void;
12
+ error(msg: string, meta?: Record<string, unknown>): void;
13
+ }
14
+ /** Logger que descarta todo: el valor por defecto cuando el consumidor no inyecta uno. */
15
+ export declare const noopLogger: Logger;
16
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/ports/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,0FAA0F;AAC1F,eAAO,MAAM,UAAU,EAAE,MAIxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Logger que descarta todo: el valor por defecto cuando el consumidor no inyecta uno. */
2
+ export const noopLogger = {
3
+ info: () => undefined,
4
+ warn: () => undefined,
5
+ error: () => undefined,
6
+ };
7
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/ports/Logger.ts"],"names":[],"mappings":"AAcA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;CACvB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Almacén de las acciones de escritura que se proponen al usuario y esperan su
3
+ * confirmación. Solo los tipos: las implementaciones (base de datos en el bot, en
4
+ * memoria en el servidor MCP…) viven en cada consumidor.
5
+ *
6
+ * Refleja las operaciones del almacén de propuestas del bot
7
+ * con `contextKey` en lugar de `threadId`: la clave de la conversación o sesión a
8
+ * la que pertenecen las propuestas (solo hay un lote vivo por clave).
9
+ *
10
+ * `contextKey` tiene que atar al USUARIO y a su cliente o conversación (p. ej.
11
+ * `<userId>:<conversationId>` en el bot, `<userId>:<clientId>:<sessionId>` en el
12
+ * MCP) y no compartirse NUNCA entre usuarios: quien tenga la clave puede
13
+ * confirmar, cancelar o ver las propuestas de ese lote.
14
+ */
15
+ export type PendingActionStatus = 'proposed' | 'executing' | 'executed' | 'failed' | 'cancelled' | 'expired';
16
+ export interface PendingAction {
17
+ id: string;
18
+ /** Usuario + cliente/conversación: nunca compartida entre usuarios (ver arriba). */
19
+ contextKey: string;
20
+ /** Nombre de la acción del catálogo (`ActionDefinition.nombre`, p. ej. `create_checkpoint`). */
21
+ action: string;
22
+ params: unknown;
23
+ organizationId: string | null;
24
+ status: PendingActionStatus;
25
+ idempotencyKey: string | null;
26
+ result: unknown;
27
+ error: string | null;
28
+ expiresAt: Date;
29
+ createdAt: Date;
30
+ updatedAt: Date;
31
+ /** Lote de propuestas del mismo turno, que se confirman de una vez (null en las anteriores a los lotes). */
32
+ batchId: string | null;
33
+ }
34
+ /** Una acción del lote, tal como se guarda al proponerla. */
35
+ export interface ProposedItem {
36
+ action: string;
37
+ params: unknown;
38
+ organizationId: string | null;
39
+ idempotencyKey?: string | null;
40
+ }
41
+ export interface PendingActionStore {
42
+ /**
43
+ * Guarda un lote de acciones propuestas (las del mismo turno) con el mismo
44
+ * `batchId` y en el orden de la lista que verá el usuario. Las `proposed`
45
+ * anteriores de la misma clave se retiran (`cancelled`, o `expired` si ya
46
+ * habían caducado). La caducidad la calcula el almacén, con el mismo reloj que
47
+ * usa `claimForExecution`.
48
+ */
49
+ proposeActions(input: {
50
+ contextKey: string;
51
+ ttlMin: number;
52
+ items: ProposedItem[];
53
+ }): Promise<PendingAction[]>;
54
+ /** Las acciones de un lote, en el orden de la lista que vio el usuario. */
55
+ findBatch(contextKey: string, batchId: string): Promise<PendingAction[]>;
56
+ /**
57
+ * Una acción `proposed` de la clave (la primera de su lote), caducada o no
58
+ * (quien llama decide qué decir si ya caducó). Confirmarla confirma su lote entero.
59
+ */
60
+ findProposed(contextKey: string): Promise<PendingAction | undefined>;
61
+ findById(id: string): Promise<PendingAction | undefined>;
62
+ /**
63
+ * Reclama la acción para ejecutarla: `proposed` → `executing` de forma atómica,
64
+ * así que de dos confirmaciones simultáneas solo una la recibe. `undefined` = ya
65
+ * ejecutada o en curso, cancelada, caducada o de otra clave.
66
+ */
67
+ claimForExecution(id: string, contextKey: string): Promise<PendingAction | undefined>;
68
+ markExecuted(id: string, result: unknown): Promise<void>;
69
+ markFailed(id: string, error: string): Promise<void>;
70
+ /**
71
+ * Vuelve a dejar como propuestas, con la caducidad renovada a `ttlMin` minutos,
72
+ * las acciones que aún no se han hecho (la que se ejecutaba y las que esperaban
73
+ * su turno en el lote). Las ya hechas, fallidas o retiradas no se tocan.
74
+ */
75
+ reopenProposed(ids: readonly string[], ttlMin: number): Promise<void>;
76
+ /**
77
+ * Retira el lote vivo de la clave entero (el usuario dijo «cancelar»). Devuelve
78
+ * una de las retiradas, con su estado final (`cancelled`, o `expired` si llegó tarde).
79
+ */
80
+ cancelProposed(contextKey: string): Promise<PendingAction | undefined>;
81
+ /** ¿Se ejecutó alguna acción de esta clave en los últimos `withinMin` minutos? */
82
+ executedRecently(contextKey: string, withinMin: number): Promise<boolean>;
83
+ }
84
+ //# sourceMappingURL=PendingActionStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingActionStore.d.ts","sourceRoot":"","sources":["../../src/ports/PendingActionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,mBAAmB,GAC7B,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,4GAA4G;IAC5G,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,YAAY,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE7B,2EAA2E;IAC3E,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAEzE;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAErE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEzD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEtF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEvE,kFAAkF;IAClF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Almacén de las acciones de escritura que se proponen al usuario y esperan su
3
+ * confirmación. Solo los tipos: las implementaciones (base de datos en el bot, en
4
+ * memoria en el servidor MCP…) viven en cada consumidor.
5
+ *
6
+ * Refleja las operaciones del almacén de propuestas del bot
7
+ * con `contextKey` en lugar de `threadId`: la clave de la conversación o sesión a
8
+ * la que pertenecen las propuestas (solo hay un lote vivo por clave).
9
+ *
10
+ * `contextKey` tiene que atar al USUARIO y a su cliente o conversación (p. ej.
11
+ * `<userId>:<conversationId>` en el bot, `<userId>:<clientId>:<sessionId>` en el
12
+ * MCP) y no compartirse NUNCA entre usuarios: quien tenga la clave puede
13
+ * confirmar, cancelar o ver las propuestas de ese lote.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=PendingActionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingActionStore.js","sourceRoot":"","sources":["../../src/ports/PendingActionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,4 @@
1
+ import { type ReadCapability, type ReadEnv } from './types.js';
2
+ /** Control de Acceso: entradas, salidas y quién está dentro. */
3
+ export declare function accessReads({ gateway, offerFiles }: ReadEnv): ReadCapability[];
4
+ //# sourceMappingURL=access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/reads/access.ts"],"names":[],"mappings":"AAeA,OAAO,EAAsC,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAgJnG,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,GAAG,cAAc,EAAE,CAS9E"}