@euconform/core 1.0.1 → 1.3.0
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/evidence/bundle.d.ts +23 -0
- package/dist/evidence/bundle.d.ts.map +1 -0
- package/dist/evidence/bundle.js +44 -0
- package/dist/evidence/compliance-evaluation.d.ts +12 -0
- package/dist/evidence/compliance-evaluation.d.ts.map +1 -0
- package/dist/evidence/compliance-evaluation.js +78 -0
- package/dist/evidence/hash.d.ts +2 -0
- package/dist/evidence/hash.d.ts.map +1 -0
- package/dist/evidence/hash.js +4 -0
- package/dist/evidence/index.d.ts +13 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +11 -0
- package/dist/evidence/markdown.d.ts +9 -0
- package/dist/evidence/markdown.d.ts.map +1 -0
- package/dist/evidence/markdown.js +169 -0
- package/dist/evidence/output.d.ts +13 -0
- package/dist/evidence/output.d.ts.map +1 -0
- package/dist/evidence/output.js +547 -0
- package/dist/evidence/types.d.ts +230 -0
- package/dist/evidence/types.d.ts.map +1 -0
- package/dist/evidence/types.js +7 -0
- package/dist/evidence/validate.d.ts +8 -0
- package/dist/evidence/validate.d.ts.map +1 -0
- package/dist/evidence/validate.js +175 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/inference/ollama-client.d.ts +3 -0
- package/dist/inference/ollama-client.d.ts.map +1 -1
- package/dist/inference/ollama-client.js +69 -71
- package/dist/legal-checks/annex-iv-report.d.ts +3 -0
- package/dist/legal-checks/annex-iv-report.d.ts.map +1 -1
- package/dist/legal-checks/annex-iv-report.js +1 -0
- package/dist/legal-checks/deadline-timeline.d.ts +57 -0
- package/dist/legal-checks/deadline-timeline.d.ts.map +1 -0
- package/dist/legal-checks/deadline-timeline.js +265 -0
- package/dist/legal-checks/gap-analysis.d.ts +48 -0
- package/dist/legal-checks/gap-analysis.d.ts.map +1 -0
- package/dist/legal-checks/gap-analysis.js +397 -0
- package/dist/legal-checks/gpai-classifier.d.ts +49 -0
- package/dist/legal-checks/gpai-classifier.d.ts.map +1 -0
- package/dist/legal-checks/gpai-classifier.js +197 -0
- package/dist/legal-checks/index.d.ts +6 -0
- package/dist/legal-checks/index.d.ts.map +1 -1
- package/dist/legal-checks/index.js +3 -0
- package/dist/scanner/aggregator.d.ts +7 -0
- package/dist/scanner/aggregator.d.ts.map +1 -0
- package/dist/scanner/aggregator.js +200 -0
- package/dist/scanner/detectors/ai-framework-detector.d.ts +3 -0
- package/dist/scanner/detectors/ai-framework-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/ai-framework-detector.js +74 -0
- package/dist/scanner/detectors/ai-provider-detector.d.ts +3 -0
- package/dist/scanner/detectors/ai-provider-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/ai-provider-detector.js +100 -0
- package/dist/scanner/detectors/compliance-detector.d.ts +3 -0
- package/dist/scanner/detectors/compliance-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/compliance-detector.js +201 -0
- package/dist/scanner/detectors/config-detector.d.ts +3 -0
- package/dist/scanner/detectors/config-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/config-detector.js +248 -0
- package/dist/scanner/detectors/framework-detector.d.ts +3 -0
- package/dist/scanner/detectors/framework-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/framework-detector.js +141 -0
- package/dist/scanner/detectors/index.d.ts +8 -0
- package/dist/scanner/detectors/index.d.ts.map +1 -0
- package/dist/scanner/detectors/index.js +37 -0
- package/dist/scanner/detectors/local-inference-detector.d.ts +3 -0
- package/dist/scanner/detectors/local-inference-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/local-inference-detector.js +93 -0
- package/dist/scanner/detectors/markdown-detector.d.ts +3 -0
- package/dist/scanner/detectors/markdown-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/markdown-detector.js +139 -0
- package/dist/scanner/detectors/package-json-detector.d.ts +3 -0
- package/dist/scanner/detectors/package-json-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/package-json-detector.js +166 -0
- package/dist/scanner/detectors/rag-detector.d.ts +3 -0
- package/dist/scanner/detectors/rag-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/rag-detector.js +132 -0
- package/dist/scanner/detectors/shared.d.ts +18 -0
- package/dist/scanner/detectors/shared.d.ts.map +1 -0
- package/dist/scanner/detectors/shared.js +36 -0
- package/dist/scanner/discovery.d.ts +14 -0
- package/dist/scanner/discovery.d.ts.map +1 -0
- package/dist/scanner/discovery.js +235 -0
- package/dist/scanner/index.d.ts +9 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +8 -0
- package/package.json +6 -3
- package/src/evidence/bundle.ts +65 -0
- package/src/evidence/compliance-evaluation.ts +114 -0
- package/src/evidence/hash.ts +5 -0
- package/src/evidence/index.ts +51 -0
- package/src/evidence/markdown.ts +226 -0
- package/src/evidence/output.ts +717 -0
- package/src/evidence/types.ts +329 -0
- package/src/evidence/validate.ts +270 -0
- package/src/index.ts +25 -0
- package/src/inference/ollama-client.ts +93 -86
- package/src/legal-checks/annex-iv-report.ts +4 -0
- package/src/legal-checks/deadline-timeline.ts +313 -0
- package/src/legal-checks/gap-analysis.ts +454 -0
- package/src/legal-checks/gpai-classifier.ts +281 -0
- package/src/legal-checks/index.ts +33 -0
- package/src/scanner/aggregator.ts +258 -0
- package/src/scanner/detectors/ai-framework-detector.ts +94 -0
- package/src/scanner/detectors/ai-provider-detector.ts +135 -0
- package/src/scanner/detectors/compliance-detector.ts +232 -0
- package/src/scanner/detectors/config-detector.ts +316 -0
- package/src/scanner/detectors/framework-detector.ts +163 -0
- package/src/scanner/detectors/index.ts +40 -0
- package/src/scanner/detectors/local-inference-detector.ts +124 -0
- package/src/scanner/detectors/markdown-detector.ts +176 -0
- package/src/scanner/detectors/package-json-detector.ts +202 -0
- package/src/scanner/detectors/rag-detector.ts +162 -0
- package/src/scanner/detectors/shared.ts +45 -0
- package/src/scanner/discovery.ts +290 -0
- package/src/scanner/index.ts +9 -0
- package/tests/evidence/bundle.test.ts +128 -0
- package/tests/evidence/ecef-schemas.test.ts +316 -0
- package/tests/evidence/hash.test.ts +25 -0
- package/tests/evidence/markdown.test.ts +92 -0
- package/tests/evidence/output.test.ts +203 -0
- package/tests/fixtures/compliance-good/README.md +14 -0
- package/tests/fixtures/compliance-good/lib/ai-service.ts +17 -0
- package/tests/fixtures/compliance-good/lib/review-flow.ts +11 -0
- package/tests/fixtures/compliance-good/package.json +10 -0
- package/tests/fixtures/compliance-good/tests/bias-check.test.ts +13 -0
- package/tests/fixtures/nextjs-openai/README.md +5 -0
- package/tests/fixtures/nextjs-openai/app/page.tsx +11 -0
- package/tests/fixtures/nextjs-openai/package.json +9 -0
- package/tests/fixtures/ollama-rag/.env.example +2 -0
- package/tests/fixtures/ollama-rag/docker-compose.yml +9 -0
- package/tests/fixtures/ollama-rag/package.json +9 -0
- package/tests/fixtures/ollama-rag/server.ts +21 -0
- package/tests/fixtures/plain-webapp/README.md +3 -0
- package/tests/fixtures/plain-webapp/index.js +5 -0
- package/tests/fixtures/plain-webapp/package.json +8 -0
- package/tests/gpai-classifier.test.ts +125 -0
- package/tests/gpai-timeline.test.ts +55 -0
- package/tests/scanner/aggregator.test.ts +122 -0
- package/tests/scanner/detectors.test.ts +274 -0
- package/tests/scanner/discovery.test.ts +87 -0
- package/vitest.config.ts +1 -0
- package/.turbo/turbo-check-types.log +0 -4
- package/.turbo/turbo-test.log +0 -364
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -3282
- package/coverage/coverage-final.json +0 -20
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -161
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/fairness-metrics.ts.html +0 -1579
- package/coverage/src/index.html +0 -161
- package/coverage/src/index.ts.html +0 -535
- package/coverage/src/inference/browser-inference.ts.html +0 -859
- package/coverage/src/inference/capability-detection.ts.html +0 -2227
- package/coverage/src/inference/index.html +0 -176
- package/coverage/src/inference/index.ts.html +0 -553
- package/coverage/src/inference/inference-factory.ts.html +0 -751
- package/coverage/src/inference/ollama-client.ts.html +0 -1627
- package/coverage/src/legal-checks/annex-iv-report.ts.html +0 -556
- package/coverage/src/legal-checks/bias-metrics.ts.html +0 -1855
- package/coverage/src/legal-checks/data-governance.ts.html +0 -529
- package/coverage/src/legal-checks/human-oversight-logging.ts.html +0 -490
- package/coverage/src/legal-checks/index.html +0 -206
- package/coverage/src/legal-checks/index.ts.html +0 -250
- package/coverage/src/legal-checks/risk-classifier.ts.html +0 -940
- package/coverage/src/legal-checks/robustness-transparency.ts.html +0 -571
- package/coverage/src/metrics/crows-pairs-bias.ts.html +0 -820
- package/coverage/src/metrics/index.html +0 -146
- package/coverage/src/metrics/index.ts.html +0 -151
- package/coverage/src/metrics/stereotype-bias.ts.html +0 -886
- package/coverage/src/risk-engine.ts.html +0 -1660
- package/coverage/src/types.ts.html +0 -547
- package/dist/legal-checks/disclaimer.d.ts +0 -2
- package/dist/legal-checks/disclaimer.d.ts.map +0 -1
- package/dist/legal-checks/disclaimer.js +0 -1
|
@@ -1,529 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/legal-checks/data-governance.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/legal-checks</a> data-governance.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">0% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/112</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>1/1</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/1</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">0% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/112</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-neutral"> </span>
|
|
231
|
-
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-no"> </span>
|
|
245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-no"> </span>
|
|
248
|
-
<span class="cline-any cline-no"> </span>
|
|
249
|
-
<span class="cline-any cline-no"> </span>
|
|
250
|
-
<span class="cline-any cline-no"> </span>
|
|
251
|
-
<span class="cline-any cline-no"> </span>
|
|
252
|
-
<span class="cline-any cline-no"> </span>
|
|
253
|
-
<span class="cline-any cline-no"> </span>
|
|
254
|
-
<span class="cline-any cline-no"> </span>
|
|
255
|
-
<span class="cline-any cline-no"> </span>
|
|
256
|
-
<span class="cline-any cline-no"> </span>
|
|
257
|
-
<span class="cline-any cline-no"> </span>
|
|
258
|
-
<span class="cline-any cline-no"> </span>
|
|
259
|
-
<span class="cline-any cline-no"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-no"> </span>
|
|
262
|
-
<span class="cline-any cline-no"> </span>
|
|
263
|
-
<span class="cline-any cline-no"> </span>
|
|
264
|
-
<span class="cline-any cline-no"> </span>
|
|
265
|
-
<span class="cline-any cline-no"> </span>
|
|
266
|
-
<span class="cline-any cline-no"> </span>
|
|
267
|
-
<span class="cline-any cline-no"> </span>
|
|
268
|
-
<span class="cline-any cline-no"> </span>
|
|
269
|
-
<span class="cline-any cline-no"> </span>
|
|
270
|
-
<span class="cline-any cline-no"> </span>
|
|
271
|
-
<span class="cline-any cline-no"> </span>
|
|
272
|
-
<span class="cline-any cline-no"> </span>
|
|
273
|
-
<span class="cline-any cline-no"> </span>
|
|
274
|
-
<span class="cline-any cline-no"> </span>
|
|
275
|
-
<span class="cline-any cline-no"> </span>
|
|
276
|
-
<span class="cline-any cline-no"> </span>
|
|
277
|
-
<span class="cline-any cline-no"> </span>
|
|
278
|
-
<span class="cline-any cline-no"> </span>
|
|
279
|
-
<span class="cline-any cline-no"> </span>
|
|
280
|
-
<span class="cline-any cline-no"> </span>
|
|
281
|
-
<span class="cline-any cline-no"> </span>
|
|
282
|
-
<span class="cline-any cline-no"> </span>
|
|
283
|
-
<span class="cline-any cline-no"> </span>
|
|
284
|
-
<span class="cline-any cline-no"> </span>
|
|
285
|
-
<span class="cline-any cline-no"> </span>
|
|
286
|
-
<span class="cline-any cline-no"> </span>
|
|
287
|
-
<span class="cline-any cline-no"> </span>
|
|
288
|
-
<span class="cline-any cline-no"> </span>
|
|
289
|
-
<span class="cline-any cline-no"> </span>
|
|
290
|
-
<span class="cline-any cline-no"> </span>
|
|
291
|
-
<span class="cline-any cline-no"> </span>
|
|
292
|
-
<span class="cline-any cline-no"> </span>
|
|
293
|
-
<span class="cline-any cline-no"> </span>
|
|
294
|
-
<span class="cline-any cline-no"> </span>
|
|
295
|
-
<span class="cline-any cline-no"> </span>
|
|
296
|
-
<span class="cline-any cline-no"> </span>
|
|
297
|
-
<span class="cline-any cline-no"> </span>
|
|
298
|
-
<span class="cline-any cline-no"> </span>
|
|
299
|
-
<span class="cline-any cline-no"> </span>
|
|
300
|
-
<span class="cline-any cline-no"> </span>
|
|
301
|
-
<span class="cline-any cline-no"> </span>
|
|
302
|
-
<span class="cline-any cline-no"> </span>
|
|
303
|
-
<span class="cline-any cline-no"> </span>
|
|
304
|
-
<span class="cline-any cline-no"> </span>
|
|
305
|
-
<span class="cline-any cline-no"> </span>
|
|
306
|
-
<span class="cline-any cline-no"> </span>
|
|
307
|
-
<span class="cline-any cline-no"> </span>
|
|
308
|
-
<span class="cline-any cline-no"> </span>
|
|
309
|
-
<span class="cline-any cline-no"> </span>
|
|
310
|
-
<span class="cline-any cline-no"> </span>
|
|
311
|
-
<span class="cline-any cline-no"> </span>
|
|
312
|
-
<span class="cline-any cline-no"> </span>
|
|
313
|
-
<span class="cline-any cline-no"> </span>
|
|
314
|
-
<span class="cline-any cline-no"> </span>
|
|
315
|
-
<span class="cline-any cline-no"> </span>
|
|
316
|
-
<span class="cline-any cline-no"> </span>
|
|
317
|
-
<span class="cline-any cline-no"> </span>
|
|
318
|
-
<span class="cline-any cline-no"> </span>
|
|
319
|
-
<span class="cline-any cline-no"> </span>
|
|
320
|
-
<span class="cline-any cline-no"> </span>
|
|
321
|
-
<span class="cline-any cline-no"> </span>
|
|
322
|
-
<span class="cline-any cline-no"> </span>
|
|
323
|
-
<span class="cline-any cline-no"> </span>
|
|
324
|
-
<span class="cline-any cline-no"> </span>
|
|
325
|
-
<span class="cline-any cline-no"> </span>
|
|
326
|
-
<span class="cline-any cline-no"> </span>
|
|
327
|
-
<span class="cline-any cline-no"> </span>
|
|
328
|
-
<span class="cline-any cline-no"> </span>
|
|
329
|
-
<span class="cline-any cline-no"> </span>
|
|
330
|
-
<span class="cline-any cline-no"> </span>
|
|
331
|
-
<span class="cline-any cline-no"> </span>
|
|
332
|
-
<span class="cline-any cline-no"> </span>
|
|
333
|
-
<span class="cline-any cline-no"> </span>
|
|
334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-no"> </span>
|
|
336
|
-
<span class="cline-any cline-no"> </span>
|
|
337
|
-
<span class="cline-any cline-no"> </span>
|
|
338
|
-
<span class="cline-any cline-no"> </span>
|
|
339
|
-
<span class="cline-any cline-no"> </span>
|
|
340
|
-
<span class="cline-any cline-no"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-no"> </span>
|
|
343
|
-
<span class="cline-any cline-no"> </span>
|
|
344
|
-
<span class="cline-any cline-no"> </span>
|
|
345
|
-
<span class="cline-any cline-no"> </span>
|
|
346
|
-
<span class="cline-any cline-no"> </span>
|
|
347
|
-
<span class="cline-any cline-no"> </span>
|
|
348
|
-
<span class="cline-any cline-no"> </span>
|
|
349
|
-
<span class="cline-any cline-no"> </span>
|
|
350
|
-
<span class="cline-any cline-no"> </span>
|
|
351
|
-
<span class="cline-any cline-no"> </span>
|
|
352
|
-
<span class="cline-any cline-no"> </span>
|
|
353
|
-
<span class="cline-any cline-no"> </span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-no"> </span>
|
|
356
|
-
<span class="cline-any cline-no"> </span>
|
|
357
|
-
<span class="cline-any cline-no"> </span>
|
|
358
|
-
<span class="cline-any cline-no"> </span>
|
|
359
|
-
<span class="cline-any cline-no"> </span>
|
|
360
|
-
<span class="cline-any cline-no"> </span>
|
|
361
|
-
<span class="cline-any cline-no"> </span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
363
|
-
* Article 10(3–4) – Data Governance & Data Quality Checklist (evidence-oriented)
|
|
364
|
-
*
|
|
365
|
-
* This produces a structured checklist that can be included in Annex IV documentation.
|
|
366
|
-
* It is not a legal determination.
|
|
367
|
-
*/
|
|
368
|
-
|
|
369
|
-
import type { Citation } from "./bias-metrics";
|
|
370
|
-
|
|
371
|
-
export type ChecklistStatus = "yes" | "no" | "partial" | "unknown";
|
|
372
|
-
|
|
373
|
-
export interface DataGovernanceChecklistItem {
|
|
374
|
-
id: string;
|
|
375
|
-
question: string;
|
|
376
|
-
rationale: string;
|
|
377
|
-
status: ChecklistStatus;
|
|
378
|
-
evidence?: string;
|
|
379
|
-
risksIfNo: string[];
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
export interface DataGovernanceChecklistResult {
|
|
383
|
-
timestamp: string;
|
|
384
|
-
items: DataGovernanceChecklistItem[];
|
|
385
|
-
overall: {
|
|
386
|
-
missingCriticalCount: number;
|
|
387
|
-
notes: string[];
|
|
388
|
-
};
|
|
389
|
-
sources: Citation[];
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
<span class="cstat-no" title="statement not covered" >export function runDataGovernanceChecklist(input: {</span>
|
|
393
|
-
statuses: Record<string, ChecklistStatus>;
|
|
394
|
-
evidence?: Record<string, string>;
|
|
395
|
-
<span class="cstat-no" title="statement not covered" >}): DataGovernanceChecklistResult {</span>
|
|
396
|
-
<span class="cstat-no" title="statement not covered" > const sources: Citation[] = [</span>
|
|
397
|
-
<span class="cstat-no" title="statement not covered" > { label: "EU AI Act", reference: "Verordnung (EU) 2024/1689" },</span>
|
|
398
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
399
|
-
<span class="cstat-no" title="statement not covered" > label: "Art. 10(3–4)",</span>
|
|
400
|
-
<span class="cstat-no" title="statement not covered" > reference:</span>
|
|
401
|
-
<span class="cstat-no" title="statement not covered" > "Data governance / data quality expectations (repräsentativ, fehlerarm, dokumentiert)",</span>
|
|
402
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
403
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
404
|
-
<span class="cstat-no" title="statement not covered" > label: "Recital 54",</span>
|
|
405
|
-
<span class="cstat-no" title="statement not covered" > reference: "Schutz vor Diskriminierung & historische Bias/Feedback-Loops",</span>
|
|
406
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
407
|
-
<span class="cstat-no" title="statement not covered" > ];</span>
|
|
408
|
-
|
|
409
|
-
<span class="cstat-no" title="statement not covered" > const items: Omit<DataGovernanceChecklistItem, "status" | "evidence">[] = [</span>
|
|
410
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
411
|
-
<span class="cstat-no" title="statement not covered" > id: "representativeness",</span>
|
|
412
|
-
<span class="cstat-no" title="statement not covered" > question:</span>
|
|
413
|
-
<span class="cstat-no" title="statement not covered" > "Ist das Trainings-/Validierungsdataset für den vorgesehenen Einsatzkontext repräsentativ?",</span>
|
|
414
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
415
|
-
<span class="cstat-no" title="statement not covered" > "Nicht-repräsentative Daten erhöhen Fehlerraten und können Diskriminierung verstärken (insb. unterrepräsentierte Gruppen).",</span>
|
|
416
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
417
|
-
<span class="cstat-no" title="statement not covered" > "Systematische Fehlklassifikation für Teilpopulationen",</span>
|
|
418
|
-
<span class="cstat-no" title="statement not covered" > "Disparate impact / unfaire Fehlerverteilung",</span>
|
|
419
|
-
<span class="cstat-no" title="statement not covered" > "Fehlende Generalisierung im Deployment-Kontext",</span>
|
|
420
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
421
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
422
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
423
|
-
<span class="cstat-no" title="statement not covered" > id: "data_quality_errors",</span>
|
|
424
|
-
<span class="cstat-no" title="statement not covered" > question:</span>
|
|
425
|
-
<span class="cstat-no" title="statement not covered" > "Sind Datenqualität (Fehler, Duplikate, Ausreißer, Missingness) gemessen und adressiert?",</span>
|
|
426
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
427
|
-
<span class="cstat-no" title="statement not covered" > "Mess-/Label-Fehler und fehlende Daten sind häufige Ursachen für Bias und Instabilität in Modellen.",</span>
|
|
428
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
429
|
-
<span class="cstat-no" title="statement not covered" > "Verzerrte Lernsignale und spurious correlations",</span>
|
|
430
|
-
<span class="cstat-no" title="statement not covered" > "Instabile Performance bei Drift",</span>
|
|
431
|
-
<span class="cstat-no" title="statement not covered" > "Unklare Fehlerursachen im Incident-Fall",</span>
|
|
432
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
433
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
434
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
435
|
-
<span class="cstat-no" title="statement not covered" > id: "labeling_process",</span>
|
|
436
|
-
<span class="cstat-no" title="statement not covered" > question:</span>
|
|
437
|
-
<span class="cstat-no" title="statement not covered" > "Ist der Labeling-/Annotation- und QA-Prozess dokumentiert (Guidelines, Inter-Annotator Agreement)?",</span>
|
|
438
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
439
|
-
<span class="cstat-no" title="statement not covered" > "Reproduzierbarkeit und Auditierbarkeit hängen von nachvollziehbarer Annotation ab.",</span>
|
|
440
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
441
|
-
<span class="cstat-no" title="statement not covered" > "Nicht-reproduzierbare Labels",</span>
|
|
442
|
-
<span class="cstat-no" title="statement not covered" > "Bias durch uneinheitliche Annotation",</span>
|
|
443
|
-
<span class="cstat-no" title="statement not covered" > "Schwierige Fehleranalyse im Betrieb",</span>
|
|
444
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
445
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
446
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
447
|
-
<span class="cstat-no" title="statement not covered" > id: "sensitive_attributes_handling",</span>
|
|
448
|
-
<span class="cstat-no" title="statement not covered" > question:</span>
|
|
449
|
-
<span class="cstat-no" title="statement not covered" > "Ist der Umgang mit sensiblen Attributen (z. B. Geschlecht, Ethnie, Alter, Behinderung, Religion, sexuelle Orientierung) definiert und begründet?",</span>
|
|
450
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
451
|
-
<span class="cstat-no" title="statement not covered" > "Für Bias-Analysen sind Gruppenproxies/Attribute oft nötig; zugleich müssen Verarbeitung und Minimierung begründet und dokumentiert werden.",</span>
|
|
452
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
453
|
-
<span class="cstat-no" title="statement not covered" > "Bias bleibt unmessbar / unsichtbar",</span>
|
|
454
|
-
<span class="cstat-no" title="statement not covered" > "Fehlende Nachvollziehbarkeit der Fairness-Tests",</span>
|
|
455
|
-
<span class="cstat-no" title="statement not covered" > "Unklare Proxy-Risiken und Messfehler",</span>
|
|
456
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
457
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
458
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
459
|
-
<span class="cstat-no" title="statement not covered" > id: "feedback_loops",</span>
|
|
460
|
-
<span class="cstat-no" title="statement not covered" > question: "Sind historische Bias und mögliche Feedback-Loops identifiziert und mitigiert?",</span>
|
|
461
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
462
|
-
<span class="cstat-no" title="statement not covered" > "Modelle können bestehende Ungleichheiten verstärken, wenn Outputs in die Datenerzeugung zurückfließen.",</span>
|
|
463
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
464
|
-
<span class="cstat-no" title="statement not covered" > "Self-fulfilling bias / reinforcement",</span>
|
|
465
|
-
<span class="cstat-no" title="statement not covered" > "Verschlechterung über Zeit trotz kurzfristiger Performance",</span>
|
|
466
|
-
<span class="cstat-no" title="statement not covered" > "Fehlender Nachweis wirksamer Mitigation",</span>
|
|
467
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
468
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
469
|
-
<span class="cstat-no" title="statement not covered" > {</span>
|
|
470
|
-
<span class="cstat-no" title="statement not covered" > id: "dataset_documentation",</span>
|
|
471
|
-
<span class="cstat-no" title="statement not covered" > question:</span>
|
|
472
|
-
<span class="cstat-no" title="statement not covered" > "Existiert eine Dataset-Dokumentation (Herkunft, Zeiträume, Lizenz, Sampling, Preprocessing, Versionierung, Known Limitations)?",</span>
|
|
473
|
-
<span class="cstat-no" title="statement not covered" > rationale:</span>
|
|
474
|
-
<span class="cstat-no" title="statement not covered" > "Annex-IV-fähige Dokumentation erfordert nachvollziehbare Datenherkunft und Versionsstände.",</span>
|
|
475
|
-
<span class="cstat-no" title="statement not covered" > risksIfNo: [</span>
|
|
476
|
-
<span class="cstat-no" title="statement not covered" > "Nicht-auditierbare Datenpipeline",</span>
|
|
477
|
-
<span class="cstat-no" title="statement not covered" > "Unklare Lizenz-/Nutzungsrisiken",</span>
|
|
478
|
-
<span class="cstat-no" title="statement not covered" > "Nicht reproduzierbare Trainingsläufe",</span>
|
|
479
|
-
<span class="cstat-no" title="statement not covered" > ],</span>
|
|
480
|
-
<span class="cstat-no" title="statement not covered" > },</span>
|
|
481
|
-
<span class="cstat-no" title="statement not covered" > ];</span>
|
|
482
|
-
|
|
483
|
-
<span class="cstat-no" title="statement not covered" > const evidence = input.evidence ?? {};</span>
|
|
484
|
-
<span class="cstat-no" title="statement not covered" > const built: DataGovernanceChecklistItem[] = items.map((it) => ({</span>
|
|
485
|
-
<span class="cstat-no" title="statement not covered" > ...it,</span>
|
|
486
|
-
<span class="cstat-no" title="statement not covered" > status: input.statuses[it.id] ?? "unknown",</span>
|
|
487
|
-
<span class="cstat-no" title="statement not covered" > evidence: evidence[it.id],</span>
|
|
488
|
-
<span class="cstat-no" title="statement not covered" > }));</span>
|
|
489
|
-
|
|
490
|
-
<span class="cstat-no" title="statement not covered" > const missingCriticalCount = built.filter(</span>
|
|
491
|
-
<span class="cstat-no" title="statement not covered" > (i) => i.status === "no" || i.status === "unknown"</span>
|
|
492
|
-
<span class="cstat-no" title="statement not covered" > ).length;</span>
|
|
493
|
-
<span class="cstat-no" title="statement not covered" > const notes: string[] = [];</span>
|
|
494
|
-
<span class="cstat-no" title="statement not covered" > if (missingCriticalCount > 0) {</span>
|
|
495
|
-
<span class="cstat-no" title="statement not covered" > notes.push(</span>
|
|
496
|
-
<span class="cstat-no" title="statement not covered" > "Mehrere Data-Governance-Punkte sind offen/negativ. Für Annex-IV-Dokumentation sollten Evidenzen, Messmethoden und Mitigationen ergänzt werden."</span>
|
|
497
|
-
<span class="cstat-no" title="statement not covered" > );</span>
|
|
498
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
499
|
-
<span class="cstat-no" title="statement not covered" > notes.push(</span>
|
|
500
|
-
<span class="cstat-no" title="statement not covered" > "Hinweis: Historische Bias und Feedback-Loops sollten explizit beschrieben und mit Monitoring adressiert werden."</span>
|
|
501
|
-
<span class="cstat-no" title="statement not covered" > );</span>
|
|
502
|
-
|
|
503
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
504
|
-
<span class="cstat-no" title="statement not covered" > timestamp: new Date().toISOString(),</span>
|
|
505
|
-
<span class="cstat-no" title="statement not covered" > items: built,</span>
|
|
506
|
-
<span class="cstat-no" title="statement not covered" > overall: { missingCriticalCount, notes },</span>
|
|
507
|
-
<span class="cstat-no" title="statement not covered" > sources,</span>
|
|
508
|
-
<span class="cstat-no" title="statement not covered" > };</span>
|
|
509
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
510
|
-
</pre></td></tr></table></pre>
|
|
511
|
-
|
|
512
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
513
|
-
</div><!-- /wrapper -->
|
|
514
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
515
|
-
Code coverage generated by
|
|
516
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
517
|
-
at 2026-01-07T00:09:13.255Z
|
|
518
|
-
</div>
|
|
519
|
-
<script src="../../prettify.js"></script>
|
|
520
|
-
<script>
|
|
521
|
-
window.onload = function () {
|
|
522
|
-
prettyPrint();
|
|
523
|
-
};
|
|
524
|
-
</script>
|
|
525
|
-
<script src="../../sorter.js"></script>
|
|
526
|
-
<script src="../../block-navigation.js"></script>
|
|
527
|
-
</body>
|
|
528
|
-
</html>
|
|
529
|
-
|