grm-shared-library 1.1.237 → 1.1.239

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 (234) hide show
  1. package/README.md +369 -369
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/kafka/topics.js +11 -0
  5. package/dist/cjs/kafka/topics.js.map +1 -1
  6. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-defaults.const.js +1 -0
  7. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-defaults.const.js.map +1 -1
  8. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js +5 -0
  9. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js.map +1 -1
  10. package/dist/cjs/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js +1 -0
  11. package/dist/cjs/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js.map +1 -1
  12. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-status.enum.js +6 -0
  13. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-status.enum.js.map +1 -1
  14. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js +3 -1
  15. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js.map +1 -1
  16. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-status.util.js +6 -2
  17. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-status.util.js.map +1 -1
  18. package/dist/cjs/modules/incident/enums/incident-actions.enum.js +4 -0
  19. package/dist/cjs/modules/incident/enums/incident-actions.enum.js.map +1 -1
  20. package/dist/cjs/modules/incident-sla/constants/emergency-incident-workflow.const.js +53 -0
  21. package/dist/cjs/modules/incident-sla/constants/emergency-incident-workflow.const.js.map +1 -0
  22. package/dist/cjs/modules/incident-sla/constants/incident-sla-defaults.const.js +258 -0
  23. package/dist/cjs/modules/incident-sla/constants/incident-sla-defaults.const.js.map +1 -0
  24. package/dist/cjs/modules/incident-sla/constants/incident-sla-kafka.const.js +27 -0
  25. package/dist/cjs/modules/incident-sla/constants/incident-sla-kafka.const.js.map +1 -0
  26. package/dist/cjs/modules/incident-sla/dtos/emergency-notification.dto.js +419 -0
  27. package/dist/cjs/modules/incident-sla/dtos/emergency-notification.dto.js.map +1 -0
  28. package/dist/cjs/modules/incident-sla/dtos/emergency-operations.dto.js +155 -0
  29. package/dist/cjs/modules/incident-sla/dtos/emergency-operations.dto.js.map +1 -0
  30. package/dist/cjs/modules/incident-sla/dtos/emergency-workflow.dto.js +216 -0
  31. package/dist/cjs/modules/incident-sla/dtos/emergency-workflow.dto.js.map +1 -0
  32. package/dist/cjs/modules/incident-sla/dtos/incident-sla-analytics-query.dto.js +95 -0
  33. package/dist/cjs/modules/incident-sla/dtos/incident-sla-analytics-query.dto.js.map +1 -0
  34. package/dist/cjs/modules/incident-sla/dtos/incident-sla-policy.dto.js +509 -0
  35. package/dist/cjs/modules/incident-sla/dtos/incident-sla-policy.dto.js.map +1 -0
  36. package/dist/cjs/modules/incident-sla/enums/emergency-incident-stage.enum.js +32 -0
  37. package/dist/cjs/modules/incident-sla/enums/emergency-incident-stage.enum.js.map +1 -0
  38. package/dist/cjs/modules/incident-sla/enums/emergency-notification.enum.js +44 -0
  39. package/dist/cjs/modules/incident-sla/enums/emergency-notification.enum.js.map +1 -0
  40. package/dist/cjs/modules/incident-sla/enums/eta-status.enum.js +32 -0
  41. package/dist/cjs/modules/incident-sla/enums/eta-status.enum.js.map +1 -0
  42. package/dist/cjs/modules/incident-sla/enums/incident-closure.enum.js +23 -0
  43. package/dist/cjs/modules/incident-sla/enums/incident-closure.enum.js.map +1 -0
  44. package/dist/cjs/modules/incident-sla/enums/incident-sla-actor.enum.js +46 -0
  45. package/dist/cjs/modules/incident-sla/enums/incident-sla-actor.enum.js.map +1 -0
  46. package/dist/cjs/modules/incident-sla/enums/incident-sla-error-code.enum.js +26 -0
  47. package/dist/cjs/modules/incident-sla/enums/incident-sla-error-code.enum.js.map +1 -0
  48. package/dist/cjs/modules/incident-sla/enums/incident-sla-event-type.enum.js +45 -0
  49. package/dist/cjs/modules/incident-sla/enums/incident-sla-event-type.enum.js.map +1 -0
  50. package/dist/cjs/modules/incident-sla/enums/incident-sla-stage.enum.js +26 -0
  51. package/dist/cjs/modules/incident-sla/enums/incident-sla-stage.enum.js.map +1 -0
  52. package/dist/cjs/modules/incident-sla/enums/incident-sla-status.enum.js +38 -0
  53. package/dist/cjs/modules/incident-sla/enums/incident-sla-status.enum.js.map +1 -0
  54. package/dist/cjs/modules/incident-sla/enums/sla-escalation.enum.js +50 -0
  55. package/dist/cjs/modules/incident-sla/enums/sla-escalation.enum.js.map +1 -0
  56. package/dist/cjs/modules/incident-sla/enums/sla-exception.enum.js +27 -0
  57. package/dist/cjs/modules/incident-sla/enums/sla-exception.enum.js.map +1 -0
  58. package/dist/cjs/modules/incident-sla/enums/sla-overall-state.enum.js +28 -0
  59. package/dist/cjs/modules/incident-sla/enums/sla-overall-state.enum.js.map +1 -0
  60. package/dist/cjs/modules/incident-sla/enums/sla-pause.enum.js +28 -0
  61. package/dist/cjs/modules/incident-sla/enums/sla-pause.enum.js.map +1 -0
  62. package/dist/cjs/modules/incident-sla/enums/sla-policy-scope.enum.js +19 -0
  63. package/dist/cjs/modules/incident-sla/enums/sla-policy-scope.enum.js.map +1 -0
  64. package/dist/cjs/modules/incident-sla/index.js +53 -0
  65. package/dist/cjs/modules/incident-sla/index.js.map +1 -0
  66. package/dist/cjs/modules/incident-sla/interfaces/emergency-workflow.js +3 -0
  67. package/dist/cjs/modules/incident-sla/interfaces/emergency-workflow.js.map +1 -0
  68. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-analytics.js +3 -0
  69. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-analytics.js.map +1 -0
  70. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-events.js +3 -0
  71. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-events.js.map +1 -0
  72. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-policy.js +3 -0
  73. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-policy.js.map +1 -0
  74. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-views.js +3 -0
  75. package/dist/cjs/modules/incident-sla/interfaces/incident-sla-views.js.map +1 -0
  76. package/dist/cjs/modules/incident-sla/utils/incident-sla-eta.util.js +40 -0
  77. package/dist/cjs/modules/incident-sla/utils/incident-sla-eta.util.js.map +1 -0
  78. package/dist/cjs/modules/incident-sla/utils/incident-sla-event-id.util.js +18 -0
  79. package/dist/cjs/modules/incident-sla/utils/incident-sla-event-id.util.js.map +1 -0
  80. package/dist/cjs/modules/incident-sla/utils/incident-sla-priority.util.js +31 -0
  81. package/dist/cjs/modules/incident-sla/utils/incident-sla-priority.util.js.map +1 -0
  82. package/dist/cjs/modules/incident-sla/utils/incident-sla-time.util.js +129 -0
  83. package/dist/cjs/modules/incident-sla/utils/incident-sla-time.util.js.map +1 -0
  84. package/dist/cjs/modules/permission/data/permissions.data.js +11 -0
  85. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  86. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +21 -0
  87. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  88. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  89. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  90. package/dist/cjs/modules/role/data/roles.data.js +37 -0
  91. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  92. package/dist/cjs/modules/sms/constants/sms-templates.config.js +27 -1
  93. package/dist/cjs/modules/sms/constants/sms-templates.config.js.map +1 -1
  94. package/dist/cjs/modules/sms/enums/sms-template.enum.js +2 -0
  95. package/dist/cjs/modules/sms/enums/sms-template.enum.js.map +1 -1
  96. package/dist/esm/index.js +1 -0
  97. package/dist/esm/index.js.map +1 -1
  98. package/dist/esm/kafka/topics.js +11 -0
  99. package/dist/esm/kafka/topics.js.map +1 -1
  100. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-defaults.const.js +1 -0
  101. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-defaults.const.js.map +1 -1
  102. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js +5 -0
  103. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js.map +1 -1
  104. package/dist/esm/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js +1 -0
  105. package/dist/esm/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js.map +1 -1
  106. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-status.enum.js +6 -0
  107. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-status.enum.js.map +1 -1
  108. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js +3 -1
  109. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js.map +1 -1
  110. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-status.util.js +6 -2
  111. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-status.util.js.map +1 -1
  112. package/dist/esm/modules/incident/enums/incident-actions.enum.js +4 -0
  113. package/dist/esm/modules/incident/enums/incident-actions.enum.js.map +1 -1
  114. package/dist/esm/modules/incident-sla/constants/emergency-incident-workflow.const.js +49 -0
  115. package/dist/esm/modules/incident-sla/constants/emergency-incident-workflow.const.js.map +1 -0
  116. package/dist/esm/modules/incident-sla/constants/incident-sla-defaults.const.js +255 -0
  117. package/dist/esm/modules/incident-sla/constants/incident-sla-defaults.const.js.map +1 -0
  118. package/dist/esm/modules/incident-sla/constants/incident-sla-kafka.const.js +24 -0
  119. package/dist/esm/modules/incident-sla/constants/incident-sla-kafka.const.js.map +1 -0
  120. package/dist/esm/modules/incident-sla/dtos/emergency-notification.dto.js +405 -0
  121. package/dist/esm/modules/incident-sla/dtos/emergency-notification.dto.js.map +1 -0
  122. package/dist/esm/modules/incident-sla/dtos/emergency-operations.dto.js +144 -0
  123. package/dist/esm/modules/incident-sla/dtos/emergency-operations.dto.js.map +1 -0
  124. package/dist/esm/modules/incident-sla/dtos/emergency-workflow.dto.js +206 -0
  125. package/dist/esm/modules/incident-sla/dtos/emergency-workflow.dto.js.map +1 -0
  126. package/dist/esm/modules/incident-sla/dtos/incident-sla-analytics-query.dto.js +91 -0
  127. package/dist/esm/modules/incident-sla/dtos/incident-sla-analytics-query.dto.js.map +1 -0
  128. package/dist/esm/modules/incident-sla/dtos/incident-sla-policy.dto.js +495 -0
  129. package/dist/esm/modules/incident-sla/dtos/incident-sla-policy.dto.js.map +1 -0
  130. package/dist/esm/modules/incident-sla/enums/emergency-incident-stage.enum.js +29 -0
  131. package/dist/esm/modules/incident-sla/enums/emergency-incident-stage.enum.js.map +1 -0
  132. package/dist/esm/modules/incident-sla/enums/emergency-notification.enum.js +41 -0
  133. package/dist/esm/modules/incident-sla/enums/emergency-notification.enum.js.map +1 -0
  134. package/dist/esm/modules/incident-sla/enums/eta-status.enum.js +29 -0
  135. package/dist/esm/modules/incident-sla/enums/eta-status.enum.js.map +1 -0
  136. package/dist/esm/modules/incident-sla/enums/incident-closure.enum.js +20 -0
  137. package/dist/esm/modules/incident-sla/enums/incident-closure.enum.js.map +1 -0
  138. package/dist/esm/modules/incident-sla/enums/incident-sla-actor.enum.js +43 -0
  139. package/dist/esm/modules/incident-sla/enums/incident-sla-actor.enum.js.map +1 -0
  140. package/dist/esm/modules/incident-sla/enums/incident-sla-error-code.enum.js +23 -0
  141. package/dist/esm/modules/incident-sla/enums/incident-sla-error-code.enum.js.map +1 -0
  142. package/dist/esm/modules/incident-sla/enums/incident-sla-event-type.enum.js +42 -0
  143. package/dist/esm/modules/incident-sla/enums/incident-sla-event-type.enum.js.map +1 -0
  144. package/dist/esm/modules/incident-sla/enums/incident-sla-stage.enum.js +23 -0
  145. package/dist/esm/modules/incident-sla/enums/incident-sla-stage.enum.js.map +1 -0
  146. package/dist/esm/modules/incident-sla/enums/incident-sla-status.enum.js +35 -0
  147. package/dist/esm/modules/incident-sla/enums/incident-sla-status.enum.js.map +1 -0
  148. package/dist/esm/modules/incident-sla/enums/sla-escalation.enum.js +47 -0
  149. package/dist/esm/modules/incident-sla/enums/sla-escalation.enum.js.map +1 -0
  150. package/dist/esm/modules/incident-sla/enums/sla-exception.enum.js +24 -0
  151. package/dist/esm/modules/incident-sla/enums/sla-exception.enum.js.map +1 -0
  152. package/dist/esm/modules/incident-sla/enums/sla-overall-state.enum.js +25 -0
  153. package/dist/esm/modules/incident-sla/enums/sla-overall-state.enum.js.map +1 -0
  154. package/dist/esm/modules/incident-sla/enums/sla-pause.enum.js +25 -0
  155. package/dist/esm/modules/incident-sla/enums/sla-pause.enum.js.map +1 -0
  156. package/dist/esm/modules/incident-sla/enums/sla-policy-scope.enum.js +16 -0
  157. package/dist/esm/modules/incident-sla/enums/sla-policy-scope.enum.js.map +1 -0
  158. package/dist/esm/modules/incident-sla/index.js +37 -0
  159. package/dist/esm/modules/incident-sla/index.js.map +1 -0
  160. package/dist/esm/modules/incident-sla/interfaces/emergency-workflow.js +2 -0
  161. package/dist/esm/modules/incident-sla/interfaces/emergency-workflow.js.map +1 -0
  162. package/dist/esm/modules/incident-sla/interfaces/incident-sla-analytics.js +2 -0
  163. package/dist/esm/modules/incident-sla/interfaces/incident-sla-analytics.js.map +1 -0
  164. package/dist/esm/modules/incident-sla/interfaces/incident-sla-events.js +2 -0
  165. package/dist/esm/modules/incident-sla/interfaces/incident-sla-events.js.map +1 -0
  166. package/dist/esm/modules/incident-sla/interfaces/incident-sla-policy.js +2 -0
  167. package/dist/esm/modules/incident-sla/interfaces/incident-sla-policy.js.map +1 -0
  168. package/dist/esm/modules/incident-sla/interfaces/incident-sla-views.js +2 -0
  169. package/dist/esm/modules/incident-sla/interfaces/incident-sla-views.js.map +1 -0
  170. package/dist/esm/modules/incident-sla/utils/incident-sla-eta.util.js +35 -0
  171. package/dist/esm/modules/incident-sla/utils/incident-sla-eta.util.js.map +1 -0
  172. package/dist/esm/modules/incident-sla/utils/incident-sla-event-id.util.js +14 -0
  173. package/dist/esm/modules/incident-sla/utils/incident-sla-event-id.util.js.map +1 -0
  174. package/dist/esm/modules/incident-sla/utils/incident-sla-priority.util.js +25 -0
  175. package/dist/esm/modules/incident-sla/utils/incident-sla-priority.util.js.map +1 -0
  176. package/dist/esm/modules/incident-sla/utils/incident-sla-time.util.js +119 -0
  177. package/dist/esm/modules/incident-sla/utils/incident-sla-time.util.js.map +1 -0
  178. package/dist/esm/modules/permission/data/permissions.data.js +11 -0
  179. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  180. package/dist/esm/modules/permission/enums/permission-actions.enum.js +21 -0
  181. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  182. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  183. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  184. package/dist/esm/modules/role/data/roles.data.js +37 -0
  185. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  186. package/dist/esm/modules/sms/constants/sms-templates.config.js +27 -1
  187. package/dist/esm/modules/sms/constants/sms-templates.config.js.map +1 -1
  188. package/dist/esm/modules/sms/enums/sms-template.enum.js +2 -0
  189. package/dist/esm/modules/sms/enums/sms-template.enum.js.map +1 -1
  190. package/dist/types/index.d.ts +1 -0
  191. package/dist/types/kafka/topics.d.ts +5 -0
  192. package/dist/types/modules/dispatch/dtos/response-unit-dispatch-notification.dto.d.ts +1 -0
  193. package/dist/types/modules/dispatch/enums/response-unit-dispatch-status.enum.d.ts +7 -1
  194. package/dist/types/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.d.ts +4 -2
  195. package/dist/types/modules/dispatch/interfaces/incident-response-unit-dispatch.d.ts +5 -0
  196. package/dist/types/modules/dispatch/interfaces/response-unit-dispatch-events.d.ts +2 -0
  197. package/dist/types/modules/dispatch/utils/response-unit-dispatch-status.util.d.ts +1 -1
  198. package/dist/types/modules/incident/enums/incident-actions.enum.d.ts +4 -0
  199. package/dist/types/modules/incident-sla/constants/emergency-incident-workflow.const.d.ts +46 -0
  200. package/dist/types/modules/incident-sla/constants/incident-sla-defaults.const.d.ts +81 -0
  201. package/dist/types/modules/incident-sla/constants/incident-sla-kafka.const.d.ts +22 -0
  202. package/dist/types/modules/incident-sla/dtos/emergency-notification.dto.d.ts +99 -0
  203. package/dist/types/modules/incident-sla/dtos/emergency-operations.dto.d.ts +52 -0
  204. package/dist/types/modules/incident-sla/dtos/emergency-workflow.dto.d.ts +55 -0
  205. package/dist/types/modules/incident-sla/dtos/incident-sla-analytics-query.dto.d.ts +23 -0
  206. package/dist/types/modules/incident-sla/dtos/incident-sla-policy.dto.d.ts +104 -0
  207. package/dist/types/modules/incident-sla/enums/emergency-incident-stage.enum.d.ts +27 -0
  208. package/dist/types/modules/incident-sla/enums/emergency-notification.enum.d.ts +37 -0
  209. package/dist/types/modules/incident-sla/enums/eta-status.enum.d.ts +26 -0
  210. package/dist/types/modules/incident-sla/enums/incident-closure.enum.d.ts +17 -0
  211. package/dist/types/modules/incident-sla/enums/incident-sla-actor.enum.d.ts +40 -0
  212. package/dist/types/modules/incident-sla/enums/incident-sla-error-code.enum.d.ts +21 -0
  213. package/dist/types/modules/incident-sla/enums/incident-sla-event-type.enum.d.ts +36 -0
  214. package/dist/types/modules/incident-sla/enums/incident-sla-stage.enum.d.ts +21 -0
  215. package/dist/types/modules/incident-sla/enums/incident-sla-status.enum.d.ts +33 -0
  216. package/dist/types/modules/incident-sla/enums/sla-escalation.enum.d.ts +42 -0
  217. package/dist/types/modules/incident-sla/enums/sla-exception.enum.d.ts +21 -0
  218. package/dist/types/modules/incident-sla/enums/sla-overall-state.enum.d.ts +22 -0
  219. package/dist/types/modules/incident-sla/enums/sla-pause.enum.d.ts +22 -0
  220. package/dist/types/modules/incident-sla/enums/sla-policy-scope.enum.d.ts +14 -0
  221. package/dist/types/modules/incident-sla/index.d.ts +31 -0
  222. package/dist/types/modules/incident-sla/interfaces/emergency-workflow.d.ts +131 -0
  223. package/dist/types/modules/incident-sla/interfaces/incident-sla-analytics.d.ts +356 -0
  224. package/dist/types/modules/incident-sla/interfaces/incident-sla-events.d.ts +173 -0
  225. package/dist/types/modules/incident-sla/interfaces/incident-sla-policy.d.ts +147 -0
  226. package/dist/types/modules/incident-sla/interfaces/incident-sla-views.d.ts +224 -0
  227. package/dist/types/modules/incident-sla/utils/incident-sla-eta.util.d.ts +15 -0
  228. package/dist/types/modules/incident-sla/utils/incident-sla-event-id.util.d.ts +8 -0
  229. package/dist/types/modules/incident-sla/utils/incident-sla-priority.util.d.ts +14 -0
  230. package/dist/types/modules/incident-sla/utils/incident-sla-time.util.d.ts +65 -0
  231. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +6 -0
  232. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  233. package/dist/types/modules/sms/enums/sms-template.enum.d.ts +2 -0
  234. package/package.json +72 -72
@@ -0,0 +1,224 @@
1
+ import { IncidentPriority } from '../../incident/enums/incident-priority.enum';
2
+ import { EmergencyIncidentStage } from '../enums/emergency-incident-stage.enum';
3
+ import { EtaBasis, EtaStatus } from '../enums/eta-status.enum';
4
+ import { IncidentArrivalSource, IncidentClosureReason } from '../enums/incident-closure.enum';
5
+ import { IncidentActorType, IncidentSlaEventSource } from '../enums/incident-sla-actor.enum';
6
+ import { IncidentSlaEventType } from '../enums/incident-sla-event-type.enum';
7
+ import { IncidentSlaStage } from '../enums/incident-sla-stage.enum';
8
+ import { IncidentSlaStatus } from '../enums/incident-sla-status.enum';
9
+ import { SlaEscalationTrigger } from '../enums/sla-escalation.enum';
10
+ import { SlaExceptionReason, SlaExceptionStatus } from '../enums/sla-exception.enum';
11
+ import { SlaOverallState, SlaPriorityLevel } from '../enums/sla-overall-state.enum';
12
+ import { SlaPauseReason, SlaPauseStatus } from '../enums/sla-pause.enum';
13
+ import { SlaPolicyScope } from '../enums/sla-policy-scope.enum';
14
+ import { IncidentSlaContributingPolicy } from './incident-sla-policy';
15
+ /** An approved, rejected or pending exception on one instance. */
16
+ export interface IncidentSlaExceptionView {
17
+ status: SlaExceptionStatus;
18
+ reason: SlaExceptionReason | null;
19
+ note: string | null;
20
+ requestedBy: number | null;
21
+ requestedAt: string | null;
22
+ decidedBy: number | null;
23
+ decidedAt: string | null;
24
+ decisionNote: string | null;
25
+ }
26
+ /** One SLA instance as the admin shows it. Times are ISO-8601; durations in seconds. */
27
+ export interface IncidentSlaInstanceView {
28
+ id: number;
29
+ stage: IncidentSlaStage;
30
+ /** 1 for incident-level stages; the dispatch's ordinal for per-dispatch stages. */
31
+ cycle: number;
32
+ responseUnitDispatchId: number | null;
33
+ responseUnitId: number | null;
34
+ responseUnitName: string | null;
35
+ priority: IncidentPriority;
36
+ status: IncidentSlaStatus;
37
+ targetSeconds: number | null;
38
+ startedAt: string | null;
39
+ /** Moves later by the length of each approved pause. */
40
+ deadlineAt: string | null;
41
+ /** The deadline before any pause. */
42
+ originalDeadlineAt: string | null;
43
+ warningAt: string | null;
44
+ atRiskAt: string | null;
45
+ warnedAt: string | null;
46
+ atRiskSince: string | null;
47
+ breachedAt: string | null;
48
+ completedAt: string | null;
49
+ endedAt: string | null;
50
+ endReason: string | null;
51
+ pausedAt: string | null;
52
+ totalPausedSeconds: number;
53
+ /** Time on the clock (pauses excluded): to completion, else to the server's now. */
54
+ elapsedSeconds: number | null;
55
+ /** Until the deadline at the server's now; negative = overdue. Null when not running. */
56
+ remainingSeconds: number | null;
57
+ /** How late it was (completed late) or is (still open past the deadline). */
58
+ overdueSeconds: number | null;
59
+ exception: IncidentSlaExceptionView | null;
60
+ waivedBy: number | null;
61
+ waivedAt: string | null;
62
+ waiveReason: string | null;
63
+ slaPolicyId: number | null;
64
+ slaPolicyVersion: number | null;
65
+ }
66
+ /** One milestone in the incident's response, for the SLA timeline. */
67
+ export interface IncidentSlaTimelineItem {
68
+ milestone: EmergencyIncidentStage;
69
+ state: 'DONE' | 'CURRENT' | 'PENDING' | 'SKIPPED';
70
+ /** When it was reached. */
71
+ at: string | null;
72
+ /** Recorded because a later milestone proved it (dispatching proves acknowledgement). */
73
+ implied: boolean;
74
+ actorType: IncidentActorType | null;
75
+ source: IncidentSlaEventSource | null;
76
+ /** The SLA stage that measures reaching this milestone, if any. */
77
+ stage: IncidentSlaStage | null;
78
+ slaStatus: IncidentSlaStatus | null;
79
+ /** The deadline for reaching it. */
80
+ targetAt: string | null;
81
+ /** Predicted (arrival only). */
82
+ etaAt: string | null;
83
+ arrivalSource: IncidentArrivalSource | null;
84
+ }
85
+ /** The incident's historical compliance, apart from its current state. */
86
+ export interface IncidentSlaStats {
87
+ total: number;
88
+ /** Instances with an outcome: MET or BREACHED. */
89
+ decided: number;
90
+ met: number;
91
+ breached: number;
92
+ breachedWithApprovedException: number;
93
+ open: number;
94
+ /** Instances that ever turned WARNING. */
95
+ warnings: number;
96
+ /** Instances that ever turned AT_RISK. */
97
+ atRisk: number;
98
+ /** met / decided, null with nothing decided. */
99
+ compliancePercent: number | null;
100
+ /** (met + breaches with an approved exception) / decided. */
101
+ complianceWithExceptionsPercent: number | null;
102
+ }
103
+ /** A dispatched unit's predicted arrival. */
104
+ export interface IncidentEtaView {
105
+ dispatchId: number;
106
+ responseUnitId: number;
107
+ responseUnitName: string | null;
108
+ status: EtaStatus;
109
+ etaSeconds: number | null;
110
+ predictedArrivalAt: string | null;
111
+ distanceMetres: number | null;
112
+ basis: EtaBasis | null;
113
+ computedAt: string | null;
114
+ lastLocationAt: string | null;
115
+ locationAgeSeconds: number | null;
116
+ arrivalDeadlineAt: string | null;
117
+ }
118
+ export interface IncidentSlaPauseView {
119
+ id: number;
120
+ instanceId: number;
121
+ stage: IncidentSlaStage;
122
+ reason: SlaPauseReason;
123
+ note: string | null;
124
+ status: SlaPauseStatus;
125
+ requestedBy: number | null;
126
+ requestedAt: string;
127
+ decidedBy: number | null;
128
+ decidedAt: string | null;
129
+ decisionNote: string | null;
130
+ startedAt: string | null;
131
+ endedAt: string | null;
132
+ pausedSeconds: number;
133
+ }
134
+ /** The alternative unit the workflow last put in front of the dispatcher. */
135
+ export interface IncidentSlaAlternativeView {
136
+ responseUnitId: number;
137
+ responseUnitName: string | null;
138
+ distanceMetres: number | null;
139
+ etaSeconds: number | null;
140
+ trigger: SlaEscalationTrigger;
141
+ /** The dispatch it would replace or back up. */
142
+ forDispatchId: number | null;
143
+ recommendedAt: string;
144
+ }
145
+ /** What the caller may do on the card, decided by the server from the caller's role. */
146
+ export interface IncidentSlaAllowedActions {
147
+ acknowledge: boolean;
148
+ triage: boolean;
149
+ recordAssessment: boolean;
150
+ requestPause: boolean;
151
+ approvePause: boolean;
152
+ endPause: boolean;
153
+ requestException: boolean;
154
+ approveException: boolean;
155
+ waive: boolean;
156
+ }
157
+ export interface IncidentSlaClosureView {
158
+ resolvedAt: string | null;
159
+ closedAt: string | null;
160
+ closureReason: IncidentClosureReason | null;
161
+ closedBy: number | null;
162
+ autoCloseEnabled: boolean;
163
+ autoCloseAt: string | null;
164
+ }
165
+ export interface IncidentSlaPolicyReference {
166
+ id: number | null;
167
+ key: string | null;
168
+ version: number | null;
169
+ name: string;
170
+ scope: SlaPolicyScope;
171
+ contributingPolicies: IncidentSlaContributingPolicy[];
172
+ }
173
+ /** `GET /incidents/:id/sla` - everything the SLA card shows. */
174
+ export interface IncidentSlaSummary {
175
+ incidentId: number;
176
+ tracked: boolean;
177
+ notTrackedReason: string | null;
178
+ serverTime: string;
179
+ priority: IncidentPriority | null;
180
+ priorityLevel: SlaPriorityLevel | null;
181
+ policy: IncidentSlaPolicyReference | null;
182
+ overall: SlaOverallState;
183
+ currentStage: EmergencyIncidentStage | null;
184
+ /** The open instance closest to (or furthest past) its deadline. */
185
+ currentInstance: IncidentSlaInstanceView | null;
186
+ instances: IncidentSlaInstanceView[];
187
+ timeline: IncidentSlaTimelineItem[];
188
+ stats: IncidentSlaStats;
189
+ etas: IncidentEtaView[];
190
+ primaryEta: IncidentEtaView | null;
191
+ pauses: IncidentSlaPauseView[];
192
+ alternative: IncidentSlaAlternativeView | null;
193
+ closure: IncidentSlaClosureView;
194
+ allowedActions: IncidentSlaAllowedActions;
195
+ workflowId: string | null;
196
+ }
197
+ /** One row of an incident's SLA history. */
198
+ export interface IncidentSlaEventView {
199
+ id: number;
200
+ eventType: IncidentSlaEventType;
201
+ stage: IncidentSlaStage | null;
202
+ cycle: number | null;
203
+ instanceId: number | null;
204
+ milestone: EmergencyIncidentStage | null;
205
+ fromStatus: IncidentSlaStatus | null;
206
+ toStatus: IncidentSlaStatus | null;
207
+ actorUserId: number | null;
208
+ actorType: IncidentActorType;
209
+ source: IncidentSlaEventSource;
210
+ reason: string | null;
211
+ note: string | null;
212
+ metadata: Record<string, unknown> | null;
213
+ correlationId: string | null;
214
+ workflowId: string | null;
215
+ occurredAt: string;
216
+ recordedAt: string;
217
+ }
218
+ /** `GET /incidents/:id/sla/events` - newest first. */
219
+ export interface IncidentSlaEventPage {
220
+ data: IncidentSlaEventView[];
221
+ total: number;
222
+ page: number;
223
+ limit: number;
224
+ }
@@ -0,0 +1,15 @@
1
+ import { EtaStatus } from '../enums/eta-status.enum';
2
+ /**
3
+ * An estimated ETA from straight-line distance: distance x road factor at an
4
+ * assumed speed. The unit's instantaneous GPS speed is deliberately NOT used -
5
+ * a vehicle stopped at a junction would predict "never", one on a highway
6
+ * "instantly"; the assumed urban speed is clarion-gis's own ESTIMATE profile.
7
+ */
8
+ export declare function estimateEtaSeconds(distanceMetres: number, assumedSpeedKph: number, roadFactor: number): number;
9
+ /**
10
+ * Whether a predicted arrival makes the deadline. Inside `marginPercent` of the
11
+ * target before the deadline is AT_RISK; after it, LIKELY_BREACH.
12
+ */
13
+ export declare function classifyEta(predictedArrivalAt: Date, deadlineAt: Date | null, targetSeconds: number | null, marginPercent: number): EtaStatus;
14
+ /** How bad an ETA status is, for "did it get worse?". */
15
+ export declare const ETA_STATUS_SEVERITY: Readonly<Record<EtaStatus, number>>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Deterministic ids for the emergency/SLA history and its events: the same
3
+ * change always produces the same id, so a retried activity, an outbox
4
+ * re-publish or a Kafka redelivery is recognised instead of recorded twice.
5
+ */
6
+ export declare function buildIncidentSlaEventId(incidentId: number, kind: string, ...parts: (string | number | null | undefined)[]): string;
7
+ /** The deterministic id of a milestone being reached (once per incident, or per dispatch). */
8
+ export declare function buildEmergencyMilestoneEventId(incidentId: number, milestone: string, dispatchId?: number | null): string;
@@ -0,0 +1,14 @@
1
+ import { IncidentPriority } from '../../incident/enums/incident-priority.enum';
2
+ import { SlaPriorityLevel } from '../enums/sla-overall-state.enum';
3
+ import { IncidentSlaPriorityFloors } from '../interfaces/incident-sla-policy';
4
+ export declare function isIncidentPriority(value: unknown): value is IncidentPriority;
5
+ /** P1..P4 for an incident priority; null for anything unrecognised. */
6
+ export declare function slaPriorityLevel(priority: string | null | undefined): SlaPriorityLevel | null;
7
+ /** The more urgent of two priorities. */
8
+ export declare function higherIncidentPriority(a: IncidentPriority, b: IncidentPriority): IncidentPriority;
9
+ /**
10
+ * The priority an incident's SLA is measured at: its own priority, raised to
11
+ * the floor its emergency type sets (an SOS arrives as the column default,
12
+ * Medium, and must not get a Medium clock). An unknown priority counts as Medium.
13
+ */
14
+ export declare function resolveSlaPriority(priority: string | null | undefined, emergencyType: string | null | undefined, floors: IncidentSlaPriorityFloors | null | undefined): IncidentPriority;
@@ -0,0 +1,65 @@
1
+ import { IncidentSlaStatus } from '../enums/incident-sla-status.enum';
2
+ import { SlaExceptionStatus } from '../enums/sla-exception.enum';
3
+ import { SlaOverallState } from '../enums/sla-overall-state.enum';
4
+ export declare function isOpenIncidentSlaStatus(status: string | null | undefined): boolean;
5
+ export declare function isFinalIncidentSlaStatus(status: string | null | undefined): boolean;
6
+ export interface SlaThresholdInstants {
7
+ warningAt: Date;
8
+ atRiskAt: Date;
9
+ deadlineAt: Date;
10
+ }
11
+ /**
12
+ * When an instance turns WARNING, AT_RISK and BREACHED: the start plus each
13
+ * percentage of the target, moved later by the time spent paused. Whole
14
+ * milliseconds, so the workflow and the database agree to the instant.
15
+ */
16
+ export declare function computeSlaThresholdInstants(startedAt: Date, targetSeconds: number, warningPercent: number, atRiskPercent: number, pausedSeconds?: number): SlaThresholdInstants;
17
+ /**
18
+ * The status an open instance should have at `now` from its instants alone -
19
+ * what a timer would have made it. Never goes backwards from `current`.
20
+ */
21
+ export declare function slaThresholdStatusAt(instants: {
22
+ warningAt: Date | null;
23
+ atRiskAt: Date | null;
24
+ deadlineAt: Date | null;
25
+ }, now: Date, current?: IncidentSlaStatus): IncidentSlaStatus;
26
+ /** MET if the milestone was reached by the deadline, else BREACHED. Decided by timestamps only. */
27
+ export declare function slaOutcome(completedAt: Date, deadlineAt: Date): IncidentSlaStatus.MET | IncidentSlaStatus.BREACHED;
28
+ /** Whole seconds from a to b (negative when b is earlier). */
29
+ export declare function secondsBetween(a: Date, b: Date): number;
30
+ /** The fields compliance and the overall state are worked out from. */
31
+ export interface SlaOutcomeLike {
32
+ status: IncidentSlaStatus | string;
33
+ exceptionStatus?: SlaExceptionStatus | string | null;
34
+ warnedAt?: Date | string | null;
35
+ atRiskSince?: Date | string | null;
36
+ }
37
+ export interface SlaComplianceFigures {
38
+ total: number;
39
+ decided: number;
40
+ met: number;
41
+ breached: number;
42
+ breachedWithApprovedException: number;
43
+ open: number;
44
+ warnings: number;
45
+ atRisk: number;
46
+ compliancePercent: number | null;
47
+ complianceWithExceptionsPercent: number | null;
48
+ }
49
+ /**
50
+ * Historical compliance: met / (met + breached). Cancelled, expired and waived
51
+ * instances had no outcome and do not count either way; an approved exception
52
+ * counts only in the second figure, never by erasing the breach.
53
+ */
54
+ export declare function computeSlaCompliance(instances: readonly SlaOutcomeLike[]): SlaComplianceFigures;
55
+ /**
56
+ * The incident's CURRENT SLA state in one word: the worst OPEN instance wins (a
57
+ * breach still open, at risk, warning, paused, on track). With nothing open, how
58
+ * the finished ones went (any unexcused breach, every breach excused, all met).
59
+ * A past breach while the current stage runs fine reads ON_TRACK here - the
60
+ * history is the compliance figures' job, kept apart on purpose.
61
+ */
62
+ export declare function deriveSlaOverallState(instances: readonly (SlaOutcomeLike & {
63
+ completedAt?: Date | string | null;
64
+ endedAt?: Date | string | null;
65
+ })[]): SlaOverallState;
@@ -209,6 +209,12 @@ export declare enum PermissionActions {
209
209
  READ_FOLLOW_ME = "read:follow-me",
210
210
  TRACK_FOLLOW_ME = "track:follow-me",
211
211
  MANAGE_SAVED_PLACE = "manage:saved-place",
212
+ READ_INCIDENT_SLA = "read:incident-sla",
213
+ UPDATE_INCIDENT_SLA = "update:incident-sla",
214
+ APPROVE_INCIDENT_SLA = "approve:incident-sla",
215
+ READ_INCIDENT_SLA_POLICY = "read:incident-sla-policy",
216
+ MANAGE_INCIDENT_SLA_POLICY = "manage:incident-sla-policy",
217
+ READ_INCIDENT_SLA_ANALYTICS = "read:incident-sla-analytics",
212
218
  /**
213
219
  * @deprecated Split into the connection / message / screened-message /
214
220
  * analytics actions above, which the gateway now requires instead. Still
@@ -15,5 +15,6 @@ export declare enum PermissionsModule {
15
15
  NOTIFICATION = "Notification",
16
16
  ALERT_INTAKE = "Alert Intake",
17
17
  SAFETY = "Safety",
18
- PLACES = "Places"
18
+ PLACES = "Places",
19
+ INCIDENT_SLA = "Incident SLA"
19
20
  }
@@ -11,6 +11,8 @@ export declare enum SmsTemplateType {
11
11
  FOLLOW_ME_GUARDIAN_REQUEST = "follow_me_guardian_request",
12
12
  FOLLOW_ME_GUARDIAN_ENDED = "follow_me_guardian_ended",
13
13
  RESPONSE_UNIT_DISPATCH = "response_unit_dispatch",
14
+ EMERGENCY_STAFF_ALERT = "emergency_staff_alert",
15
+ EMERGENCY_REPORTER_UPDATE = "emergency_reporter_update",
14
16
  APPOINTMENT_REMINDER = "appointment_reminder",
15
17
  GENERAL_NOTIFICATION = "general_notification"
16
18
  }
package/package.json CHANGED
@@ -1,72 +1,72 @@
1
- {
2
- "name": "grm-shared-library",
3
- "version": "1.1.237",
4
- "main": "dist/cjs/index.js",
5
- "module": "dist/esm/index.js",
6
- "types": "dist/types/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/types/index.d.ts",
10
- "import": "./dist/esm/index.js",
11
- "require": "./dist/cjs/index.js"
12
- },
13
- "./dist/modules/*": {
14
- "types": "./dist/types/modules/*.d.ts",
15
- "import": "./dist/esm/modules/*.js",
16
- "require": "./dist/cjs/modules/*.js"
17
- }
18
- },
19
- "files": [
20
- "dist/**/*"
21
- ],
22
- "scripts": {
23
- "clean": "rimraf dist dist-test",
24
- "build:cjs": "tsc -p tsconfig.cjs.json",
25
- "build:esm": "tsc -p tsconfig.esm.json",
26
- "build:types": "tsc -p tsconfig.types.json",
27
- "build": "npm run clean && npm run build:types && npm run build:cjs && npm run build:esm",
28
- "prepublishOnly": "npm run build",
29
- "pretest": "rimraf dist-test",
30
- "test": "tsc -p tsconfig.spec.json && node --test \"dist-test/**/*.spec.js\""
31
- },
32
- "keywords": [],
33
- "author": "",
34
- "license": "ISC",
35
- "description": "",
36
- "publishConfig": {
37
- "access": "public"
38
- },
39
- "devDependencies": {
40
- "@types/express": "^5.0.3",
41
- "@types/geojson": "^7946.0.14",
42
- "@types/node": "^22.10.5",
43
- "rimraf": "^5.0.5",
44
- "typescript": "^5.7.3"
45
- },
46
- "dependencies": {
47
- "@nestjs/common": "^11.0.0",
48
- "@nestjs/core": "^11.0.0",
49
- "@nestjs/mapped-types": "^2.0.6",
50
- "@nestjs/microservices": "^11.0.0",
51
- "@nestjs/swagger": "^11.2.0",
52
- "@sentry/node": "^8.0.0",
53
- "class-transformer": "^0.5.0",
54
- "class-validator": "^0.14.0",
55
- "express": "^5.1.0",
56
- "geojson": "^0.5.0",
57
- "grm-shared-library": "^1.1.101",
58
- "libphonenumber-js": "^1.13.8",
59
- "rxjs": "^7.8.2",
60
- "swagger-ui-express": "^5.0.1",
61
- "@nestjs/config": "^4.0.0"
62
- },
63
- "peerDependencies": {
64
- "@nestjs/common": "^11.0.0",
65
- "@nestjs/core": "^11.0.0",
66
- "@nestjs/microservices": "^11.0.0",
67
- "@sentry/node": "^8.0.0",
68
- "class-transformer": "^0.5.0",
69
- "class-validator": "^0.14.0",
70
- "@nestjs/config": "^4.0.0"
71
- }
72
- }
1
+ {
2
+ "name": "grm-shared-library",
3
+ "version": "1.1.239",
4
+ "main": "dist/cjs/index.js",
5
+ "module": "dist/esm/index.js",
6
+ "types": "dist/types/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/types/index.d.ts",
10
+ "import": "./dist/esm/index.js",
11
+ "require": "./dist/cjs/index.js"
12
+ },
13
+ "./dist/modules/*": {
14
+ "types": "./dist/types/modules/*.d.ts",
15
+ "import": "./dist/esm/modules/*.js",
16
+ "require": "./dist/cjs/modules/*.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist/**/*"
21
+ ],
22
+ "scripts": {
23
+ "clean": "rimraf dist dist-test",
24
+ "build:cjs": "tsc -p tsconfig.cjs.json",
25
+ "build:esm": "tsc -p tsconfig.esm.json",
26
+ "build:types": "tsc -p tsconfig.types.json",
27
+ "build": "npm run clean && npm run build:types && npm run build:cjs && npm run build:esm",
28
+ "prepublishOnly": "npm run build",
29
+ "pretest": "rimraf dist-test",
30
+ "test": "tsc -p tsconfig.spec.json && node --test \"dist-test/**/*.spec.js\""
31
+ },
32
+ "keywords": [],
33
+ "author": "",
34
+ "license": "ISC",
35
+ "description": "",
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "devDependencies": {
40
+ "@types/express": "^5.0.3",
41
+ "@types/geojson": "^7946.0.14",
42
+ "@types/node": "^22.10.5",
43
+ "rimraf": "^5.0.5",
44
+ "typescript": "^5.7.3"
45
+ },
46
+ "dependencies": {
47
+ "@nestjs/common": "^11.0.0",
48
+ "@nestjs/core": "^11.0.0",
49
+ "@nestjs/mapped-types": "^2.0.6",
50
+ "@nestjs/microservices": "^11.0.0",
51
+ "@nestjs/swagger": "^11.2.0",
52
+ "@sentry/node": "^8.0.0",
53
+ "class-transformer": "^0.5.0",
54
+ "class-validator": "^0.14.0",
55
+ "express": "^5.1.0",
56
+ "geojson": "^0.5.0",
57
+ "grm-shared-library": "^1.1.101",
58
+ "libphonenumber-js": "^1.13.8",
59
+ "rxjs": "^7.8.2",
60
+ "swagger-ui-express": "^5.0.1",
61
+ "@nestjs/config": "^4.0.0"
62
+ },
63
+ "peerDependencies": {
64
+ "@nestjs/common": "^11.0.0",
65
+ "@nestjs/core": "^11.0.0",
66
+ "@nestjs/microservices": "^11.0.0",
67
+ "@sentry/node": "^8.0.0",
68
+ "class-transformer": "^0.5.0",
69
+ "class-validator": "^0.14.0",
70
+ "@nestjs/config": "^4.0.0"
71
+ }
72
+ }