cgs-compliance-sdk 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,231 @@
1
+ import { D as DeviceFingerprintRequest, L as LocationVerification, G as GeolocationClient } from '../client-CPBy8d1H.mjs';
2
+ import { d as CustomerProfile, C as CGSConfig, R as RiskProfileClient } from '../index-CzElZ3T6.mjs';
3
+ import { c as EntityType } from '../types-mQdu71xf.mjs';
4
+
5
+ /**
6
+ * Compliance orchestration types
7
+ *
8
+ * Types for unified compliance verification flows that combine
9
+ * geolocation verification with customer risk profiling.
10
+ */
11
+
12
+ interface RegistrationVerificationRequest {
13
+ customerId: string;
14
+ fullName: string;
15
+ emailAddress: string;
16
+ phoneNumber?: string;
17
+ dateOfBirth?: string;
18
+ address?: string;
19
+ entityType?: EntityType;
20
+ ipAddress: string;
21
+ deviceFingerprint?: DeviceFingerprintRequest;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ interface RegistrationVerificationResponse {
25
+ allowed: boolean;
26
+ geolocation: LocationVerification;
27
+ profile: CustomerProfile;
28
+ requiresKYC: boolean;
29
+ requiresEDD: boolean;
30
+ blockReasons: string[];
31
+ processingTime: number;
32
+ }
33
+ interface LoginVerificationRequest {
34
+ customerId: string;
35
+ ipAddress: string;
36
+ deviceFingerprint?: DeviceFingerprintRequest;
37
+ metadata?: Record<string, unknown>;
38
+ }
39
+ interface LoginVerificationResponse {
40
+ allowed: boolean;
41
+ geolocation: LocationVerification;
42
+ profile: CustomerProfile;
43
+ requiresStepUp: boolean;
44
+ blockReasons: string[];
45
+ processingTime: number;
46
+ }
47
+ interface TransactionVerificationRequest {
48
+ customerId: string;
49
+ ipAddress: string;
50
+ amount: number;
51
+ currency: string;
52
+ transactionType?: 'deposit' | 'withdrawal' | 'bet' | 'transfer' | 'payout';
53
+ deviceFingerprint?: DeviceFingerprintRequest;
54
+ metadata?: Record<string, unknown>;
55
+ }
56
+ interface TransactionVerificationResponse {
57
+ allowed: boolean;
58
+ geolocation: LocationVerification;
59
+ profile: CustomerProfile;
60
+ transactionRisk: TransactionRiskResult;
61
+ requiresApproval: boolean;
62
+ blockReasons: string[];
63
+ processingTime: number;
64
+ }
65
+ interface TransactionRiskResult {
66
+ score: number;
67
+ level: 'low' | 'medium' | 'high' | 'critical';
68
+ factors: string[];
69
+ allowed: boolean;
70
+ requiresManualReview: boolean;
71
+ }
72
+ interface EventVerificationRequest {
73
+ customerId: string;
74
+ ipAddress: string;
75
+ eventType: string;
76
+ deviceFingerprint?: DeviceFingerprintRequest;
77
+ metadata?: Record<string, unknown>;
78
+ }
79
+ interface EventVerificationResponse {
80
+ allowed: boolean;
81
+ geolocation: LocationVerification;
82
+ blockReasons: string[];
83
+ processingTime: number;
84
+ }
85
+ interface CurrencyRates {
86
+ [currency: string]: number;
87
+ }
88
+ declare const DEFAULT_CURRENCY_RATES: CurrencyRates;
89
+
90
+ /**
91
+ * ComplianceClient - Unified Compliance Orchestration
92
+ *
93
+ * Main integration point for casino platforms. Orchestrates geolocation
94
+ * verification with customer risk profiling for complete compliance coverage.
95
+ *
96
+ * GeoComply-style approach: SDK is the primary data injection point.
97
+ */
98
+
99
+ declare class ComplianceClient {
100
+ private geoClient;
101
+ private riskClient;
102
+ private config;
103
+ private currencyRates;
104
+ constructor(config: CGSConfig);
105
+ /**
106
+ * Verify customer registration with automatic profile creation
107
+ *
108
+ * This is the primary integration point for new customer sign-ups.
109
+ * Combines geolocation verification with customer risk profile creation.
110
+ *
111
+ * @param request - Registration verification request
112
+ * @returns Verification response with profile and compliance status
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const result = await sdk.verifyAtRegistration({
117
+ * customerId: 'CUST-12345',
118
+ * fullName: 'John Doe',
119
+ * emailAddress: 'john@example.com',
120
+ * ipAddress: req.ip,
121
+ * deviceFingerprint: getDeviceFingerprint()
122
+ * });
123
+ *
124
+ * if (result.allowed) {
125
+ * // Create account
126
+ * console.log('Profile created:', result.profile);
127
+ * if (result.requiresKYC) {
128
+ * // Redirect to KYC flow
129
+ * }
130
+ * } else {
131
+ * // Block registration
132
+ * console.log('Blocked:', result.blockReasons);
133
+ * }
134
+ * ```
135
+ */
136
+ verifyAtRegistration(request: RegistrationVerificationRequest): Promise<RegistrationVerificationResponse>;
137
+ /**
138
+ * Verify customer login with profile activity update
139
+ *
140
+ * Verifies geolocation and updates customer profile with latest activity.
141
+ *
142
+ * @param request - Login verification request
143
+ * @returns Verification response with compliance status
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const result = await sdk.verifyAtLogin({
148
+ * customerId: 'CUST-12345',
149
+ * ipAddress: req.ip,
150
+ * deviceFingerprint: getDeviceFingerprint()
151
+ * });
152
+ *
153
+ * if (result.allowed) {
154
+ * // Allow login
155
+ * if (result.requiresStepUp) {
156
+ * // Trigger MFA or additional verification
157
+ * }
158
+ * } else {
159
+ * // Block login
160
+ * console.log('Blocked:', result.blockReasons);
161
+ * }
162
+ * ```
163
+ */
164
+ verifyAtLogin(request: LoginVerificationRequest): Promise<LoginVerificationResponse>;
165
+ /**
166
+ * Verify transaction with amount-based risk assessment
167
+ *
168
+ * Combines geolocation verification with transaction amount analysis
169
+ * and customer risk profile for comprehensive transaction screening.
170
+ *
171
+ * @param request - Transaction verification request
172
+ * @returns Verification response with transaction risk assessment
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const result = await sdk.verifyAtTransaction({
177
+ * customerId: 'CUST-12345',
178
+ * ipAddress: req.ip,
179
+ * amount: 5000,
180
+ * currency: 'USD',
181
+ * transactionType: 'withdrawal',
182
+ * deviceFingerprint: getDeviceFingerprint()
183
+ * });
184
+ *
185
+ * if (result.allowed) {
186
+ * // Process transaction
187
+ * } else if (result.requiresApproval) {
188
+ * // Queue for manual review
189
+ * } else {
190
+ * // Block transaction
191
+ * console.log('Blocked:', result.blockReasons);
192
+ * }
193
+ * ```
194
+ */
195
+ verifyAtTransaction(request: TransactionVerificationRequest): Promise<TransactionVerificationResponse>;
196
+ /**
197
+ * Generic event verification (for other touchpoints)
198
+ *
199
+ * @param request - Event verification request
200
+ * @returns Verification response
201
+ */
202
+ verifyEvent(request: EventVerificationRequest): Promise<EventVerificationResponse>;
203
+ private shouldUpdateProfile;
204
+ private createProfileFromGeo;
205
+ private calculateTransactionRisk;
206
+ private checkJurisdictionLimits;
207
+ private normalizeToUSD;
208
+ private getRiskLevel;
209
+ private getBlockReasons;
210
+ private getTransactionBlockReasons;
211
+ /**
212
+ * Update currency exchange rates
213
+ *
214
+ * @param rates - Currency to USD exchange rates
215
+ */
216
+ updateCurrencyRates(rates: CurrencyRates): void;
217
+ /**
218
+ * Get underlying geolocation client
219
+ */
220
+ getGeolocationClient(): GeolocationClient;
221
+ /**
222
+ * Get underlying risk profile client
223
+ */
224
+ getRiskProfileClient(): RiskProfileClient;
225
+ /**
226
+ * Update configuration
227
+ */
228
+ updateConfig(config: Partial<CGSConfig>): void;
229
+ }
230
+
231
+ export { ComplianceClient, type CurrencyRates, DEFAULT_CURRENCY_RATES, type EventVerificationRequest, type EventVerificationResponse, type LoginVerificationRequest, type LoginVerificationResponse, type RegistrationVerificationRequest, type RegistrationVerificationResponse, type TransactionRiskResult, type TransactionVerificationRequest, type TransactionVerificationResponse };
@@ -0,0 +1,231 @@
1
+ import { D as DeviceFingerprintRequest, L as LocationVerification, G as GeolocationClient } from '../client-BIRcQF2C.js';
2
+ import { d as CustomerProfile, C as CGSConfig, R as RiskProfileClient } from '../index-BQPX1yNM.js';
3
+ import { c as EntityType } from '../types-mQdu71xf.js';
4
+
5
+ /**
6
+ * Compliance orchestration types
7
+ *
8
+ * Types for unified compliance verification flows that combine
9
+ * geolocation verification with customer risk profiling.
10
+ */
11
+
12
+ interface RegistrationVerificationRequest {
13
+ customerId: string;
14
+ fullName: string;
15
+ emailAddress: string;
16
+ phoneNumber?: string;
17
+ dateOfBirth?: string;
18
+ address?: string;
19
+ entityType?: EntityType;
20
+ ipAddress: string;
21
+ deviceFingerprint?: DeviceFingerprintRequest;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ interface RegistrationVerificationResponse {
25
+ allowed: boolean;
26
+ geolocation: LocationVerification;
27
+ profile: CustomerProfile;
28
+ requiresKYC: boolean;
29
+ requiresEDD: boolean;
30
+ blockReasons: string[];
31
+ processingTime: number;
32
+ }
33
+ interface LoginVerificationRequest {
34
+ customerId: string;
35
+ ipAddress: string;
36
+ deviceFingerprint?: DeviceFingerprintRequest;
37
+ metadata?: Record<string, unknown>;
38
+ }
39
+ interface LoginVerificationResponse {
40
+ allowed: boolean;
41
+ geolocation: LocationVerification;
42
+ profile: CustomerProfile;
43
+ requiresStepUp: boolean;
44
+ blockReasons: string[];
45
+ processingTime: number;
46
+ }
47
+ interface TransactionVerificationRequest {
48
+ customerId: string;
49
+ ipAddress: string;
50
+ amount: number;
51
+ currency: string;
52
+ transactionType?: 'deposit' | 'withdrawal' | 'bet' | 'transfer' | 'payout';
53
+ deviceFingerprint?: DeviceFingerprintRequest;
54
+ metadata?: Record<string, unknown>;
55
+ }
56
+ interface TransactionVerificationResponse {
57
+ allowed: boolean;
58
+ geolocation: LocationVerification;
59
+ profile: CustomerProfile;
60
+ transactionRisk: TransactionRiskResult;
61
+ requiresApproval: boolean;
62
+ blockReasons: string[];
63
+ processingTime: number;
64
+ }
65
+ interface TransactionRiskResult {
66
+ score: number;
67
+ level: 'low' | 'medium' | 'high' | 'critical';
68
+ factors: string[];
69
+ allowed: boolean;
70
+ requiresManualReview: boolean;
71
+ }
72
+ interface EventVerificationRequest {
73
+ customerId: string;
74
+ ipAddress: string;
75
+ eventType: string;
76
+ deviceFingerprint?: DeviceFingerprintRequest;
77
+ metadata?: Record<string, unknown>;
78
+ }
79
+ interface EventVerificationResponse {
80
+ allowed: boolean;
81
+ geolocation: LocationVerification;
82
+ blockReasons: string[];
83
+ processingTime: number;
84
+ }
85
+ interface CurrencyRates {
86
+ [currency: string]: number;
87
+ }
88
+ declare const DEFAULT_CURRENCY_RATES: CurrencyRates;
89
+
90
+ /**
91
+ * ComplianceClient - Unified Compliance Orchestration
92
+ *
93
+ * Main integration point for casino platforms. Orchestrates geolocation
94
+ * verification with customer risk profiling for complete compliance coverage.
95
+ *
96
+ * GeoComply-style approach: SDK is the primary data injection point.
97
+ */
98
+
99
+ declare class ComplianceClient {
100
+ private geoClient;
101
+ private riskClient;
102
+ private config;
103
+ private currencyRates;
104
+ constructor(config: CGSConfig);
105
+ /**
106
+ * Verify customer registration with automatic profile creation
107
+ *
108
+ * This is the primary integration point for new customer sign-ups.
109
+ * Combines geolocation verification with customer risk profile creation.
110
+ *
111
+ * @param request - Registration verification request
112
+ * @returns Verification response with profile and compliance status
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const result = await sdk.verifyAtRegistration({
117
+ * customerId: 'CUST-12345',
118
+ * fullName: 'John Doe',
119
+ * emailAddress: 'john@example.com',
120
+ * ipAddress: req.ip,
121
+ * deviceFingerprint: getDeviceFingerprint()
122
+ * });
123
+ *
124
+ * if (result.allowed) {
125
+ * // Create account
126
+ * console.log('Profile created:', result.profile);
127
+ * if (result.requiresKYC) {
128
+ * // Redirect to KYC flow
129
+ * }
130
+ * } else {
131
+ * // Block registration
132
+ * console.log('Blocked:', result.blockReasons);
133
+ * }
134
+ * ```
135
+ */
136
+ verifyAtRegistration(request: RegistrationVerificationRequest): Promise<RegistrationVerificationResponse>;
137
+ /**
138
+ * Verify customer login with profile activity update
139
+ *
140
+ * Verifies geolocation and updates customer profile with latest activity.
141
+ *
142
+ * @param request - Login verification request
143
+ * @returns Verification response with compliance status
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const result = await sdk.verifyAtLogin({
148
+ * customerId: 'CUST-12345',
149
+ * ipAddress: req.ip,
150
+ * deviceFingerprint: getDeviceFingerprint()
151
+ * });
152
+ *
153
+ * if (result.allowed) {
154
+ * // Allow login
155
+ * if (result.requiresStepUp) {
156
+ * // Trigger MFA or additional verification
157
+ * }
158
+ * } else {
159
+ * // Block login
160
+ * console.log('Blocked:', result.blockReasons);
161
+ * }
162
+ * ```
163
+ */
164
+ verifyAtLogin(request: LoginVerificationRequest): Promise<LoginVerificationResponse>;
165
+ /**
166
+ * Verify transaction with amount-based risk assessment
167
+ *
168
+ * Combines geolocation verification with transaction amount analysis
169
+ * and customer risk profile for comprehensive transaction screening.
170
+ *
171
+ * @param request - Transaction verification request
172
+ * @returns Verification response with transaction risk assessment
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const result = await sdk.verifyAtTransaction({
177
+ * customerId: 'CUST-12345',
178
+ * ipAddress: req.ip,
179
+ * amount: 5000,
180
+ * currency: 'USD',
181
+ * transactionType: 'withdrawal',
182
+ * deviceFingerprint: getDeviceFingerprint()
183
+ * });
184
+ *
185
+ * if (result.allowed) {
186
+ * // Process transaction
187
+ * } else if (result.requiresApproval) {
188
+ * // Queue for manual review
189
+ * } else {
190
+ * // Block transaction
191
+ * console.log('Blocked:', result.blockReasons);
192
+ * }
193
+ * ```
194
+ */
195
+ verifyAtTransaction(request: TransactionVerificationRequest): Promise<TransactionVerificationResponse>;
196
+ /**
197
+ * Generic event verification (for other touchpoints)
198
+ *
199
+ * @param request - Event verification request
200
+ * @returns Verification response
201
+ */
202
+ verifyEvent(request: EventVerificationRequest): Promise<EventVerificationResponse>;
203
+ private shouldUpdateProfile;
204
+ private createProfileFromGeo;
205
+ private calculateTransactionRisk;
206
+ private checkJurisdictionLimits;
207
+ private normalizeToUSD;
208
+ private getRiskLevel;
209
+ private getBlockReasons;
210
+ private getTransactionBlockReasons;
211
+ /**
212
+ * Update currency exchange rates
213
+ *
214
+ * @param rates - Currency to USD exchange rates
215
+ */
216
+ updateCurrencyRates(rates: CurrencyRates): void;
217
+ /**
218
+ * Get underlying geolocation client
219
+ */
220
+ getGeolocationClient(): GeolocationClient;
221
+ /**
222
+ * Get underlying risk profile client
223
+ */
224
+ getRiskProfileClient(): RiskProfileClient;
225
+ /**
226
+ * Update configuration
227
+ */
228
+ updateConfig(config: Partial<CGSConfig>): void;
229
+ }
230
+
231
+ export { ComplianceClient, type CurrencyRates, DEFAULT_CURRENCY_RATES, type EventVerificationRequest, type EventVerificationResponse, type LoginVerificationRequest, type LoginVerificationResponse, type RegistrationVerificationRequest, type RegistrationVerificationResponse, type TransactionRiskResult, type TransactionVerificationRequest, type TransactionVerificationResponse };
@@ -1024,6 +1024,22 @@ var RiskProfileClient = class extends BaseClient {
1024
1024
  }
1025
1025
  };
1026
1026
 
1027
+ // src/compliance/types.ts
1028
+ var DEFAULT_CURRENCY_RATES = {
1029
+ USD: 1,
1030
+ EUR: 1.1,
1031
+ GBP: 1.27,
1032
+ CAD: 0.74,
1033
+ AUD: 0.66,
1034
+ JPY: 67e-4,
1035
+ CHF: 1.13,
1036
+ CNY: 0.14,
1037
+ INR: 0.012,
1038
+ BRL: 0.2,
1039
+ MXN: 0.058,
1040
+ ZAR: 0.055
1041
+ };
1042
+
1027
1043
  // src/compliance/client.ts
1028
1044
  var ComplianceClient = class {
1029
1045
  constructor(config) {
@@ -1045,7 +1061,6 @@ var ComplianceClient = class {
1045
1061
  apiKey: this.config.apiKey,
1046
1062
  headers: this.config.headers,
1047
1063
  timeout: this.config.timeout,
1048
- retries: this.config.retries,
1049
1064
  debug: this.config.debug
1050
1065
  });
1051
1066
  this.riskClient = new RiskProfileClient({
@@ -1054,7 +1069,6 @@ var ComplianceClient = class {
1054
1069
  apiKey: this.config.apiKey,
1055
1070
  headers: this.config.headers,
1056
1071
  timeout: this.config.timeout,
1057
- retries: this.config.retries,
1058
1072
  debug: this.config.debug
1059
1073
  });
1060
1074
  this.currencyRates = DEFAULT_CURRENCY_RATES;
@@ -1456,23 +1470,7 @@ var ComplianceClient = class {
1456
1470
  }
1457
1471
  };
1458
1472
 
1459
- // src/compliance/types.ts
1460
- var DEFAULT_CURRENCY_RATES2 = {
1461
- USD: 1,
1462
- EUR: 1.1,
1463
- GBP: 1.27,
1464
- CAD: 0.74,
1465
- AUD: 0.66,
1466
- JPY: 67e-4,
1467
- CHF: 1.13,
1468
- CNY: 0.14,
1469
- INR: 0.012,
1470
- BRL: 0.2,
1471
- MXN: 0.058,
1472
- ZAR: 0.055
1473
- };
1474
-
1475
1473
  exports.ComplianceClient = ComplianceClient;
1476
- exports.DEFAULT_CURRENCY_RATES = DEFAULT_CURRENCY_RATES2;
1474
+ exports.DEFAULT_CURRENCY_RATES = DEFAULT_CURRENCY_RATES;
1477
1475
  //# sourceMappingURL=index.js.map
1478
1476
  //# sourceMappingURL=index.js.map