@tak-ps/node-tak 8.4.1 → 8.6.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 +8 -0
- package/README.md +14 -2
- package/dist/lib/api/injectors.js +61 -0
- package/dist/lib/api/injectors.js.map +1 -0
- package/dist/lib/api/repeater.js +29 -0
- package/dist/lib/api/repeater.js.map +1 -0
- package/dist/lib/api.js +6 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/api/injectors.ts +74 -0
- package/lib/api/repeater.ts +35 -0
- package/lib/api.ts +6 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<h1 align=center>Node-TAK</h1>
|
|
2
|
-
|
|
3
2
|
<p align=center>Javascript TAK Server Library</p>
|
|
4
3
|
|
|
5
4
|
Lightweight JavaScript library for managing TAK TLS connections for streaming CoT data
|
|
5
|
+
as well as a typed SDK for performing TAK Server REST API operations
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ npm install @tak-ps/node-tak
|
|
|
16
16
|
|
|
17
17
|
## Usage Examples
|
|
18
18
|
|
|
19
|
-
### Basic Usage
|
|
19
|
+
### Basic Streaming COT Usage
|
|
20
20
|
|
|
21
21
|
```js
|
|
22
22
|
import TAK from '@tak-ps/node-tak';
|
|
@@ -39,3 +39,15 @@ tak.on('cot', async (cot: CoT) => {
|
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
+
|
|
43
|
+
### Basic API Usage
|
|
44
|
+
|
|
45
|
+
```js
|
|
46
|
+
import { TAKAPI, APIAuthCertificate } from '@tak-ps/node-tak'
|
|
47
|
+
|
|
48
|
+
const api = await TAKAPI.init(new URL('TAK SERVER Marti API & Port'), new APIAuthCertificate(auth.cert, auth.key));
|
|
49
|
+
|
|
50
|
+
const missions = await api.Mission.list(req.query);
|
|
51
|
+
|
|
52
|
+
console.error(missions);
|
|
53
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { TAKList } from './types.js';
|
|
2
|
+
import { Type } from '@sinclair/typebox';
|
|
3
|
+
export const Injector = Type.Object({
|
|
4
|
+
uid: Type.String(),
|
|
5
|
+
toInject: Type.String()
|
|
6
|
+
});
|
|
7
|
+
export const TAKList_Injector = TAKList(Injector);
|
|
8
|
+
export default class {
|
|
9
|
+
api;
|
|
10
|
+
constructor(api) {
|
|
11
|
+
this.api = api;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Return a list of all configured COT Injectors
|
|
15
|
+
*
|
|
16
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/getAllCotInjectors TAK Server Docs}.
|
|
17
|
+
*/
|
|
18
|
+
async list() {
|
|
19
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
20
|
+
return await this.api.fetch(url, {
|
|
21
|
+
method: 'GET'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Return a sing configured COT Injectors for a given UID
|
|
26
|
+
*
|
|
27
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/getOneCotInjector TAK Server Docs}.
|
|
28
|
+
*/
|
|
29
|
+
async get(uid) {
|
|
30
|
+
const url = new URL(`/Marti/api/injectors/cot/uid/${encodeURIComponent(uid)}`, this.api.url);
|
|
31
|
+
return await this.api.fetch(url, {
|
|
32
|
+
method: 'GET'
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Remove a COT Injector
|
|
37
|
+
*
|
|
38
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/putCotInjector TAK Server Docs}.
|
|
39
|
+
*/
|
|
40
|
+
async create(injector) {
|
|
41
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
42
|
+
return await this.api.fetch(url, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
body: injector
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Remove a COT Injector
|
|
49
|
+
*
|
|
50
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/deleteInjector TAK Server Docs}.
|
|
51
|
+
*/
|
|
52
|
+
async delete(injector) {
|
|
53
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
54
|
+
url.searchParams.append('uid', injector.uid);
|
|
55
|
+
url.searchParams.append('toInject', injector.toInject);
|
|
56
|
+
return await this.api.fetch(url, {
|
|
57
|
+
method: 'DELETE'
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=injectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectors.js","sourceRoot":"","sources":["../../../lib/api/injectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAU,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElD,MAAM,CAAC,OAAO;IACV,GAAG,CAAS;IAEZ,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACN,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gCAAgC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE7F,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,QAAiC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,QAAiC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TAKList } from './types.js';
|
|
2
|
+
import { Type } from '@sinclair/typebox';
|
|
3
|
+
export const Repeater = Type.Object({
|
|
4
|
+
uid: Type.String(),
|
|
5
|
+
repeatType: Type.String(),
|
|
6
|
+
cotType: Type.String(),
|
|
7
|
+
dateTimeActivated: Type.String(),
|
|
8
|
+
xml: Type.String(),
|
|
9
|
+
callsign: Type.String(),
|
|
10
|
+
});
|
|
11
|
+
export const TAKList_Repeater = TAKList(Repeater);
|
|
12
|
+
export default class {
|
|
13
|
+
api;
|
|
14
|
+
constructor(api) {
|
|
15
|
+
this.api = api;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Return a list of all configured COT Repeaters
|
|
19
|
+
*
|
|
20
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/repeater-api/operation/getList TAK Server Docs}.
|
|
21
|
+
*/
|
|
22
|
+
async list() {
|
|
23
|
+
const url = new URL('/Marti/api/repeater/list', this.api.url);
|
|
24
|
+
return await this.api.fetch(url, {
|
|
25
|
+
method: 'GET'
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=repeater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repeater.js","sourceRoot":"","sources":["../../../lib/api/repeater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAU,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;IACtB,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE;IAChC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElD,MAAM,CAAC,OAAO;IACV,GAAG,CAAS;IAEZ,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACN,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9D,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/lib/api.js
CHANGED
|
@@ -8,6 +8,8 @@ import MissionLayer from './api/mission-layer.js';
|
|
|
8
8
|
import Credentials from './api/credentials.js';
|
|
9
9
|
import Contacts from './api/contacts.js';
|
|
10
10
|
import Files from './api/files.js';
|
|
11
|
+
import Injectors from './api/injectors.js';
|
|
12
|
+
import Repeater from './api/repeater.js';
|
|
11
13
|
import Group from './api/groups.js';
|
|
12
14
|
import Subscription from './api/subscriptions.js';
|
|
13
15
|
import Video from './api/video.js';
|
|
@@ -28,6 +30,8 @@ export default class TAKAPI {
|
|
|
28
30
|
Credentials;
|
|
29
31
|
Contacts;
|
|
30
32
|
Subscription;
|
|
33
|
+
Injectors;
|
|
34
|
+
Repeater;
|
|
31
35
|
Group;
|
|
32
36
|
Video;
|
|
33
37
|
Export;
|
|
@@ -48,6 +52,8 @@ export default class TAKAPI {
|
|
|
48
52
|
this.Subscription = new Subscription(this);
|
|
49
53
|
this.Group = new Group(this);
|
|
50
54
|
this.Video = new Video(this);
|
|
55
|
+
this.Injectors = new Injectors(this);
|
|
56
|
+
this.Repeater = new Repeater(this);
|
|
51
57
|
this.Files = new Files(this);
|
|
52
58
|
}
|
|
53
59
|
static async init(url, auth) {
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../index.ts","../test/default.test.ts","../test/findCoT.test.ts","../lib/api.ts","../lib/auth.ts","../lib/fetch.ts","../lib/stream.ts","../lib/api/contacts.ts","../lib/api/credentials.ts","../lib/api/export.ts","../lib/api/files.ts","../lib/api/groups.ts","../lib/api/mission-layer.ts","../lib/api/mission-log.ts","../lib/api/mission.ts","../lib/api/oauth.ts","../lib/api/package.ts","../lib/api/query.ts","../lib/api/subscriptions.ts","../lib/api/types.ts","../lib/api/video.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../index.ts","../test/default.test.ts","../test/findCoT.test.ts","../lib/api.ts","../lib/auth.ts","../lib/fetch.ts","../lib/stream.ts","../lib/api/contacts.ts","../lib/api/credentials.ts","../lib/api/export.ts","../lib/api/files.ts","../lib/api/groups.ts","../lib/api/injectors.ts","../lib/api/mission-layer.ts","../lib/api/mission-log.ts","../lib/api/mission.ts","../lib/api/oauth.ts","../lib/api/package.ts","../lib/api/query.ts","../lib/api/repeater.ts","../lib/api/subscriptions.ts","../lib/api/types.ts","../lib/api/video.ts"],"version":"5.8.3"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import TAKAPI from '../api.js';
|
|
2
|
+
import { TAKList } from './types.js';
|
|
3
|
+
import { Type, Static } from '@sinclair/typebox';
|
|
4
|
+
|
|
5
|
+
export const Injector = Type.Object({
|
|
6
|
+
uid: Type.String(),
|
|
7
|
+
toInject: Type.String()
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export const TAKList_Injector = TAKList(Injector);
|
|
11
|
+
|
|
12
|
+
export default class {
|
|
13
|
+
api: TAKAPI;
|
|
14
|
+
|
|
15
|
+
constructor(api: TAKAPI) {
|
|
16
|
+
this.api = api;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Return a list of all configured COT Injectors
|
|
21
|
+
*
|
|
22
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/getAllCotInjectors TAK Server Docs}.
|
|
23
|
+
*/
|
|
24
|
+
async list(): Promise<Static<typeof TAKList_Injector>> {
|
|
25
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
26
|
+
|
|
27
|
+
return await this.api.fetch(url, {
|
|
28
|
+
method: 'GET'
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Return a sing configured COT Injectors for a given UID
|
|
34
|
+
*
|
|
35
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/getOneCotInjector TAK Server Docs}.
|
|
36
|
+
*/
|
|
37
|
+
async get(uid: string): Promise<Static<typeof TAKList_Injector>> {
|
|
38
|
+
const url = new URL(`/Marti/api/injectors/cot/uid/${encodeURIComponent(uid)}`, this.api.url);
|
|
39
|
+
|
|
40
|
+
return await this.api.fetch(url, {
|
|
41
|
+
method: 'GET'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Remove a COT Injector
|
|
47
|
+
*
|
|
48
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/putCotInjector TAK Server Docs}.
|
|
49
|
+
*/
|
|
50
|
+
async create(injector: Static<typeof Injector>): Promise<Static<typeof TAKList_Injector>> {
|
|
51
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
52
|
+
|
|
53
|
+
return await this.api.fetch(url, {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
body: injector
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Remove a COT Injector
|
|
61
|
+
*
|
|
62
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/injection-api/operation/deleteInjector TAK Server Docs}.
|
|
63
|
+
*/
|
|
64
|
+
async delete(injector: Static<typeof Injector>): Promise<Static<typeof TAKList_Injector>> {
|
|
65
|
+
const url = new URL('/Marti/api/injectors/cot/uid', this.api.url);
|
|
66
|
+
|
|
67
|
+
url.searchParams.append('uid', injector.uid);
|
|
68
|
+
url.searchParams.append('toInject', injector.toInject);
|
|
69
|
+
|
|
70
|
+
return await this.api.fetch(url, {
|
|
71
|
+
method: 'DELETE'
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import TAKAPI from '../api.js';
|
|
2
|
+
import { TAKList } from './types.js';
|
|
3
|
+
import { Type, Static } from '@sinclair/typebox';
|
|
4
|
+
|
|
5
|
+
export const Repeater = Type.Object({
|
|
6
|
+
uid: Type.String(),
|
|
7
|
+
repeatType: Type.String(),
|
|
8
|
+
cotType: Type.String(),
|
|
9
|
+
dateTimeActivated: Type.String(),
|
|
10
|
+
xml: Type.String(),
|
|
11
|
+
callsign: Type.String(),
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export const TAKList_Repeater = TAKList(Repeater);
|
|
15
|
+
|
|
16
|
+
export default class {
|
|
17
|
+
api: TAKAPI;
|
|
18
|
+
|
|
19
|
+
constructor(api: TAKAPI) {
|
|
20
|
+
this.api = api;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Return a list of all configured COT Repeaters
|
|
25
|
+
*
|
|
26
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/repeater-api/operation/getList TAK Server Docs}.
|
|
27
|
+
*/
|
|
28
|
+
async list(): Promise<Static<typeof TAKList_Repeater>> {
|
|
29
|
+
const url = new URL('/Marti/api/repeater/list', this.api.url);
|
|
30
|
+
|
|
31
|
+
return await this.api.fetch(url, {
|
|
32
|
+
method: 'GET'
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
package/lib/api.ts
CHANGED
|
@@ -8,6 +8,8 @@ import MissionLayer from './api/mission-layer.js';
|
|
|
8
8
|
import Credentials from './api/credentials.js';
|
|
9
9
|
import Contacts from './api/contacts.js';
|
|
10
10
|
import Files from './api/files.js';
|
|
11
|
+
import Injectors from './api/injectors.js';
|
|
12
|
+
import Repeater from './api/repeater.js';
|
|
11
13
|
import Group from './api/groups.js';
|
|
12
14
|
import Subscription from './api/subscriptions.js';
|
|
13
15
|
import Video from './api/video.js';
|
|
@@ -30,6 +32,8 @@ export default class TAKAPI {
|
|
|
30
32
|
Credentials: Credentials;
|
|
31
33
|
Contacts: Contacts;
|
|
32
34
|
Subscription: Subscription;
|
|
35
|
+
Injectors: Injectors;
|
|
36
|
+
Repeater: Repeater;
|
|
33
37
|
Group: Group;
|
|
34
38
|
Video: Video;
|
|
35
39
|
Export: Export;
|
|
@@ -52,6 +56,8 @@ export default class TAKAPI {
|
|
|
52
56
|
this.Subscription = new Subscription(this);
|
|
53
57
|
this.Group = new Group(this);
|
|
54
58
|
this.Video = new Video(this);
|
|
59
|
+
this.Injectors = new Injectors(this);
|
|
60
|
+
this.Repeater = new Repeater(this);
|
|
55
61
|
this.Files = new Files(this);
|
|
56
62
|
}
|
|
57
63
|
|
package/package.json
CHANGED