@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.
- package/LICENSE +21 -0
- package/README.md +171 -2
- package/dist/actions/alerts.d.ts +3 -0
- package/dist/actions/alerts.d.ts.map +1 -0
- package/dist/actions/alerts.js +90 -0
- package/dist/actions/alerts.js.map +1 -0
- package/dist/actions/batch-policy.d.ts +67 -0
- package/dist/actions/batch-policy.d.ts.map +1 -0
- package/dist/actions/batch-policy.js +73 -0
- package/dist/actions/batch-policy.js.map +1 -0
- package/dist/actions/checkpoint-archive.d.ts +3 -0
- package/dist/actions/checkpoint-archive.d.ts.map +1 -0
- package/dist/actions/checkpoint-archive.js +173 -0
- package/dist/actions/checkpoint-archive.js.map +1 -0
- package/dist/actions/checkpoint-geo.d.ts +4 -0
- package/dist/actions/checkpoint-geo.d.ts.map +1 -0
- package/dist/actions/checkpoint-geo.js +286 -0
- package/dist/actions/checkpoint-geo.js.map +1 -0
- package/dist/actions/checkpoints.d.ts +10 -0
- package/dist/actions/checkpoints.d.ts.map +1 -0
- package/dist/actions/checkpoints.js +222 -0
- package/dist/actions/checkpoints.js.map +1 -0
- package/dist/actions/guard.d.ts +13 -0
- package/dist/actions/guard.d.ts.map +1 -0
- package/dist/actions/guard.js +30 -0
- package/dist/actions/guard.js.map +1 -0
- package/dist/actions/incidents.d.ts +3 -0
- package/dist/actions/incidents.d.ts.map +1 -0
- package/dist/actions/incidents.js +260 -0
- package/dist/actions/incidents.js.map +1 -0
- package/dist/actions/index.d.ts +20 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +60 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/locations.d.ts +4 -0
- package/dist/actions/locations.d.ts.map +1 -0
- package/dist/actions/locations.js +202 -0
- package/dist/actions/locations.js.map +1 -0
- package/dist/actions/names.d.ts +27 -0
- package/dist/actions/names.d.ts.map +1 -0
- package/dist/actions/names.js +48 -0
- package/dist/actions/names.js.map +1 -0
- package/dist/actions/patrollers.d.ts +6 -0
- package/dist/actions/patrollers.d.ts.map +1 -0
- package/dist/actions/patrollers.js +172 -0
- package/dist/actions/patrollers.js.map +1 -0
- package/dist/actions/route-schedules.d.ts +4 -0
- package/dist/actions/route-schedules.d.ts.map +1 -0
- package/dist/actions/route-schedules.js +110 -0
- package/dist/actions/route-schedules.js.map +1 -0
- package/dist/actions/routes.d.ts +5 -0
- package/dist/actions/routes.d.ts.map +1 -0
- package/dist/actions/routes.js +348 -0
- package/dist/actions/routes.js.map +1 -0
- package/dist/actions/support/antifraud-rules.d.ts +53 -0
- package/dist/actions/support/antifraud-rules.d.ts.map +1 -0
- package/dist/actions/support/antifraud-rules.js +121 -0
- package/dist/actions/support/antifraud-rules.js.map +1 -0
- package/dist/actions/support/elegir-ubicacion.d.ts +31 -0
- package/dist/actions/support/elegir-ubicacion.d.ts.map +1 -0
- package/dist/actions/support/elegir-ubicacion.js +42 -0
- package/dist/actions/support/elegir-ubicacion.js.map +1 -0
- package/dist/actions/support/next-step.d.ts +26 -0
- package/dist/actions/support/next-step.d.ts.map +1 -0
- package/dist/actions/support/next-step.js +55 -0
- package/dist/actions/support/next-step.js.map +1 -0
- package/dist/actions/support/route-impact.d.ts +25 -0
- package/dist/actions/support/route-impact.d.ts.map +1 -0
- package/dist/actions/support/route-impact.js +76 -0
- package/dist/actions/support/route-impact.js.map +1 -0
- package/dist/actions/support/route-lookup.d.ts +27 -0
- package/dist/actions/support/route-lookup.d.ts.map +1 -0
- package/dist/actions/support/route-lookup.js +44 -0
- package/dist/actions/support/route-lookup.js.map +1 -0
- package/dist/actions/support/schedule.d.ts +38 -0
- package/dist/actions/support/schedule.d.ts.map +1 -0
- package/dist/actions/support/schedule.js +62 -0
- package/dist/actions/support/schedule.js.map +1 -0
- package/dist/actions/support/shared.d.ts +112 -0
- package/dist/actions/support/shared.d.ts.map +1 -0
- package/dist/actions/support/shared.js +171 -0
- package/dist/actions/support/shared.js.map +1 -0
- package/dist/actions/support/texts.d.ts +47 -0
- package/dist/actions/support/texts.d.ts.map +1 -0
- package/dist/actions/support/texts.js +134 -0
- package/dist/actions/support/texts.js.map +1 -0
- package/dist/actions/support/turno.d.ts +16 -0
- package/dist/actions/support/turno.d.ts.map +1 -0
- package/dist/actions/support/turno.js +35 -0
- package/dist/actions/support/turno.js.map +1 -0
- package/dist/actions/support/user-access.d.ts +72 -0
- package/dist/actions/support/user-access.d.ts.map +1 -0
- package/dist/actions/support/user-access.js +194 -0
- package/dist/actions/support/user-access.js.map +1 -0
- package/dist/actions/types.d.ts +130 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +20 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/actions/user-roles.d.ts +4 -0
- package/dist/actions/user-roles.d.ts.map +1 -0
- package/dist/actions/user-roles.js +195 -0
- package/dist/actions/user-roles.js.map +1 -0
- package/dist/actions/users.d.ts +3 -0
- package/dist/actions/users.d.ts.map +1 -0
- package/dist/actions/users.js +146 -0
- package/dist/actions/users.js.map +1 -0
- package/dist/catalog/buildCatalog.d.ts +19 -0
- package/dist/catalog/buildCatalog.d.ts.map +1 -0
- package/dist/catalog/buildCatalog.js +38 -0
- package/dist/catalog/buildCatalog.js.map +1 -0
- package/dist/catalog/english.d.ts +14 -0
- package/dist/catalog/english.d.ts.map +1 -0
- package/dist/catalog/english.js +368 -0
- package/dist/catalog/english.js.map +1 -0
- package/dist/catalog/entries.d.ts +6 -0
- package/dist/catalog/entries.d.ts.map +1 -0
- package/dist/catalog/entries.js +610 -0
- package/dist/catalog/entries.js.map +1 -0
- package/dist/catalog/types.d.ts +61 -0
- package/dist/catalog/types.d.ts.map +1 -0
- package/dist/catalog/types.js +2 -0
- package/dist/catalog/types.js.map +1 -0
- package/dist/context.d.ts +37 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +11 -0
- package/dist/context.js.map +1 -0
- package/dist/deps.d.ts +23 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/deps.js +12 -0
- package/dist/deps.js.map +1 -0
- package/dist/domain/access-logs-csv.d.ts +25 -0
- package/dist/domain/access-logs-csv.d.ts.map +1 -0
- package/dist/domain/access-logs-csv.js +36 -0
- package/dist/domain/access-logs-csv.js.map +1 -0
- package/dist/domain/backend-errors.d.ts +54 -0
- package/dist/domain/backend-errors.d.ts.map +1 -0
- package/dist/domain/backend-errors.js +364 -0
- package/dist/domain/backend-errors.js.map +1 -0
- package/dist/domain/country.d.ts +9 -0
- package/dist/domain/country.d.ts.map +1 -0
- package/dist/domain/country.js +13 -0
- package/dist/domain/country.js.map +1 -0
- package/dist/domain/date-range.d.ts +33 -0
- package/dist/domain/date-range.d.ts.map +1 -0
- package/dist/domain/date-range.js +110 -0
- package/dist/domain/date-range.js.map +1 -0
- package/dist/domain/geo.d.ts +14 -0
- package/dist/domain/geo.d.ts.map +1 -0
- package/dist/domain/geo.js +22 -0
- package/dist/domain/geo.js.map +1 -0
- package/dist/domain/guard-app-message.d.ts +15 -0
- package/dist/domain/guard-app-message.d.ts.map +1 -0
- package/dist/domain/guard-app-message.js +39 -0
- package/dist/domain/guard-app-message.js.map +1 -0
- package/dist/domain/incident-status.d.ts +29 -0
- package/dist/domain/incident-status.d.ts.map +1 -0
- package/dist/domain/incident-status.js +44 -0
- package/dist/domain/incident-status.js.map +1 -0
- package/dist/domain/language.d.ts +39 -0
- package/dist/domain/language.d.ts.map +1 -0
- package/dist/domain/language.js +112 -0
- package/dist/domain/language.js.map +1 -0
- package/dist/domain/money.d.ts +3 -0
- package/dist/domain/money.d.ts.map +1 -0
- package/dist/domain/money.js +12 -0
- package/dist/domain/money.js.map +1 -0
- package/dist/domain/puesta-en-marcha.d.ts +47 -0
- package/dist/domain/puesta-en-marcha.d.ts.map +1 -0
- package/dist/domain/puesta-en-marcha.js +22 -0
- package/dist/domain/puesta-en-marcha.js.map +1 -0
- package/dist/domain/qr-image.d.ts +25 -0
- package/dist/domain/qr-image.d.ts.map +1 -0
- package/dist/domain/qr-image.js +28 -0
- package/dist/domain/qr-image.js.map +1 -0
- package/dist/domain/resolve-by-name.d.ts +32 -0
- package/dist/domain/resolve-by-name.d.ts.map +1 -0
- package/dist/domain/resolve-by-name.js +40 -0
- package/dist/domain/resolve-by-name.js.map +1 -0
- package/dist/domain/route-checkpoints.d.ts +31 -0
- package/dist/domain/route-checkpoints.d.ts.map +1 -0
- package/dist/domain/route-checkpoints.js +27 -0
- package/dist/domain/route-checkpoints.js.map +1 -0
- package/dist/domain/route-schedule.d.ts +88 -0
- package/dist/domain/route-schedule.d.ts.map +1 -0
- package/dist/domain/route-schedule.js +203 -0
- package/dist/domain/route-schedule.js.map +1 -0
- package/dist/domain/scan-explanation.d.ts +25 -0
- package/dist/domain/scan-explanation.d.ts.map +1 -0
- package/dist/domain/scan-explanation.js +99 -0
- package/dist/domain/scan-explanation.js.map +1 -0
- package/dist/domain/scans-csv.d.ts +37 -0
- package/dist/domain/scans-csv.d.ts.map +1 -0
- package/dist/domain/scans-csv.js +67 -0
- package/dist/domain/scans-csv.js.map +1 -0
- package/dist/domain/timezone.d.ts +61 -0
- package/dist/domain/timezone.d.ts.map +1 -0
- package/dist/domain/timezone.js +113 -0
- package/dist/domain/timezone.js.map +1 -0
- package/dist/domain/tool-result.d.ts +55 -0
- package/dist/domain/tool-result.d.ts.map +1 -0
- package/dist/domain/tool-result.js +47 -0
- package/dist/domain/tool-result.js.map +1 -0
- package/dist/domain/urls.d.ts +33 -0
- package/dist/domain/urls.d.ts.map +1 -0
- package/dist/domain/urls.js +20 -0
- package/dist/domain/urls.js.map +1 -0
- package/dist/gateway/PatrolTechGateway.d.ts +195 -0
- package/dist/gateway/PatrolTechGateway.d.ts.map +1 -0
- package/dist/gateway/PatrolTechGateway.js +2 -0
- package/dist/gateway/PatrolTechGateway.js.map +1 -0
- package/dist/gateway/index.d.ts +4 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +4 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts +145 -0
- package/dist/gateway/sdk/SdkPatrolTechGateway.d.ts.map +1 -0
- package/dist/gateway/sdk/SdkPatrolTechGateway.js +101 -0
- package/dist/gateway/sdk/SdkPatrolTechGateway.js.map +1 -0
- package/dist/gateway/sdk/access.d.ts +8 -0
- package/dist/gateway/sdk/access.d.ts.map +1 -0
- package/dist/gateway/sdk/access.js +39 -0
- package/dist/gateway/sdk/access.js.map +1 -0
- package/dist/gateway/sdk/billing.d.ts +7 -0
- package/dist/gateway/sdk/billing.d.ts.map +1 -0
- package/dist/gateway/sdk/billing.js +92 -0
- package/dist/gateway/sdk/billing.js.map +1 -0
- package/dist/gateway/sdk/checkpoint-mappers.d.ts +23 -0
- package/dist/gateway/sdk/checkpoint-mappers.d.ts.map +1 -0
- package/dist/gateway/sdk/checkpoint-mappers.js +59 -0
- package/dist/gateway/sdk/checkpoint-mappers.js.map +1 -0
- package/dist/gateway/sdk/checkpoints.d.ts +33 -0
- package/dist/gateway/sdk/checkpoints.d.ts.map +1 -0
- package/dist/gateway/sdk/checkpoints.js +163 -0
- package/dist/gateway/sdk/checkpoints.js.map +1 -0
- package/dist/gateway/sdk/errors.d.ts +10 -0
- package/dist/gateway/sdk/errors.d.ts.map +1 -0
- package/dist/gateway/sdk/errors.js +46 -0
- package/dist/gateway/sdk/errors.js.map +1 -0
- package/dist/gateway/sdk/incidents.d.ts +18 -0
- package/dist/gateway/sdk/incidents.d.ts.map +1 -0
- package/dist/gateway/sdk/incidents.js +98 -0
- package/dist/gateway/sdk/incidents.js.map +1 -0
- package/dist/gateway/sdk/index.d.ts +4 -0
- package/dist/gateway/sdk/index.d.ts.map +1 -0
- package/dist/gateway/sdk/index.js +4 -0
- package/dist/gateway/sdk/index.js.map +1 -0
- package/dist/gateway/sdk/list.d.ts +15 -0
- package/dist/gateway/sdk/list.d.ts.map +1 -0
- package/dist/gateway/sdk/list.js +12 -0
- package/dist/gateway/sdk/list.js.map +1 -0
- package/dist/gateway/sdk/locations.d.ts +24 -0
- package/dist/gateway/sdk/locations.d.ts.map +1 -0
- package/dist/gateway/sdk/locations.js +44 -0
- package/dist/gateway/sdk/locations.js.map +1 -0
- package/dist/gateway/sdk/patrollers.d.ts +26 -0
- package/dist/gateway/sdk/patrollers.d.ts.map +1 -0
- package/dist/gateway/sdk/patrollers.js +132 -0
- package/dist/gateway/sdk/patrollers.js.map +1 -0
- package/dist/gateway/sdk/rounds.d.ts +15 -0
- package/dist/gateway/sdk/rounds.d.ts.map +1 -0
- package/dist/gateway/sdk/rounds.js +142 -0
- package/dist/gateway/sdk/rounds.js.map +1 -0
- package/dist/gateway/sdk/routes.d.ts +18 -0
- package/dist/gateway/sdk/routes.d.ts.map +1 -0
- package/dist/gateway/sdk/routes.js +74 -0
- package/dist/gateway/sdk/routes.js.map +1 -0
- package/dist/gateway/sdk/scans.d.ts +4 -0
- package/dist/gateway/sdk/scans.d.ts.map +1 -0
- package/dist/gateway/sdk/scans.js +72 -0
- package/dist/gateway/sdk/scans.js.map +1 -0
- package/dist/gateway/sdk/transport.d.ts +77 -0
- package/dist/gateway/sdk/transport.d.ts.map +1 -0
- package/dist/gateway/sdk/transport.js +81 -0
- package/dist/gateway/sdk/transport.js.map +1 -0
- package/dist/gateway/sdk/users.d.ts +15 -0
- package/dist/gateway/sdk/users.d.ts.map +1 -0
- package/dist/gateway/sdk/users.js +49 -0
- package/dist/gateway/sdk/users.js.map +1 -0
- package/dist/gateway/types/access.d.ts +32 -0
- package/dist/gateway/types/access.d.ts.map +1 -0
- package/dist/gateway/types/access.js +2 -0
- package/dist/gateway/types/access.js.map +1 -0
- package/dist/gateway/types/billing.d.ts +60 -0
- package/dist/gateway/types/billing.d.ts.map +1 -0
- package/dist/gateway/types/billing.js +2 -0
- package/dist/gateway/types/billing.js.map +1 -0
- package/dist/gateway/types/checkpoints.d.ts +84 -0
- package/dist/gateway/types/checkpoints.d.ts.map +1 -0
- package/dist/gateway/types/checkpoints.js +2 -0
- package/dist/gateway/types/checkpoints.js.map +1 -0
- package/dist/gateway/types/common.d.ts +13 -0
- package/dist/gateway/types/common.d.ts.map +1 -0
- package/dist/gateway/types/common.js +2 -0
- package/dist/gateway/types/common.js.map +1 -0
- package/dist/gateway/types/incidents.d.ts +53 -0
- package/dist/gateway/types/incidents.d.ts.map +1 -0
- package/dist/gateway/types/incidents.js +2 -0
- package/dist/gateway/types/incidents.js.map +1 -0
- package/dist/gateway/types/index.d.ts +12 -0
- package/dist/gateway/types/index.d.ts.map +1 -0
- package/dist/gateway/types/index.js +12 -0
- package/dist/gateway/types/index.js.map +1 -0
- package/dist/gateway/types/locations.d.ts +7 -0
- package/dist/gateway/types/locations.d.ts.map +1 -0
- package/dist/gateway/types/locations.js +2 -0
- package/dist/gateway/types/locations.js.map +1 -0
- package/dist/gateway/types/patrollers.d.ts +68 -0
- package/dist/gateway/types/patrollers.d.ts.map +1 -0
- package/dist/gateway/types/patrollers.js +15 -0
- package/dist/gateway/types/patrollers.js.map +1 -0
- package/dist/gateway/types/rounds.d.ts +89 -0
- package/dist/gateway/types/rounds.d.ts.map +1 -0
- package/dist/gateway/types/rounds.js +2 -0
- package/dist/gateway/types/rounds.js.map +1 -0
- package/dist/gateway/types/routes.d.ts +48 -0
- package/dist/gateway/types/routes.d.ts.map +1 -0
- package/dist/gateway/types/routes.js +2 -0
- package/dist/gateway/types/routes.js.map +1 -0
- package/dist/gateway/types/scans.d.ts +44 -0
- package/dist/gateway/types/scans.d.ts.map +1 -0
- package/dist/gateway/types/scans.js +2 -0
- package/dist/gateway/types/scans.js.map +1 -0
- package/dist/gateway/types/users.d.ts +32 -0
- package/dist/gateway/types/users.d.ts.map +1 -0
- package/dist/gateway/types/users.js +2 -0
- package/dist/gateway/types/users.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/ports/FileSink.d.ts +20 -0
- package/dist/ports/FileSink.d.ts.map +1 -0
- package/dist/ports/FileSink.js +2 -0
- package/dist/ports/FileSink.js.map +1 -0
- package/dist/ports/Logger.d.ts +16 -0
- package/dist/ports/Logger.d.ts.map +1 -0
- package/dist/ports/Logger.js +7 -0
- package/dist/ports/Logger.js.map +1 -0
- package/dist/ports/PendingActionStore.d.ts +84 -0
- package/dist/ports/PendingActionStore.d.ts.map +1 -0
- package/dist/ports/PendingActionStore.js +16 -0
- package/dist/ports/PendingActionStore.js.map +1 -0
- package/dist/reads/access.d.ts +4 -0
- package/dist/reads/access.d.ts.map +1 -0
- package/dist/reads/access.js +129 -0
- package/dist/reads/access.js.map +1 -0
- package/dist/reads/checkpoints.d.ts +4 -0
- package/dist/reads/checkpoints.d.ts.map +1 -0
- package/dist/reads/checkpoints.js +152 -0
- package/dist/reads/checkpoints.js.map +1 -0
- package/dist/reads/files.d.ts +9 -0
- package/dist/reads/files.d.ts.map +1 -0
- package/dist/reads/files.js +222 -0
- package/dist/reads/files.js.map +1 -0
- package/dist/reads/incidents.d.ts +4 -0
- package/dist/reads/incidents.d.ts.map +1 -0
- package/dist/reads/incidents.js +164 -0
- package/dist/reads/incidents.js.map +1 -0
- package/dist/reads/index.d.ts +11 -0
- package/dist/reads/index.d.ts.map +1 -0
- package/dist/reads/index.js +51 -0
- package/dist/reads/index.js.map +1 -0
- package/dist/reads/onboarding.d.ts +4 -0
- package/dist/reads/onboarding.d.ts.map +1 -0
- package/dist/reads/onboarding.js +41 -0
- package/dist/reads/onboarding.js.map +1 -0
- package/dist/reads/organization.d.ts +26 -0
- package/dist/reads/organization.d.ts.map +1 -0
- package/dist/reads/organization.js +45 -0
- package/dist/reads/organization.js.map +1 -0
- package/dist/reads/patrollers.d.ts +4 -0
- package/dist/reads/patrollers.d.ts.map +1 -0
- package/dist/reads/patrollers.js +156 -0
- package/dist/reads/patrollers.js.map +1 -0
- package/dist/reads/plan.d.ts +4 -0
- package/dist/reads/plan.d.ts.map +1 -0
- package/dist/reads/plan.js +195 -0
- package/dist/reads/plan.js.map +1 -0
- package/dist/reads/rounds.d.ts +4 -0
- package/dist/reads/rounds.d.ts.map +1 -0
- package/dist/reads/rounds.js +160 -0
- package/dist/reads/rounds.js.map +1 -0
- package/dist/reads/routes.d.ts +4 -0
- package/dist/reads/routes.d.ts.map +1 -0
- package/dist/reads/routes.js +34 -0
- package/dist/reads/routes.js.map +1 -0
- package/dist/reads/support/access-locations.d.ts +22 -0
- package/dist/reads/support/access-locations.d.ts.map +1 -0
- package/dist/reads/support/access-locations.js +55 -0
- package/dist/reads/support/access-locations.js.map +1 -0
- package/dist/reads/support/excel.d.ts +10 -0
- package/dist/reads/support/excel.d.ts.map +1 -0
- package/dist/reads/support/excel.js +35 -0
- package/dist/reads/support/excel.js.map +1 -0
- package/dist/reads/support/params.d.ts +50 -0
- package/dist/reads/support/params.d.ts.map +1 -0
- package/dist/reads/support/params.js +73 -0
- package/dist/reads/support/params.js.map +1 -0
- package/dist/reads/support/resolve.d.ts +17 -0
- package/dist/reads/support/resolve.d.ts.map +1 -0
- package/dist/reads/support/resolve.js +33 -0
- package/dist/reads/support/resolve.js.map +1 -0
- package/dist/reads/support/results.d.ts +22 -0
- package/dist/reads/support/results.d.ts.map +1 -0
- package/dist/reads/support/results.js +41 -0
- package/dist/reads/support/results.js.map +1 -0
- package/dist/reads/support/roles.d.ts +13 -0
- package/dist/reads/support/roles.d.ts.map +1 -0
- package/dist/reads/support/roles.js +27 -0
- package/dist/reads/support/roles.js.map +1 -0
- package/dist/reads/support/scans.d.ts +31 -0
- package/dist/reads/support/scans.d.ts.map +1 -0
- package/dist/reads/support/scans.js +66 -0
- package/dist/reads/support/scans.js.map +1 -0
- package/dist/reads/types.d.ts +48 -0
- package/dist/reads/types.d.ts.map +1 -0
- package/dist/reads/types.js +5 -0
- package/dist/reads/types.js.map +1 -0
- package/dist/reads/users.d.ts +4 -0
- package/dist/reads/users.d.ts.map +1 -0
- package/dist/reads/users.js +57 -0
- package/dist/reads/users.js.map +1 -0
- package/dist/testing/FakePatrolTechGateway.d.ts +212 -0
- package/dist/testing/FakePatrolTechGateway.d.ts.map +1 -0
- package/dist/testing/FakePatrolTechGateway.js +712 -0
- package/dist/testing/FakePatrolTechGateway.js.map +1 -0
- package/dist/testing/RecordingFileSink.d.ts +12 -0
- package/dist/testing/RecordingFileSink.d.ts.map +1 -0
- package/dist/testing/RecordingFileSink.js +12 -0
- package/dist/testing/RecordingFileSink.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +4 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/reads.d.ts +34 -0
- package/dist/testing/reads.d.ts.map +1 -0
- package/dist/testing/reads.js +39 -0
- package/dist/testing/reads.js.map +1 -0
- package/package.json +76 -4
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createApiClient, sdkFetch } from '@patroltech/sdk-api';
|
|
2
|
+
import { toPatrolTechApiError } from './errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* La identidad de la petición la pone el token, nunca las cabeceras por defecto:
|
|
5
|
+
* se descarta cualquier `Authorization`, con la grafía que sea (si no, con otra
|
|
6
|
+
* mayúscula irían las dos y el servidor las uniría, o saldría una sin token).
|
|
7
|
+
*/
|
|
8
|
+
function sinAuthorization(headers) {
|
|
9
|
+
return Object.fromEntries(Object.entries(headers).filter(([name]) => !/^authorization$/i.test(name)));
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Una llamada a una función generada del SDK con su propia configuración (base, token, `fetch`,
|
|
13
|
+
* cabeceras sin `Authorization` y timeout): nada global. Un rechazo del backend sale como
|
|
14
|
+
* `PatrolTechApiError` (status, `path` y cuerpo), que entiende `translateBackendError`; un fallo
|
|
15
|
+
* de red o timeout, tal cual. Es lo que usa `SdkTransport` y lo que reutilizan los consumidores
|
|
16
|
+
* que llaman a operaciones del SDK fuera del gateway (el MCP: propuestas, directorio, hoja de QR).
|
|
17
|
+
* El timeout evita que una llamada colgada bloquee a quien procesa en serie.
|
|
18
|
+
*/
|
|
19
|
+
export async function callSdk(config, token, path, call) {
|
|
20
|
+
const { baseUrl, fetchImpl, timeoutMs, defaultHeaders } = config;
|
|
21
|
+
const client = createApiClient({
|
|
22
|
+
baseUrl,
|
|
23
|
+
fetchImpl,
|
|
24
|
+
defaultHeaders: defaultHeaders && (() => sinAuthorization(defaultHeaders())),
|
|
25
|
+
getAccessToken: () => token,
|
|
26
|
+
});
|
|
27
|
+
try {
|
|
28
|
+
return await call(client.init({ signal: AbortSignal.timeout(timeoutMs) }));
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
throw toPatrolTechApiError(err, path);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Único punto por el que pasan las llamadas al backend: cada una con su propia
|
|
36
|
+
* configuración del SDK (base, token, `fetch`; nada global, así un servidor
|
|
37
|
+
* multi-tenant no mezcla identidades), con timeout y con los errores traducidos
|
|
38
|
+
* a `PatrolTechApiError`.
|
|
39
|
+
*/
|
|
40
|
+
export class SdkTransport {
|
|
41
|
+
config;
|
|
42
|
+
constructor(config) {
|
|
43
|
+
this.config = config;
|
|
44
|
+
}
|
|
45
|
+
get logger() {
|
|
46
|
+
return this.config.logger;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* La respuesta entera (status, `data` y los demás campos del envelope).
|
|
50
|
+
* `token` null = endpoint público (sin cabecera `Authorization`). `path` solo
|
|
51
|
+
* nombra la ruta en el error.
|
|
52
|
+
*/
|
|
53
|
+
async envelope(token, path, call) {
|
|
54
|
+
// `sdkFetch` devuelve, además de lo tipado, el resto del envelope (`message`, `meta`…).
|
|
55
|
+
return (await callSdk(this.config, token, path, call));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* El payload (`data`) de la respuesta, con el tipo que el SDK genera del
|
|
59
|
+
* OpenAPI para su respuesta 2xx: sin genérico a mano ni cast.
|
|
60
|
+
*/
|
|
61
|
+
async data(token, path, call) {
|
|
62
|
+
return (await this.envelope(token, path, call)).data;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Endpoint o parámetro que el OpenAPI aún no describe (README, «Pending OpenAPI
|
|
66
|
+
* coverage»): misma vía del SDK (`sdkFetch` con la configuración de esta petición),
|
|
67
|
+
* con la URL completa construida por quien llama.
|
|
68
|
+
*/
|
|
69
|
+
async uncovered(token, method, url, body) {
|
|
70
|
+
// Sin tipo generado: `T` es el tipo local de la respuesta (README, «Untyped responses»).
|
|
71
|
+
const res = await this.envelope(token, url, (init) => sdkFetch(url, {
|
|
72
|
+
...init,
|
|
73
|
+
method,
|
|
74
|
+
...(body !== undefined
|
|
75
|
+
? { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) }
|
|
76
|
+
: {}),
|
|
77
|
+
}));
|
|
78
|
+
return res.data;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/gateway/sdk/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAuCnD;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAA+B;IACvD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAqB,EACrB,KAAoB,EACpB,IAAY,EACZ,IAA0C;IAE1C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,OAAO;QACP,SAAS;QACT,cAAc,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5E,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CACZ,KAAoB,EACpB,IAAY,EACZ,IAAgB;QAEhB,wFAAwF;QACxF,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAA0B,CAAC;IAClF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CACR,KAAoB,EACpB,IAAY,EACZ,IAAgB;QAEhB,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAsB,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAI,KAAa,EAAE,MAAkB,EAAE,GAAW,EAAE,IAAc;QAC/E,yFAAyF;QACzF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CACnD,QAAQ,CAAc,GAAG,EAAE;YACzB,GAAG,IAAI;YACP,MAAM;YACN,GAAG,CAAC,IAAI,KAAK,SAAS;gBACpB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CACH,CAAC;QACF,OAAO,GAAG,CAAC,IAAS,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AlertChannel, AlertType, InviteResult, NewOrgUser, OrgUser } from '../types/index.js';
|
|
2
|
+
import type { SdkTransport } from './transport.js';
|
|
3
|
+
export declare function setAlertPreference(t: SdkTransport, input: {
|
|
4
|
+
tipo: AlertType;
|
|
5
|
+
canal: AlertChannel;
|
|
6
|
+
activar: boolean;
|
|
7
|
+
}, token: string): Promise<void>;
|
|
8
|
+
export declare function listOrgUsers(t: SdkTransport, accountId: string, token: string): Promise<OrgUser[]>;
|
|
9
|
+
export declare function inviteUser(t: SdkTransport, input: NewOrgUser, token: string): Promise<InviteResult>;
|
|
10
|
+
export declare function updateUserRole(t: SdkTransport, input: {
|
|
11
|
+
userRoleId: string;
|
|
12
|
+
roleType: 'VIEWER' | 'EDITOR' | 'ADMIN';
|
|
13
|
+
}, token: string): Promise<void>;
|
|
14
|
+
export declare function deleteUserRole(t: SdkTransport, userRoleId: string, token: string): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/gateway/sdk/users.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,YAAY,EACf,KAAK,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EACjE,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,YAAY,CAChC,CAAC,EAAE,YAAY,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,EAAE,CAAC,CAgBpB;AAED,wBAAsB,UAAU,CAC9B,CAAC,EAAE,YAAY,EACf,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAgBvB;AAED,wBAAsB,cAAc,CAClC,CAAC,EAAE,YAAY,EACf,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,EACtE,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,cAAc,CAClC,CAAC,EAAE,YAAY,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createOrganizationUser, deleteUserRole as sdkDeleteUserRole, getCreateOrganizationUserUrl, getDeleteUserRoleUrl, getGetOrganizationUsersUrl, getOrganizationUsers, getUpdateUserPreferencesUrl, getUpdateUserRoleUrl, updateUserPreferences, updateUserRole as sdkUpdateUserRole, } from '@patroltech/sdk-api';
|
|
2
|
+
export async function setAlertPreference(t, input, token) {
|
|
3
|
+
// El backend fusiona `channels` tipo a tipo y canal a canal con lo guardado:
|
|
4
|
+
// mandar solo el que cambia no toca el resto.
|
|
5
|
+
const body = {
|
|
6
|
+
notificationPreferences: { channels: { [input.tipo]: { [input.canal]: input.activar } } },
|
|
7
|
+
};
|
|
8
|
+
await t.envelope(token, getUpdateUserPreferencesUrl(), (init) => updateUserPreferences(body, init));
|
|
9
|
+
}
|
|
10
|
+
export async function listOrgUsers(t, accountId, token) {
|
|
11
|
+
const params = { organizationId: accountId };
|
|
12
|
+
const body = await t.data(token, getGetOrganizationUsersUrl(params), (init) => getOrganizationUsers(params, init));
|
|
13
|
+
return body.results.map((u) => ({
|
|
14
|
+
id: u.id,
|
|
15
|
+
nombre: u.name,
|
|
16
|
+
email: u.email,
|
|
17
|
+
roles: (u.UserRoles ?? []).map((r) => ({
|
|
18
|
+
id: r.id,
|
|
19
|
+
rol: r.roleType,
|
|
20
|
+
ambito: r.roleScope,
|
|
21
|
+
scopeId: r.scopeId,
|
|
22
|
+
})),
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
export async function inviteUser(t, input, token) {
|
|
26
|
+
// Campos uno a uno (nunca un spread): el backend usaría un `id` para crear el usuario.
|
|
27
|
+
const body = {
|
|
28
|
+
organizationId: input.organizationId,
|
|
29
|
+
name: input.name,
|
|
30
|
+
email: input.email,
|
|
31
|
+
roleType: input.roleType,
|
|
32
|
+
roleScope: input.roleScope,
|
|
33
|
+
...(input.roleScope === 'LOCATION' && input.locationId ? { locationId: input.locationId } : {}),
|
|
34
|
+
};
|
|
35
|
+
// `data` es null: lo que importa va en el envelope. `meta.emailSent` solo viene con una cuenta nueva.
|
|
36
|
+
const res = await t.envelope(token, getCreateOrganizationUserUrl(), (init) => createOrganizationUser(body, init));
|
|
37
|
+
const emailSent = res.meta?.emailSent;
|
|
38
|
+
return { cuentaNueva: typeof emailSent === 'boolean', emailEnviado: emailSent !== false };
|
|
39
|
+
}
|
|
40
|
+
export async function updateUserRole(t, input, token) {
|
|
41
|
+
// Solo `roleType`: el backend saca la organización del propio rol, no del body.
|
|
42
|
+
const id = input.userRoleId;
|
|
43
|
+
await t.envelope(token, getUpdateUserRoleUrl(id), (init) => sdkUpdateUserRole(id, { roleType: input.roleType }, init));
|
|
44
|
+
}
|
|
45
|
+
export async function deleteUserRole(t, userRoleId, token) {
|
|
46
|
+
const id = userRoleId;
|
|
47
|
+
await t.envelope(token, getDeleteUserRoleUrl(id), (init) => sdkDeleteUserRole(id, init));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/gateway/sdk/users.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type AccessType = 'ENTRY' | 'EXIT';
|
|
2
|
+
/** Filtros de `GET …/access-logs`; `desde`/`hasta` en ISO UTC. El backend exige la ubicación. */
|
|
3
|
+
export interface AccessLogQuery {
|
|
4
|
+
locationId: string;
|
|
5
|
+
zona?: string;
|
|
6
|
+
tipo?: AccessType;
|
|
7
|
+
desde?: string;
|
|
8
|
+
hasta?: string;
|
|
9
|
+
/** 1-based. */
|
|
10
|
+
page?: number;
|
|
11
|
+
/** Máximo 100 (el backend rechaza más). */
|
|
12
|
+
limit?: number;
|
|
13
|
+
}
|
|
14
|
+
/** Un registro del Control de Acceso. `oculto` = la retención del plan ha borrado sus datos personales. */
|
|
15
|
+
export interface AccessLogEntry {
|
|
16
|
+
id: string;
|
|
17
|
+
locationId: string;
|
|
18
|
+
zona: string | null;
|
|
19
|
+
tipo: AccessType;
|
|
20
|
+
fecha: string;
|
|
21
|
+
/** Persona autorizada (de la lista del panel). */
|
|
22
|
+
persona: string | null;
|
|
23
|
+
identificadorPersona: string | null;
|
|
24
|
+
visitante: string | null;
|
|
25
|
+
/** Documento del visitante: solo va al Excel, nunca al texto del chat. */
|
|
26
|
+
documentoVisitante: string | null;
|
|
27
|
+
empresaVisitante: string | null;
|
|
28
|
+
destino: string | null;
|
|
29
|
+
notas: string | null;
|
|
30
|
+
oculto: boolean;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/access.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1C,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2GAA2G;AAC3G,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,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;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/gateway/types/access.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** Uso frente a los límites del plan. Límite null = sin tope. */
|
|
2
|
+
export interface PlanUsage {
|
|
3
|
+
plan: string;
|
|
4
|
+
estadoLicencia: string;
|
|
5
|
+
/**
|
|
6
|
+
* true = la organización ya paga una suscripción. null si no se sabe: el
|
|
7
|
+
* contrato público no lo expone, así que `SdkPatrolTechGateway` siempre da
|
|
8
|
+
* null y quien pide un checkout recibe del backend `ALREADY_SUBSCRIBED`.
|
|
9
|
+
*/
|
|
10
|
+
pagaSuscripcion: boolean | null;
|
|
11
|
+
/** null si el backend no pudo calcular el consumo. */
|
|
12
|
+
uso: {
|
|
13
|
+
checkpoints: {
|
|
14
|
+
usados: number;
|
|
15
|
+
incluidos: number | null;
|
|
16
|
+
extraFacturados: number;
|
|
17
|
+
};
|
|
18
|
+
ubicaciones: {
|
|
19
|
+
usadas: number;
|
|
20
|
+
limite: number | null;
|
|
21
|
+
};
|
|
22
|
+
gestores: {
|
|
23
|
+
usados: number;
|
|
24
|
+
limite: number | null;
|
|
25
|
+
};
|
|
26
|
+
} | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Plan de pago del catálogo (`GET /api/payments/prices`), con los importes ya
|
|
30
|
+
* en la moneda de la organización (la misma con la que cobrará el checkout).
|
|
31
|
+
*/
|
|
32
|
+
export interface PaidPlan {
|
|
33
|
+
tierId: string;
|
|
34
|
+
nombre: string;
|
|
35
|
+
/** Identificador del tier: `pro` o `business`. */
|
|
36
|
+
identificador: string;
|
|
37
|
+
/** `EUR` o `USD`. */
|
|
38
|
+
moneda: string;
|
|
39
|
+
checkpointsIncluidos: number;
|
|
40
|
+
/** Importes en unidades de la moneda (no céntimos); `extra` es cada checkpoint por encima de los incluidos. */
|
|
41
|
+
mensual: {
|
|
42
|
+
base: number;
|
|
43
|
+
extra: number;
|
|
44
|
+
};
|
|
45
|
+
anual: {
|
|
46
|
+
base: number;
|
|
47
|
+
extra: number;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export type BillingInterval = 'month' | 'year';
|
|
51
|
+
/** `POST /api/payments/checkout-session`: a dónde vuelve el cliente al pagar o al cancelar. */
|
|
52
|
+
export interface CheckoutLinkInput {
|
|
53
|
+
tierId: string;
|
|
54
|
+
interval: BillingInterval;
|
|
55
|
+
successUrl: string;
|
|
56
|
+
cancelUrl: string;
|
|
57
|
+
/** País ISO-2 del cliente: el backend lo usa para la moneda (manda sobre la IP de quien llama). */
|
|
58
|
+
country?: string | null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/billing.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,sDAAsD;IACtD,GAAG,EAAE;QACH,WAAW,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;QACnF,WAAW,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QACvD,QAAQ,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;KACrD,GAAG,IAAI,CAAC;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/C,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/gateway/types/billing.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { ListaTruncable } from './common.js';
|
|
2
|
+
/**
|
|
3
|
+
* Checkpoint con lo necesario para filtrar y reenviar su QR. `codigo` solo
|
|
4
|
+
* viene si el usuario es EDITOR de esa ubicación: a un VIEWER el backend se lo
|
|
5
|
+
* oculta (`[redacted]`), y entonces es null.
|
|
6
|
+
*/
|
|
7
|
+
export interface CheckpointRef {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
locationId: string;
|
|
11
|
+
locationName: string;
|
|
12
|
+
/** Tipo del método de verificación (`qr_static`, `manual_code`, `nfc_sun`…); null si no tiene. */
|
|
13
|
+
metodo: string | null;
|
|
14
|
+
codigo: string | null;
|
|
15
|
+
/** Primer escaneo del checkpoint (ISO); null = nunca escaneado. Ausente si el backend no lo informa. */
|
|
16
|
+
primerEscaneo?: string | null;
|
|
17
|
+
/** Código de 8 caracteres de la columna «Identificador» del panel; ausente si el backend no lo informa. */
|
|
18
|
+
identificador?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CheckpointRefsResult extends ListaTruncable<CheckpointRef> {
|
|
21
|
+
ubicacionesConError: number;
|
|
22
|
+
}
|
|
23
|
+
/** Reglas antifraude de un checkpoint (`fraudRules`, backend `fraud-detection/domain/FraudTypes.ts`). Sin una regla = desactivada. */
|
|
24
|
+
export interface CheckpointFraudRules {
|
|
25
|
+
gpsProximity?: {
|
|
26
|
+
maxDistanceMeters: number;
|
|
27
|
+
maxAccuracyMeters?: number;
|
|
28
|
+
};
|
|
29
|
+
undergroundMode?: {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Posición y reglas antifraude de un checkpoint, para leerlas antes de cambiarlas. */
|
|
34
|
+
export interface CheckpointDetail {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
locationId: string;
|
|
38
|
+
metodo: string | null;
|
|
39
|
+
latitud: number | null;
|
|
40
|
+
longitud: number | null;
|
|
41
|
+
reglasAntifraude: CheckpointFraudRules;
|
|
42
|
+
/** Reglas guardadas que el bot no conoce: si hay alguna, no se reescriben desde el bot. */
|
|
43
|
+
reglasDesconocidas: string[];
|
|
44
|
+
}
|
|
45
|
+
/** Punto de control configurado en la organización, con su ubicación. */
|
|
46
|
+
export interface CheckpointInfo {
|
|
47
|
+
/** El que piden las herramientas que actúan sobre checkpoints concretos (p. ej. la hoja de QR). */
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
locationName: string | null;
|
|
51
|
+
identificador?: string;
|
|
52
|
+
}
|
|
53
|
+
/** Checkpoints de la organización, con las ubicaciones que no se pudieron leer. */
|
|
54
|
+
export interface CheckpointsResult extends ListaTruncable<CheckpointInfo> {
|
|
55
|
+
/** Nº de ubicaciones cuya consulta falló: sus checkpoints NO están en la lista. */
|
|
56
|
+
ubicacionesConError: number;
|
|
57
|
+
}
|
|
58
|
+
/** Método de verificación con el que se crea un checkpoint desde el bot (el código lo genera el servidor). */
|
|
59
|
+
export type CheckpointMethod = 'qr_static' | 'manual_code';
|
|
60
|
+
/** Checkpoint tal como lo devuelve el alta (o la búsqueda que la recupera tras un fallo). */
|
|
61
|
+
export interface CreatedCheckpoint {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
locationId: string;
|
|
65
|
+
metodo: string | null;
|
|
66
|
+
/** El código que va en el QR o que se teclea; null si el backend no lo muestra. */
|
|
67
|
+
codigo: string | null;
|
|
68
|
+
/** ISO; null si el backend no lo informa. */
|
|
69
|
+
creadoEn: string | null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Ruta de la que se quitó un checkpoint al archivarlo (`affectedRoutes` de
|
|
73
|
+
* `POST /api/checkpoints/:id/archive`): el backend desactiva la que se queda
|
|
74
|
+
* sin checkpoints.
|
|
75
|
+
*/
|
|
76
|
+
export interface ArchivedCheckpointRoute {
|
|
77
|
+
id: string;
|
|
78
|
+
name: string;
|
|
79
|
+
/** No le queda ningún checkpoint. */
|
|
80
|
+
leftEmpty: boolean;
|
|
81
|
+
/** Estaba activa y el archivado la ha desactivado por quedarse vacía. */
|
|
82
|
+
deactivated: boolean;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=checkpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/checkpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2GAA2G;IAC3G,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,aAAa,CAAC;IACzE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,sIAAsI;AACtI,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACxC;AAED,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,2FAA2F;IAC3F,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,mGAAmG;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,8GAA8G;AAC9G,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3D,6FAA6F;AAC7F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mFAAmF;IACnF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../../../src/gateway/types/checkpoints.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lista que el cliente puede haber capado (para no disparar peticiones ni
|
|
3
|
+
* tokens sin límite). `truncado` es la señal honesta de que hay más datos de
|
|
4
|
+
* los devueltos: sin ella el modelo afirmaba totales y ausencias sobre 100 de
|
|
5
|
+
* 3.000 escaneos.
|
|
6
|
+
*/
|
|
7
|
+
export interface ListaTruncable<T> {
|
|
8
|
+
items: T[];
|
|
9
|
+
/** Total que informa el backend, cuando lo informa. */
|
|
10
|
+
total?: number;
|
|
11
|
+
truncado: boolean;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/gateway/types/common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IncidentStatus } from '../../domain/incident-status.js';
|
|
2
|
+
/** Incidencia tal como la lista el backend. `titulo` es null si la oculta la retención del plan. */
|
|
3
|
+
export interface IncidentRef {
|
|
4
|
+
id: string;
|
|
5
|
+
titulo: string | null;
|
|
6
|
+
estado: IncidentStatus;
|
|
7
|
+
prioridad: string;
|
|
8
|
+
locationId: string | null;
|
|
9
|
+
asignadoAId: string | null;
|
|
10
|
+
asignadoA: string | null;
|
|
11
|
+
creadaEn: string;
|
|
12
|
+
}
|
|
13
|
+
/** A qué incidencia va una escritura: el `locationId` da el rol de ubicación y el `organizationId` el gate de la App. */
|
|
14
|
+
export interface IncidentTarget {
|
|
15
|
+
incidentId: string;
|
|
16
|
+
organizationId: string;
|
|
17
|
+
locationId: string | null;
|
|
18
|
+
}
|
|
19
|
+
/** Una entrada del historial de una incidencia (`tipo` es el del backend: CREATED, STATUS_CHANGE, COMMENT…). */
|
|
20
|
+
export interface IncidentTimelineEntry {
|
|
21
|
+
tipo: string;
|
|
22
|
+
autor: string | null;
|
|
23
|
+
texto: string | null;
|
|
24
|
+
/** Valor anterior y nuevo en los cambios (estado, prioridad, asignación…). */
|
|
25
|
+
antes: string | null;
|
|
26
|
+
despues: string | null;
|
|
27
|
+
fecha: string;
|
|
28
|
+
/** Lleva una foto o un vídeo enlazado (la URL no se guarda). */
|
|
29
|
+
conAdjunto: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Detalle de una incidencia. `oculta` = la retención del plan ya no conserva sus datos. */
|
|
32
|
+
export interface IncidentDetail {
|
|
33
|
+
id: string;
|
|
34
|
+
oculta: boolean;
|
|
35
|
+
titulo: string | null;
|
|
36
|
+
descripcion: string | null;
|
|
37
|
+
estado: IncidentStatus;
|
|
38
|
+
prioridad: string;
|
|
39
|
+
categoria: string | null;
|
|
40
|
+
subcategoria: string | null;
|
|
41
|
+
reportadaPor: string | null;
|
|
42
|
+
asignadaA: string | null;
|
|
43
|
+
locationId: string | null;
|
|
44
|
+
creadaEn: string;
|
|
45
|
+
resueltaEn: string | null;
|
|
46
|
+
cerradaEn: string | null;
|
|
47
|
+
/** Nombres de los checkpoints vinculados. */
|
|
48
|
+
checkpoints: string[];
|
|
49
|
+
timeline: IncidentTimelineEntry[];
|
|
50
|
+
fotos: number;
|
|
51
|
+
videos: number;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=incidents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incidents.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/incidents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,oGAAoG;AACpG,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yHAAyH;AACzH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,gHAAgH;AAChH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incidents.js","sourceRoot":"","sources":["../../../src/gateway/types/incidents.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './common.js';
|
|
2
|
+
export * from './rounds.js';
|
|
3
|
+
export * from './checkpoints.js';
|
|
4
|
+
export * from './routes.js';
|
|
5
|
+
export * from './patrollers.js';
|
|
6
|
+
export * from './incidents.js';
|
|
7
|
+
export * from './users.js';
|
|
8
|
+
export * from './locations.js';
|
|
9
|
+
export * from './billing.js';
|
|
10
|
+
export * from './access.js';
|
|
11
|
+
export * from './scans.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './common.js';
|
|
2
|
+
export * from './rounds.js';
|
|
3
|
+
export * from './checkpoints.js';
|
|
4
|
+
export * from './routes.js';
|
|
5
|
+
export * from './patrollers.js';
|
|
6
|
+
export * from './incidents.js';
|
|
7
|
+
export * from './users.js';
|
|
8
|
+
export * from './locations.js';
|
|
9
|
+
export * from './billing.js';
|
|
10
|
+
export * from './access.js';
|
|
11
|
+
export * from './scans.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/locations.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations.js","sourceRoot":"","sources":["../../../src/gateway/types/locations.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export interface PatrollerActivity {
|
|
2
|
+
name: string;
|
|
3
|
+
lastScanAt: string | null;
|
|
4
|
+
status: 'active' | 'inactive' | 'alert';
|
|
5
|
+
}
|
|
6
|
+
export interface PatrollerRef {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
/** Identificador corto (8 hex) con el que el enlace de la app preselecciona al vigilante. */
|
|
10
|
+
identifier: string;
|
|
11
|
+
lastScanAt: string | null;
|
|
12
|
+
}
|
|
13
|
+
export type PatrollerStatsResult = {
|
|
14
|
+
found: true;
|
|
15
|
+
name: string;
|
|
16
|
+
totalScans: number;
|
|
17
|
+
roundsCompleted: number;
|
|
18
|
+
totalRounds: number;
|
|
19
|
+
completionRate: number;
|
|
20
|
+
avgTimeBetweenScans: number | null;
|
|
21
|
+
incidentsReported?: number;
|
|
22
|
+
incidentsOpen?: number;
|
|
23
|
+
/** Antes de esta fecha (UTC) la retención de datos ya no deja ver el detalle; `null`, ilimitada. */
|
|
24
|
+
retentionCutoff?: string | null;
|
|
25
|
+
} | {
|
|
26
|
+
found: false;
|
|
27
|
+
opciones: string[];
|
|
28
|
+
/** El nombre casaba con varios vigilantes: hay que elegir. */ ambigua?: boolean;
|
|
29
|
+
};
|
|
30
|
+
/** Entrada del ranking de vigilantes de la organización (ya viene ordenado de mejor a peor). */
|
|
31
|
+
export interface PatrollerRankingEntry {
|
|
32
|
+
patrollerName: string;
|
|
33
|
+
totalScans: number;
|
|
34
|
+
roundsCompleted: number;
|
|
35
|
+
completionRate: number;
|
|
36
|
+
avgTimeBetweenScans: number | null;
|
|
37
|
+
}
|
|
38
|
+
/** Ranking de vigilantes de la organización, con resumen del equipo y checkpoints más escaneados. */
|
|
39
|
+
export interface PatrollerRanking {
|
|
40
|
+
summary: {
|
|
41
|
+
totalScans: number;
|
|
42
|
+
activePatrollers: number;
|
|
43
|
+
avgScansPerPatroller: number;
|
|
44
|
+
bestCompletionRate: number;
|
|
45
|
+
};
|
|
46
|
+
ranking: PatrollerRankingEntry[];
|
|
47
|
+
topCheckpoints: {
|
|
48
|
+
checkpointName: string;
|
|
49
|
+
totalScans: number;
|
|
50
|
+
}[];
|
|
51
|
+
/** true si el ranking o los checkpoints top se han recortado. */
|
|
52
|
+
truncado: boolean;
|
|
53
|
+
/** El periodo nunca empieza antes de esta fecha (UTC), por la retención de datos; `null`, ilimitada. */
|
|
54
|
+
retentionCutoff?: string | null;
|
|
55
|
+
}
|
|
56
|
+
/** Vigilante tal como lo devuelve el alta o `GET /api/patrollers/identifier/:identifier`. */
|
|
57
|
+
export interface CreatedPatroller {
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
identifier: string;
|
|
61
|
+
organizationId: string;
|
|
62
|
+
}
|
|
63
|
+
/** Tipos de alerta que el usuario puede configurar (`userConfigurable` en el AlertTypeRegistry del backend). */
|
|
64
|
+
export declare const ALERT_TYPES: readonly ["pending_route", "missed_route", "upcoming_deadline", "patroller_inactive", "suspicious_scan", "role_assignment", "incident_created", "incident_status_changed", "incident_assigned", "incident_comment"];
|
|
65
|
+
export type AlertType = (typeof ALERT_TYPES)[number];
|
|
66
|
+
export declare const ALERT_CHANNELS: readonly ["email", "push", "whatsapp"];
|
|
67
|
+
export type AlertChannel = (typeof ALERT_CHANNELS)[number];
|
|
68
|
+
//# sourceMappingURL=patrollers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patrollers.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/patrollers.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACD;IACE,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClF,CAAC;AAEN,gGAAgG;AAChG,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,qGAAqG;AACrG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,cAAc,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAC;IAClB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,gHAAgH;AAChH,eAAO,MAAM,WAAW,qNAWd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,eAAO,MAAM,cAAc,wCAAyC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Tipos de alerta que el usuario puede configurar (`userConfigurable` en el AlertTypeRegistry del backend). */
|
|
2
|
+
export const ALERT_TYPES = [
|
|
3
|
+
'pending_route',
|
|
4
|
+
'missed_route',
|
|
5
|
+
'upcoming_deadline',
|
|
6
|
+
'patroller_inactive',
|
|
7
|
+
'suspicious_scan',
|
|
8
|
+
'role_assignment',
|
|
9
|
+
'incident_created',
|
|
10
|
+
'incident_status_changed',
|
|
11
|
+
'incident_assigned',
|
|
12
|
+
'incident_comment',
|
|
13
|
+
];
|
|
14
|
+
export const ALERT_CHANNELS = ['email', 'push', 'whatsapp'];
|
|
15
|
+
//# sourceMappingURL=patrollers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patrollers.js","sourceRoot":"","sources":["../../../src/gateway/types/patrollers.ts"],"names":[],"mappings":"AAmEA,gHAAgH;AAChH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,yBAAyB;IACzB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC"}
|