Archives - ZIP, 7Z, RAR and TAR/.tar.gz uploads are indexed in the background into archive_entries (7-Zip compiled to WASM in a worker thread; node-tar for tar). macOS/Windows clutter and paths that could escape the extraction folder are skipped. - Models inside archives are extracted once per archive to hash and geometry-fingerprint them, so duplicates are found inside packs too. Pictures, PDFs and readmes are listed but never matched. - New routes list an archive's entries and serve/convert a single entry, extracted on first use and cached under extracted/. Viewer - Model detail lists what's inside each archive with view/download links; opening an entry adds a viewer tab. - New 3D formats: FBX (with sibling textures), OBJ with its MTL and textures, STEP/STP via occt-import-js, and Rhino 3DM via rhino3dm — the WASM readers are served from node_modules, loaded on first use. - Pictures, PDFs and text files (jpg/png/gif/webp/bmp/svg, pdf, txt/md) can be uploaded and preview in the viewer; a model without an embedded 3MF preview uses its first picture as the card thumbnail. - Inline file responses send nosniff, and SVGs are sandboxed. - GLB conversions write to a temp file and rename, so a half-written preview is never served; a later tab can't be overdrawn by a slow load. - Better 3MF card image: the project thumbnail or plate 1 render, not a slicer pick map. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
38 lines
877 B
JSON
38 lines
877 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": {
|
|
"7z-wasm": "^1.2.0",
|
|
"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",
|
|
"occt-import-js": "^0.0.23",
|
|
"pg": "^8.22.0",
|
|
"rhino3dm": "^8.32.2",
|
|
"tar": "^7.5.22"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2"
|
|
}
|
|
}
|