grm-shared-library 1.1.194 → 1.1.196

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 (216) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/kafka/topics.js +3 -0
  4. package/dist/cjs/kafka/topics.js.map +1 -1
  5. package/dist/cjs/modules/alert-dispatch/enums/incident-dispatch-scope.enum.js +15 -7
  6. package/dist/cjs/modules/alert-dispatch/enums/incident-dispatch-scope.enum.js.map +1 -1
  7. package/dist/cjs/modules/alert-dispatch/utils/alert-dispatch.util.js +50 -15
  8. package/dist/cjs/modules/alert-dispatch/utils/alert-dispatch.util.js.map +1 -1
  9. package/dist/cjs/modules/common/constants/service.const.js +1 -0
  10. package/dist/cjs/modules/common/constants/service.const.js.map +1 -1
  11. package/dist/cjs/modules/entitlement/enums/incident-entitlement-scope.enum.js +16 -5
  12. package/dist/cjs/modules/entitlement/enums/incident-entitlement-scope.enum.js.map +1 -1
  13. package/dist/cjs/modules/partner/constants/partner-defaults.const.js +74 -0
  14. package/dist/cjs/modules/partner/constants/partner-defaults.const.js.map +1 -0
  15. package/dist/cjs/modules/partner/constants/partner-kafka.const.js +20 -0
  16. package/dist/cjs/modules/partner/constants/partner-kafka.const.js.map +1 -0
  17. package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js +101 -0
  18. package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
  19. package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js +178 -0
  20. package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
  21. package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js +36 -0
  22. package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
  23. package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js +230 -0
  24. package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
  25. package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js +132 -0
  26. package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
  27. package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js +9 -0
  28. package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
  29. package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js +15 -0
  30. package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
  31. package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js +30 -0
  32. package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
  33. package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js +18 -0
  34. package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
  35. package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js +23 -0
  36. package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
  37. package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js +51 -0
  38. package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
  39. package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js +21 -0
  40. package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
  41. package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js +52 -0
  42. package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
  43. package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js +17 -0
  44. package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
  45. package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js +23 -0
  46. package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
  47. package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js +20 -0
  48. package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
  49. package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js +28 -0
  50. package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
  51. package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js +25 -0
  52. package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
  53. package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js +29 -0
  54. package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
  55. package/dist/cjs/modules/partner/index.js +55 -0
  56. package/dist/cjs/modules/partner/index.js.map +1 -0
  57. package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js +3 -0
  58. package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
  59. package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js +3 -0
  60. package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
  61. package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js +3 -0
  62. package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
  63. package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js +3 -0
  64. package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
  65. package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js +3 -0
  66. package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
  67. package/dist/cjs/modules/partner/interfaces/partner-dispatch.js +3 -0
  68. package/dist/cjs/modules/partner/interfaces/partner-dispatch.js.map +1 -0
  69. package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js +3 -0
  70. package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
  71. package/dist/cjs/modules/partner/interfaces/partner-integration.js +3 -0
  72. package/dist/cjs/modules/partner/interfaces/partner-integration.js.map +1 -0
  73. package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js +3 -0
  74. package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
  75. package/dist/cjs/modules/partner/interfaces/partner-routing-result.js +3 -0
  76. package/dist/cjs/modules/partner/interfaces/partner-routing-result.js.map +1 -0
  77. package/dist/cjs/modules/partner/utils/partner-payload.util.js +116 -0
  78. package/dist/cjs/modules/partner/utils/partner-payload.util.js.map +1 -0
  79. package/dist/cjs/modules/partner/utils/partner-routing.util.js +137 -0
  80. package/dist/cjs/modules/partner/utils/partner-routing.util.js.map +1 -0
  81. package/dist/cjs/modules/permission/data/permissions.data.js +5 -1
  82. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  83. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +10 -0
  84. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  85. package/dist/cjs/modules/role/data/roles.data.js +26 -0
  86. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  87. package/dist/esm/index.js +1 -0
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/kafka/topics.js +3 -0
  90. package/dist/esm/kafka/topics.js.map +1 -1
  91. package/dist/esm/modules/alert-dispatch/enums/incident-dispatch-scope.enum.js +15 -7
  92. package/dist/esm/modules/alert-dispatch/enums/incident-dispatch-scope.enum.js.map +1 -1
  93. package/dist/esm/modules/alert-dispatch/utils/alert-dispatch.util.js +48 -15
  94. package/dist/esm/modules/alert-dispatch/utils/alert-dispatch.util.js.map +1 -1
  95. package/dist/esm/modules/common/constants/service.const.js +1 -0
  96. package/dist/esm/modules/common/constants/service.const.js.map +1 -1
  97. package/dist/esm/modules/entitlement/enums/incident-entitlement-scope.enum.js +16 -5
  98. package/dist/esm/modules/entitlement/enums/incident-entitlement-scope.enum.js.map +1 -1
  99. package/dist/esm/modules/partner/constants/partner-defaults.const.js +71 -0
  100. package/dist/esm/modules/partner/constants/partner-defaults.const.js.map +1 -0
  101. package/dist/esm/modules/partner/constants/partner-kafka.const.js +17 -0
  102. package/dist/esm/modules/partner/constants/partner-kafka.const.js.map +1 -0
  103. package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js +97 -0
  104. package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
  105. package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js +174 -0
  106. package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
  107. package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js +32 -0
  108. package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
  109. package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js +224 -0
  110. package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
  111. package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js +127 -0
  112. package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
  113. package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js +5 -0
  114. package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
  115. package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js +11 -0
  116. package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
  117. package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js +27 -0
  118. package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
  119. package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js +15 -0
  120. package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
  121. package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js +20 -0
  122. package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
  123. package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js +48 -0
  124. package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
  125. package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js +18 -0
  126. package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
  127. package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js +49 -0
  128. package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
  129. package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js +14 -0
  130. package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
  131. package/dist/esm/modules/partner/enums/partner-integration-status.enum.js +20 -0
  132. package/dist/esm/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
  133. package/dist/esm/modules/partner/enums/partner-location-provider.enum.js +17 -0
  134. package/dist/esm/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
  135. package/dist/esm/modules/partner/enums/partner-provider-code.enum.js +25 -0
  136. package/dist/esm/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
  137. package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js +22 -0
  138. package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
  139. package/dist/esm/modules/partner/enums/partner-service-capability.enum.js +26 -0
  140. package/dist/esm/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
  141. package/dist/esm/modules/partner/index.js +39 -0
  142. package/dist/esm/modules/partner/index.js.map +1 -0
  143. package/dist/esm/modules/partner/interfaces/incident-partner-routing.js +2 -0
  144. package/dist/esm/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
  145. package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js +2 -0
  146. package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
  147. package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js +2 -0
  148. package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
  149. package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js +2 -0
  150. package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
  151. package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js +2 -0
  152. package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
  153. package/dist/esm/modules/partner/interfaces/partner-dispatch.js +2 -0
  154. package/dist/esm/modules/partner/interfaces/partner-dispatch.js.map +1 -0
  155. package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js +2 -0
  156. package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
  157. package/dist/esm/modules/partner/interfaces/partner-integration.js +2 -0
  158. package/dist/esm/modules/partner/interfaces/partner-integration.js.map +1 -0
  159. package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js +2 -0
  160. package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
  161. package/dist/esm/modules/partner/interfaces/partner-routing-result.js +2 -0
  162. package/dist/esm/modules/partner/interfaces/partner-routing-result.js.map +1 -0
  163. package/dist/esm/modules/partner/utils/partner-payload.util.js +109 -0
  164. package/dist/esm/modules/partner/utils/partner-payload.util.js.map +1 -0
  165. package/dist/esm/modules/partner/utils/partner-routing.util.js +127 -0
  166. package/dist/esm/modules/partner/utils/partner-routing.util.js.map +1 -0
  167. package/dist/esm/modules/permission/data/permissions.data.js +5 -1
  168. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  169. package/dist/esm/modules/permission/enums/permission-actions.enum.js +10 -0
  170. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  171. package/dist/esm/modules/role/data/roles.data.js +26 -0
  172. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  173. package/dist/types/index.d.ts +1 -0
  174. package/dist/types/kafka/topics.d.ts +2 -0
  175. package/dist/types/modules/alert-dispatch/enums/incident-dispatch-scope.enum.d.ts +15 -7
  176. package/dist/types/modules/alert-dispatch/interfaces/alert-dispatch.d.ts +13 -0
  177. package/dist/types/modules/alert-dispatch/utils/alert-dispatch.util.d.ts +43 -15
  178. package/dist/types/modules/common/constants/service.const.d.ts +4 -0
  179. package/dist/types/modules/entitlement/enums/incident-entitlement-scope.enum.d.ts +17 -6
  180. package/dist/types/modules/incident/intefaces/incident.d.ts +15 -0
  181. package/dist/types/modules/partner/constants/partner-defaults.const.d.ts +60 -0
  182. package/dist/types/modules/partner/constants/partner-kafka.const.d.ts +16 -0
  183. package/dist/types/modules/partner/dtos/create-partner-coverage-rule.dto.d.ts +24 -0
  184. package/dist/types/modules/partner/dtos/create-partner-integration.dto.d.ts +31 -0
  185. package/dist/types/modules/partner/dtos/partner-dispatch-decision.dto.d.ts +11 -0
  186. package/dist/types/modules/partner/dtos/route-incident-to-partners.dto.d.ts +52 -0
  187. package/dist/types/modules/partner/dtos/update-incident-partner-routing.dto.d.ts +34 -0
  188. package/dist/types/modules/partner/dtos/update-partner-coverage-rule.dto.d.ts +5 -0
  189. package/dist/types/modules/partner/dtos/update-partner-integration.dto.d.ts +11 -0
  190. package/dist/types/modules/partner/enums/incident-partner-routing-status.enum.d.ts +25 -0
  191. package/dist/types/modules/partner/enums/partner-adapter-operation.enum.d.ts +13 -0
  192. package/dist/types/modules/partner/enums/partner-coverage-match-type.enum.d.ts +18 -0
  193. package/dist/types/modules/partner/enums/partner-dispatch-failure-reason.enum.d.ts +37 -0
  194. package/dist/types/modules/partner/enums/partner-dispatch-scope.enum.d.ts +16 -0
  195. package/dist/types/modules/partner/enums/partner-dispatch-status.enum.d.ts +37 -0
  196. package/dist/types/modules/partner/enums/partner-integration-environment.enum.d.ts +12 -0
  197. package/dist/types/modules/partner/enums/partner-integration-status.enum.d.ts +18 -0
  198. package/dist/types/modules/partner/enums/partner-location-provider.enum.d.ts +15 -0
  199. package/dist/types/modules/partner/enums/partner-provider-code.enum.d.ts +23 -0
  200. package/dist/types/modules/partner/enums/partner-routing-mode.enum.d.ts +20 -0
  201. package/dist/types/modules/partner/enums/partner-service-capability.enum.d.ts +24 -0
  202. package/dist/types/modules/partner/index.d.ts +33 -0
  203. package/dist/types/modules/partner/interfaces/incident-partner-routing.d.ts +43 -0
  204. package/dist/types/modules/partner/interfaces/partner-connection-test-result.d.ts +22 -0
  205. package/dist/types/modules/partner/interfaces/partner-coverage-rule.d.ts +36 -0
  206. package/dist/types/modules/partner/interfaces/partner-dispatch-events.d.ts +40 -0
  207. package/dist/types/modules/partner/interfaces/partner-dispatch-location.d.ts +13 -0
  208. package/dist/types/modules/partner/interfaces/partner-dispatch.d.ts +119 -0
  209. package/dist/types/modules/partner/interfaces/partner-emergency-contact.d.ts +15 -0
  210. package/dist/types/modules/partner/interfaces/partner-integration.d.ts +63 -0
  211. package/dist/types/modules/partner/interfaces/partner-provider-descriptor.d.ts +56 -0
  212. package/dist/types/modules/partner/interfaces/partner-routing-result.d.ts +24 -0
  213. package/dist/types/modules/partner/utils/partner-payload.util.d.ts +49 -0
  214. package/dist/types/modules/partner/utils/partner-routing.util.d.ts +71 -0
  215. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
  216. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Last known health of a partnership's connection to its partner, refreshed by
3
+ * explicit connection tests and by the outcome of real dispatches.
4
+ *
5
+ * Advisory only: it is never consulted to decide whether to attempt a dispatch —
6
+ * an emergency is always attempted against a live partner, whatever the last
7
+ * probe said.
8
+ */
9
+ export var PartnerIntegrationStatus;
10
+ (function (PartnerIntegrationStatus) {
11
+ /** Never probed, or probed before the last configuration change. */
12
+ PartnerIntegrationStatus["UNKNOWN"] = "UNKNOWN";
13
+ /** Last probe or dispatch succeeded. */
14
+ PartnerIntegrationStatus["HEALTHY"] = "HEALTHY";
15
+ /** Reachable but erroring — e.g. authentication succeeds, dispatches reject. */
16
+ PartnerIntegrationStatus["DEGRADED"] = "DEGRADED";
17
+ /** Last probe or dispatch could not reach the partner at all. */
18
+ PartnerIntegrationStatus["UNREACHABLE"] = "UNREACHABLE";
19
+ })(PartnerIntegrationStatus || (PartnerIntegrationStatus = {}));
20
+ //# sourceMappingURL=partner-integration-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-integration-status.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-integration-status.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,wBASX;AATD,WAAY,wBAAwB;IAChC,oEAAoE;IACpE,+CAAmB,CAAA;IACnB,wCAAwC;IACxC,+CAAmB,CAAA;IACnB,gFAAgF;IAChF,iDAAqB,CAAA;IACrB,iEAAiE;IACjE,uDAA2B,CAAA;AAC/B,CAAC,EATW,wBAAwB,KAAxB,wBAAwB,QASnC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * How the location attached to a partner dispatch was obtained.
3
+ *
4
+ * Mirrors the vocabulary emergency-service APIs expect (Rescue.co among them)
5
+ * and is derived from the incident's reporting channel rather than asked for -
6
+ * see `mapChannelToLocationProvider`.
7
+ */
8
+ export var PartnerLocationProvider;
9
+ (function (PartnerLocationProvider) {
10
+ /** A satellite fix. */
11
+ PartnerLocationProvider["GPS"] = "GPS";
12
+ /** Derived from cell/Wi-Fi network positioning, or entered by an operator. */
13
+ PartnerLocationProvider["NETWORK"] = "NETWORK";
14
+ /** A platform fused-location fix combining GPS, network and sensors. */
15
+ PartnerLocationProvider["FUSED"] = "FUSED";
16
+ })(PartnerLocationProvider || (PartnerLocationProvider = {}));
17
+ //# sourceMappingURL=partner-location-provider.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-location-provider.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-location-provider.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,uBAAuB;IACvB,sCAAW,CAAA;IACX,8EAA8E;IAC9E,8CAAmB,CAAA;IACnB,wEAAwE;IACxE,0CAAe,CAAA;AACnB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Identifies the third-party service partner an organization has integrated
3
+ * with.
4
+ *
5
+ * Provider-neutral by design: the partnership model, coverage rules, dispatch
6
+ * records, audit trail and REST surface in clarion-partner-services never branch
7
+ * on a specific partner — only the per-provider adapter inside that service
8
+ * understands a partner's wire format, authentication and payload shape.
9
+ *
10
+ * Only {@link PartnerProviderCode.RESCUE_CO} has a working adapter today. The
11
+ * remaining values are reserved so a new partner can be added without changing
12
+ * the shared contracts, database columns or Kafka events.
13
+ */
14
+ export var PartnerProviderCode;
15
+ (function (PartnerProviderCode) {
16
+ /** Rescue.co — ambulance / emergency medical response (Kenya). */
17
+ PartnerProviderCode["RESCUE_CO"] = "RESCUE_CO";
18
+ /** AAR Healthcare emergency medical response (reserved — no adapter yet). */
19
+ PartnerProviderCode["AAR"] = "AAR";
20
+ /** St John Ambulance (reserved — no adapter yet). */
21
+ PartnerProviderCode["ST_JOHN"] = "ST_JOHN";
22
+ /** Generic REST partner driven purely by configuration (reserved). */
23
+ PartnerProviderCode["GENERIC_REST"] = "GENERIC_REST";
24
+ })(PartnerProviderCode || (PartnerProviderCode = {}));
25
+ //# sourceMappingURL=partner-provider-code.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-provider-code.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-provider-code.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC3B,kEAAkE;IAClE,8CAAuB,CAAA;IACvB,6EAA6E;IAC7E,kCAAW,CAAA;IACX,qDAAqD;IACrD,0CAAmB,CAAA;IACnB,sEAAsE;IACtE,oDAA6B,CAAA;AACjC,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,QAS9B"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * How an incident that a partnership covers reaches the partner.
3
+ *
4
+ * The distinction is deliberately a stored fact rather than a runtime policy:
5
+ * an organization that wants a human in the loop before an ambulance is
6
+ * requested on its behalf sets MANUAL, and every covered incident then waits in
7
+ * PENDING_APPROVAL until an operator confirms it.
8
+ */
9
+ export var PartnerRoutingMode;
10
+ (function (PartnerRoutingMode) {
11
+ /** Send to the partner as soon as the incident is created. */
12
+ PartnerRoutingMode["AUTO"] = "AUTO";
13
+ /** Hold for explicit confirmation by the organization before sending. */
14
+ PartnerRoutingMode["MANUAL"] = "MANUAL";
15
+ /**
16
+ * Keep the configuration but route nothing. Distinct from deleting the
17
+ * partnership (which loses its coverage rules and history) and from
18
+ * `enabled = false` (which is the operational kill switch).
19
+ */
20
+ PartnerRoutingMode["DISABLED"] = "DISABLED";
21
+ })(PartnerRoutingMode || (PartnerRoutingMode = {}));
22
+ //# sourceMappingURL=partner-routing-mode.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-routing-mode.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-routing-mode.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC1B,8DAA8D;IAC9D,mCAAa,CAAA;IACb,yEAAyE;IACzE,uCAAiB,CAAA;IACjB;;;;OAIG;IACH,2CAAqB,CAAA;AACzB,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A class of emergency service a partner can be asked to provide.
3
+ *
4
+ * A partnership declares which capabilities it buys from a partner, and every
5
+ * coverage rule names the capability an incident should be routed for. This is
6
+ * what makes "GardaWorld sends medical incidents to Rescue.co" expressible
7
+ * without either side hard-coding the other.
8
+ */
9
+ export var PartnerServiceCapability;
10
+ (function (PartnerServiceCapability) {
11
+ /** Ground ambulance dispatch to a scene. */
12
+ PartnerServiceCapability["AMBULANCE"] = "AMBULANCE";
13
+ /** Air or long-distance medical evacuation. */
14
+ PartnerServiceCapability["MEDICAL_EVACUATION"] = "MEDICAL_EVACUATION";
15
+ /** Fire and rescue response. */
16
+ PartnerServiceCapability["FIRE_RESPONSE"] = "FIRE_RESPONSE";
17
+ /** Armed or unarmed security response to a scene. */
18
+ PartnerServiceCapability["SECURITY_RESPONSE"] = "SECURITY_RESPONSE";
19
+ /** Roadside/breakdown assistance. */
20
+ PartnerServiceCapability["ROADSIDE_ASSISTANCE"] = "ROADSIDE_ASSISTANCE";
21
+ /** Vehicle recovery / towing. */
22
+ PartnerServiceCapability["TOWING"] = "TOWING";
23
+ /** Anything the list above does not describe. */
24
+ PartnerServiceCapability["OTHER"] = "OTHER";
25
+ })(PartnerServiceCapability || (PartnerServiceCapability = {}));
26
+ //# sourceMappingURL=partner-service-capability.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-service-capability.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-service-capability.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,wBAeX;AAfD,WAAY,wBAAwB;IAChC,4CAA4C;IAC5C,mDAAuB,CAAA;IACvB,+CAA+C;IAC/C,qEAAyC,CAAA;IACzC,gCAAgC;IAChC,2DAA+B,CAAA;IAC/B,qDAAqD;IACrD,mEAAuC,CAAA;IACvC,qCAAqC;IACrC,uEAA2C,CAAA;IAC3C,iCAAiC;IACjC,6CAAiB,CAAA;IACjB,iDAAiD;IACjD,2CAAe,CAAA;AACnB,CAAC,EAfW,wBAAwB,KAAxB,wBAAwB,QAenC"}
@@ -0,0 +1,39 @@
1
+ // Enums
2
+ export * from './enums/partner-provider-code.enum';
3
+ export * from './enums/partner-service-capability.enum';
4
+ export * from './enums/partner-routing-mode.enum';
5
+ export * from './enums/partner-integration-environment.enum';
6
+ export * from './enums/partner-integration-status.enum';
7
+ export * from './enums/partner-coverage-match-type.enum';
8
+ export * from './enums/partner-dispatch-status.enum';
9
+ export * from './enums/partner-dispatch-failure-reason.enum';
10
+ export * from './enums/partner-location-provider.enum';
11
+ export * from './enums/partner-adapter-operation.enum';
12
+ export * from './enums/incident-partner-routing-status.enum';
13
+ export * from './enums/partner-dispatch-scope.enum';
14
+ // Interfaces
15
+ export * from './interfaces/partner-provider-descriptor';
16
+ export * from './interfaces/partner-integration';
17
+ export * from './interfaces/partner-coverage-rule';
18
+ export * from './interfaces/partner-dispatch-location';
19
+ export * from './interfaces/partner-emergency-contact';
20
+ export * from './interfaces/partner-dispatch';
21
+ export * from './interfaces/incident-partner-routing';
22
+ export * from './interfaces/partner-routing-result';
23
+ export * from './interfaces/partner-connection-test-result';
24
+ export * from './interfaces/partner-dispatch-events';
25
+ // Constants
26
+ export * from './constants/partner-defaults.const';
27
+ export * from './constants/partner-kafka.const';
28
+ // DTOs
29
+ export * from './dtos/create-partner-integration.dto';
30
+ export * from './dtos/update-partner-integration.dto';
31
+ export * from './dtos/create-partner-coverage-rule.dto';
32
+ export * from './dtos/update-partner-coverage-rule.dto';
33
+ export * from './dtos/route-incident-to-partners.dto';
34
+ export * from './dtos/partner-dispatch-decision.dto';
35
+ export * from './dtos/update-incident-partner-routing.dto';
36
+ // Utilities
37
+ export * from './utils/partner-routing.util';
38
+ export * from './utils/partner-payload.util';
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qCAAqC,CAAC;AAEpD,aAAa;AACb,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AAErD,YAAY;AACZ,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAEhD,OAAO;AACP,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAE3D,YAAY;AACZ,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=incident-partner-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incident-partner-routing.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/incident-partner-routing.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-connection-test-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-connection-test-result.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-connection-test-result.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-coverage-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-coverage-rule.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-coverage-rule.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-dispatch-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-dispatch-events.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-dispatch-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-dispatch-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-dispatch-location.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-dispatch-location.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-dispatch.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-dispatch.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-emergency-contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-emergency-contact.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-emergency-contact.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-integration.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-integration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-provider-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-provider-descriptor.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-provider-descriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=partner-routing-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-routing-result.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-routing-result.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import { PARTNER_FIELD_LIMITS } from '../constants/partner-defaults.const';
2
+ /**
3
+ * Trim a value to a partner's field limit without ever throwing.
4
+ *
5
+ * Partner APIs reject an over-long field outright, and refusing to send an
6
+ * emergency because a description ran long is never the right trade - so the
7
+ * value is truncated and the emergency still goes.
8
+ */
9
+ export function truncateForPartner(value, maxLength) {
10
+ if (value == null)
11
+ return undefined;
12
+ const trimmed = String(value).trim();
13
+ if (trimmed === '')
14
+ return undefined;
15
+ return trimmed.length <= maxLength ? trimmed : trimmed.slice(0, maxLength);
16
+ }
17
+ /**
18
+ * Build the free-text description of what is wrong, from the incident's type,
19
+ * category and description.
20
+ *
21
+ * Ordered most-specific-first so a partner reading only the opening words still
22
+ * learns the useful part, and clamped to the partner's limit.
23
+ */
24
+ export function buildPartnerIssueText(parts) {
25
+ var _a;
26
+ const maxLength = (_a = parts.maxLength) !== null && _a !== void 0 ? _a : PARTNER_FIELD_LIMITS.ISSUE_MAX_LENGTH;
27
+ const headline = [parts.typeName, parts.categoryName]
28
+ .map((v) => (v == null ? '' : String(v).trim()))
29
+ .filter((v) => v !== '')
30
+ .join(' / ');
31
+ const description = parts.description == null ? '' : String(parts.description).trim();
32
+ const combined = [headline, description].filter((v) => v !== '').join(' - ');
33
+ return truncateForPartner(combined, maxLength);
34
+ }
35
+ /**
36
+ * Mask an identifier for logging: keeps enough to correlate, never enough to
37
+ * reuse. `+254712345678` becomes `+254***5678`.
38
+ *
39
+ * Every log line in the partner pipeline goes through this - a dispatch carries
40
+ * a reporter's phone number and a partner's reference, and neither belongs in
41
+ * plaintext in a log aggregator.
42
+ */
43
+ export function maskPartnerIdentifier(value) {
44
+ if (value == null)
45
+ return 'unknown';
46
+ const raw = String(value).trim();
47
+ if (raw === '')
48
+ return 'unknown';
49
+ if (raw.length <= 8)
50
+ return `${raw.slice(0, 2)}***`;
51
+ return `${raw.slice(0, 4)}***${raw.slice(-4)}`;
52
+ }
53
+ /**
54
+ * Strip anything credential-shaped out of a value before it is persisted on a
55
+ * dispatch or written to a log.
56
+ *
57
+ * Applied to every partner request and response body the service stores.
58
+ * Matching is on the KEY, case-insensitively and by substring, because partners
59
+ * do not agree on a name for a secret (`apiKey`, `api_key`, `access_token`,
60
+ * `Authorization`, ...). The shape of the payload is preserved so an audit still
61
+ * shows what was sent.
62
+ */
63
+ export function sanitizePartnerPayload(value, depth = 0) {
64
+ if (depth > 8 || value == null)
65
+ return value;
66
+ if (Array.isArray(value))
67
+ return value.map((item) => sanitizePartnerPayload(item, depth + 1));
68
+ if (typeof value !== 'object')
69
+ return value;
70
+ const result = {};
71
+ for (const [key, entry] of Object.entries(value)) {
72
+ result[key] = isSecretKey(key) ? '[REDACTED]' : sanitizePartnerPayload(entry, depth + 1);
73
+ }
74
+ return result;
75
+ }
76
+ /** Substrings that mark a key as carrying a secret. */
77
+ const SECRET_KEY_FRAGMENTS = [
78
+ 'apikey',
79
+ 'api_key',
80
+ 'secret',
81
+ 'password',
82
+ 'passwd',
83
+ 'token',
84
+ 'authorization',
85
+ 'auth',
86
+ 'credential',
87
+ 'signature',
88
+ 'privatekey',
89
+ 'private_key',
90
+ ];
91
+ function isSecretKey(key) {
92
+ const normalized = key.toLowerCase();
93
+ return SECRET_KEY_FRAGMENTS.some((fragment) => normalized.includes(fragment));
94
+ }
95
+ /**
96
+ * A URL safe to store on an attempt record: origin and path only, with any
97
+ * query string replaced.
98
+ *
99
+ * Partner APIs put credentials in query strings often enough that keeping one
100
+ * verbatim in an audit table is a real exposure.
101
+ */
102
+ export function maskPartnerUrl(url) {
103
+ if (url == null)
104
+ return '';
105
+ const raw = String(url);
106
+ const queryStart = raw.indexOf('?');
107
+ return queryStart === -1 ? raw : `${raw.slice(0, queryStart)}?[REDACTED]`;
108
+ }
109
+ //# sourceMappingURL=partner-payload.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-payload.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-payload.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgC,EAAE,SAAiB;IAClF,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAKrC;;IACG,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,oBAAoB,CAAC,gBAAgB,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACvB,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtF,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IAClE,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;IACpD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC5D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,uDAAuD;AACvD,MAAM,oBAAoB,GAAG;IACzB,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,eAAe;IACf,MAAM;IACN,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;CAChB,CAAC;AAEF,SAAS,WAAW,CAAC,GAAW;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,GAA8B;IACzD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { PARTNER_CHANNEL_LOCATION_PROVIDER, PARTNER_DISPATCH_DEFAULTS } from '../constants/partner-defaults.const';
2
+ import { IncidentPartnerRoutingStatus } from '../enums/incident-partner-routing-status.enum';
3
+ import { PartnerCoverageMatchType } from '../enums/partner-coverage-match-type.enum';
4
+ import { PERMANENT_PARTNER_DISPATCH_FAILURE_REASONS, } from '../enums/partner-dispatch-failure-reason.enum';
5
+ import { DELIVERED_PARTNER_DISPATCH_STATUSES, PartnerDispatchStatus, } from '../enums/partner-dispatch-status.enum';
6
+ import { PartnerLocationProvider } from '../enums/partner-location-provider.enum';
7
+ import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
8
+ /**
9
+ * Whether a coverage rule applies to an incident.
10
+ *
11
+ * Shared by clarion-partner-services (which routes on it) and the web admin
12
+ * (which previews "what would this rule catch?"), so the two can never disagree
13
+ * about whether an ambulance would have been called.
14
+ *
15
+ * A disabled rule never matches, and a rule whose match key is missing on either
16
+ * side never matches - a rule with no incident type cannot silently become a
17
+ * catch-all.
18
+ */
19
+ export function coverageRuleMatches(rule, subject) {
20
+ if (rule.enabled === false)
21
+ return false;
22
+ switch (rule.matchType) {
23
+ case PartnerCoverageMatchType.ALL:
24
+ return true;
25
+ case PartnerCoverageMatchType.INCIDENT_TYPE:
26
+ return (rule.incidentTypeId != null &&
27
+ subject.incidentTypeId != null &&
28
+ rule.incidentTypeId === subject.incidentTypeId);
29
+ case PartnerCoverageMatchType.INCIDENT_CATEGORY:
30
+ return (rule.incidentCategoryId != null &&
31
+ subject.incidentCategoryId != null &&
32
+ rule.incidentCategoryId === subject.incidentCategoryId);
33
+ case PartnerCoverageMatchType.EMERGENCY_TYPE:
34
+ return (rule.emergencyType != null &&
35
+ subject.emergencyType != null &&
36
+ String(rule.emergencyType) === String(subject.emergencyType));
37
+ default:
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * The routing mode actually applied to a dispatch.
43
+ *
44
+ * A rule-level override wins over the partnership's default, and DISABLED at
45
+ * either level wins over everything - an organization that has switched routing
46
+ * off must not be overridden by a rule it forgot about.
47
+ */
48
+ export function resolveRoutingMode(integrationMode, ruleOverride) {
49
+ if (integrationMode === PartnerRoutingMode.DISABLED)
50
+ return PartnerRoutingMode.DISABLED;
51
+ if (!ruleOverride)
52
+ return integrationMode;
53
+ return ruleOverride;
54
+ }
55
+ /**
56
+ * How a partner is told the incident's location was obtained, derived from the
57
+ * reporting channel.
58
+ *
59
+ * `overrides` accepts a partnership's `locationProviderByChannel` configuration
60
+ * verbatim; unknown channels and unknown provider values fall back to the
61
+ * platform default rather than being passed through to the partner.
62
+ */
63
+ export function mapChannelToLocationProvider(channel, overrides) {
64
+ const fallback = PartnerLocationProvider.NETWORK;
65
+ if (!channel)
66
+ return fallback;
67
+ const override = overrides === null || overrides === void 0 ? void 0 : overrides[String(channel)];
68
+ if (override && isPartnerLocationProvider(override)) {
69
+ return override;
70
+ }
71
+ const mapped = PARTNER_CHANNEL_LOCATION_PROVIDER[channel];
72
+ return mapped !== null && mapped !== void 0 ? mapped : fallback;
73
+ }
74
+ /** Type guard for a value claiming to be a {@link PartnerLocationProvider}. */
75
+ export function isPartnerLocationProvider(value) {
76
+ return (typeof value === 'string' &&
77
+ Object.values(PartnerLocationProvider).includes(value));
78
+ }
79
+ /** Whether a failure should be retried, or has no chance of succeeding. */
80
+ export function isPermanentDispatchFailure(reason) {
81
+ if (!reason)
82
+ return false;
83
+ return PERMANENT_PARTNER_DISPATCH_FAILURE_REASONS.includes(reason);
84
+ }
85
+ /** Whether a dispatch status means the partner has the emergency. */
86
+ export function isDeliveredDispatchStatus(status) {
87
+ return DELIVERED_PARTNER_DISPATCH_STATUSES.includes(status);
88
+ }
89
+ /**
90
+ * Seconds to wait before retry number `attemptNumber` (1-based), as an
91
+ * exponential backoff clamped to the configured ceiling.
92
+ */
93
+ export function retryDelaySeconds(attemptNumber, baseSeconds = PARTNER_DISPATCH_DEFAULTS.RETRY_BASE_SECONDS, maxSeconds = PARTNER_DISPATCH_DEFAULTS.RETRY_MAX_SECONDS) {
94
+ const safeAttempt = Number.isFinite(attemptNumber) && attemptNumber > 0 ? Math.floor(attemptNumber) : 1;
95
+ const delay = baseSeconds * Math.pow(2, safeAttempt - 1);
96
+ return Math.min(delay, maxSeconds);
97
+ }
98
+ /**
99
+ * Roll every dispatch on an incident up into the one status stored on the
100
+ * incident row.
101
+ *
102
+ * Order matters and encodes what an operator most needs to see first: anything
103
+ * still waiting on a human outranks a settled outcome, and a mix of delivered
104
+ * and failed is reported as PARTIALLY_ROUTED rather than rounded to either.
105
+ */
106
+ export function summarizeIncidentRoutingStatus(statuses) {
107
+ if (!statuses || statuses.length === 0)
108
+ return IncidentPartnerRoutingStatus.NOT_ROUTED;
109
+ if (statuses.some((s) => s === PartnerDispatchStatus.PENDING_APPROVAL)) {
110
+ return IncidentPartnerRoutingStatus.AWAITING_APPROVAL;
111
+ }
112
+ if (statuses.some((s) => s === PartnerDispatchStatus.QUEUED || s === PartnerDispatchStatus.SENDING)) {
113
+ return IncidentPartnerRoutingStatus.PENDING;
114
+ }
115
+ const delivered = statuses.filter(isDeliveredDispatchStatus).length;
116
+ if (delivered === statuses.length)
117
+ return IncidentPartnerRoutingStatus.ROUTED;
118
+ if (delivered > 0)
119
+ return IncidentPartnerRoutingStatus.PARTIALLY_ROUTED;
120
+ const declined = statuses.filter((s) => s === PartnerDispatchStatus.REJECTED ||
121
+ s === PartnerDispatchStatus.CANCELLED ||
122
+ s === PartnerDispatchStatus.EXPIRED).length;
123
+ if (declined === statuses.length)
124
+ return IncidentPartnerRoutingStatus.DECLINED;
125
+ return IncidentPartnerRoutingStatus.FAILED;
126
+ }
127
+ //# sourceMappingURL=partner-routing.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-routing.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-routing.util.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,11 @@ export const PERMISSIONS_DATA = [
16
16
  PermissionActions.CREATE_PARTNER,
17
17
  PermissionActions.READ_PARTNER,
18
18
  PermissionActions.UPDATE_PARTNER,
19
- PermissionActions.DELETE_PARTNER
19
+ PermissionActions.DELETE_PARTNER,
20
+ PermissionActions.READ_PARTNER_DISPATCH,
21
+ PermissionActions.APPROVE_PARTNER_DISPATCH,
22
+ PermissionActions.CANCEL_PARTNER_DISPATCH,
23
+ PermissionActions.RESEND_PARTNER_DISPATCH
20
24
  ]
21
25
  },
22
26
  {
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,20 @@ export var PermissionActions;
6
6
  PermissionActions["UPDATE_ORGANIZATION"] = "update:organization";
7
7
  PermissionActions["DELETE_ORGANIZATION"] = "delete:organization";
8
8
  // Module: Partner
9
+ // Configuring an organization's third-party service partnerships
10
+ // (clarion-partner-services). These four already existed and were dormant;
11
+ // they now govern partnership and coverage-rule CRUD.
9
12
  PermissionActions["CREATE_PARTNER"] = "create:partner";
10
13
  PermissionActions["READ_PARTNER"] = "read:partner";
11
14
  PermissionActions["UPDATE_PARTNER"] = "update:partner";
12
15
  PermissionActions["DELETE_PARTNER"] = "delete:partner";
16
+ // Acting on an individual routed emergency. Kept apart from the CRUD
17
+ // actions above because the people who confirm an ambulance (control-room
18
+ // operators) are not the people who configure the partnership.
19
+ PermissionActions["READ_PARTNER_DISPATCH"] = "read:partner-dispatch";
20
+ PermissionActions["APPROVE_PARTNER_DISPATCH"] = "approve:partner-dispatch";
21
+ PermissionActions["CANCEL_PARTNER_DISPATCH"] = "cancel:partner-dispatch";
22
+ PermissionActions["RESEND_PARTNER_DISPATCH"] = "resend:partner-dispatch";
13
23
  // Module: ControlCentre
14
24
  PermissionActions["CREATE_CONTROL_CENTRE"] = "create:control-centre";
15
25
  PermissionActions["READ_CONTROL_CENTRE"] = "read:control-centre";
@@ -1 +1 @@
1
- {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBA6HX;AA7HD,WAAY,iBAAiB;IACzB,uBAAuB;IACvB,gEAA2C,CAAA;IAC3C,4DAAuC,CAAA;IACvC,gEAA2C,CAAA;IAC3C,gEAA2C,CAAA;IAE3C,kBAAkB;IAClB,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IAEjC,wBAAwB;IACxB,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,mBAAmB;IACnB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,wDAAmC,CAAA;IACnC,wDAAmC,CAAA;IACnC,oFAA+D,CAAA;IAC/D,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAE/D,uBAAuB;IACvB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,kEAA6C,CAAA;IAE7C,kBAAkB;IAClB,8DAAyC,CAAA;IACzC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,8DAAyC,CAAA;IAEzC,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,wEAAmD,CAAA;IACnD,oEAA+C,CAAA;IAC/C,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IAEnD,sFAAiE,CAAA;IACjE,kFAA6D,CAAA;IAC7D,sFAAiE,CAAA;IACjE,sFAAiE,CAAA;IAEjE,0EAAqD,CAAA;IACrD,sEAAiD,CAAA;IACjD,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;IAErD,0DAAqC,CAAA;IAErC,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,4DAAuC,CAAA;IAEvC,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAE/B,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAE7B,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IAEjC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAE7B,8FAAyE,CAAA;IACzE,kFAA6D,CAAA;IAC7D,0GAAqF,CAAA;IACrF,sFAAiE,CAAA;IAEjE,4FAAuE,CAAA;IACvE,gFAA2D,CAAA;IAC3D,wGAAmF,CAAA;IACnF,oFAA+D,CAAA;IAE/D,4DAAuC,CAAA;IACvC,wDAAmC,CAAA;IACnC,wEAAmD,CAAA;IACnD,kEAA6C,CAAA;IAE7C,mBAAmB;IACnB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAC/C,kEAA6C,CAAA;AACjD,CAAC,EA7HW,iBAAiB,KAAjB,iBAAiB,QA6H5B"}
1
+ {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}