@packet-net/pdn-aprs 0.0.1

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 +13 -0
  2. package/LICENSE +661 -0
  3. package/README.md +192 -0
  4. package/THIRD-PARTY-NOTICES.md +5 -0
  5. package/dist/builder.d.ts +232 -0
  6. package/dist/builder.d.ts.map +1 -0
  7. package/dist/builder.js +508 -0
  8. package/dist/builder.js.map +1 -0
  9. package/dist/bytes.d.ts +19 -0
  10. package/dist/bytes.d.ts.map +1 -0
  11. package/dist/bytes.js +120 -0
  12. package/dist/bytes.js.map +1 -0
  13. package/dist/codes.d.ts +13 -0
  14. package/dist/codes.d.ts.map +1 -0
  15. package/dist/codes.js +112 -0
  16. package/dist/codes.js.map +1 -0
  17. package/dist/decode/context.d.ts +33 -0
  18. package/dist/decode/context.d.ts.map +1 -0
  19. package/dist/decode/context.js +65 -0
  20. package/dist/decode/context.js.map +1 -0
  21. package/dist/decode/index.d.ts +10 -0
  22. package/dist/decode/index.d.ts.map +1 -0
  23. package/dist/decode/index.js +121 -0
  24. package/dist/decode/index.js.map +1 -0
  25. package/dist/decode/message.d.ts +5 -0
  26. package/dist/decode/message.d.ts.map +1 -0
  27. package/dist/decode/message.js +190 -0
  28. package/dist/decode/message.js.map +1 -0
  29. package/dist/decode/other.d.ts +25 -0
  30. package/dist/decode/other.d.ts.map +1 -0
  31. package/dist/decode/other.js +326 -0
  32. package/dist/decode/other.js.map +1 -0
  33. package/dist/decode/positioned.d.ts +132 -0
  34. package/dist/decode/positioned.d.ts.map +1 -0
  35. package/dist/decode/positioned.js +1063 -0
  36. package/dist/decode/positioned.js.map +1 -0
  37. package/dist/decode/reports.d.ts +13 -0
  38. package/dist/decode/reports.d.ts.map +1 -0
  39. package/dist/decode/reports.js +375 -0
  40. package/dist/decode/reports.js.map +1 -0
  41. package/dist/decoder.d.ts +23 -0
  42. package/dist/decoder.d.ts.map +1 -0
  43. package/dist/decoder.js +75 -0
  44. package/dist/decoder.js.map +1 -0
  45. package/dist/deviceid-data.d.ts +33 -0
  46. package/dist/deviceid-data.d.ts.map +1 -0
  47. package/dist/deviceid-data.js +2941 -0
  48. package/dist/deviceid-data.js.map +1 -0
  49. package/dist/deviceid.d.ts +12 -0
  50. package/dist/deviceid.d.ts.map +1 -0
  51. package/dist/deviceid.js +86 -0
  52. package/dist/deviceid.js.map +1 -0
  53. package/dist/diagnostics.d.ts +48 -0
  54. package/dist/diagnostics.d.ts.map +1 -0
  55. package/dist/diagnostics.js +65 -0
  56. package/dist/diagnostics.js.map +1 -0
  57. package/dist/encode/common.d.ts +19 -0
  58. package/dist/encode/common.d.ts.map +1 -0
  59. package/dist/encode/common.js +84 -0
  60. package/dist/encode/common.js.map +1 -0
  61. package/dist/encode/index.d.ts +35 -0
  62. package/dist/encode/index.d.ts.map +1 -0
  63. package/dist/encode/index.js +248 -0
  64. package/dist/encode/index.js.map +1 -0
  65. package/dist/encode/other.d.ts +21 -0
  66. package/dist/encode/other.d.ts.map +1 -0
  67. package/dist/encode/other.js +253 -0
  68. package/dist/encode/other.js.map +1 -0
  69. package/dist/encode/position.d.ts +31 -0
  70. package/dist/encode/position.d.ts.map +1 -0
  71. package/dist/encode/position.js +729 -0
  72. package/dist/encode/position.js.map +1 -0
  73. package/dist/header.d.ts +42 -0
  74. package/dist/header.d.ts.map +1 -0
  75. package/dist/header.js +206 -0
  76. package/dist/header.js.map +1 -0
  77. package/dist/index.d.ts +13 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +14 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/neutral.d.ts +22 -0
  82. package/dist/neutral.d.ts.map +1 -0
  83. package/dist/neutral.js +593 -0
  84. package/dist/neutral.js.map +1 -0
  85. package/dist/symbols-data.d.ts +832 -0
  86. package/dist/symbols-data.d.ts.map +1 -0
  87. package/dist/symbols-data.js +173 -0
  88. package/dist/symbols-data.js.map +1 -0
  89. package/dist/symbols.d.ts +35 -0
  90. package/dist/symbols.d.ts.map +1 -0
  91. package/dist/symbols.js +71 -0
  92. package/dist/symbols.js.map +1 -0
  93. package/dist/types.d.ts +458 -0
  94. package/dist/types.d.ts.map +1 -0
  95. package/dist/types.js +4 -0
  96. package/dist/types.js.map +1 -0
  97. package/package.json +68 -0
  98. package/src/builder.ts +617 -0
  99. package/src/bytes.ts +118 -0
  100. package/src/codes.ts +218 -0
  101. package/src/decode/context.ts +63 -0
  102. package/src/decode/index.ts +135 -0
  103. package/src/decode/message.ts +194 -0
  104. package/src/decode/other.ts +307 -0
  105. package/src/decode/positioned.ts +1161 -0
  106. package/src/decode/reports.ts +378 -0
  107. package/src/decoder.ts +76 -0
  108. package/src/deviceid-data.ts +2954 -0
  109. package/src/deviceid.ts +83 -0
  110. package/src/diagnostics.ts +86 -0
  111. package/src/encode/common.ts +87 -0
  112. package/src/encode/index.ts +280 -0
  113. package/src/encode/other.ts +247 -0
  114. package/src/encode/position.ts +656 -0
  115. package/src/header.ts +221 -0
  116. package/src/index.ts +57 -0
  117. package/src/neutral.ts +595 -0
  118. package/src/symbols-data.ts +181 -0
  119. package/src/symbols.ts +85 -0
  120. package/src/types.ts +571 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/encode/position.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type Diagnostic, type ParseOptions } from './diagnostics.js';
2
+ import type { PathEntry, QConstruct } from './types.js';
3
+ /** Thrown when a packet's header is unusable, so nothing can be decoded. */
4
+ export declare class AprsHeaderError extends Error {
5
+ /** Why: the diagnostics, the last of them the error. */
6
+ readonly diagnostics: readonly Diagnostic[];
7
+ constructor(diagnostics: readonly Diagnostic[]);
8
+ }
9
+ /** A parsed header and the information field that follows it. */
10
+ export interface ParsedHeader {
11
+ source: string;
12
+ destination: string;
13
+ path: PathEntry[];
14
+ /** The information field bytes. */
15
+ info: Uint8Array;
16
+ diagnostics: Diagnostic[];
17
+ }
18
+ /** Whether `text` is a valid APRS-IS address: 1-9 letters, digits or `-`. */
19
+ export declare function isAprsIsAddress(text: string): boolean;
20
+ /**
21
+ * Parses a TNC2 header from the bytes of a line; `info` is everything after the first `:`.
22
+ * Throws `AprsHeaderError` when the header is unusable.
23
+ */
24
+ export declare function parseTnc2Header(line: Uint8Array, options: ParseOptions): ParsedHeader;
25
+ /** Parses `SOURCE>DEST,PATH` (without the colon). Used for TNC2 lines and third-party headers. */
26
+ export declare function parseHeaderText(header: string, options: ParseOptions, diags: Diagnostic[]): {
27
+ source: string;
28
+ destination: string;
29
+ path: PathEntry[];
30
+ };
31
+ /** Formats a path as TNC2 text: only the last used entry is marked with `*`. */
32
+ export declare function formatPath(path: readonly PathEntry[]): string;
33
+ /** Formats a header as TNC2 text, without the colon. */
34
+ export declare function formatTnc2Header(source: string, destination: string, path: readonly PathEntry[]): string;
35
+ /** The APRS-IS q-construct in a path, and the station after it. */
36
+ export declare function findQConstruct(path: readonly PathEntry[]): QConstruct | undefined;
37
+ /**
38
+ * Parses an AX.25 UI frame in KISS form (no flags, no FCS). Throws `AprsHeaderError` when it is
39
+ * not an APRS frame.
40
+ */
41
+ export declare function parseAx25Frame(frame: Uint8Array, options: ParseOptions): ParsedHeader;
42
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../src/header.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,4EAA4E;AAC5E,qBAAa,eAAgB,SAAQ,KAAK;IACxC,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAE5C,YAAY,WAAW,EAAE,SAAS,UAAU,EAAE,EAK7C;CACF;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,mCAAmC;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAqBD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAarF;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,EAAE,GAClB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,EAAE,CAAA;CAAE,CA4B5D;AAUD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAM7D;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAExG;AAID,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,UAAU,GAAG,SAAS,CASjF;AA2CD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CA+BrF"}
package/dist/header.js ADDED
@@ -0,0 +1,206 @@
1
+ // The packet header: TNC2 text (`SOURCE>DEST,PATH:`) and AX.25 frames in KISS form.
2
+ import { bytesToBinary } from './bytes.js';
3
+ import { diagnostic } from './diagnostics.js';
4
+ /** Thrown when a packet's header is unusable, so nothing can be decoded. */
5
+ export class AprsHeaderError extends Error {
6
+ /** Why: the diagnostics, the last of them the error. */
7
+ diagnostics;
8
+ constructor(diagnostics) {
9
+ const last = diagnostics[diagnostics.length - 1];
10
+ super(last ? last.message : 'The header is unusable.');
11
+ this.name = 'AprsHeaderError';
12
+ this.diagnostics = diagnostics;
13
+ }
14
+ }
15
+ class HeaderRejected {
16
+ code;
17
+ constructor(code) {
18
+ this.code = code;
19
+ }
20
+ }
21
+ function tolerate(options, diags, code) {
22
+ if (options.tolerates(code))
23
+ diags.push(diagnostic('warning', code));
24
+ else {
25
+ diags.push(diagnostic('error', code));
26
+ throw new HeaderRejected(code);
27
+ }
28
+ }
29
+ function fail(diags, code) {
30
+ diags.push(diagnostic('error', code));
31
+ throw new HeaderRejected(code);
32
+ }
33
+ const APRS_IS_ADDRESS = /^[A-Za-z0-9-]{1,9}$/;
34
+ /** Whether `text` is a valid APRS-IS address: 1-9 letters, digits or `-`. */
35
+ export function isAprsIsAddress(text) {
36
+ return APRS_IS_ADDRESS.test(text);
37
+ }
38
+ /**
39
+ * Parses a TNC2 header from the bytes of a line; `info` is everything after the first `:`.
40
+ * Throws `AprsHeaderError` when the header is unusable.
41
+ */
42
+ export function parseTnc2Header(line, options) {
43
+ const diags = [];
44
+ try {
45
+ const colon = line.indexOf(0x3a);
46
+ if (colon < 0)
47
+ fail(diags, 'invalid-header');
48
+ const header = bytesToBinary(line, 0, colon);
49
+ const info = line.subarray(colon + 1);
50
+ const parsed = parseHeaderText(header, options, diags);
51
+ return { ...parsed, info, diagnostics: diags };
52
+ }
53
+ catch (e) {
54
+ if (e instanceof HeaderRejected)
55
+ throw new AprsHeaderError(diags);
56
+ throw e;
57
+ }
58
+ }
59
+ /** Parses `SOURCE>DEST,PATH` (without the colon). Used for TNC2 lines and third-party headers. */
60
+ export function parseHeaderText(header, options, diags) {
61
+ const gt = header.indexOf('>');
62
+ if (gt < 0)
63
+ fail(diags, 'invalid-header');
64
+ const source = header.slice(0, gt);
65
+ if (source.length === 0)
66
+ fail(diags, 'invalid-header');
67
+ if (!APRS_IS_ADDRESS.test(source))
68
+ fail(diags, 'invalid-address');
69
+ const parts = header.slice(gt + 1).split(',');
70
+ const destination = parts[0];
71
+ if (destination.length === 0)
72
+ tolerate(options, diags, 'empty-destination');
73
+ else if (!APRS_IS_ADDRESS.test(destination))
74
+ fail(diags, 'invalid-address');
75
+ const raw = [];
76
+ for (let i = 1; i < parts.length; i++) {
77
+ let entry = parts[i];
78
+ let marked = false;
79
+ if (entry.endsWith('*')) {
80
+ marked = true;
81
+ entry = entry.slice(0, -1);
82
+ }
83
+ if (entry.length === 0 && !marked) {
84
+ tolerate(options, diags, 'empty-path-entry');
85
+ continue;
86
+ }
87
+ if (!APRS_IS_ADDRESS.test(entry))
88
+ fail(diags, 'invalid-address');
89
+ raw.push({ address: entry, marked });
90
+ }
91
+ const markedCount = raw.filter((e) => e.marked).length;
92
+ if (markedCount > 1)
93
+ tolerate(options, diags, 'multiple-used-markers');
94
+ return { source, destination, path: markUsed(raw) };
95
+ }
96
+ function markUsed(raw) {
97
+ let last = -1;
98
+ raw.forEach((e, i) => {
99
+ if (e.marked)
100
+ last = i;
101
+ });
102
+ return raw.map((e, i) => ({ address: e.address, used: i <= last }));
103
+ }
104
+ /** Formats a path as TNC2 text: only the last used entry is marked with `*`. */
105
+ export function formatPath(path) {
106
+ let last = -1;
107
+ path.forEach((e, i) => {
108
+ if (e.used)
109
+ last = i;
110
+ });
111
+ return path.map((e, i) => (i === last ? `${e.address}*` : e.address)).join(',');
112
+ }
113
+ /** Formats a header as TNC2 text, without the colon. */
114
+ export function formatTnc2Header(source, destination, path) {
115
+ return path.length === 0 ? `${source}>${destination}` : `${source}>${destination},${formatPath(path)}`;
116
+ }
117
+ const Q_CONSTRUCT = /^qA[A-Za-z]$/;
118
+ /** The APRS-IS q-construct in a path, and the station after it. */
119
+ export function findQConstruct(path) {
120
+ for (let i = 0; i < path.length; i++) {
121
+ const address = path[i].address;
122
+ if (Q_CONSTRUCT.test(address)) {
123
+ const station = path[i + 1]?.address;
124
+ return station === undefined ? { construct: address } : { construct: address, station };
125
+ }
126
+ }
127
+ return undefined;
128
+ }
129
+ function decodeAx25Address(frame, offset, options, diags) {
130
+ let call = '';
131
+ let padding = false;
132
+ let nulPadded = false;
133
+ let badChars = false;
134
+ for (let i = 0; i < 6; i++) {
135
+ const b = frame[offset + i];
136
+ const c = b >> 1;
137
+ if (c === 0x20 || c === 0x00) {
138
+ padding = true;
139
+ if (c === 0x00)
140
+ nulPadded = true;
141
+ continue;
142
+ }
143
+ if (padding)
144
+ badChars = true;
145
+ const ch = String.fromCharCode(c);
146
+ if (!/[A-Z0-9]/.test(ch))
147
+ badChars = true;
148
+ call += ch;
149
+ }
150
+ if (nulPadded)
151
+ tolerate(options, diags, 'nul-padded-address');
152
+ if (badChars)
153
+ tolerate(options, diags, 'invalid-ax25-address-characters');
154
+ const ssidByte = frame[offset + 6];
155
+ const ssid = (ssidByte >> 1) & 0x0f;
156
+ return {
157
+ text: ssid === 0 ? call : `${call}-${ssid}`,
158
+ flag: (ssidByte & 0x80) !== 0,
159
+ last: (ssidByte & 0x01) !== 0,
160
+ };
161
+ }
162
+ /**
163
+ * Parses an AX.25 UI frame in KISS form (no flags, no FCS). Throws `AprsHeaderError` when it is
164
+ * not an APRS frame.
165
+ */
166
+ export function parseAx25Frame(frame, options) {
167
+ const diags = [];
168
+ try {
169
+ const addresses = [];
170
+ let offset = 0;
171
+ for (;;) {
172
+ if (offset + 7 > frame.length)
173
+ fail(diags, 'not-aprs-frame');
174
+ const address = decodeAx25Address(frame, offset, options, diags);
175
+ addresses.push(address);
176
+ offset += 7;
177
+ if (address.last)
178
+ break;
179
+ }
180
+ if (addresses.length < 2)
181
+ fail(diags, 'not-aprs-frame');
182
+ if (addresses.length > 10)
183
+ fail(diags, 'too-many-digipeaters');
184
+ if (offset + 2 > frame.length)
185
+ fail(diags, 'not-aprs-frame');
186
+ const control = frame[offset];
187
+ const pid = frame[offset + 1];
188
+ if ((control & ~0x10) !== 0x03 || pid !== 0xf0)
189
+ fail(diags, 'not-aprs-frame');
190
+ const [dest, src, ...digis] = addresses;
191
+ const path = markUsed(digis.map((d) => ({ address: d.text, marked: d.flag })));
192
+ return {
193
+ source: src.text,
194
+ destination: dest.text,
195
+ path,
196
+ info: frame.subarray(offset + 2),
197
+ diagnostics: diags,
198
+ };
199
+ }
200
+ catch (e) {
201
+ if (e instanceof HeaderRejected)
202
+ throw new AprsHeaderError(diags);
203
+ throw e;
204
+ }
205
+ }
206
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../src/header.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from './types.js';
2
+ export * from './codes.js';
3
+ export { ParseOptions, diagnostic, formatDiagnostic, type Diagnostic, type Severity } from './diagnostics.js';
4
+ export { AprsHeaderError, findQConstruct, formatPath, formatTnc2Header, isAprsIsAddress } from './header.js';
5
+ export { decodeTnc2, decodeAx25, decodeKiss, unwrapKiss } from './decoder.js';
6
+ export { decodeInformation, type DecodedInformation } from './decode/index.js';
7
+ export { identifyTocall, identifyMicE, DEVICEID_SOURCE, DEVICE_CLASSES } from './deviceid.js';
8
+ export { toNeutralData, toNeutralHeader, toNeutralPacket, fromNeutralData, formatTimestamp, parseTimestamp, type Neutral, } from './neutral.js';
9
+ export { bytesToHex, hexToBytes, encodeUtf8, decodeUtf8 } from './bytes.js';
10
+ export { AprsEncodeError, encodeInformation, encodeTnc2, encodeTnc2Bytes, encodeAx25, wrapKiss, type EncodedInformation, type PacketToEncode, } from './encode/index.js';
11
+ export { Symbols, symbolOf, symbolText, symbolName, describeSymbol, withOverlay, withoutOverlay, overlayOf, acceptsOverlay, sameSymbol, type SymbolName, } from './symbols.js';
12
+ export { Aprs, PacketBuilder, PositionBuilder, ObjectBuilder, ItemBuilder, MicEBuilder, MessageBuilder, StatusBuilder, TelemetryBuilder, DataBuilder, DEFAULT_DESTINATION, timestampOf, type BuiltPacket, } from './builder.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,KAAK,OAAO,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,UAAU,EACV,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,UAAU,EACV,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,IAAI,EACJ,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ // @packet-net/pdn-aprs: an APRS encoder and decoder.
2
+ export * from './types.js';
3
+ export * from './codes.js';
4
+ export { ParseOptions, diagnostic, formatDiagnostic } from './diagnostics.js';
5
+ export { AprsHeaderError, findQConstruct, formatPath, formatTnc2Header, isAprsIsAddress } from './header.js';
6
+ export { decodeTnc2, decodeAx25, decodeKiss, unwrapKiss } from './decoder.js';
7
+ export { decodeInformation } from './decode/index.js';
8
+ export { identifyTocall, identifyMicE, DEVICEID_SOURCE, DEVICE_CLASSES } from './deviceid.js';
9
+ export { toNeutralData, toNeutralHeader, toNeutralPacket, fromNeutralData, formatTimestamp, parseTimestamp, } from './neutral.js';
10
+ export { bytesToHex, hexToBytes, encodeUtf8, decodeUtf8 } from './bytes.js';
11
+ export { AprsEncodeError, encodeInformation, encodeTnc2, encodeTnc2Bytes, encodeAx25, wrapKiss, } from './encode/index.js';
12
+ export { Symbols, symbolOf, symbolText, symbolName, describeSymbol, withOverlay, withoutOverlay, overlayOf, acceptsOverlay, sameSymbol, } from './symbols.js';
13
+ export { Aprs, PacketBuilder, PositionBuilder, ObjectBuilder, ItemBuilder, MicEBuilder, MessageBuilder, StatusBuilder, TelemetryBuilder, DataBuilder, DEFAULT_DESTINATION, timestampOf, } from './builder.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAkC,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAA2B,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,UAAU,EACV,QAAQ,GAGT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,UAAU,GAEX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,IAAI,EACJ,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,WAAW,GAEZ,MAAM,cAAc,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AprsData, AprsPacket, AprsTimestamp, PathEntry } from './types.js';
2
+ /** A JSON object. */
3
+ export type Neutral = {
4
+ [key: string]: unknown;
5
+ };
6
+ /** A timestamp as sent: `092345z`, `092345/`, `234517h` or `10090556`. */
7
+ export declare function formatTimestamp(t: AprsTimestamp): string;
8
+ /** Parses a timestamp as sent; `undefined` if it is not one. */
9
+ export declare function parseTimestamp(text: string): AprsTimestamp | undefined;
10
+ /** Formats a path entry as the neutral form writes it: `WIDE1-1`, or `N2GH*` when used. */
11
+ export declare function pathEntryN(e: PathEntry): string;
12
+ /** A packet's data in the neutral form. */
13
+ export declare function toNeutralData(d: AprsData): Neutral;
14
+ /** A packet's header in the neutral form. */
15
+ export declare function toNeutralHeader(p: AprsPacket): Neutral;
16
+ /** A packet in the neutral form: `{header, data, diagnostics}`. */
17
+ export declare function toNeutralPacket(p: AprsPacket): Neutral;
18
+ type J = Record<string, any>;
19
+ /** Data from the neutral form. */
20
+ export declare function fromNeutralData(d: J): AprsData;
21
+ export {};
22
+ //# sourceMappingURL=neutral.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neutral.d.ts","sourceRoot":"","sources":["../src/neutral.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAEV,aAAa,EAOb,SAAS,EAMV,MAAM,YAAY,CAAC;AAEpB,qBAAqB;AACrB,MAAM,MAAM,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAUjD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAWxD;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAWtE;AAyGD,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAE/C;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAmJlD;AAUD,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAStD;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAItD;AAID,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAkG7B,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAgJ9C"}