@rpcbase/test 0.356.0 → 0.358.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.
Files changed (41) hide show
  1. package/dist/clearDatabase.js +12 -10
  2. package/dist/clearDatabase.js.map +1 -1
  3. package/dist/cli.js +556 -439
  4. package/dist/cli.js.map +1 -1
  5. package/dist/coverage/collect.js +101 -63
  6. package/dist/coverage/collect.js.map +1 -1
  7. package/dist/coverage/config-loader.js +230 -180
  8. package/dist/coverage/config-loader.js.map +1 -1
  9. package/dist/coverage/config.js +100 -76
  10. package/dist/coverage/config.js.map +1 -1
  11. package/dist/coverage/console-text-report.js +220 -175
  12. package/dist/coverage/console-text-report.js.map +1 -1
  13. package/dist/coverage/files.js +58 -45
  14. package/dist/coverage/files.js.map +1 -1
  15. package/dist/coverage/fixtures.js +38 -27
  16. package/dist/coverage/fixtures.js.map +1 -1
  17. package/dist/coverage/global-setup.js +18 -15
  18. package/dist/coverage/global-setup.js.map +1 -1
  19. package/dist/coverage/index.js +55 -38
  20. package/dist/coverage/index.js.map +1 -1
  21. package/dist/coverage/report.js +466 -341
  22. package/dist/coverage/report.js.map +1 -1
  23. package/dist/coverage/reporter.js +60 -47
  24. package/dist/coverage/reporter.js.map +1 -1
  25. package/dist/coverage/v8-tracker.js +147 -115
  26. package/dist/coverage/v8-tracker.js.map +1 -1
  27. package/dist/index.js +75 -46
  28. package/dist/index.js.map +1 -1
  29. package/dist/runners/playwright.js +563 -438
  30. package/dist/runners/playwright.js.map +1 -1
  31. package/dist/runners/process.d.ts.map +1 -1
  32. package/dist/runners/process.js +183 -125
  33. package/dist/runners/process.js.map +1 -1
  34. package/dist/runners/vitest.js +171 -124
  35. package/dist/runners/vitest.js.map +1 -1
  36. package/dist/serverCoverage.js +42 -28
  37. package/dist/serverCoverage.js.map +1 -1
  38. package/dist/vitest.config.d.ts +1 -1
  39. package/dist/vitest.config.js +74 -62
  40. package/dist/vitest.config.js.map +1 -1
  41. package/package.json +6 -6
@@ -1,88 +1,112 @@
1
1
  import path from "node:path";
2
- //#region src/coverage/config.ts
3
- var DEFAULT_THRESHOLDS = {
4
- branches: 60,
5
- functions: 75,
6
- lines: 75,
7
- statements: 75
2
+ const DEFAULT_THRESHOLDS = {
3
+ branches: 60,
4
+ functions: 75,
5
+ lines: 75,
6
+ statements: 75
8
7
  };
9
- var THRESHOLD_KEYS = Object.keys(DEFAULT_THRESHOLDS);
10
- var THRESHOLD_KEY_SET = new Set(THRESHOLD_KEYS);
8
+ const THRESHOLD_KEYS = Object.keys(DEFAULT_THRESHOLDS);
9
+ const THRESHOLD_KEY_SET = new Set(THRESHOLD_KEYS);
11
10
  function createCoverageConfig(options) {
12
- const { rootDir } = options;
13
- if (!rootDir) throw new Error("createCoverageConfig requires a rootDir");
14
- const resolvedRootDir = path.resolve(rootDir);
15
- const includeAllFiles = options.includeAllFiles !== false;
16
- const collectCoverageFrom = Array.isArray(options.collectCoverageFrom) ? options.collectCoverageFrom.map((pattern) => String(pattern ?? "").trim()).filter((pattern) => pattern.length > 0) : [];
17
- if (collectCoverageFrom.length === 0) throw new Error("createCoverageConfig requires a collectCoverageFrom option");
18
- const testResultsRoot = path.join(resolvedRootDir, "build", "coverage");
19
- const coverageReportDir = path.join(testResultsRoot, "report");
20
- const coverageFileName = options.coverageFileName ?? "v8-coverage.json";
21
- const disabledEnvVar = options.disabledEnvVar ?? "RB_DISABLE_COVERAGE";
22
- const coverageEnabled = process.env[disabledEnvVar] !== "1";
23
- const { global: thresholds, targets: thresholdTargets } = normalizeThresholdOptions(options.thresholds);
24
- return {
25
- rootDir: resolvedRootDir,
26
- collectCoverageFrom,
27
- testResultsRoot,
28
- coverageReportDir,
29
- coverageFileName,
30
- thresholds,
31
- thresholdTargets,
32
- coverageEnabled,
33
- disabledEnvVar,
34
- includeAllFiles
35
- };
11
+ const {
12
+ rootDir
13
+ } = options;
14
+ if (!rootDir) {
15
+ throw new Error("createCoverageConfig requires a rootDir");
16
+ }
17
+ const resolvedRootDir = path.resolve(rootDir);
18
+ const includeAllFiles = options.includeAllFiles !== false;
19
+ const collectCoverageFrom = Array.isArray(options.collectCoverageFrom) ? options.collectCoverageFrom.map((pattern) => String(pattern ?? "").trim()).filter((pattern) => pattern.length > 0) : [];
20
+ if (collectCoverageFrom.length === 0) {
21
+ throw new Error("createCoverageConfig requires a collectCoverageFrom option");
22
+ }
23
+ const testResultsRoot = path.join(resolvedRootDir, "build", "coverage");
24
+ const coverageReportDir = path.join(testResultsRoot, "report");
25
+ const coverageFileName = options.coverageFileName ?? "v8-coverage.json";
26
+ const disabledEnvVar = options.disabledEnvVar ?? "RB_DISABLE_COVERAGE";
27
+ const coverageEnabled = process.env[disabledEnvVar] !== "1";
28
+ const {
29
+ global: thresholds,
30
+ targets: thresholdTargets
31
+ } = normalizeThresholdOptions(options.thresholds);
32
+ return {
33
+ rootDir: resolvedRootDir,
34
+ collectCoverageFrom,
35
+ testResultsRoot,
36
+ coverageReportDir,
37
+ coverageFileName,
38
+ thresholds,
39
+ thresholdTargets,
40
+ coverageEnabled,
41
+ disabledEnvVar,
42
+ includeAllFiles
43
+ };
36
44
  }
37
45
  function normalizeThresholdOptions(rawThresholds) {
38
- const globalThresholds = { ...DEFAULT_THRESHOLDS };
39
- const targets = [];
40
- if (!isPlainObject(rawThresholds)) return {
41
- global: globalThresholds,
42
- targets
43
- };
44
- const thresholdMap = rawThresholds;
45
- for (const key of THRESHOLD_KEYS) {
46
- const value = thresholdMap[key];
47
- if (isThresholdValue(value)) globalThresholds[key] = value;
48
- }
49
- if (Object.prototype.hasOwnProperty.call(thresholdMap, "global")) {
50
- if (!isPlainObject(thresholdMap.global)) throw new Error("coverage thresholds: the `global` override must be an object of metric values");
51
- Object.assign(globalThresholds, pickThresholdOverrides(thresholdMap.global));
52
- }
53
- for (const [pattern, overrides] of Object.entries(thresholdMap)) {
54
- if (pattern === "global" || THRESHOLD_KEY_SET.has(pattern)) continue;
55
- if (!isPlainObject(overrides)) throw new Error(`coverage thresholds: override for "${pattern}" must be an object containing coverage metrics`);
56
- targets.push({
57
- id: pattern,
58
- pattern,
59
- thresholds: {
60
- ...globalThresholds,
61
- ...pickThresholdOverrides(overrides)
62
- }
63
- });
64
- }
65
- return {
66
- global: globalThresholds,
67
- targets
68
- };
46
+ const globalThresholds = {
47
+ ...DEFAULT_THRESHOLDS
48
+ };
49
+ const targets = [];
50
+ if (!isPlainObject(rawThresholds)) {
51
+ return {
52
+ global: globalThresholds,
53
+ targets
54
+ };
55
+ }
56
+ const thresholdMap = rawThresholds;
57
+ for (const key of THRESHOLD_KEYS) {
58
+ const value = thresholdMap[key];
59
+ if (isThresholdValue(value)) {
60
+ globalThresholds[key] = value;
61
+ }
62
+ }
63
+ if (Object.prototype.hasOwnProperty.call(thresholdMap, "global")) {
64
+ if (!isPlainObject(thresholdMap.global)) {
65
+ throw new Error("coverage thresholds: the `global` override must be an object of metric values");
66
+ }
67
+ Object.assign(globalThresholds, pickThresholdOverrides(thresholdMap.global));
68
+ }
69
+ for (const [pattern, overrides] of Object.entries(thresholdMap)) {
70
+ if (pattern === "global" || THRESHOLD_KEY_SET.has(pattern)) {
71
+ continue;
72
+ }
73
+ if (!isPlainObject(overrides)) {
74
+ throw new Error(`coverage thresholds: override for "${pattern}" must be an object containing coverage metrics`);
75
+ }
76
+ targets.push({
77
+ id: pattern,
78
+ pattern,
79
+ thresholds: {
80
+ ...globalThresholds,
81
+ ...pickThresholdOverrides(overrides)
82
+ }
83
+ });
84
+ }
85
+ return {
86
+ global: globalThresholds,
87
+ targets
88
+ };
69
89
  }
70
90
  function pickThresholdOverrides(source) {
71
- const overrides = {};
72
- if (!isPlainObject(source)) return overrides;
73
- for (const key of THRESHOLD_KEYS) {
74
- const value = source[key];
75
- if (isThresholdValue(value)) overrides[key] = value;
76
- }
77
- return overrides;
91
+ const overrides = {};
92
+ if (!isPlainObject(source)) {
93
+ return overrides;
94
+ }
95
+ for (const key of THRESHOLD_KEYS) {
96
+ const value = source[key];
97
+ if (isThresholdValue(value)) {
98
+ overrides[key] = value;
99
+ }
100
+ }
101
+ return overrides;
78
102
  }
79
103
  function isPlainObject(value) {
80
- return value !== null && typeof value === "object" && !Array.isArray(value);
104
+ return value !== null && typeof value === "object" && !Array.isArray(value);
81
105
  }
82
106
  function isThresholdValue(value) {
83
- return typeof value === "number" && Number.isFinite(value);
107
+ return typeof value === "number" && Number.isFinite(value);
84
108
  }
85
- //#endregion
86
- export { createCoverageConfig };
87
-
88
- //# sourceMappingURL=config.js.map
109
+ export {
110
+ createCoverageConfig
111
+ };
112
+ //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["path","CoverageConfig","CoverageHarnessOptions","CoverageThresholdMap","CoverageThresholdOption","CoverageThresholdTarget","CoverageThresholds","DEFAULT_THRESHOLDS","branches","functions","lines","statements","THRESHOLD_KEYS","Object","keys","Array","THRESHOLD_KEY_SET","Set","createCoverageConfig","options","rootDir","Error","resolvedRootDir","resolve","includeAllFiles","collectCoverageFrom","isArray","map","pattern","String","trim","filter","length","testResultsRoot","join","coverageReportDir","coverageFileName","disabledEnvVar","coverageEnabled","process","env","global","thresholds","targets","thresholdTargets","normalizeThresholdOptions","rawThresholds","globalThresholds","isPlainObject","thresholdMap","key","value","isThresholdValue","prototype","hasOwnProperty","call","assign","pickThresholdOverrides","overrides","entries","has","push","id","source","Partial","Record","Number","isFinite"],"sources":["../../src/coverage/config.ts"],"sourcesContent":["import path from \"node:path\"\n\nimport type { CoverageConfig, CoverageHarnessOptions, CoverageThresholdMap, CoverageThresholdOption, CoverageThresholdTarget, CoverageThresholds } from \"./types\"\n\n\nconst DEFAULT_THRESHOLDS = {\n branches: 60,\n functions: 75,\n lines: 75,\n statements: 75,\n}\n\nconst THRESHOLD_KEYS = Object.keys(DEFAULT_THRESHOLDS) as Array<keyof CoverageThresholds>\nconst THRESHOLD_KEY_SET = new Set<string>(THRESHOLD_KEYS as string[])\n\nexport function createCoverageConfig(options: CoverageHarnessOptions): CoverageConfig {\n const { rootDir } = options as CoverageHarnessOptions\n if (!rootDir) {\n throw new Error(\"createCoverageConfig requires a rootDir\")\n }\n\n const resolvedRootDir = path.resolve(rootDir)\n const includeAllFiles = options.includeAllFiles !== false\n\n const collectCoverageFrom = Array.isArray(options.collectCoverageFrom)\n ? options.collectCoverageFrom\n .map((pattern) => String(pattern ?? \"\").trim())\n .filter((pattern) => pattern.length > 0)\n : []\n\n if (collectCoverageFrom.length === 0) {\n throw new Error(\"createCoverageConfig requires a collectCoverageFrom option\")\n }\n\n const testResultsRoot = path.join(resolvedRootDir, \"build\", \"coverage\")\n const coverageReportDir = path.join(testResultsRoot, \"report\")\n const coverageFileName = options.coverageFileName ?? \"v8-coverage.json\"\n const disabledEnvVar = options.disabledEnvVar ?? \"RB_DISABLE_COVERAGE\"\n const coverageEnabled = process.env[disabledEnvVar] !== \"1\"\n\n const { global: thresholds, targets: thresholdTargets } = normalizeThresholdOptions(options.thresholds)\n\n return {\n rootDir: resolvedRootDir,\n collectCoverageFrom,\n testResultsRoot,\n coverageReportDir,\n coverageFileName,\n thresholds,\n thresholdTargets,\n coverageEnabled,\n disabledEnvVar,\n includeAllFiles,\n }\n}\n\nfunction normalizeThresholdOptions(rawThresholds: CoverageThresholdOption | undefined): {\n global: CoverageThresholds\n targets: CoverageThresholdTarget[]\n} {\n const globalThresholds: CoverageThresholds = { ...DEFAULT_THRESHOLDS }\n const targets: CoverageThresholdTarget[] = []\n\n if (!isPlainObject(rawThresholds)) {\n return { global: globalThresholds, targets }\n }\n\n const thresholdMap = rawThresholds as CoverageThresholdMap\n\n for (const key of THRESHOLD_KEYS) {\n const value = thresholdMap[key]\n if (isThresholdValue(value)) {\n globalThresholds[key] = value\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(thresholdMap, \"global\")) {\n if (!isPlainObject(thresholdMap.global)) {\n throw new Error(\"coverage thresholds: the `global` override must be an object of metric values\")\n }\n Object.assign(globalThresholds, pickThresholdOverrides(thresholdMap.global))\n }\n\n for (const [pattern, overrides] of Object.entries(thresholdMap)) {\n if (pattern === \"global\" || THRESHOLD_KEY_SET.has(pattern)) {\n continue\n }\n\n if (!isPlainObject(overrides)) {\n throw new Error(\n `coverage thresholds: override for \"${pattern}\" must be an object containing coverage metrics`,\n )\n }\n\n targets.push({\n id: pattern,\n pattern,\n thresholds: {\n ...globalThresholds,\n ...pickThresholdOverrides(overrides),\n },\n })\n }\n\n return { global: globalThresholds, targets }\n}\n\nfunction pickThresholdOverrides(source: unknown): Partial<CoverageThresholds> {\n const overrides: Partial<CoverageThresholds> = {}\n if (!isPlainObject(source)) {\n return overrides\n }\n\n for (const key of THRESHOLD_KEYS) {\n const value = (source as any)[key]\n if (isThresholdValue(value)) {\n overrides[key] = value\n }\n }\n\n return overrides\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n}\n\nfunction isThresholdValue(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value)\n}\n"],"mappings":";;AAKA,IAAMO,qBAAqB;CACzBC,UAAU;CACVC,WAAW;CACXC,OAAO;CACPC,YAAY;CACb;AAED,IAAMC,iBAAiBC,OAAOC,KAAKP,mBAAmB;AACtD,IAAMS,oBAAoB,IAAIC,IAAYL,eAA2B;AAErE,SAAgBM,qBAAqBC,SAAiD;CACpF,MAAM,EAAEC,YAAYD;AACpB,KAAI,CAACC,QACH,OAAM,IAAIC,MAAM,0CAA0C;CAG5D,MAAMC,kBAAkBtB,KAAKuB,QAAQH,QAAQ;CAC7C,MAAMI,kBAAkBL,QAAQK,oBAAoB;CAEpD,MAAMC,sBAAsBV,MAAMW,QAAQP,QAAQM,oBAAoB,GAClEN,QAAQM,oBACLE,KAAKC,YAAYC,OAAOD,WAAW,GAAG,CAACE,MAAM,CAAC,CAC9CC,QAAQH,YAAYA,QAAQI,SAAS,EAAE,GAC1C,EAAE;AAEN,KAAIP,oBAAoBO,WAAW,EACjC,OAAM,IAAIX,MAAM,6DAA6D;CAG/E,MAAMY,kBAAkBjC,KAAKkC,KAAKZ,iBAAiB,SAAS,WAAW;CACvE,MAAMa,oBAAoBnC,KAAKkC,KAAKD,iBAAiB,SAAS;CAC9D,MAAMG,mBAAmBjB,QAAQiB,oBAAoB;CACrD,MAAMC,iBAAiBlB,QAAQkB,kBAAkB;CACjD,MAAMC,kBAAkBC,QAAQC,IAAIH,oBAAoB;CAExD,MAAM,EAAEI,QAAQC,YAAYC,SAASC,qBAAqBC,0BAA0B1B,QAAQuB,WAAW;AAEvG,QAAO;EACLtB,SAASE;EACTG;EACAQ;EACAE;EACAC;EACAM;EACAE;EACAN;EACAD;EACAb;EACD;;AAGH,SAASqB,0BAA0BC,eAGjC;CACA,MAAMC,mBAAuC,EAAE,GAAGxC,oBAAoB;CACtE,MAAMoC,UAAqC,EAAE;AAE7C,KAAI,CAACK,cAAcF,cAAc,CAC/B,QAAO;EAAEL,QAAQM;EAAkBJ;EAAS;CAG9C,MAAMM,eAAeH;AAErB,MAAK,MAAMI,OAAOtC,gBAAgB;EAChC,MAAMuC,QAAQF,aAAaC;AAC3B,MAAIE,iBAAiBD,MAAM,CACzBJ,kBAAiBG,OAAOC;;AAI5B,KAAItC,OAAOwC,UAAUC,eAAeC,KAAKN,cAAc,SAAS,EAAE;AAChE,MAAI,CAACD,cAAcC,aAAaR,OAAO,CACrC,OAAM,IAAIpB,MAAM,gFAAgF;AAElGR,SAAO2C,OAAOT,kBAAkBU,uBAAuBR,aAAaR,OAAO,CAAC;;AAG9E,MAAK,MAAM,CAACb,SAAS8B,cAAc7C,OAAO8C,QAAQV,aAAa,EAAE;AAC/D,MAAIrB,YAAY,YAAYZ,kBAAkB4C,IAAIhC,QAAQ,CACxD;AAGF,MAAI,CAACoB,cAAcU,UAAU,CAC3B,OAAM,IAAIrC,MACR,sCAAsCO,QAAO,iDAC9C;AAGHe,UAAQkB,KAAK;GACXC,IAAIlC;GACJA;GACAc,YAAY;IACV,GAAGK;IACH,GAAGU,uBAAuBC,UAAS;IACrC;GACD,CAAC;;AAGJ,QAAO;EAAEjB,QAAQM;EAAkBJ;EAAS;;AAG9C,SAASc,uBAAuBM,QAA8C;CAC5E,MAAML,YAAyC,EAAE;AACjD,KAAI,CAACV,cAAce,OAAO,CACxB,QAAOL;AAGT,MAAK,MAAMR,OAAOtC,gBAAgB;EAChC,MAAMuC,QAASY,OAAeb;AAC9B,MAAIE,iBAAiBD,MAAM,CACzBO,WAAUR,OAAOC;;AAIrB,QAAOO;;AAGT,SAASV,cAAcG,OAAkD;AACvE,QAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,CAACpC,MAAMW,QAAQyB,MAAM;;AAG7E,SAASC,iBAAiBD,OAAiC;AACzD,QAAO,OAAOA,UAAU,YAAYe,OAAOC,SAAShB,MAAM"}
1
+ {"version":3,"file":"config.js","sources":["../../src/coverage/config.ts"],"sourcesContent":["import path from \"node:path\"\n\nimport type { CoverageConfig, CoverageHarnessOptions, CoverageThresholdMap, CoverageThresholdOption, CoverageThresholdTarget, CoverageThresholds } from \"./types\"\n\n\nconst DEFAULT_THRESHOLDS = {\n branches: 60,\n functions: 75,\n lines: 75,\n statements: 75,\n}\n\nconst THRESHOLD_KEYS = Object.keys(DEFAULT_THRESHOLDS) as Array<keyof CoverageThresholds>\nconst THRESHOLD_KEY_SET = new Set<string>(THRESHOLD_KEYS as string[])\n\nexport function createCoverageConfig(options: CoverageHarnessOptions): CoverageConfig {\n const { rootDir } = options as CoverageHarnessOptions\n if (!rootDir) {\n throw new Error(\"createCoverageConfig requires a rootDir\")\n }\n\n const resolvedRootDir = path.resolve(rootDir)\n const includeAllFiles = options.includeAllFiles !== false\n\n const collectCoverageFrom = Array.isArray(options.collectCoverageFrom)\n ? options.collectCoverageFrom\n .map((pattern) => String(pattern ?? \"\").trim())\n .filter((pattern) => pattern.length > 0)\n : []\n\n if (collectCoverageFrom.length === 0) {\n throw new Error(\"createCoverageConfig requires a collectCoverageFrom option\")\n }\n\n const testResultsRoot = path.join(resolvedRootDir, \"build\", \"coverage\")\n const coverageReportDir = path.join(testResultsRoot, \"report\")\n const coverageFileName = options.coverageFileName ?? \"v8-coverage.json\"\n const disabledEnvVar = options.disabledEnvVar ?? \"RB_DISABLE_COVERAGE\"\n const coverageEnabled = process.env[disabledEnvVar] !== \"1\"\n\n const { global: thresholds, targets: thresholdTargets } = normalizeThresholdOptions(options.thresholds)\n\n return {\n rootDir: resolvedRootDir,\n collectCoverageFrom,\n testResultsRoot,\n coverageReportDir,\n coverageFileName,\n thresholds,\n thresholdTargets,\n coverageEnabled,\n disabledEnvVar,\n includeAllFiles,\n }\n}\n\nfunction normalizeThresholdOptions(rawThresholds: CoverageThresholdOption | undefined): {\n global: CoverageThresholds\n targets: CoverageThresholdTarget[]\n} {\n const globalThresholds: CoverageThresholds = { ...DEFAULT_THRESHOLDS }\n const targets: CoverageThresholdTarget[] = []\n\n if (!isPlainObject(rawThresholds)) {\n return { global: globalThresholds, targets }\n }\n\n const thresholdMap = rawThresholds as CoverageThresholdMap\n\n for (const key of THRESHOLD_KEYS) {\n const value = thresholdMap[key]\n if (isThresholdValue(value)) {\n globalThresholds[key] = value\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(thresholdMap, \"global\")) {\n if (!isPlainObject(thresholdMap.global)) {\n throw new Error(\"coverage thresholds: the `global` override must be an object of metric values\")\n }\n Object.assign(globalThresholds, pickThresholdOverrides(thresholdMap.global))\n }\n\n for (const [pattern, overrides] of Object.entries(thresholdMap)) {\n if (pattern === \"global\" || THRESHOLD_KEY_SET.has(pattern)) {\n continue\n }\n\n if (!isPlainObject(overrides)) {\n throw new Error(\n `coverage thresholds: override for \"${pattern}\" must be an object containing coverage metrics`,\n )\n }\n\n targets.push({\n id: pattern,\n pattern,\n thresholds: {\n ...globalThresholds,\n ...pickThresholdOverrides(overrides),\n },\n })\n }\n\n return { global: globalThresholds, targets }\n}\n\nfunction pickThresholdOverrides(source: unknown): Partial<CoverageThresholds> {\n const overrides: Partial<CoverageThresholds> = {}\n if (!isPlainObject(source)) {\n return overrides\n }\n\n for (const key of THRESHOLD_KEYS) {\n const value = (source as any)[key]\n if (isThresholdValue(value)) {\n overrides[key] = value\n }\n }\n\n return overrides\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n}\n\nfunction isThresholdValue(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value)\n}\n"],"names":["DEFAULT_THRESHOLDS","branches","functions","lines","statements","THRESHOLD_KEYS","Object","keys","THRESHOLD_KEY_SET","Set","createCoverageConfig","options","rootDir","Error","resolvedRootDir","path","resolve","includeAllFiles","collectCoverageFrom","Array","isArray","map","pattern","String","trim","filter","length","testResultsRoot","join","coverageReportDir","coverageFileName","disabledEnvVar","coverageEnabled","process","env","global","thresholds","targets","thresholdTargets","normalizeThresholdOptions","rawThresholds","globalThresholds","isPlainObject","thresholdMap","key","value","isThresholdValue","prototype","hasOwnProperty","call","assign","pickThresholdOverrides","overrides","entries","has","push","id","source","Number","isFinite"],"mappings":"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"}