tabletcommand-incident 0.6.18 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/ruleLegacy/karka.js +24 -0
- package/build/ruleLegacy/karka.js.map +1 -0
- package/build/ruleLegacy/setLatitudeLongitude.js +14 -0
- package/build/ruleLegacy/setLatitudeLongitude.js.map +1 -1
- package/build/ruleLegacy/specializer.js +142 -0
- package/build/ruleLegacy/specializer.js.map +1 -0
- package/build/ruleProcessorLegacy.js +1 -1
- package/build/ruleProcessorLegacy.js.map +1 -1
- package/build/rules/append-priority-description-to-call-type.js +1 -2
- package/build/rules/append-priority-description-to-call-type.js.map +1 -1
- package/build/rules/clean-up-comments.js +0 -1
- package/build/rules/clean-up-comments.js.map +1 -1
- package/build/rules/clean-up-lat-long.js +1 -2
- package/build/rules/clean-up-lat-long.js.map +1 -1
- package/build/rules/clear-field.js +0 -1
- package/build/rules/clear-field.js.map +1 -1
- package/build/rules/copy-location-comment.js +1 -1
- package/build/rules/copy-location-comment.js.map +1 -1
- package/build/rules/index.js +7 -4
- package/build/rules/index.js.map +1 -1
- package/build/rules/join-call-type-priority.js +0 -1
- package/build/rules/join-call-type-priority.js.map +1 -1
- package/build/rules/join-call-type-sacramento.js +0 -1
- package/build/rules/join-call-type-sacramento.js.map +1 -1
- package/build/rules/map-unit-dates-verdugo.js +0 -1
- package/build/rules/map-unit-dates-verdugo.js.map +1 -1
- package/build/rules/not-implemented.js +0 -1
- package/build/rules/not-implemented.js.map +1 -1
- package/build/rules/remove-incident-field.js +0 -2
- package/build/rules/remove-incident-field.js.map +1 -1
- package/build/rules/remove-person-from-unit.js +0 -2
- package/build/rules/remove-person-from-unit.js.map +1 -1
- package/build/rules/set-address.js +1 -1
- package/build/rules/set-address.js.map +1 -1
- package/build/rules/set-channels-from-radio-channels.js +0 -1
- package/build/rules/set-channels-from-radio-channels.js.map +1 -1
- package/build/rules/set-city-alameda.js +0 -1
- package/build/rules/set-city-alameda.js.map +1 -1
- package/build/rules/set-city-calfire-lnu.js +122 -123
- package/build/rules/set-city-calfire-lnu.js.map +1 -1
- package/build/rules/set-city-cleanup.js +0 -1
- package/build/rules/set-city-cleanup.js.map +1 -1
- package/build/rules/set-city-southern-marin.js +0 -1
- package/build/rules/set-city-southern-marin.js.map +1 -1
- package/build/rules/set-city-verdugo.js +0 -1
- package/build/rules/set-city-verdugo.js.map +1 -1
- package/build/rules/set-comment-opts-ack-type.js +0 -1
- package/build/rules/set-comment-opts-ack-type.js.map +1 -1
- package/build/rules/set-common-place-name.js +1 -2
- package/build/rules/set-common-place-name.js.map +1 -1
- package/build/rules/set-communication-channels-from-radio-names.js +1 -2
- package/build/rules/set-communication-channels-from-radio-names.js.map +1 -1
- package/build/rules/set-cross-streets.js +1 -2
- package/build/rules/set-cross-streets.js.map +1 -1
- package/build/rules/set-fire-alarm-at-dispatch-from-alarm-level.js +0 -1
- package/build/rules/set-fire-alarm-at-dispatch-from-alarm-level.js.map +1 -1
- package/build/rules/set-fire-map-pages-ontario.js +2 -3
- package/build/rules/set-fire-map-pages-ontario.js.map +1 -1
- package/build/rules/set-fire-map-santa-clara-city.js +0 -1
- package/build/rules/set-fire-map-santa-clara-city.js.map +1 -1
- package/build/rules/set-format-units-pulsepoint.js +1 -2
- package/build/rules/set-format-units-pulsepoint.js.map +1 -1
- package/build/rules/set-incident-type-ontario.js +1 -2
- package/build/rules/set-incident-type-ontario.js.map +1 -1
- package/build/rules/set-location-preference-derry.js +3 -4
- package/build/rules/set-location-preference-derry.js.map +1 -1
- package/build/rules/set-location-preference.js +0 -4
- package/build/rules/set-location-preference.js.map +1 -1
- package/build/rules/set-map-incident-type-pulsepoint.js +1 -2
- package/build/rules/set-map-incident-type-pulsepoint.js.map +1 -1
- package/build/rules/set-prior-incident-comment-field.js +1 -2
- package/build/rules/set-prior-incident-comment-field.js.map +1 -1
- package/build/rules/set-street-number.js +0 -1
- package/build/rules/set-street-number.js.map +1 -1
- package/build/store.js +1 -1
- package/build/store.js.map +1 -1
- package/build/test/domain.js +30 -30
- package/build/test/domain.js.map +1 -1
- package/build/test/mock.js +604 -604
- package/build/test/mock.js.map +1 -1
- package/build/test/rules/clean-up-comments.js +25 -25
- package/build/test/rules/clean-up-comments.js.map +1 -1
- package/build/test/rules/close-incident-matching-incident-number.js.map +1 -1
- package/build/test/rules/map-unit-dates-verdugo.js +5 -5
- package/build/test/rules/map-unit-dates-verdugo.js.map +1 -1
- package/build/test/rules/remove-person-from-unit.js +24 -24
- package/build/test/rules/remove-person-from-unit.js.map +1 -1
- package/build/test/rules/set-channels-from-radio-channels.js +40 -40
- package/build/test/rules/set-channels-from-radio-channels.js.map +1 -1
- package/build/test/rules/set-city-calfire-lnu.js +4 -4
- package/build/test/rules/set-city-calfire-lnu.js.map +1 -1
- package/build/test/rules/set-format-units-pulsepoint.js +16 -16
- package/build/test/rules/set-format-units-pulsepoint.js.map +1 -1
- package/build/test/rules/set-map-incident-type-pulsepoint.js +6 -6
- package/build/test/rules/set-map-incident-type-pulsepoint.js.map +1 -1
- package/build/test/rulesLegacy.js +4 -1
- package/build/test/rulesLegacy.js.map +1 -1
- package/definitions/ruleLegacy/karka.d.ts +5 -0
- package/definitions/ruleLegacy/karka.d.ts.map +1 -0
- package/definitions/ruleLegacy/setLatitudeLongitude.d.ts.map +1 -1
- package/definitions/ruleLegacy/specializer.d.ts +5 -0
- package/definitions/ruleLegacy/specializer.d.ts.map +1 -0
- package/definitions/rules/append-priority-description-to-call-type.d.ts.map +1 -1
- package/definitions/rules/clean-up-comments.d.ts.map +1 -1
- package/definitions/rules/clean-up-lat-long.d.ts.map +1 -1
- package/definitions/rules/clear-field.d.ts.map +1 -1
- package/definitions/rules/join-call-type-priority.d.ts.map +1 -1
- package/definitions/rules/join-call-type-sacramento.d.ts.map +1 -1
- package/definitions/rules/map-unit-dates-verdugo.d.ts.map +1 -1
- package/definitions/rules/not-implemented.d.ts.map +1 -1
- package/definitions/rules/remove-incident-field.d.ts.map +1 -1
- package/definitions/rules/remove-person-from-unit.d.ts.map +1 -1
- package/definitions/rules/set-channels-from-radio-channels.d.ts.map +1 -1
- package/definitions/rules/set-city-alameda.d.ts.map +1 -1
- package/definitions/rules/set-city-calfire-lnu.d.ts.map +1 -1
- package/definitions/rules/set-city-cleanup.d.ts.map +1 -1
- package/definitions/rules/set-city-southern-marin.d.ts.map +1 -1
- package/definitions/rules/set-city-verdugo.d.ts.map +1 -1
- package/definitions/rules/set-comment-opts-ack-type.d.ts.map +1 -1
- package/definitions/rules/set-common-place-name.d.ts.map +1 -1
- package/definitions/rules/set-communication-channels-from-radio-names.d.ts.map +1 -1
- package/definitions/rules/set-cross-streets.d.ts.map +1 -1
- package/definitions/rules/set-fire-alarm-at-dispatch-from-alarm-level.d.ts.map +1 -1
- package/definitions/rules/set-fire-map-santa-clara-city.d.ts.map +1 -1
- package/definitions/rules/set-format-units-pulsepoint.d.ts.map +1 -1
- package/definitions/rules/set-location-preference-derry.d.ts.map +1 -1
- package/definitions/rules/set-location-preference.d.ts.map +1 -1
- package/definitions/rules/set-map-incident-type-pulsepoint.d.ts.map +1 -1
- package/definitions/rules/set-prior-incident-comment-field.d.ts.map +1 -1
- package/definitions/rules/set-street-number.d.ts.map +1 -1
- package/definitions/store.d.ts +8 -4
- package/definitions/store.d.ts.map +1 -1
- package/definitions/types.d.ts.map +1 -1
- package/eslint.config.mjs +62 -42
- package/gulpfile.js +1 -1
- package/package.json +19 -17
- package/src/domain.ts +1 -1
- package/src/ruleLegacy/karka.js +25 -0
- package/src/ruleLegacy/setLatitudeLongitude.js +19 -2
- package/src/ruleLegacy/specializer.js +158 -0
- package/src/ruleProcessorLegacy.d.ts +1 -1
- package/src/ruleProcessorLegacy.js +1 -1
- package/src/rules/append-priority-description-to-call-type.ts +1 -2
- package/src/rules/clean-up-comments.ts +0 -1
- package/src/rules/clean-up-lat-long.ts +1 -2
- package/src/rules/clear-field.ts +0 -1
- package/src/rules/copy-location-comment.ts +1 -1
- package/src/rules/index.ts +8 -8
- package/src/rules/join-call-type-priority.ts +0 -1
- package/src/rules/join-call-type-sacramento.ts +0 -1
- package/src/rules/map-unit-dates-verdugo.ts +0 -1
- package/src/rules/not-implemented.ts +0 -1
- package/src/rules/remove-incident-field.ts +0 -2
- package/src/rules/remove-person-from-unit.ts +0 -2
- package/src/rules/set-address.ts +2 -2
- package/src/rules/set-channels-from-radio-channels.ts +0 -1
- package/src/rules/set-city-alameda.ts +0 -1
- package/src/rules/set-city-calfire-lnu.ts +122 -123
- package/src/rules/set-city-cleanup.ts +0 -1
- package/src/rules/set-city-southern-marin.ts +0 -1
- package/src/rules/set-city-verdugo.ts +0 -1
- package/src/rules/set-comment-opts-ack-type.ts +0 -1
- package/src/rules/set-common-place-name.ts +1 -2
- package/src/rules/set-communication-channels-from-radio-names.ts +2 -3
- package/src/rules/set-cross-streets.ts +1 -2
- package/src/rules/set-fire-alarm-at-dispatch-from-alarm-level.ts +0 -1
- package/src/rules/set-fire-map-pages-ontario.ts +4 -4
- package/src/rules/set-fire-map-santa-clara-city.ts +0 -1
- package/src/rules/set-format-units-pulsepoint.ts +1 -2
- package/src/rules/set-incident-type-ontario.ts +3 -3
- package/src/rules/set-location-preference-derry.ts +3 -4
- package/src/rules/set-location-preference.ts +0 -4
- package/src/rules/set-map-incident-type-pulsepoint.ts +1 -2
- package/src/rules/set-prior-incident-comment-field.ts +1 -2
- package/src/rules/set-street-number.ts +0 -1
- package/src/store.ts +3 -3
- package/src/test/domain.ts +30 -30
- package/src/test/mock.ts +604 -604
- package/src/test/rules/clean-up-comments.ts +25 -25
- package/src/test/rules/close-incident-matching-incident-number.ts +1 -2
- package/src/test/rules/map-unit-dates-verdugo.ts +5 -5
- package/src/test/rules/remove-person-from-unit.ts +24 -24
- package/src/test/rules/set-address.ts +1 -1
- package/src/test/rules/set-channels-from-radio-channels.ts +40 -40
- package/src/test/rules/set-city-calfire-lnu.ts +4 -4
- package/src/test/rules/set-format-units-pulsepoint.ts +16 -16
- package/src/test/rules/set-map-incident-type-pulsepoint.ts +6 -6
- package/src/test/rulesLegacy.js +4 -1
- package/src/types.ts +1 -1
- package/src/verify/correction.ts +5 -5
- package/test.sh +1 -1
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetCityCalfireLNU implements IncidentRule {
|
|
|
13
13
|
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isString(item.CityOrLocality) || _.trim(item.CityOrLocality) === "") {
|
|
19
18
|
return item;
|
|
@@ -44,127 +43,127 @@ export class IncidentRuleSetCityCalfireLNU implements IncidentRule {
|
|
|
44
43
|
|
|
45
44
|
// cSpell: disable
|
|
46
45
|
const cityMap: Record<string, string> = {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
46
|
+
AMERICAN_CANYON: "AMERICAN CANYON",
|
|
47
|
+
ANGWIN: "ANGWIN",
|
|
48
|
+
ANNAPOLIS: "ANNAPOLIS",
|
|
49
|
+
ARBUCKLE_COLLEGE_CITY: "ARBUCKLE",
|
|
50
|
+
BENICIA: "BENICIA",
|
|
51
|
+
BENNETT_VALLEY: "BENNET VALLEY",
|
|
52
|
+
BLOOMFIELD: "BLOOMFIELD",
|
|
53
|
+
BODEGA: "BODEGA",
|
|
54
|
+
BODEGA_BAY: "BODEGA BAY",
|
|
55
|
+
CALISTOGA_CITY: "CALISTOGA",
|
|
56
|
+
CALISTOGA_NORTH: "CALISTOGA",
|
|
57
|
+
CALISTOGA_SOUTH: "CALISTOGA",
|
|
58
|
+
CAMP_MEEKER: "CAMP MEEKER",
|
|
59
|
+
CAPAY: "CAPAY",
|
|
60
|
+
CAPELL_VALLEY: "NAPA",
|
|
61
|
+
CARNEROS: "NAPA",
|
|
62
|
+
CAZADERO: "CAZADERO",
|
|
63
|
+
CLARKSBURG: "CLARKSBURG",
|
|
64
|
+
CLEAR_LAKE: "CLEARLAKE",
|
|
65
|
+
CLEARLAKE: "CLEARLAKE",
|
|
66
|
+
CLEARLAKE_CITY: "CLEARLAKE",
|
|
67
|
+
CLEARLAKE_OAKS: "CLEARLAKE OAKS",
|
|
68
|
+
CLOVERDALE: "CLOVERDALE",
|
|
69
|
+
COBB: "COBB",
|
|
70
|
+
COLUSA_COUNTY: "CLOUSA",
|
|
71
|
+
CORDELIA: "CORDELIA",
|
|
72
|
+
COTATI: "COTATI",
|
|
73
|
+
DAVIS: "DAVIS",
|
|
74
|
+
DEER_PARK: "ST HELENA",
|
|
75
|
+
DIXON: "DIXON",
|
|
76
|
+
DIXON_CITY: "DIXON",
|
|
77
|
+
DRY_CREEK: "DRY CREEK",
|
|
78
|
+
DUNNIGAN: "DUNNIGAN",
|
|
79
|
+
EAST_DAVIS: "DAVIS",
|
|
80
|
+
ELKHORN: "ELKHORN",
|
|
81
|
+
ESPARTO: "ESPARTO",
|
|
82
|
+
FAIRFIELD_CITY: "FAIRFIELD",
|
|
83
|
+
FINLEY: "FINLEY",
|
|
84
|
+
FORESTVILLE: "FORESTVILLE",
|
|
85
|
+
FORT_ROSS: "FORT ROSS",
|
|
86
|
+
FREESTONE: "FREESTONE",
|
|
87
|
+
GEYSERVILLE: "GEYSERVILLE",
|
|
88
|
+
GLEN_ELLEN: "GLEN ELLEN",
|
|
89
|
+
GLENHAVEN: "GLENHAVEN",
|
|
90
|
+
GLENN_COLUSA: "CLOUSA",
|
|
91
|
+
GORDON_VALLEY: "NAPA",
|
|
92
|
+
GRATON: "GRATON",
|
|
93
|
+
GREENWOOD_RANCH: "NAPA",
|
|
94
|
+
GUERNEVILLE: "GUERNEVILLE",
|
|
95
|
+
GUINDA: "GUINDA",
|
|
96
|
+
HEALDSBURG: "HEALDSBURG",
|
|
97
|
+
HEALDSBURG_CITY: "HEALDSBURG",
|
|
98
|
+
HIDDEN_VALLEY: "HIDDEN VALLEY",
|
|
99
|
+
JENNER: "JENNER",
|
|
100
|
+
KELSEYVILLE: "KELSEYVILLE",
|
|
101
|
+
KENWOOD: "KENWOOD",
|
|
102
|
+
KNIGHTS_LANDING: "KNIGHTS LANDING",
|
|
103
|
+
KNIGHTS_VALLEY: "KNIGHTS VALLEY",
|
|
104
|
+
KNOXVILLE: "KNOXVILLE",
|
|
105
|
+
LAKE_COUNTY: "LAKE COUNTY",
|
|
106
|
+
LAKE_PILLSBURY: "LAKE PILLSBURY",
|
|
107
|
+
LAKEPORT: "LAKEPORT",
|
|
108
|
+
LAKEVILLE: "LAKEVILLE",
|
|
109
|
+
LOVALL_VALLEY: "LOVALL VALLEY",
|
|
110
|
+
LOWER_LAKE: "LOWER LAKE",
|
|
111
|
+
LUCERNE: "LUCERNE",
|
|
112
|
+
MADISON: "MADISON",
|
|
113
|
+
MARIN: "MARIN",
|
|
114
|
+
MAXWELL: "MAXWELL",
|
|
115
|
+
MENDOCINO_NF: "WILLOWS",
|
|
116
|
+
MIDDLETOWN: "MIDDLETOWN",
|
|
117
|
+
MONTE_RIO: "MONTE RIO",
|
|
118
|
+
MONTEZUMA: "MONTEZUMA",
|
|
119
|
+
MOUNTAIN: "MOUNTAIN",
|
|
120
|
+
NAPA: "NAPA",
|
|
121
|
+
NAPA_CITY: "NAPA",
|
|
122
|
+
NAPA_STATE_HOSPITAL: "NAPA",
|
|
123
|
+
NICE: "NICE",
|
|
124
|
+
OCCIDENTAL: "OCCIDENTAL",
|
|
125
|
+
OOJ: "OUT OF JURISDICTION",
|
|
126
|
+
PENNGROVE: "PENNGROVE",
|
|
127
|
+
PETALUMA: "PETALUMA",
|
|
128
|
+
POPE_VALLEY: "POPE VALLEY",
|
|
129
|
+
PRINCETON: "PRINCETON",
|
|
130
|
+
RIO_VISTA: "RIO VISTA",
|
|
131
|
+
ROHNERT_PARK: "ROHNERT PARK",
|
|
132
|
+
RUTHERFORD: "RUTHERFORD",
|
|
133
|
+
SACRAMENTO_RIVER: "SACRAMENTO",
|
|
134
|
+
SAN_ANTONIO: "SAN ANTONIO",
|
|
135
|
+
SANTA_ROSA: "SANTA ROSA",
|
|
136
|
+
SCHELLVILLE: "SCHELLVILLE",
|
|
137
|
+
SEBASTOPOL: "SEBASTOPOL",
|
|
138
|
+
SOLANO_COUNTY: "SOLANO",
|
|
139
|
+
SONOMA: "SONOMA",
|
|
140
|
+
SPANISH_FLAT: "NAPA",
|
|
141
|
+
ST_HELENA: "ST HELENA",
|
|
142
|
+
ST_HELENA_CITY: "ST HELENA",
|
|
143
|
+
STONYFORD: "STONYFORD",
|
|
144
|
+
SUISUN: "SUISUN",
|
|
145
|
+
SUISUN_CITY: "SUISUN",
|
|
146
|
+
THE_SEA_RANCH: "SEA RANCH",
|
|
147
|
+
TIMBER_COVE: "TIMBER COVE",
|
|
148
|
+
TRACEN_PETALUMA: "PETALUMA",
|
|
149
|
+
TRAVIS_AFB: "TRAVIS AIR FORCE BASE",
|
|
150
|
+
TWO_ROCK: "TWO ROCK",
|
|
151
|
+
UC_DAVIS: "DAVID",
|
|
152
|
+
UPPER_LAKE: "UPPER LAKE",
|
|
153
|
+
VACAVILLE: "VACAVILLE",
|
|
154
|
+
VACAVILLE_CITY: "VACAVILLE",
|
|
155
|
+
VALLEJO: "VALLEJO",
|
|
156
|
+
VALLEJO_CITY: "VALLEJO",
|
|
157
|
+
VALLEY_FORD: "VALLEY FORD",
|
|
158
|
+
WEST_SACRAMENTO: "WEST SACRAMENTO",
|
|
159
|
+
WILLIAMS: "WILLIAMS",
|
|
160
|
+
WILLOW_OAK: "WILLOW OAK",
|
|
161
|
+
WINDSOR: "WINDSOR",
|
|
162
|
+
WINTERS: "WINTERS",
|
|
163
|
+
WOODLAND: "WOODLAND",
|
|
164
|
+
YOLO: "YOLO",
|
|
165
|
+
YOLO_COUNTY: "YOLO",
|
|
166
|
+
YOUNTVILLE: "YOUNTVILLE",
|
|
167
|
+
ZAMORA: "ZAMORA"
|
|
169
168
|
};
|
|
170
169
|
// cSpell: enable
|
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetCityCleanUp implements IncidentRule {
|
|
|
13
13
|
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isString(item.CityOrLocality) || _.trim(item.CityOrLocality) === "") {
|
|
19
18
|
return item;
|
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetCitySouthernMarin implements IncidentRule {
|
|
|
13
13
|
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isString(item.CityOrLocality) || _.trim(item.CityOrLocality) === "") {
|
|
19
18
|
return item;
|
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetCityVerdugo implements IncidentRule {
|
|
|
13
13
|
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isString(item.CityOrLocality) || _.trim(item.CityOrLocality) === "") {
|
|
19
18
|
return item;
|
|
@@ -17,7 +17,6 @@ export class IncidentRuleSetCommentOptsAckType implements IncidentRule {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
20
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
22
21
|
if (this.ackDelimiter === "") {
|
|
23
22
|
return item;
|
|
@@ -10,10 +10,9 @@ export class IncidentRuleSetCommonPlaceName implements IncidentRule {
|
|
|
10
10
|
changes: IncidentRuleChange[] = [];
|
|
11
11
|
|
|
12
12
|
constructor() {
|
|
13
|
-
// Not necessary, example for when needed
|
|
13
|
+
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
const commonPlaceName = _.isString(item.CommonPlaceName) ? item.CommonPlaceName?.trim() : "";
|
|
19
18
|
const locationComment = _.isString(item.LocationComment) ? item.LocationComment?.trim() : "";
|
|
@@ -19,7 +19,6 @@ export class IncidentRuleSetCommunicationChannelsFromRadioNames implements Incid
|
|
|
19
19
|
this.cmd = cmd;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
22
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
24
23
|
if (!_.isArray(item.Unit)) {
|
|
25
24
|
return item;
|
|
@@ -42,7 +41,7 @@ export class IncidentRuleSetCommunicationChannelsFromRadioNames implements Incid
|
|
|
42
41
|
|
|
43
42
|
let ruleMatched = false;
|
|
44
43
|
const foundTactical = channelsForPurpose(incomingRadioNames, this.tac);
|
|
45
|
-
if (foundTactical
|
|
44
|
+
if (foundTactical !== "") {
|
|
46
45
|
ruleMatched = true;
|
|
47
46
|
item.TacticalChannel = foundTactical;
|
|
48
47
|
}
|
|
@@ -84,4 +83,4 @@ function channelsForPurpose(incoming: string[], purpose: string[]): string {
|
|
|
84
83
|
return item !== "" && incoming.indexOf(item) >= 0;
|
|
85
84
|
});
|
|
86
85
|
return foundRadioNames.join("/");
|
|
87
|
-
}
|
|
86
|
+
}
|
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetCrossStreets implements IncidentRule {
|
|
|
13
13
|
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
const value = _.trim(buildCrossStreets(item));
|
|
19
18
|
this.matched = value !== "";
|
|
@@ -31,7 +30,7 @@ export class IncidentRuleSetCrossStreets implements IncidentRule {
|
|
|
31
30
|
matched: this.matched,
|
|
32
31
|
changed: this.changed,
|
|
33
32
|
change: {
|
|
34
|
-
|
|
33
|
+
cross_streets: value,
|
|
35
34
|
}
|
|
36
35
|
});
|
|
37
36
|
|
|
@@ -13,7 +13,6 @@ export class IncidentRuleSetAlarmAtDispatchFromAlarmLevel implements IncidentRul
|
|
|
13
13
|
//
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
const hasAlarmLevel = (_.isString(item.AlarmLevel) && _.trim(item.AlarmLevel) !== "") || _.isNumber(item.AlarmLevel);
|
|
19
18
|
if (!hasAlarmLevel) {
|
|
@@ -11,7 +11,7 @@ export class IncidentRuleSetFireMapPagesOntario implements IncidentRule {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
// Not necessary, example for when needed
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
apply(item: Partial<CADIncident>, atDate: Date): Partial<CADIncident> {
|
|
16
16
|
this.matched = _.isString(item.MapPages) && _.isString(item.FireMap);
|
|
17
17
|
if (!this.matched) {
|
|
@@ -28,11 +28,11 @@ export class IncidentRuleSetFireMapPagesOntario implements IncidentRule {
|
|
|
28
28
|
matched: this.matched,
|
|
29
29
|
changed: this.changed,
|
|
30
30
|
change: {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
FireMap: `${initialValueFireMap} => ${item.FireMap}`,
|
|
32
|
+
MapPages: `${initialValueMapPages} => ${item.MapPages}`,
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
return item;
|
|
37
37
|
}
|
|
38
|
-
}
|
|
38
|
+
}
|
|
@@ -14,7 +14,6 @@ export class IncidentRuleSetFireMapSantaClaraCity implements IncidentRule {
|
|
|
14
14
|
//
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
17
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
19
18
|
const hasFireMap = _.isString(item.FireMap) && _.trim(item.FireMap) !== "";
|
|
20
19
|
if (!hasFireMap) {
|
|
@@ -11,10 +11,9 @@ export class IncidentRuleSetFormatUnitsPulsePoint implements IncidentRule {
|
|
|
11
11
|
changes: IncidentRuleChange[] = [];
|
|
12
12
|
|
|
13
13
|
constructor() {
|
|
14
|
-
// Not necessary, example for when needed
|
|
14
|
+
// Not necessary, example for when needed
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
17
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
19
18
|
const tempArray: Partial<CADUnitType>[] = [];
|
|
20
19
|
if (_.isPlainObject(item.Unit)) {
|
|
@@ -11,7 +11,7 @@ export class IncidentRuleSetIncidentTypeOntario implements IncidentRule {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
// Not necessary, example for when needed
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
apply(item: Partial<CADIncident>, atDate: Date): Partial<CADIncident> {
|
|
16
16
|
this.matched = _.isString(item.AgencyIncidentCallType) && item.AgencyIncidentCallType !== "" && _.isString(item.AgencyIncidentCallTypeDescription) && item.AgencyIncidentCallTypeDescription !== "";
|
|
17
17
|
if (!this.matched) {
|
|
@@ -26,10 +26,10 @@ export class IncidentRuleSetIncidentTypeOntario implements IncidentRule {
|
|
|
26
26
|
matched: this.matched,
|
|
27
27
|
changed: this.changed,
|
|
28
28
|
change: {
|
|
29
|
-
|
|
29
|
+
AgencyIncidentCallTypeDescription: `${initialValue} => ${item.AgencyIncidentCallTypeDescription}`,
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
return item;
|
|
34
34
|
}
|
|
35
|
-
}
|
|
35
|
+
}
|
|
@@ -10,13 +10,12 @@ export class IncidentRuleSetLocationPreferenceDerry implements IncidentRule {
|
|
|
10
10
|
changes: IncidentRuleChange[] = [];
|
|
11
11
|
|
|
12
12
|
constructor() {
|
|
13
|
-
// Not necessary, example for when needed
|
|
13
|
+
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
|
-
const isMutualAid: boolean = _.isString(item.AgencyIncidentCallTypeDescription)
|
|
19
|
-
|
|
17
|
+
const isMutualAid: boolean = _.isString(item.AgencyIncidentCallTypeDescription) &&
|
|
18
|
+
item.AgencyIncidentCallTypeDescription.match(/mutual.aid/i) !== null; // STILL ALARM- MUTUAL AID COVERAGE-WITH A QUINT
|
|
20
19
|
const hasAddress = _.isString(item.StreetName) && _.trim(item.StreetName) !== "";
|
|
21
20
|
const isMileMarker = item.StreetName?.match(/(^|#|\s|\d)(interstate|rt|nb|eb|sb|wb)(#|\s|\d|$)/i); // (begin or number or space) (rt or north bound or ...) (space or number or end)
|
|
22
21
|
const shouldResolveAddress = isMutualAid && hasAddress && !isMileMarker;
|
|
@@ -14,7 +14,6 @@ export class IncidentRuleSetLocationPreference implements IncidentRule {
|
|
|
14
14
|
this.requiredFields = fields;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
17
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
19
18
|
if (this.requiredFields.length === 0) {
|
|
20
19
|
return item;
|
|
@@ -24,9 +23,6 @@ export class IncidentRuleSetLocationPreference implements IncidentRule {
|
|
|
24
23
|
this.requiredFields.forEach((field) => {
|
|
25
24
|
const hasField = (_.isString(item[field]) && item[field] !== "") || _.isNumber(item[field]);
|
|
26
25
|
hasEnoughFields = hasEnoughFields && hasField;
|
|
27
|
-
if (!hasEnoughFields) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
26
|
});
|
|
31
27
|
|
|
32
28
|
const prefLocation = hasEnoughFields ? "address" : "location";
|
|
@@ -10,10 +10,9 @@ export class IncidentRuleSetMapIncidentTypePulsePoint implements IncidentRule {
|
|
|
10
10
|
changes: IncidentRuleChange[] = [];
|
|
11
11
|
|
|
12
12
|
constructor() {
|
|
13
|
-
// Not necessary, example for when needed
|
|
13
|
+
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isString(item.AgencyDeterminantCode)) {
|
|
19
18
|
return item;
|
|
@@ -10,10 +10,9 @@ export class IncidentRuleSetPriorIncidentCommentField implements IncidentRule {
|
|
|
10
10
|
changes: IncidentRuleChange[] = [];
|
|
11
11
|
|
|
12
12
|
constructor() {
|
|
13
|
-
// Not necessary, example for when needed
|
|
13
|
+
// Not necessary, example for when needed
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
16
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
17
|
if (!_.isArray(item.PriorIncident)) {
|
|
19
18
|
return item;
|
|
@@ -14,7 +14,6 @@ export class IncidentRuleSetStreetNumber implements IncidentRule {
|
|
|
14
14
|
//
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
17
|
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
19
18
|
if (!_.isString(item.StreetName)) {
|
|
20
19
|
return item;
|
package/src/store.ts
CHANGED
|
@@ -3,6 +3,7 @@ import _ from "lodash";
|
|
|
3
3
|
import {
|
|
4
4
|
Document,
|
|
5
5
|
FilterQuery,
|
|
6
|
+
ProjectionType,
|
|
6
7
|
SortOrder,
|
|
7
8
|
} from "mongoose";
|
|
8
9
|
import * as Sentry from "@sentry/node";
|
|
@@ -18,7 +19,6 @@ import {
|
|
|
18
19
|
export default function storeModule({ models }: {
|
|
19
20
|
models: BackendModels,
|
|
20
21
|
}) {
|
|
21
|
-
|
|
22
22
|
const debug = debug_module("tabletcommand-incident:store");
|
|
23
23
|
const leanOpts = {
|
|
24
24
|
virtuals: true
|
|
@@ -37,7 +37,7 @@ export default function storeModule({ models }: {
|
|
|
37
37
|
// shiftStart < startIncident, shiftEnd > startIncident
|
|
38
38
|
|
|
39
39
|
const personnelQuery = {
|
|
40
|
-
departmentId
|
|
40
|
+
departmentId,
|
|
41
41
|
shiftStartTime: {
|
|
42
42
|
$lte: incidentStartTime
|
|
43
43
|
},
|
|
@@ -86,7 +86,7 @@ export default function storeModule({ models }: {
|
|
|
86
86
|
departmentId: "abc",
|
|
87
87
|
IncidentNumber: "def",
|
|
88
88
|
};
|
|
89
|
-
const projection = {
|
|
89
|
+
const projection: ProjectionType<CADIncident> = {
|
|
90
90
|
_id: 1,
|
|
91
91
|
};
|
|
92
92
|
debug(`CADIncident.findOne:${JSON.stringify(query)}.`);
|
package/src/test/domain.ts
CHANGED
|
@@ -161,10 +161,10 @@ describe("mergeIncidents", function() {
|
|
|
161
161
|
IncidentNumber: "Hello",
|
|
162
162
|
radioChannels: [
|
|
163
163
|
{
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
name: "z5",
|
|
165
|
+
channel: "z5",
|
|
166
|
+
channelDescription: "d-z5",
|
|
167
|
+
url: "u-z5",
|
|
168
168
|
}
|
|
169
169
|
]
|
|
170
170
|
};
|
|
@@ -173,10 +173,10 @@ describe("mergeIncidents", function() {
|
|
|
173
173
|
IncidentNumber: "Hello",
|
|
174
174
|
radioChannels: [
|
|
175
175
|
{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
176
|
+
name: "e1",
|
|
177
|
+
channel: "e1",
|
|
178
|
+
channelDescription: "d-e1",
|
|
179
|
+
url: "u-e1",
|
|
180
180
|
}
|
|
181
181
|
]
|
|
182
182
|
};
|
|
@@ -323,28 +323,28 @@ describe("mergeIncidents", function() {
|
|
|
323
323
|
it("merge units - same unit dispatch number, different unit id", function() {
|
|
324
324
|
const units = [
|
|
325
325
|
{
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
326
|
+
UnitDispatchNumber: "1",
|
|
327
|
+
UnitID: "E76",
|
|
328
|
+
TimeDispatched: "2023-05-01T17:14:03-07:00",
|
|
329
|
+
TimeEnroute: "2023-05-01T17:15:22-07:00",
|
|
330
|
+
TimeCleared: null,
|
|
331
|
+
TimeArrived: "2023-05-01T17:18:37-07:00"
|
|
332
332
|
},
|
|
333
333
|
{
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
334
|
+
UnitDispatchNumber: "2",
|
|
335
|
+
UnitID: "R74",
|
|
336
|
+
TimeDispatched: "2023-05-01T17:14:03-07:00",
|
|
337
|
+
TimeEnroute: "2023-05-01T17:15:33-07:00",
|
|
338
|
+
TimeCleared: "2023-05-01T17:16:44-07:00",
|
|
339
|
+
TimeArrived: null
|
|
340
340
|
},
|
|
341
341
|
{
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
342
|
+
UnitDispatchNumber: "2",
|
|
343
|
+
UnitID: "R73",
|
|
344
|
+
TimeDispatched: "2023-05-01T17:16:25-07:00",
|
|
345
|
+
TimeEnroute: "2023-05-01T17:17:59-07:00",
|
|
346
|
+
TimeCleared: null,
|
|
347
|
+
TimeArrived: "2023-05-01T17:18:56-07:00"
|
|
348
348
|
}
|
|
349
349
|
] as unknown as CADUnitType[];
|
|
350
350
|
|
|
@@ -579,8 +579,8 @@ describe("mergeIncidents", function() {
|
|
|
579
579
|
IncidentNumber: "Hello",
|
|
580
580
|
ReportNumber: [
|
|
581
581
|
{
|
|
582
|
-
|
|
583
|
-
|
|
582
|
+
name: "ems",
|
|
583
|
+
number: "some-300"
|
|
584
584
|
}
|
|
585
585
|
]
|
|
586
586
|
};
|
|
@@ -589,8 +589,8 @@ describe("mergeIncidents", function() {
|
|
|
589
589
|
IncidentNumber: "Hello",
|
|
590
590
|
ReportNumber: [
|
|
591
591
|
{
|
|
592
|
-
|
|
593
|
-
|
|
592
|
+
name: "ems",
|
|
593
|
+
number: "some-300"
|
|
594
594
|
}
|
|
595
595
|
]
|
|
596
596
|
};
|