Skip to content

Commit 4ad6b28

Browse files
committed
feat(packages/node): add platform-specific package generation and @sqliteai/sqlite-vector package initial commit
1 parent 72890a1 commit 4ad6b28

File tree

13 files changed

+1214
-2
lines changed

13 files changed

+1214
-2
lines changed

.github/workflows/main.yml

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55

66
permissions:
77
contents: write
8+
# id-token: write # TODO: Enable after first release for npm provenance with OIDC
89

910
jobs:
1011
build:
@@ -321,13 +322,86 @@ jobs:
321322
if: steps.tag.outputs.version != ''
322323
run: cd packages/android && ./gradlew publishAggregationToCentralPortal -PSIGNING_KEY="${{ secrets.SIGNING_KEY }}" -PSIGNING_PASSWORD="${{ secrets.SIGNING_PASSWORD }}" -PSONATYPE_USERNAME="${{ secrets.MAVEN_CENTRAL_USERNAME }}" -PSONATYPE_PASSWORD="${{ secrets.MAVEN_CENTRAL_TOKEN }}" -PVERSION="${{ steps.tag.outputs.version }}" -PAAR_PATH="../../artifacts/vector-android-aar/vector.aar"
323324

325+
- uses: actions/setup-node@v4
326+
if: steps.tag.outputs.version != ''
327+
with:
328+
node-version: '20'
329+
registry-url: 'https://registry.npmjs.org'
330+
331+
- name: build and publish npm packages
332+
if: steps.tag.outputs.version != ''
333+
env:
334+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
335+
run: |
336+
cd packages/node
337+
338+
# Generate platform packages
339+
echo "Generating platform packages..."
340+
node generate-platform-packages.js "${{ steps.tag.outputs.version }}" "../../artifacts" "./platform-packages"
341+
echo "✓ Generated 7 platform packages"
342+
ls -la platform-packages/
343+
344+
# Build main package
345+
echo "Building main package..."
346+
npm install
347+
npm run build
348+
npm test
349+
echo "✓ Main package built and tested"
350+
351+
# Publish platform packages
352+
echo "Publishing platform packages to npm..."
353+
cd platform-packages
354+
for platform_dir in */; do
355+
platform_name=$(basename "$platform_dir")
356+
echo " Publishing @sqliteai/sqlite-vector-${platform_name}..."
357+
cd "$platform_dir"
358+
npm publish --access public
359+
# TODO: Add --provenance flag after switching to OIDC (requires package to exist first)
360+
cd ..
361+
echo " ✓ Published @sqliteai/sqlite-vector-${platform_name}"
362+
done
363+
cd ..
364+
365+
# Publish main package
366+
echo "Publishing main package to npm..."
367+
npm publish --access public
368+
# TODO: Add --provenance flag after switching to OIDC (requires package to exist first)
369+
echo "✓ Published @sqliteai/sqlite-vector@${{ steps.tag.outputs.version }}"
370+
371+
echo ""
372+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
373+
echo "✅ Successfully published 8 packages to npm"
374+
echo " Main: @sqliteai/sqlite-vector@${{ steps.tag.outputs.version }}"
375+
echo " Platform packages: 7"
376+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
377+
324378
- uses: softprops/[email protected]
325379
if: steps.tag.outputs.version != ''
326380
with:
327381
body: |
382+
# Node.js/npm Package
383+
384+
**Main package**: [@sqliteai/sqlite-vector](https://www.npmjs.com/package/@sqliteai/sqlite-vector)
385+
386+
```bash
387+
npm install @sqliteai/sqlite-vector
388+
```
389+
390+
Platform-specific packages are installed automatically based on your OS.
391+
392+
---
393+
328394
# WASM Releases
395+
329396
**WASM repository**: [sqlite-wasm](https://github.com/sqliteai/sqlite-wasm)
330-
**WASM package** is available on npm: [@sqliteai/sqlite-wasm](https://www.npmjs.com/package/@sqliteai/sqlite-wasm)
397+
**WASM package**: [@sqliteai/sqlite-wasm](https://www.npmjs.com/package/@sqliteai/sqlite-wasm)
398+
399+
```bash
400+
npm install @sqliteai/sqlite-wasm
401+
```
402+
403+
---
404+
331405
generate_release_notes: true
332406
tag_name: ${{ steps.tag.outputs.version }}
333407
files: vector-*-${{ steps.tag.outputs.version }}.*

packages/node/.gitignore

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Build outputs
5+
dist/
6+
*.tsbuildinfo
7+
8+
# Test coverage
9+
coverage/
10+
11+
# Logs
12+
*.log
13+
npm-debug.log*
14+
yarn-debug.log*
15+
yarn-error.log*
16+
17+
# OS files
18+
.DS_Store
19+
Thumbs.db
20+
21+
# IDE
22+
.vscode/
23+
.idea/
24+
*.swp
25+
*.swo
26+
27+
# Generated platform packages (created dynamically in GitHub Actions)
28+
platform-packages/
29+
30+
# Test outputs
31+
test-artifacts/
32+
test-output/
33+
test-platform-packages/

packages/node/.npmignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Development and build files
2+
src/
3+
*.test.ts
4+
*.test.js
5+
tsconfig.json
6+
tsup.config.ts
7+
8+
# Documentation (not needed in published package)
9+
IMPLEMENTATION.md
10+
WORKFLOW_STEPS.md
11+
README.md
12+
13+
# Scripts (only for repo/CI)
14+
generate-platform-packages.js
15+
16+
# Development files
17+
node_modules/
18+
coverage/
19+
*.log
20+
21+
# Git
22+
.git/
23+
.gitignore

packages/node/LICENSE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../LICENSE.md

0 commit comments

Comments
 (0)