@tak-ps/node-tak 11.17.4 → 11.18.1

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.
Files changed (95) hide show
  1. package/.github/workflows/release.yml +10 -16
  2. package/CHANGELOG.md +8 -0
  3. package/lib/api/mission.ts +41 -27
  4. package/package.json +3 -3
  5. package/dist/cli.d.ts +0 -2
  6. package/dist/cli.js +0 -183
  7. package/dist/cli.js.map +0 -1
  8. package/dist/index.d.ts +0 -59
  9. package/dist/index.js +0 -204
  10. package/dist/index.js.map +0 -1
  11. package/dist/lib/api/contacts.d.ts +0 -24
  12. package/dist/lib/api/contacts.js +0 -44
  13. package/dist/lib/api/contacts.js.map +0 -1
  14. package/dist/lib/api/credentials.d.ts +0 -21
  15. package/dist/lib/api/credentials.js +0 -83
  16. package/dist/lib/api/credentials.js.map +0 -1
  17. package/dist/lib/api/export.d.ts +0 -21
  18. package/dist/lib/api/export.js +0 -37
  19. package/dist/lib/api/export.js.map +0 -1
  20. package/dist/lib/api/files.d.ts +0 -77
  21. package/dist/lib/api/files.js +0 -170
  22. package/dist/lib/api/files.js.map +0 -1
  23. package/dist/lib/api/groups.d.ts +0 -43
  24. package/dist/lib/api/groups.js +0 -68
  25. package/dist/lib/api/groups.js.map +0 -1
  26. package/dist/lib/api/iconsets.d.ts +0 -27
  27. package/dist/lib/api/iconsets.js +0 -42
  28. package/dist/lib/api/iconsets.js.map +0 -1
  29. package/dist/lib/api/injectors.d.ts +0 -52
  30. package/dist/lib/api/injectors.js +0 -82
  31. package/dist/lib/api/injectors.js.map +0 -1
  32. package/dist/lib/api/locate.d.ts +0 -13
  33. package/dist/lib/api/locate.js +0 -27
  34. package/dist/lib/api/locate.js.map +0 -1
  35. package/dist/lib/api/mission-invite.d.ts +0 -36
  36. package/dist/lib/api/mission-invite.js +0 -55
  37. package/dist/lib/api/mission-invite.js.map +0 -1
  38. package/dist/lib/api/mission-layer.d.ts +0 -137
  39. package/dist/lib/api/mission-layer.js +0 -247
  40. package/dist/lib/api/mission-layer.js.map +0 -1
  41. package/dist/lib/api/mission-log.d.ts +0 -75
  42. package/dist/lib/api/mission-log.js +0 -117
  43. package/dist/lib/api/mission-log.js.map +0 -1
  44. package/dist/lib/api/mission.d.ts +0 -498
  45. package/dist/lib/api/mission.js +0 -696
  46. package/dist/lib/api/mission.js.map +0 -1
  47. package/dist/lib/api/oauth.d.ts +0 -22
  48. package/dist/lib/api/oauth.js +0 -55
  49. package/dist/lib/api/oauth.js.map +0 -1
  50. package/dist/lib/api/package.d.ts +0 -40
  51. package/dist/lib/api/package.js +0 -70
  52. package/dist/lib/api/package.js.map +0 -1
  53. package/dist/lib/api/profile.d.ts +0 -9
  54. package/dist/lib/api/profile.js +0 -16
  55. package/dist/lib/api/profile.js.map +0 -1
  56. package/dist/lib/api/query.d.ts +0 -16
  57. package/dist/lib/api/query.js +0 -60
  58. package/dist/lib/api/query.js.map +0 -1
  59. package/dist/lib/api/repeater.d.ts +0 -47
  60. package/dist/lib/api/repeater.js +0 -62
  61. package/dist/lib/api/repeater.js.map +0 -1
  62. package/dist/lib/api/security.d.ts +0 -110
  63. package/dist/lib/api/security.js +0 -123
  64. package/dist/lib/api/security.js.map +0 -1
  65. package/dist/lib/api/subscriptions.d.ts +0 -103
  66. package/dist/lib/api/subscriptions.js +0 -74
  67. package/dist/lib/api/subscriptions.js.map +0 -1
  68. package/dist/lib/api/types.d.ts +0 -41
  69. package/dist/lib/api/types.js +0 -42
  70. package/dist/lib/api/types.js.map +0 -1
  71. package/dist/lib/api/video.d.ts +0 -139
  72. package/dist/lib/api/video.js +0 -151
  73. package/dist/lib/api/video.js.map +0 -1
  74. package/dist/lib/api.d.ts +0 -60
  75. package/dist/lib/api.js +0 -166
  76. package/dist/lib/api.js.map +0 -1
  77. package/dist/lib/auth.d.ts +0 -34
  78. package/dist/lib/auth.js +0 -97
  79. package/dist/lib/auth.js.map +0 -1
  80. package/dist/lib/commands.d.ts +0 -38
  81. package/dist/lib/commands.js +0 -34
  82. package/dist/lib/commands.js.map +0 -1
  83. package/dist/lib/fetch.d.ts +0 -8
  84. package/dist/lib/fetch.js +0 -26
  85. package/dist/lib/fetch.js.map +0 -1
  86. package/dist/lib/stream.d.ts +0 -2
  87. package/dist/lib/stream.js +0 -9
  88. package/dist/lib/stream.js.map +0 -1
  89. package/dist/test/default.test.d.ts +0 -1
  90. package/dist/test/default.test.js +0 -8
  91. package/dist/test/default.test.js.map +0 -1
  92. package/dist/test/findCoT.test.d.ts +0 -1
  93. package/dist/test/findCoT.test.js +0 -85
  94. package/dist/test/findCoT.test.js.map +0 -1
  95. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,247 +0,0 @@
1
- import { TAKList, TAKItem } from './types.js';
2
- import { Type } from '@sinclair/typebox';
3
- import { GUIDMatch } from './mission.js';
4
- import Err from '@openaddresses/batch-error';
5
- import Commands, { CommandOutputFormat } from '../commands.js';
6
- export var MissionLayerType;
7
- (function (MissionLayerType) {
8
- MissionLayerType["GROUP"] = "GROUP";
9
- MissionLayerType["UID"] = "UID";
10
- MissionLayerType["CONTENTS"] = "CONTENTS";
11
- MissionLayerType["MAPLAYER"] = "MAPLAYER";
12
- MissionLayerType["ITEM"] = "ITEM";
13
- })(MissionLayerType || (MissionLayerType = {}));
14
- export const MissionLayer = Type.Object({
15
- name: Type.String({ minLength: 1 }),
16
- type: Type.Enum(MissionLayerType),
17
- parentUid: Type.Optional(Type.String()),
18
- uid: Type.String(),
19
- mission_layers: Type.Optional(Type.Array(Type.Any())),
20
- uids: Type.Optional(Type.Array(Type.Object({
21
- data: Type.String({
22
- description: 'The UID of the COT'
23
- }),
24
- timestamp: Type.String(),
25
- creatorUid: Type.String(),
26
- keywords: Type.Optional(Type.Array(Type.String())),
27
- details: Type.Optional(Type.Object({
28
- type: Type.String(),
29
- callsign: Type.String(),
30
- color: Type.Optional(Type.String()),
31
- location: Type.Object({
32
- lat: Type.Number(),
33
- lon: Type.Number()
34
- })
35
- }))
36
- }))),
37
- contents: Type.Optional(Type.Array(Type.Any())),
38
- maplayers: Type.Optional(Type.Array(Type.Any()))
39
- });
40
- export const DeleteInput = Type.Object({
41
- uid: Type.Array(Type.String()),
42
- creatorUid: Type.String(),
43
- });
44
- export const RenameInput = Type.Object({
45
- name: Type.String(),
46
- creatorUid: Type.String(),
47
- });
48
- export const CreateInput = Type.Object({
49
- name: Type.String(),
50
- type: Type.Enum(MissionLayerType),
51
- uid: Type.Optional(Type.String()),
52
- parentUid: Type.Optional(Type.String()),
53
- afterUid: Type.Optional(Type.String()),
54
- creatorUid: Type.String()
55
- });
56
- export const TAKList_MissionLayer = TAKList(MissionLayer);
57
- export const TAKItem_MissionLayer = TAKItem(MissionLayer);
58
- export default class MissionLayerCommands extends Commands {
59
- schema = {
60
- list: {
61
- description: 'List Injectors',
62
- params: Type.Object({}),
63
- query: Type.Object({}),
64
- formats: [CommandOutputFormat.JSON]
65
- }
66
- };
67
- async cli() {
68
- throw new Error('Unsupported Subcommand');
69
- }
70
- #encodeName(name) {
71
- return encodeURIComponent(name.trim());
72
- }
73
- #isGUID(id) {
74
- return GUIDMatch.test(id);
75
- }
76
- #headers(opts) {
77
- if (opts && opts.token) {
78
- return {
79
- MissionAuthorization: `Bearer ${opts.token}`
80
- };
81
- }
82
- else {
83
- return {};
84
- }
85
- }
86
- isEmpty(layer) {
87
- if (layer.mission_layers && layer.mission_layers.length)
88
- return false;
89
- if (layer.uids && layer.uids.length)
90
- return false;
91
- if (layer.contents && layer.contents.length)
92
- return false;
93
- if (layer.maplayers && layer.maplayers.length)
94
- return false;
95
- return true;
96
- }
97
- async listAsPathMap(name, opts) {
98
- const layers = (await this.list(name, opts)).data;
99
- const pathMap = new Map();
100
- for (const layer of layers) {
101
- this.#listAsPathMapRecurse(pathMap, '', layer);
102
- }
103
- return pathMap;
104
- }
105
- #listAsPathMapRecurse(pathMap, pathCurrent, layer) {
106
- pathCurrent = `${pathCurrent}/${encodeURIComponent(layer.name)}`;
107
- pathMap.set(`${pathCurrent}/`, layer);
108
- for (const l of (layer.mission_layers || [])) {
109
- this.#listAsPathMapRecurse(pathMap, pathCurrent, l);
110
- }
111
- }
112
- async list(name, opts) {
113
- // TODO: This is an issue due to: https://issues.tak.gov/browse/TKS-1023
114
- if (this.#isGUID(name))
115
- name = (await this.api.Mission.getGuid(name, {}, opts)).name;
116
- //const url = new URL(`/Marti/api/missions/guid/${this.#encodeName(name)}/layers`, this.api.url);
117
- const url = new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers`, this.api.url);
118
- const res = await this.api.fetch(url, {
119
- method: 'GET',
120
- headers: this.#headers(opts),
121
- });
122
- res.data.map((l) => {
123
- if (l.type === MissionLayerType.UID && !l.uids) {
124
- l.uids = [];
125
- }
126
- return l;
127
- });
128
- return res;
129
- }
130
- /**
131
- * Stopgap function until the main latestFeats function can accept a path
132
- * parameter
133
- */
134
- async latestFeats(name, layerUid, // Layer UID
135
- opts) {
136
- const layer = (await this.get(name, layerUid, opts)).data;
137
- const feats = await this.api.Mission.latestFeats(name, opts);
138
- const layerUids = new Set((layer.uids || []).map((u) => {
139
- return u.data;
140
- }));
141
- const filtered = feats.filter((f) => {
142
- return layerUids.has(f.id);
143
- });
144
- return filtered;
145
- }
146
- async get(name, layerUid, // Layer UID
147
- opts) {
148
- const layers = await this.list(name, opts);
149
- // TODO this will only return top level layers - need to recurse to lower level layers
150
- for (const layer of layers.data) {
151
- if (layer.uid === layerUid) {
152
- return {
153
- version: layers.version,
154
- type: layers.type,
155
- data: layer,
156
- nodeId: layers.nodeId
157
- };
158
- }
159
- }
160
- throw new Err(404, null, `Layer ${layerUid} not found - only top level layers will be returned`);
161
- }
162
- async create(name, query, opts) {
163
- if (this.#isGUID(name)) {
164
- const url = new URL(`/Marti/api/missions/guid/${this.#encodeName(name)}/layers`, this.api.url);
165
- let q;
166
- for (q in query) {
167
- if (query[q] !== undefined) {
168
- url.searchParams.append(q, String(query[q]));
169
- }
170
- }
171
- return await this.api.fetch(url, {
172
- method: 'PUT',
173
- headers: this.#headers(opts),
174
- });
175
- }
176
- else {
177
- const url = new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers`, this.api.url);
178
- let q;
179
- for (q in query) {
180
- if (query[q] !== undefined) {
181
- url.searchParams.append(q, String(query[q]));
182
- }
183
- }
184
- return await this.api.fetch(url, {
185
- method: 'PUT',
186
- headers: this.#headers(opts),
187
- });
188
- }
189
- }
190
- async rename(name, layer, query, opts) {
191
- if (this.#isGUID(name)) {
192
- const url = new URL(`/Marti/api/missions/guid/${this.#encodeName(name)}/layers/${layer}/name`, this.api.url);
193
- let q;
194
- for (q in query) {
195
- if (query[q] !== undefined) {
196
- url.searchParams.append(q, String(query[q]));
197
- }
198
- }
199
- return await this.api.fetch(url, {
200
- method: 'PUT',
201
- headers: this.#headers(opts),
202
- });
203
- }
204
- else {
205
- const url = new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers/${layer}/name`, this.api.url);
206
- let q;
207
- for (q in query) {
208
- if (query[q] !== undefined) {
209
- url.searchParams.append(q, String(query[q]));
210
- }
211
- }
212
- return await this.api.fetch(url, {
213
- method: 'PUT',
214
- headers: this.#headers(opts),
215
- });
216
- }
217
- }
218
- async delete(name, query, opts) {
219
- if (this.#isGUID(name)) {
220
- const url = new URL(`/Marti/api/missions/guid/${this.#encodeName(name)}/layers`, this.api.url);
221
- let q;
222
- for (q in query) {
223
- if (query[q] !== undefined) {
224
- url.searchParams.append(q, String(query[q]));
225
- }
226
- }
227
- return await this.api.fetch(url, {
228
- method: 'DELETE',
229
- headers: this.#headers(opts),
230
- });
231
- }
232
- else {
233
- const url = new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers`, this.api.url);
234
- let q;
235
- for (q in query) {
236
- if (query[q] !== undefined) {
237
- url.searchParams.append(q, String(query[q]));
238
- }
239
- }
240
- return await this.api.fetch(url, {
241
- method: 'DELETE',
242
- headers: this.#headers(opts),
243
- });
244
- }
245
- }
246
- }
247
- //# sourceMappingURL=mission-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-layer.js","sourceRoot":"","sources":["../../../lib/api/mission-layer.ts"],"names":[],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- import { Static } from '@sinclair/typebox';
2
- import type { MissionOptions } from './mission.js';
3
- import Commands from '../commands.js';
4
- export declare const MissionLog: import("@sinclair/typebox").TObject<{
5
- id: import("@sinclair/typebox").TString;
6
- content: import("@sinclair/typebox").TString;
7
- creatorUid: import("@sinclair/typebox").TString;
8
- missionNames: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
9
- servertime: import("@sinclair/typebox").TString;
10
- dtg: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
- created: import("@sinclair/typebox").TString;
12
- contentHashes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>;
13
- keywords: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
14
- }>;
15
- export declare const CreateMissionLog: import("@sinclair/typebox").TObject<{
16
- dtg: import("@sinclair/typebox").TString;
17
- content: import("@sinclair/typebox").TString;
18
- creatorUid: import("@sinclair/typebox").TString;
19
- contentHashes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>>;
20
- keywords: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
21
- }>;
22
- export declare const UpdateMissionLog: import("@sinclair/typebox").TObject<{
23
- content: import("@sinclair/typebox").TString;
24
- creatorUid: import("@sinclair/typebox").TString;
25
- dtg: import("@sinclair/typebox").TString;
26
- contentHashes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>>;
27
- keywords: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
28
- id: import("@sinclair/typebox").TString;
29
- }>;
30
- export declare const TAKItem_MissionLog: import("@sinclair/typebox").TObject<{
31
- version: import("@sinclair/typebox").TString;
32
- type: import("@sinclair/typebox").TString;
33
- data: import("@sinclair/typebox").TObject<{
34
- id: import("@sinclair/typebox").TString;
35
- content: import("@sinclair/typebox").TString;
36
- creatorUid: import("@sinclair/typebox").TString;
37
- missionNames: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
38
- servertime: import("@sinclair/typebox").TString;
39
- dtg: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
40
- created: import("@sinclair/typebox").TString;
41
- contentHashes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>;
42
- keywords: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
43
- }>;
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
- export default class MissionLogCommands extends Commands {
48
- #private;
49
- schema: {};
50
- cli(): Promise<object | string>;
51
- /**
52
- * Delete a log entry on a Mission Sync
53
- *
54
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/deleteLogEntry TAK Server Docs}.
55
- */
56
- delete(log: string, opts?: Static<typeof MissionOptions>): Promise<void>;
57
- /**
58
- * Get a log entry on a Mission Sync
59
- *
60
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getOneLogEntry TAK Server Docs}.
61
- */
62
- get(id: string): Promise<Static<typeof TAKItem_MissionLog>>;
63
- /**
64
- * Create a log entry on a Mission Sync
65
- *
66
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/postLogEntry TAK Server Docs}.
67
- */
68
- create(mission: string, body: Static<typeof CreateMissionLog>, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLog>>;
69
- /**
70
- * Update a log entry on a Mission Sync
71
- *
72
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/updateLogEntry TAK Server Docs}.
73
- */
74
- update(mission: string, body: Static<typeof UpdateMissionLog>, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLog>>;
75
- }
@@ -1,117 +0,0 @@
1
- import { Type } from '@sinclair/typebox';
2
- import { TAKItem } from './types.js';
3
- import Commands from '../commands.js';
4
- import { GUIDMatch } from './mission.js';
5
- export const MissionLog = Type.Object({
6
- id: Type.String(),
7
- content: Type.String(),
8
- creatorUid: Type.String(),
9
- missionNames: Type.Array(Type.String()),
10
- servertime: Type.String(),
11
- dtg: Type.Optional(Type.String()),
12
- created: Type.String(),
13
- contentHashes: Type.Array(Type.Unknown()),
14
- keywords: Type.Array(Type.String())
15
- });
16
- export const CreateMissionLog = Type.Object({
17
- dtg: Type.String({
18
- format: 'date-time',
19
- default: new Date().toISOString(),
20
- description: 'Date-time group in ISO 8601 format (e.g., "2024-01-01T12:00:00Z")'
21
- }),
22
- content: Type.String(),
23
- creatorUid: Type.String(),
24
- contentHashes: Type.Optional(Type.Array(Type.Unknown())),
25
- keywords: Type.Optional(Type.Array(Type.String()))
26
- });
27
- export const UpdateMissionLog = Type.Composite([CreateMissionLog, Type.Object({
28
- id: Type.String()
29
- })]);
30
- export const TAKItem_MissionLog = TAKItem(MissionLog);
31
- export default class MissionLogCommands extends Commands {
32
- schema = {};
33
- async cli() {
34
- throw new Error('Unsupported Subcommand');
35
- }
36
- #headers(opts) {
37
- if (opts && opts.token) {
38
- return {
39
- MissionAuthorization: `Bearer ${opts.token}`
40
- };
41
- }
42
- else {
43
- return {};
44
- }
45
- }
46
- #isGUID(id) {
47
- return GUIDMatch.test(id);
48
- }
49
- /**
50
- * Delete a log entry on a Mission Sync
51
- *
52
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/deleteLogEntry TAK Server Docs}.
53
- */
54
- async delete(log, opts) {
55
- const url = new URL(`/Marti/api/missions/logs/entries/${log}`, this.api.url);
56
- await this.api.fetch(url, {
57
- method: 'DELETE',
58
- headers: this.#headers(opts),
59
- });
60
- return;
61
- }
62
- /**
63
- * Get a log entry on a Mission Sync
64
- *
65
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getOneLogEntry TAK Server Docs}.
66
- */
67
- async get(id) {
68
- const url = new URL(`/Marti/api/missions/logs/entries/${encodeURIComponent(id)}`, this.api.url);
69
- return await this.api.fetch(url);
70
- }
71
- /**
72
- * Create a log entry on a Mission Sync
73
- *
74
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/postLogEntry TAK Server Docs}.
75
- */
76
- async create(mission, body, opts) {
77
- const url = new URL(`/Marti/api/missions/logs/entries`, this.api.url);
78
- if (this.#isGUID(mission)) {
79
- mission = (await this.api.Mission.get(mission, {}, opts)).name;
80
- }
81
- return await this.api.fetch(url, {
82
- method: 'POST',
83
- headers: this.#headers(opts),
84
- body: {
85
- dtg: body.dtg,
86
- content: body.content,
87
- creatorUid: body.creatorUid,
88
- keywords: body.keywords,
89
- missionNames: [mission],
90
- }
91
- });
92
- }
93
- /**
94
- * Update a log entry on a Mission Sync
95
- *
96
- * {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/updateLogEntry TAK Server Docs}.
97
- */
98
- async update(mission, body, opts) {
99
- const url = new URL(`/Marti/api/missions/logs/entries`, this.api.url);
100
- if (this.#isGUID(mission)) {
101
- mission = (await this.api.Mission.get(mission, {}, opts)).name;
102
- }
103
- return await this.api.fetch(url, {
104
- method: 'PUT',
105
- headers: this.#headers(opts),
106
- body: {
107
- id: body.id,
108
- dtg: body.dtg,
109
- content: body.content,
110
- creatorUid: body.creatorUid,
111
- keywords: body.keywords,
112
- missionNames: [mission],
113
- }
114
- });
115
- }
116
- }
117
- //# sourceMappingURL=mission-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-log.js","sourceRoot":"","sources":["../../../lib/api/mission-log.ts"],"names":[],"mappings":"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"}