@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.
- package/CHANGELOG.md +44 -1
- package/README.md +9 -5
- package/dist/builder.d.ts +33 -8
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +64 -10
- package/dist/builder.js.map +1 -1
- package/dist/bytes.d.ts.map +1 -1
- package/dist/bytes.js +2 -1
- package/dist/bytes.js.map +1 -1
- package/dist/codes.js +8 -8
- package/dist/codes.js.map +1 -1
- package/dist/decode/index.d.ts.map +1 -1
- package/dist/decode/index.js +8 -5
- package/dist/decode/index.js.map +1 -1
- package/dist/decode/message.d.ts +2 -0
- package/dist/decode/message.d.ts.map +1 -1
- package/dist/decode/message.js +59 -33
- package/dist/decode/message.js.map +1 -1
- package/dist/decode/other.d.ts +20 -2
- package/dist/decode/other.d.ts.map +1 -1
- package/dist/decode/other.js +110 -48
- package/dist/decode/other.js.map +1 -1
- package/dist/decode/positioned.d.ts +26 -2
- package/dist/decode/positioned.d.ts.map +1 -1
- package/dist/decode/positioned.js +145 -79
- package/dist/decode/positioned.js.map +1 -1
- package/dist/decode/reports.d.ts.map +1 -1
- package/dist/decode/reports.js +47 -5
- package/dist/decode/reports.js.map +1 -1
- package/dist/decoder.d.ts.map +1 -1
- package/dist/decoder.js +2 -4
- package/dist/decoder.js.map +1 -1
- package/dist/deviceid.d.ts +8 -2
- package/dist/deviceid.d.ts.map +1 -1
- package/dist/deviceid.js +28 -6
- package/dist/deviceid.js.map +1 -1
- package/dist/encode/common.d.ts +13 -2
- package/dist/encode/common.d.ts.map +1 -1
- package/dist/encode/common.js +36 -4
- package/dist/encode/common.js.map +1 -1
- package/dist/encode/index.d.ts.map +1 -1
- package/dist/encode/index.js +59 -22
- package/dist/encode/index.js.map +1 -1
- package/dist/encode/other.d.ts.map +1 -1
- package/dist/encode/other.js +45 -17
- package/dist/encode/other.js.map +1 -1
- package/dist/encode/position.d.ts +9 -3
- package/dist/encode/position.d.ts.map +1 -1
- package/dist/encode/position.js +258 -124
- package/dist/encode/position.js.map +1 -1
- package/dist/header.d.ts +5 -2
- package/dist/header.d.ts.map +1 -1
- package/dist/header.js +8 -3
- package/dist/header.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/neutral.d.ts.map +1 -1
- package/dist/neutral.js +22 -3
- package/dist/neutral.js.map +1 -1
- package/dist/types.d.ts +19 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/builder.ts +77 -14
- package/src/bytes.ts +2 -1
- package/src/codes.ts +8 -8
- package/src/decode/index.ts +7 -4
- package/src/decode/message.ts +54 -37
- package/src/decode/other.ts +116 -44
- package/src/decode/positioned.ts +159 -90
- package/src/decode/reports.ts +47 -4
- package/src/decoder.ts +2 -5
- package/src/deviceid.ts +29 -5
- package/src/encode/common.ts +34 -4
- package/src/encode/index.ts +57 -20
- package/src/encode/other.ts +39 -13
- package/src/encode/position.ts +261 -119
- package/src/header.ts +9 -2
- package/src/index.ts +1 -0
- package/src/neutral.ts +24 -3
- package/src/types.ts +20 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
- Brought into line with the exact-bytes batch 2 rulings (packet-net/aprs-vectors, commit f205471). Every value between the steps its field holds is rounded to the nearest, halves away from zero, a value within 1e-6 of a half (in steps) taken as the half, so a latitude of 0.9764166666666666 degrees is `0058.59N`; a `/A=` altitude is rounded to whole feet (-0.5 to `-00001`), where a fraction was refused; a snowfall is rounded to its three characters (0.995 as `001`, 9.96 as `010`); and a small negative compressed speed that rounds to s = 0 is 0.
|
|
6
|
+
- A course of 0 is refused in Mic-E, where it reads back as no course, and in a compressed report, where it reads back as 360. A compressed course without a speed, or a speed without a course, is refused.
|
|
7
|
+
- DF and storm data with no course and speed is written after `.../...`, and counts as the data extension, so with a PHG, RNG or DFS it is refused.
|
|
8
|
+
- Numbers given as data are plain decimals: `1e61` is `1` and 61 zeros, `1e-7` is `0.0000001`, `190.0` is `190`. A query footprint's latitude and longitude each get a leading space unless negative, 0 included (`?APRS? 0, 0,0200`).
|
|
9
|
+
- A compressed GGA altitude in a weather report, which has no comment for a `/A=`, is written as the nearest cs value.
|
|
10
|
+
- A third-party packet whose inner packet reads back with only `info` diagnostics is written, where it was refused.
|
|
11
|
+
- Mic-E: telemetry and the `!DAO!` are lifted before the locator is read, so a locator followed straight by either has no missing space, and the encoder writes them straight on (`IO91/G|!:&0'p|`); a locator is read only at the start of the status text (or after a Mic-E altitude there), so after a PHG or RNG `IO91SX/G` is text, written straight on; a PHG after a locator and its space is lifted before an altitude is looked for later in the text; with ambiguity, the longitude digits a decoder ignores are written as the centre it reports, where they held the position's own digits; and a comment that would join a PHG's digits into an altitude is written after a space when a `/` does not help.
|
|
12
|
+
- Device lookup is case-sensitive (`APNl02` matches nothing), and a third-party packet's inner packet has its own `device`.
|
|
13
|
+
- The builder: a course of 0 (or one that rounds to 0) is unknown, so Mic-E writes no course; `altitudeMetres()` on a Mic-E report uses the Mic-E altitude bytes, rounded to the metre, and `altitude()` a `/A=`; weather takes `temperatureC`, `rain1hMm`, `rain24hMm` and `rainMidnightMm` (the type `WeatherInput`), converted and rounded once; a telemetry sequence given as a number over 999 is refused, where it was written as four digits.
|
|
14
|
+
- Rulings G1-G3 (vectors commit 08cecbe): a cs value rounds to the nearest step of its formula for any whole s and is refused when that s is outside the byte, so a compressed speed of -0.03 knots is 0 and -0.3 is refused, and a range of 1.95 miles is 2 and 1.9 refused (a range under 2 was always refused); the ambiguity cut takes a value within 1e-6 of the box edge above it as on that edge (80.49 degrees with one level is 29.4x).
|
|
15
|
+
- Run 2 rulings (vectors commit 423a654): cs values with no compression type get the default type byte `C`, a third-party inner packet's too; in strict decoding, a Mic-E status text left as text is rejected (`mic-e-altitude-not-first`) when lifting its `!DAO!` would join bytes into another altitude; a Mic-E comment that a `/` would join into an altitude (`/{}`) is written after a space.
|
|
16
|
+
- A snowfall of `s` and three spaces is a weather field sent as unknown, not comment text (vectors commit a638990).
|
|
17
|
+
- Storm data's fields are digits: one holding a space (`> 90`) makes the whole of it comment text, and the encoder refuses storm data with a field missing. Strict Mic-E decoding reads as lenient when the status text has no later altitude to decline (vectors commit 1788661).
|
|
18
|
+
- Strict Mic-E decoding rejects a declined later altitude only when lifting telemetry or the `!DAO!` would join bytes across their place into another altitude, not when the text already held one (vectors commit 9c01dbd).
|
|
19
|
+
- Mic-E: a PHG or RNG that reaches the start of the status text only once a later altitude is lifted is late, with `data-extension-in-comment` (vectors commit e27a79f).
|
|
20
|
+
- `scripts/diff-dump.mjs` build mode passes Celsius and millimetre weather to the builder.
|
|
21
|
+
|
|
22
|
+
- The encoder writes exactly the bytes the vectors' Encoding rule gives (packet-net/aprs-vectors, exact-bytes batch 1), and the conformance test compares them with each case's `canonical_info` byte for byte, and checks the new `rounded` re-encoding.
|
|
23
|
+
- A position, object or item report's comment is written in one order: the voice frequency with its fields (in the first bytes, where radios read it), the signpost or corridor braces, the `/A=` altitude, the free text (after a space when a frequency comes before it), base-91 telemetry and the `!DAO!`. So `j006/058/146.520MHz/A=000889 Dayton Bound`, where it was `j006/058/A=000889146.520MHz Dayton Bound`; and braces are always written before the free text. A frequency straight after a seven-byte data extension follows a `/`.
|
|
24
|
+
- The `!DAO!` on a compressed position gets the digits a `!DAO!` of its precision gives the position the compressed bytes report (`!sCp!`), where it had zeros (`!s!!!`). A position's digits and its `!DAO!` digits are the nearest step of the `!DAO!`'s precision, so a remainder close to the next hundredth of a minute carries into it.
|
|
25
|
+
- Mic-E: a speed of 190-199 knots is written with `/`, the printable form, where it was DEL.
|
|
26
|
+
- A snowfall under 1 inch is `.` and two digits (0.5 as `.50`), where it was `0.5`.
|
|
27
|
+
- A value the compressed cs bytes carry in steps (a course or wind direction, a speed, a range) is rounded once, straight to the nearest step, halves away from zero; a course was first rounded to whole degrees. A compressed range under 2 miles is refused: the cs bytes cannot hold it. Everywhere else a value is rounded to a whole number, halves go away from zero (-12.5 to -13), where `Math.round` took them towards +infinity.
|
|
28
|
+
- **API change:** `Query.footprint` keeps each number as sent (`latitudeText`, `longitudeText`, a leading space included), and the encoder writes it back that way (`?APRS? 34.360,-.1715,0200`), where it wrote the number again (`34.36,-0.1715`). The footprint's type is exported as `QueryFootprint`.
|
|
29
|
+
- The builder has `speedKmh()`, a speed in km/h, beside `speed()` in knots.
|
|
30
|
+
- `fromNeutralData` builds third-party data too: the inner packet's data, header and diagnostics, with no information field, so the encoder writes the inner packet from its data.
|
|
31
|
+
- `scripts/diff-dump.mjs` has the vectors' encode (`--encode`) and build (`--build`) modes, and its decode records carry the bytes written (`written`, and `written_destination` for Mic-E) and the API view (`api`).
|
|
32
|
+
|
|
33
|
+
## 0.2.0
|
|
34
|
+
|
|
35
|
+
- Faster decoding, about a third less time per packet: the device a destination identifies is remembered rather than matched against the whole device database for every packet, and bytes become text without an intermediate copy.
|
|
36
|
+
- Brought into line with the rulings from seven rounds of differential fuzzing of all five implementations (packet-net/aprs-vectors, commit dc3854a, 159 new cases). Passes every check.
|
|
37
|
+
- **API change:** `NmeaSentence` gains `comment`, the text after the checksum as sent (TinyTrack and FreeTrak send one), and the neutral form writes it as `comment`. `sentence` now ends at the checksum. A sentence is `$`, an address of five upper-case letters or digits (or `P` and three or more), at least one field, printable ASCII, and at most one `*`, which must start a two-digit checksum; anything else is `invalid-nmea`, found before a checksum mismatch. Only GGA, GLL, RMC, VTG and WPL are read, and only from an approved address, so a proprietary sentence such as `$PGRMC` is kept as text. A position needs both coordinates, and a time must be in range. A speed, course or altitude may start with its decimal point (`.30`).
|
|
38
|
+
- **API change:** `CommentTelemetry.digital` is the eight binary channels, 0-255; bits 9-13 of the value are reserved and ignored, and the encoder refuses a value over 255. `Dao.datum` may be a digit, a local datum, which only carries precision `none`.
|
|
39
|
+
- Messages: an addressee field whose tenth byte is `:` is read as the addressee whatever it holds; `ack` or `rej` and an ID followed by anything but a message ID is a plain message; bulletins, NWS bulletins and telemetry metadata do not take the reply-ack form (`{12}` stays in the text, with `brace-in-message-text`); an `EQNS.` coefficient has no `+`, only spaces around it, and must be a finite number. A directed query's target may follow one space, and spaces after it are padding; the encoder pads an APRSH target to 9 characters and writes a target after a type the spec does not define after one space.
|
|
40
|
+
- Station capabilities: spaces (and only spaces) around an item, a token or a value are padding, so `MSG_CNT = 43` is `MSG_CNT` and `43`; a control character in a token or a value makes the report free text. The encoder refuses anything that would not read back the same.
|
|
41
|
+
- A general query footprint outside 90 degrees of latitude or 180 of longitude is `invalid-general-query`, a positive longitude may have a leading space, and each value is a number as a telemetry value is, so it may start with its decimal point (`-.1715`). An Agrelo DF report is exactly `%nnn/n` with a bearing of 0 to 360. A status `^` beam heading needs an ERP code of 1 to K; `^B0` is text.
|
|
42
|
+
- A third-party header's source may be any 1-9 printable ASCII characters but `>` and `:` (APRS12c ch. 17). A q-construct is read only in the outer header, so a third-party packet no longer has a `qConstruct` from its own path. A third-party packet whose inner information field is empty re-encodes as it came.
|
|
43
|
+
- Positions: a latitude whose ambiguity centres it past the pole (`90 . N`) is `invalid-latitude`, and a longitude centred past 180 degrees is `invalid-longitude`; a longitude place the latitude's ambiguity blanks may hold a digit or a space; a DF bearing over 360 is `out-of-range-value` and the whole `/BRG/NRQ` is dropped; a microwave band letter is upper case (`n47.150MHz` is comment text); a `!DAO!` with a digit datum and spaces is read; a signpost is printable ASCII, and the encoder writes one with a space in it (`{5 }`), which it refused; a signpost or corridor is the first well-formed braces, so braces that do not qualify (`{AB}` before a corridor's `{5}`) no longer stop the search, and when a comment holds braces that would be taken for the signpost or corridor, the encoder writes the braces before the comment (`{5p5}{AB}`) instead of refusing; the `!DAO!` is judged before the comment's encoding; and a compressed GGA altitude of 1 foot or less is written as the nearest cs value with a `/A=`, where it was refused.
|
|
44
|
+
- Weather: the wind speed in a compressed weather position's cs bytes is converted from knots with the exact factor, 1852 / 1609.344, not a rounded one, so it agrees with the other implementations past the ninth significant figure. In a position, object or item report, the wind is judged where the `DDD/SSS` extension belongs, before any field, so strict decoding rejects missing wind or wind fields before a field's width; a `c` field without an `s` leaves the wind incomplete; `L` and `l` are one field; snowfall may be written with a decimal point (`s.50` is 0.5 inches), and a run of dots is read only up to the field's width, and is not a field when a digit follows it (`s..6` is text); the encoder writes a snowfall exactly in its three characters, with a decimal point where it needs one (0.32 as `.32`), where it refused 0.32 and 0.05; and a positionless report keeps base-91 telemetry and `!DAO!` text in its comment.
|
|
45
|
+
- Mic-E: the Rev 0 data type identifiers 0x1C and 0x1D get an `obsolete-format` info, before anything else is checked; a destination latitude of 90 degrees with blanked digits, whose centre is past the pole, is `invalid-mic-e-destination`; a data extension straight after the type code is read before an altitude is looked for later in the text, so `0PH}` in `PHG3330PH}` is not an altitude; a `!DAO!` is never read across an altitude taken out of the text; and status text that would start with 0x1D is written after a `/`, as APRS12c requires, where it was written plainly when it could not be read as Rev 0 telemetry.
|
|
46
|
+
- `scripts/diff-dump.mjs` re-decodes a re-encoded packet under a well-formed header (the computed destination for Mic-E), so a defect in the original header, such as an empty destination, is no longer counted against the encoder.
|
|
4
47
|
|
|
5
48
|
## 0.1.1
|
|
6
49
|
|
package/README.md
CHANGED
|
@@ -133,7 +133,9 @@ console.log(station.telemetry(5, [199, 0, 255, 73, 123], '01101001').toTnc2());
|
|
|
133
133
|
console.log(station.micE(51.5, -0.1234).symbol(Symbols.car).micEMessage('en-route').speed(20).course(90).toTnc2()); // M0LTE>UQ3PPP:`v_Dn v>/`
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
The builder takes values as an application has them: a course of 0 is unknown, as APRS has it (360 is north), so it is `000` in an uncompressed report, no course in Mic-E, and refused in a compressed report; `speedKmh()` and `altitudeMetres()` take km/h and metres beside knots and feet, and weather may be given in Celsius (`temperatureC`) and millimetres (`rain1hMm`, `rain24hMm`, `rainMidnightMm`) as well as Fahrenheit and inches. Each value is rounded once, to the nearest step its field holds. A Mic-E altitude in metres goes in the Mic-E altitude bytes, whose unit is the metre; one in feet goes in a `/A=`. A telemetry sequence given as a number is 0-999.
|
|
137
|
+
|
|
138
|
+
Anything the spec does not allow is refused when you build it, with an `AprsEncodeError` saying why: message text over 67 characters, an object name with a trailing space, two data extensions at once. Free text is checked by decoding what was written, so a comment that would read back as something else (an altitude, a PHG code, a `!DAO!`) gets a `/` delimiter (or a space) in front if that fixes it, and is refused if not.
|
|
137
139
|
|
|
138
140
|
```ts
|
|
139
141
|
import { Aprs, AprsEncodeError } from '@packet-net/pdn-aprs';
|
|
@@ -145,7 +147,7 @@ try {
|
|
|
145
147
|
}
|
|
146
148
|
```
|
|
147
149
|
|
|
148
|
-
The encoder also works on data directly: `encodeInformation(data)` returns the information field bytes (and for Mic-E the destination), and `encodeTnc2` / `encodeAx25` a whole packet. Decoding and encoding again round-trips: data from the decoder encodes back to the same bytes, or to bytes that decode to the same data.
|
|
150
|
+
The encoder also works on data directly: `encodeInformation(data)` returns the information field bytes (and for Mic-E the destination), and `encodeTnc2` / `encodeAx25` a whole packet. Decoding and encoding again round-trips: data from the decoder encodes back to the same bytes, or to bytes that decode to the same data, or is refused when there are none. It is never written as bytes that read back as different data, apart from wind or a range going back into a compressed position's cs bytes, which carry them in steps.
|
|
149
151
|
|
|
150
152
|
## Symbols
|
|
151
153
|
|
|
@@ -174,15 +176,17 @@ console.log(identifyTocall('APDW18')?.model); // DireWolf
|
|
|
174
176
|
|
|
175
177
|
## Conformance
|
|
176
178
|
|
|
177
|
-
The conformance vectors are a git submodule at `vectors/`. The test suite runs every case with every check the vectors' README defines (the lenient result, the strict result, the single-tolerance check, re-encoding, and the encode cases), one test per check per case:
|
|
179
|
+
The conformance vectors are a git submodule at `vectors/`. The test suite runs every case with every check the vectors' README defines (the lenient result, the strict result, the single-tolerance check, re-encoding, and the encode cases), one test per check per case: 6,137 tests, all passing. A check this implementation could not pass would be listed in `test/known-differences.json` with the reason and skipped; the list is empty.
|
|
178
180
|
|
|
179
|
-
`scripts/diff-dump.mjs` writes the differential
|
|
181
|
+
`scripts/diff-dump.mjs` writes the differential dumps that the vectors' `tools/compare.py` reads, for comparing implementations (the vectors' README, "Comparing implementations"): decoding a capture or fuzzed packets (the default, with the bytes the encoder writes and the API view), encoding data in the neutral form (`--encode`), and building packets from recipes (`--build`):
|
|
180
182
|
|
|
181
183
|
```sh
|
|
182
184
|
git submodule update --init
|
|
183
185
|
npm ci && npm run build
|
|
184
186
|
node scripts/diff-dump.mjs lines.hex.gz ts.jsonl.gz
|
|
185
|
-
|
|
187
|
+
node scripts/diff-dump.mjs --encode data.jsonl.gz ts-encode.jsonl.gz
|
|
188
|
+
node scripts/diff-dump.mjs --build recipes.jsonl.gz ts-build.jsonl.gz
|
|
189
|
+
python3 vectors/tools/compare.py ts.jsonl.gz other.jsonl.gz --names TS Other --input lines.hex.gz
|
|
186
190
|
```
|
|
187
191
|
|
|
188
192
|
The examples in this README run as tests too (`test/readme.test.ts`).
|
package/dist/builder.d.ts
CHANGED
|
@@ -24,6 +24,16 @@ interface Header {
|
|
|
24
24
|
destination?: string;
|
|
25
25
|
path: string[];
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Weather as a program may have it: the units APRS sends (Fahrenheit, inches), or Celsius and
|
|
29
|
+
* millimetres, which the builder converts (vectors rulings, B2). Give each value in one unit.
|
|
30
|
+
*/
|
|
31
|
+
export interface WeatherInput extends Weather {
|
|
32
|
+
readonly temperatureC?: number;
|
|
33
|
+
readonly rain1hMm?: number;
|
|
34
|
+
readonly rain24hMm?: number;
|
|
35
|
+
readonly rainMidnightMm?: number;
|
|
36
|
+
}
|
|
27
37
|
/**
|
|
28
38
|
* A timestamp from a `Date`, in UTC: day, hour and minute (`dhm-zulu`, the recommended form),
|
|
29
39
|
* or hours, minutes and seconds (`hms`).
|
|
@@ -48,7 +58,7 @@ export declare class PacketBuilder {
|
|
|
48
58
|
/** A position report. */
|
|
49
59
|
position(latitude: number, longitude: number): PositionBuilder;
|
|
50
60
|
/** A weather report at a position (the weather station symbol, unless you pick another `_`). */
|
|
51
|
-
weather(latitude: number, longitude: number, weather:
|
|
61
|
+
weather(latitude: number, longitude: number, weather: WeatherInput): PositionBuilder;
|
|
52
62
|
/** An object: `timestamp` defaults to now (objects always carry one). */
|
|
53
63
|
object(name: string, latitude: number, longitude: number): ObjectBuilder;
|
|
54
64
|
/** An item. */
|
|
@@ -65,7 +75,11 @@ export declare class PacketBuilder {
|
|
|
65
75
|
bulletin(id: string, text: string, group?: string): DataBuilder;
|
|
66
76
|
/** A status report. */
|
|
67
77
|
status(text?: string): StatusBuilder;
|
|
68
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* A telemetry report: sequence, five analog values and eight bits (`'01101001'`, B1 first). A
|
|
80
|
+
* sequence given as a number is 0-999, written in three digits; a larger one is refused when
|
|
81
|
+
* the packet is built, not wrapped (vectors rulings, B6).
|
|
82
|
+
*/
|
|
69
83
|
telemetry(sequence: number | string, analog: readonly (number | null)[], bits: string): TelemetryBuilder;
|
|
70
84
|
/** Telemetry channel names (`PARM.`), sent to the station whose telemetry they describe. */
|
|
71
85
|
telemetryNames(addressee: string, names: readonly string[]): DataBuilder;
|
|
@@ -76,7 +90,7 @@ export declare class PacketBuilder {
|
|
|
76
90
|
/** Telemetry bit sense and project title (`BITS.`). */
|
|
77
91
|
telemetryBits(addressee: string, bits: string, project?: string): DataBuilder;
|
|
78
92
|
/** A positionless weather report (not recommended: a weather report with a position is better). */
|
|
79
|
-
weatherReport(weather:
|
|
93
|
+
weatherReport(weather: WeatherInput, at?: Date): DataBuilder;
|
|
80
94
|
/** Any data, built by hand. */
|
|
81
95
|
data(data: AprsData): DataBuilder;
|
|
82
96
|
}
|
|
@@ -98,14 +112,25 @@ declare abstract class PositionedBuilder<Self> {
|
|
|
98
112
|
protected abstract self(): Self;
|
|
99
113
|
/** The display symbol: `Symbols.car`, or its two characters (`'/>'`). */
|
|
100
114
|
symbol(symbol: AprsSymbol | string): Self;
|
|
101
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Course over the ground, degrees: 360 is north and 0 is unknown, as APRS has it (vectors
|
|
117
|
+
* rulings, B1). A course of 0 is written `000` in an uncompressed report, left out of a Mic-E
|
|
118
|
+
* report, and refused in a compressed one, whose bytes have no unknown course.
|
|
119
|
+
*/
|
|
102
120
|
course(degrees: number): Self;
|
|
103
121
|
/** Speed, knots. */
|
|
104
122
|
speed(knots: number): Self;
|
|
105
|
-
/**
|
|
123
|
+
/** Speed, km/h (sent in knots, 1.852 km/h each, rounded once to the knot). */
|
|
124
|
+
speedKmh(kmh: number): Self;
|
|
125
|
+
/** Altitude, feet, sent as a `/A=` in whole feet (rounded to the nearest, halves away from zero). */
|
|
106
126
|
altitude(feet: number): Self;
|
|
107
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Altitude, metres: converted to feet (0.3048 m each) and rounded once for a `/A=`; a Mic-E
|
|
129
|
+
* report sends it in its own altitude bytes, whose unit is the metre, rounded to the metre.
|
|
130
|
+
*/
|
|
108
131
|
altitudeMetres(metres: number): Self;
|
|
132
|
+
/** The unit the altitude was given in. */
|
|
133
|
+
protected altitudeUnit: 'feet' | 'metres' | undefined;
|
|
109
134
|
/** Free text. */
|
|
110
135
|
comment(text: string): Self;
|
|
111
136
|
/** An APRS 1.2 voice frequency, e.g. `frequency(145.5, { tone: 'tone', toneValue: 77 })`. */
|
|
@@ -124,7 +149,7 @@ declare abstract class ReportBuilder<Self> extends PositionedBuilder<Self> {
|
|
|
124
149
|
/** A pre-calculated radio range, miles. */
|
|
125
150
|
range(miles: number): Self;
|
|
126
151
|
/** Weather data (needs a weather station symbol, `_`). */
|
|
127
|
-
weather(weather:
|
|
152
|
+
weather(weather: WeatherInput): Self;
|
|
128
153
|
/** The compressed format (APRS12c ch. 9), with its type byte if you want to set it. */
|
|
129
154
|
compressed(compression?: CompressionType): Self;
|
|
130
155
|
}
|
|
@@ -222,7 +247,7 @@ export declare class TelemetryBuilder {
|
|
|
222
247
|
private readonly analog;
|
|
223
248
|
private readonly bits;
|
|
224
249
|
private commentValue?;
|
|
225
|
-
constructor(header: Header, sequence: string, analog: readonly (number | null)[], bits: string);
|
|
250
|
+
constructor(header: Header, sequence: number | string, analog: readonly (number | null)[], bits: string);
|
|
226
251
|
/** Free text after the bits. */
|
|
227
252
|
comment(text: string): TelemetryBuilder;
|
|
228
253
|
build(): BuiltPacket;
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.js
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
//
|
|
13
13
|
// `build()` encodes the packet, so anything the spec does not allow is refused there, with an
|
|
14
14
|
// `AprsEncodeError` that says why.
|
|
15
|
+
import { nearest, refuse } from './encode/common.js';
|
|
16
|
+
import { ALTITUDE_GIVEN_IN_FEET } from './encode/position.js';
|
|
15
17
|
import { encodeInformation, encodeAx25, encodeTnc2, encodeTnc2Bytes, wrapKiss } from './encode/index.js';
|
|
16
18
|
import { symbolOf } from './symbols.js';
|
|
17
19
|
/** The tocall used when none is given: the experimental `APZ` range. */
|
|
@@ -32,6 +34,25 @@ function built(header, data) {
|
|
|
32
34
|
toKiss: (port = 0) => wrapKiss(encodeAx25(toEncode), port),
|
|
33
35
|
});
|
|
34
36
|
}
|
|
37
|
+
const MM_PER_INCH = 25.4;
|
|
38
|
+
/** Weather in the units APRS sends; a value in two units is refused. */
|
|
39
|
+
function weatherOf(input) {
|
|
40
|
+
const { temperatureC, rain1hMm, rain24hMm, rainMidnightMm, ...rest } = input;
|
|
41
|
+
const w = { ...rest };
|
|
42
|
+
const convert = (metric, key, f) => {
|
|
43
|
+
if (metric === undefined)
|
|
44
|
+
return;
|
|
45
|
+
if (w[key] !== undefined)
|
|
46
|
+
refuse(`weather ${key} is given in two units`);
|
|
47
|
+
w[key] = f(metric);
|
|
48
|
+
};
|
|
49
|
+
// Converted here and rounded once, when the report is written.
|
|
50
|
+
convert(temperatureC, 'temperatureF', (c) => (c * 9) / 5 + 32);
|
|
51
|
+
convert(rain1hMm, 'rain1hIn', (mm) => mm / MM_PER_INCH);
|
|
52
|
+
convert(rain24hMm, 'rain24hIn', (mm) => mm / MM_PER_INCH);
|
|
53
|
+
convert(rainMidnightMm, 'rainMidnightIn', (mm) => mm / MM_PER_INCH);
|
|
54
|
+
return w;
|
|
55
|
+
}
|
|
35
56
|
function asSymbol(symbol) {
|
|
36
57
|
return typeof symbol === 'string' ? symbolOf(symbol) : symbol;
|
|
37
58
|
}
|
|
@@ -108,10 +129,13 @@ export class PacketBuilder {
|
|
|
108
129
|
status(text) {
|
|
109
130
|
return new StatusBuilder(this.header, text);
|
|
110
131
|
}
|
|
111
|
-
/**
|
|
132
|
+
/**
|
|
133
|
+
* A telemetry report: sequence, five analog values and eight bits (`'01101001'`, B1 first). A
|
|
134
|
+
* sequence given as a number is 0-999, written in three digits; a larger one is refused when
|
|
135
|
+
* the packet is built, not wrapped (vectors rulings, B6).
|
|
136
|
+
*/
|
|
112
137
|
telemetry(sequence, analog, bits) {
|
|
113
|
-
|
|
114
|
-
return new TelemetryBuilder(this.header, seq, analog, bits);
|
|
138
|
+
return new TelemetryBuilder(this.header, sequence, analog, bits);
|
|
115
139
|
}
|
|
116
140
|
/** Telemetry channel names (`PARM.`), sent to the station whose telemetry they describe. */
|
|
117
141
|
telemetryNames(addressee, names) {
|
|
@@ -141,7 +165,7 @@ export class PacketBuilder {
|
|
|
141
165
|
hour: at.getUTCHours(),
|
|
142
166
|
minute: at.getUTCMinutes(),
|
|
143
167
|
};
|
|
144
|
-
return new DataBuilder(this.header, { type: 'weather', timestamp, weather });
|
|
168
|
+
return new DataBuilder(this.header, { type: 'weather', timestamp, weather: weatherOf(weather) });
|
|
145
169
|
}
|
|
146
170
|
/** Any data, built by hand. */
|
|
147
171
|
data(data) {
|
|
@@ -178,7 +202,11 @@ class PositionedBuilder {
|
|
|
178
202
|
this.fields.symbol = asSymbol(symbol);
|
|
179
203
|
return this.self();
|
|
180
204
|
}
|
|
181
|
-
/**
|
|
205
|
+
/**
|
|
206
|
+
* Course over the ground, degrees: 360 is north and 0 is unknown, as APRS has it (vectors
|
|
207
|
+
* rulings, B1). A course of 0 is written `000` in an uncompressed report, left out of a Mic-E
|
|
208
|
+
* report, and refused in a compressed one, whose bytes have no unknown course.
|
|
209
|
+
*/
|
|
182
210
|
course(degrees) {
|
|
183
211
|
this.fields.courseDegrees = degrees;
|
|
184
212
|
return this.self();
|
|
@@ -188,16 +216,28 @@ class PositionedBuilder {
|
|
|
188
216
|
this.fields.speedKnots = knots;
|
|
189
217
|
return this.self();
|
|
190
218
|
}
|
|
191
|
-
/**
|
|
219
|
+
/** Speed, km/h (sent in knots, 1.852 km/h each, rounded once to the knot). */
|
|
220
|
+
speedKmh(kmh) {
|
|
221
|
+
this.fields.speedKnots = kmh / 1.852;
|
|
222
|
+
return this.self();
|
|
223
|
+
}
|
|
224
|
+
/** Altitude, feet, sent as a `/A=` in whole feet (rounded to the nearest, halves away from zero). */
|
|
192
225
|
altitude(feet) {
|
|
193
226
|
this.fields.altitudeFeet = feet;
|
|
227
|
+
this.altitudeUnit = 'feet';
|
|
194
228
|
return this.self();
|
|
195
229
|
}
|
|
196
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* Altitude, metres: converted to feet (0.3048 m each) and rounded once for a `/A=`; a Mic-E
|
|
232
|
+
* report sends it in its own altitude bytes, whose unit is the metre, rounded to the metre.
|
|
233
|
+
*/
|
|
197
234
|
altitudeMetres(metres) {
|
|
198
|
-
this.fields.altitudeFeet =
|
|
235
|
+
this.fields.altitudeFeet = metres / 0.3048;
|
|
236
|
+
this.altitudeUnit = 'metres';
|
|
199
237
|
return this.self();
|
|
200
238
|
}
|
|
239
|
+
/** The unit the altitude was given in. */
|
|
240
|
+
altitudeUnit;
|
|
201
241
|
/** Free text. */
|
|
202
242
|
comment(text) {
|
|
203
243
|
this.fields.comment = text;
|
|
@@ -244,7 +284,7 @@ class ReportBuilder extends PositionedBuilder {
|
|
|
244
284
|
}
|
|
245
285
|
/** Weather data (needs a weather station symbol, `_`). */
|
|
246
286
|
weather(weather) {
|
|
247
|
-
this.fields.weather = weather;
|
|
287
|
+
this.fields.weather = weatherOf(weather);
|
|
248
288
|
return this.self();
|
|
249
289
|
}
|
|
250
290
|
/** The compressed format (APRS12c ch. 9), with its type byte if you want to set it. */
|
|
@@ -378,6 +418,14 @@ export class MicEBuilder extends PositionedBuilder {
|
|
|
378
418
|
}
|
|
379
419
|
build() {
|
|
380
420
|
const data = { type: 'mic-e', micEMessage: this.messageValue, ...this.fields };
|
|
421
|
+
// A course of 0 (after rounding) is unknown, which Mic-E writes as 0: no course (B1).
|
|
422
|
+
if (data.courseDegrees !== undefined && Number.isFinite(data.courseDegrees) && nearest(data.courseDegrees) === 0)
|
|
423
|
+
delete data.courseDegrees;
|
|
424
|
+
// Metres go in the Mic-E altitude bytes, to the metre; feet in a /A= (B2).
|
|
425
|
+
if (data.altitudeFeet !== undefined && this.altitudeUnit === 'metres')
|
|
426
|
+
data.altitudeFeet = nearest(data.altitudeFeet * 0.3048) / 0.3048;
|
|
427
|
+
if (data.altitudeFeet !== undefined && this.altitudeUnit === 'feet')
|
|
428
|
+
ALTITUDE_GIVEN_IN_FEET.add(data);
|
|
381
429
|
if (this.typeCodeValue !== undefined)
|
|
382
430
|
data.typeCode = this.typeCodeValue;
|
|
383
431
|
if (this.locatorValue !== undefined)
|
|
@@ -491,9 +539,15 @@ export class TelemetryBuilder {
|
|
|
491
539
|
return this;
|
|
492
540
|
}
|
|
493
541
|
build() {
|
|
542
|
+
let sequence = this.sequence;
|
|
543
|
+
if (typeof sequence === 'number') {
|
|
544
|
+
if (!Number.isInteger(sequence) || sequence < 0 || sequence > 999)
|
|
545
|
+
refuse(`telemetry sequence ${sequence} is not 0-999`);
|
|
546
|
+
sequence = String(sequence).padStart(3, '0');
|
|
547
|
+
}
|
|
494
548
|
const data = {
|
|
495
549
|
type: 'telemetry',
|
|
496
|
-
sequence
|
|
550
|
+
sequence,
|
|
497
551
|
analog: [...this.analog],
|
|
498
552
|
bits: this.bits,
|
|
499
553
|
};
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/bytes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAIA,8BAA8B;AAC9B,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,SAAI,EAAE,GAAG,SAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAIA,8BAA8B;AAC9B,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,SAAI,EAAE,GAAG,SAAe,GAAG,MAAM,CAQtF;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAInD;AAED,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA2C9D;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBrD;AAED,iCAAiC;AACjC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEnD;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD"}
|
package/dist/bytes.js
CHANGED
|
@@ -6,7 +6,8 @@ export function bytesToBinary(bytes, start = 0, end = bytes.length) {
|
|
|
6
6
|
let s = '';
|
|
7
7
|
const CHUNK = 8192;
|
|
8
8
|
for (let i = start; i < end; i += CHUNK) {
|
|
9
|
-
|
|
9
|
+
// apply takes the typed array directly; copying it into an Array first doubled the cost.
|
|
10
|
+
s += String.fromCharCode.apply(null, bytes.subarray(i, Math.min(end, i + CHUNK)));
|
|
10
11
|
}
|
|
11
12
|
return s;
|
|
12
13
|
}
|
package/dist/bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,2FAA2F;AAC3F,kFAAkF;AAElF,8BAA8B;AAC9B,MAAM,UAAU,aAAa,CAAC,KAAiB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM;IAC5E,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
|
package/dist/codes.js
CHANGED
|
@@ -16,7 +16,7 @@ export const DIAGNOSTIC_MEANINGS = {
|
|
|
16
16
|
'truncated': "The information field is shorter than its format requires.",
|
|
17
17
|
'not-aprs': "The first byte is not a data type identifier (APRS12c ch. 20).",
|
|
18
18
|
'reserved-data-type': "A reserved data type identifier with no defined format (APRS12c ch. 5).",
|
|
19
|
-
'obsolete-format': "A format the spec marks obsolete or not recommended, e.g. raw NMEA or
|
|
19
|
+
'obsolete-format': "A format the spec marks obsolete or not recommended, e.g. raw NMEA, raw weather, or the Rev 0 Mic-E data type identifiers 0x1C and 0x1D.",
|
|
20
20
|
'out-of-range-value': "A value in a well-formed field is out of range and was dropped.",
|
|
21
21
|
'invalid-timestamp': "A timestamp is malformed or out of range (APRS12c ch. 6, UAP 5.8).",
|
|
22
22
|
'invalid-position': "The position is missing or starts with something that cannot begin one.",
|
|
@@ -37,7 +37,7 @@ export const DIAGNOSTIC_MEANINGS = {
|
|
|
37
37
|
'invalid-weather': "Positionless or raw weather data that could not be decoded.",
|
|
38
38
|
'invalid-mic-e-destination': "The destination address is not a valid Mic-E encoding (APRS12c ch. 10).",
|
|
39
39
|
'invalid-mic-e-information': "The Mic-E information field is malformed (APRS12c ch. 10).",
|
|
40
|
-
'kenwood-ff-padding': "Kenwood TM-D710 0xFF padding was removed (UAP 5.10).",
|
|
40
|
+
'kenwood-ff-padding': "Kenwood TM-D710 0xFF padding was removed from Mic-E status text, after the destination and the nine fixed bytes decoded (UAP 5.10).",
|
|
41
41
|
'mic-e-missing-device-type': "A Mic-E report without a device type prefix (UAP 5.4).",
|
|
42
42
|
'invalid-message': "A message is malformed (APRS12c ch. 14).",
|
|
43
43
|
'unpadded-addressee': "The addressee is not padded to 9 characters.",
|
|
@@ -47,13 +47,13 @@ export const DIAGNOSTIC_MEANINGS = {
|
|
|
47
47
|
'invalid-telemetry': "A telemetry report is malformed (APRS12c ch. 13).",
|
|
48
48
|
'invalid-status': "A status report is malformed (APRS12c ch. 16).",
|
|
49
49
|
'invalid-locator': "A Maidenhead locator is malformed.",
|
|
50
|
-
'invalid-nmea': "
|
|
50
|
+
'invalid-nmea': "The text after $ is not an NMEA 0183 sentence: not printable ASCII, no valid address field, or a reserved character in a field.",
|
|
51
51
|
'nmea-checksum-mismatch': "An NMEA sentence's checksum does not match, so the sentence is corrupt and is not decoded.",
|
|
52
|
-
'invalid-third-party': "A third-party header is malformed (APRS12c ch. 17).",
|
|
53
|
-
'invalid-general-query': "A general query is malformed (APRS12c ch. 15).",
|
|
52
|
+
'invalid-third-party': "A third-party header is malformed, or (strict) its inner header has a defect a lenient decoder tolerates (APRS12c ch. 17).",
|
|
53
|
+
'invalid-general-query': "A general query is malformed, or its footprint is out of range (APRS12c ch. 15).",
|
|
54
54
|
'invalid-capabilities': "A station capabilities report is malformed (APRS12c ch. 15).",
|
|
55
55
|
'invalid-user-defined': "A user-defined packet is shorter than its 3-byte header (APRS12c ch. 19).",
|
|
56
|
-
'invalid-agrelo-df': "An Agrelo DF report is
|
|
56
|
+
'invalid-agrelo-df': "An Agrelo DF report is not exactly %, a bearing of 000 to 360, / and a quality digit.",
|
|
57
57
|
'missing-space-after-locator': "A grid-locator status report lacks the mandatory space before its text (UAP 5.17).",
|
|
58
58
|
'compression-type-reserved-bits': "A compressed position's type byte sets its unused high bits (APRS12c ch. 9).",
|
|
59
59
|
'malformed-timestamp': "A timestamped position report whose timestamp is missing or not timestamp-shaped (UAP 5.8).",
|
|
@@ -62,10 +62,10 @@ export const DIAGNOSTIC_MEANINGS = {
|
|
|
62
62
|
'wind-fields-instead-of-extension': "Wind sent as c/s fields in a position weather report instead of the DDD/SSS extension, or after a compressed position whose cs bytes carry no wind.",
|
|
63
63
|
'wind-extension-after-compressed': "An uncompressed wind extension after a compressed weather position (UAP 5.33).",
|
|
64
64
|
'mic-e-altitude-not-first': "A Mic-E altitude after other status text instead of first (APRS12c ch. 10).",
|
|
65
|
-
'brace-in-message-text': "Message text contains a { that does not start a valid message ID (APRS12c ch. 14).",
|
|
65
|
+
'brace-in-message-text': "Message, bulletin or telemetry metadata text contains a { that does not start a valid message ID, including the reply-ack form on a bulletin or metadata (APRS12c ch. 14).",
|
|
66
66
|
'invalid-addressee-characters': "A message addressee contains a space or : (APRS12c ch. 14).",
|
|
67
67
|
'letter-group-bulletin': "A bulletin addressee has a group name after a letter, e.g. BLNCNET; group bulletins use a digit (APRS12c ch. 14).",
|
|
68
|
-
'free-text-capabilities': "A < station capabilities packet holds free text rather than TOKEN / TOKEN=VALUE items (APRS12c ch. 15).",
|
|
68
|
+
'free-text-capabilities': "A < station capabilities packet holds free text rather than TOKEN / TOKEN=VALUE items: a token that is empty or holds a space or a control character, or a value that holds a control character (APRS12c ch. 15).",
|
|
69
69
|
};
|
|
70
70
|
/** Every tolerable code. */
|
|
71
71
|
export const TOLERABLE_CODES = [
|
package/dist/codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,2DAA2D;AAwG3D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAA6C;IAC3E,gBAAgB,EAAE,6CAA6C;IAC/D,iBAAiB,EAAE,6EAA6E;IAChG,mBAAmB,EAAE,6CAA6C;IAClE,kBAAkB,EAAE,mDAAmD;IACvE,uBAAuB,EAAE,8FAA8F;IACvH,gBAAgB,EAAE,mFAAmF;IACrG,oBAAoB,EAAE,oEAAoE;IAC1F,iCAAiC,EAAE,2EAA2E;IAC9G,sBAAsB,EAAE,uDAAuD;IAC/E,qBAAqB,EAAE,qEAAqE;IAC5F,eAAe,EAAE,0CAA0C;IAC3D,WAAW,EAAE,4DAA4D;IACzE,UAAU,EAAE,gEAAgE;IAC5E,oBAAoB,EAAE,yEAAyE;IAC/F,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decode/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decode/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAkBpE,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,kBAAkB,CAalH"}
|