322c1046fa
Build / Build docker images. (client) (push) Has been cancelled
Build / Build docker images. (server) (push) Has been cancelled
Build / Publish docker images. (client, map[image-prefix: path:lattyware/manydecks server:ghcr.io token-secret:GHCR_TOKEN user:lattyware]) (push) Has been cancelled
Build / Publish docker images. (client, map[image-prefix:manydecks- path:massivedecks server:registry.hub.docker.com token-secret:DOCKER_HUB_TOKEN user:latty]) (push) Has been cancelled
Build / Publish docker images. (server, map[image-prefix: path:lattyware/manydecks server:ghcr.io token-secret:GHCR_TOKEN user:lattyware]) (push) Has been cancelled
Build / Publish docker images. (server, map[image-prefix:manydecks- path:massivedecks server:registry.hub.docker.com token-secret:DOCKER_HUB_TOKEN user:latty]) (push) Has been cancelled
- Server: new DB migration (7_local_auth.sql) adds local_username/local_password_hash columns
- Server: add findLocalUser / createLocalUser to store, bcryptjs for password verification
- Server: /api/auth advertises local: {} when config.auth.local.username+password are set
- Server: POST /api/users handles local credential login, verifying username+password against config
- Client: new Auth/Local.elm module with Method type and authPayload encoder
- Client: Auth/Methods.elm gains local field, Login.elm renders username/password form
- Config: auth.local now takes username + password (bcrypt hash) for single-account local login
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
73 lines
2.1 KiB
JSON
73 lines
2.1 KiB
JSON
{
|
|
"name": "@manydecks/server",
|
|
"version": "1.0.0",
|
|
"author": "Reread Games <team@rereadgames.com>",
|
|
"license": "AGPL-3.0-or-later",
|
|
"private": true,
|
|
"description": "A place to make and share custom decks for Massive Decks.",
|
|
"repository": "github:Lattyware/manydecks",
|
|
"engines": {
|
|
"node": "15.x.x"
|
|
},
|
|
"type": "module",
|
|
"module": "src/index.ts",
|
|
"scripts": {
|
|
"build": "npx tsc",
|
|
"prestart": "npm run build",
|
|
"start": "node --es-module-specifier-resolution=node dist/index.js",
|
|
"preinspect": "npm run build",
|
|
"inspect": "node --inspect-brk --es-module-specifier-resolution=node dist/index.js",
|
|
"dev": "nodemon --exec \"npm run start\"",
|
|
"debug": "nodemon --exec \"npm run inspect\""
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.17.1",
|
|
"express-async-errors": "^3.1.1",
|
|
"express-easy-zip": "^1.1.5",
|
|
"express-winston": "^4.0.5",
|
|
"fast-json-patch": "^3.0.0-1",
|
|
"fp-ts": "^2.8.5",
|
|
"google-auth-library": "^6.1.3",
|
|
"hashids": "^2.2.1",
|
|
"helmet": "^4.1.1",
|
|
"http-status-codes": "^2.1.4",
|
|
"io-ts": "^2.2.12",
|
|
"json5": "^2.1.3",
|
|
"jsonwebtoken": "^8.5.1",
|
|
"jwks-rsa": "^1.10.1",
|
|
"node-pg-migrate": "^5.8.1",
|
|
"pg": "^8.4.2",
|
|
"postgres-migrations": "^5.1.0",
|
|
"source-map-support": "^0.5.19",
|
|
"unique-names-generator": "^4.3.1",
|
|
"uuid": "^8.3.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"winston": "^3.3.3"
|
|
},
|
|
"devDependencies": {
|
|
"@types/express": "^4.17.8",
|
|
"@types/hashids": "^1.0.32",
|
|
"@types/json5": "0.0.30",
|
|
"@types/jsonwebtoken": "^8.5.0",
|
|
"@types/pg": "^7.14.6",
|
|
"@types/source-map-support": "^0.5.3",
|
|
"@types/bcryptjs": "^2.4.2",
|
|
"@types/uuid": "^8.3.0",
|
|
"@typescript-eslint/eslint-plugin": "^4.4.0",
|
|
"@typescript-eslint/parser": "^4.4.0",
|
|
"eslint": "^7.13.0",
|
|
"eslint-config-prettier": "^6.12.0",
|
|
"eslint-plugin-prettier": "^3.1.4",
|
|
"nodemon": "^2.0.4",
|
|
"prettier": "^2.1.2",
|
|
"typescript": "^4.0.3"
|
|
},
|
|
"nodemonConfig": {
|
|
"ext": "ts,sql,json,json5,js",
|
|
"ignore": [
|
|
"dist",
|
|
"node_modules"
|
|
]
|
|
}
|
|
}
|