@basis-theory/basis-theory-js
Advanced tools
Comparing version 4.19.0 to 4.20.0
@@ -16,2 +16,4 @@ "use strict"; | ||
var _telemetryLogging = require("./common/telemetry-logging"); | ||
var _elements = require("./elements"); | ||
@@ -42,2 +44,3 @@ | ||
elements: false, | ||
disableTelemetry: false, | ||
appInfo: {} | ||
@@ -159,2 +162,7 @@ }; | ||
}); | ||
if (!options.disableTelemetry && undefined !== 'test') { | ||
(0, _telemetryLogging.initTelemetryLogger)(); | ||
} | ||
this._initStatus = 'done'; | ||
@@ -192,4 +200,5 @@ } catch (error) { | ||
const elementsUseNgApi = this.initOptions.elementsUseNgApi || false; | ||
const elementsUseSameOriginApi = this.initOptions.elementsUseSameOriginApi || false; | ||
const disableTelemetry = this.initOptions.disableTelemetry || false; | ||
await elements.init(apiKey, elementsBaseUrl.toString().replace(/\/$/u, ''), elementsUseNgApi, disableTelemetry); | ||
await elements.init(apiKey, elementsBaseUrl.toString().replace(/\/$/u, ''), elementsUseNgApi, elementsUseSameOriginApi, disableTelemetry); | ||
this.elements = elements; | ||
@@ -196,0 +205,0 @@ } // these should be set by the init call only. |
@@ -13,2 +13,4 @@ import type { BasisTheoryServicesBasePathMap } from '../types/sdk'; | ||
declare const DEFAULT_ELEMENTS_BASE_URL: string; | ||
declare const DD_TOKEN: string | undefined; | ||
declare const DD_GIT_SHA: string | undefined; | ||
declare const CLIENT_BASE_PATHS: BasisTheoryServicesBasePathMap; | ||
@@ -19,2 +21,2 @@ declare const BROWSER_LIST: { | ||
}[]; | ||
export { API_KEY_HEADER, BT_TRACE_ID_HEADER, BT_IDEMPOTENCY_KEY_HEADER, CONTENT_TYPE_HEADER, MERGE_CONTENT_TYPE, USER_AGENT_HEADER, CLIENT_USER_AGENT_HEADER, USER_AGENT_CLIENT, BT_EXPOSE_PROXY_RESPONSE_HEADER, DEFAULT_BASE_URL, DEFAULT_ELEMENTS_BASE_URL, CLIENT_BASE_PATHS, BROWSER_LIST, }; | ||
export { API_KEY_HEADER, BT_TRACE_ID_HEADER, BT_IDEMPOTENCY_KEY_HEADER, CONTENT_TYPE_HEADER, MERGE_CONTENT_TYPE, USER_AGENT_HEADER, CLIENT_USER_AGENT_HEADER, USER_AGENT_CLIENT, BT_EXPOSE_PROXY_RESPONSE_HEADER, DEFAULT_BASE_URL, DEFAULT_ELEMENTS_BASE_URL, CLIENT_BASE_PATHS, BROWSER_LIST, DD_TOKEN, DD_GIT_SHA, }; |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports.USER_AGENT_HEADER = exports.USER_AGENT_CLIENT = exports.MERGE_CONTENT_TYPE = exports.DEFAULT_ELEMENTS_BASE_URL = exports.DEFAULT_BASE_URL = exports.CONTENT_TYPE_HEADER = exports.CLIENT_USER_AGENT_HEADER = exports.CLIENT_BASE_PATHS = exports.BT_TRACE_ID_HEADER = exports.BT_IDEMPOTENCY_KEY_HEADER = exports.BT_EXPOSE_PROXY_RESPONSE_HEADER = exports.BROWSER_LIST = exports.API_KEY_HEADER = void 0; | ||
exports.USER_AGENT_HEADER = exports.USER_AGENT_CLIENT = exports.MERGE_CONTENT_TYPE = exports.DEFAULT_ELEMENTS_BASE_URL = exports.DEFAULT_BASE_URL = exports.DD_TOKEN = exports.DD_GIT_SHA = exports.CONTENT_TYPE_HEADER = exports.CLIENT_USER_AGENT_HEADER = exports.CLIENT_BASE_PATHS = exports.BT_TRACE_ID_HEADER = exports.BT_IDEMPOTENCY_KEY_HEADER = exports.BT_EXPOSE_PROXY_RESPONSE_HEADER = exports.BROWSER_LIST = exports.API_KEY_HEADER = void 0; | ||
const API_KEY_HEADER = 'BT-API-KEY'; | ||
@@ -30,2 +30,6 @@ exports.API_KEY_HEADER = API_KEY_HEADER; | ||
exports.DEFAULT_ELEMENTS_BASE_URL = DEFAULT_ELEMENTS_BASE_URL; | ||
const DD_TOKEN = "pub5f53501515584007899577554c4aeda6"; | ||
exports.DD_TOKEN = DD_TOKEN; | ||
const DD_GIT_SHA = "82687839b3e74ee9466184449c528d4f323b7c1f"; | ||
exports.DD_GIT_SHA = DD_GIT_SHA; | ||
const CLIENT_BASE_PATHS = { | ||
@@ -32,0 +36,0 @@ tokens: 'tokens', |
declare const ELEMENTS_INIT_ERROR_MESSAGE = "BasisTheory Elements was not properly initialized."; | ||
declare const ELEMENTS_NOM_DOM_ERROR_MESSAGE = "Tried to load BasisTheoryElements in a non-DOM environment."; | ||
declare const ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE = "Basis Theory Elements did not load properly."; | ||
declare const ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE = "Basis Theory Elements did not load properly. Check network tab for more details."; | ||
declare const ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE = "There was an unknown error when loading Basis Theory Elements. Check the console for details."; | ||
@@ -5,0 +5,0 @@ declare const CARD_BRANDS: readonly ["visa", "mastercard", "american-express", "discover", "diners-club", "jcb", "unionpay", "maestro", "elo", "hiper", "hipercard", "mir", "unknown"]; |
@@ -11,3 +11,3 @@ "use strict"; | ||
exports.ELEMENTS_NOM_DOM_ERROR_MESSAGE = ELEMENTS_NOM_DOM_ERROR_MESSAGE; | ||
const ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE = 'Basis Theory Elements did not load properly.'; | ||
const ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE = 'Basis Theory Elements did not load properly. Check network tab for more details.'; | ||
exports.ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE = ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE; | ||
@@ -14,0 +14,0 @@ const ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE = 'There was an unknown error when loading Basis Theory Elements. Check the console for details.'; |
@@ -8,5 +8,7 @@ "use strict"; | ||
var _telemetryLogging = require("./../common/telemetry-logging"); | ||
var _constants = require("./constants"); | ||
var _script = require("./script"); | ||
var _script3 = require("./script"); | ||
@@ -19,2 +21,7 @@ let elementsPromise; | ||
if (typeof window !== 'object') { | ||
_telemetryLogging.telemetryLogger.logger.warn(_constants.ELEMENTS_NOM_DOM_ERROR_MESSAGE, { | ||
logType: 'elementsNonDomError', | ||
logOrigin: 'loadElements' | ||
}); | ||
reject(new Error(_constants.ELEMENTS_NOM_DOM_ERROR_MESSAGE)); | ||
@@ -37,2 +44,7 @@ return; | ||
} catch { | ||
_telemetryLogging.telemetryLogger.logger.warn('Invalid format for the given Elements client url.', { | ||
logType: 'invalidClientUrlError', | ||
logOrigin: 'loadElements' | ||
}); | ||
throw new Error('Invalid format for the given Elements client url.'); | ||
@@ -42,12 +54,39 @@ } | ||
let script = (0, _script.findScript)(url); | ||
let script = (0, _script3.findScript)(url); | ||
if (!script) { | ||
script = (0, _script.injectScript)(url); | ||
} | ||
script = (0, _script3.injectScript)(url); | ||
} // listen for window error events for same script | ||
script.addEventListener('load', () => { | ||
window.addEventListener('error', event => { | ||
_telemetryLogging.telemetryLogger.logger.error('Elements script onError event from window', { | ||
logType: 'elementsNotFoundOnWindow', | ||
logOrigin: 'loadElements', | ||
eventObject: event, | ||
event: { | ||
message: event === null || event === void 0 ? void 0 : event.message, | ||
source: event === null || event === void 0 ? void 0 : event.filename, | ||
lineno: event === null || event === void 0 ? void 0 : event.lineno, | ||
colno: event === null || event === void 0 ? void 0 : event.colno, | ||
error: event === null || event === void 0 ? void 0 : event.error | ||
} | ||
}); | ||
}); | ||
script.addEventListener('load', event => { | ||
if (window.BasisTheoryElements) { | ||
resolve(window.BasisTheoryElements); | ||
} else { | ||
var _script; | ||
_telemetryLogging.telemetryLogger.logger.error('Elements not found on window on load', { | ||
logType: 'elementsNotFoundOnWindow', | ||
logOrigin: 'loadElements', | ||
eventObject: event, | ||
event: { | ||
type: event === null || event === void 0 ? void 0 : event.type, | ||
src: (_script = script) === null || _script === void 0 ? void 0 : _script.src | ||
} | ||
}); | ||
reject(new Error(_constants.ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE)); | ||
@@ -57,5 +96,31 @@ } | ||
script.addEventListener('error', event => { | ||
reject((event === null || event === void 0 ? void 0 : event.error) || new Error(_constants.ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE)); | ||
var _script2; | ||
_telemetryLogging.telemetryLogger.logger.warn('Elements script onError event', { | ||
logType: 'elementsNotFoundOnWindow', | ||
logOrigin: 'loadElements', | ||
eventObject: event, | ||
event: { | ||
type: event === null || event === void 0 ? void 0 : event.type, | ||
src: (_script2 = script) === null || _script2 === void 0 ? void 0 : _script2.src, | ||
message: event === null || event === void 0 ? void 0 : event.message, | ||
source: event === null || event === void 0 ? void 0 : event.filename, | ||
lineno: event === null || event === void 0 ? void 0 : event.lineno, | ||
colno: event === null || event === void 0 ? void 0 : event.colno, | ||
error: event === null || event === void 0 ? void 0 : event.error | ||
} | ||
}); // printing full error event to console for debugging | ||
// eslint-disable-next-line no-console | ||
console.error(event); | ||
reject((event === null || event === void 0 ? void 0 : event.error) || (event === null || event === void 0 ? void 0 : event.message) || new Error(_constants.ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE)); | ||
}); | ||
} catch (error) { | ||
_telemetryLogging.telemetryLogger.logger.error('Unexpected error loading Elements script', { | ||
logType: 'unexpectedError', | ||
logOrigin: 'loadElements', | ||
error | ||
}); | ||
reject(error); | ||
@@ -62,0 +127,0 @@ return; |
{ | ||
"name": "@basis-theory/basis-theory-js", | ||
"version": "4.19.0", | ||
"version": "4.20.0", | ||
"repository": "https://github.com/Basis-Theory/basis-theory-js", | ||
@@ -18,2 +18,3 @@ "license": "Apache-2.0", | ||
"dependencies": { | ||
"@datadog/browser-logs": "^5.35.0", | ||
"axios": "^1.7.4", | ||
@@ -20,0 +21,0 @@ "camelcase-keys": "^6.2.2", |
@@ -62,3 +62,3 @@ import type { HttpClient } from '../../types/sdk'; | ||
interface BasisTheoryElementsInternal extends BasisTheoryElements { | ||
init: (apiKey: string | undefined, elementsBaseUrl: string, elementsUseNgApi: boolean | undefined, disableTelemetry: boolean | undefined) => Promise<BasisTheoryElements>; | ||
init: (apiKey: string | undefined, elementsBaseUrl: string, elementsUseNgApi: boolean | undefined, elementsUseSameOriginApi: boolean | undefined, disableTelemetry: boolean | undefined) => Promise<BasisTheoryElements>; | ||
hasElement: (payload: unknown) => boolean; | ||
@@ -70,4 +70,5 @@ client: HttpClient; | ||
BasisTheoryElements?: BasisTheoryElementsInternal; | ||
DD_LOGS: any; | ||
} | ||
} | ||
export type { BaseElement, CardElement, TextElement, CardNumberElement, CardExpirationDateElement, CardVerificationCodeElement, ElementWrapper, ElementValue, BasisTheoryElements, BasisTheoryElementsInternal, }; |
@@ -12,2 +12,3 @@ import type { BasisTheoryElements } from '../../types/elements'; | ||
appInfo?: ApplicationInfo; | ||
disableTelemetry?: boolean; | ||
} | ||
@@ -22,3 +23,3 @@ interface BasisTheoryInitOptionsWithoutElements extends BasisTheoryInitOptions { | ||
elementsUseNgApi?: boolean; | ||
disableTelemetry?: boolean; | ||
elementsUseSameOriginApi?: boolean; | ||
} | ||
@@ -25,0 +26,0 @@ interface BasisTheoryInit { |
192900
209
4314
8
+ Added@datadog/browser-core@5.35.0(transitive)
+ Added@datadog/browser-logs@5.35.0(transitive)