Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@ jobs:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- uses: actions/setup-node@v4
with:
node-version: '24.14.1'
cache: 'pnpm'
- run: |
pnpm install
pnpm install --frozen-lockfile
pnpm build
pnpm docs:build
- uses: actions/upload-pages-artifact@v3
Expand All @@ -44,4 +48,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v4
5 changes: 2 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false

- uses: actions/setup-node@v4
with:
node-version: '22'
node-version: '24.14.1'
cache: 'pnpm'

- uses: astral-sh/setup-uv@v4
Expand Down Expand Up @@ -89,4 +88,4 @@ jobs:
pnpm test:integration

# Clean up server
kill "$SERVER_PID" || true
kill "$SERVER_PID" || true
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ node_modules/
dist/
build/
*.tsbuildinfo
packages/zarrextra/src/*.d.ts
packages/zarrextra/src/*.d.ts.map

# Testing
coverage/
Expand Down
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,20 @@ This monorepo contains:

### Prerequisites

- Node.js >= 20
- pnpm >= 10
- [Volta](https://volta.sh/) for managing the pinned Node.js and pnpm versions
- Python >= 3.12 (for generating test fixtures)
- [uv](https://github.com/astral-sh/uv) (Python package manager)

If you prefer not to use Volta, use Node.js >= 20.19 (or 22.12+) and pnpm >= 10.

### Installation

```bash
# Install pnpm globally if you haven't already
npm install -g pnpm
# Install Volta once
curl https://get.volta.sh | bash

# Restart your shell so Volta is on PATH
volta install node@24.14.1 pnpm@10.33.0

# Install dependencies
pnpm install
Expand Down
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
"type": "git",
"url": "https://github.com/Taylor-CCB-Group/SpatialData.js.git"
},
"packageManager": "pnpm@10.33.0",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"scripts": {
"clean": "rm -rf packages/*/dist packages/vis/demo/dist packages/zarrextra/src/*.d.ts packages/zarrextra/src/*.d.ts.map",
"build": "pnpm -r --filter='!docs' run build",
"test": "pnpm -r --filter='!docs' run test",
"test:unit": "vitest run --exclude tests/integration/**",
Expand Down Expand Up @@ -37,7 +39,11 @@
"typescript": "catalog:"
},
"engines": {
"node": ">=20",
"node": ">=20.19",
"pnpm": ">=10"
},
Comment on lines 41 to +44

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n package.json | head -50

Repository: Taylor-CCB-Group/SpatialData.js

Length of output: 2266


🏁 Script executed:

find . -name "pnpm-workspace.yaml" -o -name ".pnpmfile.cjs" | head -5

Repository: Taylor-CCB-Group/SpatialData.js

Length of output: 96


🏁 Script executed:

cat -n pnpm-workspace.yaml

Repository: Taylor-CCB-Group/SpatialData.js

Length of output: 775


🏁 Script executed:

find . -iname "README*" -type f | head -5

Repository: Taylor-CCB-Group/SpatialData.js

Length of output: 190


🏁 Script executed:

cat README.md | grep -i "node" -C 3

Repository: Taylor-CCB-Group/SpatialData.js

Length of output: 682


🌐 Web query:

Vite 8 Node version requirements minimum support

💡 Result:

Vite 8 requires Node.js 20.19+ or 22.12+ as the minimum supported versions. These are the same requirements as Vite 7, ensuring support for require(esm) without flags for ESM-only distribution.

Citations:


Tighten the declared Node floor to match Vite 8 requirements.

The current engines.node: ">=20" is too broad. Vite 8 requires Node 20.19+ or 22.12+, so Node 20.0–20.18 installations will satisfy the engines check but fail during local dev/test. Update to >=20.19 and mirror this in the README's fallback note (currently states "Node.js >= 20").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 41 - 44, Update the declared Node engine floor
from ">=20" to ">=20.19" in the package.json "engines" object (look for the
"engines" key and the "node" property) and update the README fallback note text
that currently says "Node.js >= 20" to explicitly state "Node.js >= 20.19 (or
22.12+)" so the docs match Vite 8's requirement.

"volta": {
"node": "24.14.1",
"pnpm": "10.33.0"
}
}
2 changes: 1 addition & 1 deletion packages/layers/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { resolve } from 'node:path';
import { defineConfig } from 'vite';
import { defineConfig } from 'vitest/config';
import dts from 'vite-plugin-dts';

export default defineConfig({
Expand Down
5 changes: 3 additions & 2 deletions packages/react/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
"baseUrl": ".",
"paths": {
"@spatialdata/core": ["../core/src/index.ts"],
"@spatialdata/core/*": ["../core/src/*"]
"@spatialdata/core/*": ["../core/src/*"],
"@spatialdata/zarrextra": ["../zarrextra/src/index.ts"],
"@spatialdata/zarrextra/*": ["../zarrextra/src/*"]
},
"types": ["react", "react-dom"]
},
"include": ["src", "vite.config.ts"],
"exclude": ["dist", "node_modules"]
}


8 changes: 7 additions & 1 deletion packages/vis/demo/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"baseUrl": ".",

/* Linting */
"strict": true,
Expand All @@ -21,7 +22,12 @@
"noFallthroughCasesInSwitch": true,

"paths": {
"@spatialdata/vis": ["../src"]
"@spatialdata/avivatorish": ["../../avivatorish/src/index.ts"],
"@spatialdata/core": ["../../core/src/index.ts"],
"@spatialdata/layers": ["../../layers/src/index.ts"],
"@spatialdata/react": ["../../react/src/index.ts"],
"@spatialdata/vis": ["../src/index.ts"],
"@spatialdata/zarrextra": ["../../zarrextra/src/index.ts"]
}
},
"include": ["src"]
Expand Down
5 changes: 3 additions & 2 deletions packages/vis/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@
"@spatialdata/core": ["../core/src/index.ts"],
"@spatialdata/core/*": ["../core/src/*"],
"@spatialdata/react": ["../react/src/index.ts"],
"@spatialdata/react/*": ["../react/src/*"]
"@spatialdata/react/*": ["../react/src/*"],
"@spatialdata/zarrextra": ["../zarrextra/src/index.ts"],
"@spatialdata/zarrextra/*": ["../zarrextra/src/*"]
},
"types": ["react", "react-dom"]
},
"include": ["src", "vite.config.ts"],
"exclude": ["dist", "node_modules"]
}


12 changes: 11 additions & 1 deletion packages/vis/vite.config.demo.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'node:path';
import { createRequire } from 'node:module';
import { createWorkspaceSourceAliases } from '../../vite.config.base';

// https://vitejs.dev/config/
const workspaceRoot = path.resolve(__dirname, '../..');
const require = createRequire(import.meta.url);
const reactRoot = path.dirname(require.resolve('react/package.json'));
const reactDomRoot = path.dirname(require.resolve('react-dom/package.json'));

export default defineConfig({
root: path.resolve(__dirname, 'demo'),
plugins: [react()],
resolve: {
alias: {
'@spatialdata/vis': path.resolve(__dirname, 'src'),
...createWorkspaceSourceAliases(workspaceRoot),
react: reactRoot,
'react-dom': reactDomRoot,
},
dedupe: ['react', 'react-dom'],
},
server: {
open: true,
Expand Down
Loading
Loading