@venturialstd/kyc 0.0.1

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 (54) hide show
  1. package/README.md +278 -0
  2. package/dist/constants/kyc.constant.d.ts +47 -0
  3. package/dist/constants/kyc.constant.d.ts.map +1 -0
  4. package/dist/constants/kyc.constant.js +55 -0
  5. package/dist/constants/kyc.constant.js.map +1 -0
  6. package/dist/dtos/create-kyc-profile.dto.d.ts +20 -0
  7. package/dist/dtos/create-kyc-profile.dto.d.ts.map +1 -0
  8. package/dist/dtos/create-kyc-profile.dto.js +113 -0
  9. package/dist/dtos/create-kyc-profile.dto.js.map +1 -0
  10. package/dist/dtos/update-kyc-profile.dto.d.ts +6 -0
  11. package/dist/dtos/update-kyc-profile.dto.d.ts.map +1 -0
  12. package/dist/dtos/update-kyc-profile.dto.js +9 -0
  13. package/dist/dtos/update-kyc-profile.dto.js.map +1 -0
  14. package/dist/entities/kyc-document.entity.d.ts +26 -0
  15. package/dist/entities/kyc-document.entity.d.ts.map +1 -0
  16. package/dist/entities/kyc-document.entity.js +177 -0
  17. package/dist/entities/kyc-document.entity.js.map +1 -0
  18. package/dist/entities/kyc-profile.entity.d.ts +31 -0
  19. package/dist/entities/kyc-profile.entity.d.ts.map +1 -0
  20. package/dist/entities/kyc-profile.entity.js +213 -0
  21. package/dist/entities/kyc-profile.entity.js.map +1 -0
  22. package/dist/entities/kyc-verification.entity.d.ts +21 -0
  23. package/dist/entities/kyc-verification.entity.d.ts.map +1 -0
  24. package/dist/entities/kyc-verification.entity.js +135 -0
  25. package/dist/entities/kyc-verification.entity.js.map +1 -0
  26. package/dist/index.d.ts +12 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +28 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/interfaces/kyc-provider.interface.d.ts +98 -0
  31. package/dist/interfaces/kyc-provider.interface.d.ts.map +1 -0
  32. package/dist/interfaces/kyc-provider.interface.js +12 -0
  33. package/dist/interfaces/kyc-provider.interface.js.map +1 -0
  34. package/dist/kyc.module.d.ts +12 -0
  35. package/dist/kyc.module.d.ts.map +1 -0
  36. package/dist/kyc.module.js +65 -0
  37. package/dist/kyc.module.js.map +1 -0
  38. package/dist/providers/aiprise.provider.d.ts +9 -0
  39. package/dist/providers/aiprise.provider.d.ts.map +1 -0
  40. package/dist/providers/aiprise.provider.js +73 -0
  41. package/dist/providers/aiprise.provider.js.map +1 -0
  42. package/dist/providers/index.d.ts +2 -0
  43. package/dist/providers/index.d.ts.map +1 -0
  44. package/dist/providers/index.js +18 -0
  45. package/dist/providers/index.js.map +1 -0
  46. package/dist/services/kyc-provider.service.d.ts +18 -0
  47. package/dist/services/kyc-provider.service.d.ts.map +1 -0
  48. package/dist/services/kyc-provider.service.js +179 -0
  49. package/dist/services/kyc-provider.service.js.map +1 -0
  50. package/dist/services/kyc.service.d.ts +15 -0
  51. package/dist/services/kyc.service.d.ts.map +1 -0
  52. package/dist/services/kyc.service.js +96 -0
  53. package/dist/services/kyc.service.js.map +1 -0
  54. package/package.json +42 -0
package/README.md ADDED
@@ -0,0 +1,278 @@
1
+ # @venturialstd/kyc
2
+
3
+ KYC (Know Your Customer) Management Module for Venturial
4
+
5
+ ## Overview
6
+
7
+ This module provides comprehensive KYC (Know Your Customer) functionality for managing user verification, document uploads, and compliance tracking in fintech applications.
8
+
9
+ ## Features
10
+
11
+ - **KYC Profile Management**: Track user verification status and personal information
12
+ - **Document Management**: Upload and verify identity documents
13
+ - **Verification Tracking**: Monitor individual verification steps and checks
14
+ - **Multiple Verification Levels**: Support for basic, intermediate, advanced, and full verification
15
+ - **Status Management**: Track KYC status from pending to approved/rejected
16
+ - **Provider Integration**: Support for external KYC providers (AIPRISE, JUMIO, ONFIDO, etc.)
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @venturialstd/kyc
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ### Module Setup
27
+
28
+ ```typescript
29
+ import { KYCModule } from '@venturialstd/kyc';
30
+
31
+ @Module({
32
+ imports: [KYCModule.forRoot()],
33
+ })
34
+ export class AppModule {}
35
+ ```
36
+
37
+ ### Basic Usage
38
+
39
+ ```typescript
40
+ import { KYCService, KYC_STATUS } from '@venturialstd/kyc';
41
+
42
+ @Injectable()
43
+ export class MyService {
44
+ constructor(private readonly kycService: KYCService) {}
45
+
46
+ async checkUserKYC(userId: string) {
47
+ const isCompleted = await this.kycService.isKYCCompleted(userId);
48
+ return isCompleted;
49
+ }
50
+
51
+ async updateKYCStatus(profileId: string, status: KYC_STATUS) {
52
+ return this.kycService.updateStatus(profileId, status);
53
+ }
54
+ }
55
+ ```
56
+
57
+ ## Entities
58
+
59
+ ### KYCProfile
60
+
61
+ Main entity that tracks KYC verification for a user.
62
+
63
+ **Key Fields:**
64
+ - `userId`: Reference to the user
65
+ - `status`: Current KYC status (PENDING, APPROVED, REJECTED, etc.)
66
+ - `verificationLevel`: Level of verification (NONE, BASIC, INTERMEDIATE, ADVANCED, FULL)
67
+ - Personal information (firstName, lastName, dateOfBirth, etc.)
68
+ - Address information (addressLine1, city, country, etc.)
69
+
70
+ ### KYCDocument
71
+
72
+ Stores uploaded documents for KYC verification.
73
+
74
+ **Key Fields:**
75
+ - `kycProfileId`: Reference to KYC profile
76
+ - `documentType`: Type of document (PASSPORT, DRIVER_LICENSE, etc.)
77
+ - `side`: Document side (FRONT, BACK, BOTH)
78
+ - `status`: Document verification status
79
+ - `fileUrl`: URL to stored document file
80
+
81
+ ### KYCVerification
82
+
83
+ Tracks individual verification steps/checks within the KYC process.
84
+
85
+ **Key Fields:**
86
+ - `kycProfileId`: Reference to KYC profile
87
+ - `verificationType`: Type of verification (IDENTITY, ADDRESS, DOCUMENT, etc.)
88
+ - `status`: Verification status
89
+ - `provider`: External KYC provider name
90
+ - `confidenceScore`: Confidence score (0-100)
91
+
92
+ ## Constants
93
+
94
+ ### KYC_STATUS
95
+
96
+ ```typescript
97
+ enum KYC_STATUS {
98
+ PENDING = 'PENDING',
99
+ IN_PROGRESS = 'IN_PROGRESS',
100
+ SUBMITTED = 'SUBMITTED',
101
+ UNDER_REVIEW = 'UNDER_REVIEW',
102
+ APPROVED = 'APPROVED',
103
+ REJECTED = 'REJECTED',
104
+ EXPIRED = 'EXPIRED',
105
+ REQUIRES_UPDATE = 'REQUIRES_UPDATE',
106
+ }
107
+ ```
108
+
109
+ ### KYC_VERIFICATION_LEVEL
110
+
111
+ ```typescript
112
+ enum KYC_VERIFICATION_LEVEL {
113
+ NONE = 'NONE',
114
+ BASIC = 'BASIC',
115
+ INTERMEDIATE = 'INTERMEDIATE',
116
+ ADVANCED = 'ADVANCED',
117
+ FULL = 'FULL',
118
+ }
119
+ ```
120
+
121
+ ### KYC_DOCUMENT_TYPE
122
+
123
+ ```typescript
124
+ enum KYC_DOCUMENT_TYPE {
125
+ PASSPORT = 'PASSPORT',
126
+ DRIVER_LICENSE = 'DRIVER_LICENSE',
127
+ NATIONAL_ID = 'NATIONAL_ID',
128
+ // ... and more
129
+ }
130
+ ```
131
+
132
+ ## Services
133
+
134
+ ### KYCService
135
+
136
+ Main service for managing KYC profiles.
137
+
138
+ **Methods:**
139
+ - `findByUserId(userId: string)`: Get KYC profile by user ID
140
+ - `createOrUpdateProfile(userId: string, data: Partial<KYCProfile>)`: Create or update profile
141
+ - `updateStatus(profileId: string, status: KYC_STATUS, reviewedBy?: string)`: Update KYC status
142
+ - `updateVerificationLevel(profileId: string, level: KYC_VERIFICATION_LEVEL)`: Update verification level
143
+ - `isKYCCompleted(userId: string)`: Check if user has completed KYC
144
+ - `getVerificationLevel(userId: string)`: Get user's verification level
145
+
146
+ ### KYCProviderService
147
+
148
+ Service for managing external KYC provider integrations.
149
+
150
+ **Methods:**
151
+ - `registerProvider(provider: KYCProvider)`: Register a custom KYC provider
152
+ - `getProvider(name: string)`: Get a registered provider
153
+ - `createVerification(userId: string, providerName: string, userData)`: Create verification with provider
154
+ - `syncVerificationResult(providerName: string, sessionId: string)`: Sync provider result to KYC entities
155
+ - `handleProviderWebhook(providerName: string, payload: unknown)`: Handle webhook from provider
156
+
157
+ ## External Provider Integration
158
+
159
+ The module supports integration with external KYC providers (AIPRISE, JUMIO, ONFIDO, etc.) through a provider interface.
160
+
161
+ ### Using Default Providers
162
+
163
+ ```typescript
164
+ import { KYCModule, KYCProviderService } from '@venturialstd/kyc';
165
+
166
+ @Module({
167
+ imports: [KYCModule.forRoot()], // AIPRISE provider registered by default
168
+ })
169
+ export class AppModule {}
170
+ ```
171
+
172
+ ### Using Custom Providers
173
+
174
+ ```typescript
175
+ import { Injectable } from '@nestjs/common';
176
+ import {
177
+ KYCModule,
178
+ KYCProvider,
179
+ ProviderDocumentData,
180
+ ProviderUserData,
181
+ } from '@venturialstd/kyc';
182
+
183
+ @Injectable()
184
+ class MyCustomProvider implements KYCProvider {
185
+ readonly name = 'MY_PROVIDER';
186
+
187
+ async createVerificationSession(userId: string, userData: ProviderUserData) {
188
+ // Your implementation
189
+ }
190
+
191
+ async getVerificationStatus(sessionId: string) {
192
+ // Your implementation
193
+ }
194
+
195
+ async handleWebhook(payload: unknown) {
196
+ // Your implementation
197
+ }
198
+
199
+ async uploadDocument(sessionId: string, documentData: ProviderDocumentData) {
200
+ // Your implementation
201
+ }
202
+ }
203
+
204
+ @Module({
205
+ imports: [
206
+ KYCModule.forRoot({
207
+ providers: [MyCustomProvider], // Pass the class, not an instance
208
+ registerDefaultProviders: false, // Disable default providers
209
+ }),
210
+ ],
211
+ })
212
+ export class AppModule {}
213
+ ```
214
+
215
+ ### Creating Verification with Provider
216
+
217
+ ```typescript
218
+ import { Injectable } from '@nestjs/common';
219
+ import { KYCProviderService } from '@venturialstd/kyc';
220
+
221
+ @Injectable()
222
+ export class VerificationService {
223
+ constructor(private readonly kycProviderService: KYCProviderService) {}
224
+
225
+ async startKYCVerification(userId: string) {
226
+ const session = await this.kycProviderService.createVerification(
227
+ userId,
228
+ 'AIPRISE', // Provider name
229
+ {
230
+ firstName: 'John',
231
+ lastName: 'Doe',
232
+ email: 'john@example.com',
233
+ },
234
+ );
235
+
236
+ // Redirect user to session.redirectUrl or embed session.widgetConfig
237
+ return session;
238
+ }
239
+
240
+ async handleWebhook(providerName: string, payload: unknown) {
241
+ return this.kycProviderService.handleProviderWebhook(providerName, payload);
242
+ }
243
+ }
244
+ ```
245
+
246
+ ### Webhook Endpoint Example
247
+
248
+ ```typescript
249
+ import { Controller, Post, Body, Param } from '@nestjs/common';
250
+ import { KYCProviderService } from '@venturialstd/kyc';
251
+
252
+ @Controller('webhooks/kyc')
253
+ export class KYCWebhookController {
254
+ constructor(private readonly kycProviderService: KYCProviderService) {}
255
+
256
+ @Post(':provider')
257
+ async handleWebhook(
258
+ @Param('provider') provider: string,
259
+ @Body() payload: unknown,
260
+ ) {
261
+ return this.kycProviderService.handleProviderWebhook(provider, payload);
262
+ }
263
+ }
264
+ ```
265
+
266
+ ## DTOs
267
+
268
+ ### CreateKYCProfileDto
269
+
270
+ DTO for creating a new KYC profile.
271
+
272
+ ### UpdateKYCProfileDto
273
+
274
+ DTO for updating an existing KYC profile (extends PartialType of CreateKYCProfileDto).
275
+
276
+ ## License
277
+
278
+ MIT
@@ -0,0 +1,47 @@
1
+ export declare enum KYC_STATUS {
2
+ PENDING = "PENDING",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ SUBMITTED = "SUBMITTED",
5
+ UNDER_REVIEW = "UNDER_REVIEW",
6
+ APPROVED = "APPROVED",
7
+ REJECTED = "REJECTED",
8
+ EXPIRED = "EXPIRED",
9
+ REQUIRES_UPDATE = "REQUIRES_UPDATE"
10
+ }
11
+ export declare enum KYC_VERIFICATION_LEVEL {
12
+ NONE = "NONE",
13
+ BASIC = "BASIC",
14
+ INTERMEDIATE = "INTERMEDIATE",
15
+ ADVANCED = "ADVANCED",
16
+ FULL = "FULL"
17
+ }
18
+ export declare enum KYC_DOCUMENT_TYPE {
19
+ PASSPORT = "PASSPORT",
20
+ DRIVER_LICENSE = "DRIVER_LICENSE",
21
+ NATIONAL_ID = "NATIONAL_ID",
22
+ ID_CARD = "ID_CARD",
23
+ DNI = "DNI",
24
+ CURP = "CURP",
25
+ CPF = "CPF",
26
+ RFC = "RFC",
27
+ SSN = "SSN",
28
+ INE = "INE",
29
+ NUIP = "NUIP"
30
+ }
31
+ export declare enum KYC_DOCUMENT_STATUS {
32
+ PENDING = "PENDING",
33
+ UPLOADED = "UPLOADED",
34
+ VERIFYING = "VERIFYING",
35
+ VERIFIED = "VERIFIED",
36
+ REJECTED = "REJECTED",
37
+ EXPIRED = "EXPIRED"
38
+ }
39
+ export declare enum KYC_DOCUMENT_SIDE {
40
+ FRONT = "FRONT",
41
+ BACK = "BACK",
42
+ BOTH = "BOTH"
43
+ }
44
+ export declare const DEFAULT_KYC_STATUSES: KYC_STATUS[];
45
+ export declare const DEFAULT_KYC_VERIFICATION_LEVELS: KYC_VERIFICATION_LEVEL[];
46
+ export declare const DEFAULT_KYC_DOCUMENT_TYPES: KYC_DOCUMENT_TYPE[];
47
+ //# sourceMappingURL=kyc.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc.constant.d.ts","sourceRoot":"","sources":["../../src/constants/kyc.constant.ts"],"names":[],"mappings":"AAIA,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,eAAe,oBAAoB;CACpC;AAMD,oBAAY,sBAAsB;IAChC,IAAI,SAAS;IACb,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAMD,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAMD,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAMD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAKD,eAAO,MAAM,oBAAoB,cAA4B,CAAC;AAK9D,eAAO,MAAM,+BAA+B,0BAAwC,CAAC;AAKrF,eAAO,MAAM,0BAA0B,qBAAmC,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_KYC_DOCUMENT_TYPES = exports.DEFAULT_KYC_VERIFICATION_LEVELS = exports.DEFAULT_KYC_STATUSES = exports.KYC_DOCUMENT_SIDE = exports.KYC_DOCUMENT_STATUS = exports.KYC_DOCUMENT_TYPE = exports.KYC_VERIFICATION_LEVEL = exports.KYC_STATUS = void 0;
4
+ var KYC_STATUS;
5
+ (function (KYC_STATUS) {
6
+ KYC_STATUS["PENDING"] = "PENDING";
7
+ KYC_STATUS["IN_PROGRESS"] = "IN_PROGRESS";
8
+ KYC_STATUS["SUBMITTED"] = "SUBMITTED";
9
+ KYC_STATUS["UNDER_REVIEW"] = "UNDER_REVIEW";
10
+ KYC_STATUS["APPROVED"] = "APPROVED";
11
+ KYC_STATUS["REJECTED"] = "REJECTED";
12
+ KYC_STATUS["EXPIRED"] = "EXPIRED";
13
+ KYC_STATUS["REQUIRES_UPDATE"] = "REQUIRES_UPDATE";
14
+ })(KYC_STATUS || (exports.KYC_STATUS = KYC_STATUS = {}));
15
+ var KYC_VERIFICATION_LEVEL;
16
+ (function (KYC_VERIFICATION_LEVEL) {
17
+ KYC_VERIFICATION_LEVEL["NONE"] = "NONE";
18
+ KYC_VERIFICATION_LEVEL["BASIC"] = "BASIC";
19
+ KYC_VERIFICATION_LEVEL["INTERMEDIATE"] = "INTERMEDIATE";
20
+ KYC_VERIFICATION_LEVEL["ADVANCED"] = "ADVANCED";
21
+ KYC_VERIFICATION_LEVEL["FULL"] = "FULL";
22
+ })(KYC_VERIFICATION_LEVEL || (exports.KYC_VERIFICATION_LEVEL = KYC_VERIFICATION_LEVEL = {}));
23
+ var KYC_DOCUMENT_TYPE;
24
+ (function (KYC_DOCUMENT_TYPE) {
25
+ KYC_DOCUMENT_TYPE["PASSPORT"] = "PASSPORT";
26
+ KYC_DOCUMENT_TYPE["DRIVER_LICENSE"] = "DRIVER_LICENSE";
27
+ KYC_DOCUMENT_TYPE["NATIONAL_ID"] = "NATIONAL_ID";
28
+ KYC_DOCUMENT_TYPE["ID_CARD"] = "ID_CARD";
29
+ KYC_DOCUMENT_TYPE["DNI"] = "DNI";
30
+ KYC_DOCUMENT_TYPE["CURP"] = "CURP";
31
+ KYC_DOCUMENT_TYPE["CPF"] = "CPF";
32
+ KYC_DOCUMENT_TYPE["RFC"] = "RFC";
33
+ KYC_DOCUMENT_TYPE["SSN"] = "SSN";
34
+ KYC_DOCUMENT_TYPE["INE"] = "INE";
35
+ KYC_DOCUMENT_TYPE["NUIP"] = "NUIP";
36
+ })(KYC_DOCUMENT_TYPE || (exports.KYC_DOCUMENT_TYPE = KYC_DOCUMENT_TYPE = {}));
37
+ var KYC_DOCUMENT_STATUS;
38
+ (function (KYC_DOCUMENT_STATUS) {
39
+ KYC_DOCUMENT_STATUS["PENDING"] = "PENDING";
40
+ KYC_DOCUMENT_STATUS["UPLOADED"] = "UPLOADED";
41
+ KYC_DOCUMENT_STATUS["VERIFYING"] = "VERIFYING";
42
+ KYC_DOCUMENT_STATUS["VERIFIED"] = "VERIFIED";
43
+ KYC_DOCUMENT_STATUS["REJECTED"] = "REJECTED";
44
+ KYC_DOCUMENT_STATUS["EXPIRED"] = "EXPIRED";
45
+ })(KYC_DOCUMENT_STATUS || (exports.KYC_DOCUMENT_STATUS = KYC_DOCUMENT_STATUS = {}));
46
+ var KYC_DOCUMENT_SIDE;
47
+ (function (KYC_DOCUMENT_SIDE) {
48
+ KYC_DOCUMENT_SIDE["FRONT"] = "FRONT";
49
+ KYC_DOCUMENT_SIDE["BACK"] = "BACK";
50
+ KYC_DOCUMENT_SIDE["BOTH"] = "BOTH";
51
+ })(KYC_DOCUMENT_SIDE || (exports.KYC_DOCUMENT_SIDE = KYC_DOCUMENT_SIDE = {}));
52
+ exports.DEFAULT_KYC_STATUSES = Object.values(KYC_STATUS);
53
+ exports.DEFAULT_KYC_VERIFICATION_LEVELS = Object.values(KYC_VERIFICATION_LEVEL);
54
+ exports.DEFAULT_KYC_DOCUMENT_TYPES = Object.values(KYC_DOCUMENT_TYPE);
55
+ //# sourceMappingURL=kyc.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc.constant.js","sourceRoot":"","sources":["../../src/constants/kyc.constant.ts"],"names":[],"mappings":";;;AAIA,IAAY,UASX;AATD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,2CAA6B,CAAA;IAC7B,mCAAqB,CAAA;IACrB,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;IACnB,iDAAmC,CAAA;AACrC,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB;AAMD,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,uDAA6B,CAAA;IAC7B,+CAAqB,CAAA;IACrB,uCAAa,CAAA;AACf,CAAC,EANW,sBAAsB,sCAAtB,sBAAsB,QAMjC;AAMD,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,sDAAiC,CAAA;IACjC,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,gCAAW,CAAA;IACX,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAZW,iBAAiB,iCAAjB,iBAAiB,QAY5B;AAMD,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,4CAAqB,CAAA;IACrB,8CAAuB,CAAA;IACvB,4CAAqB,CAAA;IACrB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;AACrB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAMD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAKY,QAAA,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAKjD,QAAA,+BAA+B,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAKxE,QAAA,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { KYC_STATUS, KYC_VERIFICATION_LEVEL } from '../constants/kyc.constant';
2
+ export declare class CreateKYCProfileDto {
3
+ userId: string;
4
+ status?: KYC_STATUS;
5
+ verificationLevel?: KYC_VERIFICATION_LEVEL;
6
+ firstName?: string;
7
+ lastName?: string;
8
+ dateOfBirth?: string;
9
+ nationality?: string;
10
+ occupation?: string;
11
+ sourceOfFunds?: string;
12
+ addressLine1?: string;
13
+ addressLine2?: string;
14
+ city?: string;
15
+ state?: string;
16
+ postalCode?: string;
17
+ country?: string;
18
+ residenceType?: string;
19
+ }
20
+ //# sourceMappingURL=create-kyc-profile.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-kyc-profile.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-kyc-profile.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,qBAAa,mBAAmB;IAE9B,MAAM,EAAE,MAAM,CAAC;IAIf,MAAM,CAAC,EAAE,UAAU,CAAC;IAIpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAK3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateKYCProfileDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const kyc_constant_1 = require("../constants/kyc.constant");
15
+ class CreateKYCProfileDto {
16
+ userId;
17
+ status;
18
+ verificationLevel;
19
+ firstName;
20
+ lastName;
21
+ dateOfBirth;
22
+ nationality;
23
+ occupation;
24
+ sourceOfFunds;
25
+ addressLine1;
26
+ addressLine2;
27
+ city;
28
+ state;
29
+ postalCode;
30
+ country;
31
+ residenceType;
32
+ }
33
+ exports.CreateKYCProfileDto = CreateKYCProfileDto;
34
+ __decorate([
35
+ (0, class_validator_1.IsString)(),
36
+ __metadata("design:type", String)
37
+ ], CreateKYCProfileDto.prototype, "userId", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsEnum)(kyc_constant_1.KYC_STATUS),
40
+ (0, class_validator_1.IsOptional)(),
41
+ __metadata("design:type", String)
42
+ ], CreateKYCProfileDto.prototype, "status", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsEnum)(kyc_constant_1.KYC_VERIFICATION_LEVEL),
45
+ (0, class_validator_1.IsOptional)(),
46
+ __metadata("design:type", String)
47
+ ], CreateKYCProfileDto.prototype, "verificationLevel", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsString)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ __metadata("design:type", String)
52
+ ], CreateKYCProfileDto.prototype, "firstName", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.IsOptional)(),
56
+ __metadata("design:type", String)
57
+ ], CreateKYCProfileDto.prototype, "lastName", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsString)(),
60
+ (0, class_validator_1.IsOptional)(),
61
+ __metadata("design:type", String)
62
+ ], CreateKYCProfileDto.prototype, "dateOfBirth", void 0);
63
+ __decorate([
64
+ (0, class_validator_1.IsString)(),
65
+ (0, class_validator_1.IsOptional)(),
66
+ __metadata("design:type", String)
67
+ ], CreateKYCProfileDto.prototype, "nationality", void 0);
68
+ __decorate([
69
+ (0, class_validator_1.IsString)(),
70
+ (0, class_validator_1.IsOptional)(),
71
+ __metadata("design:type", String)
72
+ ], CreateKYCProfileDto.prototype, "occupation", void 0);
73
+ __decorate([
74
+ (0, class_validator_1.IsString)(),
75
+ (0, class_validator_1.IsOptional)(),
76
+ __metadata("design:type", String)
77
+ ], CreateKYCProfileDto.prototype, "sourceOfFunds", void 0);
78
+ __decorate([
79
+ (0, class_validator_1.IsString)(),
80
+ (0, class_validator_1.IsOptional)(),
81
+ __metadata("design:type", String)
82
+ ], CreateKYCProfileDto.prototype, "addressLine1", void 0);
83
+ __decorate([
84
+ (0, class_validator_1.IsString)(),
85
+ (0, class_validator_1.IsOptional)(),
86
+ __metadata("design:type", String)
87
+ ], CreateKYCProfileDto.prototype, "addressLine2", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsString)(),
90
+ (0, class_validator_1.IsOptional)(),
91
+ __metadata("design:type", String)
92
+ ], CreateKYCProfileDto.prototype, "city", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsString)(),
95
+ (0, class_validator_1.IsOptional)(),
96
+ __metadata("design:type", String)
97
+ ], CreateKYCProfileDto.prototype, "state", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsString)(),
100
+ (0, class_validator_1.IsOptional)(),
101
+ __metadata("design:type", String)
102
+ ], CreateKYCProfileDto.prototype, "postalCode", void 0);
103
+ __decorate([
104
+ (0, class_validator_1.IsString)(),
105
+ (0, class_validator_1.IsOptional)(),
106
+ __metadata("design:type", String)
107
+ ], CreateKYCProfileDto.prototype, "country", void 0);
108
+ __decorate([
109
+ (0, class_validator_1.IsString)(),
110
+ (0, class_validator_1.IsOptional)(),
111
+ __metadata("design:type", String)
112
+ ], CreateKYCProfileDto.prototype, "residenceType", void 0);
113
+ //# sourceMappingURL=create-kyc-profile.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-kyc-profile.dto.js","sourceRoot":"","sources":["../../src/dtos/create-kyc-profile.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAE/D,4DAA+E;AAE/E,MAAa,mBAAmB;IAE9B,MAAM,CAAS;IAIf,MAAM,CAAc;IAIpB,iBAAiB,CAA0B;IAK3C,SAAS,CAAU;IAInB,QAAQ,CAAU;IAIlB,WAAW,CAAU;IAIrB,WAAW,CAAU;IAIrB,UAAU,CAAU;IAIpB,aAAa,CAAU;IAKvB,YAAY,CAAU;IAItB,YAAY,CAAU;IAItB,IAAI,CAAU;IAId,KAAK,CAAU;IAIf,UAAU,CAAU;IAIpB,OAAO,CAAU;IAIjB,aAAa,CAAU;CACxB;AAjED,kDAiEC;AA/DC;IADC,IAAA,0BAAQ,GAAE;;mDACI;AAIf;IAFC,IAAA,wBAAM,EAAC,yBAAU,CAAC;IAClB,IAAA,4BAAU,GAAE;;mDACO;AAIpB;IAFC,IAAA,wBAAM,EAAC,qCAAsB,CAAC;IAC9B,IAAA,4BAAU,GAAE;;8DAC8B;AAK3C;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACM;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACK;AAIlB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACQ;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACQ;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACU;AAKvB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACS;AAItB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACS;AAItB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iDACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACE;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;oDACI;AAIjB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACU"}
@@ -0,0 +1,6 @@
1
+ import { CreateKYCProfileDto } from './create-kyc-profile.dto';
2
+ declare const UpdateKYCProfileDto_base: import("@nestjs/common").Type<Partial<CreateKYCProfileDto>>;
3
+ export declare class UpdateKYCProfileDto extends UpdateKYCProfileDto_base {
4
+ }
5
+ export {};
6
+ //# sourceMappingURL=update-kyc-profile.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-kyc-profile.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-kyc-profile.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;;AAE/D,qBAAa,mBAAoB,SAAQ,wBAAgC;CAAG"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateKYCProfileDto = void 0;
4
+ const swagger_1 = require("@nestjs/swagger");
5
+ const create_kyc_profile_dto_1 = require("./create-kyc-profile.dto");
6
+ class UpdateKYCProfileDto extends (0, swagger_1.PartialType)(create_kyc_profile_dto_1.CreateKYCProfileDto) {
7
+ }
8
+ exports.UpdateKYCProfileDto = UpdateKYCProfileDto;
9
+ //# sourceMappingURL=update-kyc-profile.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-kyc-profile.dto.js","sourceRoot":"","sources":["../../src/dtos/update-kyc-profile.dto.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAE9C,qEAA+D;AAE/D,MAAa,mBAAoB,SAAQ,IAAA,qBAAW,EAAC,4CAAmB,CAAC;CAAG;AAA5E,kDAA4E"}
@@ -0,0 +1,26 @@
1
+ import { KYC_DOCUMENT_SIDE, KYC_DOCUMENT_STATUS, KYC_DOCUMENT_TYPE } from '../constants/kyc.constant';
2
+ import { KYCProfile } from './kyc-profile.entity';
3
+ export declare class KYCDocument {
4
+ id: string;
5
+ kycProfileId: string;
6
+ kycProfile: KYCProfile;
7
+ documentType: KYC_DOCUMENT_TYPE;
8
+ side: KYC_DOCUMENT_SIDE;
9
+ status: KYC_DOCUMENT_STATUS;
10
+ documentNumber: string;
11
+ issuingCountry: string;
12
+ issueDate: string;
13
+ expiryDate: string;
14
+ fileUrl: string;
15
+ fileName: string;
16
+ fileType: string;
17
+ fileSize: number;
18
+ verifiedAt: Date;
19
+ verificationNotes: string;
20
+ rejectionReason: string;
21
+ extractedData: Record<string, unknown>;
22
+ metadata: Record<string, unknown>;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }
26
+ //# sourceMappingURL=kyc-document.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc-document.entity.d.ts","sourceRoot":"","sources":["../../src/entities/kyc-document.entity.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,qBAEa,WAAW;IAEtB,EAAE,EAAE,MAAM,CAAC;IAMX,YAAY,EAAE,MAAM,CAAC;IAIrB,UAAU,EAAE,UAAU,CAAC;IAOvB,YAAY,EAAE,iBAAiB,CAAC;IAQhC,IAAI,EAAE,iBAAiB,CAAC;IAQxB,MAAM,EAAE,mBAAmB,CAAC;IAK5B,cAAc,EAAE,MAAM,CAAC;IAKvB,cAAc,EAAE,MAAM,CAAC;IAKvB,SAAS,EAAE,MAAM,CAAC;IAKlB,UAAU,EAAE,MAAM,CAAC;IAMnB,OAAO,EAAE,MAAM,CAAC;IAKhB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAIjB,UAAU,EAAE,IAAI,CAAC;IAKjB,iBAAiB,EAAE,MAAM,CAAC;IAK1B,eAAe,EAAE,MAAM,CAAC;IAIxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQlC,SAAS,EAAE,IAAI,CAAC;IAQhB,SAAS,EAAE,IAAI,CAAC;CACjB"}