* feat: migrate from JSON files to PocketBase public API
- Remove all community JSON files from json/ folder (folder kept for user scripts)
- Add pocketbase npm package
- Add pbService.ts: PocketBase singleton client (unauthenticated)
- Add pbScripts.ts: PocketBase queries mirroring the website's API
- Update localScripts.ts: use PocketBase as primary source, local JSON as fallback
- Rewrite scripts.ts router: all data fetching via PocketBase
- Update scriptDownloader.js: derive script paths by convention (type+slug)
instead of relying on explicit JSON paths
- Update autoSyncService.js: fetch scripts from PocketBase instead of JSON files
- Update env.js: add PB_URL, remove JSON_FOLDER requirement
- Update .env.example: document new PB_URL variable
* fix: correct PocketBase URL to db.community-scripts.org
* fix: downgrade @vitejs/plugin-react to ^5 (compatible with vitest@4/vite@6), add .npmrc
* fix: resolve all npm audit vulnerabilities via overrides
- @hono/node-server: >=1.19.10 (authorization bypass fix)
- lodash: ^4.17.23 (prototype pollution fix)
All vulns were transitive deps of prisma CLI internals (@prisma/dev)
* fix: remove .js extensions from TS imports for webpack compatibility
* fix: remove 'source' from ScriptCard literal, fix pbScripts import extension
* fix: restore repository_url as optional in ScriptCard, remove dead repo filters
* fix: resolve all remaining build errors
- resyncScripts: add error field to return type
- ScriptsGrid.tsx: remove 'source' from ScriptCard literal
- autoSyncService.js: add JSDoc types for implicit any params
- githubJsonService.ts: use process.env.JSON_FOLDER directly
- localScripts.ts: fix PB->Script mapping (interface_port, default_credentials,
date_created, logo as null); add website field to getScriptCards()
* fix: use dbUrl fallback for Prisma adapter and align default DB path with prisma.config.ts
- db.ts / db.js: use dbUrl variable (with fallback to pve-scripts.db) instead
of process.env.DATABASE_URL! directly, prevents crash when DATABASE_URL is
not set in environment
- autoSyncService.js: suppress ENOENT error log in loadSettings when .env file
does not exist (return defaults silently instead of printing error)
* fix: align .env.example DATABASE_URL db filename with prisma.config.ts default