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,56 @@
1
+ import { PartnerIntegrationEnvironment } from '../enums/partner-integration-environment.enum';
2
+ import { PartnerProviderCode } from '../enums/partner-provider-code.enum';
3
+ import { PartnerServiceCapability } from '../enums/partner-service-capability.enum';
4
+ /** A credential a partnership must supply before it can dispatch. */
5
+ export interface PartnerProviderCredentialField {
6
+ /** Stable key the adapter reads, e.g. `apiKey`. */
7
+ key: string;
8
+ label: string;
9
+ description?: string;
10
+ required: boolean;
11
+ /**
12
+ * Always true today, and asserted by the service: a credential is stored as
13
+ * a REFERENCE to a secret (a Secret Manager name or an env var name), never
14
+ * as its value.
15
+ */
16
+ secret: boolean;
17
+ }
18
+ /** A non-secret setting a partnership must (or may) supply for a provider. */
19
+ export interface PartnerProviderConfigField {
20
+ /** Stable key inside the partnership configuration object, e.g. `source`. */
21
+ key: string;
22
+ label: string;
23
+ description?: string;
24
+ required: boolean;
25
+ type: 'string' | 'number' | 'boolean' | 'enum';
26
+ /** Permitted values when `type` is `enum`. */
27
+ allowedValues?: string[];
28
+ defaultValue?: string | number | boolean;
29
+ /** Maximum length for string values, when the partner imposes one. */
30
+ maxLength?: number;
31
+ }
32
+ /**
33
+ * What one registered partner adapter can do, published by
34
+ * `GET /partner-services/providers`.
35
+ *
36
+ * The adapter registry is the single source of truth for the partner catalogue -
37
+ * there is deliberately no catalogue table, because a row and an adapter can
38
+ * drift and a missing adapter is the one thing an operator must never discover
39
+ * mid-emergency. The admin UI builds its "add a partner" form from these
40
+ * descriptors.
41
+ */
42
+ export interface PartnerProviderDescriptor {
43
+ providerCode: PartnerProviderCode;
44
+ name: string;
45
+ description: string;
46
+ /** Services this partner can be asked for. */
47
+ capabilities: PartnerServiceCapability[];
48
+ /** Suggested base URLs per environment; a partnership may override them. */
49
+ defaultBaseUrls: Partial<Record<PartnerIntegrationEnvironment, string>>;
50
+ configFields: PartnerProviderConfigField[];
51
+ credentialFields: PartnerProviderCredentialField[];
52
+ /** True when the adapter implements a non-mutating connectivity probe. */
53
+ supportsHealthCheck: boolean;
54
+ /** False for reserved provider codes that have no working adapter yet. */
55
+ available: boolean;
56
+ }
@@ -0,0 +1,24 @@
1
+ import { IncidentPartnerRoutingStatus } from '../enums/incident-partner-routing-status.enum';
2
+ import { IncidentPartnerRoutingEntry } from './incident-partner-routing';
3
+ /**
4
+ * What clarion-partner-services answers when clarion-incident hands it a newly
5
+ * created incident.
6
+ *
7
+ * Returned synchronously from `POST /partner-services/routing/incidents` so the
8
+ * caller learns immediately whether any partner was engaged, without having to
9
+ * wait for the outbound partner call itself: AUTO dispatches are still in flight
10
+ * when this returns, and their outcome arrives later on the routing callback.
11
+ */
12
+ export interface PartnerRoutingResult {
13
+ incidentId: number;
14
+ organizationId: number;
15
+ status: IncidentPartnerRoutingStatus;
16
+ evaluatedAt: string;
17
+ /** Partnerships that were enabled and in scope for this incident. */
18
+ consideredIntegrationCount: number;
19
+ /** Partnerships whose coverage rules matched. */
20
+ matchedIntegrationCount: number;
21
+ entries: IncidentPartnerRoutingEntry[];
22
+ /** True when nothing was created because the incident had already been routed. */
23
+ idempotentReplay: boolean;
24
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Trim a value to a partner's field limit without ever throwing.
3
+ *
4
+ * Partner APIs reject an over-long field outright, and refusing to send an
5
+ * emergency because a description ran long is never the right trade - so the
6
+ * value is truncated and the emergency still goes.
7
+ */
8
+ export declare function truncateForPartner(value: string | null | undefined, maxLength: number): string | undefined;
9
+ /**
10
+ * Build the free-text description of what is wrong, from the incident's type,
11
+ * category and description.
12
+ *
13
+ * Ordered most-specific-first so a partner reading only the opening words still
14
+ * learns the useful part, and clamped to the partner's limit.
15
+ */
16
+ export declare function buildPartnerIssueText(parts: {
17
+ typeName?: string | null;
18
+ categoryName?: string | null;
19
+ description?: string | null;
20
+ maxLength?: number;
21
+ }): string | undefined;
22
+ /**
23
+ * Mask an identifier for logging: keeps enough to correlate, never enough to
24
+ * reuse. `+254712345678` becomes `+254***5678`.
25
+ *
26
+ * Every log line in the partner pipeline goes through this - a dispatch carries
27
+ * a reporter's phone number and a partner's reference, and neither belongs in
28
+ * plaintext in a log aggregator.
29
+ */
30
+ export declare function maskPartnerIdentifier(value: string | null | undefined): string;
31
+ /**
32
+ * Strip anything credential-shaped out of a value before it is persisted on a
33
+ * dispatch or written to a log.
34
+ *
35
+ * Applied to every partner request and response body the service stores.
36
+ * Matching is on the KEY, case-insensitively and by substring, because partners
37
+ * do not agree on a name for a secret (`apiKey`, `api_key`, `access_token`,
38
+ * `Authorization`, ...). The shape of the payload is preserved so an audit still
39
+ * shows what was sent.
40
+ */
41
+ export declare function sanitizePartnerPayload(value: unknown, depth?: number): unknown;
42
+ /**
43
+ * A URL safe to store on an attempt record: origin and path only, with any
44
+ * query string replaced.
45
+ *
46
+ * Partner APIs put credentials in query strings often enough that keeping one
47
+ * verbatim in an audit table is a real exposure.
48
+ */
49
+ export declare function maskPartnerUrl(url: string | null | undefined): string;
@@ -0,0 +1,71 @@
1
+ import { IncidentChannel } from '../../incident/enums/incident-channel.enum';
2
+ import { IncidentEmergencyType } from '../../incident/enums/incident-emergency-type.enum';
3
+ import { IncidentPartnerRoutingStatus } from '../enums/incident-partner-routing-status.enum';
4
+ import { PartnerCoverageMatchType } from '../enums/partner-coverage-match-type.enum';
5
+ import { PartnerDispatchFailureReason } from '../enums/partner-dispatch-failure-reason.enum';
6
+ import { PartnerDispatchStatus } from '../enums/partner-dispatch-status.enum';
7
+ import { PartnerLocationProvider } from '../enums/partner-location-provider.enum';
8
+ import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
9
+ /** The incident facts a coverage rule is matched against. */
10
+ export interface PartnerCoverageSubject {
11
+ incidentTypeId?: number | null;
12
+ incidentCategoryId?: number | null;
13
+ emergencyType?: IncidentEmergencyType | string | null;
14
+ }
15
+ /** The parts of a coverage rule that decide whether it matches. */
16
+ export interface PartnerCoverageCriteria {
17
+ matchType: PartnerCoverageMatchType;
18
+ incidentTypeId?: number | null;
19
+ incidentCategoryId?: number | null;
20
+ emergencyType?: IncidentEmergencyType | string | null;
21
+ enabled?: boolean;
22
+ }
23
+ /**
24
+ * Whether a coverage rule applies to an incident.
25
+ *
26
+ * Shared by clarion-partner-services (which routes on it) and the web admin
27
+ * (which previews "what would this rule catch?"), so the two can never disagree
28
+ * about whether an ambulance would have been called.
29
+ *
30
+ * A disabled rule never matches, and a rule whose match key is missing on either
31
+ * side never matches - a rule with no incident type cannot silently become a
32
+ * catch-all.
33
+ */
34
+ export declare function coverageRuleMatches(rule: PartnerCoverageCriteria, subject: PartnerCoverageSubject): boolean;
35
+ /**
36
+ * The routing mode actually applied to a dispatch.
37
+ *
38
+ * A rule-level override wins over the partnership's default, and DISABLED at
39
+ * either level wins over everything - an organization that has switched routing
40
+ * off must not be overridden by a rule it forgot about.
41
+ */
42
+ export declare function resolveRoutingMode(integrationMode: PartnerRoutingMode, ruleOverride?: PartnerRoutingMode | null): PartnerRoutingMode;
43
+ /**
44
+ * How a partner is told the incident's location was obtained, derived from the
45
+ * reporting channel.
46
+ *
47
+ * `overrides` accepts a partnership's `locationProviderByChannel` configuration
48
+ * verbatim; unknown channels and unknown provider values fall back to the
49
+ * platform default rather than being passed through to the partner.
50
+ */
51
+ export declare function mapChannelToLocationProvider(channel?: IncidentChannel | string | null, overrides?: Record<string, string> | null): PartnerLocationProvider;
52
+ /** Type guard for a value claiming to be a {@link PartnerLocationProvider}. */
53
+ export declare function isPartnerLocationProvider(value: unknown): value is PartnerLocationProvider;
54
+ /** Whether a failure should be retried, or has no chance of succeeding. */
55
+ export declare function isPermanentDispatchFailure(reason?: PartnerDispatchFailureReason | null): boolean;
56
+ /** Whether a dispatch status means the partner has the emergency. */
57
+ export declare function isDeliveredDispatchStatus(status: PartnerDispatchStatus): boolean;
58
+ /**
59
+ * Seconds to wait before retry number `attemptNumber` (1-based), as an
60
+ * exponential backoff clamped to the configured ceiling.
61
+ */
62
+ export declare function retryDelaySeconds(attemptNumber: number, baseSeconds?: number, maxSeconds?: number): number;
63
+ /**
64
+ * Roll every dispatch on an incident up into the one status stored on the
65
+ * incident row.
66
+ *
67
+ * Order matters and encodes what an operator most needs to see first: anything
68
+ * still waiting on a human outranks a settled outcome, and a mix of delivered
69
+ * and failed is reported as PARTIALLY_ROUTED rather than rounded to either.
70
+ */
71
+ export declare function summarizeIncidentRoutingStatus(statuses: PartnerDispatchStatus[]): IncidentPartnerRoutingStatus;
@@ -7,6 +7,10 @@ export declare enum PermissionActions {
7
7
  READ_PARTNER = "read:partner",
8
8
  UPDATE_PARTNER = "update:partner",
9
9
  DELETE_PARTNER = "delete:partner",
10
+ READ_PARTNER_DISPATCH = "read:partner-dispatch",
11
+ APPROVE_PARTNER_DISPATCH = "approve:partner-dispatch",
12
+ CANCEL_PARTNER_DISPATCH = "cancel:partner-dispatch",
13
+ RESEND_PARTNER_DISPATCH = "resend:partner-dispatch",
10
14
  CREATE_CONTROL_CENTRE = "create:control-centre",
11
15
  READ_CONTROL_CENTRE = "read:control-centre",
12
16
  UPDATE_CONTROL_CENTRE = "update:control-centre",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grm-shared-library",
3
- "version": "1.1.194",
3
+ "version": "1.1.196",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",