tabletcommand-backend-models 7.1.1 → 7.2.1

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 (210) hide show
  1. package/build/helpers.js +5 -1
  2. package/build/helpers.js.map +1 -1
  3. package/build/index.js +2 -1
  4. package/build/index.js.map +1 -1
  5. package/build/models/action-log.js +6 -0
  6. package/build/models/action-log.js.map +1 -1
  7. package/build/models/agency.js +35 -0
  8. package/build/models/agency.js.map +1 -1
  9. package/build/models/arcgis-group.js +9 -1
  10. package/build/models/arcgis-group.js.map +1 -1
  11. package/build/models/assignment.js +21 -4
  12. package/build/models/assignment.js.map +1 -1
  13. package/build/models/battalion.js +39 -15
  14. package/build/models/battalion.js.map +1 -1
  15. package/build/models/beacon-log.js +5 -1
  16. package/build/models/beacon-log.js.map +1 -1
  17. package/build/models/cad-incident-block.js +7 -1
  18. package/build/models/cad-incident-block.js.map +1 -1
  19. package/build/models/cad-incident-stream.js +27 -1
  20. package/build/models/cad-incident-stream.js.map +1 -1
  21. package/build/models/cad-incident.js +98 -1
  22. package/build/models/cad-incident.js.map +1 -1
  23. package/build/models/cad-simulation.js +0 -2
  24. package/build/models/cad-simulation.js.map +1 -1
  25. package/build/models/cad-status-map.js +5 -1
  26. package/build/models/cad-status-map.js.map +1 -1
  27. package/build/models/cad-status.js +11 -2
  28. package/build/models/cad-status.js.map +1 -1
  29. package/build/models/cad-vehicle-status-history.js +41 -2
  30. package/build/models/cad-vehicle-status-history.js.map +1 -1
  31. package/build/models/cad-vehicle-status.js +44 -2
  32. package/build/models/cad-vehicle-status.js.map +1 -1
  33. package/build/models/cad-vehicle.js +30 -2
  34. package/build/models/cad-vehicle.js.map +1 -1
  35. package/build/models/chart-device-stats.js +7 -1
  36. package/build/models/chart-device-stats.js.map +1 -1
  37. package/build/models/chart-incident.js +12 -1
  38. package/build/models/chart-incident.js.map +1 -1
  39. package/build/models/chart-managed-incident.js +19 -1
  40. package/build/models/chart-managed-incident.js.map +1 -1
  41. package/build/models/chart-user.js +12 -1
  42. package/build/models/chart-user.js.map +1 -1
  43. package/build/models/checklist-item.js +0 -1
  44. package/build/models/checklist-item.js.map +1 -1
  45. package/build/models/checklist.js +26 -4
  46. package/build/models/checklist.js.map +1 -1
  47. package/build/models/csv-import.js +6 -0
  48. package/build/models/csv-import.js.map +1 -1
  49. package/build/models/department.js +129 -6
  50. package/build/models/department.js.map +1 -1
  51. package/build/models/device-mapping.js +16 -0
  52. package/build/models/device-mapping.js.map +1 -1
  53. package/build/models/esri.js +6 -0
  54. package/build/models/esri.js.map +1 -1
  55. package/build/models/incident-event.js +38 -6
  56. package/build/models/incident-event.js.map +1 -1
  57. package/build/models/incident-notified.js +20 -1
  58. package/build/models/incident-notified.js.map +1 -1
  59. package/build/models/incident-takeover.js +6 -1
  60. package/build/models/incident-takeover.js.map +1 -1
  61. package/build/models/location.js +117 -6
  62. package/build/models/location.js.map +1 -1
  63. package/build/models/mail-log.js +5 -0
  64. package/build/models/mail-log.js.map +1 -1
  65. package/build/models/managed-incident.js +67 -4
  66. package/build/models/managed-incident.js.map +1 -1
  67. package/build/models/mark43-incident-retry.js +0 -1
  68. package/build/models/mark43-incident-retry.js.map +1 -1
  69. package/build/models/message.js +19 -1
  70. package/build/models/message.js.map +1 -1
  71. package/build/models/monitor.js +15 -1
  72. package/build/models/monitor.js.map +1 -1
  73. package/build/models/personnel-import.js +74 -0
  74. package/build/models/personnel-import.js.map +1 -1
  75. package/build/models/personnel-known.js +8 -0
  76. package/build/models/personnel-known.js.map +1 -1
  77. package/build/models/rate-limit.js +6 -0
  78. package/build/models/rate-limit.js.map +1 -1
  79. package/build/models/remote-log-stream.js +0 -1
  80. package/build/models/remote-log-stream.js.map +1 -1
  81. package/build/models/remote-log.js +0 -1
  82. package/build/models/remote-log.js.map +1 -1
  83. package/build/models/schema/agency-saml.js +1 -1
  84. package/build/models/schema/agency-saml.js.map +1 -1
  85. package/build/models/schema/cad-incident.js +0 -1
  86. package/build/models/schema/cad-incident.js.map +1 -1
  87. package/build/models/session.js +44 -6
  88. package/build/models/session.js.map +1 -1
  89. package/build/models/template.js +17 -7
  90. package/build/models/template.js.map +1 -1
  91. package/build/models/user-device.js +17 -0
  92. package/build/models/user-device.js.map +1 -1
  93. package/build/models/user-registration.js +5 -1
  94. package/build/models/user-registration.js.map +1 -1
  95. package/build/models/user.js +59 -6
  96. package/build/models/user.js.map +1 -1
  97. package/build/models/validation-report.js +6 -1
  98. package/build/models/validation-report.js.map +1 -1
  99. package/build/test/location.js +1 -1
  100. package/build/test/location.js.map +1 -1
  101. package/build/test/mock.js +5 -2
  102. package/build/test/mock.js.map +1 -1
  103. package/cspell.json +1 -0
  104. package/definitions/helpers.d.ts +27 -26
  105. package/definitions/helpers.d.ts.map +1 -1
  106. package/definitions/index.d.ts +4 -4
  107. package/definitions/index.d.ts.map +1 -1
  108. package/definitions/models/action-log.d.ts.map +1 -1
  109. package/definitions/models/agency.d.ts.map +1 -1
  110. package/definitions/models/arcgis-group.d.ts.map +1 -1
  111. package/definitions/models/assignment.d.ts.map +1 -1
  112. package/definitions/models/battalion.d.ts.map +1 -1
  113. package/definitions/models/beacon-log.d.ts.map +1 -1
  114. package/definitions/models/cad-incident-block.d.ts.map +1 -1
  115. package/definitions/models/cad-incident-stream.d.ts.map +1 -1
  116. package/definitions/models/cad-incident.d.ts.map +1 -1
  117. package/definitions/models/cad-simulation.d.ts.map +1 -1
  118. package/definitions/models/cad-status-map.d.ts.map +1 -1
  119. package/definitions/models/cad-status.d.ts.map +1 -1
  120. package/definitions/models/cad-vehicle-status-history.d.ts.map +1 -1
  121. package/definitions/models/cad-vehicle-status.d.ts.map +1 -1
  122. package/definitions/models/cad-vehicle.d.ts.map +1 -1
  123. package/definitions/models/chart-device-stats.d.ts.map +1 -1
  124. package/definitions/models/chart-incident.d.ts.map +1 -1
  125. package/definitions/models/chart-managed-incident.d.ts.map +1 -1
  126. package/definitions/models/chart-user.d.ts.map +1 -1
  127. package/definitions/models/checklist-item.d.ts.map +1 -1
  128. package/definitions/models/checklist.d.ts.map +1 -1
  129. package/definitions/models/csv-import.d.ts.map +1 -1
  130. package/definitions/models/department.d.ts.map +1 -1
  131. package/definitions/models/device-mapping.d.ts.map +1 -1
  132. package/definitions/models/esri.d.ts.map +1 -1
  133. package/definitions/models/incident-event.d.ts.map +1 -1
  134. package/definitions/models/incident-notified.d.ts.map +1 -1
  135. package/definitions/models/incident-takeover.d.ts.map +1 -1
  136. package/definitions/models/location.d.ts.map +1 -1
  137. package/definitions/models/mail-log.d.ts.map +1 -1
  138. package/definitions/models/managed-incident.d.ts.map +1 -1
  139. package/definitions/models/mark43-incident-retry.d.ts.map +1 -1
  140. package/definitions/models/message.d.ts.map +1 -1
  141. package/definitions/models/monitor.d.ts.map +1 -1
  142. package/definitions/models/personnel-import.d.ts.map +1 -1
  143. package/definitions/models/personnel-known.d.ts.map +1 -1
  144. package/definitions/models/rate-limit.d.ts.map +1 -1
  145. package/definitions/models/remote-log-stream.d.ts.map +1 -1
  146. package/definitions/models/remote-log.d.ts.map +1 -1
  147. package/definitions/models/schema/cad-incident.d.ts.map +1 -1
  148. package/definitions/models/session.d.ts.map +1 -1
  149. package/definitions/models/template.d.ts.map +1 -1
  150. package/definitions/models/user-device.d.ts.map +1 -1
  151. package/definitions/models/user-registration.d.ts.map +1 -1
  152. package/definitions/models/user.d.ts.map +1 -1
  153. package/definitions/models/validation-report.d.ts.map +1 -1
  154. package/definitions/test/mock.d.ts.map +1 -1
  155. package/definitions/types/department.d.ts +14 -0
  156. package/definitions/types/department.d.ts.map +1 -1
  157. package/package.json +6 -5
  158. package/src/helpers.ts +4 -0
  159. package/src/index.ts +2 -1
  160. package/src/models/action-log.ts +8 -0
  161. package/src/models/agency.ts +41 -0
  162. package/src/models/arcgis-group.ts +10 -1
  163. package/src/models/assignment.ts +24 -4
  164. package/src/models/battalion.ts +42 -16
  165. package/src/models/beacon-log.ts +6 -1
  166. package/src/models/cad-incident-block.ts +8 -1
  167. package/src/models/cad-incident-stream.ts +31 -1
  168. package/src/models/cad-incident.ts +111 -1
  169. package/src/models/cad-simulation.ts +0 -2
  170. package/src/models/cad-status-map.ts +6 -1
  171. package/src/models/cad-status.ts +13 -2
  172. package/src/models/cad-vehicle-status-history.ts +47 -2
  173. package/src/models/cad-vehicle-status.ts +51 -3
  174. package/src/models/cad-vehicle.ts +35 -2
  175. package/src/models/chart-device-stats.ts +8 -1
  176. package/src/models/chart-incident.ts +14 -1
  177. package/src/models/chart-managed-incident.ts +22 -1
  178. package/src/models/chart-user.ts +14 -1
  179. package/src/models/checklist-item.ts +0 -1
  180. package/src/models/checklist.ts +28 -4
  181. package/src/models/csv-import.ts +7 -0
  182. package/src/models/department.ts +141 -8
  183. package/src/models/device-mapping.ts +19 -0
  184. package/src/models/esri.ts +7 -0
  185. package/src/models/incident-event.ts +45 -6
  186. package/src/models/incident-notified.ts +23 -1
  187. package/src/models/incident-takeover.ts +7 -1
  188. package/src/models/location.ts +133 -8
  189. package/src/models/mail-log.ts +6 -0
  190. package/src/models/managed-incident.ts +75 -4
  191. package/src/models/mark43-incident-retry.ts +0 -1
  192. package/src/models/message.ts +22 -1
  193. package/src/models/monitor.ts +17 -1
  194. package/src/models/personnel-import.ts +84 -0
  195. package/src/models/personnel-known.ts +9 -0
  196. package/src/models/rate-limit.ts +7 -0
  197. package/src/models/remote-log-stream.ts +0 -1
  198. package/src/models/remote-log.ts +0 -1
  199. package/src/models/schema/agency-saml.ts +1 -1
  200. package/src/models/schema/cad-incident.ts +0 -1
  201. package/src/models/session.ts +49 -6
  202. package/src/models/template.ts +17 -7
  203. package/src/models/user-device.ts +20 -0
  204. package/src/models/user-registration.ts +6 -1
  205. package/src/models/user.ts +65 -7
  206. package/src/models/validation-report.ts +7 -1
  207. package/src/test/location.ts +2 -2
  208. package/src/test/mock.ts +7 -2
  209. package/src/types/department.ts +17 -1
  210. package/test.sh +1 -1
@@ -15,7 +15,6 @@ export default async function UserRegistrationModule(mongoose: MongooseModule) {
15
15
  type: String,
16
16
  default: "",
17
17
  required: true,
18
- index: true,
19
18
  },
20
19
  name: {
21
20
  type: String,
@@ -89,6 +88,12 @@ export default async function UserRegistrationModule(mongoose: MongooseModule) {
89
88
  autoIndex: false
90
89
  });
91
90
 
91
+ modelSchema.index({
92
+ email: 1,
93
+ }, {
94
+ name: "email_1",
95
+ });
96
+
92
97
  return mongoose.model<UserRegistration>("UserRegistration", modelSchema, "massive_user_registration", { overwriteModels: true });
93
98
  }
94
99
 
@@ -36,12 +36,10 @@ export function UserSchema(mongoose: MongooseModule) {
36
36
  nick: {
37
37
  type: String,
38
38
  default: "",
39
- index: true,
40
39
  },
41
40
  email: {
42
41
  type: String,
43
42
  default: "",
44
- index: true,
45
43
  },
46
44
  name: {
47
45
  type: String,
@@ -55,7 +53,6 @@ export function UserSchema(mongoose: MongooseModule) {
55
53
  type: String,
56
54
  default: "",
57
55
  required: true,
58
- index: true,
59
56
  },
60
57
  modified_date: {
61
58
  type: Date,
@@ -271,6 +268,10 @@ export function UserSchema(mongoose: MongooseModule) {
271
268
  },
272
269
  }, {
273
270
  autoIndex: false,
271
+ toJSON: {
272
+ virtuals: true,
273
+ versionKey: false,
274
+ }
274
275
  });
275
276
 
276
277
  // NO _id on User schema?
@@ -278,11 +279,68 @@ export function UserSchema(mongoose: MongooseModule) {
278
279
  return this._id.toHexString();
279
280
  });
280
281
 
281
- modelSchema.set("toJSON", {
282
- virtuals: true,
283
- versionKey: false,
282
+ modelSchema.index({
283
+ departmentId: 1,
284
+ }, {
285
+ name: "departmentId_1",
286
+ });
287
+
288
+ modelSchema.index({
289
+ departmentId: 1,
290
+ email: 1
291
+ }, {
292
+ name: "departmentId_1_email_1",
293
+ });
294
+
295
+ modelSchema.index({
296
+ departmentId: 1,
297
+ vehicle: 1
298
+ }, {
299
+ name: "departmentId_1_vehicle_1_partial",
300
+ partialFilterExpression: {
301
+ "vehicle": {
302
+ "$exists": true
303
+ }
304
+ }
305
+ });
306
+
307
+ modelSchema.index({
308
+ email: 1,
309
+ }, {
310
+ name: "email_1_unique",
311
+ unique: true,
284
312
  });
285
313
 
314
+ modelSchema.index({
315
+ nick: 1,
316
+ }, {
317
+ name: "nick_1_unique",
318
+ unique: true,
319
+ });
320
+
321
+ // A field has to be defined as text and weight
322
+ modelSchema.index({
323
+ nick: "text",
324
+ email: "text",
325
+ name: "text",
326
+ }, {
327
+ name: "nick_text_email_text_name_text_mapId_text_arcGISAuth.username_text_vehicle.radioName_text",
328
+ weights: {
329
+ email: 10,
330
+ name: 1,
331
+ nick: 9,
332
+ },
333
+ textIndexVersion: 3,
334
+ language_override: "language",
335
+ default_language: "english",
336
+ });
337
+
338
+ modelSchema.index({
339
+ token: 1,
340
+ tokenExpireAt: 1
341
+ }, {
342
+ name: "token_1_tokenExpireAt_1",
343
+ });
286
344
 
287
345
  return modelSchema;
288
346
  }
@@ -292,4 +350,4 @@ export default async function UserModule(mongoose: MongooseModule) {
292
350
  return mongoose.model<User>("User", modelSchema, "sys_user", { overwriteModels: true });
293
351
  }
294
352
 
295
- export interface UserModel extends Model<User> { }
353
+ export interface UserModel extends Model<User> { }
@@ -21,7 +21,6 @@ export function ValidationReportSchema(mongoose: MongooseModule) {
21
21
  type: Schema.Types.ObjectId,
22
22
  ref: "Department",
23
23
  required: true,
24
- unique: true,
25
24
  },
26
25
  location: {
27
26
  type: [ValidationErrorItem],
@@ -59,6 +58,13 @@ export function ValidationReportSchema(mongoose: MongooseModule) {
59
58
  autoIndex: false,
60
59
  });
61
60
 
61
+ modelSchema.index({
62
+ departmentId: 1,
63
+ }, {
64
+ name: "departmentId_unique",
65
+ unique: true,
66
+ });
67
+
62
68
  return modelSchema;
63
69
  }
64
70
 
@@ -18,6 +18,8 @@ describe("Location", function() {
18
18
  mongoose
19
19
  });
20
20
  testItem = mock.location;
21
+
22
+ await mock.beforeEach();
21
23
  });
22
24
  afterEach(async function() {
23
25
  await mongoose.disconnect();
@@ -74,8 +76,6 @@ describe("Location", function() {
74
76
 
75
77
  const found = await models.Location.findOne(geoQuery);
76
78
  assert.isObject(found);
77
-
78
- await models.Location.collection.dropIndexes();
79
79
  });
80
80
 
81
81
  it("decodes .visibility", async function() {
package/src/test/mock.ts CHANGED
@@ -22,8 +22,12 @@ export default function mockModule(dependencies: { mongoose: Mongoose; }) {
22
22
  mongoose
23
23
  } = dependencies;
24
24
 
25
+ const ObjectId = mongoose.Types.ObjectId;
26
+
27
+ const departmentId = new ObjectId().toString();
28
+
25
29
  const mark43IncidentRetry = {
26
- departmentId: "123",
30
+ departmentId,
27
31
  incidentNumber: "abc123",
28
32
  active: true,
29
33
  mark43IncidentId: 123,
@@ -935,7 +939,7 @@ export default function mockModule(dependencies: { mongoose: Mongoose; }) {
935
939
 
936
940
  const location = {
937
941
  _id: new mongoose.Types.ObjectId(),
938
- departmentId: "d123",
942
+ departmentId,
939
943
  userId: "542a40db20783c000000153d",
940
944
  uuid: "92c8f732-52b7-46cc-855a-d54fddfe3172",
941
945
  username: "E23",
@@ -1341,6 +1345,7 @@ export default function mockModule(dependencies: { mongoose: Mongoose; }) {
1341
1345
  for (const coll of items ?? []) {
1342
1346
  // console.log(`Emptying ${coll.collectionName}.`);
1343
1347
  await coll.deleteMany({});
1348
+ await coll.dropIndexes();
1344
1349
  }
1345
1350
  }
1346
1351
 
@@ -249,11 +249,26 @@ export interface ForwardingConnectionType {
249
249
  description: string,
250
250
  }
251
251
 
252
+ export interface VehicleStatusWebhookConnectionType {
253
+ active: boolean,
254
+ connectionType: string,
255
+ fields: ForwardFieldsType[],
256
+ apiUrl: string,
257
+ apiKey: string,
258
+ authType: string,
259
+ description: string,
260
+ }
261
+
252
262
  export interface ForwardingConfigType {
253
263
  enabled: boolean,
254
264
  connections: ForwardingConnectionType[],
255
265
  }
256
266
 
267
+ export interface VehicleStatusWebhookConfigType {
268
+ enabled: boolean,
269
+ connections: VehicleStatusWebhookConnectionType[],
270
+ }
271
+
257
272
  export interface DepartmentType {
258
273
  _id: Types.ObjectId,
259
274
  id?: string,
@@ -385,5 +400,6 @@ export interface DepartmentType {
385
400
  somewear: SomewearType,
386
401
  cadBidirectionalException: boolean,
387
402
  forwarding: ForwardingConfigType,
403
+ vehicleStatusWebhook: VehicleStatusWebhookConfigType,
388
404
  reportOdometer: string,
389
- }
405
+ }
package/test.sh CHANGED
@@ -17,7 +17,7 @@ if hash brew 2>/dev/null; then
17
17
  fi
18
18
  fi
19
19
 
20
- NODE_VERSION="v16.19.0"
20
+ NODE_VERSION="v20.11.1"
21
21
 
22
22
  nvm use $NODE_VERSION || nvm install $NODE_VERSION
23
23