@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.
Files changed (2) hide show
  1. package/README.md +53 -0
  2. 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.0",
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.0"
35
+ "@otp-service/core": "0.1.1"
35
36
  },
36
37
  "peerDependencies": {
37
38
  "express": "^4.21.0 || ^5.0.0"