@spinajs/authn-orm 3.0.3 → 3.0.5

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 (116) hide show
  1. package/README.md +2 -2
  2. package/lib/cjs/audit/db-audit-sink.d.ts +3 -0
  3. package/lib/cjs/audit/db-audit-sink.d.ts.map +1 -1
  4. package/lib/cjs/audit/db-audit-sink.js +7 -1
  5. package/lib/cjs/audit/db-audit-sink.js.map +1 -1
  6. package/lib/cjs/audit/index.d.ts +1 -0
  7. package/lib/cjs/audit/index.d.ts.map +1 -1
  8. package/lib/cjs/audit/index.js +3 -1
  9. package/lib/cjs/audit/index.js.map +1 -1
  10. package/lib/cjs/audit/retention.d.ts +24 -0
  11. package/lib/cjs/audit/retention.d.ts.map +1 -0
  12. package/lib/cjs/audit/retention.js +108 -0
  13. package/lib/cjs/audit/retention.js.map +1 -0
  14. package/lib/cjs/cli/PurgeAudit.d.ts +13 -0
  15. package/lib/cjs/cli/PurgeAudit.d.ts.map +1 -0
  16. package/lib/cjs/cli/PurgeAudit.js +51 -0
  17. package/lib/cjs/cli/PurgeAudit.js.map +1 -0
  18. package/lib/cjs/config/authn-orm.d.ts +9 -0
  19. package/lib/cjs/config/authn-orm.d.ts.map +1 -0
  20. package/lib/cjs/config/authn-orm.js +21 -0
  21. package/lib/cjs/config/authn-orm.js.map +1 -0
  22. package/lib/cjs/index.d.ts +1 -0
  23. package/lib/cjs/index.d.ts.map +1 -1
  24. package/lib/cjs/index.js +1 -0
  25. package/lib/cjs/index.js.map +1 -1
  26. package/lib/cjs/links/db-link-store.d.ts +3 -0
  27. package/lib/cjs/links/db-link-store.d.ts.map +1 -1
  28. package/lib/cjs/links/db-link-store.js +7 -5
  29. package/lib/cjs/links/db-link-store.js.map +1 -1
  30. package/lib/cjs/mfa/db-mfa-enrolment-marks.d.ts +16 -0
  31. package/lib/cjs/mfa/db-mfa-enrolment-marks.d.ts.map +1 -0
  32. package/lib/cjs/mfa/db-mfa-enrolment-marks.js +54 -0
  33. package/lib/cjs/mfa/db-mfa-enrolment-marks.js.map +1 -0
  34. package/lib/cjs/mfa/db-mfa-store.d.ts +3 -0
  35. package/lib/cjs/mfa/db-mfa-store.d.ts.map +1 -1
  36. package/lib/cjs/mfa/db-mfa-store.js +7 -11
  37. package/lib/cjs/mfa/db-mfa-store.js.map +1 -1
  38. package/lib/cjs/mfa/index.d.ts +1 -0
  39. package/lib/cjs/mfa/index.d.ts.map +1 -1
  40. package/lib/cjs/mfa/index.js +1 -0
  41. package/lib/cjs/mfa/index.js.map +1 -1
  42. package/lib/cjs/nonces/nonce-store.d.ts +3 -0
  43. package/lib/cjs/nonces/nonce-store.d.ts.map +1 -1
  44. package/lib/cjs/nonces/nonce-store.js +7 -2
  45. package/lib/cjs/nonces/nonce-store.js.map +1 -1
  46. package/lib/cjs/secrets/db-secret-store.d.ts +5 -2
  47. package/lib/cjs/secrets/db-secret-store.d.ts.map +1 -1
  48. package/lib/cjs/secrets/db-secret-store.js +12 -6
  49. package/lib/cjs/secrets/db-secret-store.js.map +1 -1
  50. package/lib/cjs/throttle/db-throttle-store.d.ts +10 -1
  51. package/lib/cjs/throttle/db-throttle-store.d.ts.map +1 -1
  52. package/lib/cjs/throttle/db-throttle-store.js +22 -14
  53. package/lib/cjs/throttle/db-throttle-store.js.map +1 -1
  54. package/lib/cjs/throttle/db-throttle.d.ts +3 -0
  55. package/lib/cjs/throttle/db-throttle.d.ts.map +1 -1
  56. package/lib/cjs/throttle/db-throttle.js +6 -1
  57. package/lib/cjs/throttle/db-throttle.js.map +1 -1
  58. package/lib/mjs/audit/db-audit-sink.d.ts +3 -0
  59. package/lib/mjs/audit/db-audit-sink.d.ts.map +1 -1
  60. package/lib/mjs/audit/db-audit-sink.js +9 -3
  61. package/lib/mjs/audit/db-audit-sink.js.map +1 -1
  62. package/lib/mjs/audit/index.d.ts +1 -0
  63. package/lib/mjs/audit/index.d.ts.map +1 -1
  64. package/lib/mjs/audit/index.js +1 -0
  65. package/lib/mjs/audit/index.js.map +1 -1
  66. package/lib/mjs/audit/retention.d.ts +24 -0
  67. package/lib/mjs/audit/retention.d.ts.map +1 -0
  68. package/lib/mjs/audit/retention.js +105 -0
  69. package/lib/mjs/audit/retention.js.map +1 -0
  70. package/lib/mjs/cli/PurgeAudit.d.ts +13 -0
  71. package/lib/mjs/cli/PurgeAudit.d.ts.map +1 -0
  72. package/lib/mjs/cli/PurgeAudit.js +48 -0
  73. package/lib/mjs/cli/PurgeAudit.js.map +1 -0
  74. package/lib/mjs/config/authn-orm.d.ts +9 -0
  75. package/lib/mjs/config/authn-orm.d.ts.map +1 -0
  76. package/lib/mjs/config/authn-orm.js +19 -0
  77. package/lib/mjs/config/authn-orm.js.map +1 -0
  78. package/lib/mjs/index.d.ts +1 -0
  79. package/lib/mjs/index.d.ts.map +1 -1
  80. package/lib/mjs/index.js +1 -0
  81. package/lib/mjs/index.js.map +1 -1
  82. package/lib/mjs/links/db-link-store.d.ts +3 -0
  83. package/lib/mjs/links/db-link-store.d.ts.map +1 -1
  84. package/lib/mjs/links/db-link-store.js +9 -7
  85. package/lib/mjs/links/db-link-store.js.map +1 -1
  86. package/lib/mjs/mfa/db-mfa-enrolment-marks.d.ts +16 -0
  87. package/lib/mjs/mfa/db-mfa-enrolment-marks.d.ts.map +1 -0
  88. package/lib/mjs/mfa/db-mfa-enrolment-marks.js +51 -0
  89. package/lib/mjs/mfa/db-mfa-enrolment-marks.js.map +1 -0
  90. package/lib/mjs/mfa/db-mfa-store.d.ts +3 -0
  91. package/lib/mjs/mfa/db-mfa-store.d.ts.map +1 -1
  92. package/lib/mjs/mfa/db-mfa-store.js +9 -13
  93. package/lib/mjs/mfa/db-mfa-store.js.map +1 -1
  94. package/lib/mjs/mfa/index.d.ts +1 -0
  95. package/lib/mjs/mfa/index.d.ts.map +1 -1
  96. package/lib/mjs/mfa/index.js +1 -0
  97. package/lib/mjs/mfa/index.js.map +1 -1
  98. package/lib/mjs/nonces/nonce-store.d.ts +3 -0
  99. package/lib/mjs/nonces/nonce-store.d.ts.map +1 -1
  100. package/lib/mjs/nonces/nonce-store.js +9 -4
  101. package/lib/mjs/nonces/nonce-store.js.map +1 -1
  102. package/lib/mjs/secrets/db-secret-store.d.ts +5 -2
  103. package/lib/mjs/secrets/db-secret-store.d.ts.map +1 -1
  104. package/lib/mjs/secrets/db-secret-store.js +14 -8
  105. package/lib/mjs/secrets/db-secret-store.js.map +1 -1
  106. package/lib/mjs/throttle/db-throttle-store.d.ts +10 -1
  107. package/lib/mjs/throttle/db-throttle-store.d.ts.map +1 -1
  108. package/lib/mjs/throttle/db-throttle-store.js +23 -15
  109. package/lib/mjs/throttle/db-throttle-store.js.map +1 -1
  110. package/lib/mjs/throttle/db-throttle.d.ts +3 -0
  111. package/lib/mjs/throttle/db-throttle.d.ts.map +1 -1
  112. package/lib/mjs/throttle/db-throttle.js +6 -1
  113. package/lib/mjs/throttle/db-throttle.js.map +1 -1
  114. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  115. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  116. package/package.json +14 -13
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.DbMfaStore = void 0;
10
13
  const node_crypto_1 = require("node:crypto");
@@ -47,7 +50,6 @@ let DbMfaStore = class DbMfaStore {
47
50
  async get(id, step) {
48
51
  const identity = (0, identity_js_1.identityKey)(id);
49
52
  const name = stepName(step);
50
- await (0, orm_1.ormReady)();
51
53
  const rows = await AuthnMfa_js_1.AuthnMfa.query().columns(['identity', 'step', 'secret_enc', 'key_id', 'last_step', 'confirmed_at', 'created_at']).where('identity', identity).where('step', name);
52
54
  const r = rows.find((x) => x.identity === identity && x.step === name);
53
55
  if (!r)
@@ -71,7 +73,6 @@ let DbMfaStore = class DbMfaStore {
71
73
  (0, sql_js_1.checkedText)(secretEnc, Number.MAX_SAFE_INTEGER, 'DbMfaStore: secretEnc');
72
74
  (0, sql_js_1.checkedText)(keyId, 32, 'DbMfaStore: keyId');
73
75
  const ms = (0, sql_js_1.checkedMs)(new Date(), 'DbMfaStore.putPending: the clock');
74
- await (0, orm_1.ormReady)();
75
76
  const fields = pending(secretEnc, keyId, (0, sql_js_1.instant)(ms));
76
77
  for (let i = 0; i < MAX_TRIES; i++) {
77
78
  try {
@@ -100,7 +101,6 @@ let DbMfaStore = class DbMfaStore {
100
101
  const ms = (0, sql_js_1.checkedMs)(at, 'DbMfaStore.confirm: at');
101
102
  if (expectedSecretEnc !== undefined)
102
103
  (0, sql_js_1.checkedText)(expectedSecretEnc, Number.MAX_SAFE_INTEGER, 'DbMfaStore: expectedSecretEnc');
103
- await (0, orm_1.ormReady)();
104
104
  const q = AuthnMfa_js_1.AuthnMfa.update({ confirmed_at: (0, sql_js_1.instant)(ms) })
105
105
  .where('identity', identity)
106
106
  .where('step', name);
@@ -114,7 +114,6 @@ let DbMfaStore = class DbMfaStore {
114
114
  const identity = (0, identity_js_1.identityKey)(id);
115
115
  const name = stepName(step);
116
116
  (0, util_1._check_arg)((0, util_1._is_number)((0, util_1._integer)(), (0, util_1._between)(0, Number.MAX_SAFE_INTEGER)))(timeStep, 'timeStep');
117
- await (0, orm_1.ormReady)();
118
117
  const older = function () {
119
118
  this.whereNull('last_step');
120
119
  this.orWhere('last_step', '<', timeStep);
@@ -124,13 +123,11 @@ let DbMfaStore = class DbMfaStore {
124
123
  async remove(id, step) {
125
124
  const identity = (0, identity_js_1.identityKey)(id);
126
125
  const name = stepName(step);
127
- await (0, orm_1.ormReady)();
128
126
  await AuthnMfa_js_1.AuthnMfa.destroy().where('identity', identity).where('step', name);
129
127
  }
130
128
  /** The names of the identity's confirmed steps. */
131
129
  async confirmedSteps(id) {
132
130
  const identity = (0, identity_js_1.identityKey)(id);
133
- await (0, orm_1.ormReady)();
134
131
  const rows = await AuthnMfa_js_1.AuthnMfa.query().columns(['identity', 'step', 'confirmed_at']).where('identity', identity).whereNotNull('confirmed_at');
135
132
  return rows.filter((r) => r.identity === identity && confirmed(r)).map((r) => r.step);
136
133
  }
@@ -139,7 +136,6 @@ let DbMfaStore = class DbMfaStore {
139
136
  * `totp` and `TOTP` into one under a case-blind collation (MySQL's default); one row per confirmed enrolment.
140
137
  */
141
138
  async confirmedStepNames() {
142
- await (0, orm_1.ormReady)();
143
139
  const rows = await AuthnMfa_js_1.AuthnMfa.query().columns(['step', 'confirmed_at']).whereNotNull('confirmed_at');
144
140
  return [...new Set(rows.filter(confirmed).map((r) => r.step))];
145
141
  }
@@ -150,7 +146,6 @@ let DbMfaStore = class DbMfaStore {
150
146
  const hashes = rawCodes.map((code) => (0, sql_js_1.sha256hex)((0, sql_js_1.checkedText)(code, Number.MAX_SAFE_INTEGER, 'DbMfaStore: a recovery code')));
151
147
  if (new Set(hashes).size !== hashes.length)
152
148
  throw new exceptions_1.InvalidArgument('DbMfaStore.replaceRecoveryCodes: the codes repeat');
153
- await (0, orm_1.ormReady)();
154
149
  await AuthnRecoveryCode_js_1.AuthnRecoveryCode.destroy().where('identity', identity);
155
150
  if (hashes.length === 0)
156
151
  return;
@@ -162,7 +157,6 @@ let DbMfaStore = class DbMfaStore {
162
157
  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])
163
158
  return false;
164
159
  const ms = (0, sql_js_1.checkedMs)(new Date(), 'DbMfaStore.redeemRecoveryCode: the clock');
165
- await (0, orm_1.ormReady)();
166
160
  const r = await AuthnRecoveryCode_js_1.AuthnRecoveryCode.update({ used_at: (0, sql_js_1.instant)(ms) })
167
161
  .where('identity', identity)
168
162
  .where('code_hash', (0, sql_js_1.sha256hex)(raw))
@@ -172,17 +166,19 @@ let DbMfaStore = class DbMfaStore {
172
166
  /** Unused codes. */
173
167
  async countRecoveryCodes(id) {
174
168
  const identity = (0, identity_js_1.identityKey)(id);
175
- await (0, orm_1.ormReady)();
176
169
  const rows = await AuthnRecoveryCode_js_1.AuthnRecoveryCode.query().columns(['identity']).where('identity', identity).whereNull('used_at');
177
170
  return rows.filter((r) => r.identity === identity).length;
178
171
  }
179
172
  async removeRecoveryCodes(id) {
180
173
  const identity = (0, identity_js_1.identityKey)(id);
181
- await (0, orm_1.ormReady)();
182
174
  await AuthnRecoveryCode_js_1.AuthnRecoveryCode.destroy().where('identity', identity);
183
175
  }
184
176
  };
185
177
  exports.DbMfaStore = DbMfaStore;
178
+ __decorate([
179
+ (0, di_1.Autoinject)(orm_1.Orm),
180
+ __metadata("design:type", orm_1.Orm)
181
+ ], DbMfaStore.prototype, "Orm", void 0);
186
182
  exports.DbMfaStore = DbMfaStore = __decorate([
187
183
  (0, di_1.PerChildInstance)(),
188
184
  (0, di_1.Injectable)()
@@ -1 +1 @@
1
- {"version":3,"file":"db-mfa-store.js","sourceRoot":"","sources":["../../../src/mfa/db-mfa-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-mfa-store.js","sourceRoot":"","sources":["../../../src/mfa/db-mfa-store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './db-mfa-store.js';
2
2
  export * from './db-mfa-enrolments.js';
3
+ export * from './db-mfa-enrolment-marks.js';
3
4
  export * from './cipher.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mfa/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mfa/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./db-mfa-store.js"), exports);
18
18
  __exportStar(require("./db-mfa-enrolments.js"), exports);
19
+ __exportStar(require("./db-mfa-enrolment-marks.js"), exports);
19
20
  __exportStar(require("./cipher.js"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mfa/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yDAAuC;AACvC,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mfa/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yDAAuC;AACvC,8DAA4C;AAC5C,8CAA4B"}
@@ -1,8 +1,11 @@
1
1
  import { NonceStore } from '@spinajs/authn/contracts';
2
+ import { Orm } from '@spinajs/orm';
2
3
  export { NonceStore } from '@spinajs/authn/contracts';
3
4
  export { MemoryNonceStore } from '@spinajs/authn/nonces';
4
5
  /** `authn_nonce`: the primary key makes a claim atomic across processes; an expired row is taken over with a conditional update. */
5
6
  export declare class DbNonceStore extends NonceStore {
7
+ /** Never read: injecting it resolves the Orm, which binds the models, before the first query. */
8
+ protected Orm: Orm;
6
9
  private readonly purgeDue;
7
10
  claim(key: string, expiresAt: Date, now: Date): Promise<boolean>;
8
11
  /** Deletes up to one batch of expired keys; returns how many went. */
@@ -1 +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"}
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;AAEtD,OAAO,EAAE,GAAG,EAAiC,MAAM,cAAc,CAAC;AAKlE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAazD,oIAAoI;AACpI,qBAEa,YAAa,SAAQ,UAAU;IAC1C,iGAAiG;IAEjG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,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,CAsB5E;IAED,sEAAsE;IACzD,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1D;CACF"}
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.DbNonceStore = exports.MemoryNonceStore = exports.NonceStore = void 0;
10
13
  const contracts_1 = require("@spinajs/authn/contracts");
@@ -33,7 +36,6 @@ let DbNonceStore = class DbNonceStore extends contracts_1.NonceStore {
33
36
  }
34
37
  async claim(key, expiresAt, now) {
35
38
  const { expiresMs, nowMs } = checkClaim(key, expiresAt, now, 'DbNonceStore');
36
- await (0, orm_1.ormReady)();
37
39
  if (this.purgeDue()) {
38
40
  await this.purge(now);
39
41
  }
@@ -60,7 +62,6 @@ let DbNonceStore = class DbNonceStore extends contracts_1.NonceStore {
60
62
  /** Deletes up to one batch of expired keys; returns how many went. */
61
63
  async purge(now = new Date()) {
62
64
  const ms = (0, sql_js_1.checkedMs)(now, 'DbNonceStore.purge: now');
63
- await (0, orm_1.ormReady)();
64
65
  const t = (0, sql_js_1.instant)(ms);
65
66
  // MSSQL pages with OFFSET … FETCH, which needs an ORDER BY.
66
67
  const keys = (await AuthnNonce_js_1.AuthnNonce.query().columns(['k']).where('expires_at', '<=', t).orderBy('k').take(PURGE_BATCH)).map((r) => r.k);
@@ -70,6 +71,10 @@ let DbNonceStore = class DbNonceStore extends contracts_1.NonceStore {
70
71
  }
71
72
  };
72
73
  exports.DbNonceStore = DbNonceStore;
74
+ __decorate([
75
+ (0, di_1.Autoinject)(orm_1.Orm),
76
+ __metadata("design:type", orm_1.Orm)
77
+ ], DbNonceStore.prototype, "Orm", void 0);
73
78
  exports.DbNonceStore = DbNonceStore = __decorate([
74
79
  (0, di_1.PerChildInstance)(),
75
80
  (0, di_1.Injectable)(contracts_1.NonceStore)
@@ -1 +1 @@
1
- {"version":3,"file":"nonce-store.js","sourceRoot":"","sources":["../../../src/nonces/nonce-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonce-store.js","sourceRoot":"","sources":["../../../src/nonces/nonce-store.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
1
  import { SecretStore } from '@spinajs/authn/contracts';
2
2
  import type { IdentityRef } from '@spinajs/authn/contracts';
3
+ import { Orm } from '@spinajs/orm';
3
4
  import type { DateTime } from 'luxon';
4
5
  /**
5
6
  * `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
+ * 32 random bytes as base64url (43 chars), or the `value` the caller gives (a short code). Times are taken in Node at call time (F7); the claim of `redeem`
7
8
  * decides expiry and single use in SQL against that time (D10).
8
9
  *
9
10
  * Two parallel `issue` calls for one identity and purpose may both leave a live row: each deletes, then inserts.
10
11
  */
11
12
  export declare class DbSecretStore extends SecretStore {
13
+ /** Never read: injecting it resolves the Orm, which binds the models, before the first query. */
14
+ protected Orm: Orm;
12
15
  private readonly purgeDue;
13
- issue(identity: IdentityRef, purpose: string, ttlSeconds: number): Promise<string>;
16
+ issue(identity: IdentityRef, purpose: string, ttlSeconds: number, value?: string): Promise<string>;
14
17
  /**
15
18
  * Looks the row up by the hash of `raw`, so no stored value is compared with the input in Node. The lookup
16
19
  * also matches identity and purpose; the claim succeeds for exactly one caller.
@@ -1 +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"}
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;AAE5D,OAAO,EAAE,GAAG,EAAgB,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAatC;;;;;;GAMG;AACH,qBAEa,aAAc,SAAQ,WAAW;IAC5C,iGAAiG;IAEjG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEzC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY9G;IAED;;;OAGG;IACU,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAezF;IAED,gFAAgF;IACnE,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1D;IAED,mEAAmE;IACnE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnF;YAEa,eAAe;CAK9B"}
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.DbSecretStore = void 0;
10
13
  const node_crypto_1 = require("node:crypto");
@@ -23,7 +26,7 @@ const PURGE_BATCH = 500;
23
26
  const RAW_MAX = 1024;
24
27
  /**
25
28
  * `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`
29
+ * 32 random bytes as base64url (43 chars), or the `value` the caller gives (a short code). Times are taken in Node at call time (F7); the claim of `redeem`
27
30
  * decides expiry and single use in SQL against that time (D10).
28
31
  *
29
32
  * Two parallel `issue` calls for one identity and purpose may both leave a live row: each deletes, then inserts.
@@ -33,14 +36,15 @@ let DbSecretStore = class DbSecretStore extends contracts_1.SecretStore {
33
36
  super(...arguments);
34
37
  this.purgeDue = (0, orm_1.everyNthCall)(PURGE_EVERY);
35
38
  }
36
- async issue(identity, purpose, ttlSeconds) {
39
+ async issue(identity, purpose, ttlSeconds, value) {
37
40
  const key = (0, identity_js_1.identityKey)(identity);
38
41
  (0, sql_js_1.checkedText)(purpose, PURPOSE_MAX, 'DbSecretStore: purpose');
39
42
  (0, util_1._check_arg)((0, util_1._is_number)((0, util_1._finite)(), (0, util_1._gt)(0)))(ttlSeconds, 'ttlSeconds');
43
+ if (value !== undefined)
44
+ (0, util_1._check_arg)((0, util_1._is_string)((0, util_1._non_empty)(), (0, util_1._max_length)(RAW_MAX)))(value, 'value');
40
45
  const nowMs = (0, sql_js_1.checkedMs)(new Date(), 'DbSecretStore.issue: the clock');
41
- await (0, orm_1.ormReady)();
42
46
  await this.purgeNowAndThen(nowMs);
43
- const raw = (0, node_crypto_1.randomBytes)(32).toString('base64url');
47
+ const raw = value ?? (0, node_crypto_1.randomBytes)(32).toString('base64url');
44
48
  await AuthnSecret_js_1.AuthnSecret.destroy().where('identity', key).where('purpose', purpose);
45
49
  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
50
  return raw;
@@ -55,7 +59,6 @@ let DbSecretStore = class DbSecretStore extends contracts_1.SecretStore {
55
59
  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
60
  return false;
57
61
  const nowMs = (0, sql_js_1.checkedMs)(new Date(), 'DbSecretStore.redeem: the clock');
58
- await (0, orm_1.ormReady)();
59
62
  await this.purgeNowAndThen(nowMs);
60
63
  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
64
  // MySQL and MSSQL default collations ignore case: the binding to identity and purpose is checked exactly here.
@@ -69,7 +72,6 @@ let DbSecretStore = class DbSecretStore extends contracts_1.SecretStore {
69
72
  /** Deletes up to one batch of spent and expired rows; returns how many went. */
70
73
  async purge(now = new Date()) {
71
74
  const ms = (0, sql_js_1.checkedMs)(now, 'DbSecretStore.purge: now');
72
- await (0, orm_1.ormReady)();
73
75
  const t = (0, sql_js_1.instant)(ms);
74
76
  const done = function () {
75
77
  this.whereNotNull('used_at');
@@ -92,6 +94,10 @@ let DbSecretStore = class DbSecretStore extends contracts_1.SecretStore {
92
94
  }
93
95
  };
94
96
  exports.DbSecretStore = DbSecretStore;
97
+ __decorate([
98
+ (0, di_1.Autoinject)(orm_1.Orm),
99
+ __metadata("design:type", orm_1.Orm)
100
+ ], DbSecretStore.prototype, "Orm", void 0);
95
101
  exports.DbSecretStore = DbSecretStore = __decorate([
96
102
  (0, di_1.PerChildInstance)(),
97
103
  (0, di_1.Injectable)(contracts_1.SecretStore)
@@ -1 +1 @@
1
- {"version":3,"file":"db-secret-store.js","sourceRoot":"","sources":["../../../src/secrets/db-secret-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-secret-store.js","sourceRoot":"","sources":["../../../src/secrets/db-secret-store.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { PeekVerdict } from '@spinajs/authn/contracts';
1
2
  import type { KeyedBackoffVerdict, ThrottleGate, ThrottleLower, ThrottleStore } from '@spinajs/util';
2
3
  import type { DateTime } from 'luxon';
3
4
  /** @internal "now" and the staleness cutoff of one call. */
@@ -40,13 +41,20 @@ export interface DbThrottleStoreOptions {
40
41
  *
41
42
  * Every time decision compares in SQL against the `nowMs` passed in, never SQL `now()`, and never against a datetime
42
43
  * read back (lane note D10). Flows need no column: the ids already differ per flow.
44
+ *
45
+ * It queries `AuthnThrottle` directly: whoever creates one resolves the Orm first, as `DbAuthnThrottle` does by injecting it.
43
46
  */
44
47
  export declare class DbThrottleStore implements ThrottleStore {
45
48
  private readonly resetAfterMs;
46
49
  private readonly purgeDue;
47
50
  constructor(options: DbThrottleStoreOptions);
48
51
  attempt(_flow: string, gates: readonly ThrottleGate[], counted: readonly string[], nowMs: number): Promise<KeyedBackoffVerdict>;
49
- peek(_flow: string, gates: readonly ThrottleGate[], nowMs: number): Promise<KeyedBackoffVerdict>;
52
+ /**
53
+ * One SELECT of the live rows of the gates: refuses as `attempt` would for a delay, else `clean` when there are
54
+ * none. A success lowers or clears only rows an attempt writes next to its account gate, so a clean peek needs no
55
+ * `succeed`.
56
+ */
57
+ peek(_flow: string, gates: readonly ThrottleGate[], nowMs: number): Promise<PeekVerdict>;
50
58
  /** Lowers by the largest count it consumed: rows carry no run, so a `by` row older than its target is taken off too. */
51
59
  succeed(_flow: string, lower: readonly ThrottleLower[], clear: readonly string[], nowMs: number): Promise<void>;
52
60
  /** Deletes up to one batch of stale rows (idle for resetAfterMs and delaying nobody); returns how many went. */
@@ -70,6 +78,7 @@ export declare class DbThrottleStore implements ThrottleStore {
70
78
  private subtract;
71
79
  /** The longest wait any of `ks` imposes now, 0 when none delays. */
72
80
  private blockedWait;
81
+ private waitOf;
73
82
  /** Rows of `ks` that are not stale; stale and missing rows both count as zero. */
74
83
  private readLive;
75
84
  private isLive;
@@ -1 +1 @@
1
- {"version":3,"file":"db-throttle-store.d.ts","sourceRoot":"","sources":["../../../src/throttle/db-throttle-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-throttle-store.d.ts","sourceRoot":"","sources":["../../../src/throttle/db-throttle-store.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ const FAIL_CLOSED_MS = 1000;
18
18
  *
19
19
  * Every time decision compares in SQL against the `nowMs` passed in, never SQL `now()`, and never against a datetime
20
20
  * read back (lane note D10). Flows need no column: the ids already differ per flow.
21
+ *
22
+ * It queries `AuthnThrottle` directly: whoever creates one resolves the Orm first, as `DbAuthnThrottle` does by injecting it.
21
23
  */
22
24
  class DbThrottleStore {
23
25
  constructor(options) {
@@ -25,7 +27,6 @@ class DbThrottleStore {
25
27
  this.resetAfterMs = options.resetAfterMs;
26
28
  }
27
29
  async attempt(_flow, gates, counted, nowMs) {
28
- await (0, orm_1.ormReady)();
29
30
  if (this.purgeDue()) {
30
31
  await this.purge(nowMs);
31
32
  }
@@ -53,16 +54,24 @@ class DbThrottleStore {
53
54
  }
54
55
  return { allowed: true };
55
56
  }
57
+ /**
58
+ * One SELECT of the live rows of the gates: refuses as `attempt` would for a delay, else `clean` when there are
59
+ * none. A success lowers or clears only rows an attempt writes next to its account gate, so a clean peek needs no
60
+ * `succeed`.
61
+ */
56
62
  async peek(_flow, gates, nowMs) {
57
63
  if (gates.length === 0)
58
- return { allowed: true };
59
- await (0, orm_1.ormReady)();
60
- const waitMs = await this.blockedWait(gates.map((g) => g.id).sort(), this.times(nowMs));
61
- return waitMs > 0 ? this.refuse(waitMs) : { allowed: true };
64
+ return { allowed: true, clean: true };
65
+ const t = this.times(nowMs);
66
+ const live = await AuthnThrottle_js_1.AuthnThrottle.query()
67
+ .columns(['k', 'next_allowed_at'])
68
+ .whereIn('k', gates.map((g) => g.id))
69
+ .where(this.isLive(t));
70
+ const waitMs = Math.max(0, ...live.map((r) => this.waitOf(r, t)));
71
+ return waitMs > 0 ? this.refuse(waitMs) : { allowed: true, clean: live.length === 0 };
62
72
  }
63
73
  /** Lowers by the largest count it consumed: rows carry no run, so a `by` row older than its target is taken off too. */
64
74
  async succeed(_flow, lower, clear, nowMs) {
65
- await (0, orm_1.ormReady)();
66
75
  const t = this.times(nowMs);
67
76
  const consumed = new Set();
68
77
  for (const { targets, by } of lower) {
@@ -85,7 +94,6 @@ class DbThrottleStore {
85
94
  }
86
95
  /** Deletes up to one batch of stale rows (idle for resetAfterMs and delaying nobody); returns how many went. */
87
96
  async purge(nowMs) {
88
- await (0, orm_1.ormReady)();
89
97
  const t = this.times(nowMs);
90
98
  const stale = await AuthnThrottle_js_1.AuthnThrottle.query().columns(['k']).where('last_attempt_at', '<=', t.cutoff).where('next_allowed_at', '<=', t.now).orderBy('k').take(PURGE_BATCH);
91
99
  if (stale.length === 0)
@@ -191,13 +199,13 @@ class DbThrottleStore {
191
199
  .columns(['k', 'next_allowed_at'])
192
200
  .whereIn('k', [...ks])
193
201
  .where('next_allowed_at', '>', t.now);
194
- let waitMs = 0;
195
- for (const r of rows) {
196
- const ms = (r.next_allowed_at?.toMillis() ?? NaN) - t.nowMs;
197
- // A delaying row whose datetime does not read still delays.
198
- waitMs = Math.max(waitMs, Number.isFinite(ms) && ms > 0 ? ms : FAIL_CLOSED_MS);
199
- }
200
- return waitMs;
202
+ // SQL found each row delaying, so one that reads as not delaying still delays.
203
+ return Math.max(0, ...rows.map((r) => this.waitOf(r, t) || FAIL_CLOSED_MS));
204
+ }
205
+ // A row whose datetime does not read is taken to delay.
206
+ waitOf(r, t) {
207
+ const ms = (r.next_allowed_at?.toMillis() ?? NaN) - t.nowMs;
208
+ return Number.isFinite(ms) ? Math.max(0, ms) : FAIL_CLOSED_MS;
201
209
  }
202
210
  /** Rows of `ks` that are not stale; stale and missing rows both count as zero. */
203
211
  async readLive(ks, t) {
@@ -1 +1 @@
1
- {"version":3,"file":"db-throttle-store.js","sourceRoot":"","sources":["../../../src/throttle/db-throttle-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-throttle-store.js","sourceRoot":"","sources":["../../../src/throttle/db-throttle-store.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { StoreAuthnThrottle } from '@spinajs/authn/store-throttle';
3
3
  import type { AuthnContext, ThrottleFlow, ThrottleKey, ThrottleParams } from '@spinajs/authn/contracts';
4
4
  import '@spinajs/authn/register-schema';
5
5
  import { IContainer } from '@spinajs/di';
6
+ import { Orm } from '@spinajs/orm';
6
7
  import { Log } from '@spinajs/log';
7
8
  import type { ThrottleStore } from '@spinajs/util';
8
9
  import { DbThrottleStore } from './db-throttle-store.js';
@@ -30,6 +31,8 @@ export interface DbThrottleOptions {
30
31
  */
31
32
  export declare class DbAuthnThrottle extends StoreAuthnThrottle {
32
33
  private readonly options;
34
+ /** Never read: injecting it resolves the Orm, which binds the models, before the first query. */
35
+ protected Orm: Orm;
33
36
  protected ConfiguredParams: ThrottleParams;
34
37
  protected ConfiguredHashSecret: string | null | undefined;
35
38
  protected Log: Log;
@@ -1 +1 @@
1
- {"version":3,"file":"db-throttle.d.ts","sourceRoot":"","sources":["../../../src/throttle/db-throttle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExG,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAyB,UAAU,EAAgC,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAKrE,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAEa,eAAgB,SAAQ,kBAAkB;IA0BhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAxB7D,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAG3C,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAG1D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEhC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,IAAI,CAA8B;IAE1C;;;;OAIG;IACH,YAAY,MAAM,CAAC,EAAE,cAAc,EAAmB,OAAO,GAAE,iBAAsB,EASpF;IAED,IAAW,MAAM,IAAI,cAAc,CAGlC;IAED,cAAuB,YAAY,IAAI,MAAM,CAE5C;IAED;;;;OAIG;IACU,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE;IAED,sGAAsG;IACzF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED,wHAAwH;IACjH,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAM1D;IAED,qHAAqH;IACxG,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG1D;IAED,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAExC;IAED,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAE5D;IAGD,UAAmB,SAAS,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAE/D;IAGD,UAAmB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;IAED,6GAA6G;IAC7G,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAEtE;YAEa,OAAO;IAOrB,OAAO,CAAC,kBAAkB;IAO1B,gHAAgH;IAChH,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,sBAAsB;YAKhB,IAAI;CAYnB"}
1
+ {"version":3,"file":"db-throttle.d.ts","sourceRoot":"","sources":["../../../src/throttle/db-throttle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExG,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAyB,UAAU,EAAgC,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAKrE,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAEa,eAAgB,SAAQ,kBAAkB;IA8BhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA7B7D,iGAAiG;IAEjG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAG3C,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAG1D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEhC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,IAAI,CAA8B;IAE1C;;;;OAIG;IACH,YAAY,MAAM,CAAC,EAAE,cAAc,EAAmB,OAAO,GAAE,iBAAsB,EASpF;IAED,IAAW,MAAM,IAAI,cAAc,CAGlC;IAED,cAAuB,YAAY,IAAI,MAAM,CAE5C;IAED;;;;OAIG;IACU,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE;IAED,sGAAsG;IACzF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED,wHAAwH;IACjH,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAM1D;IAED,qHAAqH;IACxG,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG1D;IAED,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAExC;IAED,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAE5D;IAGD,UAAmB,SAAS,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAE/D;IAGD,UAAmB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;IAED,6GAA6G;IAC7G,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAEtE;YAEa,OAAO;IAOrB,OAAO,CAAC,kBAAkB;IAO1B,gHAAgH;IAChH,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,sBAAsB;YAKhB,IAAI;CAYnB"}
@@ -17,6 +17,7 @@ const store_throttle_1 = require("@spinajs/authn/store-throttle");
17
17
  const configuration_1 = require("@spinajs/configuration");
18
18
  require("@spinajs/authn/register-schema");
19
19
  const di_1 = require("@spinajs/di");
20
+ const orm_1 = require("@spinajs/orm");
20
21
  const exceptions_1 = require("@spinajs/exceptions");
21
22
  const log_1 = require("@spinajs/log");
22
23
  const util_1 = require("@spinajs/util");
@@ -133,7 +134,7 @@ let DbAuthnThrottle = class DbAuthnThrottle extends store_throttle_1.StoreAuthnT
133
134
  snapshotConfigured() {
134
135
  if (!this.ConfiguredParams)
135
136
  throw new exceptions_1.InvalidOperation('authn.throttle is unset: AUTHN_CONFIGURATION_SCHEMA is not registered');
136
- const { service: _service, maxRows: _maxRows, memory: _memory, ...params } = structuredClone(this.ConfiguredParams);
137
+ const { service: _service, maxRows: _maxRows, memory: _memory, ipv6Prefix: _ipv6Prefix, ...params } = structuredClone(this.ConfiguredParams);
137
138
  (0, env_1.checkThrottleParams)(params);
138
139
  return (0, util_1.deepFreeze)(params);
139
140
  }
@@ -160,6 +161,10 @@ let DbAuthnThrottle = class DbAuthnThrottle extends store_throttle_1.StoreAuthnT
160
161
  }
161
162
  };
162
163
  exports.DbAuthnThrottle = DbAuthnThrottle;
164
+ __decorate([
165
+ (0, di_1.Autoinject)(orm_1.Orm),
166
+ __metadata("design:type", orm_1.Orm)
167
+ ], DbAuthnThrottle.prototype, "Orm", void 0);
163
168
  __decorate([
164
169
  (0, configuration_1.Config)('authn.throttle'),
165
170
  __metadata("design:type", Object)