diff --git a/package-lock.json b/package-lock.json index b3f379b..5c544eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@profullstack/profile", - "version": "0.1.4", + "version": "0.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@profullstack/profile", - "version": "0.1.4", + "version": "0.1.5", "license": "MIT", "bin": { "profile": "src/cli.js" diff --git a/package.json b/package.json index 5257552..3c066d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@profullstack/profile", - "version": "0.1.4", + "version": "0.1.5", "type": "module", "description": "One user profile for every property: email, first_name, last_name, company_domain, job_title, linkedin_url. Validation, signup form fields, storage on Postgres/Turso/Supabase, HTTP handlers, CSV export, CLI and MCP.", "keywords": [ diff --git a/src/cli.js b/src/cli.js index 41f564b..d87e7b1 100644 --- a/src/cli.js +++ b/src/cli.js @@ -20,7 +20,7 @@ import { csvRow, } from "./index.js"; -const VERSION = "0.1.4"; +const VERSION = "0.1.5"; const USAGE = `profile - signup profile fields (${COLUMNS.join(", ")}) diff --git a/src/store.js b/src/store.js index 9312941..9d73dec 100644 --- a/src/store.js +++ b/src/store.js @@ -51,11 +51,17 @@ export function adapt(db, dialect) { dialect: dialect ?? "sqlite", query: async (text, params = []) => { const stmt = db.prepare(text); - if (stmt.reader === false) { - stmt.run(...params); - return []; + try { + if (stmt.reader === false) { + stmt.run(...params); + return []; + } + return stmt.all(...params); + } finally { + // bun:sqlite keeps the file open (locked on Windows) until every + // statement is finalized, even after db.close(). + stmt.finalize?.(); } - return stmt.all(...params); }, }; }