@spinajs/authn-orm 0.0.0-stage → 3.0.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.
Files changed (246) hide show
  1. package/README.md +84 -2
  2. package/lib/cjs/audit/db-audit-sink.d.ts +11 -0
  3. package/lib/cjs/audit/db-audit-sink.d.ts.map +1 -0
  4. package/lib/cjs/audit/db-audit-sink.js +73 -0
  5. package/lib/cjs/audit/db-audit-sink.js.map +1 -0
  6. package/lib/cjs/audit/index.d.ts +2 -0
  7. package/lib/cjs/audit/index.d.ts.map +1 -0
  8. package/lib/cjs/audit/index.js +6 -0
  9. package/lib/cjs/audit/index.js.map +1 -0
  10. package/lib/cjs/identity.d.ts +6 -0
  11. package/lib/cjs/identity.d.ts.map +1 -0
  12. package/lib/cjs/identity.js +27 -0
  13. package/lib/cjs/identity.js.map +1 -0
  14. package/lib/cjs/index.d.ts +10 -0
  15. package/lib/cjs/index.d.ts.map +1 -0
  16. package/lib/cjs/index.js +26 -0
  17. package/lib/cjs/index.js.map +1 -0
  18. package/lib/cjs/links/db-link-store.d.ts +13 -0
  19. package/lib/cjs/links/db-link-store.d.ts.map +1 -0
  20. package/lib/cjs/links/db-link-store.js +88 -0
  21. package/lib/cjs/links/db-link-store.js.map +1 -0
  22. package/lib/cjs/links/index.d.ts +2 -0
  23. package/lib/cjs/links/index.d.ts.map +1 -0
  24. package/lib/cjs/links/index.js +6 -0
  25. package/lib/cjs/links/index.js.map +1 -0
  26. package/lib/cjs/mfa/cipher.d.ts +18 -0
  27. package/lib/cjs/mfa/cipher.d.ts.map +1 -0
  28. package/lib/cjs/mfa/cipher.js +81 -0
  29. package/lib/cjs/mfa/cipher.js.map +1 -0
  30. package/lib/cjs/mfa/db-mfa-enrolments.d.ts +14 -0
  31. package/lib/cjs/mfa/db-mfa-enrolments.d.ts.map +1 -0
  32. package/lib/cjs/mfa/db-mfa-enrolments.js +43 -0
  33. package/lib/cjs/mfa/db-mfa-enrolments.js.map +1 -0
  34. package/lib/cjs/mfa/db-mfa-store.d.ts +51 -0
  35. package/lib/cjs/mfa/db-mfa-store.d.ts.map +1 -0
  36. package/lib/cjs/mfa/db-mfa-store.js +190 -0
  37. package/lib/cjs/mfa/db-mfa-store.js.map +1 -0
  38. package/lib/cjs/mfa/index.d.ts +4 -0
  39. package/lib/cjs/mfa/index.d.ts.map +1 -0
  40. package/lib/cjs/mfa/index.js +20 -0
  41. package/lib/cjs/mfa/index.js.map +1 -0
  42. package/lib/cjs/migrations/AuthnInitial_2026_10_02_00_00_00.d.ts +10 -0
  43. package/lib/cjs/migrations/AuthnInitial_2026_10_02_00_00_00.d.ts.map +1 -0
  44. package/lib/cjs/migrations/AuthnInitial_2026_10_02_00_00_00.js +98 -0
  45. package/lib/cjs/migrations/AuthnInitial_2026_10_02_00_00_00.js.map +1 -0
  46. package/lib/cjs/migrations/index.d.ts +2 -0
  47. package/lib/cjs/migrations/index.d.ts.map +1 -0
  48. package/lib/cjs/migrations/index.js +18 -0
  49. package/lib/cjs/migrations/index.js.map +1 -0
  50. package/lib/cjs/models/AuthnAudit.d.ts +18 -0
  51. package/lib/cjs/models/AuthnAudit.d.ts.map +1 -0
  52. package/lib/cjs/models/AuthnAudit.js +30 -0
  53. package/lib/cjs/models/AuthnAudit.js.map +1 -0
  54. package/lib/cjs/models/AuthnIdentity.d.ts +16 -0
  55. package/lib/cjs/models/AuthnIdentity.d.ts.map +1 -0
  56. package/lib/cjs/models/AuthnIdentity.js +39 -0
  57. package/lib/cjs/models/AuthnIdentity.js.map +1 -0
  58. package/lib/cjs/models/AuthnMfa.d.ts +16 -0
  59. package/lib/cjs/models/AuthnMfa.d.ts.map +1 -0
  60. package/lib/cjs/models/AuthnMfa.js +39 -0
  61. package/lib/cjs/models/AuthnMfa.js.map +1 -0
  62. package/lib/cjs/models/AuthnNonce.d.ts +7 -0
  63. package/lib/cjs/models/AuthnNonce.d.ts.map +1 -0
  64. package/lib/cjs/models/AuthnNonce.js +30 -0
  65. package/lib/cjs/models/AuthnNonce.js.map +1 -0
  66. package/lib/cjs/models/AuthnRecoveryCode.d.ts +10 -0
  67. package/lib/cjs/models/AuthnRecoveryCode.d.ts.map +1 -0
  68. package/lib/cjs/models/AuthnRecoveryCode.js +30 -0
  69. package/lib/cjs/models/AuthnRecoveryCode.js.map +1 -0
  70. package/lib/cjs/models/AuthnSecret.d.ts +13 -0
  71. package/lib/cjs/models/AuthnSecret.d.ts.map +1 -0
  72. package/lib/cjs/models/AuthnSecret.js +38 -0
  73. package/lib/cjs/models/AuthnSecret.js.map +1 -0
  74. package/lib/cjs/models/AuthnThrottle.d.ts +10 -0
  75. package/lib/cjs/models/AuthnThrottle.d.ts.map +1 -0
  76. package/lib/cjs/models/AuthnThrottle.js +38 -0
  77. package/lib/cjs/models/AuthnThrottle.js.map +1 -0
  78. package/lib/cjs/models/index.d.ts +9 -0
  79. package/lib/cjs/models/index.d.ts.map +1 -0
  80. package/lib/cjs/models/index.js +25 -0
  81. package/lib/cjs/models/index.js.map +1 -0
  82. package/lib/cjs/models/time.d.ts +4 -0
  83. package/lib/cjs/models/time.d.ts.map +1 -0
  84. package/lib/cjs/models/time.js +19 -0
  85. package/lib/cjs/models/time.js.map +1 -0
  86. package/lib/cjs/nonces/index.d.ts +2 -0
  87. package/lib/cjs/nonces/index.d.ts.map +1 -0
  88. package/lib/cjs/nonces/index.js +18 -0
  89. package/lib/cjs/nonces/index.js.map +1 -0
  90. package/lib/cjs/nonces/nonce-store.d.ts +11 -0
  91. package/lib/cjs/nonces/nonce-store.d.ts.map +1 -0
  92. package/lib/cjs/nonces/nonce-store.js +77 -0
  93. package/lib/cjs/nonces/nonce-store.js.map +1 -0
  94. package/lib/cjs/package.json +1 -0
  95. package/lib/cjs/secrets/db-secret-store.d.ts +25 -0
  96. package/lib/cjs/secrets/db-secret-store.d.ts.map +1 -0
  97. package/lib/cjs/secrets/db-secret-store.js +99 -0
  98. package/lib/cjs/secrets/db-secret-store.js.map +1 -0
  99. package/lib/cjs/secrets/index.d.ts +2 -0
  100. package/lib/cjs/secrets/index.d.ts.map +1 -0
  101. package/lib/cjs/secrets/index.js +6 -0
  102. package/lib/cjs/secrets/index.js.map +1 -0
  103. package/lib/cjs/support/sql.d.ts +16 -0
  104. package/lib/cjs/support/sql.d.ts.map +1 -0
  105. package/lib/cjs/support/sql.js +50 -0
  106. package/lib/cjs/support/sql.js.map +1 -0
  107. package/lib/cjs/support/values.d.ts +7 -0
  108. package/lib/cjs/support/values.d.ts.map +1 -0
  109. package/lib/cjs/support/values.js +8 -0
  110. package/lib/cjs/support/values.js.map +1 -0
  111. package/lib/cjs/throttle/db-throttle-store.d.ts +79 -0
  112. package/lib/cjs/throttle/db-throttle-store.d.ts.map +1 -0
  113. package/lib/cjs/throttle/db-throttle-store.js +231 -0
  114. package/lib/cjs/throttle/db-throttle-store.js.map +1 -0
  115. package/lib/cjs/throttle/db-throttle.d.ts +77 -0
  116. package/lib/cjs/throttle/db-throttle.d.ts.map +1 -0
  117. package/lib/cjs/throttle/db-throttle.js +192 -0
  118. package/lib/cjs/throttle/db-throttle.js.map +1 -0
  119. package/lib/cjs/throttle/index.d.ts +6 -0
  120. package/lib/cjs/throttle/index.d.ts.map +1 -0
  121. package/lib/cjs/throttle/index.js +8 -0
  122. package/lib/cjs/throttle/index.js.map +1 -0
  123. package/lib/mjs/audit/db-audit-sink.d.ts +11 -0
  124. package/lib/mjs/audit/db-audit-sink.d.ts.map +1 -0
  125. package/lib/mjs/audit/db-audit-sink.js +70 -0
  126. package/lib/mjs/audit/db-audit-sink.js.map +1 -0
  127. package/lib/mjs/audit/index.d.ts +2 -0
  128. package/lib/mjs/audit/index.d.ts.map +1 -0
  129. package/lib/mjs/audit/index.js +2 -0
  130. package/lib/mjs/audit/index.js.map +1 -0
  131. package/lib/mjs/identity.d.ts +6 -0
  132. package/lib/mjs/identity.d.ts.map +1 -0
  133. package/lib/mjs/identity.js +23 -0
  134. package/lib/mjs/identity.js.map +1 -0
  135. package/lib/mjs/index.d.ts +10 -0
  136. package/lib/mjs/index.d.ts.map +1 -0
  137. package/lib/mjs/index.js +10 -0
  138. package/lib/mjs/index.js.map +1 -0
  139. package/lib/mjs/links/db-link-store.d.ts +13 -0
  140. package/lib/mjs/links/db-link-store.d.ts.map +1 -0
  141. package/lib/mjs/links/db-link-store.js +85 -0
  142. package/lib/mjs/links/db-link-store.js.map +1 -0
  143. package/lib/mjs/links/index.d.ts +2 -0
  144. package/lib/mjs/links/index.d.ts.map +1 -0
  145. package/lib/mjs/links/index.js +2 -0
  146. package/lib/mjs/links/index.js.map +1 -0
  147. package/lib/mjs/mfa/cipher.d.ts +18 -0
  148. package/lib/mjs/mfa/cipher.d.ts.map +1 -0
  149. package/lib/mjs/mfa/cipher.js +76 -0
  150. package/lib/mjs/mfa/cipher.js.map +1 -0
  151. package/lib/mjs/mfa/db-mfa-enrolments.d.ts +14 -0
  152. package/lib/mjs/mfa/db-mfa-enrolments.d.ts.map +1 -0
  153. package/lib/mjs/mfa/db-mfa-enrolments.js +40 -0
  154. package/lib/mjs/mfa/db-mfa-enrolments.js.map +1 -0
  155. package/lib/mjs/mfa/db-mfa-store.d.ts +51 -0
  156. package/lib/mjs/mfa/db-mfa-store.d.ts.map +1 -0
  157. package/lib/mjs/mfa/db-mfa-store.js +187 -0
  158. package/lib/mjs/mfa/db-mfa-store.js.map +1 -0
  159. package/lib/mjs/mfa/index.d.ts +4 -0
  160. package/lib/mjs/mfa/index.d.ts.map +1 -0
  161. package/lib/mjs/mfa/index.js +4 -0
  162. package/lib/mjs/mfa/index.js.map +1 -0
  163. package/lib/mjs/migrations/AuthnInitial_2026_10_02_00_00_00.d.ts +10 -0
  164. package/lib/mjs/migrations/AuthnInitial_2026_10_02_00_00_00.d.ts.map +1 -0
  165. package/lib/mjs/migrations/AuthnInitial_2026_10_02_00_00_00.js +95 -0
  166. package/lib/mjs/migrations/AuthnInitial_2026_10_02_00_00_00.js.map +1 -0
  167. package/lib/mjs/migrations/index.d.ts +2 -0
  168. package/lib/mjs/migrations/index.d.ts.map +1 -0
  169. package/lib/mjs/migrations/index.js +2 -0
  170. package/lib/mjs/migrations/index.js.map +1 -0
  171. package/lib/mjs/models/AuthnAudit.d.ts +18 -0
  172. package/lib/mjs/models/AuthnAudit.d.ts.map +1 -0
  173. package/lib/mjs/models/AuthnAudit.js +27 -0
  174. package/lib/mjs/models/AuthnAudit.js.map +1 -0
  175. package/lib/mjs/models/AuthnIdentity.d.ts +16 -0
  176. package/lib/mjs/models/AuthnIdentity.d.ts.map +1 -0
  177. package/lib/mjs/models/AuthnIdentity.js +36 -0
  178. package/lib/mjs/models/AuthnIdentity.js.map +1 -0
  179. package/lib/mjs/models/AuthnMfa.d.ts +16 -0
  180. package/lib/mjs/models/AuthnMfa.d.ts.map +1 -0
  181. package/lib/mjs/models/AuthnMfa.js +36 -0
  182. package/lib/mjs/models/AuthnMfa.js.map +1 -0
  183. package/lib/mjs/models/AuthnNonce.d.ts +7 -0
  184. package/lib/mjs/models/AuthnNonce.d.ts.map +1 -0
  185. package/lib/mjs/models/AuthnNonce.js +27 -0
  186. package/lib/mjs/models/AuthnNonce.js.map +1 -0
  187. package/lib/mjs/models/AuthnRecoveryCode.d.ts +10 -0
  188. package/lib/mjs/models/AuthnRecoveryCode.d.ts.map +1 -0
  189. package/lib/mjs/models/AuthnRecoveryCode.js +27 -0
  190. package/lib/mjs/models/AuthnRecoveryCode.js.map +1 -0
  191. package/lib/mjs/models/AuthnSecret.d.ts +13 -0
  192. package/lib/mjs/models/AuthnSecret.d.ts.map +1 -0
  193. package/lib/mjs/models/AuthnSecret.js +35 -0
  194. package/lib/mjs/models/AuthnSecret.js.map +1 -0
  195. package/lib/mjs/models/AuthnThrottle.d.ts +10 -0
  196. package/lib/mjs/models/AuthnThrottle.d.ts.map +1 -0
  197. package/lib/mjs/models/AuthnThrottle.js +35 -0
  198. package/lib/mjs/models/AuthnThrottle.js.map +1 -0
  199. package/lib/mjs/models/index.d.ts +9 -0
  200. package/lib/mjs/models/index.d.ts.map +1 -0
  201. package/lib/mjs/models/index.js +9 -0
  202. package/lib/mjs/models/index.js.map +1 -0
  203. package/lib/mjs/models/time.d.ts +4 -0
  204. package/lib/mjs/models/time.d.ts.map +1 -0
  205. package/lib/mjs/models/time.js +16 -0
  206. package/lib/mjs/models/time.js.map +1 -0
  207. package/lib/mjs/nonces/index.d.ts +2 -0
  208. package/lib/mjs/nonces/index.d.ts.map +1 -0
  209. package/lib/mjs/nonces/index.js +2 -0
  210. package/lib/mjs/nonces/index.js.map +1 -0
  211. package/lib/mjs/nonces/nonce-store.d.ts +11 -0
  212. package/lib/mjs/nonces/nonce-store.d.ts.map +1 -0
  213. package/lib/mjs/nonces/nonce-store.js +72 -0
  214. package/lib/mjs/nonces/nonce-store.js.map +1 -0
  215. package/lib/mjs/package.json +1 -0
  216. package/lib/mjs/secrets/db-secret-store.d.ts +25 -0
  217. package/lib/mjs/secrets/db-secret-store.d.ts.map +1 -0
  218. package/lib/mjs/secrets/db-secret-store.js +96 -0
  219. package/lib/mjs/secrets/db-secret-store.js.map +1 -0
  220. package/lib/mjs/secrets/index.d.ts +2 -0
  221. package/lib/mjs/secrets/index.d.ts.map +1 -0
  222. package/lib/mjs/secrets/index.js +2 -0
  223. package/lib/mjs/secrets/index.js.map +1 -0
  224. package/lib/mjs/support/sql.d.ts +16 -0
  225. package/lib/mjs/support/sql.d.ts.map +1 -0
  226. package/lib/mjs/support/sql.js +41 -0
  227. package/lib/mjs/support/sql.js.map +1 -0
  228. package/lib/mjs/support/values.d.ts +7 -0
  229. package/lib/mjs/support/values.d.ts.map +1 -0
  230. package/lib/mjs/support/values.js +5 -0
  231. package/lib/mjs/support/values.js.map +1 -0
  232. package/lib/mjs/throttle/db-throttle-store.d.ts +79 -0
  233. package/lib/mjs/throttle/db-throttle-store.d.ts.map +1 -0
  234. package/lib/mjs/throttle/db-throttle-store.js +227 -0
  235. package/lib/mjs/throttle/db-throttle-store.js.map +1 -0
  236. package/lib/mjs/throttle/db-throttle.d.ts +77 -0
  237. package/lib/mjs/throttle/db-throttle.d.ts.map +1 -0
  238. package/lib/mjs/throttle/db-throttle.js +189 -0
  239. package/lib/mjs/throttle/db-throttle.js.map +1 -0
  240. package/lib/mjs/throttle/index.d.ts +6 -0
  241. package/lib/mjs/throttle/index.d.ts.map +1 -0
  242. package/lib/mjs/throttle/index.js +3 -0
  243. package/lib/mjs/throttle/index.js.map +1 -0
  244. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  245. package/lib/tsconfig.mjs.tsbuildinfo +1 -0
  246. package/package.json +89 -4
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthnMfa = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ /** One MFA step of an identity; the primary key is (identity, step). */
16
+ let AuthnMfa = class AuthnMfa extends orm_1.ModelBase {
17
+ };
18
+ exports.AuthnMfa = AuthnMfa;
19
+ __decorate([
20
+ (0, orm_1.Primary)({ generated: 'assigned' }),
21
+ __metadata("design:type", String)
22
+ ], AuthnMfa.prototype, "identity", void 0);
23
+ __decorate([
24
+ (0, orm_1.Primary)({ generated: 'assigned' }),
25
+ __metadata("design:type", String)
26
+ ], AuthnMfa.prototype, "step", void 0);
27
+ __decorate([
28
+ (0, orm_1.DateTime)(),
29
+ __metadata("design:type", luxon_1.DateTime)
30
+ ], AuthnMfa.prototype, "confirmed_at", void 0);
31
+ __decorate([
32
+ (0, orm_1.DateTime)(),
33
+ __metadata("design:type", luxon_1.DateTime)
34
+ ], AuthnMfa.prototype, "created_at", void 0);
35
+ exports.AuthnMfa = AuthnMfa = __decorate([
36
+ (0, orm_1.Connection)('default'),
37
+ (0, orm_1.Model)('authn_mfa')
38
+ ], AuthnMfa);
39
+ //# sourceMappingURL=AuthnMfa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnMfa.js","sourceRoot":"","sources":["../../../src/models/AuthnMfa.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAqF;AACrF,iCAAiC;AAEjC,wEAAwE;AAGjE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,eAAmB;CAuBhD,CAAA;;AArBQ;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;0CACX;AAGjB;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;sCACf;AAWb;IADN,IAAA,cAAE,GAAE;8BACiB,gBAAQ;8CAAC;AAMxB;IADN,IAAA,cAAE,GAAE;8BACc,gBAAQ;4CAAC;mBAtBjB,QAAQ;IAFpB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,WAAW,CAAC;GACN,QAAQ,CAuBpB"}
@@ -0,0 +1,7 @@
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ export declare class AuthnNonce extends ModelBase<AuthnNonce> {
4
+ k: string;
5
+ expires_at: DateTime;
6
+ }
7
+ //# sourceMappingURL=AuthnNonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnNonce.d.ts","sourceRoot":"","sources":["../../../src/models/AuthnNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,SAAS,EAAW,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,qBAEa,UAAW,SAAQ,SAAS,CAAC,UAAU,CAAC;IAE5C,CAAC,EAAE,MAAM,CAAC;IAGV,UAAU,EAAE,QAAQ,CAAC;CAC7B"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthnNonce = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ let AuthnNonce = class AuthnNonce extends orm_1.ModelBase {
16
+ };
17
+ exports.AuthnNonce = AuthnNonce;
18
+ __decorate([
19
+ (0, orm_1.Primary)({ generated: 'assigned' }),
20
+ __metadata("design:type", String)
21
+ ], AuthnNonce.prototype, "k", void 0);
22
+ __decorate([
23
+ (0, orm_1.DateTime)(),
24
+ __metadata("design:type", luxon_1.DateTime)
25
+ ], AuthnNonce.prototype, "expires_at", void 0);
26
+ exports.AuthnNonce = AuthnNonce = __decorate([
27
+ (0, orm_1.Connection)('default'),
28
+ (0, orm_1.Model)('authn_nonce')
29
+ ], AuthnNonce);
30
+ //# sourceMappingURL=AuthnNonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnNonce.js","sourceRoot":"","sources":["../../../src/models/AuthnNonce.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAqF;AACrF,iCAAiC;AAI1B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,eAAqB;CAMpD,CAAA;;AAJQ;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;qCAClB;AAGV;IADN,IAAA,cAAE,GAAE;8BACc,gBAAQ;8CAAC;qBALjB,UAAU;IAFtB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,aAAa,CAAC;GACR,UAAU,CAMtB"}
@@ -0,0 +1,10 @@
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ export declare class AuthnRecoveryCode extends ModelBase<AuthnRecoveryCode> {
4
+ id: string;
5
+ identity: string;
6
+ /** Hex SHA-256 of the raw code. */
7
+ code_hash: string;
8
+ used_at?: DateTime;
9
+ }
10
+ //# sourceMappingURL=AuthnRecoveryCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnRecoveryCode.d.ts","sourceRoot":"","sources":["../../../src/models/AuthnRecoveryCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,SAAS,EAAW,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,qBAEa,iBAAkB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAE1D,EAAE,EAAE,MAAM,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IAExB,mCAAmC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAIlB,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC3B"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthnRecoveryCode = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ let AuthnRecoveryCode = class AuthnRecoveryCode extends orm_1.ModelBase {
16
+ };
17
+ exports.AuthnRecoveryCode = AuthnRecoveryCode;
18
+ __decorate([
19
+ (0, orm_1.Primary)({ generated: 'assigned' }),
20
+ __metadata("design:type", String)
21
+ ], AuthnRecoveryCode.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, orm_1.DateTime)(),
24
+ __metadata("design:type", luxon_1.DateTime)
25
+ ], AuthnRecoveryCode.prototype, "used_at", void 0);
26
+ exports.AuthnRecoveryCode = AuthnRecoveryCode = __decorate([
27
+ (0, orm_1.Connection)('default'),
28
+ (0, orm_1.Model)('authn_recovery_code')
29
+ ], AuthnRecoveryCode);
30
+ //# sourceMappingURL=AuthnRecoveryCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnRecoveryCode.js","sourceRoot":"","sources":["../../../src/models/AuthnRecoveryCode.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAqF;AACrF,iCAAiC;AAI1B,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,eAA4B;CAYlE,CAAA;;AAVQ;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;6CACjB;AASX;IADN,IAAA,cAAE,GAAE;8BACY,gBAAQ;kDAAC;4BAXf,iBAAiB;IAF7B,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,qBAAqB,CAAC;GAChB,iBAAiB,CAY7B"}
@@ -0,0 +1,13 @@
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ export declare class AuthnSecret extends ModelBase<AuthnSecret> {
4
+ id: string;
5
+ identity: string;
6
+ purpose: string;
7
+ /** Hex SHA-256 of the raw secret. */
8
+ secret_hash: string;
9
+ expires_at: DateTime;
10
+ used_at?: DateTime;
11
+ created_at: DateTime;
12
+ }
13
+ //# sourceMappingURL=AuthnSecret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnSecret.d.ts","sourceRoot":"","sources":["../../../src/models/AuthnSecret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,SAAS,EAAW,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,qBAEa,WAAY,SAAQ,SAAS,CAAC,WAAW,CAAC;IAE9C,EAAE,EAAE,MAAM,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAEvB,qCAAqC;IAC9B,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,QAAQ,CAAC;IAIrB,OAAO,CAAC,EAAE,QAAQ,CAAC;IAGnB,UAAU,EAAE,QAAQ,CAAC;CAC7B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthnSecret = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ let AuthnSecret = class AuthnSecret extends orm_1.ModelBase {
16
+ };
17
+ exports.AuthnSecret = AuthnSecret;
18
+ __decorate([
19
+ (0, orm_1.Primary)({ generated: 'assigned' }),
20
+ __metadata("design:type", String)
21
+ ], AuthnSecret.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, orm_1.DateTime)(),
24
+ __metadata("design:type", luxon_1.DateTime)
25
+ ], AuthnSecret.prototype, "expires_at", void 0);
26
+ __decorate([
27
+ (0, orm_1.DateTime)(),
28
+ __metadata("design:type", luxon_1.DateTime)
29
+ ], AuthnSecret.prototype, "used_at", void 0);
30
+ __decorate([
31
+ (0, orm_1.DateTime)(),
32
+ __metadata("design:type", luxon_1.DateTime)
33
+ ], AuthnSecret.prototype, "created_at", void 0);
34
+ exports.AuthnSecret = AuthnSecret = __decorate([
35
+ (0, orm_1.Connection)('default'),
36
+ (0, orm_1.Model)('authn_secret')
37
+ ], AuthnSecret);
38
+ //# sourceMappingURL=AuthnSecret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnSecret.js","sourceRoot":"","sources":["../../../src/models/AuthnSecret.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAqF;AACrF,iCAAiC;AAI1B,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,eAAsB;CAoBtD,CAAA;;AAlBQ;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;uCACjB;AAUX;IADN,IAAA,cAAE,GAAE;8BACc,gBAAQ;+CAAC;AAIrB;IADN,IAAA,cAAE,GAAE;8BACY,gBAAQ;4CAAC;AAGnB;IADN,IAAA,cAAE,GAAE;8BACc,gBAAQ;+CAAC;sBAnBjB,WAAW;IAFvB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,cAAc,CAAC;GACT,WAAW,CAoBvB"}
@@ -0,0 +1,10 @@
1
+ import { ModelBase } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ export declare class AuthnThrottle extends ModelBase<AuthnThrottle> {
4
+ k: string;
5
+ attempts: number;
6
+ last_attempt_at: DateTime;
7
+ next_allowed_at: DateTime;
8
+ updated_at: DateTime;
9
+ }
10
+ //# sourceMappingURL=AuthnThrottle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnThrottle.d.ts","sourceRoot":"","sources":["../../../src/models/AuthnThrottle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,SAAS,EAAW,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,qBAEa,aAAc,SAAQ,SAAS,CAAC,aAAa,CAAC;IAElD,CAAC,EAAE,MAAM,CAAC;IAEV,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,EAAE,QAAQ,CAAC;IAG1B,eAAe,EAAE,QAAQ,CAAC;IAG1B,UAAU,EAAE,QAAQ,CAAC;CAC7B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthnThrottle = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ const luxon_1 = require("luxon");
15
+ let AuthnThrottle = class AuthnThrottle extends orm_1.ModelBase {
16
+ };
17
+ exports.AuthnThrottle = AuthnThrottle;
18
+ __decorate([
19
+ (0, orm_1.Primary)({ generated: 'assigned' }),
20
+ __metadata("design:type", String)
21
+ ], AuthnThrottle.prototype, "k", void 0);
22
+ __decorate([
23
+ (0, orm_1.DateTime)(),
24
+ __metadata("design:type", luxon_1.DateTime)
25
+ ], AuthnThrottle.prototype, "last_attempt_at", void 0);
26
+ __decorate([
27
+ (0, orm_1.DateTime)(),
28
+ __metadata("design:type", luxon_1.DateTime)
29
+ ], AuthnThrottle.prototype, "next_allowed_at", void 0);
30
+ __decorate([
31
+ (0, orm_1.DateTime)(),
32
+ __metadata("design:type", luxon_1.DateTime)
33
+ ], AuthnThrottle.prototype, "updated_at", void 0);
34
+ exports.AuthnThrottle = AuthnThrottle = __decorate([
35
+ (0, orm_1.Connection)('default'),
36
+ (0, orm_1.Model)('authn_throttle')
37
+ ], AuthnThrottle);
38
+ //# sourceMappingURL=AuthnThrottle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthnThrottle.js","sourceRoot":"","sources":["../../../src/models/AuthnThrottle.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAqF;AACrF,iCAAiC;AAI1B,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,eAAwB;CAc1D,CAAA;;AAZQ;IADN,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;;wCAClB;AAKV;IADN,IAAA,cAAE,GAAE;8BACmB,gBAAQ;sDAAC;AAG1B;IADN,IAAA,cAAE,GAAE;8BACmB,gBAAQ;sDAAC;AAG1B;IADN,IAAA,cAAE,GAAE;8BACc,gBAAQ;iDAAC;wBAbjB,aAAa;IAFzB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,gBAAgB,CAAC;GACX,aAAa,CAczB"}
@@ -0,0 +1,9 @@
1
+ export * from './AuthnAudit.js';
2
+ export * from './AuthnIdentity.js';
3
+ export * from './AuthnMfa.js';
4
+ export * from './AuthnNonce.js';
5
+ export * from './AuthnRecoveryCode.js';
6
+ export * from './AuthnSecret.js';
7
+ export * from './AuthnThrottle.js';
8
+ export * from './time.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AuthnAudit.js"), exports);
18
+ __exportStar(require("./AuthnIdentity.js"), exports);
19
+ __exportStar(require("./AuthnMfa.js"), exports);
20
+ __exportStar(require("./AuthnNonce.js"), exports);
21
+ __exportStar(require("./AuthnRecoveryCode.js"), exports);
22
+ __exportStar(require("./AuthnSecret.js"), exports);
23
+ __exportStar(require("./AuthnThrottle.js"), exports);
24
+ __exportStar(require("./time.js"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,yDAAuC;AACvC,mDAAiC;AACjC,qDAAmC;AACnC,4CAA0B"}
@@ -0,0 +1,4 @@
1
+ import { DateTime } from 'luxon';
2
+ /** The instant of a datetime as a driver returns it or as text read with a cast; text without an offset is UTC. */
3
+ export declare function readInstant(v: DateTime | Date | string | null | undefined): Date | undefined;
4
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/models/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,mHAAmH;AACnH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAY5F"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readInstant = readInstant;
4
+ const luxon_1 = require("luxon");
5
+ /** The instant of a datetime as a driver returns it or as text read with a cast; text without an offset is UTC. */
6
+ function readInstant(v) {
7
+ if (v === null || v === undefined) {
8
+ return undefined;
9
+ }
10
+ if (v instanceof Date) {
11
+ return new Date(v.getTime());
12
+ }
13
+ if (typeof v === 'string') {
14
+ const sql = luxon_1.DateTime.fromSQL(v, { zone: 'utc' });
15
+ return (sql.isValid ? sql : luxon_1.DateTime.fromISO(v, { zone: 'utc' })).toJSDate();
16
+ }
17
+ return v.toJSDate();
18
+ }
19
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/models/time.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,mHAAmH;AACnH,qBAA4B,CAA8C;IACxE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,gBAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './nonce-store.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nonces/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./nonce-store.js"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nonces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -0,0 +1,11 @@
1
+ import { NonceStore } from '@spinajs/authn/contracts';
2
+ export { NonceStore } from '@spinajs/authn/contracts';
3
+ export { MemoryNonceStore } from '@spinajs/authn/nonces';
4
+ /** `authn_nonce`: the primary key makes a claim atomic across processes; an expired row is taken over with a conditional update. */
5
+ export declare class DbNonceStore extends NonceStore {
6
+ private readonly purgeDue;
7
+ claim(key: string, expiresAt: Date, now: Date): Promise<boolean>;
8
+ /** Deletes up to one batch of expired keys; returns how many went. */
9
+ purge(now?: Date): Promise<number>;
10
+ }
11
+ //# sourceMappingURL=nonce-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce-store.d.ts","sourceRoot":"","sources":["../../../src/nonces/nonce-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAOtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAazD,oIAAoI;AACpI,qBAEa,YAAa,SAAQ,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEzC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB5E;IAED,sEAAsE;IACzD,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1D;CACF"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DbNonceStore = exports.MemoryNonceStore = exports.NonceStore = void 0;
10
+ const contracts_1 = require("@spinajs/authn/contracts");
11
+ const di_1 = require("@spinajs/di");
12
+ const orm_1 = require("@spinajs/orm");
13
+ const AuthnNonce_js_1 = require("../models/AuthnNonce.js");
14
+ const sql_js_1 = require("../support/sql.js");
15
+ var contracts_2 = require("@spinajs/authn/contracts");
16
+ Object.defineProperty(exports, "NonceStore", { enumerable: true, get: function () { return contracts_2.NonceStore; } });
17
+ var nonces_1 = require("@spinajs/authn/nonces");
18
+ Object.defineProperty(exports, "MemoryNonceStore", { enumerable: true, get: function () { return nonces_1.MemoryNonceStore; } });
19
+ const KEY_MAX = 160;
20
+ const PURGE_EVERY = 64;
21
+ const PURGE_BATCH = 500;
22
+ /** A miss after a duplicate means a purge removed the row in between; a few retries cover that. */
23
+ const MAX_TRIES = 8;
24
+ function checkClaim(key, expiresAt, now, owner) {
25
+ (0, sql_js_1.checkedText)(key, KEY_MAX, `${owner}.claim: key`);
26
+ return { expiresMs: (0, sql_js_1.checkedMs)(expiresAt, `${owner}.claim: expiresAt`), nowMs: (0, sql_js_1.checkedMs)(now, `${owner}.claim: now`) };
27
+ }
28
+ /** `authn_nonce`: the primary key makes a claim atomic across processes; an expired row is taken over with a conditional update. */
29
+ let DbNonceStore = class DbNonceStore extends contracts_1.NonceStore {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.purgeDue = (0, orm_1.everyNthCall)(PURGE_EVERY);
33
+ }
34
+ async claim(key, expiresAt, now) {
35
+ const { expiresMs, nowMs } = checkClaim(key, expiresAt, now, 'DbNonceStore');
36
+ await (0, orm_1.ormReady)();
37
+ if (this.purgeDue()) {
38
+ await this.purge(now);
39
+ }
40
+ const t = (0, sql_js_1.instant)(nowMs);
41
+ const expires = (0, sql_js_1.instant)(expiresMs);
42
+ for (let i = 0; i < MAX_TRIES; i++) {
43
+ try {
44
+ await AuthnNonce_js_1.AuthnNonce.insert({ k: key, expires_at: expires });
45
+ return true;
46
+ }
47
+ catch (err) {
48
+ if (!(err instanceof orm_1.UniqueViolation))
49
+ throw err;
50
+ }
51
+ if ((await AuthnNonce_js_1.AuthnNonce.update({ expires_at: expires }).where('k', key).where('expires_at', '<=', t)).RowsAffected === 1) {
52
+ return true;
53
+ }
54
+ const live = await AuthnNonce_js_1.AuthnNonce.query().columns(['k']).where('k', key).where('expires_at', '>', t);
55
+ if (live.length > 0)
56
+ return false;
57
+ }
58
+ return false;
59
+ }
60
+ /** Deletes up to one batch of expired keys; returns how many went. */
61
+ async purge(now = new Date()) {
62
+ const ms = (0, sql_js_1.checkedMs)(now, 'DbNonceStore.purge: now');
63
+ await (0, orm_1.ormReady)();
64
+ const t = (0, sql_js_1.instant)(ms);
65
+ // MSSQL pages with OFFSET … FETCH, which needs an ORDER BY.
66
+ const keys = (await AuthnNonce_js_1.AuthnNonce.query().columns(['k']).where('expires_at', '<=', t).orderBy('k').take(PURGE_BATCH)).map((r) => r.k);
67
+ if (keys.length === 0)
68
+ return 0;
69
+ return (await AuthnNonce_js_1.AuthnNonce.destroy().whereIn('k', keys).where('expires_at', '<=', t)).RowsAffected;
70
+ }
71
+ };
72
+ exports.DbNonceStore = DbNonceStore;
73
+ exports.DbNonceStore = DbNonceStore = __decorate([
74
+ (0, di_1.PerChildInstance)(),
75
+ (0, di_1.Injectable)(contracts_1.NonceStore)
76
+ ], DbNonceStore);
77
+ //# sourceMappingURL=nonce-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce-store.js","sourceRoot":"","sources":["../../../src/nonces/nonce-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,25 @@
1
+ import { SecretStore } from '@spinajs/authn/contracts';
2
+ import type { IdentityRef } from '@spinajs/authn/contracts';
3
+ import type { DateTime } from 'luxon';
4
+ /**
5
+ * `authn_secret`: single-use secrets stored as the hex SHA-256 of the raw value only (SR-09). The raw secret is
6
+ * 32 random bytes as base64url (43 chars). Times are taken in Node at call time (F7); the claim of `redeem`
7
+ * decides expiry and single use in SQL against that time (D10).
8
+ *
9
+ * Two parallel `issue` calls for one identity and purpose may both leave a live row: each deletes, then inserts.
10
+ */
11
+ export declare class DbSecretStore extends SecretStore {
12
+ private readonly purgeDue;
13
+ issue(identity: IdentityRef, purpose: string, ttlSeconds: number): Promise<string>;
14
+ /**
15
+ * Looks the row up by the hash of `raw`, so no stored value is compared with the input in Node. The lookup
16
+ * also matches identity and purpose; the claim succeeds for exactly one caller.
17
+ */
18
+ redeem(identity: IdentityRef, purpose: string, raw: string): Promise<boolean>;
19
+ /** Deletes up to one batch of spent and expired rows; returns how many went. */
20
+ purge(now?: Date): Promise<number>;
21
+ /** @internal An early exit only: the claim's SQL guard decides. */
22
+ protected liveInNode(expiresAt: DateTime | null | undefined, nowMs: number): boolean;
23
+ private purgeNowAndThen;
24
+ }
25
+ //# sourceMappingURL=db-secret-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-secret-store.d.ts","sourceRoot":"","sources":["../../../src/secrets/db-secret-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAatC;;;;;;GAMG;AACH,qBAEa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEzC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY9F;IAED;;;OAGG;IACU,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBzF;IAED,gFAAgF;IACnE,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1D;IAED,mEAAmE;IACnE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnF;YAEa,eAAe;CAK9B"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DbSecretStore = void 0;
10
+ const node_crypto_1 = require("node:crypto");
11
+ const contracts_1 = require("@spinajs/authn/contracts");
12
+ const di_1 = require("@spinajs/di");
13
+ const orm_1 = require("@spinajs/orm");
14
+ const util_1 = require("@spinajs/util");
15
+ const identity_js_1 = require("../identity.js");
16
+ const AuthnSecret_js_1 = require("../models/AuthnSecret.js");
17
+ const sql_js_1 = require("../support/sql.js");
18
+ const values_js_1 = require("../support/values.js");
19
+ const PURPOSE_MAX = 32;
20
+ const PURGE_EVERY = 64;
21
+ const PURGE_BATCH = 500;
22
+ /** Far above any secret this store issues; longer input is refused before hashing. */
23
+ const RAW_MAX = 1024;
24
+ /**
25
+ * `authn_secret`: single-use secrets stored as the hex SHA-256 of the raw value only (SR-09). The raw secret is
26
+ * 32 random bytes as base64url (43 chars). Times are taken in Node at call time (F7); the claim of `redeem`
27
+ * decides expiry and single use in SQL against that time (D10).
28
+ *
29
+ * Two parallel `issue` calls for one identity and purpose may both leave a live row: each deletes, then inserts.
30
+ */
31
+ let DbSecretStore = class DbSecretStore extends contracts_1.SecretStore {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.purgeDue = (0, orm_1.everyNthCall)(PURGE_EVERY);
35
+ }
36
+ async issue(identity, purpose, ttlSeconds) {
37
+ const key = (0, identity_js_1.identityKey)(identity);
38
+ (0, sql_js_1.checkedText)(purpose, PURPOSE_MAX, 'DbSecretStore: purpose');
39
+ (0, util_1._check_arg)((0, util_1._is_number)((0, util_1._finite)(), (0, util_1._gt)(0)))(ttlSeconds, 'ttlSeconds');
40
+ const nowMs = (0, sql_js_1.checkedMs)(new Date(), 'DbSecretStore.issue: the clock');
41
+ await (0, orm_1.ormReady)();
42
+ await this.purgeNowAndThen(nowMs);
43
+ const raw = (0, node_crypto_1.randomBytes)(32).toString('base64url');
44
+ await AuthnSecret_js_1.AuthnSecret.destroy().where('identity', key).where('purpose', purpose);
45
+ await AuthnSecret_js_1.AuthnSecret.insert((0, values_js_1.columnValues)({ id: (0, node_crypto_1.randomUUID)(), identity: key, purpose, secret_hash: (0, sql_js_1.sha256hex)(raw), expires_at: (0, sql_js_1.instant)(nowMs + ttlSeconds * 1000), used_at: null, created_at: (0, sql_js_1.instant)(nowMs) }));
46
+ return raw;
47
+ }
48
+ /**
49
+ * Looks the row up by the hash of `raw`, so no stored value is compared with the input in Node. The lookup
50
+ * also matches identity and purpose; the claim succeeds for exactly one caller.
51
+ */
52
+ async redeem(identity, purpose, raw) {
53
+ const key = (0, identity_js_1.identityKey)(identity);
54
+ (0, sql_js_1.checkedText)(purpose, PURPOSE_MAX, 'DbSecretStore: purpose');
55
+ if (!(0, util_1._try_check_arg)((0, util_1._is_string)((0, util_1._non_empty)(), (0, util_1._max_length)(RAW_MAX)))(raw, 'raw')[0])
56
+ return false;
57
+ const nowMs = (0, sql_js_1.checkedMs)(new Date(), 'DbSecretStore.redeem: the clock');
58
+ await (0, orm_1.ormReady)();
59
+ await this.purgeNowAndThen(nowMs);
60
+ const rows = await AuthnSecret_js_1.AuthnSecret.query().columns(['id', 'identity', 'purpose', 'expires_at']).where('secret_hash', (0, sql_js_1.sha256hex)(raw)).where('identity', key).where('purpose', purpose).whereNull('used_at');
61
+ // MySQL and MSSQL default collations ignore case: the binding to identity and purpose is checked exactly here.
62
+ const row = rows.find((r) => r.identity === key && r.purpose === purpose);
63
+ if (!row || !this.liveInNode(row.expires_at, nowMs))
64
+ return false;
65
+ const now = (0, sql_js_1.instant)(nowMs);
66
+ const { RowsAffected } = await AuthnSecret_js_1.AuthnSecret.update({ used_at: now }).where('id', row.id).whereNull('used_at').where('expires_at', '>', now);
67
+ return RowsAffected === 1;
68
+ }
69
+ /** Deletes up to one batch of spent and expired rows; returns how many went. */
70
+ async purge(now = new Date()) {
71
+ const ms = (0, sql_js_1.checkedMs)(now, 'DbSecretStore.purge: now');
72
+ await (0, orm_1.ormReady)();
73
+ const t = (0, sql_js_1.instant)(ms);
74
+ const done = function () {
75
+ this.whereNotNull('used_at');
76
+ this.orWhere('expires_at', '<=', t);
77
+ };
78
+ const ids = (await AuthnSecret_js_1.AuthnSecret.query().columns(['id']).where(done).orderBy('id').take(PURGE_BATCH)).map((r) => r.id);
79
+ if (ids.length === 0)
80
+ return 0;
81
+ return (await AuthnSecret_js_1.AuthnSecret.destroy().whereIn('id', ids).where(done)).RowsAffected;
82
+ }
83
+ /** @internal An early exit only: the claim's SQL guard decides. */
84
+ liveInNode(expiresAt, nowMs) {
85
+ const ms = expiresAt ? expiresAt.toMillis() : NaN;
86
+ return !Number.isFinite(ms) || ms > nowMs;
87
+ }
88
+ async purgeNowAndThen(nowMs) {
89
+ if (this.purgeDue()) {
90
+ await this.purge(new Date(nowMs));
91
+ }
92
+ }
93
+ };
94
+ exports.DbSecretStore = DbSecretStore;
95
+ exports.DbSecretStore = DbSecretStore = __decorate([
96
+ (0, di_1.PerChildInstance)(),
97
+ (0, di_1.Injectable)(contracts_1.SecretStore)
98
+ ], DbSecretStore);
99
+ //# sourceMappingURL=db-secret-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-secret-store.js","sourceRoot":"","sources":["../../../src/secrets/db-secret-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { DbSecretStore } from './db-secret-store.js';
2
+ //# sourceMappingURL=index.d.ts.map