@basis-theory/web-elements 2.11.2 → 3.0.0-beta.3

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 (104) hide show
  1. package/README.md +343 -2
  2. package/dist/.vite/manifest.json +27 -0
  3. package/dist/api-client/src/api-client.d.ts +11 -0
  4. package/dist/api-client/src/api-client.d.ts.map +1 -0
  5. package/dist/api-client/src/http-client.d.ts +24 -0
  6. package/dist/api-client/src/http-client.d.ts.map +1 -0
  7. package/dist/api-client/src/index.d.ts +9 -0
  8. package/dist/api-client/src/index.d.ts.map +1 -0
  9. package/dist/api-client/src/services/sessions.d.ts +19 -0
  10. package/dist/api-client/src/services/sessions.d.ts.map +1 -0
  11. package/dist/api-client/src/services/token-intents.d.ts +17 -0
  12. package/dist/api-client/src/services/token-intents.d.ts.map +1 -0
  13. package/dist/api-client/src/services/tokens.d.ts +19 -0
  14. package/dist/api-client/src/services/tokens.d.ts.map +1 -0
  15. package/dist/api-client/src/types.d.ts +313 -0
  16. package/dist/api-client/src/types.d.ts.map +1 -0
  17. package/dist/basis-theory-sdk.es.js +6 -0
  18. package/dist/basis-theory-sdk.es.js.map +1 -0
  19. package/dist/basis-theory-sdk.umd.js +1 -0
  20. package/dist/basis-theory-sdk.umd.js.map +1 -0
  21. package/dist/create-card-DipDWgph.js +232 -0
  22. package/dist/create-card-DipDWgph.js.map +1 -0
  23. package/dist/index-BBfuUaLw.js +2317 -0
  24. package/dist/index-BBfuUaLw.js.map +1 -0
  25. package/dist/loader/basis-theory.min.js +1 -0
  26. package/dist/postmessage/src/client.d.ts +7 -0
  27. package/dist/postmessage/src/client.d.ts.map +1 -0
  28. package/dist/postmessage/src/event-map.d.ts +135 -0
  29. package/dist/postmessage/src/event-map.d.ts.map +1 -0
  30. package/dist/postmessage/src/index.d.ts +9 -0
  31. package/dist/postmessage/src/index.d.ts.map +1 -0
  32. package/dist/postmessage/src/server.d.ts +11 -0
  33. package/dist/postmessage/src/server.d.ts.map +1 -0
  34. package/dist/postmessage/src/types.d.ts +71 -0
  35. package/dist/postmessage/src/types.d.ts.map +1 -0
  36. package/dist/shared/src/api-url-resolver.d.ts +22 -0
  37. package/dist/shared/src/api-url-resolver.d.ts.map +1 -0
  38. package/dist/shared/src/debug-logger.d.ts +16 -0
  39. package/dist/shared/src/debug-logger.d.ts.map +1 -0
  40. package/dist/shared/src/deep-sanitization.d.ts +24 -0
  41. package/dist/shared/src/deep-sanitization.d.ts.map +1 -0
  42. package/dist/shared/src/errors.d.ts +93 -0
  43. package/dist/shared/src/errors.d.ts.map +1 -0
  44. package/dist/shared/src/generate-id.d.ts +13 -0
  45. package/dist/shared/src/generate-id.d.ts.map +1 -0
  46. package/dist/shared/src/index.d.ts +13 -0
  47. package/dist/shared/src/index.d.ts.map +1 -0
  48. package/dist/shared/src/logger-context.d.ts +25 -0
  49. package/dist/shared/src/logger-context.d.ts.map +1 -0
  50. package/dist/sri.json +22 -0
  51. package/dist/stats.html +4949 -0
  52. package/dist/web-elements/src/BasisTheory.d.ts +47 -0
  53. package/dist/web-elements/src/BasisTheory.d.ts.map +1 -0
  54. package/dist/web-elements/src/basis-theory.d.ts +62 -0
  55. package/dist/web-elements/src/basis-theory.d.ts.map +1 -0
  56. package/dist/web-elements/src/elements/create-card-number.d.ts +14 -0
  57. package/dist/web-elements/src/elements/create-card-number.d.ts.map +1 -0
  58. package/dist/web-elements/src/elements/create-card.d.ts +37 -0
  59. package/dist/web-elements/src/elements/create-card.d.ts.map +1 -0
  60. package/dist/web-elements/src/elements/create-cvv.d.ts +10 -0
  61. package/dist/web-elements/src/elements/create-cvv.d.ts.map +1 -0
  62. package/dist/web-elements/src/elements/create-expiry.d.ts +10 -0
  63. package/dist/web-elements/src/elements/create-expiry.d.ts.map +1 -0
  64. package/dist/web-elements/src/elements/create-text.d.ts +13 -0
  65. package/dist/web-elements/src/elements/create-text.d.ts.map +1 -0
  66. package/dist/web-elements/src/index.d.ts +27 -0
  67. package/dist/web-elements/src/index.d.ts.map +1 -0
  68. package/dist/web-elements/src/mounter/create-mounter.d.ts +11 -0
  69. package/dist/web-elements/src/mounter/create-mounter.d.ts.map +1 -0
  70. package/dist/web-elements/src/theme/default-theme.d.ts +22 -0
  71. package/dist/web-elements/src/theme/default-theme.d.ts.map +1 -0
  72. package/dist/web-elements/src/theme/inject-theme-dark.d.ts +13 -0
  73. package/dist/web-elements/src/theme/inject-theme-dark.d.ts.map +1 -0
  74. package/dist/web-elements/src/theme/inject-theme.d.ts +20 -0
  75. package/dist/web-elements/src/theme/inject-theme.d.ts.map +1 -0
  76. package/dist/web-elements/src/types/events.d.ts +137 -0
  77. package/dist/web-elements/src/types/events.d.ts.map +1 -0
  78. package/dist/web-elements/src/types/theme.d.ts +91 -0
  79. package/dist/web-elements/src/types/theme.d.ts.map +1 -0
  80. package/dist/web-elements/src/types.d.ts +537 -0
  81. package/dist/web-elements/src/types.d.ts.map +1 -0
  82. package/dist/web-elements/src/utils/create-event-dispatcher.d.ts +47 -0
  83. package/dist/web-elements/src/utils/create-event-dispatcher.d.ts.map +1 -0
  84. package/dist/web-elements/src/utils/create-iframe.d.ts +10 -0
  85. package/dist/web-elements/src/utils/create-iframe.d.ts.map +1 -0
  86. package/dist/web-elements/src/utils/resolve-element-references.d.ts +20 -0
  87. package/dist/web-elements/src/utils/resolve-element-references.d.ts.map +1 -0
  88. package/dist/web-elements/src/utils/validate-element-options.d.ts +11 -0
  89. package/dist/web-elements/src/utils/validate-element-options.d.ts.map +1 -0
  90. package/dist/web-elements/src/utils/validate-sdk-config.d.ts +15 -0
  91. package/dist/web-elements/src/utils/validate-sdk-config.d.ts.map +1 -0
  92. package/dist/web-elements/src/utils/warn-unknown-keys.d.ts +15 -0
  93. package/dist/web-elements/src/utils/warn-unknown-keys.d.ts.map +1 -0
  94. package/dist/web-elements/src/version.d.ts +25 -0
  95. package/dist/web-elements/src/version.d.ts.map +1 -0
  96. package/package.json +53 -72
  97. package/LICENSE +0 -202
  98. package/dist/LICENSE +0 -202
  99. package/dist/README.md +0 -3
  100. package/dist/bundle/index.js +0 -1
  101. package/dist/main/index.js +0 -1161
  102. package/dist/module/module.js +0 -1159
  103. package/dist/package.json +0 -37
  104. package/dist/types/index.d.ts +0 -732
package/README.md CHANGED
@@ -1,3 +1,344 @@
1
- # Basis Theory Web Elements
1
+ # @basis-theory/web-elements
2
2
 
3
- ## [Documentation](https://developers.basistheory.com/docs/sdks/web/web-elements/)
3
+ Secure, PCI-compliant iframe elements for collecting sensitive data in web applications. Card data never touches your servers.
4
+
5
+ ## Installation
6
+
7
+ ### npm
8
+
9
+ ```bash
10
+ npm install @basis-theory/web-elements@beta
11
+ ```
12
+
13
+ ### yarn
14
+
15
+ ```bash
16
+ yarn add @basis-theory/web-elements@beta
17
+ ```
18
+
19
+ ### CDN
20
+
21
+ ```html
22
+ <script src="https://js.basistheory.com/3.0.0-beta.2/web-elements/basis-theory.js"></script>
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ ```typescript
28
+ import BasisTheory from '@basis-theory/web-elements';
29
+
30
+ // Initialize (synchronous -- returns immediately)
31
+ const bt = BasisTheory('pk_test_...');
32
+
33
+ // Create elements
34
+ const cardNumberEl = bt.createElement('cardNumber', {
35
+ placeholder: '4242 4242 4242 4242',
36
+ });
37
+ const expiryEl = bt.createElement('expiry', {
38
+ placeholder: 'MM/YY',
39
+ });
40
+ const cvvEl = bt.createElement('cvv', {
41
+ placeholder: '123',
42
+ });
43
+
44
+ // Mount to DOM (async -- creates secure iframes)
45
+ await Promise.all([
46
+ cardNumberEl.mount('#card-number'),
47
+ expiryEl.mount('#expiry'),
48
+ cvvEl.mount('#cvv'),
49
+ ]);
50
+
51
+ // Listen for validation changes
52
+ cardNumberEl.on('change', (event) => {
53
+ console.log('Valid:', event.detail.isValid);
54
+ console.log('Brand:', event.detail.cardBrand);
55
+ });
56
+
57
+ // Tokenize on form submission
58
+ const token = await bt.tokens.create({
59
+ type: 'card',
60
+ data: {
61
+ number: cardNumberEl,
62
+ expiration_month: expiryEl,
63
+ expiration_year: expiryEl,
64
+ cvc: cvvEl,
65
+ },
66
+ });
67
+
68
+ console.log('Token ID:', token.id);
69
+ ```
70
+
71
+ ### CDN Usage
72
+
73
+ ```html
74
+ <script src="https://js.basistheory.com/3.0.0-beta.2/web-elements/basis-theory.js"></script>
75
+ <script>
76
+ document.addEventListener('DOMContentLoaded', async () => {
77
+ const bt = BasisTheory('pk_test_...');
78
+
79
+ const cardNumberEl = bt.createElement('cardNumber');
80
+ const expiryEl = bt.createElement('expiry');
81
+ const cvvEl = bt.createElement('cvv');
82
+
83
+ await Promise.all([
84
+ cardNumberEl.mount('#card-number'),
85
+ expiryEl.mount('#expiry'),
86
+ cvvEl.mount('#cvv'),
87
+ ]);
88
+ });
89
+ </script>
90
+ ```
91
+
92
+ ## Element Types
93
+
94
+ | Type | `createElement` key | Description |
95
+ |------|---------------------|-------------|
96
+ | Card Number | `'cardNumber'` | PAN input with Luhn validation and brand detection |
97
+ | Expiry | `'expiry'` | MM/YY expiration date input |
98
+ | CVV | `'cvv'` | Card verification code input |
99
+ | Text | `'text'` | General-purpose secure text input (SSN, routing numbers, etc.) |
100
+
101
+ ### Shared Options
102
+
103
+ All element types accept these options in `createElement()` and `element.update()`:
104
+
105
+ | Option | Type | Default | Description |
106
+ |--------|------|---------|-------------|
107
+ | `placeholder` | `string` | -- | Placeholder text shown when the input is empty |
108
+ | `ariaLabel` | `string` | Element-specific | ARIA label for screen readers |
109
+ | `disabled` | `boolean` | `false` | Disables the input |
110
+ | `readOnly` | `boolean` | `false` | Makes the input read-only |
111
+
112
+ ### Text Element Options
113
+
114
+ | Option | Type | Description |
115
+ |--------|------|-------------|
116
+ | `validation` | `RegExp` | Pattern the value must match to be valid |
117
+ | `required` | `boolean` | Whether the field is required |
118
+ | `maxLength` | `number` | Maximum character length |
119
+ | `password` | `boolean` | Renders as a password field |
120
+ | `inputMode` | `string` | Mobile keyboard hint (`'numeric'`, `'tel'`, etc.) |
121
+ | `mask` | `(RegExp \| string)[]` | Character-by-character input mask |
122
+ | `transform` | `[RegExp, string]` | Transform applied before tokenization |
123
+
124
+ ### CVV Element Options
125
+
126
+ | Option | Type | Default | Description |
127
+ |--------|------|---------|-------------|
128
+ | `showToggle` | `boolean` | `false` | Renders a show/hide toggle button inside the field |
129
+
130
+ ## Element Methods
131
+
132
+ Every element exposes the same interface:
133
+
134
+ | Method | Signature | Description |
135
+ |--------|-----------|-------------|
136
+ | `mount` | `(selector: string \| HTMLElement) => Promise<void>` | Attaches the iframe to the DOM |
137
+ | `unmount` | `() => void` | Removes the iframe from the DOM |
138
+ | `update` | `(options) => Promise<void>` | Updates options on a mounted element |
139
+ | `focus` | `() => void` | Focuses the input |
140
+ | `blur` | `() => void` | Blurs the input |
141
+ | `clear` | `() => void` | Clears the current value |
142
+ | `on` | `(event, listener) => () => void` | Subscribes to an event; returns an unsubscribe function |
143
+
144
+ Properties: `id` (string), `type` (ElementType), `mounted` (boolean).
145
+
146
+ ## Events
147
+
148
+ | Event | Fires when |
149
+ |-------|-----------|
150
+ | `ready` | Element iframe is loaded and interactive |
151
+ | `change` | Input value changes |
152
+ | `focus` | Element receives focus |
153
+ | `blur` | Element loses focus |
154
+ | `error` | An infrastructure or API error occurs |
155
+
156
+ ### change Event Payload
157
+
158
+ All elements include these fields in `event.detail`:
159
+
160
+ | Field | Type | Description |
161
+ |-------|------|-------------|
162
+ | `isValid` | `boolean` | Input passes all validation rules |
163
+ | `isEmpty` | `boolean` | Input is empty |
164
+ | `error` | `ValidationError \| null` | Validation error, or `null` if valid |
165
+ | `elementType` | `string` | Element type that fired the event |
166
+ | `elementId` | `string` | Unique element ID |
167
+ | `timestamp` | `number` | Unix timestamp (ms) |
168
+
169
+ The `cardNumber` element adds: `cardBrand`, `last4`, `bin`, `cvvLengths`, `potentialBrands`, and `matchStrength`.
170
+
171
+ ```typescript
172
+ cardNumberEl.on('change', (event) => {
173
+ const { isValid, cardBrand, last4 } = event.detail;
174
+ console.log(`${cardBrand} ...${last4}`, isValid);
175
+ });
176
+ ```
177
+
178
+ ### error Event Codes
179
+
180
+ | Code | Description |
181
+ |------|-------------|
182
+ | `MOUNT_ERROR` | Failed to mount the element iframe |
183
+ | `POSTMESSAGE_TIMEOUT` | PostMessage timeout |
184
+ | `IFRAME_LOAD_ERROR` | Element iframe failed to load |
185
+ | `INITIALIZATION_ERROR` | SDK or coordinator failed to initialize |
186
+ | `API_ERROR` | Basis Theory API returned an error |
187
+ | `NETWORK_ERROR` | Network request failed |
188
+ | `VALIDATION_ERROR` | Input failed client-side validation |
189
+ | `INVALID_CONFIGURATION` | Invalid SDK or element options |
190
+ | `UNKNOWN_ERROR` | Unexpected error |
191
+
192
+ ## SDK Options
193
+
194
+ ```typescript
195
+ const bt = BasisTheory('pk_test_...', {
196
+ debug: false, // Enable verbose debug logging
197
+ themeMode: 'auto', // 'light' | 'dark' | 'auto'
198
+ theme: { /* ThemeTokens */ },
199
+ darkTheme: { /* ThemeTokens */ },
200
+ timeoutMs: 30000, // PostMessage timeout (ms)
201
+ });
202
+ ```
203
+
204
+ ## Services
205
+
206
+ ### tokens
207
+
208
+ ```typescript
209
+ // Create a token
210
+ const token = await bt.tokens.create({
211
+ type: 'card',
212
+ data: {
213
+ number: cardNumberEl,
214
+ expiration_month: expiryEl,
215
+ expiration_year: expiryEl,
216
+ cvc: cvvEl,
217
+ },
218
+ });
219
+
220
+ // Retrieve a token
221
+ const retrieved = await bt.tokens.retrieve(token.id, {
222
+ apiKey: sessionApiKey, // from an authorized session
223
+ });
224
+
225
+ // Update a token
226
+ await bt.tokens.update(token.id, {
227
+ metadata: { source: 'updated' },
228
+ });
229
+
230
+ // Encrypt with client-side JWE
231
+ const encrypted = await bt.tokens.encrypt(
232
+ { type: 'card', data: { number: cardNumberEl, cvc: cvvEl } },
233
+ publicKeyPEM,
234
+ 'key-id-123'
235
+ );
236
+ ```
237
+
238
+ ### tokenize
239
+
240
+ ```typescript
241
+ const result = await bt.tokenize({
242
+ number: cardNumberEl,
243
+ cvv: cvvEl,
244
+ expiry: expiryEl,
245
+ });
246
+ ```
247
+
248
+ ### tokenIntents
249
+
250
+ ```typescript
251
+ const intent = await bt.tokenIntents.create({
252
+ type: 'card',
253
+ data: {
254
+ number: cardNumberEl,
255
+ expiration_month: expiryEl,
256
+ expiration_year: expiryEl,
257
+ cvc: cvvEl,
258
+ },
259
+ });
260
+
261
+ const retrieved = await bt.tokenIntents.get(intent.id);
262
+ ```
263
+
264
+ ### sessions
265
+
266
+ ```typescript
267
+ const session = await bt.sessions.create();
268
+ // Send session.nonce to your backend to authorize
269
+ // Backend returns an apiKey for elevated access
270
+
271
+ const token = await bt.tokens.retrieve(tokenId, {
272
+ apiKey: sessionApiKey,
273
+ });
274
+ ```
275
+
276
+ ## Theming
277
+
278
+ Pass design tokens at initialization and switch modes at runtime:
279
+
280
+ ```typescript
281
+ const bt = BasisTheory('pk_test_...', {
282
+ themeMode: 'auto',
283
+ theme: {
284
+ colors: {
285
+ primary: '#007bff',
286
+ error: '#dc3545',
287
+ success: '#28a745',
288
+ text: { primary: '#1a1a1a', placeholder: '#6c757d' },
289
+ background: { default: '#ffffff' },
290
+ border: { default: '#dee2e6', focus: '#007bff' },
291
+ },
292
+ typography: {
293
+ fontFamily: 'Inter, sans-serif',
294
+ fontSize: { base: '16px' },
295
+ fontWeight: { normal: '400' },
296
+ },
297
+ spacing: { sm: '8px', md: '12px', lg: '16px' },
298
+ borders: {
299
+ radius: { base: '6px' },
300
+ width: { base: '1px' },
301
+ },
302
+ },
303
+ });
304
+
305
+ // Switch theme mode at runtime
306
+ await bt.updateThemeMode('dark');
307
+ ```
308
+
309
+ ## TypeScript
310
+
311
+ The package ships full type definitions. Key exports:
312
+
313
+ ```typescript
314
+ import type {
315
+ BasisTheorySDK,
316
+ Element,
317
+ ElementType,
318
+ ElementOptions,
319
+ SDKOptions,
320
+ ChangeEventDetail,
321
+ CardNumberChangeEventDetail,
322
+ ReadyEventDetail,
323
+ ErrorEventDetail,
324
+ ErrorCode,
325
+ ValidationError,
326
+ TokenizeResult,
327
+ Session,
328
+ } from '@basis-theory/web-elements';
329
+ ```
330
+
331
+ ## Documentation
332
+
333
+ Full documentation: [https://developers.basistheory.com/docs/sdks/web/web-elements/](https://developers.basistheory.com/docs/sdks/web/web-elements/)
334
+
335
+ - [Getting Started](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/getting-started)
336
+ - [Element Types](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/components)
337
+ - [Events](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/events)
338
+ - [Services](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/services)
339
+ - [Theming](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/theming)
340
+ - [Migration Guide (v2 to v3)](https://developers.basistheory.com/docs/sdks/web/web-elements/v3/migration)
341
+
342
+ ## License
343
+
344
+ Apache-2.0
@@ -0,0 +1,27 @@
1
+ {
2
+ "_index-BBfuUaLw.js": {
3
+ "file": "index-BBfuUaLw.js",
4
+ "name": "index",
5
+ "dynamicImports": [
6
+ "src/elements/create-card.ts"
7
+ ],
8
+ "integrity": "sha384-uSoWS5QGRB9FD+tnc9SotWKHHU5/nLmr2IVmjU/YMnBOBwg3MOXjsj7VYlFw+Rpm"
9
+ },
10
+ "src/elements/create-card.ts": {
11
+ "file": "create-card-DipDWgph.js",
12
+ "name": "create-card",
13
+ "src": "src/elements/create-card.ts",
14
+ "isDynamicEntry": true,
15
+ "imports": [
16
+ "_index-BBfuUaLw.js"
17
+ ],
18
+ "integrity": "sha384-ghGZpmJtjKvmURaj6QaLxtRDDbnc+4EKBMsgYO68iicGxqHHmGAsWyjbWhxBmreJ"
19
+ },
20
+ "src/index.ts": {
21
+ "file": "basis-theory-sdk.umd.js",
22
+ "name": "index",
23
+ "src": "src/index.ts",
24
+ "isEntry": true,
25
+ "integrity": "sha384-ddyMdTUvEA0NROPra0/eWz+jWaUMNSsyhhlM1rCTNGdqTMkLAHqd5G/QQPZ/uJbv"
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * BasisTheory API Client
3
+ *
4
+ * Provides tokenization, BIN lookup, and proxy services
5
+ */
6
+ import type { BasisTheoryClient, HttpClientConfig } from './types';
7
+ /**
8
+ * Create BasisTheory API client
9
+ */
10
+ export declare const createBasisTheoryClient: (apiKey: string, options?: Partial<HttpClientConfig>) => BasisTheoryClient;
11
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../api-client/src/api-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,iBAAiB,EAEjB,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,EACd,UAAS,OAAO,CAAC,gBAAgB,CAAM,KACtC,iBA0KF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * HTTP Client with retry, timeout, and caching
3
+ */
4
+ import type { DebugLogger } from '@basis-theory-elements/shared';
5
+ import type { HttpClientConfig, HttpResponse, RequestOptions } from './types';
6
+ /**
7
+ * Create HTTP client with retry, timeout, and caching
8
+ */
9
+ export declare const createHttpClient: (config: HttpClientConfig) => {
10
+ /**
11
+ * Make HTTP request
12
+ */
13
+ request<T = unknown>(url: string, options?: RequestOptions, log?: DebugLogger): Promise<HttpResponse<T>>;
14
+ /**
15
+ * Clear cache
16
+ */
17
+ clearCache(): void;
18
+ /**
19
+ * Get cache size
20
+ */
21
+ getCacheSize(): number;
22
+ };
23
+ export type HttpClient = ReturnType<typeof createHttpClient>;
24
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../api-client/src/http-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAEV,gBAAgB,EAEhB,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,gBAAgB;IA0QrD;;OAEG;YACW,CAAC,iBACR,MAAM,YACF,cAAc,QACjB,WAAW,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAkE3B;;OAEG;kBACW,IAAI;IAIlB;;OAEG;oBACa,MAAM;CAIzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @basis-theory-elements/api-client
3
+ *
4
+ * Standalone HTTP client for BasisTheory API with tokenization, BIN lookup, and proxy
5
+ */
6
+ export { createBasisTheoryClient } from './api-client';
7
+ export { createHttpClient } from './http-client';
8
+ export type { BasisTheoryClient, BinInfo, CacheEntry, HttpClientConfig, HttpError, HttpResponse, ProxyRequest, RequestOptions, Token, TokenCreateRequest, TokenData, TokenIntent, TokenIntentCreateRequest, TokenUpdateRequest, TokenizeRequest, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../api-client/src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY,EAEV,iBAAiB,EAEjB,OAAO,EAEP,UAAU,EAEV,gBAAgB,EAChB,SAAS,EAET,YAAY,EAEZ,YAAY,EACZ,cAAc,EAEd,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Sessions Service
3
+ *
4
+ * Handles session creation for temporary elevated access to tokenized data
5
+ * Sessions must be authorized on the backend by a Private Application
6
+ */
7
+ import type { HttpClient } from '../http-client';
8
+ import type { RequestOptions, Session } from '../types';
9
+ /**
10
+ * Sessions Service Interface
11
+ */
12
+ export interface SessionsService {
13
+ create(options?: RequestOptions): Promise<Session>;
14
+ }
15
+ /**
16
+ * Create sessions service
17
+ */
18
+ export declare const createSessionsService: (httpClient: HttpClient) => SessionsService;
19
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../../../api-client/src/services/sessions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,KACrB,eAmDF,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Token Intents Service
3
+ *
4
+ * Handles token intent operations (create, get)
5
+ * Token Intents are short-lived placeholders for sensitive data validation
6
+ */
7
+ import type { HttpClient } from '../http-client';
8
+ import type { RequestOptions, TokenIntent, TokenIntentCreateRequest } from '../types';
9
+ export interface TokenIntentsService {
10
+ create(data: TokenIntentCreateRequest, options?: RequestOptions): Promise<TokenIntent>;
11
+ get(id: string, options?: RequestOptions): Promise<TokenIntent>;
12
+ }
13
+ /**
14
+ * Create token intents service bound to HTTP client
15
+ */
16
+ export declare const createTokenIntentsService: (httpClient: HttpClient) => TokenIntentsService;
17
+ //# sourceMappingURL=token-intents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-intents.d.ts","sourceRoot":"","sources":["../../../../../api-client/src/services/token-intents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CACJ,IAAI,EAAE,wBAAwB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,UAAU,KACrB,mBA4DF,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Tokens Service
3
+ *
4
+ * Handles all token-related API operations (CRUD)
5
+ * Uses snake_case to match BasisTheory API directly
6
+ * Separated from main API client to keep bundle size lean
7
+ */
8
+ import type { HttpClient } from '../http-client';
9
+ import type { RequestOptions, Token, TokenCreateRequest, TokenUpdateRequest } from '../types';
10
+ export interface TokensService {
11
+ create(data: TokenCreateRequest, options?: RequestOptions): Promise<Token>;
12
+ update(id: string, data: TokenUpdateRequest, options?: RequestOptions): Promise<Token>;
13
+ retrieve(id: string, options?: RequestOptions): Promise<Token>;
14
+ }
15
+ /**
16
+ * Create tokens service bound to HTTP client
17
+ */
18
+ export declare const createTokensService: (httpClient: HttpClient) => TokensService;
19
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../api-client/src/services/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,kBAAkB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,CAAC;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAChE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,UAAU,KAAG,aAsH5D,CAAC"}