@tak-ps/node-cot 14.52.0 → 14.52.2

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
@@ -12,96 +12,105 @@
12
12
 
13
13
  ### Pending Fixed
14
14
 
15
- ### v14.52.0 - 2025-08-11
15
+ ### v14.52.2 - 2026-09-17
16
+
17
+ - :bug: Apply `detail.fillColor` for ellipse types (`u-d-c-c`, etc.) — ATAK circles that omit KML `PolyStyle` previously lost fill colour and opacity
18
+ - :bug: Resolve KML style from `shape.link` when it is an array (multiple links under `<shape>`)
19
+
20
+ ### v14.52.1 - 2026-08-28
21
+
22
+ - :rocket: `pathName` => `fileURLToPathname` for better windows support
23
+
24
+ ### v14.52.0 - 2026-08-11
16
25
 
17
26
  - :tada: Add `CoTParser.from_xml_document()` for parsing multi-event XML documents (ie: the TAK Server Mission API CoT endpoint) - each event is parsed & validated individually and returned in `cots`, with unparseable events collected in `invalid` as `{ error, event }` (the raw unmutated xml-js event) so a single poisoned CoT doesn't prevent valid CoTs from being returned
18
27
  - :white_check_mark: `from_xml_document` coverage: mixed valid/poisoned documents, ordering, bare `<event>` root, XML declaration, boolean attr normalization, pristine invalid events, Flow-Tag absence & GeoJSON conversion of parsed CoTs
19
28
 
20
- ### v14.51.0 - 2025-08-05
29
+ ### v14.51.0 - 2026-08-05
21
30
 
22
31
  - :bug: The SIDC is now emitted on both the `__milsym` & `__milicon` details - the takkernel `MilSymDetailHandler` registers `__milsym` only, while newer clients read `__milicon` (ATAK-20119), so MIL-STD symbols previously failed to render depending on the receiving client's version
23
32
  - :tada: Add `Type2525.cotTypeFromNumericSIDC()` - returns the most specific CoT Type a numeric SIDC can express (`a-f-G-U-C-I` instead of `a-f-G`), preserving the Type derived icon fallback for clients that can't resolve the SIDC. A numeric SIDC on the GeoJSON `type` property now uses it
24
33
  - :bug: `Type2525.to2525D()` short codes (types with no Function ID) declared an undefined `12` SIDC Version field, which clients can't map to a symbology provider - they now declare `10` (2525D) like converted codes do
25
34
 
26
- ### v14.50.0 - 2025-08-01
35
+ ### v14.50.0 - 2026-08-01
27
36
 
28
37
  - :bug: MilIcon augmentation no longer clobbers an existing `__milicon` detail with the generic SIDC derived from the CoT type
29
38
 
30
- ### v14.49.0 - 2025-07-29
39
+ ### v14.49.0 - 2026-07-29
31
40
 
32
41
  - :tada: Add `event` Link Attribute for marking a CoT as the projection of a CloudTAK Core Event
33
42
 
34
- ### v14.48.0 - 2025-07-23
43
+ ### v14.48.0 - 2026-07-23
35
44
 
36
45
  - :rocket: Update normalize function to allow 2525E => type
37
46
 
38
- ### v14.47.0 - 2025-07-21
47
+ ### v14.47.0 - 2026-07-21
39
48
 
40
49
  - :tada: Allow a numeric 2525D/2525E SIDC to be provided on the GeoJSON `type` property - it is mapped to a basic CoT Atom type (`a-<affiliation>-<battle dimension>`) and the SIDC is placed in the `milicon` property
41
50
 
42
- ### v14.46.0 - 2025-07-21
51
+ ### v14.46.0 - 2026-07-21
43
52
 
44
53
  - :rocket: Differentiate between force delete and force stale
45
54
 
46
- ### v14.45.1 - 2025-07-17
55
+ ### v14.45.1 - 2026-07-17
47
56
 
48
57
  - :bug: Make uid attributes optional
49
58
 
50
- ### v14.45.0 - 2025-07-14
59
+ ### v14.45.0 - 2026-07-14
51
60
 
52
61
  - :arrow_up: Remove the need for `uuid` by using `crypto.randomUUID()` which is available in Node 18+
53
62
 
54
- ### v14.44.3 - 2025-07-07
63
+ ### v14.44.3 - 2026-07-07
55
64
 
56
65
  - :bug: Hanle `hae` as `NaN`
57
66
 
58
- ### v14.44.2 - 2025-07-07
67
+ ### v14.44.2 - 2026-07-07
59
68
 
60
69
  - :arrow_up: Update Core Deps
61
70
 
62
- ### v14.44.1 - 2025-07-05
71
+ ### v14.44.1 - 2026-07-05
63
72
 
64
73
  - :rocket: Make Chat.ID Optional
65
74
 
66
- ### v14.44.0 - 2025-07-03
75
+ ### v14.44.0 - 2026-07-03
67
76
 
68
77
  - :tada: Add support for parsing Chat Receipt CoTs (`b-t-f-d`, `b-t-f-r`, `b-t-f-p`, `b-t-f-s`) - the ATAK style `__chatreceipt` detail is now included in the `Detail` schema and populates `properties.chat` in `to_geojson`
69
78
  - :tada: Add `DirectChatReceipt` builder for generating Chat Receipt CoTs
70
79
  - :tada: Add `CoT.is_chat_receipt()` helper
71
80
  - :white_check_mark: Add tests for ATAK (`__chatreceipt`) & WinTAK (`__chat`) style Chat Receipts
72
81
 
73
- ### v14.43.2 - 2025-07-03
82
+ ### v14.43.2 - 2026-07-03
74
83
 
75
84
  - :arrow_up: Update protobuf
76
85
 
77
- ### v14.43.1 - 2025-07-02
86
+ ### v14.43.1 - 2026-07-02
78
87
 
79
88
  - :rocket: Include error logging if the XML is invalid
80
89
 
81
- ### v14.43.0 - 2025-07-01
90
+ ### v14.43.0 - 2026-07-01
82
91
 
83
92
  - :arrow_up: Migrate to `@tak-ps/xml-js` which is a fill TypeScript port of `xml-js`
84
93
  - :bug: Fix attribute escaping in `xml-js` to ensure callsigns with `&` are properly escaped
85
94
 
86
- ### v14.42.1 - 2025-06-25
95
+ ### v14.42.1 - 2026-06-25
87
96
 
88
97
  - :arrow_up: Remove `rimraf` now that `node.fsp.rm` is available
89
98
  - :arrow_up: Update Core Deps
90
99
 
91
- ### v14.42.0 - 2025-06-24
100
+ ### v14.42.0 - 2026-06-24
92
101
 
93
102
  - :bug: Ensure empty track.slope doesn't result in a parsing error
94
103
 
95
- ### v14.41.0 - 2025-06-13
104
+ ### v14.41.0 - 2026-06-13
96
105
 
97
106
  - :bug: Fix Opacity bug in Polygon Features created via ATAK
98
107
  - :bug: Fix ellipse orientation in ATAK created Ellipse Features
99
108
 
100
- ### v14.40.1 - 2025-06-11
109
+ ### v14.40.1 - 2026-06-11
101
110
 
102
111
  - :arrow_up: Update Core Deps
103
112
 
104
- ### v14.40.0 - 2025-06-11
113
+ ### v14.40.0 - 2027-06-11
105
114
 
106
115
  - :rocket: Introduce BiDirectional Support for CBRN Data
107
116
  - :rocket: Introdice BiDirectional Support for `spatial` attribute - Closes: https://github.com/dfpc-coe/node-CoT/issues/130
@@ -146,107 +155,107 @@
146
155
 
147
156
  - :rocket: `creator.callsign` property is optional
148
157
 
149
- ### v14.32.0 - 2025-04-06
158
+ ### v14.32.0 - 2026-04-06
150
159
 
151
160
  - :arrow_up: Update to TypeScript@6
152
161
 
153
- ### v14.31.0 - 2025-03-26
162
+ ### v14.31.0 - 2026-03-26
154
163
 
155
164
  - :tada: Introduce basic validation CLI
156
165
  - :rocket: Normalize `False`/`True` boolean values to actual booleans when parsing XML
157
166
 
158
- ### v14.30.1 - 2025-03-18
167
+ ### v14.30.1 - 2026-03-18
159
168
 
160
169
  - :tada: Retain Non-TAK Server Flow Tags
161
170
 
162
- ### v14.30.0 - 2025-03-18
171
+ ### v14.30.0 - 2026-03-18
163
172
 
164
173
  - :tada: Add the ability to reset flow tags
165
174
 
166
- ### v14.29.0 - 2025-03-12
175
+ ### v14.29.0 - 2026-03-12
167
176
 
168
177
  - :rocket: Add MVP for MissionChat builder
169
178
 
170
- ### v14.28.1 - 2025-03-10
179
+ ### v14.28.1 - 2026-03-10
171
180
 
172
181
  - :arrow_up: Update Core Deps
173
182
  - :white_check_mark: Add test for XML Escaped Characters
174
183
 
175
- ### v14.28.0 - 2025-02-27
184
+ ### v14.28.0 - 2026-02-27
176
185
 
177
186
  - :rocket: If a `LineString` feature is provided that happens to have the same first and end coordinate, TAK will treat it as a polygon as the U-D type doesn't differentiate
178
187
  Set fillOpacity: 0 for LineString features to ensure they at least look correct. When it is parsed back into GeoJSON it will "become" a polygon which will need to
179
188
  be handled by downstream users if they want to maintain the original geometry type
180
189
 
181
- ### v14.27.0 - 2025-02-26
190
+ ### v14.27.0 - 2026-02-26
182
191
 
183
192
  - :tada: Add bi-directional parsing of `marti_archive` tag in `dest` section of CoT messages
184
193
 
185
- ### v14.26.0 - 2025-02-26
194
+ ### v14.26.0 - 2026-02-26
186
195
 
187
196
  - :tada: Add support for Marti.archive=<boolean> which in TAK server 5.7 will disable archiving in the `cot_router` table
188
197
 
189
- ### v14.25.0 - 2025-02-26
198
+ ### v14.25.0 - 2026-02-26
190
199
 
191
200
  - :rocket: Make Geofence Types Boolean where possible
192
201
 
193
- ### v14.24.3 - 2025-02-20
202
+ ### v14.24.3 - 2026-02-20
194
203
 
195
204
  - :rocket: Update to_geojson conversion of missionChanges
196
205
 
197
- ### v14.24.2 - 2025-02-20
206
+ ### v14.24.2 - 2026-02-20
198
207
 
199
208
  - :rocket: Set `tool` as optional property in MissionChange contentResource
200
209
 
201
- ### v14.24.1 - 2025-02-20
210
+ ### v14.24.1 - 2026-02-20
202
211
 
203
212
  - :rocket: Set `filename` as optional property in MissionChange contentResource
204
213
 
205
- ### v14.24.0 - 2025-02-19
214
+ ### v14.24.0 - 2026-02-19
206
215
 
207
216
  - :tada: Update CoT and GeoJSON schemas to support the contentResource type on MissionChange objects
208
217
 
209
- ### v14.23.2 - 2025-02-13
218
+ ### v14.23.2 - 2026-02-13
210
219
 
211
220
  - :bug: Ensure Fill Color attribute is on all Polygon types
212
221
 
213
- ### v14.23.1 - 2025-02-13
222
+ ### v14.23.1 - 2026-02-13
214
223
 
215
224
  - :bug: Fix color issue surfaced by KML Parsing fixes in 14.23
216
225
 
217
- ### v14.23.0 - 2025-02-13
226
+ ### v14.23.0 - 2026-02-13
218
227
 
219
228
  - :bug: Fix transparency parsing and writing of KML Alpha values
220
229
 
221
- ### v14.22.1 - 2025-02-07
230
+ ### v14.22.1 - 2026-02-07
222
231
 
223
232
  - :bug: Fix test input for isFederatedChange
224
233
 
225
- ### v14.22.0 - 2025-02-07
234
+ ### v14.22.0 - 2026-02-07
226
235
 
227
236
  - :rocket: Change isFederatedChange from `String` to `Boolean` to match API Definition
228
237
 
229
- ### v14.21.0 - 2025-02-04
238
+ ### v14.21.0 - 2026-02-04
230
239
 
231
240
  - :rocket: Include more properties from MOBAC Basemap.xml
232
241
 
233
- ### v14.20.0 - 2025-02-03
242
+ ### v14.20.0 - 2026-02-03
234
243
 
235
244
  - :rocket: Permissive changes to UID Schema
236
245
 
237
- ### v14.19.0 - 2025-01-28
246
+ ### v14.19.0 - 2026-01-28
238
247
 
239
248
  - :rocket: Update MissionChange Types
240
249
 
241
- ### v14.18.4 - 2025-01-02
250
+ ### v14.18.4 - 2026-01-02
242
251
 
243
252
  - :arrow_up: Update Core Deps
244
253
 
245
- ### v14.18.3 - 2025-01-02
254
+ ### v14.18.3 - 2026-01-02
246
255
 
247
256
  - :bug: Fixing GH Actions Trusted Publishing
248
257
 
249
- ### v14.18.2 - 2025-01-02
258
+ ### v14.18.2 - 2026-01-02
250
259
 
251
260
  - :bug: Ensure normalize step never produces center with > 3 coordinates
252
261
 
@@ -419,11 +419,21 @@ export async function to_geojson(cot, opts = {}) {
419
419
  if (raw.event.detail.shape.ellipse._attributes.swapAxis !== undefined) {
420
420
  ellipse.swapAxis = Boolean(raw.event.detail.shape.ellipse._attributes.swapAxis);
421
421
  }
422
- if (!Array.isArray(raw.event.detail.shape.link)
423
- && raw.event.detail.shape.link?._attributes.type === 'b-x-KmlStyle'
424
- && raw.event.detail.shape.link?.Style) {
425
- if (raw.event.detail.shape.link.Style.LineStyle?.color) {
426
- let rawColor = raw.event.detail.shape.link.Style.LineStyle.color._text;
422
+ // ATAK puts circle fill in detail.fillColor; KML PolyStyle (below) may override.
423
+ if (raw.event.detail.fillColor?._attributes?.value !== undefined) {
424
+ const fill = new Color(Number(raw.event.detail.fillColor._attributes.value));
425
+ feat.properties['fill-opacity'] = fill.as_opacity() / 255;
426
+ feat.properties['fill'] = fill.as_hex();
427
+ }
428
+ const styleLinks = raw.event.detail.shape.link
429
+ ? (Array.isArray(raw.event.detail.shape.link)
430
+ ? raw.event.detail.shape.link
431
+ : [raw.event.detail.shape.link])
432
+ : [];
433
+ const styleLink = styleLinks.find((link) => (link?._attributes?.type === 'b-x-KmlStyle' && link.Style));
434
+ if (styleLink?.Style) {
435
+ if (styleLink.Style.LineStyle?.color) {
436
+ let rawColor = styleLink.Style.LineStyle.color._text;
427
437
  if (rawColor.startsWith('#'))
428
438
  rawColor = rawColor.substring(1);
429
439
  const a = parseInt(rawColor.substring(0, 2), 16);
@@ -434,11 +444,11 @@ export async function to_geojson(cot, opts = {}) {
434
444
  feat.properties.stroke = strokeColor.as_hex();
435
445
  feat.properties['stroke-opacity'] = strokeColor.as_opacity() / 255;
436
446
  }
437
- if (raw.event.detail.shape.link.Style.LineStyle?.width) {
438
- feat.properties['stroke-width'] = Number(raw.event.detail.shape.link.Style.LineStyle.width._text);
447
+ if (styleLink.Style.LineStyle?.width) {
448
+ feat.properties['stroke-width'] = Number(styleLink.Style.LineStyle.width._text);
439
449
  }
440
- if (raw.event.detail.shape.link.Style.PolyStyle?.color) {
441
- let rawColor = raw.event.detail.shape.link.Style.PolyStyle.color._text;
450
+ if (styleLink.Style.PolyStyle?.color) {
451
+ let rawColor = styleLink.Style.PolyStyle.color._text;
442
452
  if (rawColor.startsWith('#'))
443
453
  rawColor = rawColor.substring(1);
444
454
  const a = parseInt(rawColor.substring(0, 2), 16);
@@ -1 +1 @@
1
- {"version":3,"file":"to_geojson.js","sourceRoot":"","sources":["../../../lib/parser/to_geojson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to_geojson.js","sourceRoot":"","sources":["../../../lib/parser/to_geojson.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": "14.52.0",
4
+ "version": "14.52.2",
5
5
  "description": "Lightweight JavaScript library for parsing and manipulating TAK messages",
6
6
  "author": "Nick Ingalls <nick@ingalls.ca>",
7
7
  "types": "index.ts",
@@ -536,13 +536,25 @@ export async function to_geojson(
536
536
  ellipse.swapAxis = Boolean(raw.event.detail.shape.ellipse._attributes.swapAxis);
537
537
  }
538
538
 
539
- if (
540
- !Array.isArray(raw.event.detail.shape.link)
541
- && raw.event.detail.shape.link?._attributes.type === 'b-x-KmlStyle'
542
- && raw.event.detail.shape.link?.Style
543
- ) {
544
- if (raw.event.detail.shape.link.Style.LineStyle?.color) {
545
- let rawColor = raw.event.detail.shape.link.Style.LineStyle.color._text;
539
+ // ATAK puts circle fill in detail.fillColor; KML PolyStyle (below) may override.
540
+ if (raw.event.detail.fillColor?._attributes?.value !== undefined) {
541
+ const fill = new Color(Number(raw.event.detail.fillColor._attributes.value));
542
+ feat.properties['fill-opacity'] = fill.as_opacity() / 255;
543
+ feat.properties['fill'] = fill.as_hex();
544
+ }
545
+
546
+ const styleLinks = raw.event.detail.shape.link
547
+ ? (Array.isArray(raw.event.detail.shape.link)
548
+ ? raw.event.detail.shape.link
549
+ : [raw.event.detail.shape.link])
550
+ : [];
551
+ const styleLink = styleLinks.find((link) => (
552
+ link?._attributes?.type === 'b-x-KmlStyle' && link.Style
553
+ ));
554
+
555
+ if (styleLink?.Style) {
556
+ if (styleLink.Style.LineStyle?.color) {
557
+ let rawColor = styleLink.Style.LineStyle.color._text;
546
558
  if (rawColor.startsWith('#')) rawColor = rawColor.substring(1);
547
559
 
548
560
  const a = parseInt(rawColor.substring(0, 2), 16);
@@ -556,12 +568,12 @@ export async function to_geojson(
556
568
  feat.properties['stroke-opacity'] = strokeColor.as_opacity() / 255;
557
569
  }
558
570
 
559
- if (raw.event.detail.shape.link.Style.LineStyle?.width) {
560
- feat.properties['stroke-width'] = Number(raw.event.detail.shape.link.Style.LineStyle.width._text);
571
+ if (styleLink.Style.LineStyle?.width) {
572
+ feat.properties['stroke-width'] = Number(styleLink.Style.LineStyle.width._text);
561
573
  }
562
574
 
563
- if (raw.event.detail.shape.link.Style.PolyStyle?.color) {
564
- let rawColor = raw.event.detail.shape.link.Style.PolyStyle.color._text;
575
+ if (styleLink.Style.PolyStyle?.color) {
576
+ let rawColor = styleLink.Style.PolyStyle.color._text;
565
577
  if (rawColor.startsWith('#')) rawColor = rawColor.substring(1);
566
578
 
567
579
  const a = parseInt(rawColor.substring(0, 2), 16);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "14.52.0",
4
+ "version": "14.52.2",
5
5
  "description": "Lightweight JavaScript library for parsing and manipulating TAK messages",
6
6
  "author": "Nick Ingalls <nick@ingalls.ca>",
7
7
  "types": "index.ts",