@futdevpro/nts-dynamo 1.15.224 → 1.15.226
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/build/_modules/account-security/_enums/account-security-retention-category.type-enum.d.ts +7 -0
- package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.d.ts.map +1 -0
- package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.js +11 -0
- package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.js.map +1 -0
- package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.d.ts +10 -0
- package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.d.ts.map +1 -0
- package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.js +14 -0
- package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.js.map +1 -0
- package/build/_modules/account-security/_models/account-security-retention.interface.d.ts +44 -0
- package/build/_modules/account-security/_models/account-security-retention.interface.d.ts.map +1 -0
- package/build/_modules/account-security/_models/account-security-retention.interface.js +3 -0
- package/build/_modules/account-security/_models/account-security-retention.interface.js.map +1 -0
- package/build/_modules/account-security/account-security-retention.control-service.d.ts +32 -0
- package/build/_modules/account-security/account-security-retention.control-service.d.ts.map +1 -0
- package/build/_modules/account-security/account-security-retention.control-service.js +243 -0
- package/build/_modules/account-security/account-security-retention.control-service.js.map +1 -0
- package/build/_modules/account-security/index.d.ts +4 -0
- package/build/_modules/account-security/index.d.ts.map +1 -1
- package/build/_modules/account-security/index.js +7 -1
- package/build/_modules/account-security/index.js.map +1 -1
- package/package.json +1 -1
package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Closed account-security record categories covered by the shared retention evaluator. */
|
|
2
|
+
export declare enum DyNTS_AccountSecurityRetentionCategory_Type {
|
|
3
|
+
challenge = "challenge",
|
|
4
|
+
refreshToken = "refresh-token",
|
|
5
|
+
session = "session"
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=account-security-retention-category.type-enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention-category.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-security-retention-category.type-enum.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,oBAAY,2CAA2C;IACrD,SAAS,cAAc;IACvB,YAAY,kBAAkB;IAC9B,OAAO,YAAY;CACpB"}
|
package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AccountSecurityRetentionCategory_Type = void 0;
|
|
4
|
+
/** Closed account-security record categories covered by the shared retention evaluator. */
|
|
5
|
+
var DyNTS_AccountSecurityRetentionCategory_Type;
|
|
6
|
+
(function (DyNTS_AccountSecurityRetentionCategory_Type) {
|
|
7
|
+
DyNTS_AccountSecurityRetentionCategory_Type["challenge"] = "challenge";
|
|
8
|
+
DyNTS_AccountSecurityRetentionCategory_Type["refreshToken"] = "refresh-token";
|
|
9
|
+
DyNTS_AccountSecurityRetentionCategory_Type["session"] = "session";
|
|
10
|
+
})(DyNTS_AccountSecurityRetentionCategory_Type || (exports.DyNTS_AccountSecurityRetentionCategory_Type = DyNTS_AccountSecurityRetentionCategory_Type = {}));
|
|
11
|
+
//# sourceMappingURL=account-security-retention-category.type-enum.js.map
|
package/build/_modules/account-security/_enums/account-security-retention-category.type-enum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention-category.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-security-retention-category.type-enum.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,IAAY,2CAIX;AAJD,WAAY,2CAA2C;IACrD,sEAAuB,CAAA;IACvB,6EAA8B,CAAA;IAC9B,kEAAmB,CAAA;AACrB,CAAC,EAJW,2CAA2C,2DAA3C,2CAA2C,QAItD"}
|
package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Stable content-free reasons emitted by account-security retention evaluation. */
|
|
2
|
+
export declare enum DyNTS_AccountSecurityRetentionReason_Type {
|
|
3
|
+
challengeExpired = "challenge-expired",
|
|
4
|
+
activeRefreshTokenExpired = "active-refresh-token-expired",
|
|
5
|
+
refreshTokenSecurityEvidenceExpired = "refresh-token-security-evidence-expired",
|
|
6
|
+
activeSessionExpired = "active-session-expired",
|
|
7
|
+
sessionSecurityEvidenceExpired = "session-security-evidence-expired",
|
|
8
|
+
retentionNotDue = "retention-not-due"
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=account-security-retention-reason.type-enum.d.ts.map
|
package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention-reason.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-security-retention-reason.type-enum.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,oBAAY,yCAAyC;IACnD,gBAAgB,sBAAsB;IACtC,yBAAyB,iCAAiC;IAC1D,mCAAmC,4CAA4C;IAC/E,oBAAoB,2BAA2B;IAC/C,8BAA8B,sCAAsC;IACpE,eAAe,sBAAsB;CACtC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AccountSecurityRetentionReason_Type = void 0;
|
|
4
|
+
/** Stable content-free reasons emitted by account-security retention evaluation. */
|
|
5
|
+
var DyNTS_AccountSecurityRetentionReason_Type;
|
|
6
|
+
(function (DyNTS_AccountSecurityRetentionReason_Type) {
|
|
7
|
+
DyNTS_AccountSecurityRetentionReason_Type["challengeExpired"] = "challenge-expired";
|
|
8
|
+
DyNTS_AccountSecurityRetentionReason_Type["activeRefreshTokenExpired"] = "active-refresh-token-expired";
|
|
9
|
+
DyNTS_AccountSecurityRetentionReason_Type["refreshTokenSecurityEvidenceExpired"] = "refresh-token-security-evidence-expired";
|
|
10
|
+
DyNTS_AccountSecurityRetentionReason_Type["activeSessionExpired"] = "active-session-expired";
|
|
11
|
+
DyNTS_AccountSecurityRetentionReason_Type["sessionSecurityEvidenceExpired"] = "session-security-evidence-expired";
|
|
12
|
+
DyNTS_AccountSecurityRetentionReason_Type["retentionNotDue"] = "retention-not-due";
|
|
13
|
+
})(DyNTS_AccountSecurityRetentionReason_Type || (exports.DyNTS_AccountSecurityRetentionReason_Type = DyNTS_AccountSecurityRetentionReason_Type = {}));
|
|
14
|
+
//# sourceMappingURL=account-security-retention-reason.type-enum.js.map
|
package/build/_modules/account-security/_enums/account-security-retention-reason.type-enum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention-reason.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-security-retention-reason.type-enum.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,IAAY,yCAOX;AAPD,WAAY,yCAAyC;IACnD,mFAAsC,CAAA;IACtC,uGAA0D,CAAA;IAC1D,4HAA+E,CAAA;IAC/E,4FAA+C,CAAA;IAC/C,iHAAoE,CAAA;IACpE,kFAAqC,CAAA;AACvC,CAAC,EAPW,yCAAyC,yDAAzC,yCAAyC,QAOpD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DyNTS_AccountSecurityRetentionCategory_Type } from '../_enums/account-security-retention-category.type-enum';
|
|
2
|
+
import { DyNTS_AccountSecurityRetentionReason_Type } from '../_enums/account-security-retention-reason.type-enum';
|
|
3
|
+
import { DyNTS_AccountRefreshTokenState_Type } from '../_enums/account-refresh-token-state.type-enum';
|
|
4
|
+
import { DyNTS_AccountSessionState_Type } from '../_enums/account-session-state.type-enum';
|
|
5
|
+
/** Caller-owned finite policy; Bedrock supplies mechanics and never invents the legal duration. */
|
|
6
|
+
export interface DyNTS_AccountSecurityRetentionPolicy_Interface {
|
|
7
|
+
readonly contractVersion: 'dynts-account-security-retention-policy/1';
|
|
8
|
+
readonly securityEvidenceRetentionDays: number;
|
|
9
|
+
readonly policyVersion: string;
|
|
10
|
+
readonly retentionBasisCode: string;
|
|
11
|
+
}
|
|
12
|
+
/** Minimal challenge projection. Challenge payload and subject identity are deliberately absent. */
|
|
13
|
+
export interface DyNTS_AccountChallengeRetentionCandidate_Interface {
|
|
14
|
+
readonly category: DyNTS_AccountSecurityRetentionCategory_Type.challenge;
|
|
15
|
+
readonly expiresAt: string;
|
|
16
|
+
}
|
|
17
|
+
/** Minimal session projection. Credential hashes, subject and device metadata are deliberately absent. */
|
|
18
|
+
export interface DyNTS_AccountSessionRetentionCandidate_Interface {
|
|
19
|
+
readonly category: DyNTS_AccountSecurityRetentionCategory_Type.session;
|
|
20
|
+
readonly state: DyNTS_AccountSessionState_Type;
|
|
21
|
+
readonly refreshExpiresAt: string;
|
|
22
|
+
readonly revokedAt: string;
|
|
23
|
+
}
|
|
24
|
+
/** Minimal refresh-token projection. Token hash, session, family and subject identity are deliberately absent. */
|
|
25
|
+
export interface DyNTS_AccountRefreshTokenRetentionCandidate_Interface {
|
|
26
|
+
readonly category: DyNTS_AccountSecurityRetentionCategory_Type.refreshToken;
|
|
27
|
+
readonly state: DyNTS_AccountRefreshTokenState_Type;
|
|
28
|
+
readonly expiresAt: string;
|
|
29
|
+
readonly usedAt: string;
|
|
30
|
+
}
|
|
31
|
+
/** Exact projected input union accepted by the shared evaluator. */
|
|
32
|
+
export type DyNTS_AccountSecurityRetentionCandidate_Type = DyNTS_AccountChallengeRetentionCandidate_Interface | DyNTS_AccountSessionRetentionCandidate_Interface | DyNTS_AccountRefreshTokenRetentionCandidate_Interface;
|
|
33
|
+
/** Content-free finite deletion decision. No record identity or supplied value is reflected. */
|
|
34
|
+
export interface DyNTS_AccountSecurityRetentionDecision_Interface {
|
|
35
|
+
readonly contractVersion: 'dynts-account-security-retention-decision/1';
|
|
36
|
+
readonly category: DyNTS_AccountSecurityRetentionCategory_Type;
|
|
37
|
+
readonly evaluatedAt: string;
|
|
38
|
+
readonly deletionDeadlineAt: string;
|
|
39
|
+
readonly eligibleForDeletion: boolean;
|
|
40
|
+
readonly reasonCode: DyNTS_AccountSecurityRetentionReason_Type;
|
|
41
|
+
readonly policyVersion: string;
|
|
42
|
+
readonly retentionBasisCode: string;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=account-security-retention.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-security-retention.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2CAA2C,EAAE,MAAM,yDAAyD,CAAC;AACtH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,mCAAmC,EAAE,MAAM,iDAAiD,CAAC;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAE3F,mGAAmG;AACnG,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,eAAe,EAAE,2CAA2C,CAAC;IACtE,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,oGAAoG;AACpG,MAAM,WAAW,kDAAkD;IACjE,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC,SAAS,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,0GAA0G;AAC1G,MAAM,WAAW,gDAAgD;IAC/D,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC,OAAO,CAAC;IACvE,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,kHAAkH;AAClH,MAAM,WAAW,qDAAqD;IACpE,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC,YAAY,CAAC;IAC5E,QAAQ,CAAC,KAAK,EAAE,mCAAmC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,oEAAoE;AACpE,MAAM,MAAM,4CAA4C,GACtD,kDAAkD,GAChD,gDAAgD,GAChD,qDAAqD,CAAC;AAE1D,gGAAgG;AAChG,MAAM,WAAW,gDAAgD;IAC/D,QAAQ,CAAC,eAAe,EAAE,6CAA6C,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,yCAAyC,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-security-retention.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DyNTS_AccountSecurityRetentionDecision_Interface } from './_models/account-security-retention.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Applies caller-owned finite policy to content-minimal account-security projections.
|
|
4
|
+
*
|
|
5
|
+
* The evaluator has no storage, logging, network, subject identity or credential access. Active credentials are
|
|
6
|
+
* eligible at their own expiry. Terminated security evidence receives only the caller-approved finite evidence
|
|
7
|
+
* window. Challenges never receive a post-expiry grace period.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DyNTS_AccountSecurityRetention_ControlService {
|
|
10
|
+
private readonly clock;
|
|
11
|
+
/** Uses the trusted process clock in production and an explicit deterministic clock in tests. */
|
|
12
|
+
constructor(clock?: () => Date);
|
|
13
|
+
/** Returns one frozen, identifier-free decision or fails closed with a stable code. */
|
|
14
|
+
evaluate(candidateValue: unknown, policyValue: unknown): DyNTS_AccountSecurityRetentionDecision_Interface;
|
|
15
|
+
private deadline;
|
|
16
|
+
private sessionDeadline;
|
|
17
|
+
private refreshTokenDeadline;
|
|
18
|
+
private policy;
|
|
19
|
+
private candidate;
|
|
20
|
+
private challengeCandidate;
|
|
21
|
+
private sessionCandidate;
|
|
22
|
+
private refreshTokenCandidate;
|
|
23
|
+
private record;
|
|
24
|
+
private value;
|
|
25
|
+
private date;
|
|
26
|
+
private addDays;
|
|
27
|
+
private validClock;
|
|
28
|
+
private sessionState;
|
|
29
|
+
private refreshTokenState;
|
|
30
|
+
private code;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=account-security-retention.control-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention.control-service.d.ts","sourceRoot":"","sources":["../../../src/_modules/account-security/account-security-retention.control-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,gDAAgD,EAGjD,MAAM,gDAAgD,CAAC;AAOxD;;;;;;GAMG;AACH,qBAAa,6CAA6C;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IAEnC,iGAAiG;gBAC9E,KAAK,GAAE,MAAM,IAA6B;IAI7D,uFAAuF;IAChF,QAAQ,CACb,cAAc,EAAE,OAAO,EACvB,WAAW,EAAE,OAAO,GACnB,gDAAgD;IAqBnD,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,MAAM;IAwBd,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,MAAM;IA4Bd,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AccountSecurityRetention_ControlService = void 0;
|
|
4
|
+
const account_security_retention_category_type_enum_1 = require("./_enums/account-security-retention-category.type-enum");
|
|
5
|
+
const account_security_retention_reason_type_enum_1 = require("./_enums/account-security-retention-reason.type-enum");
|
|
6
|
+
const account_refresh_token_state_type_enum_1 = require("./_enums/account-refresh-token-state.type-enum");
|
|
7
|
+
const account_session_state_type_enum_1 = require("./_enums/account-session-state.type-enum");
|
|
8
|
+
/**
|
|
9
|
+
* Applies caller-owned finite policy to content-minimal account-security projections.
|
|
10
|
+
*
|
|
11
|
+
* The evaluator has no storage, logging, network, subject identity or credential access. Active credentials are
|
|
12
|
+
* eligible at their own expiry. Terminated security evidence receives only the caller-approved finite evidence
|
|
13
|
+
* window. Challenges never receive a post-expiry grace period.
|
|
14
|
+
*/
|
|
15
|
+
class DyNTS_AccountSecurityRetention_ControlService {
|
|
16
|
+
clock;
|
|
17
|
+
/** Uses the trusted process clock in production and an explicit deterministic clock in tests. */
|
|
18
|
+
constructor(clock = () => new Date()) {
|
|
19
|
+
this.clock = clock;
|
|
20
|
+
}
|
|
21
|
+
/** Returns one frozen, identifier-free decision or fails closed with a stable code. */
|
|
22
|
+
evaluate(candidateValue, policyValue) {
|
|
23
|
+
const policy = this.policy(policyValue);
|
|
24
|
+
const candidate = this.candidate(candidateValue);
|
|
25
|
+
const evaluatedAt = this.validClock();
|
|
26
|
+
const deadline = this.deadline(candidate, policy);
|
|
27
|
+
const isDue = evaluatedAt.getTime() >= deadline.deadlineAt.getTime();
|
|
28
|
+
return Object.freeze({
|
|
29
|
+
contractVersion: 'dynts-account-security-retention-decision/1',
|
|
30
|
+
category: candidate.category,
|
|
31
|
+
evaluatedAt: evaluatedAt.toISOString(),
|
|
32
|
+
deletionDeadlineAt: deadline.deadlineAt.toISOString(),
|
|
33
|
+
eligibleForDeletion: isDue,
|
|
34
|
+
reasonCode: isDue
|
|
35
|
+
? deadline.dueReasonCode
|
|
36
|
+
: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.retentionNotDue,
|
|
37
|
+
policyVersion: policy.policyVersion,
|
|
38
|
+
retentionBasisCode: policy.retentionBasisCode,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
deadline(candidate, policy) {
|
|
42
|
+
switch (candidate.category) {
|
|
43
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.challenge:
|
|
44
|
+
return {
|
|
45
|
+
deadlineAt: this.date(candidate.expiresAt),
|
|
46
|
+
dueReasonCode: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.challengeExpired,
|
|
47
|
+
};
|
|
48
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.session:
|
|
49
|
+
return this.sessionDeadline(candidate, policy.securityEvidenceRetentionDays);
|
|
50
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.refreshToken:
|
|
51
|
+
return this.refreshTokenDeadline(candidate, policy.securityEvidenceRetentionDays);
|
|
52
|
+
default:
|
|
53
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
sessionDeadline(candidate, evidenceDays) {
|
|
57
|
+
if (candidate.state === account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.active) {
|
|
58
|
+
return {
|
|
59
|
+
deadlineAt: this.date(candidate.refreshExpiresAt),
|
|
60
|
+
dueReasonCode: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.activeSessionExpired,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const terminationAt = candidate.state === account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.revoked
|
|
64
|
+
? this.date(candidate.revokedAt)
|
|
65
|
+
: this.date(candidate.refreshExpiresAt);
|
|
66
|
+
return {
|
|
67
|
+
deadlineAt: this.addDays(terminationAt, evidenceDays),
|
|
68
|
+
dueReasonCode: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.sessionSecurityEvidenceExpired,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
refreshTokenDeadline(candidate, evidenceDays) {
|
|
72
|
+
if (candidate.state === account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.active) {
|
|
73
|
+
return {
|
|
74
|
+
deadlineAt: this.date(candidate.expiresAt),
|
|
75
|
+
dueReasonCode: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.activeRefreshTokenExpired,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
deadlineAt: this.addDays(this.date(candidate.usedAt), evidenceDays),
|
|
80
|
+
dueReasonCode: account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type.refreshTokenSecurityEvidenceExpired,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
policy(value) {
|
|
84
|
+
const record = this.record(value, [
|
|
85
|
+
'contractVersion', 'securityEvidenceRetentionDays', 'policyVersion', 'retentionBasisCode',
|
|
86
|
+
]);
|
|
87
|
+
if (record.contractVersion !== 'dynts-account-security-retention-policy/1'
|
|
88
|
+
|| !Number.isSafeInteger(record.securityEvidenceRetentionDays)
|
|
89
|
+
|| Number(record.securityEvidenceRetentionDays) < 1
|
|
90
|
+
|| Number(record.securityEvidenceRetentionDays) > 3_650
|
|
91
|
+
|| !this.code(record.policyVersion)
|
|
92
|
+
|| !this.code(record.retentionBasisCode)) {
|
|
93
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_POLICY');
|
|
94
|
+
}
|
|
95
|
+
return Object.freeze({
|
|
96
|
+
contractVersion: record.contractVersion,
|
|
97
|
+
securityEvidenceRetentionDays: Number(record.securityEvidenceRetentionDays),
|
|
98
|
+
policyVersion: String(record.policyVersion),
|
|
99
|
+
retentionBasisCode: String(record.retentionBasisCode),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
candidate(value) {
|
|
103
|
+
const category = this.value(value, 'category');
|
|
104
|
+
switch (category) {
|
|
105
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.challenge:
|
|
106
|
+
return this.challengeCandidate(value);
|
|
107
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.session:
|
|
108
|
+
return this.sessionCandidate(value);
|
|
109
|
+
case account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.refreshToken:
|
|
110
|
+
return this.refreshTokenCandidate(value);
|
|
111
|
+
default:
|
|
112
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
challengeCandidate(value) {
|
|
116
|
+
const record = this.record(value, ['category', 'expiresAt']);
|
|
117
|
+
this.date(record.expiresAt);
|
|
118
|
+
return Object.freeze({
|
|
119
|
+
category: account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.challenge,
|
|
120
|
+
expiresAt: String(record.expiresAt),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
sessionCandidate(value) {
|
|
124
|
+
const record = this.record(value, ['category', 'state', 'refreshExpiresAt', 'revokedAt']);
|
|
125
|
+
const state = this.sessionState(record.state);
|
|
126
|
+
this.date(record.refreshExpiresAt);
|
|
127
|
+
if (state === account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.revoked) {
|
|
128
|
+
this.date(record.revokedAt);
|
|
129
|
+
}
|
|
130
|
+
else if (typeof record.revokedAt !== 'string' || record.revokedAt !== '') {
|
|
131
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
132
|
+
}
|
|
133
|
+
return Object.freeze({
|
|
134
|
+
category: account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.session,
|
|
135
|
+
state: state,
|
|
136
|
+
refreshExpiresAt: String(record.refreshExpiresAt),
|
|
137
|
+
revokedAt: String(record.revokedAt),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
refreshTokenCandidate(value) {
|
|
141
|
+
const record = this.record(value, ['category', 'state', 'expiresAt', 'usedAt']);
|
|
142
|
+
const state = this.refreshTokenState(record.state);
|
|
143
|
+
this.date(record.expiresAt);
|
|
144
|
+
if (state === account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.active) {
|
|
145
|
+
if (typeof record.usedAt !== 'string' || record.usedAt !== '') {
|
|
146
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.date(record.usedAt);
|
|
151
|
+
}
|
|
152
|
+
return Object.freeze({
|
|
153
|
+
category: account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type.refreshToken,
|
|
154
|
+
state: state,
|
|
155
|
+
expiresAt: String(record.expiresAt),
|
|
156
|
+
usedAt: String(record.usedAt),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
record(value, exactKeys) {
|
|
160
|
+
if (!value
|
|
161
|
+
|| typeof value !== 'object'
|
|
162
|
+
|| Array.isArray(value)
|
|
163
|
+
|| Object.getPrototypeOf(value) !== Object.prototype) {
|
|
164
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_INPUT');
|
|
165
|
+
}
|
|
166
|
+
const keys = Object.keys(value);
|
|
167
|
+
if (keys.length !== exactKeys.length || exactKeys.some((key) => !keys.includes(key))) {
|
|
168
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_INPUT');
|
|
169
|
+
}
|
|
170
|
+
const result = {};
|
|
171
|
+
for (const key of exactKeys) {
|
|
172
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
173
|
+
if (!descriptor || !('value' in descriptor)) {
|
|
174
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_INPUT');
|
|
175
|
+
}
|
|
176
|
+
result[key] = descriptor.value;
|
|
177
|
+
}
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
value(candidate, key) {
|
|
181
|
+
if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) {
|
|
182
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_INPUT');
|
|
183
|
+
}
|
|
184
|
+
const descriptor = Object.getOwnPropertyDescriptor(candidate, key);
|
|
185
|
+
if (!descriptor || !('value' in descriptor)) {
|
|
186
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_INPUT');
|
|
187
|
+
}
|
|
188
|
+
return descriptor.value;
|
|
189
|
+
}
|
|
190
|
+
date(value) {
|
|
191
|
+
if (typeof value !== 'string') {
|
|
192
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_DATE');
|
|
193
|
+
}
|
|
194
|
+
const parsed = new Date(value);
|
|
195
|
+
if (Number.isNaN(parsed.getTime()) || parsed.toISOString() !== value) {
|
|
196
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_DATE');
|
|
197
|
+
}
|
|
198
|
+
return parsed;
|
|
199
|
+
}
|
|
200
|
+
addDays(value, days) {
|
|
201
|
+
const result = new Date(value.getTime() + days * 24 * 60 * 60 * 1_000);
|
|
202
|
+
if (Number.isNaN(result.getTime())) {
|
|
203
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_DATE');
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
validClock() {
|
|
208
|
+
const value = this.clock();
|
|
209
|
+
if (!(value instanceof Date) || Number.isNaN(value.getTime())) {
|
|
210
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CLOCK');
|
|
211
|
+
}
|
|
212
|
+
return new Date(value.getTime());
|
|
213
|
+
}
|
|
214
|
+
sessionState(value) {
|
|
215
|
+
switch (value) {
|
|
216
|
+
case account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.active:
|
|
217
|
+
return account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.active;
|
|
218
|
+
case account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.revoked:
|
|
219
|
+
return account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.revoked;
|
|
220
|
+
case account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.expired:
|
|
221
|
+
return account_session_state_type_enum_1.DyNTS_AccountSessionState_Type.expired;
|
|
222
|
+
default:
|
|
223
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
refreshTokenState(value) {
|
|
227
|
+
switch (value) {
|
|
228
|
+
case account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.active:
|
|
229
|
+
return account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.active;
|
|
230
|
+
case account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.used:
|
|
231
|
+
return account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.used;
|
|
232
|
+
case account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.revoked:
|
|
233
|
+
return account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type.revoked;
|
|
234
|
+
default:
|
|
235
|
+
throw new Error('DyNTS|ACCOUNT_SECURITY_RETENTION|INVALID_CANDIDATE');
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
code(value) {
|
|
239
|
+
return typeof value === 'string' && /^[a-z0-9][a-z0-9._:-]{2,127}$/u.test(value);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
exports.DyNTS_AccountSecurityRetention_ControlService = DyNTS_AccountSecurityRetention_ControlService;
|
|
243
|
+
//# sourceMappingURL=account-security-retention.control-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-security-retention.control-service.js","sourceRoot":"","sources":["../../../src/_modules/account-security/account-security-retention.control-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export { DyNTS_AccountPassword_ControlService } from './account-password.control-service';
|
|
2
2
|
export { DyNTS_AccountChallenge_ControlService } from './account-challenge.control-service';
|
|
3
3
|
export { DyNTS_AccountSession_ControlService } from './account-session.control-service';
|
|
4
|
+
export { DyNTS_AccountSecurityRetention_ControlService } from './account-security-retention.control-service';
|
|
4
5
|
export { DyNTS_AccountChallengePurpose_Type } from './_enums/account-challenge-purpose.type-enum';
|
|
6
|
+
export { DyNTS_AccountSecurityRetentionCategory_Type } from './_enums/account-security-retention-category.type-enum';
|
|
7
|
+
export { DyNTS_AccountSecurityRetentionReason_Type } from './_enums/account-security-retention-reason.type-enum';
|
|
5
8
|
export { DyNTS_AccountRefreshTokenState_Type } from './_enums/account-refresh-token-state.type-enum';
|
|
6
9
|
export { DyNTS_AccountSessionState_Type } from './_enums/account-session-state.type-enum';
|
|
7
10
|
export { DyNTS_AccountRefreshTokenRecord_Interface } from './_models/account-refresh-token-record.interface';
|
|
@@ -21,4 +24,5 @@ export { DyNTS_AccountSessionTokenPair_Interface } from './_models/account-sessi
|
|
|
21
24
|
export { DyNTS_AccountSessionView_Interface } from './_models/account-session-view.interface';
|
|
22
25
|
export { DyNTS_AccountPasswordPolicy_Interface } from './_models/account-password-policy.interface';
|
|
23
26
|
export { DyNTS_AccountPasswordVerification_Interface } from './_models/account-password-verification.interface';
|
|
27
|
+
export { DyNTS_AccountChallengeRetentionCandidate_Interface, DyNTS_AccountRefreshTokenRetentionCandidate_Interface, DyNTS_AccountSecurityRetentionCandidate_Type, DyNTS_AccountSecurityRetentionDecision_Interface, DyNTS_AccountSecurityRetentionPolicy_Interface, DyNTS_AccountSessionRetentionCandidate_Interface } from './_models/account-security-retention.interface';
|
|
24
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/account-security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACL,yCAAyC,EAC1C,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,wCAAwC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,EACL,qCAAqC,EACtC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,uCAAuC,EAAE,MAAM,gDAAgD,CAAC;AACzG,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EACL,qCAAqC,EACtC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,2CAA2C,EAC5C,MAAM,mDAAmD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/account-security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EACL,6CAA6C,EAC9C,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EACL,2CAA2C,EAC5C,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,yCAAyC,EAC1C,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACL,yCAAyC,EAC1C,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,wCAAwC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,EACL,qCAAqC,EACtC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,uCAAuC,EAAE,MAAM,gDAAgD,CAAC;AACzG,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EACL,qCAAqC,EACtC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,2CAA2C,EAC5C,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,kDAAkD,EAClD,qDAAqD,EACrD,4CAA4C,EAC5C,gDAAgD,EAChD,8CAA8C,EAC9C,gDAAgD,EACjD,MAAM,gDAAgD,CAAC"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DyNTS_AccountSessionState_Type = exports.DyNTS_AccountRefreshTokenState_Type = exports.DyNTS_AccountChallengePurpose_Type = exports.DyNTS_AccountSession_ControlService = exports.DyNTS_AccountChallenge_ControlService = exports.DyNTS_AccountPassword_ControlService = void 0;
|
|
3
|
+
exports.DyNTS_AccountSessionState_Type = exports.DyNTS_AccountRefreshTokenState_Type = exports.DyNTS_AccountSecurityRetentionReason_Type = exports.DyNTS_AccountSecurityRetentionCategory_Type = exports.DyNTS_AccountChallengePurpose_Type = exports.DyNTS_AccountSecurityRetention_ControlService = exports.DyNTS_AccountSession_ControlService = exports.DyNTS_AccountChallenge_ControlService = exports.DyNTS_AccountPassword_ControlService = void 0;
|
|
4
4
|
var account_password_control_service_1 = require("./account-password.control-service");
|
|
5
5
|
Object.defineProperty(exports, "DyNTS_AccountPassword_ControlService", { enumerable: true, get: function () { return account_password_control_service_1.DyNTS_AccountPassword_ControlService; } });
|
|
6
6
|
var account_challenge_control_service_1 = require("./account-challenge.control-service");
|
|
7
7
|
Object.defineProperty(exports, "DyNTS_AccountChallenge_ControlService", { enumerable: true, get: function () { return account_challenge_control_service_1.DyNTS_AccountChallenge_ControlService; } });
|
|
8
8
|
var account_session_control_service_1 = require("./account-session.control-service");
|
|
9
9
|
Object.defineProperty(exports, "DyNTS_AccountSession_ControlService", { enumerable: true, get: function () { return account_session_control_service_1.DyNTS_AccountSession_ControlService; } });
|
|
10
|
+
var account_security_retention_control_service_1 = require("./account-security-retention.control-service");
|
|
11
|
+
Object.defineProperty(exports, "DyNTS_AccountSecurityRetention_ControlService", { enumerable: true, get: function () { return account_security_retention_control_service_1.DyNTS_AccountSecurityRetention_ControlService; } });
|
|
10
12
|
var account_challenge_purpose_type_enum_1 = require("./_enums/account-challenge-purpose.type-enum");
|
|
11
13
|
Object.defineProperty(exports, "DyNTS_AccountChallengePurpose_Type", { enumerable: true, get: function () { return account_challenge_purpose_type_enum_1.DyNTS_AccountChallengePurpose_Type; } });
|
|
14
|
+
var account_security_retention_category_type_enum_1 = require("./_enums/account-security-retention-category.type-enum");
|
|
15
|
+
Object.defineProperty(exports, "DyNTS_AccountSecurityRetentionCategory_Type", { enumerable: true, get: function () { return account_security_retention_category_type_enum_1.DyNTS_AccountSecurityRetentionCategory_Type; } });
|
|
16
|
+
var account_security_retention_reason_type_enum_1 = require("./_enums/account-security-retention-reason.type-enum");
|
|
17
|
+
Object.defineProperty(exports, "DyNTS_AccountSecurityRetentionReason_Type", { enumerable: true, get: function () { return account_security_retention_reason_type_enum_1.DyNTS_AccountSecurityRetentionReason_Type; } });
|
|
12
18
|
var account_refresh_token_state_type_enum_1 = require("./_enums/account-refresh-token-state.type-enum");
|
|
13
19
|
Object.defineProperty(exports, "DyNTS_AccountRefreshTokenState_Type", { enumerable: true, get: function () { return account_refresh_token_state_type_enum_1.DyNTS_AccountRefreshTokenState_Type; } });
|
|
14
20
|
var account_session_state_type_enum_1 = require("./_enums/account-session-state.type-enum");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/account-security/index.ts"],"names":[],"mappings":";;;AAAA,uFAA0F;AAAjF,wJAAA,oCAAoC,OAAA;AAC7C,yFAA4F;AAAnF,0JAAA,qCAAqC,OAAA;AAC9C,qFAAwF;AAA/E,sJAAA,mCAAmC,OAAA;AAC5C,oGAAkG;AAAzF,yJAAA,kCAAkC,OAAA;AAC3C,wGAAqG;AAA5F,4JAAA,mCAAmC,OAAA;AAC5C,4FAA0F;AAAjF,iJAAA,8BAA8B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/account-security/index.ts"],"names":[],"mappings":";;;AAAA,uFAA0F;AAAjF,wJAAA,oCAAoC,OAAA;AAC7C,yFAA4F;AAAnF,0JAAA,qCAAqC,OAAA;AAC9C,qFAAwF;AAA/E,sJAAA,mCAAmC,OAAA;AAC5C,2GAEsD;AADpD,2KAAA,6CAA6C,OAAA;AAE/C,oGAAkG;AAAzF,yJAAA,kCAAkC,OAAA;AAC3C,wHAEgE;AAD9D,4KAAA,2CAA2C,OAAA;AAE7C,oHAE8D;AAD5D,wKAAA,yCAAyC,OAAA;AAE3C,wGAAqG;AAA5F,4JAAA,mCAAmC,OAAA;AAC5C,4FAA0F;AAAjF,iJAAA,8BAA8B,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.226",
|
|
4
4
|
"description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "server-package",
|