@basis-theory/web-elements 3.0.0-beta.4 → 3.0.0-beta.6
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.
- package/dist/.vite/manifest.json +22 -11
- package/dist/basis-theory-sdk.es.js +2 -2
- package/dist/basis-theory-sdk.umd.js +1 -1
- package/dist/basis-theory-sdk.umd.js.map +1 -1
- package/dist/{create-card-B5zEHyRg.js → create-card-C0MwL3Ou.js} +21 -14
- package/dist/create-card-C0MwL3Ou.js.map +1 -0
- package/dist/create-card-display-DscvxIs4.js +291 -0
- package/dist/create-card-display-DscvxIs4.js.map +1 -0
- package/dist/{create-copy-button-DrAz8g0m.js → create-copy-button-DlJ3VvAn.js} +40 -12
- package/dist/create-copy-button-DlJ3VvAn.js.map +1 -0
- package/dist/{index-BOedIhUN.js → index-DPhSs28B.js} +432 -121
- package/dist/index-DPhSs28B.js.map +1 -0
- package/dist/index.d.ts +1133 -0
- package/dist/loader/basis-theory.min.js +1 -1
- package/dist/sri.json +9 -9
- package/dist/stats.html +1 -1
- package/package.json +12 -12
- package/dist/api-client/src/api-client.d.ts +0 -11
- package/dist/api-client/src/api-client.d.ts.map +0 -1
- package/dist/api-client/src/bin-lookup-transform.d.ts +0 -35
- package/dist/api-client/src/bin-lookup-transform.d.ts.map +0 -1
- package/dist/api-client/src/http-client.d.ts +0 -24
- package/dist/api-client/src/http-client.d.ts.map +0 -1
- package/dist/api-client/src/index.d.ts +0 -9
- package/dist/api-client/src/index.d.ts.map +0 -1
- package/dist/api-client/src/services/sessions.d.ts +0 -19
- package/dist/api-client/src/services/sessions.d.ts.map +0 -1
- package/dist/api-client/src/services/token-intents.d.ts +0 -17
- package/dist/api-client/src/services/token-intents.d.ts.map +0 -1
- package/dist/api-client/src/services/tokens.d.ts +0 -19
- package/dist/api-client/src/services/tokens.d.ts.map +0 -1
- package/dist/api-client/src/types.d.ts +0 -421
- package/dist/api-client/src/types.d.ts.map +0 -1
- package/dist/create-card-B5zEHyRg.js.map +0 -1
- package/dist/create-copy-button-DrAz8g0m.js.map +0 -1
- package/dist/index-BOedIhUN.js.map +0 -1
- package/dist/postmessage/src/client.d.ts +0 -7
- package/dist/postmessage/src/client.d.ts.map +0 -1
- package/dist/postmessage/src/event-map.d.ts +0 -139
- package/dist/postmessage/src/event-map.d.ts.map +0 -1
- package/dist/postmessage/src/index.d.ts +0 -9
- package/dist/postmessage/src/index.d.ts.map +0 -1
- package/dist/postmessage/src/server.d.ts +0 -11
- package/dist/postmessage/src/server.d.ts.map +0 -1
- package/dist/postmessage/src/types.d.ts +0 -75
- package/dist/postmessage/src/types.d.ts.map +0 -1
- package/dist/shared/src/api-url-resolver.d.ts +0 -22
- package/dist/shared/src/api-url-resolver.d.ts.map +0 -1
- package/dist/shared/src/debug-logger.d.ts +0 -16
- package/dist/shared/src/debug-logger.d.ts.map +0 -1
- package/dist/shared/src/deep-sanitization.d.ts +0 -24
- package/dist/shared/src/deep-sanitization.d.ts.map +0 -1
- package/dist/shared/src/errors.d.ts +0 -93
- package/dist/shared/src/errors.d.ts.map +0 -1
- package/dist/shared/src/generate-id.d.ts +0 -13
- package/dist/shared/src/generate-id.d.ts.map +0 -1
- package/dist/shared/src/index.d.ts +0 -14
- package/dist/shared/src/index.d.ts.map +0 -1
- package/dist/shared/src/logger-context.d.ts +0 -25
- package/dist/shared/src/logger-context.d.ts.map +0 -1
- package/dist/shared/src/proxy-validation.d.ts +0 -93
- package/dist/shared/src/proxy-validation.d.ts.map +0 -1
- package/dist/web-elements/src/BasisTheory.d.ts +0 -47
- package/dist/web-elements/src/BasisTheory.d.ts.map +0 -1
- package/dist/web-elements/src/basis-theory.d.ts +0 -85
- package/dist/web-elements/src/basis-theory.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-card-number.d.ts +0 -15
- package/dist/web-elements/src/elements/create-card-number.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-card.d.ts +0 -50
- package/dist/web-elements/src/elements/create-card.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-copy-button.d.ts +0 -19
- package/dist/web-elements/src/elements/create-copy-button.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-cvv.d.ts +0 -11
- package/dist/web-elements/src/elements/create-cvv.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-expiry.d.ts +0 -11
- package/dist/web-elements/src/elements/create-expiry.d.ts.map +0 -1
- package/dist/web-elements/src/elements/create-text.d.ts +0 -14
- package/dist/web-elements/src/elements/create-text.d.ts.map +0 -1
- package/dist/web-elements/src/index.d.ts +0 -27
- package/dist/web-elements/src/index.d.ts.map +0 -1
- package/dist/web-elements/src/mounter/create-mounter.d.ts +0 -11
- package/dist/web-elements/src/mounter/create-mounter.d.ts.map +0 -1
- package/dist/web-elements/src/theme/default-theme.d.ts +0 -22
- package/dist/web-elements/src/theme/default-theme.d.ts.map +0 -1
- package/dist/web-elements/src/theme/inject-theme-dark.d.ts +0 -13
- package/dist/web-elements/src/theme/inject-theme-dark.d.ts.map +0 -1
- package/dist/web-elements/src/theme/inject-theme.d.ts +0 -20
- package/dist/web-elements/src/theme/inject-theme.d.ts.map +0 -1
- package/dist/web-elements/src/types/events.d.ts +0 -165
- package/dist/web-elements/src/types/events.d.ts.map +0 -1
- package/dist/web-elements/src/types/theme.d.ts +0 -91
- package/dist/web-elements/src/types/theme.d.ts.map +0 -1
- package/dist/web-elements/src/types.d.ts +0 -667
- package/dist/web-elements/src/types.d.ts.map +0 -1
- package/dist/web-elements/src/utils/create-event-dispatcher.d.ts +0 -47
- package/dist/web-elements/src/utils/create-event-dispatcher.d.ts.map +0 -1
- package/dist/web-elements/src/utils/create-iframe.d.ts +0 -10
- package/dist/web-elements/src/utils/create-iframe.d.ts.map +0 -1
- package/dist/web-elements/src/utils/resolve-element-references.d.ts +0 -20
- package/dist/web-elements/src/utils/resolve-element-references.d.ts.map +0 -1
- package/dist/web-elements/src/utils/validate-element-options.d.ts +0 -11
- package/dist/web-elements/src/utils/validate-element-options.d.ts.map +0 -1
- package/dist/web-elements/src/utils/validate-sdk-config.d.ts +0 -15
- package/dist/web-elements/src/utils/validate-sdk-config.d.ts.map +0 -1
- package/dist/web-elements/src/utils/warn-unknown-keys.d.ts +0 -15
- package/dist/web-elements/src/utils/warn-unknown-keys.d.ts.map +0 -1
- package/dist/web-elements/src/version.d.ts +0 -25
- package/dist/web-elements/src/version.d.ts.map +0 -1
|
@@ -1,667 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for @basis-theory/web-elements
|
|
3
|
-
*/
|
|
4
|
-
import type { TokenIntent } from '@basis-theory-elements/api-client';
|
|
5
|
-
import type { ElementType } from './types/events';
|
|
6
|
-
import type { ThemeMode, ThemeTokens } from './types/theme';
|
|
7
|
-
export type { TokenIntent };
|
|
8
|
-
/**
|
|
9
|
-
* Transform pattern for modifying input before tokenization
|
|
10
|
-
* [pattern, replacement] - uses String.prototype.replace(pattern, replacement)
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* // Remove dashes from SSN: "123-45-6789" → "123456789"
|
|
14
|
-
* const ssnTransform: Transform = [/-/g, ''];
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* // Remove all non-digits from phone: "(555) 123-4567" → "5551234567"
|
|
18
|
-
* const phoneTransform: Transform = [/\D/g, ''];
|
|
19
|
-
*/
|
|
20
|
-
export type Transform = [RegExp, string];
|
|
21
|
-
export interface SDKOptions {
|
|
22
|
-
/**
|
|
23
|
-
* Base URL where element iframes are hosted
|
|
24
|
-
* FRD-2026-003: Now defaults to production CDN (build-time injected, environment-specific)
|
|
25
|
-
* @default 'https://js.basistheory.com/{version}/elements' (production)
|
|
26
|
-
* @example 'http://localhost:4243' (for local development)
|
|
27
|
-
*/
|
|
28
|
-
elementsBaseUrl?: string;
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated Use `elementsBaseUrl` instead
|
|
31
|
-
* Origin of the iframe host (where element.html is served)
|
|
32
|
-
*/
|
|
33
|
-
iframeOrigin?: string;
|
|
34
|
-
/**
|
|
35
|
-
* API base URL for tokenization and API operations
|
|
36
|
-
* Auto-detects based on page origin by default:
|
|
37
|
-
* - localhost/flock-dev.com → https://js.flock-dev.com/api (dev)
|
|
38
|
-
* - btsandbox.com → https://js.btsandbox.com/api (uat)
|
|
39
|
-
* - basistheory.com → https://js.basistheory.com/api (prod)
|
|
40
|
-
* - other origins → https://js.basistheory.com/api (prod default)
|
|
41
|
-
*
|
|
42
|
-
* Override for:
|
|
43
|
-
* - Testing against custom API environments
|
|
44
|
-
* - Corporate proxies routing API calls
|
|
45
|
-
* - Regional API endpoints
|
|
46
|
-
*
|
|
47
|
-
* @default Auto-detected based on window.location.origin
|
|
48
|
-
* @example 'https://api-proxy.company.com/basistheory'
|
|
49
|
-
*/
|
|
50
|
-
apiBaseUrl?: string;
|
|
51
|
-
/**
|
|
52
|
-
* Enable debug logging
|
|
53
|
-
* @default false
|
|
54
|
-
*/
|
|
55
|
-
debug?: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Enable performance monitoring (bundle size, load times, compression metrics)
|
|
58
|
-
* When enabled, automatically measures and logs performance after elements load
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
measurePerformance?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* PostMessage timeout (milliseconds)
|
|
64
|
-
* Increase this for slow network connections (3G, etc.)
|
|
65
|
-
* @default 30000
|
|
66
|
-
*/
|
|
67
|
-
timeoutMs?: number;
|
|
68
|
-
/**
|
|
69
|
-
* PostMessage retry configuration
|
|
70
|
-
*/
|
|
71
|
-
retryConfig?: {
|
|
72
|
-
maxRetries: number;
|
|
73
|
-
delayMs: number;
|
|
74
|
-
backoffFactor: number;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Theme mode: 'light', 'dark', or 'auto' (follows prefers-color-scheme)
|
|
78
|
-
* @default 'auto'
|
|
79
|
-
*/
|
|
80
|
-
themeMode?: ThemeMode;
|
|
81
|
-
/**
|
|
82
|
-
* Theme configuration (design tokens)
|
|
83
|
-
* CSS variables will be injected into element iframes
|
|
84
|
-
*
|
|
85
|
-
* Supports light/dark themes via themeMode or separate theme/darkTheme objects
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* theme: {
|
|
90
|
-
* colors: {
|
|
91
|
-
* primary: '#007bff',
|
|
92
|
-
* error: '#EA4B97',
|
|
93
|
-
* text: '#1a1a1a',
|
|
94
|
-
* },
|
|
95
|
-
* typography: {
|
|
96
|
-
* fontFamily: 'Inter, sans-serif',
|
|
97
|
-
* fontSize: { base: '16px' },
|
|
98
|
-
* fontWeight: { normal: '400' },
|
|
99
|
-
* },
|
|
100
|
-
* spacing: { sm: '8px', md: '12px', lg: '16px' },
|
|
101
|
-
* borders: {
|
|
102
|
-
* radius: { base: '4px' },
|
|
103
|
-
* width: { base: '2px' },
|
|
104
|
-
* },
|
|
105
|
-
* }
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
theme?: ThemeTokens;
|
|
109
|
-
/**
|
|
110
|
-
* Optional dark theme configuration
|
|
111
|
-
* Used when themeMode is 'dark' or 'auto' in dark mode
|
|
112
|
-
*
|
|
113
|
-
* If not provided, will use theme with adjusted colors for dark mode
|
|
114
|
-
*/
|
|
115
|
-
darkTheme?: ThemeTokens;
|
|
116
|
-
}
|
|
117
|
-
export interface SDKConfig {
|
|
118
|
-
iframeOrigin: string;
|
|
119
|
-
elementsBaseUrl: string;
|
|
120
|
-
apiBaseUrl?: string;
|
|
121
|
-
debug: boolean;
|
|
122
|
-
measurePerformance: boolean;
|
|
123
|
-
timeoutMs: number;
|
|
124
|
-
themeMode: ThemeMode;
|
|
125
|
-
theme: ThemeTokens;
|
|
126
|
-
darkTheme?: ThemeTokens;
|
|
127
|
-
retryConfig: {
|
|
128
|
-
maxRetries: number;
|
|
129
|
-
delayMs: number;
|
|
130
|
-
backoffFactor: number;
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
export type { ElementType } from './types/events';
|
|
134
|
-
export type EventType = 'change' | 'ready' | 'networkChanged' | 'focus' | 'blur' | 'error' | 'copy';
|
|
135
|
-
export interface ElementOptions {
|
|
136
|
-
/**
|
|
137
|
-
* Placeholder text displayed when input is empty.
|
|
138
|
-
* For card elements, an object with per-field placeholders.
|
|
139
|
-
*/
|
|
140
|
-
placeholder?: string | {
|
|
141
|
-
cardNumber?: string;
|
|
142
|
-
expiryDate?: string;
|
|
143
|
-
cvc?: string;
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
* ARIA label for accessibility
|
|
147
|
-
* @default Based on element type (e.g., 'Card Number')
|
|
148
|
-
*/
|
|
149
|
-
ariaLabel?: string;
|
|
150
|
-
/**
|
|
151
|
-
* Disable the input
|
|
152
|
-
* @default false
|
|
153
|
-
*/
|
|
154
|
-
disabled?: boolean;
|
|
155
|
-
/**
|
|
156
|
-
* Make the input read-only
|
|
157
|
-
* @default false
|
|
158
|
-
*/
|
|
159
|
-
readOnly?: boolean;
|
|
160
|
-
/**
|
|
161
|
-
* RegExp pattern for validation
|
|
162
|
-
* Only applicable to text elements
|
|
163
|
-
* @example /^[a-zA-Z\s]{2,50}$/ for names
|
|
164
|
-
* @example /^\d{3}-\d{2}-\d{4}$/ for SSN
|
|
165
|
-
*/
|
|
166
|
-
validation?: RegExp;
|
|
167
|
-
/**
|
|
168
|
-
* Whether the field is required
|
|
169
|
-
* Only applicable to text elements
|
|
170
|
-
* @default false
|
|
171
|
-
*/
|
|
172
|
-
required?: boolean;
|
|
173
|
-
/**
|
|
174
|
-
* Maximum input length
|
|
175
|
-
* Only applicable to text elements
|
|
176
|
-
* @example 50 for name fields
|
|
177
|
-
*/
|
|
178
|
-
maxLength?: number;
|
|
179
|
-
/**
|
|
180
|
-
* Enable password mode (type="password")
|
|
181
|
-
* Only applicable to text elements
|
|
182
|
-
* @default false
|
|
183
|
-
*/
|
|
184
|
-
password?: boolean;
|
|
185
|
-
/**
|
|
186
|
-
* Mobile keyboard hint
|
|
187
|
-
* Only applicable to text elements
|
|
188
|
-
* @example 'numeric', 'tel', 'email'
|
|
189
|
-
*/
|
|
190
|
-
inputMode?: string;
|
|
191
|
-
/**
|
|
192
|
-
* Input masking pattern (lazy-loaded ~5KB module)
|
|
193
|
-
* Only applicable to text elements
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* // SSN: XXX-XX-XXXX
|
|
197
|
-
* mask: [/\d/, /\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
|
|
198
|
-
*
|
|
199
|
-
* // Phone: (XXX) XXX-XXXX
|
|
200
|
-
* mask: ['(', /\d/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
|
|
201
|
-
*/
|
|
202
|
-
mask?: (RegExp | string)[];
|
|
203
|
-
/**
|
|
204
|
-
* Transform pattern before tokenization
|
|
205
|
-
* Only applicable to text elements
|
|
206
|
-
*
|
|
207
|
-
* @example
|
|
208
|
-
* // Remove dashes from SSN before tokenization
|
|
209
|
-
* transform: [/-/g, '']
|
|
210
|
-
*/
|
|
211
|
-
transform?: Transform;
|
|
212
|
-
/**
|
|
213
|
-
* Renders a show/hide toggle button inside the CVV field.
|
|
214
|
-
* Clicking toggles between `type="password"` and `type="text"`.
|
|
215
|
-
* CVV element only. Set at creation time only — runtime updates via
|
|
216
|
-
* `element.update()` are not supported.
|
|
217
|
-
* @default false
|
|
218
|
-
*/
|
|
219
|
-
showToggle?: boolean;
|
|
220
|
-
/**
|
|
221
|
-
* Card brand (auto-set by SDK when card number element detects brand)
|
|
222
|
-
* Used internally for CVV element coordination
|
|
223
|
-
* @internal
|
|
224
|
-
*/
|
|
225
|
-
cardBrand?: string;
|
|
226
|
-
/**
|
|
227
|
-
* CVV lengths array (auto-set by SDK when card number element detects brand)
|
|
228
|
-
* Used internally for CVV element maxlength coordination
|
|
229
|
-
* Example: [4] for Amex, [3] for Visa/Mastercard
|
|
230
|
-
* @internal
|
|
231
|
-
*/
|
|
232
|
-
cvvLengths?: number[];
|
|
233
|
-
/**
|
|
234
|
-
* Layout mode for unified card element
|
|
235
|
-
* Only applicable to card elements
|
|
236
|
-
* @default 'auto'
|
|
237
|
-
*/
|
|
238
|
-
layout?: 'row' | 'column' | 'auto';
|
|
239
|
-
/**
|
|
240
|
-
* Stack threshold in pixels (only applies when layout: 'auto')
|
|
241
|
-
* Only applicable to card elements
|
|
242
|
-
* @default 400
|
|
243
|
-
*/
|
|
244
|
-
stackAt?: number;
|
|
245
|
-
/**
|
|
246
|
-
* Icon position for card brand icon
|
|
247
|
-
* Only applicable to card elements
|
|
248
|
-
* @default 'right'
|
|
249
|
-
*/
|
|
250
|
-
iconPosition?: 'left' | 'right' | 'none';
|
|
251
|
-
/**
|
|
252
|
-
* Restrict accepted card brands
|
|
253
|
-
* Only applicable to card elements
|
|
254
|
-
*/
|
|
255
|
-
cardBrands?: string[];
|
|
256
|
-
/**
|
|
257
|
-
* Enable BIN enrichment (6-digit) for the card number field (standalone or unified card).
|
|
258
|
-
* When true, co-badge networks are detected and `selectedNetwork` is available when applicable.
|
|
259
|
-
* If omitted but `coBadge` is set, BIN enrichment is enabled automatically unless explicitly
|
|
260
|
-
* disabled here (`false` or `{ enabled: false }`).
|
|
261
|
-
*/
|
|
262
|
-
binLookup?: boolean | {
|
|
263
|
-
enabled?: boolean;
|
|
264
|
-
debounceMs?: number;
|
|
265
|
-
};
|
|
266
|
-
/**
|
|
267
|
-
* Co-badge: network priority and optional in-iframe network selector (manual mode).
|
|
268
|
-
* Implies BIN enrichment when set; you do not need to pass `binLookup` unless you want to
|
|
269
|
-
* tune `debounceMs` or opt out with `binLookup: false`.
|
|
270
|
-
*/
|
|
271
|
-
coBadge?: {
|
|
272
|
-
preferredNetworks?: string[];
|
|
273
|
-
mode?: 'auto' | 'manual';
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
export interface Element {
|
|
277
|
-
/**
|
|
278
|
-
* Unique identifier for the element
|
|
279
|
-
*/
|
|
280
|
-
readonly id: string;
|
|
281
|
-
/**
|
|
282
|
-
* Element type ('cardNumber', 'cvv', 'expiry')
|
|
283
|
-
*/
|
|
284
|
-
readonly type: ElementType;
|
|
285
|
-
/**
|
|
286
|
-
* Whether the element is currently mounted to the DOM
|
|
287
|
-
*/
|
|
288
|
-
readonly mounted: boolean;
|
|
289
|
-
/**
|
|
290
|
-
* Mount the element to a DOM container
|
|
291
|
-
* @param selector - CSS selector or HTMLElement
|
|
292
|
-
*/
|
|
293
|
-
mount(selector: string | HTMLElement): Promise<void>;
|
|
294
|
-
/**
|
|
295
|
-
* Unmount the element from the DOM
|
|
296
|
-
*/
|
|
297
|
-
unmount(): void;
|
|
298
|
-
/**
|
|
299
|
-
* Update element configuration (placeholder, style, theme mode, etc.)
|
|
300
|
-
*/
|
|
301
|
-
update(options: Partial<ElementOptions> & {
|
|
302
|
-
themeMode?: 'light' | 'dark' | 'auto';
|
|
303
|
-
}): Promise<void>;
|
|
304
|
-
/**
|
|
305
|
-
* Focus the input
|
|
306
|
-
*/
|
|
307
|
-
focus(): void;
|
|
308
|
-
/**
|
|
309
|
-
* Blur the input
|
|
310
|
-
*/
|
|
311
|
-
blur(): void;
|
|
312
|
-
/**
|
|
313
|
-
* Clear the input value
|
|
314
|
-
*/
|
|
315
|
-
clear(): void;
|
|
316
|
-
/**
|
|
317
|
-
* Listen for element events
|
|
318
|
-
* @returns Unsubscribe function
|
|
319
|
-
*/
|
|
320
|
-
on(eventType: EventType, listener: EventListener): () => void;
|
|
321
|
-
/**
|
|
322
|
-
* Override selected payment network for co-badge cards (card number element only)
|
|
323
|
-
*/
|
|
324
|
-
setNetwork?(network: string): Promise<void>;
|
|
325
|
-
}
|
|
326
|
-
export type EventListener = (event: CustomEvent) => void;
|
|
327
|
-
/**
|
|
328
|
-
* Re-export unified event types from ./types/events
|
|
329
|
-
* All events now include BaseEventDetail (elementType, elementId, timestamp)
|
|
330
|
-
*/
|
|
331
|
-
export type { BaseEventDetail, BlurEventDetail, CardElementChangeEventDetail, CardNumberChangeEventDetail, ChangeEventDetail, CopyEventDetail, ElementEventDetailMap, ElementEventListener, ElementEventType, ErrorCode, ErrorEventDetail, FocusEventDetail, NetworkChangedEventDetail, ReadyEventDetail, ValidationError, } from './types/events';
|
|
332
|
-
/** Primitive or an Element reference — resolved to a value during tokenization */
|
|
333
|
-
export type ElementLeaf = string | number | boolean | null | undefined | Element;
|
|
334
|
-
/** Freeform object that may contain Element references at any depth */
|
|
335
|
-
export interface ElementInputObject {
|
|
336
|
-
[key: string]: ElementLeaf | ElementInputObject | ElementInputArray;
|
|
337
|
-
}
|
|
338
|
-
/** Array that may contain Element references at any depth */
|
|
339
|
-
export type ElementInputArray = Array<ElementLeaf | ElementInputObject | ElementInputArray>;
|
|
340
|
-
export interface TokenCreateRequest {
|
|
341
|
-
type: string;
|
|
342
|
-
data: ElementInputObject;
|
|
343
|
-
metadata?: Record<string, string>;
|
|
344
|
-
containers?: string[];
|
|
345
|
-
mask?: Record<string, unknown>;
|
|
346
|
-
aliases?: string[];
|
|
347
|
-
search_indexes?: string[];
|
|
348
|
-
fingerprint_expression?: string;
|
|
349
|
-
expires_at?: string;
|
|
350
|
-
}
|
|
351
|
-
/** Token `type` is immutable after creation */
|
|
352
|
-
export type TokenUpdateRequest = Omit<Partial<TokenCreateRequest>, 'type'>;
|
|
353
|
-
export interface TokenIntentRequest {
|
|
354
|
-
type: string;
|
|
355
|
-
data: ElementInputObject;
|
|
356
|
-
}
|
|
357
|
-
export type TokenizeInput = {
|
|
358
|
-
cardNumber: Element;
|
|
359
|
-
} | {
|
|
360
|
-
number: Element;
|
|
361
|
-
cvv: Element;
|
|
362
|
-
expiry: Element;
|
|
363
|
-
};
|
|
364
|
-
/**
|
|
365
|
-
* Session response (snake_case to match BasisTheory API)
|
|
366
|
-
*/
|
|
367
|
-
export interface Session {
|
|
368
|
-
/** Unique session nonce */
|
|
369
|
-
nonce: string;
|
|
370
|
-
/** Session expiration timestamp (ISO 8601 format) */
|
|
371
|
-
expires_at?: string;
|
|
372
|
-
}
|
|
373
|
-
export interface TokenizeResult {
|
|
374
|
-
id: string;
|
|
375
|
-
type: 'card' | 'token';
|
|
376
|
-
mask?: string;
|
|
377
|
-
brand?: string;
|
|
378
|
-
expiry?: {
|
|
379
|
-
month: number;
|
|
380
|
-
year: number;
|
|
381
|
-
};
|
|
382
|
-
metadata?: Record<string, unknown>;
|
|
383
|
-
}
|
|
384
|
-
/**
|
|
385
|
-
* Token data for encryption
|
|
386
|
-
*/
|
|
387
|
-
export interface EncryptToken {
|
|
388
|
-
type: string;
|
|
389
|
-
data: ElementInputObject;
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Encrypted token result
|
|
393
|
-
*/
|
|
394
|
-
export interface EncryptedToken {
|
|
395
|
-
encrypted: string;
|
|
396
|
-
type: string;
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Options for {@link BasisTheorySDK.proxy} — HTTP verb is chosen by the method name.
|
|
400
|
-
*/
|
|
401
|
-
export interface ProxyRequestOptions {
|
|
402
|
-
/** Destination URL (ephemeral proxy). Mutually exclusive with `proxyKey`. */
|
|
403
|
-
url?: string;
|
|
404
|
-
/** Pre-configured proxy key. Mutually exclusive with `url`. */
|
|
405
|
-
proxyKey?: string;
|
|
406
|
-
/** Headers forwarded to the destination request */
|
|
407
|
-
headers?: Record<string, string>;
|
|
408
|
-
/** Request body; may contain Element references */
|
|
409
|
-
body?: ElementInputObject | unknown;
|
|
410
|
-
/** When true, the API may return response metadata alongside data */
|
|
411
|
-
includeResponseHeaders?: boolean;
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Proxy result when `includeResponseHeaders` is true (matches common API envelope).
|
|
415
|
-
*/
|
|
416
|
-
export interface ProxyResponse {
|
|
417
|
-
data: unknown;
|
|
418
|
-
headers: Record<string, string>;
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Sub-element reference for tokenization (used in CardElement)
|
|
422
|
-
*/
|
|
423
|
-
export interface SubElementRef {
|
|
424
|
-
id: string;
|
|
425
|
-
type: string;
|
|
426
|
-
mounted: boolean;
|
|
427
|
-
mount: () => never;
|
|
428
|
-
unmount: () => void;
|
|
429
|
-
update: () => Promise<void>;
|
|
430
|
-
focus: () => void;
|
|
431
|
-
blur: () => void;
|
|
432
|
-
clear: () => void;
|
|
433
|
-
on: () => () => void;
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Card element with sub-field refs
|
|
437
|
-
*/
|
|
438
|
-
export interface CardElement extends Element {
|
|
439
|
-
fields: {
|
|
440
|
-
number: SubElementRef;
|
|
441
|
-
expiryDate: SubElementRef;
|
|
442
|
-
cvc: SubElementRef;
|
|
443
|
-
};
|
|
444
|
-
}
|
|
445
|
-
export type { CardElementOptions } from './elements/create-card';
|
|
446
|
-
/**
|
|
447
|
-
* Options specific to the CopyButton element
|
|
448
|
-
*
|
|
449
|
-
* SECURITY NOTE: This element is opt-in only via allowClipboard: true.
|
|
450
|
-
* Clipboard access for raw card data may not be PCI compliant and must
|
|
451
|
-
* never be enabled inadvertently.
|
|
452
|
-
*/
|
|
453
|
-
export interface CopyButtonOptions {
|
|
454
|
-
/**
|
|
455
|
-
* REQUIRED: Explicitly opt-in to clipboard access
|
|
456
|
-
* Must be set to true - throws ConfigurationError if missing
|
|
457
|
-
*
|
|
458
|
-
* @security This flag exists because clipboard access for raw card data
|
|
459
|
-
* may not be PCI compliant and must never be enabled inadvertently.
|
|
460
|
-
*/
|
|
461
|
-
allowClipboard: true;
|
|
462
|
-
/**
|
|
463
|
-
* Static string value to copy when clicked
|
|
464
|
-
* Overridden by setValueRef() if called
|
|
465
|
-
*/
|
|
466
|
-
value?: string;
|
|
467
|
-
/**
|
|
468
|
-
* Label text displayed on the button
|
|
469
|
-
* @default 'Copy'
|
|
470
|
-
*/
|
|
471
|
-
text?: string;
|
|
472
|
-
/**
|
|
473
|
-
* Disable the button
|
|
474
|
-
* @default false
|
|
475
|
-
*/
|
|
476
|
-
disabled?: boolean;
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* CopyButton element with setValueRef method
|
|
480
|
-
*/
|
|
481
|
-
export interface CopyButtonElement extends Element {
|
|
482
|
-
/**
|
|
483
|
-
* Link this copy button to another element's value
|
|
484
|
-
* When clicked, copies the linked element's current value
|
|
485
|
-
*
|
|
486
|
-
* @param element - The element to link to (e.g., cardNumber, text)
|
|
487
|
-
*
|
|
488
|
-
* @example
|
|
489
|
-
* ```typescript
|
|
490
|
-
* const cardNumber = bt.createElement('cardNumber');
|
|
491
|
-
* const copyBtn = bt.createElement('copyButton', { allowClipboard: true });
|
|
492
|
-
*
|
|
493
|
-
* copyBtn.setValueRef(cardNumber);
|
|
494
|
-
*
|
|
495
|
-
* // Now clicking copyBtn will copy the card number value
|
|
496
|
-
* ```
|
|
497
|
-
*/
|
|
498
|
-
setValueRef(element: Element): Promise<void>;
|
|
499
|
-
}
|
|
500
|
-
export interface BasisTheorySDK {
|
|
501
|
-
/**
|
|
502
|
-
* Create a new element instance
|
|
503
|
-
* Returns Element instance immediately (synchronous)
|
|
504
|
-
*/
|
|
505
|
-
createElement(type: 'card', options?: ElementOptions): CardElement;
|
|
506
|
-
createElement(type: 'copyButton', options: CopyButtonOptions): CopyButtonElement;
|
|
507
|
-
createElement(type: Exclude<ElementType, 'card' | 'copyButton'>, options?: ElementOptions): Element;
|
|
508
|
-
createElement(type: ElementType, options?: ElementOptions | CopyButtonOptions): Element | CardElement | CopyButtonElement;
|
|
509
|
-
/**
|
|
510
|
-
* Tokenize data (creates a token)
|
|
511
|
-
*/
|
|
512
|
-
tokenize(data: ElementInputObject): Promise<TokenizeResult>;
|
|
513
|
-
/**
|
|
514
|
-
* Token CRUD operations
|
|
515
|
-
* Supports Element references - automatically resolves to secure values
|
|
516
|
-
*
|
|
517
|
-
* @example
|
|
518
|
-
* ```typescript
|
|
519
|
-
* // Create token with Elements (element references resolved automatically)
|
|
520
|
-
* const token = await bt.tokens.create({
|
|
521
|
-
* type: 'card',
|
|
522
|
-
* data: {
|
|
523
|
-
* number: cardNumberElement,
|
|
524
|
-
* expiration_month: expiryElement,
|
|
525
|
-
* cvc: cvvElement
|
|
526
|
-
* }
|
|
527
|
-
* });
|
|
528
|
-
*
|
|
529
|
-
* // Retrieve token
|
|
530
|
-
* const retrieved = await bt.tokens.retrieve(token.id);
|
|
531
|
-
*
|
|
532
|
-
* // Update token metadata
|
|
533
|
-
* await bt.tokens.update(token.id, {
|
|
534
|
-
* metadata: { source: 'updated' }
|
|
535
|
-
* });
|
|
536
|
-
*
|
|
537
|
-
* // Encrypt token with client-side JWE
|
|
538
|
-
* const encrypted = await bt.tokens.encrypt(
|
|
539
|
-
* { type: 'card', data: { number: cardNumberElement } },
|
|
540
|
-
* publicKeyPEM,
|
|
541
|
-
* 'key-id-123'
|
|
542
|
-
* );
|
|
543
|
-
* ```
|
|
544
|
-
*/
|
|
545
|
-
tokens: {
|
|
546
|
-
create(data: TokenCreateRequest): Promise<TokenizeResult>;
|
|
547
|
-
retrieve(id: string, options?: {
|
|
548
|
-
apiKey?: string;
|
|
549
|
-
}): Promise<TokenizeResult>;
|
|
550
|
-
update(id: string, data: TokenUpdateRequest): Promise<TokenizeResult>;
|
|
551
|
-
encrypt(tokenData: EncryptToken | Record<string, EncryptToken>, publicKeyPEM: string, keyId: string): Promise<EncryptedToken | Record<string, EncryptedToken>>;
|
|
552
|
-
};
|
|
553
|
-
/**
|
|
554
|
-
* Token Intent operations (short-lived sensitive data validation)
|
|
555
|
-
* Supports Element references - automatically resolves to secure values
|
|
556
|
-
*
|
|
557
|
-
* @example
|
|
558
|
-
* ```typescript
|
|
559
|
-
* // Create token intent with Elements
|
|
560
|
-
* const intent = await bt.tokenIntents.create({
|
|
561
|
-
* type: 'card',
|
|
562
|
-
* data: {
|
|
563
|
-
* number: cardNumberElement,
|
|
564
|
-
* expiration_month: 12,
|
|
565
|
-
* expiration_year: 2025,
|
|
566
|
-
* cvc: cvvElement
|
|
567
|
-
* }
|
|
568
|
-
* });
|
|
569
|
-
*
|
|
570
|
-
* // Retrieve token intent
|
|
571
|
-
* const retrieved = await bt.tokenIntents.get(intent.id);
|
|
572
|
-
* ```
|
|
573
|
-
*/
|
|
574
|
-
tokenIntents: {
|
|
575
|
-
create(data: TokenIntentRequest, options?: {
|
|
576
|
-
apiKey?: string;
|
|
577
|
-
}): Promise<TokenIntent>;
|
|
578
|
-
get(id: string, options?: {
|
|
579
|
-
apiKey?: string;
|
|
580
|
-
}): Promise<TokenIntent>;
|
|
581
|
-
};
|
|
582
|
-
/**
|
|
583
|
-
* Session management for temporary elevated access
|
|
584
|
-
*
|
|
585
|
-
* Creates a session that provides temporary elevated access to tokenized data.
|
|
586
|
-
* Sessions MUST be authorized by a Private Application on your backend.
|
|
587
|
-
*
|
|
588
|
-
* @example
|
|
589
|
-
* ```typescript
|
|
590
|
-
* // Create a session (frontend)
|
|
591
|
-
* const session = await bt.sessions.create();
|
|
592
|
-
* console.log('Session nonce:', session.nonce);
|
|
593
|
-
*
|
|
594
|
-
* // Session must be authorized on backend before use
|
|
595
|
-
* // Once authorized, use the session API key with tokens.retrieve()
|
|
596
|
-
* const token = await bt.tokens.retrieve(tokenId, {
|
|
597
|
-
* apiKey: sessionApiKey // From authorized session
|
|
598
|
-
* });
|
|
599
|
-
* ```
|
|
600
|
-
*/
|
|
601
|
-
sessions: {
|
|
602
|
-
create(): Promise<Session>;
|
|
603
|
-
};
|
|
604
|
-
/**
|
|
605
|
-
* Proxy HTTP requests through Basis Theory (Element references in `body` are resolved in the coordinator).
|
|
606
|
-
*/
|
|
607
|
-
proxy: {
|
|
608
|
-
get(options: ProxyRequestOptions & {
|
|
609
|
-
includeResponseHeaders: true;
|
|
610
|
-
}): Promise<ProxyResponse>;
|
|
611
|
-
get(options?: ProxyRequestOptions): Promise<unknown>;
|
|
612
|
-
post(options: ProxyRequestOptions & {
|
|
613
|
-
includeResponseHeaders: true;
|
|
614
|
-
}): Promise<ProxyResponse>;
|
|
615
|
-
post(options?: ProxyRequestOptions): Promise<unknown>;
|
|
616
|
-
put(options: ProxyRequestOptions & {
|
|
617
|
-
includeResponseHeaders: true;
|
|
618
|
-
}): Promise<ProxyResponse>;
|
|
619
|
-
put(options?: ProxyRequestOptions): Promise<unknown>;
|
|
620
|
-
patch(options: ProxyRequestOptions & {
|
|
621
|
-
includeResponseHeaders: true;
|
|
622
|
-
}): Promise<ProxyResponse>;
|
|
623
|
-
patch(options?: ProxyRequestOptions): Promise<unknown>;
|
|
624
|
-
delete(options: ProxyRequestOptions & {
|
|
625
|
-
includeResponseHeaders: true;
|
|
626
|
-
}): Promise<ProxyResponse>;
|
|
627
|
-
delete(options?: ProxyRequestOptions): Promise<unknown>;
|
|
628
|
-
};
|
|
629
|
-
/**
|
|
630
|
-
* Update the theme mode for all mounted elements
|
|
631
|
-
*
|
|
632
|
-
* @param mode - Theme mode to apply ('light', 'dark', or 'auto')
|
|
633
|
-
* @returns Promise that resolves when all elements have been updated
|
|
634
|
-
*
|
|
635
|
-
* @example
|
|
636
|
-
* ```typescript
|
|
637
|
-
* await bt.updateThemeMode('dark');
|
|
638
|
-
* ```
|
|
639
|
-
*/
|
|
640
|
-
updateThemeMode(mode: ThemeMode): Promise<void>;
|
|
641
|
-
}
|
|
642
|
-
/**
|
|
643
|
-
* PERFORMANCE OPTIMIZATION (Step 3):
|
|
644
|
-
* Element factories now receive LAZY coordinator initializer
|
|
645
|
-
* mount() calls this function to trigger initialization when needed
|
|
646
|
-
*/
|
|
647
|
-
export interface ElementFactory {
|
|
648
|
-
(apiKey: string, config: SDKConfig, options: ElementOptions | CopyButtonOptions | undefined, elementId: string, ensureCoordinatorReady: () => Promise<void>): Element;
|
|
649
|
-
}
|
|
650
|
-
export interface MountConfig {
|
|
651
|
-
timeoutMs: number;
|
|
652
|
-
}
|
|
653
|
-
export interface ElementMounter {
|
|
654
|
-
mount(container: HTMLElement, iframe: HTMLIFrameElement, config: MountConfig): Promise<void>;
|
|
655
|
-
unmount(iframe: HTMLIFrameElement): void;
|
|
656
|
-
}
|
|
657
|
-
export interface IframeConfig {
|
|
658
|
-
src: string;
|
|
659
|
-
sandbox: string;
|
|
660
|
-
title: string;
|
|
661
|
-
/**
|
|
662
|
-
* Feature policy/permissions for the iframe (e.g., 'clipboard-write', 'payment *')
|
|
663
|
-
* @default 'payment *'
|
|
664
|
-
*/
|
|
665
|
-
allow?: string;
|
|
666
|
-
}
|
|
667
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|