diff --git a/scripts/instrument-plugin.sh b/scripts/instrument-plugin.sh index a045aeac0..71221e449 100755 --- a/scripts/instrument-plugin.sh +++ b/scripts/instrument-plugin.sh @@ -82,10 +82,12 @@ while IFS= read -r PROD_IMAGE; do PLUGIN_PATH="" if [[ -n "$PACKAGES_LABEL" && "$PACKAGES_LABEL" != "" ]]; then - # Decode base64 and extract first plugin name - # Expected JSON: [{"name":"backstage-community-plugin-acs","version":"0.2.0",...}] - # The "name" field is the directory path inside the container - PLUGIN_PATH=$(echo "$PACKAGES_LABEL" | base64 -d 2>/dev/null | jq -r '.[0].name // empty' 2>/dev/null || echo "") + # Decode base64 and extract the plugin directory path inside the container. + # Actual JSON shape: [{"": {"name":"@scope/pkg-dynamic","version":...}}] + # The directory path is the OBJECT KEY, not a "name" field. (An older `.[0].name` + # read returned empty and only worked because of the metadata fallback below.) + # Fall back to `.[0].name` for any legacy flat-shaped labels. + PLUGIN_PATH=$(echo "$PACKAGES_LABEL" | base64 -d 2>/dev/null | jq -r '.[0] as $p | (if ($p.name | type) == "string" then $p.name else ($p | keys[0]) end) // empty' 2>/dev/null || echo "") if [[ -n "$PLUGIN_PATH" ]]; then echo " Plugin path (from OCI label): $PLUGIN_PATH" fi @@ -113,46 +115,74 @@ while IFS= read -r PROD_IMAGE; do continue fi - # Create temp container and extract plugin bundle + # Create temp container to extract the plugin bundle(s) WORK_DIR=$(mktemp -d) # Plugin images are static bundles with no CMD/ENTRYPOINT, so we provide a dummy command CID=$(podman create "$PROD_IMAGE" /bin/true) - if ! podman cp "$CID:$PLUGIN_PATH/dist" "$WORK_DIR/dist-original"; then - echo " ❌ Failed to extract plugin bundle from container - skipping" - podman rm "$CID" || true - rm -rf "$WORK_DIR" - SKIPPED_COUNT=$((SKIPPED_COUNT + 1)) - continue - fi + # RHDH ships up to two frontend bundles per plugin and which one it actually + # serves/executes at runtime depends on the deployment: the Module Federation + # bundle (`dist/`) for the new frontend system and the Scalprum bundle + # (`dist-scalprum/`) for the legacy loader. Instrumenting only `dist/` leaves + # `window.__coverage__` undefined whenever the browser runs the Scalprum bundle, + # so we instrument every bundle that exists and overlay them all. + BUNDLE_DIRS=(dist dist-scalprum) + COPY_LINES="" + TOTAL_JS_COUNT=0 + + for BUNDLE in "${BUNDLE_DIRS[@]}"; do + # Not every plugin ships every bundle; quietly skip the absent ones. + if ! podman cp "$CID:$PLUGIN_PATH/$BUNDLE" "$WORK_DIR/orig-$BUNDLE" 2>/dev/null; then + echo " No $BUNDLE/ in image - skipping that bundle" + continue + fi - podman rm "$CID" + # Instrument with nyc (pinned version for reproducibility). + # Must run from work directory to avoid "outside project root" errors. + echo " Instrumenting $BUNDLE/ with Istanbul/nyc..." + if ! (cd "$WORK_DIR" && npx --yes nyc@18.0.0 instrument "orig-$BUNDLE" "inst-$BUNDLE" --source-map); then + echo " ❌ Instrumentation of $BUNDLE/ failed - skipping that bundle" + continue + fi - # Instrument with nyc (pinned version for reproducibility) - # Must run from work directory to avoid "outside project root" errors - echo " Instrumenting with Istanbul/nyc..." - if ! (cd "$WORK_DIR" && npx --yes nyc@18.0.0 instrument dist-original dist-instrumented --source-map); then - echo " ❌ Instrumentation failed - skipping" - rm -rf "$WORK_DIR" - SKIPPED_COUNT=$((SKIPPED_COUNT + 1)) - continue - fi + # Fix NYC's global access pattern for modern browsers. + # NYC emits `new Function("return this")()`, which RHDH's CSP (no unsafe-eval) + # blocks — leaving coverage uncollected. Replace it with `globalThis`. + find "$WORK_DIR/inst-$BUNDLE" -name "*.js" -type f -exec sed -i \ + 's/var global=new Function("return this")();/var global=globalThis;/g' {} \; + + # Loudly flag any file where the global-scope fix did not apply: a silent miss + # means coverage runs but never reaches window.__coverage__. + UNFIXED_COUNT=$({ grep -rl 'new Function("return this")' "$WORK_DIR/inst-$BUNDLE/" --include="*.js" 2>/dev/null || true; } | wc -l | tr -d ' ') + if [[ "$UNFIXED_COUNT" -ne 0 ]]; then + echo " ⚠️ $UNFIXED_COUNT file(s) in $BUNDLE/ still use new Function(\"return this\") after the fix" + fi + + BUNDLE_JS_COUNT=$({ grep -rl "__coverage__" "$WORK_DIR/inst-$BUNDLE/" --include="*.js" 2>/dev/null || true; } | wc -l | tr -d ' ') + if [[ "$BUNDLE_JS_COUNT" -eq 0 ]]; then + echo " ❌ No __coverage__ found in instrumented $BUNDLE/ - skipping that bundle" + continue + fi + echo " ✓ Instrumented $BUNDLE_JS_COUNT JS files in $BUNDLE/" + TOTAL_JS_COUNT=$((TOTAL_JS_COUNT + BUNDLE_JS_COUNT)) + COPY_LINES+="COPY inst-$BUNDLE/ $PLUGIN_PATH/$BUNDLE/"$'\n' + done - # Verify instrumentation - JS_COUNT=$(grep -r "__coverage__" "$WORK_DIR/dist-instrumented/" --include="*.js" -l 2>/dev/null | wc -l | tr -d ' ') - if [[ "$JS_COUNT" -eq 0 ]]; then - echo " ❌ No __coverage__ found in instrumented files - skipping" + podman rm "$CID" + + if [[ "$TOTAL_JS_COUNT" -eq 0 ]]; then + echo " ❌ No bundles could be instrumented - skipping" rm -rf "$WORK_DIR" SKIPPED_COUNT=$((SKIPPED_COUNT + 1)) continue fi - echo " ✓ Instrumented $JS_COUNT JS files" + echo " ✓ Instrumented $TOTAL_JS_COUNT JS files total" - # Build coverage image (copy instrumented files over production image) - cat > "$WORK_DIR/Containerfile" < "$WORK_DIR/Containerfile" # Generate coverage image tag: append __coverage suffix to tag # Example: plugin:pr_123__1.2.3 → plugin:pr_123__1.2.3__coverage @@ -160,13 +190,30 @@ EOF IMAGE_TAG="${PROD_IMAGE##*:}" COVERAGE_IMAGE="${IMAGE_BASE}:${IMAGE_TAG}__coverage" - if ! podman build -t "$COVERAGE_IMAGE" -f "$WORK_DIR/Containerfile" "$WORK_DIR"; then + # CRITICAL: --squash-all flattens the result into a SINGLE layer. + # RHDH's install-dynamic-plugins (image-cache.ts: downloadAndLocateTarball) + # only ever extracts manifest.layers[0] — it assumes dynamic-plugin images are + # single-layer. A plain `FROM prod + COPY` produces a multi-layer image whose + # FIRST layer is the original (uninstrumented) base, so RHDH would serve the + # original code and ignore our instrumented overlay layers. Squashing merges + # the overlays into one layer (instrumented files win), so layers[0] carries + # the instrumentation that actually reaches the browser. + if ! podman build --squash-all -t "$COVERAGE_IMAGE" -f "$WORK_DIR/Containerfile" "$WORK_DIR"; then echo " ❌ Failed to build coverage image - skipping" rm -rf "$WORK_DIR" SKIPPED_COUNT=$((SKIPPED_COUNT + 1)) continue fi + # Verify the image is single-layer so RHDH's layers[0]-only extraction sees + # the instrumented filesystem. Warn loudly if squashing did not collapse it. + LAYER_COUNT=$(podman inspect "$COVERAGE_IMAGE" --format '{{len .RootFS.Layers}}' 2>/dev/null || echo "?") + if [[ "$LAYER_COUNT" != "1" ]]; then + echo " ⚠️ Coverage image has $LAYER_COUNT layers (expected 1) — RHDH only reads layers[0], coverage may not load" + else + echo " ✓ Coverage image squashed to a single layer" + fi + # Push coverage image if ! podman push "$COVERAGE_IMAGE"; then echo " ❌ Failed to push coverage image" diff --git a/workspaces/tech-radar/.coverage-bootstrap b/workspaces/tech-radar/.coverage-bootstrap new file mode 100644 index 000000000..51b3d9a72 --- /dev/null +++ b/workspaces/tech-radar/.coverage-bootstrap @@ -0,0 +1,13 @@ +# E2E Coverage Infrastructure Validation + +This file is used to trigger E2E coverage collection for the tech-radar workspace. + +**Purpose**: Validate that PR #2383 coverage infrastructure works end-to-end: +1. `/publish` command builds plugin images +2. `instrument` job creates `__coverage` tagged images +3. E2E tests collect coverage during execution +4. Coverage is uploaded to Codecov with upstream repo attribution + +**Timeline**: This PR will be closed without merge after validation completes. + +**Test Date**: 2026-06-03 diff --git a/workspaces/tech-radar/e2e-tests/package.json b/workspaces/tech-radar/e2e-tests/package.json index 4ef5f005a..5e52c4efb 100644 --- a/workspaces/tech-radar/e2e-tests/package.json +++ b/workspaces/tech-radar/e2e-tests/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@eslint/js": "10.0.1", "@playwright/test": "1.59.1", - "@red-hat-developer-hub/e2e-test-utils": "1.1.45", + "@red-hat-developer-hub/e2e-test-utils": "gustavolira/rhdh-e2e-test-utils#debug/deep-coverage-investigation", "@types/node": "25.5.2", "eslint": "10.2.0", "eslint-plugin-check-file": "3.3.1", diff --git a/workspaces/tech-radar/e2e-tests/tests/specs/tech-radar.spec.ts b/workspaces/tech-radar/e2e-tests/tests/specs/tech-radar.spec.ts index e9543cd5a..ece7fe501 100644 --- a/workspaces/tech-radar/e2e-tests/tests/specs/tech-radar.spec.ts +++ b/workspaces/tech-radar/e2e-tests/tests/specs/tech-radar.spec.ts @@ -43,9 +43,76 @@ test.describe("Test tech-radar plugin", () => { // await verifyRadarDetails(page, "Storage", "AWS S3"); await verifyRadarDetails(page, "Frameworks", "React"); await verifyRadarDetails(page, "Infrastructure", "GitHub Actions"); + + // Diagnostic only: confirm whether the JS bundles RHDH actually SERVES at + // runtime are the instrumented ones. The `__coverage` image instruments the + // plugin's `dist/` (and now `dist-scalprum/`), but if RHDH serves/regenerates + // a different bundle, `window.__coverage__` is never created. The probe fetches + // the served Module Federation and Scalprum entry points and reports whether + // they contain Istanbul markers. No-op outside coverage mode; never fails. + await probeServedAssetsForInstrumentation(page); }); }); +async function probeServedAssetsForInstrumentation(page: Page) { + if ( + process.env.E2E_COLLECT_COVERAGE !== "true" && + process.env.E2E_COLLECT_COVERAGE !== "1" + ) { + return; + } + + const origin = new URL(page.url()).origin; + + // Report whether a fetched JS body carries Istanbul instrumentation. + const reportBody = (url: string, body: string) => { + const hasCoverageVar = body.includes("__coverage__"); + const hasCovFn = /cov_[a-z0-9]+\(\)/.test(body); + const hasUnfixedGlobal = body.includes('new Function("return this")'); + console.warn( + `[coverage-probe] instrumented=${hasCoverageVar && hasCovFn} __coverage__=${hasCoverageVar} cov_fn=${hasCovFn} unfixedGlobal=${hasUnfixedGlobal} bytes=${body.length} <- ${url}`, + ); + }; + + const fetchText = async (url: string): Promise => { + try { + const res = await page.request.get(url); + if (!res.ok()) { + console.warn(`[coverage-probe] HTTP ${res.status()} <- ${url}`); + return null; + } + return await res.text(); + } catch (err) { + console.warn(`[coverage-probe] fetch failed for ${url}: ${err}`); + return null; + } + }; + + // 1) Module Federation entry point (served from the plugin's dist/). + const remoteEntry = `${origin}/dynamic-features/remotes/@backstage-community/plugin-tech-radar-dynamic/remoteEntry.js`; + const remoteEntryBody = await fetchText(remoteEntry); + if (remoteEntryBody !== null) reportBody(remoteEntry, remoteEntryBody); + + // 2) Scalprum bundle (served from the plugin's dist-scalprum/): discover the + // actual hashed script name from the plugin manifest, then fetch it. + const scalprumBase = `${origin}/api/scalprum/backstage-community.plugin-tech-radar`; + const manifestBody = await fetchText(`${scalprumBase}/plugin-manifest.json`); + if (manifestBody !== null) { + try { + const manifest = JSON.parse(manifestBody) as { loadScripts?: string[] }; + for (const script of manifest.loadScripts ?? []) { + const scriptUrl = `${scalprumBase}/${script}`; + const scriptBody = await fetchText(scriptUrl); + if (scriptBody !== null) reportBody(scriptUrl, scriptBody); + } + } catch (err) { + console.warn( + `[coverage-probe] could not parse scalprum manifest: ${err}`, + ); + } + } +} + async function verifyRadarDetails(page: Page, section: string, text: string) { const sectionLocator = page .locator(`h2:has-text("${section}")`) diff --git a/workspaces/tech-radar/e2e-tests/yarn.lock b/workspaces/tech-radar/e2e-tests/yarn.lock index c247c5e5f..129485b40 100644 --- a/workspaces/tech-radar/e2e-tests/yarn.lock +++ b/workspaces/tech-radar/e2e-tests/yarn.lock @@ -93,29 +93,39 @@ __metadata: linkType: hard "@eslint/plugin-kit@npm:^0.7.0": - version: 0.7.1 - resolution: "@eslint/plugin-kit@npm:0.7.1" + version: 0.7.2 + resolution: "@eslint/plugin-kit@npm:0.7.2" dependencies: "@eslint/core": "npm:^1.2.1" levn: "npm:^0.4.1" - checksum: 10/8f923f4cdadadd215e0c2028e6a53101bb148a7780cdb4dc8cd69b0c77fc88496742e87e0605b12905ff715e2c7ad6cbd2d92c5653cdbf91cca1e229b5022c1f + checksum: 10/ef9fc6f8ca28e132d4c81cfbaa92274800d1d73bb9d6ef2124613dd39b7f09e3592deb64bad10b183bff78db5465d4b100f522d994c8550424526b9ac4a072b0 languageName: node linkType: hard -"@humanfs/core@npm:^0.19.1": - version: 0.19.1 - resolution: "@humanfs/core@npm:0.19.1" - checksum: 10/270d936be483ab5921702623bc74ce394bf12abbf57d9145a69e8a0d1c87eb1c768bd2d93af16c5705041e257e6d9cc7529311f63a1349f3678abc776fc28523 +"@humanfs/core@npm:^0.19.2": + version: 0.19.2 + resolution: "@humanfs/core@npm:0.19.2" + dependencies: + "@humanfs/types": "npm:^0.15.0" + checksum: 10/c6c0273721ec8df3d36a57c390a11a168d0a2f513d78bceb25165bded4fcb73609b1a317edc6c8f331cefd4b47285dde0b1e6679e08ef7f062232ec14fe05312 languageName: node linkType: hard "@humanfs/node@npm:^0.16.6": - version: 0.16.7 - resolution: "@humanfs/node@npm:0.16.7" + version: 0.16.8 + resolution: "@humanfs/node@npm:0.16.8" dependencies: - "@humanfs/core": "npm:^0.19.1" + "@humanfs/core": "npm:^0.19.2" + "@humanfs/types": "npm:^0.15.0" "@humanwhocodes/retry": "npm:^0.4.0" - checksum: 10/b3633d3dce898592cac515ba5e6693c78e6be92863541d3eaf2c009b10f52b2fa62ff6e6e06f240f2447ddbe7b5f1890bc34e9308470675c876eee207553a08d + checksum: 10/ed01b3c066d9cec7526d139b9e71ca00ee4a30b3b5f5f5c198eb069c3509a3e167e180ba7e1e5a83b9571e906c4908bd20402b47586887452311af7354995e95 + languageName: node + linkType: hard + +"@humanfs/types@npm:^0.15.0": + version: 0.15.0 + resolution: "@humanfs/types@npm:0.15.0" + checksum: 10/dea3cc7fd8f8d4d088ed8d0a9921cf12bd8e1cdf40a6133106b03a6e2aebcc9a6f1771b3643b7ec71baae90d08245db34069dfcc861da8d678662741e6c3c986 languageName: node linkType: hard @@ -133,22 +143,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.1": - version: 5.0.1 - resolution: "@isaacs/brace-expansion@npm:5.0.1" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10/aec226065bc4285436a27379e08cc35bf94ef59f5098ac1c026495c9ba4ab33d851964082d3648d56d63eb90f2642867bd15a3e1b810b98beb1a8c14efce6a94 - languageName: node - linkType: hard - "@isaacs/fs-minipass@npm:^4.0.0": version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" @@ -210,28 +204,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^4.0.0": - version: 4.0.0 - resolution: "@npmcli/agent@npm:4.0.0" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^11.2.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10/1a81573becc60515031accc696e6405e9b894e65c12b98ef4aeee03b5617c41948633159dbf6caf5dde5b47367eeb749bdc7b7dfb21960930a9060a935c6f636 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^5.0.0": - version: 5.0.0 - resolution: "@npmcli/fs@npm:5.0.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10/4935c7719d17830d0f9fa46c50be17b2a3c945cec61760f6d0909bce47677c42e1810ca673305890f9e84f008ec4d8e841182f371e42100a8159d15f22249208 - languageName: node - linkType: hard - "@otplib/core@npm:^12.0.1": version: 12.0.1 resolution: "@otplib/core@npm:12.0.1" @@ -291,9 +263,9 @@ __metadata: languageName: node linkType: hard -"@red-hat-developer-hub/e2e-test-utils@npm:1.1.45": - version: 1.1.45 - resolution: "@red-hat-developer-hub/e2e-test-utils@npm:1.1.45" +"@red-hat-developer-hub/e2e-test-utils@gustavolira/rhdh-e2e-test-utils#debug/deep-coverage-investigation": + version: 2.1.0 + resolution: "@red-hat-developer-hub/e2e-test-utils@https://github.com/gustavolira/rhdh-e2e-test-utils.git#commit=fcf75fba88811cd4982a7abef6c8837fc6f8926d" dependencies: "@axe-core/playwright": "npm:4.11.1" "@backstage-community/plugin-rbac-common": "npm:1.26.0" @@ -316,7 +288,7 @@ __metadata: zx: "npm:8.8.5" peerDependencies: "@playwright/test": ^1.57.0 - checksum: 10/32353ca9f259b9c5b025164ec13763cffb7dc3a54621d2f1db3e29808adea66219ad0b6aa04abb879e622478cf3c368dbeb3b028e99538199bdb58b3e0f63e11 + checksum: 10/273f39bfa7f947e8c9c50b2996598408de54d0928010b5588a2643530216cad04ab9427ddc3d9dca7246341c3d30758a35d5406e3b2318b266aa9d34602fd73d languageName: node linkType: hard @@ -328,9 +300,9 @@ __metadata: linkType: hard "@types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": - version: 1.0.8 - resolution: "@types/estree@npm:1.0.8" - checksum: 10/25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 + version: 1.0.9 + resolution: "@types/estree@npm:1.0.9" + checksum: 10/16aabfa703b5bdac83f719b07ce92a11b2d3c9b8628eacc92889d8af46cab2d78fc45c7b5378de383d0500585cea5c2f79125eeddfe5fbc6bd6a27eb0c8ccee5 languageName: node linkType: hard @@ -359,11 +331,11 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 25.2.3 - resolution: "@types/node@npm:25.2.3" + version: 25.9.2 + resolution: "@types/node@npm:25.9.2" dependencies: - undici-types: "npm:~7.16.0" - checksum: 10/46962e3c1c0205da5b637c2e924f4eb03ce16f384af686b69afeb5fd4f8274d9a570375f8a24de2750633b69cb7ac33f0e458d9c3f20a66e12eb3a569499062d + undici-types: "npm:>=7.24.0 <7.24.7" + checksum: 10/4ec76a3c9d51866cea5c6a5b17d52a2113b387e7fa812303bf20cc2949ff5e2b2bafcdef693c21ff8235d370ec2807961dc1075eb6bbea661916a5bbd84b6511 languageName: node linkType: hard @@ -377,11 +349,11 @@ __metadata: linkType: hard "@types/node@npm:^24.0.0": - version: 24.10.13 - resolution: "@types/node@npm:24.10.13" + version: 24.13.1 + resolution: "@types/node@npm:24.13.1" dependencies: - undici-types: "npm:~7.16.0" - checksum: 10/c779d14cf17758a9d603e0c0978c8045bd070e259617ec16f4ddac419ec11aac0e0cf2bb013dab008fdbd2f46c39f82397884662bbdfabeb19bef0079679ea48 + undici-types: "npm:~7.18.0" + checksum: 10/44aef6ada09b68f69b22d8dc6e84e2a40135af97ee4c0c5203c77fc27d7363a1b3659b71e82e4530de7786ed5e4ea6dd42579dcc9708dea9c1ab40e5bdd9c48e languageName: node linkType: hard @@ -453,7 +425,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.58.1, @typescript-eslint/tsconfig-utils@npm:^8.58.1": +"@typescript-eslint/tsconfig-utils@npm:8.58.1": version: 8.58.1 resolution: "@typescript-eslint/tsconfig-utils@npm:8.58.1" peerDependencies: @@ -462,6 +434,15 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/tsconfig-utils@npm:^8.58.1": + version: 8.61.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.61.0" + peerDependencies: + typescript: ">=4.8.4 <6.1.0" + checksum: 10/f678ff5ec887a27d8e590e0c67403b12e372a027ab036dcfc1e3ef614d3bed7a3c455a65fa0a87ff7dae5b0ad1c49cf4aa40639cc368d7eb424efe8349d9cb9f + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:8.58.1": version: 8.58.1 resolution: "@typescript-eslint/type-utils@npm:8.58.1" @@ -478,13 +459,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.58.1, @typescript-eslint/types@npm:^8.58.1": +"@typescript-eslint/types@npm:8.58.1": version: 8.58.1 resolution: "@typescript-eslint/types@npm:8.58.1" checksum: 10/447e1351af8a47297096f063b327c69b1c986af89e39cb39e142bb35d7bec2ce8f34f31edcf62d1beb2e09a38e2029b12b50b335dae4e7c9ff49bd82f9127523 languageName: node linkType: hard +"@typescript-eslint/types@npm:^8.58.1": + version: 8.61.0 + resolution: "@typescript-eslint/types@npm:8.61.0" + checksum: 10/8e1e1cf5d092beed1a974b3b5d7cc20219ad3e4501b85bbef5bec1c81ab50b09ee70093ad2195c3061c499e804d63aac38dcc20293342b1fa774ba743c0d63bf + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:8.58.1": version: 8.58.1 resolution: "@typescript-eslint/typescript-estree@npm:8.58.1" @@ -554,7 +542,7 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": +"agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" checksum: 10/79bef167247789f955aaba113bae74bf64aa1e1acca4b1d6bb444bdf91d82c3e07e9451ef6a6e2e35e8f71a6f97ce33e3d855a5328eb9fad1bc3cc4cfd031ed8 @@ -562,14 +550,14 @@ __metadata: linkType: hard "ajv@npm:^6.14.0": - version: 6.14.0 - resolution: "ajv@npm:6.14.0" + version: 6.15.0 + resolution: "ajv@npm:6.15.0" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 10/c71f14dd2b6f2535d043f74019c8169f7aeb1106bafbb741af96f34fdbf932255c919ddd46344043d03b62ea0ccb319f83667ec5eedf612393f29054fe5ce4a5 + checksum: 10/0916dda09c152fb5857bc1cc7ce61718e9cec5b7faeff44a74f5e324eed8a556e1a84856724ea322a067b436ecad9f74ac8295fd395449788cca52f0c25bd5fb languageName: node linkType: hard @@ -602,21 +590,21 @@ __metadata: linkType: hard "axe-core@npm:~4.11.1": - version: 4.11.1 - resolution: "axe-core@npm:4.11.1" - checksum: 10/bbc8e8959258a229b92fbaa73437050825579815051cac7b0fdbb6752946fea226e403bfeeef3d60d712477bdd4c01afdc8455f27c3d85e4251df88b032b6250 + version: 4.11.4 + resolution: "axe-core@npm:4.11.4" + checksum: 10/49095daa422d05d99a90b39301a3b5c971e234a4593403dfd6701df637a3e550bcfd7bd096709c5643564dd069208513247791f367790e0605d15386fb2a7bfe languageName: node linkType: hard "b4a@npm:^1.6.4": - version: 1.7.3 - resolution: "b4a@npm:1.7.3" + version: 1.8.1 + resolution: "b4a@npm:1.8.1" peerDependencies: react-native-b4a: "*" peerDependenciesMeta: react-native-b4a: optional: true - checksum: 10/048ddd0eeec6a75e6f8dee07d52354e759032f0ef678b556e05bf5a137d7a4102002cadb953b3fb37a635995a1013875d715d115dbafaf12bcad6528d2166054 + checksum: 10/8536650b525f9f916e8fff9f5976fbeba2fc3238f047cad52e91073cf9825306ce7a68d0077ba2d06e3d20c95b445dccc2ab97ed45773331244d82251329cf8d languageName: node linkType: hard @@ -628,20 +616,20 @@ __metadata: linkType: hard "bare-events@npm:^2.5.4, bare-events@npm:^2.7.0": - version: 2.8.2 - resolution: "bare-events@npm:2.8.2" + version: 2.9.1 + resolution: "bare-events@npm:2.9.1" peerDependencies: bare-abort-controller: "*" peerDependenciesMeta: bare-abort-controller: optional: true - checksum: 10/f31848ea2f5627c3a50aadfc17e518a602629f7a6671da1352975cc6c8a520441fcc9d93c0a21f8f95de65b1a5133fcd5f766d312f3d5a326dde4fe7d2fc575f + checksum: 10/0692be1767f4f326e39c8b1ec76f88e9f566d96fce4fe23ff10c1a6e69843237d1eee0d14a52d9aa4b89c8efa6511fe6c0e640d96fa8586241bfa877c4f7bb46 languageName: node linkType: hard -"bare-fs@npm:^4.0.1": - version: 4.5.3 - resolution: "bare-fs@npm:4.5.3" +"bare-fs@npm:^4.0.1, bare-fs@npm:^4.5.5": + version: 4.7.2 + resolution: "bare-fs@npm:4.7.2" dependencies: bare-events: "npm:^2.5.4" bare-path: "npm:^3.0.0" @@ -653,58 +641,62 @@ __metadata: peerDependenciesMeta: bare-buffer: optional: true - checksum: 10/7f0d40af9182a345f3ac901ae71e08bf1db9ad27ee9799d0bd88a512b3595fdd59f712f38cfa30d85db3f8f1e491350e5277f8ac6ed3c597418e4116445701cb + checksum: 10/a0fafaf46e6a3b77e7d36ff34f1f71e417d548c4ebac90238a0e42376b8efa1698f820133fbf8a09f6b6cb14cbd19f782d9c8bb8263cdf3c8e55e27ad2c1d648 languageName: node linkType: hard "bare-os@npm:^3.0.1": - version: 3.6.2 - resolution: "bare-os@npm:3.6.2" - checksum: 10/11e127cdce86444be2039a28f1e25a5635f3e4ada09aeb35b33d524766b51c5f71db3dc1e8d8d88018ea5255e9f6663a55174960ca45f002132d7808b9b34e29 + version: 3.9.1 + resolution: "bare-os@npm:3.9.1" + checksum: 10/2a106aca9eeb1cf41e30403410c9fa81a9e13c25818debc21444f2485158e01e65f10daff37acab0cbf9460c00e64e6bcaedef07b25a9171ec1e45485213ff50 languageName: node linkType: hard "bare-path@npm:^3.0.0": - version: 3.0.0 - resolution: "bare-path@npm:3.0.0" + version: 3.0.1 + resolution: "bare-path@npm:3.0.1" dependencies: bare-os: "npm:^3.0.1" - checksum: 10/712d90e9cd8c3263cc11b0e0d386d1531a452706d7840c081ee586b34b00d72544e65df7a40013d47c1b177277495225deeede65cb2984db88a979cb65aaa2ff + checksum: 10/278e4bee8cff9c6b7d20e63c2f57832f813536489e70f48f9adf1cfb8402e4672425a764605cb666090878ff46b2020488c3c9a1b967fe205f962b08d70300f8 languageName: node linkType: hard "bare-stream@npm:^2.6.4": - version: 2.7.0 - resolution: "bare-stream@npm:2.7.0" + version: 2.13.1 + resolution: "bare-stream@npm:2.13.1" dependencies: - streamx: "npm:^2.21.0" + streamx: "npm:^2.25.0" + teex: "npm:^1.0.1" peerDependencies: + bare-abort-controller: "*" bare-buffer: "*" bare-events: "*" peerDependenciesMeta: + bare-abort-controller: + optional: true bare-buffer: optional: true bare-events: optional: true - checksum: 10/fe8f6e5a8e6d66e9210b4810060e8a25c6e78f9a8ee230c7dd2083b3ad48a79b1993e98eecc8ebd7890b336c66796da457aa8a2253bbb7a31e0e3a0f06bb1f5e + checksum: 10/50aa90a7005d71c1af8fafcc84f378bd4d7c2dd293a581ffe3899bee39b0d2eb07c47e1092f581fa5b199a63c0ad2618b150c0ab716658727e3fcc7fd7d1e401 languageName: node linkType: hard "bare-url@npm:^2.2.2": - version: 2.3.2 - resolution: "bare-url@npm:2.3.2" + version: 2.4.5 + resolution: "bare-url@npm:2.4.5" dependencies: bare-path: "npm:^3.0.0" - checksum: 10/aa203d79e2dafdb47a4e3bee398cb7db5c7eabcf0b3adf1e1530a21ac69806d1ca05b3343666e3aeda9fc3568c995272deea8ae3cead77ad00f66a7e415de0ef + checksum: 10/65d7a906dae5051ba37d8b96fd3cd1ba8b8e1a7f74340a363c6b45123908d707a4d58c4e21c97f6735c4dfcd6c499d353a67cc8a4ff638d4e8b46a1d9984ad60 languageName: node linkType: hard "brace-expansion@npm:^5.0.5": - version: 5.0.5 - resolution: "brace-expansion@npm:5.0.5" + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" dependencies: balanced-match: "npm:^4.0.2" - checksum: 10/f259b2ddf04489da9512ad637ba6b4ef2d77abd4445d20f7f1714585f153435200a53fa6a2e4a5ee974df14ddad4cd16421f6f803e96e8b452bd48598878d0ee + checksum: 10/a7acf120fefa79e9d7c9c92898114f57c07596a3920197f3c5917e6a628b04220a5f7f9618c30bdd973a6576a32113b99f9c3f1c8245ccc399dd2a9a718d81d8 languageName: node linkType: hard @@ -717,25 +709,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^20.0.1": - version: 20.0.3 - resolution: "cacache@npm:20.0.3" - dependencies: - "@npmcli/fs": "npm:^5.0.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^13.0.0" - lru-cache: "npm:^11.1.0" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^7.0.2" - ssri: "npm:^13.0.0" - unique-filename: "npm:^5.0.0" - checksum: 10/388a0169970df9d051da30437f93f81b7e91efb570ad0ff2b8fde33279fbe726c1bc8e8e2b9c05053ffb4f563854c73db395e8712e3b62347a1bc4f7fb8899ff - languageName: node - linkType: hard - "call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" @@ -780,7 +753,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.3": +"debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -824,15 +797,6 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - "end-of-stream@npm:^1.1.0": version: 1.4.5 resolution: "end-of-stream@npm:1.4.5" @@ -849,13 +813,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd - languageName: node - linkType: hard - "es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" @@ -871,11 +828,11 @@ __metadata: linkType: hard "es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.1 - resolution: "es-object-atoms@npm:1.1.1" + version: 1.1.2 + resolution: "es-object-atoms@npm:1.1.2" dependencies: es-errors: "npm:^1.3.0" - checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 + checksum: 10/70041de72ab8996df74c17775cdedb8a0c36eb09a4111921d974f7d018af963023bb035a328b5772c2851daa40fb49f52313be0418763a975cb42cb6fe723255 languageName: node linkType: hard @@ -1130,9 +1087,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.3 - resolution: "flatted@npm:3.3.3" - checksum: 10/8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe + version: 3.4.2 + resolution: "flatted@npm:3.4.2" + checksum: 10/a9e78fe5c2c1fcd98209a015ccee3a6caa953e01729778e83c1fe92e68601a63e1e69cd4e573010ca99eaf585a581b80ccf1018b99283e6cbc2117bcba1e030f languageName: node linkType: hard @@ -1160,15 +1117,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f - languageName: node - linkType: hard - "fsevents@npm:2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" @@ -1242,21 +1190,10 @@ __metadata: languageName: node linkType: hard -"glob@npm:^13.0.0": - version: 13.0.2 - resolution: "glob@npm:13.0.2" - dependencies: - minimatch: "npm:^10.1.2" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10/4dc7e3c4570a5626f93c284c9877424c35ffe092730afa5d09aec3bc4230af09795130d389bb76ffbc049ba3283c58d92ca45316684c51c1b9d525ef4b1eed22 - languageName: node - linkType: hard - "globals@npm:^17.3.0": - version: 17.4.0 - resolution: "globals@npm:17.4.0" - checksum: 10/ffad244617e94efcb3da72b7beefc941167c21316148ce378f322db7af72db06468f370e23224b3c7b17b5173a7c75b134e5e7b0949f2828519054a76892508d + version: 17.6.0 + resolution: "globals@npm:17.6.0" + checksum: 10/2bf0febf31c942edee6f4eca7e939a9c885f8ecfb767048b1c4dd2a32008d0ab136e6076665d76b44b29c2571bbbc1681371caab05fd8ee0067c7618e841b89d languageName: node linkType: hard @@ -1291,11 +1228,11 @@ __metadata: linkType: hard "hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" + version: 2.0.4 + resolution: "hasown@npm:2.0.4" dependencies: function-bind: "npm:^1.1.2" - checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + checksum: 10/13823863ae48161068b4c51606a3128451c66f14545a5169d667fe9fca168dcd38c27570c7a299e32ef844b8da3d55def7fe88602f8970d4311fb543ee88001a languageName: node linkType: hard @@ -1306,42 +1243,6 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.1": - version: 4.2.0 - resolution: "http-cache-semantics@npm:4.2.0" - checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.6 - resolution: "https-proxy-agent@npm:7.0.6" - dependencies: - agent-base: "npm:^7.1.2" - debug: "npm:4" - checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f - languageName: node - linkType: hard - "ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" @@ -1363,10 +1264,10 @@ __metadata: languageName: node linkType: hard -"ip-address@npm:^10.0.1": - version: 10.1.0 - resolution: "ip-address@npm:10.1.0" - checksum: 10/a6979629d1ad9c1fb424bc25182203fad739b40225aebc55ec6243bbff5035faf7b9ed6efab3a097de6e713acbbfde944baacfa73e11852bb43989c45a68d79e +"ip-address@npm:^10.1.1": + version: 10.2.0 + resolution: "ip-address@npm:10.2.0" + checksum: 10/12fec399e1af5753ac322e47a6d81a50d3a528b3abb17c09525b2a2edcaedcca628c40520706f7037bc4d8e951b0296c47e7b86d0a8e6e2335c8f0ba4afcfac1 languageName: node linkType: hard @@ -1416,14 +1317,14 @@ __metadata: languageName: node linkType: hard -"jose@npm:^6.1.3": - version: 6.1.3 - resolution: "jose@npm:6.1.3" - checksum: 10/9626c51e8c3792b505e954f3094698c182208617b62dfb27269230f31e57560b083985ed8128b8a9753aa92daf18d3a2341cc826d149503f14569abe87d42389 +"jose@npm:^6.2.2": + version: 6.2.3 + resolution: "jose@npm:6.2.3" + checksum: 10/876974613c5ee988d43b65a34c96ce440dbf7706a2f07f465b8874af16ee532102e224459a7068d2c6ef044affe49690667d23ca12770c279804baec95a09608 languageName: node linkType: hard -"js-yaml@npm:4.1.1, js-yaml@npm:^4.1.0": +"js-yaml@npm:4.1.1": version: 4.1.1 resolution: "js-yaml@npm:4.1.1" dependencies: @@ -1434,6 +1335,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.1.0": + version: 4.2.0 + resolution: "js-yaml@npm:4.2.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/51de2067a2b44b07ba5206132e56005f8b568ff279bb4d2f645068958c56fa4827d40a6841c983234671fa0a134bf094d0b0717873c2a3d319185297af145a6d + languageName: node + linkType: hard + "jsep@npm:^1.4.0": version: 1.4.0 resolution: "jsep@npm:1.4.0" @@ -1463,21 +1375,21 @@ __metadata: linkType: hard "jsonfile@npm:^6.0.1": - version: 6.2.0 - resolution: "jsonfile@npm:6.2.0" + version: 6.2.1 + resolution: "jsonfile@npm:6.2.1" dependencies: graceful-fs: "npm:^4.1.6" universalify: "npm:^2.0.0" dependenciesMeta: graceful-fs: optional: true - checksum: 10/513aac94a6eff070767cafc8eb4424b35d523eec0fcd8019fe5b975f4de5b10a54640c8d5961491ddd8e6f562588cf62435c5ddaf83aaf0986cd2ee789e0d7b9 + checksum: 10/6022bcca984bb5ac57855f80d1c7013765c2db13624292d4652b83f9f4ae93486b82ba516ad5ea91d07cd2f6e2e579b42e422ec1d680e78605f4af25644b9797 languageName: node linkType: hard "jsonpath-plus@npm:^10.3.0": - version: 10.3.0 - resolution: "jsonpath-plus@npm:10.3.0" + version: 10.4.0 + resolution: "jsonpath-plus@npm:10.4.0" dependencies: "@jsep-plugin/assignment": "npm:^1.3.0" "@jsep-plugin/regex": "npm:^1.0.4" @@ -1485,7 +1397,7 @@ __metadata: bin: jsonpath: bin/jsonpath-cli.js jsonpath-plus: bin/jsonpath-cli.js - checksum: 10/082302334414c7c5ab0cc8239563118f7f14bb2949d001b009f436491d00f94a7a293eed3eaf61ffdaf72f6fda9d25198a4280c4f68a4c403154ca7ed2bd0dc9 + checksum: 10/0ff33c7eb6500d7c8d789ce15a63ac2c46cb01b855f1c53729ca9e3833e0253af70277fc1799ebfe0b3130ddc03c127562669b999729dd11f2621b81472248d4 languageName: node linkType: hard @@ -1531,32 +1443,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": - version: 11.2.6 - resolution: "lru-cache@npm:11.2.6" - checksum: 10/91222bbd59f793a0a0ad57789388f06b34ac9bb1613433c1d1810457d09db5cd3ec8943227ce2e1f5d6a0a15d6f1a9f129cb2c49ae9b6b10e82d4965fddecbef - languageName: node - linkType: hard - -"make-fetch-happen@npm:^15.0.0": - version: 15.0.3 - resolution: "make-fetch-happen@npm:15.0.3" - dependencies: - "@npmcli/agent": "npm:^4.0.0" - cacache: "npm:^20.0.1" - http-cache-semantics: "npm:^4.1.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^5.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^1.0.0" - proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^13.0.0" - checksum: 10/78da4fc1df83cb596e2bae25aa0653b8a9c6cbdd6674a104894e03be3acfcd08c70b78f06ef6407fbd6b173f6a60672480d78641e693d05eb71c09c13ee35278 - languageName: node - linkType: hard - "math-intrinsics@npm:^1.1.0": version: 1.1.0 resolution: "math-intrinsics@npm:1.1.0" @@ -1590,15 +1476,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.2": - version: 10.1.2 - resolution: "minimatch@npm:10.1.2" - dependencies: - "@isaacs/brace-expansion": "npm:^5.0.1" - checksum: 10/6f0ef975463739207144e411bdd54f7205ce38770b162fa3bc4c9be4987a16cb20d0962a82f26c2372598cfba90faa97b327239d303b529b774f17681c163b46 - languageName: node - linkType: hard - "minimatch@npm:^10.2.2, minimatch@npm:^10.2.4": version: 10.2.5 resolution: "minimatch@npm:10.2.5" @@ -1608,74 +1485,14 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^5.0.0": - version: 5.0.1 - resolution: "minipass-fetch@npm:5.0.1" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^2.0.0" - minizlib: "npm:^3.0.1" - dependenciesMeta: - encoding: - optional: true - checksum: 10/08bf0c9866e7f344bf1863ce0d99c0a6fe96b43ef5a4119e23d84a21e613a3f55ecf302adf28d9e228b4ebd50e81d5e84c397e0535089090427319379f478d94 +"minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10/175e4d5e20980c3cd316ae82d2c031c42f6c746467d8b1905b51060a0ba4461441a0c25bb67c025fd9617f9a3873e152c7b543c6b5ac83a1846be8ade80dffd6 languageName: node linkType: hard -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^2.0.0": - version: 2.0.0 - resolution: "minipass-sized@npm:2.0.0" - dependencies: - minipass: "npm:^7.1.2" - checksum: 10/3b89adf64ca705662f77481e278eff5ec0a57aeffb5feba7cc8843722b1e7770efc880f2a17d1d4877b2d7bf227873cd46afb4da44c0fd18088b601ea50f96bb - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 - languageName: node - linkType: hard - -"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 - languageName: node - linkType: hard - -"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": +"minizlib@npm:^3.1.0": version: 3.1.0 resolution: "minizlib@npm:3.1.0" dependencies: @@ -1698,13 +1515,6 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^1.0.0": - version: 1.0.0 - resolution: "negotiator@npm:1.0.0" - checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 - languageName: node - linkType: hard - "node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -1720,22 +1530,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 12.2.0 - resolution: "node-gyp@npm:12.2.0" + version: 12.4.0 + resolution: "node-gyp@npm:12.4.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^15.0.0" nopt: "npm:^9.0.0" proc-log: "npm:^6.0.0" semver: "npm:^7.3.5" tar: "npm:^7.5.4" tinyglobby: "npm:^0.2.12" + undici: "npm:^6.25.0" which: "npm:^6.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10/4ebab5b77585a637315e969c2274b5520562473fe75de850639a580c2599652fb9f33959ec782ea45a2e149d8f04b548030f472eeeb3dbdf19a7f2ccbc30b908 + checksum: 10/b1f52282398b08ed485f7d93859d45a7bd54f9a3ba8f1e2626ebc2e7e150834c20d90d7f204e07f67c0a88e85c7400d90e01618d7e6d7dd8056bc493821ef181 languageName: node linkType: hard @@ -1750,10 +1560,10 @@ __metadata: languageName: node linkType: hard -"oauth4webapi@npm:^3.8.4": - version: 3.8.4 - resolution: "oauth4webapi@npm:3.8.4" - checksum: 10/254a8c17e1c150f727cffc262d5e56d7d42e27474011a1a8cb9b7192d96747a10a7ab9ecddac02f2dd035f6580c456fb46f266d2e982bef16fb2857be3982b6e +"oauth4webapi@npm:^3.8.5": + version: 3.8.6 + resolution: "oauth4webapi@npm:3.8.6" + checksum: 10/980568a712c9ac6afaa35bea4b8887accfa37470fbceec6c833edad74cf82a9c981aacdbb4f270dcbc27c2a5af9b3a2d2c48ae98e51df7a278985c5f00631410 languageName: node linkType: hard @@ -1767,12 +1577,12 @@ __metadata: linkType: hard "openid-client@npm:^6.1.3": - version: 6.8.2 - resolution: "openid-client@npm:6.8.2" + version: 6.8.4 + resolution: "openid-client@npm:6.8.4" dependencies: - jose: "npm:^6.1.3" - oauth4webapi: "npm:^3.8.4" - checksum: 10/5d30ff2419c4847d0037c43cf136dd7189b16399aaee98faaad5bcea105c4e1e4e43d2dac1141ea77049b446b50d1b26f2bb882f717b3e38a5f996645abfc1d0 + jose: "npm:^6.2.2" + oauth4webapi: "npm:^3.8.5" + checksum: 10/39402afd4534081d0c9af41aadc916b2b6d41cab1d9eaa9b33f1a3bc3a73ba437f04ccb4b906a4523b41886ee3de716d24c028fd734282b4924cac641d5c5869 languageName: node linkType: hard @@ -1819,13 +1629,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^7.0.2": - version: 7.0.4 - resolution: "p-map@npm:7.0.4" - checksum: 10/ef48c3b2e488f31c693c9fcc0df0ef76518cf6426a495cf9486ebbb0fd7f31aef7f90e96f72e0070c0ff6e3177c9318f644b512e2c29e3feee8d7153fcb6782e - languageName: node - linkType: hard - "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -1840,27 +1643,17 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^2.0.0": - version: 2.0.1 - resolution: "path-scurry@npm:2.0.1" - dependencies: - lru-cache: "npm:^11.0.0" - minipass: "npm:^7.1.2" - checksum: 10/1e9c74e9ccf94d7c16056a5cb2dba9fa23eec1bc221ab15c44765486b9b9975b4cd9a4d55da15b96eadf67d5202e9a2f1cec9023fbb35fe7d9ccd0ff1891f88b - languageName: node - linkType: hard - "picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + version: 2.3.2 + resolution: "picomatch@npm:2.3.2" + checksum: 10/b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426 languageName: node linkType: hard -"picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5 +"picomatch@npm:^4.0.4": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10/f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce languageName: node linkType: hard @@ -1911,16 +1704,6 @@ __metadata: languageName: node linkType: hard -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 - languageName: node - linkType: hard - "proper-lockfile@npm:4.1.2": version: 4.1.2 resolution: "proper-lockfile@npm:4.1.2" @@ -1933,12 +1716,12 @@ __metadata: linkType: hard "pump@npm:^3.0.0": - version: 3.0.3 - resolution: "pump@npm:3.0.3" + version: 3.0.4 + resolution: "pump@npm:3.0.4" dependencies: end-of-stream: "npm:^1.1.0" once: "npm:^1.3.1" - checksum: 10/52843fc933b838c0330f588388115a1b28ef2a5ffa7774709b142e35431e8ab0c2edec90de3fa34ebb72d59fef854f151eea7dfc211b6dcf586b384556bd2f39 + checksum: 10/d043c3e710c56ffd280711e98a94e863ab334f79ea43cee0fb70e1349b2355ffd2ff287c7522e4c960a247699d5b7825f00fa090b85d6179c973be13f78a6c49 languageName: node linkType: hard @@ -1963,19 +1746,12 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 - languageName: node - linkType: hard - "semver@npm:^7.3.5, semver@npm:^7.7.3": - version: 7.7.4 - resolution: "semver@npm:7.7.4" + version: 7.8.3 + resolution: "semver@npm:7.8.3" bin: semver: bin/semver.js - checksum: 10/26bdc6d58b29528f4142d29afb8526bc335f4fc04c4a10f2b98b217f277a031c66736bf82d3d3bb354a2f6a3ae50f18fd62b053c4ac3f294a3d10a61f5075b75 + checksum: 10/4386558b6d44616512ca55dd2ed37ea6449f97df13e1e44b8afd41d1f21889912ec1fb80e41a3f26a701fad5b0a621752bea183ff74d565dd1fc6e9ca4c734d7 languageName: node linkType: hard @@ -2009,7 +1785,7 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.4": +"socks-proxy-agent@npm:^8.0.4": version: 8.0.5 resolution: "socks-proxy-agent@npm:8.0.5" dependencies: @@ -2021,21 +1797,12 @@ __metadata: linkType: hard "socks@npm:^2.8.3": - version: 2.8.7 - resolution: "socks@npm:2.8.7" + version: 2.8.9 + resolution: "socks@npm:2.8.9" dependencies: - ip-address: "npm:^10.0.1" + ip-address: "npm:^10.1.1" smart-buffer: "npm:^4.2.0" - checksum: 10/d19366c95908c19db154f329bbe94c2317d315dc933a7c2b5101e73f32a555c84fb199b62174e1490082a593a4933d8d5a9b297bde7d1419c14a11a965f51356 - languageName: node - linkType: hard - -"ssri@npm:^13.0.0": - version: 13.0.1 - resolution: "ssri@npm:13.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/ae560d0378d074006a71b06af71bfbe84a3fe1ac6e16c1f07575f69e670d40170507fe52b21bcc23399429bc6a15f4bc3ea8d9bc88e9dfd7e87de564e6da6a72 + checksum: 10/8675e6b023faeaa5c2511664b106fd21f5d5ecb403584412e0efae58a76e0c0661c0c18ca340988f6cb398232308dae85fb710f847c9c6e0a6af33b07e4cd33a languageName: node linkType: hard @@ -2046,20 +1813,20 @@ __metadata: languageName: node linkType: hard -"streamx@npm:^2.15.0, streamx@npm:^2.21.0": - version: 2.23.0 - resolution: "streamx@npm:2.23.0" +"streamx@npm:^2.12.5, streamx@npm:^2.15.0, streamx@npm:^2.25.0": + version: 2.27.0 + resolution: "streamx@npm:2.27.0" dependencies: events-universal: "npm:^1.0.0" fast-fifo: "npm:^1.3.2" text-decoder: "npm:^1.1.0" - checksum: 10/4969d7032b16497172afa2f8ac889d137764963ae564daf1611a03225dd62d9316d51de8098b5866d21722babde71353067184e7a3e9795d6dc17c902904a780 + checksum: 10/db3c97c60ef6e1f8b521ce9f232a21ba486dc48359f40026f4dee66889a0f8226020d2d47217901670f5a930cb03f18953fa75bb5820e89b84eabd99545acedb languageName: node linkType: hard "tar-fs@npm:^3.0.9": - version: 3.1.1 - resolution: "tar-fs@npm:3.1.1" + version: 3.1.2 + resolution: "tar-fs@npm:3.1.2" dependencies: bare-fs: "npm:^4.0.1" bare-path: "npm:^3.0.0" @@ -2070,31 +1837,32 @@ __metadata: optional: true bare-path: optional: true - checksum: 10/f7f7540b563e10541dc0b95f710c68fc1fccde0c1177b4d3bab2023c6d18da19d941a8697fdc1abff54914b71b6e5f2dfb0455572b5c8993b2ab76571cbbc923 + checksum: 10/b358fb7061eebb42bfa6f122cf62d1bdd40dc619117863f3b59eeaa4f880dc03707014905bdb592e77176703d9045956d1ba27adda4458805f9f7cbf62015cbd languageName: node linkType: hard "tar-stream@npm:^3.1.5": - version: 3.1.7 - resolution: "tar-stream@npm:3.1.7" + version: 3.2.0 + resolution: "tar-stream@npm:3.2.0" dependencies: b4a: "npm:^1.6.4" + bare-fs: "npm:^4.5.5" fast-fifo: "npm:^1.2.0" streamx: "npm:^2.15.0" - checksum: 10/b21a82705a72792544697c410451a4846af1f744176feb0ff11a7c3dd0896961552e3def5e1c9a6bbee4f0ae298b8252a1f4c9381e9f991553b9e4847976f05c + checksum: 10/ce57a81521de73ae7a3b7d55a08da50d6771427c249bfa89a208518e48faf5254c8fa7201a8f5419ab8bde9601a74e6dd512b31a13ec89774aec96178f99a8d3 languageName: node linkType: hard "tar@npm:^7.5.4": - version: 7.5.7 - resolution: "tar@npm:7.5.7" + version: 7.5.16 + resolution: "tar@npm:7.5.16" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 10/0d6938dd32fe5c0f17c8098d92bd9889ee0ed9d11f12381b8146b6e8c87bb5aa49feec7abc42463f0597503d8e89e4c4c0b42bff1a5a38444e918b4878b7fd21 + checksum: 10/fafa22efceb9f056bf29ddc47d9bd90bb82fe3ce57b8d1242fc45771251741964cebba69d4e14a24fd1643f3c7f68478e945a19def534703cf370c2d9dca2e09 languageName: node linkType: hard @@ -2104,7 +1872,7 @@ __metadata: dependencies: "@eslint/js": "npm:10.0.1" "@playwright/test": "npm:1.59.1" - "@red-hat-developer-hub/e2e-test-utils": "npm:1.1.45" + "@red-hat-developer-hub/e2e-test-utils": "gustavolira/rhdh-e2e-test-utils#debug/deep-coverage-investigation" "@types/node": "npm:25.5.2" eslint: "npm:10.2.0" eslint-plugin-check-file: "npm:3.3.1" @@ -2115,12 +1883,21 @@ __metadata: languageName: unknown linkType: soft +"teex@npm:^1.0.1": + version: 1.0.1 + resolution: "teex@npm:1.0.1" + dependencies: + streamx: "npm:^2.12.5" + checksum: 10/36bf7ce8bb5eb428ad7b14b695ee7fb0a02f09c1a9d8181cc42531208543a920b299d711bf78dad4ff9bcf36ac437ae8e138053734746076e3e0e7d6d76eef64 + languageName: node + linkType: hard + "text-decoder@npm:^1.1.0": - version: 1.2.3 - resolution: "text-decoder@npm:1.2.3" + version: 1.2.7 + resolution: "text-decoder@npm:1.2.7" dependencies: b4a: "npm:^1.6.4" - checksum: 10/bcdec33c0f070aeac38e46e4cafdcd567a58473ed308bdf75260bfbd8f7dc76acbc0b13226afaec4a169d0cb44cec2ab89c57b6395ccf02e941eaebbe19e124a + checksum: 10/151f89339a497353ad579b32536be94bf90a0785fd2aa2dc0a5ec8a4b71ed59998f4adb872201bdc536805425aa8c5cf8f4a936c449be614c1d3c4527688b3d0 languageName: node linkType: hard @@ -2132,12 +1909,12 @@ __metadata: linkType: hard "tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" dependencies: fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10/d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2 + picomatch: "npm:^4.0.4" + checksum: 10/f85e8a217d675c3f78d5f0ad25ea4557e7e023ed13ddc2b014da10bd0312eea53a34cd52356af07ccdff777f1243012547656282a4ca70936f68bf5065fbaa71 languageName: node linkType: hard @@ -2210,10 +1987,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~7.16.0": - version: 7.16.0 - resolution: "undici-types@npm:7.16.0" - checksum: 10/db43439f69c2d94cc29f75cbfe9de86df87061d6b0c577ebe9bb3255f49b22c50162a7d7eb413b0458b6510b8ca299ac7cff38c3a29fbd31af9f504bcf7fbc0d +"undici-types@npm:>=7.24.0 <7.24.7": + version: 7.24.6 + resolution: "undici-types@npm:7.24.6" + checksum: 10/defc9538b952e3c15b8526596c591f7c1f0c7605ad27a2b7feddbea7ef2e3003f3eda2cdb051a3cb1a2185e3893100fd9cb925c799db99d48131ea63b5233d10 languageName: node linkType: hard @@ -2224,21 +2001,10 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^5.0.0": - version: 5.0.0 - resolution: "unique-filename@npm:5.0.0" - dependencies: - unique-slug: "npm:^6.0.0" - checksum: 10/a5f67085caef74bdd2a6869a200ed5d68d171f5cc38435a836b5fd12cce4e4eb55e6a190298035c325053a5687ed7a3c96f0a91e82215fd14729769d9ac57d9b - languageName: node - linkType: hard - -"unique-slug@npm:^6.0.0": - version: 6.0.0 - resolution: "unique-slug@npm:6.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10/b78ed9d5b01ff465f80975f17387750ed3639909ac487fa82c4ae4326759f6de87c2131c0c39eca4c68cf06c537a8d104fba1dfc8a30308f99bc505345e1eba3 +"undici@npm:^6.25.0": + version: 6.26.0 + resolution: "undici@npm:6.26.0" + checksum: 10/a1715ee4304f58fecd61e0a8c3bd7064435cfbc98b3ec1414dba5e89de97d436b7e88dd094b06ff8440428bf36b56163fc88972118890826039865edf58bdfcf languageName: node linkType: hard @@ -2319,8 +2085,8 @@ __metadata: linkType: hard "ws@npm:^8.18.2": - version: 8.19.0 - resolution: "ws@npm:8.19.0" + version: 8.21.0 + resolution: "ws@npm:8.21.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -2329,14 +2095,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10/26e4901e93abaf73af9f26a93707c95b4845e91a7a347ec8c569e6e9be7f9df066f6c2b817b2d685544e208207898a750b78461e6e8d810c11a370771450c31b - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd + checksum: 10/088411956432c8f876158409d5a285cb9ad1382f593391f51d3a599bd0a5b277f876609ebd00fc3596321c4a4c9064d6fffe1ebad960e8ea7fd9ae25324f35c2 languageName: node linkType: hard