grm-shared-library 1.1.195 → 1.1.197
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kafka/topics.js +3 -0
- package/dist/cjs/kafka/topics.js.map +1 -1
- package/dist/cjs/modules/common/constants/service.const.js +1 -0
- package/dist/cjs/modules/common/constants/service.const.js.map +1 -1
- package/dist/cjs/modules/partner/constants/partner-defaults.const.js +74 -0
- package/dist/cjs/modules/partner/constants/partner-defaults.const.js.map +1 -0
- package/dist/cjs/modules/partner/constants/partner-kafka.const.js +20 -0
- package/dist/cjs/modules/partner/constants/partner-kafka.const.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js +101 -0
- package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js +192 -0
- package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js +36 -0
- package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js +230 -0
- package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js +132 -0
- package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js +9 -0
- package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js +15 -0
- package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
- package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js +30 -0
- package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js +18 -0
- package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js +23 -0
- package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js +51 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js +21 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js +52 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js +17 -0
- package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js +23 -0
- package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js +20 -0
- package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js +28 -0
- package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js +25 -0
- package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js +29 -0
- package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
- package/dist/cjs/modules/partner/index.js +55 -0
- package/dist/cjs/modules/partner/index.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js +3 -0
- package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-integration.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-integration.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-routing-result.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-routing-result.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-payload.util.js +127 -0
- package/dist/cjs/modules/partner/utils/partner-payload.util.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-routing.util.js +137 -0
- package/dist/cjs/modules/partner/utils/partner-routing.util.js.map +1 -0
- package/dist/cjs/modules/permission/data/permissions.data.js +5 -1
- package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +10 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/role/data/roles.data.js +26 -0
- package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kafka/topics.js +3 -0
- package/dist/esm/kafka/topics.js.map +1 -1
- package/dist/esm/modules/common/constants/service.const.js +1 -0
- package/dist/esm/modules/common/constants/service.const.js.map +1 -1
- package/dist/esm/modules/partner/constants/partner-defaults.const.js +71 -0
- package/dist/esm/modules/partner/constants/partner-defaults.const.js.map +1 -0
- package/dist/esm/modules/partner/constants/partner-kafka.const.js +17 -0
- package/dist/esm/modules/partner/constants/partner-kafka.const.js.map +1 -0
- package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js +97 -0
- package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js +188 -0
- package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js +32 -0
- package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js +224 -0
- package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js +127 -0
- package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js +5 -0
- package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js +11 -0
- package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
- package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js +27 -0
- package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js +15 -0
- package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js +20 -0
- package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js +48 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js +18 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js +49 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js +14 -0
- package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-integration-status.enum.js +20 -0
- package/dist/esm/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-location-provider.enum.js +17 -0
- package/dist/esm/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-provider-code.enum.js +25 -0
- package/dist/esm/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js +22 -0
- package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-service-capability.enum.js +26 -0
- package/dist/esm/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
- package/dist/esm/modules/partner/index.js +39 -0
- package/dist/esm/modules/partner/index.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/incident-partner-routing.js +2 -0
- package/dist/esm/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-integration.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-integration.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-routing-result.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-routing-result.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-payload.util.js +119 -0
- package/dist/esm/modules/partner/utils/partner-payload.util.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-routing.util.js +127 -0
- package/dist/esm/modules/partner/utils/partner-routing.util.js.map +1 -0
- package/dist/esm/modules/permission/data/permissions.data.js +5 -1
- package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +10 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/role/data/roles.data.js +26 -0
- package/dist/esm/modules/role/data/roles.data.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/kafka/topics.d.ts +2 -0
- package/dist/types/modules/common/constants/service.const.d.ts +4 -0
- package/dist/types/modules/partner/constants/partner-defaults.const.d.ts +60 -0
- package/dist/types/modules/partner/constants/partner-kafka.const.d.ts +16 -0
- package/dist/types/modules/partner/dtos/create-partner-coverage-rule.dto.d.ts +24 -0
- package/dist/types/modules/partner/dtos/create-partner-integration.dto.d.ts +31 -0
- package/dist/types/modules/partner/dtos/partner-dispatch-decision.dto.d.ts +11 -0
- package/dist/types/modules/partner/dtos/route-incident-to-partners.dto.d.ts +52 -0
- package/dist/types/modules/partner/dtos/update-incident-partner-routing.dto.d.ts +34 -0
- package/dist/types/modules/partner/dtos/update-partner-coverage-rule.dto.d.ts +5 -0
- package/dist/types/modules/partner/dtos/update-partner-integration.dto.d.ts +11 -0
- package/dist/types/modules/partner/enums/incident-partner-routing-status.enum.d.ts +25 -0
- package/dist/types/modules/partner/enums/partner-adapter-operation.enum.d.ts +13 -0
- package/dist/types/modules/partner/enums/partner-coverage-match-type.enum.d.ts +18 -0
- package/dist/types/modules/partner/enums/partner-dispatch-failure-reason.enum.d.ts +37 -0
- package/dist/types/modules/partner/enums/partner-dispatch-scope.enum.d.ts +16 -0
- package/dist/types/modules/partner/enums/partner-dispatch-status.enum.d.ts +37 -0
- package/dist/types/modules/partner/enums/partner-integration-environment.enum.d.ts +12 -0
- package/dist/types/modules/partner/enums/partner-integration-status.enum.d.ts +18 -0
- package/dist/types/modules/partner/enums/partner-location-provider.enum.d.ts +15 -0
- package/dist/types/modules/partner/enums/partner-provider-code.enum.d.ts +23 -0
- package/dist/types/modules/partner/enums/partner-routing-mode.enum.d.ts +20 -0
- package/dist/types/modules/partner/enums/partner-service-capability.enum.d.ts +24 -0
- package/dist/types/modules/partner/index.d.ts +33 -0
- package/dist/types/modules/partner/interfaces/incident-partner-routing.d.ts +43 -0
- package/dist/types/modules/partner/interfaces/partner-connection-test-result.d.ts +22 -0
- package/dist/types/modules/partner/interfaces/partner-coverage-rule.d.ts +36 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch-events.d.ts +40 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch-location.d.ts +13 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch.d.ts +119 -0
- package/dist/types/modules/partner/interfaces/partner-emergency-contact.d.ts +15 -0
- package/dist/types/modules/partner/interfaces/partner-integration.d.ts +63 -0
- package/dist/types/modules/partner/interfaces/partner-provider-descriptor.d.ts +56 -0
- package/dist/types/modules/partner/interfaces/partner-routing-result.d.ts +24 -0
- package/dist/types/modules/partner/utils/partner-payload.util.d.ts +59 -0
- package/dist/types/modules/partner/utils/partner-routing.util.d.ts +71 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-partner-routing-status.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/incident-partner-routing-status.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,4BAeX;AAfD,WAAY,4BAA4B;IACpC,+DAA+D;IAC/D,yDAAyB,CAAA;IACzB,4EAA4E;IAC5E,mDAAmB,CAAA;IACnB,6EAA6E;IAC7E,uEAAuC,CAAA;IACvC,0CAA0C;IAC1C,iDAAiB,CAAA;IACjB,8DAA8D;IAC9D,qEAAqC,CAAA;IACrC,6BAA6B;IAC7B,iDAAiB,CAAA;IACjB,oEAAoE;IACpE,qDAAqB,CAAA;AACzB,CAAC,EAfW,4BAA4B,KAA5B,4BAA4B,QAevC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The outbound partner call an attempt record describes. Kept separate from the
|
|
3
|
+
* dispatch status so an audit trail can distinguish "we could not authenticate"
|
|
4
|
+
* from "the emergency itself was rejected".
|
|
5
|
+
*/
|
|
6
|
+
export var PartnerAdapterOperation;
|
|
7
|
+
(function (PartnerAdapterOperation) {
|
|
8
|
+
/** Exchanging the stored credential for a short-lived access token. */
|
|
9
|
+
PartnerAdapterOperation["AUTHENTICATE"] = "AUTHENTICATE";
|
|
10
|
+
/** A non-mutating connectivity probe. */
|
|
11
|
+
PartnerAdapterOperation["HEALTH_CHECK"] = "HEALTH_CHECK";
|
|
12
|
+
/** Submitting the emergency itself. */
|
|
13
|
+
PartnerAdapterOperation["DISPATCH"] = "DISPATCH";
|
|
14
|
+
})(PartnerAdapterOperation || (PartnerAdapterOperation = {}));
|
|
15
|
+
//# sourceMappingURL=partner-adapter-operation.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-adapter-operation.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-adapter-operation.enum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,uEAAuE;IACvE,wDAA6B,CAAA;IAC7B,yCAAyC;IACzC,wDAA6B,CAAA;IAC7B,uCAAuC;IACvC,gDAAqB,CAAA;AACzB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a coverage rule matches an incident on.
|
|
3
|
+
*
|
|
4
|
+
* Incident categories and types are per-organization rows in clarion-incident,
|
|
5
|
+
* so a rule referencing them is inherently tenant-scoped; emergency type is a
|
|
6
|
+
* platform-wide enum. `ALL` is the catch-all an organization uses when a partner
|
|
7
|
+
* covers everything it responds to.
|
|
8
|
+
*/
|
|
9
|
+
export var PartnerCoverageMatchType;
|
|
10
|
+
(function (PartnerCoverageMatchType) {
|
|
11
|
+
/** Every incident the organization raises. */
|
|
12
|
+
PartnerCoverageMatchType["ALL"] = "ALL";
|
|
13
|
+
/** One `types` row in clarion-incident (e.g. the org's "Medical" type). */
|
|
14
|
+
PartnerCoverageMatchType["INCIDENT_TYPE"] = "INCIDENT_TYPE";
|
|
15
|
+
/** One `categories` row in clarion-incident — matches all of its types. */
|
|
16
|
+
PartnerCoverageMatchType["INCIDENT_CATEGORY"] = "INCIDENT_CATEGORY";
|
|
17
|
+
/** The platform-wide emergency classification (emergency / non-emergency / panic). */
|
|
18
|
+
PartnerCoverageMatchType["EMERGENCY_TYPE"] = "EMERGENCY_TYPE";
|
|
19
|
+
})(PartnerCoverageMatchType || (PartnerCoverageMatchType = {}));
|
|
20
|
+
//# sourceMappingURL=partner-coverage-match-type.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-coverage-match-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-coverage-match-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,wBASX;AATD,WAAY,wBAAwB;IAChC,8CAA8C;IAC9C,uCAAW,CAAA;IACX,2EAA2E;IAC3E,2DAA+B,CAAA;IAC/B,2EAA2E;IAC3E,mEAAuC,CAAA;IACvC,sFAAsF;IACtF,6DAAiC,CAAA;AACrC,CAAC,EATW,wBAAwB,KAAxB,wBAAwB,QASnC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a dispatch did not reach its partner.
|
|
3
|
+
*
|
|
4
|
+
* Split into two families that the retry policy treats very differently:
|
|
5
|
+
* transient reasons are retried on a backoff, permanent ones fail the dispatch
|
|
6
|
+
* immediately so an operator sees the truth instead of a spinner.
|
|
7
|
+
*/
|
|
8
|
+
export var PartnerDispatchFailureReason;
|
|
9
|
+
(function (PartnerDispatchFailureReason) {
|
|
10
|
+
/** The partner rejected the request body (HTTP 400). Permanent. */
|
|
11
|
+
PartnerDispatchFailureReason["INVALID_PAYLOAD"] = "INVALID_PAYLOAD";
|
|
12
|
+
/** The incident lacks something the partner requires (phone, location). Permanent. */
|
|
13
|
+
PartnerDispatchFailureReason["MISSING_REQUIRED_FIELD"] = "MISSING_REQUIRED_FIELD";
|
|
14
|
+
/** The partner refused the credentials (HTTP 401). Permanent after one re-auth. */
|
|
15
|
+
PartnerDispatchFailureReason["AUTHENTICATION_FAILED"] = "AUTHENTICATION_FAILED";
|
|
16
|
+
/** The partner account lacks the requested feature (HTTP 403). Permanent. */
|
|
17
|
+
PartnerDispatchFailureReason["FEATURE_NOT_ENABLED"] = "FEATURE_NOT_ENABLED";
|
|
18
|
+
/** The partner said no for a business reason (HTTP 409/422). Permanent. */
|
|
19
|
+
PartnerDispatchFailureReason["PROVIDER_REJECTED"] = "PROVIDER_REJECTED";
|
|
20
|
+
/** No adapter is registered for the partnership's provider code. Permanent. */
|
|
21
|
+
PartnerDispatchFailureReason["ADAPTER_NOT_SUPPORTED"] = "ADAPTER_NOT_SUPPORTED";
|
|
22
|
+
/** The partnership was disabled or its routing mode turned off mid-flight. Permanent. */
|
|
23
|
+
PartnerDispatchFailureReason["INTEGRATION_DISABLED"] = "INTEGRATION_DISABLED";
|
|
24
|
+
/** The configured credential could not be resolved from the secret store. Transient. */
|
|
25
|
+
PartnerDispatchFailureReason["CREDENTIAL_UNAVAILABLE"] = "CREDENTIAL_UNAVAILABLE";
|
|
26
|
+
/** The partner was rate limiting (HTTP 429). Transient. */
|
|
27
|
+
PartnerDispatchFailureReason["RATE_LIMITED"] = "RATE_LIMITED";
|
|
28
|
+
/** The partner errored (HTTP 5xx). Transient. */
|
|
29
|
+
PartnerDispatchFailureReason["PROVIDER_UNAVAILABLE"] = "PROVIDER_UNAVAILABLE";
|
|
30
|
+
/** The request timed out or the network failed. Transient. */
|
|
31
|
+
PartnerDispatchFailureReason["TIMEOUT"] = "TIMEOUT";
|
|
32
|
+
/** Every transient retry was used up. Terminal. */
|
|
33
|
+
PartnerDispatchFailureReason["MAX_ATTEMPTS_EXCEEDED"] = "MAX_ATTEMPTS_EXCEEDED";
|
|
34
|
+
/** Anything the list above does not describe. Treated as transient. */
|
|
35
|
+
PartnerDispatchFailureReason["UNKNOWN"] = "UNKNOWN";
|
|
36
|
+
})(PartnerDispatchFailureReason || (PartnerDispatchFailureReason = {}));
|
|
37
|
+
/** Failure reasons that must NOT be retried - retrying them cannot succeed. */
|
|
38
|
+
export const PERMANENT_PARTNER_DISPATCH_FAILURE_REASONS = [
|
|
39
|
+
PartnerDispatchFailureReason.INVALID_PAYLOAD,
|
|
40
|
+
PartnerDispatchFailureReason.MISSING_REQUIRED_FIELD,
|
|
41
|
+
PartnerDispatchFailureReason.AUTHENTICATION_FAILED,
|
|
42
|
+
PartnerDispatchFailureReason.FEATURE_NOT_ENABLED,
|
|
43
|
+
PartnerDispatchFailureReason.PROVIDER_REJECTED,
|
|
44
|
+
PartnerDispatchFailureReason.ADAPTER_NOT_SUPPORTED,
|
|
45
|
+
PartnerDispatchFailureReason.INTEGRATION_DISABLED,
|
|
46
|
+
PartnerDispatchFailureReason.MAX_ATTEMPTS_EXCEEDED,
|
|
47
|
+
];
|
|
48
|
+
//# sourceMappingURL=partner-dispatch-failure-reason.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-dispatch-failure-reason.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-dispatch-failure-reason.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,4BA2BX;AA3BD,WAAY,4BAA4B;IACpC,mEAAmE;IACnE,mEAAmC,CAAA;IACnC,sFAAsF;IACtF,iFAAiD,CAAA;IACjD,mFAAmF;IACnF,+EAA+C,CAAA;IAC/C,6EAA6E;IAC7E,2EAA2C,CAAA;IAC3C,2EAA2E;IAC3E,uEAAuC,CAAA;IACvC,+EAA+E;IAC/E,+EAA+C,CAAA;IAC/C,yFAAyF;IACzF,6EAA6C,CAAA;IAC7C,wFAAwF;IACxF,iFAAiD,CAAA;IACjD,2DAA2D;IAC3D,6DAA6B,CAAA;IAC7B,iDAAiD;IACjD,6EAA6C,CAAA;IAC7C,8DAA8D;IAC9D,mDAAmB,CAAA;IACnB,mDAAmD;IACnD,+EAA+C,CAAA;IAC/C,uEAAuE;IACvE,mDAAmB,CAAA;AACvB,CAAC,EA3BW,4BAA4B,KAA5B,4BAA4B,QA2BvC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0CAA0C,GAA4C;IAC/F,4BAA4B,CAAC,eAAe;IAC5C,4BAA4B,CAAC,sBAAsB;IACnD,4BAA4B,CAAC,qBAAqB;IAClD,4BAA4B,CAAC,mBAAmB;IAChD,4BAA4B,CAAC,iBAAiB;IAC9C,4BAA4B,CAAC,qBAAqB;IAClD,4BAA4B,CAAC,oBAAoB;IACjD,4BAA4B,CAAC,qBAAqB;CACrD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List filter for the admin "partner routing" views, in the same shape as the
|
|
3
|
+
* entitlement and alert-dispatch scopes already used by the incident list.
|
|
4
|
+
*/
|
|
5
|
+
export var PartnerDispatchScope;
|
|
6
|
+
(function (PartnerDispatchScope) {
|
|
7
|
+
/** No filter. */
|
|
8
|
+
PartnerDispatchScope["ALL"] = "ALL";
|
|
9
|
+
/** Incidents a partner was asked to attend (any status other than NOT_ROUTED). */
|
|
10
|
+
PartnerDispatchScope["ROUTED"] = "ROUTED";
|
|
11
|
+
/** Incidents currently waiting on a manual routing decision. */
|
|
12
|
+
PartnerDispatchScope["AWAITING_APPROVAL"] = "AWAITING_APPROVAL";
|
|
13
|
+
/** Incidents whose partner routing failed outright. */
|
|
14
|
+
PartnerDispatchScope["FAILED"] = "FAILED";
|
|
15
|
+
/** Incidents no partnership covered. */
|
|
16
|
+
PartnerDispatchScope["NOT_ROUTED"] = "NOT_ROUTED";
|
|
17
|
+
})(PartnerDispatchScope || (PartnerDispatchScope = {}));
|
|
18
|
+
//# sourceMappingURL=partner-dispatch-scope.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-dispatch-scope.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-dispatch-scope.enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC5B,iBAAiB;IACjB,mCAAW,CAAA;IACX,kFAAkF;IAClF,yCAAiB,CAAA;IACjB,gEAAgE;IAChE,+DAAuC,CAAA;IACvC,uDAAuD;IACvD,yCAAiB,CAAA;IACjB,wCAAwC;IACxC,iDAAyB,CAAA;AAC7B,CAAC,EAXW,oBAAoB,KAApB,oBAAoB,QAW/B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle of one incident's routing to one partner.
|
|
3
|
+
*
|
|
4
|
+
* Terminal states are SENT/ACKNOWLEDGED (the partner has the emergency),
|
|
5
|
+
* FAILED, REJECTED, CANCELLED and EXPIRED. Everything else is in flight.
|
|
6
|
+
*
|
|
7
|
+
* MANUAL routing starts at PENDING_APPROVAL and reaches QUEUED only when an
|
|
8
|
+
* operator approves; declining gives REJECTED, withdrawing gives CANCELLED and
|
|
9
|
+
* letting the approval window elapse gives EXPIRED. AUTO routing starts at
|
|
10
|
+
* QUEUED directly. QUEUED -> SENDING -> SENT on success, or back to QUEUED for a
|
|
11
|
+
* transient retry, or FAILED when the failure is permanent or the attempts run
|
|
12
|
+
* out. SENT -> ACKNOWLEDGED when the partner later reports progress.
|
|
13
|
+
*/
|
|
14
|
+
export var PartnerDispatchStatus;
|
|
15
|
+
(function (PartnerDispatchStatus) {
|
|
16
|
+
/** MANUAL routing: waiting for the organization to confirm or decline. */
|
|
17
|
+
PartnerDispatchStatus["PENDING_APPROVAL"] = "PENDING_APPROVAL";
|
|
18
|
+
/** Cleared to send - either AUTO, or approved - and waiting for a send attempt. */
|
|
19
|
+
PartnerDispatchStatus["QUEUED"] = "QUEUED";
|
|
20
|
+
/** A send attempt is in flight. */
|
|
21
|
+
PartnerDispatchStatus["SENDING"] = "SENDING";
|
|
22
|
+
/** The partner accepted the request and returned its own reference. */
|
|
23
|
+
PartnerDispatchStatus["SENT"] = "SENT";
|
|
24
|
+
/** The partner has since confirmed progress on the request (status callback). */
|
|
25
|
+
PartnerDispatchStatus["ACKNOWLEDGED"] = "ACKNOWLEDGED";
|
|
26
|
+
/** Permanently failed - rejected by the partner, or out of attempts. */
|
|
27
|
+
PartnerDispatchStatus["FAILED"] = "FAILED";
|
|
28
|
+
/** Declined by the organization instead of being sent. */
|
|
29
|
+
PartnerDispatchStatus["REJECTED"] = "REJECTED";
|
|
30
|
+
/** Withdrawn by the organization (before or after approval, never after SENT). */
|
|
31
|
+
PartnerDispatchStatus["CANCELLED"] = "CANCELLED";
|
|
32
|
+
/** The manual-approval window elapsed with no decision. */
|
|
33
|
+
PartnerDispatchStatus["EXPIRED"] = "EXPIRED";
|
|
34
|
+
})(PartnerDispatchStatus || (PartnerDispatchStatus = {}));
|
|
35
|
+
/** Statuses from which no further transition happens. */
|
|
36
|
+
export const TERMINAL_PARTNER_DISPATCH_STATUSES = [
|
|
37
|
+
PartnerDispatchStatus.SENT,
|
|
38
|
+
PartnerDispatchStatus.ACKNOWLEDGED,
|
|
39
|
+
PartnerDispatchStatus.FAILED,
|
|
40
|
+
PartnerDispatchStatus.REJECTED,
|
|
41
|
+
PartnerDispatchStatus.CANCELLED,
|
|
42
|
+
PartnerDispatchStatus.EXPIRED,
|
|
43
|
+
];
|
|
44
|
+
/** Statuses that mean the partner is (or should shortly be) working the emergency. */
|
|
45
|
+
export const DELIVERED_PARTNER_DISPATCH_STATUSES = [
|
|
46
|
+
PartnerDispatchStatus.SENT,
|
|
47
|
+
PartnerDispatchStatus.ACKNOWLEDGED,
|
|
48
|
+
];
|
|
49
|
+
//# sourceMappingURL=partner-dispatch-status.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-dispatch-status.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-dispatch-status.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,qBAmBX;AAnBD,WAAY,qBAAqB;IAC7B,0EAA0E;IAC1E,8DAAqC,CAAA;IACrC,mFAAmF;IACnF,0CAAiB,CAAA;IACjB,mCAAmC;IACnC,4CAAmB,CAAA;IACnB,uEAAuE;IACvE,sCAAa,CAAA;IACb,iFAAiF;IACjF,sDAA6B,CAAA;IAC7B,wEAAwE;IACxE,0CAAiB,CAAA;IACjB,0DAA0D;IAC1D,8CAAqB,CAAA;IACrB,kFAAkF;IAClF,gDAAuB,CAAA;IACvB,2DAA2D;IAC3D,4CAAmB,CAAA;AACvB,CAAC,EAnBW,qBAAqB,KAArB,qBAAqB,QAmBhC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,kCAAkC,GAAqC;IAChF,qBAAqB,CAAC,IAAI;IAC1B,qBAAqB,CAAC,YAAY;IAClC,qBAAqB,CAAC,MAAM;IAC5B,qBAAqB,CAAC,QAAQ;IAC9B,qBAAqB,CAAC,SAAS;IAC/B,qBAAqB,CAAC,OAAO;CAChC,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,mCAAmC,GAAqC;IACjF,qBAAqB,CAAC,IAAI;IAC1B,qBAAqB,CAAC,YAAY;CACrC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which of a partner's environments a partnership points at.
|
|
3
|
+
*
|
|
4
|
+
* Kept explicit — and part of the uniqueness key of a partnership — so an
|
|
5
|
+
* organization can hold a sandbox and a production integration with the same
|
|
6
|
+
* partner side by side, and so a dispatch record always says which one an
|
|
7
|
+
* emergency was actually sent to.
|
|
8
|
+
*/
|
|
9
|
+
export var PartnerIntegrationEnvironment;
|
|
10
|
+
(function (PartnerIntegrationEnvironment) {
|
|
11
|
+
PartnerIntegrationEnvironment["SANDBOX"] = "SANDBOX";
|
|
12
|
+
PartnerIntegrationEnvironment["PRODUCTION"] = "PRODUCTION";
|
|
13
|
+
})(PartnerIntegrationEnvironment || (PartnerIntegrationEnvironment = {}));
|
|
14
|
+
//# sourceMappingURL=partner-integration-environment.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-integration-environment.enum.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-integration-environment.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,6BAGX;AAHD,WAAY,6BAA6B;IACrC,oDAAmB,CAAA;IACnB,0DAAyB,CAAA;AAC7B,CAAC,EAHW,6BAA6B,KAA7B,6BAA6B,QAGxC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"incident-partner-routing.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/incident-partner-routing.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"partner-coverage-rule.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-coverage-rule.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"partner-dispatch-location.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-dispatch-location.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-dispatch.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-dispatch.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"partner-integration.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-integration.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"partner-routing-result.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-routing-result.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
/**
|
|
77
|
+
* Substrings that mark a key as carrying a secret.
|
|
78
|
+
*
|
|
79
|
+
* Deliberately broad, including a bare `key` and `bearer`. Over-redacting a
|
|
80
|
+
* field in an audit record costs a little diagnostic detail; under-redacting
|
|
81
|
+
* one writes a partner's API key into a table an operator can read. Partners do
|
|
82
|
+
* not agree on a name for a secret, so the list matches on substring and
|
|
83
|
+
* case-insensitively.
|
|
84
|
+
*/
|
|
85
|
+
export const SECRET_KEY_FRAGMENTS = [
|
|
86
|
+
'apikey',
|
|
87
|
+
'api_key',
|
|
88
|
+
'secret',
|
|
89
|
+
'password',
|
|
90
|
+
'passwd',
|
|
91
|
+
'token',
|
|
92
|
+
'authorization',
|
|
93
|
+
'auth',
|
|
94
|
+
'bearer',
|
|
95
|
+
'credential',
|
|
96
|
+
'signature',
|
|
97
|
+
'privatekey',
|
|
98
|
+
'private_key',
|
|
99
|
+
'key',
|
|
100
|
+
];
|
|
101
|
+
function isSecretKey(key) {
|
|
102
|
+
const normalized = key.toLowerCase();
|
|
103
|
+
return SECRET_KEY_FRAGMENTS.some((fragment) => normalized.includes(fragment));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A URL safe to store on an attempt record: origin and path only, with any
|
|
107
|
+
* query string replaced.
|
|
108
|
+
*
|
|
109
|
+
* Partner APIs put credentials in query strings often enough that keeping one
|
|
110
|
+
* verbatim in an audit table is a real exposure.
|
|
111
|
+
*/
|
|
112
|
+
export function maskPartnerUrl(url) {
|
|
113
|
+
if (url == null)
|
|
114
|
+
return '';
|
|
115
|
+
const raw = String(url);
|
|
116
|
+
const queryStart = raw.indexOf('?');
|
|
117
|
+
return queryStart === -1 ? raw : `${raw.slice(0, queryStart)}?[REDACTED]`;
|
|
118
|
+
}
|
|
119
|
+
//# 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":"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"}
|