@tak-ps/node-tak 11.21.0 → 11.23.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
CHANGED
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
## Version History
|
|
12
12
|
|
|
13
|
+
### v11.23.0 - 2025-01-05
|
|
14
|
+
|
|
15
|
+
- :rocket: Updated Mission Invite after talking to TPC Developers
|
|
16
|
+
|
|
17
|
+
### v11.22.0 - 2025-01-05
|
|
18
|
+
|
|
19
|
+
- :rocket: Add Mission Invite Get and improve List Support
|
|
20
|
+
|
|
13
21
|
### v11.21.0 - 2025-01-05
|
|
14
22
|
|
|
15
23
|
- :tada: Add Mission Invite & Uninvite Support
|
|
@@ -14,11 +14,42 @@ export declare enum MissionInviteType {
|
|
|
14
14
|
GROUP = "group",
|
|
15
15
|
TEAM = "team"
|
|
16
16
|
}
|
|
17
|
-
export declare const
|
|
18
|
-
|
|
17
|
+
export declare const MissionRole: import("@sinclair/typebox").TObject<{
|
|
18
|
+
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
19
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
20
|
+
permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const MissionInvite: import("@sinclair/typebox").TObject<{
|
|
23
|
+
missionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
24
|
+
invitee: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
25
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
|
+
creatorUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
|
+
createTime: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
28
|
+
token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
29
|
+
role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
30
|
+
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
31
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
32
|
+
permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
33
|
+
}>>;
|
|
34
|
+
missionGuid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
35
|
+
}>;
|
|
36
|
+
export declare const MissionInviteList: import("@sinclair/typebox").TObject<{
|
|
19
37
|
version: import("@sinclair/typebox").TString;
|
|
20
38
|
type: import("@sinclair/typebox").TString;
|
|
21
|
-
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").
|
|
39
|
+
data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
40
|
+
missionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
41
|
+
invitee: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
42
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
43
|
+
creatorUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
44
|
+
createTime: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
45
|
+
token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
46
|
+
role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
47
|
+
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
48
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
49
|
+
permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
50
|
+
}>>;
|
|
51
|
+
missionGuid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
52
|
+
}>>;
|
|
22
53
|
messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
23
54
|
nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
24
55
|
}>;
|
|
@@ -34,6 +65,14 @@ export default class MissionInviteCommands extends Commands {
|
|
|
34
65
|
query: import("@sinclair/typebox").TObject<{}>;
|
|
35
66
|
formats: CommandOutputFormat[];
|
|
36
67
|
};
|
|
68
|
+
get: {
|
|
69
|
+
description: string;
|
|
70
|
+
params: import("@sinclair/typebox").TObject<{
|
|
71
|
+
name: import("@sinclair/typebox").TString;
|
|
72
|
+
}>;
|
|
73
|
+
query: import("@sinclair/typebox").TObject<{}>;
|
|
74
|
+
formats: CommandOutputFormat[];
|
|
75
|
+
};
|
|
37
76
|
invite: {
|
|
38
77
|
description: string;
|
|
39
78
|
params: import("@sinclair/typebox").TObject<{
|
|
@@ -66,7 +105,13 @@ export default class MissionInviteCommands extends Commands {
|
|
|
66
105
|
*
|
|
67
106
|
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
|
|
68
107
|
*/
|
|
69
|
-
list(clientUid?: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof
|
|
108
|
+
list(clientUid?: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof MissionInviteList>>;
|
|
109
|
+
/**
|
|
110
|
+
* Get Mission Invitations
|
|
111
|
+
*
|
|
112
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
113
|
+
*/
|
|
114
|
+
get(missionName: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof MissionInviteList>>;
|
|
70
115
|
/**
|
|
71
116
|
* Invite a user/group to a mission
|
|
72
117
|
*
|
|
@@ -16,8 +16,22 @@ export var MissionInviteType;
|
|
|
16
16
|
MissionInviteType["GROUP"] = "group";
|
|
17
17
|
MissionInviteType["TEAM"] = "team";
|
|
18
18
|
})(MissionInviteType || (MissionInviteType = {}));
|
|
19
|
-
export const
|
|
20
|
-
|
|
19
|
+
export const MissionRole = Type.Object({
|
|
20
|
+
name: Type.Optional(Type.String()),
|
|
21
|
+
description: Type.Optional(Type.String()),
|
|
22
|
+
permissions: Type.Optional(Type.Array(Type.String()))
|
|
23
|
+
});
|
|
24
|
+
export const MissionInvite = Type.Object({
|
|
25
|
+
missionName: Type.Optional(Type.String()),
|
|
26
|
+
invitee: Type.Optional(Type.String()),
|
|
27
|
+
type: Type.Optional(Type.String()),
|
|
28
|
+
creatorUid: Type.Optional(Type.String()),
|
|
29
|
+
createTime: Type.Optional(Type.String()),
|
|
30
|
+
token: Type.Optional(Type.String()),
|
|
31
|
+
role: Type.Optional(MissionRole),
|
|
32
|
+
missionGuid: Type.Optional(Type.String())
|
|
33
|
+
});
|
|
34
|
+
export const MissionInviteList = TAKList(MissionInvite);
|
|
21
35
|
/**
|
|
22
36
|
* @class
|
|
23
37
|
*/
|
|
@@ -29,6 +43,14 @@ export default class MissionInviteCommands extends Commands {
|
|
|
29
43
|
query: Type.Object({}),
|
|
30
44
|
formats: [CommandOutputFormat.JSON]
|
|
31
45
|
},
|
|
46
|
+
get: {
|
|
47
|
+
description: 'Get Mission Invites for a Mission',
|
|
48
|
+
params: Type.Object({
|
|
49
|
+
name: Type.String()
|
|
50
|
+
}),
|
|
51
|
+
query: Type.Object({}),
|
|
52
|
+
formats: [CommandOutputFormat.JSON]
|
|
53
|
+
},
|
|
32
54
|
invite: {
|
|
33
55
|
description: 'Invite a user/group to a mission',
|
|
34
56
|
params: Type.Object({
|
|
@@ -65,7 +87,23 @@ export default class MissionInviteCommands extends Commands {
|
|
|
65
87
|
}
|
|
66
88
|
else {
|
|
67
89
|
return list.data.map((invite) => {
|
|
68
|
-
return `${invite}`;
|
|
90
|
+
return `${invite.missionName}: ${invite.invitee} (${invite.role?.name || 'Unknown Role'})`;
|
|
91
|
+
}).join('\n');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (args._[3] === 'get') {
|
|
95
|
+
const name = args._[4];
|
|
96
|
+
if (!name)
|
|
97
|
+
throw new Error('Usage: get <name>');
|
|
98
|
+
const list = await this.get(name, {
|
|
99
|
+
token: args.token
|
|
100
|
+
});
|
|
101
|
+
if (args.format === 'json') {
|
|
102
|
+
return list;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return list.data.map((invite) => {
|
|
106
|
+
return JSON.stringify(invite);
|
|
69
107
|
}).join('\n');
|
|
70
108
|
}
|
|
71
109
|
}
|
|
@@ -116,7 +154,7 @@ export default class MissionInviteCommands extends Commands {
|
|
|
116
154
|
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
|
|
117
155
|
*/
|
|
118
156
|
async list(clientUid, opts) {
|
|
119
|
-
const url = new URL('/Marti/api/missions/
|
|
157
|
+
const url = new URL('/Marti/api/missions/invitations', this.api.url);
|
|
120
158
|
if (clientUid) {
|
|
121
159
|
url.searchParams.append('clientUid', clientUid);
|
|
122
160
|
}
|
|
@@ -125,6 +163,24 @@ export default class MissionInviteCommands extends Commands {
|
|
|
125
163
|
headers: this.#headers(opts)
|
|
126
164
|
});
|
|
127
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Get Mission Invitations
|
|
168
|
+
*
|
|
169
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
170
|
+
*/
|
|
171
|
+
async get(missionName, opts) {
|
|
172
|
+
let url;
|
|
173
|
+
if (GUIDMatch.test(missionName)) {
|
|
174
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
178
|
+
}
|
|
179
|
+
return await this.api.fetch(url, {
|
|
180
|
+
method: 'GET',
|
|
181
|
+
headers: this.#headers(opts)
|
|
182
|
+
});
|
|
183
|
+
}
|
|
128
184
|
/**
|
|
129
185
|
* Invite a user/group to a mission
|
|
130
186
|
*
|
|
@@ -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,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAC;AACzD,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,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,6CAAwB,CAAA;IACxB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,oCAAe,CAAA;IACf,kCAAa,CAAA;AACjB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;
|
|
1
|
+
{"version":3,"file":"mission-invite.js","sourceRoot":"","sources":["../../../lib/api/mission-invite.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,25 @@ export enum MissionInviteType {
|
|
|
18
18
|
TEAM = 'team'
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export const MissionInvite = Type.String();
|
|
22
21
|
|
|
23
|
-
export const
|
|
22
|
+
export const MissionRole = Type.Object({
|
|
23
|
+
name: Type.Optional(Type.String()),
|
|
24
|
+
description: Type.Optional(Type.String()),
|
|
25
|
+
permissions: Type.Optional(Type.Array(Type.String()))
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export const MissionInvite = Type.Object({
|
|
29
|
+
missionName: Type.Optional(Type.String()),
|
|
30
|
+
invitee: Type.Optional(Type.String()),
|
|
31
|
+
type: Type.Optional(Type.String()),
|
|
32
|
+
creatorUid: Type.Optional(Type.String()),
|
|
33
|
+
createTime: Type.Optional(Type.String()),
|
|
34
|
+
token: Type.Optional(Type.String()),
|
|
35
|
+
role: Type.Optional(MissionRole),
|
|
36
|
+
missionGuid: Type.Optional(Type.String())
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export const MissionInviteList = TAKList(MissionInvite);
|
|
24
40
|
|
|
25
41
|
/**
|
|
26
42
|
* @class
|
|
@@ -33,6 +49,14 @@ export default class MissionInviteCommands extends Commands {
|
|
|
33
49
|
query: Type.Object({}),
|
|
34
50
|
formats: [ CommandOutputFormat.JSON ]
|
|
35
51
|
},
|
|
52
|
+
get: {
|
|
53
|
+
description: 'Get Mission Invites for a Mission',
|
|
54
|
+
params: Type.Object({
|
|
55
|
+
name: Type.String()
|
|
56
|
+
}),
|
|
57
|
+
query: Type.Object({}),
|
|
58
|
+
formats: [ CommandOutputFormat.JSON ]
|
|
59
|
+
},
|
|
36
60
|
invite: {
|
|
37
61
|
description: 'Invite a user/group to a mission',
|
|
38
62
|
params: Type.Object({
|
|
@@ -70,7 +94,23 @@ export default class MissionInviteCommands extends Commands {
|
|
|
70
94
|
return list;
|
|
71
95
|
} else {
|
|
72
96
|
return list.data.map((invite) => {
|
|
73
|
-
return `${invite}`;
|
|
97
|
+
return `${invite.missionName}: ${invite.invitee} (${invite.role?.name || 'Unknown Role'})`;
|
|
98
|
+
}).join('\n');
|
|
99
|
+
}
|
|
100
|
+
} else if (args._[3] === 'get') {
|
|
101
|
+
const name = args._[4];
|
|
102
|
+
|
|
103
|
+
if (!name) throw new Error('Usage: get <name>');
|
|
104
|
+
|
|
105
|
+
const list = await this.get(name, {
|
|
106
|
+
token: args.token
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
if (args.format === 'json') {
|
|
110
|
+
return list;
|
|
111
|
+
} else {
|
|
112
|
+
return list.data.map((invite) => {
|
|
113
|
+
return JSON.stringify(invite);
|
|
74
114
|
}).join('\n');
|
|
75
115
|
}
|
|
76
116
|
} else if (args._[3] === 'invite') {
|
|
@@ -123,8 +163,8 @@ export default class MissionInviteCommands extends Commands {
|
|
|
123
163
|
async list(
|
|
124
164
|
clientUid?: string,
|
|
125
165
|
opts?: Static<typeof MissionOptions>
|
|
126
|
-
): Promise<Static<typeof
|
|
127
|
-
const url = new URL('/Marti/api/missions/
|
|
166
|
+
): Promise<Static<typeof MissionInviteList>> {
|
|
167
|
+
const url = new URL('/Marti/api/missions/invitations', this.api.url);
|
|
128
168
|
|
|
129
169
|
if (clientUid) {
|
|
130
170
|
url.searchParams.append('clientUid', clientUid);
|
|
@@ -136,6 +176,28 @@ export default class MissionInviteCommands extends Commands {
|
|
|
136
176
|
});
|
|
137
177
|
}
|
|
138
178
|
|
|
179
|
+
/**
|
|
180
|
+
* Get Mission Invitations
|
|
181
|
+
*
|
|
182
|
+
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getMissionInvitations TAK Server Docs}.
|
|
183
|
+
*/
|
|
184
|
+
async get(
|
|
185
|
+
missionName: string,
|
|
186
|
+
opts?: Static<typeof MissionOptions>
|
|
187
|
+
): Promise<Static<typeof MissionInviteList>> {
|
|
188
|
+
let url;
|
|
189
|
+
if (GUIDMatch.test(missionName)) {
|
|
190
|
+
url = new URL(`/Marti/api/missions/guid/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
191
|
+
} else {
|
|
192
|
+
url = new URL(`/Marti/api/missions/${encodeURIComponent(missionName)}/invitations`, this.api.url);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return await this.api.fetch(url, {
|
|
196
|
+
method: 'GET',
|
|
197
|
+
headers: this.#headers(opts)
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
139
201
|
/**
|
|
140
202
|
* Invite a user/group to a mission
|
|
141
203
|
*
|
package/package.json
CHANGED