mirror of
https://github.com/lancedb/lancedb.git
synced 2026-05-14 10:30:40 +00:00
## Summary Switch the nodejs bindings and examples package from npm to pnpm 11 to pick up its stronger supply-chain defaults: - `minimumReleaseAge` defaults to 1 day, so newly-published (potentially compromised) versions aren't resolved into installs for at least 24h. - Install lifecycle scripts (`preinstall`/`install`/`postinstall`) are no longer run for arbitrary transitive deps; only an explicit allowlist may run them, and unapproved scripts cause install to fail (`strictDepBuilds: true`). - Audit uses GHSA IDs and `--fix=update` to add patched versions to `minimumReleaseAgeExclude`. This is the same class of protection that would have blunted the recent TanStack/`@uipath`/etc. compromise discussed in the [Aikido write-up](https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised). ## Changes - Replace `nodejs/package-lock.json` and `nodejs/examples/package-lock.json` with `pnpm-lock.yaml`. - Pin pnpm via `packageManager: pnpm@11.1.1` in both `package.json`s. - Add `pnpm-workspace.yaml` with the four build-script packages we actually need: `@biomejs/biome`, `onnxruntime-node`, `protobufjs`, `sharp`. Everything else is blocked from running install scripts. - Update package.json scripts (`npm run X` → `pnpm X`). - Update workflows: `.github/workflows/nodejs.yml`, `.github/workflows/npm-publish.yml`, and `.github/workflows/codex-fix-ci.yml` — install pnpm via `pnpm/action-setup@v4` and switch `setup-node` caches to `pnpm-lock.yaml`. - Refresh `nodejs/AGENTS.md`, `nodejs/CLAUDE.md`, and `nodejs/CONTRIBUTING.md`. `docs/package-lock.json` is **not** touched — out of scope for this PR. ## Test plan - [ ] `Lint` job (lint Rust/TS + examples lint) passes on CI. - [ ] `Linux (NodeJS 18/20)` build+test passes, including the examples test step. - [ ] `macos` build+test passes. - [ ] `NPM Publish` workflow's PR dry-run completes (build matrix + test matrix + dry `npm publish`). - [ ] No new install-script approvals are required at install time. ## Follow-ups - `update_package_lock_run_nodejs.yml` references a composite action path that doesn't exist (`./.github/workflows/update_package_lock_nodejs`); it was already broken pre-PR. We may want to either delete this workflow or rewrite it for pnpm in a follow-up. - Consider migrating `docs/` to pnpm in a separate PR. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
105 lines
3.3 KiB
JSON
105 lines
3.3 KiB
JSON
{
|
|
"name": "@lancedb/lancedb",
|
|
"description": "LanceDB: A serverless, low-latency vector database for AI applications",
|
|
"keywords": [
|
|
"database",
|
|
"lance",
|
|
"lancedb",
|
|
"search",
|
|
"vector",
|
|
"vector database",
|
|
"ann"
|
|
],
|
|
"private": false,
|
|
"version": "0.28.0-beta.11",
|
|
"main": "dist/index.js",
|
|
"exports": {
|
|
".": "./dist/index.js",
|
|
"./embedding": "./dist/embedding/index.js",
|
|
"./embedding/openai": "./dist/embedding/openai.js",
|
|
"./embedding/transformers": "./dist/embedding/transformers.js"
|
|
},
|
|
"types": "dist/index.d.ts",
|
|
"napi": {
|
|
"binaryName": "lancedb",
|
|
"targets": [
|
|
"aarch64-apple-darwin",
|
|
"x86_64-unknown-linux-gnu",
|
|
"aarch64-unknown-linux-gnu",
|
|
"x86_64-unknown-linux-musl",
|
|
"aarch64-unknown-linux-musl",
|
|
"x86_64-pc-windows-msvc",
|
|
"aarch64-pc-windows-msvc"
|
|
]
|
|
},
|
|
"license": "Apache-2.0",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/lancedb/lancedb"
|
|
},
|
|
"devDependencies": {
|
|
"@aws-sdk/client-dynamodb": "3.1003.0",
|
|
"@aws-sdk/client-kms": "3.1003.0",
|
|
"@aws-sdk/client-s3": "3.1003.0",
|
|
"@biomejs/biome": "^1.7.3",
|
|
"@jest/globals": "^29.7.0",
|
|
"@napi-rs/cli": "3.5.1",
|
|
"@types/axios": "^0.14.0",
|
|
"@types/jest": "^29.1.2",
|
|
"@types/node": "22.7.4",
|
|
"@types/tmp": "^0.2.6",
|
|
"apache-arrow-15": "npm:apache-arrow@15.0.0",
|
|
"apache-arrow-16": "npm:apache-arrow@16.0.0",
|
|
"apache-arrow-17": "npm:apache-arrow@17.0.0",
|
|
"apache-arrow-18": "npm:apache-arrow@18.0.0",
|
|
"eslint": "^8.57.0",
|
|
"jest": "^29.7.0",
|
|
"shx": "^0.3.4",
|
|
"tmp": "^0.2.3",
|
|
"ts-jest": "^29.1.2",
|
|
"typedoc": "0.26.4",
|
|
"typedoc-plugin-markdown": "4.2.1",
|
|
"typescript": "5.5.4",
|
|
"typescript-eslint": "^7.1.0"
|
|
},
|
|
"ava": {
|
|
"timeout": "3m"
|
|
},
|
|
"engines": {
|
|
"node": ">= 18"
|
|
},
|
|
"packageManager": "pnpm@11.1.1",
|
|
"cpu": ["x64", "arm64"],
|
|
"os": ["darwin", "linux", "win32"],
|
|
"scripts": {
|
|
"artifacts": "napi artifacts",
|
|
"build:debug": "napi build --platform --dts ../lancedb/native.d.ts --js ../lancedb/native.js --output-dir lancedb",
|
|
"postbuild:debug": "shx mkdir -p dist && shx cp lancedb/*.node dist/ && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({name:'@lancedb/lancedb',type:'commonjs'}))\"",
|
|
"build:release": "napi build --platform --release --dts ../lancedb/native.d.ts --js ../lancedb/native.js --output-dir dist",
|
|
"build": "pnpm build:debug && pnpm tsc",
|
|
"build-release": "pnpm build:release && pnpm tsc",
|
|
"tsc": "tsc -b",
|
|
"posttsc": "shx cp lancedb/native.d.ts dist/native.d.ts",
|
|
"lint-ci": "biome ci .",
|
|
"docs": "typedoc --plugin typedoc-plugin-markdown --treatWarningsAsErrors --out ../docs/src/js lancedb/index.ts",
|
|
"postdocs": "node typedoc_post_process.js",
|
|
"lint": "biome check . && biome format .",
|
|
"lint-fix": "biome check --write . && biome format --write .",
|
|
"prepublishOnly": "napi prepublish -t npm",
|
|
"test": "jest --verbose",
|
|
"integration": "S3_TEST=1 pnpm test",
|
|
"universal": "napi universalize",
|
|
"version": "napi version"
|
|
},
|
|
"dependencies": {
|
|
"reflect-metadata": "^0.2.2"
|
|
},
|
|
"optionalDependencies": {
|
|
"@huggingface/transformers": "3.0.2",
|
|
"openai": "4.29.2"
|
|
},
|
|
"peerDependencies": {
|
|
"apache-arrow": ">=15.0.0 <=18.1.0"
|
|
}
|
|
}
|