@mgwilt/nx-uv 0.2.0 → 1.0.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/README.md CHANGED
@@ -3,8 +3,12 @@
3
3
  [Nx](https://nx.dev/) plugin for running [uv](https://docs.astral.sh/uv/) workflows in [Nx](https://nx.dev/) monorepos.
4
4
 
5
5
  [![CI](https://github.com/mgwilt/nx-uv/actions/workflows/ci.yml/badge.svg)](https://github.com/mgwilt/nx-uv/actions/workflows/ci.yml)
6
- [![Coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage.json)
7
- [![npm beta](https://img.shields.io/npm/v/%40mgwilt%2Fnx-uv/beta?label=npm%20beta&cacheSeconds=300)](https://www.npmjs.com/package/@mgwilt/nx-uv?activeTab=versions)
6
+ [![Coverage lines](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage-lines.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage-lines.json)
7
+ [![Coverage functions](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage-functions.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage-functions.json)
8
+ [![Coverage statements](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage-statements.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage-statements.json)
9
+ [![Coverage branches](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage-branches.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage-branches.json)
10
+ [![Coverage floor](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mgwilt/nx-uv/badges/.github/badges/coverage-floor.json)](https://github.com/mgwilt/nx-uv/blob/badges/.github/badges/coverage-floor.json)
11
+ [![npm release](https://img.shields.io/npm/v/%40mgwilt%2Fnx-uv/latest?label=npm%20release&cacheSeconds=300)](https://www.npmjs.com/package/@mgwilt/nx-uv?activeTab=versions)
8
12
 
9
13
  ## Why this plugin exists
10
14
 
@@ -94,10 +98,10 @@ pnpm create nx-workspace@latest acme-monorepo --preset=ts --packageManager=pnpm
94
98
  cd acme-monorepo
95
99
  ```
96
100
 
97
- 2. Install this plugin (beta channel) and initialize workspace-level [uv](https://docs.astral.sh/uv/) config:
101
+ 2. Install this plugin and initialize workspace-level [uv](https://docs.astral.sh/uv/) config:
98
102
 
99
103
  ```bash
100
- pnpm add -D @mgwilt/nx-uv@beta
104
+ pnpm add -D @mgwilt/nx-uv
101
105
  pnpm nx g @mgwilt/nx-uv:workspace --name=acme --membersGlob='packages/py/*'
102
106
  ```
103
107
 
@@ -297,7 +301,6 @@ pnpm nx g @mgwilt/nx-uv:integration --template=pytorch --project=api
297
301
 
298
302
  - Runtime [uv](https://docs.astral.sh/uv/) compatibility checks verify that `uv` is available and executable.
299
303
  - `uv 0.9.x` and `0.10.x` are currently the tested ranges. Other versions log a warning and continue.
300
- - This package is pre-v1 and published on the [npm](https://www.npmjs.com/) `beta` dist-tag.
301
304
 
302
305
  ## Troubleshooting
303
306
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgwilt/nx-uv",
3
- "version": "0.2.0",
3
+ "version": "1.0.0",
4
4
  "description": "Nx plugin for uv workflows in Nx monorepos",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -10,6 +10,29 @@
10
10
  "nx-uv": "./src/bin/nx-uv.js"
11
11
  },
12
12
  "private": false,
13
+ "scripts": {
14
+ "build": "nx run nx-uv:build",
15
+ "coverage:badge": "nx run nx-uv:coverage-badge",
16
+ "typecheck": "nx run nx-uv:typecheck",
17
+ "format:check": "nx run nx-uv:format-check",
18
+ "lint": "nx run nx-uv:lint",
19
+ "test": "nx run nx-uv:test",
20
+ "test:unit": "nx run nx-uv:test-unit",
21
+ "test:integration": "nx run nx-uv:test-integration",
22
+ "test:e2e": "nx run nx-uv:test-e2e",
23
+ "test:coverage": "nx run nx-uv:test-coverage",
24
+ "tui:local": "pnpm nx run nx-uv:build && node dist/src/bin/nx-uv.js tui",
25
+ "quality:bootstrap": "node tools/check-nx-bootstrap.cjs",
26
+ "quality:fallback": "pnpm exec eslint . && pnpm exec tsc -p tsconfig.lib.json --noEmit && pnpm exec tsc -p tsconfig.spec.json --noEmit && pnpm exec vitest run -c vitest.unit.config.mts && pnpm exec vitest run -c vitest.integration.config.mts && pnpm exec vitest run -c vitest.e2e.config.mts && pnpm exec vitest run -c vitest.coverage.config.mts",
27
+ "quality:local": "pnpm quality:bootstrap && nx run nx-uv:quality-local",
28
+ "quality:ci": "pnpm quality:bootstrap && nx run nx-uv:quality-ci",
29
+ "samples:generate": "node tools/generate-samples.cjs",
30
+ "llms:generate": "node tools/generate-llms.cjs",
31
+ "llms:check": "node tools/check-llms.cjs",
32
+ "release:version": "nx release version",
33
+ "release:publish": "nx release publish --tag latest",
34
+ "commitlint": "commitlint --from=HEAD~1 --to=HEAD"
35
+ },
13
36
  "repository": {
14
37
  "type": "git",
15
38
  "url": "https://github.com/mgwilt/nx-uv.git"
@@ -58,29 +81,5 @@
58
81
  "vite": "^7.3.1"
59
82
  },
60
83
  "executors": "./executors.json",
61
- "generators": "./generators.json",
62
- "scripts": {
63
- "build": "nx run nx-uv:build",
64
- "coverage:badge": "nx run nx-uv:coverage-badge",
65
- "typecheck": "nx run nx-uv:typecheck",
66
- "format:check": "nx run nx-uv:format-check",
67
- "lint": "nx run nx-uv:lint",
68
- "test": "nx run nx-uv:test",
69
- "test:unit": "nx run nx-uv:test-unit",
70
- "test:integration": "nx run nx-uv:test-integration",
71
- "test:e2e": "nx run nx-uv:test-e2e",
72
- "test:coverage": "nx run nx-uv:test-coverage",
73
- "tui:local": "pnpm nx run nx-uv:build && node dist/src/bin/nx-uv.js tui",
74
- "quality:bootstrap": "node tools/check-nx-bootstrap.cjs",
75
- "quality:fallback": "pnpm exec eslint . && pnpm exec tsc -p tsconfig.lib.json --noEmit && pnpm exec tsc -p tsconfig.spec.json --noEmit && pnpm exec vitest run -c vitest.unit.config.mts && pnpm exec vitest run -c vitest.integration.config.mts && pnpm exec vitest run -c vitest.e2e.config.mts && pnpm exec vitest run -c vitest.coverage.config.mts",
76
- "quality:local": "pnpm quality:bootstrap && nx run nx-uv:quality-local",
77
- "quality:ci": "pnpm quality:bootstrap && nx run nx-uv:quality-ci",
78
- "samples:generate": "node tools/generate-samples.cjs",
79
- "llms:generate": "node tools/generate-llms.cjs",
80
- "llms:check": "node tools/check-llms.cjs",
81
- "hooks:install": "lefthook install",
82
- "release:version": "nx release version --preid beta",
83
- "release:publish": "nx release publish --tag beta",
84
- "commitlint": "commitlint --from=HEAD~1 --to=HEAD"
85
- }
86
- }
84
+ "generators": "./generators.json"
85
+ }
package/src/bin/nx-uv.js CHANGED
File without changes
@@ -1,3 +1,21 @@
1
+ export declare const COVERAGE_METRIC_SPECS: readonly [{
2
+ readonly key: "lines";
3
+ readonly label: "coverage lines";
4
+ readonly fileName: "coverage-lines.json";
5
+ }, {
6
+ readonly key: "functions";
7
+ readonly label: "coverage functions";
8
+ readonly fileName: "coverage-functions.json";
9
+ }, {
10
+ readonly key: "statements";
11
+ readonly label: "coverage statements";
12
+ readonly fileName: "coverage-statements.json";
13
+ }, {
14
+ readonly key: "branches";
15
+ readonly label: "coverage branches";
16
+ readonly fileName: "coverage-branches.json";
17
+ }];
18
+ export type CoverageMetricKey = (typeof COVERAGE_METRIC_SPECS)[number]["key"];
1
19
  export interface CoverageMetricSummary {
2
20
  pct: number;
3
21
  }
@@ -15,15 +33,23 @@ export interface ShieldsBadgePayload {
15
33
  message: string;
16
34
  color: string;
17
35
  }
36
+ export interface CoverageBadgeArtifact {
37
+ fileName: string;
38
+ payload: ShieldsBadgePayload;
39
+ }
18
40
  export interface CoverageBadgeCliOptions {
19
41
  summaryPath: string;
20
- outputPath: string;
42
+ outputDir: string;
43
+ legacyOutputPath: string;
21
44
  }
22
45
  export declare function loadCoverageSummary(summaryPath: string): CoverageSummary;
23
46
  export declare function calculateCoveragePercent(summary: CoverageSummary): number;
24
47
  export declare function selectCoverageColor(coveragePercent: number): string;
25
- export declare function createCoverageBadgePayload(coveragePercent: number): ShieldsBadgePayload;
48
+ export declare function createCoverageBadgePayload(coveragePercent: number, label?: string): ShieldsBadgePayload;
26
49
  export declare function writeCoverageBadge(outputPath: string, payload: ShieldsBadgePayload): void;
27
- export declare function generateCoverageBadge(summaryPath: string, outputPath: string): ShieldsBadgePayload;
50
+ export declare function calculateCoverageMetricPercent(summary: CoverageSummary, metric: CoverageMetricKey): number;
51
+ export declare function createCoverageBadgeArtifacts(summary: CoverageSummary): CoverageBadgeArtifact[];
52
+ export declare function writeCoverageBadgeArtifacts(outputDir: string, artifacts: CoverageBadgeArtifact[], legacyOutputPath: string): void;
53
+ export declare function generateCoverageBadges(summaryPath: string, outputDir: string, legacyOutputPath: string): CoverageBadgeArtifact[];
28
54
  export declare function parseCoverageBadgeCliArgs(args: string[]): CoverageBadgeCliOptions;
29
- export declare function runCoverageBadgeCli(args: string[]): ShieldsBadgePayload;
55
+ export declare function runCoverageBadgeCli(args: string[]): CoverageBadgeArtifact[];
@@ -1,15 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COVERAGE_METRIC_SPECS = void 0;
3
4
  exports.loadCoverageSummary = loadCoverageSummary;
4
5
  exports.calculateCoveragePercent = calculateCoveragePercent;
5
6
  exports.selectCoverageColor = selectCoverageColor;
6
7
  exports.createCoverageBadgePayload = createCoverageBadgePayload;
7
8
  exports.writeCoverageBadge = writeCoverageBadge;
8
- exports.generateCoverageBadge = generateCoverageBadge;
9
+ exports.calculateCoverageMetricPercent = calculateCoverageMetricPercent;
10
+ exports.createCoverageBadgeArtifacts = createCoverageBadgeArtifacts;
11
+ exports.writeCoverageBadgeArtifacts = writeCoverageBadgeArtifacts;
12
+ exports.generateCoverageBadges = generateCoverageBadges;
9
13
  exports.parseCoverageBadgeCliArgs = parseCoverageBadgeCliArgs;
10
14
  exports.runCoverageBadgeCli = runCoverageBadgeCli;
11
15
  const node_fs_1 = require("node:fs");
12
16
  const node_path_1 = require("node:path");
17
+ exports.COVERAGE_METRIC_SPECS = [
18
+ {
19
+ key: "lines",
20
+ label: "coverage lines",
21
+ fileName: "coverage-lines.json",
22
+ },
23
+ {
24
+ key: "functions",
25
+ label: "coverage functions",
26
+ fileName: "coverage-functions.json",
27
+ },
28
+ {
29
+ key: "statements",
30
+ label: "coverage statements",
31
+ fileName: "coverage-statements.json",
32
+ },
33
+ {
34
+ key: "branches",
35
+ label: "coverage branches",
36
+ fileName: "coverage-branches.json",
37
+ },
38
+ ];
13
39
  function isRecord(value) {
14
40
  return typeof value === "object" && value !== null;
15
41
  }
@@ -68,10 +94,10 @@ function selectCoverageColor(coveragePercent) {
68
94
  }
69
95
  return "red";
70
96
  }
71
- function createCoverageBadgePayload(coveragePercent) {
97
+ function createCoverageBadgePayload(coveragePercent, label = "coverage") {
72
98
  return {
73
99
  schemaVersion: 1,
74
- label: "coverage",
100
+ label,
75
101
  message: `${coveragePercent.toFixed(1)}%`,
76
102
  color: selectCoverageColor(coveragePercent),
77
103
  };
@@ -80,16 +106,49 @@ function writeCoverageBadge(outputPath, payload) {
80
106
  (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(outputPath), { recursive: true });
81
107
  (0, node_fs_1.writeFileSync)(outputPath, `${JSON.stringify(payload, null, 2)}\n`, "utf-8");
82
108
  }
83
- function generateCoverageBadge(summaryPath, outputPath) {
109
+ function calculateCoverageMetricPercent(summary, metric) {
110
+ return Math.round(summary.total[metric].pct * 10) / 10;
111
+ }
112
+ function createCoverageBadgeArtifacts(summary) {
113
+ const metricArtifacts = exports.COVERAGE_METRIC_SPECS.map((spec) => {
114
+ const coveragePercent = calculateCoverageMetricPercent(summary, spec.key);
115
+ return {
116
+ fileName: spec.fileName,
117
+ payload: createCoverageBadgePayload(coveragePercent, spec.label),
118
+ };
119
+ });
120
+ const floorPercent = calculateCoveragePercent(summary);
121
+ const floorPayload = createCoverageBadgePayload(floorPercent, "coverage floor");
122
+ return [
123
+ ...metricArtifacts,
124
+ {
125
+ fileName: "coverage-floor.json",
126
+ payload: floorPayload,
127
+ },
128
+ ];
129
+ }
130
+ function writeCoverageBadgeArtifacts(outputDir, artifacts, legacyOutputPath) {
131
+ const floorArtifact = artifacts.find((artifact) => artifact.fileName === "coverage-floor.json");
132
+ if (!floorArtifact) {
133
+ throw new Error("Coverage floor artifact was not generated.");
134
+ }
135
+ for (const artifact of artifacts) {
136
+ writeCoverageBadge((0, node_path_1.resolve)(outputDir, artifact.fileName), artifact.payload);
137
+ }
138
+ // Keep a compatibility alias for existing references.
139
+ writeCoverageBadge(legacyOutputPath, floorArtifact.payload);
140
+ }
141
+ function generateCoverageBadges(summaryPath, outputDir, legacyOutputPath) {
84
142
  const summary = loadCoverageSummary(summaryPath);
85
- const coveragePercent = calculateCoveragePercent(summary);
86
- const payload = createCoverageBadgePayload(coveragePercent);
87
- writeCoverageBadge(outputPath, payload);
88
- return payload;
143
+ const artifacts = createCoverageBadgeArtifacts(summary);
144
+ writeCoverageBadgeArtifacts(outputDir, artifacts, legacyOutputPath);
145
+ return artifacts;
89
146
  }
90
147
  function parseCoverageBadgeCliArgs(args) {
91
148
  let summaryPath = "coverage/coverage-summary.json";
92
- let outputPath = ".github/badges/coverage.json";
149
+ let outputDir = ".github/badges";
150
+ let legacyOutputPath = ".github/badges/coverage.json";
151
+ let outputDirExplicitlySet = false;
93
152
  for (let index = 0; index < args.length; index += 1) {
94
153
  const arg = args[index];
95
154
  const next = args[index + 1];
@@ -101,11 +160,31 @@ function parseCoverageBadgeCliArgs(args) {
101
160
  index += 1;
102
161
  continue;
103
162
  }
163
+ if (arg === "--output-dir") {
164
+ if (!next) {
165
+ throw new Error("Missing value for --output-dir");
166
+ }
167
+ outputDir = next;
168
+ outputDirExplicitlySet = true;
169
+ index += 1;
170
+ continue;
171
+ }
172
+ if (arg === "--legacy-output") {
173
+ if (!next) {
174
+ throw new Error(`Missing value for ${arg}`);
175
+ }
176
+ legacyOutputPath = next;
177
+ index += 1;
178
+ continue;
179
+ }
104
180
  if (arg === "--output") {
105
181
  if (!next) {
106
182
  throw new Error("Missing value for --output");
107
183
  }
108
- outputPath = next;
184
+ legacyOutputPath = next;
185
+ if (!outputDirExplicitlySet) {
186
+ outputDir = (0, node_path_1.dirname)(next);
187
+ }
109
188
  index += 1;
110
189
  continue;
111
190
  }
@@ -113,15 +192,18 @@ function parseCoverageBadgeCliArgs(args) {
113
192
  }
114
193
  return {
115
194
  summaryPath,
116
- outputPath,
195
+ outputDir,
196
+ legacyOutputPath,
117
197
  };
118
198
  }
119
199
  function runCoverageBadgeCli(args) {
120
200
  const options = parseCoverageBadgeCliArgs(args);
121
- const payload = generateCoverageBadge((0, node_path_1.resolve)(options.summaryPath), (0, node_path_1.resolve)(options.outputPath));
122
- // Keep output minimal so CI logs stay compact.
123
- process.stdout.write(`coverage badge: ${payload.message}\n`);
124
- return payload;
201
+ const artifacts = generateCoverageBadges((0, node_path_1.resolve)(options.summaryPath), (0, node_path_1.resolve)(options.outputDir), (0, node_path_1.resolve)(options.legacyOutputPath));
202
+ const summaryText = artifacts
203
+ .map((artifact) => `${artifact.fileName}=${artifact.payload.message}`)
204
+ .join(", ");
205
+ process.stdout.write(`coverage badges: ${summaryText}\n`);
206
+ return artifacts;
125
207
  }
126
208
  /* c8 ignore start */
127
209
  if (require.main === module) {
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-badge.js","sourceRoot":"","sources":["../../../src/tools/coverage-badge.ts"],"names":[],"mappings":";;AA+CA,kDAsBC;AAED,4DAUC;AAED,kDAsBC;AAED,gEASC;AAED,gDAMC;AAED,sDAWC;AAED,8DAmCC;AAED,kDAWC;AA3LD,qCAAiE;AACjE,yCAA6C;AA2B7C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,YAAY,CACnB,MAAe,EACf,KAAa;IAEb,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EACxB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,aAAa,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1C,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAClD,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACpD,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEhD,OAAO;QACL,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACxC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC1C,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;SACvC;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAAwB;IAC/D,MAAM,WAAW,GAAG;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;QACvB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;QAC5B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;KAC3B,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB,CAAC,eAAuB;IACzD,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,0BAA0B,CACxC,eAAuB;IAEvB,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACzC,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,UAAkB,EAClB,OAA4B;IAE5B,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,IAAA,uBAAa,EAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,UAAkB;IAElB,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAE5D,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,yBAAyB,CACvC,IAAc;IAEd,IAAI,WAAW,GAAG,gCAAgC,CAAC;IACnD,IAAI,UAAU,GAAG,8BAA8B,CAAC;IAEhD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE7B,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAc;IAChD,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,qBAAqB,CACnC,IAAA,mBAAO,EAAC,OAAO,CAAC,WAAW,CAAC,EAC5B,IAAA,mBAAO,EAAC,OAAO,CAAC,UAAU,CAAC,CAC5B,CAAC;IAEF,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,qBAAqB;AACrB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AACD,oBAAoB"}
1
+ {"version":3,"file":"coverage-badge.js","sourceRoot":"","sources":["../../../src/tools/coverage-badge.ts"],"names":[],"mappings":"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"}