@tak-ps/node-cot 12.37.0 → 13.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/.github/workflows/doc.yml +1 -1
- package/.github/workflows/release.yml +3 -3
- package/.github/workflows/test.yml +4 -1
- package/CHANGELOG.md +9 -0
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/{chat.js → builders/chat.js} +2 -2
- package/dist/lib/builders/chat.js.map +1 -0
- package/dist/lib/{fileshare.js → builders/fileshare.js} +2 -2
- package/dist/lib/builders/fileshare.js.map +1 -0
- package/dist/lib/{force-delete.js → builders/force-delete.js} +2 -2
- package/dist/lib/builders/force-delete.js.map +1 -0
- package/dist/lib/builders/route.js +23 -0
- package/dist/lib/builders/route.js.map +1 -0
- package/dist/lib/cot.js +7 -723
- package/dist/lib/cot.js.map +1 -1
- package/dist/lib/data-package.js +3 -2
- package/dist/lib/data-package.js.map +1 -1
- package/dist/lib/parser.js +769 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/types/types.js +58 -17
- package/dist/lib/types/types.js.map +1 -1
- package/dist/lib/utils/util.js +5 -5
- package/dist/lib/utils/util.js.map +1 -1
- package/dist/package.json +4 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +6 -3
- package/lib/{chat.ts → builders/chat.ts} +3 -3
- package/lib/{fileshare.ts → builders/fileshare.ts} +4 -4
- package/lib/{force-delete.ts → builders/force-delete.ts} +3 -3
- package/lib/builders/route.ts +27 -0
- package/lib/cot.ts +17 -858
- package/lib/data-package.ts +3 -2
- package/lib/parser.ts +935 -0
- package/lib/types/types.ts +66 -17
- package/lib/utils/util.ts +5 -5
- package/package.json +4 -5
- package/tsconfig.json +0 -3
- package/dist/lib/chat.js.map +0 -1
- package/dist/lib/fileshare.js.map +0 -1
- package/dist/lib/force-delete.js.map +0 -1
package/lib/types/types.ts
CHANGED
|
@@ -46,6 +46,9 @@ export const LinkAttributes = Type.Object({
|
|
|
46
46
|
// Polygon/LineString
|
|
47
47
|
point: Type.Optional(Type.String()),
|
|
48
48
|
|
|
49
|
+
// Used in Routes
|
|
50
|
+
callsign: Type.Optional(Type.String()),
|
|
51
|
+
|
|
49
52
|
// URL Style Links
|
|
50
53
|
url: Type.Optional(Type.String()),
|
|
51
54
|
mime: Type.Optional(Type.String()),
|
|
@@ -56,6 +59,28 @@ export const LinkAttributes = Type.Object({
|
|
|
56
59
|
parent_callsign: Type.Optional(Type.String())
|
|
57
60
|
})
|
|
58
61
|
|
|
62
|
+
export const RouteInfoNavCueTrigger = Type.Object({
|
|
63
|
+
_attributes: Type.Object({
|
|
64
|
+
mode: Type.String(),
|
|
65
|
+
value: Type.String()
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
export const RouteInfoNavCue = Type.Object({
|
|
70
|
+
_attributes: Type.Object({
|
|
71
|
+
id: Type.String(),
|
|
72
|
+
voice: Type.String(),
|
|
73
|
+
text: Type.String(),
|
|
74
|
+
}),
|
|
75
|
+
trigger: RouteInfoNavCueTrigger
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
export const RouteInfo = Type.Object({
|
|
79
|
+
__navcues: Type.Object({
|
|
80
|
+
__navcue: Type.Union([Type.Array(RouteInfoNavCue), RouteInfoNavCue])
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
|
|
59
84
|
export const Link = Type.Object({
|
|
60
85
|
_attributes: LinkAttributes
|
|
61
86
|
})
|
|
@@ -89,6 +114,7 @@ export const LinkAttrAttributes = Type.Object({
|
|
|
89
114
|
color: Type.Optional(Type.Integer()),
|
|
90
115
|
method: LinkAttrRouteMethod,
|
|
91
116
|
prefix: Type.String(),
|
|
117
|
+
style: Type.Optional(Type.String()),
|
|
92
118
|
stroke: Type.Optional(Type.String()),
|
|
93
119
|
type: Type.Optional(Type.String()),
|
|
94
120
|
routetype: LinkAttrRouteType,
|
|
@@ -114,16 +140,37 @@ export const ServerVersionAttributes = Type.Object({
|
|
|
114
140
|
|
|
115
141
|
export const ColorAttributes = Type.Object({
|
|
116
142
|
_attributes: Type.Optional(Type.Object({
|
|
117
|
-
argb: Type.Optional(Type.
|
|
143
|
+
argb: Type.Optional(Type.Integer()),
|
|
144
|
+
|
|
145
|
+
// Have seen this used in range and bearing
|
|
146
|
+
value: Type.Optional(Type.Integer())
|
|
118
147
|
}))
|
|
119
148
|
})
|
|
120
149
|
|
|
121
|
-
export const
|
|
150
|
+
export const GenericStringAttributes = Type.Object({
|
|
122
151
|
_attributes: Type.Optional(Type.Object({
|
|
123
152
|
value: Type.Optional(Type.String())
|
|
124
153
|
}))
|
|
125
154
|
})
|
|
126
155
|
|
|
156
|
+
export const GenericBooleanAttributes = Type.Object({
|
|
157
|
+
_attributes: Type.Optional(Type.Object({
|
|
158
|
+
value: Type.Optional(Type.Boolean())
|
|
159
|
+
}))
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
export const GenericIntegerAttributes = Type.Object({
|
|
163
|
+
_attributes: Type.Optional(Type.Object({
|
|
164
|
+
value: Type.Optional(Type.Integer())
|
|
165
|
+
}))
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
export const GenericNumberAttributes = Type.Object({
|
|
169
|
+
_attributes: Type.Optional(Type.Object({
|
|
170
|
+
value: Type.Optional(Type.Number())
|
|
171
|
+
}))
|
|
172
|
+
})
|
|
173
|
+
|
|
127
174
|
export const GenericOptionalText = Type.Object({
|
|
128
175
|
_text: Type.Optional(Type.String())
|
|
129
176
|
})
|
|
@@ -457,7 +504,7 @@ export const Range = Type.Object({
|
|
|
457
504
|
});
|
|
458
505
|
|
|
459
506
|
export const RangeUnitsAttributes = Type.Object({
|
|
460
|
-
value: Type.
|
|
507
|
+
value: Type.Integer()
|
|
461
508
|
});
|
|
462
509
|
|
|
463
510
|
export const RangeUnits = Type.Object({
|
|
@@ -473,7 +520,7 @@ export const Bearing = Type.Object({
|
|
|
473
520
|
});
|
|
474
521
|
|
|
475
522
|
export const BearingUnitsAttributes = Type.Object({
|
|
476
|
-
value: Type.
|
|
523
|
+
value: Type.Integer()
|
|
477
524
|
});
|
|
478
525
|
|
|
479
526
|
export const BearingUnits = Type.Object({
|
|
@@ -481,7 +528,7 @@ export const BearingUnits = Type.Object({
|
|
|
481
528
|
});
|
|
482
529
|
|
|
483
530
|
export const InclinationAttributes = Type.Object({
|
|
484
|
-
value: Type.
|
|
531
|
+
value: Type.Number()
|
|
485
532
|
});
|
|
486
533
|
|
|
487
534
|
export const Inclination = Type.Object({
|
|
@@ -489,7 +536,7 @@ export const Inclination = Type.Object({
|
|
|
489
536
|
});
|
|
490
537
|
|
|
491
538
|
export const NorthRefAttributes = Type.Object({
|
|
492
|
-
value: Type.
|
|
539
|
+
value: Type.Number()
|
|
493
540
|
});
|
|
494
541
|
|
|
495
542
|
export const NorthRef = Type.Object({
|
|
@@ -530,6 +577,7 @@ export const Detail = Type.Object({
|
|
|
530
577
|
'__video': Type.Optional(Video),
|
|
531
578
|
'__geofence': Type.Optional(Geofence),
|
|
532
579
|
'__milsym': Type.Optional(Milsym),
|
|
580
|
+
'__routeinfo': Type.Optional(RouteInfo),
|
|
533
581
|
'__forcedelete': Type.Optional(ForceDelete),
|
|
534
582
|
'_flow-tags_': Type.Optional(FlowTags),
|
|
535
583
|
uid: Type.Optional(Uid),
|
|
@@ -540,12 +588,12 @@ export const Detail = Type.Object({
|
|
|
540
588
|
remarks: Type.Optional(Remarks),
|
|
541
589
|
precisionlocation: Type.Optional(PrecisionLocation),
|
|
542
590
|
color: Type.Optional(ColorAttributes),
|
|
543
|
-
strokeColor: Type.Optional(
|
|
544
|
-
archive: Type.Optional(Type.Union([
|
|
545
|
-
strokeWeight: Type.Optional(
|
|
546
|
-
strokeStyle: Type.Optional(
|
|
547
|
-
labels_on: Type.Optional(
|
|
548
|
-
fillColor: Type.Optional(
|
|
591
|
+
strokeColor: Type.Optional(GenericIntegerAttributes),
|
|
592
|
+
archive: Type.Optional(Type.Union([GenericStringAttributes, Type.Array(GenericStringAttributes)])),
|
|
593
|
+
strokeWeight: Type.Optional(GenericNumberAttributes),
|
|
594
|
+
strokeStyle: Type.Optional(GenericStringAttributes),
|
|
595
|
+
labels_on: Type.Optional(GenericBooleanAttributes),
|
|
596
|
+
fillColor: Type.Optional(GenericIntegerAttributes),
|
|
549
597
|
mission: Type.Optional(Mission),
|
|
550
598
|
shape: Type.Optional(Shape),
|
|
551
599
|
|
|
@@ -575,11 +623,12 @@ export const Detail = Type.Object({
|
|
|
575
623
|
|
|
576
624
|
export const Point = Type.Object({
|
|
577
625
|
_attributes: Type.Object({
|
|
578
|
-
lat: Type.
|
|
579
|
-
lon: Type.
|
|
580
|
-
hae: Type.
|
|
581
|
-
|
|
582
|
-
|
|
626
|
+
lat: Type.Number(),
|
|
627
|
+
lon: Type.Number(),
|
|
628
|
+
hae: Type.Number(),
|
|
629
|
+
// Are Occasionally seen as "NaN"
|
|
630
|
+
ce: Type.Union([Type.Number(), Type.String()]),
|
|
631
|
+
le: Type.Union([Type.Number(), Type.String()])
|
|
583
632
|
})
|
|
584
633
|
})
|
|
585
634
|
|
package/lib/utils/util.ts
CHANGED
|
@@ -89,11 +89,11 @@ export default class Util {
|
|
|
89
89
|
static cot_point(): Static<typeof Point> {
|
|
90
90
|
return {
|
|
91
91
|
'_attributes': {
|
|
92
|
-
'lat':
|
|
93
|
-
'lon':
|
|
94
|
-
'hae':
|
|
95
|
-
'ce':
|
|
96
|
-
'le':
|
|
92
|
+
'lat': 0.000000,
|
|
93
|
+
'lon': 0.000000,
|
|
94
|
+
'hae': 0.0,
|
|
95
|
+
'ce': 9999999.0,
|
|
96
|
+
'le': 9999999.0
|
|
97
97
|
}
|
|
98
98
|
};
|
|
99
99
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tak-ps/node-cot",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "13.1.0",
|
|
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",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"./2525": "./dist/lib/utils/2525.js"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"test": "c8 --reporter=lcov
|
|
13
|
+
"test": "c8 --reporter=lcov --reporter html tsx --test test/*.ts",
|
|
14
14
|
"lint": "eslint *.ts lib/ test/",
|
|
15
15
|
"doc": "typedoc index.ts",
|
|
16
16
|
"build": "tsc --build && cp package.json dist/ && cp ./lib/types/*.xml ./dist/lib/types/ && mkdir -p ./dist/lib/proto/ && cp lib/proto/* ./dist/lib/proto/",
|
|
@@ -42,13 +42,12 @@
|
|
|
42
42
|
"xml-js": "^1.6.11"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "^
|
|
45
|
+
"@types/node": "^24.0.0",
|
|
46
46
|
"@types/tape": "^5.6.0",
|
|
47
47
|
"c8": "^10.1.3",
|
|
48
48
|
"eslint": "^9.0.0",
|
|
49
49
|
"tape": "^5.6.1",
|
|
50
|
-
"
|
|
51
|
-
"ts-node-test": "^0.4.0",
|
|
50
|
+
"tsx": "^4.20.3",
|
|
52
51
|
"typedoc": "^0.28.0",
|
|
53
52
|
"typescript": "^5.7.0",
|
|
54
53
|
"typescript-eslint": "^8.0.0"
|
package/tsconfig.json
CHANGED
package/dist/lib/chat.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../lib/chat.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileshare.js","sourceRoot":"","sources":["../../lib/fileshare.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,GAAG,MAAM,UAAU,CAAC;AAK3B,MAAM,OAAO,SAAU,SAAQ,GAAG;IAC9B,YAAY,SAA6C;QACrD,MAAM,GAAG,GAA2B;YAChC,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC;gBAClD,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE;oBACJ,SAAS,EAAE;wBACP,WAAW,EAAE,SAAS;qBACzB;iBACJ;aACJ;SACJ,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"force-delete.js","sourceRoot":"","sources":["../../lib/force-delete.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,GAAG,MAAM,UAAU,CAAC;AAI3B,MAAM,OAAO,WAAY,SAAQ,GAAG;IAChC,YAAY,GAAW;QACnB,MAAM,GAAG,GAA2B;YAChC,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC;gBAClD,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE;oBACJ,IAAI,EAAE;wBACF,WAAW,EAAE;4BACT,GAAG,EAAE,GAAG;4BACR,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;qBACJ;oBACD,aAAa,EAAE,EAAE;iBACpB;aACJ;SACJ,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;CACJ"}
|