dsh-data-quality 0.1.2 → 0.2.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/CHANGELOG.md +32 -0
- package/README.es.md +8 -2
- package/README.hi.md +8 -2
- package/README.md +22 -9
- package/README.pt.md +8 -2
- package/README.zh.md +8 -2
- package/cordis.patch.yml +11 -0
- package/lib/index.js +1411 -145
- package/lib/types/config.d.ts +12 -0
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/config.js +35 -0
- package/lib/types/config.js.map +1 -1
- package/lib/types/contract.d.ts +83 -0
- package/lib/types/contract.d.ts.map +1 -0
- package/lib/types/contract.js +144 -0
- package/lib/types/contract.js.map +1 -0
- package/lib/types/dataset.d.ts +50 -3
- package/lib/types/dataset.d.ts.map +1 -1
- package/lib/types/dataset.js +76 -21
- package/lib/types/dataset.js.map +1 -1
- package/lib/types/events.d.ts +2 -0
- package/lib/types/events.d.ts.map +1 -1
- package/lib/types/events.js.map +1 -1
- package/lib/types/index.d.ts +11 -8
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +15 -6
- package/lib/types/index.js.map +1 -1
- package/lib/types/presets.d.ts +28 -0
- package/lib/types/presets.d.ts.map +1 -0
- package/lib/types/presets.js +134 -0
- package/lib/types/presets.js.map +1 -0
- package/lib/types/profile.d.ts +38 -1
- package/lib/types/profile.d.ts.map +1 -1
- package/lib/types/profile.js +64 -10
- package/lib/types/profile.js.map +1 -1
- package/lib/types/provider-local.d.ts +7 -1
- package/lib/types/provider-local.d.ts.map +1 -1
- package/lib/types/provider-local.js +78 -4
- package/lib/types/provider-local.js.map +1 -1
- package/lib/types/scorecard.d.ts +50 -0
- package/lib/types/scorecard.d.ts.map +1 -0
- package/lib/types/scorecard.js +186 -0
- package/lib/types/scorecard.js.map +1 -0
- package/lib/types/service.d.ts +32 -2
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/service.js.map +1 -1
- package/lib/types/store.d.ts +21 -1
- package/lib/types/store.d.ts.map +1 -1
- package/lib/types/store.js +13 -1
- package/lib/types/store.js.map +1 -1
- package/lib/types/tools/clean.d.ts.map +1 -1
- package/lib/types/tools/clean.js +76 -1
- package/lib/types/tools/clean.js.map +1 -1
- package/lib/types/tools/profile-report-schema.d.ts +315 -0
- package/lib/types/tools/profile-report-schema.d.ts.map +1 -0
- package/lib/types/tools/profile-report-schema.js +95 -0
- package/lib/types/tools/profile-report-schema.js.map +1 -0
- package/lib/types/tools/profile.d.ts.map +1 -1
- package/lib/types/tools/profile.js +6 -53
- package/lib/types/tools/profile.js.map +1 -1
- package/lib/types/tools/report.d.ts +14 -0
- package/lib/types/tools/report.d.ts.map +1 -0
- package/lib/types/tools/report.js +86 -0
- package/lib/types/tools/report.js.map +1 -0
- package/lib/types/tools/shared.d.ts.map +1 -1
- package/lib/types/tools/shared.js +22 -2
- package/lib/types/tools/shared.js.map +1 -1
- package/lib/types/tools/verify.d.ts.map +1 -1
- package/lib/types/tools/verify.js +36 -1
- package/lib/types/tools/verify.js.map +1 -1
- package/lib/types/verify.d.ts +49 -3
- package/lib/types/verify.d.ts.map +1 -1
- package/lib/types/verify.js +111 -4
- package/lib/types/verify.js.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/version.js +1 -1
- package/package.json +1 -1
- package/src/config.ts +52 -0
- package/src/contract.ts +190 -0
- package/src/dataset.ts +101 -21
- package/src/events.ts +2 -0
- package/src/index.ts +25 -8
- package/src/presets.ts +146 -0
- package/src/profile.ts +101 -11
- package/src/provider-local.ts +83 -5
- package/src/scorecard.ts +244 -0
- package/src/service.ts +34 -2
- package/src/store.ts +28 -2
- package/src/tools/clean.ts +76 -1
- package/src/tools/profile-report-schema.ts +97 -0
- package/src/tools/profile.ts +8 -56
- package/src/tools/report.ts +108 -0
- package/src/tools/shared.ts +21 -2
- package/src/tools/verify.ts +40 -2
- package/src/verify.ts +151 -5
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,SAAS,EAAE,KAAK,CAAC;QACf,8DAA8D;QAC9D,EAAE,EAAE,MAAM,CAAA;QACV,2EAA2E;QAC3E,IAAI,EAAE,MAAM,CAAA;QACZ,0CAA0C;QAC1C,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;QACtB,0EAA0E;QAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;CACH;AACD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAA;QAC9D,8CAA8C;QAC9C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;CACH;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,wGAAwG;IACxG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAC1C;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;IACrC,uGAAuG;IACvG,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAA;IAChE,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAC1C;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAA;IAC7B,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IACvC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;KAAE,CAAA;IACjG,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAA;IACvC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;GAIG;AACH,8BAAsB,kBAAmB,SAAQ,OAAO;IACtD;;;OAGG;gBACS,GAAG,EAAE,OAAO;IAIxB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAErF;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAExE;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAErE;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAErE;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAC1E;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,2GAA2G;QAC3G,WAAW,EAAE,kBAAkB,CAAA;KAChC;CACF;AAED,8EAA8E;AAC9E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACtE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC3E,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACrH,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
|
package/lib/types/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAqH3D;;;;GAIG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,OAAO;IACtD;;;OAGG;IACH,YAAY,GAAY;QACtB,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IAC3B,CAAC;CAkDF"}
|
package/lib/types/store.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const reportRecordSchema: z.ZodObject<{
|
|
|
13
13
|
clean: "clean";
|
|
14
14
|
verify: "verify";
|
|
15
15
|
citations: "citations";
|
|
16
|
+
"clean-diff": "clean-diff";
|
|
16
17
|
}>;
|
|
17
18
|
at: z.ZodNumber;
|
|
18
19
|
dataset: z.ZodString;
|
|
@@ -20,7 +21,7 @@ export declare const reportRecordSchema: z.ZodObject<{
|
|
|
20
21
|
}, z.core.$strip>;
|
|
21
22
|
/** One persisted report record. */
|
|
22
23
|
export interface ReportRecord {
|
|
23
|
-
readonly kind: 'profile' | 'clean' | 'verify' | 'citations';
|
|
24
|
+
readonly kind: 'profile' | 'clean' | 'verify' | 'citations' | 'clean-diff';
|
|
24
25
|
/** Injected run timestamp (epoch ms). */
|
|
25
26
|
readonly at: number;
|
|
26
27
|
/** Workspace-relative dataset path as the caller gave it. */
|
|
@@ -28,6 +29,11 @@ export interface ReportRecord {
|
|
|
28
29
|
/** The full run report (profile/clean/verify/citations shape by `kind`). */
|
|
29
30
|
readonly report: Record<string, unknown>;
|
|
30
31
|
}
|
|
32
|
+
/** A persisted report plus its storage key (the query surface's return value). */
|
|
33
|
+
export interface StoredReport extends ReportRecord {
|
|
34
|
+
/** The storage key the record was written under. */
|
|
35
|
+
readonly key: string;
|
|
36
|
+
}
|
|
31
37
|
/** The `dsh-data-quality` storage-domain declaration. */
|
|
32
38
|
export declare const dataQualityDomainSpec: {
|
|
33
39
|
name: string;
|
|
@@ -50,7 +56,21 @@ export interface ReportStore {
|
|
|
50
56
|
* @returns the record, or `undefined` when absent.
|
|
51
57
|
*/
|
|
52
58
|
get(key: string): ReportRecord | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Snapshot of every record of one kind, ordered by key (chronological).
|
|
61
|
+
* @param kind - the report kind.
|
|
62
|
+
* @returns the stored reports (empty when none match).
|
|
63
|
+
*/
|
|
64
|
+
list(kind: ReportRecord['kind']): StoredReport[];
|
|
53
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Whether `key` is a well-formed, path-safe storage report key. Rejects any
|
|
68
|
+
* key with separators, traversal, or unexpected characters before it can be
|
|
69
|
+
* handed to the storage backend.
|
|
70
|
+
* @param key - candidate report key.
|
|
71
|
+
* @returns whether the key matches the deterministic report-key format.
|
|
72
|
+
*/
|
|
73
|
+
export declare function isValidReportKey(key: string): boolean;
|
|
54
74
|
/**
|
|
55
75
|
* Build the storage key for one run: `YYYYMMDDHHmmssSSS-<kind>-<pathFp>`.
|
|
56
76
|
* UTC digits keep the key timezone-independent and filename-safe everywhere.
|
package/lib/types/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,KAAK,CAAA;AAInB,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,KAAK,CAAA;AAInB,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAK7B,CAAA;AAEF,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAA;IAC1E,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,yDAAyD;AACzD,eAAO,MAAM,qBAAqB;;;;;;CAMhC,CAAA;AAEF,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;IAC1C;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,EAAE,CAAA;CACjD;AAKD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAOD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAMxD"}
|
package/lib/types/store.js
CHANGED
|
@@ -10,7 +10,7 @@ import { defineDomain, domainTable } from '@deepseek-ai/dsh-storage-domain';
|
|
|
10
10
|
import { pathFingerprint } from "./dataset.js";
|
|
11
11
|
/** Zod schema of one persisted report record (durable-boundary validation). */
|
|
12
12
|
export const reportRecordSchema = z.object({
|
|
13
|
-
kind: z.enum(['profile', 'clean', 'verify', 'citations']),
|
|
13
|
+
kind: z.enum(['profile', 'clean', 'verify', 'citations', 'clean-diff']),
|
|
14
14
|
at: z.number().int().nonnegative(),
|
|
15
15
|
dataset: z.string(),
|
|
16
16
|
report: z.record(z.string(), z.unknown()),
|
|
@@ -23,6 +23,18 @@ export const dataQualityDomainSpec = defineDomain({
|
|
|
23
23
|
reports: domainTable(reportRecordSchema),
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
|
+
/** Well-formed report-key shape: `<17-digit timestamp>-<kind>-<8-hex fingerprint>`. */
|
|
27
|
+
const REPORT_KEY_PATTERN = /^\d{17}-(?:profile|clean|verify|citations|clean-diff)-[0-9a-f]{8}$/u;
|
|
28
|
+
/**
|
|
29
|
+
* Whether `key` is a well-formed, path-safe storage report key. Rejects any
|
|
30
|
+
* key with separators, traversal, or unexpected characters before it can be
|
|
31
|
+
* handed to the storage backend.
|
|
32
|
+
* @param key - candidate report key.
|
|
33
|
+
* @returns whether the key matches the deterministic report-key format.
|
|
34
|
+
*/
|
|
35
|
+
export function isValidReportKey(key) {
|
|
36
|
+
return REPORT_KEY_PATTERN.test(key);
|
|
37
|
+
}
|
|
26
38
|
/** Pad to two digits for the key timestamp. */
|
|
27
39
|
function pad2(value) {
|
|
28
40
|
return String(value).padStart(2, '0');
|
package/lib/types/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACvE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CAC1C,CAAC,CAAA;AAmBF,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;IAChD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE;QACN,OAAO,EAAE,WAAW,CAAuB,kBAAkB,CAAC;KAC/D;CACF,CAAC,CAAA;AAwBF,uFAAuF;AACvF,MAAM,kBAAkB,GAAG,qEAAqE,CAAA;AAEhG;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,+CAA+C;AAC/C,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,KAAK,GACT,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;QACnF,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAC9I,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;AACrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/tools/clean.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/tools/clean.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,eAAe,CAAA;AA2ElF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,mDAwI1D"}
|
package/lib/types/tools/clean.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @module dsh-data-quality/tools/clean
|
|
6
6
|
*/
|
|
7
7
|
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
8
|
+
import { PROFILE_REPORT_SCHEMA } from "./profile-report-schema.js";
|
|
8
9
|
import { renderCleanText, workspaceOf } from "./shared.js";
|
|
9
10
|
const STRING_MAP_SCHEMA = { type: 'json' };
|
|
10
11
|
const CLEAN_RULE_SCHEMA = {
|
|
@@ -86,12 +87,13 @@ export function defineCleanTool(service) {
|
|
|
86
87
|
description: [
|
|
87
88
|
'Apply declarative cleaning rules to a workspace CSV/TSV/JSON/JSONL dataset with deterministic TypeScript computation (no mental math).',
|
|
88
89
|
'Rules apply in array order: dedupe (by column group), fill-missing (constant/mean/median/forward), coerce-type (number/date/boolean; failures counted and set to missing), normalize-unit (e.g. 万/亿 suffixes to base units), trim (whitespace), map-values (enum mapping).',
|
|
89
|
-
'The source file is NEVER overwritten. Without outputPath the run is preview-only; with outputPath the cleaned dataset is written there (workspace-confined, .csv/.tsv/.json/.jsonl). Returns the per-rule audit log (
|
|
90
|
+
'The source file is NEVER overwritten. Without outputPath the run is preview-only; with outputPath the cleaned dataset is written there (workspace-confined, .csv/.tsv/.json/.jsonl). Returns the per-rule audit log, the pre-delivery contract summary (with per-column decision trace), and a bounded preview. Pass dryRun: true to skip the write and get the cleaning plan plus the expected contract/diff preview instead. The full report persists to the data_quality storage domain (reportKey).',
|
|
90
91
|
].join('\n'),
|
|
91
92
|
parameters: {
|
|
92
93
|
path: { type: 'string', required: true, description: 'Workspace-relative dataset path (.csv/.tsv/.json/.jsonl).' },
|
|
93
94
|
rules: { ...CLEAN_RULE_SCHEMA, required: true },
|
|
94
95
|
outputPath: { type: 'string', description: 'Optional workspace-relative output path for the cleaned dataset (must differ from path).' },
|
|
96
|
+
dryRun: { type: 'boolean', description: 'When true, do not write any output file; return the cleaning plan and expected contract/diff preview instead (default false).' },
|
|
95
97
|
},
|
|
96
98
|
output: {
|
|
97
99
|
schema: {
|
|
@@ -100,9 +102,20 @@ export function defineCleanTool(service) {
|
|
|
100
102
|
dataset: { type: 'string', required: true },
|
|
101
103
|
inputRows: { type: 'number', required: true },
|
|
102
104
|
outputRows: { type: 'number', required: true },
|
|
105
|
+
dryRun: { type: 'boolean', required: true },
|
|
103
106
|
generatedAt: { type: 'number', required: true },
|
|
104
107
|
outputPath: { type: 'string' },
|
|
105
108
|
reportKey: { type: 'string' },
|
|
109
|
+
diffPreview: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
dataset: { type: 'string', required: true },
|
|
113
|
+
before: { ...PROFILE_REPORT_SCHEMA, required: true },
|
|
114
|
+
after: { ...PROFILE_REPORT_SCHEMA, required: true },
|
|
115
|
+
generatedAt: { type: 'number', required: true },
|
|
116
|
+
},
|
|
117
|
+
additionalProperties: false,
|
|
118
|
+
},
|
|
106
119
|
logs: {
|
|
107
120
|
type: 'array',
|
|
108
121
|
items: {
|
|
@@ -117,6 +130,67 @@ export function defineCleanTool(service) {
|
|
|
117
130
|
},
|
|
118
131
|
required: true,
|
|
119
132
|
},
|
|
133
|
+
contract: {
|
|
134
|
+
type: 'object',
|
|
135
|
+
properties: {
|
|
136
|
+
inputRows: { type: 'number', required: true },
|
|
137
|
+
outputRows: { type: 'number', required: true },
|
|
138
|
+
removedRows: { type: 'number', required: true },
|
|
139
|
+
dedupeColumns: { oneOf: [{ type: 'array', items: { type: 'string' } }, { type: 'null' }], required: true },
|
|
140
|
+
uniqueKeys: { type: 'boolean', required: true },
|
|
141
|
+
remainingDuplicateRows: { type: 'number', required: true },
|
|
142
|
+
remainingMissing: {
|
|
143
|
+
type: 'array',
|
|
144
|
+
items: {
|
|
145
|
+
type: 'object',
|
|
146
|
+
properties: {
|
|
147
|
+
column: { type: 'string', required: true },
|
|
148
|
+
count: { type: 'number', required: true },
|
|
149
|
+
},
|
|
150
|
+
additionalProperties: false,
|
|
151
|
+
},
|
|
152
|
+
required: true,
|
|
153
|
+
},
|
|
154
|
+
typeConformance: {
|
|
155
|
+
type: 'array',
|
|
156
|
+
items: {
|
|
157
|
+
type: 'object',
|
|
158
|
+
properties: {
|
|
159
|
+
column: { type: 'string', required: true },
|
|
160
|
+
to: { type: 'string', enum: ['number', 'date', 'boolean'], required: true },
|
|
161
|
+
invalidCount: { type: 'number', required: true },
|
|
162
|
+
},
|
|
163
|
+
additionalProperties: false,
|
|
164
|
+
},
|
|
165
|
+
required: true,
|
|
166
|
+
},
|
|
167
|
+
columnDecisions: {
|
|
168
|
+
type: 'array',
|
|
169
|
+
items: {
|
|
170
|
+
type: 'object',
|
|
171
|
+
properties: {
|
|
172
|
+
column: { type: 'string', required: true },
|
|
173
|
+
decisions: {
|
|
174
|
+
type: 'array',
|
|
175
|
+
items: {
|
|
176
|
+
type: 'object',
|
|
177
|
+
properties: {
|
|
178
|
+
strategy: { type: 'string', required: true },
|
|
179
|
+
affectedRows: { type: 'number', required: true },
|
|
180
|
+
},
|
|
181
|
+
additionalProperties: false,
|
|
182
|
+
},
|
|
183
|
+
required: true,
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
additionalProperties: false,
|
|
187
|
+
},
|
|
188
|
+
required: true,
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
additionalProperties: false,
|
|
192
|
+
required: true,
|
|
193
|
+
},
|
|
120
194
|
preview: {
|
|
121
195
|
type: 'object',
|
|
122
196
|
properties: {
|
|
@@ -136,6 +210,7 @@ export function defineCleanTool(service) {
|
|
|
136
210
|
dataset: args.path,
|
|
137
211
|
rules: args.rules,
|
|
138
212
|
...(args.outputPath !== undefined ? { outputPath: args.outputPath } : {}),
|
|
213
|
+
...(args.dryRun !== undefined ? { dryRun: args.dryRun } : {}),
|
|
139
214
|
workspace: workspaceOf(exec),
|
|
140
215
|
session: exec.agent?.session,
|
|
141
216
|
signal: exec.signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/tools/clean.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/tools/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared JSON-Schema spec for the profile report's canonical value, reused by
|
|
3
|
+
* `data_profile` (its output) and `data_clean` (the `diffPreview` before/after
|
|
4
|
+
* snapshots). One source of truth so the two tools never drift.
|
|
5
|
+
* @module dsh-data-quality/tools-profile-report-schema
|
|
6
|
+
*/
|
|
7
|
+
/** One column card's schema. */
|
|
8
|
+
export declare const COLUMN_PROFILE_SCHEMA: {
|
|
9
|
+
readonly type: "object";
|
|
10
|
+
readonly properties: {
|
|
11
|
+
readonly name: {
|
|
12
|
+
readonly type: "string";
|
|
13
|
+
readonly required: true;
|
|
14
|
+
};
|
|
15
|
+
readonly inferredType: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly enum: readonly ["number", "date", "boolean", "string", "empty", "mixed"];
|
|
18
|
+
readonly required: true;
|
|
19
|
+
};
|
|
20
|
+
readonly missing: {
|
|
21
|
+
readonly type: "number";
|
|
22
|
+
readonly required: true;
|
|
23
|
+
};
|
|
24
|
+
readonly missingRate: {
|
|
25
|
+
readonly type: "number";
|
|
26
|
+
readonly required: true;
|
|
27
|
+
};
|
|
28
|
+
readonly unique: {
|
|
29
|
+
readonly type: "number";
|
|
30
|
+
readonly required: true;
|
|
31
|
+
};
|
|
32
|
+
readonly numeric: {
|
|
33
|
+
readonly type: "object";
|
|
34
|
+
readonly properties: {
|
|
35
|
+
readonly count: {
|
|
36
|
+
readonly type: "number";
|
|
37
|
+
readonly required: true;
|
|
38
|
+
};
|
|
39
|
+
readonly distinct: {
|
|
40
|
+
readonly type: "number";
|
|
41
|
+
readonly required: true;
|
|
42
|
+
};
|
|
43
|
+
readonly min: {
|
|
44
|
+
readonly type: "number";
|
|
45
|
+
readonly required: true;
|
|
46
|
+
};
|
|
47
|
+
readonly max: {
|
|
48
|
+
readonly type: "number";
|
|
49
|
+
readonly required: true;
|
|
50
|
+
};
|
|
51
|
+
readonly mean: {
|
|
52
|
+
readonly type: "number";
|
|
53
|
+
readonly required: true;
|
|
54
|
+
};
|
|
55
|
+
readonly median: {
|
|
56
|
+
readonly type: "number";
|
|
57
|
+
readonly required: true;
|
|
58
|
+
};
|
|
59
|
+
readonly p25: {
|
|
60
|
+
readonly type: "number";
|
|
61
|
+
readonly required: true;
|
|
62
|
+
};
|
|
63
|
+
readonly p75: {
|
|
64
|
+
readonly type: "number";
|
|
65
|
+
readonly required: true;
|
|
66
|
+
};
|
|
67
|
+
readonly outliers: {
|
|
68
|
+
readonly type: "number";
|
|
69
|
+
readonly required: true;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly additionalProperties: false;
|
|
73
|
+
};
|
|
74
|
+
readonly topValues: {
|
|
75
|
+
readonly type: "array";
|
|
76
|
+
readonly items: {
|
|
77
|
+
readonly type: "object";
|
|
78
|
+
readonly properties: {
|
|
79
|
+
readonly value: {
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
readonly required: true;
|
|
82
|
+
};
|
|
83
|
+
readonly count: {
|
|
84
|
+
readonly type: "number";
|
|
85
|
+
readonly required: true;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
readonly additionalProperties: false;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
readonly notes: {
|
|
92
|
+
readonly type: "array";
|
|
93
|
+
readonly items: {
|
|
94
|
+
readonly type: "string";
|
|
95
|
+
};
|
|
96
|
+
readonly required: true;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
readonly additionalProperties: false;
|
|
100
|
+
};
|
|
101
|
+
/** The full profile report's schema. */
|
|
102
|
+
export declare const PROFILE_REPORT_SCHEMA: {
|
|
103
|
+
readonly type: "object";
|
|
104
|
+
readonly properties: {
|
|
105
|
+
readonly dataset: {
|
|
106
|
+
readonly type: "string";
|
|
107
|
+
readonly required: true;
|
|
108
|
+
};
|
|
109
|
+
readonly rowCount: {
|
|
110
|
+
readonly type: "number";
|
|
111
|
+
readonly required: true;
|
|
112
|
+
};
|
|
113
|
+
readonly sampled: {
|
|
114
|
+
readonly type: "boolean";
|
|
115
|
+
readonly required: true;
|
|
116
|
+
};
|
|
117
|
+
readonly profiledRows: {
|
|
118
|
+
readonly type: "number";
|
|
119
|
+
readonly required: true;
|
|
120
|
+
};
|
|
121
|
+
readonly columnCount: {
|
|
122
|
+
readonly type: "number";
|
|
123
|
+
readonly required: true;
|
|
124
|
+
};
|
|
125
|
+
readonly duplicateRows: {
|
|
126
|
+
readonly type: "number";
|
|
127
|
+
readonly required: true;
|
|
128
|
+
};
|
|
129
|
+
readonly duplicateRate: {
|
|
130
|
+
readonly type: "number";
|
|
131
|
+
readonly required: true;
|
|
132
|
+
};
|
|
133
|
+
readonly duplicateSampleRowIndexes: {
|
|
134
|
+
readonly type: "array";
|
|
135
|
+
readonly items: {
|
|
136
|
+
readonly type: "number";
|
|
137
|
+
};
|
|
138
|
+
readonly required: true;
|
|
139
|
+
};
|
|
140
|
+
readonly scorecard: {
|
|
141
|
+
readonly type: "object";
|
|
142
|
+
readonly properties: {
|
|
143
|
+
readonly overall: {
|
|
144
|
+
readonly oneOf: readonly [{
|
|
145
|
+
readonly type: "number";
|
|
146
|
+
}, {
|
|
147
|
+
readonly type: "null";
|
|
148
|
+
}];
|
|
149
|
+
readonly required: true;
|
|
150
|
+
};
|
|
151
|
+
readonly weightedOverall: {
|
|
152
|
+
readonly oneOf: readonly [{
|
|
153
|
+
readonly type: "number";
|
|
154
|
+
}, {
|
|
155
|
+
readonly type: "null";
|
|
156
|
+
}];
|
|
157
|
+
readonly required: true;
|
|
158
|
+
};
|
|
159
|
+
readonly dimensions: {
|
|
160
|
+
readonly type: "array";
|
|
161
|
+
readonly items: {
|
|
162
|
+
readonly type: "object";
|
|
163
|
+
readonly properties: {
|
|
164
|
+
readonly name: {
|
|
165
|
+
readonly type: "string";
|
|
166
|
+
readonly enum: readonly ["completeness", "uniqueness", "validity", "consistency", "timeliness", "accuracy"];
|
|
167
|
+
readonly required: true;
|
|
168
|
+
};
|
|
169
|
+
readonly score: {
|
|
170
|
+
readonly oneOf: readonly [{
|
|
171
|
+
readonly type: "number";
|
|
172
|
+
}, {
|
|
173
|
+
readonly type: "null";
|
|
174
|
+
}];
|
|
175
|
+
readonly required: true;
|
|
176
|
+
};
|
|
177
|
+
readonly note: {
|
|
178
|
+
readonly type: "string";
|
|
179
|
+
readonly required: true;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
readonly additionalProperties: false;
|
|
183
|
+
};
|
|
184
|
+
readonly required: true;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
readonly additionalProperties: false;
|
|
188
|
+
readonly required: true;
|
|
189
|
+
};
|
|
190
|
+
readonly encoding: {
|
|
191
|
+
readonly type: "object";
|
|
192
|
+
readonly properties: {
|
|
193
|
+
readonly bom: {
|
|
194
|
+
readonly oneOf: readonly [{
|
|
195
|
+
readonly type: "string";
|
|
196
|
+
}, {
|
|
197
|
+
readonly type: "null";
|
|
198
|
+
}];
|
|
199
|
+
readonly required: true;
|
|
200
|
+
};
|
|
201
|
+
readonly validUtf8: {
|
|
202
|
+
readonly type: "boolean";
|
|
203
|
+
readonly required: true;
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
readonly additionalProperties: false;
|
|
207
|
+
};
|
|
208
|
+
readonly generatedAt: {
|
|
209
|
+
readonly type: "number";
|
|
210
|
+
readonly required: true;
|
|
211
|
+
};
|
|
212
|
+
readonly reportKey: {
|
|
213
|
+
readonly type: "string";
|
|
214
|
+
};
|
|
215
|
+
readonly columns: {
|
|
216
|
+
readonly type: "array";
|
|
217
|
+
readonly items: {
|
|
218
|
+
readonly type: "object";
|
|
219
|
+
readonly properties: {
|
|
220
|
+
readonly name: {
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
readonly required: true;
|
|
223
|
+
};
|
|
224
|
+
readonly inferredType: {
|
|
225
|
+
readonly type: "string";
|
|
226
|
+
readonly enum: readonly ["number", "date", "boolean", "string", "empty", "mixed"];
|
|
227
|
+
readonly required: true;
|
|
228
|
+
};
|
|
229
|
+
readonly missing: {
|
|
230
|
+
readonly type: "number";
|
|
231
|
+
readonly required: true;
|
|
232
|
+
};
|
|
233
|
+
readonly missingRate: {
|
|
234
|
+
readonly type: "number";
|
|
235
|
+
readonly required: true;
|
|
236
|
+
};
|
|
237
|
+
readonly unique: {
|
|
238
|
+
readonly type: "number";
|
|
239
|
+
readonly required: true;
|
|
240
|
+
};
|
|
241
|
+
readonly numeric: {
|
|
242
|
+
readonly type: "object";
|
|
243
|
+
readonly properties: {
|
|
244
|
+
readonly count: {
|
|
245
|
+
readonly type: "number";
|
|
246
|
+
readonly required: true;
|
|
247
|
+
};
|
|
248
|
+
readonly distinct: {
|
|
249
|
+
readonly type: "number";
|
|
250
|
+
readonly required: true;
|
|
251
|
+
};
|
|
252
|
+
readonly min: {
|
|
253
|
+
readonly type: "number";
|
|
254
|
+
readonly required: true;
|
|
255
|
+
};
|
|
256
|
+
readonly max: {
|
|
257
|
+
readonly type: "number";
|
|
258
|
+
readonly required: true;
|
|
259
|
+
};
|
|
260
|
+
readonly mean: {
|
|
261
|
+
readonly type: "number";
|
|
262
|
+
readonly required: true;
|
|
263
|
+
};
|
|
264
|
+
readonly median: {
|
|
265
|
+
readonly type: "number";
|
|
266
|
+
readonly required: true;
|
|
267
|
+
};
|
|
268
|
+
readonly p25: {
|
|
269
|
+
readonly type: "number";
|
|
270
|
+
readonly required: true;
|
|
271
|
+
};
|
|
272
|
+
readonly p75: {
|
|
273
|
+
readonly type: "number";
|
|
274
|
+
readonly required: true;
|
|
275
|
+
};
|
|
276
|
+
readonly outliers: {
|
|
277
|
+
readonly type: "number";
|
|
278
|
+
readonly required: true;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
readonly additionalProperties: false;
|
|
282
|
+
};
|
|
283
|
+
readonly topValues: {
|
|
284
|
+
readonly type: "array";
|
|
285
|
+
readonly items: {
|
|
286
|
+
readonly type: "object";
|
|
287
|
+
readonly properties: {
|
|
288
|
+
readonly value: {
|
|
289
|
+
readonly type: "string";
|
|
290
|
+
readonly required: true;
|
|
291
|
+
};
|
|
292
|
+
readonly count: {
|
|
293
|
+
readonly type: "number";
|
|
294
|
+
readonly required: true;
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
readonly additionalProperties: false;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
readonly notes: {
|
|
301
|
+
readonly type: "array";
|
|
302
|
+
readonly items: {
|
|
303
|
+
readonly type: "string";
|
|
304
|
+
};
|
|
305
|
+
readonly required: true;
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
readonly additionalProperties: false;
|
|
309
|
+
};
|
|
310
|
+
readonly required: true;
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
readonly additionalProperties: false;
|
|
314
|
+
};
|
|
315
|
+
//# sourceMappingURL=profile-report-schema.d.ts.map
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CxB,CAAA"}
|