From bae645603aa7bd0b0d8ffb7e8b8a7a06e7834fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Tue, 27 Oct 2026 10:21:27 +0100 Subject: [PATCH] chore(data-app): update CLI consumers to 0.74.0 Align scaffolded apps, single-file previews, and browser fixtures with the published data-app release. Regenerate their lockfiles and update integration assertions for hidden refresh labels, widget boundaries, and wrapped mobile actions. --- CHANGELOG.md | 4 ++++ cli/scripts/smoke-data-app.ts | 2 +- cli/src/commands/app/lib/distribution.test.ts | 6 +++--- data-app/file-preview/bun.lock | 16 ++++++++-------- data-app/file-preview/package.json | 8 ++++---- data-app/starter/bun.lock | 12 ++++++------ data-app/starter/package.json | 6 +++--- data-app/tests/bun.lock | 4 ++-- data-app/tests/package.json | 2 +- data-app/tests/starter.spec.ts | 11 ++++------- 10 files changed, 36 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd2299e..dad64fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Preview a single-file data app locally with `altertable app dev --file index.tsx`. The file's `defineDataApp` scope must match the selected profile, and queries run through the CLI's loopback proxy. +### Changed + +- Generate, preview, and upgrade data apps with data-app 0.74.0. + ### Fixed - Stop queries that run longer than 6 minutes from failing with `Request failed (network error): … (The operation timed out.)`. `--read-timeout` is now the only limit on query streams, and `0` means no limit. diff --git a/cli/scripts/smoke-data-app.ts b/cli/scripts/smoke-data-app.ts index 399eb94..053120a 100644 --- a/cli/scripts/smoke-data-app.ts +++ b/cli/scripts/smoke-data-app.ts @@ -170,7 +170,7 @@ export async function smokeDataApp( '@altertable/data-app-react', '@altertable/data-app-bun', ]) { - if (manifest.dependencies?.[name] !== '0.73.0') + if (manifest.dependencies?.[name] !== '0.74.0') throw new Error( `Packaged starter must pin ${name} to the tested release` ); diff --git a/cli/src/commands/app/lib/distribution.test.ts b/cli/src/commands/app/lib/distribution.test.ts index 94c4a6e..0b28deb 100644 --- a/cli/src/commands/app/lib/distribution.test.ts +++ b/cli/src/commands/app/lib/distribution.test.ts @@ -59,9 +59,9 @@ test('distribution embeds a deterministic starter with an exact package pin and JSON.parse(files['package.json']!).dependencies['@altertable/data-app'] ).toBe(recommendedDataAppVersion()); expect(JSON.parse(files['package.json']!).dependencies).toMatchObject({ - '@altertable/data-app': '0.73.0', - '@altertable/data-app-react': '0.73.0', - '@altertable/data-app-bun': '0.73.0', + '@altertable/data-app': '0.74.0', + '@altertable/data-app-react': '0.74.0', + '@altertable/data-app-bun': '0.74.0', }); expect(files['src/main.tsx']).toContain("from '@altertable/data-app-react'"); expect(files['src/preview.ts']).toContain( diff --git a/data-app/file-preview/bun.lock b/data-app/file-preview/bun.lock index ebf6515..1a47cf5 100644 --- a/data-app/file-preview/bun.lock +++ b/data-app/file-preview/bun.lock @@ -5,23 +5,23 @@ "": { "name": "data-app-file-preview", "dependencies": { - "@altertable/data-app": "0.73.0", - "@altertable/data-app-bun": "0.73.0", - "@altertable/data-app-manifest": "0.73.0", - "@altertable/data-app-react": "0.73.0", + "@altertable/data-app": "0.74.0", + "@altertable/data-app-bun": "0.74.0", + "@altertable/data-app-manifest": "0.74.0", + "@altertable/data-app-react": "0.74.0", "react": "19.3.0", "react-dom": "19.3.0", }, }, }, "packages": { - "@altertable/data-app": ["@altertable/data-app@0.73.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-JiNaFWAq0xryikh0B6rHQAEEHnxU22Hve+bOTy/6uQNBYEhkuogrXE6VoI4YBuWJdzj9KqQKO+uho+vOU7ZCIQ=="], + "@altertable/data-app": ["@altertable/data-app@0.74.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-19Y72gkpid1tKXtesofrwe4oyBUp5FknQ0smgOa1Ilx+8Y/2Xu9F4lHlhAuJU3r0zlEj2Rb/AYZcWXTfUXKZhQ=="], - "@altertable/data-app-bun": ["@altertable/data-app-bun@0.73.0", "", { "dependencies": { "@altertable/data-app": "0.73.0", "@altertable/lakehouse": "0.4.1", "get-tsconfig": "4.14.3" }, "bin": { "data-app-preview": "bin/preview.js" } }, "sha512-bhgXGb0AHjSpfOljD+lwiyJzr+dDqmoMhnBc6YDx2BL8hAW7iSm9dpCqpoYsQGjyLW7dISxshUIfPlZ6TRiAaw=="], + "@altertable/data-app-bun": ["@altertable/data-app-bun@0.74.0", "", { "dependencies": { "@altertable/data-app": "0.74.0", "@altertable/lakehouse": "0.4.1", "get-tsconfig": "4.14.3" }, "bin": { "data-app-preview": "bin/preview.js" } }, "sha512-zxGaxeG4hzCNcPv20a0ZgrUpFONL5fllzThSlzbYnFM2Tkva3WFP0/N70KF02SddzaboskN5ouqrdUAErq/4Dw=="], - "@altertable/data-app-manifest": ["@altertable/data-app-manifest@0.73.0", "", { "dependencies": { "typescript": "5.9.3" } }, "sha512-68NC4KuB2YoyCU9+MGdRHpnUJX43D/DJ8UnmBZ7dG5LezgClBf/w7wpRfX9jx/OTwGsa0+bFgGnCLOEA+5cnqA=="], + "@altertable/data-app-manifest": ["@altertable/data-app-manifest@0.74.0", "", { "dependencies": { "typescript": "5.9.3" } }, "sha512-PQEsKR1VpRkbXVn6LlmwlDBmPode0wlCJ9ivYlk4KKc9vgZcdHpjPuy+G+gaTKiIrYPJpxsLS0hcYxMENNoP2g=="], - "@altertable/data-app-react": ["@altertable/data-app-react@0.73.0", "", { "dependencies": { "@altertable/data-app": "0.73.0", "@floating-ui/react": "0.27.20", "@internationalized/date": "3.12.4", "@tanstack/react-query": "5.104.3", "fflate": "0.8.3", "fuzzysort": "4.0.2", "html-to-image": "1.11.13", "lucide-react": "1.59.0", "react-aria-components": "1.22.1", "recharts": "3.10.1" }, "peerDependencies": { "react": ">=19.2.0", "react-dom": ">=19.2.0" } }, "sha512-EJiGeX5YSnR6+qZLR6d6WQBOCx/IIvQj1xck+s6b1A45kdLK2GozBcfexQveuBq1RGG568oIdEvY2Zzel3UXTA=="], + "@altertable/data-app-react": ["@altertable/data-app-react@0.74.0", "", { "dependencies": { "@altertable/data-app": "0.74.0", "@floating-ui/react": "0.27.20", "@internationalized/date": "3.12.4", "@tanstack/react-query": "5.104.3", "fflate": "0.8.3", "fuzzysort": "4.0.2", "html-to-image": "1.11.13", "lucide-react": "1.59.0", "react-aria-components": "1.22.1", "recharts": "3.10.1" }, "peerDependencies": { "react": ">=19.2.0", "react-dom": ">=19.2.0" } }, "sha512-E85+w7D1NpiJaIqLaVkHUzMU/TQxdM32NuMEvBAiPO/mclmpjSnvroU5ml/ZkMwX00b1MiKowSgKyyu6q2ckSw=="], "@altertable/lakehouse": ["@altertable/lakehouse@0.4.1", "", {}, "sha512-m7d15cWt+WUGW7lVw2KYGD+Se8MzO25G7SWSuFd+OasBxWmOJNa2IrgvOHGVEbnZ+kexTUy9NjAGQ69sG4V91w=="], diff --git a/data-app/file-preview/package.json b/data-app/file-preview/package.json index c2527c0..ed78955 100644 --- a/data-app/file-preview/package.json +++ b/data-app/file-preview/package.json @@ -6,11 +6,11 @@ "dev": "data-app-preview" }, "dependencies": { - "@altertable/data-app": "0.73.0", - "@altertable/data-app-bun": "0.73.0", - "@altertable/data-app-react": "0.73.0", + "@altertable/data-app": "0.74.0", + "@altertable/data-app-bun": "0.74.0", + "@altertable/data-app-react": "0.74.0", "react": "19.3.0", "react-dom": "19.3.0", - "@altertable/data-app-manifest": "0.73.0" + "@altertable/data-app-manifest": "0.74.0" } } diff --git a/data-app/starter/bun.lock b/data-app/starter/bun.lock index 37c1bc6..33731cf 100644 --- a/data-app/starter/bun.lock +++ b/data-app/starter/bun.lock @@ -5,9 +5,9 @@ "": { "name": "data-app-starter", "dependencies": { - "@altertable/data-app": "0.73.0", - "@altertable/data-app-bun": "0.73.0", - "@altertable/data-app-react": "0.73.0", + "@altertable/data-app": "0.74.0", + "@altertable/data-app-bun": "0.74.0", + "@altertable/data-app-react": "0.74.0", "react": "19.3.0", "react-dom": "19.3.0", }, @@ -23,11 +23,11 @@ }, }, "packages": { - "@altertable/data-app": ["@altertable/data-app@0.73.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-JiNaFWAq0xryikh0B6rHQAEEHnxU22Hve+bOTy/6uQNBYEhkuogrXE6VoI4YBuWJdzj9KqQKO+uho+vOU7ZCIQ=="], + "@altertable/data-app": ["@altertable/data-app@0.74.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-19Y72gkpid1tKXtesofrwe4oyBUp5FknQ0smgOa1Ilx+8Y/2Xu9F4lHlhAuJU3r0zlEj2Rb/AYZcWXTfUXKZhQ=="], - "@altertable/data-app-bun": ["@altertable/data-app-bun@0.73.0", "", { "dependencies": { "@altertable/data-app": "0.73.0", "@altertable/lakehouse": "0.4.1", "get-tsconfig": "4.14.3" }, "bin": { "data-app-preview": "bin/preview.js" } }, "sha512-bhgXGb0AHjSpfOljD+lwiyJzr+dDqmoMhnBc6YDx2BL8hAW7iSm9dpCqpoYsQGjyLW7dISxshUIfPlZ6TRiAaw=="], + "@altertable/data-app-bun": ["@altertable/data-app-bun@0.74.0", "", { "dependencies": { "@altertable/data-app": "0.74.0", "@altertable/lakehouse": "0.4.1", "get-tsconfig": "4.14.3" }, "bin": { "data-app-preview": "bin/preview.js" } }, "sha512-zxGaxeG4hzCNcPv20a0ZgrUpFONL5fllzThSlzbYnFM2Tkva3WFP0/N70KF02SddzaboskN5ouqrdUAErq/4Dw=="], - "@altertable/data-app-react": ["@altertable/data-app-react@0.73.0", "", { "dependencies": { "@altertable/data-app": "0.73.0", "@floating-ui/react": "0.27.20", "@internationalized/date": "3.12.4", "@tanstack/react-query": "5.104.3", "fflate": "0.8.3", "fuzzysort": "4.0.2", "html-to-image": "1.11.13", "lucide-react": "1.59.0", "react-aria-components": "1.22.1", "recharts": "3.10.1" }, "peerDependencies": { "react": ">=19.2.0", "react-dom": ">=19.2.0" } }, "sha512-EJiGeX5YSnR6+qZLR6d6WQBOCx/IIvQj1xck+s6b1A45kdLK2GozBcfexQveuBq1RGG568oIdEvY2Zzel3UXTA=="], + "@altertable/data-app-react": ["@altertable/data-app-react@0.74.0", "", { "dependencies": { "@altertable/data-app": "0.74.0", "@floating-ui/react": "0.27.20", "@internationalized/date": "3.12.4", "@tanstack/react-query": "5.104.3", "fflate": "0.8.3", "fuzzysort": "4.0.2", "html-to-image": "1.11.13", "lucide-react": "1.59.0", "react-aria-components": "1.22.1", "recharts": "3.10.1" }, "peerDependencies": { "react": ">=19.2.0", "react-dom": ">=19.2.0" } }, "sha512-E85+w7D1NpiJaIqLaVkHUzMU/TQxdM32NuMEvBAiPO/mclmpjSnvroU5ml/ZkMwX00b1MiKowSgKyyu6q2ckSw=="], "@altertable/lakehouse": ["@altertable/lakehouse@0.4.1", "", {}, "sha512-m7d15cWt+WUGW7lVw2KYGD+Se8MzO25G7SWSuFd+OasBxWmOJNa2IrgvOHGVEbnZ+kexTUy9NjAGQ69sG4V91w=="], diff --git a/data-app/starter/package.json b/data-app/starter/package.json index 7f102f5..ca2c4df 100644 --- a/data-app/starter/package.json +++ b/data-app/starter/package.json @@ -15,9 +15,9 @@ "build": "bun build src/index.html --outdir=dist --production" }, "dependencies": { - "@altertable/data-app": "0.73.0", - "@altertable/data-app-bun": "0.73.0", - "@altertable/data-app-react": "0.73.0", + "@altertable/data-app": "0.74.0", + "@altertable/data-app-bun": "0.74.0", + "@altertable/data-app-react": "0.74.0", "react": "19.3.0", "react-dom": "19.3.0" }, diff --git a/data-app/tests/bun.lock b/data-app/tests/bun.lock index d4e65bd..18ec591 100644 --- a/data-app/tests/bun.lock +++ b/data-app/tests/bun.lock @@ -5,7 +5,7 @@ "": { "name": "data-app-browser-tests", "dependencies": { - "@altertable/data-app": "0.73.0", + "@altertable/data-app": "0.74.0", }, "devDependencies": { "@playwright/test": "1.63.0", @@ -16,7 +16,7 @@ }, }, "packages": { - "@altertable/data-app": ["@altertable/data-app@0.73.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-JiNaFWAq0xryikh0B6rHQAEEHnxU22Hve+bOTy/6uQNBYEhkuogrXE6VoI4YBuWJdzj9KqQKO+uho+vOU7ZCIQ=="], + "@altertable/data-app": ["@altertable/data-app@0.74.0", "", { "dependencies": { "@internationalized/date": "3.12.4" } }, "sha512-19Y72gkpid1tKXtesofrwe4oyBUp5FknQ0smgOa1Ilx+8Y/2Xu9F4lHlhAuJU3r0zlEj2Rb/AYZcWXTfUXKZhQ=="], "@internationalized/date": ["@internationalized/date@3.12.4", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-M1dEn4c1U1HsSlaVR8upZtSqvXrTkHDfv18H01uCSJyjVLDxnBR38v/fMxecmlwXKR4i9HeZcmgQAPE6A+aGJQ=="], diff --git a/data-app/tests/package.json b/data-app/tests/package.json index 6fdc26f..d728c3c 100644 --- a/data-app/tests/package.json +++ b/data-app/tests/package.json @@ -16,6 +16,6 @@ "typescript": "7.0.2" }, "dependencies": { - "@altertable/data-app": "0.73.0" + "@altertable/data-app": "0.74.0" } } diff --git a/data-app/tests/starter.spec.ts b/data-app/tests/starter.spec.ts index 50a1851..100d64a 100644 --- a/data-app/tests/starter.spec.ts +++ b/data-app/tests/starter.spec.ts @@ -326,7 +326,7 @@ test('request progress appears before Refresh', async ({ page }) => { .boundingBox(); expect(label!.x + label!.width).toBeLessThan(action!.x); release(); - await expect(status).toBeEmpty(); + await expect(status.getByText('Updating data')).toBeHidden(); }); test('variables sit below the header divider while actions stay in the header', async ({ @@ -350,7 +350,7 @@ test('variables sit below the header divider while actions stay in the header', ).toBe(true); }); -test('mobile header pairs scope with actions and keeps the description below', async ({ +test('mobile header wraps actions below scope and keeps the description below', async ({ page, }, testInfo) => { await page.setViewportSize({ width: 390, height: 844 }); @@ -367,7 +367,7 @@ test('mobile header pairs scope with actions and keeps the description below', a const actionsBox = await actions.boundingBox(); const descriptionBox = await description.boundingBox(); expect(scopeBox!.y).toBeGreaterThanOrEqual(titleBox!.y + titleBox!.height); - expect(Math.abs(scopeBox!.y - actionsBox!.y)).toBeLessThan(12); + expect(actionsBox!.y).toBeGreaterThanOrEqual(scopeBox!.y + scopeBox!.height); expect(descriptionBox!.y).toBeGreaterThanOrEqual( actionsBox!.y + actionsBox!.height ); @@ -429,10 +429,7 @@ test('grid spans respond to their container at phone, tablet, and desktop widths .getByTestId('spanned-grid') .evaluate(element => getComputedStyle(element).gap); expect(gap).toBe(`${Math.max(16, Math.min(24, width * 0.025))}px`); - const peers = await page - .getByTestId('peer-grid') - .locator(':scope > *') - .all(); + const peers = await page.getByTestId('peer-grid').getByRole('region').all(); const firstPeer = await peers[0]!.boundingBox(); const lastPeer = await peers[2]!.boundingBox(); expect(primary).not.toBeNull();