@tak-ps/node-tak 12.7.0 → 12.9.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
+ ### v12.9.0 - 2025-04-13
14
+
15
+ - :arrow_up: Remove `tape` in favor of `node:test` and update tests accordingly
16
+
17
+ ### v12.8.0 - 2025-04-13
18
+
19
+ - :arrow_up: Remove use of `form-data`
20
+
13
21
  ### v12.7.0 - 2025-04-13
14
22
 
15
23
  - :arrow_up: Migrate to Typescript 6.0
@@ -1,4 +1,3 @@
1
- import FormData from 'form-data';
2
1
  import { Readable } from 'node:stream';
3
2
  import mime from 'mime';
4
3
  import Commands, { CommandOutputFormat } from '../commands.js';
@@ -115,11 +114,10 @@ export default class FileCommands extends Commands {
115
114
  url.searchParams.append('Groups', group);
116
115
  }
117
116
  }
118
- if (body instanceof Buffer) {
119
- body = Readable.from(body);
120
- }
121
117
  const form = new FormData();
122
- form.append('assetfile', body);
118
+ const contentType = opts.mimetype || mime.getType(opts.name) || undefined;
119
+ const file = await toBlob(body, contentType);
120
+ form.append('assetfile', file, opts.name);
123
121
  const res = await this.api.fetch(url, {
124
122
  method: 'POST',
125
123
  body: form
@@ -167,4 +165,25 @@ export default class FileCommands extends Commands {
167
165
  });
168
166
  }
169
167
  }
168
+ async function toBlob(body, type) {
169
+ if (body instanceof Buffer) {
170
+ const bytes = new Uint8Array(body);
171
+ return type ? new Blob([bytes], { type }) : new Blob([bytes]);
172
+ }
173
+ const chunks = [];
174
+ for await (const chunk of body) {
175
+ if (chunk instanceof Buffer) {
176
+ chunks.push(chunk);
177
+ }
178
+ else if (typeof chunk === 'string') {
179
+ chunks.push(Buffer.from(chunk));
180
+ }
181
+ else {
182
+ chunks.push(Buffer.from(chunk));
183
+ }
184
+ }
185
+ const buff = Buffer.concat(chunks);
186
+ const bytes = new Uint8Array(buff);
187
+ return type ? new Blob([bytes], { type }) : new Blob([bytes]);
188
+ }
170
189
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../lib/api/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../lib/api/files.ts"],"names":[],"mappings":"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"}
package/dist/lib/api.js CHANGED
@@ -1,4 +1,3 @@
1
- import FormData from 'form-data';
2
1
  import OAuth from './api/oauth.js';
3
2
  import Package from './api/package.js';
4
3
  import Certificate from './api/certificate.js';
@@ -133,8 +132,9 @@ export default class TAKAPI {
133
132
  opts.body = JSON.stringify(opts.body);
134
133
  opts.headers['Content-Type'] = 'application/json';
135
134
  }
136
- else if (opts.body instanceof FormData) {
137
- opts.headers = opts.body.getHeaders();
135
+ else if (typeof FormData !== 'undefined' && opts.body instanceof FormData) {
136
+ // Let fetch/undici set multipart headers and boundary automatically.
137
+ delete opts.headers['Content-Type'];
138
138
  }
139
139
  else if (opts.body instanceof URLSearchParams) {
140
140
  opts.headers['Content-Type'] = 'application/x-www-form-urlencoded';
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../lib/api.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import TAK, { CoT } from '../index.js';
2
- import test from 'tape';
3
- test('Ensure Export', (t) => {
4
- t.ok(TAK);
5
- t.ok(CoT);
6
- t.end();
2
+ import test from 'node:test';
3
+ import assert from 'node:assert/strict';
4
+ test('Ensure Export', () => {
5
+ assert.ok(TAK);
6
+ assert.ok(CoT);
7
7
  });
8
8
  //# sourceMappingURL=default.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.test.js","sourceRoot":"","sources":["../../test/default.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"default.test.js","sourceRoot":"","sources":["../../test/default.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IACvB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -1,19 +1,18 @@
1
1
  import TAK from '../index.js';
2
- import test from 'tape';
3
- test('findCoT - Unfinished', (t) => {
2
+ import test from 'node:test';
3
+ import assert from 'node:assert/strict';
4
+ test('findCoT - Unfinished', () => {
4
5
  const res = TAK.findCoT('<event ><detail>');
5
- t.equals(res, null);
6
- t.end();
6
+ assert.equal(res, null);
7
7
  });
8
- test('findCoT - Basic', (t) => {
8
+ test('findCoT - Basic', () => {
9
9
  const res = TAK.findCoT('<event></event>');
10
- t.deepEquals(res, {
10
+ assert.deepEqual(res, {
11
11
  event: '<event></event>',
12
12
  remainder: '',
13
13
  });
14
- t.end();
15
14
  });
16
- test('findCoT - New Lines', (t) => {
15
+ test('findCoT - New Lines', () => {
17
16
  const res = TAK.findCoT(`
18
17
  <event>
19
18
  <detail remarks="
@@ -21,13 +20,12 @@ I am a multiline
21
20
  remarks field
22
21
  "/>
23
22
  </event>`);
24
- t.deepEquals(res, {
23
+ assert.deepEqual(res, {
25
24
  event: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
26
25
  remainder: '',
27
26
  });
28
- t.end();
29
27
  });
30
- test('findCoT - New Lines - Non-Greedy', (t) => {
28
+ test('findCoT - New Lines - Non-Greedy', () => {
31
29
  const res = TAK.findCoT(`
32
30
  <event>
33
31
  <detail remarks="
@@ -40,46 +38,42 @@ I am a multiline
40
38
  remarks field
41
39
  "/>
42
40
  </event>`);
43
- t.deepEquals(res, {
41
+ assert.deepEqual(res, {
44
42
  event: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
45
43
  remainder: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
46
44
  });
47
- t.end();
48
45
  });
49
- test('findCoT - bad preceding data', (t) => {
46
+ test('findCoT - bad preceding data', () => {
50
47
  const res = TAK.findCoT(`
51
48
  <fake/>
52
49
  <event><detail remarks="I am remarks"/>
53
50
  </event>
54
51
  `);
55
- t.deepEquals(res, {
52
+ assert.deepEqual(res, {
56
53
  event: '<event><detail remarks="I am remarks"/>\n</event>',
57
54
  remainder: '\n',
58
55
  });
59
- t.end();
60
56
  });
61
- test('findCoT - bad post data', (t) => {
57
+ test('findCoT - bad post data', () => {
62
58
  const res = TAK.findCoT(`
63
59
  <event><detail remarks="I am remarks"/>
64
60
  </event>
65
61
  <fake/>
66
62
  `);
67
- t.deepEquals(res, {
63
+ assert.deepEqual(res, {
68
64
  event: '<event><detail remarks="I am remarks"/>\n</event>',
69
65
  remainder: '\n<fake/>\n',
70
66
  });
71
- t.end();
72
67
  });
73
- test('findCoT - mixed', (t) => {
68
+ test('findCoT - mixed', () => {
74
69
  const res = TAK.findCoT(`
75
70
  <event><detail remarks="I am remarks"/>
76
71
  </event>
77
72
  <fake/>
78
73
  <event><detail remarks="I am remarks"/></event>`);
79
- t.deepEquals(res, {
74
+ assert.deepEqual(res, {
80
75
  event: '<event><detail remarks="I am remarks"/>\n</event>',
81
76
  remainder: '\n<fake/>\n<event><detail remarks="I am remarks"/></event>',
82
77
  });
83
- t.end();
84
78
  });
85
79
  //# sourceMappingURL=findCoT.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findCoT.test.js","sourceRoot":"","sources":["../../test/findCoT.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;SAMnB,CAAC,CAAC;IACP,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,oFAAoF;QAC3F,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;;;;;;SAWnB,CAAC,CAAC;IACP,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,oFAAoF;QAC3F,SAAS,EAAE,oFAAoF;KAClG,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,EAAE,EAAE;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;CAI3B,CAAC,CAAC;IACC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;CAI3B,CAAC,CAAC;IACC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,aAAa;KAC3B,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;gDAIoB,CAAC,CAAC;IAC9C,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,4DAA4D;KAC1E,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"findCoT.test.js","sourceRoot":"","sources":["../../test/findCoT.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;SAMnB,CAAC,CAAC;IACP,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,oFAAoF;QAC3F,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;;;;;;SAWnB,CAAC,CAAC;IACP,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,oFAAoF;QAC3F,SAAS,EAAE,oFAAoF;KAClG,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;CAI3B,CAAC,CAAC;IACC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,IAAI;KAClB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACjC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;CAI3B,CAAC,CAAC;IACC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,aAAa;KAC3B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;;;gDAIoB,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,mDAAmD;QAC1D,SAAS,EAAE,4DAA4D;KAC1E,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import test from 'tape';
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
2
3
  import { EventEmitter } from 'node:events';
3
4
  import TAK, { CoT } from '../index.js';
4
5
  import { CoTParser } from '@tak-ps/node-cot';
@@ -17,33 +18,30 @@ function createFakeSocket(opts = {}) {
17
18
  setNoDelay: () => { },
18
19
  });
19
20
  }
20
- test('write - resolves when all CoTs are queued and sent', async (t) => {
21
+ test('write - resolves when all CoTs are queued and sent', async () => {
21
22
  const tak = createTAK();
22
23
  tak.client = createFakeSocket();
23
24
  const cots = [CoT.ping(), CoT.ping()];
24
25
  await tak.write(cots);
25
- t.equals(tak.queue.length, 0, 'queue empty after write + pull');
26
- t.end();
26
+ assert.equal(tak.queue.length, 0, 'queue empty after write + pull');
27
27
  });
28
- test('write - returns early when destroyed', async (t) => {
28
+ test('write - returns early when destroyed', async () => {
29
29
  const tak = createTAK();
30
30
  tak.destroyed = true;
31
31
  await tak.write([CoT.ping()]);
32
- t.equals(tak.queue.length, 0, 'nothing queued');
33
- t.end();
32
+ assert.equal(tak.queue.length, 0, 'nothing queued');
34
33
  });
35
- test('write - multiple concurrent writes', async (t) => {
34
+ test('write - multiple concurrent writes', async () => {
36
35
  const tak = createTAK();
37
36
  tak.client = createFakeSocket();
38
37
  const order = [];
39
38
  const p1 = tak.write([CoT.ping()]).then(() => order.push(1));
40
39
  const p2 = tak.write([CoT.ping()]).then(() => order.push(2));
41
40
  await Promise.all([p1, p2]);
42
- t.deepEquals(order, [1, 2], 'writes resolve in order');
43
- t.equals(tak.queue.length, 0, 'queue drained');
44
- t.end();
41
+ assert.deepEqual(order, [1, 2], 'writes resolve in order');
42
+ assert.equal(tak.queue.length, 0, 'queue drained');
45
43
  });
46
- test('pull - batches CoTs into single socket.write call', async (t) => {
44
+ test('pull - batches CoTs into single socket.write call', async () => {
47
45
  const tak = createTAK({ socketBatchSize: 64 });
48
46
  const writeCalls = [];
49
47
  tak.client = createFakeSocket({
@@ -53,12 +51,11 @@ test('pull - batches CoTs into single socket.write call', async (t) => {
53
51
  },
54
52
  });
55
53
  await tak.write([CoT.ping(), CoT.ping()]);
56
- t.equals(writeCalls.length, 1, 'socket.write called once for batch');
57
- t.ok(writeCalls[0].includes('<event'), 'batch contains XML events');
58
- t.equals(tak.queue.length, 0, 'queue drained');
59
- t.end();
54
+ assert.equal(writeCalls.length, 1, 'socket.write called once for batch');
55
+ assert.ok(writeCalls[0].includes('<event'), 'batch contains XML events');
56
+ assert.equal(tak.queue.length, 0, 'queue drained');
60
57
  });
61
- test('pull - respects backpressure and resumes on process()', async (t) => {
58
+ test('pull - respects backpressure and resumes on process()', async () => {
62
59
  const tak = createTAK({ socketBatchSize: 1 });
63
60
  let callCount = 0;
64
61
  const socket = createFakeSocket({
@@ -74,16 +71,15 @@ test('pull - respects backpressure and resumes on process()', async (t) => {
74
71
  tak.client = socket;
75
72
  // Both CoTs get queued immediately, pull() sends 1 and hits backpressure
76
73
  await tak.write([CoT.ping(), CoT.ping()]);
77
- t.equals(callCount, 1, 'one write before backpressure');
78
- t.equals(tak.queue.length, 1, 'one item still in queue');
74
+ assert.equal(callCount, 1, 'one write before backpressure');
75
+ assert.equal(tak.queue.length, 1, 'one item still in queue');
79
76
  // Simulate backpressure clearing (equivalent to drain event)
80
77
  socket.writableNeedDrain = false;
81
78
  tak.process();
82
- t.equals(callCount, 2, 'second write after backpressure cleared');
83
- t.equals(tak.queue.length, 0, 'queue drained');
84
- t.end();
79
+ assert.equal(callCount, 2, 'second write after backpressure cleared');
80
+ assert.equal(tak.queue.length, 0, 'queue drained');
85
81
  });
86
- test('pull - error in socket.write triggers destroy + error event', async (t) => {
82
+ test('pull - error in socket.write triggers destroy + error event', async () => {
87
83
  const tak = createTAK();
88
84
  tak.client = createFakeSocket({
89
85
  write() { throw new Error('write failed'); },
@@ -94,28 +90,25 @@ test('pull - error in socket.write triggers destroy + error event', async (t) =>
94
90
  // write() enqueues, pull() throws internally, catches → destroy + emit error
95
91
  // write() sees destroyed=true on next check and returns
96
92
  await tak.write([CoT.ping()]);
97
- t.equals(tak.destroyed, true, 'destroyed after write error');
98
- t.ok(errorFired, 'error event fired');
99
- t.equals(errorMsg, 'write failed', 'error message matches');
100
- t.end();
93
+ assert.equal(tak.destroyed, true, 'destroyed after write error');
94
+ assert.ok(errorFired, 'error event fired');
95
+ assert.equal(errorMsg, 'write failed', 'error message matches');
101
96
  });
102
- test('pull - noop when already writing', (t) => {
97
+ test('pull - noop when already writing', () => {
103
98
  const tak = createTAK();
104
99
  tak.client = createFakeSocket();
105
100
  tak.writing = true;
106
101
  tak.queue.push('<event/>');
107
102
  // pull() should return immediately since writing=true
108
103
  tak.process();
109
- t.equals(tak.queue.length, 1, 'queue unchanged');
110
- t.end();
104
+ assert.equal(tak.queue.length, 1, 'queue unchanged');
111
105
  });
112
- test('flush - resolves immediately when nothing queued', async (t) => {
106
+ test('flush - resolves immediately when nothing queued', async () => {
113
107
  const tak = createTAK();
114
108
  await tak.flush();
115
- t.pass('flush resolved immediately');
116
- t.end();
109
+ assert.ok(true, 'flush resolved immediately');
117
110
  });
118
- test('flush - rejects when destroyed mid-flush', async (t) => {
111
+ test('flush - rejects when destroyed mid-flush', async () => {
119
112
  const tak = createTAK();
120
113
  tak.client = createFakeSocket();
121
114
  // Simulate an in-progress write so flush enters the wait path
@@ -125,15 +118,14 @@ test('flush - rejects when destroyed mid-flush', async (t) => {
125
118
  tak.destroy();
126
119
  try {
127
120
  await p;
128
- t.fail('should have rejected');
121
+ assert.fail('should have rejected');
129
122
  }
130
123
  catch (err) {
131
- t.ok(err instanceof Error, 'error is an Error');
132
- t.ok(err.message.includes('destroyed'), 'error mentions destroyed');
124
+ assert.ok(err instanceof Error, 'error is an Error');
125
+ assert.ok(err.message.includes('destroyed'), 'error mentions destroyed');
133
126
  }
134
- t.end();
135
127
  });
136
- test('flush - waits for queue to drain via process()', async (t) => {
128
+ test('flush - waits for queue to drain via process()', async () => {
137
129
  const tak = createTAK({ socketBatchSize: 1 });
138
130
  let callCount = 0;
139
131
  const socket = createFakeSocket({
@@ -148,17 +140,16 @@ test('flush - waits for queue to drain via process()', async (t) => {
148
140
  });
149
141
  tak.client = socket;
150
142
  await tak.write([CoT.ping(), CoT.ping()]);
151
- t.equals(tak.queue.length, 1, 'one item in queue after backpressure');
143
+ assert.equal(tak.queue.length, 1, 'one item in queue after backpressure');
152
144
  // Clear backpressure and drain
153
145
  socket.writableNeedDrain = false;
154
146
  const flushP = tak.flush();
155
147
  tak.process();
156
148
  await flushP;
157
- t.equals(tak.queue.length, 0, 'queue empty after flush');
158
- t.equals(callCount, 2, 'both items sent');
159
- t.end();
149
+ assert.equal(tak.queue.length, 0, 'queue empty after flush');
150
+ assert.equal(callCount, 2, 'both items sent');
160
151
  });
161
- test('write - yields when queue is full and resumes after destroy', async (t) => {
152
+ test('write - yields when queue is full and resumes after destroy', async () => {
162
153
  // writeQueueSize=4 → queue capacity = 4
163
154
  const tak = createTAK({ writeQueueSize: 4 });
164
155
  // No client, so pull() is a no-op → queue fills up and write() yields
@@ -166,15 +157,14 @@ test('write - yields when queue is full and resumes after destroy', async (t) =>
166
157
  const p = tak.write([CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping()])
167
158
  .then(() => { writeResolved = true; });
168
159
  await new Promise(r => setImmediate(r));
169
- t.equals(tak.queue.length, 4, 'queue at capacity');
170
- t.equals(writeResolved, false, 'write blocked waiting for space');
160
+ assert.equal(tak.queue.length, 4, 'queue at capacity');
161
+ assert.equal(writeResolved, false, 'write blocked waiting for space');
171
162
  // Destroy unblocks write (destroyed check in loop)
172
163
  tak.destroy();
173
164
  await p;
174
- t.ok(writeResolved, 'write resolved after destroy');
175
- t.end();
165
+ assert.ok(writeResolved, 'write resolved after destroy');
176
166
  });
177
- test('write - resumes after queue drains', async (t) => {
167
+ test('write - resumes after queue drains', async () => {
178
168
  // writeQueueSize=8 → queue capacity = 8, socketBatchSize=4
179
169
  const tak = createTAK({ writeQueueSize: 8, socketBatchSize: 4 });
180
170
  let callCount = 0;
@@ -190,11 +180,10 @@ test('write - resumes after queue drains', async (t) => {
190
180
  CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(),
191
181
  CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(),
192
182
  ]);
193
- t.equals(tak.queue.length, 0, 'all drained');
194
- t.ok(callCount >= 2, 'multiple socket.write calls needed');
195
- t.end();
183
+ assert.equal(tak.queue.length, 0, 'all drained');
184
+ assert.ok(callCount >= 2, 'multiple socket.write calls needed');
196
185
  });
197
- test('write - caller can safely modify array after write returns', async (t) => {
186
+ test('write - caller can safely modify array after write returns', async () => {
198
187
  const tak = createTAK();
199
188
  const writeCalls = [];
200
189
  tak.client = createFakeSocket({
@@ -207,12 +196,11 @@ test('write - caller can safely modify array after write returns', async (t) =>
207
196
  await tak.write(cots);
208
197
  // Modify the array after write — should not affect what was sent
209
198
  cots.length = 0;
210
- t.equals(writeCalls.length, 1, 'socket.write was called');
211
- t.ok(writeCalls[0].includes('<event'), 'CoT was sent before array was cleared');
212
- t.equals(tak.queue.length, 0, 'queue empty');
213
- t.end();
199
+ assert.equal(writeCalls.length, 1, 'socket.write was called');
200
+ assert.ok(writeCalls[0].includes('<event'), 'CoT was sent before array was cleared');
201
+ assert.equal(tak.queue.length, 0, 'queue empty');
214
202
  });
215
- test('write - stripFlow replaces existing flow tags in outbound XML', async (t) => {
203
+ test('write - stripFlow replaces existing flow tags in outbound XML', async () => {
216
204
  const tak = createTAK();
217
205
  const writeCalls = [];
218
206
  tak.client = createFakeSocket({
@@ -244,24 +232,22 @@ test('write - stripFlow replaces existing flow tags in outbound XML', async (t)
244
232
  }
245
233
  });
246
234
  await tak.write([cot], { stripFlow: true });
247
- t.equals(writeCalls.length, 1, 'socket.write was called');
248
- t.notOk(writeCalls[0].includes('TAK-Server-test='), 'server flow tag removed from outbound XML');
249
- t.ok(writeCalls[0].includes('NodeCoT-'), 'node-cot flow tag added to outbound XML');
235
+ assert.equal(writeCalls.length, 1, 'socket.write was called');
236
+ assert.ok(!writeCalls[0].includes('TAK-Server-test='), 'server flow tag removed from outbound XML');
237
+ assert.ok(writeCalls[0].includes('NodeCoT-'), 'node-cot flow tag added to outbound XML');
250
238
  const outbound = CoTParser.from_xml(writeCalls[0]);
251
239
  const outboundFlow = outbound.raw.event.detail?.['_flow-tags_'];
252
- t.ok(outboundFlow, 'outbound CoT contains flow tags');
253
- t.equal(Object.keys(outboundFlow || {}).length, 1, 'outbound CoT flow object is reset to one initial tag');
254
- t.notOk(outboundFlow?.['TAK-Server-test'], 'outbound CoT flow object clears prior TAK Server tags');
240
+ assert.ok(outboundFlow, 'outbound CoT contains flow tags');
241
+ assert.equal(Object.keys(outboundFlow || {}).length, 1, 'outbound CoT flow object is reset to one initial tag');
242
+ assert.ok(!outboundFlow?.['TAK-Server-test'], 'outbound CoT flow object clears prior TAK Server tags');
255
243
  const feat = await CoTParser.to_geojson(cot);
256
- t.equal(feat.properties.flow?.['TAK-Server-test'], '2026-03-08T04:48:00Z', 'original CoT remains unchanged');
257
- t.end();
244
+ assert.equal(feat.properties.flow?.['TAK-Server-test'], '2026-03-08T04:48:00Z', 'original CoT remains unchanged');
258
245
  });
259
- test('destroy - sets destroyed and clears ping interval', (t) => {
246
+ test('destroy - sets destroyed and clears ping interval', () => {
260
247
  const tak = createTAK();
261
248
  tak.pingInterval = setInterval(() => { }, 60000);
262
249
  tak.destroy();
263
- t.equals(tak.destroyed, true, 'destroyed is true');
264
- t.equals(tak.pingInterval, undefined, 'pingInterval cleared');
265
- t.end();
250
+ assert.equal(tak.destroyed, true, 'destroyed is true');
251
+ assert.equal(tak.pingInterval, undefined, 'pingInterval cleared');
266
252
  });
267
253
  //# sourceMappingURL=pipeline.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../test/pipeline.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../test/pipeline.test.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,43 @@
1
- import test from 'tape';
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
2
3
  import { Queue } from '../lib/utils/queue.js';
3
- test('Queue - push/pop FIFO order', (t) => {
4
+ test('Queue - push/pop FIFO order', () => {
4
5
  const q = new Queue(4);
5
6
  q.push(1);
6
7
  q.push(2);
7
8
  q.push(3);
8
- t.equals(q.pop(), 1);
9
- t.equals(q.pop(), 2);
10
- t.equals(q.pop(), 3);
11
- t.end();
9
+ assert.equal(q.pop(), 1);
10
+ assert.equal(q.pop(), 2);
11
+ assert.equal(q.pop(), 3);
12
12
  });
13
- test('Queue - capacity enforced', (t) => {
13
+ test('Queue - capacity enforced', () => {
14
14
  const q = new Queue(2);
15
- t.equals(q.push(1), true);
16
- t.equals(q.push(2), true);
17
- t.equals(q.isFull, true);
18
- t.equals(q.push(3), false);
19
- t.equals(q.length, 2);
20
- t.end();
15
+ assert.equal(q.push(1), true);
16
+ assert.equal(q.push(2), true);
17
+ assert.equal(q.isFull, true);
18
+ assert.equal(q.push(3), false);
19
+ assert.equal(q.length, 2);
21
20
  });
22
- test('Queue - pop from empty', (t) => {
21
+ test('Queue - pop from empty', () => {
23
22
  const q = new Queue(2);
24
- t.equals(q.pop(), undefined);
25
- t.equals(q.length, 0);
26
- t.end();
23
+ assert.equal(q.pop(), undefined);
24
+ assert.equal(q.length, 0);
27
25
  });
28
- test('Queue - ring buffer wraparound', (t) => {
26
+ test('Queue - ring buffer wraparound', () => {
29
27
  const q = new Queue(3);
30
28
  q.push(1);
31
29
  q.push(2);
32
30
  q.push(3);
33
31
  // Pop two — head advances past midpoint
34
- t.equals(q.pop(), 1);
35
- t.equals(q.pop(), 2);
32
+ assert.equal(q.pop(), 1);
33
+ assert.equal(q.pop(), 2);
36
34
  // Push two more — tail wraps around
37
35
  q.push(4);
38
36
  q.push(5);
39
37
  // Remaining items come out in FIFO order
40
- t.equals(q.pop(), 3);
41
- t.equals(q.pop(), 4);
42
- t.equals(q.pop(), 5);
43
- t.equals(q.length, 0);
44
- t.end();
38
+ assert.equal(q.pop(), 3);
39
+ assert.equal(q.pop(), 4);
40
+ assert.equal(q.pop(), 5);
41
+ assert.equal(q.length, 0);
45
42
  });
46
43
  //# sourceMappingURL=queue.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.test.js","sourceRoot":"","sources":["../../test/queue.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.test.js","sourceRoot":"","sources":["../../test/queue.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,wCAAwC;IACxC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,oCAAoC;IACpC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,yCAAyC;IACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
package/lib/api/files.ts CHANGED
@@ -1,4 +1,3 @@
1
- import FormData from 'form-data';
2
1
  import { Readable } from 'node:stream';
3
2
  import mime from 'mime';
4
3
  import Commands, { CommandOutputFormat, type ParsedArgs } from '../commands.js';
@@ -145,12 +144,10 @@ export default class FileCommands extends Commands {
145
144
  }
146
145
  }
147
146
 
148
- if (body instanceof Buffer) {
149
- body = Readable.from(body as Buffer);
150
- }
151
-
152
147
  const form = new FormData()
153
- form.append('assetfile', body as Readable);
148
+ const contentType = opts.mimetype || mime.getType(opts.name) || undefined;
149
+ const file = await toBlob(body, contentType);
150
+ form.append('assetfile', file, opts.name);
154
151
 
155
152
  const res = await this.api.fetch(url, {
156
153
  method: 'POST',
@@ -214,3 +211,26 @@ export default class FileCommands extends Commands {
214
211
  });
215
212
  }
216
213
  }
214
+
215
+ async function toBlob(body: Readable | Buffer, type?: string): Promise<Blob> {
216
+ if (body instanceof Buffer) {
217
+ const bytes = new Uint8Array(body);
218
+ return type ? new Blob([bytes], { type }) : new Blob([bytes]);
219
+ }
220
+
221
+ const chunks: Buffer[] = [];
222
+
223
+ for await (const chunk of body) {
224
+ if (chunk instanceof Buffer) {
225
+ chunks.push(chunk);
226
+ } else if (typeof chunk === 'string') {
227
+ chunks.push(Buffer.from(chunk));
228
+ } else {
229
+ chunks.push(Buffer.from(chunk));
230
+ }
231
+ }
232
+
233
+ const buff = Buffer.concat(chunks);
234
+ const bytes = new Uint8Array(buff);
235
+ return type ? new Blob([bytes], { type }) : new Blob([bytes]);
236
+ }
package/lib/api.ts CHANGED
@@ -1,4 +1,3 @@
1
- import FormData from 'form-data';
2
1
  import OAuth from './api/oauth.js';
3
2
  import Package from './api/package.js';
4
3
  import Certificate from './api/certificate.js';
@@ -147,8 +146,9 @@ export default class TAKAPI {
147
146
  ) {
148
147
  opts.body = JSON.stringify(opts.body);
149
148
  opts.headers['Content-Type'] = 'application/json';
150
- } else if (opts.body instanceof FormData) {
151
- opts.headers = opts.body.getHeaders();
149
+ } else if (typeof FormData !== 'undefined' && opts.body instanceof FormData) {
150
+ // Let fetch/undici set multipart headers and boundary automatically.
151
+ delete opts.headers['Content-Type'];
152
152
  } else if (opts.body instanceof URLSearchParams) {
153
153
  opts.headers['Content-Type'] = 'application/x-www-form-urlencoded'
154
154
  opts.body = String(opts.body);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-tak",
3
3
  "type": "module",
4
- "version": "12.7.0",
4
+ "version": "12.9.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",
@@ -31,7 +31,6 @@
31
31
  "@openaddresses/batch-error": "^2.12.0",
32
32
  "@sinclair/typebox": "^0.34.41",
33
33
  "@tak-ps/node-p12": "^1.0.1",
34
- "form-data": "^4.0.2",
35
34
  "mime": "^4.0.7",
36
35
  "pem": "^1.14.8",
37
36
  "undici": "^8.0.0",
@@ -45,10 +44,8 @@
45
44
  "@inquirer/prompts": "^8.0.1",
46
45
  "@types/node": "^25.0.0",
47
46
  "@types/pem": "^1.14.4",
48
- "@types/tape": "^5.6.0",
49
47
  "c8": "^11.0.0",
50
48
  "eslint": "^10.0.0",
51
- "tape": "^5.6.1",
52
49
  "tsx": "^4.19.4",
53
50
  "typedoc": "^0.28.1",
54
51
  "typescript": "^6.0.0",
@@ -1,9 +1,9 @@
1
1
  import TAK, { CoT } from '../index.js';
2
- import test from 'tape';
2
+ import test from 'node:test';
3
+ import assert from 'node:assert/strict';
3
4
 
4
- test('Ensure Export', (t) => {
5
- t.ok(TAK);
6
- t.ok(CoT);
7
- t.end();
5
+ test('Ensure Export', () => {
6
+ assert.ok(TAK);
7
+ assert.ok(CoT);
8
8
  });
9
9
 
@@ -1,22 +1,21 @@
1
1
  import TAK from '../index.js';
2
- import test from 'tape';
2
+ import test from 'node:test';
3
+ import assert from 'node:assert/strict';
3
4
 
4
- test('findCoT - Unfinished', (t) => {
5
+ test('findCoT - Unfinished', () => {
5
6
  const res = TAK.findCoT('<event ><detail>');
6
- t.equals(res, null);
7
- t.end();
7
+ assert.equal(res, null);
8
8
  });
9
9
 
10
- test('findCoT - Basic', (t) => {
10
+ test('findCoT - Basic', () => {
11
11
  const res = TAK.findCoT('<event></event>');
12
- t.deepEquals(res, {
12
+ assert.deepEqual(res, {
13
13
  event: '<event></event>',
14
14
  remainder: '',
15
15
  });
16
- t.end();
17
16
  });
18
17
 
19
- test('findCoT - New Lines', (t) => {
18
+ test('findCoT - New Lines', () => {
20
19
  const res = TAK.findCoT(`
21
20
  <event>
22
21
  <detail remarks="
@@ -24,14 +23,13 @@ I am a multiline
24
23
  remarks field
25
24
  "/>
26
25
  </event>`);
27
- t.deepEquals(res, {
26
+ assert.deepEqual(res, {
28
27
  event: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
29
28
  remainder: '',
30
29
  });
31
- t.end();
32
30
  });
33
31
 
34
- test('findCoT - New Lines - Non-Greedy', (t) => {
32
+ test('findCoT - New Lines - Non-Greedy', () => {
35
33
  const res = TAK.findCoT(`
36
34
  <event>
37
35
  <detail remarks="
@@ -44,48 +42,44 @@ I am a multiline
44
42
  remarks field
45
43
  "/>
46
44
  </event>`);
47
- t.deepEquals(res, {
45
+ assert.deepEqual(res, {
48
46
  event: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
49
47
  remainder: '<event>\n <detail remarks="\nI am a multiline\nremarks field\n "/>\n</event>',
50
48
  });
51
- t.end();
52
49
  });
53
50
 
54
- test('findCoT - bad preceding data', (t) => {
51
+ test('findCoT - bad preceding data', () => {
55
52
  const res = TAK.findCoT(`
56
53
  <fake/>
57
54
  <event><detail remarks="I am remarks"/>
58
55
  </event>
59
56
  `);
60
- t.deepEquals(res, {
57
+ assert.deepEqual(res, {
61
58
  event: '<event><detail remarks="I am remarks"/>\n</event>',
62
59
  remainder: '\n',
63
60
  });
64
- t.end();
65
61
  });
66
62
 
67
- test('findCoT - bad post data', (t) => {
63
+ test('findCoT - bad post data', () => {
68
64
  const res = TAK.findCoT(`
69
65
  <event><detail remarks="I am remarks"/>
70
66
  </event>
71
67
  <fake/>
72
68
  `);
73
- t.deepEquals(res, {
69
+ assert.deepEqual(res, {
74
70
  event: '<event><detail remarks="I am remarks"/>\n</event>',
75
71
  remainder: '\n<fake/>\n',
76
72
  });
77
- t.end();
78
73
  });
79
74
 
80
- test('findCoT - mixed', (t) => {
75
+ test('findCoT - mixed', () => {
81
76
  const res = TAK.findCoT(`
82
77
  <event><detail remarks="I am remarks"/>
83
78
  </event>
84
79
  <fake/>
85
80
  <event><detail remarks="I am remarks"/></event>`);
86
- t.deepEquals(res, {
81
+ assert.deepEqual(res, {
87
82
  event: '<event><detail remarks="I am remarks"/>\n</event>',
88
83
  remainder: '\n<fake/>\n<event><detail remarks="I am remarks"/></event>',
89
84
  });
90
- t.end();
91
85
  });
@@ -1,4 +1,5 @@
1
- import test from 'tape';
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
2
3
  import { EventEmitter } from 'node:events';
3
4
  import TAK, { CoT } from '../index.js';
4
5
  import { CoTParser } from '@tak-ps/node-cot';
@@ -20,26 +21,24 @@ function createFakeSocket(opts: { write?: (...args: unknown[]) => boolean } = {}
20
21
  });
21
22
  }
22
23
 
23
- test('write - resolves when all CoTs are queued and sent', async (t) => {
24
+ test('write - resolves when all CoTs are queued and sent', async () => {
24
25
  const tak = createTAK();
25
26
  tak.client = createFakeSocket();
26
27
 
27
28
  const cots = [CoT.ping(), CoT.ping()];
28
29
  await tak.write(cots);
29
30
 
30
- t.equals(tak.queue.length, 0, 'queue empty after write + pull');
31
- t.end();
31
+ assert.equal(tak.queue.length, 0, 'queue empty after write + pull');
32
32
  });
33
33
 
34
- test('write - returns early when destroyed', async (t) => {
34
+ test('write - returns early when destroyed', async () => {
35
35
  const tak = createTAK();
36
36
  tak.destroyed = true;
37
37
  await tak.write([CoT.ping()]);
38
- t.equals(tak.queue.length, 0, 'nothing queued');
39
- t.end();
38
+ assert.equal(tak.queue.length, 0, 'nothing queued');
40
39
  });
41
40
 
42
- test('write - multiple concurrent writes', async (t) => {
41
+ test('write - multiple concurrent writes', async () => {
43
42
  const tak = createTAK();
44
43
  tak.client = createFakeSocket();
45
44
 
@@ -48,12 +47,11 @@ test('write - multiple concurrent writes', async (t) => {
48
47
  const p2 = tak.write([CoT.ping()]).then(() => order.push(2));
49
48
  await Promise.all([p1, p2]);
50
49
 
51
- t.deepEquals(order, [1, 2], 'writes resolve in order');
52
- t.equals(tak.queue.length, 0, 'queue drained');
53
- t.end();
50
+ assert.deepEqual(order, [1, 2], 'writes resolve in order');
51
+ assert.equal(tak.queue.length, 0, 'queue drained');
54
52
  });
55
53
 
56
- test('pull - batches CoTs into single socket.write call', async (t) => {
54
+ test('pull - batches CoTs into single socket.write call', async () => {
57
55
  const tak = createTAK({ socketBatchSize: 64 });
58
56
  const writeCalls: string[] = [];
59
57
  tak.client = createFakeSocket({
@@ -65,13 +63,12 @@ test('pull - batches CoTs into single socket.write call', async (t) => {
65
63
 
66
64
  await tak.write([CoT.ping(), CoT.ping()]);
67
65
 
68
- t.equals(writeCalls.length, 1, 'socket.write called once for batch');
69
- t.ok(writeCalls[0].includes('<event'), 'batch contains XML events');
70
- t.equals(tak.queue.length, 0, 'queue drained');
71
- t.end();
66
+ assert.equal(writeCalls.length, 1, 'socket.write called once for batch');
67
+ assert.ok(writeCalls[0].includes('<event'), 'batch contains XML events');
68
+ assert.equal(tak.queue.length, 0, 'queue drained');
72
69
  });
73
70
 
74
- test('pull - respects backpressure and resumes on process()', async (t) => {
71
+ test('pull - respects backpressure and resumes on process()', async () => {
75
72
  const tak = createTAK({ socketBatchSize: 1 });
76
73
  let callCount = 0;
77
74
  const socket = createFakeSocket({
@@ -89,19 +86,18 @@ test('pull - respects backpressure and resumes on process()', async (t) => {
89
86
  // Both CoTs get queued immediately, pull() sends 1 and hits backpressure
90
87
  await tak.write([CoT.ping(), CoT.ping()]);
91
88
 
92
- t.equals(callCount, 1, 'one write before backpressure');
93
- t.equals(tak.queue.length, 1, 'one item still in queue');
89
+ assert.equal(callCount, 1, 'one write before backpressure');
90
+ assert.equal(tak.queue.length, 1, 'one item still in queue');
94
91
 
95
92
  // Simulate backpressure clearing (equivalent to drain event)
96
93
  socket.writableNeedDrain = false;
97
94
  tak.process();
98
95
 
99
- t.equals(callCount, 2, 'second write after backpressure cleared');
100
- t.equals(tak.queue.length, 0, 'queue drained');
101
- t.end();
96
+ assert.equal(callCount, 2, 'second write after backpressure cleared');
97
+ assert.equal(tak.queue.length, 0, 'queue drained');
102
98
  });
103
99
 
104
- test('pull - error in socket.write triggers destroy + error event', async (t) => {
100
+ test('pull - error in socket.write triggers destroy + error event', async () => {
105
101
  const tak = createTAK();
106
102
  tak.client = createFakeSocket({
107
103
  write() { throw new Error('write failed'); },
@@ -115,13 +111,12 @@ test('pull - error in socket.write triggers destroy + error event', async (t) =>
115
111
  // write() sees destroyed=true on next check and returns
116
112
  await tak.write([CoT.ping()]);
117
113
 
118
- t.equals(tak.destroyed, true, 'destroyed after write error');
119
- t.ok(errorFired, 'error event fired');
120
- t.equals(errorMsg, 'write failed', 'error message matches');
121
- t.end();
114
+ assert.equal(tak.destroyed, true, 'destroyed after write error');
115
+ assert.ok(errorFired, 'error event fired');
116
+ assert.equal(errorMsg, 'write failed', 'error message matches');
122
117
  });
123
118
 
124
- test('pull - noop when already writing', (t) => {
119
+ test('pull - noop when already writing', () => {
125
120
  const tak = createTAK();
126
121
  tak.client = createFakeSocket();
127
122
  tak.writing = true;
@@ -131,18 +126,16 @@ test('pull - noop when already writing', (t) => {
131
126
  // pull() should return immediately since writing=true
132
127
  tak.process();
133
128
 
134
- t.equals(tak.queue.length, 1, 'queue unchanged');
135
- t.end();
129
+ assert.equal(tak.queue.length, 1, 'queue unchanged');
136
130
  });
137
131
 
138
- test('flush - resolves immediately when nothing queued', async (t) => {
132
+ test('flush - resolves immediately when nothing queued', async () => {
139
133
  const tak = createTAK();
140
134
  await tak.flush();
141
- t.pass('flush resolved immediately');
142
- t.end();
135
+ assert.ok(true, 'flush resolved immediately');
143
136
  });
144
137
 
145
- test('flush - rejects when destroyed mid-flush', async (t) => {
138
+ test('flush - rejects when destroyed mid-flush', async () => {
146
139
  const tak = createTAK();
147
140
  tak.client = createFakeSocket();
148
141
 
@@ -155,15 +148,14 @@ test('flush - rejects when destroyed mid-flush', async (t) => {
155
148
 
156
149
  try {
157
150
  await p;
158
- t.fail('should have rejected');
151
+ assert.fail('should have rejected');
159
152
  } catch (err) {
160
- t.ok(err instanceof Error, 'error is an Error');
161
- t.ok((err as Error).message.includes('destroyed'), 'error mentions destroyed');
153
+ assert.ok(err instanceof Error, 'error is an Error');
154
+ assert.ok((err as Error).message.includes('destroyed'), 'error mentions destroyed');
162
155
  }
163
- t.end();
164
156
  });
165
157
 
166
- test('flush - waits for queue to drain via process()', async (t) => {
158
+ test('flush - waits for queue to drain via process()', async () => {
167
159
  const tak = createTAK({ socketBatchSize: 1 });
168
160
  let callCount = 0;
169
161
  const socket = createFakeSocket({
@@ -179,7 +171,7 @@ test('flush - waits for queue to drain via process()', async (t) => {
179
171
  tak.client = socket;
180
172
 
181
173
  await tak.write([CoT.ping(), CoT.ping()]);
182
- t.equals(tak.queue.length, 1, 'one item in queue after backpressure');
174
+ assert.equal(tak.queue.length, 1, 'one item in queue after backpressure');
183
175
 
184
176
  // Clear backpressure and drain
185
177
  socket.writableNeedDrain = false;
@@ -187,12 +179,11 @@ test('flush - waits for queue to drain via process()', async (t) => {
187
179
  tak.process();
188
180
  await flushP;
189
181
 
190
- t.equals(tak.queue.length, 0, 'queue empty after flush');
191
- t.equals(callCount, 2, 'both items sent');
192
- t.end();
182
+ assert.equal(tak.queue.length, 0, 'queue empty after flush');
183
+ assert.equal(callCount, 2, 'both items sent');
193
184
  });
194
185
 
195
- test('write - yields when queue is full and resumes after destroy', async (t) => {
186
+ test('write - yields when queue is full and resumes after destroy', async () => {
196
187
  // writeQueueSize=4 → queue capacity = 4
197
188
  const tak = createTAK({ writeQueueSize: 4 });
198
189
 
@@ -202,17 +193,16 @@ test('write - yields when queue is full and resumes after destroy', async (t) =>
202
193
  .then(() => { writeResolved = true; });
203
194
  await new Promise(r => setImmediate(r));
204
195
 
205
- t.equals(tak.queue.length, 4, 'queue at capacity');
206
- t.equals(writeResolved, false, 'write blocked waiting for space');
196
+ assert.equal(tak.queue.length, 4, 'queue at capacity');
197
+ assert.equal(writeResolved, false, 'write blocked waiting for space');
207
198
 
208
199
  // Destroy unblocks write (destroyed check in loop)
209
200
  tak.destroy();
210
201
  await p;
211
- t.ok(writeResolved, 'write resolved after destroy');
212
- t.end();
202
+ assert.ok(writeResolved, 'write resolved after destroy');
213
203
  });
214
204
 
215
- test('write - resumes after queue drains', async (t) => {
205
+ test('write - resumes after queue drains', async () => {
216
206
  // writeQueueSize=8 → queue capacity = 8, socketBatchSize=4
217
207
  const tak = createTAK({ writeQueueSize: 8, socketBatchSize: 4 });
218
208
  let callCount = 0;
@@ -230,12 +220,11 @@ test('write - resumes after queue drains', async (t) => {
230
220
  CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(), CoT.ping(),
231
221
  ]);
232
222
 
233
- t.equals(tak.queue.length, 0, 'all drained');
234
- t.ok(callCount >= 2, 'multiple socket.write calls needed');
235
- t.end();
223
+ assert.equal(tak.queue.length, 0, 'all drained');
224
+ assert.ok(callCount >= 2, 'multiple socket.write calls needed');
236
225
  });
237
226
 
238
- test('write - caller can safely modify array after write returns', async (t) => {
227
+ test('write - caller can safely modify array after write returns', async () => {
239
228
  const tak = createTAK();
240
229
  const writeCalls: string[] = [];
241
230
  tak.client = createFakeSocket({
@@ -251,13 +240,12 @@ test('write - caller can safely modify array after write returns', async (t) =>
251
240
  // Modify the array after write — should not affect what was sent
252
241
  cots.length = 0;
253
242
 
254
- t.equals(writeCalls.length, 1, 'socket.write was called');
255
- t.ok(writeCalls[0].includes('<event'), 'CoT was sent before array was cleared');
256
- t.equals(tak.queue.length, 0, 'queue empty');
257
- t.end();
243
+ assert.equal(writeCalls.length, 1, 'socket.write was called');
244
+ assert.ok(writeCalls[0].includes('<event'), 'CoT was sent before array was cleared');
245
+ assert.equal(tak.queue.length, 0, 'queue empty');
258
246
  });
259
247
 
260
- test('write - stripFlow replaces existing flow tags in outbound XML', async (t) => {
248
+ test('write - stripFlow replaces existing flow tags in outbound XML', async () => {
261
249
  const tak = createTAK();
262
250
  const writeCalls: string[] = [];
263
251
  tak.client = createFakeSocket({
@@ -292,30 +280,27 @@ test('write - stripFlow replaces existing flow tags in outbound XML', async (t)
292
280
 
293
281
  await tak.write([cot], { stripFlow: true });
294
282
 
295
- t.equals(writeCalls.length, 1, 'socket.write was called');
296
- t.notOk(writeCalls[0].includes('TAK-Server-test='), 'server flow tag removed from outbound XML');
297
- t.ok(writeCalls[0].includes('NodeCoT-'), 'node-cot flow tag added to outbound XML');
283
+ assert.equal(writeCalls.length, 1, 'socket.write was called');
284
+ assert.ok(!writeCalls[0].includes('TAK-Server-test='), 'server flow tag removed from outbound XML');
285
+ assert.ok(writeCalls[0].includes('NodeCoT-'), 'node-cot flow tag added to outbound XML');
298
286
 
299
287
  const outbound = CoTParser.from_xml(writeCalls[0]);
300
288
  const outboundFlow = outbound.raw.event.detail?.['_flow-tags_'];
301
289
 
302
- t.ok(outboundFlow, 'outbound CoT contains flow tags');
303
- t.equal(Object.keys(outboundFlow || {}).length, 1, 'outbound CoT flow object is reset to one initial tag');
304
- t.notOk(outboundFlow?.['TAK-Server-test'], 'outbound CoT flow object clears prior TAK Server tags');
290
+ assert.ok(outboundFlow, 'outbound CoT contains flow tags');
291
+ assert.equal(Object.keys(outboundFlow || {}).length, 1, 'outbound CoT flow object is reset to one initial tag');
292
+ assert.ok(!outboundFlow?.['TAK-Server-test'], 'outbound CoT flow object clears prior TAK Server tags');
305
293
 
306
294
  const feat = await CoTParser.to_geojson(cot);
307
- t.equal(feat.properties.flow?.['TAK-Server-test'], '2026-03-08T04:48:00Z', 'original CoT remains unchanged');
308
-
309
- t.end();
295
+ assert.equal(feat.properties.flow?.['TAK-Server-test'], '2026-03-08T04:48:00Z', 'original CoT remains unchanged');
310
296
  });
311
297
 
312
- test('destroy - sets destroyed and clears ping interval', (t) => {
298
+ test('destroy - sets destroyed and clears ping interval', () => {
313
299
  const tak = createTAK();
314
300
  tak.pingInterval = setInterval(() => {}, 60000);
315
301
 
316
302
  tak.destroy();
317
303
 
318
- t.equals(tak.destroyed, true, 'destroyed is true');
319
- t.equals(tak.pingInterval, undefined, 'pingInterval cleared');
320
- t.end();
304
+ assert.equal(tak.destroyed, true, 'destroyed is true');
305
+ assert.equal(tak.pingInterval, undefined, 'pingInterval cleared');
321
306
  });
@@ -1,49 +1,46 @@
1
- import test from 'tape';
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
2
3
  import { Queue } from '../lib/utils/queue.js';
3
4
 
4
- test('Queue - push/pop FIFO order', (t) => {
5
+ test('Queue - push/pop FIFO order', () => {
5
6
  const q = new Queue<number>(4);
6
7
  q.push(1);
7
8
  q.push(2);
8
9
  q.push(3);
9
- t.equals(q.pop(), 1);
10
- t.equals(q.pop(), 2);
11
- t.equals(q.pop(), 3);
12
- t.end();
10
+ assert.equal(q.pop(), 1);
11
+ assert.equal(q.pop(), 2);
12
+ assert.equal(q.pop(), 3);
13
13
  });
14
14
 
15
- test('Queue - capacity enforced', (t) => {
15
+ test('Queue - capacity enforced', () => {
16
16
  const q = new Queue<number>(2);
17
- t.equals(q.push(1), true);
18
- t.equals(q.push(2), true);
19
- t.equals(q.isFull, true);
20
- t.equals(q.push(3), false);
21
- t.equals(q.length, 2);
22
- t.end();
17
+ assert.equal(q.push(1), true);
18
+ assert.equal(q.push(2), true);
19
+ assert.equal(q.isFull, true);
20
+ assert.equal(q.push(3), false);
21
+ assert.equal(q.length, 2);
23
22
  });
24
23
 
25
- test('Queue - pop from empty', (t) => {
24
+ test('Queue - pop from empty', () => {
26
25
  const q = new Queue<number>(2);
27
- t.equals(q.pop(), undefined);
28
- t.equals(q.length, 0);
29
- t.end();
26
+ assert.equal(q.pop(), undefined);
27
+ assert.equal(q.length, 0);
30
28
  });
31
29
 
32
- test('Queue - ring buffer wraparound', (t) => {
30
+ test('Queue - ring buffer wraparound', () => {
33
31
  const q = new Queue<number>(3);
34
32
  q.push(1);
35
33
  q.push(2);
36
34
  q.push(3);
37
35
  // Pop two — head advances past midpoint
38
- t.equals(q.pop(), 1);
39
- t.equals(q.pop(), 2);
36
+ assert.equal(q.pop(), 1);
37
+ assert.equal(q.pop(), 2);
40
38
  // Push two more — tail wraps around
41
39
  q.push(4);
42
40
  q.push(5);
43
41
  // Remaining items come out in FIFO order
44
- t.equals(q.pop(), 3);
45
- t.equals(q.pop(), 4);
46
- t.equals(q.pop(), 5);
47
- t.equals(q.length, 0);
48
- t.end();
42
+ assert.equal(q.pop(), 3);
43
+ assert.equal(q.pop(), 4);
44
+ assert.equal(q.pop(), 5);
45
+ assert.equal(q.length, 0);
49
46
  });