@tak-ps/node-tak 12.22.0 → 12.23.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,19 @@
10
10
 
11
11
  ## Version History
12
12
 
13
+ ### v12.23.1 - 2026-07-27
14
+
15
+ - :bug: `MissionLayer.name` is now optional - `ITEM` layers represent filed Mission content and are returned by the TAK Server without a name, failing schema validation
16
+
17
+ ### v12.23.0 - 2026-07-15
18
+
19
+ - :tada: Add `MissionLayer.attachUids()` to file Mission CoT UIDs under a Mission Layer (moving them from any current layer)
20
+ - :tada: Add `MissionLayer.setParent()` to re-parent Mission Layers, including moving `ITEM` layers back to the Mission root
21
+
22
+ ### v12.22.0 - 2026-07-14
23
+
24
+ - :rocket: Version Sync
25
+
13
26
  ### v12.21.0 - 2026-07-14
14
27
 
15
28
  - :bug: Fix `Mission.setRole()` to send `role` as a bare enum query param (matching TAK Server) and stop reading a non-existent JSON body from the response
@@ -10,7 +10,7 @@ export declare enum MissionLayerType {
10
10
  ITEM = "ITEM"
11
11
  }
12
12
  export declare const MissionLayer: import("@sinclair/typebox").TObject<{
13
- name: import("@sinclair/typebox").TString;
13
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
14
  type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
15
15
  parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
16
  uid: import("@sinclair/typebox").TString;
@@ -49,11 +49,21 @@ export declare const CreateInput: import("@sinclair/typebox").TObject<{
49
49
  afterUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
50
50
  creatorUid: import("@sinclair/typebox").TString;
51
51
  }>;
52
+ export declare const AttachUidsInput: import("@sinclair/typebox").TObject<{
53
+ uids: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
54
+ creatorUid: import("@sinclair/typebox").TString;
55
+ }>;
56
+ export declare const SetParentInput: import("@sinclair/typebox").TObject<{
57
+ layerUids: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
58
+ parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
59
+ afterUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
60
+ creatorUid: import("@sinclair/typebox").TString;
61
+ }>;
52
62
  export declare const TAKList_MissionLayer: import("@sinclair/typebox").TObject<{
53
63
  version: import("@sinclair/typebox").TString;
54
64
  type: import("@sinclair/typebox").TString;
55
65
  data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
56
- name: import("@sinclair/typebox").TString;
66
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
57
67
  type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
58
68
  parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
59
69
  uid: import("@sinclair/typebox").TString;
@@ -83,7 +93,7 @@ export declare const TAKItem_MissionLayer: import("@sinclair/typebox").TObject<{
83
93
  version: import("@sinclair/typebox").TString;
84
94
  type: import("@sinclair/typebox").TString;
85
95
  data: import("@sinclair/typebox").TObject<{
86
- name: import("@sinclair/typebox").TString;
96
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
87
97
  type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
88
98
  parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
89
99
  uid: import("@sinclair/typebox").TString;
@@ -132,6 +142,22 @@ export default class MissionLayerCommands extends Commands {
132
142
  get(name: string, layerUid: string, // Layer UID
133
143
  opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLayer>>;
134
144
  create(name: string, query: Static<typeof CreateInput>, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLayer>>;
145
+ /**
146
+ * Attach CoT UIDs to a Mission Layer.
147
+ *
148
+ * The UIDs must already be present in the Mission - the TAK Server will
149
+ * file each UID under the given layer, moving it from any layer it is
150
+ * currently filed under.
151
+ */
152
+ attachUids(name: string, layerUid: string, query: Static<typeof AttachUidsInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
153
+ /**
154
+ * Re-parent Mission Layers.
155
+ *
156
+ * Layers of type ITEM represent filed Mission content, so this can also
157
+ * be used to move content out of a layer by omitting parentUid, which
158
+ * moves it back to the Mission root.
159
+ */
160
+ setParent(name: string, query: Static<typeof SetParentInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
135
161
  rename(name: string, layer: string, query: Static<typeof RenameInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
136
162
  delete(name: string, query: Static<typeof DeleteInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
137
163
  }
@@ -12,7 +12,8 @@ export var MissionLayerType;
12
12
  MissionLayerType["ITEM"] = "ITEM";
13
13
  })(MissionLayerType || (MissionLayerType = {}));
14
14
  export const MissionLayer = Type.Object({
15
- name: Type.String({ minLength: 1 }),
15
+ // ITEM Layers represent filed Mission content and are returned without a name
16
+ name: Type.Optional(Type.String({ minLength: 1 })),
16
17
  type: Type.Enum(MissionLayerType),
17
18
  parentUid: Type.Optional(Type.String()),
18
19
  uid: Type.String(),
@@ -53,6 +54,16 @@ export const CreateInput = Type.Object({
53
54
  afterUid: Type.Optional(Type.String()),
54
55
  creatorUid: Type.String()
55
56
  });
57
+ export const AttachUidsInput = Type.Object({
58
+ uids: Type.Array(Type.String()),
59
+ creatorUid: Type.String()
60
+ });
61
+ export const SetParentInput = Type.Object({
62
+ layerUids: Type.Array(Type.String()),
63
+ parentUid: Type.Optional(Type.String()),
64
+ afterUid: Type.Optional(Type.String()),
65
+ creatorUid: Type.String()
66
+ });
56
67
  export const TAKList_MissionLayer = TAKList(MissionLayer);
57
68
  export const TAKItem_MissionLayer = TAKItem(MissionLayer);
58
69
  export default class MissionLayerCommands extends Commands {
@@ -103,6 +114,9 @@ export default class MissionLayerCommands extends Commands {
103
114
  return pathMap;
104
115
  }
105
116
  #listAsPathMapRecurse(pathMap, pathCurrent, layer) {
117
+ // ITEM Layers have no name and thus no addressable path
118
+ if (layer.name === undefined)
119
+ return;
106
120
  pathCurrent = `${pathCurrent}/${encodeURIComponent(layer.name)}`;
107
121
  pathMap.set(`${pathCurrent}/`, layer);
108
122
  for (const l of (layer.mission_layers || [])) {
@@ -187,6 +201,52 @@ export default class MissionLayerCommands extends Commands {
187
201
  });
188
202
  }
189
203
  }
204
+ /**
205
+ * Attach CoT UIDs to a Mission Layer.
206
+ *
207
+ * The UIDs must already be present in the Mission - the TAK Server will
208
+ * file each UID under the given layer, moving it from any layer it is
209
+ * currently filed under.
210
+ */
211
+ async attachUids(name, layerUid, query, opts) {
212
+ const url = this.#isGUID(name)
213
+ ? new URL(`/Marti/api/missions/guid/${encodeURIComponent(name)}/contents`, this.api.url)
214
+ : new URL(`/Marti/api/missions/${this.#encodeName(name)}/contents`, this.api.url);
215
+ url.searchParams.append('creatorUid', query.creatorUid);
216
+ return await this.api.fetch(url, {
217
+ method: 'PUT',
218
+ headers: this.#headers(opts),
219
+ body: {
220
+ paths: {
221
+ [layerUid]: [{ uids: query.uids }]
222
+ }
223
+ }
224
+ });
225
+ }
226
+ /**
227
+ * Re-parent Mission Layers.
228
+ *
229
+ * Layers of type ITEM represent filed Mission content, so this can also
230
+ * be used to move content out of a layer by omitting parentUid, which
231
+ * moves it back to the Mission root.
232
+ */
233
+ async setParent(name, query, opts) {
234
+ const url = this.#isGUID(name)
235
+ ? new URL(`/Marti/api/missions/guid/${encodeURIComponent(name)}/layers/parent`, this.api.url)
236
+ : new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers/parent`, this.api.url);
237
+ for (const layerUid of query.layerUids) {
238
+ url.searchParams.append('layerUid', layerUid);
239
+ }
240
+ if (query.parentUid !== undefined)
241
+ url.searchParams.append('parentUid', query.parentUid);
242
+ if (query.afterUid !== undefined)
243
+ url.searchParams.append('afterUid', query.afterUid);
244
+ url.searchParams.append('creatorUid', query.creatorUid);
245
+ return await this.api.fetch(url, {
246
+ method: 'PUT',
247
+ headers: this.#headers(opts),
248
+ });
249
+ }
190
250
  async rename(name, layer, query, opts) {
191
251
  if (this.#isGUID(name)) {
192
252
  const url = new URL(`/Marti/api/missions/guid/${this.#encodeName(name)}/layers/${layer}/name`, this.api.url);
@@ -1 +1 @@
1
- {"version":3,"file":"mission-layer.js","sourceRoot":"","sources":["../../../lib/api/mission-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission-layer.js","sourceRoot":"","sources":["../../../lib/api/mission-layer.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ export enum MissionLayerType {
15
15
  }
16
16
 
17
17
  export const MissionLayer = Type.Object({
18
- name: Type.String({ minLength: 1 }),
18
+ // ITEM Layers represent filed Mission content and are returned without a name
19
+ name: Type.Optional(Type.String({ minLength: 1 })),
19
20
  type: Type.Enum(MissionLayerType),
20
21
  parentUid: Type.Optional(Type.String()),
21
22
  uid: Type.String(),
@@ -60,6 +61,18 @@ export const CreateInput = Type.Object({
60
61
  creatorUid: Type.String()
61
62
  })
62
63
 
64
+ export const AttachUidsInput = Type.Object({
65
+ uids: Type.Array(Type.String()),
66
+ creatorUid: Type.String()
67
+ });
68
+
69
+ export const SetParentInput = Type.Object({
70
+ layerUids: Type.Array(Type.String()),
71
+ parentUid: Type.Optional(Type.String()),
72
+ afterUid: Type.Optional(Type.String()),
73
+ creatorUid: Type.String()
74
+ });
75
+
63
76
  export const TAKList_MissionLayer = TAKList(MissionLayer);
64
77
  export const TAKItem_MissionLayer = TAKItem(MissionLayer);
65
78
 
@@ -123,6 +136,9 @@ export default class MissionLayerCommands extends Commands {
123
136
  pathCurrent: string,
124
137
  layer: Static<typeof MissionLayer>
125
138
  ) {
139
+ // ITEM Layers have no name and thus no addressable path
140
+ if (layer.name === undefined) return;
141
+
126
142
  pathCurrent = `${pathCurrent}/${encodeURIComponent(layer.name)}`;
127
143
  pathMap.set(`${pathCurrent}/`, layer);
128
144
 
@@ -237,6 +253,66 @@ export default class MissionLayerCommands extends Commands {
237
253
  }
238
254
  }
239
255
 
256
+ /**
257
+ * Attach CoT UIDs to a Mission Layer.
258
+ *
259
+ * The UIDs must already be present in the Mission - the TAK Server will
260
+ * file each UID under the given layer, moving it from any layer it is
261
+ * currently filed under.
262
+ */
263
+ async attachUids(
264
+ name: string,
265
+ layerUid: string,
266
+ query: Static<typeof AttachUidsInput>,
267
+ opts?: Static<typeof MissionOptions>
268
+ ) {
269
+ const url = this.#isGUID(name)
270
+ ? new URL(`/Marti/api/missions/guid/${encodeURIComponent(name)}/contents`, this.api.url)
271
+ : new URL(`/Marti/api/missions/${this.#encodeName(name)}/contents`, this.api.url);
272
+
273
+ url.searchParams.append('creatorUid', query.creatorUid);
274
+
275
+ return await this.api.fetch(url, {
276
+ method: 'PUT',
277
+ headers: this.#headers(opts),
278
+ body: {
279
+ paths: {
280
+ [layerUid]: [{ uids: query.uids }]
281
+ }
282
+ }
283
+ });
284
+ }
285
+
286
+ /**
287
+ * Re-parent Mission Layers.
288
+ *
289
+ * Layers of type ITEM represent filed Mission content, so this can also
290
+ * be used to move content out of a layer by omitting parentUid, which
291
+ * moves it back to the Mission root.
292
+ */
293
+ async setParent(
294
+ name: string,
295
+ query: Static<typeof SetParentInput>,
296
+ opts?: Static<typeof MissionOptions>
297
+ ) {
298
+ const url = this.#isGUID(name)
299
+ ? new URL(`/Marti/api/missions/guid/${encodeURIComponent(name)}/layers/parent`, this.api.url)
300
+ : new URL(`/Marti/api/missions/${this.#encodeName(name)}/layers/parent`, this.api.url);
301
+
302
+ for (const layerUid of query.layerUids) {
303
+ url.searchParams.append('layerUid', layerUid);
304
+ }
305
+
306
+ if (query.parentUid !== undefined) url.searchParams.append('parentUid', query.parentUid);
307
+ if (query.afterUid !== undefined) url.searchParams.append('afterUid', query.afterUid);
308
+ url.searchParams.append('creatorUid', query.creatorUid);
309
+
310
+ return await this.api.fetch(url, {
311
+ method: 'PUT',
312
+ headers: this.#headers(opts),
313
+ });
314
+ }
315
+
240
316
  async rename(
241
317
  name: string,
242
318
  layer: string,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-tak",
3
3
  "type": "module",
4
- "version": "12.22.0",
4
+ "version": "12.23.1",
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",