@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.
- package/README.md +2 -2
- package/lib/cjs/audit/db-audit-sink.d.ts +3 -0
- package/lib/cjs/audit/db-audit-sink.d.ts.map +1 -1
- package/lib/cjs/audit/db-audit-sink.js +7 -1
- package/lib/cjs/audit/db-audit-sink.js.map +1 -1
- package/lib/cjs/audit/index.d.ts +1 -0
- package/lib/cjs/audit/index.d.ts.map +1 -1
- package/lib/cjs/audit/index.js +3 -1
- package/lib/cjs/audit/index.js.map +1 -1
- package/lib/cjs/audit/retention.d.ts +24 -0
- package/lib/cjs/audit/retention.d.ts.map +1 -0
- package/lib/cjs/audit/retention.js +108 -0
- package/lib/cjs/audit/retention.js.map +1 -0
- package/lib/cjs/cli/PurgeAudit.d.ts +13 -0
- package/lib/cjs/cli/PurgeAudit.d.ts.map +1 -0
- package/lib/cjs/cli/PurgeAudit.js +51 -0
- package/lib/cjs/cli/PurgeAudit.js.map +1 -0
- package/lib/cjs/config/authn-orm.d.ts +9 -0
- package/lib/cjs/config/authn-orm.d.ts.map +1 -0
- package/lib/cjs/config/authn-orm.js +21 -0
- package/lib/cjs/config/authn-orm.js.map +1 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/links/db-link-store.d.ts +3 -0
- package/lib/cjs/links/db-link-store.d.ts.map +1 -1
- package/lib/cjs/links/db-link-store.js +7 -5
- package/lib/cjs/links/db-link-store.js.map +1 -1
- package/lib/cjs/mfa/db-mfa-enrolment-marks.d.ts +16 -0
- package/lib/cjs/mfa/db-mfa-enrolment-marks.d.ts.map +1 -0
- package/lib/cjs/mfa/db-mfa-enrolment-marks.js +54 -0
- package/lib/cjs/mfa/db-mfa-enrolment-marks.js.map +1 -0
- package/lib/cjs/mfa/db-mfa-store.d.ts +3 -0
- package/lib/cjs/mfa/db-mfa-store.d.ts.map +1 -1
- package/lib/cjs/mfa/db-mfa-store.js +7 -11
- package/lib/cjs/mfa/db-mfa-store.js.map +1 -1
- package/lib/cjs/mfa/index.d.ts +1 -0
- package/lib/cjs/mfa/index.d.ts.map +1 -1
- package/lib/cjs/mfa/index.js +1 -0
- package/lib/cjs/mfa/index.js.map +1 -1
- package/lib/cjs/nonces/nonce-store.d.ts +3 -0
- package/lib/cjs/nonces/nonce-store.d.ts.map +1 -1
- package/lib/cjs/nonces/nonce-store.js +7 -2
- package/lib/cjs/nonces/nonce-store.js.map +1 -1
- package/lib/cjs/secrets/db-secret-store.d.ts +5 -2
- package/lib/cjs/secrets/db-secret-store.d.ts.map +1 -1
- package/lib/cjs/secrets/db-secret-store.js +12 -6
- package/lib/cjs/secrets/db-secret-store.js.map +1 -1
- package/lib/cjs/throttle/db-throttle-store.d.ts +10 -1
- package/lib/cjs/throttle/db-throttle-store.d.ts.map +1 -1
- package/lib/cjs/throttle/db-throttle-store.js +22 -14
- package/lib/cjs/throttle/db-throttle-store.js.map +1 -1
- package/lib/cjs/throttle/db-throttle.d.ts +3 -0
- package/lib/cjs/throttle/db-throttle.d.ts.map +1 -1
- package/lib/cjs/throttle/db-throttle.js +6 -1
- package/lib/cjs/throttle/db-throttle.js.map +1 -1
- package/lib/mjs/audit/db-audit-sink.d.ts +3 -0
- package/lib/mjs/audit/db-audit-sink.d.ts.map +1 -1
- package/lib/mjs/audit/db-audit-sink.js +9 -3
- package/lib/mjs/audit/db-audit-sink.js.map +1 -1
- package/lib/mjs/audit/index.d.ts +1 -0
- package/lib/mjs/audit/index.d.ts.map +1 -1
- package/lib/mjs/audit/index.js +1 -0
- package/lib/mjs/audit/index.js.map +1 -1
- package/lib/mjs/audit/retention.d.ts +24 -0
- package/lib/mjs/audit/retention.d.ts.map +1 -0
- package/lib/mjs/audit/retention.js +105 -0
- package/lib/mjs/audit/retention.js.map +1 -0
- package/lib/mjs/cli/PurgeAudit.d.ts +13 -0
- package/lib/mjs/cli/PurgeAudit.d.ts.map +1 -0
- package/lib/mjs/cli/PurgeAudit.js +48 -0
- package/lib/mjs/cli/PurgeAudit.js.map +1 -0
- package/lib/mjs/config/authn-orm.d.ts +9 -0
- package/lib/mjs/config/authn-orm.d.ts.map +1 -0
- package/lib/mjs/config/authn-orm.js +19 -0
- package/lib/mjs/config/authn-orm.js.map +1 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/links/db-link-store.d.ts +3 -0
- package/lib/mjs/links/db-link-store.d.ts.map +1 -1
- package/lib/mjs/links/db-link-store.js +9 -7
- package/lib/mjs/links/db-link-store.js.map +1 -1
- package/lib/mjs/mfa/db-mfa-enrolment-marks.d.ts +16 -0
- package/lib/mjs/mfa/db-mfa-enrolment-marks.d.ts.map +1 -0
- package/lib/mjs/mfa/db-mfa-enrolment-marks.js +51 -0
- package/lib/mjs/mfa/db-mfa-enrolment-marks.js.map +1 -0
- package/lib/mjs/mfa/db-mfa-store.d.ts +3 -0
- package/lib/mjs/mfa/db-mfa-store.d.ts.map +1 -1
- package/lib/mjs/mfa/db-mfa-store.js +9 -13
- package/lib/mjs/mfa/db-mfa-store.js.map +1 -1
- package/lib/mjs/mfa/index.d.ts +1 -0
- package/lib/mjs/mfa/index.d.ts.map +1 -1
- package/lib/mjs/mfa/index.js +1 -0
- package/lib/mjs/mfa/index.js.map +1 -1
- package/lib/mjs/nonces/nonce-store.d.ts +3 -0
- package/lib/mjs/nonces/nonce-store.d.ts.map +1 -1
- package/lib/mjs/nonces/nonce-store.js +9 -4
- package/lib/mjs/nonces/nonce-store.js.map +1 -1
- package/lib/mjs/secrets/db-secret-store.d.ts +5 -2
- package/lib/mjs/secrets/db-secret-store.d.ts.map +1 -1
- package/lib/mjs/secrets/db-secret-store.js +14 -8
- package/lib/mjs/secrets/db-secret-store.js.map +1 -1
- package/lib/mjs/throttle/db-throttle-store.d.ts +10 -1
- package/lib/mjs/throttle/db-throttle-store.d.ts.map +1 -1
- package/lib/mjs/throttle/db-throttle-store.js +23 -15
- package/lib/mjs/throttle/db-throttle-store.js.map +1 -1
- package/lib/mjs/throttle/db-throttle.d.ts +3 -0
- package/lib/mjs/throttle/db-throttle.d.ts.map +1 -1
- package/lib/mjs/throttle/db-throttle.js +6 -1
- package/lib/mjs/throttle/db-throttle.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- 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":"
|
|
1
|
+
{"version":3,"file":"db-mfa-store.js","sourceRoot":"","sources":["../../../src/mfa/db-mfa-store.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/mfa/index.d.ts
CHANGED
|
@@ -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"}
|
package/lib/cjs/mfa/index.js
CHANGED
|
@@ -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
|
package/lib/cjs/mfa/index.js.map
CHANGED
|
@@ -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;
|
|
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":"
|
|
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;
|
|
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":"
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
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
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
return
|
|
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;
|
|
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)
|