{"version":3,"file":"jquery-captcha.min.js","mappings":"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","sources":["webpack://jquery-captcha/./src/jquery-captcha.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\n(function($) {\r\n 'use strict';\r\n\r\n var pluginInfo = {\r\n plugin: 'jquery-captcha',\r\n pluginId: '2',\r\n releaseNo: '4.5.0-RC2',\r\n requiredCoreReleaseNo: '4.5.0-RC2'\r\n };\r\n \r\n $.fn.captcha = function(settings) {\r\n \r\n var captchaTag = this;\r\n\r\n settings = sanitizeSettings(settings);\r\n\r\n executeRequiredCoreIncludeCheck();\r\n executeRequiredCoreReleaseNoCheck();\r\n executeRequiredSettingsCheck(settings);\r\n\r\n function createCaptchaInstance() {\r\n var captcha = createJsCaptchaIntegrationCoreInstance(settings);\r\n captcha.integrationType = pluginInfo.pluginId;\r\n return captcha;\r\n }\r\n \r\n function displayCaptcha(captcha) {\r\n if (captchaTag.length === 0) {\r\n var errorMessage = 'Could not find captcha tag.\\n' +\r\n 'Please add element in your HTML template';\r\n throw new Error(helpers.string.format(errorMessage, settings.captchaFormId));\r\n }\r\n\r\n captcha.getHtml(\r\n function(captchaHtml) {\r\n captchaTag.html(captchaHtml);\r\n },\r\n function(errorMessage) {\r\n captchaTag.html(errorMessage);\r\n }\r\n );\r\n }\r\n \r\n // plugin initialization - we display the captcha html markup in view\r\n captchaTag.init = function() {\r\n var captcha = createCaptchaInstance();\r\n displayCaptcha(captcha);\r\n return captcha;\r\n };\r\n\r\n return captchaTag.init();\r\n };\r\n\r\n // helper functions\r\n\r\n var helpers = {\r\n string: {\r\n format: function() {\r\n var str = arguments[0];\r\n for (var index in arguments) {\r\n var 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 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 versionCompare(version1, version2) {\r\n version1 = version1.toLowerCase();\r\n var version1Parts = version1.split('.');\r\n var majorVersion1 = parseInt(version1Parts[0]);\r\n var minorVersion1 = parseInt(version1Parts[1]);\r\n var pathVersion1, rcVersion1;\r\n var pathVersion1String = version1Parts[2];\r\n if (pathVersion1String.indexOf('-rc') !== -1) {\r\n // version1 is RC version\r\n var pathVersion1StringParts = pathVersion1String.split('-rc');\r\n pathVersion1 = parseInt(pathVersion1StringParts[0]);\r\n rcVersion1 = parseInt(pathVersion1StringParts[1]);\r\n } else {\r\n pathVersion1 = parseInt(version1Parts[2]);\r\n }\r\n \r\n version2 = version2.toLowerCase();\r\n var version2Parts = version2.split('.');\r\n var majorVersion2 = parseInt(version2Parts[0]);\r\n var minorVersion2 = parseInt(version2Parts[1]);\r\n var pathVersion2, rcVersion2;\r\n var pathVersion2String = version2Parts[2];\r\n if (pathVersion2String.indexOf('-rc') !== -1) {\r\n // version2 is RC version\r\n var pathVersion2StringParts = pathVersion2String.split('-rc');\r\n pathVersion2 = parseInt(pathVersion2StringParts[0]);\r\n rcVersion2 = parseInt(pathVersion2StringParts[1]);\r\n } else {\r\n pathVersion2 = parseInt(version2Parts[2]);\r\n }\r\n \r\n if (majorVersion1 > majorVersion2) { return 1; } // version1 > version2\r\n if (majorVersion1 < majorVersion2) { return -1; } // version1 < version2\r\n \r\n if (minorVersion1 > minorVersion2) { return 1; } // version1 > version2\r\n if (minorVersion1 < minorVersion2) { return -1; } // version1 < version2\r\n \r\n if (pathVersion1 > pathVersion2) { return 1; } // version1 > version2\r\n if (pathVersion1 < pathVersion2) { return -1; } // version1 < version2\r\n \r\n if (rcVersion1 && rcVersion2) {\r\n if (rcVersion1 > rcVersion2) { return 1; } // version1 > version2\r\n if (rcVersion1 < rcVersion2) { return -1; } // version1 < version2\r\n }\r\n \r\n return 0; // version1 = version2\r\n }\r\n };\r\n\r\n function sanitizeSettings(settings) {\r\n var sanitized = {};\r\n for (var key in settings) {\r\n var value = settings[key];\r\n sanitized[key] = helpers.sanitizer.sanitize(value);\r\n }\r\n return sanitized;\r\n }\r\n\r\n function executeRequiredCoreIncludeCheck() {\r\n // validate javascript-captcha dependency and captcha settings\r\n if (typeof createJsCaptchaIntegrationCoreInstance !== 'function') {\r\n var errorMessage = 'The jQuery Captcha Plugin requires the \"js-captcha-integration-core\" ' +\r\n 'to be included in your web page.\\n' + \r\n 'Please follow below steps:\\n' +\r\n '1. Install the \"javascript-captcha\":\\n' +\r\n ' $ npm i javascript-captcha\\n' +\r\n '2. Include the \"js-captcha-integration-core\" in your web page:\\n' +\r\n ' ';\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n\r\n function executeRequiredSettingsCheck(settings) {\r\n if (!(settings.captchaFormId && settings.captchaEndpointUrl && settings.languageTag)) {\r\n var errorMessage = 'Invalid captcha settings!\\n' +\r\n 'The jQuery Captcha Plugin requires the three \"captchaFormId\", \"captchaEndpointUrl\", and \"languageTag\" properties to be set.\\n' +\r\n 'For example:\\n' +\r\n 'var captcha = $(\\'captcha[captchaFormId=\"your_form\"]\\').captcha({\\n' +\r\n ' captchaFormId: \\'your_form\\',\\n' +\r\n ' languageTag: \\'en-US\\',\\n' +\r\n ' captchaEndpointUrl: \\'https://your-app-backend-hostname.your-domain.com/simple-captcha-endpoint-url\\'\\n' +\r\n '});';\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n\r\n function executeRequiredCoreReleaseNoCheck() {\r\n var reportError = false;\r\n \r\n var callerPlugin = pluginInfo.plugin;\r\n var callerReleaseNo = pluginInfo.releaseNo;\r\n var callerRequiredCoreReleaseNo = pluginInfo.requiredCoreReleaseNo;\r\n var runningCoreReleaseNo = getJsCaptchaIntegrationCoreReleaseNo();\r\n \r\n // report error if runningCoreReleaseNo < callerRequiredCoreReleaseNo\r\n if (helpers.versionCompare(runningCoreReleaseNo, callerRequiredCoreReleaseNo) === -1) { \r\n reportError = true;\r\n }\r\n \r\n if (reportError) {\r\n var errorMessage = \"You are using '{0}' plugin r{1}\\n\" +\r\n \"You are using 'javascript-captcha' plugin r{3}\\n\" +\r\n \"The '{0}' plugin r{1} requires 'javascript-captcha' plugin r{2} or higher\";\r\n throw new Error(helpers.string.format(errorMessage, \r\n callerPlugin, \r\n callerReleaseNo,\r\n callerRequiredCoreReleaseNo,\r\n runningCoreReleaseNo));\r\n }\r\n }\r\n \r\n}(jQuery));\r\n"],"names":["$","pluginInfo","fn","captcha","settings","captchaTag","this","sanitized","key","value","helpers","sanitizer","sanitize","sanitizeSettings","createJsCaptchaIntegrationCoreInstance","Error","executeRequiredCoreIncludeCheck","reportError","callerPlugin","callerReleaseNo","callerRequiredCoreReleaseNo","runningCoreReleaseNo","getJsCaptchaIntegrationCoreReleaseNo","versionCompare","string","format","executeRequiredCoreReleaseNoCheck","captchaFormId","captchaEndpointUrl","languageTag","executeRequiredSettingsCheck","init","integrationType","createCaptchaInstance","length","getHtml","captchaHtml","html","errorMessage","displayCaptcha","str","arguments","index","regex","RegExp","replace","input","version1","version2","pathVersion1","rcVersion1","version1Parts","toLowerCase","split","majorVersion1","parseInt","minorVersion1","pathVersion1String","indexOf","pathVersion1StringParts","pathVersion2","rcVersion2","version2Parts","majorVersion2","minorVersion2","pathVersion2String","pathVersion2StringParts","jQuery"],"sourceRoot":""}