vesant-sdk 1.7.0 → 1.7.1-dev.0520b46

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 (75) hide show
  1. package/dist/{client-B0qhE2kr.d.mts → client-5q4whhGu.d.mts} +2 -2
  2. package/dist/{client-DF7hlMEz.d.ts → client-BaUekQT8.d.ts} +96 -52
  3. package/dist/{client-DtH2RLuy.d.ts → client-DUHC-68_.d.ts} +2 -2
  4. package/dist/{client-DrjgZoH_.d.mts → client-XDEhh9VN.d.mts} +96 -52
  5. package/dist/{client-BolQlL5e.d.mts → client-q9fN8Hhf.d.mts} +103 -1
  6. package/dist/{client-BolQlL5e.d.ts → client-q9fN8Hhf.d.ts} +103 -1
  7. package/dist/compliance/index.d.mts +3 -3
  8. package/dist/compliance/index.d.ts +3 -3
  9. package/dist/compliance/index.js +218 -90
  10. package/dist/compliance/index.js.map +1 -1
  11. package/dist/compliance/index.mjs +218 -90
  12. package/dist/compliance/index.mjs.map +1 -1
  13. package/dist/decisions/index.d.mts +1 -1
  14. package/dist/decisions/index.d.ts +1 -1
  15. package/dist/decisions/index.js +69 -8
  16. package/dist/decisions/index.js.map +1 -1
  17. package/dist/decisions/index.mjs +69 -8
  18. package/dist/decisions/index.mjs.map +1 -1
  19. package/dist/geolocation/index.d.mts +68 -7
  20. package/dist/geolocation/index.d.ts +68 -7
  21. package/dist/geolocation/index.js +223 -90
  22. package/dist/geolocation/index.js.map +1 -1
  23. package/dist/geolocation/index.mjs +220 -91
  24. package/dist/geolocation/index.mjs.map +1 -1
  25. package/dist/index-C3zUKydT.d.mts +264 -0
  26. package/dist/index-DSDgS09k.d.ts +264 -0
  27. package/dist/index.d.mts +27 -10
  28. package/dist/index.d.ts +27 -10
  29. package/dist/index.js +418 -126
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +409 -127
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/kyc/core.d.mts +2 -2
  34. package/dist/kyc/core.d.ts +2 -2
  35. package/dist/kyc/core.js +102 -21
  36. package/dist/kyc/core.js.map +1 -1
  37. package/dist/kyc/core.mjs +102 -22
  38. package/dist/kyc/core.mjs.map +1 -1
  39. package/dist/kyc/index.d.mts +154 -30
  40. package/dist/kyc/index.d.ts +154 -30
  41. package/dist/kyc/index.js +102 -21
  42. package/dist/kyc/index.js.map +1 -1
  43. package/dist/kyc/index.mjs +102 -22
  44. package/dist/kyc/index.mjs.map +1 -1
  45. package/dist/react.d.mts +14 -3
  46. package/dist/react.d.ts +14 -3
  47. package/dist/react.js +317 -68
  48. package/dist/react.js.map +1 -1
  49. package/dist/react.mjs +317 -68
  50. package/dist/react.mjs.map +1 -1
  51. package/dist/risk-profile/index.d.mts +1 -1
  52. package/dist/risk-profile/index.d.ts +1 -1
  53. package/dist/risk-profile/index.js +69 -8
  54. package/dist/risk-profile/index.js.map +1 -1
  55. package/dist/risk-profile/index.mjs +69 -8
  56. package/dist/risk-profile/index.mjs.map +1 -1
  57. package/dist/scores/index.d.mts +1 -1
  58. package/dist/scores/index.d.ts +1 -1
  59. package/dist/scores/index.js +69 -8
  60. package/dist/scores/index.js.map +1 -1
  61. package/dist/scores/index.mjs +69 -8
  62. package/dist/scores/index.mjs.map +1 -1
  63. package/dist/tax/index.d.mts +2 -2
  64. package/dist/tax/index.d.ts +2 -2
  65. package/dist/tax/index.js +74 -10
  66. package/dist/tax/index.js.map +1 -1
  67. package/dist/tax/index.mjs +74 -10
  68. package/dist/tax/index.mjs.map +1 -1
  69. package/dist/webhooks/index.d.mts +2 -189
  70. package/dist/webhooks/index.d.ts +2 -189
  71. package/dist/webhooks/index.js +85 -21
  72. package/dist/webhooks/index.js.map +1 -1
  73. package/dist/webhooks/index.mjs +85 -22
  74. package/dist/webhooks/index.mjs.map +1 -1
  75. package/package.json +4 -1
@@ -50,6 +50,80 @@ declare class CircuitBreaker {
50
50
  reset(): void;
51
51
  }
52
52
 
53
+ /**
54
+ * Pluggable authentication for BaseClient.
55
+ *
56
+ * A TokenProvider supplies the credential used for the Authorization header on
57
+ * every request, resolved per-request (async) so callers can source short-lived
58
+ * or rotating credentials (OAuth2 client-credentials, STS, Vault / Secrets
59
+ * Manager) instead of a single static API key. The default StaticApiKeyProvider
60
+ * preserves the original `apiKey` behavior with zero change for existing callers.
61
+ */
62
+ interface AuthCredential {
63
+ /** Authorization scheme (e.g. 'Bearer'); defaults to 'Bearer' when omitted. */
64
+ scheme?: string;
65
+ /** The credential value (bearer token / API key). */
66
+ token: string;
67
+ }
68
+ interface TokenProviderContext {
69
+ tenantId: string;
70
+ requestId: string;
71
+ /** When true, bypass any cache and obtain a fresh credential (e.g. after a 401). */
72
+ forceRefresh?: boolean;
73
+ }
74
+ interface TokenProvider {
75
+ /** Resolve the credential for a request, or null to send no Authorization header. */
76
+ getCredential(ctx: TokenProviderContext): Promise<AuthCredential | null>;
77
+ /** Whether this provider can obtain a fresh credential on demand (drives 401 retry). */
78
+ canRefresh?(): boolean;
79
+ }
80
+ /**
81
+ * Default provider: wraps a static API key. Returns null when the key is empty
82
+ * so the client sends no Authorization header, matching the pre-provider behavior.
83
+ */
84
+ declare class StaticApiKeyProvider implements TokenProvider {
85
+ private readonly apiKey;
86
+ constructor(apiKey: string);
87
+ getCredential(): Promise<AuthCredential | null>;
88
+ canRefresh(): boolean;
89
+ }
90
+ interface CachedToken {
91
+ token: string;
92
+ expiresAt?: number;
93
+ }
94
+ interface RefreshingTokenProviderOptions {
95
+ /** Fetches a fresh token. `expiresAt` is epoch milliseconds (optional). */
96
+ fetchToken: () => Promise<CachedToken>;
97
+ /** Refresh this many ms before expiry (default: 30_000). */
98
+ skewMs?: number;
99
+ /** Authorization scheme to emit (default: 'Bearer'). */
100
+ scheme?: string;
101
+ /** Observe each successful (re)fetch — for logging / metrics. */
102
+ onRotate?: (meta: {
103
+ expiresAt?: number;
104
+ }) => void;
105
+ /** Injectable clock (default: Date.now). */
106
+ now?: () => number;
107
+ }
108
+ /**
109
+ * Caches a fetched token and refreshes it when it is within the skew window of
110
+ * expiry or when `forceRefresh` is requested. Concurrent refreshes are de-duped
111
+ * into a single in-flight fetch.
112
+ */
113
+ declare class RefreshingTokenProvider implements TokenProvider {
114
+ private readonly opts;
115
+ private cached;
116
+ private inFlight;
117
+ private readonly skewMs;
118
+ private readonly scheme;
119
+ private readonly now;
120
+ constructor(opts: RefreshingTokenProviderOptions);
121
+ canRefresh(): boolean;
122
+ getCredential(ctx?: TokenProviderContext): Promise<AuthCredential | null>;
123
+ private isExpiring;
124
+ private refresh;
125
+ }
126
+
53
127
  /**
54
128
  * Configuration types for Vesant SDK clients
55
129
  */
@@ -82,6 +156,16 @@ interface BaseClientConfig {
82
156
  tenantId: string;
83
157
  /** Optional API key for authentication */
84
158
  apiKey?: string;
159
+ /**
160
+ * Pluggable auth token provider. When set, it supplies the Authorization
161
+ * credential per-request (overriding `apiKey`), enabling OAuth2 / STS / rotating
162
+ * secrets and single-shot 401 re-auth. Defaults to a static-apiKey provider.
163
+ */
164
+ authProvider?: TokenProvider;
165
+ /** Observe credential rotation triggered by a 401 re-auth (logging / metrics). */
166
+ onCredentialRotated?: (meta: {
167
+ reason: string;
168
+ }) => void;
85
169
  /** Custom headers to include in all requests */
86
170
  headers?: Record<string, string>;
87
171
  /** Request timeout in milliseconds (default: 10000) */
@@ -108,6 +192,16 @@ interface VesantConfig {
108
192
  tenantId: string;
109
193
  /** Optional API key for authentication */
110
194
  apiKey?: string;
195
+ /**
196
+ * Pluggable auth token provider. When set, it supplies the Authorization
197
+ * credential per-request (overriding `apiKey`), enabling OAuth2 / STS / rotating
198
+ * secrets and single-shot 401 re-auth. Defaults to a static-apiKey provider.
199
+ */
200
+ authProvider?: TokenProvider;
201
+ /** Observe credential rotation triggered by a 401 re-auth (logging / metrics). */
202
+ onCredentialRotated?: (meta: {
203
+ reason: string;
204
+ }) => void;
111
205
  /** Custom headers to include in all requests */
112
206
  headers?: Record<string, string>;
113
207
  /** Request timeout in milliseconds (default: 10000) */
@@ -195,7 +289,15 @@ declare abstract class BaseClient {
195
289
  private interceptors;
196
290
  private circuitBreaker;
197
291
  private rateLimitTracker;
292
+ private authProvider;
198
293
  constructor(config: BaseClientConfig);
294
+ /**
295
+ * Resolve the Idempotency-Key for a request. Mutating methods (POST/PUT/PATCH)
296
+ * get the caller-supplied key or a freshly minted UUID; non-mutating methods get
297
+ * none. requestWithRetry resolves this once and injects it so every retry reuses
298
+ * one key (letting the server dedup replays); a direct request() resolves per call.
299
+ */
300
+ private resolveIdempotencyKey;
199
301
  /**
200
302
  * Make an HTTP request with timeout and error handling
201
303
  */
@@ -237,4 +339,4 @@ declare abstract class BaseClient {
237
339
  }>;
238
340
  }
239
341
 
240
- export { BaseClient as B, type CGSConfig as C, type Logger as L, type RequestOptions as R, type VesantConfig as V, type BaseClientConfig as a, CircuitBreaker as b, type CircuitBreakerConfig as c, type CircuitBreakerState as d, type CircuitBreakerStatus as e, type RateLimitStatus as f, RateLimitTracker as g, type RequestInterceptor as h, type RequiredBaseClientConfig as i, type RequiredCGSConfig as j, type RequiredVesantConfig as k };
342
+ export { type AuthCredential as A, BaseClient as B, type CGSConfig as C, type Logger as L, type RequestOptions as R, StaticApiKeyProvider as S, type TokenProvider as T, type VesantConfig as V, type BaseClientConfig as a, CircuitBreaker as b, type CircuitBreakerConfig as c, type CircuitBreakerState as d, type CircuitBreakerStatus as e, type RateLimitStatus as f, RateLimitTracker as g, RefreshingTokenProvider as h, type RefreshingTokenProviderOptions as i, type RequestInterceptor as j, type RequiredBaseClientConfig as k, type RequiredCGSConfig as l, type RequiredVesantConfig as m, type TokenProviderContext as n };
@@ -50,6 +50,80 @@ declare class CircuitBreaker {
50
50
  reset(): void;
51
51
  }
52
52
 
53
+ /**
54
+ * Pluggable authentication for BaseClient.
55
+ *
56
+ * A TokenProvider supplies the credential used for the Authorization header on
57
+ * every request, resolved per-request (async) so callers can source short-lived
58
+ * or rotating credentials (OAuth2 client-credentials, STS, Vault / Secrets
59
+ * Manager) instead of a single static API key. The default StaticApiKeyProvider
60
+ * preserves the original `apiKey` behavior with zero change for existing callers.
61
+ */
62
+ interface AuthCredential {
63
+ /** Authorization scheme (e.g. 'Bearer'); defaults to 'Bearer' when omitted. */
64
+ scheme?: string;
65
+ /** The credential value (bearer token / API key). */
66
+ token: string;
67
+ }
68
+ interface TokenProviderContext {
69
+ tenantId: string;
70
+ requestId: string;
71
+ /** When true, bypass any cache and obtain a fresh credential (e.g. after a 401). */
72
+ forceRefresh?: boolean;
73
+ }
74
+ interface TokenProvider {
75
+ /** Resolve the credential for a request, or null to send no Authorization header. */
76
+ getCredential(ctx: TokenProviderContext): Promise<AuthCredential | null>;
77
+ /** Whether this provider can obtain a fresh credential on demand (drives 401 retry). */
78
+ canRefresh?(): boolean;
79
+ }
80
+ /**
81
+ * Default provider: wraps a static API key. Returns null when the key is empty
82
+ * so the client sends no Authorization header, matching the pre-provider behavior.
83
+ */
84
+ declare class StaticApiKeyProvider implements TokenProvider {
85
+ private readonly apiKey;
86
+ constructor(apiKey: string);
87
+ getCredential(): Promise<AuthCredential | null>;
88
+ canRefresh(): boolean;
89
+ }
90
+ interface CachedToken {
91
+ token: string;
92
+ expiresAt?: number;
93
+ }
94
+ interface RefreshingTokenProviderOptions {
95
+ /** Fetches a fresh token. `expiresAt` is epoch milliseconds (optional). */
96
+ fetchToken: () => Promise<CachedToken>;
97
+ /** Refresh this many ms before expiry (default: 30_000). */
98
+ skewMs?: number;
99
+ /** Authorization scheme to emit (default: 'Bearer'). */
100
+ scheme?: string;
101
+ /** Observe each successful (re)fetch — for logging / metrics. */
102
+ onRotate?: (meta: {
103
+ expiresAt?: number;
104
+ }) => void;
105
+ /** Injectable clock (default: Date.now). */
106
+ now?: () => number;
107
+ }
108
+ /**
109
+ * Caches a fetched token and refreshes it when it is within the skew window of
110
+ * expiry or when `forceRefresh` is requested. Concurrent refreshes are de-duped
111
+ * into a single in-flight fetch.
112
+ */
113
+ declare class RefreshingTokenProvider implements TokenProvider {
114
+ private readonly opts;
115
+ private cached;
116
+ private inFlight;
117
+ private readonly skewMs;
118
+ private readonly scheme;
119
+ private readonly now;
120
+ constructor(opts: RefreshingTokenProviderOptions);
121
+ canRefresh(): boolean;
122
+ getCredential(ctx?: TokenProviderContext): Promise<AuthCredential | null>;
123
+ private isExpiring;
124
+ private refresh;
125
+ }
126
+
53
127
  /**
54
128
  * Configuration types for Vesant SDK clients
55
129
  */
@@ -82,6 +156,16 @@ interface BaseClientConfig {
82
156
  tenantId: string;
83
157
  /** Optional API key for authentication */
84
158
  apiKey?: string;
159
+ /**
160
+ * Pluggable auth token provider. When set, it supplies the Authorization
161
+ * credential per-request (overriding `apiKey`), enabling OAuth2 / STS / rotating
162
+ * secrets and single-shot 401 re-auth. Defaults to a static-apiKey provider.
163
+ */
164
+ authProvider?: TokenProvider;
165
+ /** Observe credential rotation triggered by a 401 re-auth (logging / metrics). */
166
+ onCredentialRotated?: (meta: {
167
+ reason: string;
168
+ }) => void;
85
169
  /** Custom headers to include in all requests */
86
170
  headers?: Record<string, string>;
87
171
  /** Request timeout in milliseconds (default: 10000) */
@@ -108,6 +192,16 @@ interface VesantConfig {
108
192
  tenantId: string;
109
193
  /** Optional API key for authentication */
110
194
  apiKey?: string;
195
+ /**
196
+ * Pluggable auth token provider. When set, it supplies the Authorization
197
+ * credential per-request (overriding `apiKey`), enabling OAuth2 / STS / rotating
198
+ * secrets and single-shot 401 re-auth. Defaults to a static-apiKey provider.
199
+ */
200
+ authProvider?: TokenProvider;
201
+ /** Observe credential rotation triggered by a 401 re-auth (logging / metrics). */
202
+ onCredentialRotated?: (meta: {
203
+ reason: string;
204
+ }) => void;
111
205
  /** Custom headers to include in all requests */
112
206
  headers?: Record<string, string>;
113
207
  /** Request timeout in milliseconds (default: 10000) */
@@ -195,7 +289,15 @@ declare abstract class BaseClient {
195
289
  private interceptors;
196
290
  private circuitBreaker;
197
291
  private rateLimitTracker;
292
+ private authProvider;
198
293
  constructor(config: BaseClientConfig);
294
+ /**
295
+ * Resolve the Idempotency-Key for a request. Mutating methods (POST/PUT/PATCH)
296
+ * get the caller-supplied key or a freshly minted UUID; non-mutating methods get
297
+ * none. requestWithRetry resolves this once and injects it so every retry reuses
298
+ * one key (letting the server dedup replays); a direct request() resolves per call.
299
+ */
300
+ private resolveIdempotencyKey;
199
301
  /**
200
302
  * Make an HTTP request with timeout and error handling
201
303
  */
@@ -237,4 +339,4 @@ declare abstract class BaseClient {
237
339
  }>;
238
340
  }
239
341
 
240
- export { BaseClient as B, type CGSConfig as C, type Logger as L, type RequestOptions as R, type VesantConfig as V, type BaseClientConfig as a, CircuitBreaker as b, type CircuitBreakerConfig as c, type CircuitBreakerState as d, type CircuitBreakerStatus as e, type RateLimitStatus as f, RateLimitTracker as g, type RequestInterceptor as h, type RequiredBaseClientConfig as i, type RequiredCGSConfig as j, type RequiredVesantConfig as k };
342
+ export { type AuthCredential as A, BaseClient as B, type CGSConfig as C, type Logger as L, type RequestOptions as R, StaticApiKeyProvider as S, type TokenProvider as T, type VesantConfig as V, type BaseClientConfig as a, CircuitBreaker as b, type CircuitBreakerConfig as c, type CircuitBreakerState as d, type CircuitBreakerStatus as e, type RateLimitStatus as f, RateLimitTracker as g, RefreshingTokenProvider as h, type RefreshingTokenProviderOptions as i, type RequestInterceptor as j, type RequiredBaseClientConfig as k, type RequiredCGSConfig as l, type RequiredVesantConfig as m, type TokenProviderContext as n };
@@ -1,8 +1,8 @@
1
1
  import { B as BlockReason } from '../types-CBQRNL-l.mjs';
2
- export { C as ComplianceClient, a as ComplianceLocationRequestInput, b as ComplianceLocationRequestResult, c as CurrencyRates, D as DEFAULT_CURRENCY_RATES, E as EventVerificationRequest, d as EventVerificationResponse, L as LoginVerificationRequest, e as LoginVerificationResponse, R as RegistrationVerificationRequest, f as RegistrationVerificationResponse, T as TransactionRiskResult, g as TransactionVerificationRequest, h as TransactionVerificationResponse } from '../client-B0qhE2kr.mjs';
3
- export { p as CreateLocationRequestRequest, H as LocationCaptureRequest, I as LocationCaptureResponse, a as LocationRequest, K as LocationRequestChannel, b as LocationRequestFilters, c as LocationRequestListResponse, M as LocationRequestResult, N as LocationRequestStatus, O as LocationShareInfo, R as ResendLocationRequestRequest } from '../client-DrjgZoH_.mjs';
2
+ export { C as ComplianceClient, a as ComplianceLocationRequestInput, b as ComplianceLocationRequestResult, c as CurrencyRates, D as DEFAULT_CURRENCY_RATES, E as EventVerificationRequest, d as EventVerificationResponse, L as LoginVerificationRequest, e as LoginVerificationResponse, R as RegistrationVerificationRequest, f as RegistrationVerificationResponse, T as TransactionRiskResult, g as TransactionVerificationRequest, h as TransactionVerificationResponse } from '../client-5q4whhGu.mjs';
3
+ export { p as CreateLocationRequestRequest, I as LocationCaptureRequest, K as LocationCaptureResponse, a as LocationRequest, M as LocationRequestChannel, b as LocationRequestFilters, c as LocationRequestListResponse, N as LocationRequestResult, O as LocationRequestStatus, P as LocationShareInfo, R as ResendLocationRequestRequest } from '../client-XDEhh9VN.mjs';
4
4
  import '../risk-profile/index.mjs';
5
- import '../client-BolQlL5e.mjs';
5
+ import '../client-q9fN8Hhf.mjs';
6
6
  import '../types-BOFaMQxI.mjs';
7
7
 
8
8
  declare const sdkReasons: {
@@ -1,8 +1,8 @@
1
1
  import { B as BlockReason } from '../types-CBQRNL-l.js';
2
- export { C as ComplianceClient, a as ComplianceLocationRequestInput, b as ComplianceLocationRequestResult, c as CurrencyRates, D as DEFAULT_CURRENCY_RATES, E as EventVerificationRequest, d as EventVerificationResponse, L as LoginVerificationRequest, e as LoginVerificationResponse, R as RegistrationVerificationRequest, f as RegistrationVerificationResponse, T as TransactionRiskResult, g as TransactionVerificationRequest, h as TransactionVerificationResponse } from '../client-DtH2RLuy.js';
3
- export { p as CreateLocationRequestRequest, H as LocationCaptureRequest, I as LocationCaptureResponse, a as LocationRequest, K as LocationRequestChannel, b as LocationRequestFilters, c as LocationRequestListResponse, M as LocationRequestResult, N as LocationRequestStatus, O as LocationShareInfo, R as ResendLocationRequestRequest } from '../client-DF7hlMEz.js';
2
+ export { C as ComplianceClient, a as ComplianceLocationRequestInput, b as ComplianceLocationRequestResult, c as CurrencyRates, D as DEFAULT_CURRENCY_RATES, E as EventVerificationRequest, d as EventVerificationResponse, L as LoginVerificationRequest, e as LoginVerificationResponse, R as RegistrationVerificationRequest, f as RegistrationVerificationResponse, T as TransactionRiskResult, g as TransactionVerificationRequest, h as TransactionVerificationResponse } from '../client-DUHC-68_.js';
3
+ export { p as CreateLocationRequestRequest, I as LocationCaptureRequest, K as LocationCaptureResponse, a as LocationRequest, M as LocationRequestChannel, b as LocationRequestFilters, c as LocationRequestListResponse, N as LocationRequestResult, O as LocationRequestStatus, P as LocationShareInfo, R as ResendLocationRequestRequest } from '../client-BaUekQT8.js';
4
4
  import '../risk-profile/index.js';
5
- import '../client-BolQlL5e.js';
5
+ import '../client-q9fN8Hhf.js';
6
6
  import '../types-UGyDl1fd.js';
7
7
 
8
8
  declare const sdkReasons: {