⬆️ better-sqlite3 v13 (#8736)

* better-sqlite3 v13

* note

* fix build

* engine update

* fix yarn warning and arm32 docker builds
This commit is contained in:
Matt Fiddaman
2026-09-20 20:22:32 +00:00
committed by GitHub
parent d51d13c889
commit 8f2318d1dc
9 changed files with 50 additions and 43 deletions
+1 -1
View File
@@ -100,7 +100,7 @@
"built": true
},
"better-sqlite3": {
"built": true
"built": false
},
"electron": {
"built": true
+2 -2
View File
@@ -57,7 +57,7 @@
"dependencies": {
"@actual-app/core": "workspace:*",
"@actual-app/crdt": "workspace:*",
"better-sqlite3": "^12.11.1",
"better-sqlite3": "^13.0.3",
"compare-versions": "^6.1.1",
"uuid": "^14.0.2"
},
@@ -72,6 +72,6 @@
"vitest": "^5.0.0"
},
"engines": {
"node": ">=20"
"node": ">=22"
}
}
@@ -29,6 +29,9 @@ const beforePackHook = async (context: AfterPackContext) => {
}
try {
// needed for better-sqlite3 because prebuilts are needed for each arch
process.env.npm_config_force_build = '1';
await rebuild({
arch,
buildPath,
+2 -2
View File
@@ -16,7 +16,7 @@
},
"dependencies": {
"@actual-app/sync-server": "workspace:*",
"better-sqlite3": "^12.11.1"
"better-sqlite3": "^13.0.3"
},
"devDependencies": {
"@actual-app/core": "workspace:*",
@@ -38,7 +38,7 @@
"!node_modules/@actual-app/web",
"node_modules/@actual-app/web/build",
"node_modules/@actual-app/web/package.json",
"!node_modules/better-sqlite3/{benchmark,src,bin,docs,deps,build/Release/obj,build/Release/sqlite3.a,build/Release/test_extension.node}",
"!node_modules/better-sqlite3/{benchmark,src,bin,docs,deps,prebuilds,build/Release/obj,build/Release/sqlite3.a,build/Release/test_extension.node}",
"!**/*.js.map",
"!**/stats.json",
"!build/client-build/sql-wasm.wasm",
+2 -2
View File
@@ -200,7 +200,7 @@
"@rschedule/core": "^1.5.0",
"@rschedule/standard-date-adapter": "^1.5.0",
"absurd-sql": "0.0.54",
"better-sqlite3": "^12.11.1",
"better-sqlite3": "^13.0.3",
"csv-parse": "^7.0.2",
"csv-stringify": "^6.8.1",
"date-fns": "^4.4.0",
@@ -216,7 +216,7 @@
"devDependencies": {
"@actual-app/crdt": "workspace:*",
"@actual-app/vite-plugin-peggy": "workspace:*",
"@types/better-sqlite3": "^7.6.13",
"@types/better-sqlite3": "^9.6.0",
"@types/jlongster__sql.js": "npm:@types/sql.js@latest",
"@types/node": "^22.20.1",
"@typescript/native-preview": "beta",
@@ -17,7 +17,13 @@ RUN ln -s /app/.yarn/releases/yarn-*.cjs /usr/local/bin/yarn
RUN if [ "$(uname -m)" = "armv7l" ]; then yarn config set taskPoolConcurrency 2; yarn config set networkConcurrency 5; fi
# Focus the workspaces in production mode
RUN if [ "$(uname -m)" = "armv7l" ]; then npm_config_build_from_source=true yarn workspaces focus @actual-app/sync-server --production; else yarn workspaces focus @actual-app/sync-server --production; fi
RUN yarn workspaces focus @actual-app/sync-server --production
# better-sqlite3 only ships prebuilt binaries for x64 and arm64, so compile it
# on any other architecture (armv6/armv7 images).
RUN if [ "$(node node_modules/better-sqlite3/lib/binding.js)" = "0" ]; then \
cd node_modules/better-sqlite3 && node ../node-gyp/bin/node-gyp.js rebuild --release; \
fi
# Dereference yarn's workspace:* symlinks so the prod stage can copy just node_modules.
RUN cp -RL node_modules node_modules.real \
+2 -2
View File
@@ -93,7 +93,7 @@
"akahu": "^2.5.1",
"argon2": "^0.44.0",
"bcrypt": "^6.0.0",
"better-sqlite3": "^12.11.1",
"better-sqlite3": "^13.0.3",
"convict": "^6.2.5",
"cors": "^2.8.6",
"date-fns": "^4.4.0",
@@ -111,7 +111,7 @@
},
"devDependencies": {
"@types/bcrypt": "^6.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/better-sqlite3": "^9.6.0",
"@types/convict": "^6",
"@types/cors": "^2.8.19",
"@types/express": "^5.0.6",
@@ -0,0 +1,6 @@
---
category: Maintenance
authors: [matt-fidd]
---
Upgrade better-sqlite3 to v13
+25 -33
View File
@@ -33,7 +33,7 @@ __metadata:
"@actual-app/vite-plugin-peggy": "workspace:*"
"@playwright/test": "npm:1.61.1"
"@typescript/native-preview": "npm:beta"
better-sqlite3: "npm:^12.11.1"
better-sqlite3: "npm:^13.0.3"
compare-versions: "npm:^6.1.1"
rollup-plugin-visualizer: "npm:^7.0.1"
typescript-strict-plugin: "npm:^2.4.4"
@@ -120,13 +120,13 @@ __metadata:
"@jlongster/sql.js": "npm:^1.6.7"
"@rschedule/core": "npm:^1.5.0"
"@rschedule/standard-date-adapter": "npm:^1.5.0"
"@types/better-sqlite3": "npm:^7.6.13"
"@types/better-sqlite3": "npm:^9.6.0"
"@types/jlongster__sql.js": "npm:@types/sql.js@latest"
"@types/node": "npm:^22.20.1"
"@typescript/native-preview": "npm:beta"
absurd-sql: "npm:0.0.54"
assert: "npm:^2.1.0"
better-sqlite3: "npm:^12.11.1"
better-sqlite3: "npm:^13.0.3"
browserify-zlib: "npm:^0.2.0"
buffer: "npm:^6.0.3"
cross-env: "npm:^10.1.0"
@@ -183,7 +183,7 @@ __metadata:
"@actual-app/crdt": "workspace:*"
"@actual-app/web": "workspace:*"
"@types/bcrypt": "npm:^6.0.0"
"@types/better-sqlite3": "npm:^7.6.13"
"@types/better-sqlite3": "npm:^9.6.0"
"@types/convict": "npm:^6"
"@types/cors": "npm:^2.8.19"
"@types/express": "npm:^5.0.6"
@@ -194,7 +194,7 @@ __metadata:
akahu: "npm:^2.5.1"
argon2: "npm:^0.44.0"
bcrypt: "npm:^6.0.0"
better-sqlite3: "npm:^12.11.1"
better-sqlite3: "npm:^13.0.3"
convict: "npm:^6.2.5"
cors: "npm:^2.8.6"
cross-env: "npm:^10.1.0"
@@ -8279,12 +8279,12 @@ __metadata:
languageName: node
linkType: hard
"@types/better-sqlite3@npm:^7.6.13":
version: 7.6.13
resolution: "@types/better-sqlite3@npm:7.6.13"
"@types/better-sqlite3@npm:^9.6.0":
version: 9.6.0
resolution: "@types/better-sqlite3@npm:9.6.0"
dependencies:
"@types/node": "npm:*"
checksum: 10/c74dafa3c550ac866737870016d7b1a735c7d450c16d40962eeb54510fa150e91752bfdf678f55e91894d8853771b95f909b0062122116cddac4d80491b74411
checksum: 10/3dcbf6126b6b6c5ccc73d03d88590f67a2bf0cb40dcfee392ae6f08554b57e8112c739edefef4349f13a2a9d23d31374ba9c18e0572dcb0332a9ccd87ebc71c6
languageName: node
linkType: hard
@@ -9951,7 +9951,7 @@ __metadata:
bcrypt:
built: true
better-sqlite3:
built: true
built: false
electron:
built: true
esbuild:
@@ -10741,14 +10741,13 @@ __metadata:
languageName: node
linkType: hard
"better-sqlite3@npm:^12.11.1":
version: 12.11.1
resolution: "better-sqlite3@npm:12.11.1"
"better-sqlite3@npm:^13.0.3":
version: 13.0.3
resolution: "better-sqlite3@npm:13.0.3"
dependencies:
bindings: "npm:^1.5.0"
node-addon-api: "npm:^8.0.0"
node-gyp: "npm:latest"
prebuild-install: "npm:^7.1.1"
checksum: 10/a516421fda128dd25e36dd9c8c8857e6fd94b27ab7da644af939109bd57540c58bad8ed784ef0fdfe03d094deabed5733c33dabed4f91b57a89543deab9b28d6
checksum: 10/035f8fa70784762fd73e1dbeb6f157186abb97705ff759b312cfb0dc1c675fd1c6b5378d2c036758000ce9da1d49bf61689531aa2718a7e32dc272c114a4c71f
languageName: node
linkType: hard
@@ -10782,15 +10781,6 @@ __metadata:
languageName: node
linkType: hard
"bindings@npm:^1.5.0":
version: 1.5.0
resolution: "bindings@npm:1.5.0"
dependencies:
file-uri-to-path: "npm:1.0.0"
checksum: 10/593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133
languageName: node
linkType: hard
"bl@npm:^4.0.3, bl@npm:^4.1.0":
version: 4.1.0
resolution: "bl@npm:4.1.0"
@@ -13541,7 +13531,7 @@ __metadata:
"@playwright/test": "npm:1.61.1"
"@types/copyfiles": "npm:^2"
"@typescript/native-preview": "npm:beta"
better-sqlite3: "npm:^12.11.1"
better-sqlite3: "npm:^13.0.3"
copyfiles: "npm:^2.4.1"
cross-env: "npm:^10.1.0"
electron: "npm:43.4.0"
@@ -15318,13 +15308,6 @@ __metadata:
languageName: node
linkType: hard
"file-uri-to-path@npm:1.0.0":
version: 1.0.0
resolution: "file-uri-to-path@npm:1.0.0"
checksum: 10/b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144
languageName: node
linkType: hard
"filelist@npm:^1.0.4":
version: 1.0.4
resolution: "filelist@npm:1.0.4"
@@ -20377,6 +20360,15 @@ __metadata:
languageName: node
linkType: hard
"node-addon-api@npm:^8.0.0":
version: 8.9.2
resolution: "node-addon-api@npm:8.9.2"
dependencies:
node-gyp: "npm:latest"
checksum: 10/5354f9b53631d99a952408112d795f36782fd41c0ac073bd91814805fe931b619c743689d0cedcc310c0ae8392fc9b104b2852d28cce294236407ca57d01743e
languageName: node
linkType: hard
"node-addon-api@npm:^8.3.0, node-addon-api@npm:^8.5.0":
version: 8.7.0
resolution: "node-addon-api@npm:8.7.0"