{"version":3,"file":"js-captcha-integration-core.min.js","mappings":"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","sources":["webpack://javascript-captcha/./packaging/src_temp/es5_build_src/es6/helpers.js","webpack://javascript-captcha/./packaging/src_temp/es5_build_src/es6/resource-strings.js","webpack://javascript-captcha/./packaging/src_temp/es5_build_src/es6/exceptions/bd-clientside-not-existing-exception.js","webpack://javascript-captcha/./packaging/src_temp/es5_build_src/es6/js-captcha-integration-core.js"],"sourcesContent":["/*\r\nCopyright Captcha, Inc. 2004-2023. All rights reserved.\r\n\r\nBotDetect, BotDetect CAPTCHA, Lanap, Lanap CAPTCHA, Lanap BotDetect, \r\nLanap BotDetect CAPTCHA, Lanapsoft, Lanapsoft CAPTCHA, \r\nLanapsoft BotDetect, Lanapsoft BotDetect CAPTCHA, and Lanap Software \r\nare trademarks of Captcha, Inc. All other product, brand, and company \r\nnames are mentioned for identification purposes only and are trademarks \r\nor registered trademarks of their respective owners.\r\n\r\nCaptcha, Inc. - formerly: Lanapsoft, Inc. / Lanap, Inc.\r\n*/\r\n\r\nfunction getBaseUrlFromUrl(url) {\r\n let baseUrl = null;\r\n if (url.indexOf('http') === 0) {\r\n const urlParts = url.split('/');\r\n baseUrl = urlParts[0] + '//' + urlParts[2];\r\n }\r\n return baseUrl;\r\n}\r\n\r\nfunction getClientBaseUrl() {\r\n const url = window.location.href;\r\n const baseUrl = getBaseUrlFromUrl(url);\r\n return baseUrl;\r\n}\r\n\r\nfunction detectIE9() {\r\n let detected = false;\r\n if (navigator && navigator.userAgent) {\r\n const userAgent = navigator.userAgent;\r\n if (userAgent.indexOf('MSIE') !== -1) {\r\n const parts = userAgent.split('MSIE');\r\n const version = parseInt(parts[1]);\r\n if (version === 9) {\r\n detected = true;\r\n }\r\n }\r\n }\r\n return detected;\r\n}\r\n\r\nfunction detectCrossDomainRequest(backendUrl) {\r\n let detected = false;\r\n const clientBaseUrl = getClientBaseUrl();\r\n const backendBaseUrl = getBaseUrlFromUrl(backendUrl);\r\n if ((clientBaseUrl !== null) && (backendBaseUrl !== null) \r\n && (clientBaseUrl !== backendBaseUrl)) {\r\n detected = true;\r\n }\r\n return detected;\r\n}\r\n\r\nfunction httpGetWithXMLHttpRequest(url, successCallback, errorCallback) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function() {\r\n if ((xhr.readyState === 4) && (xhr.status === 200)) {\r\n successCallback(xhr.responseText);\r\n }\r\n\r\n if ((xhr.readyState === 4) && (xhr.status !== 200)) {\r\n if (typeof errorCallback === 'function') {\r\n errorCallback(xhr);\r\n }\r\n }\r\n };\r\n if (typeof errorCallback === 'function') {\r\n xhr.addEventListener('error', function() {\r\n errorCallback(xhr);\r\n });\r\n }\r\n xhr.open('GET', url, true);\r\n xhr.send();\r\n}\r\n\r\nfunction httpGetWithXDomainRequest(url, successCallback, errorCallback) {\r\n console.log('IE9-crossdomain');\r\n const xdr = new XDomainRequest();\r\n xdr.open('GET', url);\r\n xdr.onprogress = function() {};\r\n xdr.onload = function() {\r\n successCallback(xdr.responseText);\r\n };\r\n if (typeof errorCallback === 'function') {\r\n xdr.onerror = function() {\r\n errorCallback(xdr);\r\n };\r\n }\r\n setTimeout(function() {\r\n xdr.send();\r\n }, 0);\r\n}\r\n\r\n// get captcha endpoint handler from configured captchaEndpointUrl value,\r\n// the expected result will be:\r\n// simple-captcha-endpoint.ashx -- for asp.net backend\r\n// simple-captcha-endpoint -- for java backend\r\n// simple-captcha-endpoint.php -- for php backend\r\n// or a custom path that user configured on backend\r\nfunction getCaptchaEndpointHandler(configuredCaptchaEndpointUrl) {\r\n const splited = configuredCaptchaEndpointUrl.split('/');\r\n return splited[splited.length - 1];\r\n}\r\n\r\n// get backend base url from configured captchaEndpointUrl value\r\nfunction getBackendBaseUrl(configuredCaptchaEndpointUrl, captchaEndpointHandler) {\r\n let lastIndex = configuredCaptchaEndpointUrl.lastIndexOf(captchaEndpointHandler);\r\n return configuredCaptchaEndpointUrl.substring(0, lastIndex);\r\n}\r\n\r\nconst helpers = {\r\n string: {\r\n format: function() {\r\n let str = arguments[0];\r\n for (const index in arguments) {\r\n const regex = new RegExp(\"\\\\{\" + (index - 1) + \"\\\\}\", \"g\");\r\n str = str.replace(regex, arguments[index]);\r\n }\r\n return str;\r\n }\r\n },\r\n\r\n time: {\r\n currentTimestamp: function() {\r\n const currentTime = Date.now ? Date.now() : new Date().getTime();\r\n return currentTime;\r\n }\r\n },\r\n\r\n sanitizer: {\r\n sanitize: function(input) {\r\n input = input.replace(/[^a-zA-Z0-9\\.\\-\\_\\~\\!\\$\\&\\(\\)\\*\\+\\,\\;\\=\\:\\@\\%\\#\\/\\?]/gim, '');\r\n return input;\r\n }\r\n },\r\n\r\n dom: {\r\n createScriptElement: function(id, source, callback) {\r\n const script = document.createElement('script');\r\n script.id = id;\r\n script.src = source;\r\n \r\n if (typeof callback === 'function') {\r\n script.onload = callback;\r\n }\r\n \r\n return script;\r\n }\r\n },\r\n\r\n object: {\r\n mergeObjects: function(target, source) {\r\n let merged = {};\r\n for (let key in target) {\r\n const value = source[key];\r\n merged[key] = (value === void 0) ? target[key] : value;\r\n }\r\n return merged;\r\n },\r\n\r\n isEmptyObject: function(obj) {\r\n if (obj) {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n },\r\n\r\n ajax: {\r\n get: function(url, successCallback, errorCallback) {\r\n if (detectIE9() && detectCrossDomainRequest(url)) {\r\n // for cross-domain on IE9 support\r\n httpGetWithXDomainRequest(url, successCallback, errorCallback);\r\n } else {\r\n httpGetWithXMLHttpRequest(url, successCallback, errorCallback);\r\n }\r\n }\r\n },\r\n\r\n url: {\r\n createUrl(url, params) {\r\n let p = [];\r\n for (let pKey in params) {\r\n if (typeof pKey === 'string') {\r\n const pValue = params[pKey];\r\n if ((pValue !== null) && (pValue !== '')) {\r\n p.push(pKey + '=' + pValue);\r\n }\r\n }\r\n }\r\n const paramsPattern = /\\?+/g;\r\n return paramsPattern.test(url) ? (url + '&' + p.join('&')) : (url + '?' + p.join('&')); \r\n },\r\n\r\n changeRelativeToAbsoluteUrls(originalCaptchaHtml, configuredCaptchaEndpointUrl) {\r\n const captchaEndpointHandler = getCaptchaEndpointHandler(configuredCaptchaEndpointUrl);\r\n const backendUrl = getBackendBaseUrl(configuredCaptchaEndpointUrl, captchaEndpointHandler);\r\n \r\n const relativeUrls = originalCaptchaHtml.match(/(src|href)=\\\"([^\"]+)\\\"/g);\r\n let relativeUrl, absoluteUrl,\r\n changedCaptchaHtml = originalCaptchaHtml;\r\n \r\n for (let i = 0; i < relativeUrls.length; i++) {\r\n relativeUrl = relativeUrls[i].slice(0, -1).replace(/src=\\\"|href=\\\"/, '');\r\n absoluteUrl = relativeUrl.replace(/.*\\?get=/, backendUrl + captchaEndpointHandler + '?get=');\r\n changedCaptchaHtml = changedCaptchaHtml.replace(relativeUrl, absoluteUrl);\r\n }\r\n \r\n return changedCaptchaHtml;\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default helpers;\r\n","/*\r\nCopyright Captcha, Inc. 2004-2023. All rights reserved.\r\n\r\nBotDetect, BotDetect CAPTCHA, Lanap, Lanap CAPTCHA, Lanap BotDetect, \r\nLanap BotDetect CAPTCHA, Lanapsoft, Lanapsoft CAPTCHA, \r\nLanapsoft BotDetect, Lanapsoft BotDetect CAPTCHA, and Lanap Software \r\nare trademarks of Captcha, Inc. All other product, brand, and company \r\nnames are mentioned for identification purposes only and are trademarks \r\nor registered trademarks of their respective owners.\r\n\r\nCaptcha, Inc. - formerly: Lanapsoft, Inc. / Lanap, Inc.\r\n*/\r\n\r\nconst resourceStrings = {\r\n bd_client_side_not_existing: `BotDetect client-side instance doesn't exist.`,\r\n\r\n invalid_captcha_settings: `Invalid captcha settings!\r\n The JavaScript Captcha Plugin requires the three \"captchaFormId\", \"captchaEndpointUrl\", and \"languageTag\" properties to be set.\r\n For example:\r\n var captcha = createCaptchaInstance({\r\n captchaFormId: 'your_form',\r\n languageTag: 'en-US',\r\n captchaEndpointUrl: 'https://your-app-backend-hostname.your-domain.com/simple-captcha-endpoint-url'\r\n });\r\n `,\r\n \r\n captcha_tag_not_found: `Could not find captcha tag! \r\n Please add