@tak-ps/node-cot 12.17.1 → 12.19.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.
Files changed (129) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/lib/cot.js +1 -1
  3. package/dist/lib/cot.js.map +1 -1
  4. package/dist/lib/data-package.js +64 -16
  5. package/dist/lib/data-package.js.map +1 -1
  6. package/dist/lib/types/feature.js +3 -9
  7. package/dist/lib/types/feature.js.map +1 -1
  8. package/dist/lib/types/iconset.js +12 -4
  9. package/dist/lib/types/iconset.js.map +1 -1
  10. package/dist/lib/types/types.js +7 -6
  11. package/dist/lib/types/types.js.map +1 -1
  12. package/dist/lib/xml/basemap.js +1 -1
  13. package/dist/lib/xml/basemap.js.map +1 -1
  14. package/dist/lib/xml/iconset.js +29 -2
  15. package/dist/lib/xml/iconset.js.map +1 -1
  16. package/dist/package.json +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/lib/cot.ts +1 -1
  19. package/lib/data-package.ts +70 -17
  20. package/lib/types/feature.ts +3 -8
  21. package/lib/types/iconset.ts +14 -4
  22. package/lib/types/types.ts +8 -6
  23. package/lib/xml/basemap.ts +2 -2
  24. package/lib/xml/iconset.ts +36 -3
  25. package/lib/xml-document.ts +1 -1
  26. package/package.json +1 -1
  27. package/tsconfig.json +1 -0
  28. package/dist/test/basemaps.test.js +0 -16
  29. package/dist/test/basemaps.test.js.map +0 -1
  30. package/dist/test/chat.test.js +0 -97
  31. package/dist/test/chat.test.js.map +0 -1
  32. package/dist/test/cot-fileshare.test.js +0 -89
  33. package/dist/test/cot-fileshare.test.js.map +0 -1
  34. package/dist/test/cot-itak.test.js +0 -95
  35. package/dist/test/cot-itak.test.js.map +0 -1
  36. package/dist/test/cot-mma.test.js +0 -108
  37. package/dist/test/cot-mma.test.js.map +0 -1
  38. package/dist/test/cot-polyline.test.js +0 -98
  39. package/dist/test/cot-polyline.test.js.map +0 -1
  40. package/dist/test/cot-range-and-bearing.test.js +0 -98
  41. package/dist/test/cot-range-and-bearing.test.js.map +0 -1
  42. package/dist/test/cot-routes.test.js +0 -466
  43. package/dist/test/cot-routes.test.js.map +0 -1
  44. package/dist/test/cot-types.test.js +0 -7
  45. package/dist/test/cot-types.test.js.map +0 -1
  46. package/dist/test/cot-uas-tool.test.js +0 -286
  47. package/dist/test/cot-uas-tool.test.js.map +0 -1
  48. package/dist/test/cot-video.test.js +0 -196
  49. package/dist/test/cot-video.test.js.map +0 -1
  50. package/dist/test/cot_is.test.js +0 -353
  51. package/dist/test/cot_is.test.js.map +0 -1
  52. package/dist/test/data-package.test.js +0 -234
  53. package/dist/test/data-package.test.js.map +0 -1
  54. package/dist/test/diff.test.js +0 -73
  55. package/dist/test/diff.test.js.map +0 -1
  56. package/dist/test/flow-tags.test.js +0 -19
  57. package/dist/test/flow-tags.test.js.map +0 -1
  58. package/dist/test/force-delete.js +0 -46
  59. package/dist/test/force-delete.js.map +0 -1
  60. package/dist/test/from_geojson.test.js +0 -287
  61. package/dist/test/from_geojson.test.js.map +0 -1
  62. package/dist/test/newlines.test.js +0 -79
  63. package/dist/test/newlines.test.js.map +0 -1
  64. package/dist/test/reversal-geojson.test.js +0 -15
  65. package/dist/test/reversal-geojson.test.js.map +0 -1
  66. package/dist/test/reversal-proto.test.js +0 -54
  67. package/dist/test/reversal-proto.test.js.map +0 -1
  68. package/dist/test/stream.js +0 -10
  69. package/dist/test/stream.js.map +0 -1
  70. package/dist/test/taskings-mission.test.js +0 -140
  71. package/dist/test/taskings-mission.test.js.map +0 -1
  72. package/dist/test/util.test.js +0 -25
  73. package/dist/test/util.test.js.map +0 -1
  74. package/dist/test/validation.test.js +0 -13
  75. package/dist/test/validation.test.js.map +0 -1
  76. package/test/basemaps/Bing_Hybrid.xml +0 -12
  77. package/test/basemaps/Bing_Maps.xml +0 -10
  78. package/test/basemaps/USGSBasemap.xml +0 -10
  79. package/test/basemaps/USGSImageryOnly.xml +0 -10
  80. package/test/basemaps/USGSImageryTopo.xml +0 -10
  81. package/test/basemaps/USGSShadedRelief.xml +0 -10
  82. package/test/basemaps/opentopomap.xml +0 -10
  83. package/test/basemaps.test.ts +0 -19
  84. package/test/chat.test.ts +0 -103
  85. package/test/cot-fileshare.test.ts +0 -92
  86. package/test/cot-itak.test.ts +0 -100
  87. package/test/cot-mma.test.ts +0 -111
  88. package/test/cot-polyline.test.ts +0 -103
  89. package/test/cot-range-and-bearing.test.ts +0 -100
  90. package/test/cot-routes.test.ts +0 -468
  91. package/test/cot-types.test.ts +0 -8
  92. package/test/cot-uas-tool.test.ts +0 -295
  93. package/test/cot-video.test.ts +0 -204
  94. package/test/cot_is.test.ts +0 -431
  95. package/test/data-package.test.ts +0 -314
  96. package/test/diff.test.ts +0 -80
  97. package/test/fixtures/archived.geojson +0 -20
  98. package/test/fixtures/attachments.geojson +0 -20
  99. package/test/fixtures/basic.geojson +0 -19
  100. package/test/fixtures/circle.geojson +0 -30
  101. package/test/fixtures/color.geojson +0 -21
  102. package/test/fixtures/fileshare.geojson +0 -28
  103. package/test/fixtures/geofence.geojson +0 -25
  104. package/test/fixtures/hae.geojson +0 -19
  105. package/test/fixtures/icon.geojson +0 -20
  106. package/test/fixtures/linestring.geojson +0 -28
  107. package/test/fixtures/marti-mission.geojson +0 -22
  108. package/test/fixtures/metadata.geojson +0 -24
  109. package/test/fixtures/mission-layer.geojson +0 -31
  110. package/test/fixtures/mission.geojson +0 -25
  111. package/test/fixtures/polygon.geojson +0 -33
  112. package/test/fixtures/props.geojson +0 -22
  113. package/test/fixtures/sensor.geojson +0 -31
  114. package/test/fixtures/video-connection.geojson +0 -27
  115. package/test/fixtures/video.geojson +0 -24
  116. package/test/flow-tags.test.ts +0 -21
  117. package/test/force-delete.ts +0 -50
  118. package/test/from_geojson.test.ts +0 -323
  119. package/test/newlines.test.ts +0 -83
  120. package/test/packages/AttachmentInManifest.zip +0 -0
  121. package/test/packages/COMilePosts.zip +0 -0
  122. package/test/packages/CameraCOTs.zip +0 -0
  123. package/test/packages/QuickPic.zip +0 -0
  124. package/test/reversal-geojson.test.ts +0 -19
  125. package/test/reversal-proto.test.ts +0 -60
  126. package/test/stream.ts +0 -10
  127. package/test/taskings-mission.test.ts +0 -148
  128. package/test/util.test.ts +0 -34
  129. package/test/validation.test.ts +0 -13
@@ -1,73 +0,0 @@
1
- import test from 'tape';
2
- import CoT from '../index.js';
3
- test('CoT.diff - no diff - ignored date & meta', (t) => {
4
- const a = CoT.from_geojson({
5
- id: 'C94B9215-9BD4-4DBE-BDE1-83625F09153F',
6
- type: 'Feature',
7
- properties: {
8
- callsign: 'DFPC-iSchmidt',
9
- time: '2023-07-18T15:23:09.00Z',
10
- start: '2023-07-18T15:23:09.00Z',
11
- stale: '2023-07-18T15:25:09.00Z',
12
- metadata: {
13
- test: true
14
- }
15
- },
16
- geometry: {
17
- type: 'Point',
18
- coordinates: [-107.72376567, 41.52309645, 1681.23725821]
19
- }
20
- });
21
- const b = CoT.from_geojson({
22
- id: 'C94B9215-9BD4-4DBE-BDE1-83625F09153F',
23
- type: 'Feature',
24
- properties: {
25
- callsign: 'DFPC-iSchmidt',
26
- time: '2023-08-18T15:23:09.00Z',
27
- start: '2023-08-18T15:23:09.00Z',
28
- stale: '2023-08-18T15:25:09.00Z',
29
- metadata: {
30
- test: false
31
- }
32
- },
33
- geometry: {
34
- type: 'Point',
35
- coordinates: [-107.72376567, 41.52309645, 1681.23725821]
36
- }
37
- });
38
- t.equals(a.isDiff(b), false);
39
- t.end();
40
- });
41
- test('CoT.diff - simple diff', (t) => {
42
- const a = CoT.from_geojson({
43
- id: 'D94B9215-9BD4-4DBE-BDE1-83625F09153F',
44
- type: 'Feature',
45
- properties: {
46
- callsign: 'DFPC-iSchmidt',
47
- time: '2023-07-18T15:23:09.00Z',
48
- start: '2023-07-18T15:23:09.00Z',
49
- stale: '2023-07-18T15:25:09.00Z',
50
- },
51
- geometry: {
52
- type: 'Point',
53
- coordinates: [-107.72376567, 41.52309645, 1681.23725821]
54
- }
55
- });
56
- const b = CoT.from_geojson({
57
- id: 'C94B9215-9BD4-4DBE-BDE1-83625F09153F',
58
- type: 'Feature',
59
- properties: {
60
- callsign: 'DFPC-iSchmidt',
61
- time: '2023-07-18T15:23:09.00Z',
62
- start: '2023-07-18T15:23:09.00Z',
63
- stale: '2023-07-18T15:25:09.00Z',
64
- },
65
- geometry: {
66
- type: 'Point',
67
- coordinates: [-107.72376567, 41.52309645, 1681.23725821]
68
- }
69
- });
70
- t.equals(a.isDiff(b), true);
71
- t.end();
72
- });
73
- //# sourceMappingURL=diff.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.test.js","sourceRoot":"","sources":["../../test/diff.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,IAAI,CAAC,0CAA0C,EAAE,CAAC,CAAC,EAAE,EAAE;IACnD,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QACvB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACR,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE;gBACN,IAAI,EAAE,IAAI;aACb;SACJ;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,CAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAE;SAC7D;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QACvB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACR,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE;gBACN,IAAI,EAAE,KAAK;aACd;SACJ;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,CAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAE;SAC7D;KACJ,CAAC,CAAC;IAEH,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE7B,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QACvB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACR,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,yBAAyB;SACnC;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,CAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAE;SAC7D;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QACvB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACR,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,yBAAyB;SACnC;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,CAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAE;SAC7D;KACJ,CAAC,CAAC;IAEH,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAE5B,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- import test from 'tape';
2
- import { DirectChat } from '../index.js';
3
- import fs from 'node:fs';
4
- test('FlowTags - Basic', (t) => {
5
- const pkg = JSON.parse(String(fs.readFileSync(new URL('../package.json', import.meta.url))));
6
- const cot = new DirectChat({
7
- to: { uid: '123456', callsign: 'Alpha Operator' },
8
- from: { uid: '654321', callsign: 'Bravo Operator' },
9
- message: 'Direct Message Test'
10
- });
11
- if (!cot.raw.event.detail || !cot.raw.event.detail['_flow-tags_']) {
12
- t.fail('No Detail Section');
13
- }
14
- else {
15
- t.equals(typeof cot.raw.event.detail['_flow-tags_'][`NodeCoT-${pkg.version}`], 'string');
16
- }
17
- t.end();
18
- });
19
- //# sourceMappingURL=flow-tags.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-tags.test.js","sourceRoot":"","sources":["../../test/flow-tags.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC;QACvB,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE;QACjD,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE;QACnD,OAAO,EAAE,qBAAqB;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,46 +0,0 @@
1
- import test from 'tape';
2
- import CoT, { ForceDelete } from '../index.js';
3
- test('ForceDelete - Basic', (t) => {
4
- const cot = new CoT(new ForceDelete('delete-uid').to_xml());
5
- if (!cot.raw.event.detail) {
6
- t.fail('No Detail Section');
7
- }
8
- else {
9
- t.ok(cot.raw.event.detail['_flow-tags_']);
10
- delete cot.raw.event.detail['_flow-tags_'];
11
- t.equals(typeof cot.raw.event._attributes.time, 'string');
12
- cot.raw.event._attributes.time = '2024-04-01';
13
- t.equals(typeof cot.raw.event._attributes.start, 'string');
14
- cot.raw.event._attributes.start = '2024-04-01';
15
- t.equals(typeof cot.raw.event._attributes.stale, 'string');
16
- cot.raw.event._attributes.stale = '2024-04-01';
17
- t.deepEquals(cot.raw, {
18
- event: {
19
- _attributes: {
20
- uid: 'delete-uid',
21
- version: '2.0',
22
- type: 't-x-d-d',
23
- how: 'm-g',
24
- time: '2024-04-01',
25
- stale: '2024-04-01',
26
- start: '2024-04-01'
27
- },
28
- point: {
29
- _attributes: { lat: '0.000000', lon: '0.000000', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
30
- },
31
- detail: {
32
- __forcedelete: {},
33
- link: {
34
- _attributes: {
35
- uid: 'delete-uid',
36
- type: 'none',
37
- relation: 'none'
38
- }
39
- },
40
- }
41
- }
42
- });
43
- }
44
- t.end();
45
- });
46
- //# sourceMappingURL=force-delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"force-delete.js","sourceRoot":"","sources":["../../test/force-delete.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAA;QAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAE9C,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE;gBACH,WAAW,EAAE;oBACT,GAAG,EAAE,YAAY;oBACjB,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,KAAK;oBAEV,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,YAAY;iBACtB;gBACD,KAAK,EAAE;oBACH,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;iBAClG;gBACD,MAAM,EAAE;oBACJ,aAAa,EAAE,EAAE;oBACjB,IAAI,EAAE;wBACF,WAAW,EAAE;4BACT,GAAG,EAAE,YAAY;4BACjB,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,287 +0,0 @@
1
- import test from 'tape';
2
- import CoT from '../index.js';
3
- test('CoT.from_geojson - Point', (t) => {
4
- const geo = CoT.from_geojson({
5
- type: 'Feature',
6
- properties: {},
7
- geometry: {
8
- type: 'Point',
9
- coordinates: [1.1, 2.2]
10
- }
11
- });
12
- t.equals(geo.raw.event._attributes.version, '2.0');
13
- t.equals(geo.raw.event._attributes.type, 'a-f-G');
14
- t.equals(geo.raw.event._attributes.how, 'm-g');
15
- t.equals(geo.raw.event._attributes.uid.length, 36);
16
- t.equals(geo.raw.event._attributes.time.length, 24);
17
- t.equals(geo.raw.event._attributes.start.length, 24);
18
- t.equals(geo.raw.event._attributes.stale.length, 24);
19
- t.deepEquals(geo.raw.event.point, {
20
- _attributes: { lat: '2.2', lon: '1.1', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
21
- });
22
- if (!geo.raw.event.detail || !geo.raw.event.detail.remarks) {
23
- t.fail('No Detail Section');
24
- }
25
- else {
26
- t.ok(geo.raw.event.detail['_flow-tags_']);
27
- delete geo.raw.event.detail['_flow-tags_'];
28
- t.deepEquals(geo.raw.event.detail, {
29
- contact: { _attributes: { callsign: 'UNKNOWN' } },
30
- remarks: { _attributes: {}, _text: '' }
31
- });
32
- }
33
- t.end();
34
- });
35
- test('CoT.from_geojson - Polygon', (t) => {
36
- const geo = CoT.from_geojson({
37
- type: 'Feature',
38
- properties: {},
39
- geometry: {
40
- type: 'Polygon',
41
- coordinates: [[
42
- [-108.587, 39.098],
43
- [-108.587, 39.032],
44
- [-108.505, 39.032],
45
- [-108.505, 39.098],
46
- [-108.587, 39.098]
47
- ]]
48
- }
49
- });
50
- t.equals(geo.raw.event._attributes.version, '2.0');
51
- t.equals(geo.raw.event._attributes.type, 'u-d-f');
52
- t.equals(geo.raw.event._attributes.how, 'm-g');
53
- t.equals(geo.raw.event._attributes.uid.length, 36);
54
- t.equals(geo.raw.event._attributes.time.length, 24);
55
- t.equals(geo.raw.event._attributes.start.length, 24);
56
- t.equals(geo.raw.event._attributes.stale.length, 24);
57
- t.deepEquals(geo.raw.event.point, {
58
- _attributes: { lat: '39.065', lon: '-108.54599999999999', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
59
- });
60
- if (!geo.raw.event.detail || !geo.raw.event.detail.remarks) {
61
- t.fail('No Detail Section');
62
- }
63
- else {
64
- t.ok(geo.raw.event.detail['_flow-tags_']);
65
- delete geo.raw.event.detail['_flow-tags_'];
66
- t.deepEquals(geo.raw.event.detail, {
67
- contact: { _attributes: { callsign: 'UNKNOWN' } },
68
- link: [
69
- { _attributes: { point: '39.098,-108.587' } },
70
- { _attributes: { point: '39.032,-108.587' } },
71
- { _attributes: { point: '39.032,-108.505' } },
72
- { _attributes: { point: '39.098,-108.505' } },
73
- { _attributes: { point: '39.098,-108.587' } },
74
- ],
75
- labels_on: { _attributes: { value: 'false' } },
76
- tog: { _attributes: { enabled: '0' } },
77
- strokeColor: { _attributes: { value: '-2130706688' } },
78
- strokeWeight: { _attributes: { value: '3' } },
79
- strokeStyle: { _attributes: { value: 'solid' } },
80
- fillColor: { _attributes: { value: '-2130706688' } },
81
- remarks: { _attributes: {}, _text: '' }
82
- });
83
- }
84
- t.end();
85
- });
86
- test('CoT.from_geojson - LineString', (t) => {
87
- const geo = CoT.from_geojson({
88
- type: 'Feature',
89
- properties: {},
90
- geometry: {
91
- type: 'LineString',
92
- coordinates: [
93
- [-108.587, 39.098],
94
- [-108.587, 39.032],
95
- [-108.505, 39.032],
96
- [-108.505, 39.098],
97
- [-108.587, 39.098]
98
- ]
99
- }
100
- });
101
- t.equals(geo.raw.event._attributes.version, '2.0');
102
- t.equals(geo.raw.event._attributes.type, 'u-d-f');
103
- t.equals(geo.raw.event._attributes.how, 'm-g');
104
- t.equals(geo.raw.event._attributes.uid.length, 36);
105
- t.equals(geo.raw.event._attributes.time.length, 24);
106
- t.equals(geo.raw.event._attributes.start.length, 24);
107
- t.equals(geo.raw.event._attributes.stale.length, 24);
108
- t.deepEquals(geo.raw.event.point, {
109
- _attributes: { lat: '39.098', lon: '-108.505', hae: '0.0', ce: '9999999.0', le: '9999999.0' }
110
- });
111
- if (!geo.raw.event.detail || !geo.raw.event.detail.remarks) {
112
- t.fail('No Detail Section');
113
- }
114
- else {
115
- t.ok(geo.raw.event.detail['_flow-tags_']);
116
- delete geo.raw.event.detail['_flow-tags_'];
117
- t.deepEquals(geo.raw.event.detail, {
118
- contact: { _attributes: { callsign: 'UNKNOWN' } },
119
- link: [
120
- { _attributes: { point: '39.098,-108.587' } },
121
- { _attributes: { point: '39.032,-108.587' } },
122
- { _attributes: { point: '39.032,-108.505' } },
123
- { _attributes: { point: '39.098,-108.505' } },
124
- { _attributes: { point: '39.098,-108.587' } }
125
- ],
126
- labels_on: { _attributes: { value: 'false' } },
127
- tog: { _attributes: { enabled: '0' } },
128
- strokeColor: { _attributes: { value: '-2130706688' } },
129
- strokeWeight: { _attributes: { value: '3' } },
130
- strokeStyle: { _attributes: { value: 'solid' } },
131
- remarks: { _attributes: {}, _text: '' }
132
- });
133
- }
134
- t.end();
135
- });
136
- test('CoT.from_geojson - Start', (t) => {
137
- const geo = CoT.from_geojson({
138
- type: 'Feature',
139
- properties: {
140
- // 1hr in the future
141
- start: new Date(+new Date() + 60 * 60 * 1000).toISOString()
142
- },
143
- geometry: {
144
- type: 'Point',
145
- coordinates: [1.1, 2.2]
146
- }
147
- });
148
- // Approx +/- 100ms + 1hr ahead of Now
149
- t.ok(+new Date(geo.raw.event._attributes.start) > +new Date() + 60 * 60 * 1000 - 100);
150
- t.ok(+new Date(geo.raw.event._attributes.start) < +new Date() + 60 * 60 * 1000 + 100);
151
- // Approx +/- 100ms ahead of Now
152
- t.ok(+new Date(geo.raw.event._attributes.time) > +new Date() - 100);
153
- t.ok(+new Date(geo.raw.event._attributes.time) < +new Date() + 100);
154
- // Approx +/- 100ms +1hr20s ahead of now
155
- t.ok(+new Date(geo.raw.event._attributes.stale) > +new Date(geo.raw.event._attributes.start) - 100 + 20 * 1000);
156
- t.ok(+new Date(geo.raw.event._attributes.stale) < +new Date(geo.raw.event._attributes.start) + 100 + 20 * 1000);
157
- t.end();
158
- });
159
- test('CoT.from_geojson - Start/Stale', (t) => {
160
- const geo = CoT.from_geojson({
161
- type: 'Feature',
162
- properties: {
163
- // 1hr in the future
164
- start: new Date(+new Date() + 60 * 60 * 1000).toISOString(),
165
- stale: 60 * 1000
166
- },
167
- geometry: {
168
- type: 'Point',
169
- coordinates: [1.1, 2.2]
170
- }
171
- });
172
- // Approx +/- 100ms + 1hr ahead of Now
173
- t.ok(+new Date(geo.raw.event._attributes.start) > +new Date() + 60 * 60 * 1000 - 100);
174
- t.ok(+new Date(geo.raw.event._attributes.start) < +new Date() + 60 * 60 * 1000 + 100);
175
- // Approx +/- 100ms ahead of Now
176
- t.ok(+new Date(geo.raw.event._attributes.time) > +new Date() - 100);
177
- t.ok(+new Date(geo.raw.event._attributes.time) < +new Date() + 100);
178
- // Approx +/- 100ms +1hr60s ahead of now
179
- t.ok(+new Date(geo.raw.event._attributes.stale) > +new Date(geo.raw.event._attributes.start) - 100 + 60 * 1000);
180
- t.ok(+new Date(geo.raw.event._attributes.stale) < +new Date(geo.raw.event._attributes.start) + 100 + 60 * 1000);
181
- t.end();
182
- });
183
- test('CoT.from_geojson - Icon', (t) => {
184
- const geo = CoT.from_geojson({
185
- type: 'Feature',
186
- properties: {
187
- icon: '66f14976-4b62-4023-8edb-d8d2ebeaa336/Public Safety Air/EMS_ROTOR.png'
188
- },
189
- geometry: {
190
- type: 'Point',
191
- coordinates: [1.1, 2.2]
192
- }
193
- });
194
- if (!geo.raw.event.detail || !geo.raw.event.detail.remarks) {
195
- t.fail('No Detail Section');
196
- }
197
- else {
198
- t.ok(geo.raw.event.detail['_flow-tags_']);
199
- delete geo.raw.event.detail['_flow-tags_'];
200
- t.deepEquals(geo.raw.event.detail, {
201
- contact: { _attributes: { callsign: 'UNKNOWN' } },
202
- usericon: { _attributes: { iconsetpath: '66f14976-4b62-4023-8edb-d8d2ebeaa336/Public Safety Air/EMS_ROTOR.png' } }, remarks: { _attributes: {}, _text: '' }
203
- });
204
- }
205
- t.end();
206
- });
207
- test('CoT.from_geojson - Height Above Earth', (t) => {
208
- t.deepEquals(CoT.from_geojson({
209
- type: 'Feature',
210
- properties: {},
211
- geometry: {
212
- type: 'Point',
213
- coordinates: [1.1, 2.2]
214
- }
215
- }).raw.event.point._attributes, {
216
- lat: '2.2',
217
- lon: '1.1',
218
- hae: '0.0',
219
- ce: '9999999.0',
220
- le: '9999999.0'
221
- }, 'default hae');
222
- t.deepEquals(CoT.from_geojson({
223
- type: 'Feature',
224
- properties: {},
225
- geometry: {
226
- type: 'Point',
227
- coordinates: [1.1, 2.2, 101]
228
- }
229
- }).raw.event.point._attributes, {
230
- lat: '2.2',
231
- lon: '1.1',
232
- hae: '101',
233
- ce: '9999999.0',
234
- le: '9999999.0'
235
- }, 'custom hae (meters)');
236
- t.end();
237
- });
238
- test('CoT.from_geojson - Course & Speed', (t) => {
239
- const cot = CoT.from_geojson({
240
- type: 'Feature',
241
- properties: {
242
- course: 260,
243
- speed: 120
244
- },
245
- geometry: {
246
- type: 'Point',
247
- coordinates: [1.1, 2.2]
248
- }
249
- });
250
- if (!cot.raw.event.detail || !cot.raw.event.detail.remarks) {
251
- t.fail('No Detail Section');
252
- }
253
- else {
254
- t.deepEquals(cot.raw.event.detail.track, {
255
- _attributes: {
256
- 'course': '260',
257
- 'speed': '120'
258
- }
259
- }, 'track');
260
- }
261
- t.end();
262
- });
263
- test('CoT.from_geojson - Remarks', (t) => {
264
- const cot = CoT.from_geojson({
265
- type: 'Feature',
266
- properties: {
267
- course: 260,
268
- speed: 120,
269
- remarks: 'Test'
270
- },
271
- geometry: {
272
- type: 'Point',
273
- coordinates: [1.1, 2.2]
274
- }
275
- });
276
- if (!cot.raw.event.detail || !cot.raw.event.detail.remarks) {
277
- t.fail('No Detail Section');
278
- }
279
- else {
280
- t.deepEquals(cot.raw.event.detail.remarks, {
281
- _attributes: {},
282
- _text: 'Test'
283
- }, 'track');
284
- }
285
- t.end();
286
- });
287
- //# sourceMappingURL=from_geojson.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"from_geojson.test.js","sourceRoot":"","sources":["../../test/from_geojson.test.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import test from 'tape';
2
- import CoT from '../index.js';
3
- test('Decode iTAK COT message', (t) => {
4
- const packet = `<event version="2.0" uid="layer-35-4707" type="a-f-G" how="m-g" time="2024-06-07T15:28:48Z" start="2024-06-07T15:28:48.669Z" stale="2024-06-07T15:33:48.669Z"><point lat="39.1" lon="-105.1" hae="0.0" ce="9999999.0" le="9999999.0"/><detail><contact callsign="9T20"/><usericon iconsetpath="f7f71666-8b28-4b57-9fbb-e38e61d33b79/Google/police.png"/><remarks>Incident ID: 6841390
5
- Master Incident Number: 05242024-0253042
6
- Unit Name: 9F20
7
- Unit ID: 3412
8
- Status: Dispatched
9
- Jurisdiction: Golden PD
10
- Speed: 1</remarks><_flow-tags_ TAK-Server-e87a0e02420b44a08f6032bcf1877745="2024-06-07T15:28:48Z"><NodeCoT-8.1.0>2024-06-07T15:28:48.669Z</NodeCoT-8.1.0></_flow-tags_></detail></event>`;
11
- const cot = new CoT(packet);
12
- if (!cot.raw.event.detail) {
13
- t.fail('No Detail Section');
14
- }
15
- else {
16
- t.ok(cot.raw.event.detail['_flow-tags_']);
17
- delete cot.raw.event.detail['_flow-tags_'];
18
- t.deepEquals({
19
- 'event': {
20
- '_attributes': {
21
- 'version': '2.0',
22
- 'uid': 'layer-35-4707',
23
- 'type': 'a-f-G',
24
- 'time': '2024-06-07T15:28:48Z',
25
- 'start': '2024-06-07T15:28:48.669Z',
26
- 'stale': '2024-06-07T15:33:48.669Z',
27
- 'how': 'm-g',
28
- },
29
- 'point': {
30
- '_attributes': {
31
- 'lat': '39.1',
32
- 'lon': '-105.1',
33
- 'hae': '0.0',
34
- 'ce': '9999999.0',
35
- 'le': '9999999.0'
36
- }
37
- },
38
- detail: {
39
- usericon: {
40
- _attributes: {
41
- "iconsetpath": "f7f71666-8b28-4b57-9fbb-e38e61d33b79/Google/police.png"
42
- }
43
- },
44
- contact: {
45
- _attributes: {
46
- callsign: '9T20',
47
- }
48
- },
49
- remarks: {
50
- "_text": "Incident ID: 6841390\nMaster Incident Number: 05242024-0253042\nUnit Name: 9F20\nUnit ID: 3412\nStatus: Dispatched\nJurisdiction: Golden PD\nSpeed: 1"
51
- },
52
- }
53
- }
54
- }, cot.raw);
55
- t.deepEquals(cot.to_geojson(), {
56
- id: 'layer-35-4707',
57
- type: 'Feature',
58
- path: '/',
59
- properties: {
60
- callsign: '9T20',
61
- type: 'a-f-G',
62
- how: 'm-g',
63
- center: [-105.1, 39.1, 0],
64
- remarks: "Incident ID: 6841390\nMaster Incident Number: 05242024-0253042\nUnit Name: 9F20\nUnit ID: 3412\nStatus: Dispatched\nJurisdiction: Golden PD\nSpeed: 1",
65
- time: '2024-06-07T15:28:48Z',
66
- start: '2024-06-07T15:28:48.669Z',
67
- stale: '2024-06-07T15:33:48.669Z',
68
- icon: "f7f71666-8b28-4b57-9fbb-e38e61d33b79/Google/police.png",
69
- metadata: {},
70
- },
71
- geometry: {
72
- type: 'Point',
73
- coordinates: [-105.1, 39.1, 0]
74
- }
75
- });
76
- }
77
- t.end();
78
- });
79
- //# sourceMappingURL=newlines.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newlines.test.js","sourceRoot":"","sources":["../../test/newlines.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG;;;;;;yLAMsK,CAAA;IAErL,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3C,CAAC,CAAC,UAAU,CAAC;YACT,OAAO,EAAE;gBACL,aAAa,EAAE;oBACX,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,sBAAsB;oBAC9B,OAAO,EAAE,0BAA0B;oBACnC,OAAO,EAAE,0BAA0B;oBACnC,KAAK,EAAE,KAAK;iBACf;gBACD,OAAO,EAAE;oBACL,aAAa,EAAE;wBACX,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,QAAQ;wBACf,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,WAAW;qBACpB;iBACJ;gBACD,MAAM,EAAE;oBACJ,QAAQ,EAAE;wBACN,WAAW,EAAE;4BACT,aAAa,EAAE,wDAAwD;yBAC1E;qBACJ;oBACD,OAAO,EAAE;wBACL,WAAW,EAAE;4BACT,QAAQ,EAAE,MAAM;yBACnB;qBACJ;oBACD,OAAO,EAAE;wBACL,OAAO,EAAE,uJAAuJ;qBACnK;iBACJ;aACJ;SACJ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEZ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YAC3B,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,GAAG;YACT,UAAU,EAAE;gBACR,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,KAAK;gBACV,MAAM,EAAE,CAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1B,OAAO,EAAE,uJAAuJ;gBAChK,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,0BAA0B;gBACjC,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE,wDAAwD;gBAC9D,QAAQ,EAAE,EAAE;aACf;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAE;aACnC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
- import test from 'tape';
4
- import CoT from '../index.js';
5
- import { fileURLToPath } from 'node:url';
6
- for (const fixturename of await fs.readdir(new URL('./fixtures/', import.meta.url))) {
7
- test(`GeoJSON Reversal Tests: ${fixturename}`, async (t) => {
8
- const fixture = JSON.parse(String(await fs.readFile(path.join(path.parse(fileURLToPath(import.meta.url)).dir, 'fixtures/', fixturename))));
9
- const geo = CoT.from_geojson(fixture);
10
- const output = geo.to_geojson();
11
- t.deepEquals(fixture, output, fixturename);
12
- t.end();
13
- });
14
- }
15
- //# sourceMappingURL=reversal-geojson.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reversal-geojson.test.js","sourceRoot":"","sources":["../../test/reversal-geojson.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,CAAC,2BAA2B,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,OAAO,GAA2B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACnK,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEhC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE3C,CAAC,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,54 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
- import test from 'tape';
4
- import CoT from '../index.js';
5
- import { fileURLToPath } from 'node:url';
6
- for (const fixturename of await fs.readdir(new URL('./fixtures/', import.meta.url))) {
7
- test(`Protobuf Reversal Tests: ${fixturename}`, async (t) => {
8
- const fixture = JSON.parse(String(await fs.readFile(path.join(path.parse(fileURLToPath(import.meta.url)).dir, 'fixtures/', fixturename))));
9
- const geo = CoT.from_geojson(fixture);
10
- const intermediate = geo.to_proto();
11
- const output = CoT.from_proto(intermediate);
12
- t.deepEquals(fixture, output.to_geojson(), fixturename);
13
- t.end();
14
- });
15
- }
16
- // Ref: https://github.com/dfpc-coe/node-CoT/issues/55
17
- test('Protobuf Multiple Calls', (t) => {
18
- const cot = new CoT({
19
- event: {
20
- _attributes: {
21
- version: '2.0',
22
- uid: 'ebbf42a7-ea71-43a1-baf6-e259c3d115bf',
23
- type: 'u-rb-a',
24
- how: 'h-e',
25
- time: '2024-08-30T22:28:02Z',
26
- start: '2024-08-30T22:28:02Z',
27
- stale: '2024-08-31T22:28:02Z',
28
- access: 'Undefined',
29
- },
30
- point: {
31
- _attributes: {
32
- lat: '39.0981196',
33
- lon: '-108.7395013',
34
- hae: '0.0',
35
- ce: '9999999.0',
36
- le: '9999999.0',
37
- },
38
- },
39
- detail: {
40
- contact: {
41
- _attributes: {
42
- callsign: 'sign',
43
- },
44
- },
45
- },
46
- },
47
- });
48
- const cot2 = CoT.from_proto(cot.to_proto());
49
- t.deepEqual(cot2.raw.event.detail?.contact?._attributes.callsign, 'sign');
50
- const cot3 = CoT.from_proto(cot.to_proto());
51
- t.deepEqual(cot3.raw.event.detail?.contact?._attributes.callsign, 'sign');
52
- t.end();
53
- });
54
- //# sourceMappingURL=reversal-proto.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reversal-proto.test.js","sourceRoot":"","sources":["../../test/reversal-proto.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,CAAC,4BAA4B,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,OAAO,GAA2B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACnK,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;QAExD,CAAC,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AAED,sDAAsD;AACtD,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAChB,KAAK,EAAE;YACH,WAAW,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,sCAAsC;gBAC3C,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,sBAAsB;gBAC7B,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,WAAW;aACtB;YACD,KAAK,EAAE;gBACH,WAAW,EAAE;oBACT,GAAG,EAAE,YAAY;oBACjB,GAAG,EAAE,cAAc;oBACnB,GAAG,EAAE,KAAK;oBACV,EAAE,EAAE,WAAW;oBACf,EAAE,EAAE,WAAW;iBAClB;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE;oBACL,WAAW,EAAE;wBACT,QAAQ,EAAE,MAAM;qBACnB;iBACJ;aACJ;SACJ;KACJ,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3C,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACzE,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3C,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAEzE,CAAC,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Stream } from 'node:stream';
2
- export default async function stream2buffer(stream) {
3
- return new Promise((resolve, reject) => {
4
- const _buf = Array();
5
- stream.on("data", chunk => _buf.push(chunk));
6
- stream.on("end", () => resolve(Buffer.concat(_buf)));
7
- stream.on("error", (err) => reject(`error converting stream - ${err}`));
8
- });
9
- }
10
- //# sourceMappingURL=stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../test/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IACtD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,KAAK,EAAU,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,MAAM,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC"}