@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
@@ -0,0 +1,96 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.KYCService = void 0;
16
+ const crud_typeorm_1 = require("@dataui/crud-typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const typeorm_2 = require("typeorm");
20
+ const kyc_constant_1 = require("../constants/kyc.constant");
21
+ const kyc_profile_entity_1 = require("../entities/kyc-profile.entity");
22
+ let KYCService = class KYCService extends crud_typeorm_1.TypeOrmCrudService {
23
+ repo;
24
+ constructor(repo) {
25
+ super(repo);
26
+ this.repo = repo;
27
+ }
28
+ async findByUserId(userId) {
29
+ return this.repo.findOne({
30
+ where: { userId },
31
+ });
32
+ }
33
+ async createOrUpdateProfile(userId, data) {
34
+ const existing = await this.findByUserId(userId);
35
+ if (existing) {
36
+ Object.assign(existing, data);
37
+ return this.repo.save(existing);
38
+ }
39
+ const profile = this.repo.create({
40
+ userId,
41
+ ...data,
42
+ });
43
+ return this.repo.save(profile);
44
+ }
45
+ async updateStatus(profileId, status, reviewedBy, notes) {
46
+ const profile = await this.repo.findOne({ where: { id: profileId } });
47
+ if (!profile) {
48
+ throw new Error(`KYC profile not found: ${profileId}`);
49
+ }
50
+ profile.status = status;
51
+ if (reviewedBy !== undefined) {
52
+ profile.reviewedBy = reviewedBy;
53
+ }
54
+ if (notes !== undefined) {
55
+ profile.reviewNotes = notes;
56
+ }
57
+ const now = new Date();
58
+ if (status === kyc_constant_1.KYC_STATUS.SUBMITTED) {
59
+ profile.submittedAt = now;
60
+ }
61
+ else if (status === kyc_constant_1.KYC_STATUS.UNDER_REVIEW) {
62
+ profile.reviewedAt = now;
63
+ }
64
+ else if (status === kyc_constant_1.KYC_STATUS.APPROVED) {
65
+ profile.approvedAt = now;
66
+ profile.verificationLevel = kyc_constant_1.KYC_VERIFICATION_LEVEL.FULL;
67
+ }
68
+ else if (status === kyc_constant_1.KYC_STATUS.REJECTED) {
69
+ profile.rejectedAt = now;
70
+ }
71
+ return this.repo.save(profile);
72
+ }
73
+ async updateVerificationLevel(profileId, level) {
74
+ const profile = await this.repo.findOne({ where: { id: profileId } });
75
+ if (!profile) {
76
+ throw new Error(`KYC profile not found: ${profileId}`);
77
+ }
78
+ profile.verificationLevel = level;
79
+ return this.repo.save(profile);
80
+ }
81
+ async isKYCCompleted(userId) {
82
+ const profile = await this.findByUserId(userId);
83
+ return profile?.status === kyc_constant_1.KYC_STATUS.APPROVED;
84
+ }
85
+ async getVerificationLevel(userId) {
86
+ const profile = await this.findByUserId(userId);
87
+ return profile?.verificationLevel || null;
88
+ }
89
+ };
90
+ exports.KYCService = KYCService;
91
+ exports.KYCService = KYCService = __decorate([
92
+ (0, common_1.Injectable)(),
93
+ __param(0, (0, typeorm_1.InjectRepository)(kyc_profile_entity_1.KYCProfile)),
94
+ __metadata("design:paramtypes", [typeorm_2.Repository])
95
+ ], KYCService);
96
+ //# sourceMappingURL=kyc.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kyc.service.js","sourceRoot":"","sources":["../../src/services/kyc.service.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@venturialstd/kyc",
3
+ "version": "0.0.1",
4
+ "description": "KYC (Know Your Customer) Management Module for Venturial",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "commonjs",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc -p tsconfig.json",
16
+ "prepublishOnly": "npm run build",
17
+ "release:patch": "npm run build && npm version patch --no-git-tag-version && npm publish",
18
+ "test:dev": "ts-node -r tsconfig-paths/register test/main.ts",
19
+ "test:watch": "nodemon --watch src --watch test --ext ts --exec npm run test:dev",
20
+ "migration:generate": "ts-node node_modules/.bin/typeorm migration:generate -d test/data-source.ts test/migrations/$npm_config_name",
21
+ "migration:run": "ts-node node_modules/.bin/typeorm migration:run -d test/data-source.ts",
22
+ "migration:revert": "ts-node node_modules/.bin/typeorm migration:revert -d test/data-source.ts"
23
+ },
24
+ "devDependencies": {
25
+ "@nestjs/config": "^3.0.0",
26
+ "@types/node": "^20.0.0",
27
+ "dotenv": "^17.2.3",
28
+ "nodemon": "^3.0.0",
29
+ "ts-node": "^10.9.0",
30
+ "tsconfig-paths": "^4.2.0",
31
+ "typescript": "^5.9.3"
32
+ },
33
+ "peerDependencies": {
34
+ "@nestjs/common": "^11.0.11",
35
+ "@nestjs/core": "^11.0.5",
36
+ "@nestjs/typeorm": "^10.0.0",
37
+ "@venturialstd/core": "^1.0.16",
38
+ "class-transformer": "^0.5.1",
39
+ "class-validator": "^0.14.1",
40
+ "typeorm": "^0.3.20"
41
+ }
42
+ }