@tak-ps/node-tak 11.21.0 → 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 CHANGED
@@ -10,6 +10,10 @@
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
+
13
17
  ### v11.21.0 - 2025-01-05
14
18
 
15
19
  - :tada: Add Mission Invite & Uninvite Support
@@ -14,11 +14,37 @@ export declare enum MissionInviteType {
14
14
  GROUP = "group",
15
15
  TEAM = "team"
16
16
  }
17
- export declare const MissionInvite: import("@sinclair/typebox").TString;
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
+ }>;
18
35
  export declare const TAKList_MissionInvites: import("@sinclair/typebox").TObject<{
19
36
  version: import("@sinclair/typebox").TString;
20
37
  type: import("@sinclair/typebox").TString;
21
- data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
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
+ }>>;
22
48
  messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
23
49
  nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
50
  }>;
@@ -34,6 +60,14 @@ export default class MissionInviteCommands extends Commands {
34
60
  query: import("@sinclair/typebox").TObject<{}>;
35
61
  formats: CommandOutputFormat[];
36
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
+ };
37
71
  invite: {
38
72
  description: string;
39
73
  params: import("@sinclair/typebox").TObject<{
@@ -67,6 +101,12 @@ export default class MissionInviteCommands extends Commands {
67
101
  * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
68
102
  */
69
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>>;
70
110
  /**
71
111
  * Invite a user/group to a mission
72
112
  *
@@ -16,8 +16,13 @@ export var MissionInviteType;
16
16
  MissionInviteType["GROUP"] = "group";
17
17
  MissionInviteType["TEAM"] = "team";
18
18
  })(MissionInviteType || (MissionInviteType = {}));
19
- export const MissionInvite = Type.String();
20
- export const TAKList_MissionInvites = TAKList(MissionInvite);
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);
21
26
  /**
22
27
  * @class
23
28
  */
@@ -29,6 +34,14 @@ export default class MissionInviteCommands extends Commands {
29
34
  query: Type.Object({}),
30
35
  formats: [CommandOutputFormat.JSON]
31
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
+ },
32
45
  invite: {
33
46
  description: 'Invite a user/group to a mission',
34
47
  params: Type.Object({
@@ -65,7 +78,23 @@ export default class MissionInviteCommands extends Commands {
65
78
  }
66
79
  else {
67
80
  return list.data.map((invite) => {
68
- return `${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
+ });
92
+ if (args.format === 'json') {
93
+ return list;
94
+ }
95
+ else {
96
+ return list.data.map((invite) => {
97
+ return JSON.stringify(invite);
69
98
  }).join('\n');
70
99
  }
71
100
  }
@@ -120,6 +149,38 @@ export default class MissionInviteCommands extends Commands {
120
149
  if (clientUid) {
121
150
  url.searchParams.append('clientUid', clientUid);
122
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
+ }
123
184
  return await this.api.fetch(url, {
124
185
  method: 'GET',
125
186
  headers: this.#headers(opts)
@@ -1 +1 @@
1
- {"version":3,"file":"mission-invite.js","sourceRoot":"","sources":["../../../lib/api/mission-invite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission-invite.js","sourceRoot":"","sources":["../../../lib/api/mission-invite.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,15 @@ export enum MissionInviteType {
18
18
  TEAM = 'team'
19
19
  }
20
20
 
21
- export const MissionInvite = Type.String();
21
+ export const MissionInvite = Type.Any();
22
+ export const MissionInviteList = TAKList(MissionInvite);
22
23
 
23
- export const TAKList_MissionInvites = TAKList(MissionInvite);
24
+ export const MissionInviteWrapper = Type.Object({
25
+ name: Type.String(),
26
+ invites: MissionInviteList
27
+ });
28
+
29
+ export const TAKList_MissionInvites = TAKList(MissionInviteWrapper);
24
30
 
25
31
  /**
26
32
  * @class
@@ -33,6 +39,14 @@ export default class MissionInviteCommands extends Commands {
33
39
  query: Type.Object({}),
34
40
  formats: [ CommandOutputFormat.JSON ]
35
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
+ },
36
50
  invite: {
37
51
  description: 'Invite a user/group to a mission',
38
52
  params: Type.Object({
@@ -70,7 +84,23 @@ export default class MissionInviteCommands extends Commands {
70
84
  return list;
71
85
  } else {
72
86
  return list.data.map((invite) => {
73
- return `${invite}`;
87
+ return `${invite.name}: ${invite.invites.data.length} Invites`;
88
+ }).join('\n');
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);
74
104
  }).join('\n');
75
105
  }
76
106
  } else if (args._[3] === 'invite') {
@@ -130,6 +160,45 @@ export default class MissionInviteCommands extends Commands {
130
160
  url.searchParams.append('clientUid', clientUid);
131
161
  }
132
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
+
133
202
  return await this.api.fetch(url, {
134
203
  method: 'GET',
135
204
  headers: this.#headers(opts)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-tak",
3
3
  "type": "module",
4
- "version": "11.21.0",
4
+ "version": "11.22.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",