@otp-service/express 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/package.json +4 -3
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @otp-service/express
|
|
2
|
+
|
|
3
|
+
Express **`RequestHandler`** factories for OTP **generate** and **verify** JSON endpoints, wired to an [`@otp-service/core`](https://www.npmjs.com/package/@otp-service/core) **`OtpService`**.
|
|
4
|
+
|
|
5
|
+
**ESM only** · **Node.js ≥ 22** · **License:** MIT
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @otp-service/express @otp-service/core express
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`express` is a **peer dependency** (`^4.21.0 || ^5.0.0`).
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import express from "express";
|
|
19
|
+
import {
|
|
20
|
+
createGenerateChallengeHandler,
|
|
21
|
+
createVerifyChallengeHandler
|
|
22
|
+
} from "@otp-service/express";
|
|
23
|
+
|
|
24
|
+
app.use(express.json());
|
|
25
|
+
app.post("/otp/generate", createGenerateChallengeHandler({ otpService }));
|
|
26
|
+
app.post("/otp/verify", createVerifyChallengeHandler({ otpService }));
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Request bodies
|
|
30
|
+
|
|
31
|
+
- **POST generate** — `{ "channel": "email" | "sms", "purpose": string, "recipient": string }` → **201** with challenge metadata.
|
|
32
|
+
- **POST verify** — `{ "challengeId": string, "otp": string }` → **200** / **400** / **410** / **429** depending on outcome.
|
|
33
|
+
|
|
34
|
+
Optional **`mapBody`** in handler options adapts your API shape to these inputs.
|
|
35
|
+
|
|
36
|
+
## Exports
|
|
37
|
+
|
|
38
|
+
| Export | Purpose |
|
|
39
|
+
|--------|---------|
|
|
40
|
+
| `createGenerateChallengeHandler` | Express handler for generate |
|
|
41
|
+
| `createVerifyChallengeHandler` | Express handler for verify |
|
|
42
|
+
| `ExpressOtpValidationError` | Thrown for malformed JSON (mapped to **422** by handlers) |
|
|
43
|
+
|
|
44
|
+
## Related packages
|
|
45
|
+
|
|
46
|
+
- [`@otp-service/core`](https://www.npmjs.com/package/@otp-service/core) — build `otpService`
|
|
47
|
+
- [`@otp-service/starter`](https://www.npmjs.com/package/@otp-service/starter) — Redis + provider composition
|
|
48
|
+
- Framework guides: [docs/guides/frameworks/express.md](https://github.com/Suraj-H/otp-service-package-v2/blob/main/docs/guides/frameworks/express.md)
|
|
49
|
+
|
|
50
|
+
## Links
|
|
51
|
+
|
|
52
|
+
- Repository: [github.com/Suraj-H/otp-service-package-v2](https://github.com/Suraj-H/otp-service-package-v2)
|
|
53
|
+
- Issues: [github.com/Suraj-H/otp-service-package-v2/issues](https://github.com/Suraj-H/otp-service-package-v2/issues)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@otp-service/express",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Express route helpers for OTP generate and verify flows.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
|
-
"dist"
|
|
25
|
+
"dist",
|
|
26
|
+
"README.md"
|
|
26
27
|
],
|
|
27
28
|
"engines": {
|
|
28
29
|
"node": ">=22.0.0"
|
|
@@ -31,7 +32,7 @@
|
|
|
31
32
|
"access": "public"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
|
-
"@otp-service/core": "0.1.
|
|
35
|
+
"@otp-service/core": "0.1.1"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
38
|
"express": "^4.21.0 || ^5.0.0"
|