@silexpert/core 2.0.112 → 2.0.114

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 (102) hide show
  1. package/dist/api/resources/Authenticate.d.ts +6 -2
  2. package/dist/api/resources/Authenticate.d.ts.map +1 -1
  3. package/dist/api/resources/Authenticate.js +4 -0
  4. package/dist/api/resources/Authenticate.js.map +1 -1
  5. package/dist/api/resources/User.d.ts +1 -1
  6. package/dist/api/resources/User.d.ts.map +1 -1
  7. package/dist/api/resources/User.js.map +1 -1
  8. package/dist/api/resources.d.ts +0 -2
  9. package/dist/api/resources.d.ts.map +1 -1
  10. package/dist/api/resources.js +0 -2
  11. package/dist/api/resources.js.map +1 -1
  12. package/dist/types/Enum/ExternalAuthenticationLinkPurpose.d.ts +11 -0
  13. package/dist/types/Enum/ExternalAuthenticationLinkPurpose.d.ts.map +1 -0
  14. package/dist/types/Enum/ExternalAuthenticationLinkPurpose.js +13 -0
  15. package/dist/types/Enum/ExternalAuthenticationLinkPurpose.js.map +1 -0
  16. package/dist/types/Form/FormAuthenticate.d.ts.map +1 -1
  17. package/dist/types/Form/FormAuthenticate.js +5 -1
  18. package/dist/types/Form/FormAuthenticate.js.map +1 -1
  19. package/dist/types/Interface/api/authentification/ExchangeExternalAuthenticationLink.d.ts +5 -0
  20. package/dist/types/Interface/api/authentification/ExchangeExternalAuthenticationLink.d.ts.map +1 -0
  21. package/dist/types/Interface/api/authentification/{FinalizeMobileApprovalDto.js → ExchangeExternalAuthenticationLink.js} +20 -5
  22. package/dist/types/Interface/api/authentification/ExchangeExternalAuthenticationLink.js.map +1 -0
  23. package/dist/types/Interface/api/authentification/ForgotPassword.d.ts +1 -0
  24. package/dist/types/Interface/api/authentification/ForgotPassword.d.ts.map +1 -1
  25. package/dist/types/Interface/api/authentification/ForgotPassword.js +8 -1
  26. package/dist/types/Interface/api/authentification/ForgotPassword.js.map +1 -1
  27. package/dist/types/Interface/api/commercialManagement/Create.d.ts +6 -1
  28. package/dist/types/Interface/api/commercialManagement/Create.d.ts.map +1 -1
  29. package/dist/types/Interface/api/commercialManagement/Create.js +25 -1
  30. package/dist/types/Interface/api/commercialManagement/Create.js.map +1 -1
  31. package/dist/types/Interface/api/taxDeadline/QueryTaxDeadline.d.ts.map +1 -1
  32. package/dist/types/Interface/api/taxDeadline/QueryTaxDeadline.js +7 -1
  33. package/dist/types/Interface/api/taxDeadline/QueryTaxDeadline.js.map +1 -1
  34. package/dist/types/Interface/api/timeRecorder/CreateRecorder.d.ts +2 -2
  35. package/dist/types/Interface/api/timeRecorder/CreateRecorder.d.ts.map +1 -1
  36. package/dist/types/Interface/api/timeRecorder/CreateRecorder.js +11 -3
  37. package/dist/types/Interface/api/timeRecorder/CreateRecorder.js.map +1 -1
  38. package/dist/types/Interface/api/timeRecorder/UpdateRecorder.d.ts +2 -2
  39. package/dist/types/Interface/api/timeRecorder/UpdateRecorder.d.ts.map +1 -1
  40. package/dist/types/Interface/api/timeRecorder/UpdateRecorder.js +11 -3
  41. package/dist/types/Interface/api/timeRecorder/UpdateRecorder.js.map +1 -1
  42. package/dist/types/Interface/models/IExternalAuthenticationLink.d.ts +18 -0
  43. package/dist/types/Interface/models/IExternalAuthenticationLink.d.ts.map +1 -0
  44. package/dist/types/Interface/models/IExternalAuthenticationLink.js +2 -0
  45. package/dist/types/Interface/models/IExternalAuthenticationLink.js.map +1 -0
  46. package/dist/types/Interface/models/IUser.d.ts +0 -2
  47. package/dist/types/Interface/models/IUser.d.ts.map +1 -1
  48. package/dist/types/Interface/models/IUser.js +0 -1
  49. package/dist/types/Interface/models/IUser.js.map +1 -1
  50. package/dist/types/index.d.ts +3 -7
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/types/index.js +3 -7
  53. package/dist/types/index.js.map +1 -1
  54. package/package.json +1 -1
  55. package/ts/api/resources/Authenticate.ts +7 -1
  56. package/ts/api/resources/User.ts +1 -1
  57. package/ts/api/resources.ts +2 -2
  58. package/ts/types/Enum/ExternalAuthenticationLinkPurpose.ts +11 -0
  59. package/ts/types/Form/FormAuthenticate.ts +5 -1
  60. package/ts/types/Interface/api/authentification/ExchangeExternalAuthenticationLink.ts +19 -0
  61. package/ts/types/Interface/api/authentification/ForgotPassword.ts +6 -1
  62. package/ts/types/Interface/api/commercialManagement/Create.ts +22 -2
  63. package/ts/types/Interface/api/taxDeadline/QueryTaxDeadline.ts +7 -1
  64. package/ts/types/Interface/api/timeRecorder/CreateRecorder.ts +20 -3
  65. package/ts/types/Interface/api/timeRecorder/UpdateRecorder.ts +20 -3
  66. package/ts/types/Interface/models/IExternalAuthenticationLink.ts +18 -0
  67. package/ts/types/Interface/models/IUser.ts +1 -2
  68. package/ts/types/index.ts +9 -7
  69. package/dist/api/resources/LoginApproval.d.ts +0 -18
  70. package/dist/api/resources/LoginApproval.d.ts.map +0 -1
  71. package/dist/api/resources/LoginApproval.js +0 -16
  72. package/dist/api/resources/LoginApproval.js.map +0 -1
  73. package/dist/types/Enum/LoginApprovalStatus.d.ts +0 -14
  74. package/dist/types/Enum/LoginApprovalStatus.d.ts.map +0 -1
  75. package/dist/types/Enum/LoginApprovalStatus.js +0 -15
  76. package/dist/types/Enum/LoginApprovalStatus.js.map +0 -1
  77. package/dist/types/Enum/MfaMode.d.ts +0 -12
  78. package/dist/types/Enum/MfaMode.d.ts.map +0 -1
  79. package/dist/types/Enum/MfaMode.js +0 -13
  80. package/dist/types/Enum/MfaMode.js.map +0 -1
  81. package/dist/types/Interface/api/authentification/FinalizeMobileApprovalDto.d.ts +0 -4
  82. package/dist/types/Interface/api/authentification/FinalizeMobileApprovalDto.d.ts.map +0 -1
  83. package/dist/types/Interface/api/authentification/FinalizeMobileApprovalDto.js.map +0 -1
  84. package/dist/types/Interface/api/authentification/SetMobileApprovalDto.d.ts +0 -5
  85. package/dist/types/Interface/api/authentification/SetMobileApprovalDto.d.ts.map +0 -1
  86. package/dist/types/Interface/api/authentification/SetMobileApprovalDto.js +0 -25
  87. package/dist/types/Interface/api/authentification/SetMobileApprovalDto.js.map +0 -1
  88. package/dist/types/Interface/api/authentification/loginApproval.d.ts +0 -66
  89. package/dist/types/Interface/api/authentification/loginApproval.d.ts.map +0 -1
  90. package/dist/types/Interface/api/authentification/loginApproval.js +0 -77
  91. package/dist/types/Interface/api/authentification/loginApproval.js.map +0 -1
  92. package/dist/types/Interface/models/ILoginApproval.d.ts +0 -31
  93. package/dist/types/Interface/models/ILoginApproval.d.ts.map +0 -1
  94. package/dist/types/Interface/models/ILoginApproval.js +0 -30
  95. package/dist/types/Interface/models/ILoginApproval.js.map +0 -1
  96. package/ts/api/resources/LoginApproval.ts +0 -20
  97. package/ts/types/Enum/LoginApprovalStatus.ts +0 -13
  98. package/ts/types/Enum/MfaMode.ts +0 -11
  99. package/ts/types/Interface/api/authentification/FinalizeMobileApprovalDto.ts +0 -6
  100. package/ts/types/Interface/api/authentification/SetMobileApprovalDto.ts +0 -11
  101. package/ts/types/Interface/api/authentification/loginApproval.ts +0 -75
  102. package/ts/types/Interface/models/ILoginApproval.ts +0 -31
@@ -1,77 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { IsString } from 'class-validator';
11
- import { ApiProperty } from '@nestjs/swagger';
12
- /**
13
- * Payload de l'événement socket envoyé au mobile lors d'une demande de connexion
14
- */
15
- export class ILoginApprovalRequestEvent {
16
- /** ID unique de la demande */
17
- requestId;
18
- /** Date d'expiration */
19
- expiresAt;
20
- /** ID de l'utilisateur */
21
- userId;
22
- /** Métadonnées (IP, navigateur, localisation) */
23
- metadata;
24
- }
25
- export class IApproveOrDenyResponse {
26
- message;
27
- status;
28
- }
29
- /**
30
- * Payload de l'événement socket envoyé au Web lors d'un changement de statut
31
- */
32
- export class ILoginApprovalStatusEvent {
33
- /** ID de la demande */
34
- requestId;
35
- /** Nouveau statut */
36
- status;
37
- /** Date de la transition */
38
- timestamp;
39
- }
40
- /**
41
- * Réponse renvoyée au Web lorsque mobile MFA est requis
42
- */
43
- export class ILoginApprovalResponse {
44
- /** Indique qu'une validation mobile est nécessaire */
45
- requiresMobileApproval;
46
- /** ID de la demande pour polling/tracking */
47
- requestId;
48
- /** Date d'expiration de la demande */
49
- expiresAt;
50
- /** ID utilisateur */
51
- userId;
52
- }
53
- /**
54
- * Réponse du statut d'une demande d'approbation
55
- */
56
- export class ILoginApprovalStatusResponse {
57
- /** ID de la demande */
58
- requestId;
59
- /** Statut actuel */
60
- status;
61
- /** Date d'expiration */
62
- expiresAt;
63
- /** Token JWT si status = approved */
64
- token;
65
- }
66
- /**
67
- * DTO pour approuver/refuser une demande depuis le mobile
68
- */
69
- export class IApproveOrDenyRequest {
70
- deviceId;
71
- }
72
- __decorate([
73
- ApiProperty(),
74
- IsString(),
75
- __metadata("design:type", String)
76
- ], IApproveOrDenyRequest.prototype, "deviceId", void 0);
77
- //# sourceMappingURL=loginApproval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loginApproval.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/api/authentification/loginApproval.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACrC,8BAA8B;IAC9B,SAAS,CAAS;IAClB,wBAAwB;IACxB,SAAS,CAAO;IAChB,0BAA0B;IAC1B,MAAM,CAAS;IACf,iDAAiD;IACjD,QAAQ,CAIN;CACH;AAED,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAS;IAChB,MAAM,CAAsB;CAC7B;AAED;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,uBAAuB;IACvB,SAAS,CAAS;IAClB,qBAAqB;IACrB,MAAM,CAAsB;IAC5B,4BAA4B;IAC5B,SAAS,CAAO;CACjB;AAED;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACjC,sDAAsD;IACtD,sBAAsB,CAAO;IAC7B,6CAA6C;IAC7C,SAAS,CAAS;IAClB,sCAAsC;IACtC,SAAS,CAAO;IAChB,qBAAqB;IACrB,MAAM,CAAS;CAChB;AAED;;GAEG;AACH,MAAM,OAAO,4BAA4B;IACvC,uBAAuB;IACvB,SAAS,CAAS;IAClB,oBAAoB;IACpB,MAAM,CAAsB;IAC5B,wBAAwB;IACxB,SAAS,CAAO;IAChB,qCAAqC;IACrC,KAAK,CAAU;CAChB;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAGhC,QAAQ,CAAS;CAClB;AADC;IAFC,WAAW,EAAE;IACb,QAAQ,EAAE;;uDACM","sourcesContent":["import { LoginApprovalStatus } from '../../../Enum/LoginApprovalStatus.js';\nimport { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\n/**\n * Payload de l'événement socket envoyé au mobile lors d'une demande de connexion\n */\nexport class ILoginApprovalRequestEvent {\n /** ID unique de la demande */\n requestId: string;\n /** Date d'expiration */\n expiresAt: Date;\n /** ID de l'utilisateur */\n userId: number;\n /** Métadonnées (IP, navigateur, localisation) */\n metadata?: {\n ip?: string;\n userAgent?: string;\n location?: string;\n };\n}\n\nexport class IApproveOrDenyResponse {\n message: string;\n status: LoginApprovalStatus;\n}\n\n/**\n * Payload de l'événement socket envoyé au Web lors d'un changement de statut\n */\nexport class ILoginApprovalStatusEvent {\n /** ID de la demande */\n requestId: string;\n /** Nouveau statut */\n status: LoginApprovalStatus;\n /** Date de la transition */\n timestamp: Date;\n}\n\n/**\n * Réponse renvoyée au Web lorsque mobile MFA est requis\n */\nexport class ILoginApprovalResponse {\n /** Indique qu'une validation mobile est nécessaire */\n requiresMobileApproval: true;\n /** ID de la demande pour polling/tracking */\n requestId: string;\n /** Date d'expiration de la demande */\n expiresAt: Date;\n /** ID utilisateur */\n userId: number;\n}\n\n/**\n * Réponse du statut d'une demande d'approbation\n */\nexport class ILoginApprovalStatusResponse {\n /** ID de la demande */\n requestId: string;\n /** Statut actuel */\n status: LoginApprovalStatus;\n /** Date d'expiration */\n expiresAt: Date;\n /** Token JWT si status = approved */\n token?: string;\n}\n\n/**\n * DTO pour approuver/refuser une demande depuis le mobile\n */\nexport class IApproveOrDenyRequest {\n @ApiProperty()\n @IsString()\n deviceId: string;\n}\n"]}
@@ -1,31 +0,0 @@
1
- import { LoginApprovalStatus } from '../../Enum/LoginApprovalStatus.js';
2
- /**
3
- * Interface représentant une demande d'approbation de connexion mobile
4
- */
5
- export declare class ILoginApproval {
6
- /** Identifiant unique (UUID) */
7
- id: string;
8
- /** ID de l'utilisateur demandant la connexion */
9
- idUser: number;
10
- /** Statut actuel de la demande */
11
- status: LoginApprovalStatus;
12
- /** Date d'expiration de la demande (généralement 2-3 min après création) */
13
- expiresAt: Date;
14
- /** Date d'approbation (si status = approved) */
15
- approvedAt?: Date;
16
- /** Date de refus (si status = denied) */
17
- deniedAt?: Date;
18
- /** Device ID du mobile ayant approuvé/refusé */
19
- deviceIdUsed?: string;
20
- /** IP de la connexion Web à l'origine de la demande */
21
- ip?: string;
22
- /** User-Agent du navigateur Web */
23
- userAgent?: string;
24
- /** Métadonnées additionnelles (géoloc, risk score, etc.) */
25
- metadata?: Record<string, any>;
26
- /** Date de création */
27
- createdAt: Date;
28
- /** Date de mise à jour */
29
- updatedAt: Date;
30
- }
31
- //# sourceMappingURL=ILoginApproval.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ILoginApproval.d.ts","sourceRoot":"","sources":["../../../../ts/types/Interface/models/ILoginApproval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,qBAAa,cAAc;IACzB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,4EAA4E;IAC5E,SAAS,EAAE,IAAI,CAAC;IAChB,gDAAgD;IAChD,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,uBAAuB;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,0BAA0B;IAC1B,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Interface représentant une demande d'approbation de connexion mobile
3
- */
4
- export class ILoginApproval {
5
- /** Identifiant unique (UUID) */
6
- id;
7
- /** ID de l'utilisateur demandant la connexion */
8
- idUser;
9
- /** Statut actuel de la demande */
10
- status;
11
- /** Date d'expiration de la demande (généralement 2-3 min après création) */
12
- expiresAt;
13
- /** Date d'approbation (si status = approved) */
14
- approvedAt;
15
- /** Date de refus (si status = denied) */
16
- deniedAt;
17
- /** Device ID du mobile ayant approuvé/refusé */
18
- deviceIdUsed;
19
- /** IP de la connexion Web à l'origine de la demande */
20
- ip;
21
- /** User-Agent du navigateur Web */
22
- userAgent;
23
- /** Métadonnées additionnelles (géoloc, risk score, etc.) */
24
- metadata;
25
- /** Date de création */
26
- createdAt;
27
- /** Date de mise à jour */
28
- updatedAt;
29
- }
30
- //# sourceMappingURL=ILoginApproval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ILoginApproval.js","sourceRoot":"","sources":["../../../../ts/types/Interface/models/ILoginApproval.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,gCAAgC;IAChC,EAAE,CAAS;IACX,iDAAiD;IACjD,MAAM,CAAS;IACf,kCAAkC;IAClC,MAAM,CAAsB;IAC5B,4EAA4E;IAC5E,SAAS,CAAO;IAChB,gDAAgD;IAChD,UAAU,CAAQ;IAClB,yCAAyC;IACzC,QAAQ,CAAQ;IAChB,gDAAgD;IAChD,YAAY,CAAU;IACtB,uDAAuD;IACvD,EAAE,CAAU;IACZ,mCAAmC;IACnC,SAAS,CAAU;IACnB,4DAA4D;IAC5D,QAAQ,CAAuB;IAC/B,uBAAuB;IACvB,SAAS,CAAO;IAChB,0BAA0B;IAC1B,SAAS,CAAO;CACjB","sourcesContent":["import { LoginApprovalStatus } from '../../Enum/LoginApprovalStatus.js';\n\n/**\n * Interface représentant une demande d'approbation de connexion mobile\n */\nexport class ILoginApproval {\n /** Identifiant unique (UUID) */\n id: string;\n /** ID de l'utilisateur demandant la connexion */\n idUser: number;\n /** Statut actuel de la demande */\n status: LoginApprovalStatus;\n /** Date d'expiration de la demande (généralement 2-3 min après création) */\n expiresAt: Date;\n /** Date d'approbation (si status = approved) */\n approvedAt?: Date;\n /** Date de refus (si status = denied) */\n deniedAt?: Date;\n /** Device ID du mobile ayant approuvé/refusé */\n deviceIdUsed?: string;\n /** IP de la connexion Web à l'origine de la demande */\n ip?: string;\n /** User-Agent du navigateur Web */\n userAgent?: string;\n /** Métadonnées additionnelles (géoloc, risk score, etc.) */\n metadata?: Record<string, any>;\n /** Date de création */\n createdAt: Date;\n /** Date de mise à jour */\n updatedAt: Date;\n}\n"]}
@@ -1,20 +0,0 @@
1
- import { Resource } from '../Resource.js';
2
- import { ILoginApprovalStatusResponse } from '../../types/Interface/api/authentification/loginApproval.js';
3
-
4
- export class LoginApproval extends Resource {
5
- approve(requestId: string, deviceId: string): Promise<{ message: string; status: string }> {
6
- return this.axios.$post(`/auth/approvals/${requestId}/approve`, { deviceId });
7
- }
8
-
9
- deny(requestId: string, deviceId: string): Promise<{ message: string; status: string }> {
10
- return this.axios.$post(`/auth/approvals/${requestId}/deny`, { deviceId });
11
- }
12
-
13
- getStatus(requestId: string): Promise<ILoginApprovalStatusResponse> {
14
- return this.axios.$get(`/auth/approvals/${requestId}/status`);
15
- }
16
-
17
- cleanup(): Promise<{ deleted: number; message: string }> {
18
- return this.axios.$post('/auth/approvals/cleanup');
19
- }
20
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * Statuts possibles d'une demande d'approbation de connexion mobile
3
- */
4
- export enum LoginApprovalStatus {
5
- /** En attente de validation par le mobile */
6
- PENDING = 'pending',
7
- /** Approuvée par l'utilisateur sur son mobile */
8
- APPROVED = 'approved',
9
- /** Refusée par l'utilisateur sur son mobile */
10
- DENIED = 'denied',
11
- /** Expirée (timeout dépassé sans action) */
12
- EXPIRED = 'expired',
13
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Modes de double authentification disponibles
3
- */
4
- export enum MfaMode {
5
- /** Pas de MFA activée */
6
- NONE = 'none',
7
- /** Authentification via code TOTP (Google Authenticator, etc.) */
8
- TOTP = 'totp',
9
- /** Validation via notification sur l'application mobile */
10
- MOBILE_APPROVAL = 'mobile_approval',
11
- }
@@ -1,6 +0,0 @@
1
- import { IsString } from 'class-validator';
2
-
3
- export class FinalizeMobileApprovalDto {
4
- @IsString()
5
- requestId: string;
6
- }
@@ -1,11 +0,0 @@
1
- import { IsBoolean, IsInt } from 'class-validator';
2
- import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
3
-
4
- export class SetMobileApprovalDto {
5
- @IsInt()
6
- userId: number;
7
-
8
- @IsBoolean()
9
- @ToBoolean()
10
- enable: boolean;
11
- }
@@ -1,75 +0,0 @@
1
- import { LoginApprovalStatus } from '../../../Enum/LoginApprovalStatus.js';
2
- import { IsString } from 'class-validator';
3
- import { ApiProperty } from '@nestjs/swagger';
4
-
5
- /**
6
- * Payload de l'événement socket envoyé au mobile lors d'une demande de connexion
7
- */
8
- export class ILoginApprovalRequestEvent {
9
- /** ID unique de la demande */
10
- requestId: string;
11
- /** Date d'expiration */
12
- expiresAt: Date;
13
- /** ID de l'utilisateur */
14
- userId: number;
15
- /** Métadonnées (IP, navigateur, localisation) */
16
- metadata?: {
17
- ip?: string;
18
- userAgent?: string;
19
- location?: string;
20
- };
21
- }
22
-
23
- export class IApproveOrDenyResponse {
24
- message: string;
25
- status: LoginApprovalStatus;
26
- }
27
-
28
- /**
29
- * Payload de l'événement socket envoyé au Web lors d'un changement de statut
30
- */
31
- export class ILoginApprovalStatusEvent {
32
- /** ID de la demande */
33
- requestId: string;
34
- /** Nouveau statut */
35
- status: LoginApprovalStatus;
36
- /** Date de la transition */
37
- timestamp: Date;
38
- }
39
-
40
- /**
41
- * Réponse renvoyée au Web lorsque mobile MFA est requis
42
- */
43
- export class ILoginApprovalResponse {
44
- /** Indique qu'une validation mobile est nécessaire */
45
- requiresMobileApproval: true;
46
- /** ID de la demande pour polling/tracking */
47
- requestId: string;
48
- /** Date d'expiration de la demande */
49
- expiresAt: Date;
50
- /** ID utilisateur */
51
- userId: number;
52
- }
53
-
54
- /**
55
- * Réponse du statut d'une demande d'approbation
56
- */
57
- export class ILoginApprovalStatusResponse {
58
- /** ID de la demande */
59
- requestId: string;
60
- /** Statut actuel */
61
- status: LoginApprovalStatus;
62
- /** Date d'expiration */
63
- expiresAt: Date;
64
- /** Token JWT si status = approved */
65
- token?: string;
66
- }
67
-
68
- /**
69
- * DTO pour approuver/refuser une demande depuis le mobile
70
- */
71
- export class IApproveOrDenyRequest {
72
- @ApiProperty()
73
- @IsString()
74
- deviceId: string;
75
- }
@@ -1,31 +0,0 @@
1
- import { LoginApprovalStatus } from '../../Enum/LoginApprovalStatus.js';
2
-
3
- /**
4
- * Interface représentant une demande d'approbation de connexion mobile
5
- */
6
- export class ILoginApproval {
7
- /** Identifiant unique (UUID) */
8
- id: string;
9
- /** ID de l'utilisateur demandant la connexion */
10
- idUser: number;
11
- /** Statut actuel de la demande */
12
- status: LoginApprovalStatus;
13
- /** Date d'expiration de la demande (généralement 2-3 min après création) */
14
- expiresAt: Date;
15
- /** Date d'approbation (si status = approved) */
16
- approvedAt?: Date;
17
- /** Date de refus (si status = denied) */
18
- deniedAt?: Date;
19
- /** Device ID du mobile ayant approuvé/refusé */
20
- deviceIdUsed?: string;
21
- /** IP de la connexion Web à l'origine de la demande */
22
- ip?: string;
23
- /** User-Agent du navigateur Web */
24
- userAgent?: string;
25
- /** Métadonnées additionnelles (géoloc, risk score, etc.) */
26
- metadata?: Record<string, any>;
27
- /** Date de création */
28
- createdAt: Date;
29
- /** Date de mise à jour */
30
- updatedAt: Date;
31
- }