@os.io/nest-kit 0.0.1-alpha.0 → 0.0.1-alpha.2

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 (286) hide show
  1. package/README.md +30 -30
  2. package/package.json +41 -5
  3. package/dist/auth/auth.constants.d.ts +0 -19
  4. package/dist/auth/auth.constants.d.ts.map +0 -1
  5. package/dist/auth/auth.constants.js +0 -19
  6. package/dist/auth/auth.constants.js.map +0 -1
  7. package/dist/auth/auth.guard.d.ts +0 -20
  8. package/dist/auth/auth.guard.d.ts.map +0 -1
  9. package/dist/auth/auth.guard.js +0 -84
  10. package/dist/auth/auth.guard.js.map +0 -1
  11. package/dist/auth/auth.module.d.ts +0 -26
  12. package/dist/auth/auth.module.d.ts.map +0 -1
  13. package/dist/auth/auth.module.js +0 -344
  14. package/dist/auth/auth.module.js.map +0 -1
  15. package/dist/auth/auth.options.d.ts +0 -179
  16. package/dist/auth/auth.options.d.ts.map +0 -1
  17. package/dist/auth/auth.options.js +0 -2
  18. package/dist/auth/auth.options.js.map +0 -1
  19. package/dist/auth/auth.service.d.ts +0 -57
  20. package/dist/auth/auth.service.d.ts.map +0 -1
  21. package/dist/auth/auth.service.js +0 -175
  22. package/dist/auth/auth.service.js.map +0 -1
  23. package/dist/auth/authorization/index.d.ts +0 -3
  24. package/dist/auth/authorization/index.d.ts.map +0 -1
  25. package/dist/auth/authorization/index.js +0 -3
  26. package/dist/auth/authorization/index.js.map +0 -1
  27. package/dist/auth/authorization/pbac/index.d.ts +0 -6
  28. package/dist/auth/authorization/pbac/index.d.ts.map +0 -1
  29. package/dist/auth/authorization/pbac/index.js +0 -4
  30. package/dist/auth/authorization/pbac/index.js.map +0 -1
  31. package/dist/auth/authorization/pbac/pbac.decorator.d.ts +0 -18
  32. package/dist/auth/authorization/pbac/pbac.decorator.d.ts.map +0 -1
  33. package/dist/auth/authorization/pbac/pbac.decorator.js +0 -14
  34. package/dist/auth/authorization/pbac/pbac.decorator.js.map +0 -1
  35. package/dist/auth/authorization/pbac/pbac.guard.d.ts +0 -19
  36. package/dist/auth/authorization/pbac/pbac.guard.d.ts.map +0 -1
  37. package/dist/auth/authorization/pbac/pbac.guard.js +0 -60
  38. package/dist/auth/authorization/pbac/pbac.guard.js.map +0 -1
  39. package/dist/auth/authorization/pbac/pbac.service.d.ts +0 -44
  40. package/dist/auth/authorization/pbac/pbac.service.d.ts.map +0 -1
  41. package/dist/auth/authorization/pbac/pbac.service.js +0 -146
  42. package/dist/auth/authorization/pbac/pbac.service.js.map +0 -1
  43. package/dist/auth/authorization/pbac/pbac.types.d.ts +0 -47
  44. package/dist/auth/authorization/pbac/pbac.types.d.ts.map +0 -1
  45. package/dist/auth/authorization/pbac/pbac.types.js +0 -2
  46. package/dist/auth/authorization/pbac/pbac.types.js.map +0 -1
  47. package/dist/auth/authorization/rbac/index.d.ts +0 -4
  48. package/dist/auth/authorization/rbac/index.d.ts.map +0 -1
  49. package/dist/auth/authorization/rbac/index.js +0 -4
  50. package/dist/auth/authorization/rbac/index.js.map +0 -1
  51. package/dist/auth/authorization/rbac/rbac.decorator.d.ts +0 -18
  52. package/dist/auth/authorization/rbac/rbac.decorator.d.ts.map +0 -1
  53. package/dist/auth/authorization/rbac/rbac.decorator.js +0 -25
  54. package/dist/auth/authorization/rbac/rbac.decorator.js.map +0 -1
  55. package/dist/auth/authorization/rbac/rbac.guard.d.ts +0 -19
  56. package/dist/auth/authorization/rbac/rbac.guard.d.ts.map +0 -1
  57. package/dist/auth/authorization/rbac/rbac.guard.js +0 -50
  58. package/dist/auth/authorization/rbac/rbac.guard.js.map +0 -1
  59. package/dist/auth/authorization/rbac/rbac.service.d.ts +0 -43
  60. package/dist/auth/authorization/rbac/rbac.service.d.ts.map +0 -1
  61. package/dist/auth/authorization/rbac/rbac.service.js +0 -95
  62. package/dist/auth/authorization/rbac/rbac.service.js.map +0 -1
  63. package/dist/auth/decorators/current-user.decorator.d.ts +0 -17
  64. package/dist/auth/decorators/current-user.decorator.d.ts.map +0 -1
  65. package/dist/auth/decorators/current-user.decorator.js +0 -23
  66. package/dist/auth/decorators/current-user.decorator.js.map +0 -1
  67. package/dist/auth/decorators/index.d.ts +0 -3
  68. package/dist/auth/decorators/index.d.ts.map +0 -1
  69. package/dist/auth/decorators/index.js +0 -3
  70. package/dist/auth/decorators/index.js.map +0 -1
  71. package/dist/auth/decorators/public.decorator.d.ts +0 -13
  72. package/dist/auth/decorators/public.decorator.d.ts.map +0 -1
  73. package/dist/auth/decorators/public.decorator.js +0 -15
  74. package/dist/auth/decorators/public.decorator.js.map +0 -1
  75. package/dist/auth/index.d.ts +0 -63
  76. package/dist/auth/index.d.ts.map +0 -1
  77. package/dist/auth/index.js +0 -65
  78. package/dist/auth/index.js.map +0 -1
  79. package/dist/auth/interfaces/auth-request.interface.d.ts +0 -18
  80. package/dist/auth/interfaces/auth-request.interface.d.ts.map +0 -1
  81. package/dist/auth/interfaces/auth-request.interface.js +0 -2
  82. package/dist/auth/interfaces/auth-request.interface.js.map +0 -1
  83. package/dist/auth/interfaces/auth-result.interface.d.ts +0 -28
  84. package/dist/auth/interfaces/auth-result.interface.d.ts.map +0 -1
  85. package/dist/auth/interfaces/auth-result.interface.js +0 -2
  86. package/dist/auth/interfaces/auth-result.interface.js.map +0 -1
  87. package/dist/auth/interfaces/auth-strategy.interface.d.ts +0 -37
  88. package/dist/auth/interfaces/auth-strategy.interface.d.ts.map +0 -1
  89. package/dist/auth/interfaces/auth-strategy.interface.js +0 -16
  90. package/dist/auth/interfaces/auth-strategy.interface.js.map +0 -1
  91. package/dist/auth/interfaces/auth-user.interface.d.ts +0 -25
  92. package/dist/auth/interfaces/auth-user.interface.d.ts.map +0 -1
  93. package/dist/auth/interfaces/auth-user.interface.js +0 -2
  94. package/dist/auth/interfaces/auth-user.interface.js.map +0 -1
  95. package/dist/auth/interfaces/cache-service.interface.d.ts +0 -30
  96. package/dist/auth/interfaces/cache-service.interface.d.ts.map +0 -1
  97. package/dist/auth/interfaces/cache-service.interface.js +0 -2
  98. package/dist/auth/interfaces/cache-service.interface.js.map +0 -1
  99. package/dist/auth/interfaces/index.d.ts +0 -8
  100. package/dist/auth/interfaces/index.d.ts.map +0 -1
  101. package/dist/auth/interfaces/index.js +0 -2
  102. package/dist/auth/interfaces/index.js.map +0 -1
  103. package/dist/auth/interfaces/user-service.interface.d.ts +0 -34
  104. package/dist/auth/interfaces/user-service.interface.d.ts.map +0 -1
  105. package/dist/auth/interfaces/user-service.interface.js +0 -2
  106. package/dist/auth/interfaces/user-service.interface.js.map +0 -1
  107. package/dist/auth/password/password.service.d.ts +0 -23
  108. package/dist/auth/password/password.service.d.ts.map +0 -1
  109. package/dist/auth/password/password.service.js +0 -52
  110. package/dist/auth/password/password.service.js.map +0 -1
  111. package/dist/auth/session/device-session.service.d.ts +0 -43
  112. package/dist/auth/session/device-session.service.d.ts.map +0 -1
  113. package/dist/auth/session/device-session.service.js +0 -72
  114. package/dist/auth/session/device-session.service.js.map +0 -1
  115. package/dist/auth/session/index.d.ts +0 -5
  116. package/dist/auth/session/index.d.ts.map +0 -1
  117. package/dist/auth/session/index.js +0 -4
  118. package/dist/auth/session/index.js.map +0 -1
  119. package/dist/auth/session/jwt.service.d.ts +0 -37
  120. package/dist/auth/session/jwt.service.d.ts.map +0 -1
  121. package/dist/auth/session/jwt.service.js +0 -119
  122. package/dist/auth/session/jwt.service.js.map +0 -1
  123. package/dist/auth/session/token-blacklist.service.d.ts +0 -37
  124. package/dist/auth/session/token-blacklist.service.d.ts.map +0 -1
  125. package/dist/auth/session/token-blacklist.service.js +0 -70
  126. package/dist/auth/session/token-blacklist.service.js.map +0 -1
  127. package/dist/auth/strategies/anonymous/anonymous.strategy.d.ts +0 -19
  128. package/dist/auth/strategies/anonymous/anonymous.strategy.d.ts.map +0 -1
  129. package/dist/auth/strategies/anonymous/anonymous.strategy.js +0 -49
  130. package/dist/auth/strategies/anonymous/anonymous.strategy.js.map +0 -1
  131. package/dist/auth/strategies/base/base.strategy.d.ts +0 -11
  132. package/dist/auth/strategies/base/base.strategy.d.ts.map +0 -1
  133. package/dist/auth/strategies/base/base.strategy.js +0 -6
  134. package/dist/auth/strategies/base/base.strategy.js.map +0 -1
  135. package/dist/auth/strategies/credentials/credentials.strategy.d.ts +0 -21
  136. package/dist/auth/strategies/credentials/credentials.strategy.d.ts.map +0 -1
  137. package/dist/auth/strategies/credentials/credentials.strategy.js +0 -67
  138. package/dist/auth/strategies/credentials/credentials.strategy.js.map +0 -1
  139. package/dist/auth/strategies/index.d.ts +0 -12
  140. package/dist/auth/strategies/index.d.ts.map +0 -1
  141. package/dist/auth/strategies/index.js +0 -12
  142. package/dist/auth/strategies/index.js.map +0 -1
  143. package/dist/auth/strategies/magic-link/magic-link.strategy.d.ts +0 -31
  144. package/dist/auth/strategies/magic-link/magic-link.strategy.d.ts.map +0 -1
  145. package/dist/auth/strategies/magic-link/magic-link.strategy.js +0 -88
  146. package/dist/auth/strategies/magic-link/magic-link.strategy.js.map +0 -1
  147. package/dist/auth/strategies/oauth/index.d.ts +0 -3
  148. package/dist/auth/strategies/oauth/index.d.ts.map +0 -1
  149. package/dist/auth/strategies/oauth/index.js +0 -3
  150. package/dist/auth/strategies/oauth/index.js.map +0 -1
  151. package/dist/auth/strategies/oauth/oauth-provider-registry.d.ts +0 -13
  152. package/dist/auth/strategies/oauth/oauth-provider-registry.d.ts.map +0 -1
  153. package/dist/auth/strategies/oauth/oauth-provider-registry.js +0 -20
  154. package/dist/auth/strategies/oauth/oauth-provider-registry.js.map +0 -1
  155. package/dist/auth/strategies/oauth/oauth.strategy.d.ts +0 -23
  156. package/dist/auth/strategies/oauth/oauth.strategy.d.ts.map +0 -1
  157. package/dist/auth/strategies/oauth/oauth.strategy.js +0 -79
  158. package/dist/auth/strategies/oauth/oauth.strategy.js.map +0 -1
  159. package/dist/auth/strategies/onetap/onetap.strategy.d.ts +0 -24
  160. package/dist/auth/strategies/onetap/onetap.strategy.d.ts.map +0 -1
  161. package/dist/auth/strategies/onetap/onetap.strategy.js +0 -77
  162. package/dist/auth/strategies/onetap/onetap.strategy.js.map +0 -1
  163. package/dist/auth/strategies/otp/otp.strategy.d.ts +0 -31
  164. package/dist/auth/strategies/otp/otp.strategy.d.ts.map +0 -1
  165. package/dist/auth/strategies/otp/otp.strategy.js +0 -93
  166. package/dist/auth/strategies/otp/otp.strategy.js.map +0 -1
  167. package/dist/auth/strategies/passkey/passkey.strategy.d.ts +0 -32
  168. package/dist/auth/strategies/passkey/passkey.strategy.d.ts.map +0 -1
  169. package/dist/auth/strategies/passkey/passkey.strategy.js +0 -102
  170. package/dist/auth/strategies/passkey/passkey.strategy.js.map +0 -1
  171. package/dist/auth/strategies/sso/sso.strategy.d.ts +0 -25
  172. package/dist/auth/strategies/sso/sso.strategy.d.ts.map +0 -1
  173. package/dist/auth/strategies/sso/sso.strategy.js +0 -80
  174. package/dist/auth/strategies/sso/sso.strategy.js.map +0 -1
  175. package/dist/auth/strategies/totp/totp.strategy.d.ts +0 -37
  176. package/dist/auth/strategies/totp/totp.strategy.d.ts.map +0 -1
  177. package/dist/auth/strategies/totp/totp.strategy.js +0 -109
  178. package/dist/auth/strategies/totp/totp.strategy.js.map +0 -1
  179. package/dist/auth/throttling/index.d.ts +0 -2
  180. package/dist/auth/throttling/index.d.ts.map +0 -1
  181. package/dist/auth/throttling/index.js +0 -2
  182. package/dist/auth/throttling/index.js.map +0 -1
  183. package/dist/auth/throttling/throttle.service.d.ts +0 -27
  184. package/dist/auth/throttling/throttle.service.d.ts.map +0 -1
  185. package/dist/auth/throttling/throttle.service.js +0 -63
  186. package/dist/auth/throttling/throttle.service.js.map +0 -1
  187. package/dist/bootstrap/cache/config.d.ts +0 -135
  188. package/dist/bootstrap/cache/config.d.ts.map +0 -1
  189. package/dist/bootstrap/cache/config.js +0 -189
  190. package/dist/bootstrap/cache/config.js.map +0 -1
  191. package/dist/bootstrap/cache/index.d.ts +0 -11
  192. package/dist/bootstrap/cache/index.d.ts.map +0 -1
  193. package/dist/bootstrap/cache/index.js +0 -11
  194. package/dist/bootstrap/cache/index.js.map +0 -1
  195. package/dist/bootstrap/index.d.ts +0 -21
  196. package/dist/bootstrap/index.d.ts.map +0 -1
  197. package/dist/bootstrap/index.js +0 -21
  198. package/dist/bootstrap/index.js.map +0 -1
  199. package/dist/bootstrap/scalar/api-docs.d.ts +0 -39
  200. package/dist/bootstrap/scalar/api-docs.d.ts.map +0 -1
  201. package/dist/bootstrap/scalar/api-docs.js +0 -41
  202. package/dist/bootstrap/scalar/api-docs.js.map +0 -1
  203. package/dist/bootstrap/scalar/index.d.ts +0 -39
  204. package/dist/bootstrap/scalar/index.d.ts.map +0 -1
  205. package/dist/bootstrap/scalar/index.js +0 -41
  206. package/dist/bootstrap/scalar/index.js.map +0 -1
  207. package/dist/bootstrap/swagger/api-docs.d.ts +0 -73
  208. package/dist/bootstrap/swagger/api-docs.d.ts.map +0 -1
  209. package/dist/bootstrap/swagger/api-docs.js +0 -87
  210. package/dist/bootstrap/swagger/api-docs.js.map +0 -1
  211. package/dist/bootstrap/swagger/index.d.ts +0 -37
  212. package/dist/bootstrap/swagger/index.d.ts.map +0 -1
  213. package/dist/bootstrap/swagger/index.js +0 -36
  214. package/dist/bootstrap/swagger/index.js.map +0 -1
  215. package/dist/bootstrap/typeorm/config/index.d.ts +0 -12
  216. package/dist/bootstrap/typeorm/config/index.d.ts.map +0 -1
  217. package/dist/bootstrap/typeorm/config/index.js +0 -62
  218. package/dist/bootstrap/typeorm/config/index.js.map +0 -1
  219. package/dist/bootstrap/typeorm/crud/controller.d.ts +0 -13
  220. package/dist/bootstrap/typeorm/crud/controller.d.ts.map +0 -1
  221. package/dist/bootstrap/typeorm/crud/controller.js +0 -72
  222. package/dist/bootstrap/typeorm/crud/controller.js.map +0 -1
  223. package/dist/bootstrap/typeorm/crud/index.d.ts +0 -4
  224. package/dist/bootstrap/typeorm/crud/index.d.ts.map +0 -1
  225. package/dist/bootstrap/typeorm/crud/index.js +0 -3
  226. package/dist/bootstrap/typeorm/crud/index.js.map +0 -1
  227. package/dist/bootstrap/typeorm/crud/service.d.ts +0 -10
  228. package/dist/bootstrap/typeorm/crud/service.d.ts.map +0 -1
  229. package/dist/bootstrap/typeorm/crud/service.js +0 -21
  230. package/dist/bootstrap/typeorm/crud/service.js.map +0 -1
  231. package/dist/bootstrap/typeorm/index.d.ts +0 -18
  232. package/dist/bootstrap/typeorm/index.d.ts.map +0 -1
  233. package/dist/bootstrap/typeorm/index.js +0 -18
  234. package/dist/bootstrap/typeorm/index.js.map +0 -1
  235. package/dist/bootstrap/typeorm/uow/factory.d.ts +0 -5
  236. package/dist/bootstrap/typeorm/uow/factory.d.ts.map +0 -1
  237. package/dist/bootstrap/typeorm/uow/factory.js +0 -27
  238. package/dist/bootstrap/typeorm/uow/factory.js.map +0 -1
  239. package/dist/bootstrap/typeorm/uow/index.d.ts +0 -4
  240. package/dist/bootstrap/typeorm/uow/index.d.ts.map +0 -1
  241. package/dist/bootstrap/typeorm/uow/index.js +0 -4
  242. package/dist/bootstrap/typeorm/uow/index.js.map +0 -1
  243. package/dist/bootstrap/typeorm/uow/transactional.decorator.d.ts +0 -62
  244. package/dist/bootstrap/typeorm/uow/transactional.decorator.d.ts.map +0 -1
  245. package/dist/bootstrap/typeorm/uow/transactional.decorator.js +0 -114
  246. package/dist/bootstrap/typeorm/uow/transactional.decorator.js.map +0 -1
  247. package/dist/bootstrap/typeorm/uow/unit-of-work.d.ts +0 -11
  248. package/dist/bootstrap/typeorm/uow/unit-of-work.d.ts.map +0 -1
  249. package/dist/bootstrap/typeorm/uow/unit-of-work.js +0 -23
  250. package/dist/bootstrap/typeorm/uow/unit-of-work.js.map +0 -1
  251. package/dist/core/index.d.ts +0 -11
  252. package/dist/core/index.d.ts.map +0 -1
  253. package/dist/core/index.js +0 -11
  254. package/dist/core/index.js.map +0 -1
  255. package/dist/infra/audit-log/index.d.ts +0 -12
  256. package/dist/infra/audit-log/index.d.ts.map +0 -1
  257. package/dist/infra/audit-log/index.js +0 -13
  258. package/dist/infra/audit-log/index.js.map +0 -1
  259. package/dist/infra/index.d.ts +0 -20
  260. package/dist/infra/index.d.ts.map +0 -1
  261. package/dist/infra/index.js +0 -21
  262. package/dist/infra/index.js.map +0 -1
  263. package/dist/infra/logger/index.d.ts +0 -12
  264. package/dist/infra/logger/index.d.ts.map +0 -1
  265. package/dist/infra/logger/index.js +0 -13
  266. package/dist/infra/logger/index.js.map +0 -1
  267. package/dist/infra/metrics/index.d.ts +0 -18
  268. package/dist/infra/metrics/index.d.ts.map +0 -1
  269. package/dist/infra/metrics/index.js +0 -19
  270. package/dist/infra/metrics/index.js.map +0 -1
  271. package/dist/infra/notification/index.d.ts +0 -12
  272. package/dist/infra/notification/index.d.ts.map +0 -1
  273. package/dist/infra/notification/index.js +0 -13
  274. package/dist/infra/notification/index.js.map +0 -1
  275. package/dist/infra/storage/index.d.ts +0 -12
  276. package/dist/infra/storage/index.d.ts.map +0 -1
  277. package/dist/infra/storage/index.js +0 -13
  278. package/dist/infra/storage/index.js.map +0 -1
  279. package/dist/infra/stripe/index.d.ts +0 -12
  280. package/dist/infra/stripe/index.d.ts.map +0 -1
  281. package/dist/infra/stripe/index.js +0 -13
  282. package/dist/infra/stripe/index.js.map +0 -1
  283. package/dist/saas/index.d.ts +0 -18
  284. package/dist/saas/index.d.ts.map +0 -1
  285. package/dist/saas/index.js +0 -19
  286. package/dist/saas/index.js.map +0 -1
@@ -1,109 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { Inject, Injectable } from '@nestjs/common';
14
- import { AuthMethod } from '../../interfaces';
15
- import { USER_SERVICE } from '../../auth.constants';
16
- import { JwtService } from '../../session/jwt.service';
17
- import { BaseStrategy } from '../base/base.strategy';
18
- /**
19
- * TOTP-based Two-Factor Authentication.
20
- *
21
- * Supports enrollment (generating secret + QR code), verification of codes,
22
- * and backup-code management.
23
- */
24
- let TotpStrategy = class TotpStrategy extends BaseStrategy {
25
- userService;
26
- jwtService;
27
- type = AuthMethod.TOTP;
28
- name = 'totp';
29
- constructor(userService, jwtService) {
30
- super();
31
- this.userService = userService;
32
- this.jwtService = jwtService;
33
- }
34
- /**
35
- * Authenticate using a TOTP code after primary authentication.
36
- * Expects `userId` and `code` in the payload.
37
- */
38
- async authenticate(payload, _context) {
39
- const userId = payload.userId;
40
- const code = payload.code;
41
- if (!userId || !code) {
42
- throw new Error('userId and code are required');
43
- }
44
- const secret = await this.userService.getTotpSecret(userId);
45
- if (!secret) {
46
- throw new Error('TOTP is not configured for this user');
47
- }
48
- const valid = await this.verifyCode(secret, code);
49
- if (!valid) {
50
- throw new Error('Invalid TOTP code');
51
- }
52
- const user = await this.userService.findById(userId);
53
- if (!user) {
54
- throw new Error('User not found');
55
- }
56
- user.isMfaVerified = true;
57
- user.roles = await this.userService.getRoles(user.id);
58
- user.permissions = await this.userService.getPermissions(user.id);
59
- const tokens = await this.jwtService.signTokens(user);
60
- return { user, tokens };
61
- }
62
- /**
63
- * Generate a new TOTP secret for a user (enrollment).
64
- * Returns the secret and an otpauth URL for QR code generation.
65
- */
66
- async enroll(userId, issuer = 'NestKit') {
67
- const otpauth = await this.loadOtpauth();
68
- const secret = new otpauth.Secret({ size: 20 });
69
- const secretBase32 = secret.base32;
70
- const totp = new otpauth.TOTP({
71
- issuer,
72
- label: userId,
73
- secret,
74
- });
75
- await this.userService.setTotpSecret(userId, secretBase32);
76
- return { secret: secretBase32, otpauthUrl: totp.toString() };
77
- }
78
- /**
79
- * Verify a TOTP or backup code.
80
- */
81
- async verifyCode(secret, code) {
82
- const otpauth = await this.loadOtpauth();
83
- try {
84
- const totp = new otpauth.TOTP({
85
- secret: otpauth.Secret.fromBase32(secret),
86
- });
87
- const delta = totp.validate({ token: code });
88
- return delta !== null;
89
- }
90
- catch {
91
- return false;
92
- }
93
- }
94
- async loadOtpauth() {
95
- try {
96
- return await import('otpauth');
97
- }
98
- catch {
99
- throw new Error('TOTP strategy requires "otpauth". Run: npm install otpauth');
100
- }
101
- }
102
- };
103
- TotpStrategy = __decorate([
104
- Injectable(),
105
- __param(0, Inject(USER_SERVICE)),
106
- __metadata("design:paramtypes", [Object, JwtService])
107
- ], TotpStrategy);
108
- export { TotpStrategy };
109
- //# sourceMappingURL=totp.strategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"totp.strategy.js","sourceRoot":"","sources":["../../../../packages/auth/strategies/totp/totp.strategy.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { ThrottleService } from './throttle.service';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/auth/throttling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { ThrottleService } from './throttle.service';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/auth/throttling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { ICacheService } from '../interfaces';
2
- /**
3
- * Rate-limits login attempts per identifier (email, IP, etc.)
4
- * using the shared cache.
5
- */
6
- export declare class ThrottleService {
7
- private readonly cache;
8
- constructor(cache: ICacheService);
9
- /**
10
- * Check if the identifier is currently throttled.
11
- *
12
- * @param identifier User email, IP, or any unique key
13
- * @param maxAttempts Max allowed attempts (default 5)
14
- * @param windowSec Window in seconds (default 900 = 15 min)
15
- * @throws Error if throttled
16
- */
17
- check(identifier: string, maxAttempts?: number, windowSec?: number): Promise<void>;
18
- /**
19
- * Record a failed login attempt.
20
- */
21
- recordFailure(identifier: string, windowSec?: number): Promise<void>;
22
- /**
23
- * Clear the attempt counter on successful login.
24
- */
25
- clear(identifier: string): Promise<void>;
26
- }
27
- //# sourceMappingURL=throttle.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throttle.service.d.ts","sourceRoot":"","sources":["../../../packages/auth/throttling/throttle.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;;GAGG;AACH,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,aAAa;IAGvC;;;;;;;OAOG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,SAAI,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhF;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -1,63 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { Inject, Injectable } from '@nestjs/common';
14
- import { CACHE_SERVICE, LOGIN_ATTEMPT_PREFIX } from '../auth.constants';
15
- /**
16
- * Rate-limits login attempts per identifier (email, IP, etc.)
17
- * using the shared cache.
18
- */
19
- let ThrottleService = class ThrottleService {
20
- cache;
21
- constructor(cache) {
22
- this.cache = cache;
23
- }
24
- /**
25
- * Check if the identifier is currently throttled.
26
- *
27
- * @param identifier User email, IP, or any unique key
28
- * @param maxAttempts Max allowed attempts (default 5)
29
- * @param windowSec Window in seconds (default 900 = 15 min)
30
- * @throws Error if throttled
31
- */
32
- async check(identifier, maxAttempts = 5, windowSec = 900) {
33
- const key = `${LOGIN_ATTEMPT_PREFIX}${identifier}`;
34
- const attempts = await this.cache.get(key);
35
- const current = attempts ?? 0;
36
- if (current >= maxAttempts) {
37
- throw new Error(`Too many login attempts. Please try again in ${windowSec} seconds.`);
38
- }
39
- }
40
- /**
41
- * Record a failed login attempt.
42
- */
43
- async recordFailure(identifier, windowSec = 900) {
44
- const key = `${LOGIN_ATTEMPT_PREFIX}${identifier}`;
45
- const attempts = await this.cache.get(key);
46
- const next = (attempts ?? 0) + 1;
47
- // Extend TTL on each failure so the window resets only after inactivity
48
- await this.cache.set(key, next, windowSec);
49
- }
50
- /**
51
- * Clear the attempt counter on successful login.
52
- */
53
- async clear(identifier) {
54
- await this.cache.del(`${LOGIN_ATTEMPT_PREFIX}${identifier}`);
55
- }
56
- };
57
- ThrottleService = __decorate([
58
- Injectable(),
59
- __param(0, Inject(CACHE_SERVICE)),
60
- __metadata("design:paramtypes", [Object])
61
- ], ThrottleService);
62
- export { ThrottleService };
63
- //# sourceMappingURL=throttle.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"throttle.service.js","sourceRoot":"","sources":["../../../packages/auth/throttling/throttle.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;GAGG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAGP;IAFnB,YAEmB,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IACpC,CAAC;IAEJ;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,WAAW,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG;QAC9D,MAAM,GAAG,GAAG,GAAG,oBAAoB,GAAG,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,SAAS,WAAW,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,SAAS,GAAG,GAAG;QACrD,MAAM,GAAG,GAAG,GAAG,oBAAoB,GAAG,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEjC,wEAAwE;QACxE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,oBAAoB,GAAG,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF,CAAA;AA1CY,eAAe;IAD3B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;;GAFb,eAAe,CA0C3B"}
@@ -1,135 +0,0 @@
1
- import { ConfigService } from '@nestjs/config';
2
- /** Per-store configuration. */
3
- export interface CacheStoreConfig {
4
- /** Store type */
5
- type: 'memory' | 'redis' | 'valkey';
6
- /**
7
- * Optional name to distinguish this store.
8
- *
9
- * When set, the bootstrapper also reads `CACHE_{NAME}_URL`,
10
- * `CACHE_{NAME}_KEY_PREFIX`, `CACHE_{NAME}_TTL`, and
11
- * `CACHE_{NAME}_MAX` environment variables (with `NAME`
12
- * uppercased). Named env vars take priority over the
13
- * generic `REDIS_*` / `VALKEY_*` / `CACHE_*` variables.
14
- *
15
- * @example
16
- * ```ts
17
- * stores: [
18
- * { type: 'redis', name: 'sessions' },
19
- * { type: 'redis', name: 'data' },
20
- * ]
21
- * // Also reads: CACHE_SESSIONS_URL, CACHE_DATA_URL
22
- * ```
23
- */
24
- name?: string;
25
- /**
26
- * Keyv adapter constructor.
27
- *
28
- * @example
29
- * ```ts
30
- * import { KeyvCacheableMemory } from 'cacheable';
31
- * import KeyvRedis from '@keyv/redis';
32
- * import KeyvValkey from '@keyv/valkey';
33
- *
34
- * const cfg = configCache({
35
- * keyv: Keyv,
36
- * stores: [
37
- * { type: 'memory', adapter: KeyvCacheableMemory },
38
- * { type: 'redis', adapter: KeyvRedis },
39
- * { type: 'valkey', adapter: KeyvValkey },
40
- * ],
41
- * });
42
- * ```
43
- */
44
- adapter?: new (...args: unknown[]) => unknown;
45
- /** Connection URL (redis / valkey), e.g. `redis://localhost:6379`. */
46
- url?: string;
47
- /** Max items (memory store). */
48
- max?: number;
49
- /** Key prefix for namespacing. */
50
- keyPrefix?: string;
51
- /** Enable RDS (ElastiCache) TLS mode. */
52
- rdsEnabled?: boolean;
53
- /** TTL override for this store (seconds). */
54
- ttl?: number;
55
- }
56
- /** Top-level cache configuration. */
57
- export interface CacheConfigOptions {
58
- /**
59
- * Default TTL (seconds).
60
- * When `keyv` is provided, this value is converted to milliseconds for Keyv.
61
- */
62
- ttl?: number;
63
- /** Register as `@Global()`. */
64
- isGlobal?: boolean;
65
- /**
66
- * One or more cache stores. Pass multiple to enable multi-tier caching.
67
- * Each store creates a separate `Keyv` instance.
68
- */
69
- stores?: CacheStoreConfig[];
70
- /**
71
- * The `Keyv` class from the `keyv` package.
72
- *
73
- * Required when any store provides an `adapter` — the config builds Keyv
74
- * instances so the output is ready for `CacheModule.register()`.
75
- *
76
- * @example
77
- * ```ts
78
- * import Keyv from 'keyv';
79
- * ```
80
- */
81
- keyv?: new (options?: Record<string, unknown>) => Record<string, unknown>;
82
- }
83
- type StoreRecord = Record<string, unknown>;
84
- /**
85
- * Build cache module options from environment variables.
86
- *
87
- * @example
88
- * ```ts
89
- * import Keyv from 'keyv';
90
- * import KeyvRedis from '@keyv/redis';
91
- * import { KeyvCacheableMemory } from 'cacheable';
92
- *
93
- * const cfg = configCache({
94
- * keyv: Keyv,
95
- * stores: [
96
- * { type: 'memory', adapter: KeyvCacheableMemory },
97
- * { type: 'redis', adapter: KeyvRedis },
98
- * ],
99
- * });
100
- * CacheModule.register(cfg);
101
- * ```
102
- *
103
- * Environment variables:
104
- * | Variable | Default | Description |
105
- * |---------------------------|----------------------------|-------------------------------------------|
106
- * | `CACHE_STORE` | `memory` | Comma-separated store types |
107
- * | `CACHE_TTL` | `60` | Default TTL (seconds) |
108
- * | `CACHE_MAX` | `100` | Max items (memory store) |
109
- * | `CACHE_IS_GLOBAL` | `false` | Register as global module |
110
- * | `CACHE_{NAME}_URL` | — | Named-store URL (overrides `REDIS_URL`) |
111
- * | `CACHE_{NAME}_KEY_PREFIX` | — | Named-store key prefix |
112
- * | `CACHE_{NAME}_TTL` | — | Named-store TTL (overrides `CACHE_TTL`) |
113
- * | `CACHE_{NAME}_MAX` | — | Named-store max (overrides `CACHE_MAX`) |
114
- * | `REDIS_URL` | `redis://localhost:6379/0` | Redis connection URL |
115
- * | `REDIS_KEY_PREFIX` | — | Redis key prefix |
116
- * | `VALKEY_URL` | `redis://localhost:6379/0` | Valkey connection URL |
117
- * | `VALKEY_KEY_PREFIX` | — | Valkey key prefix |
118
- * | `RDS_CACHE_ENABLED` | `false` | Enable TLS for Redis / Valkey |
119
- */
120
- export declare function configCache(options?: CacheConfigOptions): StoreRecord;
121
- /**
122
- * Build cache module options from `ConfigService`.
123
- *
124
- * @example
125
- * ```ts
126
- * CacheModule.registerAsync({
127
- * imports: [ConfigModule],
128
- * inject: [ConfigService],
129
- * useFactory: (cs) => configCacheAsync(cs, { keyv: Keyv, stores: [...] }),
130
- * })
131
- * ```
132
- */
133
- export declare function configCacheAsync(configService: ConfigService, options?: CacheConfigOptions): StoreRecord;
134
- export {};
135
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../packages/bootstrap/cache/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEpC;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAE9C,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3E;AAYD,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiL3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAYrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,WAAW,CASb"}
@@ -1,189 +0,0 @@
1
- /* ------------------------------------------------------------------ */
2
- /* Helpers */
3
- /* ------------------------------------------------------------------ */
4
- function readStr(get, name, ...suffixes) {
5
- for (const suffix of suffixes) {
6
- if (name) {
7
- const v = get.str(`CACHE_${name.toUpperCase()}_${suffix}`);
8
- if (v !== undefined)
9
- return v;
10
- }
11
- const v = get.str(suffix);
12
- if (v !== undefined)
13
- return v;
14
- }
15
- return undefined;
16
- }
17
- function readNum(get, name, ...suffixes) {
18
- for (const suffix of suffixes) {
19
- if (name) {
20
- const v = get.num(`CACHE_${name.toUpperCase()}_${suffix}`);
21
- if (v !== undefined)
22
- return v;
23
- }
24
- const v = get.num(suffix);
25
- if (v !== undefined)
26
- return v;
27
- }
28
- return undefined;
29
- }
30
- function buildAdapterOptions(name, opt, get, prefix) {
31
- const rds = opt?.rdsEnabled ?? get.bool('RDS_CACHE_ENABLED', false);
32
- const keyPrefix = opt?.keyPrefix ?? readStr(get, name, 'KEY_PREFIX', `${prefix}_KEY_PREFIX`);
33
- const url = opt?.url ?? readStr(get, name, 'URL', `${prefix}_URL`) ?? 'redis://localhost:6379/0';
34
- return { url, keyPrefix, ...(rds ? { socket: { tls: true } } : {}) };
35
- }
36
- function parseStores(get, options) {
37
- const userStores = options?.stores;
38
- const raw = userStores?.map((s) => s.type).join(',') ?? get.str('CACHE_STORE') ?? 'memory';
39
- const types = raw.split(',').map((s) => s.trim());
40
- return types.map((type) => {
41
- const opt = userStores?.find((s) => s.type === type);
42
- const storeName = opt?.name;
43
- const maxVal = opt?.max ?? readNum(get, storeName, 'MAX', 'CACHE_MAX') ?? 100;
44
- const ttlVal = opt?.ttl ?? options?.ttl ?? readNum(get, storeName, 'TTL', 'CACHE_TTL') ?? 60;
45
- const base = {
46
- type,
47
- name: storeName,
48
- adapter: opt?.adapter,
49
- max: maxVal,
50
- ttl: ttlVal,
51
- };
52
- if (type === 'memory')
53
- return base;
54
- const prefix = type === 'redis' ? 'REDIS' : 'VALKEY';
55
- return {
56
- ...base,
57
- ...buildAdapterOptions(storeName, opt, get, prefix),
58
- rdsEnabled: opt?.rdsEnabled ?? get.bool('RDS_CACHE_ENABLED', false),
59
- };
60
- });
61
- }
62
- function toMilliseconds(seconds) {
63
- return seconds * 1000;
64
- }
65
- function buildCacheConfig(get, options) {
66
- const KeyvClass = options?.keyv;
67
- const stores = parseStores(get, options);
68
- const base = {
69
- ttl: options?.ttl ?? get.num('CACHE_TTL') ?? 60,
70
- isGlobal: options?.isGlobal ?? get.bool('CACHE_IS_GLOBAL', false),
71
- };
72
- // When Keyv class is provided, build Keyv instances
73
- if (KeyvClass) {
74
- const keyvInstances = stores.map((s) => {
75
- const ttlMs = toMilliseconds(s.ttl ?? 60);
76
- if (s.type === 'memory') {
77
- const adapterOptions = {};
78
- if (s.max !== undefined)
79
- adapterOptions.lruSize = s.max;
80
- const adapter = s.adapter ? new s.adapter(adapterOptions) : undefined;
81
- // In-memory without adapter → Keyv default (no explicit store)
82
- if (!adapter) {
83
- return { keyv: new KeyvClass({ ttl: ttlMs }), name: s.name };
84
- }
85
- return {
86
- keyv: new KeyvClass({ store: adapter, ttl: ttlMs }),
87
- name: s.name,
88
- };
89
- }
90
- // redis / valkey — always need adapter
91
- if (!s.adapter) {
92
- throw new Error(`Cache store "${s.type}" requires an adapter. ` +
93
- `Install the package and pass adapter in config. ` +
94
- `e.g. { type: "${s.type}", adapter: Keyv${s.type === 'redis' ? 'Redis' : 'Valkey'} }`);
95
- }
96
- const adapterOptions = buildAdapterOptions(s.name, s, get, s.type === 'redis' ? 'REDIS' : 'VALKEY');
97
- const keyvAdapter = new s.adapter(adapterOptions.url, adapterOptions);
98
- return {
99
- keyv: new KeyvClass({ store: keyvAdapter, ttl: ttlMs }),
100
- name: s.name,
101
- };
102
- });
103
- // Single store — flatten, include name if set
104
- if (keyvInstances.length === 1) {
105
- const entry = keyvInstances[0];
106
- const out = { store: entry.keyv, ...base };
107
- if (entry.name)
108
- out.name = entry.name;
109
- return out;
110
- }
111
- return { stores: keyvInstances, ...base };
112
- }
113
- // Without Keyv class — return raw config data
114
- if (stores.length === 1) {
115
- const out = { ...base, ...stores[0] };
116
- if (stores[0].name)
117
- out.name = stores[0].name;
118
- return out;
119
- }
120
- return { ...base, stores };
121
- }
122
- /* ------------------------------------------------------------------ */
123
- /* Public API */
124
- /* ------------------------------------------------------------------ */
125
- /**
126
- * Build cache module options from environment variables.
127
- *
128
- * @example
129
- * ```ts
130
- * import Keyv from 'keyv';
131
- * import KeyvRedis from '@keyv/redis';
132
- * import { KeyvCacheableMemory } from 'cacheable';
133
- *
134
- * const cfg = configCache({
135
- * keyv: Keyv,
136
- * stores: [
137
- * { type: 'memory', adapter: KeyvCacheableMemory },
138
- * { type: 'redis', adapter: KeyvRedis },
139
- * ],
140
- * });
141
- * CacheModule.register(cfg);
142
- * ```
143
- *
144
- * Environment variables:
145
- * | Variable | Default | Description |
146
- * |---------------------------|----------------------------|-------------------------------------------|
147
- * | `CACHE_STORE` | `memory` | Comma-separated store types |
148
- * | `CACHE_TTL` | `60` | Default TTL (seconds) |
149
- * | `CACHE_MAX` | `100` | Max items (memory store) |
150
- * | `CACHE_IS_GLOBAL` | `false` | Register as global module |
151
- * | `CACHE_{NAME}_URL` | — | Named-store URL (overrides `REDIS_URL`) |
152
- * | `CACHE_{NAME}_KEY_PREFIX` | — | Named-store key prefix |
153
- * | `CACHE_{NAME}_TTL` | — | Named-store TTL (overrides `CACHE_TTL`) |
154
- * | `CACHE_{NAME}_MAX` | — | Named-store max (overrides `CACHE_MAX`) |
155
- * | `REDIS_URL` | `redis://localhost:6379/0` | Redis connection URL |
156
- * | `REDIS_KEY_PREFIX` | — | Redis key prefix |
157
- * | `VALKEY_URL` | `redis://localhost:6379/0` | Valkey connection URL |
158
- * | `VALKEY_KEY_PREFIX` | — | Valkey key prefix |
159
- * | `RDS_CACHE_ENABLED` | `false` | Enable TLS for Redis / Valkey |
160
- */
161
- export function configCache(options) {
162
- return buildCacheConfig({
163
- str: (key) => process.env[key],
164
- num: (key) => (process.env[key] !== undefined ? Number(process.env[key]) : undefined),
165
- bool: (key, def) => process.env[key] !== undefined
166
- ? process.env[key] === 'true' || process.env[key] === '1'
167
- : def,
168
- }, options);
169
- }
170
- /**
171
- * Build cache module options from `ConfigService`.
172
- *
173
- * @example
174
- * ```ts
175
- * CacheModule.registerAsync({
176
- * imports: [ConfigModule],
177
- * inject: [ConfigService],
178
- * useFactory: (cs) => configCacheAsync(cs, { keyv: Keyv, stores: [...] }),
179
- * })
180
- * ```
181
- */
182
- export function configCacheAsync(configService, options) {
183
- return buildCacheConfig({
184
- str: (key) => configService.get(key),
185
- num: (key) => configService.get(key),
186
- bool: (key, def) => configService.get(key, def) ?? def,
187
- }, options);
188
- }
189
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../packages/bootstrap/cache/config.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @os.io/nest-kit/bootstrap/cache
3
- *
4
- * Cache module configuration bootstrapper for NestJS applications.
5
- * Supports memory, Redis, Valkey, and multi-tier caching.
6
- *
7
- * @module
8
- * @packageDocumentation
9
- */
10
- export { configCache, configCacheAsync } from './config';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/bootstrap/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @os.io/nest-kit/bootstrap/cache
3
- *
4
- * Cache module configuration bootstrapper for NestJS applications.
5
- * Supports memory, Redis, Valkey, and multi-tier caching.
6
- *
7
- * @module
8
- * @packageDocumentation
9
- */
10
- export { configCache, configCacheAsync } from './config';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/bootstrap/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * @os.io/nest-kit/bootstrap
3
- *
4
- * Helpers and configuration bootstrappers for popular NestJS modules such as
5
- * Swagger, Scalar, Cache, TypeORM, Mongoose, etc. Designed to be called directly from
6
- * your application's `main.ts` or `app.module.ts`.
7
- *
8
- * ## Sub-modules
9
- *
10
- * - `@os.io/nest-kit/bootstrap/swagger` — Swagger UI
11
- * - `@os.io/nest-kit/bootstrap/scalar` — Scalar API Reference
12
- * - `@os.io/nest-kit/bootstrap/cache` — CacheModule setup
13
- * - `@os.io/nest-kit/bootstrap/typeorm` — TypeORM setup, CRUD factories, Unit of Work
14
- *
15
- * @module
16
- * @packageDocumentation
17
- */
18
- export * from './swagger';
19
- export * from './scalar';
20
- export * from './cache';
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/bootstrap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * @os.io/nest-kit/bootstrap
3
- *
4
- * Helpers and configuration bootstrappers for popular NestJS modules such as
5
- * Swagger, Scalar, Cache, TypeORM, Mongoose, etc. Designed to be called directly from
6
- * your application's `main.ts` or `app.module.ts`.
7
- *
8
- * ## Sub-modules
9
- *
10
- * - `@os.io/nest-kit/bootstrap/swagger` — Swagger UI
11
- * - `@os.io/nest-kit/bootstrap/scalar` — Scalar API Reference
12
- * - `@os.io/nest-kit/bootstrap/cache` — CacheModule setup
13
- * - `@os.io/nest-kit/bootstrap/typeorm` — TypeORM setup, CRUD factories, Unit of Work
14
- *
15
- * @module
16
- * @packageDocumentation
17
- */
18
- export * from './swagger';
19
- export * from './scalar';
20
- export * from './cache';
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/bootstrap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}