@cosyte/x12 0.0.11 → 0.0.12

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
@@ -1166,6 +1166,29 @@ string, …` - which `esc` cannot, being unary.
1166
1166
  slot for a silent normalization; the tiers now name it, and note that a Tier-2 unexpected segment is
1167
1167
  warned about but not kept.
1168
1168
 
1169
+ - **The universal about a stray 837 `LX` is cut back in the `src/` comments and 837 test-file headers
1170
+ the release before this one disclosed it in** (`X12-837-LOOP-RESIDUALS`). That release deleted it
1171
+ from the documents this package publishes and disclosed, rather than claimed closed, that it still
1172
+ stood in those two places; this is the rest of that sweep. **No count and no completeness claim is
1173
+ published**, because both are what went stale twice here: the sites swept are the `NM1` and `LX`
1174
+ case comments in `src/transactions/claim/get-837.ts`, and the headers, section comments and case
1175
+ titles of `test/transactions-claim-837-loop-residuals.test.ts`,
1176
+ `test/transactions-claim-837-discard-after-stray-lx.test.ts` and
1177
+ `test/transactions-claim-837-variant-lookup.test.ts`. Each said a trailing `N3` / `N4` / `PER` /
1178
+ `REF` "attached to" or "landed on" whichever party the last `NM1` left active, or that a party
1179
+ named after the `LX` "is addressable again", all of which read as all four kinds reaching every
1180
+ party. They do not: this reader does not surface every one of those kinds on every party. Each copy
1181
+ takes the qualifier already graded on the shipped surfaces, "wherever this reader surfaces that
1182
+ segment kind on that party at all", or is cut back to the measured instance beside it and that
1183
+ instance is named - a payer in every case but one, where it is a Loop 2320 other subscriber; no
1184
+ copy is given a new wording and **no per-kind, per-party map is published.** Counterfactual headings ("no longer attaches", "no longer leaves the last `NM1`
1185
+ addressable") lose the counterfactual only. The bullet in `documentation/agent-notes.md` beginning
1186
+ "RESIDUAL 1, MEASURED AT `93b2428`", and the identically-scoped paragraph in the test header it was
1187
+ written from, are **not** copies - both are scoped by "every trailing segment that attaches to a
1188
+ named party" - and are deliberately left alone. Nothing a consumer reads at runtime changed:
1189
+ neither the warning registry nor any `docs-content/` page nor the README carried the wording, and
1190
+ the executable behaviour of the swept comments is nil.
1191
+
1169
1192
  ### Documented, not fixed
1170
1193
 
1171
1194
  > **Superseded in part by the "Fixed" entry above, which ships in the same release.** The model half
@@ -1174,6 +1197,20 @@ string, …` - which `esc` cannot, being unary.
1174
1197
  > not re-emit an orphan, so the warning still does not survive. The two entries are kept separate
1175
1198
  > because they were separate changes, and the sentences below describe the release before this one.
1176
1199
 
1200
+ - **🩺 A repeated `NM1*87` inside one 837 Loop 2000A fuses two pay-to addresses into one**
1201
+ (`X12-837-LOOP-RESIDUALS`). The `N3` line collector appends and the `N4` merge falls back, so
1202
+ `X12Claim.payToAddress` carries a street from each of two addresses and an `N4` field the second
1203
+ address omitted. Reproduces unchanged at `0.0.11` and is **not** fixed here: two remedies were
1204
+ built and both were refuted for moving the loss rather than removing it, so per ADR 0016 the unit
1205
+ was cut back rather than given a third. Clearing the accumulator at the `NM1*87` erases the
1206
+ address a repeat with no `N3` / `N4` of its own did state; replacing at the first following write
1207
+ erases it on a VALUELESS `N3~` / `N4~`. **Neither erasure is a neutral absence, and that is the
1208
+ constraint the next attempt starts from:** `build837P/I/D` emits Loop 2010AB only where the slot
1209
+ is defined, and `emitAddress` emits `N3` only for a non-empty `lines` and `N4` only for a defined
1210
+ field, so an emptied slot re-emits as **no pay-to loop at all** and a half-emptied one re-emits a
1211
+ bare `NM1*87` with neither. **The emit side is therefore in scope for that fix from the start**,
1212
+ which is what makes it its own unit. `documentation/agent-notes.md` carries the measurements.
1213
+
1177
1214
  - **A segment that falls outside a transaction is dropped from the model, and its warning does not
1178
1215
  survive a round trip.** The envelope walker keeps body segments only while an ST..SE transaction is
1179
1216
  open; anything else raises `X12_UNEXPECTED_SEGMENT` and is then discarded. A **blank** line between
package/dist/index.cjs CHANGED
@@ -10192,7 +10192,7 @@ var profiles = Object.freeze({
10192
10192
  });
10193
10193
 
10194
10194
  // src/index.ts
10195
- var VERSION = "0.0.11";
10195
+ var VERSION = "0.0.12";
10196
10196
 
10197
10197
  exports.ACK_BUILD_ERROR_CODES = ACK_BUILD_ERROR_CODES;
10198
10198
  exports.ALL_WARNING_MESSAGES = ALL_WARNING_MESSAGES;