@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
@@ -0,0 +1,11 @@
1
+ /**
2
+ * PostMessage Server (Iframe Side)
3
+ * Production-ready server for handling requests from parent
4
+ */
5
+ import type { PostMessageServer } from './types';
6
+ export interface PostMessageServerConfig {
7
+ allowedOrigins: string[];
8
+ debug?: boolean;
9
+ }
10
+ export declare const createPostMessageServer: (config: PostMessageServerConfig) => PostMessageServer;
11
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../postmessage/src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,uBAAuB,KAC9B,iBAqNF,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * PostMessage Module Types
3
+ * Production-ready type definitions for secure cross-iframe communication
4
+ */
5
+ /**
6
+ * Message types using semantic prefixes
7
+ * EVENT_* = iframe → parent, CMD_* = parent → iframe, RESPONSE_* = follows request
8
+ */
9
+ export type ElementEvent = 'EVENT_READY' | 'EVENT_MASK_READY' | 'EVENT_VALUE_CHANGED' | 'EVENT_FOCUS' | 'EVENT_BLUR' | 'EVENT_ERROR';
10
+ export type ElementCommand = 'CMD_SET_CONFIG' | 'CMD_SET_VALUE' | 'CMD_FOCUS' | 'CMD_BLUR' | 'CMD_CLEAR' | 'CMD_TOKENIZE' | 'CMD_TOKENS_ENCRYPT' | 'CMD_VALIDATE';
11
+ export type ElementResponse = 'RESPONSE_CONFIG_OK' | 'RESPONSE_CONFIG_ERROR' | 'RESPONSE_TOKEN_OK' | 'RESPONSE_TOKEN_ERROR' | 'RESPONSE_VALIDATION';
12
+ export type SystemMessage = 'SYS_PING' | 'SYS_PONG' | 'SYS_ACK';
13
+ export type MessageType = ElementEvent | ElementCommand | ElementResponse | SystemMessage;
14
+ export interface RetryConfig {
15
+ maxRetries: number;
16
+ initialDelay: number;
17
+ maxDelay: number;
18
+ backoffFactor: number;
19
+ }
20
+ export interface PostMessageConfig {
21
+ targetOrigin: string;
22
+ timeout?: number;
23
+ retries?: number | RetryConfig;
24
+ debug?: boolean;
25
+ }
26
+ export interface PostMessageRequest<T = any> {
27
+ type: MessageType | string;
28
+ nonce: string;
29
+ timestamp: number;
30
+ payload?: T;
31
+ }
32
+ export interface PostMessageResponse<T = any> {
33
+ type: MessageType | string;
34
+ nonce: string;
35
+ timestamp: number;
36
+ payload?: T;
37
+ error?: PostMessageError;
38
+ }
39
+ export type TimeoutReason = 'timeout' | 'blocked' | 'origin_mismatch' | 'network';
40
+ export interface PostMessageError {
41
+ code: string;
42
+ message: string;
43
+ reason?: TimeoutReason;
44
+ status?: number;
45
+ statusCode?: number;
46
+ validationErrors?: Record<string, string[]>;
47
+ body?: any;
48
+ retryCount?: number;
49
+ details?: Record<string, unknown>;
50
+ }
51
+ export interface PendingRequest<T = any> {
52
+ resolve: (value: T) => void;
53
+ reject: (error: Error) => void;
54
+ timeout: NodeJS.Timeout;
55
+ timestamp: number;
56
+ }
57
+ export type MessageHandler<TRequest = any, TResponse = any> = (payload: TRequest) => Promise<TResponse> | TResponse;
58
+ export interface PostMessageClient {
59
+ sendRequest<TResponse = any, TRequest = any>(type: string, payload?: TRequest): Promise<TResponse>;
60
+ ping(timeout?: number): Promise<number>;
61
+ subscribe(type: string, callback: (payload: any) => void): () => void;
62
+ destroy(): void;
63
+ getPendingCount(): number;
64
+ }
65
+ export interface PostMessageServer {
66
+ handle<TRequest = any, TResponse = any>(type: string, handler: MessageHandler<TRequest, TResponse>): void;
67
+ broadcast(type: string, payload?: any): void;
68
+ destroy(): void;
69
+ getHandlerCount(): number;
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../postmessage/src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * API URL Resolution Utility
3
+ *
4
+ * Simple same-origin API detection for v3
5
+ * Shared across SDK and Elements packages
6
+ */
7
+ /**
8
+ * Get default API base URL
9
+ *
10
+ * If user provides apiBaseUrl, use it.
11
+ * Otherwise auto-detect based on environment:
12
+ * - localhost or dev → https://js.flock-dev.com/api
13
+ * - uat → https://js.btsandbox.com/api
14
+ * - prod → https://js.basistheory.com/api
15
+ *
16
+ * @param userProvidedUrl - Optional user-provided API URL
17
+ * @param enforceOrigin - If true, throws error for unauthorized origins (default: false)
18
+ * SDK: false (runs on customer domains)
19
+ * Elements: true (must run on BasisTheory domains)
20
+ */
21
+ export declare const getDefaultApiBaseUrl: (userProvidedUrl?: string, enforceOrigin?: boolean) => string;
22
+ //# sourceMappingURL=api-url-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-url-resolver.d.ts","sourceRoot":"","sources":["../../../../shared/src/api-url-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,MAAM,EACxB,uBAAqB,KACpB,MAkCF,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Universal Debug Logger
3
+ * PCI-compliant logging that never exposes sensitive data
4
+ *
5
+ * FR-005: Deep Logger Sanitization
6
+ * - Recursively sanitizes nested objects/arrays
7
+ * - Masks PANs to first 6 + last 4
8
+ * - Redacts CVV/PIN/passwords completely
9
+ * - Handles circular references
10
+ */
11
+ export type DebugLogger = (action: string, metadata?: Record<string, unknown>) => void;
12
+ /**
13
+ * Create a debug logger for a specific package
14
+ */
15
+ export declare const createDebugLogger: (packageName: string, enabled: boolean) => DebugLogger;
16
+ //# sourceMappingURL=debug-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-logger.d.ts","sourceRoot":"","sources":["../../../../shared/src/debug-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,IAAI,CAAC;AAiDV;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,SAAS,OAAO,KACf,WAUF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * FR-005: Deep Logger Sanitization
3
+ * PCI-DSS Requirement 3.2 - Never Store Sensitive Authentication Data
4
+ *
5
+ * Recursively sanitizes objects to prevent PAN/CVV leakage in logs.
6
+ */
7
+ /**
8
+ * Check if a field name matches PAN patterns
9
+ */
10
+ export declare const isPANField: (key: string) => boolean;
11
+ /**
12
+ * Check if a field name matches redact patterns
13
+ */
14
+ export declare const isRedactField: (key: string) => boolean;
15
+ /**
16
+ * Deep sanitize an unknown value
17
+ *
18
+ * @param data - Data to sanitize
19
+ * @param depth - Current recursion depth (max 5)
20
+ * @param visited - WeakSet to track visited objects (circular reference detection)
21
+ * @returns Sanitized data
22
+ */
23
+ export declare const sanitizeDeep: (data: unknown, depth?: number, ancestors?: WeakSet<object>) => unknown;
24
+ //# sourceMappingURL=deep-sanitization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-sanitization.d.ts","sourceRoot":"","sources":["../../../../shared/src/deep-sanitization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,OAExC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,OAE3C,CAAC;AAgFF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,OAAO,EACb,cAAS,EACT,2BAAiC,KAChC,OAgEF,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * BasisTheory Structured Error Types
3
+ *
4
+ * Functional error factories for consistent error handling across SDK, Elements, and API Client.
5
+ */
6
+ export interface BasisTheoryErrorType extends Error {
7
+ readonly code: string;
8
+ readonly details?: Record<string, any>;
9
+ toJSON: () => {
10
+ name: string;
11
+ code: string;
12
+ message: string;
13
+ details?: Record<string, any>;
14
+ };
15
+ }
16
+ /**
17
+ * Base BasisTheoryError factory
18
+ * Creates error objects with consistent structure
19
+ */
20
+ export declare const createBasisTheoryError: (code: string, message: string, details?: Record<string, any>) => BasisTheoryErrorType;
21
+ /**
22
+ * BasisTheoryError - Generic base error
23
+ */
24
+ export declare const BasisTheoryError: (code: string, message: string, details?: Record<string, any>) => BasisTheoryErrorType;
25
+ /**
26
+ * ValidationError - Input validation failures
27
+ *
28
+ * @example
29
+ * throw ValidationError('Card number is invalid', 'cardNumber', {
30
+ * received: '1234',
31
+ * expected: '13-19 digits'
32
+ * });
33
+ */
34
+ export interface ValidationErrorType extends BasisTheoryErrorType {
35
+ readonly field?: string;
36
+ }
37
+ export declare const ValidationError: (message: string, field?: string, details?: Record<string, any>) => ValidationErrorType;
38
+ /**
39
+ * CoordinatorError - Errors from coordinator iframe operations
40
+ *
41
+ * @example
42
+ * throw CoordinatorError('Tokenization failed', {
43
+ * operation: 'tokenize',
44
+ * elementId: 'card-123'
45
+ * });
46
+ */
47
+ export declare const CoordinatorError: (message: string, details?: Record<string, any>) => BasisTheoryErrorType;
48
+ /**
49
+ * ElementError - Errors from element iframe operations
50
+ *
51
+ * @example
52
+ * throw ElementError('Element not mounted', 'card-number-123', {
53
+ * reason: 'mount() was never called'
54
+ * });
55
+ */
56
+ export interface ElementErrorType extends BasisTheoryErrorType {
57
+ readonly elementId?: string;
58
+ }
59
+ export declare const ElementError: (message: string, elementId?: string, details?: Record<string, any>) => ElementErrorType;
60
+ /**
61
+ * NetworkError - HTTP/Network-related errors
62
+ *
63
+ * @example
64
+ * throw NetworkError('API request failed', 500, {
65
+ * url: 'https://api.basistheory.com/tokens',
66
+ * method: 'POST'
67
+ * });
68
+ */
69
+ export interface NetworkErrorType extends BasisTheoryErrorType {
70
+ readonly statusCode?: number;
71
+ }
72
+ export declare const NetworkError: (message: string, statusCode?: number, details?: Record<string, any>) => NetworkErrorType;
73
+ /**
74
+ * ConfigurationError - SDK/Element configuration errors
75
+ *
76
+ * @example
77
+ * throw ConfigurationError('Invalid API key', {
78
+ * provided: 'key_test_invalid',
79
+ * expected: 'key_test_* or key_live_*'
80
+ * });
81
+ */
82
+ export declare const ConfigurationError: (message: string, details?: Record<string, any>) => BasisTheoryErrorType;
83
+ /**
84
+ * EncryptionError - Client-side encryption errors
85
+ *
86
+ * @example
87
+ * throw EncryptionError('JWE encryption failed', 'ENCRYPTION_FAILED', {
88
+ * algorithm: 'ECDH-ES',
89
+ * keyId: 'key_123'
90
+ * });
91
+ */
92
+ export declare const EncryptionError: (message: string, code?: string, details?: Record<string, any>) => BasisTheoryErrorType;
93
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../shared/src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAqB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,oBAoBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,oBAIF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,mBAWF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,oBAIF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,YAAY,MAAM,EAClB,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,gBAWF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,aAAa,MAAM,EACnB,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,gBAWF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,oBAIF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,OAAM,MAA2B,EACjC,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,oBAIF,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generate a unique identifier for elements
3
+ *
4
+ * Uses crypto.randomUUID() if available (Node 14.17+, all modern browsers)
5
+ * Falls back to Math.random() for older environments (rare)
6
+ *
7
+ * Format: Standard UUID v4 (e.g., "550e8400-e29b-41d4-a716-446655440000")
8
+ *
9
+ * Note: This utility is rarely needed as the coordinator generates element IDs
10
+ * via CMD_REGISTER_ELEMENT using crypto.randomUUID() directly.
11
+ */
12
+ export declare const generateId: () => string;
13
+ //# sourceMappingURL=generate-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-id.d.ts","sourceRoot":"","sources":["../../../../shared/src/generate-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,QAAO,MAuB7B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @basis-theory-elements/shared
3
+ * Shared utilities for all BasisTheory Elements packages
4
+ */
5
+ export { createDebugLogger } from './debug-logger';
6
+ export type { DebugLogger } from './debug-logger';
7
+ export { sanitizeDeep } from './deep-sanitization';
8
+ export { getDefaultApiBaseUrl } from './api-url-resolver';
9
+ export { generateId } from './generate-id';
10
+ export { configureLogger, getLogger, log } from './logger-context';
11
+ export { BasisTheoryError, ValidationError, CoordinatorError, ElementError, NetworkError, ConfigurationError, EncryptionError, } from './errors';
12
+ export type { BasisTheoryErrorType, ValidationErrorType, ElementErrorType, NetworkErrorType, } from './errors';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../shared/src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shared Logger Context
3
+ *
4
+ * Provides a global logger instance that can be controlled by the coordinator.
5
+ * Elements import this and use the shared logger without passing it around.
6
+ */
7
+ import { type DebugLogger } from './debug-logger';
8
+ /**
9
+ * Configure the global logger (called by coordinator on init)
10
+ *
11
+ * @param packageName - Package name for log prefix
12
+ * @param enabled - Whether debug logging is enabled
13
+ */
14
+ export declare const configureLogger: (packageName: string, enabled: boolean) => void;
15
+ /**
16
+ * Get the current logger instance
17
+ *
18
+ * Elements use this to get the shared logger
19
+ */
20
+ export declare const getLogger: () => DebugLogger;
21
+ /**
22
+ * Convenience: Log directly without getting logger first
23
+ */
24
+ export declare const log: (action: string, metadata?: Record<string, unknown>) => void;
25
+ //# sourceMappingURL=logger-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-context.d.ts","sourceRoot":"","sources":["../../../../shared/src/logger-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOrE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,SAAS,OAAO,KACf,IAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAAO,WAA2B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,GAAG,GACd,QAAQ,MAAM,EACd,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACjC,IAEF,CAAC"}
package/dist/sri.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": "1.0",
3
+ "versions": {
4
+ "3.0.0-beta.3": {
5
+ "umd": {
6
+ "hash": "sha384-ddyMdTUvEA0NROPra0/eWz+jWaUMNSsyhhlM1rCTNGdqTMkLAHqd5G/QQPZ/uJbv",
7
+ "url": "https://js.basistheory.com/3.0.0-beta.3/web-elements/basis-theory-sdk.umd.js",
8
+ "size": 37664
9
+ },
10
+ "es": {
11
+ "hash": "sha384-2d1ZLM+3c8nXIBEcLQEb8z5vrX7pViZdTTWS9EOZpZsv3k05qA3UtMpdPPCYtCXd",
12
+ "url": "https://js.basistheory.com/3.0.0-beta.3/web-elements/basis-theory-sdk.es.js",
13
+ "size": 108
14
+ },
15
+ "loader": {
16
+ "hash": "sha384-6EKARPX/SiO2afMUOkWOSIWueNo4XPmri7bZz5bVuPBRWElgRVpetNLCtblDhBkd",
17
+ "url": "https://js.basistheory.com/3.0.0-beta.3/web-elements/basis-theory.js",
18
+ "size": 4208
19
+ }
20
+ }
21
+ }
22
+ }