Adds fast-srp-hap (the same SRP library Ente's web client uses, pinned
to 2.0.4) as a runtime dependency.
Tests build a full mock Ente server using fast-srp-hap's SrpServer to
exercise real SRP-6a math end-to-end. The mock handles:
GET /users/srp/attributes
POST /users/srp/create-session
POST /users/srp/verify-session
POST /users/two-factor/verify
POST /users/ott
POST /users/verify-email
7 tests covering:
* SRP login completing successfully
* SRP login requiring TOTP (returns { kind: 'totp' })
* Wrong password (SRP M1 fails server-side checkM1)
* Email MFA fallback (returns { kind: 'emailOTP' })
* submitTOTP
* requestEmailOTP + submitEmailOTP
45 lines
1.2 KiB
JSON
45 lines
1.2 KiB
JSON
{
|
|
"name": "quack",
|
|
"version": "0.0.0",
|
|
"description": "TypeScript client library and CLI for the Ente end-to-end encrypted photo service",
|
|
"license": "WTFPL",
|
|
"author": "@sneak <https://sneak.berlin>",
|
|
"homepage": "https://git.eeqj.de/sneak/quack",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://git.eeqj.de/sneak/quack.git"
|
|
},
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"bin": {
|
|
"quack": "./dist/bin/quack.js"
|
|
},
|
|
"files": [
|
|
"dist/",
|
|
"README.md",
|
|
"LICENSE"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"test": "vitest run",
|
|
"lint": "eslint .",
|
|
"fmt": "prettier --write .",
|
|
"fmt-check": "prettier --check ."
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "9.38.0",
|
|
"@types/libsodium-wrappers-sumo": "0.8.2",
|
|
"@types/node": "22.18.13",
|
|
"eslint": "9.38.0",
|
|
"prettier": "3.8.1",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "8.46.2",
|
|
"vitest": "2.1.9"
|
|
},
|
|
"dependencies": {
|
|
"fast-srp-hap": "2.0.4",
|
|
"libsodium-wrappers-sumo": "0.8.4"
|
|
}
|
|
}
|