@packet-net/pdn-aprs 0.1.1 → 0.3.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 (81) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/README.md +9 -5
  3. package/dist/builder.d.ts +33 -8
  4. package/dist/builder.d.ts.map +1 -1
  5. package/dist/builder.js +64 -10
  6. package/dist/builder.js.map +1 -1
  7. package/dist/bytes.d.ts.map +1 -1
  8. package/dist/bytes.js +2 -1
  9. package/dist/bytes.js.map +1 -1
  10. package/dist/codes.js +8 -8
  11. package/dist/codes.js.map +1 -1
  12. package/dist/decode/index.d.ts.map +1 -1
  13. package/dist/decode/index.js +8 -5
  14. package/dist/decode/index.js.map +1 -1
  15. package/dist/decode/message.d.ts +2 -0
  16. package/dist/decode/message.d.ts.map +1 -1
  17. package/dist/decode/message.js +59 -33
  18. package/dist/decode/message.js.map +1 -1
  19. package/dist/decode/other.d.ts +20 -2
  20. package/dist/decode/other.d.ts.map +1 -1
  21. package/dist/decode/other.js +110 -48
  22. package/dist/decode/other.js.map +1 -1
  23. package/dist/decode/positioned.d.ts +26 -2
  24. package/dist/decode/positioned.d.ts.map +1 -1
  25. package/dist/decode/positioned.js +145 -79
  26. package/dist/decode/positioned.js.map +1 -1
  27. package/dist/decode/reports.d.ts.map +1 -1
  28. package/dist/decode/reports.js +47 -5
  29. package/dist/decode/reports.js.map +1 -1
  30. package/dist/decoder.d.ts.map +1 -1
  31. package/dist/decoder.js +2 -4
  32. package/dist/decoder.js.map +1 -1
  33. package/dist/deviceid.d.ts +8 -2
  34. package/dist/deviceid.d.ts.map +1 -1
  35. package/dist/deviceid.js +28 -6
  36. package/dist/deviceid.js.map +1 -1
  37. package/dist/encode/common.d.ts +13 -2
  38. package/dist/encode/common.d.ts.map +1 -1
  39. package/dist/encode/common.js +36 -4
  40. package/dist/encode/common.js.map +1 -1
  41. package/dist/encode/index.d.ts.map +1 -1
  42. package/dist/encode/index.js +59 -22
  43. package/dist/encode/index.js.map +1 -1
  44. package/dist/encode/other.d.ts.map +1 -1
  45. package/dist/encode/other.js +45 -17
  46. package/dist/encode/other.js.map +1 -1
  47. package/dist/encode/position.d.ts +9 -3
  48. package/dist/encode/position.d.ts.map +1 -1
  49. package/dist/encode/position.js +258 -124
  50. package/dist/encode/position.js.map +1 -1
  51. package/dist/header.d.ts +5 -2
  52. package/dist/header.d.ts.map +1 -1
  53. package/dist/header.js +8 -3
  54. package/dist/header.js.map +1 -1
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/neutral.d.ts.map +1 -1
  59. package/dist/neutral.js +22 -3
  60. package/dist/neutral.js.map +1 -1
  61. package/dist/types.d.ts +19 -9
  62. package/dist/types.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/builder.ts +77 -14
  65. package/src/bytes.ts +2 -1
  66. package/src/codes.ts +8 -8
  67. package/src/decode/index.ts +7 -4
  68. package/src/decode/message.ts +54 -37
  69. package/src/decode/other.ts +116 -44
  70. package/src/decode/positioned.ts +159 -90
  71. package/src/decode/reports.ts +47 -4
  72. package/src/decoder.ts +2 -5
  73. package/src/deviceid.ts +29 -5
  74. package/src/encode/common.ts +34 -4
  75. package/src/encode/index.ts +57 -20
  76. package/src/encode/other.ts +39 -13
  77. package/src/encode/position.ts +261 -119
  78. package/src/header.ts +9 -2
  79. package/src/index.ts +1 -0
  80. package/src/neutral.ts +24 -3
  81. package/src/types.ts +20 -5
@@ -1 +1 @@
1
- {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/decode/other.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/decode/other.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,4CAA4C;AAkB5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,QAAQ,GAAG,iCAAiC,CAAC;AACnD,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,SAAS,aAAa,CAAC,CAAqB;IAC1C,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,YAAY,CAAC,GAAkB,EAAE,CAAS;IACxD,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,GAAG,GAA6D,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACzF,MAAM,EAAE,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,SAAS,GAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAClE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,aAAa,GAAG,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YACzD,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAE,EAAE,CAAC;YAC7E,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;oBACrC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,2EAA2E;IAC3E,MAAM,IAAI,GAAG,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,CAAC;QAC1D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AAE9D,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,CAAS;IAC3D,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvD,IAAI,CAAS,CAAC;IACd,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,KAAK,CAAC;QACjB,CAAC,GAAG,CAAC,CAAC;QACN,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,CAAC,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACjB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACb,MAAM;QACR,CAAC;QACD,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAmE;QAC1E,IAAI,EAAE,WAAW;QACjB,QAAQ;QACR,MAAM;QACN,UAAU;KACX,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AACtD,MAAM,eAAe,GAAG,SAAS,gBAAgB,SAAS,gBAAgB,IAAI,CAAC;AAC/E,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,eAAe,IAAI,eAAe,cAAc,CAAC,CAAC;AAEtF,4BAA4B;AAC5B,MAAM,UAAU,WAAW,CAAC,GAAkB,EAAE,CAAS;IACvD,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAA+C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC;IAC5F,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,4FAA4F;QAC5F,iDAAiD;QACjD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,4DAA4D;QAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5F,GAAG,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC;IAChH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mEAAmE;AACnE,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,CAAC,EAAE,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,iCAAiC;AACjC,MAAM,UAAU,kBAAkB,CAAC,GAAkB,EAAE,CAAS;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,kFAAkF;QAClF,yEAAyE;QACzE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,0BAA0B;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;QACzF,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;QACnE,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,QAAQ;QAAE,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACrD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAChD,CAAC;AAED,qGAAqG;AACrG,SAAS,WAAW,CAAC,KAAyB,EAAE,UAA8B,EAAE,KAAa;IAC3F,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,CAAC,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;IACjC,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,UAAU,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,UAAU,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uGAAuG;AACvG,SAAS,QAAQ,CAAC,KAAyB;IACzC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,iDAAiD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAClF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjG,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAgB1D;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC;IAC9B,IAAI,WAAW,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjD,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9D,UAAU,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,GAAkB,EAAE,CAAS;IACxD,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACxF,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,gDAAgD;IAChD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,GAAG,GAA6D,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjH,IAAI,KAAK,CAAC,WAAW;QAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,CAA+B,GAAM,EAAE,KAAkC,EAAQ,EAAE;QAC7F,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC,CAAC;IACF,qCAAqC;IACrC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,GAAW,EAAQ,EAAE;QAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QAC9D,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC,CAAC;IACF,8EAA8E;IAC9E,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7F,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM;QACR,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;iBAC/B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;YAC3C,MAAM;QACR,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;iBAC/B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;YAC3C,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM;QACR,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM;QACR,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM;QACR,CAAC;IACH,CAAC;IACD,sDAAsD;IACtD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAAC,GAAkB,EAAE,IAAY,EAAE,MAAwB;IACzF,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AACnG,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAAC,GAAkB,EAAE,CAAS;IAC7D,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,GAAG,GAA2D;QAClE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAE;QACb,UAAU,EAAE,CAAC,CAAC,CAAC,CAAE;KAClB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,UAAU,CAAC,GAAkB,EAAE,CAAS;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,YAAY,CAAC,GAAkB,EAAE,CAAS;IACxD,0FAA0F;IAC1F,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,gBAAgB,CAAC,GAAkB,EAAE,CAAS;IAC5D,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,4CAA4C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,MAAM,GAAG,GAAqE;QAC5E,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE;KAC7B,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -5,7 +5,8 @@ export declare function isBase91(c: string | undefined): boolean;
5
5
  export declare function base91Value(s: string): number;
6
6
  /** Whether `c` can be an uncompressed symbol table identifier: `/`, `\`, `0`-`9`, `A`-`Z`. */
7
7
  export declare function isSymbolTable(c: string | undefined): boolean;
8
- export declare const KNOTS_TO_MPH = 1.150779448;
8
+ /** Knots to mph, exactly: a nautical mile is 1852 m and a statute mile 1609.344 m. */
9
+ export declare const KNOTS_TO_MPH: number;
9
10
  export declare const METRES_PER_FOOT = 0.3048;
10
11
  /** A 7-byte timestamp shaped `ddhhmmz`, `ddhhmm/` or `hhmmssh` at `i`, without checking ranges. */
11
12
  export declare function timestampAt(s: string, i: number): AprsTimestamp | undefined;
@@ -56,6 +57,13 @@ interface DaoFound {
56
57
  declare const AREA_SHAPES: readonly AreaShape[];
57
58
  declare const AREA_COLORS: readonly AreaColor[];
58
59
  export { AREA_SHAPES, AREA_COLORS };
60
+ export interface ExtensionFound {
61
+ length: number;
62
+ phg?: Phg;
63
+ rangeMiles?: number;
64
+ dfs?: Dfs;
65
+ }
66
+ export declare function extensionAt(s: string, i: number): ExtensionFound | undefined;
59
67
  declare const MICROWAVE_BASE: Record<string, number>;
60
68
  export { MICROWAVE_BASE };
61
69
  /** Mutable positioned fields, as they are built up. */
@@ -82,6 +90,12 @@ export interface Fields {
82
90
  signpost?: string;
83
91
  comment?: string;
84
92
  }
93
+ /** Base-91 telemetry and a `!DAO!` lifted out of text, and the text left. */
94
+ export interface PreLifted {
95
+ telemetry?: CommentTelemetry;
96
+ dao?: DaoFound;
97
+ rest: string;
98
+ }
85
99
  /** What the comment lifting found. */
86
100
  interface Lifted {
87
101
  telemetry?: CommentTelemetry;
@@ -96,6 +110,16 @@ interface Lifted {
96
110
  /** The comment text left (binary). */
97
111
  rest: string;
98
112
  }
113
+ /**
114
+ * Lifts base-91 telemetry and the last `!DAO!` outside it. A `!DAO!` is five bytes as sent, so one
115
+ * is never read across a `join`, a place in `s` where another element was already taken out.
116
+ */
117
+ export declare function liftTelemetryAndDao(s: string, joins?: readonly number[]): {
118
+ telemetry?: CommentTelemetry;
119
+ dao?: DaoFound;
120
+ rest: string;
121
+ cuts: number[];
122
+ };
99
123
  type MutableWeather = {
100
124
  -readonly [K in keyof Weather]: Weather[K];
101
125
  };
@@ -123,7 +147,7 @@ export declare function decodeAfterPosition(ctx: DecodeContext, s: string, i: nu
123
147
  /** Applies a `!DAO!` to the fields. */
124
148
  export declare function applyDao(ctx: DecodeContext, f: Fields, pos: RawPosition, dao: DaoFound | undefined): void;
125
149
  /** Lifts the elements out of Mic-E status text after its type code, altitude and locator. */
126
- export declare function liftMicEComment(ctx: DecodeContext, text: string, symbol: AprsSymbol): {
150
+ export declare function liftMicEComment(ctx: DecodeContext, text: string, symbol: AprsSymbol, extension: ExtensionFound | undefined, pre: PreLifted, atStart?: boolean): {
127
151
  lifted: Lifted;
128
152
  };
129
153
  /** Applies lifted comment elements to fields (Mic-E). */
@@ -1 +1 @@
1
- {"version":3,"file":"positioned.d.ts","sourceRoot":"","sources":["../../src/decode/positioned.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"positioned.d.ts","sourceRoot":"","sources":["../../src/decode/positioned.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,8 @@ export function isSymbolTable(c) {
29
29
  function isCompressedTable(c) {
30
30
  return c === '/' || c === '\\' || (c !== undefined && ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'j')));
31
31
  }
32
- export const KNOTS_TO_MPH = 1.150779448;
32
+ /** Knots to mph, exactly: a nautical mile is 1852 m and a statute mile 1609.344 m. */
33
+ export const KNOTS_TO_MPH = 1852 / 1609.344;
33
34
  export const METRES_PER_FOOT = 0.3048;
34
35
  // ---- timestamps
35
36
  /** A 7-byte timestamp shaped `ddhhmmz`, `ddhhmm/` or `hhmmssh` at `i`, without checking ranges. */
@@ -108,7 +109,9 @@ export function parseUncompressed(ctx, s, i) {
108
109
  const latDegrees = Number(lat.substr(0, 2));
109
110
  const latMinutes = ambiguousMinutes(lat[2], lat[3], lat[5], lat[6], latAmbiguity);
110
111
  const rawLatMinutes = ambiguousMinutes(lat[2], lat[3], lat[5], lat[6], 0);
111
- if (rawLatMinutes >= 60 || latDegrees > 90 || (latDegrees === 90 && rawLatMinutes > 0))
112
+ // The latitude it reports is the centre of its ambiguity box, so 90 degrees with blanked
113
+ // minutes (centred on 90 degrees 30 minutes) is past the pole.
114
+ if (rawLatMinutes >= 60 || latDegrees > 90 || (latDegrees === 90 && (rawLatMinutes > 0 || latMinutes > 0)))
112
115
  ctx.fail('invalid-latitude');
113
116
  let ns = lat[7];
114
117
  if (ns === 'n' || ns === 's') {
@@ -125,13 +128,20 @@ export function parseUncompressed(ctx, s, i) {
125
128
  const lon = s.substr(i + 9, 9);
126
129
  if (!isDigit(lon[0]) || !isDigit(lon[1]) || !isDigit(lon[2]) || lon[5] !== '.')
127
130
  ctx.fail('invalid-longitude');
128
- const lonBlanks = ambiguityDigits([lon[3], lon[4], lon[6], lon[7]]);
129
- if (lonBlanks === undefined || lonBlanks > latAmbiguity)
130
- ctx.fail('invalid-longitude');
131
+ // The latitude alone sets the ambiguity: a longitude place it blanks may hold a digit or a
132
+ // space, and is ignored; every other place is a digit (vectors interpretations.md, "Longitude
133
+ // blanks follow the latitude").
134
+ const lonPlaces = [lon[3], lon[4], lon[6], lon[7]];
135
+ for (let k = 0; k < 4; k++) {
136
+ const ignored = k >= 4 - latAmbiguity;
137
+ if (!isDigit(lonPlaces[k]) && !(ignored && lonPlaces[k] === ' '))
138
+ ctx.fail('invalid-longitude');
139
+ }
131
140
  const lonDegrees = Number(lon.substr(0, 3));
132
141
  const lonMinutes = ambiguousMinutes(lon[3], lon[4], lon[6], lon[7], latAmbiguity);
133
142
  const rawLonMinutes = ambiguousMinutes(lon[3], lon[4], lon[6], lon[7], 0);
134
- if (rawLonMinutes >= 60 || lonDegrees > 180 || (lonDegrees === 180 && rawLonMinutes > 0))
143
+ // As for the latitude, the centre of an ambiguous 180 degrees is past 180.
144
+ if (rawLonMinutes >= 60 || lonDegrees > 180 || (lonDegrees === 180 && (rawLonMinutes > 0 || lonMinutes > 0)))
135
145
  ctx.fail('invalid-longitude');
136
146
  let ew = lon[8];
137
147
  if (ew === 'e' || ew === 'w') {
@@ -283,6 +293,13 @@ function daoAt(s, p) {
283
293
  };
284
294
  return undefined;
285
295
  }
296
+ if (isDigit(d)) {
297
+ // A local datum (0-9) has no case to say how to read A and O, so it only carries spaces
298
+ // (vectors interpretations.md, "!DAO! datum digits").
299
+ if (a === ' ' && o === ' ')
300
+ return { start: p, dao: { datum: d, precision: 'none' }, latAdd: 0, lonAdd: 0 };
301
+ return undefined;
302
+ }
286
303
  if (d >= 'a' && d <= 'z') {
287
304
  const datum = d.toUpperCase();
288
305
  if (a === ' ' && o === ' ')
@@ -316,7 +333,8 @@ function findCommentTelemetry(s) {
316
333
  values.push(base91Value(body.substr(k, 2)));
317
334
  const sequence = values[0];
318
335
  const rest = values.slice(1);
319
- const telemetry = rest.length === 6 ? { sequence, analog: rest.slice(0, 5), digital: rest[5] } : { sequence, analog: rest };
336
+ // The binary value is eight channels; bits 9-13 are reserved and ignored (APRS12c ch. 13).
337
+ const telemetry = rest.length === 6 ? { sequence, analog: rest.slice(0, 5), digital: rest[5] & 0xff } : { sequence, analog: rest };
320
338
  return { start: prev, end: last + 1, telemetry };
321
339
  }
322
340
  // ---- data extensions
@@ -358,7 +376,7 @@ const CSE_SPD_RE = /^([0-9]{3}|\.{3}| {3})\/([0-9]{3}|\.{3}| {3})/;
358
376
  function rateValue(c) {
359
377
  return isDigit(c) ? c.charCodeAt(0) - 48 : c.charCodeAt(0) - 55;
360
378
  }
361
- function extensionAt(s, i) {
379
+ export function extensionAt(s, i) {
362
380
  const t = s.slice(i, i + 9);
363
381
  let m = PHG_RE.exec(t);
364
382
  if (m) {
@@ -419,8 +437,9 @@ const MICROWAVE_BASE = {
419
437
  O: 24200,
420
438
  };
421
439
  export { MICROWAVE_BASE };
422
- const FREQ_KHZ_RE = /^([0-9]{3}|[A-O][0-9]{2})\.([0-9]{3})MHz/i;
423
- const FREQ_10KHZ_RE = /^([0-9]{3}|[A-O][0-9]{2})\.([0-9]{2}) MHz/i;
440
+ // The band letter is upper case (A96.000MHz is 1296 MHz); only MHz may be in any case.
441
+ const FREQ_KHZ_RE = /^([0-9]{3}|[A-O][0-9]{2})\.([0-9]{3})[Mm][Hh][Zz]/;
442
+ const FREQ_10KHZ_RE = /^([0-9]{3}|[A-O][0-9]{2})\.([0-9]{2}) [Mm][Hh][Zz]/;
424
443
  function frequencyMhz(whole, fraction) {
425
444
  const first = whole[0];
426
445
  const base = isDigit(first) ? Number(whole) : MICROWAVE_BASE[first] + Number(whole.slice(1));
@@ -516,13 +535,18 @@ function removeRanges(s, ranges) {
516
535
  }
517
536
  return out + s.slice(from);
518
537
  }
519
- /** Lifts base-91 telemetry and the last `!DAO!` outside it. */
520
- function liftTelemetryAndDao(s) {
538
+ /**
539
+ * Lifts base-91 telemetry and the last `!DAO!` outside it. A `!DAO!` is five bytes as sent, so one
540
+ * is never read across a `join`, a place in `s` where another element was already taken out.
541
+ */
542
+ export function liftTelemetryAndDao(s, joins = []) {
521
543
  const tel = findCommentTelemetry(s);
522
544
  let dao;
523
545
  for (let p = s.length - 5; p >= 0; p--) {
524
546
  if (tel && p + 5 > tel.start && p < tel.end)
525
547
  continue;
548
+ if (joins.some((j) => j > p && j < p + 5))
549
+ continue;
526
550
  const found = daoAt(s, p);
527
551
  if (found) {
528
552
  dao = found;
@@ -534,7 +558,14 @@ function liftTelemetryAndDao(s) {
534
558
  ranges.push([tel.start, tel.end]);
535
559
  if (dao)
536
560
  ranges.push([dao.start, dao.start + 5]);
537
- const out = { rest: removeRanges(s, ranges) };
561
+ // Where, in the text left, something was taken out.
562
+ let removed = 0;
563
+ const cuts = [];
564
+ for (const [a, b] of [...ranges].sort((x, y) => x[0] - y[0])) {
565
+ cuts.push(a - removed);
566
+ removed += b - a;
567
+ }
568
+ const out = { rest: removeRanges(s, ranges), cuts };
538
569
  if (tel)
539
570
  out.telemetry = tel.telemetry;
540
571
  if (dao)
@@ -544,7 +575,7 @@ function liftTelemetryAndDao(s) {
544
575
  const ALTITUDE_RE = /\/A=(-[0-9]{5}|[0-9]{6})/;
545
576
  /** Lifts the structured elements out of a comment, in the order the vectors' README gives. */
546
577
  function liftComment(ctx, text, options) {
547
- const first = liftTelemetryAndDao(text);
578
+ const first = options.pre ? { ...options.pre, rest: text } : liftTelemetryAndDao(text, options.joins);
548
579
  const lifted = { rest: first.rest };
549
580
  if (first.telemetry)
550
581
  lifted.telemetry = first.telemetry;
@@ -552,7 +583,11 @@ function liftComment(ctx, text, options) {
552
583
  lifted.dao = first.dao;
553
584
  let s = first.rest;
554
585
  let extensionFound = options.extensionFound;
555
- if (options.extensionAtStart) {
586
+ if (options.extension) {
587
+ applyExtension(lifted, options.extension);
588
+ extensionFound = true;
589
+ }
590
+ else if (options.extensionAtStart) {
556
591
  const ext = extensionAt(s, 0);
557
592
  if (ext) {
558
593
  applyExtension(lifted, ext);
@@ -568,16 +603,17 @@ function liftComment(ctx, text, options) {
568
603
  }
569
604
  // Signpost or corridor braces.
570
605
  if (isSignpost(options.symbol) || options.areaLine) {
571
- const brace = /\{([^{}]{1,3})\}/.exec(s);
606
+ // The first well-formed braces wherever they are: 1-3 printable ASCII characters other than
607
+ // a brace for a signpost, 1-3 digits for a corridor. Braces that do not qualify are comment
608
+ // text and do not stop the search (vectors interpretations.md).
609
+ const signpost = isSignpost(options.symbol);
610
+ const brace = (signpost ? /\{([\x20-\x7a\x7c\x7e]{1,3})\}/ : /\{([0-9]{1,3})\}/).exec(s);
572
611
  if (brace) {
573
- if (isSignpost(options.symbol)) {
612
+ if (signpost)
574
613
  lifted.signpost = brace[1];
575
- s = s.slice(0, brace.index) + s.slice(brace.index + brace[0].length);
576
- }
577
- else if (/^[0-9]{1,3}$/.test(brace[1])) {
614
+ else
578
615
  lifted.corridorWidthMiles = Number(brace[1]);
579
- s = s.slice(0, brace.index) + s.slice(brace.index + brace[0].length);
580
- }
616
+ s = s.slice(0, brace.index) + s.slice(brace.index + brace[0].length);
581
617
  }
582
618
  }
583
619
  // A data extension later in the text, only when none came straight after the symbol.
@@ -657,7 +693,13 @@ function weatherValueRun(s, j, width, signed) {
657
693
  function isLetter(c) {
658
694
  return c !== undefined && ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
659
695
  }
660
- /** Parses the run of weather fields from `j`. */
696
+ /**
697
+ * Parses the run of weather fields from `j`, and reports what it finds in reading order: for a
698
+ * position, object or item report the wind first, where the `DDD/SSS` extension belongs (missing,
699
+ * incomplete, or sent as `c` and `s` fields), then each field's defects, then a missing gust or
700
+ * temperature. The fields are read the same whatever is tolerated, so they are read first and
701
+ * reported after.
702
+ */
661
703
  function parseWeatherFields(ctx, s, j, options) {
662
704
  const w = {};
663
705
  if (options.wind.direction !== undefined)
@@ -665,9 +707,8 @@ function parseWeatherFields(ctx, s, j, options) {
665
707
  if (options.wind.speedMph !== undefined)
666
708
  w.windSpeedMph = options.wind.speedMph;
667
709
  const seen = new Set();
668
- let windKnown = options.wind.present;
669
- let windFromFields = false;
670
- let warnedWindFields = false;
710
+ const windKnown = options.wind.present;
711
+ const defects = [];
671
712
  const extra = [];
672
713
  for (;;) {
673
714
  const letter = s[j];
@@ -676,30 +717,45 @@ function parseWeatherFields(ctx, s, j, options) {
676
717
  let key = letter;
677
718
  const width = WEATHER_WIDTH[letter];
678
719
  if (letter === 's') {
679
- // s is the wind speed after c (or first thing in a positionless report), else snowfall.
720
+ // s is the wind speed once the wind comes as fields (after c, or anywhere in a positionless
721
+ // report) until the speed is known, and snowfall after that.
680
722
  const windSlot = !seen.has('s:wind') && (seen.has('c') || (options.positionless && !windKnown));
681
723
  key = windSlot ? 's:wind' : 's:snow';
682
724
  }
725
+ // L and l are one field, luminosity.
726
+ if (letter === 'l')
727
+ key = 'L';
683
728
  if (width !== undefined) {
684
729
  if (seen.has(key))
685
730
  break;
686
731
  if (letter === 'c' && windKnown)
687
732
  break;
688
733
  if (key === 's:snow') {
734
+ // Snowfall is three characters, which may include one decimal point ("A decimal point
735
+ // is allowed for non-integer values", APRS12c ch. 12), so s.50 is 0.5 inches. Otherwise
736
+ // a run of dots, read up to the field's width, is an unknown snowfall.
689
737
  const v = s.slice(j + 1, j + 4);
690
- const dots = /^\.+/.exec(s.slice(j + 1))?.[0];
691
- if (dots !== undefined) {
692
- if (dots.length !== 3)
693
- ctx.tolerate('non-standard-weather-field-width');
738
+ if (/^[0-9.]{3}$/.test(v) && /[0-9]/.test(v) && !/\..*\./.test(v)) {
739
+ w.snow24hIn = Number(v);
740
+ seen.add(key);
741
+ j += 4;
742
+ continue;
743
+ }
744
+ // Exactly three spaces is a snowfall sent as unknown, as for any other field.
745
+ if (v === ' ') {
694
746
  seen.add(key);
695
- j += 1 + dots.length;
747
+ j += 4;
696
748
  continue;
697
749
  }
698
- if (!/^[0-9.]{3}$/.test(v) || !/[0-9]/.test(v))
750
+ // Only a run of dots may be shorter than three, and only when no digit follows it: s..6 is
751
+ // not a field, so the fields end there.
752
+ const dots = /^\.{1,3}/.exec(v)?.[0];
753
+ if (dots === undefined || (dots.length < 3 && isDigit(v[dots.length])))
699
754
  break;
700
- w.snow24hIn = Number(v);
755
+ if (dots.length !== 3)
756
+ defects.push('non-standard-weather-field-width');
701
757
  seen.add(key);
702
- j += 4;
758
+ j += 1 + dots.length;
703
759
  continue;
704
760
  }
705
761
  let run = weatherValueRun(s, j + 1, width, letter === 't');
@@ -708,24 +764,17 @@ function parseWeatherFields(ctx, s, j, options) {
708
764
  if (run.length > width + 1)
709
765
  run = run.slice(0, width);
710
766
  if (run.length !== width)
711
- ctx.tolerate('non-standard-weather-field-width');
767
+ defects.push('non-standard-weather-field-width');
712
768
  seen.add(key);
713
769
  j += 1 + run.length;
714
770
  const unknown = /^(?:\.+| +)$/.test(run);
715
- if (letter === 'c' || key === 's:wind') {
716
- windFromFields = true;
717
- if (!warnedWindFields && !options.positionless) {
718
- warnedWindFields = true;
719
- ctx.tolerate('wind-fields-instead-of-extension');
720
- }
721
- }
722
771
  if (unknown)
723
772
  continue;
724
773
  const v = Number(run);
725
- switch (key) {
774
+ switch (letter === 's' ? key : letter) {
726
775
  case 'c':
727
776
  if (v > 360)
728
- ctx.tolerate('out-of-range-value');
777
+ defects.push('out-of-range-value');
729
778
  else
730
779
  w.windDirectionDegrees = v;
731
780
  break;
@@ -749,7 +798,7 @@ function parseWeatherFields(ctx, s, j, options) {
749
798
  break;
750
799
  case 'h':
751
800
  if (v > 100)
752
- ctx.tolerate('out-of-range-value');
801
+ defects.push('out-of-range-value');
753
802
  else
754
803
  w.humidityPercent = v === 0 ? 100 : v;
755
804
  break;
@@ -778,19 +827,28 @@ function parseWeatherFields(ctx, s, j, options) {
778
827
  }
779
828
  break;
780
829
  }
781
- if (seen.has('c') || seen.has('s:wind'))
782
- windKnown = true;
783
830
  if (extra.length > 0)
784
831
  w.extra = extra;
785
- // Completeness: wind, and gust and temperature.
832
+ const hasDirection = seen.has('c');
833
+ const hasSpeed = seen.has('s:wind');
834
+ const windFromFields = hasDirection || hasSpeed;
786
835
  if (options.positionless) {
787
- if (!seen.has('c') || !seen.has('s:wind') || !seen.has('g') || !seen.has('t'))
836
+ for (const code of defects)
837
+ ctx.tolerate(code);
838
+ if (!hasDirection || !hasSpeed || !seen.has('g') || !seen.has('t'))
788
839
  ctx.tolerate('incomplete-weather');
789
840
  }
790
841
  else {
791
- // An uncompressed report's wind (the DDD/SSS extension, or c/s fields), then gust and temperature.
792
- if (!windKnown && !options.compressed)
793
- ctx.tolerate('incomplete-weather');
842
+ // The wind is decided where the DDD/SSS extension belongs, before any field. After a
843
+ // compressed position whose cs bytes carry none, the wind is unknown, never missing.
844
+ if (!windKnown) {
845
+ if (windFromFields)
846
+ ctx.tolerate('wind-fields-instead-of-extension');
847
+ if (!options.compressed && !(hasDirection && hasSpeed))
848
+ ctx.tolerate('incomplete-weather');
849
+ }
850
+ for (const code of defects)
851
+ ctx.tolerate(code);
794
852
  if (!seen.has('g') || !seen.has('t'))
795
853
  ctx.tolerate('incomplete-weather');
796
854
  }
@@ -798,11 +856,13 @@ function parseWeatherFields(ctx, s, j, options) {
798
856
  }
799
857
  const SOFTWARE_UNIT_RE = /^([A-Za-z])([A-Za-z0-9_-]{2,4})$/;
800
858
  /**
801
- * The software type and unit after the weather fields, or the weather comment. One leading
802
- * delimiter is dropped from a position's comment, not from a positionless report's.
859
+ * The software type and unit after the weather fields, or the weather comment. A position's
860
+ * base-91 telemetry and `!DAO!` are lifted out first, and one leading delimiter is dropped from its
861
+ * comment; a positionless report has no position for them to belong to, so it keeps them, and its
862
+ * delimiter, in its comment.
803
863
  */
804
- function weatherTail(ctx, w, rest, dropDelimiter = true) {
805
- const lifted = liftTelemetryAndDao(rest);
864
+ function weatherTail(ctx, w, rest, positioned) {
865
+ const lifted = positioned ? liftTelemetryAndDao(rest) : { rest };
806
866
  const out = {};
807
867
  if (lifted.telemetry)
808
868
  out.telemetry = lifted.telemetry;
@@ -818,7 +878,7 @@ function weatherTail(ctx, w, rest, dropDelimiter = true) {
818
878
  return out;
819
879
  }
820
880
  ctx.tolerate('weather-comment');
821
- if (dropDelimiter && (text[0] === ' ' || text[0] === '/'))
881
+ if (positioned && (text[0] === ' ' || text[0] === '/'))
822
882
  text = text.slice(1);
823
883
  if (text.length > 0)
824
884
  out.comment = text;
@@ -844,14 +904,10 @@ export function decodeAfterPosition(ctx, s, i, pos) {
844
904
  if (pos.compression)
845
905
  f.compression = pos.compression;
846
906
  }
847
- let dao;
848
- if (pos.symbol.code === '_') {
849
- dao = decodeWeatherAfterPosition(ctx, s, i, pos, f);
850
- }
851
- else {
852
- dao = decodeExtensionAndComment(ctx, s, i, pos, f);
853
- }
854
- applyDao(ctx, f, pos, dao);
907
+ if (pos.symbol.code === '_')
908
+ decodeWeatherAfterPosition(ctx, s, i, pos, f);
909
+ else
910
+ decodeExtensionAndComment(ctx, s, i, pos, f);
855
911
  return f;
856
912
  }
857
913
  /** Applies a `!DAO!` to the fields. */
@@ -917,12 +973,18 @@ function decodeExtensionAndComment(ctx, s, i, pos, f) {
917
973
  if (pos.symbol.table === '/' && pos.symbol.code === '\\') {
918
974
  const df = /^\/([0-9]{3})\/([0-9])([0-9])([0-9])/.exec(s.slice(i, i + 8));
919
975
  if (df) {
920
- f.dfBearing = {
921
- bearingDegrees: Number(df[1]),
922
- number: Number(df[2]),
923
- range: Number(df[3]),
924
- quality: Number(df[4]),
925
- };
976
+ // The bearing is degrees: one over 360 drops the whole /BRG/NRQ, as a course over 360 is dropped.
977
+ if (Number(df[1]) > 360) {
978
+ ctx.tolerate('out-of-range-value');
979
+ }
980
+ else {
981
+ f.dfBearing = {
982
+ bearingDegrees: Number(df[1]),
983
+ number: Number(df[2]),
984
+ range: Number(df[3]),
985
+ quality: Number(df[4]),
986
+ };
987
+ }
926
988
  i += 8;
927
989
  }
928
990
  }
@@ -950,8 +1012,9 @@ function decodeExtensionAndComment(ctx, s, i, pos, f) {
950
1012
  }
951
1013
  const areaLine = f.area !== undefined && (f.area.shape === 'line-down-right' || f.area.shape === 'line-down-left');
952
1014
  const lifted = liftComment(ctx, s.slice(i), { extensionFound, symbol: pos.symbol, areaLine });
1015
+ // The !DAO! is structure, so it is judged before the text's encoding.
1016
+ applyDao(ctx, f, pos, lifted.dao);
953
1017
  applyLifted(ctx, f, lifted);
954
- return lifted.dao;
955
1018
  }
956
1019
  function applyLifted(ctx, f, lifted) {
957
1020
  if (lifted.altitudeFeet !== undefined)
@@ -978,7 +1041,8 @@ function applyLifted(ctx, f, lifted) {
978
1041
  }
979
1042
  const STORM_TYPES = { TS: 'tropical-storm', HC: 'hurricane', TD: 'tropical-depression' };
980
1043
  function parseStorm(s) {
981
- const m = /^\/(TS|HC|TD)\/([0-9 .]{3})\^([0-9 .]{3})\/([0-9 .]{4})>([0-9 .]{3})&([0-9 .]{3})(?:%([0-9 .]{3}))?/.exec(s);
1044
+ // Each field is digits (vectors object-item/storm-data-with-a-space-in-a-field-is-text).
1045
+ const m = /^\/(TS|HC|TD)\/([0-9]{3})\^([0-9]{3})\/([0-9]{4})>([0-9]{3})&([0-9]{3})(?:%([0-9]{3}))?/.exec(s);
982
1046
  if (!m)
983
1047
  return undefined;
984
1048
  const num = (v) => (v !== undefined && /^[0-9]+$/.test(v) ? Number(v) : undefined);
@@ -1034,7 +1098,7 @@ function decodeWeatherAfterPosition(ctx, s, i, pos, f) {
1034
1098
  i += 7;
1035
1099
  }
1036
1100
  const parsed = parseWeatherFields(ctx, s, i, { wind, positionless: false, compressed: pos.compressed });
1037
- const tail = weatherTail(ctx, parsed.weather, s.slice(parsed.end));
1101
+ const tail = weatherTail(ctx, parsed.weather, s.slice(parsed.end), true);
1038
1102
  f.weather = parsed.weather;
1039
1103
  if (pos.compressed && pos.csBlank && !windFromCs) {
1040
1104
  const hasWind = parsed.weather.windDirectionDegrees !== undefined || parsed.weather.windSpeedMph !== undefined;
@@ -1043,18 +1107,20 @@ function decodeWeatherAfterPosition(ctx, s, i, pos, f) {
1043
1107
  }
1044
1108
  if (tail.telemetry)
1045
1109
  f.telemetry = tail.telemetry;
1110
+ applyDao(ctx, f, pos, tail.dao);
1046
1111
  if (tail.comment !== undefined) {
1047
1112
  const text = ctx.text(tail.comment);
1048
1113
  if (text.length > 0)
1049
1114
  f.comment = text;
1050
1115
  }
1051
- return tail.dao;
1052
1116
  }
1053
1117
  // ---- Mic-E status text
1054
1118
  /** Lifts the elements out of Mic-E status text after its type code, altitude and locator. */
1055
- export function liftMicEComment(ctx, text, symbol) {
1056
- const lifted = liftComment(ctx, text, { extensionFound: false, extensionAtStart: true, symbol });
1057
- return { lifted };
1119
+ export function liftMicEComment(ctx, text, symbol, extension, pre, atStart = true) {
1120
+ const options = extension
1121
+ ? { extensionFound: true, extension, symbol, pre }
1122
+ : { extensionFound: false, extensionAtStart: atStart, symbol, pre };
1123
+ return { lifted: liftComment(ctx, text, options) };
1058
1124
  }
1059
1125
  /** Applies lifted comment elements to fields (Mic-E). */
1060
1126
  export function applyLiftedTo(ctx, f, lifted) {