@tak-ps/node-cot 11.1.0 → 12.0.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/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "11.1.0",
4
+ "version": "12.0.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",
@@ -32,7 +32,7 @@ test('Decode MultiMissionAircraft CoTs', (t) => {
32
32
  ackrequest: {
33
33
  "_attributes": {
34
34
  "uid": "814d0d4a-3339-4fd2-8e09-0556444112f3",
35
- "ackrequested": "true",
35
+ "ackrequested": true,
36
36
  "tag": "20240615_144641.jpg"
37
37
  }
38
38
  },
@@ -40,7 +40,7 @@ test('Decode MultiMissionAircraft CoTs', (t) => {
40
40
  "_attributes": {
41
41
  "filename": "20240615_144641.jpg.zip",
42
42
  "senderUrl": "https://18.254.242.65:8443/Marti/sync/content?hash=c18e00d123057a8e33107e91ab02f999ecc6f849aed2a41b84e237ff36106a4e",
43
- "sizeInBytes": "4233884",
43
+ "sizeInBytes": 4233884,
44
44
  "sha256": "c18e00d123057a8e33107e91ab02f999ecc6f849aed2a41b84e237ff36106a4e",
45
45
  "senderUid": "ANDROID-0ca41830e11d2ef3",
46
46
  "senderCallsign": "DFPC Ingalls",
@@ -63,7 +63,7 @@ test('Decode MultiMissionAircraft CoTs', (t) => {
63
63
  stale: '2024-07-02T17:13:29Z',
64
64
  ackrequest: {
65
65
  "uid": "814d0d4a-3339-4fd2-8e09-0556444112f3",
66
- "ackrequested": "true",
66
+ "ackrequested": true,
67
67
  "tag": "20240615_144641.jpg"
68
68
  },
69
69
  fileshare: {
@@ -1 +1 @@
1
- {"version":3,"file":"cot-fileshare.test.js","sourceRoot":"","sources":["../../test/cot-fileshare.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cot-fileshare.test.js","sourceRoot":"","sources":["../../test/cot-fileshare.test.ts"],"names":[],"mappings":"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"}
@@ -50,15 +50,15 @@ test('Decode MultiMissionAircraft CoTs', (t) => {
50
50
  "shape": {
51
51
  "polyline": {
52
52
  "_attributes": {
53
- "closed": "true",
53
+ "closed": true,
54
54
  "fillColor": "0",
55
55
  "color": "-1"
56
56
  },
57
57
  "vertex": [
58
- { "_attributes": { "lat": "40.059445", "lon": "-108.328368" } },
59
- { "_attributes": { "lat": "40.061846", "lon": "-108.314776" } },
60
- { "_attributes": { "lat": "40.075499", "lon": "-108.315566" } },
61
- { "_attributes": { "lat": "40.071252", "lon": "-108.330782" } }
58
+ { "_attributes": { "lat": 40.059445, "lon": -108.328368 } },
59
+ { "_attributes": { "lat": 40.061846, "lon": -108.314776 } },
60
+ { "_attributes": { "lat": 40.075499, "lon": -108.315566 } },
61
+ { "_attributes": { "lat": 40.071252, "lon": -108.330782 } }
62
62
  ]
63
63
  }
64
64
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cot-mma.test.js","sourceRoot":"","sources":["../../test/cot-mma.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cot-mma.test.js","sourceRoot":"","sources":["../../test/cot-mma.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
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": "ebbf42a7-ea71-43a1-baf6-e259c3d115bf",
9
+ "type": "u-rb-a",
10
+ "how": "h-e",
11
+ "time": "2024-08-30T22:28:02Z",
12
+ "start": "2024-08-30T22:28:02Z",
13
+ "stale": "2024-08-31T22:28:02Z",
14
+ "access": "Undefined"
15
+ },
16
+ "point": {
17
+ "_attributes": {
18
+ "lat": "39.0981196",
19
+ "lon": "-108.7395013",
20
+ "hae": "0.0",
21
+ "ce": "9999999.0",
22
+ "le": "9999999.0"
23
+ }
24
+ },
25
+ "detail": {
26
+ "contact": {
27
+ "_attributes": {
28
+ "callsign": "R&B 1"
29
+ }
30
+ },
31
+ "range": {
32
+ "_attributes": {
33
+ "value": "14806.869682096987"
34
+ }
35
+ },
36
+ "bearing": { "_attributes": { "value": "102.28151464168589" } },
37
+ "inclination": { "_attributes": { "value": "5.373568186490131" } },
38
+ "rangeUnits": { "_attributes": { "value": "0" } },
39
+ "bearingUnits": { "_attributes": { "value": "0" } },
40
+ "northRef": { "_attributes": { "value": "1" } },
41
+ "strokeColor": { "_attributes": { "value": "-65536" } },
42
+ "strokeWeight": { "_attributes": { "value": "3.0" } },
43
+ "strokeStyle": { "_attributes": { "value": "solid" } },
44
+ "remarks": {},
45
+ "labels_on": { "_attributes": { "value": "false" } },
46
+ "archive": {},
47
+ "link": {
48
+ "_attributes": {
49
+ "uid": "ANDROID-0ca41830e11d2ef3",
50
+ "production_time": "2024-08-30T22:26:28.264Z",
51
+ "type": "a-f-G-E-V-C",
52
+ "parent_callsign": "DFPC Ingalls Tab",
53
+ "relation": "p-p"
54
+ }
55
+ },
56
+ "color": {
57
+ "_attributes": {
58
+ "value": "-65536"
59
+ }
60
+ },
61
+ "_flow-tags_": {
62
+ "_attributes": {
63
+ "TAK-Server-e87a0e02420b44a08f6032bcf1877745": "2024-08-30T22:28:02Z"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ });
69
+ if (!cot.raw.event.detail) {
70
+ t.fail('No Detail Section');
71
+ }
72
+ else {
73
+ t.ok(cot.raw.event.detail['_flow-tags_']);
74
+ delete cot.raw.event.detail['_flow-tags_'];
75
+ t.deepEquals({
76
+ id: 'ebbf42a7-ea71-43a1-baf6-e259c3d115bf',
77
+ type: 'Feature',
78
+ properties: {
79
+ archived: true,
80
+ callsign: 'R&B 1',
81
+ center: [-108.7395013, 39.0981196, 0],
82
+ type: 'u-rb-a',
83
+ how: 'h-e',
84
+ time: '2024-08-30T22:28:02Z',
85
+ start: '2024-08-30T22:28:02Z',
86
+ stale: '2024-08-31T22:28:02Z',
87
+ metadata: {}
88
+ },
89
+ geometry: {
90
+ type: 'Point',
91
+ coordinates: [-108.7395013, 39.0981196, 0]
92
+ }
93
+ }, cot.to_geojson());
94
+ }
95
+ t.end();
96
+ });
97
+ //# sourceMappingURL=cot-range-and-bearing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cot-range-and-bearing.test.js","sourceRoot":"","sources":["../../test/cot-range-and-bearing.test.ts"],"names":[],"mappings":"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"}
@@ -172,6 +172,8 @@ test(`DataPackage CoT Parsing: AttachmentInManifest.zip`, async (t) => {
172
172
  ]);
173
173
  const cots = await pkg.cots();
174
174
  t.equal(cots.length, 1);
175
+ if (!cots[0].raw.event.detail)
176
+ throw new Error('Detail field not set');
175
177
  t.deepEquals(cots[0].raw.event.detail.attachment_list, { _attributes: { hashes: '["3adefc8c1935166d3e501844549776c6fc21cc6d72f371fdda23788e6ec7181d"]' } });
176
178
  const attachments = await pkg.attachments();
177
179
  t.equals(attachments.size, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"data-package.test.js","sourceRoot":"","sources":["../../test/data-package.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-package.test.js","sourceRoot":"","sources":["../../test/data-package.test.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ test('ForceDelete - Basic', (t) => {
29
29
  _attributes: { lat: '0.000000', lon: '0.000000', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
30
30
  },
31
31
  detail: {
32
- __forceddelete: {},
32
+ __forcedelete: {},
33
33
  link: {
34
34
  _attributes: {
35
35
  uid: 'delete-uid',
@@ -1 +1 @@
1
- {"version":3,"file":"force-delete.js","sourceRoot":"","sources":["../../test/force-delete.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAA;QAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAE9C,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE;gBACH,WAAW,EAAE;oBACT,GAAG,EAAE,YAAY;oBACjB,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,KAAK;oBAEV,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,YAAY;iBACtB;gBACD,KAAK,EAAE;oBACH,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;iBAClG;gBACD,MAAM,EAAE;oBACJ,cAAc,EAAE,EAAE;oBAClB,IAAI,EAAE;wBACF,WAAW,EAAE;4BACT,GAAG,EAAE,YAAY;4BACjB,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"force-delete.js","sourceRoot":"","sources":["../../test/force-delete.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAA;QAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAE9C,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE;gBACH,WAAW,EAAE;oBACT,GAAG,EAAE,YAAY;oBACjB,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,KAAK;oBAEV,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,YAAY;iBACtB;gBACD,KAAK,EAAE;oBACH,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;iBAClG;gBACD,MAAM,EAAE;oBACJ,aAAa,EAAE,EAAE;oBACjB,IAAI,EAAE;wBACF,WAAW,EAAE;4BACT,GAAG,EAAE,YAAY;4BACjB,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -2,12 +2,7 @@ import test from 'tape';
2
2
  import CoT from '../index.js';
3
3
  test('CoT.from_geojson - Point', (t) => {
4
4
  try {
5
- new CoT({
6
- event: {
7
- // @ts-expect-error we're trying to force an error here
8
- _attributes: {}
9
- }
10
- });
5
+ new CoT({ event: { _attributes: {} } });
11
6
  t.fail();
12
7
  }
13
8
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../test/validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE;IACnC,IAAI,CAAC;QACD,IAAI,GAAG,CACH;YACI,KAAK,EAAE;gBACP,uDAAuD;gBACnD,WAAW,EAAE,EAAE;aAClB;SACJ,CACJ,CAAC;QACF,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../test/validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE;IACnC,IAAI,CAAC;QACD,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
package/lib/cot.ts CHANGED
@@ -18,7 +18,7 @@ import Truncate from '@turf/truncate';
18
18
  import Ellipse from '@turf/ellipse';
19
19
  import Util from './util.js';
20
20
  import Color from './color.js';
21
- import JSONCoT from './types.js'
21
+ import JSONCoT, { Detail } from './types.js'
22
22
  import type { MartiDest, MartiDestAttributes, Link, LinkAttributes } from './types.js'
23
23
  import AJV from 'ajv';
24
24
  import fs from 'fs';
@@ -59,14 +59,14 @@ export default class CoT {
59
59
  // merged into the CoT spec
60
60
  metadata: Record<string, unknown>;
61
61
 
62
- constructor(cot: Buffer | Static<typeof JSONCoT> | string) {
62
+ constructor(cot: Buffer | Static<typeof JSONCoT> | object | string) {
63
63
  if (typeof cot === 'string' || cot instanceof Buffer) {
64
64
  if (cot instanceof Buffer) cot = String(cot);
65
65
 
66
66
  const raw = xmljs.xml2js(cot, { compact: true });
67
67
  this.raw = raw as Static<typeof JSONCoT>;
68
68
  } else {
69
- this.raw = cot;
69
+ this.raw = cot as Static<typeof JSONCoT>;
70
70
  }
71
71
 
72
72
  this.metadata = {};
@@ -82,7 +82,9 @@ export default class CoT {
82
82
  if (!this.raw.event.detail['_flow-tags_']) this.raw.event.detail['_flow-tags_'] = {};
83
83
  this.raw.event.detail['_flow-tags_'][`NodeCoT-${pkg.version}`] = new Date().toISOString()
84
84
 
85
- if (this.raw.event.detail.archived && Object.keys(this.raw.event.detail.archived).length === 0) this.raw.event.detail.archived = { _attributes: {} };
85
+ if (this.raw.event.detail.archive && Object.keys(this.raw.event.detail.archive).length === 0) {
86
+ this.raw.event.detail.archive = { _attributes: {} };
87
+ }
86
88
  }
87
89
 
88
90
  /**
@@ -207,7 +209,7 @@ export default class CoT {
207
209
  }
208
210
 
209
211
  if (feature.properties.archived) {
210
- cot.event.detail.archived = { _attributes: { } };
212
+ cot.event.detail.archive = { _attributes: { } };
211
213
  }
212
214
 
213
215
  if (feature.properties.links) {
@@ -438,7 +440,7 @@ export default class CoT {
438
440
  if (version < 1 || version > 1) throw new Err(400, null, `Unsupported Proto Version: ${version}`);
439
441
  const ProtoMessage = RootMessage.lookupType(`atakmap.commoncommo.protobuf.v${version}.TakMessage`)
440
442
 
441
- const detail = this.raw.event.detail;
443
+ const detail = this.raw.event.detail || {};
442
444
 
443
445
  const msg: any = {
444
446
  cotEvent: {
@@ -453,7 +455,8 @@ export default class CoT {
453
455
  }
454
456
  };
455
457
 
456
- for (const key in detail) {
458
+ let key: keyof Static<typeof Detail>;
459
+ for (key in detail) {
457
460
  if(['contact', 'group', 'precisionlocation', 'status', 'takv', 'track'].includes(key)) {
458
461
  msg.cotEvent.detail[key] = detail[key]._attributes;
459
462
  delete detail[key]
@@ -493,7 +496,9 @@ export default class CoT {
493
496
  delete detail.metadata;
494
497
  }
495
498
  } else if (['contact', 'group', 'precisionlocation', 'status', 'takv', 'track'].includes(key)) {
496
- detail[key] = { _attributes: msg.cotEvent.detail[key] };
499
+ if (msg.cotEvent.detail[key]) {
500
+ detail[key] = { _attributes: msg.cotEvent.detail[key] };
501
+ }
497
502
  }
498
503
  }
499
504
 
@@ -601,7 +606,7 @@ export default class CoT {
601
606
  if (!feat.properties.links || !feat.properties.links.length) delete feat.properties.links;
602
607
  }
603
608
 
604
- if (raw.event.detail.archived) {
609
+ if (raw.event.detail.archive) {
605
610
  feat.properties.archived = true;
606
611
  }
607
612
 
@@ -755,6 +760,12 @@ export default class CoT {
755
760
  }
756
761
  }
757
762
  } else if (raw.event._attributes.type.startsWith('u-d-c-c')) {
763
+ if (!raw.event.detail.shape) throw new Err(400, null, 'u-d-c-c (Circle) must define shape value')
764
+ if (
765
+ !raw.event.detail.shape.ellipse
766
+ || !raw.event.detail.shape.ellipse._attributes
767
+ ) throw new Err(400, null, 'u-d-c-c (Circle) must define ellipse shape value')
768
+
758
769
  const ellipse = {
759
770
  major: Number(raw.event.detail.shape.ellipse._attributes.major),
760
771
  minor: Number(raw.event.detail.shape.ellipse._attributes.minor),
@@ -787,7 +798,7 @@ export default class CoT {
787
798
 
788
799
  if (coordinates.length === 1) {
789
800
  feat.geometry = { type: 'Point', coordinates: coordinates[0] }
790
- } else if (raw.event.detail.shape.polyline._attributes && raw.event.detail.shape.polyline._attributes.closed === 'true') {
801
+ } else if (raw.event.detail.shape.polyline._attributes && raw.event.detail.shape.polyline._attributes.closed === true) {
791
802
  coordinates.push(coordinates[0]);
792
803
  feat.geometry = { type: 'Polygon', coordinates: [coordinates] }
793
804
  } else {
@@ -795,7 +806,12 @@ export default class CoT {
795
806
  }
796
807
  }
797
808
 
798
- if (raw.event.detail.shape && raw.event.detail.shape.polyline._attributes && raw.event.detail.shape.polyline._attributes) {
809
+ if (
810
+ raw.event.detail.shape
811
+ && raw.event.detail.shape.polyline
812
+ && raw.event.detail.shape.polyline._attributes
813
+ && raw.event.detail.shape.polyline._attributes
814
+ ) {
799
815
  if (raw.event.detail.shape.polyline._attributes.fillColor) {
800
816
  const fill = new Color(Number(raw.event.detail.shape.polyline._attributes.fillColor));
801
817
  feat.properties['fill-opacity'] = fill.as_opacity() / 255;
@@ -235,32 +235,31 @@ export class DataPackage {
235
235
  });
236
236
 
237
237
  for (const cot of cots) {
238
+ if (!cot.raw.event.detail) {
239
+ cot.raw.event.detail = {};
240
+ }
241
+
238
242
  const attaches = attachments.get(cot.uid());
239
243
  if (!attaches) continue;
240
244
 
241
245
  for (const attach of attaches) {
242
246
  if (!cot.raw.event.detail.attachment_list) {
243
247
  cot.raw.event.detail.attachment_list = {
244
- _attributes: {
245
- hashes: []
246
- }
248
+ _attributes: { hashes: '[]' }
247
249
  };
248
- } else {
249
- cot.raw.event.detail.attachment_list._attributes.hashes = JSON.parse(
250
- cot.raw.event.detail.attachment_list._attributes.hashes
251
- );
252
250
  }
253
251
 
252
+ const hashes: string[] = JSON.parse(cot.raw.event.detail.attachment_list._attributes.hashes)
253
+
254
254
  // Until told otherwise the FileHash appears to always be the directory name
255
255
  const hash = await this.hash(attach._attributes.zipEntry);
256
256
 
257
- if (!cot.raw.event.detail.attachment_list._attributes.hashes.includes(hash)) {
258
- cot.raw.event.detail.attachment_list._attributes.hashes.push(hash)
257
+ if (!hashes.includes(hash)) {
258
+ hashes.push(hash)
259
259
  }
260
260
 
261
- cot.raw.event.detail.attachment_list._attributes.hashes = JSON.stringify(
262
- cot.raw.event.detail.attachment_list._attributes.hashes
263
- );
261
+ cot.raw.event.detail.attachment_list._attributes.hashes = JSON.stringify(hashes);
262
+
264
263
  }
265
264
  }
266
265
  }
@@ -17,7 +17,7 @@ export class ForceDelete extends CoT {
17
17
  relation: 'none'
18
18
  }
19
19
  },
20
- __forceddelete: {}
20
+ __forcedelete: {}
21
21
  }
22
22
  }
23
23
  };
package/lib/types.ts CHANGED
@@ -18,9 +18,15 @@ export const EventAttributes = Type.Object({
18
18
  qos: Type.Optional(Type.String()),
19
19
  opex: Type.Optional(Type.String()),
20
20
 
21
- time: Type.String(),
22
- stale: Type.String(),
23
- start: Type.String(),
21
+ time: Type.String({
22
+ description: 'Time at which the CoT was generated'
23
+ }),
24
+ stale: Type.String({
25
+ description: 'Time at which the CoT is no longer current'
26
+ }),
27
+ start: Type.String({
28
+ description: 'Time at which the CoT starts'
29
+ }),
24
30
  });
25
31
 
26
32
  export const TogAttributes = Type.Object({
@@ -123,7 +129,7 @@ export const ShapeEllipseAttributes = Type.Object({
123
129
  })
124
130
 
125
131
  export const ShapeEllipse = Type.Object({
126
- _attributes: Type.Optional(ShapeEllipseAttributes),
132
+ _attributes: ShapeEllipseAttributes,
127
133
  })
128
134
 
129
135
  export const Shape = Type.Object({
@@ -149,8 +155,8 @@ export const MissionLayer = Type.Object({
149
155
  export const MissionChangeDetails = Type.Object({
150
156
  _attributes: Type.Object({
151
157
  type: Type.String(),
152
- callsign: Type.String(),
153
- color: Type.String()
158
+ callsign: Type.Optional(Type.String()),
159
+ color: Type.Optional(Type.String())
154
160
  }),
155
161
  location: Type.Optional(Type.Object({
156
162
  _attributes: Type.Object({
@@ -171,7 +177,7 @@ export const MissionChange = Type.Object({
171
177
  })
172
178
 
173
179
  export const MissionChanges = Type.Object({
174
- MissionChange: Type.Union([Type.Array(MissionChange), MissionChange])
180
+ MissionChange: Type.Union([MissionChange, Type.Array(MissionChange)])
175
181
  })
176
182
 
177
183
  export const Mission = Type.Object({
@@ -298,6 +304,7 @@ export const Uid = Type.Object({
298
304
  export const Contact = Type.Object({
299
305
  _attributes: Type.Object({
300
306
  phone: Type.Optional(Type.String()),
307
+ name: Type.Optional(Type.String()),
301
308
  callsign: Type.String(),
302
309
  endpoint: Type.Optional(Type.String())
303
310
  })
@@ -331,6 +338,54 @@ export const Attachment = Type.Object({
331
338
  _attributes: AttachmentAttributes,
332
339
  });
333
340
 
341
+ export const RangeAttributes = Type.Object({
342
+ value: Type.String()
343
+ });
344
+
345
+ export const Range = Type.Object({
346
+ _attributes: RangeAttributes,
347
+ });
348
+
349
+ export const RangeUnitsAttributes = Type.Object({
350
+ value: Type.String()
351
+ });
352
+
353
+ export const RangeUnits = Type.Object({
354
+ _attributes: RangeUnitsAttributes,
355
+ });
356
+
357
+ export const BearingAttributes = Type.Object({
358
+ value: Type.String()
359
+ });
360
+
361
+ export const Bearing = Type.Object({
362
+ _attributes: BearingAttributes,
363
+ });
364
+
365
+ export const BearingUnitsAttributes = Type.Object({
366
+ value: Type.String()
367
+ });
368
+
369
+ export const BearingUnits = Type.Object({
370
+ _attributes: BearingUnitsAttributes,
371
+ });
372
+
373
+ export const InclinationAttributes = Type.Object({
374
+ value: Type.String()
375
+ });
376
+
377
+ export const Inclination = Type.Object({
378
+ _attributes: InclinationAttributes,
379
+ });
380
+
381
+ export const NorthRefAttributes = Type.Object({
382
+ value: Type.String()
383
+ });
384
+
385
+ export const NorthRef = Type.Object({
386
+ _attributes: NorthRefAttributes,
387
+ });
388
+
334
389
  export const Remarks = Type.Object({
335
390
  _attributes: Type.Optional(Type.Object({
336
391
  source: Type.Optional(Type.String()),
@@ -374,7 +429,7 @@ export const Detail = Type.Object({
374
429
  precisionlocation: Type.Optional(PrecisionLocation),
375
430
  color: Type.Optional(ColorAttributes),
376
431
  strokeColor: Type.Optional(GenericAttributes),
377
- archive: Type.Optional(GenericAttributes),
432
+ archive: Type.Optional(Type.Union([GenericAttributes, Type.Array(GenericAttributes)])),
378
433
  strokeWeight: Type.Optional(GenericAttributes),
379
434
  strokeStyle: Type.Optional(GenericAttributes),
380
435
  labels_on: Type.Optional(GenericAttributes),
@@ -388,6 +443,15 @@ export const Detail = Type.Object({
388
443
  takv: Type.Optional(TakVersion),
389
444
  marti: Type.Optional(Marti),
390
445
  attachment_list: Type.Optional(Attachment),
446
+
447
+ // Range & Bearing
448
+ range: Type.Optional(Range),
449
+ rangeUnits: Type.Optional(RangeUnits),
450
+ bearing: Type.Optional(Bearing),
451
+ bearingUnits: Type.Optional(BearingUnits),
452
+ inclination: Type.Optional(Inclination),
453
+ northRef: Type.Optional(NorthRef),
454
+
391
455
  TakControl: Type.Optional(Type.Object({
392
456
  TakProtocolSupport: Type.Optional(ProtocolSupportAttributes),
393
457
  TakServerVersionInfo: Type.Optional(ServerVersionAttributes)
@@ -407,7 +471,7 @@ export const Point = Type.Object({
407
471
  export default Type.Object({
408
472
  event: Type.Object({
409
473
  _attributes: EventAttributes,
410
- detail: Type.Optional(Type.Index(Detail, Type.KeyOf(Detail))),
474
+ detail: Type.Optional(Detail),
411
475
  point: Point,
412
476
  }),
413
477
  })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "11.1.0",
4
+ "version": "12.0.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",