dsh-data-quality 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.es.md +51 -5
- package/README.hi.md +51 -5
- package/README.md +43 -3
- package/README.pt.md +51 -5
- package/README.zh.md +51 -5
- package/SECURITY.md +39 -0
- package/SUMMARY.md +147 -0
- package/lib/index.js +224 -25
- package/lib/types/events.d.ts +10 -10
- package/lib/types/events.js +10 -10
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/profile.d.ts +2 -0
- package/lib/types/profile.d.ts.map +1 -1
- package/lib/types/profile.js +2 -0
- package/lib/types/profile.js.map +1 -1
- package/lib/types/report-html.d.ts +41 -0
- package/lib/types/report-html.d.ts.map +1 -0
- package/lib/types/report-html.js +192 -0
- package/lib/types/report-html.js.map +1 -0
- package/lib/types/tools/profile-report-schema.d.ts +4 -0
- package/lib/types/tools/profile-report-schema.d.ts.map +1 -1
- package/lib/types/tools/profile-report-schema.js +1 -0
- package/lib/types/tools/profile-report-schema.js.map +1 -1
- package/lib/types/tools/report.d.ts.map +1 -1
- package/lib/types/tools/report.js +28 -2
- package/lib/types/tools/report.js.map +1 -1
- package/lib/types/version.d.ts +8 -1
- package/lib/types/version.d.ts.map +1 -1
- package/lib/types/version.js +8 -1
- package/lib/types/version.js.map +1 -1
- package/package.json +9 -2
- package/src/events.ts +11 -11
- package/src/index.ts +2 -0
- package/src/profile.ts +4 -0
- package/src/report-html.ts +208 -0
- package/src/tools/profile-report-schema.ts +1 -0
- package/src/tools/report.ts +31 -2
- package/src/version.ts +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAgF,KAAK,YAAY,EAAY,KAAK,KAAK,EAAE,MAAM,cAAc,CAAA;AACpJ,OAAO,EAAoB,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"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"}
|
package/lib/types/profile.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { createHash } from 'node:crypto';
|
|
9
9
|
import { isMissing, parseBoolean, parseDate, parseNumeric, sampleRows, throwIfAborted } from "./dataset.js";
|
|
10
10
|
import { computeScorecard } from "./scorecard.js";
|
|
11
|
+
import { REPORT_SCHEMA_VERSION } from "./version.js";
|
|
11
12
|
/** Fallback duplicate-sample cap for direct engine use; the provider always passes the configured `evidenceRowLimit`. */
|
|
12
13
|
const DEFAULT_DUPLICATE_SAMPLE_LIMIT = 20;
|
|
13
14
|
/** Round to 6 significant digits for stable, readable report numbers. */
|
|
@@ -196,6 +197,7 @@ export function profileTable(table, options) {
|
|
|
196
197
|
signal: options.signal,
|
|
197
198
|
});
|
|
198
199
|
return {
|
|
200
|
+
schemaVersion: REPORT_SCHEMA_VERSION,
|
|
199
201
|
dataset: options.dataset,
|
|
200
202
|
rowCount: table.rows.length,
|
|
201
203
|
sampled: profiled.length !== table.rows.length,
|
package/lib/types/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained offline HTML renderers for persisted data-quality reports.
|
|
3
|
+
*
|
|
4
|
+
* `data_report` (with `format: html`) turns a profile or clean report into a
|
|
5
|
+
* single `.html` file that opens offline: every style rule and every script is
|
|
6
|
+
* inlined, there are no external requests (no CDN, no `<link>`, no `<script
|
|
7
|
+
* src>`), and all dataset values are HTML-escaped before they reach the
|
|
8
|
+
* markup. The document carries the DAMA six-dimension scorecard, the
|
|
9
|
+
* per-column profile summary, and (for clean reports) the per-rule cleaning
|
|
10
|
+
* summary table.
|
|
11
|
+
*
|
|
12
|
+
* Pure and deterministic: the only clock is the report's own `generatedAt`;
|
|
13
|
+
* nothing here reads the filesystem or the network.
|
|
14
|
+
* @module dsh-data-quality/report-html
|
|
15
|
+
*/
|
|
16
|
+
import type { ProfileReport } from './profile.js';
|
|
17
|
+
/** Minimal structural view of a clean report's per-rule audit + row contract. */
|
|
18
|
+
export interface CleanReportHtml {
|
|
19
|
+
readonly inputRows: number;
|
|
20
|
+
readonly outputRows: number;
|
|
21
|
+
readonly logs: ReadonlyArray<{
|
|
22
|
+
readonly rule: string;
|
|
23
|
+
readonly affectedRows: number;
|
|
24
|
+
readonly detail: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Render a profile report as a self-contained offline HTML document.
|
|
29
|
+
* @param report - the profile report (already persisted/returned by data_profile).
|
|
30
|
+
* @returns the complete single-file HTML.
|
|
31
|
+
*/
|
|
32
|
+
export declare function renderProfileHtml(report: ProfileReport): string;
|
|
33
|
+
/**
|
|
34
|
+
* Render a clean report as a self-contained offline HTML document (the
|
|
35
|
+
* per-rule cleaning summary table).
|
|
36
|
+
* @param report - the clean report (logs + input/output row counts).
|
|
37
|
+
* @param dataset - the dataset label for the document title.
|
|
38
|
+
* @returns the complete single-file HTML.
|
|
39
|
+
*/
|
|
40
|
+
export declare function renderCleanHtml(report: CleanReportHtml, dataset: string): string;
|
|
41
|
+
//# sourceMappingURL=report-html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-html.d.ts","sourceRoot":"","sources":["../../src/report-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChH;AAuHD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoB/D;AAsBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAUhF"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained offline HTML renderers for persisted data-quality reports.
|
|
3
|
+
*
|
|
4
|
+
* `data_report` (with `format: html`) turns a profile or clean report into a
|
|
5
|
+
* single `.html` file that opens offline: every style rule and every script is
|
|
6
|
+
* inlined, there are no external requests (no CDN, no `<link>`, no `<script
|
|
7
|
+
* src>`), and all dataset values are HTML-escaped before they reach the
|
|
8
|
+
* markup. The document carries the DAMA six-dimension scorecard, the
|
|
9
|
+
* per-column profile summary, and (for clean reports) the per-rule cleaning
|
|
10
|
+
* summary table.
|
|
11
|
+
*
|
|
12
|
+
* Pure and deterministic: the only clock is the report's own `generatedAt`;
|
|
13
|
+
* nothing here reads the filesystem or the network.
|
|
14
|
+
* @module dsh-data-quality/report-html
|
|
15
|
+
*/
|
|
16
|
+
import { REPORT_SCHEMA_VERSION } from "./version.js";
|
|
17
|
+
/** Escape text for safe embedding in an HTML document. */
|
|
18
|
+
function escapeHtml(text) {
|
|
19
|
+
return text
|
|
20
|
+
.replace(/&/g, '&')
|
|
21
|
+
.replace(/</g, '<')
|
|
22
|
+
.replace(/>/g, '>')
|
|
23
|
+
.replace(/"/g, '"')
|
|
24
|
+
.replace(/'/g, ''');
|
|
25
|
+
}
|
|
26
|
+
/** Render a 0..1 rate as a percentage string, or `—` when undetermined. */
|
|
27
|
+
function pct(score) {
|
|
28
|
+
return score === null ? '—' : `${(score * 100).toFixed(1)}%`;
|
|
29
|
+
}
|
|
30
|
+
/** The shared document shell: inline CSS + inline JS, no external requests. */
|
|
31
|
+
function shell(title, body, script) {
|
|
32
|
+
return [
|
|
33
|
+
'<!doctype html>',
|
|
34
|
+
'<html lang="en">',
|
|
35
|
+
'<head>',
|
|
36
|
+
'<meta charset="utf-8">',
|
|
37
|
+
`<title>${escapeHtml(title)}</title>`,
|
|
38
|
+
'<style>',
|
|
39
|
+
' :root { --ink: #1a1f2e; --muted: #6b7280; --line: #e5e7eb; --accent: #0f766e; --fail: #b91c1c; --warn: #b45309; --pass: #15803d; }',
|
|
40
|
+
' * { box-sizing: border-box; }',
|
|
41
|
+
' body { margin: 0; padding: 24px; font: 14px/1.5 ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--ink); background: #f8fafc; }',
|
|
42
|
+
' header { margin-bottom: 20px; }',
|
|
43
|
+
' h1 { font-size: 20px; margin: 0 0 4px; }',
|
|
44
|
+
' .meta { color: var(--muted); font-size: 12px; }',
|
|
45
|
+
' section { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; }',
|
|
46
|
+
' h2 { font-size: 15px; margin: 0 0 12px; }',
|
|
47
|
+
' table { border-collapse: collapse; width: 100%; font-size: 13px; }',
|
|
48
|
+
' th, td { text-align: left; padding: 6px 10px; border-top: 1px solid var(--line); vertical-align: top; }',
|
|
49
|
+
' th { color: var(--muted); font-weight: 600; }',
|
|
50
|
+
' .score-cell { font-variant-numeric: tabular-nums; }',
|
|
51
|
+
' .dim-fail { color: var(--fail); font-weight: 600; }',
|
|
52
|
+
' .dim-warn { color: var(--warn); }',
|
|
53
|
+
' .dim-pass { color: var(--pass); }',
|
|
54
|
+
' .dim-undetermined { color: var(--muted); }',
|
|
55
|
+
' button { cursor: pointer; font: inherit; }',
|
|
56
|
+
'</style>',
|
|
57
|
+
'</head>',
|
|
58
|
+
'<body>',
|
|
59
|
+
body,
|
|
60
|
+
'<script>',
|
|
61
|
+
script,
|
|
62
|
+
'</script>',
|
|
63
|
+
'</body>',
|
|
64
|
+
'</html>',
|
|
65
|
+
'',
|
|
66
|
+
].join('\n');
|
|
67
|
+
}
|
|
68
|
+
/** The DAMA six-dimension scorecard section. */
|
|
69
|
+
function scorecardSection(report) {
|
|
70
|
+
const rows = report.scorecard.dimensions.map((dimension) => {
|
|
71
|
+
const cls = dimension.score === null
|
|
72
|
+
? 'dim-undetermined'
|
|
73
|
+
: dimension.score >= 0.9 ? 'dim-pass'
|
|
74
|
+
: dimension.score >= 0.7 ? 'dim-warn'
|
|
75
|
+
: 'dim-fail';
|
|
76
|
+
return `<tr><td>${escapeHtml(dimension.name)}</td><td class="score-cell ${cls}">${pct(dimension.score)}</td><td>${escapeHtml(dimension.note)}</td></tr>`;
|
|
77
|
+
}).join('\n');
|
|
78
|
+
const overall = report.scorecard.overall;
|
|
79
|
+
const weighted = report.scorecard.weightedOverall;
|
|
80
|
+
return [
|
|
81
|
+
'<section>',
|
|
82
|
+
'<h2>DAMA six-dimension quality scorecard</h2>',
|
|
83
|
+
'<table>',
|
|
84
|
+
'<thead><tr><th>Dimension</th><th>Score</th><th>Note</th></tr></thead>',
|
|
85
|
+
'<tbody>',
|
|
86
|
+
rows,
|
|
87
|
+
'</tbody>',
|
|
88
|
+
'</table>',
|
|
89
|
+
`<p class="meta" id="summary-text">overall ${pct(overall)} · weighted ${pct(weighted)}</p>`,
|
|
90
|
+
'</section>',
|
|
91
|
+
].join('\n');
|
|
92
|
+
}
|
|
93
|
+
/** The per-column profile summary table. */
|
|
94
|
+
function columnsSection(report) {
|
|
95
|
+
const rows = report.columns.map((column) => {
|
|
96
|
+
const numeric = column.numeric;
|
|
97
|
+
const numericCell = numeric === undefined
|
|
98
|
+
? '—'
|
|
99
|
+
: `min ${numeric.min} · p25 ${numeric.p25} · median ${numeric.median} · p75 ${numeric.p75} · max ${numeric.max} · mean ${numeric.mean}${numeric.outliers > 0 ? ` · ${numeric.outliers} IQR outliers` : ''}`;
|
|
100
|
+
const top = column.topValues === undefined
|
|
101
|
+
? '—'
|
|
102
|
+
: column.topValues.map((entry) => `${escapeHtml(entry.value)} ×${entry.count}`).join(', ');
|
|
103
|
+
const notes = column.notes.length === 0 ? '' : `<p class="meta">${column.notes.map(escapeHtml).join('; ')}</p>`;
|
|
104
|
+
return [
|
|
105
|
+
'<tr>',
|
|
106
|
+
`<td>${escapeHtml(column.name)}</td>`,
|
|
107
|
+
`<td>${escapeHtml(column.inferredType)}</td>`,
|
|
108
|
+
`<td class="score-cell">${column.missing}</td>`,
|
|
109
|
+
`<td class="score-cell">${(column.missingRate * 100).toFixed(1)}%</td>`,
|
|
110
|
+
`<td class="score-cell">${column.unique}</td>`,
|
|
111
|
+
`<td>${numericCell}</td>`,
|
|
112
|
+
`<td>${top}</td>`,
|
|
113
|
+
`<td>${notes}</td>`,
|
|
114
|
+
'</tr>',
|
|
115
|
+
].join('');
|
|
116
|
+
}).join('\n');
|
|
117
|
+
return [
|
|
118
|
+
'<section>',
|
|
119
|
+
'<h2>Column profile</h2>',
|
|
120
|
+
'<table>',
|
|
121
|
+
'<thead><tr><th>Column</th><th>Type</th><th>Missing</th><th>Missing rate</th><th>Unique</th><th>Numeric distribution</th><th>Top values</th><th>Notes</th></tr></thead>',
|
|
122
|
+
'<tbody>',
|
|
123
|
+
rows,
|
|
124
|
+
'</tbody>',
|
|
125
|
+
'</table>',
|
|
126
|
+
'</section>',
|
|
127
|
+
].join('\n');
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Render a profile report as a self-contained offline HTML document.
|
|
131
|
+
* @param report - the profile report (already persisted/returned by data_profile).
|
|
132
|
+
* @returns the complete single-file HTML.
|
|
133
|
+
*/
|
|
134
|
+
export function renderProfileHtml(report) {
|
|
135
|
+
const body = [
|
|
136
|
+
'<header>',
|
|
137
|
+
`<h1>Data profile: ${escapeHtml(report.dataset)}</h1>`,
|
|
138
|
+
`<p class="meta">${report.rowCount} rows × ${report.columnCount} columns · generated ${new Date(report.generatedAt).toISOString()} · schema v${REPORT_SCHEMA_VERSION} · report ${report.reportKey ?? '(unpersisted)'}</p>`,
|
|
139
|
+
'<button id="copy-summary" type="button">Copy summary</button>',
|
|
140
|
+
'</header>',
|
|
141
|
+
scorecardSection(report),
|
|
142
|
+
columnsSection(report),
|
|
143
|
+
].join('\n');
|
|
144
|
+
const script = [
|
|
145
|
+
"const button = document.getElementById('copy-summary');",
|
|
146
|
+
'if (button) {',
|
|
147
|
+
' button.addEventListener("click", () => {',
|
|
148
|
+
' const text = document.getElementById("summary-text");',
|
|
149
|
+
' if (text && navigator.clipboard) navigator.clipboard.writeText(text.textContent || "");',
|
|
150
|
+
' });',
|
|
151
|
+
'}',
|
|
152
|
+
].join('\n');
|
|
153
|
+
return shell(`Data profile: ${report.dataset}`, body, script);
|
|
154
|
+
}
|
|
155
|
+
/** The per-rule cleaning summary table (for clean/clean-diff reports). */
|
|
156
|
+
function cleaningSection(report) {
|
|
157
|
+
const rows = report.logs.map((log) => {
|
|
158
|
+
return `<tr><td>${escapeHtml(log.rule)}</td><td class="score-cell">${log.affectedRows}</td><td>${escapeHtml(log.detail)}</td></tr>`;
|
|
159
|
+
}).join('\n');
|
|
160
|
+
const removed = report.inputRows - report.outputRows;
|
|
161
|
+
return [
|
|
162
|
+
'<section>',
|
|
163
|
+
'<h2>Cleaning summary</h2>',
|
|
164
|
+
`<p class="meta" id="summary-text">input ${report.inputRows} rows · output ${report.outputRows} rows · removed ${removed} rows</p>`,
|
|
165
|
+
'<table>',
|
|
166
|
+
'<thead><tr><th>Rule</th><th>Affected rows</th><th>Detail</th></tr></thead>',
|
|
167
|
+
'<tbody>',
|
|
168
|
+
rows,
|
|
169
|
+
'</tbody>',
|
|
170
|
+
'</table>',
|
|
171
|
+
'</section>',
|
|
172
|
+
].join('\n');
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Render a clean report as a self-contained offline HTML document (the
|
|
176
|
+
* per-rule cleaning summary table).
|
|
177
|
+
* @param report - the clean report (logs + input/output row counts).
|
|
178
|
+
* @param dataset - the dataset label for the document title.
|
|
179
|
+
* @returns the complete single-file HTML.
|
|
180
|
+
*/
|
|
181
|
+
export function renderCleanHtml(report, dataset) {
|
|
182
|
+
const body = [
|
|
183
|
+
'<header>',
|
|
184
|
+
`<h1>Cleaning report: ${escapeHtml(dataset)}</h1>`,
|
|
185
|
+
`<p class="meta">schema v${REPORT_SCHEMA_VERSION}</p>`,
|
|
186
|
+
'</header>',
|
|
187
|
+
cleaningSection(report),
|
|
188
|
+
].join('\n');
|
|
189
|
+
const script = "// no interactive behavior needed; everything renders without external requests\n";
|
|
190
|
+
return shell(`Cleaning report: ${dataset}`, body, script);
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=report-html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-html.js","sourceRoot":"","sources":["../../src/report-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AASpD,0DAA0D;AAC1D,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAED,2EAA2E;AAC3E,SAAS,GAAG,CAAC,KAAoB;IAC/B,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC9D,CAAC;AAED,+EAA+E;AAC/E,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,MAAc;IACxD,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ;QACR,wBAAwB;QACxB,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU;QACrC,SAAS;QACT,sIAAsI;QACtI,iCAAiC;QACjC,8JAA8J;QAC9J,mCAAmC;QACnC,4CAA4C;QAC5C,mDAAmD;QACnD,6HAA6H;QAC7H,6CAA6C;QAC7C,sEAAsE;QACtE,2GAA2G;QAC3G,iDAAiD;QACjD,uDAAuD;QACvD,uDAAuD;QACvD,qCAAqC;QACrC,qCAAqC;QACrC,8CAA8C;QAC9C,8CAA8C;QAC9C,UAAU;QACV,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,UAAU;QACV,MAAM;QACN,WAAW;QACX,SAAS;QACT,SAAS;QACT,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,gDAAgD;AAChD,SAAS,gBAAgB,CAAC,MAAqB;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,KAAK,IAAI;YAClC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU;gBACnC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU;oBACnC,CAAC,CAAC,UAAU,CAAA;QAClB,OAAO,WAAW,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAA;IAC1J,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAA;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IACjD,OAAO;QACL,WAAW;QACX,+CAA+C;QAC/C,SAAS;QACT,uEAAuE;QACvE,SAAS;QACT,IAAI;QACJ,UAAU;QACV,UAAU;QACV,6CAA6C,GAAG,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC,MAAM;QAC3F,YAAY;KACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,4CAA4C;AAC5C,SAAS,cAAc,CAAC,MAAqB;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC9B,MAAM,WAAW,GAAG,OAAO,KAAK,SAAS;YACvC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,UAAU,OAAO,CAAC,GAAG,aAAa,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,GAAG,UAAU,OAAO,CAAC,GAAG,WAAW,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC7M,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS;YACxC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QAC/G,OAAO;YACL,MAAM;YACN,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACrC,OAAO,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO;YAC7C,0BAA0B,MAAM,CAAC,OAAO,OAAO;YAC/C,0BAA0B,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACvE,0BAA0B,MAAM,CAAC,MAAM,OAAO;YAC9C,OAAO,WAAW,OAAO;YACzB,OAAO,GAAG,OAAO;YACjB,OAAO,KAAK,OAAO;YACnB,OAAO;SACR,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACZ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,OAAO;QACL,WAAW;QACX,yBAAyB;QACzB,SAAS;QACT,wKAAwK;QACxK,SAAS;QACT,IAAI;QACJ,UAAU;QACV,UAAU;QACV,YAAY;KACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,IAAI,GAAG;QACX,UAAU;QACV,qBAAqB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;QACtD,mBAAmB,MAAM,CAAC,QAAQ,WAAW,MAAM,CAAC,WAAW,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,cAAc,qBAAqB,aAAa,MAAM,CAAC,SAAS,IAAI,eAAe,MAAM;QAC1N,+DAA+D;QAC/D,WAAW;QACX,gBAAgB,CAAC,MAAM,CAAC;QACxB,cAAc,CAAC,MAAM,CAAC;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,MAAM,GAAG;QACb,yDAAyD;QACzD,eAAe;QACf,4CAA4C;QAC5C,2DAA2D;QAC3D,6FAA6F;QAC7F,OAAO;QACP,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO,KAAK,CAAC,iBAAiB,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC/D,CAAC;AAED,0EAA0E;AAC1E,SAAS,eAAe,CAAC,MAAuB;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,OAAO,WAAW,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,GAAG,CAAC,YAAY,YAAY,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAA;IACrI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAA;IACpD,OAAO;QACL,WAAW;QACX,2BAA2B;QAC3B,2CAA2C,MAAM,CAAC,SAAS,kBAAkB,MAAM,CAAC,UAAU,mBAAmB,OAAO,WAAW;QACnI,SAAS;QACT,4EAA4E;QAC5E,SAAS;QACT,IAAI;QACJ,UAAU;QACV,UAAU;QACV,YAAY;KACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,OAAe;IACtE,MAAM,IAAI,GAAG;QACX,UAAU;QACV,wBAAwB,UAAU,CAAC,OAAO,CAAC,OAAO;QAClD,2BAA2B,qBAAqB,MAAM;QACtD,WAAW;QACX,eAAe,CAAC,MAAM,CAAC;KACxB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,MAAM,GAAG,mFAAmF,CAAA;IAClG,OAAO,KAAK,CAAC,oBAAoB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -102,6 +102,10 @@ export declare const COLUMN_PROFILE_SCHEMA: {
|
|
|
102
102
|
export declare const PROFILE_REPORT_SCHEMA: {
|
|
103
103
|
readonly type: "object";
|
|
104
104
|
readonly properties: {
|
|
105
|
+
readonly schemaVersion: {
|
|
106
|
+
readonly type: "number";
|
|
107
|
+
readonly required: true;
|
|
108
|
+
};
|
|
105
109
|
readonly dataset: {
|
|
106
110
|
readonly type: "string";
|
|
107
111
|
readonly required: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-report-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/profile-report-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gCAAgC;AAChC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAA;AAEV,wCAAwC;AACxC,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"profile-report-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/profile-report-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gCAAgC;AAChC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAA;AAEV,wCAAwC;AACxC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CxB,CAAA"}
|
|
@@ -48,6 +48,7 @@ export const COLUMN_PROFILE_SCHEMA = {
|
|
|
48
48
|
export const PROFILE_REPORT_SCHEMA = {
|
|
49
49
|
type: 'object',
|
|
50
50
|
properties: {
|
|
51
|
+
schemaVersion: { type: 'number', required: true },
|
|
51
52
|
dataset: { type: 'string', required: true },
|
|
52
53
|
rowCount: { type: 'number', required: true },
|
|
53
54
|
sampled: { type: 'boolean', required: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-report-schema.js","sourceRoot":"","sources":["../../../src/tools/profile-report-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profile-report-schema.js","sourceRoot":"","sources":["../../../src/tools/profile-report-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/tools/report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/tools/report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAsDvD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,mDAkE3D"}
|
|
@@ -5,8 +5,19 @@
|
|
|
5
5
|
* @module dsh-data-quality/tools/report
|
|
6
6
|
*/
|
|
7
7
|
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
8
|
+
import { renderCleanHtml, renderProfileHtml } from "../report-html.js";
|
|
8
9
|
/** The report kinds a caller may query. */
|
|
9
10
|
const REPORT_KINDS = ['profile', 'clean', 'clean-diff', 'verify', 'citations'];
|
|
11
|
+
/** Render one stored report as a self-contained HTML document (profile/clean only). */
|
|
12
|
+
function renderRecordHtml(record) {
|
|
13
|
+
if (record.kind === 'profile') {
|
|
14
|
+
return renderProfileHtml(record.report);
|
|
15
|
+
}
|
|
16
|
+
if (record.kind === 'clean' || record.kind === 'clean-diff') {
|
|
17
|
+
return renderCleanHtml(record.report, record.dataset);
|
|
18
|
+
}
|
|
19
|
+
throw new Error(`data_report html format does not support kind "${record.kind}" (profile/clean only)`);
|
|
20
|
+
}
|
|
10
21
|
/** Project a stored report into the canonical value (the stored report is already lossless JSON). */
|
|
11
22
|
function toView(record) {
|
|
12
23
|
return { key: record.key, kind: record.kind, at: record.at, dataset: record.dataset, report: record.report };
|
|
@@ -41,6 +52,7 @@ export function defineReportTool(service) {
|
|
|
41
52
|
parameters: {
|
|
42
53
|
key: { type: 'string', description: 'Exact storage reportKey (e.g. 20260819000000000-profile-1a2b3c4d); fetches that one report.' },
|
|
43
54
|
kind: { type: 'string', enum: [...REPORT_KINDS], description: 'Report kind to list (profile/clean/clean-diff/verify/citations).' },
|
|
55
|
+
format: { type: 'string', enum: ['json', 'html'], description: 'Output format. json (default) returns the report envelope(s); html renders one report as a self-contained offline HTML document (requires key; profile/clean only).' },
|
|
44
56
|
},
|
|
45
57
|
output: {
|
|
46
58
|
schema: {
|
|
@@ -63,10 +75,16 @@ export function defineReportTool(service) {
|
|
|
63
75
|
},
|
|
64
76
|
required: true,
|
|
65
77
|
},
|
|
78
|
+
html: { type: 'string', description: 'Self-contained offline HTML (present only when format: html).' },
|
|
66
79
|
},
|
|
67
80
|
additionalProperties: false,
|
|
68
81
|
},
|
|
69
|
-
render: (_args, value) =>
|
|
82
|
+
render: (_args, value) => {
|
|
83
|
+
const view = value;
|
|
84
|
+
if (view.html !== undefined)
|
|
85
|
+
return [{ type: 'text', text: view.html }];
|
|
86
|
+
return [{ type: 'text', text: renderReportText(view) }];
|
|
87
|
+
},
|
|
70
88
|
},
|
|
71
89
|
async execute(args, _exec) {
|
|
72
90
|
const hasKey = args.key !== undefined;
|
|
@@ -74,9 +92,17 @@ export function defineReportTool(service) {
|
|
|
74
92
|
if (hasKey === hasKind) {
|
|
75
93
|
throw new Error('data_report needs exactly one of key/kind');
|
|
76
94
|
}
|
|
95
|
+
const format = (args.format ?? 'json');
|
|
77
96
|
if (hasKey) {
|
|
78
97
|
const record = await service.getReport(args.key);
|
|
79
|
-
return {
|
|
98
|
+
return {
|
|
99
|
+
key: args.key,
|
|
100
|
+
records: [toView(record)],
|
|
101
|
+
...(format === 'html' ? { html: renderRecordHtml(record) } : {}),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (format === 'html') {
|
|
105
|
+
throw new Error('data_report html format requires key (exactly one report)');
|
|
80
106
|
}
|
|
81
107
|
const records = await service.listReports(args.kind);
|
|
82
108
|
return { kind: args.kind, records: records.map(toView) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/tools/report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/tools/report.ts"],"names":[],"mappings":"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"}
|
package/lib/types/version.d.ts
CHANGED
|
@@ -4,5 +4,12 @@
|
|
|
4
4
|
* @module dsh-data-quality/version
|
|
5
5
|
*/
|
|
6
6
|
/** The package version reported in persisted reports. */
|
|
7
|
-
export declare const VERSION = "0.
|
|
7
|
+
export declare const VERSION = "0.3.1";
|
|
8
|
+
/**
|
|
9
|
+
* Version of the persisted report schema. Bump it whenever a report's
|
|
10
|
+
* canonical shape changes in a way old consumers cannot read (the durable
|
|
11
|
+
* `data_quality` records keep their own `schemaVersion` so a future reader
|
|
12
|
+
* can detect and reject an incompatible record instead of misreading it).
|
|
13
|
+
*/
|
|
14
|
+
export declare const REPORT_SCHEMA_VERSION = 1;
|
|
8
15
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yDAAyD;AACzD,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yDAAyD;AACzD,eAAO,MAAM,OAAO,UAAU,CAAA;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAA"}
|
package/lib/types/version.js
CHANGED
|
@@ -4,5 +4,12 @@
|
|
|
4
4
|
* @module dsh-data-quality/version
|
|
5
5
|
*/
|
|
6
6
|
/** The package version reported in persisted reports. */
|
|
7
|
-
export const VERSION = '0.
|
|
7
|
+
export const VERSION = '0.3.1';
|
|
8
|
+
/**
|
|
9
|
+
* Version of the persisted report schema. Bump it whenever a report's
|
|
10
|
+
* canonical shape changes in a way old consumers cannot read (the durable
|
|
11
|
+
* `data_quality` records keep their own `schemaVersion` so a future reader
|
|
12
|
+
* can detect and reject an incompatible record instead of misreading it).
|
|
13
|
+
*/
|
|
14
|
+
export const REPORT_SCHEMA_VERSION = 1;
|
|
8
15
|
//# sourceMappingURL=version.js.map
|
package/lib/types/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-data-quality",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Deterministic data profiling, cleaning, and verification for DeepSeek Harness: a ctx.dataQuality capability seam (Service Definition / local Provider / tool Consumers) with data_profile, data_clean, and data_verify model tools, a frozen cross-plugin verifyCitations contract, durable reports in a storage domain, and data-quality/* session events on hosts that support them.",
|
|
5
5
|
"author": "dsh-data-quality contributors",
|
|
6
6
|
"private": false,
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"src",
|
|
20
20
|
"cordis.patch.yml",
|
|
21
21
|
"CHANGELOG.md",
|
|
22
|
+
"SECURITY.md",
|
|
23
|
+
"SUMMARY.md",
|
|
22
24
|
"THIRD_PARTY_NOTICES.md",
|
|
23
25
|
"README.md",
|
|
24
26
|
"README.zh.md",
|
|
@@ -94,6 +96,7 @@
|
|
|
94
96
|
"@deepseek-ai/dsh-session": ">=0.1.0-rc.8 <0.2.0",
|
|
95
97
|
"@deepseek-ai/dsh-storage": ">=0.1.0-rc.8 <0.2.0",
|
|
96
98
|
"@deepseek-ai/dsh-storage-domain": ">=0.1.0-rc.8 <0.2.0",
|
|
99
|
+
"@deepseek-ai/dsh-storage-json": "0.1.1-rc.2",
|
|
97
100
|
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.8 <0.2.0",
|
|
98
101
|
"@deepseek-ai/schemastery": "^3.18.0"
|
|
99
102
|
},
|
|
@@ -133,5 +136,9 @@
|
|
|
133
136
|
"verify:readme-sync": "node scripts/check-readme-sync.mjs",
|
|
134
137
|
"pack:check": "node scripts/prepare.mjs && pnpm pack"
|
|
135
138
|
},
|
|
136
|
-
"license": "Apache-2.0"
|
|
139
|
+
"license": "Apache-2.0",
|
|
140
|
+
"funding": {
|
|
141
|
+
"type": "individual",
|
|
142
|
+
"url": "https://github.com/sponsors/PerryLink"
|
|
143
|
+
}
|
|
137
144
|
}
|
package/src/events.ts
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
*
|
|
6
6
|
* - Hosts whose known-type set already covers the vocabulary (a future harness
|
|
7
7
|
* that adopts these events) append plainly.
|
|
8
|
-
* - Hosts with an `ignorable` append option (
|
|
9
|
-
*
|
|
10
|
-
* marker, so builds that do not know the type skip the event on restore.
|
|
8
|
+
* - Hosts with an `ignorable` append option (pre-0.1.2 rc builds) append with
|
|
9
|
+
* the marker, so builds that do not know the type skip the event on restore.
|
|
11
10
|
* - 0.1.0-rc.6 and 0.1.0-rc.8 hosts have neither a registration surface nor an
|
|
12
11
|
* `ignorable` append option (rc.8's `Session.append` accepts surface metadata
|
|
13
|
-
* only, never the marker)
|
|
14
|
-
*
|
|
15
|
-
* skipped and the storage-domain report remains the
|
|
12
|
+
* only, never the marker), and 0.1.2-alpha.1 removed the `ignorable` envelope
|
|
13
|
+
* entirely (42dc2a46c2) and fails closed on unknown types at read; on all of
|
|
14
|
+
* them the append is skipped and the storage-domain report remains the
|
|
15
|
+
* durable copy.
|
|
16
16
|
* @module dsh-data-quality/events
|
|
17
17
|
*/
|
|
18
18
|
|
|
@@ -67,17 +67,17 @@ export const DATA_QUALITY_EVENT_TYPES = ['data-quality/profile', 'data-quality/c
|
|
|
67
67
|
/** Union of the event types this plugin appends. */
|
|
68
68
|
export type DataQualityEventType = (typeof DATA_QUALITY_EVENT_TYPES)[number]
|
|
69
69
|
|
|
70
|
-
/** Loose append shape probed at runtime (rc.6/rc.8 take no options; master
|
|
70
|
+
/** Loose append shape probed at runtime (rc.6/rc.8/0.1.2-alpha.1 take no options; pre-0.1.2 master builds took `ignorable`). */
|
|
71
71
|
type AppendProbe = (type: string, data: unknown, options?: { ignorable: true }) => unknown
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Append one `data-quality/*` event when the host can carry it safely; skip
|
|
75
75
|
* silently otherwise (the storage-domain report is always the durable copy).
|
|
76
76
|
* The `ignorable` probe reads the UNBOUND method's source (a `.bind()` result
|
|
77
|
-
* reports `[native code]`): the rc.6
|
|
78
|
-
* handling while
|
|
79
|
-
* survive minification, so the probe fails safe (skips)
|
|
80
|
-
* a log.
|
|
77
|
+
* reports `[native code]`): the rc.6/rc.8 builds and 0.1.2-alpha.1 contain no
|
|
78
|
+
* `ignorable` handling while pre-0.1.2 master builds referenced the flag by
|
|
79
|
+
* name; property names survive minification, so the probe fails safe (skips)
|
|
80
|
+
* rather than corrupting a log.
|
|
81
81
|
* @param session - the calling session.
|
|
82
82
|
* @param type - the event type.
|
|
83
83
|
* @param data - the payload.
|
package/src/index.ts
CHANGED
|
@@ -80,6 +80,8 @@ export {
|
|
|
80
80
|
export { dataQualityDomainSpec, reportKeyOf, reportRecordSchema, isValidReportKey, type ReportRecord, type ReportStore, type StoredReport } from './store.ts'
|
|
81
81
|
export { DATA_QUALITY_EVENT_TYPES, appendDataQualityEvent, type DataQualityEventData, type DataQualityEventType } from './events.ts'
|
|
82
82
|
export { MAX_CELL_TEXT, truncateCell, truncateRow } from './present.ts'
|
|
83
|
+
export { renderProfileHtml, renderCleanHtml, type CleanReportHtml } from './report-html.ts'
|
|
84
|
+
export { REPORT_SCHEMA_VERSION } from './version.ts'
|
|
83
85
|
|
|
84
86
|
/**
|
|
85
87
|
* Mount the seam: resolve config (fail loud), open the report domain, publish
|