@tak-ps/node-cot 12.17.1 → 12.18.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 (120) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/lib/data-package.js +64 -16
  3. package/dist/lib/data-package.js.map +1 -1
  4. package/dist/lib/types/iconset.js +12 -4
  5. package/dist/lib/types/iconset.js.map +1 -1
  6. package/dist/lib/xml/basemap.js +1 -1
  7. package/dist/lib/xml/basemap.js.map +1 -1
  8. package/dist/lib/xml/iconset.js +29 -2
  9. package/dist/lib/xml/iconset.js.map +1 -1
  10. package/dist/package.json +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/lib/data-package.ts +70 -17
  13. package/lib/types/iconset.ts +14 -4
  14. package/lib/xml/basemap.ts +2 -2
  15. package/lib/xml/iconset.ts +36 -3
  16. package/lib/xml-document.ts +1 -1
  17. package/package.json +1 -1
  18. package/tsconfig.json +1 -0
  19. package/dist/test/basemaps.test.js +0 -16
  20. package/dist/test/basemaps.test.js.map +0 -1
  21. package/dist/test/chat.test.js +0 -97
  22. package/dist/test/chat.test.js.map +0 -1
  23. package/dist/test/cot-fileshare.test.js +0 -89
  24. package/dist/test/cot-fileshare.test.js.map +0 -1
  25. package/dist/test/cot-itak.test.js +0 -95
  26. package/dist/test/cot-itak.test.js.map +0 -1
  27. package/dist/test/cot-mma.test.js +0 -108
  28. package/dist/test/cot-mma.test.js.map +0 -1
  29. package/dist/test/cot-polyline.test.js +0 -98
  30. package/dist/test/cot-polyline.test.js.map +0 -1
  31. package/dist/test/cot-range-and-bearing.test.js +0 -98
  32. package/dist/test/cot-range-and-bearing.test.js.map +0 -1
  33. package/dist/test/cot-routes.test.js +0 -466
  34. package/dist/test/cot-routes.test.js.map +0 -1
  35. package/dist/test/cot-types.test.js +0 -7
  36. package/dist/test/cot-types.test.js.map +0 -1
  37. package/dist/test/cot-uas-tool.test.js +0 -286
  38. package/dist/test/cot-uas-tool.test.js.map +0 -1
  39. package/dist/test/cot-video.test.js +0 -196
  40. package/dist/test/cot-video.test.js.map +0 -1
  41. package/dist/test/cot_is.test.js +0 -353
  42. package/dist/test/cot_is.test.js.map +0 -1
  43. package/dist/test/data-package.test.js +0 -234
  44. package/dist/test/data-package.test.js.map +0 -1
  45. package/dist/test/diff.test.js +0 -73
  46. package/dist/test/diff.test.js.map +0 -1
  47. package/dist/test/flow-tags.test.js +0 -19
  48. package/dist/test/flow-tags.test.js.map +0 -1
  49. package/dist/test/force-delete.js +0 -46
  50. package/dist/test/force-delete.js.map +0 -1
  51. package/dist/test/from_geojson.test.js +0 -287
  52. package/dist/test/from_geojson.test.js.map +0 -1
  53. package/dist/test/newlines.test.js +0 -79
  54. package/dist/test/newlines.test.js.map +0 -1
  55. package/dist/test/reversal-geojson.test.js +0 -15
  56. package/dist/test/reversal-geojson.test.js.map +0 -1
  57. package/dist/test/reversal-proto.test.js +0 -54
  58. package/dist/test/reversal-proto.test.js.map +0 -1
  59. package/dist/test/stream.js +0 -10
  60. package/dist/test/stream.js.map +0 -1
  61. package/dist/test/taskings-mission.test.js +0 -140
  62. package/dist/test/taskings-mission.test.js.map +0 -1
  63. package/dist/test/util.test.js +0 -25
  64. package/dist/test/util.test.js.map +0 -1
  65. package/dist/test/validation.test.js +0 -13
  66. package/dist/test/validation.test.js.map +0 -1
  67. package/test/basemaps/Bing_Hybrid.xml +0 -12
  68. package/test/basemaps/Bing_Maps.xml +0 -10
  69. package/test/basemaps/USGSBasemap.xml +0 -10
  70. package/test/basemaps/USGSImageryOnly.xml +0 -10
  71. package/test/basemaps/USGSImageryTopo.xml +0 -10
  72. package/test/basemaps/USGSShadedRelief.xml +0 -10
  73. package/test/basemaps/opentopomap.xml +0 -10
  74. package/test/basemaps.test.ts +0 -19
  75. package/test/chat.test.ts +0 -103
  76. package/test/cot-fileshare.test.ts +0 -92
  77. package/test/cot-itak.test.ts +0 -100
  78. package/test/cot-mma.test.ts +0 -111
  79. package/test/cot-polyline.test.ts +0 -103
  80. package/test/cot-range-and-bearing.test.ts +0 -100
  81. package/test/cot-routes.test.ts +0 -468
  82. package/test/cot-types.test.ts +0 -8
  83. package/test/cot-uas-tool.test.ts +0 -295
  84. package/test/cot-video.test.ts +0 -204
  85. package/test/cot_is.test.ts +0 -431
  86. package/test/data-package.test.ts +0 -314
  87. package/test/diff.test.ts +0 -80
  88. package/test/fixtures/archived.geojson +0 -20
  89. package/test/fixtures/attachments.geojson +0 -20
  90. package/test/fixtures/basic.geojson +0 -19
  91. package/test/fixtures/circle.geojson +0 -30
  92. package/test/fixtures/color.geojson +0 -21
  93. package/test/fixtures/fileshare.geojson +0 -28
  94. package/test/fixtures/geofence.geojson +0 -25
  95. package/test/fixtures/hae.geojson +0 -19
  96. package/test/fixtures/icon.geojson +0 -20
  97. package/test/fixtures/linestring.geojson +0 -28
  98. package/test/fixtures/marti-mission.geojson +0 -22
  99. package/test/fixtures/metadata.geojson +0 -24
  100. package/test/fixtures/mission-layer.geojson +0 -31
  101. package/test/fixtures/mission.geojson +0 -25
  102. package/test/fixtures/polygon.geojson +0 -33
  103. package/test/fixtures/props.geojson +0 -22
  104. package/test/fixtures/sensor.geojson +0 -31
  105. package/test/fixtures/video-connection.geojson +0 -27
  106. package/test/fixtures/video.geojson +0 -24
  107. package/test/flow-tags.test.ts +0 -21
  108. package/test/force-delete.ts +0 -50
  109. package/test/from_geojson.test.ts +0 -323
  110. package/test/newlines.test.ts +0 -83
  111. package/test/packages/AttachmentInManifest.zip +0 -0
  112. package/test/packages/COMilePosts.zip +0 -0
  113. package/test/packages/CameraCOTs.zip +0 -0
  114. package/test/packages/QuickPic.zip +0 -0
  115. package/test/reversal-geojson.test.ts +0 -19
  116. package/test/reversal-proto.test.ts +0 -60
  117. package/test/stream.ts +0 -10
  118. package/test/taskings-mission.test.ts +0 -148
  119. package/test/util.test.ts +0 -34
  120. package/test/validation.test.ts +0 -13
package/CHANGELOG.md CHANGED
@@ -12,6 +12,10 @@
12
12
 
13
13
  ### Pending Fixed
14
14
 
15
+ ### v12.18.0 - 2025-01-01
16
+
17
+ - :tada: Add `strict: false` mode to DataPackage parsing that will turn a zip file into a DataPackage if it is not valid
18
+
15
19
  ### v12.17.1 - 2024-12-27
16
20
 
17
21
  - :arrow_up: Update all core deps
@@ -48,6 +48,11 @@ const checkManifest = (new AJV({
48
48
  .compile(Manifest);
49
49
  /**
50
50
  * Helper class for creating and parsing static Data Packages
51
+ * @class
52
+ *
53
+ * @prop path The local path to the Data Package working directory
54
+ * @prop destroyed Indcates that the DataPackage has been destroyed and all local files removed
55
+ * @prop version DataPackage schema version - 2 is most common
51
56
  */
52
57
  export class DataPackage {
53
58
  path;
@@ -55,6 +60,10 @@ export class DataPackage {
55
60
  version;
56
61
  contents;
57
62
  settings;
63
+ /**
64
+ * @param uid Unique ID of the Data Package
65
+ * @param name Human Readable name of the DataPackage
66
+ */
58
67
  constructor(uid, name) {
59
68
  this.path = os.tmpdir() + '/' + randomUUID();
60
69
  this.destroyed = false;
@@ -123,33 +132,61 @@ export class DataPackage {
123
132
  return await DataPackage.hash(this.path + '/raw/' + entry);
124
133
  }
125
134
  /**
126
- * Return a DataPackage version of an unparsed Data Package Zip
135
+ * Return a DataPackage version of a raw Data Package Zip
136
+ *
137
+ * @public
138
+ * @param input path to zipped DataPackage on disk
139
+ * @param [opts] Parser Options
140
+ * @param [opts.strict] By default the DataPackage must contain a manifest file, turning strict mode off will generate a manifest based on the contents of the file
127
141
  */
128
- static async parse(input) {
142
+ static async parse(input, opts) {
143
+ input = input instanceof URL ? decodeURIComponent(input.pathname) : input;
144
+ if (!opts)
145
+ opts = {};
146
+ if (opts.strict === undefined)
147
+ opts.strict = true;
129
148
  const pkg = new DataPackage();
130
149
  const zip = new StreamZip.async({
131
150
  file: input,
132
151
  skipEntryNameValidation: true
133
152
  });
134
153
  const preentries = await zip.entries();
135
- if (!preentries['MANIFEST/manifest.xml'])
154
+ if (opts.strict && !preentries['MANIFEST/manifest.xml']) {
136
155
  throw new Err(400, null, 'No MANIFEST/manifest.xml found in Data Package');
156
+ }
137
157
  await fsp.mkdir(pkg.path + '/raw', { recursive: true });
138
158
  await zip.extract(null, pkg.path + '/raw/');
139
- const xml = xmljs.xml2js(String(await fsp.readFile(pkg.path + '/raw/MANIFEST/manifest.xml')), { compact: true });
140
- checkManifest(xml);
141
- if (checkManifest.errors)
142
- throw new Err(400, null, `${checkManifest.errors[0].message} (${checkManifest.errors[0].instancePath})`);
143
- const manifest = xml;
144
- pkg.version = manifest.MissionPackageManifest._attributes.version;
145
- if (Array.isArray(manifest.MissionPackageManifest.Contents.Content)) {
146
- pkg.contents = manifest.MissionPackageManifest.Contents.Content;
159
+ if (preentries['MANIFEST/manifest.xml']) {
160
+ const xml = xmljs.xml2js(String(await fsp.readFile(pkg.path + '/raw/MANIFEST/manifest.xml')), { compact: true });
161
+ checkManifest(xml);
162
+ if (checkManifest.errors)
163
+ throw new Err(400, null, `${checkManifest.errors[0].message} (${checkManifest.errors[0].instancePath})`);
164
+ const manifest = xml;
165
+ pkg.version = manifest.MissionPackageManifest._attributes.version;
166
+ if (Array.isArray(manifest.MissionPackageManifest.Contents.Content)) {
167
+ pkg.contents = manifest.MissionPackageManifest.Contents.Content;
168
+ }
169
+ else {
170
+ pkg.contents = [manifest.MissionPackageManifest.Contents.Content];
171
+ }
172
+ for (const param of manifest.MissionPackageManifest.Configuration.Parameter) {
173
+ if (['onReceiveImport', 'onReceiveDelete'].includes(param._attributes.name) && typeof param._attributes.value === 'string') {
174
+ pkg.settings[param._attributes.name] = param._attributes.value === 'false' ? false : true;
175
+ }
176
+ else {
177
+ pkg.settings[param._attributes.name] = param._attributes.value;
178
+ }
179
+ }
147
180
  }
148
181
  else {
149
- pkg.contents = [manifest.MissionPackageManifest.Contents.Content];
150
- }
151
- for (const param of manifest.MissionPackageManifest.Configuration.Parameter) {
152
- pkg.settings[param._attributes.name] = param._attributes.value;
182
+ pkg.settings.name = path.parse(input).name;
183
+ pkg.settings.uid = await this.hash(input);
184
+ pkg.setEphemeral();
185
+ for (const [key, value] of Object.entries(preentries)) {
186
+ if (value.isDirectory)
187
+ continue;
188
+ pkg.#addContent(key, await pkg.hash(key));
189
+ }
153
190
  }
154
191
  return pkg;
155
192
  }
@@ -164,7 +201,7 @@ export class DataPackage {
164
201
  Parameter: [{
165
202
  _attributes: { name: 'uid', value: uid },
166
203
  }, {
167
- _attributes: { name: 'name', value: name }
204
+ _attributes: { name: 'name', value: name ?? path.parse(zipEntry).base }
168
205
  }]
169
206
  });
170
207
  }
@@ -284,6 +321,17 @@ export class DataPackage {
284
321
  }
285
322
  return this.#attachments(cots, opts);
286
323
  }
324
+ async getFileBuffer(path) {
325
+ if (this.destroyed)
326
+ throw new Err(400, null, 'Attempt to access Data Package after it has been destroyed');
327
+ try {
328
+ await fsp.access(`${this.path}/raw/${path}`);
329
+ }
330
+ catch (err) {
331
+ throw new Err(400, err instanceof Error ? err : new Error(String(err)), 'Could not access file in Data Package');
332
+ }
333
+ return await fsp.readFile(`${this.path}/raw/${path}`);
334
+ }
287
335
  /**
288
336
  * Get any file from a Package
289
337
  */
@@ -1 +1 @@
1
- {"version":3,"file":"data-package.js","sourceRoot":"","sources":["../../lib/data-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-package.js","sourceRoot":"","sources":["../../lib/data-package.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,26 @@
1
1
  import { Type } from '@sinclair/typebox';
2
2
  export const IconsetAttributes = Type.Object({
3
3
  uid: Type.String(),
4
- version: Type.String(),
4
+ version: Type.Integer(),
5
5
  name: Type.String(),
6
6
  default_group: Type.Optional(Type.String()),
7
7
  default_friendly: Type.Optional(Type.String()),
8
8
  default_hostile: Type.Optional(Type.String()),
9
9
  default_neutral: Type.Optional(Type.String()),
10
10
  default_unknown: Type.Optional(Type.String()),
11
- skip_resize: Type.Boolean({ default: false }),
11
+ skip_resize: Type.Optional(Type.Boolean()),
12
+ });
13
+ export const IconAttributes = Type.Object({
14
+ name: Type.String(),
15
+ type2525b: Type.Optional(Type.String())
16
+ });
17
+ export const Icon = Type.Object({
18
+ _attributes: IconAttributes
12
19
  });
13
20
  export default Type.Object({
14
21
  iconset: Type.Object({
15
- _attributes: IconsetAttributes
16
- })
22
+ _attributes: IconsetAttributes,
23
+ icon: Type.Union([Type.Array(Icon), Icon])
24
+ }),
17
25
  });
18
26
  //# sourceMappingURL=iconset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iconset.js","sourceRoot":"","sources":["../../../lib/types/iconset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CAChD,CAAC,CAAA;AAEF,eAAe,IAAI,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,iBAAiB;KACjC,CAAC;CACL,CAAC,CAAA"}
1
+ {"version":3,"file":"iconset.js","sourceRoot":"","sources":["../../../lib/types/iconset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;IACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;CAC7C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,cAAc;CAC9B,CAAC,CAAA;AAEF,eAAe,IAAI,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;KAC7C,CAAC;CACL,CAAC,CAAA"}
@@ -16,7 +16,7 @@ export class Basemap extends XMLDocument {
16
16
  * Return a Basemap from a string XML representation
17
17
  */
18
18
  static parse(input) {
19
- const basemap = super.check(input, checkBasemap);
19
+ const basemap = super.check(String(input), checkBasemap);
20
20
  return new Basemap(basemap);
21
21
  }
22
22
  to_json() {
@@ -1 +1 @@
1
- {"version":3,"file":"basemap.js","sourceRoot":"","sources":["../../../lib/xml/basemap.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACxB,CAAC,CAAC;KACE,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5B;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAwB;IACjD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAc,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QASH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG;YAAE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,oCAAoC,CAAC,CAAC;QAElG,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrF,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK;YACvC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACtG,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACtG,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACjG,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvG,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACzH,CAAA;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"basemap.js","sourceRoot":"","sources":["../../../lib/xml/basemap.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACxB,CAAC,CAAC;KACE,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5B;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAwB;IACjD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAsB;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAc,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QACtE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QASH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG;YAAE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,oCAAoC,CAAC,CAAC;QAElG,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrF,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK;YACvC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACtG,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACtG,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACjG,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvG,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACzH,CAAA;IACL,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import XMLDocument from '../xml-document.js';
2
- import IconsetSchema from '../types/iconset.js';
2
+ import IconsetSchema, { IconsetAttributes, IconAttributes } from '../types/iconset.js';
3
3
  import AJV from 'ajv';
4
4
  const checkIconset = (new AJV({
5
5
  allErrors: true,
@@ -15,8 +15,35 @@ export class Iconset extends XMLDocument {
15
15
  * Return an Iconset from a string XML representation
16
16
  */
17
17
  static parse(input) {
18
- const basemap = super.check(input, checkIconset);
18
+ const basemap = super.check(String(input), checkIconset);
19
19
  return new Iconset(basemap);
20
20
  }
21
+ get uid() {
22
+ return this.raw.iconset._attributes.uid;
23
+ }
24
+ get name() {
25
+ return this.raw.iconset._attributes.name;
26
+ }
27
+ icons() {
28
+ const icons = new Set();
29
+ for (const icon of Array.isArray(this.raw.iconset.icon) ? this.raw.iconset.icon : [this.raw.iconset.icon]) {
30
+ icons.add(icon._attributes);
31
+ }
32
+ return icons;
33
+ }
34
+ to_json() {
35
+ const iconset = {
36
+ uid: this.raw.iconset._attributes.uid,
37
+ version: this.raw.iconset._attributes.version,
38
+ name: this.raw.iconset._attributes.name,
39
+ skip_resize: this.raw.iconset._attributes.skip_resize === undefined ? false : this.raw.iconset._attributes.skip_resize,
40
+ default_group: this.raw.iconset._attributes.default_group,
41
+ default_friendly: this.raw.iconset._attributes.default_friendly,
42
+ default_hostile: this.raw.iconset._attributes.default_hostile,
43
+ default_neutral: this.raw.iconset._attributes.default_neutral,
44
+ default_unknown: this.raw.iconset._attributes.default_unknown
45
+ };
46
+ return iconset;
47
+ }
21
48
  }
22
49
  //# sourceMappingURL=iconset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iconset.js","sourceRoot":"","sources":["../../../lib/xml/iconset.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACxB,CAAC,CAAC;KACE,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5B;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAwB;IACjD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAc,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACJ"}
1
+ {"version":3,"file":"iconset.js","sourceRoot":"","sources":["../../../lib/xml/iconset.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,OAAO,aAAa,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACxB,CAAC,CAAC;KACE,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5B;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAwB;IACjD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAsB;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAc,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QACtE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK;QACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,EAAE,CAAC;YAC1G,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QACH,MAAM,OAAO,GAAqC;YAC9C,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;YACrC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO;YAC7C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;YACvC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW;YACtH,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa;YACzD,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB;YAC/D,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe;YAC7D,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe;YAC7D,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe;SAChE,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "12.17.1",
4
+ "version": "12.18.0",
5
5
  "description": "Lightweight JavaScript library for parsing and manipulating TAK messages",
6
6
  "author": "Nick Ingalls <nick@ingalls.ca>",
7
7
  "main": "dist/index.js",
@@ -1 +1 @@
1
- {"root":["../index.ts","../test/basemaps.test.ts","../test/chat.test.ts","../test/cot-fileshare.test.ts","../test/cot-itak.test.ts","../test/cot-mma.test.ts","../test/cot-polyline.test.ts","../test/cot-range-and-bearing.test.ts","../test/cot-routes.test.ts","../test/cot-types.test.ts","../test/cot-uas-tool.test.ts","../test/cot-video.test.ts","../test/cot_is.test.ts","../test/data-package.test.ts","../test/diff.test.ts","../test/flow-tags.test.ts","../test/force-delete.ts","../test/from_geojson.test.ts","../test/newlines.test.ts","../test/reversal-geojson.test.ts","../test/reversal-proto.test.ts","../test/stream.ts","../test/taskings-mission.test.ts","../test/util.test.ts","../test/validation.test.ts","../lib/chat.ts","../lib/cot.ts","../lib/data-package.ts","../lib/fileshare.ts","../lib/force-delete.ts","../lib/sensor.ts","../lib/xml-document.ts"],"version":"5.7.2"}
1
+ {"root":["../index.ts","../test/basemaps.test.ts","../test/chat.test.ts","../test/cot-fileshare.test.ts","../test/cot-itak.test.ts","../test/cot-mma.test.ts","../test/cot-polyline.test.ts","../test/cot-range-and-bearing.test.ts","../test/cot-routes.test.ts","../test/cot-types.test.ts","../test/cot-uas-tool.test.ts","../test/cot-video.test.ts","../test/cot_is.test.ts","../test/data-package.test.ts","../test/diff.test.ts","../test/flow-tags.test.ts","../test/force-delete.ts","../test/from_geojson.test.ts","../test/newlines.test.ts","../test/reversal-geojson.test.ts","../test/reversal-proto.test.ts","../test/stream.ts","../test/taskings-mission.test.ts","../test/util.test.ts","../test/validation.test.ts","../lib/chat.ts","../lib/cot.ts","../lib/data-package.ts","../lib/fileshare.ts","../lib/force-delete.ts","../lib/sensor.ts","../lib/xml-document.ts","../lib/xml/basemap.ts","../lib/xml/iconset.ts"],"version":"5.7.2"}
@@ -54,6 +54,11 @@ const checkManifest = (new AJV({
54
54
 
55
55
  /**
56
56
  * Helper class for creating and parsing static Data Packages
57
+ * @class
58
+ *
59
+ * @prop path The local path to the Data Package working directory
60
+ * @prop destroyed Indcates that the DataPackage has been destroyed and all local files removed
61
+ * @prop version DataPackage schema version - 2 is most common
57
62
  */
58
63
  export class DataPackage {
59
64
  path: string;
@@ -69,6 +74,10 @@ export class DataPackage {
69
74
  [k: string]: boolean | string | undefined;
70
75
  }
71
76
 
77
+ /**
78
+ * @param uid Unique ID of the Data Package
79
+ * @param name Human Readable name of the DataPackage
80
+ */
72
81
  constructor(uid?: string, name?: string) {
73
82
  this.path = os.tmpdir() + '/' + randomUUID();
74
83
  this.destroyed = false;
@@ -146,9 +155,21 @@ export class DataPackage {
146
155
 
147
156
 
148
157
  /**
149
- * Return a DataPackage version of an unparsed Data Package Zip
158
+ * Return a DataPackage version of a raw Data Package Zip
159
+ *
160
+ * @public
161
+ * @param input path to zipped DataPackage on disk
162
+ * @param [opts] Parser Options
163
+ * @param [opts.strict] By default the DataPackage must contain a manifest file, turning strict mode off will generate a manifest based on the contents of the file
150
164
  */
151
- static async parse(input: string): Promise<DataPackage> {
165
+ static async parse(input: string | URL, opts?: {
166
+ strict?: boolean
167
+ }): Promise<DataPackage> {
168
+ input = input instanceof URL ? decodeURIComponent(input.pathname) : input;
169
+
170
+ if (!opts) opts = {};
171
+ if (opts.strict === undefined) opts.strict = true;
172
+
152
173
  const pkg = new DataPackage();
153
174
 
154
175
  const zip = new StreamZip.async({
@@ -158,33 +179,53 @@ export class DataPackage {
158
179
 
159
180
  const preentries = await zip.entries();
160
181
 
161
- if (!preentries['MANIFEST/manifest.xml']) throw new Err(400, null, 'No MANIFEST/manifest.xml found in Data Package');
182
+ if (opts.strict && !preentries['MANIFEST/manifest.xml']) {
183
+ throw new Err(400, null, 'No MANIFEST/manifest.xml found in Data Package');
184
+ }
162
185
 
163
186
  await fsp.mkdir(pkg.path + '/raw', { recursive: true });
164
187
  await zip.extract(null, pkg.path + '/raw/');
165
188
 
166
- const xml = xmljs.xml2js(String(await fsp.readFile(pkg.path + '/raw/MANIFEST/manifest.xml')), { compact: true })
189
+ if (preentries['MANIFEST/manifest.xml']) {
190
+ const xml = xmljs.xml2js(String(await fsp.readFile(pkg.path + '/raw/MANIFEST/manifest.xml')), { compact: true })
167
191
 
168
- checkManifest(xml);
169
- if (checkManifest.errors) throw new Err(400, null, `${checkManifest.errors[0].message} (${checkManifest.errors[0].instancePath})`);
170
- const manifest = xml as Static<typeof Manifest>;
192
+ checkManifest(xml);
193
+ if (checkManifest.errors) throw new Err(400, null, `${checkManifest.errors[0].message} (${checkManifest.errors[0].instancePath})`);
194
+ const manifest = xml as Static<typeof Manifest>;
171
195
 
172
- pkg.version = manifest.MissionPackageManifest._attributes.version;
196
+ pkg.version = manifest.MissionPackageManifest._attributes.version;
173
197
 
174
- if (Array.isArray(manifest.MissionPackageManifest.Contents.Content)) {
175
- pkg.contents = manifest.MissionPackageManifest.Contents.Content;
176
- } else {
177
- pkg.contents = [ manifest.MissionPackageManifest.Contents.Content ];
178
- }
198
+ if (Array.isArray(manifest.MissionPackageManifest.Contents.Content)) {
199
+ pkg.contents = manifest.MissionPackageManifest.Contents.Content;
200
+ } else {
201
+ pkg.contents = [ manifest.MissionPackageManifest.Contents.Content ];
202
+ }
179
203
 
180
- for (const param of manifest.MissionPackageManifest.Configuration.Parameter) {
181
- pkg.settings[param._attributes.name] = param._attributes.value;
204
+ for (const param of manifest.MissionPackageManifest.Configuration.Parameter) {
205
+ if (['onReceiveImport', 'onReceiveDelete'].includes(param._attributes.name) && typeof param._attributes.value === 'string') {
206
+ pkg.settings[param._attributes.name] = param._attributes.value === 'false' ? false : true;
207
+ } else {
208
+ pkg.settings[param._attributes.name] = param._attributes.value;
209
+ }
210
+ }
211
+ } else {
212
+ pkg.settings.name = path.parse(input).name;
213
+ pkg.settings.uid = await this.hash(input);
214
+ pkg.setEphemeral();
215
+
216
+ for (const [key, value] of Object.entries(preentries)) {
217
+ if (value.isDirectory) continue;
218
+ pkg.#addContent(
219
+ key,
220
+ await pkg.hash(key)
221
+ );
222
+ }
182
223
  }
183
224
 
184
225
  return pkg;
185
226
  }
186
227
 
187
- #addContent(zipEntry: string, uid: string, name: string, ignore = false): void {
228
+ #addContent(zipEntry: string, uid: string, name?: string, ignore = false): void {
188
229
  if (this.destroyed) throw new Err(400, null, 'Attempt to access Data Package after it has been destroyed');
189
230
 
190
231
  // TODO: Seen in the wild but not currently implemented here:
@@ -196,7 +237,7 @@ export class DataPackage {
196
237
  Parameter: [{
197
238
  _attributes: { name: 'uid', value: uid },
198
239
  },{
199
- _attributes: { name: 'name', value: name }
240
+ _attributes: { name: 'name', value: name ?? path.parse(zipEntry).base }
200
241
  }]
201
242
  });
202
243
  }
@@ -337,6 +378,18 @@ export class DataPackage {
337
378
  return this.#attachments(cots, opts);
338
379
  }
339
380
 
381
+ async getFileBuffer(path: string): Promise<Buffer> {
382
+ if (this.destroyed) throw new Err(400, null, 'Attempt to access Data Package after it has been destroyed');
383
+
384
+ try {
385
+ await fsp.access(`${this.path}/raw/${path}`)
386
+ } catch (err) {
387
+ throw new Err(400, err instanceof Error ? err : new Error(String(err)), 'Could not access file in Data Package');
388
+ }
389
+
390
+ return await fsp.readFile(`${this.path}/raw/${path}`);
391
+ }
392
+
340
393
  /**
341
394
  * Get any file from a Package
342
395
  */
@@ -2,18 +2,28 @@ import { Type } from '@sinclair/typebox';
2
2
 
3
3
  export const IconsetAttributes = Type.Object({
4
4
  uid: Type.String(),
5
- version: Type.String(),
5
+ version: Type.Integer(),
6
6
  name: Type.String(),
7
7
  default_group: Type.Optional(Type.String()),
8
8
  default_friendly: Type.Optional(Type.String()),
9
9
  default_hostile: Type.Optional(Type.String()),
10
10
  default_neutral: Type.Optional(Type.String()),
11
11
  default_unknown: Type.Optional(Type.String()),
12
- skip_resize: Type.Boolean({ default: false }),
12
+ skip_resize: Type.Optional(Type.Boolean()),
13
+ })
14
+
15
+ export const IconAttributes = Type.Object({
16
+ name: Type.String(),
17
+ type2525b: Type.Optional(Type.String())
18
+ });
19
+
20
+ export const Icon = Type.Object({
21
+ _attributes: IconAttributes
13
22
  })
14
23
 
15
24
  export default Type.Object({
16
25
  iconset: Type.Object({
17
- _attributes: IconsetAttributes
18
- })
26
+ _attributes: IconsetAttributes,
27
+ icon: Type.Union([Type.Array(Icon), Icon])
28
+ }),
19
29
  })
@@ -20,8 +20,8 @@ export class Basemap extends XMLDocument<BasemapType> {
20
20
  /**
21
21
  * Return a Basemap from a string XML representation
22
22
  */
23
- static parse(input: string): Basemap {
24
- const basemap = super.check<BasemapType>(input, checkBasemap);
23
+ static parse(input: string | Buffer): Basemap {
24
+ const basemap = super.check<BasemapType>(String(input), checkBasemap);
25
25
  return new Basemap(basemap);
26
26
  }
27
27
 
@@ -1,6 +1,6 @@
1
1
  import XMLDocument from '../xml-document.js';
2
2
  import type { Static } from '@sinclair/typebox'
3
- import IconsetSchema from '../types/iconset.js';
3
+ import IconsetSchema, { IconsetAttributes, IconAttributes } from '../types/iconset.js';
4
4
  import AJV from 'ajv';
5
5
 
6
6
  const checkIconset = (new AJV({
@@ -19,8 +19,41 @@ export class Iconset extends XMLDocument<IconsetType> {
19
19
  /**
20
20
  * Return an Iconset from a string XML representation
21
21
  */
22
- static parse(input: string): Iconset {
23
- const basemap = super.check<IconsetType>(input, checkIconset);
22
+ static parse(input: string | Buffer): Iconset {
23
+ const basemap = super.check<IconsetType>(String(input), checkIconset);
24
24
  return new Iconset(basemap);
25
25
  }
26
+
27
+ get uid() {
28
+ return this.raw.iconset._attributes.uid;
29
+ }
30
+
31
+ get name() {
32
+ return this.raw.iconset._attributes.name;
33
+ }
34
+
35
+ icons(): Set<Static<typeof IconAttributes>> {
36
+ const icons = new Set<Static<typeof IconAttributes>>();
37
+ for (const icon of Array.isArray(this.raw.iconset.icon) ? this.raw.iconset.icon : [ this.raw.iconset.icon ]) {
38
+ icons.add(icon._attributes);
39
+ }
40
+
41
+ return icons;
42
+ }
43
+
44
+ to_json(): Static<typeof IconsetAttributes> {
45
+ const iconset: Static<typeof IconsetAttributes> = {
46
+ uid: this.raw.iconset._attributes.uid,
47
+ version: this.raw.iconset._attributes.version,
48
+ name: this.raw.iconset._attributes.name,
49
+ skip_resize: this.raw.iconset._attributes.skip_resize === undefined ? false : this.raw.iconset._attributes.skip_resize,
50
+ default_group: this.raw.iconset._attributes.default_group,
51
+ default_friendly: this.raw.iconset._attributes.default_friendly,
52
+ default_hostile: this.raw.iconset._attributes.default_hostile,
53
+ default_neutral: this.raw.iconset._attributes.default_neutral,
54
+ default_unknown: this.raw.iconset._attributes.default_unknown
55
+ };
56
+
57
+ return iconset;
58
+ }
26
59
  }
@@ -12,7 +12,7 @@ export default class XMLDocument<T> {
12
12
  constructor(raw: T) {
13
13
  this.raw = raw;
14
14
  }
15
-
15
+
16
16
  static check<U>(input: string, check: ValidateFunction<unknown>): U {
17
17
  const xml = xmljs.xml2js(input, { compact: true })
18
18
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/node-cot",
3
3
  "type": "module",
4
- "version": "12.17.1",
4
+ "version": "12.18.0",
5
5
  "description": "Lightweight JavaScript library for parsing and manipulating TAK messages",
6
6
  "author": "Nick Ingalls <nick@ingalls.ca>",
7
7
  "main": "dist/index.js",
package/tsconfig.json CHANGED
@@ -27,6 +27,7 @@
27
27
  "index.ts",
28
28
  "test/**/*",
29
29
  "lib/*.ts",
30
+ "lib/xml/*.ts",
30
31
  "lib/schema.json"
31
32
  ]
32
33
  }
@@ -1,16 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
- import test from 'tape';
4
- import { Basemap } from '../index.js';
5
- import { fileURLToPath } from 'node:url';
6
- for (const fixturename of await fs.readdir(new URL('./basemaps/', import.meta.url))) {
7
- test(`Basemap Test: ${fixturename}`, async (t) => {
8
- const fixture = String(await fs.readFile(path.join(path.parse(fileURLToPath(import.meta.url)).dir, 'basemaps/', fixturename)));
9
- const container = await Basemap.parse(fixture);
10
- t.ok(container.raw.customMapSource.name._text.length);
11
- const json = container.to_json();
12
- t.ok(json.name && json.name.length);
13
- t.end();
14
- });
15
- }
16
- //# sourceMappingURL=basemaps.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"basemaps.test.js","sourceRoot":"","sources":["../../test/basemaps.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,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,iBAAiB,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,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;QAC/H,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpC,CAAC,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}