diff --git a/.github/workflows/browser-rbe-proof.yml b/.github/workflows/browser-rbe-proof.yml index d91e8ec..3560721 100644 --- a/.github/workflows/browser-rbe-proof.yml +++ b/.github/workflows/browser-rbe-proof.yml @@ -111,6 +111,8 @@ jobs: consumer_checkout_authority: github-app force_execution: 'true' wait: 'true' + retry_cancelled_before_start: 'true' + max_attempts: '4' dispatch_token: ${{ secrets.GF_REAPI_PROOF_DISPATCH_TOKEN }} - name: Verify GF proof artifact diff --git a/package.json b/package.json index f60849e..f77aae9 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "svelte-check": "^4.4.8", "tailwindcss": "^4.3.0", "tsx": "^4.22.1", - "typescript": "next", + "typescript": "6.0.3", "typescript-eslint": "^8.59.3", "vite": "^8.0.13", "vitest": "^4.1.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ecf17ec..0b7545e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,10 +51,10 @@ importers: version: 4.15.2(svelte@5.55.7(@typescript-eslint/types@8.59.3)) '@sveltejs/adapter-node': specifier: ^5.5.4 - version: 5.5.4(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1))) + version: 5.5.4(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1))) '@sveltejs/kit': specifier: ^2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)) '@sveltejs/vite-plugin-svelte': specifier: ^7.1.2 version: 7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)) @@ -99,7 +99,7 @@ importers: version: 5.55.7(@typescript-eslint/types@8.59.3) svelte-check: specifier: ^4.4.8 - version: 4.4.8(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416) + version: 4.4.8(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3) tailwindcss: specifier: ^4.3.0 version: 4.3.0 @@ -107,11 +107,11 @@ importers: specifier: ^4.22.1 version: 4.22.1 typescript: - specifier: next - version: 6.0.0-dev.20260416 + specifier: 6.0.3 + version: 6.0.3 typescript-eslint: specifier: ^8.59.3 - version: 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) + version: 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) vite: specifier: ^8.0.13 version: 8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1) @@ -2306,8 +2306,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - typescript@6.0.0-dev.20260416: - resolution: {integrity: sha512-64CCow5rQc6+oBAPqLtvZ8f3iz4WVCLwMVkg6/kOfMQlGshVOMkBhCXn+MMP4SX4Xtnz48VpD98FkptirMEuEQ==} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -3150,15 +3150,15 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-node@5.5.4(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))': + '@sveltejs/adapter-node@5.5.4(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))': dependencies: '@rollup/plugin-commonjs': 29.0.2(rollup@4.60.4) '@rollup/plugin-json': 6.1.0(rollup@4.60.4) '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.4) - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)) rollup: 4.60.4 - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1)))(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3)(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) @@ -3176,7 +3176,7 @@ snapshots: svelte: 5.55.7(@typescript-eslint/types@8.59.3) vite: 8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1) optionalDependencies: - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.7(@typescript-eslint/types@8.59.3))(vite@8.0.13(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.1))': dependencies: @@ -3317,40 +3317,40 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) + '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.59.3 - '@typescript-eslint/type-utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) - '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) + '@typescript-eslint/type-utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.3 eslint: 9.39.4(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.0-dev.20260416) - typescript: 6.0.0-dev.20260416 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.3 '@typescript-eslint/types': 8.59.3 - '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.0-dev.20260416) + '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.3(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/project-service@8.59.3(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@6.0.0-dev.20260416) + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@6.0.3) '@typescript-eslint/types': 8.59.3 debug: 4.4.3 - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3359,47 +3359,47 @@ snapshots: '@typescript-eslint/types': 8.59.3 '@typescript-eslint/visitor-keys': 8.59.3 - '@typescript-eslint/tsconfig-utils@8.59.3(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/tsconfig-utils@8.59.3(typescript@6.0.3)': dependencies: - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/type-utils@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.59.3 - '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.0-dev.20260416) - '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) + '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 eslint: 9.39.4(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.0-dev.20260416) - typescript: 6.0.0-dev.20260416 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.59.3': {} - '@typescript-eslint/typescript-estree@8.59.3(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/typescript-estree@8.59.3(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.59.3(typescript@6.0.0-dev.20260416) - '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@6.0.0-dev.20260416) + '@typescript-eslint/project-service': 8.59.3(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@6.0.3) '@typescript-eslint/types': 8.59.3 '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.0 tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.0-dev.20260416) - typescript: 6.0.0-dev.20260416 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416)': + '@typescript-eslint/utils@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) '@typescript-eslint/scope-manager': 8.59.3 '@typescript-eslint/types': 8.59.3 - '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.0-dev.20260416) + '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.3) eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -4645,7 +4645,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.0-dev.20260416): + svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.3))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 @@ -4653,7 +4653,7 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 svelte: 5.55.7(@typescript-eslint/types@8.59.3) - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 transitivePeerDependencies: - picomatch @@ -4711,9 +4711,9 @@ snapshots: trim-lines@3.0.1: {} - ts-api-utils@2.5.0(typescript@6.0.0-dev.20260416): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 tslib@2.8.1: {} @@ -4727,18 +4727,18 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416): + typescript-eslint@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) - '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) - '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.0-dev.20260416) - '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.0-dev.20260416) + '@typescript-eslint/eslint-plugin': 8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.59.3(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.0-dev.20260416 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - typescript@6.0.0-dev.20260416: {} + typescript@6.0.3: {} undici-types@6.21.0: {} diff --git a/scripts/bazel/run-playwright-local-route-smoke.mjs b/scripts/bazel/run-playwright-local-route-smoke.mjs index 7a718b6..b158736 100644 --- a/scripts/bazel/run-playwright-local-route-smoke.mjs +++ b/scripts/bazel/run-playwright-local-route-smoke.mjs @@ -82,7 +82,13 @@ try { : await chromium.launch({ executablePath: browserPath, headless: true, - args: ['--disable-dev-shm-usage', '--enable-unsafe-swiftshader', '--no-sandbox', '--use-gl=swiftshader'], + args: [ + '--disable-dev-shm-usage', + '--enable-unsafe-swiftshader', + '--no-sandbox', + '--use-gl=angle', + '--use-angle=swiftshader', + ], }); for (const viewport of SMOKE_VIEWPORTS) { @@ -875,10 +881,15 @@ async function runClickBudgetSmoke(page) { if (!/Bortle/i.test(skyText)) fail(`Sky answer (Bortle) not reachable in ≤1 click: "${skyText}"`); // ── Air ≤1 ──────────────────────────────────────────────────────────────── - // Same pin (no extra map click). AQI is data-gated, not lens-gated. + // Same pin (no extra map click). AQI is data-gated, not lens-gated: entering + // Air nudges the smog/OpenAQ layer on asynchronously, so wait for the numeric + // answer rather than reading the placeholder. await setLens('2', 'Air'); const aqiVal = page.locator('.aqi-value').first(); await aqiVal.waitFor({ state: 'attached', timeout: 20_000 }); + await page.waitForFunction(() => /\d/.test(document.querySelector('.aqi-value')?.textContent ?? ''), null, { + timeout: 20_000, + }); const airText = ((await aqiVal.textContent()) ?? '').trim(); if (!/\d/.test(airText)) fail(`Air answer (AQI) not reachable in ≤1 click: "${airText}"`); diff --git a/tinyland.repo.json b/tinyland.repo.json index e649615..06cae36 100644 --- a/tinyland.repo.json +++ b/tinyland.repo.json @@ -1,6 +1,7 @@ { "$schema": "./docs/schemas/tinyland-repo-manifest.schema.json", "schema_version": 1, + "scaffold_tag": "v0.1.0", "repo": { "name": "darkmap.phasi.space", "github": "Jesssullivan/darkmap.phasi.space",