@tak-ps/node-tak 11.20.2 → 11.22.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/dist/lib/api/mission-invite.d.ts +94 -3
- package/dist/lib/api/mission-invite.js +181 -6
- package/dist/lib/api/mission-invite.js.map +1 -1
- package/dist/lib/api.d.ts +2 -2
- package/dist/lib/api.js +2 -2
- package/dist/lib/api.js.map +1 -1
- package/lib/api/mission-invite.ts +211 -6
- package/lib/api.ts +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
## Version History
|
|
12
12
|
|
|
13
|
+
### v11.22.0 - 2025-01-05
|
|
14
|
+
|
|
15
|
+
- :rocket: Add Mission Invite Get and improve List Support
|
|
16
|
+
|
|
17
|
+
### v11.21.0 - 2025-01-05
|
|
18
|
+
|
|
19
|
+
- :tada: Add Mission Invite & Uninvite Support
|
|
20
|
+
|
|
13
21
|
### v11.20.2 - 2025-12-24
|
|
14
22
|
|
|
15
23
|
- :bug: Update Github Actions Workflow
|
|
@@ -1,16 +1,50 @@
|
|
|
1
1
|
import type { ParsedArgs } from 'minimist';
|
|
2
2
|
import { Static } from '@sinclair/typebox';
|
|
3
|
+
import { MissionOptions } from './mission.js';
|
|
3
4
|
import Commands, { CommandOutputFormat } from '../commands.js';
|
|
4
5
|
export declare enum MissionSubscriberRole {
|
|
5
6
|
MISSION_OWNER = "MISSION_OWNER",
|
|
6
7
|
MISSION_SUBSCRIBER = "MISSION_SUBSCRIBER",
|
|
7
8
|
MISSION_READONLY_SUBSCRIBER = "MISSION_READONLY_SUBSCRIBER"
|
|
8
9
|
}
|
|
9
|
-
export declare
|
|
10
|
+
export declare enum MissionInviteType {
|
|
11
|
+
CLIENT_UID = "clientUid",
|
|
12
|
+
CALLSIGN = "callsign",
|
|
13
|
+
USERNAME = "userName",
|
|
14
|
+
GROUP = "group",
|
|
15
|
+
TEAM = "team"
|
|
16
|
+
}
|
|
17
|
+
export declare const MissionInvite: import("@sinclair/typebox").TAny;
|
|
18
|
+
export declare const MissionInviteList: import("@sinclair/typebox").TObject<{
|
|
19
|
+
version: import("@sinclair/typebox").TString;
|
|
20
|
+
type: import("@sinclair/typebox").TString;
|
|
21
|
+
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
|
|
22
|
+
messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
23
|
+
nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
24
|
+
}>;
|
|
25
|
+
export declare const MissionInviteWrapper: import("@sinclair/typebox").TObject<{
|
|
26
|
+
name: import("@sinclair/typebox").TString;
|
|
27
|
+
invites: import("@sinclair/typebox").TObject<{
|
|
28
|
+
version: import("@sinclair/typebox").TString;
|
|
29
|
+
type: import("@sinclair/typebox").TString;
|
|
30
|
+
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
|
|
31
|
+
messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
32
|
+
nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
33
|
+
}>;
|
|
34
|
+
}>;
|
|
10
35
|
export declare const TAKList_MissionInvites: import("@sinclair/typebox").TObject<{
|
|
11
36
|
version: import("@sinclair/typebox").TString;
|
|
12
37
|
type: import("@sinclair/typebox").TString;
|
|
13
|
-
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").
|
|
38
|
+
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
39
|
+
name: import("@sinclair/typebox").TString;
|
|
40
|
+
invites: import("@sinclair/typebox").TObject<{
|
|
41
|
+
version: import("@sinclair/typebox").TString;
|
|
42
|
+
type: import("@sinclair/typebox").TString;
|
|
43
|
+
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
|
|
44
|
+
messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
45
|
+
nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
46
|
+
}>;
|
|
47
|
+
}>>;
|
|
14
48
|
messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
15
49
|
nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
16
50
|
}>;
|
|
@@ -18,6 +52,7 @@ export declare const TAKList_MissionInvites: import("@sinclair/typebox").TObject
|
|
|
18
52
|
* @class
|
|
19
53
|
*/
|
|
20
54
|
export default class MissionInviteCommands extends Commands {
|
|
55
|
+
#private;
|
|
21
56
|
schema: {
|
|
22
57
|
list: {
|
|
23
58
|
description: string;
|
|
@@ -25,6 +60,39 @@ export default class MissionInviteCommands extends Commands {
|
|
|
25
60
|
query: import("@sinclair/typebox").TObject<{}>;
|
|
26
61
|
formats: CommandOutputFormat[];
|
|
27
62
|
};
|
|
63
|
+
get: {
|
|
64
|
+
description: string;
|
|
65
|
+
params: import("@sinclair/typebox").TObject<{
|
|
66
|
+
name: import("@sinclair/typebox").TString;
|
|
67
|
+
}>;
|
|
68
|
+
query: import("@sinclair/typebox").TObject<{}>;
|
|
69
|
+
formats: CommandOutputFormat[];
|
|
70
|
+
};
|
|
71
|
+
invite: {
|
|
72
|
+
description: string;
|
|
73
|
+
params: import("@sinclair/typebox").TObject<{
|
|
74
|
+
name: import("@sinclair/typebox").TString;
|
|
75
|
+
type: import("@sinclair/typebox").TEnum<typeof MissionInviteType>;
|
|
76
|
+
invitee: import("@sinclair/typebox").TString;
|
|
77
|
+
}>;
|
|
78
|
+
query: import("@sinclair/typebox").TObject<{
|
|
79
|
+
creatorUid: import("@sinclair/typebox").TString;
|
|
80
|
+
role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TEnum<typeof MissionSubscriberRole>>;
|
|
81
|
+
}>;
|
|
82
|
+
formats: CommandOutputFormat[];
|
|
83
|
+
};
|
|
84
|
+
uninvite: {
|
|
85
|
+
description: string;
|
|
86
|
+
params: import("@sinclair/typebox").TObject<{
|
|
87
|
+
name: import("@sinclair/typebox").TString;
|
|
88
|
+
type: import("@sinclair/typebox").TEnum<typeof MissionInviteType>;
|
|
89
|
+
invitee: import("@sinclair/typebox").TString;
|
|
90
|
+
}>;
|
|
91
|
+
query: import("@sinclair/typebox").TObject<{
|
|
92
|
+
creatorUid: import("@sinclair/typebox").TString;
|
|
93
|
+
}>;
|
|
94
|
+
formats: CommandOutputFormat[];
|
|
95
|
+
};
|
|
28
96
|
};
|
|
29
97
|
cli(args: ParsedArgs): Promise<object | string>;
|
|
30
98
|
/**
|
|
@@ -32,5 +100,28 @@ export default class MissionInviteCommands extends Commands {
|
|
|
32
100
|
*
|
|
33
101
|
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
|
|
34
102
|
*/
|
|
35
|
-
list(clientUid?: string): Promise<Static<typeof TAKList_MissionInvites>>;
|
|
103
|
+
list(clientUid?: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKList_MissionInvites>>;
|
|
104
|
+
/**
|
|
105
|
+
* Get Mission Invitations
|
|
106
|
+
*
|
|
107
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
108
|
+
*/
|
|
109
|
+
get(missionName: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof MissionInviteList>>;
|
|
110
|
+
/**
|
|
111
|
+
* Invite a user/group to a mission
|
|
112
|
+
*
|
|
113
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/inviteToMission TAK Server Docs}.
|
|
114
|
+
*/
|
|
115
|
+
invite(missionName: string, type: MissionInviteType, invitee: string, query: {
|
|
116
|
+
creatorUid: string;
|
|
117
|
+
role?: MissionSubscriberRole;
|
|
118
|
+
}, opts?: Static<typeof MissionOptions>): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Uninvite a user/group from a mission
|
|
121
|
+
*
|
|
122
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/uninviteFromMission TAK Server Docs}.
|
|
123
|
+
*/
|
|
124
|
+
uninvite(missionName: string, type: MissionInviteType, invitee: string, query: {
|
|
125
|
+
creatorUid: string;
|
|
126
|
+
}, opts?: Static<typeof MissionOptions>): Promise<void>;
|
|
36
127
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Type } from '@sinclair/typebox';
|
|
2
2
|
import { TAKList } from './types.js';
|
|
3
|
+
import { GUIDMatch } from './mission.js';
|
|
3
4
|
import Commands, { CommandOutputFormat } from '../commands.js';
|
|
4
5
|
export var MissionSubscriberRole;
|
|
5
6
|
(function (MissionSubscriberRole) {
|
|
@@ -7,8 +8,21 @@ export var MissionSubscriberRole;
|
|
|
7
8
|
MissionSubscriberRole["MISSION_SUBSCRIBER"] = "MISSION_SUBSCRIBER";
|
|
8
9
|
MissionSubscriberRole["MISSION_READONLY_SUBSCRIBER"] = "MISSION_READONLY_SUBSCRIBER";
|
|
9
10
|
})(MissionSubscriberRole || (MissionSubscriberRole = {}));
|
|
10
|
-
export
|
|
11
|
-
|
|
11
|
+
export var MissionInviteType;
|
|
12
|
+
(function (MissionInviteType) {
|
|
13
|
+
MissionInviteType["CLIENT_UID"] = "clientUid";
|
|
14
|
+
MissionInviteType["CALLSIGN"] = "callsign";
|
|
15
|
+
MissionInviteType["USERNAME"] = "userName";
|
|
16
|
+
MissionInviteType["GROUP"] = "group";
|
|
17
|
+
MissionInviteType["TEAM"] = "team";
|
|
18
|
+
})(MissionInviteType || (MissionInviteType = {}));
|
|
19
|
+
export const MissionInvite = Type.Any();
|
|
20
|
+
export const MissionInviteList = TAKList(MissionInvite);
|
|
21
|
+
export const MissionInviteWrapper = Type.Object({
|
|
22
|
+
name: Type.String(),
|
|
23
|
+
invites: MissionInviteList
|
|
24
|
+
});
|
|
25
|
+
export const TAKList_MissionInvites = TAKList(MissionInviteWrapper);
|
|
12
26
|
/**
|
|
13
27
|
* @class
|
|
14
28
|
*/
|
|
@@ -19,36 +33,197 @@ export default class MissionInviteCommands extends Commands {
|
|
|
19
33
|
params: Type.Object({}),
|
|
20
34
|
query: Type.Object({}),
|
|
21
35
|
formats: [CommandOutputFormat.JSON]
|
|
36
|
+
},
|
|
37
|
+
get: {
|
|
38
|
+
description: 'Get Mission Invites for a Mission',
|
|
39
|
+
params: Type.Object({
|
|
40
|
+
name: Type.String()
|
|
41
|
+
}),
|
|
42
|
+
query: Type.Object({}),
|
|
43
|
+
formats: [CommandOutputFormat.JSON]
|
|
44
|
+
},
|
|
45
|
+
invite: {
|
|
46
|
+
description: 'Invite a user/group to a mission',
|
|
47
|
+
params: Type.Object({
|
|
48
|
+
name: Type.String(),
|
|
49
|
+
type: Type.Enum(MissionInviteType),
|
|
50
|
+
invitee: Type.String()
|
|
51
|
+
}),
|
|
52
|
+
query: Type.Object({
|
|
53
|
+
creatorUid: Type.String(),
|
|
54
|
+
role: Type.Optional(Type.Enum(MissionSubscriberRole))
|
|
55
|
+
}),
|
|
56
|
+
formats: [CommandOutputFormat.JSON]
|
|
57
|
+
},
|
|
58
|
+
uninvite: {
|
|
59
|
+
description: 'Uninvite a user/group from a mission',
|
|
60
|
+
params: Type.Object({
|
|
61
|
+
name: Type.String(),
|
|
62
|
+
type: Type.Enum(MissionInviteType),
|
|
63
|
+
invitee: Type.String()
|
|
64
|
+
}),
|
|
65
|
+
query: Type.Object({
|
|
66
|
+
creatorUid: Type.String()
|
|
67
|
+
}),
|
|
68
|
+
formats: [CommandOutputFormat.JSON]
|
|
22
69
|
}
|
|
23
70
|
};
|
|
24
71
|
async cli(args) {
|
|
25
72
|
if (args._[3] === 'list') {
|
|
26
|
-
const list = await this.list(
|
|
73
|
+
const list = await this.list(args.clientUid, {
|
|
74
|
+
token: args.token
|
|
75
|
+
});
|
|
76
|
+
if (args.format === 'json') {
|
|
77
|
+
return list;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return list.data.map((invite) => {
|
|
81
|
+
return `${invite.name}: ${invite.invites.data.length} Invites`;
|
|
82
|
+
}).join('\n');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (args._[3] === 'get') {
|
|
86
|
+
const name = args._[4];
|
|
87
|
+
if (!name)
|
|
88
|
+
throw new Error('Usage: get <name>');
|
|
89
|
+
const list = await this.get(name, {
|
|
90
|
+
token: args.token
|
|
91
|
+
});
|
|
27
92
|
if (args.format === 'json') {
|
|
28
93
|
return list;
|
|
29
94
|
}
|
|
30
95
|
else {
|
|
31
96
|
return list.data.map((invite) => {
|
|
32
|
-
return
|
|
97
|
+
return JSON.stringify(invite);
|
|
33
98
|
}).join('\n');
|
|
34
99
|
}
|
|
35
100
|
}
|
|
101
|
+
else if (args._[3] === 'invite') {
|
|
102
|
+
const name = args._[4];
|
|
103
|
+
const type = args._[5];
|
|
104
|
+
const invitee = args._[6];
|
|
105
|
+
if (!name || !type || !invitee)
|
|
106
|
+
throw new Error('Usage: invite <name> <type> <invitee>');
|
|
107
|
+
await this.invite(name, type, invitee, {
|
|
108
|
+
creatorUid: args.creatorUid,
|
|
109
|
+
role: args.role
|
|
110
|
+
}, {
|
|
111
|
+
token: args.token
|
|
112
|
+
});
|
|
113
|
+
return { message: 'OK' };
|
|
114
|
+
}
|
|
115
|
+
else if (args._[3] === 'uninvite') {
|
|
116
|
+
const name = args._[4];
|
|
117
|
+
const type = args._[5];
|
|
118
|
+
const invitee = args._[6];
|
|
119
|
+
if (!name || !type || !invitee)
|
|
120
|
+
throw new Error('Usage: uninvite <name> <type> <invitee>');
|
|
121
|
+
await this.uninvite(name, type, invitee, {
|
|
122
|
+
creatorUid: args.creatorUid
|
|
123
|
+
}, {
|
|
124
|
+
token: args.token
|
|
125
|
+
});
|
|
126
|
+
return { message: 'OK' };
|
|
127
|
+
}
|
|
36
128
|
else {
|
|
37
129
|
throw new Error('Unsupported Subcommand');
|
|
38
130
|
}
|
|
39
131
|
}
|
|
132
|
+
#headers(opts) {
|
|
133
|
+
if (opts && opts.token) {
|
|
134
|
+
return {
|
|
135
|
+
MissionAuthorization: `Bearer ${opts.token}`
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
40
142
|
/**
|
|
41
143
|
* List all Invitations for missions
|
|
42
144
|
*
|
|
43
145
|
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
|
|
44
146
|
*/
|
|
45
|
-
async list(clientUid) {
|
|
147
|
+
async list(clientUid, opts) {
|
|
46
148
|
const url = new URL('/Marti/api/missions/all/invitations', this.api.url);
|
|
47
149
|
if (clientUid) {
|
|
48
150
|
url.searchParams.append('clientUid', clientUid);
|
|
49
151
|
}
|
|
152
|
+
const missionNames = await this.api.fetch(url, {
|
|
153
|
+
method: 'GET',
|
|
154
|
+
headers: this.#headers(opts)
|
|
155
|
+
});
|
|
156
|
+
const promises = missionNames.data.map(async (name) => {
|
|
157
|
+
const invites = await this.get(name, opts);
|
|
158
|
+
return {
|
|
159
|
+
name,
|
|
160
|
+
invites
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
const results = await Promise.all(promises);
|
|
164
|
+
return {
|
|
165
|
+
version: missionNames.version,
|
|
166
|
+
type: missionNames.type,
|
|
167
|
+
data: results,
|
|
168
|
+
nodeId: missionNames.nodeId
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get Mission Invitations
|
|
173
|
+
*
|
|
174
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
175
|
+
*/
|
|
176
|
+
async get(missionName, opts) {
|
|
177
|
+
let url;
|
|
178
|
+
if (GUIDMatch.test(missionName)) {
|
|
179
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
183
|
+
}
|
|
50
184
|
return await this.api.fetch(url, {
|
|
51
|
-
method: 'GET'
|
|
185
|
+
method: 'GET',
|
|
186
|
+
headers: this.#headers(opts)
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Invite a user/group to a mission
|
|
191
|
+
*
|
|
192
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/inviteToMission TAK Server Docs}.
|
|
193
|
+
*/
|
|
194
|
+
async invite(missionName, type, invitee, query, opts) {
|
|
195
|
+
let url;
|
|
196
|
+
if (GUIDMatch.test(missionName)) {
|
|
197
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
201
|
+
}
|
|
202
|
+
for (const q in query)
|
|
203
|
+
url.searchParams.append(q, String(query[q]));
|
|
204
|
+
await this.api.fetch(url, {
|
|
205
|
+
method: 'PUT',
|
|
206
|
+
headers: this.#headers(opts)
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Uninvite a user/group from a mission
|
|
211
|
+
*
|
|
212
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/uninviteFromMission TAK Server Docs}.
|
|
213
|
+
*/
|
|
214
|
+
async uninvite(missionName, type, invitee, query, opts) {
|
|
215
|
+
let url;
|
|
216
|
+
if (GUIDMatch.test(missionName)) {
|
|
217
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
221
|
+
}
|
|
222
|
+
for (const q in query)
|
|
223
|
+
url.searchParams.append(q, String(query[q]));
|
|
224
|
+
await this.api.fetch(url, {
|
|
225
|
+
method: 'DELETE',
|
|
226
|
+
headers: this.#headers(opts)
|
|
52
227
|
});
|
|
53
228
|
}
|
|
54
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mission-invite.js","sourceRoot":"","sources":["../../../lib/api/mission-invite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAU,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,QAAQ,EAAE,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,wDAA+B,CAAA;IAC/B,kEAAyC,CAAA;IACzC,oFAA2D,CAAA;AAC/D,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mission-invite.js","sourceRoot":"","sources":["../../../lib/api/mission-invite.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import Certificate from './api/certificate.js';
|
|
|
4
4
|
import Query from './api/query.js';
|
|
5
5
|
import Locate from './api/locate.js';
|
|
6
6
|
import Mission, { MissionSubscriberRole } from './api/mission.js';
|
|
7
|
-
import MissionInvite from './api/mission-invite.js';
|
|
7
|
+
import MissionInvite, { MissionInviteType } from './api/mission-invite.js';
|
|
8
8
|
import MissionLog from './api/mission-log.js';
|
|
9
9
|
import MissionLayer, { MissionLayerType } from './api/mission-layer.js';
|
|
10
10
|
import Credentials from './api/credentials.js';
|
|
@@ -60,4 +60,4 @@ export default class TAKAPI {
|
|
|
60
60
|
*/
|
|
61
61
|
fetch(url: URL, opts?: any, raw?: boolean): Promise<any>;
|
|
62
62
|
}
|
|
63
|
-
export { OAuth, Package, Certificate, Query, Locate, Mission, MissionInvite, MissionLog, MissionLayer, Credentials, Security, Contacts, Profile, Files, Iconsets, Injectors, Repeater, Group, Subscription, Video, Export, MissionSubscriberRole, MissionLayerType };
|
|
63
|
+
export { OAuth, Package, Certificate, Query, Locate, Mission, MissionInvite, MissionLog, MissionLayer, Credentials, Security, Contacts, Profile, Files, Iconsets, Injectors, Repeater, Group, Subscription, Video, Export, MissionSubscriberRole, MissionLayerType, MissionInviteType };
|
package/dist/lib/api.js
CHANGED
|
@@ -5,7 +5,7 @@ import Certificate from './api/certificate.js';
|
|
|
5
5
|
import Query from './api/query.js';
|
|
6
6
|
import Locate from './api/locate.js';
|
|
7
7
|
import Mission, { MissionSubscriberRole } from './api/mission.js';
|
|
8
|
-
import MissionInvite from './api/mission-invite.js';
|
|
8
|
+
import MissionInvite, { MissionInviteType } from './api/mission-invite.js';
|
|
9
9
|
import MissionLog from './api/mission-log.js';
|
|
10
10
|
import MissionLayer, { MissionLayerType } from './api/mission-layer.js';
|
|
11
11
|
import Credentials from './api/credentials.js';
|
|
@@ -167,5 +167,5 @@ export default class TAKAPI {
|
|
|
167
167
|
function isPlainObject(value) {
|
|
168
168
|
return value?.constructor === Object;
|
|
169
169
|
}
|
|
170
|
-
export { OAuth, Package, Certificate, Query, Locate, Mission, MissionInvite, MissionLog, MissionLayer, Credentials, Security, Contacts, Profile, Files, Iconsets, Injectors, Repeater, Group, Subscription, Video, Export, MissionSubscriberRole, MissionLayerType };
|
|
170
|
+
export { OAuth, Package, Certificate, Query, Locate, Mission, MissionInvite, MissionLog, MissionLayer, Credentials, Security, Contacts, Profile, Files, Iconsets, Injectors, Repeater, Group, Subscription, Video, Export, MissionSubscriberRole, MissionLayerType, MissionInviteType };
|
|
171
171
|
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,aAAa,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ParsedArgs } from 'minimist'
|
|
2
2
|
import { Type, Static } from '@sinclair/typebox';
|
|
3
3
|
import { TAKList } from './types.js';
|
|
4
|
+
import { GUIDMatch, MissionOptions } from './mission.js';
|
|
4
5
|
import Commands, { CommandOutputFormat } from '../commands.js';
|
|
5
6
|
|
|
6
7
|
export enum MissionSubscriberRole {
|
|
@@ -9,9 +10,23 @@ export enum MissionSubscriberRole {
|
|
|
9
10
|
MISSION_READONLY_SUBSCRIBER = 'MISSION_READONLY_SUBSCRIBER'
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
export
|
|
13
|
+
export enum MissionInviteType {
|
|
14
|
+
CLIENT_UID = 'clientUid',
|
|
15
|
+
CALLSIGN = 'callsign',
|
|
16
|
+
USERNAME = 'userName',
|
|
17
|
+
GROUP = 'group',
|
|
18
|
+
TEAM = 'team'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const MissionInvite = Type.Any();
|
|
22
|
+
export const MissionInviteList = TAKList(MissionInvite);
|
|
13
23
|
|
|
14
|
-
export const
|
|
24
|
+
export const MissionInviteWrapper = Type.Object({
|
|
25
|
+
name: Type.String(),
|
|
26
|
+
invites: MissionInviteList
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const TAKList_MissionInvites = TAKList(MissionInviteWrapper);
|
|
15
30
|
|
|
16
31
|
/**
|
|
17
32
|
* @class
|
|
@@ -23,39 +38,229 @@ export default class MissionInviteCommands extends Commands {
|
|
|
23
38
|
params: Type.Object({}),
|
|
24
39
|
query: Type.Object({}),
|
|
25
40
|
formats: [ CommandOutputFormat.JSON ]
|
|
41
|
+
},
|
|
42
|
+
get: {
|
|
43
|
+
description: 'Get Mission Invites for a Mission',
|
|
44
|
+
params: Type.Object({
|
|
45
|
+
name: Type.String()
|
|
46
|
+
}),
|
|
47
|
+
query: Type.Object({}),
|
|
48
|
+
formats: [ CommandOutputFormat.JSON ]
|
|
49
|
+
},
|
|
50
|
+
invite: {
|
|
51
|
+
description: 'Invite a user/group to a mission',
|
|
52
|
+
params: Type.Object({
|
|
53
|
+
name: Type.String(),
|
|
54
|
+
type: Type.Enum(MissionInviteType),
|
|
55
|
+
invitee: Type.String()
|
|
56
|
+
}),
|
|
57
|
+
query: Type.Object({
|
|
58
|
+
creatorUid: Type.String(),
|
|
59
|
+
role: Type.Optional(Type.Enum(MissionSubscriberRole))
|
|
60
|
+
}),
|
|
61
|
+
formats: [ CommandOutputFormat.JSON ]
|
|
62
|
+
},
|
|
63
|
+
uninvite: {
|
|
64
|
+
description: 'Uninvite a user/group from a mission',
|
|
65
|
+
params: Type.Object({
|
|
66
|
+
name: Type.String(),
|
|
67
|
+
type: Type.Enum(MissionInviteType),
|
|
68
|
+
invitee: Type.String()
|
|
69
|
+
}),
|
|
70
|
+
query: Type.Object({
|
|
71
|
+
creatorUid: Type.String()
|
|
72
|
+
}),
|
|
73
|
+
formats: [ CommandOutputFormat.JSON ]
|
|
26
74
|
}
|
|
27
75
|
}
|
|
28
76
|
|
|
29
77
|
async cli(args: ParsedArgs): Promise<object | string> {
|
|
30
78
|
if (args._[3] === 'list') {
|
|
31
|
-
const list = await this.list(
|
|
79
|
+
const list = await this.list(args.clientUid, {
|
|
80
|
+
token: args.token
|
|
81
|
+
});
|
|
32
82
|
|
|
33
83
|
if (args.format === 'json') {
|
|
34
84
|
return list;
|
|
35
85
|
} else {
|
|
36
86
|
return list.data.map((invite) => {
|
|
37
|
-
return `${invite}`;
|
|
87
|
+
return `${invite.name}: ${invite.invites.data.length} Invites`;
|
|
38
88
|
}).join('\n');
|
|
39
89
|
}
|
|
90
|
+
} else if (args._[3] === 'get') {
|
|
91
|
+
const name = args._[4];
|
|
92
|
+
|
|
93
|
+
if (!name) throw new Error('Usage: get <name>');
|
|
94
|
+
|
|
95
|
+
const list = await this.get(name, {
|
|
96
|
+
token: args.token
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
if (args.format === 'json') {
|
|
100
|
+
return list;
|
|
101
|
+
} else {
|
|
102
|
+
return list.data.map((invite) => {
|
|
103
|
+
return JSON.stringify(invite);
|
|
104
|
+
}).join('\n');
|
|
105
|
+
}
|
|
106
|
+
} else if (args._[3] === 'invite') {
|
|
107
|
+
const name = args._[4];
|
|
108
|
+
const type = args._[5] as MissionInviteType;
|
|
109
|
+
const invitee = args._[6];
|
|
110
|
+
|
|
111
|
+
if (!name || !type || !invitee) throw new Error('Usage: invite <name> <type> <invitee>');
|
|
112
|
+
|
|
113
|
+
await this.invite(name, type, invitee, {
|
|
114
|
+
creatorUid: args.creatorUid,
|
|
115
|
+
role: args.role
|
|
116
|
+
}, {
|
|
117
|
+
token: args.token
|
|
118
|
+
});
|
|
119
|
+
return { message: 'OK' };
|
|
120
|
+
} else if (args._[3] === 'uninvite') {
|
|
121
|
+
const name = args._[4];
|
|
122
|
+
const type = args._[5] as MissionInviteType;
|
|
123
|
+
const invitee = args._[6];
|
|
124
|
+
|
|
125
|
+
if (!name || !type || !invitee) throw new Error('Usage: uninvite <name> <type> <invitee>');
|
|
126
|
+
|
|
127
|
+
await this.uninvite(name, type, invitee, {
|
|
128
|
+
creatorUid: args.creatorUid
|
|
129
|
+
}, {
|
|
130
|
+
token: args.token
|
|
131
|
+
});
|
|
132
|
+
return { message: 'OK' };
|
|
40
133
|
} else {
|
|
41
134
|
throw new Error('Unsupported Subcommand');
|
|
42
135
|
}
|
|
43
136
|
}
|
|
44
137
|
|
|
138
|
+
#headers(opts?: Static<typeof MissionOptions>): object {
|
|
139
|
+
if (opts && opts.token) {
|
|
140
|
+
return {
|
|
141
|
+
MissionAuthorization: `Bearer ${opts.token}`
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
45
148
|
/**
|
|
46
149
|
* List all Invitations for missions
|
|
47
150
|
*
|
|
48
151
|
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
|
|
49
152
|
*/
|
|
50
|
-
async list(
|
|
153
|
+
async list(
|
|
154
|
+
clientUid?: string,
|
|
155
|
+
opts?: Static<typeof MissionOptions>
|
|
156
|
+
): Promise<Static<typeof TAKList_MissionInvites>> {
|
|
51
157
|
const url = new URL('/Marti/api/missions/all/invitations', this.api.url);
|
|
52
158
|
|
|
53
159
|
if (clientUid) {
|
|
54
160
|
url.searchParams.append('clientUid', clientUid);
|
|
55
161
|
}
|
|
56
162
|
|
|
163
|
+
const missionNames = await this.api.fetch(url, {
|
|
164
|
+
method: 'GET',
|
|
165
|
+
headers: this.#headers(opts)
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
const promises = missionNames.data.map(async (name: string) => {
|
|
169
|
+
const invites = await this.get(name, opts);
|
|
170
|
+
return {
|
|
171
|
+
name,
|
|
172
|
+
invites
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
const results = await Promise.all(promises);
|
|
177
|
+
|
|
178
|
+
return {
|
|
179
|
+
version: missionNames.version,
|
|
180
|
+
type: missionNames.type,
|
|
181
|
+
data: results,
|
|
182
|
+
nodeId: missionNames.nodeId
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Get Mission Invitations
|
|
188
|
+
*
|
|
189
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
190
|
+
*/
|
|
191
|
+
async get(
|
|
192
|
+
missionName: string,
|
|
193
|
+
opts?: Static<typeof MissionOptions>
|
|
194
|
+
): Promise<Static<typeof MissionInviteList>> {
|
|
195
|
+
let url;
|
|
196
|
+
if (GUIDMatch.test(missionName)) {
|
|
197
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
198
|
+
} else {
|
|
199
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
200
|
+
}
|
|
201
|
+
|
|
57
202
|
return await this.api.fetch(url, {
|
|
58
|
-
method: 'GET'
|
|
203
|
+
method: 'GET',
|
|
204
|
+
headers: this.#headers(opts)
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Invite a user/group to a mission
|
|
210
|
+
*
|
|
211
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/inviteToMission TAK Server Docs}.
|
|
212
|
+
*/
|
|
213
|
+
async invite(
|
|
214
|
+
missionName: string,
|
|
215
|
+
type: MissionInviteType,
|
|
216
|
+
invitee: string,
|
|
217
|
+
query: {
|
|
218
|
+
creatorUid: string;
|
|
219
|
+
role?: MissionSubscriberRole;
|
|
220
|
+
},
|
|
221
|
+
opts?: Static<typeof MissionOptions>
|
|
222
|
+
): Promise<void> {
|
|
223
|
+
let url;
|
|
224
|
+
if (GUIDMatch.test(missionName)) {
|
|
225
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
226
|
+
} else {
|
|
227
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
for (const q in query) url.searchParams.append(q, String(query[q as keyof typeof query]));
|
|
231
|
+
|
|
232
|
+
await this.api.fetch(url, {
|
|
233
|
+
method: 'PUT',
|
|
234
|
+
headers: this.#headers(opts)
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Uninvite a user/group from a mission
|
|
240
|
+
*
|
|
241
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/uninviteFromMission TAK Server Docs}.
|
|
242
|
+
*/
|
|
243
|
+
async uninvite(
|
|
244
|
+
missionName: string,
|
|
245
|
+
type: MissionInviteType,
|
|
246
|
+
invitee: string,
|
|
247
|
+
query: {
|
|
248
|
+
creatorUid: string;
|
|
249
|
+
},
|
|
250
|
+
opts?: Static<typeof MissionOptions>
|
|
251
|
+
): Promise<void> {
|
|
252
|
+
let url;
|
|
253
|
+
if (GUIDMatch.test(missionName)) {
|
|
254
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
255
|
+
} else {
|
|
256
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invite/${encodeURIComponent(type)}/${encodeURIComponent(invitee)}`, this.api.url);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
for (const q in query) url.searchParams.append(q, String(query[q as keyof typeof query]));
|
|
260
|
+
|
|
261
|
+
await this.api.fetch(url, {
|
|
262
|
+
method: 'DELETE',
|
|
263
|
+
headers: this.#headers(opts)
|
|
59
264
|
});
|
|
60
265
|
}
|
|
61
266
|
}
|
package/lib/api.ts
CHANGED
|
@@ -5,7 +5,7 @@ import Certificate from './api/certificate.js';
|
|
|
5
5
|
import Query from './api/query.js';
|
|
6
6
|
import Locate from './api/locate.js';
|
|
7
7
|
import Mission, { MissionSubscriberRole } from './api/mission.js';
|
|
8
|
-
import MissionInvite from './api/mission-invite.js';
|
|
8
|
+
import MissionInvite, { MissionInviteType } from './api/mission-invite.js';
|
|
9
9
|
import MissionLog from './api/mission-log.js';
|
|
10
10
|
import MissionLayer, { MissionLayerType } from './api/mission-layer.js';
|
|
11
11
|
import Credentials from './api/credentials.js';
|
|
@@ -206,5 +206,6 @@ export {
|
|
|
206
206
|
Video,
|
|
207
207
|
Export,
|
|
208
208
|
MissionSubscriberRole,
|
|
209
|
-
MissionLayerType
|
|
209
|
+
MissionLayerType,
|
|
210
|
+
MissionInviteType
|
|
210
211
|
};
|
package/package.json
CHANGED