@cosyte/synth 0.1.5 → 0.1.6
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 +12 -0
- package/dist/astm/index.cjs +55 -18
- package/dist/astm/index.cjs.map +1 -1
- package/dist/astm/index.d.cts +7 -0
- package/dist/astm/index.d.ts +7 -0
- package/dist/astm/index.mjs +54 -18
- package/dist/astm/index.mjs.map +1 -1
- package/dist/ccda/index.cjs +76 -26
- package/dist/ccda/index.cjs.map +1 -1
- package/dist/ccda/index.d.cts +6 -0
- package/dist/ccda/index.d.ts +6 -0
- package/dist/ccda/index.mjs +63 -14
- package/dist/ccda/index.mjs.map +1 -1
- package/dist/deid/index.cjs +207 -118
- package/dist/deid/index.cjs.map +1 -1
- package/dist/deid/index.mjs +194 -106
- package/dist/deid/index.mjs.map +1 -1
- package/dist/fhir/index.cjs +146 -74
- package/dist/fhir/index.cjs.map +1 -1
- package/dist/fhir/index.d.cts +6 -0
- package/dist/fhir/index.d.ts +6 -0
- package/dist/fhir/index.mjs +145 -74
- package/dist/fhir/index.mjs.map +1 -1
- package/dist/hl7/index.cjs +53 -9
- package/dist/hl7/index.cjs.map +1 -1
- package/dist/hl7/index.d.cts +6 -0
- package/dist/hl7/index.d.ts +6 -0
- package/dist/hl7/index.mjs +52 -9
- package/dist/hl7/index.mjs.map +1 -1
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/ncpdp/index.cjs +74 -22
- package/dist/ncpdp/index.cjs.map +1 -1
- package/dist/ncpdp/index.d.cts +7 -0
- package/dist/ncpdp/index.d.ts +7 -0
- package/dist/ncpdp/index.mjs +73 -22
- package/dist/ncpdp/index.mjs.map +1 -1
- package/dist/x12/index.cjs +65 -17
- package/dist/x12/index.cjs.map +1 -1
- package/dist/x12/index.d.cts +6 -0
- package/dist/x12/index.d.ts +6 -0
- package/dist/x12/index.mjs +64 -17
- package/dist/x12/index.mjs.map +1 -1
- package/package.json +20 -15
package/dist/x12/index.cjs
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var module$1 = require('module');
|
|
4
|
+
var url = require('url');
|
|
5
|
+
|
|
6
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
8
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
9
|
+
}) : x)(function(x) {
|
|
10
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
11
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
12
|
+
});
|
|
4
13
|
|
|
5
14
|
// src/rng/splitmix32.ts
|
|
6
15
|
function splitmix32(seed) {
|
|
@@ -150,6 +159,7 @@ function createRng(seed) {
|
|
|
150
159
|
}
|
|
151
160
|
|
|
152
161
|
// src/corpus.ts
|
|
162
|
+
var UNCHECKED = Object.freeze([]);
|
|
153
163
|
function makeCorpus(seed, artifacts, quirks = []) {
|
|
154
164
|
const counts = {};
|
|
155
165
|
const formats = /* @__PURE__ */ new Set();
|
|
@@ -169,8 +179,32 @@ function makeCorpus(seed, artifacts, quirks = []) {
|
|
|
169
179
|
artifacts: Object.freeze(frozenArtifacts)
|
|
170
180
|
});
|
|
171
181
|
}
|
|
182
|
+
function defaultHost() {
|
|
183
|
+
if (typeof undefined !== "function") return { require: __require, resolve: void 0 };
|
|
184
|
+
return { require: module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))), resolve: (s) => undefined(s) };
|
|
185
|
+
}
|
|
186
|
+
function isRequireEsmRefusal(error) {
|
|
187
|
+
return error?.code === "ERR_REQUIRE_ESM";
|
|
188
|
+
}
|
|
189
|
+
function loadPeer(specifier, host) {
|
|
190
|
+
if (host.resolve === void 0) return host.require(specifier);
|
|
191
|
+
const entry = url.fileURLToPath(host.resolve(specifier));
|
|
192
|
+
try {
|
|
193
|
+
return host.require(entry);
|
|
194
|
+
} catch (error) {
|
|
195
|
+
if (!isRequireEsmRefusal(error)) throw error;
|
|
196
|
+
return host.require(specifier);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function lazyPeer(specifier, host) {
|
|
200
|
+
let loaded;
|
|
201
|
+
return () => loaded ??= loadPeer(specifier, defaultHost());
|
|
202
|
+
}
|
|
203
|
+
var x12Peer = lazyPeer("@cosyte/x12");
|
|
204
|
+
|
|
205
|
+
// src/x12/money.ts
|
|
172
206
|
function dec(value) {
|
|
173
|
-
const d =
|
|
207
|
+
const d = x12Peer().X12Decimal.fromString(value);
|
|
174
208
|
if (d === void 0) throw new SynthError(SYNTH_FATAL_CODES.SYNTH_INVALID_DECIMAL);
|
|
175
209
|
return d;
|
|
176
210
|
}
|
|
@@ -771,11 +805,11 @@ function generate837(variant, options) {
|
|
|
771
805
|
const spec = specOf(rng, resolved);
|
|
772
806
|
switch (resolved) {
|
|
773
807
|
case "P":
|
|
774
|
-
return
|
|
808
|
+
return x12Peer().build837P(spec);
|
|
775
809
|
case "I":
|
|
776
|
-
return
|
|
810
|
+
return x12Peer().build837I(spec);
|
|
777
811
|
case "D":
|
|
778
|
-
return
|
|
812
|
+
return x12Peer().build837D(spec);
|
|
779
813
|
}
|
|
780
814
|
}
|
|
781
815
|
function generate837P(options) {
|
|
@@ -787,6 +821,8 @@ function generate837I(options) {
|
|
|
787
821
|
function generate837D(options) {
|
|
788
822
|
return generate837("D", options);
|
|
789
823
|
}
|
|
824
|
+
|
|
825
|
+
// src/x12/remit-835.ts
|
|
790
826
|
function generate835(options) {
|
|
791
827
|
const rng = createRng(options.seed);
|
|
792
828
|
const partners = x12TradingPartners(rng);
|
|
@@ -887,8 +923,10 @@ function generate835(options) {
|
|
|
887
923
|
},
|
|
888
924
|
claims: [claim]
|
|
889
925
|
};
|
|
890
|
-
return
|
|
926
|
+
return x12Peer().build835(spec);
|
|
891
927
|
}
|
|
928
|
+
|
|
929
|
+
// src/x12/eligibility-271.ts
|
|
892
930
|
function generate271(options) {
|
|
893
931
|
const rng = createRng(options.seed);
|
|
894
932
|
const partners = x12TradingPartners(rng);
|
|
@@ -968,13 +1006,15 @@ function generate271(options) {
|
|
|
968
1006
|
}
|
|
969
1007
|
]
|
|
970
1008
|
};
|
|
971
|
-
return
|
|
1009
|
+
return x12Peer().build271(spec);
|
|
972
1010
|
}
|
|
1011
|
+
|
|
1012
|
+
// src/x12/round-trip.ts
|
|
973
1013
|
function roundTrip(interchange) {
|
|
974
|
-
const content =
|
|
975
|
-
const reparsed =
|
|
1014
|
+
const content = x12Peer().serializeX12(interchange);
|
|
1015
|
+
const reparsed = x12Peer().parseX12(content);
|
|
976
1016
|
const warnings = reparsed.warnings.map((w) => String(w.code));
|
|
977
|
-
const byteStable =
|
|
1017
|
+
const byteStable = x12Peer().serializeX12(reparsed) === content;
|
|
978
1018
|
return {
|
|
979
1019
|
content,
|
|
980
1020
|
warnings,
|
|
@@ -982,6 +1022,14 @@ function roundTrip(interchange) {
|
|
|
982
1022
|
specClean: warnings.length === 0 && byteStable
|
|
983
1023
|
};
|
|
984
1024
|
}
|
|
1025
|
+
function x12CorpusArtifact(interchange, verify) {
|
|
1026
|
+
const content = x12Peer().serializeX12(interchange);
|
|
1027
|
+
if (!verify) return { content, warnings: UNCHECKED };
|
|
1028
|
+
return {
|
|
1029
|
+
content,
|
|
1030
|
+
warnings: x12Peer().parseX12(content).warnings.map((w) => String(w.code))
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
985
1033
|
|
|
986
1034
|
// src/x12/index.ts
|
|
987
1035
|
var ALL_KINDS = Object.freeze(["837P", "837I", "837D", "835", "271"]);
|
|
@@ -989,26 +1037,26 @@ var DEFAULT_MIX = ALL_KINDS;
|
|
|
989
1037
|
function generateKind(kind, seed) {
|
|
990
1038
|
switch (kind) {
|
|
991
1039
|
case "835":
|
|
992
|
-
return
|
|
1040
|
+
return generate835({ seed });
|
|
993
1041
|
case "271":
|
|
994
|
-
return
|
|
1042
|
+
return generate271({ seed });
|
|
995
1043
|
case "837P":
|
|
996
|
-
return
|
|
1044
|
+
return generate837("P", { seed });
|
|
997
1045
|
case "837I":
|
|
998
|
-
return
|
|
1046
|
+
return generate837("I", { seed });
|
|
999
1047
|
case "837D":
|
|
1000
|
-
return
|
|
1048
|
+
return generate837("D", { seed });
|
|
1001
1049
|
}
|
|
1002
1050
|
}
|
|
1003
1051
|
function x12Corpus(options) {
|
|
1004
|
-
const { seed } = options;
|
|
1052
|
+
const { seed, verify = true } = options;
|
|
1005
1053
|
const mix = resolveMix(ALL_KINDS, options.mix, DEFAULT_MIX);
|
|
1006
1054
|
const count = options.count ?? mix.length;
|
|
1007
1055
|
const seedStream = createRng(seed);
|
|
1008
1056
|
const artifacts = Array.from({ length: count }, (_unused, i) => {
|
|
1009
1057
|
const kind = mix[i % mix.length] ?? "837P";
|
|
1010
1058
|
const txSeed = seedStream.nextUint32();
|
|
1011
|
-
const rt = generateKind(kind, txSeed);
|
|
1059
|
+
const rt = x12CorpusArtifact(generateKind(kind, txSeed), verify);
|
|
1012
1060
|
return {
|
|
1013
1061
|
format: "x12",
|
|
1014
1062
|
kind,
|