@tak-ps/node-cot 12.0.0 → 12.1.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.
@@ -0,0 +1,465 @@
1
+ import test from 'tape';
2
+ import CoT from '../index.js';
3
+ test('Decode Range & Bearing', (t) => {
4
+ const cot = new CoT({
5
+ "event": {
6
+ "_attributes": {
7
+ "version": "2.0",
8
+ "uid": "6da80127-44d4-4bf0-89bd-ecd326afaef1",
9
+ "type": "b-m-r",
10
+ "how": "h-g-i-g-o",
11
+ "time": "2024-09-09T21:53:57Z",
12
+ "start": "2024-09-09T07:28:38Z",
13
+ "stale": "2024-09-09T07:28:38Z"
14
+ },
15
+ "point": {
16
+ "_attributes": {
17
+ "lat": "0.0",
18
+ "lon": "0.0",
19
+ "hae": "9999999.0",
20
+ "ce": "9999999.0",
21
+ "le": "9999999.0"
22
+ }
23
+ },
24
+ "detail": {
25
+ "contact": {
26
+ "_attributes": {
27
+ "callsign": "Walking Alt Route 5"
28
+ }
29
+ },
30
+ "precisionlocation": {
31
+ "_attributes": {
32
+ "geopointsrc": "???",
33
+ "altsrc": "???"
34
+ }
35
+ },
36
+ "link": [
37
+ {
38
+ "_attributes": {
39
+ "uid": "d12c21b6-aabc-4c59-86aa-fac826d14585",
40
+ "callsign": "Walking Alt Route 5 SP",
41
+ "type": "b-m-p-w",
42
+ "point": "38.5144413169673,-108.547391197293"
43
+ }
44
+ },
45
+ {
46
+ "_attributes": {
47
+ "uid": "89a483a4-571b-497c-8763-cfaba6cbb858",
48
+ "callsign": "",
49
+ "type": "b-m-p-c",
50
+ "point": "38.5149532310605,-108.546923921927"
51
+ }
52
+ },
53
+ {
54
+ "_attributes": {
55
+ "uid": "02068dff-ebdc-44b2-a99c-f9991e7c7759",
56
+ "callsign": "",
57
+ "type": "b-m-p-c",
58
+ "point": "38.5150249333408,-108.546926767992"
59
+ }
60
+ },
61
+ {
62
+ "_attributes": {
63
+ "uid": "8c921804-779a-404f-8ef0-428325bc60fc",
64
+ "callsign": "",
65
+ "type": "b-m-p-c",
66
+ "point": "38.5151394174434,-108.546895974379"
67
+ }
68
+ },
69
+ {
70
+ "_attributes": {
71
+ "uid": "60b13bf0-8c57-4786-b694-81201629e1c5",
72
+ "callsign": "",
73
+ "type": "b-m-p-c",
74
+ "point": "38.5151803514502,-108.546844612187"
75
+ }
76
+ },
77
+ {
78
+ "_attributes": {
79
+ "uid": "fd2b6974-a3f0-4892-b140-98a2a87d2013",
80
+ "callsign": "",
81
+ "type": "b-m-p-c",
82
+ "point": "38.5152636957219,-108.546651915511"
83
+ }
84
+ },
85
+ {
86
+ "_attributes": {
87
+ "uid": "cb25f65e-1578-4fd7-8a0c-3476aba257c8",
88
+ "callsign": "",
89
+ "type": "b-m-p-c",
90
+ "point": "38.515552834564,-108.546310782148"
91
+ }
92
+ },
93
+ {
94
+ "_attributes": {
95
+ "uid": "18b9688d-1569-4c81-898f-28e70ad606bf",
96
+ "callsign": "",
97
+ "type": "b-m-p-c",
98
+ "point": "38.5157638654036,-108.546167031945"
99
+ }
100
+ },
101
+ {
102
+ "_attributes": {
103
+ "uid": "113acbcd-e3f8-46c1-b7c2-770b906a788d",
104
+ "callsign": "",
105
+ "type": "b-m-p-c",
106
+ "point": "38.5158532626694,-108.54609208104"
107
+ }
108
+ },
109
+ {
110
+ "_attributes": {
111
+ "uid": "52a1510b-dcd4-4f70-94e1-b8134ca29a3a",
112
+ "callsign": "",
113
+ "type": "b-m-p-c",
114
+ "point": "38.515905780664,-108.546076056876"
115
+ }
116
+ },
117
+ {
118
+ "_attributes": {
119
+ "uid": "86a51fa0-172d-4fda-98ea-ee942ad0eb3b",
120
+ "callsign": "",
121
+ "type": "b-m-p-c",
122
+ "point": "38.5160187860381,-108.54597316944"
123
+ }
124
+ },
125
+ {
126
+ "_attributes": {
127
+ "uid": "70159eb3-76ff-46b3-9b2b-1deaa2b2d184",
128
+ "callsign": "",
129
+ "type": "b-m-p-c",
130
+ "point": "38.5160564186505,-108.545938100192"
131
+ }
132
+ },
133
+ {
134
+ "_attributes": {
135
+ "uid": "f5ccd2e8-e8f7-4d50-8ad2-3942c4533a02",
136
+ "callsign": "",
137
+ "type": "b-m-p-c",
138
+ "point": "38.5160748431091,-108.545892411714"
139
+ }
140
+ },
141
+ {
142
+ "_attributes": {
143
+ "uid": "d516ce2b-7df2-4c03-b173-ec7ccdbb8478",
144
+ "callsign": "",
145
+ "type": "b-m-p-c",
146
+ "point": "38.5163298746682,-108.545661962771"
147
+ }
148
+ },
149
+ {
150
+ "_attributes": {
151
+ "uid": "429be532-07ba-48c8-b513-ef7bac76d028",
152
+ "callsign": "",
153
+ "type": "b-m-p-c",
154
+ "point": "38.5164957921584,-108.545458235843"
155
+ }
156
+ },
157
+ {
158
+ "_attributes": {
159
+ "uid": "e34b7f29-612b-419b-9724-f4ad5da53e2d",
160
+ "callsign": "",
161
+ "type": "b-m-p-c",
162
+ "point": "38.5166222378823,-108.545275877858"
163
+ }
164
+ },
165
+ {
166
+ "_attributes": {
167
+ "uid": "9726f118-c51d-4e21-83c7-badb0c65e60c",
168
+ "callsign": "",
169
+ "type": "b-m-p-c",
170
+ "point": "38.5167698285131,-108.544850396656"
171
+ }
172
+ },
173
+ {
174
+ "_attributes": {
175
+ "uid": "5c3f4891-a0b2-4143-9c0f-37d3d428e892",
176
+ "callsign": "",
177
+ "type": "b-m-p-c",
178
+ "point": "38.5168808127812,-108.54462357225"
179
+ }
180
+ },
181
+ {
182
+ "_attributes": {
183
+ "uid": "7113e124-f7d4-4848-b7d9-d5bb38df336f",
184
+ "callsign": "",
185
+ "type": "b-m-p-c",
186
+ "point": "38.5170064645084,-108.544504597929"
187
+ }
188
+ },
189
+ {
190
+ "_attributes": {
191
+ "uid": "4725ba21-6fcc-455e-aecb-7882046226a5",
192
+ "callsign": "",
193
+ "type": "b-m-p-c",
194
+ "point": "38.5171414968795,-108.544303302554"
195
+ }
196
+ },
197
+ {
198
+ "_attributes": {
199
+ "uid": "26934743-a721-4768-ba2d-0e97a254bd45",
200
+ "callsign": "",
201
+ "type": "b-m-p-c",
202
+ "point": "38.5172291006172,-108.544236333091"
203
+ }
204
+ },
205
+ {
206
+ "_attributes": {
207
+ "uid": "74d82143-89dd-49ea-8053-31d5f0f8ed1e",
208
+ "callsign": "",
209
+ "type": "b-m-p-c",
210
+ "point": "38.5173173331109,-108.544165746257"
211
+ }
212
+ },
213
+ {
214
+ "_attributes": {
215
+ "uid": "4ae15ac5-5839-4cc3-b712-67e9838d0014",
216
+ "callsign": "",
217
+ "type": "b-m-p-c",
218
+ "point": "38.5174202795084,-108.543976946151"
219
+ }
220
+ },
221
+ {
222
+ "_attributes": {
223
+ "uid": "aa7ba4d0-b691-4f18-a3ed-d1a187fff88f",
224
+ "callsign": "",
225
+ "type": "b-m-p-c",
226
+ "point": "38.5175036227552,-108.543831758696"
227
+ }
228
+ },
229
+ {
230
+ "_attributes": {
231
+ "uid": "c506c4e3-9915-4131-88b3-048b948d08f2",
232
+ "callsign": "",
233
+ "type": "b-m-p-c",
234
+ "point": "38.517613542356,-108.543661143095"
235
+ }
236
+ },
237
+ {
238
+ "_attributes": {
239
+ "uid": "01e7a819-668c-4274-9d90-ac055c4da54a",
240
+ "callsign": "",
241
+ "type": "b-m-p-c",
242
+ "point": "38.5178962265508,-108.543325809711"
243
+ }
244
+ },
245
+ {
246
+ "_attributes": {
247
+ "uid": "eae6be64-4e3d-4291-b4ea-d8f713ea2205",
248
+ "callsign": "",
249
+ "type": "b-m-p-c",
250
+ "point": "38.5179179531849,-108.542564835311"
251
+ }
252
+ },
253
+ {
254
+ "_attributes": {
255
+ "uid": "a121deed-8249-4a49-8e56-46a6d9eda53f",
256
+ "callsign": "",
257
+ "type": "b-m-p-c",
258
+ "point": "38.5179294427309,-108.542459293982"
259
+ }
260
+ },
261
+ {
262
+ "_attributes": {
263
+ "uid": "14666337-5cd0-4b1a-955e-cdc4b78fb612",
264
+ "callsign": "",
265
+ "type": "b-m-p-c",
266
+ "point": "38.5179693454348,-108.542373804005"
267
+ }
268
+ },
269
+ {
270
+ "_attributes": {
271
+ "uid": "b4d50ece-d5e9-410b-9938-87da3e6e13d5",
272
+ "callsign": "",
273
+ "point": "38.518518678155,-108.538496613518"
274
+ }
275
+ },
276
+ {
277
+ "_attributes": {
278
+ "uid": "14bbf100-e5cf-423e-9757-edede63f8aeb",
279
+ "callsign": "",
280
+ "type": "b-m-p-c",
281
+ "point": "38.5184750672752,-108.538285083453"
282
+ }
283
+ },
284
+ {
285
+ "_attributes": {
286
+ "uid": "220654a4-be29-4537-93f2-d9dd3a0f8c29",
287
+ "callsign": "",
288
+ "type": "b-m-p-c",
289
+ "point": "38.5184905316775,-108.538071195872"
290
+ }
291
+ },
292
+ {
293
+ "_attributes": {
294
+ "uid": "de932406-0ce6-49d7-8867-18e85395a88a",
295
+ "callsign": "",
296
+ "type": "b-m-p-c",
297
+ "point": "38.5185637113729,-108.537919778987"
298
+ }
299
+ },
300
+ {
301
+ "_attributes": {
302
+ "uid": "52dbaa28-736c-4409-8b1e-ae73e6655688",
303
+ "callsign": "",
304
+ "type": "b-m-p-c",
305
+ "point": "38.5185823219668,-108.537699998988"
306
+ }
307
+ },
308
+ {
309
+ "_attributes": {
310
+ "uid": "44f53570-4ef1-4076-a7e3-f203912c2675",
311
+ "callsign": "",
312
+ "type": "b-m-p-c",
313
+ "point": "38.5186577706628,-108.537545754848"
314
+ }
315
+ },
316
+ {
317
+ "_attributes": {
318
+ "uid": "91c705e6-6052-4cc2-9cd1-0bdd32fb9620",
319
+ "callsign": "",
320
+ "type": "b-m-p-c",
321
+ "point": "38.5187507810887,-108.537197876139"
322
+ }
323
+ },
324
+ {
325
+ "_attributes": {
326
+ "uid": "9c51a2e0-651f-487e-955f-c4723f57c676",
327
+ "callsign": "",
328
+ "type": "b-m-p-c",
329
+ "point": "38.5187772046473,-108.536844373659"
330
+ }
331
+ },
332
+ {
333
+ "_attributes": {
334
+ "uid": "a08ac55e-1e4d-4d3b-8ed9-654c0d0f17a7",
335
+ "callsign": "",
336
+ "type": "b-m-p-c",
337
+ "point": "38.5188887411569,-108.536563687344"
338
+ }
339
+ },
340
+ {
341
+ "_attributes": {
342
+ "uid": "d263cabb-0127-4b1a-b6ec-49ba7955613e",
343
+ "callsign": "",
344
+ "type": "b-m-p-c",
345
+ "point": "38.5189069741421,-108.536444249515"
346
+ }
347
+ },
348
+ {
349
+ "_attributes": {
350
+ "uid": "433be0f6-8e94-4c07-9c2f-12c2ccdbf585",
351
+ "callsign": "",
352
+ "type": "b-m-p-c",
353
+ "point": "38.5189739966264,-108.53616651121"
354
+ }
355
+ },
356
+ {
357
+ "_attributes": {
358
+ "uid": "31978e14-7b66-40ce-8157-6fe281dcb48e",
359
+ "callsign": "",
360
+ "type": "b-m-p-c",
361
+ "point": "38.5189829024848,-108.536065360801"
362
+ }
363
+ },
364
+ {
365
+ "_attributes": {
366
+ "uid": "bb28b040-c5ee-487c-a76b-6f8cedb27354",
367
+ "callsign": "TGT",
368
+ "type": "b-m-p-w",
369
+ "point": "38.5190139289798,-108.535962334931"
370
+ }
371
+ }
372
+ ],
373
+ "link_attr": {
374
+ "_attributes": {
375
+ "color": "-256",
376
+ "method": "Walking",
377
+ "prefix": "CP",
378
+ "direction": "Infil",
379
+ "routetype": "Primary",
380
+ "order": "Ascending Check Points"
381
+ }
382
+ },
383
+ "_flow-tags_": {
384
+ "_attributes": {
385
+ "TAK-Server-e87a0e02420b44a08f6032bcf1877745": "2024-09-09T21:53:57Z"
386
+ }
387
+ }
388
+ }
389
+ }
390
+ });
391
+ if (!cot.raw.event.detail) {
392
+ t.fail('No Detail Section');
393
+ }
394
+ else {
395
+ t.ok(cot.raw.event.detail['_flow-tags_']);
396
+ delete cot.raw.event.detail['_flow-tags_'];
397
+ t.deepEquals({
398
+ id: '6da80127-44d4-4bf0-89bd-ecd326afaef1',
399
+ type: 'Feature',
400
+ properties: {
401
+ callsign: 'Walking Alt Route 5',
402
+ center: [0, 0, 9999999],
403
+ type: 'b-m-r',
404
+ how: 'h-g-i-g-o',
405
+ precisionlocation: {
406
+ "geopointsrc": "???",
407
+ "altsrc": "???"
408
+ },
409
+ time: '2024-09-09T21:53:57Z',
410
+ start: '2024-09-09T07:28:38Z',
411
+ stale: '2024-09-09T07:28:38Z',
412
+ metadata: {}
413
+ },
414
+ geometry: {
415
+ type: 'LineString',
416
+ coordinates: [
417
+ [-108.547391197293, 38.5144413169673],
418
+ [-108.546923921927, 38.5149532310605],
419
+ [-108.546926767992, 38.5150249333408],
420
+ [-108.546895974379, 38.5151394174434],
421
+ [-108.546844612187, 38.5151803514502],
422
+ [-108.546651915511, 38.5152636957219],
423
+ [-108.546310782148, 38.515552834564],
424
+ [-108.546167031945, 38.5157638654036],
425
+ [-108.54609208104, 38.5158532626694],
426
+ [-108.546076056876, 38.515905780664],
427
+ [-108.54597316944, 38.5160187860381],
428
+ [-108.545938100192, 38.5160564186505],
429
+ [-108.545892411714, 38.5160748431091],
430
+ [-108.545661962771, 38.5163298746682],
431
+ [-108.545458235843, 38.5164957921584],
432
+ [-108.545275877858, 38.5166222378823],
433
+ [-108.544850396656, 38.5167698285131],
434
+ [-108.54462357225, 38.5168808127812],
435
+ [-108.544504597929, 38.5170064645084],
436
+ [-108.544303302554, 38.5171414968795],
437
+ [-108.544236333091, 38.5172291006172],
438
+ [-108.544165746257, 38.5173173331109],
439
+ [-108.543976946151, 38.5174202795084],
440
+ [-108.543831758696, 38.5175036227552],
441
+ [-108.543661143095, 38.517613542356],
442
+ [-108.543325809711, 38.5178962265508],
443
+ [-108.542564835311, 38.5179179531849],
444
+ [-108.542459293982, 38.5179294427309],
445
+ [-108.542373804005, 38.5179693454348],
446
+ [-108.538496613518, 38.518518678155],
447
+ [-108.538285083453, 38.5184750672752],
448
+ [-108.538071195872, 38.5184905316775],
449
+ [-108.537919778987, 38.5185637113729],
450
+ [-108.537699998988, 38.5185823219668],
451
+ [-108.537545754848, 38.5186577706628],
452
+ [-108.537197876139, 38.5187507810887],
453
+ [-108.536844373659, 38.5187772046473],
454
+ [-108.536563687344, 38.5188887411569],
455
+ [-108.536444249515, 38.5189069741421],
456
+ [-108.53616651121, 38.5189739966264],
457
+ [-108.536065360801, 38.5189829024848],
458
+ [-108.535962334931, 38.5190139289798]
459
+ ]
460
+ }
461
+ }, cot.to_geojson());
462
+ }
463
+ t.end();
464
+ });
465
+ //# sourceMappingURL=cot-routes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cot-routes.test.js","sourceRoot":"","sources":["../../test/cot-routes.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../index.ts","../test/chat.test.ts","../test/cot-fileshare.test.ts","../test/cot-itak.test.ts","../test/cot-mma.test.ts","../test/cot-range-and-bearing.test.ts","../test/cot-routes.test.ts","../test/cot-types.test.ts","../test/cot-uas-tool.test.ts","../test/cot_is.test.ts","../test/data-package.test.ts","../test/diff.test.ts","../test/flow-tags.test.ts","../test/force-delete.ts","../test/from_geojson.test.ts","../test/newlines.test.ts","../test/reversal-geojson.test.ts","../test/reversal-proto.test.ts","../test/stream.ts","../test/taskings-mission.test.ts","../test/util.test.ts","../test/validation.test.ts","../lib/chat.ts","../lib/color.ts","../lib/cot-types.ts","../lib/cot.ts","../lib/data-package.ts","../lib/feature.ts","../lib/fileshare.ts","../lib/force-delete.ts","../lib/types.ts","../lib/util.ts"],"version":"5.6.2"}
package/lib/cot.ts CHANGED
@@ -715,7 +715,7 @@ export default class CoT {
715
715
  feat.properties.precisionlocation = raw.event.detail.precisionlocation._attributes;
716
716
  }
717
717
 
718
- if (['u-d-f', 'u-d-r'].includes(raw.event._attributes.type) && Array.isArray(raw.event.detail.link)) {
718
+ if (['u-d-f', 'u-d-r', 'b-m-r'].includes(raw.event._attributes.type) && Array.isArray(raw.event.detail.link)) {
719
719
  const coordinates = [];
720
720
 
721
721
  for (const l of raw.event.detail.link) {
package/lib/types.ts CHANGED
@@ -58,6 +58,46 @@ export const Link = Type.Object({
58
58
  _attributes: LinkAttributes
59
59
  })
60
60
 
61
+ // Ref: https://git.tak.gov/standards/takcot/-/blob/master/xsd/Route.xsd
62
+ export const LinkAttrRouteFil = Type.Enum({
63
+ Infil: 'Infil',
64
+ Exfil: 'Exfil'
65
+ });
66
+
67
+ export const LinkAttrRouteMethod = Type.Enum({
68
+ Driving: 'Driving',
69
+ Walking: 'Walking',
70
+ Flying: 'Flying',
71
+ Swimming: 'Swimming',
72
+ Watercraft: 'Watercraft'
73
+ });
74
+
75
+ export const LinkAttrRouteType = Type.Enum({
76
+ Primary: 'Primary',
77
+ Secondary: 'Secondary',
78
+ });
79
+
80
+ export const LinkAttrRouteOrder = Type.Enum({
81
+ Ascending: 'Ascending Check Points',
82
+ Descending: 'Descending Check Points',
83
+ });
84
+
85
+ export const LinkAttrAttributes = Type.Object({
86
+ planningmethod: Type.Optional(LinkAttrRouteFil),
87
+ color: Type.Optional(Type.Integer()),
88
+ method: LinkAttrRouteMethod,
89
+ prefix: Type.String(),
90
+ stroke: Type.Optional(Type.String()),
91
+ type: Type.Optional(Type.String()),
92
+ routetype: LinkAttrRouteType,
93
+ direction: Type.Optional(LinkAttrRouteFil),
94
+ order: LinkAttrRouteOrder
95
+ })
96
+
97
+ export const LinkAttr = Type.Object({
98
+ _attributes: LinkAttrAttributes
99
+ })
100
+
61
101
  export const ProtocolSupportAttributes = Type.Object({
62
102
  _attributes: Type.Optional(Type.Object({
63
103
  version: Type.Optional(Type.String())
@@ -436,7 +476,10 @@ export const Detail = Type.Object({
436
476
  fillColor: Type.Optional(GenericAttributes),
437
477
  mission: Type.Optional(Mission),
438
478
  shape: Type.Optional(Shape),
479
+
439
480
  link: Type.Optional(Type.Union([Link, Type.Array(Link)])),
481
+ link_attr: Type.Optional(LinkAttr),
482
+
440
483
  usericon: Type.Optional(UserIcon),
441
484
  track: Type.Optional(Track),
442
485
  sensor: Type.Optional(Sensor),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "12.0.0",
4
+ "version": "12.1.0",
5
5
  "description": "Lightweight JavaScript library for parsing and manipulating TAK messages",
6
6
  "author": "Nick Ingalls <nick@ingalls.ca>",
7
7
  "main": "dist/index.js",