fhirpath-ts 0.2.0 → 0.2.2

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 (83) hide show
  1. package/README.md +12 -5
  2. package/dist/analyzer/analyze-dto.d.ts.map +1 -1
  3. package/dist/analyzer/analyze-dto.js +14 -8
  4. package/dist/analyzer/analyze-dto.js.map +1 -1
  5. package/dist/analyzer/analyze.d.ts +23 -12
  6. package/dist/analyzer/analyze.d.ts.map +1 -1
  7. package/dist/analyzer/analyze.js +138 -46
  8. package/dist/analyzer/analyze.js.map +1 -1
  9. package/dist/analyzer/declarations.d.ts +6 -0
  10. package/dist/analyzer/declarations.d.ts.map +1 -1
  11. package/dist/analyzer/declarations.js +7 -0
  12. package/dist/analyzer/declarations.js.map +1 -1
  13. package/dist/analyzer/expression-policy.d.ts +88 -14
  14. package/dist/analyzer/expression-policy.d.ts.map +1 -1
  15. package/dist/analyzer/expression-policy.js +296 -41
  16. package/dist/analyzer/expression-policy.js.map +1 -1
  17. package/dist/analyzer/operator-rules.d.ts.map +1 -1
  18. package/dist/analyzer/operator-rules.js +7 -6
  19. package/dist/analyzer/operator-rules.js.map +1 -1
  20. package/dist/analyzer/signatures.d.ts +49 -0
  21. package/dist/analyzer/signatures.d.ts.map +1 -1
  22. package/dist/analyzer/signatures.js +76 -31
  23. package/dist/analyzer/signatures.js.map +1 -1
  24. package/dist/analyzer/source-options.d.ts +17 -0
  25. package/dist/analyzer/source-options.d.ts.map +1 -0
  26. package/dist/analyzer/source-options.js +3 -0
  27. package/dist/analyzer/source-options.js.map +1 -0
  28. package/dist/api/dto.d.ts +9 -4
  29. package/dist/api/dto.d.ts.map +1 -1
  30. package/dist/api/dto.js +14 -3
  31. package/dist/api/dto.js.map +1 -1
  32. package/dist/api/strict.d.ts.map +1 -1
  33. package/dist/api/strict.js +8 -3
  34. package/dist/api/strict.js.map +1 -1
  35. package/dist/cli/dto-check.d.ts +9 -0
  36. package/dist/cli/dto-check.d.ts.map +1 -1
  37. package/dist/cli/dto-check.js +49 -6
  38. package/dist/cli/dto-check.js.map +1 -1
  39. package/dist/cli/fhirpath-check.js +161 -31
  40. package/dist/cli/fhirpath-check.js.map +1 -1
  41. package/dist/eslint/index.d.ts.map +1 -1
  42. package/dist/eslint/index.js +13 -8
  43. package/dist/eslint/index.js.map +1 -1
  44. package/dist/r4/generated/resources-data.d.ts +6 -2
  45. package/dist/r4/generated/resources-data.d.ts.map +1 -1
  46. package/dist/r4/generated/resources-data.js +626 -28627
  47. package/dist/r4/generated/resources-data.js.map +1 -1
  48. package/dist/r4/generated/types-data.d.ts +6 -2
  49. package/dist/r4/generated/types-data.d.ts.map +1 -1
  50. package/dist/r4/generated/types-data.js +84 -2204
  51. package/dist/r4/generated/types-data.js.map +1 -1
  52. package/dist/r4/index.d.ts.map +1 -1
  53. package/dist/r4/index.js +10 -4
  54. package/dist/r4/index.js.map +1 -1
  55. package/dist/r4/model-data.d.ts +17 -0
  56. package/dist/r4/model-data.d.ts.map +1 -1
  57. package/dist/r4/model-data.js +118 -1
  58. package/dist/r4/model-data.js.map +1 -1
  59. package/dist/sites/index.d.ts +31 -2
  60. package/dist/sites/index.d.ts.map +1 -1
  61. package/dist/sites/index.js +351 -30
  62. package/dist/sites/index.js.map +1 -1
  63. package/dist/typed/infer.d.ts +2 -0
  64. package/dist/typed/infer.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/src/analyzer/analyze-dto.ts +19 -9
  67. package/src/analyzer/analyze.ts +186 -54
  68. package/src/analyzer/declarations.ts +12 -0
  69. package/src/analyzer/expression-policy.ts +423 -47
  70. package/src/analyzer/operator-rules.ts +7 -6
  71. package/src/analyzer/signatures.ts +100 -36
  72. package/src/analyzer/source-options.ts +19 -0
  73. package/src/api/dto.ts +35 -9
  74. package/src/api/strict.ts +8 -3
  75. package/src/cli/dto-check.ts +56 -6
  76. package/src/cli/fhirpath-check.ts +180 -34
  77. package/src/eslint/index.ts +15 -12
  78. package/src/r4/generated/resources-data.ts +624 -28628
  79. package/src/r4/generated/types-data.ts +82 -2205
  80. package/src/r4/index.ts +11 -5
  81. package/src/r4/model-data.ts +127 -0
  82. package/src/sites/index.ts +428 -40
  83. package/src/typed/infer.ts +2 -2
package/dist/api/dto.js CHANGED
@@ -5,7 +5,7 @@ import { functions as builtinFunctions } from "../functions/registry.js";
5
5
  import { canonicalFocusType, typesOverlap } from "../values/type-compat.js";
6
6
  import { toSubjects } from "./bundle.js";
7
7
  import { columnSignature, criteriaSignature } from "./column-signature.js";
8
- /** The `fhirType`/`vars` a `defineDto()` base was created with, by that base class. */
8
+ /** The normalized options a `defineDto()` base was created with. */
9
9
  const bases = new WeakMap();
10
10
  /**
11
11
  * Columns by the class that declared them. A field decorator runs before its
@@ -33,9 +33,19 @@ export function defineDto(fhirType, options = {}) {
33
33
  // A readable name for project()/registration errors; a subclass replaces it.
34
34
  Object.defineProperty(base, 'name', { value: `${fhirType}Dto` });
35
35
  Object.defineProperty(base, 'fhirType', { value: fhirType, enumerable: true });
36
- bases.set(base, { fhirType, ...options });
36
+ const callerEnv = options.callerEnv;
37
+ const callerEnvIsNames = isCallerEnvNames(callerEnv);
38
+ bases.set(base, {
39
+ fhirType,
40
+ vars: options.vars,
41
+ callerEnvNames: callerEnvIsNames ? callerEnv : Object.keys(callerEnv ?? {}),
42
+ callerEnvTypes: callerEnvIsNames ? undefined : callerEnv,
43
+ });
37
44
  return base;
38
45
  }
46
+ function isCallerEnvNames(callerEnv) {
47
+ return Array.isArray(callerEnv);
48
+ }
39
49
  /** Records one column against the class being collected, and does nothing at any other time. */
40
50
  function recordColumn(instance, name, spec) {
41
51
  const cls = instance.constructor;
@@ -160,7 +170,8 @@ export function dtoDefinition(cls) {
160
170
  columns,
161
171
  env: declaredEnv(cls),
162
172
  vars: base.vars,
163
- callerEnv: base.callerEnv,
173
+ callerEnvNames: base.callerEnvNames,
174
+ callerEnvTypes: base.callerEnvTypes,
164
175
  };
165
176
  definitions.set(cls, definition);
166
177
  return definition;
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/api/dto.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGxE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAwF1E,uFAAuF;AACvF,MAAM,KAAK,GAAG,IAAI,OAAO,EAA6C,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,eAAe,GAAG,IAAI,OAAO,EAAsC,CAAA;AAEzE,6DAA6D;AAC7D,MAAM,WAAW,GAAG,IAAI,OAAO,EAAyB,CAAA;AAExD,8FAA8F;AAC9F,IAAI,UAA8B,CAAA;AAElC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAkC,QAAc,EAAE,UAAsB,EAAE;IACjG,MAAM,IAAI,GAAG;QACX,uEAAuE;QACvE,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;IACD,6EAA6E;IAC7E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAA;IAChE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9E,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IACzC,OAAO,IAAgC,CAAA;AACzC,CAAC;AAED,gGAAgG;AAChG,SAAS,YAAY,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAgB;IACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAqB,CAAA;IAC1C,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAChB,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,4GAA4G;AAC5G,SAAS,cAAc,CAAC,IAAgB;IACtC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC1B,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,iBAAiB,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QACjG,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO;YACL,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9B,OAAO,SAAS,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAcD,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,OAAuB;IAC1D,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AAC7C,CAAC;AAQD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AACvC,CAAC;AAED,8DAA8D;AAC9D,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAW;IAC9B,KAAK,IAAI,OAAO,GAAY,GAAG,EAAE,OAAO,OAAO,KAAK,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACzG,MAAM,OAAoC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,MAAM,CAAC,GAAW;IACzB,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAa;IAChC,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAC9C,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAA4B,CAAA;IAC9F,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAA8B;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,GAAG,GAAY,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,iBAAiB,CACzB,OAAO,GAAG,CAAC,IAAI,8DAA8D;YAC3E,oEAAoE,CACvE,CAAA;IACH,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;AACnE,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAiB,CACzB,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,oEAAoE,CAC/F,CAAA;IACH,CAAC;IACD,8EAA8E;IAC9E,uCAAuC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAA;IACxB,UAAU,GAAG,GAAG,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAA;IACX,CAAC;YAAS,CAAC;QACT,UAAU,GAAG,KAAK,CAAA;IACpB,CAAC;IACD,0EAA0E;IAC1E,MAAM,OAAO,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;IAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,iBAAiB,CAAC,OAAO,GAAG,CAAC,IAAI,2CAA2C,CAAC,CAAA;IACzF,CAAC;IACD,wKAAwK;IACxK,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAiB,CAAC,OAAO,GAAG,CAAC,IAAI,sEAAsE,CAAC,CAAA;IACpH,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAkB;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAA;IACD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAChC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAyB,EAAE,IAAyB,EAAE,OAAiB;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,kFAAkF;QAClF,MAAM,IAAI,iBAAiB,CACzB,qBAAqB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAC1E,mGAAmG;YACnG,sEAAsE,CACzE,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAmC,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;IAC3E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACrC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,wEAAwE;YACxE,iCAAiC;YACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,iBAAiB,CACzB,OAAO,GAAG,CAAC,IAAI,6BAA6B,IAAI,mDAAmD,CACpG,CAAA;YACH,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAC5B,SAAS,CAAC,IAAI,CAAC,EACf,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EACzC,KAAK,EACL,GAAG,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,4BAA4B,IAAI,GAAG,CACzD,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,CAAA;AACnC,CAAC;AAED,sGAAsG;AACtG,SAAS,YAAY,CACnB,QAAoC,EACpC,MAA4B,EAC5B,KAAoB,EACpB,MAAoB;IAEpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAoB,EAAE,CAAuB,EAAE,CAAuB;IAC/F,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAChE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,+FAA+F,CAAA;IACxG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACpF,CAAA;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,mFAAmF;IACnF,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AAClH,CAAC;AAED,8GAA8G;AAC9G,SAAS,cAAc,CAAC,KAAoB,EAAE,KAAoC;IAChF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,KAAK;SACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACvD,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAgB,EAAE,OAAiB,EAAE,GAAkB;IAC7E,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YACtC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;SAClC,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACjD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;KAClC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,GAAa;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACvC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,YAAY,GAAI,OAAO,CAAC,KAAuD,EAAE,YAAY,CAAA;QACnG,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAClE,MAAM,IAAI,iBAAiB,CACzB,kBAAkB,KAAK,SAAS,YAAY,SAAS,GAAG,CAAC,IAAI,uBAAuB,QAAQ,GAAG,CAChG,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa,EAAE,OAAoC;IAChF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,MAAM,GAAoB,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/api/dto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAA;AAOlE,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAiDnH"}
1
+ {"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAA;AAOlE,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAqDnH"}
@@ -23,13 +23,17 @@ export function assertStrictExpression(ast, root, options) {
23
23
  findings.push(...details.diagnostics
24
24
  .filter(diagnostic => diagnostic.severity === 'error')
25
25
  .map(diagnostic => ({ diagnostic, subject: `vars.${name}` })));
26
- variables[name] =
27
- declaration === undefined
26
+ // A declaration overrides the inferred types and cardinality, but ordering
27
+ // always comes from the analyzed expression — declarations cannot state it.
28
+ variables[name] = {
29
+ ...(declaration === undefined
28
30
  ? {
29
31
  ...(details.result.types !== undefined && { types: details.result.types }),
30
32
  ...(details.result.single !== undefined && { single: details.result.single }),
31
33
  }
32
- : analyzerVariable(declaration);
34
+ : analyzerVariable(declaration)),
35
+ ...(details.result.ordered !== undefined && { ordered: details.result.ordered }),
36
+ };
33
37
  }
34
38
  for (const [name, declaration] of Object.entries(declarations)) {
35
39
  variables[name] ??= analyzerVariable(declaration);
@@ -52,6 +56,7 @@ function runtimeRoot(root, model) {
52
56
  return {
53
57
  types: variable.types,
54
58
  single: variable.single,
59
+ ordered: variable.ordered,
55
60
  exactTypes: variable.exactTypes,
56
61
  };
57
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
+ import type { AnalyzeOptions } from '../analyzer/analyze.ts';
1
2
  import { type DtoDiagnostic } from '../analyzer/analyze-dto.ts';
2
3
  /** Where DTO classes live unless `--dtos` says otherwise. */
3
4
  export declare const DEFAULT_DTO_GLOB = "**/*.dto.ts";
5
+ /**
6
+ * A checker configuration problem, not an expression finding: the imported
7
+ * modules constructed engines whose contexts cannot be merged.
8
+ */
9
+ export declare class EngineMergeError extends Error {
10
+ }
4
11
  /** One finding, with the DTO and file it belongs to and the expression that produced it. */
5
12
  export interface DtoFinding extends DtoDiagnostic {
6
13
  /** The DTO class name. */
@@ -19,6 +26,8 @@ export interface DtoCheckResult {
19
26
  file: string;
20
27
  dto: string;
21
28
  }[];
29
+ /** Merged engine declarations that make ordinary source-site checks complete. */
30
+ sourceOptions: AnalyzeOptions | undefined;
22
31
  }
23
32
  /** Imports matching modules and checks their exported DTOs against recorded engines. */
24
33
  export declare function checkDtoModules(patterns: readonly string[], cwd: string): Promise<DtoCheckResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"dto-check.d.ts","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"AAWA,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAIjG,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAI7C,4FAA4F;AAC5F,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,iFAAiF;IACjF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtC;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoBvG"}
1
+ {"version":3,"file":"dto-check.d.ts","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAMjG,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAE7C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAI9C,4FAA4F;AAC5F,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,iFAAiF;IACjF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACrC,iFAAiF;IACjF,aAAa,EAAE,cAAc,GAAG,SAAS,CAAA;CAC1C;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2BvG"}
@@ -17,10 +17,18 @@ import { register } from 'node:module';
17
17
  import { relative } from 'node:path';
18
18
  import { pathToFileURL } from 'node:url';
19
19
  import { analyzeDto } from "../analyzer/analyze-dto.js";
20
+ import { analyzerEnvironmentVariables, analyzerVariables } from "../analyzer/declarations.js";
21
+ import { SOURCE_VARIABLE_DEFAULTS } from "../analyzer/source-options.js";
20
22
  import { isDtoClass } from "../api/dto.js";
21
23
  import { recordEngines } from "../api/engine.js";
22
24
  /** Where DTO classes live unless `--dtos` says otherwise. */
23
25
  export const DEFAULT_DTO_GLOB = '**/*.dto.ts';
26
+ /**
27
+ * A checker configuration problem, not an expression finding: the imported
28
+ * modules constructed engines whose contexts cannot be merged.
29
+ */
30
+ export class EngineMergeError extends Error {
31
+ }
24
32
  const IGNORED = ['**/node_modules/**', '**/dist/**', '**/build/**', '**/coverage/**'];
25
33
  /** Imports matching modules and checks their exported DTOs against recorded engines. */
26
34
  export async function checkDtoModules(patterns, cwd) {
@@ -39,8 +47,15 @@ export async function checkDtoModules(patterns, cwd) {
39
47
  }
40
48
  }
41
49
  const engines = recorded();
50
+ assertSharedModel(engines);
42
51
  const findings = dtos.flatMap(({ file, dto, cls }) => analyzeFor(cls, engines).map(finding => ({ ...finding, dto, file })));
43
- return { findings, files, engines: engines.length, dtos: dtos.map(({ file, dto }) => ({ file, dto })) };
52
+ return {
53
+ findings,
54
+ files,
55
+ engines: engines.length,
56
+ dtos: dtos.map(({ file, dto }) => ({ file, dto })),
57
+ sourceOptions: engines.length === 0 ? undefined : optionsForSource(merged(engines)),
58
+ };
44
59
  }
45
60
  /**
46
61
  * A DTO against the engine that registered it, or — when no engine claims it, as
@@ -53,18 +68,32 @@ export async function checkDtoModules(patterns, cwd) {
53
68
  function analyzeFor(dto, engines) {
54
69
  const owner = engines.find(engine => engine.dtos.includes(dto));
55
70
  if (owner !== undefined) {
56
- return analyzeDto(dto, { engine: owner });
71
+ return analyzeDto(dto, { engine: owner, reportUnchecked: true });
57
72
  }
58
73
  if (engines.length === 0) {
59
- return analyzeDto(dto);
74
+ return analyzeDto(dto, { reportUnchecked: true });
75
+ }
76
+ return analyzeDto(dto, { engine: merged(engines), reportUnchecked: true });
77
+ }
78
+ /**
79
+ * Merged analysis (unregistered DTOs, `sourceOptions`) uses the first engine's
80
+ * model for every declaration, so all engines must share one `ModelProvider`
81
+ * instance — a declaration analyzed under another engine's type hierarchy would
82
+ * produce wrong element, subtype, and Reference-target findings. Identity is
83
+ * the only equivalence a `ModelProvider` offers, so two wrappers around the
84
+ * same logical model are still rejected; check such projects in separate runs.
85
+ */
86
+ function assertSharedModel(engines) {
87
+ const model = engines[0]?.defaults.model;
88
+ if (engines.some(engine => engine.defaults.model !== model)) {
89
+ throw new EngineMergeError('the imported modules constructed engines with different ModelProvider instances; ' +
90
+ 'source and unregistered-DTO analysis needs one shared model — check projects with different models in separate runs');
60
91
  }
61
- return analyzeDto(dto, { engine: merged(engines) });
62
92
  }
63
93
  /**
64
94
  * Every engine's context as one: the union of their registered functions,
65
95
  * environment declarations, and vars. The first engine's `model` stands for
66
- * all of them — a project binds one FHIR version, and an unregistered DTO names
67
- * no engine that could pick another.
96
+ * all of them — `assertSharedModel` has proven they all carry the same one.
68
97
  */
69
98
  function merged(engines) {
70
99
  return {
@@ -78,4 +107,18 @@ function merged(engines) {
78
107
  },
79
108
  };
80
109
  }
110
+ /** Turn merged engine runtime defaults into the declarations accepted by analyzeSite(). */
111
+ function optionsForSource(engine) {
112
+ const { model, functions, env, envTypes, vars, varTypes } = engine.defaults;
113
+ const options = {
114
+ ...(model !== undefined && { model }),
115
+ ...(functions !== undefined && { functions }),
116
+ variables: analyzerEnvironmentVariables(env, envTypes, model),
117
+ [SOURCE_VARIABLE_DEFAULTS]: {
118
+ values: Object.keys(analyzerVariables(vars, undefined)),
119
+ declarations: analyzerVariables(undefined, varTypes),
120
+ },
121
+ };
122
+ return options;
123
+ }
81
124
  //# sourceMappingURL=dto-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dto-check.js","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dto-check.js","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"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"}
@@ -5,23 +5,29 @@
5
5
  * exit status. Use `--no-import` for source only and `--dtos` to change the DTO
6
6
  * module glob.
7
7
  *
8
- * Usage: fhirpath-check [--dtos <glob>]... [--no-import] <file...>
8
+ * Usage: fhirpath-check [--dtos <glob>]... [--no-import] [--local-imports] [--strict] <file...>
9
9
  */
10
10
  /* v8 ignore file -- covered end-to-end as a subprocess in fhirpath-check.test.ts */
11
11
  import { readFileSync } from 'node:fs';
12
+ import { dirname, resolve } from 'node:path';
12
13
  import ts from 'typescript';
13
14
  import { analyzeSite } from "../analyzer/analyze.js";
14
15
  import { r4Model } from "../r4/index.js";
15
- import { createSiteFinder } from "../sites/index.js";
16
- import { checkDtoModules, DEFAULT_DTO_GLOB } from "./dto-check.js";
17
- const findExpressionSites = createSiteFinder(ts);
16
+ import { createSiteScanner } from "../sites/index.js";
17
+ import { checkDtoModules, DEFAULT_DTO_GLOB, EngineMergeError, } from "./dto-check.js";
18
18
  function parseArgs(argv) {
19
- const args = { files: [], dtoGlobs: [], imports: true };
19
+ const args = { files: [], dtoGlobs: [], imports: true, localImports: false, strict: false };
20
20
  for (let index = 0; index < argv.length; index++) {
21
21
  const arg = argv[index];
22
22
  if (arg === '--no-import') {
23
23
  args.imports = false;
24
24
  }
25
+ else if (arg === '--local-imports') {
26
+ args.localImports = true;
27
+ }
28
+ else if (arg === '--strict') {
29
+ args.strict = true;
30
+ }
25
31
  else if (arg === '--dtos') {
26
32
  const glob = argv[++index];
27
33
  if (glob === undefined) {
@@ -38,15 +44,79 @@ function parseArgs(argv) {
38
44
  }
39
45
  const args = parseArgs(process.argv.slice(2));
40
46
  if (args.files.length === 0 && !args.imports) {
41
- console.error('usage: fhirpath-check [--dtos <glob>]... [--no-import] <file...>');
47
+ console.error('usage: fhirpath-check [--dtos <glob>]... [--no-import] [--local-imports] [--strict] <file...>');
42
48
  process.exit(2);
43
49
  }
50
+ const dtoGlobs = args.dtoGlobs.length > 0 ? args.dtoGlobs : [DEFAULT_DTO_GLOB];
51
+ /** A type-aware program lets the site finder follow imported and aliased engine receivers. */
52
+ function sourceProgram(files, configPath) {
53
+ const defaults = {
54
+ allowJs: true,
55
+ skipLibCheck: true,
56
+ target: ts.ScriptTarget.Latest,
57
+ };
58
+ const nodeNext = {
59
+ module: ts.ModuleKind.NodeNext,
60
+ moduleResolution: ts.ModuleResolutionKind.NodeNext,
61
+ };
62
+ let options = { ...defaults, ...nodeNext };
63
+ if (configPath !== undefined) {
64
+ const config = ts.readConfigFile(configPath, ts.sys.readFile);
65
+ if (config.error === undefined) {
66
+ // Resolve `extends`/`paths` from the config's own directory, and layer
67
+ // the declared options over the defaults instead of replacing them —
68
+ // a `strict`-only tsconfig must not lose the module resolution the
69
+ // checker needs to follow package exports. The NodeNext pair applies
70
+ // only when the config declares neither half, so an explicit
71
+ // module/moduleResolution keeps TypeScript's own pairing rules.
72
+ const declared = ts.parseJsonConfigFileContent(config.config, ts.sys, dirname(configPath), undefined, configPath).options;
73
+ const resolution = declared.module === undefined && declared.moduleResolution === undefined ? nodeNext : {};
74
+ options = { ...defaults, ...resolution, ...declared };
75
+ }
76
+ }
77
+ return ts.createProgram({ rootNames: files.map(file => resolve(file)), options });
78
+ }
79
+ /**
80
+ * One semantic scanner per tsconfig project. A monorepo command may select
81
+ * files from packages whose aliases and module settings differ, so each file
82
+ * starts its config search in its own directory. Files sharing a config share
83
+ * one Program and TypeChecker.
84
+ */
85
+ function sourceScanners(files) {
86
+ const filesByConfig = new Map();
87
+ for (const file of files) {
88
+ const absolute = resolve(file);
89
+ const configPath = ts.findConfigFile(dirname(absolute), ts.sys.fileExists);
90
+ const grouped = filesByConfig.get(configPath);
91
+ if (grouped === undefined) {
92
+ filesByConfig.set(configPath, [absolute]);
93
+ }
94
+ else {
95
+ grouped.push(absolute);
96
+ }
97
+ }
98
+ const scannersByFile = new Map();
99
+ for (const [configPath, groupedFiles] of filesByConfig) {
100
+ const scanner = createSiteScanner(ts, sourceProgram(groupedFiles, configPath));
101
+ for (const file of groupedFiles) {
102
+ scannersByFile.set(file, scanner);
103
+ }
104
+ }
105
+ return scannersByFile;
106
+ }
107
+ const syntaxScanner = createSiteScanner(ts);
108
+ let semanticScannersByFile = new Map();
44
109
  let failures = 0;
110
+ let warnings = 0;
45
111
  function report(location, diagnostic) {
46
- if (diagnostic.severity === 'error') {
112
+ const severity = args.strict && diagnostic.severity === 'warning' ? 'error' : diagnostic.severity;
113
+ if (severity === 'error') {
47
114
  failures += 1;
48
115
  }
49
- const prefix = diagnostic.severity === 'warning' ? 'warning:' : '';
116
+ else {
117
+ warnings += 1;
118
+ }
119
+ const prefix = severity === 'warning' ? 'warning:' : '';
50
120
  console.error(`${location} [${prefix}${diagnostic.code}] ${diagnostic.message}`);
51
121
  }
52
122
  /**
@@ -60,32 +130,81 @@ function positionIn(site, span) {
60
130
  const column = span.line === 1 ? site.column + span.column - 1 : span.column;
61
131
  return `${line}:${column}`;
62
132
  }
63
- /** Expression sites cached so each source file is read once. */
64
- const sitesByFile = new Map();
65
- function sitesOf(file) {
66
- const cached = sitesByFile.get(file);
133
+ /** Source scans cached so each file is read once. */
134
+ const scansByFile = new Map();
135
+ function scanOf(file) {
136
+ const cached = scansByFile.get(file);
67
137
  if (cached !== undefined) {
68
138
  return cached;
69
139
  }
70
- const sites = findExpressionSites(readFileSync(file, 'utf8'), file);
71
- sitesByFile.set(file, sites);
72
- return sites;
140
+ const absolute = resolve(file);
141
+ const scanner = semanticScannersByFile.get(absolute) ?? syntaxScanner;
142
+ const scan = scanner(readFileSync(file, 'utf8'), absolute, {
143
+ ...(args.localImports && { localImports: true }),
144
+ });
145
+ scansByFile.set(file, scan);
146
+ return scan;
73
147
  }
74
- // Check source literals first.
148
+ function sitesOf(file) {
149
+ return scanOf(file).sites;
150
+ }
151
+ // Extract source sites before executing project modules. Analysis waits until
152
+ // after the import pass so those sites can use the engines' real environment.
75
153
  for (const file of args.files) {
76
- let sites;
77
154
  try {
78
- sites = sitesOf(file);
155
+ scanOf(file);
79
156
  }
80
157
  catch (error) {
81
158
  console.error(`fhirpath-check: cannot read ${file}: ${error instanceof Error ? error.message : String(error)}`);
82
159
  process.exit(2);
83
160
  }
161
+ }
162
+ const unresolvedFiles = args.localImports
163
+ ? []
164
+ : args.files.filter(file => scanOf(file).skipped.some(skipped => skipped.reason === 'unrecognized-receiver'));
165
+ if (unresolvedFiles.length > 0) {
166
+ // Pay the Program/TypeChecker cost only when the syntax-only pass found a
167
+ // receiver it could not prove. Most source files need no compiler graph.
168
+ semanticScannersByFile = sourceScanners(unresolvedFiles);
169
+ scansByFile.clear();
170
+ for (const file of args.files) {
171
+ scanOf(file);
172
+ }
173
+ }
174
+ let dtoResult;
175
+ if (args.imports) {
176
+ try {
177
+ dtoResult = await checkDtoModules(dtoGlobs, process.cwd());
178
+ }
179
+ catch (error) {
180
+ if (error instanceof EngineMergeError) {
181
+ console.error(`fhirpath-check: ${error.message}`);
182
+ }
183
+ else {
184
+ console.error(`fhirpath-check: cannot import DTO modules (${dtoGlobs.join(', ')}): ${error instanceof Error ? error.message : String(error)}`);
185
+ }
186
+ process.exit(2);
187
+ }
188
+ }
189
+ // Check source literals first.
190
+ for (const file of args.files) {
191
+ const sites = sitesOf(file);
84
192
  for (const site of sites) {
85
- for (const diagnostic of analyzeSite(site, { model: r4Model })) {
193
+ for (const diagnostic of analyzeSite(site, {
194
+ model: r4Model,
195
+ ...dtoResult?.sourceOptions,
196
+ reportUnchecked: true,
197
+ })) {
86
198
  report(`${file}:${positionIn(site, diagnostic.span)}`, diagnostic);
87
199
  }
88
200
  }
201
+ for (const skipped of scanOf(file).skipped) {
202
+ report(`${file}:${skipped.line}:${skipped.column}`, {
203
+ severity: 'warning',
204
+ code: 'skipped',
205
+ message: skipped.message,
206
+ });
207
+ }
89
208
  }
90
209
  /**
91
210
  * A DTO finding's position in source: `analyzeDto` knows the member and the
@@ -109,24 +228,35 @@ function locate(finding) {
109
228
  : `${finding.file}:${positionIn(site, finding.span)} ${member}`;
110
229
  }
111
230
  // --- 2. the project's DTO modules, imported ---
112
- if (args.imports) {
113
- const globs = args.dtoGlobs.length > 0 ? args.dtoGlobs : [DEFAULT_DTO_GLOB];
114
- let result;
115
- try {
116
- result = await checkDtoModules(globs, process.cwd());
117
- }
118
- catch (error) {
119
- console.error(`fhirpath-check: cannot import DTO modules (${globs.join(', ')}): ${error instanceof Error ? error.message : String(error)}`);
120
- process.exit(2);
231
+ if (dtoResult !== undefined) {
232
+ const result = dtoResult;
233
+ for (const file of result.files) {
234
+ let scan;
235
+ try {
236
+ scan = scanOf(file);
237
+ }
238
+ catch {
239
+ continue;
240
+ }
241
+ for (const dto of scan.dtoDeclarations) {
242
+ if (!dto.loadable) {
243
+ report(`${file}:${dto.line}:${dto.column}`, {
244
+ severity: 'warning',
245
+ code: 'unloaded-dto',
246
+ message: `DTO ${dto.name} is module-local and was not loaded for full analysis; export it or an extending class`,
247
+ });
248
+ }
249
+ }
121
250
  }
122
251
  for (const finding of result.findings) {
123
252
  // With no engine in reach, an unresolved column call is unresolvable rather
124
253
  // than wrong, so it is reported without failing the run.
125
254
  const unresolvable = result.engines === 0 && finding.code === 'unknown-function';
126
- report(locate(finding), unresolvable ? { ...finding, severity: 'warning' } : finding);
255
+ const reported = unresolvable ? { ...finding, severity: 'warning' } : finding;
256
+ report(locate(finding), reported);
127
257
  }
128
258
  if (result.files.length === 0) {
129
- console.error(`fhirpath-check: no DTO modules matched ${globs.join(', ')} — DTOs live in *.dto.ts, or pass --dtos <glob>`);
259
+ console.error(`fhirpath-check: no DTO modules matched ${dtoGlobs.join(', ')} — DTOs live in *.dto.ts, or pass --dtos <glob>`);
130
260
  }
131
261
  else if (result.dtos.length === 0) {
132
262
  console.error(`fhirpath-check: ${result.files.length} DTO module(s) matched but export no DTO class`);
@@ -145,5 +275,5 @@ if (failures > 0) {
145
275
  console.error(`fhirpath-check: ${failures} problem(s) found`);
146
276
  process.exit(1);
147
277
  }
148
- console.log('fhirpath-check: no problems found');
278
+ console.log(warnings > 0 ? `fhirpath-check: ${warnings} warning(s), no errors found` : 'fhirpath-check: no problems found');
149
279
  //# sourceMappingURL=fhirpath-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fhirpath-check.js","sourceRoot":"","sources":["../../src/cli/fhirpath-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fhirpath-check.js","sourceRoot":"","sources":["../../src/cli/fhirpath-check.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,oFAAoF;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAA8D,MAAM,mBAAmB,CAAA;AACjH,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AAUvB,SAAS,SAAS,CAAC,IAAuB;IACxC,MAAM,IAAI,GAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACjG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAA;QACxB,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;YAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAA;IAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAE9E,8FAA8F;AAC9F,SAAS,aAAa,CAAC,KAAwB,EAAE,UAA8B;IAC7E,MAAM,QAAQ,GAAuB;QACnC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;KAC/B,CAAA;IACD,MAAM,QAAQ,GAAuB;QACnC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;QAC9B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ;KACnD,CAAA;IACD,IAAI,OAAO,GAAuB,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,uEAAuE;YACvE,qEAAqE;YACrE,mEAAmE;YACnE,qEAAqE;YACrE,6DAA6D;YAC7D,gEAAgE;YAChE,MAAM,QAAQ,GAAG,EAAE,CAAC,0BAA0B,CAC5C,MAAM,CAAC,MAAM,EACb,EAAE,CAAC,GAAG,EACN,OAAO,CAAC,UAAU,CAAC,EACnB,SAAS,EACT,UAAU,CACX,CAAC,OAAO,CAAA;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3G,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAA;QACvD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;AACnF,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAwB;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgC,CAAA;IAC7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAA;IACrD,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAC3C,IAAI,sBAAsB,GAAqC,IAAI,GAAG,EAAE,CAAA;AAExE,IAAI,QAAQ,GAAG,CAAC,CAAA;AAChB,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB,SAAS,MAAM,CAAC,QAAgB,EAAE,UAA4E;IAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;IACjG,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,QAAQ,IAAI,CAAC,CAAA;IACf,CAAC;SAAM,CAAC;QACN,QAAQ,IAAI,CAAC,CAAA;IACf,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,KAAK,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;AAClF,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAsC,EAAE,IAAsC;IAChG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IAC5E,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAA;AAC5B,CAAC;AAED,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAA;AAErD,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAA;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;QACzD,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC,CAAA;IACF,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;AAC3B,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AACD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY;IACvC,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAAA;AAC/G,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC/B,0EAA0E;IAC1E,yEAAyE;IACzE,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;IACxD,WAAW,CAAC,KAAK,EAAE,CAAA;IACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;AACH,CAAC;AAED,IAAI,SAAqC,CAAA;AACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,8CAA8C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChI,CAAA;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,+BAA+B;AAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;YACzC,KAAK,EAAE,OAAO;YACd,GAAG,SAAS,EAAE,aAAa;YAC3B,eAAe,EAAE,IAAI;SACtB,CAAC,EAAE,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;YAClD,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,OAAmB;IACjC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;IACjD,IAAI,IAAgC,CAAA;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE;QAC7B,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAA;AACnE,CAAC;AAED,iDAAiD;AACjD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAA;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAoB,CAAA;QACxB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;oBAC1C,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,OAAO,GAAG,CAAC,IAAI,wFAAwF;iBACjH,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,4EAA4E;QAC5E,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,CAAA;QAChF,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QACtF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CACX,0CAA0C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAC/G,CAAA;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,MAAM,gDAAgD,CAAC,CAAA;IACvG,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAChC,6EAA6E;QAC7E,uEAAuE;QACvE,OAAO,CAAC,KAAK,CACX,gHAAgH;YAC9G,4DAA4D,CAC/D,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,4BAA4B,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,sBAAsB,MAAM,CAAC,OAAO,YAAY,CAClI,CAAA;IACH,CAAC;AACH,CAAC;AAED,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,mBAAmB,CAAC,CAAA;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AACD,OAAO,CAAC,GAAG,CACT,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,QAAQ,8BAA8B,CAAC,CAAC,CAAC,mCAAmC,CAC/G,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AA0XlC,QAAA,MAAM,MAAM;;;;;;;;CAKX,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AA6XlC,QAAA,MAAM,MAAM;;;;;;;;CAKX,CAAA;AAED,eAAe,MAAM,CAAA"}