@knsdev/node-utils 3.0.0 → 3.2.0
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 +51 -9
- package/dist/ECApiCodes.d.ts +1 -1
- package/dist/ECApiCodes.d.ts.map +1 -1
- package/dist/FBUtils.d.ts +9 -5
- package/dist/FBUtils.d.ts.map +1 -1
- package/dist/FBUtils.js +13 -7
- package/dist/FBUtils.js.map +1 -1
- package/dist/HMACUtils.d.ts +5 -2
- package/dist/HMACUtils.d.ts.map +1 -1
- package/dist/HMACUtils.js +5 -2
- package/dist/HMACUtils.js.map +1 -1
- package/dist/JwtUtils.d.ts +2 -2
- package/dist/JwtUtils.js +2 -2
- package/dist/PassUtils.d.ts +11 -6
- package/dist/PassUtils.d.ts.map +1 -1
- package/dist/PassUtils.js +16 -14
- package/dist/PassUtils.js.map +1 -1
- package/dist/TurnstileValidator.d.ts +3 -3
- package/dist/TurnstileValidator.d.ts.map +1 -1
- package/dist/TurnstileValidator.js +4 -4
- package/dist/TurnstileValidator.js.map +1 -1
- package/dist/express.d.ts +17 -0
- package/dist/express.d.ts.map +1 -0
- package/dist/express.js +23 -0
- package/dist/express.js.map +1 -0
- package/dist/getEnvv.d.ts +3 -2
- package/dist/getEnvv.d.ts.map +1 -1
- package/dist/getEnvv.js +9 -7
- package/dist/getEnvv.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +25 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +22 -0
- package/dist/utils.js.map +1 -0
- package/dist/zod.d.ts +10 -0
- package/dist/zod.d.ts.map +1 -1
- package/dist/zod.js +13 -4
- package/dist/zod.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @knsdev/node-utils
|
|
2
2
|
|
|
3
|
-
TypeScript utilities for Node.js APIs: JWT (HS256), bcrypt passwords, Express cookies, OAuth (Google / Facebook), Cloudflare Turnstile, HMAC, validation helpers, Zod schemas, and
|
|
3
|
+
TypeScript utilities for Node.js APIs: JWT (HS256), bcrypt passwords, Express cookies and small Express helpers, OAuth (Google / Facebook), Cloudflare Turnstile, HMAC, validation helpers, Zod schemas, pagination/sleep helpers, and math/random utilities. Published as **ES modules** (`"type": "module"`).
|
|
4
4
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
@@ -15,11 +15,12 @@ pnpm add @knsdev/node-utils
|
|
|
15
15
|
npm install @knsdev/node-utils
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Build from source (for contributors)
|
|
18
|
+
Build from source (for contributors). `build` runs `clean` first so `dist/` never keeps stale files after renames.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
pnpm install
|
|
22
22
|
pnpm run build
|
|
23
|
+
# optional: pnpm run clean
|
|
23
24
|
```
|
|
24
25
|
|
|
25
26
|
## How to import
|
|
@@ -58,7 +59,7 @@ const [parsed, parseErr] = tryCatch2(() => JSON.parse('{"a":1}'));
|
|
|
58
59
|
|
|
59
60
|
### `getEnvv`
|
|
60
61
|
|
|
61
|
-
Read `process.env` with a small schema: `string`, `int`, `float`, `boolean`, or `appEnv` (`dev` | `test` | `prod`).
|
|
62
|
+
Read `process.env` with a small schema: `string`, `int`, `float`, `boolean`, or `appEnv` (`dev` | `test` | `prod`). On failure, throws one `Error` whose message has up to two sections separated by a line of `================================`: `Not found keys: …` and/or `Value errors: …`.
|
|
62
63
|
|
|
63
64
|
```ts
|
|
64
65
|
import { getEnvv } from "@knsdev/node-utils/getEnvv.js";
|
|
@@ -110,7 +111,18 @@ if (hashResult.success) {
|
|
|
110
111
|
console.log(hashResult.hashedPassword);
|
|
111
112
|
}
|
|
112
113
|
|
|
113
|
-
const
|
|
114
|
+
const cmp = await PasswordUtils.comparePassword("plain", storedHash);
|
|
115
|
+
if (cmp.success) {
|
|
116
|
+
/* logged in */
|
|
117
|
+
} else {
|
|
118
|
+
/* cmp.error — e.g. BadRequest for wrong password */
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
try {
|
|
122
|
+
await PasswordUtils.comparePasswordOrThrow("plain", storedHash); // true on match; throws on mismatch / bcrypt error
|
|
123
|
+
} catch (e) {
|
|
124
|
+
/* handle */
|
|
125
|
+
}
|
|
114
126
|
|
|
115
127
|
if (!PasswordUtils.validateStrength(pw, 8, 128)) {
|
|
116
128
|
/* reject */
|
|
@@ -147,6 +159,36 @@ function logout(res: Response) {
|
|
|
147
159
|
}
|
|
148
160
|
```
|
|
149
161
|
|
|
162
|
+
### `express` (helpers)
|
|
163
|
+
|
|
164
|
+
Typed `res.json` wrapper and async route wrapper that forwards errors to `next`.
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
import type { RequestHandler } from "express";
|
|
168
|
+
import { CatchExpress, SendRes } from "@knsdev/node-utils/express.js";
|
|
169
|
+
|
|
170
|
+
type Health = { ok: true };
|
|
171
|
+
|
|
172
|
+
const health: RequestHandler = (req, res) => {
|
|
173
|
+
SendRes<Health>(res, { ok: true });
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
app.get("/health", CatchExpress(health));
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### `utils`
|
|
180
|
+
|
|
181
|
+
`sleep(ms)` and `PageLimit(query)` for list endpoints (page, limit, skip, sort, optional `searchTerm`, remaining keys as `filtersData`).
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
import { PageLimit, sleep } from "@knsdev/node-utils/utils.js";
|
|
185
|
+
|
|
186
|
+
await sleep(500);
|
|
187
|
+
|
|
188
|
+
const { page, limit, skip, sortBy, sortOrder, searchTerm, filtersData } =
|
|
189
|
+
PageLimit(req.query);
|
|
190
|
+
```
|
|
191
|
+
|
|
150
192
|
### `HMACUtils`
|
|
151
193
|
|
|
152
194
|
SHA-256 HMAC (hex) and timing-safe comparison.
|
|
@@ -268,12 +310,12 @@ const fromCode = await GoogleUtils.getUserFromCode(
|
|
|
268
310
|
|
|
269
311
|
### `FacebookUtils`
|
|
270
312
|
|
|
271
|
-
Validates a user access token via Graph API `debug_token`, then loads `/me
|
|
313
|
+
Validates a **Facebook user access token** (not a JWT) via Graph API `debug_token`, then loads `/me`. Requests use POST bodies so tokens and app secrets stay out of query strings. Returns `{ oauth_id, name, email, picture }` or `null`. The Graph API version used by this module is defined in code as a single constant (currently `v19.0`) for easy upgrades.
|
|
272
314
|
|
|
273
315
|
```ts
|
|
274
316
|
import { FacebookUtils } from "@knsdev/node-utils/FBUtils.js";
|
|
275
317
|
|
|
276
|
-
const profile = await FacebookUtils.
|
|
318
|
+
const profile = await FacebookUtils.getUserFromAccessToken(
|
|
277
319
|
accessToken,
|
|
278
320
|
process.env.FB_APP_ID!,
|
|
279
321
|
process.env.FB_APP_SECRET!,
|
|
@@ -302,7 +344,7 @@ if (failure) {
|
|
|
302
344
|
console.log(success.hostname, success.challenge_ts);
|
|
303
345
|
}
|
|
304
346
|
|
|
305
|
-
// Or throw on any failure:
|
|
347
|
+
// Or throw on any failure (last arg is reserved for API stability / future use; pass your app env):
|
|
306
348
|
const result = await TurnstileValidator.validateOrThrow(
|
|
307
349
|
secret,
|
|
308
350
|
tokenFromClient,
|
|
@@ -339,7 +381,7 @@ function configure(env: TAppEnvs) {
|
|
|
339
381
|
|
|
340
382
|
### `zod` (optional)
|
|
341
383
|
|
|
342
|
-
Prebuilt Zod schemas aligned with `
|
|
384
|
+
Prebuilt Zod schemas aligned with `CLengths` and machine-friendly error codes (`TZodCodes` / `ECApiCodes` style): `z_PASSWORD`, `z_GENERAL_TOKEN`, `z_CODE_6_DIGITS`, `z_SLUG`, `z_EMAIL`, `z_FIRST_NAME`, `z_LAST_NAME`, `z_TURNSTILE_TOKEN`, `z_LOGOUT_OTHER_SESSIONS`, `z_REMEMBER_ME`.
|
|
343
385
|
|
|
344
386
|
```ts
|
|
345
387
|
import { z_EMAIL, z_PASSWORD } from "@knsdev/node-utils/zod.js";
|
|
@@ -361,7 +403,7 @@ const LoginBody = z.object({
|
|
|
361
403
|
| Google ID token | `jose` |
|
|
362
404
|
| Passwords | `bcrypt` |
|
|
363
405
|
| Schemas | `zod` |
|
|
364
|
-
| Cookies
|
|
406
|
+
| Cookies + Express helpers | `express` (types / `Response`) |
|
|
365
407
|
|
|
366
408
|
---
|
|
367
409
|
|
package/dist/ECApiCodes.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type ECApiCodes = `API_ERROR` | `CREATED` | `UPDATED` | `DELETED` | `FETCHED` | `VALIDATED` | `AUTHENTICATED` | `SUCCESS` | `BAD_REQUEST` | `AUTHORIZED` | `UNAUTHORIZED` | `FORBIDDEN` | `NOT_FOUND` | `INTERNAL_SERVER_ERROR` | `TOO_MANY_REQUESTS` | `JWT__ENCRYPTION_FAILED` | `JWT__INVALID_OR_EXPIRED` | `CAPTCHA__VALIDATION_FAILED` | `PASSWORD__INVALID` | `PASSWORD__MIN_LENGTH` | `PASSWORD__MAX_LENGTH` | `GENERAL_TOKEN__INVALID` | `GENERAL_TOKEN__LENGTH` | `CODE_6_DIGITS__INVALID` | `CODE_6_DIGITS__LENGTH` | `CODE_6_DIGITS__INVALID_FORMAT` | `EMAIL__INVALID` | `EMAIL__MIN_LENGTH` | `EMAIL__MAX_LENGTH` | `FIRST_NAME__INVALID` | `FIRST_NAME__MIN_LENGTH` | `FIRST_NAME__MAX_LENGTH` | `LAST_NAME__INVALID` | `LAST_NAME__MAX_LENGTH` | `TURNSTILE_TOKEN__INVALID` | `TURNSTILE_TOKEN__MIN_LENGTH` | `TURNSTILE_TOKEN__MAX_LENGTH` | `CONFIRM_PASSWORD__DONT_MATCH` | `LOGOUT_OTHER_SESSIONS__INVALID` | `REMEMBER_ME__INVALID` | `SLUG__MIN_LENGTH` | `SLUG__MAX_LENGTH` | `SLUG__NAME__MIN_LENGTH` | `SLUG__NAME__MAX_LENGTH` | `SLUG__DESCRIPTION__MIN_LENGTH` | `SLUG__DESCRIPTION__MAX_LENGTH` | `SLUG__INVALID` | `USERNAME__INVALID` | `USERNAME__MIN_LENGTH` | `USERNAME__MAX_LENGTH` | `DESIGNATION__INVALID` | `DESIGNATION_MAX_LENGTH` | `BIO__INVALID` | `BIO_MAX_LENGTH` | `PROFILE_VISIBILITY__INVALID` | `ID__INVALID`;
|
|
1
|
+
export type ECApiCodes = `API_ERROR` | `CREATED` | `UPDATED` | `DELETED` | `FETCHED` | `VALIDATED` | `AUTHENTICATED` | `SUCCESS` | `BAD_REQUEST` | `AUTHORIZED` | `UNAUTHORIZED` | `FORBIDDEN` | `NOT_FOUND` | `INVALID_PASSWORD_OR_USER_NOT_FOUND` | `INTERNAL_SERVER_ERROR` | `TOO_MANY_REQUESTS` | `JWT__ENCRYPTION_FAILED` | `JWT__INVALID_OR_EXPIRED` | `CAPTCHA__VALIDATION_FAILED` | `PASSWORD__INVALID` | `PASSWORD__MIN_LENGTH` | `PASSWORD__MAX_LENGTH` | `GENERAL_TOKEN__INVALID` | `GENERAL_TOKEN__LENGTH` | `CODE_6_DIGITS__INVALID` | `CODE_6_DIGITS__LENGTH` | `CODE_6_DIGITS__INVALID_FORMAT` | `EMAIL__INVALID` | `EMAIL__MIN_LENGTH` | `EMAIL__MAX_LENGTH` | `FIRST_NAME__INVALID` | `FIRST_NAME__MIN_LENGTH` | `FIRST_NAME__MAX_LENGTH` | `LAST_NAME__INVALID` | `LAST_NAME__MAX_LENGTH` | `TURNSTILE_TOKEN__INVALID` | `TURNSTILE_TOKEN__MIN_LENGTH` | `TURNSTILE_TOKEN__MAX_LENGTH` | `CONFIRM_PASSWORD__DONT_MATCH` | `LOGOUT_OTHER_SESSIONS__INVALID` | `REMEMBER_ME__INVALID` | `SLUG__MIN_LENGTH` | `SLUG__MAX_LENGTH` | `SLUG__NAME__MIN_LENGTH` | `SLUG__NAME__MAX_LENGTH` | `SLUG__DESCRIPTION__MIN_LENGTH` | `SLUG__DESCRIPTION__MAX_LENGTH` | `SLUG__INVALID` | `USERNAME__INVALID` | `USERNAME__MIN_LENGTH` | `USERNAME__MAX_LENGTH` | `DESIGNATION__INVALID` | `DESIGNATION_MAX_LENGTH` | `BIO__INVALID` | `BIO_MAX_LENGTH` | `PROFILE_VISIBILITY__INVALID` | `ID__INVALID`;
|
|
2
2
|
//# sourceMappingURL=ECApiCodes.d.ts.map
|
package/dist/ECApiCodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECApiCodes.d.ts","sourceRoot":"","sources":["../src/ECApiCodes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,WAAW,GACnC,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,eAAe,GACf,SAAS,GACT,aAAa,GACb,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,GACX,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,+BAA+B,GAC/B,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,uBAAuB,GACvB,0BAA0B,GAC1B,6BAA6B,GAC7B,6BAA6B,GAC7B,8BAA8B,GAC9B,gCAAgC,GAChC,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB,GACxB,wBAAwB,GACxB,+BAA+B,GAC/B,+BAA+B,GAC/B,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,cAAc,GACd,gBAAgB,GAChB,6BAA6B,GAC7B,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"ECApiCodes.d.ts","sourceRoot":"","sources":["../src/ECApiCodes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,WAAW,GACnC,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,eAAe,GACf,SAAS,GACT,aAAa,GACb,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,GACX,oCAAoC,GACpC,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,+BAA+B,GAC/B,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,uBAAuB,GACvB,0BAA0B,GAC1B,6BAA6B,GAC7B,6BAA6B,GAC7B,8BAA8B,GAC9B,gCAAgC,GAChC,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB,GACxB,wBAAwB,GACxB,+BAA+B,GAC/B,+BAA+B,GAC/B,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,cAAc,GACd,gBAAgB,GAChB,6BAA6B,GAC7B,aAAa,CAAC"}
|
package/dist/FBUtils.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Facebook Graph API helpers: validate a user access token and load profile data.
|
|
3
|
+
* Import via: `@knsdev/node-utils/FBUtils.js`.
|
|
4
|
+
*/
|
|
1
5
|
declare class facebookUtils {
|
|
2
6
|
/**
|
|
3
|
-
* Validates a Facebook access token and fetches
|
|
4
|
-
*
|
|
7
|
+
* Validates a Facebook **user access token** (not a JWT) and fetches profile details.
|
|
8
|
+
* Calls `debug_token` then `/me` via POST so tokens and app secrets stay out of query strings (fewer access-log leaks).
|
|
5
9
|
* @param token - Facebook user access token.
|
|
6
10
|
* @param appId - Facebook application ID.
|
|
7
11
|
* @param appSecret - Facebook application secret.
|
|
8
|
-
* @returns Normalized user profile or `null` if
|
|
12
|
+
* @returns Normalized user profile or `null` if validation or profile lookup fails.
|
|
9
13
|
*/
|
|
10
|
-
readonly
|
|
14
|
+
readonly getUserFromAccessToken: (token: string, appId: string, appSecret: string) => Promise<{
|
|
11
15
|
name: string | undefined;
|
|
12
16
|
email: string | undefined;
|
|
13
17
|
picture: string | undefined;
|
|
@@ -15,7 +19,7 @@ declare class facebookUtils {
|
|
|
15
19
|
} | null>;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
|
-
* Singleton instance of
|
|
22
|
+
* Singleton instance of {@link facebookUtils}.
|
|
19
23
|
*/
|
|
20
24
|
export declare const FacebookUtils: facebookUtils;
|
|
21
25
|
export {};
|
package/dist/FBUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FBUtils.d.ts","sourceRoot":"","sources":["../src/FBUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FBUtils.d.ts","sourceRoot":"","sources":["../src/FBUtils.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,cAAM,aAAa;IAClB;;;;;;;OAOG;IACH,QAAQ,CAAC,sBAAsB,GAAU,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC;QAClG,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC,CA4DR;CACD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
package/dist/FBUtils.js
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
import { tryCatch } from "./tryCatch.js";
|
|
2
2
|
const FORM_URLENCODED = "application/x-www-form-urlencoded";
|
|
3
|
+
/** Graph API version segment used in `https://graph.facebook.com/{version}/…` URLs. */
|
|
4
|
+
const FB_GRAPH_API_VERSION = "v19.0";
|
|
5
|
+
/**
|
|
6
|
+
* Facebook Graph API helpers: validate a user access token and load profile data.
|
|
7
|
+
* Import via: `@knsdev/node-utils/FBUtils.js`.
|
|
8
|
+
*/
|
|
3
9
|
class facebookUtils {
|
|
4
10
|
/**
|
|
5
|
-
* Validates a Facebook access token and fetches
|
|
6
|
-
*
|
|
11
|
+
* Validates a Facebook **user access token** (not a JWT) and fetches profile details.
|
|
12
|
+
* Calls `debug_token` then `/me` via POST so tokens and app secrets stay out of query strings (fewer access-log leaks).
|
|
7
13
|
* @param token - Facebook user access token.
|
|
8
14
|
* @param appId - Facebook application ID.
|
|
9
15
|
* @param appSecret - Facebook application secret.
|
|
10
|
-
* @returns Normalized user profile or `null` if
|
|
16
|
+
* @returns Normalized user profile or `null` if validation or profile lookup fails.
|
|
11
17
|
*/
|
|
12
|
-
|
|
18
|
+
getUserFromAccessToken = async (token, appId, appSecret) => {
|
|
13
19
|
const debugBody = new URLSearchParams({
|
|
14
20
|
input_token: token,
|
|
15
21
|
access_token: `${appId}|${appSecret}`,
|
|
16
22
|
});
|
|
17
|
-
const [response, error] = await tryCatch(fetch(
|
|
23
|
+
const [response, error] = await tryCatch(fetch(`https://graph.facebook.com/${FB_GRAPH_API_VERSION}/debug_token`, {
|
|
18
24
|
method: "POST",
|
|
19
25
|
headers: { "Content-Type": FORM_URLENCODED },
|
|
20
26
|
body: debugBody.toString(),
|
|
@@ -38,7 +44,7 @@ class facebookUtils {
|
|
|
38
44
|
fields: "id,name,email,picture.type(large)",
|
|
39
45
|
access_token: token,
|
|
40
46
|
});
|
|
41
|
-
const [user, userError] = await tryCatch(fetch(
|
|
47
|
+
const [user, userError] = await tryCatch(fetch(`https://graph.facebook.com/${FB_GRAPH_API_VERSION}/me`, {
|
|
42
48
|
method: "POST",
|
|
43
49
|
headers: { "Content-Type": FORM_URLENCODED },
|
|
44
50
|
body: meBody.toString(),
|
|
@@ -62,7 +68,7 @@ class facebookUtils {
|
|
|
62
68
|
};
|
|
63
69
|
}
|
|
64
70
|
/**
|
|
65
|
-
* Singleton instance of
|
|
71
|
+
* Singleton instance of {@link facebookUtils}.
|
|
66
72
|
*/
|
|
67
73
|
export const FacebookUtils = new facebookUtils();
|
|
68
74
|
//# sourceMappingURL=FBUtils.js.map
|
package/dist/FBUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FBUtils.js","sourceRoot":"","sources":["../src/FBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAE5D,MAAM,aAAa;IAClB;;;;;;;OAOG;IACM,
|
|
1
|
+
{"version":3,"file":"FBUtils.js","sourceRoot":"","sources":["../src/FBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAE5D,uFAAuF;AACvF,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC;;;GAGG;AACH,MAAM,aAAa;IAClB;;;;;;;OAOG;IACM,sBAAsB,GAAG,KAAK,EAAE,KAAa,EAAE,KAAa,EAAE,SAAiB,EAK9E,EAAE;QAEX,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;YACrC,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,8BAA8B,oBAAoB,cAAc,EAAE;YAChH,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE;YAC5C,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC,CAAC;QACJ,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyE,CAAC;QAC7G,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,2FAA2F;QAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YAClC,MAAM,EAAE,mCAAmC;YAC3C,YAAY,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,8BAA8B,oBAAoB,KAAK,EAAE;YACvG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE;YAC5C,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;SACvB,CAAC,CAAC,CAAC;QACJ,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAkB,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,WAAW;YAClC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;SAC1C,CAAC;IACH,CAAC,CAAA;CACD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
package/dist/HMACUtils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HMAC utilities for use across projects.
|
|
3
|
-
* Import via: @
|
|
3
|
+
* Import via: @knsdev/node-utils/HMACUtils.js
|
|
4
4
|
*/
|
|
5
5
|
declare class hMACUtils {
|
|
6
6
|
/**
|
|
@@ -34,7 +34,10 @@ declare class hMACUtils {
|
|
|
34
34
|
*/
|
|
35
35
|
readonly compare: (a: string | Buffer, b: string | Buffer) => boolean;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Singleton instance of HMAC utilities.
|
|
39
|
+
* Import via: `@knsdev/node-utils/HMACUtils.js`.
|
|
40
|
+
*/
|
|
37
41
|
export declare const HMACUtils: hMACUtils;
|
|
38
|
-
export declare const aaa = 1;
|
|
39
42
|
export {};
|
|
40
43
|
//# sourceMappingURL=HMACUtils.d.ts.map
|
package/dist/HMACUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HMACUtils.d.ts","sourceRoot":"","sources":["../src/HMACUtils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,cAAM,SAAS;IAEd;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAa5G;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,CAE7D;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAI,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,KAAG,OAAO,CAcnE;CACD;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"HMACUtils.d.ts","sourceRoot":"","sources":["../src/HMACUtils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,cAAM,SAAS;IAEd;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAa5G;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,CAE7D;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAI,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,KAAG,OAAO,CAcnE;CACD;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|
package/dist/HMACUtils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHmac, timingSafeEqual } from "crypto";
|
|
2
2
|
/**
|
|
3
3
|
* HMAC utilities for use across projects.
|
|
4
|
-
* Import via: @
|
|
4
|
+
* Import via: @knsdev/node-utils/HMACUtils.js
|
|
5
5
|
*/
|
|
6
6
|
class hMACUtils {
|
|
7
7
|
/**
|
|
@@ -57,6 +57,9 @@ class hMACUtils {
|
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Singleton instance of HMAC utilities.
|
|
62
|
+
* Import via: `@knsdev/node-utils/HMACUtils.js`.
|
|
63
|
+
*/
|
|
60
64
|
export const HMACUtils = new hMACUtils();
|
|
61
|
-
export const aaa = 1;
|
|
62
65
|
//# sourceMappingURL=HMACUtils.js.map
|
package/dist/HMACUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HMACUtils.js","sourceRoot":"","sources":["../src/HMACUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGrD;;;GAGG;AACH,MAAM,SAAS;IAEd;;;;;OAKG;IACM,IAAI,GAAG,CAAC,MAAc,EAAE,KAAa,EAAgE,EAAE;QAC/G,IAAI,CAAC;YACJ,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;gBACrC,KAAK,EAAE,IAAI;aACX,CAAC;QACH,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACd,OAAO;gBACN,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAc;aACrB,CAAC;QACH,CAAC;IACF,CAAC,CAAA;IAED;;;;;;;OAOG;IACM,WAAW,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE;QAChE,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAA;IAED;;;;;;OAMG;IACM,OAAO,GAAG,CAAC,CAAkB,EAAE,CAAkB,EAAW,EAAE;QACtE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAE7D,iDAAiD;YACjD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACd,CAAC;YAED,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC,CAAA;CACD;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"HMACUtils.js","sourceRoot":"","sources":["../src/HMACUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGrD;;;GAGG;AACH,MAAM,SAAS;IAEd;;;;;OAKG;IACM,IAAI,GAAG,CAAC,MAAc,EAAE,KAAa,EAAgE,EAAE;QAC/G,IAAI,CAAC;YACJ,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;gBACrC,KAAK,EAAE,IAAI;aACX,CAAC;QACH,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACd,OAAO;gBACN,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAc;aACrB,CAAC;QACH,CAAC;IACF,CAAC,CAAA;IAED;;;;;;;OAOG;IACM,WAAW,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE;QAChE,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAA;IAED;;;;;;OAMG;IACM,OAAO,GAAG,CAAC,CAAkB,EAAE,CAAkB,EAAW,EAAE;QACtE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAE7D,iDAAiD;YACjD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACd,CAAC;YAED,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC,CAAA;CACD;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
|
package/dist/JwtUtils.d.ts
CHANGED
|
@@ -43,8 +43,8 @@ declare class jwtUtils {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
47
|
-
* Import via:
|
|
46
|
+
* Singleton instance of JWT utilities.
|
|
47
|
+
* Import via: `@knsdev/node-utils/JwtUtils.js`.
|
|
48
48
|
*/
|
|
49
49
|
export declare const JwtUtils: jwtUtils;
|
|
50
50
|
export {};
|
package/dist/JwtUtils.js
CHANGED
|
@@ -71,8 +71,8 @@ class jwtUtils {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
75
|
-
* Import via:
|
|
74
|
+
* Singleton instance of JWT utilities.
|
|
75
|
+
* Import via: `@knsdev/node-utils/JwtUtils.js`.
|
|
76
76
|
*/
|
|
77
77
|
export const JwtUtils = new jwtUtils();
|
|
78
78
|
//# sourceMappingURL=JwtUtils.js.map
|
package/dist/PassUtils.d.ts
CHANGED
|
@@ -24,15 +24,21 @@ declare class passwordUtils {
|
|
|
24
24
|
* Compare plain-text password with bcrypt hash.
|
|
25
25
|
* @param password - Plain-text password.
|
|
26
26
|
* @param hashedPassword - BCrypt hash.
|
|
27
|
-
* @returns `true
|
|
27
|
+
* @returns `{ success: true }` when the password matches; `{ success: false, error }` when it does not (`BadRequest`) or `bcrypt.compare` throws (`InternalServerError`).
|
|
28
28
|
*/
|
|
29
|
-
readonly comparePassword: (password: string, hashedPassword: string) => Promise<
|
|
29
|
+
readonly comparePassword: (password: string, hashedPassword: string) => Promise<{
|
|
30
|
+
success: true;
|
|
31
|
+
} | {
|
|
32
|
+
success: false;
|
|
33
|
+
error: Error;
|
|
34
|
+
}>;
|
|
30
35
|
/**
|
|
31
|
-
* Compare plain-text password with bcrypt hash
|
|
36
|
+
* Compare plain-text password with bcrypt hash; throw when the password does not match or comparison errors.
|
|
32
37
|
* @param password - Plain-text password.
|
|
33
38
|
* @param hashedPassword - BCrypt hash.
|
|
34
|
-
* @returns `true` when password matches hash
|
|
35
|
-
* @throws {
|
|
39
|
+
* @returns `true` when the password matches the hash.
|
|
40
|
+
* @throws {BadRequest} When the password does not match (same error as `comparePassword` failure path).
|
|
41
|
+
* @throws {InternalServerError} When `bcrypt.compare` throws unexpectedly.
|
|
36
42
|
*/
|
|
37
43
|
readonly comparePasswordOrThrow: (password: string, hashedPassword: string) => Promise<boolean>;
|
|
38
44
|
/**
|
|
@@ -54,6 +60,5 @@ declare class passwordUtils {
|
|
|
54
60
|
* Singleton instance of password utilities.
|
|
55
61
|
*/
|
|
56
62
|
export declare const PasswordUtils: passwordUtils;
|
|
57
|
-
export declare const bbbb = 1;
|
|
58
63
|
export {};
|
|
59
64
|
//# sourceMappingURL=PassUtils.d.ts.map
|
package/dist/PassUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PassUtils.d.ts","sourceRoot":"","sources":["../src/PassUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PassUtils.d.ts","sourceRoot":"","sources":["../src/PassUtils.ts"],"names":[],"mappings":"AAKA,cAAM,aAAa;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,GACpB,UAAU,MAAM,EAChB,mBAAgC,KAC9B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAOtF;IAEF;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,GAC3B,UAAU,MAAM,EAChB,mBAAgC,KAC9B,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,GACvB,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACpB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAW9D;IAEF;;;;;;;OAOG;IACH,QAAQ,CAAC,sBAAsB,GAC9B,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACpB,OAAO,CAAC,OAAO,CAAC,CAMjB;IAEF;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAC/B;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,GAAI,OAAO,MAAM,KAAG,OAAO,CACI;CACpD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
package/dist/PassUtils.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import bcrypt from "bcrypt";
|
|
2
|
-
import { InternalServerError } from "./ErrorClasses.js";
|
|
3
|
-
import { aaa } from "./HMACUtils.js";
|
|
2
|
+
import { BadRequest, InternalServerError } from "./ErrorClasses.js";
|
|
4
3
|
const DEFAULT_SALT_ROUNDS = 10;
|
|
5
4
|
class passwordUtils {
|
|
6
5
|
/**
|
|
@@ -36,30 +35,34 @@ class passwordUtils {
|
|
|
36
35
|
* Compare plain-text password with bcrypt hash.
|
|
37
36
|
* @param password - Plain-text password.
|
|
38
37
|
* @param hashedPassword - BCrypt hash.
|
|
39
|
-
* @returns `true
|
|
38
|
+
* @returns `{ success: true }` when the password matches; `{ success: false, error }` when it does not (`BadRequest`) or `bcrypt.compare` throws (`InternalServerError`).
|
|
40
39
|
*/
|
|
41
40
|
comparePassword = async (password, hashedPassword) => {
|
|
42
41
|
try {
|
|
43
|
-
|
|
42
|
+
const isOk = await bcrypt.compare(password, hashedPassword);
|
|
43
|
+
if (!isOk) {
|
|
44
|
+
return { success: false, error: new BadRequest('INVALID_PASSWORD_OR_USER_NOT_FOUND') };
|
|
45
|
+
}
|
|
46
|
+
return { success: isOk };
|
|
44
47
|
}
|
|
45
48
|
catch {
|
|
46
|
-
return false;
|
|
49
|
+
return { success: false, error: new InternalServerError() };
|
|
47
50
|
}
|
|
48
51
|
};
|
|
49
52
|
/**
|
|
50
|
-
* Compare plain-text password with bcrypt hash
|
|
53
|
+
* Compare plain-text password with bcrypt hash; throw when the password does not match or comparison errors.
|
|
51
54
|
* @param password - Plain-text password.
|
|
52
55
|
* @param hashedPassword - BCrypt hash.
|
|
53
|
-
* @returns `true` when password matches hash
|
|
54
|
-
* @throws {
|
|
56
|
+
* @returns `true` when the password matches the hash.
|
|
57
|
+
* @throws {BadRequest} When the password does not match (same error as `comparePassword` failure path).
|
|
58
|
+
* @throws {InternalServerError} When `bcrypt.compare` throws unexpectedly.
|
|
55
59
|
*/
|
|
56
60
|
comparePasswordOrThrow = async (password, hashedPassword) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
catch {
|
|
61
|
-
throw new InternalServerError();
|
|
61
|
+
const res = await this.comparePassword(password, hashedPassword);
|
|
62
|
+
if (!res.success) {
|
|
63
|
+
throw res.error;
|
|
62
64
|
}
|
|
65
|
+
return res.success;
|
|
63
66
|
};
|
|
64
67
|
/**
|
|
65
68
|
* Validate password length boundaries.
|
|
@@ -80,5 +83,4 @@ class passwordUtils {
|
|
|
80
83
|
* Singleton instance of password utilities.
|
|
81
84
|
*/
|
|
82
85
|
export const PasswordUtils = new passwordUtils();
|
|
83
|
-
export const bbbb = aaa;
|
|
84
86
|
//# sourceMappingURL=PassUtils.js.map
|
package/dist/PassUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PassUtils.js","sourceRoot":"","sources":["../src/PassUtils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PassUtils.js","sourceRoot":"","sources":["../src/PassUtils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,aAAa;IAClB;;;;;OAKG;IACM,YAAY,GAAG,KAAK,EAC5B,QAAgB,EAChB,UAAU,GAAG,mBAAmB,EACwD,EAAE;QAC1F,IAAI,CAAC;YACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;QAClD,CAAC;IACF,CAAC,CAAC;IAEF;;;;;;OAMG;IACM,mBAAmB,GAAG,KAAK,EACnC,QAAgB,EAChB,UAAU,GAAG,mBAAmB,EACd,EAAE;QACpB,IAAI,CAAC;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,CAAC;YACN,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACjC,CAAC;IACF,CAAC,CAAC;IAEF;;;;;OAKG;IACM,eAAe,GAAG,KAAK,EAC/B,QAAgB,EAChB,cAAsB,EAC0C,EAAE;QAClE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,oCAAoC,CAAC,EAAE,CAAC;YACxF,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC;YACN,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC7D,CAAC;IACF,CAAC,CAAC;IAEF;;;;;;;OAOG;IACM,sBAAsB,GAAG,KAAK,EACtC,QAAgB,EAChB,cAAsB,EACH,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC,CAAC;IAEF;;;;;;OAMG;IACM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,SAAiB,EAAW,EAAE,CAC/F,QAAQ,CAAC,MAAM,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;IAE9D;;;;OAIG;IACM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAClD,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -39,15 +39,15 @@ declare class turnstileValidator {
|
|
|
39
39
|
* @param remoteip - Optional client IP.
|
|
40
40
|
* @param options - Optional expected action/hostname and idempotency key.
|
|
41
41
|
* @param timeout - Request timeout in milliseconds.
|
|
42
|
-
* @param
|
|
42
|
+
* @param _APP_ENV - Reserved for callers (e.g. future logging policy); forwarded to `validate` for API stability; unused.
|
|
43
43
|
* @returns Successful Turnstile verification payload.
|
|
44
|
-
* @throws {BadRequest}
|
|
44
|
+
* @throws {BadRequest} With code `CAPTCHA__VALIDATION_FAILED` when token validation fails.
|
|
45
45
|
*/
|
|
46
46
|
readonly validateOrThrow: (secretKey: string, token: string, remoteip: string | null | undefined, options: {
|
|
47
47
|
expectedAction?: string;
|
|
48
48
|
expectedHostname?: string;
|
|
49
49
|
idempotencyKey?: string;
|
|
50
|
-
} | undefined, timeout: number | undefined,
|
|
50
|
+
} | undefined, timeout: number | undefined, _APP_ENV: TAppEnvs) => Promise<TurnstileValidationSuccess>;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* Singleton instance of Turnstile validation utilities.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnstileValidator.d.ts","sourceRoot":"","sources":["../src/TurnstileValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,KAAK,cAAc,GAAG,sBAAsB,GAC3C,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,CAAC;AAElB,KAAK,wBAAwB,GAAG;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,aAAa,EAAE,CACd,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,wBAAwB,GACxB,aAAa,GACb,sBAAsB,GACtB,gBAAgB,CAChB,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,0BAA0B,GAAG;IACjC,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE;QACX,cAAc,EAAE,MAAM,CAAC;KACvB,CAAC;CACF,CAAA;AAED,KAAK,yBAAyB,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;AAGvG,cAAM,kBAAkB;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,GAChB,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,YAAK,EAC7F,2BAAe,EACf,SAAS,QAAQ,KACf,OAAO,CAAC,yBAAyB,CAAC,CAmFpC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,eAAe,GACvB,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,YAAK,EAC7F,2BAAe,EACf,
|
|
1
|
+
{"version":3,"file":"TurnstileValidator.d.ts","sourceRoot":"","sources":["../src/TurnstileValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,KAAK,cAAc,GAAG,sBAAsB,GAC3C,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,CAAC;AAElB,KAAK,wBAAwB,GAAG;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,aAAa,EAAE,CACd,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,wBAAwB,GACxB,aAAa,GACb,sBAAsB,GACtB,gBAAgB,CAChB,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,0BAA0B,GAAG;IACjC,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE;QACX,cAAc,EAAE,MAAM,CAAC;KACvB,CAAC;CACF,CAAA;AAED,KAAK,yBAAyB,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;AAGvG,cAAM,kBAAkB;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,GAChB,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,YAAK,EAC7F,2BAAe,EACf,SAAS,QAAQ,KACf,OAAO,CAAC,yBAAyB,CAAC,CAmFpC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,eAAe,GACvB,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,YAAK,EAC7F,2BAAe,EACf,UAAU,QAAQ,KAChB,OAAO,CAAC,0BAA0B,CAAC,CAMrC;CACD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -80,12 +80,12 @@ class turnstileValidator {
|
|
|
80
80
|
* @param remoteip - Optional client IP.
|
|
81
81
|
* @param options - Optional expected action/hostname and idempotency key.
|
|
82
82
|
* @param timeout - Request timeout in milliseconds.
|
|
83
|
-
* @param
|
|
83
|
+
* @param _APP_ENV - Reserved for callers (e.g. future logging policy); forwarded to `validate` for API stability; unused.
|
|
84
84
|
* @returns Successful Turnstile verification payload.
|
|
85
|
-
* @throws {BadRequest}
|
|
85
|
+
* @throws {BadRequest} With code `CAPTCHA__VALIDATION_FAILED` when token validation fails.
|
|
86
86
|
*/
|
|
87
|
-
validateOrThrow = async (secretKey, token, remoteip, options = {}, timeout = 10000,
|
|
88
|
-
const [result, error] = await this.validate(secretKey, token, remoteip, options, timeout,
|
|
87
|
+
validateOrThrow = async (secretKey, token, remoteip, options = {}, timeout = 10000, _APP_ENV) => {
|
|
88
|
+
const [result, error] = await this.validate(secretKey, token, remoteip, options, timeout, _APP_ENV);
|
|
89
89
|
if (error) {
|
|
90
90
|
throw new BadRequest('CAPTCHA__VALIDATION_FAILED');
|
|
91
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnstileValidator.js","sourceRoot":"","sources":["../src/TurnstileValidator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TurnstileValidator.js","sourceRoot":"","sources":["../src/TurnstileValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NextFunction, Request, RequestHandler, Response } from "express";
|
|
2
|
+
import type { NoInfer } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Send JSON on the response. Requires an explicit generic payload type at the call site.
|
|
5
|
+
* @template T - Response body type (must be provided explicitly).
|
|
6
|
+
* @param res - Express `Response`.
|
|
7
|
+
* @param data - Serializable payload to send as JSON.
|
|
8
|
+
* @returns The result of `res.json(data)`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const SendRes: <T = "Error: A generic type parameter is required">(res: Response, data: NoInfer<T>) => Response<any, Record<string, any>>;
|
|
11
|
+
/**
|
|
12
|
+
* Wrap a route handler so rejected promises and thrown errors are passed to `next(error)`.
|
|
13
|
+
* @param fn - Async or sync Express `RequestHandler`.
|
|
14
|
+
* @returns A middleware that runs `fn` inside `try/catch` and forwards failures to `next`.
|
|
15
|
+
*/
|
|
16
|
+
export declare const CatchExpress: (fn: RequestHandler) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
17
|
+
//# sourceMappingURL=express.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,6CAA6C,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,uCAAmB,CAAC;AAE9H;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,cAAc,MAAY,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,IAAI,CAOxH,CAAC"}
|
package/dist/express.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Express helpers: typed JSON + async error forwarding. Import: `@knsdev/node-utils/express.js`.
|
|
2
|
+
/**
|
|
3
|
+
* Send JSON on the response. Requires an explicit generic payload type at the call site.
|
|
4
|
+
* @template T - Response body type (must be provided explicitly).
|
|
5
|
+
* @param res - Express `Response`.
|
|
6
|
+
* @param data - Serializable payload to send as JSON.
|
|
7
|
+
* @returns The result of `res.json(data)`.
|
|
8
|
+
*/
|
|
9
|
+
export const SendRes = (res, data) => res.json(data);
|
|
10
|
+
/**
|
|
11
|
+
* Wrap a route handler so rejected promises and thrown errors are passed to `next(error)`.
|
|
12
|
+
* @param fn - Async or sync Express `RequestHandler`.
|
|
13
|
+
* @returns A middleware that runs `fn` inside `try/catch` and forwards failures to `next`.
|
|
14
|
+
*/
|
|
15
|
+
export const CatchExpress = (fn) => async (req, res, next) => {
|
|
16
|
+
try {
|
|
17
|
+
await fn(req, res, next);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
next(error);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=express.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAGA,iGAAiG;AAEjG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAoD,GAAa,EAAE,IAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9H;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;IAC5H,IAAI,CAAC;QACJ,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,CAAC;IACb,CAAC;AACF,CAAC,CAAC"}
|
package/dist/getEnvv.d.ts
CHANGED
|
@@ -12,9 +12,10 @@ type ResolvedEnv<T extends EnvSchema> = {
|
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* Resolve and validate environment variables from a schema.
|
|
15
|
-
* @param schema - Map of env keys to expected primitive types.
|
|
15
|
+
* @param schema - Map of env keys to expected primitive types (`string`, `int`, `float`, `boolean`, `appEnv`).
|
|
16
16
|
* @returns Parsed environment object with inferred value types.
|
|
17
|
-
* @throws {Error}
|
|
17
|
+
* @throws {Error} When any key is missing/empty or any value fails type checks. The message is two sections joined by
|
|
18
|
+
* a line of `================================`: `Not found keys: …` (if applicable) and `Value errors: …` (if applicable).
|
|
18
19
|
*/
|
|
19
20
|
export declare const getEnvv: <T extends EnvSchema>(schema: T) => ResolvedEnv<T>;
|
|
20
21
|
export {};
|
package/dist/getEnvv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnvv.d.ts","sourceRoot":"","sources":["../src/getEnvv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,OAAO,GAAG;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;AAE/C,KAAK,WAAW,CAAC,CAAC,SAAS,SAAS,IAAI;KACtC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"getEnvv.d.ts","sourceRoot":"","sources":["../src/getEnvv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,OAAO,GAAG;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;AAE/C,KAAK,WAAW,CAAC,CAAC,SAAS,SAAS,IAAI;KACtC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,SAAS,EAAE,QAAQ,CAAC,KAAG,WAAW,CAAC,CAAC,CAgErE,CAAC"}
|
package/dist/getEnvv.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Resolve and validate environment variables from a schema.
|
|
3
|
-
* @param schema - Map of env keys to expected primitive types.
|
|
3
|
+
* @param schema - Map of env keys to expected primitive types (`string`, `int`, `float`, `boolean`, `appEnv`).
|
|
4
4
|
* @returns Parsed environment object with inferred value types.
|
|
5
|
-
* @throws {Error}
|
|
5
|
+
* @throws {Error} When any key is missing/empty or any value fails type checks. The message is two sections joined by
|
|
6
|
+
* a line of `================================`: `Not found keys: …` (if applicable) and `Value errors: …` (if applicable).
|
|
6
7
|
*/
|
|
7
8
|
export const getEnvv = (schema) => {
|
|
8
9
|
const result = {};
|
|
@@ -57,11 +58,12 @@ export const getEnvv = (schema) => {
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
if (notFoundKeys.length + valueErrors.length > 0) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
const parts = [];
|
|
62
|
+
if (notFoundKeys.length > 0)
|
|
63
|
+
parts.push(`Not found keys: ${notFoundKeys.join(', ')}`);
|
|
64
|
+
if (valueErrors.length > 0)
|
|
65
|
+
parts.push(`Value errors: ${valueErrors.join(', ')}`);
|
|
66
|
+
throw new Error(parts.join('\n================================\n'));
|
|
65
67
|
}
|
|
66
68
|
return result;
|
|
67
69
|
};
|
package/dist/getEnvv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnvv.js","sourceRoot":"","sources":["../src/getEnvv.ts"],"names":[],"mappings":"AAgBA
|
|
1
|
+
{"version":3,"file":"getEnvv.js","sourceRoot":"","sources":["../src/getEnvv.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convenience barrel re-exporting public modules. Prefer **per-file** imports from `@knsdev/node-utils/<Module>.js` in apps (matches `package.json` `exports`).
|
|
3
|
+
*/
|
|
1
4
|
export { CookieUtils } from "./Cookies.js";
|
|
2
5
|
export * from "./bnUtils.js";
|
|
3
6
|
export type { ECApiCodes } from "./ECApiCodes.js";
|
|
4
7
|
export * from "./ErrorClasses.js";
|
|
8
|
+
export { CatchExpress, SendRes } from "./express.js";
|
|
5
9
|
export { FacebookUtils } from "./FBUtils.js";
|
|
6
10
|
export { getEnvv } from "./getEnvv.js";
|
|
7
11
|
export { GoogleUtils } from "./GoogleUtils.js";
|
|
@@ -15,5 +19,6 @@ export * from "./Rand.js";
|
|
|
15
19
|
export { tryCatch, tryCatch2 } from "./tryCatch.js";
|
|
16
20
|
export { TurnstileValidator } from "./TurnstileValidator.js";
|
|
17
21
|
export type * from "./types.js";
|
|
22
|
+
export { PageLimit, sleep } from "./utils.js";
|
|
18
23
|
export { validateUUID } from "./validators.js";
|
|
19
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convenience barrel re-exporting public modules. Prefer **per-file** imports from `@knsdev/node-utils/<Module>.js` in apps (matches `package.json` `exports`).
|
|
3
|
+
*/
|
|
1
4
|
export { CookieUtils } from "./Cookies.js";
|
|
2
5
|
export * from "./bnUtils.js";
|
|
3
6
|
export * from "./ErrorClasses.js";
|
|
7
|
+
export { CatchExpress, SendRes } from "./express.js";
|
|
4
8
|
export { FacebookUtils } from "./FBUtils.js";
|
|
5
9
|
export { getEnvv } from "./getEnvv.js";
|
|
6
10
|
export { GoogleUtils } from "./GoogleUtils.js";
|
|
@@ -13,5 +17,6 @@ export { PasswordUtils } from "./PassUtils.js";
|
|
|
13
17
|
export * from "./Rand.js";
|
|
14
18
|
export { tryCatch, tryCatch2 } from "./tryCatch.js";
|
|
15
19
|
export { TurnstileValidator } from "./TurnstileValidator.js";
|
|
20
|
+
export { PageLimit, sleep } from "./utils.js";
|
|
16
21
|
export { validateUUID } from "./validators.js";
|
|
17
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export type TUserStatuses = 'active' | 'inactive' | 'pending' | 'blocked' | 'del
|
|
|
6
6
|
export type TUserGenders = 'male' | 'female' | 'other' | 'prefer_not_to_say';
|
|
7
7
|
export type TVisibility = 'public' | 'private' | 'protected' | 'hidden';
|
|
8
8
|
export type TThemes = 'light' | 'dark' | 'system';
|
|
9
|
+
export type NoInfer<T> = [T][T extends unknown ? 0 : never];
|
|
9
10
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC1J,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAC1H,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AACxG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAC7E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AACxE,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC1J,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAC1H,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AACxG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAC7E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AACxE,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve after `ms` milliseconds.
|
|
3
|
+
* @param ms - Delay in milliseconds.
|
|
4
|
+
* @returns A promise that resolves with `undefined` after the delay.
|
|
5
|
+
*/
|
|
6
|
+
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Normalize common list-query parameters: page, limit, skip, sort, optional search, and remaining keys as string filters.
|
|
9
|
+
* @param query - Typically `req.query` or a similar flat object (values may be string, number, or undefined).
|
|
10
|
+
* @returns Pagination/sorting fields plus `filtersData` (all other keys coerced to string values).
|
|
11
|
+
*/
|
|
12
|
+
export declare const PageLimit: (query: {
|
|
13
|
+
[key: string]: string | number | undefined;
|
|
14
|
+
}) => {
|
|
15
|
+
page: number;
|
|
16
|
+
limit: number;
|
|
17
|
+
skip: number;
|
|
18
|
+
sortBy: string;
|
|
19
|
+
sortOrder: string;
|
|
20
|
+
searchTerm?: string;
|
|
21
|
+
filtersData: {
|
|
22
|
+
[key: string]: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBAAoD,CAAC;AAErF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACrB,OAAO;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,KACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAe7I,CAAA"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Timing and list-query helpers. Import: `@knsdev/node-utils/utils.js`.
|
|
2
|
+
/**
|
|
3
|
+
* Resolve after `ms` milliseconds.
|
|
4
|
+
* @param ms - Delay in milliseconds.
|
|
5
|
+
* @returns A promise that resolves with `undefined` after the delay.
|
|
6
|
+
*/
|
|
7
|
+
export const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
8
|
+
/**
|
|
9
|
+
* Normalize common list-query parameters: page, limit, skip, sort, optional search, and remaining keys as string filters.
|
|
10
|
+
* @param query - Typically `req.query` or a similar flat object (values may be string, number, or undefined).
|
|
11
|
+
* @returns Pagination/sorting fields plus `filtersData` (all other keys coerced to string values).
|
|
12
|
+
*/
|
|
13
|
+
export const PageLimit = (query) => {
|
|
14
|
+
const { page: rawPage, limit: rawLimit, sortBy: rawSortBy, sortOrder: rawSortOrder, searchTerm, ...filtersData } = query;
|
|
15
|
+
const page = Number(rawPage || 1);
|
|
16
|
+
const limit = Number(rawLimit || 10);
|
|
17
|
+
const skip = (page - 1) * limit;
|
|
18
|
+
const sortBy = rawSortBy || "created_at";
|
|
19
|
+
const sortOrder = rawSortOrder || "desc";
|
|
20
|
+
return { page, limit, skip, sortBy, sortOrder, searchTerm, filtersData };
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAErF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,KAAqD,EAC2F,EAAE;IAClJ,MAAM,EACL,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,UAAU,EACV,GAAG,WAAW,EACd,GAAG,KAAK,CAAC;IACV,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,SAAS,IAAI,YAAY,CAAC;IACzC,MAAM,SAAS,GAAG,YAAY,IAAI,MAAM,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAmJ,CAAA;AAC1N,CAAC,CAAA"}
|
package/dist/zod.d.ts
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/** Password string within configured min/max length. */
|
|
2
3
|
export declare const z_PASSWORD: z.ZodString;
|
|
4
|
+
/** Alphanumeric + hyphen/underscore token of fixed length (`CLengths.GENERAL_TOKEN`). */
|
|
3
5
|
export declare const z_GENERAL_TOKEN: z.ZodString;
|
|
6
|
+
/** Exactly six decimal digits. */
|
|
4
7
|
export declare const z_CODE_6_DIGITS: z.ZodString;
|
|
8
|
+
/** URL-safe slug: length bounds and `[a-zA-Z0-9-_]` only. */
|
|
5
9
|
export declare const z_SLUG: z.ZodString;
|
|
10
|
+
/** Email with configured min/max length (beyond Zod’s built-in email check). */
|
|
6
11
|
export declare const z_EMAIL: z.ZodEmail;
|
|
12
|
+
/** First name within configured length. */
|
|
7
13
|
export declare const z_FIRST_NAME: z.ZodString;
|
|
14
|
+
/** Last name within configured length. */
|
|
8
15
|
export declare const z_LAST_NAME: z.ZodString;
|
|
16
|
+
/** Cloudflare Turnstile response token length bounds. */
|
|
9
17
|
export declare const z_TURNSTILE_TOKEN: z.ZodString;
|
|
18
|
+
/** Boolean flag for “log out other sessions” style fields. */
|
|
10
19
|
export declare const z_LOGOUT_OTHER_SESSIONS: z.ZodBoolean;
|
|
20
|
+
/** Boolean flag for “remember me” style fields. */
|
|
11
21
|
export declare const z_REMEMBER_ME: z.ZodBoolean;
|
|
12
22
|
//# sourceMappingURL=zod.d.ts.map
|
package/dist/zod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,wDAAwD;AACxD,eAAO,MAAM,UAAU,aAEgC,CAAC;AAExD,yFAAyF;AACzF,eAAO,MAAM,eAAe,aAE4B,CAAC;AAEzD,kCAAkC;AAClC,eAAO,MAAM,eAAe,aAE0B,CAAC;AAEvD,6DAA6D;AAC7D,eAAO,MAAM,MAAM,aAG4B,CAAC;AAEhD,gFAAgF;AAChF,eAAO,MAAM,OAAO,YAE6B,CAAC;AAElD,2CAA2C;AAC3C,eAAO,MAAM,YAAY,aAEkC,CAAC;AAE5D,0CAA0C;AAC1C,eAAO,MAAM,WAAW,aAEiC,CAAC;AAE1D,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,aAEuC,CAAC;AAEtE,8DAA8D;AAC9D,eAAO,MAAM,uBAAuB,cAAiD,CAAC;AAEtF,mDAAmD;AACnD,eAAO,MAAM,aAAa,cAAuC,CAAC"}
|
package/dist/zod.js
CHANGED
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { CLengths } from "./CLengths.js";
|
|
3
|
+
// Prebuilt schemas: `CLengths` + `TZodCodes`. Import: `@knsdev/node-utils/zod.js`.
|
|
3
4
|
const k = (key) => key;
|
|
5
|
+
/** Password string within configured min/max length. */
|
|
4
6
|
export const z_PASSWORD = z.string(k('PASSWORD__INVALID'))
|
|
5
7
|
.min(CLengths.PASSWORD.min, k('PASSWORD__MIN_LENGTH'))
|
|
6
8
|
.max(CLengths.PASSWORD.max, k('PASSWORD__MAX_LENGTH'));
|
|
9
|
+
/** Alphanumeric + hyphen/underscore token of fixed length (`CLengths.GENERAL_TOKEN`). */
|
|
7
10
|
export const z_GENERAL_TOKEN = z.string(k('GENERAL_TOKEN__INVALID'))
|
|
8
11
|
.length(CLengths.GENERAL_TOKEN, k('GENERAL_TOKEN__LENGTH'))
|
|
9
12
|
.regex(/^[a-zA-Z0-9-_]+$/, k('GENERAL_TOKEN__INVALID'));
|
|
13
|
+
/** Exactly six decimal digits. */
|
|
10
14
|
export const z_CODE_6_DIGITS = z.string(k('CODE_6_DIGITS__INVALID'))
|
|
11
15
|
.length(CLengths.Code_6_digits, k('CODE_6_DIGITS__LENGTH'))
|
|
12
16
|
.regex(/^\d{6}$/, k('CODE_6_DIGITS__INVALID_FORMAT'));
|
|
17
|
+
/** URL-safe slug: length bounds and `[a-zA-Z0-9-_]` only. */
|
|
13
18
|
export const z_SLUG = z.string(k('SLUG__INVALID'))
|
|
14
19
|
.min(CLengths.SLUG.min, k('SLUG__MIN_LENGTH'))
|
|
15
20
|
.max(CLengths.SLUG.max, k('SLUG__MAX_LENGTH'))
|
|
16
21
|
.regex(/^[a-zA-Z0-9-_]+$/, k('SLUG__INVALID'));
|
|
22
|
+
/** Email with configured min/max length (beyond Zod’s built-in email check). */
|
|
17
23
|
export const z_EMAIL = z.email(k('EMAIL__INVALID'))
|
|
18
24
|
.min(CLengths.EMAIL.min, k('EMAIL__MIN_LENGTH'))
|
|
19
25
|
.max(CLengths.EMAIL.max, k('EMAIL__MAX_LENGTH'));
|
|
26
|
+
/** First name within configured length. */
|
|
20
27
|
export const z_FIRST_NAME = z.string(k('FIRST_NAME__INVALID'))
|
|
21
28
|
.min(CLengths.FIRST_NAME.min, k('FIRST_NAME__MIN_LENGTH'))
|
|
22
29
|
.max(CLengths.FIRST_NAME.max, k('FIRST_NAME__MAX_LENGTH'));
|
|
30
|
+
/** Last name within configured length. */
|
|
23
31
|
export const z_LAST_NAME = z.string(k('LAST_NAME__INVALID'))
|
|
24
32
|
.min(CLengths.LAST_NAME.min, k('LAST_NAME__MIN_LENGTH'))
|
|
25
33
|
.max(CLengths.LAST_NAME.max, k('LAST_NAME__MAX_LENGTH'));
|
|
34
|
+
/** Cloudflare Turnstile response token length bounds. */
|
|
26
35
|
export const z_TURNSTILE_TOKEN = z.string(k('TURNSTILE_TOKEN__INVALID'))
|
|
27
36
|
.min(CLengths.TURNSTILE_TOKEN.min, k('TURNSTILE_TOKEN__MIN_LENGTH'))
|
|
28
37
|
.max(CLengths.TURNSTILE_TOKEN.max, k('TURNSTILE_TOKEN__MAX_LENGTH'));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
/** Boolean flag for “log out other sessions” style fields. */
|
|
39
|
+
export const z_LOGOUT_OTHER_SESSIONS = z.boolean(k('LOGOUT_OTHER_SESSIONS__INVALID'));
|
|
40
|
+
/** Boolean flag for “remember me” style fields. */
|
|
41
|
+
export const z_REMEMBER_ME = z.boolean(k('REMEMBER_ME__INVALID'));
|
|
33
42
|
//# sourceMappingURL=zod.js.map
|
package/dist/zod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,GAAG,CAAsB,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;KACxD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;KACrD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;KAClE,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;KAC1D,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;KAClE,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;KAC1D,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;KAChD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;KAC7C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;KAC7C,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;KACjD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;KAC/C,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knsdev/node-utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./*": {
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
|
-
"
|
|
12
|
+
"clean": "rm -rf dist",
|
|
13
|
+
"build": "npm run clean && tsc",
|
|
13
14
|
"dev": "tsc --watch",
|
|
14
15
|
"check-types": "tsc --noEmit",
|
|
15
16
|
"prepublishOnly": "npm run build"
|