@tak-ps/node-tak 1.2.0 → 1.4.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 +13 -13
- package/CHANGELOG.md +9 -0
- package/README.md +19 -2
- package/dist/index.js +13 -6
- package/dist/index.js.map +1 -1
- package/index.ts +20 -8
- package/package.json +2 -2
|
@@ -5,22 +5,22 @@ on:
|
|
|
5
5
|
branches: ["main"]
|
|
6
6
|
workflow_dispatch:
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
11
|
pages: write
|
|
12
12
|
id-token: write
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
15
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
16
|
+
concurrency:
|
|
17
|
+
group: "pages"
|
|
18
18
|
cancel-in-progress: false
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
jobs:
|
|
21
|
+
deploy:
|
|
22
|
+
environment:
|
|
23
|
+
name: github-pages
|
|
24
24
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
25
25
|
runs-on: ubuntu-latest
|
|
26
26
|
steps:
|
|
@@ -30,8 +30,8 @@ on:
|
|
|
30
30
|
uses: actions/configure-pages@v3
|
|
31
31
|
- uses: actions/setup-node@v3
|
|
32
32
|
with:
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
node-version: 18
|
|
34
|
+
registry-url: https://registry.npmjs.org/
|
|
35
35
|
- name: npm install
|
|
36
36
|
run: npm install
|
|
37
37
|
- name: npm run doc
|
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
## Version History
|
|
12
12
|
|
|
13
|
+
### v1.4.0
|
|
14
|
+
|
|
15
|
+
- :bug: Destory client when a new client is created after `reconnect` is called
|
|
16
|
+
|
|
17
|
+
### v1.3.0
|
|
18
|
+
|
|
19
|
+
- :rocket: Perform initial parsing in try/catch
|
|
20
|
+
- :rocket: Remove ts-ignores now that node-cot has strong type defs
|
|
21
|
+
|
|
13
22
|
### v1.2.0
|
|
14
23
|
|
|
15
24
|
- :arrow_up: Move `node-cot` to `peerDependencies`
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<p align=center>Javascript TAK Server Library</p>
|
|
4
4
|
|
|
5
|
-
Lightweight JavaScript library for managing TAK TLS
|
|
5
|
+
Lightweight JavaScript library for managing TAK TLS connections for streaming CoT data
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -18,7 +18,24 @@ npm install @tak-ps/node-tak
|
|
|
18
18
|
|
|
19
19
|
### Basic Usage
|
|
20
20
|
|
|
21
|
-
```
|
|
21
|
+
```js
|
|
22
22
|
import TAK from '@tak-ps/node-tak';
|
|
23
23
|
|
|
24
|
+
const tak = await TAK.connect('ConnectionID', new URL('https://tak-server.com:8089'), {
|
|
25
|
+
key: conn.auth.key,
|
|
26
|
+
cert: conn.auth.cert
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
tak.on('cot', async (cot: CoT) => {
|
|
30
|
+
console.error('COT', cot); // See node-cot library
|
|
31
|
+
}).on('end', async () => {
|
|
32
|
+
console.error(`Connection End`);
|
|
33
|
+
}).on('timeout', async () => {
|
|
34
|
+
console.error(`Connection Timeout`);
|
|
35
|
+
}).on('ping', async () => {
|
|
36
|
+
console.error(`TAK Server Ping`);
|
|
37
|
+
}).on('error', async (err) => {
|
|
38
|
+
console.error(`Connection Error`);
|
|
39
|
+
});
|
|
40
|
+
|
|
24
41
|
```
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,7 @@ export default class TAK extends EventEmitter {
|
|
|
38
38
|
}
|
|
39
39
|
connect_ssl() {
|
|
40
40
|
return new Promise((resolve) => {
|
|
41
|
+
this.destroyed = false;
|
|
41
42
|
this.client = tls.connect({
|
|
42
43
|
host: this.url.hostname,
|
|
43
44
|
port: parseInt(this.url.port),
|
|
@@ -58,16 +59,16 @@ export default class TAK extends EventEmitter {
|
|
|
58
59
|
buff = buff + data.toString();
|
|
59
60
|
let result = TAK.findCoT(buff);
|
|
60
61
|
while (result && result.event) {
|
|
61
|
-
const cot = new CoT(result.event);
|
|
62
62
|
try {
|
|
63
|
-
|
|
63
|
+
const cot = new CoT(result.event);
|
|
64
64
|
if (cot.raw.event._attributes.type === 't-x-c-t-r') {
|
|
65
65
|
this.open = true;
|
|
66
66
|
this.emit('ping');
|
|
67
|
-
// @ts-ignore: Remove once we have JSONSchema => TS Defs for CoT Messages
|
|
68
67
|
}
|
|
69
|
-
else if (cot.raw.event._attributes.type === 't-x-takp-v'
|
|
70
|
-
|
|
68
|
+
else if (cot.raw.event._attributes.type === 't-x-takp-v'
|
|
69
|
+
&& cot.raw.event.detail
|
|
70
|
+
&& cot.raw.event.detail.TakControl
|
|
71
|
+
&& cot.raw.event.detail.TakControl.TakServerVersionInfo) {
|
|
71
72
|
this.version = cot.raw.event.detail.TakControl.TakServerVersionInfo._attributes.serverVersion;
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
@@ -97,7 +98,13 @@ export default class TAK extends EventEmitter {
|
|
|
97
98
|
});
|
|
98
99
|
}
|
|
99
100
|
async reconnect() {
|
|
100
|
-
|
|
101
|
+
if (this.destroyed) {
|
|
102
|
+
await this.connect_ssl();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.destroy();
|
|
106
|
+
await this.connect_ssl();
|
|
107
|
+
}
|
|
101
108
|
}
|
|
102
109
|
destroy() {
|
|
103
110
|
this.destroyed = true;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,GAAG,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -3,6 +3,9 @@ import tls from 'node:tls';
|
|
|
3
3
|
import CoT from '@tak-ps/node-cot';
|
|
4
4
|
import type { TLSSocket } from 'node:tls'
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Store the TAK Client Certificate for a connection
|
|
8
|
+
*/
|
|
6
9
|
export interface TAKAuth {
|
|
7
10
|
cert: string;
|
|
8
11
|
key: string;
|
|
@@ -49,7 +52,7 @@ export default class TAK extends EventEmitter {
|
|
|
49
52
|
this.queue = [];
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
static async connect(id: number | string, url: URL, auth: TAKAuth) {
|
|
55
|
+
static async connect(id: number | string, url: URL, auth: TAKAuth): Promise<TAK> {
|
|
53
56
|
const tak = new TAK(id, 'ssl', url, auth);
|
|
54
57
|
|
|
55
58
|
if (url.protocol === 'ssl:') {
|
|
@@ -63,6 +66,8 @@ export default class TAK extends EventEmitter {
|
|
|
63
66
|
|
|
64
67
|
connect_ssl(): Promise<TAK> {
|
|
65
68
|
return new Promise((resolve) => {
|
|
69
|
+
this.destroyed = false;
|
|
70
|
+
|
|
66
71
|
this.client = tls.connect({
|
|
67
72
|
host: this.url.hostname,
|
|
68
73
|
port: parseInt(this.url.port),
|
|
@@ -88,16 +93,18 @@ export default class TAK extends EventEmitter {
|
|
|
88
93
|
|
|
89
94
|
let result = TAK.findCoT(buff);
|
|
90
95
|
while (result && result.event) {
|
|
91
|
-
const cot = new CoT(result.event);
|
|
92
|
-
|
|
93
96
|
try {
|
|
94
|
-
|
|
97
|
+
const cot = new CoT(result.event);
|
|
98
|
+
|
|
95
99
|
if (cot.raw.event._attributes.type === 't-x-c-t-r') {
|
|
96
100
|
this.open = true;
|
|
97
101
|
this.emit('ping');
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
102
|
+
} else if (
|
|
103
|
+
cot.raw.event._attributes.type === 't-x-takp-v'
|
|
104
|
+
&& cot.raw.event.detail
|
|
105
|
+
&& cot.raw.event.detail.TakControl
|
|
106
|
+
&& cot.raw.event.detail.TakControl.TakServerVersionInfo
|
|
107
|
+
) {
|
|
101
108
|
this.version = cot.raw.event.detail.TakControl.TakServerVersionInfo._attributes.serverVersion;
|
|
102
109
|
} else {
|
|
103
110
|
this.emit('cot', cot);
|
|
@@ -128,7 +135,12 @@ export default class TAK extends EventEmitter {
|
|
|
128
135
|
}
|
|
129
136
|
|
|
130
137
|
async reconnect() {
|
|
131
|
-
|
|
138
|
+
if (this.destroyed) {
|
|
139
|
+
await this.connect_ssl();
|
|
140
|
+
} else {
|
|
141
|
+
this.destroy();
|
|
142
|
+
await this.connect_ssl();
|
|
143
|
+
}
|
|
132
144
|
}
|
|
133
145
|
|
|
134
146
|
destroy() {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tak-ps/node-tak",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"description": "Lightweight JavaScript library for communicating with TAK Server",
|
|
6
6
|
"author": "Nick Ingalls <nick@ingalls.ca>",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"ajv": "^8.12.0"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@tak-ps/node-cot": "^5.0.
|
|
20
|
+
"@tak-ps/node-cot": "^5.0.6"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^20.0.0",
|