@tak-ps/node-cot 5.4.0 → 5.5.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,14 @@
10
10
 
11
11
  ## Version History
12
12
 
13
+ ### v5.5.1
14
+
15
+ - :tada: Add TAK Server Version Attributes
16
+
17
+ ### v5.5.0
18
+
19
+ - :tada: Migrate to TypeBox based schema for stricter types and to avoid JSONSchema compilation step
20
+
13
21
  ### v5.4.0
14
22
 
15
23
  - :tada: Include suppport for `archived` tag
package/README.md CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  <p align=center>Javascript Cursor-On-Target Library</p>
4
4
 
5
- Lightweight JavaScript library for parsing and manipulating TAK messages, primarily Cursor-on-Target (COT)
5
+ Lightweight JavaScript library for parsing and manipulating TAK related messages, primarily [Cursor-on-Target (COT)](https://git.tak.gov/standards/takcot)
6
6
 
7
7
  ## About
8
8
 
9
- tak.js converts between TAK message protocols and a Javascript object/JSON format. This makes it easy to read and write TAK messages in a Node.js application.
9
+ `node-tak` converts between TAK message protocols and a Javascript object/JSON format.
10
+ It also can bidirectionally convert CoT messages into a GeoJSON format
10
11
 
11
12
  ## Installation
12
13
 
@@ -35,10 +36,10 @@ understanding of the spec primarily developed through reverse engineering TAK cl
35
36
  | `version` | CoT Version, currently `2.0` | `version="2.0"` |
36
37
  | `uid` | Globally unique name for this information on this event | `uid="any-unique-string-123"` |
37
38
  | `type` | Hierarchically organized hint about event type | `type="a-f-G-E"' |
38
- | `time` | The time at which the event was generated | `time="2023-07-18T15:25:09.00Z"` |
39
39
  | `how` | Gives a hint about how the coordinates were generated | `how=""`
40
- | `start` | | |
41
- | `stale` | | |
40
+ | `time` | The time at which the event was generated | `time="2023-07-18T15:25:09.00Z"` |
41
+ | `start` | The time at which the event starts or is relevant | `start="2023-07-18T15:25:09.00Z"` |
42
+ | `stale` | The time at which the event ends or is not relevant | `stale="2023-07-18T15:25:09.00Z"` |
42
43
 
43
44
  ## CoT GeoJSON Spec
44
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../lib/chat.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,MAAM,OAAO,UAAW,SAAQ,GAAG;IAC/B,YAAY,IAAqB;QAC7B,MAAM,GAAG,GAAY;YACjB,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC;gBACtD,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE;oBACJ,MAAM,EAAE;wBACJ,WAAW,EAAE;4BACT,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,kBAAkB;4BACzC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;4BAC9C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;4BACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ;4BAC3C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;4BACf,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;yBACrC;wBACD,OAAO,EAAE;4BACL,WAAW,EAAE;gCACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gCACnB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;gCACjB,EAAE,EAAG,IAAI,CAAC,EAAE,CAAC,GAAG;6BACnB;yBACJ;qBACJ;iBACJ;aACJ;SACJ,CAAA;QAED,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,CAAC;QAEtF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;YAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAE7C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG;YACpB,WAAW,EAAE;gBACT,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;aAClB;SACJ,CAAA;QAED,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG;YACvB,WAAW,EAAE;gBACT,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBACrB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;gBACf,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;aACnC;YACD,KAAK,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;QAED,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;CACJ"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../lib/chat.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,GAAG,MAAM,UAAU,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,MAAM,OAAO,UAAW,SAAQ,GAAG;IAC/B,YAAY,IAAqB;QAC7B,MAAM,GAAG,GAA2B;YAChC,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC;gBACtD,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE;oBACJ,MAAM,EAAE;wBACJ,WAAW,EAAE;4BACT,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,kBAAkB;4BACzC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;4BAC9C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;4BACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ;4BAC3C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;4BACf,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;yBACrC;wBACD,OAAO,EAAE;4BACL,WAAW,EAAE;gCACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gCACnB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;gCACjB,EAAE,EAAG,IAAI,CAAC,EAAE,CAAC,GAAG;6BACnB;yBACJ;qBACJ;iBACJ;aACJ;SACJ,CAAA;QAED,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,CAAC;QAEtF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;YAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAE7C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG;YACpB,WAAW,EAAE;gBACT,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;aAClB;SACJ,CAAA;QAED,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG;YACvB,WAAW,EAAE;gBACT,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBACrB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;gBACf,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;aACnC;YACD,KAAK,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;QAED,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;CACJ"}
package/dist/lib/cot.js CHANGED
@@ -2,15 +2,15 @@ import xmljs from 'xml-js';
2
2
  import Util from './util.js';
3
3
  import Color from './color.js';
4
4
  import PointOnFeature from '@turf/point-on-feature';
5
+ import JSONCoT from './types.js';
5
6
  import AJV from 'ajv';
6
7
  import fs from 'fs';
7
- const schema = JSON.parse(String(fs.readFileSync(new URL('./schema.json', import.meta.url))));
8
8
  const pkg = JSON.parse(String(fs.readFileSync(new URL('../package.json', import.meta.url))));
9
9
  const ajv = (new AJV({
10
10
  allErrors: true,
11
11
  allowUnionTypes: true
12
12
  }))
13
- .compile(schema);
13
+ .compile(JSONCoT);
14
14
  /**
15
15
  * Convert to and from an XML CoT message
16
16
  * @class
@@ -32,7 +32,7 @@ export default class CoT {
32
32
  this.raw = cot;
33
33
  }
34
34
  if (!this.raw.event._attributes.uid)
35
- this.raw.event._attributes.uuid = Util.cot_uuid();
35
+ this.raw.event._attributes.uid = Util.cot_uuid();
36
36
  ajv(this.raw);
37
37
  if (ajv.errors)
38
38
  throw new Error(`${ajv.errors[0].message} (${ajv.errors[0].instancePath})`);
@@ -42,7 +42,7 @@ export default class CoT {
42
42
  this.raw.event.detail['_flow-tags_'] = {};
43
43
  this.raw.event.detail['_flow-tags_'][`NodeCoT-${pkg.version}`] = new Date().toISOString();
44
44
  if (this.raw.event.detail.archived && Object.keys(this.raw.event.detail.archived).length === 0)
45
- this.raw.event.archived = { _attributes: {} };
45
+ this.raw.event.detail.archived = { _attributes: {} };
46
46
  }
47
47
  /**
48
48
  * Return an CoT Message
@@ -264,6 +264,8 @@ export default class CoT {
264
264
  if (['u-d-f', 'u-d-r'].includes(raw.event._attributes.type) && Array.isArray(raw.event.detail.link)) {
265
265
  const coordinates = [];
266
266
  for (const l of raw.event.detail.link) {
267
+ if (!l._attributes.point)
268
+ continue;
267
269
  coordinates.push(l._attributes.point.split(',').map((p) => { return Number(p.trim()); }).splice(0, 2).reverse());
268
270
  }
269
271
  if (raw.event.detail.strokeColor && raw.event.detail.strokeColor._attributes && raw.event.detail.strokeColor._attributes.value) {
@@ -1 +1 @@
1
- {"version":3,"file":"cot.js","sourceRoot":"","sources":["../../lib/cot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cot.js","sourceRoot":"","sources":["../../lib/cot.ts"],"names":[],"mappings":"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"}
package/dist/lib/types.js CHANGED
@@ -1,2 +1,160 @@
1
- export {};
1
+ import { Type } from '@sinclair/typebox';
2
+ export const EventAttributes = Type.Object({
3
+ version: Type.String(),
4
+ uid: Type.String(),
5
+ type: Type.String(),
6
+ how: Type.String(),
7
+ time: Type.String(),
8
+ stale: Type.String(),
9
+ start: Type.String(),
10
+ });
11
+ export const TogAttributes = Type.Object({
12
+ _attributes: Type.Optional(Type.Object({
13
+ enabled: Type.Optional(Type.String())
14
+ }))
15
+ });
16
+ export const LinkAttributes = Type.Object({
17
+ _attributes: Type.Object({
18
+ point: Type.Optional(Type.String()),
19
+ uid: Type.Optional(Type.String()),
20
+ type: Type.Optional(Type.String()),
21
+ relation: Type.Optional(Type.String()),
22
+ })
23
+ });
24
+ export const ServerVersionAttributes = Type.Object({
25
+ _attributes: Type.Optional(Type.Object({
26
+ serverVersion: Type.Optional(Type.String())
27
+ }))
28
+ });
29
+ export const GenericAttributes = Type.Object({
30
+ _attributes: Type.Optional(Type.Object({
31
+ value: Type.Optional(Type.String())
32
+ }))
33
+ });
34
+ export const TrackAttributes = Type.Object({
35
+ speed: Type.Optional(Type.String()),
36
+ course: Type.Optional(Type.String()),
37
+ slope: Type.Optional(Type.String()),
38
+ eCourse: Type.Optional(Type.String()),
39
+ eSpeed: Type.Optional(Type.String()),
40
+ eSlope: Type.Optional(Type.String())
41
+ });
42
+ export const Track = Type.Object({
43
+ _attributes: TrackAttributes
44
+ });
45
+ export const Chat = Type.Object({
46
+ _attributes: Type.Object({
47
+ parent: Type.Optional(Type.String()),
48
+ groupOwner: Type.Optional(Type.String()),
49
+ messageId: Type.Optional(Type.String()),
50
+ chatroom: Type.String(),
51
+ id: Type.String(),
52
+ senderCallsign: Type.String()
53
+ }),
54
+ chatgrp: Type.Any()
55
+ });
56
+ export const TakVersion = Type.Object({
57
+ _attributes: Type.Object({
58
+ device: Type.Optional(Type.String()),
59
+ platform: Type.Optional(Type.String()),
60
+ os: Type.Optional(Type.String()),
61
+ version: Type.Optional(Type.String())
62
+ })
63
+ });
64
+ export const FlowTags = Type.Any();
65
+ export const Group = Type.Object({
66
+ _attributes: Type.Optional(Type.Object({
67
+ name: Type.String(),
68
+ role: Type.String()
69
+ }))
70
+ });
71
+ export const Status = Type.Object({
72
+ _attributes: Type.Object({
73
+ battery: Type.Optional(Type.String()),
74
+ readiness: Type.Optional(Type.String())
75
+ })
76
+ });
77
+ export const Uid = Type.Object({
78
+ _attributes: Type.Object({
79
+ Droid: Type.String()
80
+ })
81
+ });
82
+ export const Contact = Type.Object({
83
+ _attributes: Type.Object({
84
+ phone: Type.Optional(Type.String()),
85
+ callsign: Type.String(),
86
+ endpoint: Type.Optional(Type.String())
87
+ })
88
+ });
89
+ export const MartiDest = Type.Object({
90
+ _attributes: Type.Object({
91
+ uid: Type.Optional(Type.String()),
92
+ mission: Type.Optional(Type.String()),
93
+ callsign: Type.Optional(Type.String())
94
+ })
95
+ });
96
+ export const Marti = Type.Object({
97
+ _attributes: Type.Optional(Type.Object({})),
98
+ dest: Type.Optional(Type.Union([MartiDest, Type.Array(MartiDest)]))
99
+ });
100
+ export const Remarks = Type.Object({
101
+ _attributes: Type.Optional(Type.Object({
102
+ source: Type.Optional(Type.String()),
103
+ to: Type.Optional(Type.String()),
104
+ time: Type.Optional(Type.String())
105
+ })),
106
+ _text: Type.Optional(Type.String())
107
+ });
108
+ export const PrecisionLocation = Type.Object({
109
+ _attributes: Type.Object({
110
+ geopointsrc: Type.Optional(Type.String()),
111
+ altsrc: Type.Optional(Type.String())
112
+ })
113
+ });
114
+ export const UserIcon = Type.Object({
115
+ _attributes: Type.Object({
116
+ iconsetpath: Type.String()
117
+ })
118
+ });
119
+ export const Detail = Type.Object({
120
+ contact: Type.Optional(Contact),
121
+ tog: Type.Optional(TogAttributes),
122
+ '__group': Type.Optional(Group),
123
+ '__chat': Type.Optional(Chat),
124
+ '_flow-tags_': Type.Optional(FlowTags),
125
+ uid: Type.Optional(Uid),
126
+ status: Type.Optional(Status),
127
+ remarks: Type.Optional(Remarks),
128
+ precisionlocation: Type.Optional(PrecisionLocation),
129
+ strokeColor: Type.Optional(GenericAttributes),
130
+ archived: Type.Optional(GenericAttributes),
131
+ strokeWeight: Type.Optional(GenericAttributes),
132
+ strokeStyle: Type.Optional(GenericAttributes),
133
+ labels_on: Type.Optional(GenericAttributes),
134
+ fillColor: Type.Optional(GenericAttributes),
135
+ link: Type.Optional(Type.Union([LinkAttributes, Type.Array(LinkAttributes)])),
136
+ usericon: Type.Optional(UserIcon),
137
+ track: Type.Optional(Track),
138
+ takv: Type.Optional(TakVersion),
139
+ marti: Type.Optional(Marti),
140
+ TakControl: Type.Optional(Type.Object({
141
+ TakServerVersionInfo: Type.Optional(ServerVersionAttributes)
142
+ }))
143
+ });
144
+ export const Point = Type.Object({
145
+ _attributes: Type.Object({
146
+ lat: Type.Union([Type.String(), Type.Number()]),
147
+ lon: Type.Union([Type.String(), Type.Number()]),
148
+ hae: Type.Union([Type.String(), Type.Number()]),
149
+ ce: Type.Union([Type.String(), Type.Number()]),
150
+ le: Type.Union([Type.String(), Type.Number()]),
151
+ })
152
+ });
153
+ export default Type.Object({
154
+ event: Type.Object({
155
+ _attributes: EventAttributes,
156
+ detail: Type.Optional(Detail),
157
+ point: Point,
158
+ }),
159
+ });
2
160
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/util.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "5.4.0",
4
+ "version": "5.5.1",
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",
@@ -10,10 +10,11 @@
10
10
  "test": "ts-node-test test/",
11
11
  "lint": "eslint *.ts lib/*.ts",
12
12
  "doc": "typedoc index.ts",
13
- "build": "typescript-json-schema --required --out ./lib/schema.json ./lib/types.ts JSONCoT && tsc --build && cp package.json dist/",
13
+ "build": "tsc --build && cp package.json dist/",
14
14
  "pretest": "npm run lint"
15
15
  },
16
16
  "dependencies": {
17
+ "@sinclair/typebox": "^0.32.20",
17
18
  "@turf/helpers": "^6.5.0",
18
19
  "@turf/point-on-feature": "^6.5.0",
19
20
  "@types/color": "^3.0.3",
@@ -34,8 +35,7 @@
34
35
  "ts-node": "^10.9.1",
35
36
  "ts-node-test": "^0.4.0",
36
37
  "typedoc": "^0.25.0",
37
- "typescript": "^5.0.0",
38
- "typescript-json-schema": "^0.62.0"
38
+ "typescript": "^5.0.0"
39
39
  },
40
40
  "repository": {
41
41
  "type": "git",
@@ -21,10 +21,12 @@ test('DirectChat - Basic', (t) => {
21
21
  else {
22
22
  t.ok(cot.raw.event.detail['_flow-tags_']);
23
23
  delete cot.raw.event.detail['_flow-tags_'];
24
- for (const i of ['time', 'start', 'stale']) {
25
- t.equals(typeof cot.raw.event._attributes[i], 'string');
26
- delete cot.raw.event._attributes[i];
27
- }
24
+ t.equals(typeof cot.raw.event._attributes.time, 'string');
25
+ cot.raw.event._attributes.time = '2024-04-01';
26
+ t.equals(typeof cot.raw.event._attributes.start, 'string');
27
+ cot.raw.event._attributes.start = '2024-04-01';
28
+ t.equals(typeof cot.raw.event._attributes.stale, 'string');
29
+ cot.raw.event._attributes.stale = '2024-04-01';
28
30
  if (!cot.raw.event.detail.__chat) {
29
31
  t.fail('No Detail Section');
30
32
  }
@@ -46,6 +48,9 @@ test('DirectChat - Basic', (t) => {
46
48
  version: '2.0',
47
49
  type: 'b-t-f',
48
50
  how: 'h-g-i-g-o',
51
+ time: '2024-04-01',
52
+ stale: '2024-04-01',
53
+ start: '2024-04-01'
49
54
  },
50
55
  point: {
51
56
  _attributes: { lat: '0.000000', lon: '0.000000', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.test.js","sourceRoot":"","sources":["../../test/chat.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.test.js","sourceRoot":"","sources":["../../test/chat.test.ts"],"names":[],"mappings":"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"}
package/lib/chat.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import Util from './util.js'
2
2
  import CoT from './cot.js';
3
3
  import JSONCoT from './types.js';
4
+ import { Static } from '@sinclair/typebox';
4
5
  import { randomUUID } from 'node:crypto';
5
6
 
6
7
  export type DirectChatMember = {
@@ -23,7 +24,7 @@ export type DirectChatInput = {
23
24
 
24
25
  export class DirectChat extends CoT {
25
26
  constructor(chat: DirectChatInput) {
26
- const cot: JSONCoT = {
27
+ const cot: Static<typeof JSONCoT> = {
27
28
  event: {
28
29
  _attributes: Util.cot_event_attr('b-t-f', 'h-g-i-g-o'),
29
30
  point: Util.cot_point(),
package/lib/cot.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  import xmljs from 'xml-js';
2
+ import { Static } from '@sinclair/typebox';
2
3
  import { Feature } from 'geojson';
3
4
  import { AllGeoJSON } from "@turf/helpers";
4
5
  import Util from './util.js';
5
6
  import Color from './color.js';
6
7
  import PointOnFeature from '@turf/point-on-feature';
7
- import JSONCoT from './types.js'
8
+ import JSONCoT, { MartiDest } from './types.js'
8
9
  import AJV from 'ajv';
9
10
  import fs from 'fs';
10
11
 
11
- const schema = JSON.parse(String(fs.readFileSync(new URL('./schema.json', import.meta.url))));
12
12
  const pkg = JSON.parse(String(fs.readFileSync(new URL('../package.json', import.meta.url))));
13
13
 
14
14
  const ajv = (new AJV({
15
15
  allErrors: true,
16
16
  allowUnionTypes: true
17
17
  }))
18
- .compile(schema);
18
+ .compile(JSONCoT);
19
19
 
20
20
  /**
21
21
  * Convert to and from an XML CoT message
@@ -26,19 +26,19 @@ const ajv = (new AJV({
26
26
  * @prop raw Raw XML-JS representation of CoT
27
27
  */
28
28
  export default class CoT {
29
- raw: JSONCoT;
29
+ raw: Static<typeof JSONCoT>;
30
30
 
31
- constructor(cot: Buffer | JSONCoT | string) {
31
+ constructor(cot: Buffer | Static<typeof JSONCoT> | string) {
32
32
  if (typeof cot === 'string' || cot instanceof Buffer) {
33
33
  if (cot instanceof Buffer) cot = String(cot);
34
34
 
35
35
  const raw = xmljs.xml2js(cot, { compact: true });
36
- this.raw = raw as JSONCoT;
36
+ this.raw = raw as Static<typeof JSONCoT>;
37
37
  } else {
38
38
  this.raw = cot;
39
39
  }
40
40
 
41
- if (!this.raw.event._attributes.uid) this.raw.event._attributes.uuid = Util.cot_uuid();
41
+ if (!this.raw.event._attributes.uid) this.raw.event._attributes.uid = Util.cot_uuid();
42
42
 
43
43
  ajv(this.raw);
44
44
  if (ajv.errors) throw new Error(`${ajv.errors[0].message} (${ajv.errors[0].instancePath})`);
@@ -47,7 +47,7 @@ export default class CoT {
47
47
  if (!this.raw.event.detail['_flow-tags_']) this.raw.event.detail['_flow-tags_'] = {};
48
48
  this.raw.event.detail['_flow-tags_'][`NodeCoT-${pkg.version}`] = new Date().toISOString()
49
49
 
50
- if (this.raw.event.detail.archived && Object.keys(this.raw.event.detail.archived).length === 0) this.raw.event.archived = { _attributes: {} };
50
+ if (this.raw.event.detail.archived && Object.keys(this.raw.event.detail.archived).length === 0) this.raw.event.detail.archived = { _attributes: {} };
51
51
 
52
52
  }
53
53
 
@@ -62,7 +62,7 @@ export default class CoT {
62
62
  if (feature.type !== 'Feature') throw new Error('Must be GeoJSON Feature');
63
63
  if (!feature.properties) throw new Error('Feature must have properties');
64
64
 
65
- const cot: JSONCoT = {
65
+ const cot: Static<typeof JSONCoT> = {
66
66
  event: {
67
67
  _attributes: Util.cot_event_attr(
68
68
  feature.properties.type || 'a-f-G',
@@ -92,7 +92,11 @@ export default class CoT {
92
92
  const dest = !Array.isArray(feature.properties.dest) ? [ feature.properties.dest ] : feature.properties.dest;
93
93
 
94
94
  cot.event.detail.marti = {
95
- dest: dest.map((dest: object) => {
95
+ dest: dest.map((dest: {
96
+ uid?: string;
97
+ mission?: string;
98
+ callsign?: string;
99
+ }) => {
96
100
  return { _attributes: { ...dest } };
97
101
  })
98
102
  }
@@ -208,7 +212,7 @@ export default class CoT {
208
212
  * Return a GeoJSON Feature from an XML CoT message
209
213
  */
210
214
  to_geojson(): Feature {
211
- const raw: JSONCoT = JSON.parse(JSON.stringify(this.raw));
215
+ const raw: Static<typeof JSONCoT> = JSON.parse(JSON.stringify(this.raw));
212
216
  if (!raw.event.detail) raw.event.detail = {};
213
217
  if (!raw.event.detail.contact) raw.event.detail.contact = { _attributes: { callsign: 'UNKNOWN' } };
214
218
  if (!raw.event.detail.contact._attributes) raw.event.detail.contact._attributes = { callsign: 'UNKNOWN' };
@@ -262,7 +266,7 @@ export default class CoT {
262
266
  if (raw.event.detail.marti && raw.event.detail.marti.dest) {
263
267
  if (!Array.isArray(raw.event.detail.marti.dest)) raw.event.detail.marti.dest = [raw.event.detail.marti.dest];
264
268
 
265
- const dest = raw.event.detail.marti.dest.map((d) => {
269
+ const dest = raw.event.detail.marti.dest.map((d: Static<typeof MartiDest>) => {
266
270
  return { ...d._attributes };
267
271
  });
268
272
 
@@ -306,6 +310,7 @@ export default class CoT {
306
310
  const coordinates = [];
307
311
 
308
312
  for (const l of raw.event.detail.link) {
313
+ if (!l._attributes.point) continue;
309
314
  coordinates.push(l._attributes.point.split(',').map((p: string) => { return Number(p.trim()) }).splice(0, 2).reverse());
310
315
  }
311
316