@patroltech/agent-capabilities 0.0.0-stage → 0.2.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 (439) 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 +14 -0
  112. package/dist/catalog/english.d.ts.map +1 -0
  113. package/dist/catalog/english.js +368 -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-status.d.ts +29 -0
  156. package/dist/domain/incident-status.d.ts.map +1 -0
  157. package/dist/domain/incident-status.js +44 -0
  158. package/dist/domain/incident-status.js.map +1 -0
  159. package/dist/domain/language.d.ts +39 -0
  160. package/dist/domain/language.d.ts.map +1 -0
  161. package/dist/domain/language.js +112 -0
  162. package/dist/domain/language.js.map +1 -0
  163. package/dist/domain/money.d.ts +3 -0
  164. package/dist/domain/money.d.ts.map +1 -0
  165. package/dist/domain/money.js +12 -0
  166. package/dist/domain/money.js.map +1 -0
  167. package/dist/domain/puesta-en-marcha.d.ts +47 -0
  168. package/dist/domain/puesta-en-marcha.d.ts.map +1 -0
  169. package/dist/domain/puesta-en-marcha.js +22 -0
  170. package/dist/domain/puesta-en-marcha.js.map +1 -0
  171. package/dist/domain/qr-image.d.ts +25 -0
  172. package/dist/domain/qr-image.d.ts.map +1 -0
  173. package/dist/domain/qr-image.js +28 -0
  174. package/dist/domain/qr-image.js.map +1 -0
  175. package/dist/domain/resolve-by-name.d.ts +32 -0
  176. package/dist/domain/resolve-by-name.d.ts.map +1 -0
  177. package/dist/domain/resolve-by-name.js +40 -0
  178. package/dist/domain/resolve-by-name.js.map +1 -0
  179. package/dist/domain/route-checkpoints.d.ts +31 -0
  180. package/dist/domain/route-checkpoints.d.ts.map +1 -0
  181. package/dist/domain/route-checkpoints.js +27 -0
  182. package/dist/domain/route-checkpoints.js.map +1 -0
  183. package/dist/domain/route-schedule.d.ts +88 -0
  184. package/dist/domain/route-schedule.d.ts.map +1 -0
  185. package/dist/domain/route-schedule.js +203 -0
  186. package/dist/domain/route-schedule.js.map +1 -0
  187. package/dist/domain/scan-explanation.d.ts +25 -0
  188. package/dist/domain/scan-explanation.d.ts.map +1 -0
  189. package/dist/domain/scan-explanation.js +99 -0
  190. package/dist/domain/scan-explanation.js.map +1 -0
  191. package/dist/domain/scans-csv.d.ts +37 -0
  192. package/dist/domain/scans-csv.d.ts.map +1 -0
  193. package/dist/domain/scans-csv.js +67 -0
  194. package/dist/domain/scans-csv.js.map +1 -0
  195. package/dist/domain/timezone.d.ts +61 -0
  196. package/dist/domain/timezone.d.ts.map +1 -0
  197. package/dist/domain/timezone.js +113 -0
  198. package/dist/domain/timezone.js.map +1 -0
  199. package/dist/domain/tool-result.d.ts +55 -0
  200. package/dist/domain/tool-result.d.ts.map +1 -0
  201. package/dist/domain/tool-result.js +47 -0
  202. package/dist/domain/tool-result.js.map +1 -0
  203. package/dist/domain/urls.d.ts +33 -0
  204. package/dist/domain/urls.d.ts.map +1 -0
  205. package/dist/domain/urls.js +20 -0
  206. package/dist/domain/urls.js.map +1 -0
  207. package/dist/gateway/PatrolTechGateway.d.ts +195 -0
  208. package/dist/gateway/PatrolTechGateway.d.ts.map +1 -0
  209. package/dist/gateway/PatrolTechGateway.js +2 -0
  210. package/dist/gateway/PatrolTechGateway.js.map +1 -0
  211. package/dist/gateway/index.d.ts +4 -0
  212. package/dist/gateway/index.d.ts.map +1 -0
  213. package/dist/gateway/index.js +4 -0
  214. package/dist/gateway/index.js.map +1 -0
  215. package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts +145 -0
  216. package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts.map +1 -0
  217. package/dist/gateway/sdk/SdkPatrolTechGateway.js +101 -0
  218. package/dist/gateway/sdk/SdkPatrolTechGateway.js.map +1 -0
  219. package/dist/gateway/sdk/access.d.ts +8 -0
  220. package/dist/gateway/sdk/access.d.ts.map +1 -0
  221. package/dist/gateway/sdk/access.js +39 -0
  222. package/dist/gateway/sdk/access.js.map +1 -0
  223. package/dist/gateway/sdk/billing.d.ts +7 -0
  224. package/dist/gateway/sdk/billing.d.ts.map +1 -0
  225. package/dist/gateway/sdk/billing.js +92 -0
  226. package/dist/gateway/sdk/billing.js.map +1 -0
  227. package/dist/gateway/sdk/checkpoint-mappers.d.ts +23 -0
  228. package/dist/gateway/sdk/checkpoint-mappers.d.ts.map +1 -0
  229. package/dist/gateway/sdk/checkpoint-mappers.js +59 -0
  230. package/dist/gateway/sdk/checkpoint-mappers.js.map +1 -0
  231. package/dist/gateway/sdk/checkpoints.d.ts +33 -0
  232. package/dist/gateway/sdk/checkpoints.d.ts.map +1 -0
  233. package/dist/gateway/sdk/checkpoints.js +163 -0
  234. package/dist/gateway/sdk/checkpoints.js.map +1 -0
  235. package/dist/gateway/sdk/errors.d.ts +10 -0
  236. package/dist/gateway/sdk/errors.d.ts.map +1 -0
  237. package/dist/gateway/sdk/errors.js +46 -0
  238. package/dist/gateway/sdk/errors.js.map +1 -0
  239. package/dist/gateway/sdk/incidents.d.ts +18 -0
  240. package/dist/gateway/sdk/incidents.d.ts.map +1 -0
  241. package/dist/gateway/sdk/incidents.js +98 -0
  242. package/dist/gateway/sdk/incidents.js.map +1 -0
  243. package/dist/gateway/sdk/index.d.ts +4 -0
  244. package/dist/gateway/sdk/index.d.ts.map +1 -0
  245. package/dist/gateway/sdk/index.js +4 -0
  246. package/dist/gateway/sdk/index.js.map +1 -0
  247. package/dist/gateway/sdk/list.d.ts +15 -0
  248. package/dist/gateway/sdk/list.d.ts.map +1 -0
  249. package/dist/gateway/sdk/list.js +12 -0
  250. package/dist/gateway/sdk/list.js.map +1 -0
  251. package/dist/gateway/sdk/locations.d.ts +24 -0
  252. package/dist/gateway/sdk/locations.d.ts.map +1 -0
  253. package/dist/gateway/sdk/locations.js +44 -0
  254. package/dist/gateway/sdk/locations.js.map +1 -0
  255. package/dist/gateway/sdk/patrollers.d.ts +26 -0
  256. package/dist/gateway/sdk/patrollers.d.ts.map +1 -0
  257. package/dist/gateway/sdk/patrollers.js +132 -0
  258. package/dist/gateway/sdk/patrollers.js.map +1 -0
  259. package/dist/gateway/sdk/rounds.d.ts +15 -0
  260. package/dist/gateway/sdk/rounds.d.ts.map +1 -0
  261. package/dist/gateway/sdk/rounds.js +142 -0
  262. package/dist/gateway/sdk/rounds.js.map +1 -0
  263. package/dist/gateway/sdk/routes.d.ts +18 -0
  264. package/dist/gateway/sdk/routes.d.ts.map +1 -0
  265. package/dist/gateway/sdk/routes.js +74 -0
  266. package/dist/gateway/sdk/routes.js.map +1 -0
  267. package/dist/gateway/sdk/scans.d.ts +4 -0
  268. package/dist/gateway/sdk/scans.d.ts.map +1 -0
  269. package/dist/gateway/sdk/scans.js +72 -0
  270. package/dist/gateway/sdk/scans.js.map +1 -0
  271. package/dist/gateway/sdk/transport.d.ts +77 -0
  272. package/dist/gateway/sdk/transport.d.ts.map +1 -0
  273. package/dist/gateway/sdk/transport.js +81 -0
  274. package/dist/gateway/sdk/transport.js.map +1 -0
  275. package/dist/gateway/sdk/users.d.ts +15 -0
  276. package/dist/gateway/sdk/users.d.ts.map +1 -0
  277. package/dist/gateway/sdk/users.js +49 -0
  278. package/dist/gateway/sdk/users.js.map +1 -0
  279. package/dist/gateway/types/access.d.ts +32 -0
  280. package/dist/gateway/types/access.d.ts.map +1 -0
  281. package/dist/gateway/types/access.js +2 -0
  282. package/dist/gateway/types/access.js.map +1 -0
  283. package/dist/gateway/types/billing.d.ts +60 -0
  284. package/dist/gateway/types/billing.d.ts.map +1 -0
  285. package/dist/gateway/types/billing.js +2 -0
  286. package/dist/gateway/types/billing.js.map +1 -0
  287. package/dist/gateway/types/checkpoints.d.ts +84 -0
  288. package/dist/gateway/types/checkpoints.d.ts.map +1 -0
  289. package/dist/gateway/types/checkpoints.js +2 -0
  290. package/dist/gateway/types/checkpoints.js.map +1 -0
  291. package/dist/gateway/types/common.d.ts +13 -0
  292. package/dist/gateway/types/common.d.ts.map +1 -0
  293. package/dist/gateway/types/common.js +2 -0
  294. package/dist/gateway/types/common.js.map +1 -0
  295. package/dist/gateway/types/incidents.d.ts +53 -0
  296. package/dist/gateway/types/incidents.d.ts.map +1 -0
  297. package/dist/gateway/types/incidents.js +2 -0
  298. package/dist/gateway/types/incidents.js.map +1 -0
  299. package/dist/gateway/types/index.d.ts +12 -0
  300. package/dist/gateway/types/index.d.ts.map +1 -0
  301. package/dist/gateway/types/index.js +12 -0
  302. package/dist/gateway/types/index.js.map +1 -0
  303. package/dist/gateway/types/locations.d.ts +7 -0
  304. package/dist/gateway/types/locations.d.ts.map +1 -0
  305. package/dist/gateway/types/locations.js +2 -0
  306. package/dist/gateway/types/locations.js.map +1 -0
  307. package/dist/gateway/types/patrollers.d.ts +68 -0
  308. package/dist/gateway/types/patrollers.d.ts.map +1 -0
  309. package/dist/gateway/types/patrollers.js +15 -0
  310. package/dist/gateway/types/patrollers.js.map +1 -0
  311. package/dist/gateway/types/rounds.d.ts +89 -0
  312. package/dist/gateway/types/rounds.d.ts.map +1 -0
  313. package/dist/gateway/types/rounds.js +2 -0
  314. package/dist/gateway/types/rounds.js.map +1 -0
  315. package/dist/gateway/types/routes.d.ts +48 -0
  316. package/dist/gateway/types/routes.d.ts.map +1 -0
  317. package/dist/gateway/types/routes.js +2 -0
  318. package/dist/gateway/types/routes.js.map +1 -0
  319. package/dist/gateway/types/scans.d.ts +44 -0
  320. package/dist/gateway/types/scans.d.ts.map +1 -0
  321. package/dist/gateway/types/scans.js +2 -0
  322. package/dist/gateway/types/scans.js.map +1 -0
  323. package/dist/gateway/types/users.d.ts +32 -0
  324. package/dist/gateway/types/users.d.ts.map +1 -0
  325. package/dist/gateway/types/users.js +2 -0
  326. package/dist/gateway/types/users.js.map +1 -0
  327. package/dist/index.d.ts +32 -0
  328. package/dist/index.d.ts.map +1 -0
  329. package/dist/index.js +40 -0
  330. package/dist/index.js.map +1 -0
  331. package/dist/ports/FileSink.d.ts +20 -0
  332. package/dist/ports/FileSink.d.ts.map +1 -0
  333. package/dist/ports/FileSink.js +2 -0
  334. package/dist/ports/FileSink.js.map +1 -0
  335. package/dist/ports/Logger.d.ts +16 -0
  336. package/dist/ports/Logger.d.ts.map +1 -0
  337. package/dist/ports/Logger.js +7 -0
  338. package/dist/ports/Logger.js.map +1 -0
  339. package/dist/ports/PendingActionStore.d.ts +84 -0
  340. package/dist/ports/PendingActionStore.d.ts.map +1 -0
  341. package/dist/ports/PendingActionStore.js +16 -0
  342. package/dist/ports/PendingActionStore.js.map +1 -0
  343. package/dist/reads/access.d.ts +4 -0
  344. package/dist/reads/access.d.ts.map +1 -0
  345. package/dist/reads/access.js +129 -0
  346. package/dist/reads/access.js.map +1 -0
  347. package/dist/reads/checkpoints.d.ts +4 -0
  348. package/dist/reads/checkpoints.d.ts.map +1 -0
  349. package/dist/reads/checkpoints.js +152 -0
  350. package/dist/reads/checkpoints.js.map +1 -0
  351. package/dist/reads/files.d.ts +9 -0
  352. package/dist/reads/files.d.ts.map +1 -0
  353. package/dist/reads/files.js +222 -0
  354. package/dist/reads/files.js.map +1 -0
  355. package/dist/reads/incidents.d.ts +4 -0
  356. package/dist/reads/incidents.d.ts.map +1 -0
  357. package/dist/reads/incidents.js +164 -0
  358. package/dist/reads/incidents.js.map +1 -0
  359. package/dist/reads/index.d.ts +11 -0
  360. package/dist/reads/index.d.ts.map +1 -0
  361. package/dist/reads/index.js +51 -0
  362. package/dist/reads/index.js.map +1 -0
  363. package/dist/reads/onboarding.d.ts +4 -0
  364. package/dist/reads/onboarding.d.ts.map +1 -0
  365. package/dist/reads/onboarding.js +41 -0
  366. package/dist/reads/onboarding.js.map +1 -0
  367. package/dist/reads/organization.d.ts +26 -0
  368. package/dist/reads/organization.d.ts.map +1 -0
  369. package/dist/reads/organization.js +45 -0
  370. package/dist/reads/organization.js.map +1 -0
  371. package/dist/reads/patrollers.d.ts +4 -0
  372. package/dist/reads/patrollers.d.ts.map +1 -0
  373. package/dist/reads/patrollers.js +156 -0
  374. package/dist/reads/patrollers.js.map +1 -0
  375. package/dist/reads/plan.d.ts +4 -0
  376. package/dist/reads/plan.d.ts.map +1 -0
  377. package/dist/reads/plan.js +195 -0
  378. package/dist/reads/plan.js.map +1 -0
  379. package/dist/reads/rounds.d.ts +4 -0
  380. package/dist/reads/rounds.d.ts.map +1 -0
  381. package/dist/reads/rounds.js +160 -0
  382. package/dist/reads/rounds.js.map +1 -0
  383. package/dist/reads/routes.d.ts +4 -0
  384. package/dist/reads/routes.d.ts.map +1 -0
  385. package/dist/reads/routes.js +34 -0
  386. package/dist/reads/routes.js.map +1 -0
  387. package/dist/reads/support/access-locations.d.ts +22 -0
  388. package/dist/reads/support/access-locations.d.ts.map +1 -0
  389. package/dist/reads/support/access-locations.js +55 -0
  390. package/dist/reads/support/access-locations.js.map +1 -0
  391. package/dist/reads/support/excel.d.ts +10 -0
  392. package/dist/reads/support/excel.d.ts.map +1 -0
  393. package/dist/reads/support/excel.js +35 -0
  394. package/dist/reads/support/excel.js.map +1 -0
  395. package/dist/reads/support/params.d.ts +50 -0
  396. package/dist/reads/support/params.d.ts.map +1 -0
  397. package/dist/reads/support/params.js +73 -0
  398. package/dist/reads/support/params.js.map +1 -0
  399. package/dist/reads/support/resolve.d.ts +17 -0
  400. package/dist/reads/support/resolve.d.ts.map +1 -0
  401. package/dist/reads/support/resolve.js +33 -0
  402. package/dist/reads/support/resolve.js.map +1 -0
  403. package/dist/reads/support/results.d.ts +22 -0
  404. package/dist/reads/support/results.d.ts.map +1 -0
  405. package/dist/reads/support/results.js +41 -0
  406. package/dist/reads/support/results.js.map +1 -0
  407. package/dist/reads/support/roles.d.ts +13 -0
  408. package/dist/reads/support/roles.d.ts.map +1 -0
  409. package/dist/reads/support/roles.js +27 -0
  410. package/dist/reads/support/roles.js.map +1 -0
  411. package/dist/reads/support/scans.d.ts +31 -0
  412. package/dist/reads/support/scans.d.ts.map +1 -0
  413. package/dist/reads/support/scans.js +66 -0
  414. package/dist/reads/support/scans.js.map +1 -0
  415. package/dist/reads/types.d.ts +48 -0
  416. package/dist/reads/types.d.ts.map +1 -0
  417. package/dist/reads/types.js +5 -0
  418. package/dist/reads/types.js.map +1 -0
  419. package/dist/reads/users.d.ts +4 -0
  420. package/dist/reads/users.d.ts.map +1 -0
  421. package/dist/reads/users.js +57 -0
  422. package/dist/reads/users.js.map +1 -0
  423. package/dist/testing/FakePatrolTechGateway.d.ts +212 -0
  424. package/dist/testing/FakePatrolTechGateway.d.ts.map +1 -0
  425. package/dist/testing/FakePatrolTechGateway.js +712 -0
  426. package/dist/testing/FakePatrolTechGateway.js.map +1 -0
  427. package/dist/testing/RecordingFileSink.d.ts +12 -0
  428. package/dist/testing/RecordingFileSink.d.ts.map +1 -0
  429. package/dist/testing/RecordingFileSink.js +12 -0
  430. package/dist/testing/RecordingFileSink.js.map +1 -0
  431. package/dist/testing/index.d.ts +4 -0
  432. package/dist/testing/index.d.ts.map +1 -0
  433. package/dist/testing/index.js +4 -0
  434. package/dist/testing/index.js.map +1 -0
  435. package/dist/testing/reads.d.ts +34 -0
  436. package/dist/testing/reads.d.ts.map +1 -0
  437. package/dist/testing/reads.js +39 -0
  438. package/dist/testing/reads.js.map +1 -0
  439. package/package.json +76 -4
@@ -0,0 +1,61 @@
1
+ import type { ActionDefinition } from '../actions/types.js';
2
+ import type { ReadCapability } from '../reads/types.js';
3
+ /** Quién consume el catálogo: el bot de WhatsApp/Telegram o el servidor MCP. */
4
+ export type Channel = 'bot' | 'mcp';
5
+ /** Metadatos de UNA capacidad (lectura o acción): lo que decide dónde se ofrece y cómo se describe. */
6
+ export interface CapabilityMeta {
7
+ /** Identificador estable, en inglés y snake_case con espacio de nombres: `rounds.get_status`. */
8
+ id: string;
9
+ /** Nombre de la lectura (`consultar_estado_rondas`) o de la acción (`create_route`). */
10
+ capability: string;
11
+ kind: 'read' | 'action';
12
+ /** Canales que la ofrecen. */
13
+ channels: Channel[];
14
+ /** `public` = documentable de cara a clientes y agentes externos; `internal` = solo el bot. */
15
+ visibility: 'public' | 'internal';
16
+ status: 'ga' | 'beta' | 'off';
17
+ readOnly: boolean;
18
+ /** Borra, archiva, quita acceso, cambia un rol o toca el antifraude/posición: pide cuidado extra. */
19
+ destructive: boolean;
20
+ /**
21
+ * `user` = solo afecta al usuario que la usa, en todas sus organizaciones (p. ej. sus avisos):
22
+ * el consumidor no debe pedirle que elija organización. `organization` = actúa sobre una.
23
+ */
24
+ scope: 'organization' | 'user';
25
+ title: {
26
+ es: string;
27
+ en: string;
28
+ };
29
+ summary: {
30
+ es: string;
31
+ en: string;
32
+ };
33
+ /**
34
+ * Qué devuelve una lectura y cómo leer sus campos (zona horaria, marcas como `alMenos`, lo oculto
35
+ * por la retención de datos…), en inglés: lo que el bot dice en su `description` en español, para
36
+ * los canales que describen con `meta`. Obligatorio en toda lectura `mcp` (lo vigila el test del
37
+ * catálogo); sin nombres de plan, canal ni herramientas del bot.
38
+ */
39
+ returns?: {
40
+ en: string;
41
+ };
42
+ /** Funciones de `@patroltech/sdk-api` (operationId del contrato público) a las que acaba llamando. */
43
+ operationIds: string[];
44
+ owner: string;
45
+ /** Última vez (YYYY-MM-DD) que alguien comprobó que la entrada sigue siendo cierta. */
46
+ verifiedAt: string;
47
+ }
48
+ export interface CatalogRead {
49
+ meta: CapabilityMeta;
50
+ read: ReadCapability;
51
+ }
52
+ export interface CatalogAction {
53
+ meta: CapabilityMeta;
54
+ action: ActionDefinition;
55
+ }
56
+ /** Lo que `buildCatalog` ofrece a un canal. */
57
+ export interface Catalog {
58
+ reads: CatalogRead[];
59
+ actions: CatalogAction[];
60
+ }
61
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpC,uGAAuG;AACvG,MAAM,WAAW,cAAc;IAC7B,iGAAiG;IACjG,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,+FAA+F;IAC/F,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,qGAAqG;IACrG,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/B,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,sGAAsG;IACtG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,+CAA+C;AAC/C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import type { FixedTextLanguage } from './domain/language.js';
2
+ /** Referencia mínima a una organización del usuario, tal como la conocen lecturas y acciones. */
3
+ export interface OrganizationRef {
4
+ orgId: string;
5
+ name: string;
6
+ /** Rol del usuario en ella según su sesión (`ADMIN`/`EDITOR`/`VIEWER`); ausente si no se conoce. */
7
+ roleType?: string;
8
+ /** `location` = el rol es solo de alguna ubicación, no de toda la organización. */
9
+ scope?: 'organization' | 'location';
10
+ }
11
+ /**
12
+ * Lo que comparten TODAS las llamadas (lecturas y acciones): la organización
13
+ * YA resuelta (con `resolveOrganization`, solo entre `organizations`), las
14
+ * organizaciones de la sesión, el token, la zona horaria y el país del cliente
15
+ * (los da el consumidor: nunca se deducen aquí de un teléfono) y el idioma de
16
+ * los textos fijos.
17
+ */
18
+ export interface SessionContext {
19
+ org: OrganizationRef;
20
+ /** Todas las organizaciones del usuario según su sesión: `org` tiene que ser una de ellas. */
21
+ organizations: OrganizationRef[];
22
+ token: string;
23
+ /** Zona del cliente: los rangos de fecha y las horas se calculan en SU calendario. */
24
+ tz: string;
25
+ /** País ISO-2 del cliente, o null si el consumidor no lo sabe. */
26
+ country: string | null;
27
+ language: FixedTextLanguage;
28
+ }
29
+ /** Lo que se le dice al modelo cuando la organización no es una de las del usuario. */
30
+ export declare const ORGANIZATION_NOT_RECOGNISED = "Organizaci\u00F3n no reconocida";
31
+ /**
32
+ * La entrada de la SESIÓN (`ctx.organizations`) para `ctx.org`, o `undefined`
33
+ * si no es una de las del usuario (invariante anti-fuga). Rol y ámbito salen de
34
+ * esa entrada, no de la copia que haya armado el consumidor en `ctx.org`.
35
+ */
36
+ export declare function canonicalOrganization(ctx: Pick<SessionContext, 'org' | 'organizations'>): OrganizationRef | undefined;
37
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,KAAK,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,eAAe,CAAC;IACrB,8FAA8F;IAC9F,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,uFAAuF;AACvF,eAAO,MAAM,2BAA2B,oCAA+B,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,eAAe,CAAC,GACjD,eAAe,GAAG,SAAS,CAE7B"}
@@ -0,0 +1,11 @@
1
+ /** Lo que se le dice al modelo cuando la organización no es una de las del usuario. */
2
+ export const ORGANIZATION_NOT_RECOGNISED = 'Organización no reconocida';
3
+ /**
4
+ * La entrada de la SESIÓN (`ctx.organizations`) para `ctx.org`, o `undefined`
5
+ * si no es una de las del usuario (invariante anti-fuga). Rol y ámbito salen de
6
+ * esa entrada, no de la copia que haya armado el consumidor en `ctx.org`.
7
+ */
8
+ export function canonicalOrganization(ctx) {
9
+ return ctx.organizations.find((o) => o.orgId === ctx.org.orgId);
10
+ }
11
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AA+BA,uFAAuF;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAkD;IAElD,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
package/dist/deps.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { type PatrolTechUrls, type TextPolicyOptions } from './domain/urls.js';
2
+ import type { PatrolTechGateway } from './gateway/PatrolTechGateway.js';
3
+ import { type Logger } from './ports/Logger.js';
4
+ /**
5
+ * Dependencias comunes de `readCapabilities`, `actionCatalog` y `buildCatalog`:
6
+ * se dan UNA vez al construir el catálogo. Nada de una sesión concreta (token,
7
+ * organización, ficheros) va aquí: eso viaja en el contexto de cada llamada.
8
+ */
9
+ export interface CapabilityDeps extends TextPolicyOptions {
10
+ gateway: PatrolTechGateway;
11
+ logger?: Logger;
12
+ }
13
+ /** Las dependencias ya con sus valores por defecto, tal como las reciben las áreas. */
14
+ export interface CapabilityEnv {
15
+ gateway: PatrolTechGateway;
16
+ logger: Logger;
17
+ urls: PatrolTechUrls;
18
+ /** Ver `TextPolicyOptions.upsell`: true salvo que el consumidor (o el canal MCP) diga lo contrario. */
19
+ upsell: boolean;
20
+ }
21
+ /** Completa las dependencias: logger nulo, enlaces de producción y los textos del bot (`upsell: true`). */
22
+ export declare function capabilityEnv(deps: CapabilityDeps): CapabilityEnv;
23
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,uGAAuG;IACvG,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAOjE"}
package/dist/deps.js ADDED
@@ -0,0 +1,12 @@
1
+ import { resolveUrls } from './domain/urls.js';
2
+ import { noopLogger } from './ports/Logger.js';
3
+ /** Completa las dependencias: logger nulo, enlaces de producción y los textos del bot (`upsell: true`). */
4
+ export function capabilityEnv(deps) {
5
+ return {
6
+ gateway: deps.gateway,
7
+ logger: deps.logger ?? noopLogger,
8
+ urls: resolveUrls(deps.urls),
9
+ upsell: deps.upsell ?? true,
10
+ };
11
+ }
12
+ //# sourceMappingURL=deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+C,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAqB5D,2GAA2G;AAC3G,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU;QACjC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Lo que el CSV necesita de un registro de acceso: subconjunto estructural del
3
+ * registro que devuelve el backend (cualquier `AccessLogEntry` lo cumple).
4
+ */
5
+ export interface AccessLogCsvRow {
6
+ fecha: string;
7
+ tipo: 'ENTRY' | 'EXIT';
8
+ zona: string | null;
9
+ persona: string | null;
10
+ identificadorPersona: string | null;
11
+ visitante: string | null;
12
+ documentoVisitante: string | null;
13
+ empresaVisitante: string | null;
14
+ destino: string | null;
15
+ notas: string | null;
16
+ }
17
+ export declare const TIPO_ACCESO: {
18
+ readonly ENTRY: "Entrada";
19
+ readonly EXIT: "Salida";
20
+ };
21
+ export declare function accessLogsCsv<R extends AccessLogCsvRow>(registros: readonly R[], opts: {
22
+ tz: string;
23
+ ubicacionDe: (registro: R) => string;
24
+ }): Buffer;
25
+ //# sourceMappingURL=access-logs-csv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-logs-csv.d.ts","sourceRoot":"","sources":["../../src/domain/access-logs-csv.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAsBD,eAAO,MAAM,WAAW;;;CAAgD,CAAC;AAEzE,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,EACrD,SAAS,EAAE,SAAS,CAAC,EAAE,EACvB,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAA;CAAE,GACzD,MAAM,CAiBR"}
@@ -0,0 +1,36 @@
1
+ import { csvBytes, fechaLocal } from './scans-csv.js';
2
+ /**
3
+ * Registros del Control de Acceso como CSV para Excel, con las mismas columnas
4
+ * que la tabla del panel. Aquí SÍ va el documento del visitante: es lo mismo que
5
+ * ve en el panel; lo que no se hace es escribirlo en el texto del chat.
6
+ */
7
+ const CABECERAS = [
8
+ 'Fecha y hora',
9
+ 'Tipo',
10
+ 'Ubicación',
11
+ 'Zona',
12
+ 'Persona autorizada',
13
+ 'Identificador',
14
+ 'Visitante',
15
+ 'Documento',
16
+ 'Empresa',
17
+ 'Destino',
18
+ 'Notas',
19
+ ];
20
+ export const TIPO_ACCESO = { ENTRY: 'Entrada', EXIT: 'Salida' };
21
+ export function accessLogsCsv(registros, opts) {
22
+ return csvBytes(CABECERAS, registros.map((a) => [
23
+ fechaLocal(a.fecha, opts.tz),
24
+ TIPO_ACCESO[a.tipo],
25
+ opts.ubicacionDe(a),
26
+ a.zona,
27
+ a.persona,
28
+ a.identificadorPersona,
29
+ a.visitante,
30
+ a.documentoVisitante,
31
+ a.empresaVisitante,
32
+ a.destino,
33
+ a.notas,
34
+ ]));
35
+ }
36
+ //# sourceMappingURL=access-logs-csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-logs-csv.js","sourceRoot":"","sources":["../../src/domain/access-logs-csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmBtD;;;;GAIG;AAEH,MAAM,SAAS,GAAG;IAChB,cAAc;IACd,MAAM;IACN,WAAW;IACX,MAAM;IACN,oBAAoB;IACpB,eAAe;IACf,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAC;AAEzE,MAAM,UAAU,aAAa,CAC3B,SAAuB,EACvB,IAA0D;IAE1D,OAAO,QAAQ,CACb,SAAS,EACT,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACnB,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5B,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK;KACR,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { FixedTextLanguage } from './language.js';
2
+ import { type PatrolTechUrls, type TextPolicyOptions } from './urls.js';
3
+ /**
4
+ * Respuesta no-2xx del backend de PatrolTech, con su cuerpo para poder
5
+ * distinguir el motivo (`code`). La lanza `SdkPatrolTechClient`; el mensaje es el
6
+ * de siempre, así que quien solo mira `err.message` no nota la diferencia.
7
+ */
8
+ export declare class PatrolTechApiError extends Error {
9
+ readonly status: number;
10
+ readonly path: string;
11
+ readonly body: unknown;
12
+ constructor(status: number, path: string, body: unknown);
13
+ }
14
+ export type BackendErrorKind = 'session_expired' | 'forbidden' | 'plan_limit' | 'extra_checkpoint' | 'code_taken' | 'checkpoint_archived' | 'checkpoint_other_location' | 'route_without_checkpoints' | 'account_suspended' | 'invalid_data' | 'not_found' | 'policies_pending' | 'unavailable';
15
+ export interface BackendFailure {
16
+ /** `session_expired` es el único reintentable: una vez, con una sesión nueva. */
17
+ kind: BackendErrorKind;
18
+ mensajeCliente: string;
19
+ }
20
+ /** Opciones de `translateBackendError`: la política de textos y si el fallo es de una lectura. */
21
+ export interface TranslateErrorOptions extends TextPolicyOptions {
22
+ /** `read`: sin «No se ha hecho ningún cambio». Por defecto, `action`. */
23
+ operation?: 'read' | 'action';
24
+ }
25
+ /**
26
+ * Traduce un fallo al llamar al backend a lo que se le dice al cliente, en su
27
+ * idioma (`es`, `en` o `fr`, ver `fixedTextLanguage`). Acepta cualquier cosa
28
+ * capturada: lo que no es un `PatrolTechApiError` (timeout, red) es `unavailable`.
29
+ * `opts.urls` son los enlaces a los que se deriva al cliente (por defecto, los de producción) y
30
+ * `opts.upsell: false` quita el plan y la Licencia de los límites (402, 409 de extra, 423) y
31
+ * `opts.operation: 'read'` quita «No se ha hecho ningún cambio» (una lectura nunca cambia nada).
32
+ *
33
+ * Forma del cuerpo de error del backend: los errores con `apiErrorBody` llevan
34
+ * `code` y `message` en primer nivel (402 de límite, 409 de extra y de código);
35
+ * el resto pasa por el envelope global, que deja `message` arriba (o «Error» si
36
+ * no había) y mete el cuerpo original en `meta` (401 `TOKEN_EXPIRED`, 451 de
37
+ * políticas, 400 `VALIDATION_ERROR` con su `error.message`).
38
+ */
39
+ export declare function translateBackendError(err: unknown, idioma?: FixedTextLanguage, opts?: TranslateErrorOptions): BackendFailure;
40
+ /**
41
+ * `translateBackendError` para quien EJECUTA una acción confirmada en un canal
42
+ * sin upsell (el MCP): el rechazo del backend en el idioma del cliente, con los
43
+ * límites en números y sin nombres de plan ni enlaces a Licencia.
44
+ */
45
+ export declare function translateActionError(err: unknown, language: FixedTextLanguage, urls?: Partial<PatrolTechUrls>): BackendFailure;
46
+ /** El `code` con el que el backend explica un rechazo, esté donde esté en el cuerpo. */
47
+ export declare function backendErrorCode(err: PatrolTechApiError): string | undefined;
48
+ /**
49
+ * ¿El backend rechazó porque la App (Incidencias, Control de Acceso) no está
50
+ * activa en la organización? `requireFeature` responde 403 «Feature '<key>' is
51
+ * not enabled for this organization»: no es falta de permiso del usuario.
52
+ */
53
+ export declare function isFeatureDisabled(err: unknown): boolean;
54
+ //# sourceMappingURL=backend-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-errors.d.ts","sourceRoot":"","sources":["../../src/domain/backend-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAErF;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO;gBAFb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO;CAKzB;AAED,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,qBAAqB,GACrB,2BAA2B,GAC3B,2BAA2B,GAC3B,mBAAmB,GACnB,cAAc,GACd,WAAW,GACX,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAuPD,kGAAkG;AAClG,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,iBAAwB,EAChC,IAAI,GAAE,qBAA0B,GAC/B,cAAc,CAsFhB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAC7B,cAAc,CAEhB;AAoCD,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAE5E;AAkBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMvD"}