@cosyte/astm 0.1.1 → 0.1.3

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 CHANGED
@@ -1,13 +1,188 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file.
3
+ ## 0.1.3
4
4
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
- Versions and publishing are managed with [Changesets](https://github.com/changesets/changesets);
8
- this file is maintained by hand (Changesets handles the version bump and publish only).
5
+ ### Patch Changes
9
6
 
10
- ## [Unreleased]
7
+ - fbebdf2: Checking whether a result value is numeric, the check behind the units-absent warning, now takes time linear in the value's length; a value padded with a long run of spaces held the parser for seconds (about 3.5 at 50,000 spaces), and the time grew with the square of the run.
8
+
9
+ Every value is classified exactly as before, so the same results warn.
10
+
11
+ ## 0.1.2
12
+
13
+ ### Patch Changes
14
+
15
+ - 93c5774: The README follows our shared layout, with Support and Security sections and the Node.js versions CI tests (22, 24, and 26), and at a fifth of its former length it fits well inside npm's README limit. Its API tour and its coverage and compatibility notes moved, unchanged, to two pages on docs.cosyte.com/astm: "The API, layer by layer" and "Coverage and compatibility". No code, API, or behavior changes.
16
+
17
+ ## 0.1.1
18
+
19
+ ### Patch Changes
20
+
21
+ - Published through npm trusted publishing, with provenance.
22
+
23
+ ## 0.1.0
24
+
25
+ ### Minor Changes
26
+
27
+ - **One date conversion surface across the @cosyte parsers.** `toObject`, `toISO` and `toDate` read a
28
+ parsed ASTM date the same way the sibling parsers do. `toObject` returns only the components the
29
+ value stated, and `toISO` appends no offset, because ASTM states none. `toDate` returns a `Date` only
30
+ when you pass `assumeOffsetMinutes`: an analyzer's timestamp is local to the analyzer.
31
+ - **A LIVD catalog records where it came from.** `defineLivdCatalog` takes an optional second argument
32
+ (publisher, publication version, LOINC version, LOINC copyright), and every annotation carries the
33
+ catalog's LOINC version, so a mapping can be reproduced. A catalog with no LOINC version still
34
+ builds and raises one `ASTM_LIVD_CATALOG_NO_LOINC_VERSION` warning.
35
+ - **Reported units can choose between candidate LOINCs.** A LIVD entry can carry
36
+ `representativeUnit`, `vendorSpecimenDescription` and `vendorResultDescription`. When one vendor
37
+ code maps to several LOINCs, the candidate whose unit exactly equals the reported unit is answered
38
+ `mapped`. The comparison is verbatim and case sensitive, not UCUM, and every unit-selected answer
39
+ says so. No match, or more than one, is still `ambiguous`.
40
+ - **Flags and statuses name the vocabulary they were graded against.** An abnormal flag carries the
41
+ code system and version it was compared with, and `HU` and `LU` are now recognized. A result status
42
+ says that no citable published source binds its letters, rather than implying one.
43
+ - **One deliberate break from 0.0.x**, in the LIVD mapping and in what `primaryCode()` returns:
44
+ a populated first component of the Universal Test ID is no longer reported as a LOINC, and
45
+ `primaryCode()` returns the vendor local code and nothing else. The hand-written entries below and
46
+ the [0.1.0 release notes](https://github.com/cosyte/astm/releases/tag/v0.1.0) give the migration.
47
+
48
+ ## 0.0.22
49
+
50
+ ### Patch Changes
51
+
52
+ - Gate the two-file contract between `CLAUDE.md` and the agent notes.
53
+ - Read the bytes git carries in the PHI sweep, as a union with the working-tree walk.
54
+
55
+ ## 0.0.21
56
+
57
+ ### Patch Changes
58
+
59
+ - Correct two false claims the contested-alignment codes rested on, both on consumer surfaces.
60
+ - Close the three measurement holes the contested-alignment claim corrections left behind.
61
+
62
+ ## 0.0.20
63
+
64
+ ### Patch Changes
65
+
66
+ - Read a stream embedded as a source string literal in the PHI commit-gate, and refuse a sweep that did not observe its corpus.
67
+
68
+ ## 0.0.19
69
+
70
+ ### Patch Changes
71
+
72
+ - Report a contested escape alignment whose tail this reader cannot read, not only one it cannot consume.
73
+ - The README lockup now links to cosyte.com.
74
+ - Report components a competing escape alignment moved one slot along.
75
+ - Development tooling only: the repository's own pre-commit PHI scanner no longer lets a caller's git configuration decide which staged entries it looks at.
76
+
77
+ ## 0.0.18
78
+
79
+ ### Patch Changes
80
+
81
+ - Report a field a competing escape alignment read short.
82
+
83
+ ## 0.0.17
84
+
85
+ ### Patch Changes
86
+
87
+ - Report a competing escape alignment that shifted a result's units and status into slots the sender did not write them in.
88
+
89
+ ## 0.0.15
90
+
91
+ ### Patch Changes
92
+
93
+ - Stop a delimiter set that names one of the escape mnemonics from altering the values it emits, and state what a header's delimiter-declaration surplus costs on emit.
94
+
95
+ ## 0.0.14
96
+
97
+ ### Patch Changes
98
+
99
+ - Refuse a `startFrameNumber` that cannot be written as a frame number, which used to go out as whatever byte the arithmetic truncated to and could cost a framed stream every one of its records.
100
+
101
+ ## 0.0.13
102
+
103
+ ### Patch Changes
104
+
105
+ - Refuse to emit a record whose own type letter the delimiter set would escape away, which used to produce a stream that read back as different records and, in its silent branch, fabricated a final lab result out of patient identifiers.
106
+
107
+ ## 0.0.11
108
+
109
+ ### Patch Changes
110
+
111
+ - A symbolic link under a scan root read clean on both of the PHI scanner's enumerating routes, so a link pointing at a file full of real identifiers passed the gate twice over.
112
+ - Make the package's own publish gate fail when a build would ship without its type declarations.
113
+
114
+ ## 0.0.10
115
+
116
+ ### Patch Changes
117
+
118
+ - Stop the frame encoder from silently writing a different character than the one it was given.
119
+
120
+ ## 0.0.9
121
+
122
+ ### Patch Changes
123
+
124
+ - Report a record whose fields did not separate, instead of reading it back with no value, no units and no status, and stop calling a message a result set when a record's type letter is unreadable.
125
+ - Stop one unescaped `&` in a value from swallowing every following field.
126
+
127
+ ## 0.0.8
128
+
129
+ ### Patch Changes
130
+
131
+ - Remove `ASTM_RECORD_UNKNOWN_TYPE` from the profile safety gate's tolerable allow-list.
132
+
133
+ ## 0.0.7
134
+
135
+ ### Patch Changes
136
+
137
+ - The alt text on the README's Cosyte mark now says how its two overlapping rounded squares differ, one solid and one outlined.
138
+
139
+ ## 0.0.6
140
+
141
+ ### Patch Changes
142
+
143
+ - The Cosyte mark now opens the README, and follows the reader's color scheme.
144
+
145
+ ## 0.0.5
146
+
147
+ ### Patch Changes
148
+
149
+ Internal tooling and CI only. No change to the published package surface.
150
+
151
+ ## 0.0.4
152
+
153
+ ### Patch Changes
154
+
155
+ - Correct the API documentation shipped in the type declarations, and stop it going stale.
156
+ - Stop pairing one patient's results with another's, and add `messages()` to read a stream as the sequence of messages it actually is.
157
+ - Read the delimiters from every header, not just the first, so a stream carrying more than one message no longer silently loses fields.
158
+ - Emit one delimiter set for the whole stream, so a round-trip no longer silently loses fields.
159
+ - Close the two emit-side gaps where a stream went out that could not be read back.
160
+
161
+ ## 0.0.3
162
+
163
+ ### Patch Changes
164
+
165
+ - Documentation: the page describing what the library does and does not do moves from an "About" category into **Troubleshooting**, matching the section order every other `@cosyte/*` package uses.
166
+ - The status note on the README, the overview page and the install page no longer names a version number, because a release made that number wrong every time.
167
+
168
+ ## Released before this file was generated
169
+
170
+ Every release section above this heading is written by
171
+ [Changesets](https://github.com/changesets/changesets) from the changesets in `.changeset/`, newest
172
+ release first. The release writes its own version heading, so nothing above this line is maintained
173
+ by hand, and a change is recorded by adding a changeset rather than by editing this file. The
174
+ sections for 0.0.3 to 0.1.1 were filled in from the GitHub release notes when generation was turned
175
+ on, because those releases shipped while this file was kept by hand and its last version heading was
176
+ 0.0.2. Each repeats the "What changed" list from that release's notes, and 0.1.0 adds one line on
177
+ its deliberate break.
178
+
179
+ Everything below this heading was maintained by hand, in the
180
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format, and is left as it was written. The
181
+ entries from the start down to `[0.0.2]` sat under an `[Unreleased]` heading that no release rolled
182
+ over, so they record what 0.0.3 to 0.1.1 changed, written as the work landed rather than sorted by
183
+ release. Three things were dropped: the preamble above them (it said the file was kept by hand), the
184
+ `[Unreleased]` heading itself, and its link definition at the foot of the file. No entry was
185
+ reworded.
11
186
 
12
187
  **What 0.1 means for you.** This release is the first whose public API we treat as settled: the
13
188
  exported names, options, return shapes and warning codes are the surface we keep stable. What it
@@ -2712,6 +2887,5 @@ EOT` session **reassembles exactly the source records**; a **raw-TCP stream equa
2712
2887
  interactive contention/timeout/retransmit **timing**) is a thin consumer adapter, and the standard's
2713
2888
  exact numeric timeouts / retry counts are deferred (we model transitions, not timers).
2714
2889
 
2715
- [Unreleased]: https://github.com/cosyte/astm/commits/main
2716
2890
  [0.0.2]: https://github.com/cosyte/astm/releases/tag/v0.0.2
2717
2891
  [0.0.1]: https://github.com/cosyte/astm/releases/tag/v0.0.1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Cosyte
3
+ Copyright (c) 2026 Cosyte LLC
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal