- Fingerprint every file in the background: SHA-256 for all formats plus a trimesh geometry fingerprint for STL/OBJ/3MF, so renamed, re-exported or converted copies are still matched. Backfills existing files on startup. - Duplicates view groups models that share files (exact copies vs same shape), recommends which to keep, merges tags/collections/notes into the kept model and trashes the rest; groups can be dismissed. - Deleting now moves models to a restorable trash; files are only removed from disk on permanent delete or when the trash is emptied. - Per-model notes with autosave. - Search across names, notes, tags, files and designers; filter by format, source and license; include/exclude tags with any/all matching; sort and group by source or format. Preferences persist per browser. - Add node:test unit tests for duplicate grouping and fingerprints. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
770 B
JSON
34 lines
770 B
JSON
{
|
|
"name": "printhive",
|
|
"version": "1.0.0",
|
|
"description": "Printhive — a web app for organizing 3D-printing files (STL, 3MF, OBJ, ...) with URL import",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js",
|
|
"dev": "nodemon server.js",
|
|
"test": "node --test test/*.test.js"
|
|
},
|
|
"keywords": [
|
|
"stl",
|
|
"3d-printing",
|
|
"library",
|
|
"manager"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"adm-zip": "^0.5.17",
|
|
"bcryptjs": "^3.0.3",
|
|
"cookie-parser": "^1.4.7",
|
|
"dotenv": "^17.4.2",
|
|
"express": "^4.18.2",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"multer": "^1.4.5-lts.1",
|
|
"node-stl": "^0.7.0",
|
|
"nodemailer": "^9.0.1",
|
|
"pg": "^8.22.0"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2"
|
|
}
|
|
}
|