@aeroswarm/codec 0.1.12 → 0.1.13

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/dist/index.js CHANGED
@@ -87,7 +87,11 @@ function parseFormat(s) {
87
87
  function parseVariable(s) {
88
88
  const inner = firstContent(s, "Variable");
89
89
  const m = inner.match(/<Fixed\s+length="(\d+)"/);
90
- return { type: "variable", chunkBytes: m ? parseInt(m[1]) : 1, bits: parseBits(firstContent(inner, "Fixed")) };
90
+ const chunks = [];
91
+ const re = /<Fixed\s+length="\d+"[^>]*>([\s\S]*?)<\/Fixed>/g;
92
+ let c;
93
+ while ((c = re.exec(inner)) !== null) chunks.push(parseBits(c[1]));
94
+ return { type: "variable", chunkBytes: m ? parseInt(m[1]) : 1, bits: chunks[0] ?? parseBits(firstContent(inner, "Fixed")), chunks };
91
95
  }
92
96
  function parseBits(s) {
93
97
  const out = [];
@@ -297,6 +301,60 @@ function trdFlags(raw, out) {
297
301
  if (num(raw, "TST") === 1) out.testTarget = true;
298
302
  if (num(raw, "RAB") === 1) out.fixedTransponder = true;
299
303
  if (num(raw, "SIM") === 1) out.simulated = true;
304
+ const gbs = num(raw, "GBS");
305
+ if (gbs !== void 0) out.onGround = gbs === 1;
306
+ }
307
+ function compoundSubfields(d, sizeOf) {
308
+ const present = [];
309
+ let at = 0;
310
+ let sub = 0;
311
+ while (at < d.length) {
312
+ const b = d[at++];
313
+ for (let bit = 7; bit >= 1; bit--) {
314
+ if (b >> bit & 1) present.push(sub);
315
+ sub++;
316
+ }
317
+ if ((b & 1) === 0) break;
318
+ }
319
+ const offsets = /* @__PURE__ */ new Map();
320
+ let off = at;
321
+ for (const index of present) {
322
+ const size = sizeOf(index, d, off);
323
+ if (size === void 0) break;
324
+ offsets.set(index, off);
325
+ off += size;
326
+ }
327
+ return offsets;
328
+ }
329
+ function derivedDataSize(index, d, off) {
330
+ if (index < 7) return [3, 6, 2, 2, 2, 2, 2][index];
331
+ if (index === 7) {
332
+ let n = 1;
333
+ while (off + n - 1 < d.length && (d[off + n - 1] & 1) === 1) n++;
334
+ return n;
335
+ }
336
+ if (index === 8) return off < d.length ? 1 + 15 * d[off] : void 0;
337
+ if (index === 9 || index === 10) return 2;
338
+ return void 0;
339
+ }
340
+ function flightPlanSize(index) {
341
+ return [2, 7, 4, 1, 4, 1, 4, 4][index];
342
+ }
343
+ function asciiAt(d, off, len) {
344
+ if (off === void 0 || d.length < off + len) return void 0;
345
+ const text = d.subarray(off, off + len).toString("latin1").trim();
346
+ return text.length > 0 && /^[A-Z0-9 ]+$/.test(text) ? text : void 0;
347
+ }
348
+ function targetSize(raw, out) {
349
+ const lengthM = num(raw, "Len", "Length");
350
+ const widthM = num(raw, "WIDTH", "Width");
351
+ const orientationDeg = num(raw, "ORI", "Ori");
352
+ if (lengthM === void 0 && widthM === void 0 && orientationDeg === void 0) return;
353
+ out.targetSize = {
354
+ ...lengthM !== void 0 && { lengthM },
355
+ ...widthM !== void 0 && { widthM },
356
+ ...orientationDeg !== void 0 && { orientationDeg }
357
+ };
300
358
  }
301
359
  function decodeKnownField(cat, id, data, out, raw = {}) {
302
360
  try {
@@ -333,6 +391,21 @@ function cat021(id, d, out, raw) {
333
391
  trdFlags(raw, out);
334
392
  break;
335
393
  // I021/040 TRD
394
+ case "020": {
395
+ const ecat = num(raw, "ECAT");
396
+ if (ecat !== void 0) out.emitterCategory = ecat;
397
+ break;
398
+ }
399
+ case "155": {
400
+ const v = num(raw, "BVR");
401
+ if (v !== void 0) out.verticalRateFpm = v;
402
+ break;
403
+ }
404
+ case "157": {
405
+ const v = num(raw, "GVR");
406
+ if (v !== void 0 && out.verticalRateFpm === void 0) out.verticalRateFpm = v;
407
+ break;
408
+ }
336
409
  case "010": {
337
410
  const sac = num(raw, "SAC"), sic = num(raw, "SIC");
338
411
  if (sac !== void 0 && sic !== void 0) out.dataSource = { sac, sic };
@@ -574,6 +647,10 @@ function cat010(id, d, out, raw) {
574
647
  trdFlags(raw, out);
575
648
  break;
576
649
  // I010/020 TRD
650
+ case "270":
651
+ targetSize(raw, out);
652
+ break;
653
+ // I010/270 Target Size and Orientation
577
654
  case "010": {
578
655
  const sac = num(raw, "SAC"), sic = num(raw, "SIC");
579
656
  if (sac !== void 0 && sic !== void 0) out.dataSource = { sac, sic };
@@ -641,19 +718,6 @@ function cat010(id, d, out, raw) {
641
718
  }
642
719
  }
643
720
  var MS_TO_KT = 1 / 0.514444;
644
- function flightPlanCallsign(d) {
645
- let indicators = 0;
646
- while (indicators < d.length) {
647
- indicators++;
648
- if ((d[indicators - 1] & 1) === 0) break;
649
- }
650
- const first = d[0] ?? 0;
651
- if ((first & 64) === 0) return void 0;
652
- const at = indicators + ((first & 128) !== 0 ? 2 : 0);
653
- if (d.length < at + 7) return void 0;
654
- const text = d.subarray(at, at + 7).toString("latin1").trim();
655
- return text.length > 0 && /^[A-Z0-9 ]+$/.test(text) ? text : void 0;
656
- }
657
721
  function cat062(id, d, out, raw) {
658
722
  switch (id) {
659
723
  case "080":
@@ -699,6 +763,15 @@ function cat062(id, d, out, raw) {
699
763
  else if (d.length >= 2) out.trackNumber = d.readUIntBE(0, 2);
700
764
  break;
701
765
  }
766
+ case "220": {
767
+ const roc = num(raw, "RoC");
768
+ if (roc !== void 0) out.verticalRateFpm = roc;
769
+ break;
770
+ }
771
+ case "270":
772
+ targetSize(raw, out);
773
+ break;
774
+ // Target Size and Orientation
702
775
  case "300": {
703
776
  const vfi = num(raw, "VFI");
704
777
  out.vehicleFleet = vfi ?? (d.length >= 1 ? d[0] : void 0);
@@ -712,27 +785,30 @@ function cat062(id, d, out, raw) {
712
785
  break;
713
786
  }
714
787
  case "390": {
715
- if (out.callsign === void 0) {
716
- const csn = flightPlanCallsign(d);
717
- if (csn) out.callsign = csn;
718
- }
788
+ const at = compoundSubfields(d, flightPlanSize);
789
+ const csn = asciiAt(d, at.get(1), 7);
790
+ if (csn && out.callsign === void 0) out.callsign = csn;
791
+ const tac = asciiAt(d, at.get(4), 4);
792
+ if (tac) out.aircraftType = tac;
793
+ const wtc = asciiAt(d, at.get(5), 1);
794
+ if (wtc) out.wakeTurbulence = wtc;
795
+ const dep = asciiAt(d, at.get(6), 4);
796
+ if (dep) out.departureAirport = dep;
797
+ const dst = asciiAt(d, at.get(7), 4);
798
+ if (dst) out.destinationAirport = dst;
719
799
  break;
720
800
  }
721
801
  case "380": {
722
- let fsLen = 0;
723
- while (fsLen < d.length) {
724
- fsLen++;
725
- if ((d[fsLen - 1] & 1) === 0) break;
726
- }
727
- let at = fsLen;
728
- if (fsLen < d.length && (d[0] & 128) !== 0 && d.length >= at + 3) {
729
- out.icao24 = d.readUIntBE(at, 3).toString(16).padStart(6, "0");
730
- at += 3;
731
- }
732
- if (fsLen < d.length && (d[0] & 64) !== 0 && d.length >= at + 6 && out.callsign === void 0) {
733
- const id2 = readCallsign(d.subarray(at, at + 6));
734
- if (id2) out.callsign = id2;
802
+ const at = compoundSubfields(d, derivedDataSize);
803
+ const adr = at.get(0);
804
+ if (adr !== void 0 && d.length >= adr + 3) out.icao24 = d.readUIntBE(adr, 3).toString(16).padStart(6, "0");
805
+ const id2 = at.get(1);
806
+ if (id2 !== void 0 && d.length >= id2 + 6 && out.callsign === void 0) {
807
+ const name = readCallsign(d.subarray(id2, id2 + 6));
808
+ if (name) out.callsign = name;
735
809
  }
810
+ const sab = at.get(10);
811
+ if (sab !== void 0 && sab < d.length) out.onGround = (d[sab] >> 1 & 1) === 1;
736
812
  break;
737
813
  }
738
814
  case "070": {
@@ -968,10 +1044,7 @@ function decodeRecords(block, def, cat) {
968
1044
  let result;
969
1045
  try {
970
1046
  result = decodeBlock(block.subarray(pos), def, (id, data, itemDef) => {
971
- const bits = itemDef.type === "fixed" || itemDef.type === "variable" ? itemDef.bits : void 0;
972
- const bitData = itemDef.type === "variable" ? data.subarray(0, itemDef.chunkBytes) : data;
973
- const raw = bits?.length ? extractBitFields(bitData, bits) : {};
974
- decodeKnownField(cat, id, data, fields, raw);
1047
+ decodeKnownField(cat, id, data, fields, extractItemBits(itemDef, data));
975
1048
  });
976
1049
  } catch {
977
1050
  break;
@@ -991,6 +1064,19 @@ function decodeRecords(block, def, cat) {
991
1064
  const usable = firstEmpty === -1 ? records : records.slice(0, firstEmpty);
992
1065
  return { all: usable.map((r) => r.fields), consumed: usable.length > 0 ? usable[usable.length - 1].end : 0, full: false };
993
1066
  }
1067
+ function extractItemBits(itemDef, data) {
1068
+ if (itemDef.type === "fixed") return itemDef.bits?.length ? extractBitFields(data, itemDef.bits) : {};
1069
+ if (itemDef.type !== "variable") return {};
1070
+ const chunks = itemDef.chunks?.length ? itemDef.chunks : itemDef.bits ? [itemDef.bits] : [];
1071
+ const out = {};
1072
+ for (let i = 0; i < chunks.length; i++) {
1073
+ const start = i * itemDef.chunkBytes;
1074
+ if (start + itemDef.chunkBytes > data.length) break;
1075
+ const part = extractBitFields(data.subarray(start, start + itemDef.chunkBytes), chunks[i]);
1076
+ for (const [name, value] of Object.entries(part)) if (!(name in out)) out[name] = value;
1077
+ }
1078
+ return out;
1079
+ }
994
1080
  function isPlausible(f) {
995
1081
  if (f.lat !== void 0 && (f.lat < -90 || f.lat > 90)) return false;
996
1082
  if (f.lon !== void 0 && (f.lon < -180 || f.lon > 180)) return false;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=descriptor-fields.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-fields.test.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/descriptor-fields.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoE7C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAE,SAAc,GAAG,IAAI,CAWrH"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwI7C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAE,SAAc,GAAG,IAAI,CAWrH"}
@@ -41,6 +41,25 @@ export interface AsterixFields {
41
41
  vehicleFleet?: number;
42
42
  /** Sensor-assigned local track number */
43
43
  trackNumber?: number;
44
+ /** Ground bit: true = the target reports being on the ground, false = not. Undefined = not reported (CAT010/020/021 descriptor, CAT062 I062/380 SAB). */
45
+ onGround?: boolean;
46
+ /** ICAO aircraft type designator, e.g. "A320" (CAT062 I062/390 TAC) */
47
+ aircraftType?: string;
48
+ /** Wake turbulence category: L, M, H or J (CAT062 I062/390 WTC) */
49
+ wakeTurbulence?: string;
50
+ /** Departure and destination aerodrome, ICAO (CAT062 I062/390 DEP, DST) */
51
+ departureAirport?: string;
52
+ destinationAirport?: string;
53
+ /** Rate of climb (+) or descent (-), ft/min (CAT062 I062/220, CAT021 I021/155 baro, else I021/157 geometric) */
54
+ verticalRateFpm?: number;
55
+ /** Size and heading of the target on the surface (CAT062 I062/270, CAT010 I010/270) */
56
+ targetSize?: {
57
+ lengthM?: number;
58
+ widthM?: number;
59
+ orientationDeg?: number;
60
+ };
61
+ /** Emitter category of an ADS-B target (CAT021 I021/020 ECAT) */
62
+ emitterCategory?: number;
44
63
  /** TST bit — test target */
45
64
  testTarget?: boolean;
46
65
  /** RAB bit — report from a fixed field-monitor transponder (MLAT RPU etc.) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iBAAiB,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1C,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACnG,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iBAAiB,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1C,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACnG,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yJAAyJ;IACzJ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gHAAgH;IAChH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,UAAU,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACvB"}
@@ -13,10 +13,12 @@ export type FixedDef = {
13
13
  bytes: number;
14
14
  bits?: BitFieldDef[];
15
15
  };
16
+ /** `bits` = the first octet's fields; `chunks` = the fields of every octet in order (the first extension re-numbers from bit 1). */
16
17
  export type VariableDef = {
17
18
  type: 'variable';
18
19
  chunkBytes: number;
19
20
  bits?: BitFieldDef[];
21
+ chunks?: BitFieldDef[][];
20
22
  };
21
23
  export type RepDef = {
22
24
  type: 'repetitive';
@@ -1 +1 @@
1
- {"version":3,"file":"xml-loader.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/xml-loader.ts"],"names":[],"mappings":"AAgBA;kEACkE;AAClE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IACxE,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAQ;IAAE,IAAI,EAAE,OAAO,CAAC;IAAM,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAC;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAC7F,MAAM,MAAM,MAAM,GAAU;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAC;IAAG,cAAc,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAC/F,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,UAAU,GAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAC1E,MAAM,MAAM,OAAO,GAAS,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAExF,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAgCD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAgBlE"}
1
+ {"version":3,"file":"xml-loader.d.ts","sourceRoot":"","sources":["../../../src/surveillance/asterix/xml-loader.ts"],"names":[],"mappings":"AAgBA;kEACkE;AAClE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IACxE,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAQ;IAAE,IAAI,EAAE,OAAO,CAAC;IAAM,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AACxF,oIAAoI;AACpI,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAC;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,CAAA;CAAE,CAAC;AACvH,MAAM,MAAM,MAAM,GAAU;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAC;IAAG,cAAc,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAC/F,MAAM,MAAM,WAAW,GAAK;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,UAAU,GAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAC1E,MAAM,MAAM,OAAO,GAAS,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAExF,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAgCD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAgBlE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeroswarm/codec",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",