@cosyte/x12 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 +38 -12
- package/KNOWN-LIMITATIONS.md +6 -6
- package/LICENSE +1 -1
- package/README.md +27 -25
- package/TRADEMARKS.md +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -23
- package/dist/index.d.ts +30 -23
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +30 -39
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 0.1.3
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
|
+
### Patch Changes
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
- 17bdb42: Fixed three doc errors: three type comments gave the 835 remit balance with the PLB amounts added, where the parser and `build835` subtract them, the PLB adjustment type said its reason code held the whole composite, and the README named `parseDocumentDate`, which the package does not export.
|
|
8
|
+
|
|
9
|
+
The remit balance now reads BPR-02 equals the sum of the claim payments (CLP-04) minus the sum of the PLB amounts, each in its raw sign, on `X12Decimal`, `X12RemitPaymentHeader`, and `X12RemitProviderAdjustment`. The claim and service-line balances on `X12Decimal` and `X12RemitServiceLine` now match the checks too. `X12RemitProviderAdjustment` now says `reasonCode` is the first component of the PLB reason composite (`WO`) and `subCode` the second (`123456`), as the parser stores them. The README, the cookbook, and the date conversion comments now name `checkCarcValidity` and `checkRarcValidity`, the exported date-aware queries that throw an `X12CodeListError` on a document date they refuse. No code, type, or behavior changes.
|
|
10
|
+
|
|
11
|
+
- dca2a3b: The README and documentation now use US spelling and serial commas, and write pauses without spaced hyphens.
|
|
12
|
+
|
|
13
|
+
The README's Status section names the 0.1 release line instead of an exact version, and the version script keeps that line current when a new minor line opens. The README states the Node.js support as 22 or later and tested on 22 and 24, links the license and trademarks files by absolute URL, and points at the organization's contributing guide and code of conduct. Every documentation page now carries a description, page titles say "and" instead of "&", and the sidebar category reads "Core concepts". No code, type, or behavior changes.
|
|
14
|
+
|
|
15
|
+
## 0.1.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Doc comments now write number ranges with "to" instead of an en dash.
|
|
20
|
+
|
|
21
|
+
## Released before this file was generated
|
|
22
|
+
|
|
23
|
+
Every release section above this heading is written by
|
|
24
|
+
[Changesets](https://github.com/changesets/changesets) from the changesets in `.changeset/`, newest
|
|
25
|
+
release first. The release writes its own version heading, so nothing above this line is maintained
|
|
26
|
+
by hand, and a change is recorded by adding a changeset rather than by editing this file. The 0.1.2
|
|
27
|
+
section was filled in from that release's GitHub release notes when generation was turned on, since
|
|
28
|
+
0.1.2 shipped while this file was still kept by hand and it was never written here.
|
|
29
|
+
|
|
30
|
+
Everything below this heading was maintained by hand, in the
|
|
31
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format, and is left as it was written. Two
|
|
32
|
+
things were dropped: the preamble above it, which said the file was kept by hand, and an empty
|
|
33
|
+
`[Unreleased]` heading. The `[0.1.0]` section holds every entry written before the first 0.1
|
|
34
|
+
release, the `0.0.x` releases included, which the file never recorded one by one.
|
|
9
35
|
|
|
10
36
|
## [0.1.1] - 2026-10-07
|
|
11
37
|
|
|
@@ -1952,7 +1978,7 @@ required control number and this builder never invents one, so nothing is emitte
|
|
|
1952
1978
|
composite. Escaping against a guessed delimiter set is a value corruption rather than a safe
|
|
1953
1979
|
default: `unescapeRelease` preserves `?X` verbatim for any `X` outside the reader's declared set,
|
|
1954
1980
|
so a value released against the wrong delimiter comes back carrying a stray `?`. The defaults are
|
|
1955
|
-
unchanged and are the
|
|
1981
|
+
unchanged and are the Cosyte archetype, which this function cannot verify, so state the separators
|
|
1956
1982
|
if you embed a TA1 in an envelope that declares different ones.
|
|
1957
1983
|
|
|
1958
1984
|
**A non-string element now refuses** with `AckBuildError` and the existing `X12_ACK_INVALID_SPEC`
|
|
@@ -3043,7 +3069,7 @@ string, …` - which `esc` cannot, being unary.
|
|
|
3043
3069
|
|
|
3044
3070
|
- **Em-dash brand gate in CI (`scripts/check-no-emdash.sh`, `pnpm check:no-emdash`,
|
|
3045
3071
|
`.github/workflows/no-emdash.yml`; `EMDASH-CONFORMANCE`).** The founder directive of 2026-07-24
|
|
3046
|
-
(`knowledgebase/06-brand/voice-and-tone.md`) bans `U+2014` outright across every
|
|
3072
|
+
(`knowledgebase/06-brand/voice-and-tone.md`) bans `U+2014` outright across every Cosyte surface
|
|
3047
3073
|
and names commit messages explicitly, and the meta-repo's `documentation/conventions.md` has
|
|
3048
3074
|
described the rule as CI-gated; x12 was one of the repos where it was not. This ports
|
|
3049
3075
|
`knowledgebase`'s scanner (the text-only variant, correct here because x12 tracks no binaries:
|
|
@@ -3138,7 +3164,7 @@ string, …` - which `esc` cannot, being unary.
|
|
|
3138
3164
|
### Added
|
|
3139
3165
|
|
|
3140
3166
|
- **Trademark notice (`TRADEMARKS.md`).** This package names third-party systems to describe what it
|
|
3141
|
-
interoperates with; the notice records that
|
|
3167
|
+
interoperates with; the notice records that Cosyte is not affiliated with, endorsed by, or
|
|
3142
3168
|
sponsored by any of them, that every reference is descriptive, and that the built-in profiles are
|
|
3143
3169
|
authored from public sources only. Added to `files` so it ships inside the published tarball, not
|
|
3144
3170
|
just on GitHub. Documentation only, no runtime or API change.
|
|
@@ -3792,7 +3818,7 @@ EV/SS`), and HL-04 has-child flag from the nested input tree, so an
|
|
|
3792
3818
|
helper). The `X12ClaimNote` JSDoc explicitly flags NTE-02 as
|
|
3793
3819
|
PHI-bearing (provider-supplied free text). Every Phase 5 fixture
|
|
3794
3820
|
is synthetic (test names `TEST PATIENT` / `SUB LAST` / `PATIENT
|
|
3795
|
-
CHILD`; sequential member IDs `MEMBER001
|
|
3821
|
+
CHILD`; sequential member IDs `MEMBER001` to `MEMBER011` etc.; NPI-
|
|
3796
3822
|
shaped sequential numbers; obvious test addresses) and matches
|
|
3797
3823
|
the established 835 fixture conventions.
|
|
3798
3824
|
- **Known limitations after this phase** (deliberate v1 scope; none
|
|
@@ -3980,7 +4006,7 @@ refresh:code-lists` arrives in Phase 10); no per-payer profile
|
|
|
3980
4006
|
|
|
3981
4007
|
- **Phase 3: 999 + TA1 acknowledgments (TR3 005010X231A1).** Two
|
|
3982
4008
|
pure-function ack surfaces ship side-by-side; neither auto-sends, opens
|
|
3983
|
-
a socket, or touches the filesystem. The
|
|
4009
|
+
a socket, or touches the filesystem. The Cosyte ack archetype: the
|
|
3984
4010
|
library MECHANICALLY builds the disposition it is told and REFUSES to
|
|
3985
4011
|
fabricate an Accept against a non-empty error list. Mirrors hl7's
|
|
3986
4012
|
upcoming `buildAck` boundary and mllp's commit-contract pattern.
|
|
@@ -4001,7 +4027,7 @@ refresh:code-lists` arrives in Phase 10); no per-payer profile
|
|
|
4001
4027
|
a TA1 inside an open functional group is still flagged as unexpected
|
|
4002
4028
|
(non-spec). `parseTA1(interchange)` returns the typed `X12AckTA1`
|
|
4003
4029
|
for the first captured TA1 (or `undefined`). `buildTA1(spec)` emits
|
|
4004
|
-
a fixed-position 5-element `Ta1Segment` (`TA101
|
|
4030
|
+
a fixed-position 5-element `Ta1Segment` (`TA101` to `TA105`). Caller
|
|
4005
4031
|
wraps it in their preferred envelope. Both standalone TA1-only
|
|
4006
4032
|
interchanges (ISA → TA1 → IEA, no GS) and embedded TA1s round-trip.
|
|
4007
4033
|
- **Safety guards (refused via `AckBuildError`):** `build999` refuses
|
|
@@ -4020,7 +4046,7 @@ refresh:code-lists` arrives in Phase 10); no per-payer profile
|
|
|
4020
4046
|
`IK3_SYNTAX_ERROR_CODES` (code list 716, 13 codes),
|
|
4021
4047
|
`IK4_SYNTAX_ERROR_CODES` (code list 723, 18 codes),
|
|
4022
4048
|
`TA1_ACK_CODES` (code list I13: `A`/`E`/`R`),
|
|
4023
|
-
`TA1_NOTE_CODES` (code list I18: `000
|
|
4049
|
+
`TA1_NOTE_CODES` (code list I18: `000` to `028`). String-literal
|
|
4024
4050
|
unions are exported for exhaustive narrowing. The helper
|
|
4025
4051
|
`isAcceptDisposition(code)` returns true for `A`/`E`/`P` and false
|
|
4026
4052
|
for the four reject codes.
|
|
@@ -4165,7 +4191,7 @@ safety` test blocks assert no SSN / ISO-date / long-digit-run
|
|
|
4165
4191
|
|
|
4166
4192
|
### Changed
|
|
4167
4193
|
|
|
4168
|
-
- Migrated onto the shared
|
|
4194
|
+
- Migrated onto the shared Cosyte engineering standard (Phase E). The toolchain
|
|
4169
4195
|
is now inherited from the published `@cosyte/*` config packages instead of
|
|
4170
4196
|
per-repo copies: `tsup.config.ts` uses `cosyteTsup`, `vitest.config.ts` uses
|
|
4171
4197
|
`cosyteVitest`, and `eslint.config.js` is the three-line `cosyte` wrapper.
|
package/KNOWN-LIMITATIONS.md
CHANGED
|
@@ -672,7 +672,7 @@ model.
|
|
|
672
672
|
nothing else - `buildTA1` still emits no terminator. Escaping against a guessed set is a value
|
|
673
673
|
corruption rather than a safe default: `unescapeRelease` preserves `?X` verbatim for any `X`
|
|
674
674
|
outside the declared set, so a value released against the wrong delimiter comes back carrying a
|
|
675
|
-
stray `?`. **The defaults are the
|
|
675
|
+
stray `?`. **The defaults are the Cosyte archetype and this function cannot verify them** - if
|
|
676
676
|
you embed a TA1 in an envelope that declares different separators, state them.
|
|
677
677
|
- **A non-string element now REFUSES** with `AckBuildError` / `X12_ACK_INVALID_SPEC`, and that is a
|
|
678
678
|
prerequisite rather than a bonus. Releasing a value means routing it through the escape helper,
|
|
@@ -1555,7 +1555,7 @@ N-char spec limit` refusal, one per emitting module, where the branch fires **be
|
|
|
1555
1555
|
2. **Whether an `X12Decimal` carries the SCALE you meant.** `fromString("0.3")` and
|
|
1556
1556
|
`fromString("0.30")` are both accepted and both emit verbatim. That choice is yours.
|
|
1557
1557
|
3. **The delimiter set `buildTA1` releases against**, per the paragraph above. It defaults to the
|
|
1558
|
-
|
|
1558
|
+
Cosyte archetype and the function cannot verify it; state the separators on `BuildTA1Options`
|
|
1559
1559
|
if you embed a TA1 in an envelope that declares different ones.
|
|
1560
1560
|
4. **`build835`'s balance-equation amounts, which refuse UNTYPED.** `build835` runs its balance
|
|
1561
1561
|
guard before it builds the escape helper, and that guard calls `X12Decimal` methods on your
|
|
@@ -1874,10 +1874,10 @@ N-char spec limit` refusal, one per emitting module, where the branch fires **be
|
|
|
1874
1874
|
applied and this package applies none.
|
|
1875
1875
|
- **No transport.** AS2, SFTP, and MLLP-style delivery are out of scope. This is a parser/serializer,
|
|
1876
1876
|
not a communications stack.
|
|
1877
|
-
- **
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1877
|
+
- **Below 1.0.** The package is published on npm as `@cosyte/x12` from a public repo, at `0.1`. Its
|
|
1878
|
+
exported readers, builders, types and warning codes are the surface we keep stable, and below 1.0
|
|
1879
|
+
a breaking change bumps the minor version and is called out in the changelog with its migration.
|
|
1880
|
+
`npm view @cosyte/x12 version` is the only source of truth for the current version.
|
|
1881
1881
|
- **A 276 hierarchical level whose declared parent does not resolve is left off the returned tree.**
|
|
1882
1882
|
The 276 reader attaches a level by its own HL-02 and by nothing else, so a pointer naming a level
|
|
1883
1883
|
that is not present, a pointer naming a level of the wrong kind, and a parent chain that returns
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
# @cosyte/x12
|
|
9
9
|
|
|
10
|
-
> Read the money out of an 835, an 837 or a 271 without a TR3 open on your desk.
|
|
10
|
+
> Read the money out of an 835, an 837, or a 271 without a TR3 open on your desk.
|
|
11
11
|
|
|
12
12
|
[](https://www.npmjs.com/package/@cosyte/x12)
|
|
13
13
|
[](https://github.com/cosyte/x12/actions/workflows/ci.yml)
|
|
14
|
-
[](
|
|
14
|
+
[](https://github.com/cosyte/x12/blob/main/LICENSE)
|
|
15
15
|
[](https://nodejs.org)
|
|
16
16
|
|
|
17
17
|
Developer-focused ASC X12 healthcare EDI parser, serializer, and builder for Node.js and TypeScript: lenient on parse, spec-clean on emit.
|
|
@@ -20,7 +20,7 @@ Developer-focused ASC X12 healthcare EDI parser, serializer, and builder for Nod
|
|
|
20
20
|
|
|
21
21
|
Reading an X12 healthcare transaction correctly normally means buying the TR3 implementation guide
|
|
22
22
|
for it and then hand-mapping element positions that no compiler will ever check. This library
|
|
23
|
-
removes that step for the engineer who has one 835 to post, one 271 to answer or one 837 to send,
|
|
23
|
+
removes that step for the engineer who has one 835 to post, one 271 to answer, or one 837 to send,
|
|
24
24
|
and who needs the amounts to be exactly right rather than approximately right. The nearest
|
|
25
25
|
alternatives are a general-purpose EDI translator, which frames segments correctly but knows nothing
|
|
26
26
|
about what CLP-04 means, and a hand-rolled split on the segment terminator, which works until the
|
|
@@ -31,12 +31,12 @@ a stable code instead of failing or guessing.
|
|
|
31
31
|
|
|
32
32
|
## Status
|
|
33
33
|
|
|
34
|
-
**
|
|
34
|
+
**The 0.1 line**, published on npm from a public repository.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
On the 0.1 line the public API is settled and safe to depend on: the exported readers, builders,
|
|
37
37
|
types and warning codes are the surface we keep stable, and the warning registry only ever gains
|
|
38
38
|
codes. Below 1.0 a breaking change bumps the minor version and is called out in the changelog with
|
|
39
|
-
its migration. On
|
|
39
|
+
its migration. On an older 0.0 release, pin an exact version rather than a range. Typed read and typed
|
|
40
40
|
emit both ship for every transaction set
|
|
41
41
|
this package covers: 270, 271, 276, 277 and 277CA, 278 request and response, 820, 834, 835, 837P,
|
|
42
42
|
837I and 837D, 999 and TA1, each with a reader and a matching domain builder, and the two claims
|
|
@@ -60,7 +60,8 @@ pnpm add @cosyte/x12
|
|
|
60
60
|
|
|
61
61
|
`npm install @cosyte/x12` and `yarn add @cosyte/x12` work the same way.
|
|
62
62
|
|
|
63
|
-
Node
|
|
63
|
+
Node.js 22 or later, tested on 22 and 24: the engine floor is `>=22.0.0`, and there are zero
|
|
64
|
+
runtime dependencies. The package ships
|
|
64
65
|
dual ESM and CJS builds with type declarations for both conditions, so `import` and `require` each
|
|
65
66
|
resolve to the artifact meant for them.
|
|
66
67
|
|
|
@@ -68,7 +69,7 @@ resolve to the artifact meant for them.
|
|
|
68
69
|
|
|
69
70
|
Parse an 835 remittance advice and read the money: the payment total, the claim's
|
|
70
71
|
charge/paid/patient-responsibility split, and the adjustment reason behind the difference. The
|
|
71
|
-
interchange below is synthetic, with a fabricated payer, provider, patient and amounts.
|
|
72
|
+
interchange below is synthetic, with a fabricated payer, provider, patient, and amounts.
|
|
72
73
|
|
|
73
74
|
```ts runnable
|
|
74
75
|
import { parseX12, get835 } from "@cosyte/x12";
|
|
@@ -159,11 +160,11 @@ copy of the start of the input, so on real traffic it can carry PHI, and it is n
|
|
|
159
160
|
`err.code` and `err.position` instead, or redact at your call site.
|
|
160
161
|
|
|
161
162
|
**An attachment refuses to print.** The data of each BDS a 275 carries is read into
|
|
162
|
-
`X12AttachmentData`, whose string, JSON and `util.inspect` forms state its octet count and nothing
|
|
163
|
+
`X12AttachmentData`, whose string, JSON, and `util.inspect` forms state its octet count and nothing
|
|
163
164
|
else; `readOctets()` is the one route to the octets.
|
|
164
165
|
|
|
165
166
|
**Builder refusals are a weaker surface, deliberately.** A `build*` refusal names the control
|
|
166
|
-
number, count or code you passed in, so that you can see what was refused. The rendered fragment is
|
|
167
|
+
number, count, or code you passed in, so that you can see what was refused. The rendered fragment is
|
|
167
168
|
bounded by an exported constant, but it is bounded rather than redacted. The two attachments
|
|
168
169
|
builders are the exception and name no value at all. Log `err.code`, not `err.message`, from a
|
|
169
170
|
builder.
|
|
@@ -179,13 +180,12 @@ Everything ships from one entry point; there are no subpath imports.
|
|
|
179
180
|
transaction set into a typed one (`get835`, `get837Claims`, `get270Inquiry`, `get271Eligibility`,
|
|
180
181
|
`get276StatusInquiry`, `parse999`, `parseTA1`, and the rest).
|
|
181
182
|
- **Emit.** `serializeX12` and `buildInterchange` are the general path, and every transaction set
|
|
182
|
-
with a reader also has a domain builder (`build835`, `build837P`, `build271`, and the rest)
|
|
183
|
-
layers that guide's own invariants on top.
|
|
183
|
+
with a reader also has a domain builder (`build835`, `build837P`, `build271`, and the rest).
|
|
184
184
|
- **Errors and warnings.** Parsing is lenient, and only **four** structural failures are ever fatal
|
|
185
185
|
(`X12_NO_ISA_HEADER`, `X12_ISA_TOO_SHORT`, `X12_INVALID_DELIMITERS`, `X12_EMPTY_INPUT`).
|
|
186
186
|
Everything else arrives on `ix.warnings` as a stable code with positional context, so a tolerated
|
|
187
187
|
deviation is visible rather than silent.
|
|
188
|
-
- **Money.** Every monetary, percent and quantity field decodes as `X12Decimal`, which is
|
|
188
|
+
- **Money.** Every monetary, percent, and quantity field decodes as `X12Decimal`, which is
|
|
189
189
|
string-backed with BigInt arithmetic, and this library never **`parseFloat`s** an EDI amount. A
|
|
190
190
|
slot the sender left empty reads `undefined` rather than zero, so "stated zero" and "stated
|
|
191
191
|
nothing" stay different readings.
|
|
@@ -202,7 +202,7 @@ Task-oriented recipes are in the [cookbook](./docs-content/cookbook.md), and
|
|
|
202
202
|
### Dates and times
|
|
203
203
|
|
|
204
204
|
Every typed reader surfaces its dates verbatim, as the qualifier the sender used plus the bytes it
|
|
205
|
-
carried. `toObject`, `toISO
|
|
205
|
+
carried. `toObject`, `toISO`, and `toDate` are the three ways to read one, and every `@cosyte/*`
|
|
206
206
|
parser exports the same three names with the same shapes and the same timezone rule.
|
|
207
207
|
|
|
208
208
|
```ts
|
|
@@ -248,10 +248,10 @@ than the JavaScript `Date` 0 to 11, so `Object.keys()` of the result tells you t
|
|
|
248
248
|
`DateTime.fromObject` with no renaming. Neither library is a dependency here; this package still has
|
|
249
249
|
zero of those.
|
|
250
250
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
caller who asked a validity question and could not state the day, while
|
|
254
|
-
that was already parsed leniently.
|
|
251
|
+
The date-aware code-list queries, `checkCarcValidity` and `checkRarcValidity`, keep their own
|
|
252
|
+
contract and still THROW an `X12CodeListError` on a document date they refuse. That divergence is
|
|
253
|
+
deliberate: they answer a caller who asked a validity question and could not state the day, while
|
|
254
|
+
these three read a document that was already parsed leniently.
|
|
255
255
|
|
|
256
256
|
#### Using two @cosyte parsers in one file
|
|
257
257
|
|
|
@@ -270,13 +270,13 @@ A namespace import works too: `import * as x12 from "@cosyte/x12"`, then `x12.to
|
|
|
270
270
|
## Compatibility
|
|
271
271
|
|
|
272
272
|
- **005010 HIPAA transaction sets**, with hooks for the errata revisions the industry actually
|
|
273
|
-
exchanges. Non-healthcare sets such as 850, 856, 810 and 204, plus EDIFACT, AS2 and SFTP
|
|
273
|
+
exchanges. Non-healthcare sets such as 850, 856, 810, and 204, plus EDIFACT, AS2, and SFTP
|
|
274
274
|
transport, and pre-005010 revisions, are out of scope.
|
|
275
275
|
- **Vendor deviations become warnings, not exceptions.** Built-in profiles record whose
|
|
276
276
|
companion-guide deviation they accommodate; selecting one never changes an otherwise correct
|
|
277
277
|
parse, and profiles are authored through the same public `defineProfile()` API you have.
|
|
278
278
|
- **Round trips are not byte-exact in general.** `serializeX12` reproduces the segments on the model
|
|
279
|
-
verbatim, including element padding, composites and `?`-release escapes, but
|
|
279
|
+
verbatim, including element padding, composites, and `?`-release escapes, but
|
|
280
280
|
**`serialize(parse(s)) === s` is not guaranteed in general**. Line breaks between segments are the
|
|
281
281
|
common case: any run of CR or LF between segments is absorbed at parse, so a pretty-printed file
|
|
282
282
|
emits compact. Most of the constructs that break a round trip are silent, so "my file has no line
|
|
@@ -285,23 +285,25 @@ A namespace import works too: `import * as x12 from "@cosyte/x12"`, then `x12.to
|
|
|
285
285
|
|
|
286
286
|
## Contributing
|
|
287
287
|
|
|
288
|
-
Questions, bug reports and trading-partner quirks all belong in
|
|
288
|
+
Questions, bug reports, and trading-partner quirks all belong in
|
|
289
289
|
[GitHub issues](https://github.com/cosyte/x12/issues).
|
|
290
290
|
|
|
291
|
-
Pull requests are welcome.
|
|
291
|
+
Pull requests are welcome. The organization's
|
|
292
|
+
[contributing guide](https://github.com/cosyte/.github/blob/main/CONTRIBUTING.md) and
|
|
293
|
+
[code of conduct](https://github.com/cosyte/.github/blob/main/CODE_OF_CONDUCT.md) apply here. A contribution must clear `pnpm typecheck`, `pnpm lint`, and `pnpm test`,
|
|
292
294
|
hold the per-directory coverage floors, pass the PHI commit gate (`pnpm phi-scan`) and the prose
|
|
293
295
|
gates (`pnpm check:no-emdash`, `pnpm check:no-internal-refs`), and carry a changeset. Every fixture
|
|
294
296
|
must be synthetic: never open a pull request carrying a real patient's data.
|
|
295
297
|
|
|
296
298
|
## Trademarks
|
|
297
299
|
|
|
298
|
-
Availity and Blue Cross Blue Shield are trademarks of their respective owners.
|
|
300
|
+
Availity and Blue Cross Blue Shield are trademarks of their respective owners. Cosyte is not
|
|
299
301
|
affiliated with, endorsed by, or sponsored by any of them. The names identify the trading partners
|
|
300
302
|
whose companion-guide deviations the built-in profiles accommodate. See
|
|
301
|
-
[TRADEMARKS.md](
|
|
303
|
+
[TRADEMARKS.md](https://github.com/cosyte/x12/blob/main/TRADEMARKS.md).
|
|
302
304
|
|
|
303
305
|
## License
|
|
304
306
|
|
|
305
|
-
MIT,
|
|
307
|
+
MIT, Copyright (c) 2026 Cosyte LLC. See [LICENSE](https://github.com/cosyte/x12/blob/main/LICENSE).
|
|
306
308
|
|
|
307
309
|
Built by [Cosyte](https://cosyte.com).
|
package/TRADEMARKS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Trademarks
|
|
2
2
|
|
|
3
|
-
`@cosyte/x12` is an independent open-source project.
|
|
3
|
+
`@cosyte/x12` is an independent open-source project. Cosyte is **not affiliated with, endorsed by,
|
|
4
4
|
or sponsored by** any company named in this repository or its documentation.
|
|
5
5
|
|
|
6
6
|
## Why these names appear
|
package/dist/index.cjs
CHANGED
|
@@ -15395,7 +15395,7 @@ var profiles = Object.freeze({
|
|
|
15395
15395
|
});
|
|
15396
15396
|
|
|
15397
15397
|
// src/index.ts
|
|
15398
|
-
var VERSION = "0.1.
|
|
15398
|
+
var VERSION = "0.1.3";
|
|
15399
15399
|
|
|
15400
15400
|
exports.AAA_CONDITION_LEVELS = AAA_CONDITION_LEVELS;
|
|
15401
15401
|
exports.AAA_FOLLOW_UP_ACTION_CODES = AAA_FOLLOW_UP_ACTION_CODES;
|