@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.
Files changed (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/astm/index.cjs +55 -18
  3. package/dist/astm/index.cjs.map +1 -1
  4. package/dist/astm/index.d.cts +7 -0
  5. package/dist/astm/index.d.ts +7 -0
  6. package/dist/astm/index.mjs +54 -18
  7. package/dist/astm/index.mjs.map +1 -1
  8. package/dist/ccda/index.cjs +76 -26
  9. package/dist/ccda/index.cjs.map +1 -1
  10. package/dist/ccda/index.d.cts +6 -0
  11. package/dist/ccda/index.d.ts +6 -0
  12. package/dist/ccda/index.mjs +63 -14
  13. package/dist/ccda/index.mjs.map +1 -1
  14. package/dist/deid/index.cjs +207 -118
  15. package/dist/deid/index.cjs.map +1 -1
  16. package/dist/deid/index.mjs +194 -106
  17. package/dist/deid/index.mjs.map +1 -1
  18. package/dist/fhir/index.cjs +146 -74
  19. package/dist/fhir/index.cjs.map +1 -1
  20. package/dist/fhir/index.d.cts +6 -0
  21. package/dist/fhir/index.d.ts +6 -0
  22. package/dist/fhir/index.mjs +145 -74
  23. package/dist/fhir/index.mjs.map +1 -1
  24. package/dist/hl7/index.cjs +53 -9
  25. package/dist/hl7/index.cjs.map +1 -1
  26. package/dist/hl7/index.d.cts +6 -0
  27. package/dist/hl7/index.d.ts +6 -0
  28. package/dist/hl7/index.mjs +52 -9
  29. package/dist/hl7/index.mjs.map +1 -1
  30. package/dist/index.cjs +1 -3
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.mjs +1 -3
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/ncpdp/index.cjs +74 -22
  35. package/dist/ncpdp/index.cjs.map +1 -1
  36. package/dist/ncpdp/index.d.cts +7 -0
  37. package/dist/ncpdp/index.d.ts +7 -0
  38. package/dist/ncpdp/index.mjs +73 -22
  39. package/dist/ncpdp/index.mjs.map +1 -1
  40. package/dist/x12/index.cjs +65 -17
  41. package/dist/x12/index.cjs.map +1 -1
  42. package/dist/x12/index.d.cts +6 -0
  43. package/dist/x12/index.d.ts +6 -0
  44. package/dist/x12/index.mjs +64 -17
  45. package/dist/x12/index.mjs.map +1 -1
  46. package/package.json +20 -15
@@ -1,6 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var x12 = require('@cosyte/x12');
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 = x12.X12Decimal.fromString(value);
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 x12.build837P(spec);
808
+ return x12Peer().build837P(spec);
775
809
  case "I":
776
- return x12.build837I(spec);
810
+ return x12Peer().build837I(spec);
777
811
  case "D":
778
- return x12.build837D(spec);
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 x12.build835(spec);
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 x12.build271(spec);
1009
+ return x12Peer().build271(spec);
972
1010
  }
1011
+
1012
+ // src/x12/round-trip.ts
973
1013
  function roundTrip(interchange) {
974
- const content = x12.serializeX12(interchange);
975
- const reparsed = x12.parseX12(content);
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 = x12.serializeX12(reparsed) === content;
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 roundTrip(generate835({ seed }));
1040
+ return generate835({ seed });
993
1041
  case "271":
994
- return roundTrip(generate271({ seed }));
1042
+ return generate271({ seed });
995
1043
  case "837P":
996
- return roundTrip(generate837("P", { seed }));
1044
+ return generate837("P", { seed });
997
1045
  case "837I":
998
- return roundTrip(generate837("I", { seed }));
1046
+ return generate837("I", { seed });
999
1047
  case "837D":
1000
- return roundTrip(generate837("D", { seed }));
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,