@records-fhir/validation-types 0.1.12 → 0.1.14

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 (55) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/fix-suggestions/catalog-reference-profile.d.ts.map +1 -1
  3. package/dist/fix-suggestions/catalog-reference-profile.js +3 -2
  4. package/dist/fix-suggestions/catalog-reference-profile.js.map +1 -1
  5. package/dist/validation/defaults/terminology-defaults.d.ts +0 -8
  6. package/dist/validation/defaults/terminology-defaults.d.ts.map +1 -1
  7. package/dist/validation/defaults/terminology-defaults.js +16 -4
  8. package/dist/validation/defaults/terminology-defaults.js.map +1 -1
  9. package/dist/validation/effective-quality-policy.d.ts +58 -0
  10. package/dist/validation/effective-quality-policy.d.ts.map +1 -1
  11. package/dist/validation/evaluation-plan.d.ts +4 -0
  12. package/dist/validation/evaluation-plan.d.ts.map +1 -1
  13. package/dist/validation/external-quality-source.d.ts +137 -0
  14. package/dist/validation/external-quality-source.d.ts.map +1 -0
  15. package/dist/validation/external-quality-source.js +70 -0
  16. package/dist/validation/external-quality-source.js.map +1 -0
  17. package/dist/validation/finding-verification.d.ts +281 -0
  18. package/dist/validation/finding-verification.d.ts.map +1 -0
  19. package/dist/validation/finding-verification.js +54 -0
  20. package/dist/validation/finding-verification.js.map +1 -0
  21. package/dist/validation/index.d.ts +1 -0
  22. package/dist/validation/index.d.ts.map +1 -1
  23. package/dist/validation/index.js +1 -0
  24. package/dist/validation/index.js.map +1 -1
  25. package/dist/validation/issue-provenance.js +5 -0
  26. package/dist/validation/issue-provenance.js.map +1 -1
  27. package/dist/validation/messages.d.ts +2 -0
  28. package/dist/validation/messages.d.ts.map +1 -1
  29. package/dist/validation/quality-assessment.d.ts +3 -0
  30. package/dist/validation/quality-assessment.d.ts.map +1 -1
  31. package/dist/validation/quality-policy-layer.d.ts +26 -0
  32. package/dist/validation/quality-policy-layer.d.ts.map +1 -1
  33. package/dist/validation/quality-policy-layer.js +4 -0
  34. package/dist/validation/quality-policy-layer.js.map +1 -1
  35. package/dist/validation/quality-rule-pack-draft.d.ts +202 -1
  36. package/dist/validation/quality-rule-pack-draft.d.ts.map +1 -1
  37. package/dist/validation/quality-rule-pack.d.ts +396 -2
  38. package/dist/validation/quality-rule-pack.d.ts.map +1 -1
  39. package/dist/validation/quality-rule-pack.js +81 -1
  40. package/dist/validation/quality-rule-pack.js.map +1 -1
  41. package/dist/validation/settings-core-schema.d.ts +33 -0
  42. package/dist/validation/settings-core-schema.d.ts.map +1 -1
  43. package/dist/validation/settings-core-schema.js +2 -0
  44. package/dist/validation/settings-core-schema.js.map +1 -1
  45. package/dist/validation/settings-policies.d.ts +7 -0
  46. package/dist/validation/settings-policies.d.ts.map +1 -1
  47. package/dist/validation/settings-schema.d.ts +208 -0
  48. package/dist/validation/settings-schema.d.ts.map +1 -1
  49. package/dist/validation/settings-schema.js +2 -1
  50. package/dist/validation/settings-schema.js.map +1 -1
  51. package/dist/validation/settings-terminology-schema.d.ts +16 -0
  52. package/dist/validation/settings-terminology-schema.d.ts.map +1 -1
  53. package/dist/validation/settings-terminology-schema.js +3 -0
  54. package/dist/validation/settings-terminology-schema.js.map +1 -1
  55. package/package.json +5 -1
package/CHANGELOG.md CHANGED
@@ -11,6 +11,38 @@ captures changes that affect type-package consumers directly.
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [0.1.14] — 2026-10-11
15
+
16
+ ### Added
17
+
18
+ - Shared DQA program, policy, rule, observation and evaluation contracts with
19
+ explicit coverage, non-evaluation and immutable provenance.
20
+ - Optional profile and EU laboratory document population selection; missing
21
+ membership policies and bounded structured/primitive observations retain
22
+ the defaults and hashes of existing manifests.
23
+ - Run-only quality selections, independent FHIR/DQA execution modes and bounded
24
+ original-CQL preflight/worker contracts.
25
+ - Metadata-only source input receipts, single-resource source ownership and
26
+ explicit reference namespace and validation-unit deduplication contracts.
27
+
28
+ ### Fixed
29
+
30
+ - Use Termbox's explicit R4 endpoint in the default R4 server entry. Existing
31
+ saved configurations retain their selected endpoint.
32
+
33
+ ## [0.1.13] — 2026-10-05
34
+
35
+ ### Fixed
36
+
37
+ - Classify `terminology-coding-missing-system` as a verified resource finding
38
+ with high confidence, without mistaking its message for a terminology outage.
39
+
40
+ ### Added
41
+
42
+ - Dedicated `validation/finding-verification` schemas and types for read-only
43
+ run finding verification and repository-based GitHub issue manifests.
44
+ - Add validated, request-scoped `defaultCodeSystemVersions` terminology settings for explicit edition selection without changing Coding versions.
45
+
14
46
  ## [0.1.12] — 2026-09-22
15
47
 
16
48
  ### Changed
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-reference-profile.d.ts","sourceRoot":"","sources":["../../src/fix-suggestions/catalog-reference-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAyMnE,CAAC"}
1
+ {"version":3,"file":"catalog-reference-profile.d.ts","sourceRoot":"","sources":["../../src/fix-suggestions/catalog-reference-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0MnE,CAAC"}
@@ -73,8 +73,9 @@ export const CATALOG_REFERENCE_PROFILE = {
73
73
  fix: 'Check reference format, target existence, and type constraints.',
74
74
  },
75
75
  'reference-circular': {
76
- why: 'A circular reference chain was detected (A → B → A).',
77
- fix: 'Break the cycle by removing one of the bidirectional references or using a contained resource.',
76
+ why: 'A reference relationship declared as a strict hierarchy returns to the same resource.',
77
+ fix: 'Correct the identified hierarchical relationship, such as partOf. Ordinary clinical backlinks and Patient links do not need to be removed.',
78
+ specUrl: 'https://hl7.org/fhir/R4/references.html#circular',
78
79
  },
79
80
  'reference-recursive-timeout': {
80
81
  why: 'Reference resolution was aborted because the chain is too deep.',
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-reference-profile.js","sourceRoot":"","sources":["../../src/fix-suggestions/catalog-reference-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-reference-profile.js","sourceRoot":"","sources":["../../src/fix-suggestions/catalog-reference-profile.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
1
  import type { TerminologyServer, CircuitBreakerConfig } from '../settings.js';
2
- /**
3
- * Default terminology servers based on TERMINOLOGY_SERVER_TEST_RESULTS.md
4
- *
5
- * Priority order (sequential fallback):
6
- * 1. CSIRO Ontoserver R4 - Primary (more reliable, fewer 422 errors)
7
- * 2. tx.fhir.org/r4 - Fallback for R4
8
- * 3. tx.fhir.org/r5 - Fallback for R5/R6
9
- */
10
2
  export declare const DEFAULT_TERMINOLOGY_SERVERS: TerminologyServer[];
11
3
  /**
12
4
  * Default circuit breaker configuration
@@ -1 +1 @@
1
- {"version":3,"file":"terminology-defaults.d.ts","sourceRoot":"","sources":["../../../src/validation/defaults/terminology-defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,EA0I1D,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B,MAAM;QACJ,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,UAAU;QACd,EAAE,EAAE,UAAU;;IAEhB,WAAW;IACX,WAAW;IACX,WAAW;IACX,GAAG;QACD,UAAU;QACV,OAAO;QACP,WAAW;QACX,SAAS;QACT,OAAO;;IAET,cAAc;IACd,wBAAwB;CACzB,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;QAErC,OAAO;QACP,eAAe;YAEb,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,+CAA+C;YAC/C,yBAAyB;;;;QAI3B,OAAO;QACP,iBAAiB;;;;oBAOL,MAAM;;;;;;CAYrB,CAAC"}
1
+ {"version":3,"file":"terminology-defaults.d.ts","sourceRoot":"","sources":["../../../src/validation/defaults/terminology-defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAuB9E,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,EA0I1D,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B,MAAM;QACJ,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,UAAU;QACd,EAAE,EAAE,UAAU;;IAEhB,WAAW;IACX,WAAW;IACX,WAAW;IACX,GAAG;QACD,UAAU;QACV,OAAO;QACP,WAAW;QACX,SAAS;QACT,OAAO;;IAET,cAAc;IACd,wBAAwB;CACzB,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;QAErC,OAAO;QACP,eAAe;YAEb,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,+CAA+C;YAC/C,yBAAyB;;;;QAI3B,OAAO;QACP,iBAAiB;;;;oBAOL,MAAM;;;;;;CAYrB,CAAC"}
@@ -7,6 +7,18 @@
7
7
  * 2. tx.fhir.org/r4 - Fallback for R4
8
8
  * 3. tx.fhir.org/r5 - Fallback for R5/R6
9
9
  */
10
+ // The editions tx.fhir.org advertises through /metadata?mode=terminology on
11
+ // both releases: International, Switzerland, Denmark, IPS, Netherlands, UK and
12
+ // US. A SNOMED CT request for an edition missing here is never routed to it.
13
+ const TX_FHIR_ORG_SNOMED_EDITIONS = [
14
+ '900000000000207008',
15
+ '2011000195101',
16
+ '554471000005108',
17
+ '827022005',
18
+ '11000146104',
19
+ '83821000000107',
20
+ '731000124108',
21
+ ];
10
22
  export const DEFAULT_TERMINOLOGY_SERVERS = [
11
23
  {
12
24
  id: 'csiro-ontoserver-r4',
@@ -55,8 +67,7 @@ export const DEFAULT_TERMINOLOGY_SERVERS = [
55
67
  circuitOpen: false,
56
68
  responseTimeAvg: 0,
57
69
  testScore: 98,
58
- // Advertised by /metadata?mode=terminology; required for edition-specific routing.
59
- snomedEditions: ['900000000000207008']
70
+ snomedEditions: [...TX_FHIR_ORG_SNOMED_EDITIONS]
60
71
  },
61
72
  {
62
73
  id: 'tx-fhir-org-r5',
@@ -69,7 +80,8 @@ export const DEFAULT_TERMINOLOGY_SERVERS = [
69
80
  lastFailureTime: null,
70
81
  circuitOpen: false,
71
82
  responseTimeAvg: 0,
72
- testScore: 98
83
+ testScore: 98,
84
+ snomedEditions: [...TX_FHIR_ORG_SNOMED_EDITIONS]
73
85
  },
74
86
  // Health Samurai Termbox — public demo endpoint for SNOMED CT, LOINC,
75
87
  // RxNorm, ICD-10, CPT, UCUM. Added as an additional fallback option
@@ -77,7 +89,7 @@ export const DEFAULT_TERMINOLOGY_SERVERS = [
77
89
  {
78
90
  id: 'termbox-healthsamurai',
79
91
  name: 'Health Samurai Termbox',
80
- url: 'https://tx.health-samurai.io/fhir',
92
+ url: 'https://tx.health-samurai.io/fhir/r4',
81
93
  enabled: false,
82
94
  fhirVersions: ['R4'],
83
95
  status: 'unknown',
@@ -1 +1 @@
1
- {"version":3,"file":"terminology-defaults.js","sourceRoot":"","sources":["../../../src/validation/defaults/terminology-defaults.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAIvF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAwB;IAC9D;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,qCAAqC;QAC1C,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,EAAE;QACb,4EAA4E;QAC5E,cAAc,EAAE,CAAC,oBAAoB,CAAC;KACvC;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,gCAAgC;QACtC,GAAG,EAAE,wCAAwC;QAC7C,oEAAoE;QACpE,oEAAoE;QACpE,sDAAsD;QACtD,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;QACZ,qEAAqE;QACrE,gBAAgB,EAAE,CAAC,wBAAwB,CAAC;QAC5C,qDAAqD;QACrD,cAAc,EAAE,CAAC,oBAAoB,CAAC;KACvC;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,wBAAwB;QAC7B,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,EAAE;QACb,mFAAmF;QACnF,cAAc,EAAE,CAAC,oBAAoB,CAAC;KACvC;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,wBAAwB;QAC7B,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QAC1B,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,EAAE;KACd;IACD,sEAAsE;IACtE,oEAAoE;IACpE,0DAA0D;IAC1D;QACE,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,wBAAwB;QAC9B,GAAG,EAAE,mCAAmC;QACxC,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;KACb;IACD,oEAAoE;IACpE,sEAAsE;IACtE,uCAAuC;IACvC;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,wBAAwB;QAC7B,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;QACZ,mEAAmE;QACnE,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;KACvC;IACD,kEAAkE;IAClE,iEAAiE;IACjE,4DAA4D;IAC5D;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,8BAA8B;QACnC,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;KACb;IACD,kEAAkE;IAClE,qEAAqE;IACrE,sEAAsE;IACtE,kEAAkE;IAClE,wBAAwB;IACxB;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,gCAAgC;QACtC,GAAG,EAAE,0CAA0C;QAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,yBAAyB,IAAI,OAAO,CAAC,GAAG,EAAE,6BAA6B,CAAC;QACxI,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,yBAAyB,CAAC,IAAI,EAAE;YAC1F,YAAY,EAAE,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,6BAA6B,CAAC,IAAI,EAAE;YAClG,QAAQ,EAAE,yGAAyG;SACpH;KACF;CACF,CAAC;AAEF,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAyB;IAClE,gBAAgB,EAAE,CAAC,EAAS,4CAA4C;IACxE,YAAY,EAAE,OAAO,EAAO,+BAA+B;IAC3D,eAAe,EAAE,MAAM,CAAK,sCAAsC;CACnE,CAAC;AAEF,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE;QACN,EAAE,EAAE,SAAkB;QACtB,EAAE,EAAE,UAAmB,EAAG,0CAA0C;QACpE,EAAE,EAAE,UAAmB,CAAG,4CAA4C;KACvE;IACD,WAAW,EAAE,GAAG,EAAG,6BAA6B;IAChD,WAAW,EAAE,CAAC,EAAK,0BAA0B;IAC7C,WAAW,EAAE,CAAC,EAAK,4BAA4B;IAC/C,GAAG,EAAE;QACH,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAO,YAAY;QAC5C,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAS,aAAa;QAC7C,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAK,SAAS;QACzC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;QAC3C,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAS,aAAa;KAC9C;IACD,cAAc,EAAE,EAAE,EAAI,wCAAwC;IAC9D,wBAAwB,EAAE,EAAE,CAAE,yCAAyC;CACxE,CAAC;AAEF,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,mBAAmB,EAAE;QACnB,OAAO,EAAE,KAAK;QACd,eAAe,EAAE;YACf,iEAAiE;YACjE,gBAAgB,EAAE,WAAW,EAAY,mBAAmB;YAC5D,gBAAgB,EAAE,UAAU,EAAa,YAAY;YACrD,kBAAkB,EAAE,WAAW,EAAU,oBAAoB;YAC7D,+CAA+C,EAAE,WAAW,EAAE,oCAAoC;YAClG,yBAAyB,EAAE,WAAW,EAAE,YAAY;SACrD;KACF;IACD,aAAa,EAAE;QACb,OAAO,EAAE,KAAK;QACd,iBAAiB,EAAE;QACjB,oDAAoD;QACpD,sEAAsE;SACvE;KACF;IACD,sBAAsB,EAAE;QACtB,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,MAAe;QAC3B,UAAU,EAAE;YACV;gBACE,YAAY,EAAE,gCAAgC;gBAC9C,YAAY,EAAE,wBAAwB;aACvC;YACD;gBACE,YAAY,EAAE,mCAAmC;gBACjD,YAAY,EAAE,wBAAwB;aACvC;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"terminology-defaults.js","sourceRoot":"","sources":["../../../src/validation/defaults/terminology-defaults.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,50 @@ export interface EffectiveQualityPolicyLayerReference {
20
20
  scopeId: string;
21
21
  revision: number;
22
22
  }
23
+ interface OriginalQualityProgramBasis {
24
+ packRef: string;
25
+ origin: 'original-cql' | 'original-r';
26
+ moduleId: string;
27
+ definitionFingerprint: `sha256:${string}`;
28
+ manifestFingerprint: `sha256:${string}`;
29
+ artifactBundleFingerprint: `sha256:${string}`;
30
+ dependenciesFingerprint: `sha256:${string}`;
31
+ runtimeTreeSha256: string;
32
+ executionCapsuleFingerprint?: `sha256:${string}`;
33
+ qualified: false;
34
+ execution: 'blocked';
35
+ }
36
+ interface OriginalQualityRunBasis {
37
+ schemaVersion: 'records-original-quality-run-basis/1';
38
+ jobId: string;
39
+ executionClock: string;
40
+ clockBasis: 'captured-policy-clock';
41
+ organizationId: number;
42
+ siteId: number;
43
+ serverId: number;
44
+ environment: string;
45
+ fhirVersion: string | null;
46
+ sourceConfigurationGeneration: {
47
+ state: 'known';
48
+ value: string;
49
+ } | {
50
+ state: 'unknown';
51
+ };
52
+ effectivePolicyFingerprint: `sha256:${string}`;
53
+ settingsHash: string;
54
+ programs: OriginalQualityProgramBasis[];
55
+ selection: {
56
+ resourceTypes: string[] | null;
57
+ requestedResourceLimit: number | null;
58
+ searchFiltersHash: string | null;
59
+ scopeRestoration: 'complete' | 'input-required' | 'legacy';
60
+ requestFingerprint: `sha256:${string}`;
61
+ membershipCaptured: false;
62
+ };
63
+ execution: 'blocked';
64
+ sourceSnapshotGuaranteed: false;
65
+ fingerprint: `sha256:${string}`;
66
+ }
23
67
  export interface EffectiveQualityPolicySnapshot {
24
68
  schemaVersion: 1;
25
69
  capturedAt: string;
@@ -29,6 +73,15 @@ export interface EffectiveQualityPolicySnapshot {
29
73
  environment: string;
30
74
  /** Defaults to true for snapshots captured before scoped DQA enablement existed. */
31
75
  qualityAssessmentEnabled?: boolean;
76
+ runConstraints?: {
77
+ qualityAssessmentRequired: boolean;
78
+ requiredPacks: string[];
79
+ };
80
+ runContext?: {
81
+ basePolicyFingerprint: `sha256:${string}`;
82
+ mode: 'inherit' | 'on' | 'off';
83
+ packRefs?: string[];
84
+ };
32
85
  commonBaselineFingerprint: `sha256:${string}`;
33
86
  localExtensionsFingerprint: `sha256:${string}`;
34
87
  effectivePolicyFingerprint: `sha256:${string}`;
@@ -40,6 +93,10 @@ export interface EffectiveQualityPolicySnapshot {
40
93
  }>;
41
94
  rules: EffectiveQualityRule[];
42
95
  advisories: EffectiveQualityAdvisoryRule[];
96
+ /** Exact installed Original metadata, not native rules or execution permission. */
97
+ originalPrograms?: OriginalQualityProgramBasis[];
98
+ /** Absent on historical/preflight snapshots; never reconstructed from current configuration. */
99
+ originalRunBasis?: OriginalQualityRunBasis;
43
100
  appliedLayers: EffectiveQualityPolicyLayerReference[];
44
101
  applicabilityDecisions: Array<{
45
102
  packRef: string;
@@ -49,4 +106,5 @@ export interface EffectiveQualityPolicySnapshot {
49
106
  assignedBy?: EffectiveQualityPolicyLayerReference;
50
107
  }>;
51
108
  }
109
+ export {};
52
110
  //# sourceMappingURL=effective-quality-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"effective-quality-policy.d.ts","sourceRoot":"","sources":["../../src/validation/effective-quality-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,sBAAsB,CAAC;IACxC,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,EAAE,UAAU,MAAM,EAAE,CAAC;IAC9C,0BAA0B,EAAE,UAAU,MAAM,EAAE,CAAC;IAC/C,0BAA0B,EAAE,UAAU,MAAM,EAAE,CAAC;IAC/C,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;QACjC,eAAe,EAAE,sBAAsB,CAAC;KACzC,CAAC,CAAC;IACH,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,aAAa,EAAE,oCAAoC,EAAE,CAAC;IACtD,sBAAsB,EAAE,KAAK,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,gFAAgF;QAChF,UAAU,CAAC,EAAE,oCAAoC,CAAC;KACnD,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"effective-quality-policy.d.ts","sourceRoot":"","sources":["../../src/validation/effective-quality-policy.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,10 @@ export interface EvaluationPlanSnapshot {
40
40
  }>;
41
41
  enabledRuleCount: number;
42
42
  scopes: QualityRuleScope[];
43
+ observationMode?: 'outer-resources' | 'validation-units';
44
+ /** Missing or v1 values retain the legacy namespace-blind observation contract. */
45
+ deduplication?: 'resource-identity-and-content-hash' | 'confirmed-namespace-and-content-hash-v2';
46
+ referenceResolution?: 'selected-scope-only';
43
47
  };
44
48
  governance: {
45
49
  enabledAdvisoryCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"evaluation-plan.d.ts","sourceRoot":"","sources":["../../src/validation/evaluation-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG,yBAAyB,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC;IACpC,kBAAkB,EAAE,UAAU,MAAM,EAAE,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,0BAA0B,CAAC;KACzC,CAAC;IACF,WAAW,EAAE;QACX,cAAc,EAAE,gBAAgB,EAAE,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;QACxD,YAAY,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;KACtD,CAAC;IACF,OAAO,EAAE;QACP,iBAAiB,EAAE,UAAU,MAAM,EAAE,CAAC;QACtC,yBAAyB,EAAE,UAAU,MAAM,EAAE,CAAC;QAC9C,0BAA0B,EAAE,UAAU,MAAM,EAAE,CAAC;QAC/C,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;YACjC,eAAe,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;SACxD,CAAC,CAAC;QACH,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC;KAC5B,CAAC;IACF,UAAU,EAAE;QACV,oBAAoB,EAAE,MAAM,CAAC;QAC7B,4BAA4B,EAAE,MAAM,CAAC;QACrC,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;CACH"}
1
+ {"version":3,"file":"evaluation-plan.d.ts","sourceRoot":"","sources":["../../src/validation/evaluation-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG,yBAAyB,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC;IACpC,kBAAkB,EAAE,UAAU,MAAM,EAAE,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,0BAA0B,CAAC;KACzC,CAAC;IACF,WAAW,EAAE;QACX,cAAc,EAAE,gBAAgB,EAAE,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;QACxD,YAAY,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;KACtD,CAAC;IACF,OAAO,EAAE;QACP,iBAAiB,EAAE,UAAU,MAAM,EAAE,CAAC;QACtC,yBAAyB,EAAE,UAAU,MAAM,EAAE,CAAC;QAC9C,0BAA0B,EAAE,UAAU,MAAM,EAAE,CAAC;QAC/C,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;YACjC,eAAe,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;SACxD,CAAC,CAAC;QACH,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC3B,eAAe,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;QACzD,mFAAmF;QACnF,aAAa,CAAC,EAAE,oCAAoC,GAAG,yCAAyC,CAAC;QACjG,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;KAC7C,CAAC;IACF,UAAU,EAAE;QACV,oBAAoB,EAAE,MAAM,CAAC;QAC7B,4BAA4B,EAAE,MAAM,CAAC;QACrC,2BAA2B,EAAE,MAAM,CAAC;KACrC,CAAC;CACH"}
@@ -0,0 +1,137 @@
1
+ import { z } from 'zod';
2
+ export declare const EXTERNAL_QUALITY_SOURCE_STATES: readonly ['ready', 'checking', 'update-available', 'up-to-date', 'blocked-license', 'blocked-parse', 'unreachable'];
3
+ export declare const EXTERNAL_QUALITY_LICENSE_STATUSES: readonly ['verified', 'permission-recorded', 'missing', 'incompatible'];
4
+ export declare const externalQualitySourceSchema: z.ZodObject<{
5
+ schemaVersion: z.ZodLiteral<1>;
6
+ id: z.ZodString;
7
+ providerType: z.ZodEnum<["git"]>;
8
+ providerName: z.ZodString;
9
+ repositoryUrl: z.ZodEffects<z.ZodString, string, string>;
10
+ sourceSubpath: z.ZodString;
11
+ trackingRef: z.ZodString;
12
+ state: z.ZodEnum<["ready", "checking", "update-available", "up-to-date", "blocked-license", "blocked-parse", "unreachable"]>;
13
+ statusDetail: z.ZodString;
14
+ resolvedCommitSha: z.ZodString;
15
+ sourceContentHash: z.ZodString;
16
+ adapter: z.ZodObject<{
17
+ id: z.ZodString;
18
+ version: z.ZodString;
19
+ }, "strict", z.ZodTypeAny, {
20
+ id: string;
21
+ version: string;
22
+ }, {
23
+ id: string;
24
+ version: string;
25
+ }>;
26
+ license: z.ZodObject<{
27
+ status: z.ZodEnum<["verified", "permission-recorded", "missing", "incompatible"]>;
28
+ reference: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
29
+ detail: z.ZodOptional<z.ZodString>;
30
+ }, "strict", z.ZodTypeAny, {
31
+ status: "incompatible" | "missing" | "permission-recorded" | "verified";
32
+ reference?: string | undefined;
33
+ detail?: string | undefined;
34
+ }, {
35
+ status: "incompatible" | "missing" | "permission-recorded" | "verified";
36
+ reference?: string | undefined;
37
+ detail?: string | undefined;
38
+ }>;
39
+ inventory: z.ZodEffects<z.ZodObject<{
40
+ activeChecks: z.ZodNumber;
41
+ modules: z.ZodNumber;
42
+ native: z.ZodNumber;
43
+ external: z.ZodNumber;
44
+ catalogOnly: z.ZodNumber;
45
+ }, "strict", z.ZodTypeAny, {
46
+ activeChecks: number;
47
+ modules: number;
48
+ native: number;
49
+ external: number;
50
+ catalogOnly: number;
51
+ }, {
52
+ activeChecks: number;
53
+ modules: number;
54
+ native: number;
55
+ external: number;
56
+ catalogOnly: number;
57
+ }>, {
58
+ activeChecks: number;
59
+ modules: number;
60
+ native: number;
61
+ external: number;
62
+ catalogOnly: number;
63
+ }, {
64
+ activeChecks: number;
65
+ modules: number;
66
+ native: number;
67
+ external: number;
68
+ catalogOnly: number;
69
+ }>;
70
+ lastCheckedAt: z.ZodString;
71
+ lastSuccessfulImportAt: z.ZodNullable<z.ZodString>;
72
+ }, "strict", z.ZodTypeAny, {
73
+ schemaVersion: 1;
74
+ id: string;
75
+ providerType: "git";
76
+ providerName: string;
77
+ repositoryUrl: string;
78
+ sourceSubpath: string;
79
+ trackingRef: string;
80
+ state: "blocked-license" | "blocked-parse" | "checking" | "ready" | "unreachable" | "up-to-date" | "update-available";
81
+ statusDetail: string;
82
+ resolvedCommitSha: string;
83
+ sourceContentHash: string;
84
+ adapter: {
85
+ id: string;
86
+ version: string;
87
+ };
88
+ license: {
89
+ status: "incompatible" | "missing" | "permission-recorded" | "verified";
90
+ reference?: string | undefined;
91
+ detail?: string | undefined;
92
+ };
93
+ inventory: {
94
+ activeChecks: number;
95
+ modules: number;
96
+ native: number;
97
+ external: number;
98
+ catalogOnly: number;
99
+ };
100
+ lastCheckedAt: string;
101
+ lastSuccessfulImportAt: string | null;
102
+ }, {
103
+ schemaVersion: 1;
104
+ id: string;
105
+ providerType: "git";
106
+ providerName: string;
107
+ repositoryUrl: string;
108
+ sourceSubpath: string;
109
+ trackingRef: string;
110
+ state: "blocked-license" | "blocked-parse" | "checking" | "ready" | "unreachable" | "up-to-date" | "update-available";
111
+ statusDetail: string;
112
+ resolvedCommitSha: string;
113
+ sourceContentHash: string;
114
+ adapter: {
115
+ id: string;
116
+ version: string;
117
+ };
118
+ license: {
119
+ status: "incompatible" | "missing" | "permission-recorded" | "verified";
120
+ reference?: string | undefined;
121
+ detail?: string | undefined;
122
+ };
123
+ inventory: {
124
+ activeChecks: number;
125
+ modules: number;
126
+ native: number;
127
+ external: number;
128
+ catalogOnly: number;
129
+ };
130
+ lastCheckedAt: string;
131
+ lastSuccessfulImportAt: string | null;
132
+ }>;
133
+ export type ExternalQualitySource = z.infer<typeof externalQualitySourceSchema>;
134
+ export type ExternalQualitySourceState = typeof EXTERNAL_QUALITY_SOURCE_STATES[number];
135
+ export type ExternalQualityLicenseStatus = typeof EXTERNAL_QUALITY_LICENSE_STATUSES[number];
136
+ export declare function parseExternalQualitySource(input: unknown): ExternalQualitySource;
137
+ //# sourceMappingURL=external-quality-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-quality-source.d.ts","sourceRoot":"","sources":["../../src/validation/external-quality-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,8BAA8B,YACzC,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,CACL,CAAC;AAEX,eAAO,MAAM,iCAAiC,YAC5C,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,cAAc,CACN,CAAC;AAcX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC7B,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,0BAA0B,GAAG,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAC;AACvF,MAAM,MAAM,4BAA4B,GAAG,OAAO,iCAAiC,CAAC,MAAM,CAAC,CAAC;AAE5F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAEhF"}
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import { boundedQualityRuleId } from './quality-rule-schema-foundations.js';
3
+ export const EXTERNAL_QUALITY_SOURCE_STATES = [
4
+ 'ready',
5
+ 'checking',
6
+ 'update-available',
7
+ 'up-to-date',
8
+ 'blocked-license',
9
+ 'blocked-parse',
10
+ 'unreachable',
11
+ ];
12
+ export const EXTERNAL_QUALITY_LICENSE_STATUSES = [
13
+ 'verified',
14
+ 'permission-recorded',
15
+ 'missing',
16
+ 'incompatible',
17
+ ];
18
+ const httpsUrl = z.string().url().max(2048).refine((value) => {
19
+ try {
20
+ return new URL(value).protocol === 'https:';
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }, 'External quality sources require HTTPS');
26
+ const sha256 = z.string().regex(/^sha256:[0-9a-f]{64}$/);
27
+ export const externalQualitySourceSchema = z.object({
28
+ schemaVersion: z.literal(1),
29
+ id: boundedQualityRuleId,
30
+ providerType: z.enum(['git']),
31
+ providerName: z.string().min(1).max(256),
32
+ repositoryUrl: httpsUrl,
33
+ sourceSubpath: z.string().min(1).max(512),
34
+ trackingRef: z.string().min(1).max(256),
35
+ state: z.enum(EXTERNAL_QUALITY_SOURCE_STATES),
36
+ statusDetail: z.string().min(1).max(1024),
37
+ resolvedCommitSha: z.string().regex(/^[0-9a-f]{40}$/),
38
+ sourceContentHash: sha256,
39
+ adapter: z.object({
40
+ id: boundedQualityRuleId,
41
+ version: z.string().min(1).max(64),
42
+ }).strict(),
43
+ license: z.object({
44
+ status: z.enum(EXTERNAL_QUALITY_LICENSE_STATUSES),
45
+ reference: httpsUrl.optional(),
46
+ detail: z.string().min(1).max(1024).optional(),
47
+ }).strict(),
48
+ inventory: z.object({
49
+ activeChecks: z.number().int().nonnegative(),
50
+ modules: z.number().int().nonnegative(),
51
+ native: z.number().int().nonnegative(),
52
+ external: z.number().int().nonnegative(),
53
+ catalogOnly: z.number().int().nonnegative(),
54
+ }).strict().superRefine((inventory, context) => {
55
+ const classified = inventory.native + inventory.external + inventory.catalogOnly;
56
+ if (classified !== inventory.activeChecks) {
57
+ context.addIssue({
58
+ code: z.ZodIssueCode.custom,
59
+ path: ['activeChecks'],
60
+ message: 'Execution coverage must classify every active upstream check',
61
+ });
62
+ }
63
+ }),
64
+ lastCheckedAt: z.string().datetime(),
65
+ lastSuccessfulImportAt: z.string().datetime().nullable(),
66
+ }).strict();
67
+ export function parseExternalQualitySource(input) {
68
+ return externalQualitySourceSchema.parse(input);
69
+ }
70
+ //# sourceMappingURL=external-quality-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-quality-source.js","sourceRoot":"","sources":["../../src/validation/external-quality-source.ts"],"names":[],"mappings":"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"}