@tak-ps/node-cot 5.7.1 → 6.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,17 @@
10
10
 
11
11
  ## Version History
12
12
 
13
+ ### v6.1.0
14
+
15
+ - :rocket: Add reversal of `metadata` property in `to_geojson()`
16
+
17
+ ### v6.0.0
18
+
19
+ - :tada: Add `metadata` section in GeoJSON feature for custom props
20
+ - :rocket: Add `addDest` function for easily adding dest to an existing COT
21
+ - :rocket: Add `isDiff` function for comparing two COTs
22
+ - :data: Add DataPackage builder
23
+
13
24
  ### v5.7.1
14
25
 
15
26
  - :bug: Add missing file
@@ -20,7 +31,7 @@
20
31
 
21
32
  ### v5.6.0
22
33
 
23
- - :tada: Add support for `fileshare` COT
34
+ - :tada: Add support for `fileshare` COT
24
35
 
25
36
  ### v5.5.1
26
37
 
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import CoT from './lib/cot.js';
2
2
  export * from './lib/chat.js';
3
3
  export * from './lib/fileshare.js';
4
+ export * from './lib/data-package.js';
4
5
  export default CoT;
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAElC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,eAAe,GAAG,CAAC"}
package/dist/lib/cot.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { diff } from 'json-diff-ts';
1
2
  import xmljs from 'xml-js';
2
3
  import Util from './util.js';
3
4
  import Color from './color.js';
@@ -21,6 +22,10 @@ const ajv = (new AJV({
21
22
  */
22
23
  export default class CoT {
23
24
  raw;
25
+ // Key/Value JSON Records - not currently support by TPC Clients
26
+ // but used for styling/dynamic overrides and hopefully eventually
27
+ // merged into the CoT spec
28
+ metadata;
24
29
  constructor(cot) {
25
30
  if (typeof cot === 'string' || cot instanceof Buffer) {
26
31
  if (cot instanceof Buffer)
@@ -31,6 +36,7 @@ export default class CoT {
31
36
  else {
32
37
  this.raw = cot;
33
38
  }
39
+ this.metadata = {};
34
40
  if (!this.raw.event._attributes.uid)
35
41
  this.raw.event._attributes.uid = Util.cot_uuid();
36
42
  ajv(this.raw);
@@ -44,6 +50,54 @@ export default class CoT {
44
50
  if (this.raw.event.detail.archived && Object.keys(this.raw.event.detail.archived).length === 0)
45
51
  this.raw.event.detail.archived = { _attributes: {} };
46
52
  }
53
+ /**
54
+ * Detect difference between CoT messages
55
+ * Note: This diffs based on GeoJSON Representation of message
56
+ * So if unknown properties are present they will be excluded from the diff
57
+ */
58
+ isDiff(cot, opts = {
59
+ diffMetadata: false,
60
+ diffStaleStartTime: false
61
+ }) {
62
+ const a = this.to_geojson();
63
+ const b = cot.to_geojson();
64
+ if (!a.properties)
65
+ a.properties = {};
66
+ if (!b.properties)
67
+ b.properties = {};
68
+ if (!opts.diffMetadata) {
69
+ delete a.properties.metadata;
70
+ delete b.properties.metadata;
71
+ }
72
+ if (!opts.diffStaleStartTime) {
73
+ delete a.properties.time;
74
+ delete a.properties.stale;
75
+ delete a.properties.start;
76
+ delete b.properties.time;
77
+ delete b.properties.stale;
78
+ delete b.properties.start;
79
+ }
80
+ const diffs = diff(a, b);
81
+ return diffs.length > 0;
82
+ }
83
+ /**
84
+ * Add a given Dest tag to a CoT
85
+ */
86
+ addDest(dest) {
87
+ if (!this.raw.event.detail)
88
+ this.raw.event.detail = {};
89
+ if (!this.raw.event.detail.marti)
90
+ this.raw.event.detail.marti = {};
91
+ if (this.raw.event.detail.marti.dest && !Array.isArray(this.raw.event.detail.marti.dest)) {
92
+ this.raw.event.detail.marti.dest = [this.raw.event.detail.marti.dest];
93
+ }
94
+ else if (!this.raw.event.detail.marti.dest) {
95
+ this.raw.event.detail.marti.dest = [];
96
+ }
97
+ this.raw.event.detail.marti.dest.push({
98
+ _attributes: dest
99
+ });
100
+ }
47
101
  /**
48
102
  * Return an CoT Message
49
103
  *
@@ -177,7 +231,11 @@ export default class CoT {
177
231
  cot.event.point._attributes.hae = '0.0';
178
232
  }
179
233
  }
180
- return new CoT(cot);
234
+ const newcot = new CoT(cot);
235
+ if (feature.properties.metadata) {
236
+ newcot.metadata = feature.properties.metadata;
237
+ }
238
+ return newcot;
181
239
  }
182
240
  /**
183
241
  * Return a GeoJSON Feature from an XML CoT message
@@ -307,6 +365,7 @@ export default class CoT {
307
365
  };
308
366
  }
309
367
  }
368
+ feat.properties.metadata = this.metadata;
310
369
  return feat;
311
370
  }
312
371
  to_xml() {
@@ -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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"}
@@ -0,0 +1,89 @@
1
+ import { Type } from '@sinclair/typebox';
2
+ import archiver from 'archiver';
3
+ import xmljs from 'xml-js';
4
+ export const Parameter = Type.Object({
5
+ _attributes: Type.Object({
6
+ name: Type.String(),
7
+ value: Type.String()
8
+ })
9
+ });
10
+ export const Manifest = Type.Object({
11
+ MissionPackageManifest: Type.Object({
12
+ _attributes: Type.Object({
13
+ version: Type.String()
14
+ }),
15
+ Configuration: Type.Object({
16
+ Parameter: Type.Array(Parameter)
17
+ }),
18
+ Contents: Type.Object({
19
+ Content: Type.Array(Type.Object({
20
+ _attributes: Type.Object({
21
+ ignore: Type.String(),
22
+ zipEntry: Type.String()
23
+ }),
24
+ Parameter: Type.Array(Parameter)
25
+ }))
26
+ })
27
+ })
28
+ });
29
+ export class DataPackage {
30
+ writable;
31
+ manifest;
32
+ archive;
33
+ settings;
34
+ constructor() {
35
+ this.writable = true;
36
+ this.archive = archiver('zip', { zlib: { level: 9 } });
37
+ this.settings = {};
38
+ this.manifest = {
39
+ MissionPackageManifest: {
40
+ _attributes: { version: '2' },
41
+ Configuration: {
42
+ Parameter: []
43
+ },
44
+ Contents: {
45
+ Content: []
46
+ }
47
+ }
48
+ };
49
+ }
50
+ addCoT(cot, opts = {
51
+ ignore: false
52
+ }) {
53
+ console.error(cot.to_xml());
54
+ const zipEntry = `${cot.raw.event._attributes.uid}/${cot.raw.event._attributes.uid}.cot`;
55
+ this.archive.append(cot.to_xml(), {
56
+ name: zipEntry
57
+ });
58
+ let name = 'Unknown';
59
+ if (cot.raw.event.detail && cot.raw.event.detail.contact) {
60
+ name = cot.raw.event.detail.contact._attributes.callsign;
61
+ }
62
+ this.manifest.MissionPackageManifest.Contents.Content.push({
63
+ _attributes: { ignore: String(opts.ignore), zipEntry },
64
+ Parameter: [{
65
+ _attributes: { name: 'uid', value: cot.raw.event._attributes.uid },
66
+ }, {
67
+ _attributes: { name: 'name', value: name }
68
+ }]
69
+ });
70
+ }
71
+ finalize(uid, name) {
72
+ this.writable = false;
73
+ this.settings.uid = uid;
74
+ this.settings.name = name;
75
+ for (const key in this.settings) {
76
+ if (!this.settings[key])
77
+ continue;
78
+ this.manifest.MissionPackageManifest.Configuration.Parameter.push({
79
+ _attributes: { name: key, value: String(this.settings[key]) }
80
+ });
81
+ }
82
+ const xml = `<?xml version="1.0" encoding="UTF-8"?>\n${xmljs.js2xml(this.manifest, { compact: true })}`;
83
+ this.archive.append(xml, {
84
+ name: 'MANIFEST/manifest.xml'
85
+ });
86
+ this.archive.finalize();
87
+ }
88
+ }
89
+ //# sourceMappingURL=data-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-package.js","sourceRoot":"","sources":["../../lib/data-package.ts"],"names":[],"mappings":"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"}
package/dist/lib/types.js CHANGED
@@ -98,12 +98,13 @@ export const Contact = Type.Object({
98
98
  endpoint: Type.Optional(Type.String())
99
99
  })
100
100
  });
101
+ export const MartiDestAttributes = Type.Object({
102
+ uid: Type.Optional(Type.String()),
103
+ mission: Type.Optional(Type.String()),
104
+ callsign: Type.Optional(Type.String())
105
+ });
101
106
  export const MartiDest = Type.Object({
102
- _attributes: Type.Object({
103
- uid: Type.Optional(Type.String()),
104
- mission: Type.Optional(Type.String()),
105
- callsign: Type.Optional(Type.String())
106
- })
107
+ _attributes: MartiDestAttributes
107
108
  });
108
109
  export const Marti = Type.Object({
109
110
  _attributes: Type.Optional(Type.Object({})),
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;IACtB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAElB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACxC,CAAC,CAAC;CACN,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KAC9C,CAAC,CAAC;CACN,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACtC,CAAC,CAAC;CACN,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,WAAW,EAAE,eAAe;CAC/B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;QACvB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE;KAChC,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACxC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;KACtB,CAAC,CAAC;CACN,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE;IAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;IACxB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE;CAC9B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,mBAAmB;CACnC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KAC1C,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;KACvB,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACrC,CAAC,CAAC;IACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CACtC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACvC,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;KAC7B,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7B,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACtC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IACvB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC3C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7E,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC/D,CAAC,CAAC;CACN,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACjD,CAAC;CACL,CAAC,CAAA;AAEF,eAAe,IAAI,CAAC,MAAM,CAAC;IACvB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,KAAK;KACf,CAAC;CACL,CAAC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.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.7.1",
4
+ "version": "6.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",
@@ -17,10 +17,13 @@
17
17
  "@sinclair/typebox": "^0.32.20",
18
18
  "@turf/helpers": "^6.5.0",
19
19
  "@turf/point-on-feature": "^6.5.0",
20
+ "@types/archiver": "^6.0.2",
20
21
  "@types/color": "^3.0.3",
21
22
  "@types/geojson": "^7946.0.10",
22
23
  "ajv": "^8.12.0",
24
+ "archiver": "^7.0.1",
23
25
  "color": "^4.2.3",
26
+ "json-diff-ts": "^2.2.1",
24
27
  "protobufjs": "^7.1.2",
25
28
  "xml-js": "^1.6.11"
26
29
  },
package/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import CoT from './lib/cot.js';
2
2
  export * from './lib/chat.js'
3
3
  export * from './lib/fileshare.js'
4
+ export * from './lib/data-package.js'
4
5
 
5
6
  export default CoT;
package/lib/cot.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { diff } from 'json-diff-ts';
1
2
  import xmljs from 'xml-js';
2
3
  import { Static } from '@sinclair/typebox';
3
4
  import { Feature } from 'geojson';
@@ -5,7 +6,7 @@ import { AllGeoJSON } from "@turf/helpers";
5
6
  import Util from './util.js';
6
7
  import Color from './color.js';
7
8
  import PointOnFeature from '@turf/point-on-feature';
8
- import JSONCoT, { MartiDest } from './types.js'
9
+ import JSONCoT, { MartiDest, MartiDestAttributes } from './types.js'
9
10
  import AJV from 'ajv';
10
11
  import fs from 'fs';
11
12
 
@@ -27,6 +28,10 @@ const ajv = (new AJV({
27
28
  */
28
29
  export default class CoT {
29
30
  raw: Static<typeof JSONCoT>;
31
+ // Key/Value JSON Records - not currently support by TPC Clients
32
+ // but used for styling/dynamic overrides and hopefully eventually
33
+ // merged into the CoT spec
34
+ metadata: Record<string, string>;
30
35
 
31
36
  constructor(cot: Buffer | Static<typeof JSONCoT> | string) {
32
37
  if (typeof cot === 'string' || cot instanceof Buffer) {
@@ -38,6 +43,8 @@ export default class CoT {
38
43
  this.raw = cot;
39
44
  }
40
45
 
46
+ this.metadata = {};
47
+
41
48
  if (!this.raw.event._attributes.uid) this.raw.event._attributes.uid = Util.cot_uuid();
42
49
 
43
50
  ajv(this.raw);
@@ -51,6 +58,63 @@ export default class CoT {
51
58
 
52
59
  }
53
60
 
61
+ /**
62
+ * Detect difference between CoT messages
63
+ * Note: This diffs based on GeoJSON Representation of message
64
+ * So if unknown properties are present they will be excluded from the diff
65
+ */
66
+ isDiff(
67
+ cot: CoT,
68
+ opts: {
69
+ diffMetadata: boolean;
70
+ diffStaleStartTime: boolean;
71
+ } = {
72
+ diffMetadata: false,
73
+ diffStaleStartTime: false
74
+ }
75
+ ): boolean {
76
+ const a = this.to_geojson();
77
+ const b = cot.to_geojson();
78
+
79
+ if (!a.properties) a.properties = {};
80
+ if (!b.properties) b.properties = {};
81
+
82
+ if (!opts.diffMetadata) {
83
+ delete a.properties.metadata;
84
+ delete b.properties.metadata;
85
+ }
86
+
87
+ if (!opts.diffStaleStartTime) {
88
+ delete a.properties.time;
89
+ delete a.properties.stale;
90
+ delete a.properties.start;
91
+ delete b.properties.time;
92
+ delete b.properties.stale;
93
+ delete b.properties.start;
94
+ }
95
+
96
+ const diffs = diff(a, b);
97
+
98
+ return diffs.length > 0;
99
+ }
100
+
101
+ /**
102
+ * Add a given Dest tag to a CoT
103
+ */
104
+ addDest(dest: Static<typeof MartiDestAttributes>): void {
105
+ if (!this.raw.event.detail) this.raw.event.detail = {};
106
+ if (!this.raw.event.detail.marti) this.raw.event.detail.marti = {};
107
+ if (this.raw.event.detail.marti.dest && !Array.isArray(this.raw.event.detail.marti.dest)) {
108
+ this.raw.event.detail.marti.dest = [this.raw.event.detail.marti.dest]
109
+ } else if (!this.raw.event.detail.marti.dest) {
110
+ this.raw.event.detail.marti.dest = [];
111
+ }
112
+
113
+ this.raw.event.detail.marti.dest.push({
114
+ _attributes: dest
115
+ });
116
+ }
117
+
54
118
  /**
55
119
  * Return an CoT Message
56
120
  *
@@ -209,7 +273,13 @@ export default class CoT {
209
273
  }
210
274
  }
211
275
 
212
- return new CoT(cot);
276
+ const newcot = new CoT(cot);
277
+
278
+ if (feature.properties.metadata) {
279
+ newcot.metadata = feature.properties.metadata
280
+ }
281
+
282
+ return newcot;
213
283
  }
214
284
 
215
285
  /**
@@ -359,6 +429,9 @@ export default class CoT {
359
429
  }
360
430
  }
361
431
  }
432
+
433
+ feat.properties.metadata = this.metadata;
434
+
362
435
  return feat;
363
436
  }
364
437
 
@@ -0,0 +1,110 @@
1
+ import { Static, Type } from '@sinclair/typebox'
2
+ import archiver, { Archiver } from 'archiver';
3
+ import CoT from './cot.js';
4
+ import xmljs from 'xml-js';
5
+
6
+ export const Parameter = Type.Object({
7
+ _attributes: Type.Object({
8
+ name: Type.String(),
9
+ value: Type.String()
10
+ })
11
+ })
12
+
13
+ export const Manifest = Type.Object({
14
+ MissionPackageManifest: Type.Object({
15
+ _attributes: Type.Object({
16
+ version: Type.String()
17
+ }),
18
+ Configuration: Type.Object({
19
+ Parameter: Type.Array(Parameter)
20
+ }),
21
+ Contents: Type.Object({
22
+ Content: Type.Array(Type.Object({
23
+ _attributes: Type.Object({
24
+ ignore: Type.String(),
25
+ zipEntry: Type.String()
26
+ }),
27
+ Parameter: Type.Array(Parameter)
28
+ }))
29
+ })
30
+ })
31
+ });
32
+
33
+ export class DataPackage {
34
+ writable: boolean;
35
+ manifest: Static<typeof Manifest>;
36
+ archive: Archiver;
37
+ settings: {
38
+ uid?: string;
39
+ name?: string;
40
+ onReceiveImport?: boolean;
41
+ onReceiveDelete?: boolean;
42
+
43
+ [k: string]: boolean | string | undefined;
44
+ }
45
+
46
+ constructor() {
47
+ this.writable = true;
48
+ this.archive = archiver('zip', { zlib: { level: 9 } });
49
+ this.settings = {};
50
+ this.manifest = {
51
+ MissionPackageManifest: {
52
+ _attributes: { version: '2' },
53
+ Configuration: {
54
+ Parameter: []
55
+ },
56
+ Contents: {
57
+ Content: []
58
+ }
59
+ }
60
+ };
61
+ }
62
+
63
+ addCoT(cot: CoT, opts: {
64
+ ignore: boolean
65
+ } = {
66
+ ignore: false
67
+ }) {
68
+ console.error(cot.to_xml())
69
+
70
+ const zipEntry = `${cot.raw.event._attributes.uid}/${cot.raw.event._attributes.uid}.cot`;
71
+ this.archive.append(cot.to_xml(), {
72
+ name: zipEntry
73
+ });
74
+
75
+ let name = 'Unknown';
76
+ if (cot.raw.event.detail && cot.raw.event.detail.contact) {
77
+ name = cot.raw.event.detail.contact._attributes.callsign;
78
+ }
79
+
80
+ this.manifest.MissionPackageManifest.Contents.Content.push({
81
+ _attributes: { ignore: String(opts.ignore), zipEntry },
82
+ Parameter: [{
83
+ _attributes: { name: 'uid', value: cot.raw.event._attributes.uid },
84
+ },{
85
+ _attributes: { name: 'name', value: name }
86
+ }]
87
+ });
88
+ }
89
+
90
+ finalize(uid: string, name: string) {
91
+ this.writable = false;
92
+
93
+ this.settings.uid = uid;
94
+ this.settings.name = name;
95
+
96
+ for (const key in this.settings) {
97
+ if (!this.settings[key]) continue;
98
+ this.manifest.MissionPackageManifest.Configuration.Parameter.push({
99
+ _attributes: { name: key, value: String(this.settings[key]) }
100
+ })
101
+ }
102
+
103
+ const xml = `<?xml version="1.0" encoding="UTF-8"?>\n${xmljs.js2xml(this.manifest, { compact: true })}`;
104
+ this.archive.append(xml, {
105
+ name: 'MANIFEST/manifest.xml'
106
+ });
107
+
108
+ this.archive.finalize()
109
+ }
110
+ }
package/lib/types.ts CHANGED
@@ -83,7 +83,6 @@ export const Group = Type.Object({
83
83
  }))
84
84
  })
85
85
 
86
- import { randomUUID } from 'node:crypto';
87
86
  export const FileShareAttributes = Type.Object({
88
87
  filename: Type.String(),
89
88
  name: Type.String(),
@@ -119,12 +118,14 @@ export const Contact = Type.Object({
119
118
  })
120
119
  })
121
120
 
121
+ export const MartiDestAttributes = Type.Object({
122
+ uid: Type.Optional(Type.String()),
123
+ mission: Type.Optional(Type.String()),
124
+ callsign: Type.Optional(Type.String())
125
+ })
126
+
122
127
  export const MartiDest = Type.Object({
123
- _attributes: Type.Object({
124
- uid: Type.Optional(Type.String()),
125
- mission: Type.Optional(Type.String()),
126
- callsign: Type.Optional(Type.String())
127
- })
128
+ _attributes: MartiDestAttributes
128
129
  })
129
130
 
130
131
  export const Marti = Type.Object({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "5.7.1",
4
+ "version": "6.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",
@@ -17,10 +17,13 @@
17
17
  "@sinclair/typebox": "^0.32.20",
18
18
  "@turf/helpers": "^6.5.0",
19
19
  "@turf/point-on-feature": "^6.5.0",
20
+ "@types/archiver": "^6.0.2",
20
21
  "@types/color": "^3.0.3",
21
22
  "@types/geojson": "^7946.0.10",
22
23
  "ajv": "^8.12.0",
24
+ "archiver": "^7.0.1",
23
25
  "color": "^4.2.3",
26
+ "json-diff-ts": "^2.2.1",
24
27
  "protobufjs": "^7.1.2",
25
28
  "xml-js": "^1.6.11"
26
29
  },
@@ -9,7 +9,8 @@
9
9
  "archived": true,
10
10
  "time": "2023-08-04T15:17:43.649Z",
11
11
  "start": "2023-08-04T15:17:43.649Z",
12
- "stale": "2023-08-04T15:17:43.649Z"
12
+ "stale": "2023-08-04T15:17:43.649Z",
13
+ "metadata": {}
13
14
  },
14
15
  "geometry": {
15
16
  "type": "Point",
@@ -8,7 +8,8 @@
8
8
  "center": [ 1.1, 2.2, 0 ],
9
9
  "time": "2023-08-04T15:17:43.649Z",
10
10
  "start": "2023-08-04T15:17:43.649Z",
11
- "stale": "2023-08-04T15:17:43.649Z"
11
+ "stale": "2023-08-04T15:17:43.649Z",
12
+ "metadata": {}
12
13
  },
13
14
  "geometry": {
14
15
  "type": "Point",
@@ -9,6 +9,7 @@
9
9
  "time": "2023-08-04T15:17:43.649Z",
10
10
  "start": "2023-08-04T15:17:43.649Z",
11
11
  "stale": "2023-08-04T15:17:43.649Z",
12
+ "metadata": {},
12
13
  "fileshare": {
13
14
  "name": "123",
14
15
  "filename": "123.zip",
@@ -8,7 +8,8 @@
8
8
  "center": [ 1.1, 2.2, 1234 ],
9
9
  "time": "2023-08-04T15:17:43.649Z",
10
10
  "start": "2023-08-04T15:17:43.649Z",
11
- "stale": "2023-08-04T15:17:43.649Z"
11
+ "stale": "2023-08-04T15:17:43.649Z",
12
+ "metadata": {}
12
13
  },
13
14
  "geometry": {
14
15
  "type": "Point",
@@ -9,7 +9,8 @@
9
9
  "time": "2023-08-04T15:17:43.649Z",
10
10
  "start": "2023-08-04T15:17:43.649Z",
11
11
  "stale": "2023-08-04T15:17:43.649Z",
12
- "icon": "iconset/test.png"
12
+ "icon": "iconset/test.png",
13
+ "metadata": {}
13
14
  },
14
15
  "geometry": {
15
16
  "type": "Point",
@@ -12,7 +12,8 @@
12
12
  "stroke": "#FFFFFF",
13
13
  "stroke-opacity": 128,
14
14
  "stroke-width": 3,
15
- "stroke-style": "solid"
15
+ "stroke-style": "solid",
16
+ "metadata": {}
16
17
  },
17
18
  "geometry": {
18
19
  "type": "LineString",
@@ -9,6 +9,7 @@
9
9
  "time": "2023-08-04T15:17:43.649Z",
10
10
  "start": "2023-08-04T15:17:43.649Z",
11
11
  "stale": "2023-08-04T15:17:43.649Z",
12
+ "metadata": {},
12
13
  "dest": {
13
14
  "mission": "Test Mission"
14
15
  }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "123",
3
+ "type": "Feature",
4
+ "properties": {
5
+ "type": "a-f-G",
6
+ "how": "m-g",
7
+ "callsign": "BasicTest",
8
+ "center": [ 1.1, 2.2, 0 ],
9
+ "time": "2023-08-04T15:17:43.649Z",
10
+ "start": "2023-08-04T15:17:43.649Z",
11
+ "stale": "2023-08-04T15:17:43.649Z",
12
+ "metadata": {
13
+ "key": "value",
14
+ "strings": "that",
15
+ "can": "be",
16
+ "added": "to a cot message"
17
+ }
18
+ },
19
+ "geometry": {
20
+ "type": "Point",
21
+ "coordinates": [1.1, 2.2, 0]
22
+ }
23
+ }
@@ -14,7 +14,8 @@
14
14
  "stroke-width": 3,
15
15
  "stroke-style": "solid",
16
16
  "fill-opacity": 128,
17
- "fill": "#000000"
17
+ "fill": "#000000",
18
+ "metadata": {}
18
19
  },
19
20
  "geometry": {
20
21
  "type": "Polygon",
@@ -11,7 +11,8 @@
11
11
  "stale": "2023-08-04T15:17:43.649Z",
12
12
  "remarks": "test-remarks",
13
13
  "course": 260,
14
- "speed": 120
14
+ "speed": 120,
15
+ "metadata": {}
15
16
  },
16
17
  "geometry": {
17
18
  "type": "Point",