Changeset 2959706
- Timestamp:
- 08/29/2023 07:26:38 AM (2 years ago)
- Location:
- cartboss/trunk
- Files:
-
- 30 edited
-
cartboss.php (modified) (2 diffs)
-
changelog.txt (modified) (1 diff)
-
classes/ajax/class-cartboss-ajax-checkout.php (modified) (2 diffs)
-
classes/class-cartboss-utils.php (modified) (1 diff)
-
classes/handlers/class-cartboss-handler-order-purchase.php (modified) (1 diff)
-
classes/managers/class-cartboss-better-session-manager.php (modified) (1 diff)
-
composer.lock (modified) (13 diffs)
-
includes/class-cartboss.php (modified) (2 diffs)
-
public/js/cartboss-checkout2.js (modified) (1 diff)
-
public/js/cartboss-checkout2.min.js (modified) (1 diff)
-
vendor/composer/installed.json (modified) (17 diffs)
-
vendor/composer/installed.php (modified) (3 diffs)
-
vendor/jaybizzle/crawler-detect/.github/workflows/test.yml (modified) (2 diffs)
-
vendor/jaybizzle/crawler-detect/raw/Crawlers.json (modified) (1 diff)
-
vendor/jaybizzle/crawler-detect/raw/Crawlers.txt (modified) (4 diffs)
-
vendor/jaybizzle/crawler-detect/raw/Exclusions.json (modified) (1 diff)
-
vendor/jaybizzle/crawler-detect/raw/Exclusions.txt (modified) (1 diff)
-
vendor/jaybizzle/crawler-detect/src/Fixtures/Crawlers.php (modified) (4 diffs)
-
vendor/jaybizzle/crawler-detect/src/Fixtures/Exclusions.php (modified) (1 diff)
-
vendor/symfony/property-access/PropertyAccessor.php (modified) (1 diff)
-
vendor/symfony/property-info/Extractor/PhpStanExtractor.php (modified) (1 diff)
-
vendor/symfony/property-info/Util/PhpDocTypeHelper.php (modified) (3 diffs)
-
vendor/symfony/serializer/Normalizer/AbstractNormalizer.php (modified) (3 diffs)
-
vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php (modified) (2 diffs)
-
vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php (modified) (2 diffs)
-
vendor/symfony/serializer/Normalizer/BackedEnumNormalizer.php (modified) (1 diff)
-
vendor/symfony/serializer/Normalizer/DateTimeNormalizer.php (modified) (1 diff)
-
vendor/symfony/serializer/Normalizer/MimeMessageNormalizer.php (modified) (1 diff)
-
vendor/symfony/serializer/composer.json (modified) (2 diffs)
-
vendor/symfony/string/Inflector/EnglishInflector.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cartboss/trunk/cartboss.php
r2942443 r2959706 17 17 * Plugin URI: https://www.cartboss.io 18 18 * Description: Send abandoned cart notifications, offer discounts and special offers - all with text messages. 19 * Version: 4.0. 119 * Version: 4.0.2 20 20 * Author: Cart DATA Ltd. 21 21 * Author URI: https://www.cartboss.io … … 46 46 */ 47 47 48 define('CARTBOSS_VERSION', '4.0. 1');48 define('CARTBOSS_VERSION', '4.0.2'); 49 49 define('CARTBOSS_PLUGIN_NAME', plugin_basename(__FILE__)); 50 50 -
cartboss/trunk/changelog.txt
r2942443 r2959706 1 1 # Changelog 2 2 All notable changes to this project will be documented in this file. 3 4 ## [4.0.2] - 13-06-2023 5 - backend event sending fixed 3 6 4 7 ## [4.0.1] - 13-06-2023 -
cartboss/trunk/classes/ajax/class-cartboss-ajax-checkout.php
r2942443 r2959706 129 129 // metadata 130 130 $metadata = array( 131 Cartboss_Constants::CB_METADATA_CHECKOUT_REDIRECT_URL => $js_checkout_redirect_url,132 Cartboss_Constants::CB_METADATA_ORDER_COMMENTS => sanitize_text_field(Cartboss_Utils::get_array_value($_POST, 'order_comments', '')),133 Cartboss_Constants::CB_METADATA_ACCEPTS_MARKETING => Cartboss_Utils::is_true(Cartboss_Utils::get_array_value($_POST, 'cartboss_accepts_marketing', false)),134 Cartboss_Constants::CB_METADATA_EXTRA_FIELDS => serialize(stripslashes(Cartboss_Utils::get_array_value($_POST, 'extra_fields'))),131 // Cartboss_Constants::CB_METADATA_CHECKOUT_REDIRECT_URL => $js_checkout_redirect_url, 132 // Cartboss_Constants::CB_METADATA_ORDER_COMMENTS => sanitize_text_field(Cartboss_Utils::get_array_value($_POST, 'order_comments', '')), 133 // Cartboss_Constants::CB_METADATA_ACCEPTS_MARKETING => Cartboss_Utils::is_true(Cartboss_Utils::get_array_value($_POST, 'cartboss_accepts_marketing', false)), 134 // Cartboss_Constants::CB_METADATA_EXTRA_FIELDS => serialize(stripslashes(Cartboss_Utils::get_array_value($_POST, 'extra_fields'))), 135 135 ); 136 136 … … 172 172 173 173 // send ATC event 174 do_action("cb_send_event", $cb_event->serialize()); 174 Cartboss_Utils::send_event($cb_event->serialize()); 175 //do_action("cb_send_event", $cb_event->serialize()); 175 176 176 177 // check if can be inserted as event -
cartboss/trunk/classes/class-cartboss-utils.php
r2942443 r2959706 449 449 } 450 450 } 451 452 public static function send_event($payload) { 453 if (!Cartboss_Options::get_is_valid_api_key()) { 454 error_log("[CARTBOSS] Please provide valid API key to continue using CartBoss"); 455 return; 456 } 457 458 try { 459 // actual sending 460 Cartboss_Api_Manager::instance()->track($payload); 461 462 // mark that cb server has been just contacted 463 Cartboss_Options::set_last_sync_at(time()); 464 465 } catch (Cartboss_Api_Exception $e) { 466 if ($e->getCode() == 422) { 467 // 422 = validation error, usually phone missing 468 // do not send 469 } else { 470 error_log("[CARTBOSS][API] Failed sending event: {$e}"); 471 472 Cartboss_Api_manager::instance()->log_error("API call failed #1: {$e}"); 473 } 474 475 } catch (Exception $e) { 476 Cartboss_Api_manager::instance()->log_error("API call failed #2: {$e}"); 477 } 478 } 451 479 } -
cartboss/trunk/classes/handlers/class-cartboss-handler-order-purchase.php
r2942443 r2959706 150 150 151 151 // send PURCHASE event 152 do_action("cb_send_event", $cb_event->serialize()); 152 Cartboss_Utils::send_event($cb_event->serialize()); 153 //do_action("cb_send_event", $cb_event->serialize()); 153 154 154 155 // basic validation -
cartboss/trunk/classes/managers/class-cartboss-better-session-manager.php
r2942443 r2959706 47 47 public function get_token(): ?string { 48 48 if (!self::is_valid_token($this->session_id)) { 49 $this->session_id = " Ax" . Cartboss_Utils::get_random_string(52);49 $this->session_id = "Bx" . Cartboss_Utils::get_random_string(52); 50 50 51 51 $this->save_session_id($this->session_id); -
cartboss/trunk/composer.lock
r2942443 r2959706 9 9 { 10 10 "name": "jaybizzle/crawler-detect", 11 "version": "v1.2.11 4",11 "version": "v1.2.116", 12 12 "source": { 13 13 "type": "git", 14 14 "url": "https://github.com/JayBizzle/Crawler-Detect.git", 15 "reference": " 62d0e6b38f6715c673e156ffb0fc894791de3452"16 }, 17 "dist": { 18 "type": "zip", 19 "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/ 62d0e6b38f6715c673e156ffb0fc894791de3452",20 "reference": " 62d0e6b38f6715c673e156ffb0fc894791de3452",15 "reference": "97e9fe30219e60092e107651abb379a38b342921" 16 }, 17 "dist": { 18 "type": "zip", 19 "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/97e9fe30219e60092e107651abb379a38b342921", 20 "reference": "97e9fe30219e60092e107651abb379a38b342921", 21 21 "shasum": "" 22 22 }, … … 55 55 "support": { 56 56 "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", 57 "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.11 4"58 }, 59 "time": "2023-0 3-21T21:54:27+00:00"57 "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.116" 58 }, 59 "time": "2023-07-21T15:49:49+00:00" 60 60 }, 61 61 { … … 838 838 { 839 839 "name": "symfony/property-access", 840 "version": "v5.4.2 2",840 "version": "v5.4.26", 841 841 "source": { 842 842 "type": "git", 843 843 "url": "https://github.com/symfony/property-access.git", 844 "reference": " ffee082889586b5718347b291e04071f4d07b38f"845 }, 846 "dist": { 847 "type": "zip", 848 "url": "https://api.github.com/repos/symfony/property-access/zipball/ ffee082889586b5718347b291e04071f4d07b38f",849 "reference": " ffee082889586b5718347b291e04071f4d07b38f",844 "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa" 845 }, 846 "dist": { 847 "type": "zip", 848 "url": "https://api.github.com/repos/symfony/property-access/zipball/0249e46f69e92049a488f39fcf531cb42c50caaa", 849 "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa", 850 850 "shasum": "" 851 851 }, … … 899 899 ], 900 900 "support": { 901 "source": "https://github.com/symfony/property-access/tree/v5.4.2 2"901 "source": "https://github.com/symfony/property-access/tree/v5.4.26" 902 902 }, 903 903 "funding": [ … … 915 915 } 916 916 ], 917 "time": "2023-0 3-14T14:59:20+00:00"917 "time": "2023-07-13T15:20:41+00:00" 918 918 }, 919 919 { 920 920 "name": "symfony/property-info", 921 "version": "v5.4.2 3",921 "version": "v5.4.24", 922 922 "source": { 923 923 "type": "git", 924 924 "url": "https://github.com/symfony/property-info.git", 925 "reference": " ff45ebbfd781eab2571d9d4412d82a9a733fc2b3"926 }, 927 "dist": { 928 "type": "zip", 929 "url": "https://api.github.com/repos/symfony/property-info/zipball/ ff45ebbfd781eab2571d9d4412d82a9a733fc2b3",930 "reference": " ff45ebbfd781eab2571d9d4412d82a9a733fc2b3",925 "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1" 926 }, 927 "dist": { 928 "type": "zip", 929 "url": "https://api.github.com/repos/symfony/property-info/zipball/d43b85b00699b4484964c297575b5c6f9dc5f6e1", 930 "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1", 931 931 "shasum": "" 932 932 }, … … 990 990 ], 991 991 "support": { 992 "source": "https://github.com/symfony/property-info/tree/v5.4.2 3"992 "source": "https://github.com/symfony/property-info/tree/v5.4.24" 993 993 }, 994 994 "funding": [ … … 1006 1006 } 1007 1007 ], 1008 "time": "2023-0 4-17T14:20:34+00:00"1008 "time": "2023-05-15T20:11:03+00:00" 1009 1009 }, 1010 1010 { 1011 1011 "name": "symfony/serializer", 1012 "version": "v5.4.2 3",1012 "version": "v5.4.26", 1013 1013 "source": { 1014 1014 "type": "git", 1015 1015 "url": "https://github.com/symfony/serializer.git", 1016 "reference": " 545da11697153c24c274b9a68cab550b2c0a9860"1017 }, 1018 "dist": { 1019 "type": "zip", 1020 "url": "https://api.github.com/repos/symfony/serializer/zipball/ 545da11697153c24c274b9a68cab550b2c0a9860",1021 "reference": " 545da11697153c24c274b9a68cab550b2c0a9860",1016 "reference": "3589ce086e867691ca7ac49eeb919688b31f7494" 1017 }, 1018 "dist": { 1019 "type": "zip", 1020 "url": "https://api.github.com/repos/symfony/serializer/zipball/3589ce086e867691ca7ac49eeb919688b31f7494", 1021 "reference": "3589ce086e867691ca7ac49eeb919688b31f7494", 1022 1022 "shasum": "" 1023 1023 }, … … 1034 1034 "symfony/dependency-injection": "<4.4", 1035 1035 "symfony/property-access": "<5.4", 1036 "symfony/property-info": "<5. 3.13",1036 "symfony/property-info": "<5.4.24|>=6,<6.2.11", 1037 1037 "symfony/uid": "<5.3", 1038 1038 "symfony/yaml": "<4.4" … … 1051 1051 "symfony/mime": "^4.4|^5.0|^6.0", 1052 1052 "symfony/property-access": "^5.4|^6.0", 1053 "symfony/property-info": "^5. 3.13|^6.0",1053 "symfony/property-info": "^5.4.24|^6.2.11", 1054 1054 "symfony/uid": "^5.3|^6.0", 1055 1055 "symfony/validator": "^4.4|^5.0|^6.0", … … 1093 1093 "homepage": "https://symfony.com", 1094 1094 "support": { 1095 "source": "https://github.com/symfony/serializer/tree/v5.4.2 3"1095 "source": "https://github.com/symfony/serializer/tree/v5.4.26" 1096 1096 }, 1097 1097 "funding": [ … … 1109 1109 } 1110 1110 ], 1111 "time": "2023-0 4-17T13:59:16+00:00"1111 "time": "2023-07-27T16:17:10+00:00" 1112 1112 }, 1113 1113 { 1114 1114 "name": "symfony/string", 1115 "version": "v5.4.2 2",1115 "version": "v5.4.26", 1116 1116 "source": { 1117 1117 "type": "git", 1118 1118 "url": "https://github.com/symfony/string.git", 1119 "reference": " 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"1120 }, 1121 "dist": { 1122 "type": "zip", 1123 "url": "https://api.github.com/repos/symfony/string/zipball/ 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",1124 "reference": " 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",1119 "reference": "1181fe9270e373537475e826873b5867b863883c" 1120 }, 1121 "dist": { 1122 "type": "zip", 1123 "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c", 1124 "reference": "1181fe9270e373537475e826873b5867b863883c", 1125 1125 "shasum": "" 1126 1126 }, … … 1179 1179 ], 1180 1180 "support": { 1181 "source": "https://github.com/symfony/string/tree/v5.4.2 2"1181 "source": "https://github.com/symfony/string/tree/v5.4.26" 1182 1182 }, 1183 1183 "funding": [ … … 1195 1195 } 1196 1196 ], 1197 "time": "2023-0 3-14T06:11:53+00:00"1197 "time": "2023-06-28T12:46:07+00:00" 1198 1198 } 1199 1199 ], -
cartboss/trunk/includes/class-cartboss.php
r2942443 r2959706 59 59 cartboss_include('classes/managers/class-cartboss-discount-manager.php'); 60 60 cartboss_include('classes/managers/class-cartboss-contact-manager.php'); 61 cartboss_include('classes/managers/class-cartboss-event-sender.php');61 //cartboss_include('classes/managers/class-cartboss-event-sender.php'); 62 62 63 63 // models … … 102 102 Cartboss_Attribution_Manager::init(); 103 103 Cartboss_Better_Session_Manager::init(); 104 Cartboss_Event_Sender::init();104 //Cartboss_Event_Sender::init(); 105 105 106 106 // init crons -
cartboss/trunk/public/js/cartboss-checkout2.js
r2942443 r2959706 153 153 154 154 if (data['billing_phone'] !== undefined) { 155 if (data['billing_phone'].length > 5) {155 if (data['billing_phone'].length >= 9) { 156 156 cbDataSender.addState(data); 157 157 } else { -
cartboss/trunk/public/js/cartboss-checkout2.min.js
r2942443 r2959706 1 document.addEventListener("DOMContentLoaded",function(){try{var cartbossCustomFields=document.querySelectorAll('[id^="cartboss_"]');if(cartbossCustomFields){for(var i=0;i<cartbossCustomFields.length;i++){if(cartbossCustomFields[i].tagName==="P"){cartbossCustomFields[i].id=cartbossCustomFields[i].id+"_cb_fixed"}}}}catch(e){}});(function($){var cbAbandonUrl=cb_checkout_data.endpoint_abandon;var cbPopulateUrl=cb_checkout_data.endpoint_populate;var cbNonce=cb_checkout_data.nonce;var cbDebug=cb_checkout_data.debug;var cbPresetFields=cb_checkout_data.preset_fields;var cbInitialized=false,cbElements={},cbMetaElements={},cbSendDelay=3e3,cbInputFields={billing_phone:"#billing_phone, #billing-phone, #shipping_phone, #shipping-phone, #phone",billing_email:"#billing_email, #email",billing_first_name:"#billing_first_name, #billing-first_name",billing_last_name:"#billing_last_name, #billing-last_name",billing_company:"#billing_company, #billing-company",billing_address_1:"#billing_address_1, #billing-address_1",billing_address_2:"#billing_address_2, #billing-address_2, #billing_houseno",billing_city:"#billing_city, #billing-city",billing_postcode:"#billing_postcode, #billing_zip, #billing-postcode",billing_country:'#billing_country, div[class*="country-input"] > input[type=text]:not([id]):last',billing_state:"#billing_state",shipping_first_name:"#shipping_first_name, #shipping-first_name",shipping_last_name:"#shipping_last_name, #shipping-last_name",shipping_company:"#shipping_company, #shipping-company",shipping_address_1:"#shipping_address_1, #shipping-address_1",shipping_address_2:"#shipping_address_2, #shipping-address_2, #shipping_houseno",shipping_city:"#shipping_city, #shipping-city",shipping_postcode:"#shipping_postcode, #shipping_zip, #shipping-postcode",shipping_country:'#shipping_country, div[class*="country-input"] > input[type=text]:not([id]):last',shipping_state:"#shipping_state",cartboss_accepts_marketing:"#cartboss_accepts_marketing"},cbIgnoredInputFields=["payment_method","payment_method[0]","shipping_method","shipping_method[0]","createaccount","_wp_http_referer","woocommerce-process-checkout-nonce"];var cbDataSender=function(){return{stateData:null,addState:function(data){if(!data){cbDebug&&console.log("CartBoss","State data is empty, skipping");return}clearTimeout(this.tid);this.stateData=data;this._send(cbSendDelay)},_send:function(delay){var self=this;if(!this.stateData){cbDebug&&console.log("CartBoss","🚨 Nothing to send")}if(!self.isSendingInProgress){cbDebug&&console.log("CartBoss","⏳ Change detected, sending in",delay,"ms");self.tid=setTimeout(function(){self.stateData["nonce"]=cbNonce;self.stateData["checkout_redirect_url"]=window.location.href;if(self.stateData["meta"]){self.stateData["extra_fields"]=JSON.stringify(self.stateData["meta"]);delete self.stateData["meta"]}$.ajax({url:cbAbandonUrl,type:"POST",data:self.stateData,dataType:"json",cache:false,timeout:1e4,beforeSend:function(xhr){self.isSendingInProgress=true;cbDebug&&console.log("CartBoss","✈ Sending started with data");self.stateData=null},complete:function(a,b){self.isSendingInProgress=false},success:function(response){cbDebug&&console.log("CartBoss","✅ Sending completed with response:",response);if(!response.success){if(response.data.redirect){window.location.href=response.data.redirect}else{console.log("CartBoss","Error",response.data)}}}})},delay)}}}}();var cbFieldChangeListener=function(){var data={meta:{}};$.each(cbElements,function(name,el){if(el.is(":checkbox")){data[name]=!!el.is(":checked")}else if(el.is(":radio")){data[name]=$("input[name='"+name+"']:checked").val()}else{data[name]=el.val()}});$.each(cbMetaElements,function(name,el){if(el.is(":checkbox")){data["meta"][name]=!!el.is(":checked")}else if(el.is(":radio")){data["meta"][name]=$("input[name='"+name+"']:checked").val()}else{data["meta"][name]=el.val()}});if(data["billing_phone"]!==undefined){if(data["billing_phone"].length>5){cbDataSender.addState(data)}else{cbDebug&&console.log("CartBoss","🔥 Phone too short")}}else{cbDebug&&console.log("CartBoss","🔥 Phone not found")}};function cbSetFieldValue(selector,value){if(!value)return;var els=$(selector);if(els&&els.length>0){$.each(els,function(i,x){var el=$(x);if(el.is(":checkbox")){if(el.is(":checked")!==value){el.trigger("click")}}else if(el.is(":radio")){if(el.is(":checked")!==value){el.trigger("click")}}else{el.val(value)}cbDebug&&console.log("CartBoss","🔥 Field value set via JS",el.attr("id"),"=",value)})}}var cbInit=function(){cbDebug&&console.log("CartBoss","Script initialized");$.each(cbInputFields,function(cbFieldName,cbFieldSelector){cbSetFieldValue(cbFieldSelector,cbPresetFields[cbFieldName])});if(cbPresetFields["extra_fields"]){$.each(JSON.parse(cbPresetFields["extra_fields"]),function(cbFieldName,cbFieldValue){cbSetFieldValue('*[name="'+cbFieldName+'"]',cbFieldValue)})}$.each(cbInputFields,function(cbFieldName,cbFieldSelector){var el=$(cbFieldSelector);if(el&&el.length>0){if(cbFieldName==="billing_phone"){try{el.prop("type","tel");el.attr("autocomplete","billing tel");el.attr("autocorrect","off")}catch(e){}}if($.inArray(cbFieldName,cbIgnoredInputFields)===-1){el.on("input change",cbFieldChangeListener);cbElements[cbFieldName]=el}cbDebug&&console.log("CartBoss","👂 Field listener attached to STANDARD field",cbFieldName)}});var cbStandardFieldNames=[];for(var key in cbElements){if(cbElements.hasOwnProperty(key)){cbStandardFieldNames.push(key)}}$("form[name='checkout'] :input").each(function(){var el=$(this);var name=el.attr("name");if(!el.is(":button")){if(name){if($.inArray(name,cbStandardFieldNames)===-1){if($.inArray(name,cbIgnoredInputFields)===-1){el.on("input change",cbFieldChangeListener);cbMetaElements[name]=el;cbDebug&&console.log("CartBoss","👂 Field listener attached to EXTRA field",name)}}}}})};var cbController=function(){if(cbInitialized){return}cbInitialized=true;var fieldsFound=0;$.each(cbInputFields,function(cbFieldName,cbFieldSelector){var el=$(cbFieldSelector);if(el&&el.length>0){fieldsFound++}if(fieldsFound>2){$.ajax({url:cbPopulateUrl,type:"POST",dataType:"json",cache:false,timeout:1e4,data:{nonce:cbNonce},success:function(response){if(response.success&&response.data!==null){cbPresetFields=response.data}},complete:function(a,b){cbInit()}});return false}})};$(document).ready(function(){console.log("🔥","Recover Abandoned Carts with SMS","Powered by CartBoss"," -> ","https://www.cartboss.io","🔥");cbDebug&&console.log("CartBoss","Script loaded");setInterval(function(){cbController()},1e3)})})(jQuery);1 document.addEventListener("DOMContentLoaded",function(){try{var t=document.querySelectorAll('[id^="cartboss_"]');if(t)for(var i=0;i<t.length;i++)"P"===t[i].tagName&&(t[i].id=t[i].id+"_cb_fixed")}catch(t){}}),function(n){var i=cb_checkout_data.endpoint_abandon,a=cb_checkout_data.endpoint_populate,s=cb_checkout_data.nonce,o=cb_checkout_data.debug,c=cb_checkout_data.preset_fields,t=!1,l={},p={},r={billing_phone:"#billing_phone, #billing-phone, #shipping_phone, #shipping-phone, #phone",billing_email:"#billing_email, #email",billing_first_name:"#billing_first_name, #billing-first_name",billing_last_name:"#billing_last_name, #billing-last_name",billing_company:"#billing_company, #billing-company",billing_address_1:"#billing_address_1, #billing-address_1",billing_address_2:"#billing_address_2, #billing-address_2, #billing_houseno",billing_city:"#billing_city, #billing-city",billing_postcode:"#billing_postcode, #billing_zip, #billing-postcode",billing_country:'#billing_country, div[class*="country-input"] > input[type=text]:not([id]):last',billing_state:"#billing_state",shipping_first_name:"#shipping_first_name, #shipping-first_name",shipping_last_name:"#shipping_last_name, #shipping-last_name",shipping_company:"#shipping_company, #shipping-company",shipping_address_1:"#shipping_address_1, #shipping-address_1",shipping_address_2:"#shipping_address_2, #shipping-address_2, #shipping_houseno",shipping_city:"#shipping_city, #shipping-city",shipping_postcode:"#shipping_postcode, #shipping_zip, #shipping-postcode",shipping_country:'#shipping_country, div[class*="country-input"] > input[type=text]:not([id]):last',shipping_state:"#shipping_state",cartboss_accepts_marketing:"#cartboss_accepts_marketing"},d=["payment_method","payment_method[0]","shipping_method","shipping_method[0]","createaccount","_wp_http_referer","woocommerce-process-checkout-nonce"],g={stateData:null,addState:function(t){t?(clearTimeout(this.tid),this.stateData=t,this._send(3e3)):o&&console.log("CartBoss","State data is empty, skipping")},_send:function(t){var e=this;this.stateData||o&&console.log("CartBoss","🚨 Nothing to send"),e.isSendingInProgress||(o&&console.log("CartBoss","⏳ Change detected, sending in",t,"ms"),e.tid=setTimeout(function(){e.stateData.nonce=s,e.stateData.checkout_redirect_url=window.location.href,e.stateData.meta&&(e.stateData.extra_fields=JSON.stringify(e.stateData.meta),delete e.stateData.meta),n.ajax({url:i,type:"POST",data:e.stateData,dataType:"json",cache:!1,timeout:1e4,beforeSend:function(t){e.isSendingInProgress=!0,o&&console.log("CartBoss","✈ Sending started with data"),e.stateData=null},complete:function(t,i){e.isSendingInProgress=!1},success:function(t){o&&console.log("CartBoss","✅ Sending completed with response:",t),t.success||(t.data.redirect?window.location.href=t.data.redirect:console.log("CartBoss","Error",t.data))}})},t))}},_=function(){var e={meta:{}};n.each(l,function(t,i){i.is(":checkbox")?e[t]=!!i.is(":checked"):i.is(":radio")?e[t]=n("input[name='"+t+"']:checked").val():e[t]=i.val()}),n.each(p,function(t,i){i.is(":checkbox")?e.meta[t]=!!i.is(":checked"):i.is(":radio")?e.meta[t]=n("input[name='"+t+"']:checked").val():e.meta[t]=i.val()}),void 0!==e.billing_phone?9<=e.billing_phone.length?g.addState(e):o&&console.log("CartBoss","🔥 Phone too short"):o&&console.log("CartBoss","🔥 Phone not found")};function h(t,e){!e||(t=n(t))&&0<t.length&&n.each(t,function(t,i){i=n(i);i.is(":checkbox")||i.is(":radio")?i.is(":checked")!==e&&i.trigger("click"):i.val(e),o&&console.log("CartBoss","🔥 Field value set via JS",i.attr("id"),"=",e)})}function e(){var e;t||(t=!0,e=0,n.each(r,function(t,i){i=n(i);if(i&&0<i.length&&e++,2<e)return n.ajax({url:a,type:"POST",dataType:"json",cache:!1,timeout:1e4,data:{nonce:s},success:function(t){t.success&&null!==t.data&&(c=t.data)},complete:function(t,i){!function(){o&&console.log("CartBoss","Script initialized"),n.each(r,function(t,i){h(i,c[t])}),c.extra_fields&&n.each(JSON.parse(c.extra_fields),function(t,i){h('*[name="'+t+'"]',i)}),n.each(r,function(t,i){i=n(i);if(i&&0<i.length){if("billing_phone"===t)try{i.prop("type","tel"),i.attr("autocomplete","billing tel"),i.attr("autocorrect","off")}catch(t){}-1===n.inArray(t,d)&&(i.on("input change",_),l[t]=i),o&&console.log("CartBoss","👂 Field listener attached to STANDARD field",t)}});var t,e=[];for(t in l)l.hasOwnProperty(t)&&e.push(t);n("form[name='checkout'] :input").each(function(){var t=n(this),i=t.attr("name");t.is(":button")||i&&-1===n.inArray(i,e)&&-1===n.inArray(i,d)&&(t.on("input change",_),p[i]=t,o&&console.log("CartBoss","👂 Field listener attached to EXTRA field",i))})}()}}),!1}))}n(document).ready(function(){console.log("🔥","Recover Abandoned Carts with SMS","Powered by CartBoss"," -> ","https://www.cartboss.io","🔥"),o&&console.log("CartBoss","Script loaded"),setInterval(function(){e()},1e3)})}(jQuery); -
cartboss/trunk/vendor/composer/installed.json
r2942443 r2959706 3 3 { 4 4 "name": "jaybizzle/crawler-detect", 5 "version": "v1.2.11 4",6 "version_normalized": "1.2.11 4.0",5 "version": "v1.2.116", 6 "version_normalized": "1.2.116.0", 7 7 "source": { 8 8 "type": "git", 9 9 "url": "https://github.com/JayBizzle/Crawler-Detect.git", 10 "reference": " 62d0e6b38f6715c673e156ffb0fc894791de3452"11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/ 62d0e6b38f6715c673e156ffb0fc894791de3452",15 "reference": " 62d0e6b38f6715c673e156ffb0fc894791de3452",10 "reference": "97e9fe30219e60092e107651abb379a38b342921" 11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/97e9fe30219e60092e107651abb379a38b342921", 15 "reference": "97e9fe30219e60092e107651abb379a38b342921", 16 16 "shasum": "" 17 17 }, … … 22 22 "phpunit/phpunit": "^4.8|^5.5|^6.5|^9.4" 23 23 }, 24 "time": "2023-0 3-21T21:54:27+00:00",24 "time": "2023-07-21T15:49:49+00:00", 25 25 "type": "library", 26 26 "installation-source": "dist", … … 52 52 "support": { 53 53 "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", 54 "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.11 4"54 "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.116" 55 55 }, 56 56 "install-path": "../jaybizzle/crawler-detect" … … 865 865 { 866 866 "name": "symfony/property-access", 867 "version": "v5.4.2 2",868 "version_normalized": "5.4.2 2.0",867 "version": "v5.4.26", 868 "version_normalized": "5.4.26.0", 869 869 "source": { 870 870 "type": "git", 871 871 "url": "https://github.com/symfony/property-access.git", 872 "reference": " ffee082889586b5718347b291e04071f4d07b38f"873 }, 874 "dist": { 875 "type": "zip", 876 "url": "https://api.github.com/repos/symfony/property-access/zipball/ ffee082889586b5718347b291e04071f4d07b38f",877 "reference": " ffee082889586b5718347b291e04071f4d07b38f",872 "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa" 873 }, 874 "dist": { 875 "type": "zip", 876 "url": "https://api.github.com/repos/symfony/property-access/zipball/0249e46f69e92049a488f39fcf531cb42c50caaa", 877 "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa", 878 878 "shasum": "" 879 879 }, … … 890 890 "psr/cache-implementation": "To cache access methods." 891 891 }, 892 "time": "2023-0 3-14T14:59:20+00:00",892 "time": "2023-07-13T15:20:41+00:00", 893 893 "type": "library", 894 894 "installation-source": "dist", … … 929 929 ], 930 930 "support": { 931 "source": "https://github.com/symfony/property-access/tree/v5.4.2 2"931 "source": "https://github.com/symfony/property-access/tree/v5.4.26" 932 932 }, 933 933 "funding": [ … … 949 949 { 950 950 "name": "symfony/property-info", 951 "version": "v5.4.2 3",952 "version_normalized": "5.4.2 3.0",951 "version": "v5.4.24", 952 "version_normalized": "5.4.24.0", 953 953 "source": { 954 954 "type": "git", 955 955 "url": "https://github.com/symfony/property-info.git", 956 "reference": " ff45ebbfd781eab2571d9d4412d82a9a733fc2b3"957 }, 958 "dist": { 959 "type": "zip", 960 "url": "https://api.github.com/repos/symfony/property-info/zipball/ ff45ebbfd781eab2571d9d4412d82a9a733fc2b3",961 "reference": " ff45ebbfd781eab2571d9d4412d82a9a733fc2b3",956 "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1" 957 }, 958 "dist": { 959 "type": "zip", 960 "url": "https://api.github.com/repos/symfony/property-info/zipball/d43b85b00699b4484964c297575b5c6f9dc5f6e1", 961 "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1", 962 962 "shasum": "" 963 963 }, … … 987 987 "symfony/serializer": "To use Serializer metadata" 988 988 }, 989 "time": "2023-0 4-17T14:20:34+00:00",989 "time": "2023-05-15T20:11:03+00:00", 990 990 "type": "library", 991 991 "installation-source": "dist", … … 1023 1023 ], 1024 1024 "support": { 1025 "source": "https://github.com/symfony/property-info/tree/v5.4.2 3"1025 "source": "https://github.com/symfony/property-info/tree/v5.4.24" 1026 1026 }, 1027 1027 "funding": [ … … 1043 1043 { 1044 1044 "name": "symfony/serializer", 1045 "version": "v5.4.2 3",1046 "version_normalized": "5.4.2 3.0",1045 "version": "v5.4.26", 1046 "version_normalized": "5.4.26.0", 1047 1047 "source": { 1048 1048 "type": "git", 1049 1049 "url": "https://github.com/symfony/serializer.git", 1050 "reference": " 545da11697153c24c274b9a68cab550b2c0a9860"1051 }, 1052 "dist": { 1053 "type": "zip", 1054 "url": "https://api.github.com/repos/symfony/serializer/zipball/ 545da11697153c24c274b9a68cab550b2c0a9860",1055 "reference": " 545da11697153c24c274b9a68cab550b2c0a9860",1050 "reference": "3589ce086e867691ca7ac49eeb919688b31f7494" 1051 }, 1052 "dist": { 1053 "type": "zip", 1054 "url": "https://api.github.com/repos/symfony/serializer/zipball/3589ce086e867691ca7ac49eeb919688b31f7494", 1055 "reference": "3589ce086e867691ca7ac49eeb919688b31f7494", 1056 1056 "shasum": "" 1057 1057 }, … … 1068 1068 "symfony/dependency-injection": "<4.4", 1069 1069 "symfony/property-access": "<5.4", 1070 "symfony/property-info": "<5. 3.13",1070 "symfony/property-info": "<5.4.24|>=6,<6.2.11", 1071 1071 "symfony/uid": "<5.3", 1072 1072 "symfony/yaml": "<4.4" … … 1085 1085 "symfony/mime": "^4.4|^5.0|^6.0", 1086 1086 "symfony/property-access": "^5.4|^6.0", 1087 "symfony/property-info": "^5. 3.13|^6.0",1087 "symfony/property-info": "^5.4.24|^6.2.11", 1088 1088 "symfony/uid": "^5.3|^6.0", 1089 1089 "symfony/validator": "^4.4|^5.0|^6.0", … … 1101 1101 "symfony/yaml": "For using the default YAML mapping loader." 1102 1102 }, 1103 "time": "2023-0 4-17T13:59:16+00:00",1103 "time": "2023-07-27T16:17:10+00:00", 1104 1104 "type": "library", 1105 1105 "installation-source": "dist", … … 1129 1129 "homepage": "https://symfony.com", 1130 1130 "support": { 1131 "source": "https://github.com/symfony/serializer/tree/v5.4.2 3"1131 "source": "https://github.com/symfony/serializer/tree/v5.4.26" 1132 1132 }, 1133 1133 "funding": [ … … 1149 1149 { 1150 1150 "name": "symfony/string", 1151 "version": "v5.4.2 2",1152 "version_normalized": "5.4.2 2.0",1151 "version": "v5.4.26", 1152 "version_normalized": "5.4.26.0", 1153 1153 "source": { 1154 1154 "type": "git", 1155 1155 "url": "https://github.com/symfony/string.git", 1156 "reference": " 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"1157 }, 1158 "dist": { 1159 "type": "zip", 1160 "url": "https://api.github.com/repos/symfony/string/zipball/ 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",1161 "reference": " 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",1156 "reference": "1181fe9270e373537475e826873b5867b863883c" 1157 }, 1158 "dist": { 1159 "type": "zip", 1160 "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c", 1161 "reference": "1181fe9270e373537475e826873b5867b863883c", 1162 1162 "shasum": "" 1163 1163 }, … … 1179 1179 "symfony/var-exporter": "^4.4|^5.0|^6.0" 1180 1180 }, 1181 "time": "2023-0 3-14T06:11:53+00:00",1181 "time": "2023-06-28T12:46:07+00:00", 1182 1182 "type": "library", 1183 1183 "installation-source": "dist", … … 1218 1218 ], 1219 1219 "support": { 1220 "source": "https://github.com/symfony/string/tree/v5.4.2 2"1220 "source": "https://github.com/symfony/string/tree/v5.4.26" 1221 1221 }, 1222 1222 "funding": [ -
cartboss/trunk/vendor/composer/installed.php
r2942443 r2959706 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 7c1747fc0515b4e6b816418b7ccf3d0633280ecf',8 'reference' => '513d350354d549ef54b9d45e23388e46a8f40d03', 9 9 'name' => '__root__', 10 10 'dev' => true, … … 17 17 'install_path' => __DIR__ . '/../../', 18 18 'aliases' => array(), 19 'reference' => ' 7c1747fc0515b4e6b816418b7ccf3d0633280ecf',19 'reference' => '513d350354d549ef54b9d45e23388e46a8f40d03', 20 20 'dev_requirement' => false, 21 21 ), 22 22 'jaybizzle/crawler-detect' => array( 23 'pretty_version' => 'v1.2.11 4',24 'version' => '1.2.11 4.0',23 'pretty_version' => 'v1.2.116', 24 'version' => '1.2.116.0', 25 25 'type' => 'library', 26 26 'install_path' => __DIR__ . '/../jaybizzle/crawler-detect', 27 27 'aliases' => array(), 28 'reference' => ' 62d0e6b38f6715c673e156ffb0fc894791de3452',28 'reference' => '97e9fe30219e60092e107651abb379a38b342921', 29 29 'dev_requirement' => false, 30 30 ), … … 120 120 ), 121 121 'symfony/property-access' => array( 122 'pretty_version' => 'v5.4.2 2',123 'version' => '5.4.2 2.0',122 'pretty_version' => 'v5.4.26', 123 'version' => '5.4.26.0', 124 124 'type' => 'library', 125 125 'install_path' => __DIR__ . '/../symfony/property-access', 126 126 'aliases' => array(), 127 'reference' => ' ffee082889586b5718347b291e04071f4d07b38f',127 'reference' => '0249e46f69e92049a488f39fcf531cb42c50caaa', 128 128 'dev_requirement' => false, 129 129 ), 130 130 'symfony/property-info' => array( 131 'pretty_version' => 'v5.4.2 3',132 'version' => '5.4.2 3.0',131 'pretty_version' => 'v5.4.24', 132 'version' => '5.4.24.0', 133 133 'type' => 'library', 134 134 'install_path' => __DIR__ . '/../symfony/property-info', 135 135 'aliases' => array(), 136 'reference' => ' ff45ebbfd781eab2571d9d4412d82a9a733fc2b3',136 'reference' => 'd43b85b00699b4484964c297575b5c6f9dc5f6e1', 137 137 'dev_requirement' => false, 138 138 ), 139 139 'symfony/serializer' => array( 140 'pretty_version' => 'v5.4.2 3',141 'version' => '5.4.2 3.0',140 'pretty_version' => 'v5.4.26', 141 'version' => '5.4.26.0', 142 142 'type' => 'library', 143 143 'install_path' => __DIR__ . '/../symfony/serializer', 144 144 'aliases' => array(), 145 'reference' => ' 545da11697153c24c274b9a68cab550b2c0a9860',145 'reference' => '3589ce086e867691ca7ac49eeb919688b31f7494', 146 146 'dev_requirement' => false, 147 147 ), 148 148 'symfony/string' => array( 149 'pretty_version' => 'v5.4.2 2',150 'version' => '5.4.2 2.0',149 'pretty_version' => 'v5.4.26', 150 'version' => '5.4.26.0', 151 151 'type' => 'library', 152 152 'install_path' => __DIR__ . '/../symfony/string', 153 153 'aliases' => array(), 154 'reference' => ' 8036a4c76c0dd29e60b6a7cafcacc50cf088ea62',154 'reference' => '1181fe9270e373537475e826873b5867b863883c', 155 155 'dev_requirement' => false, 156 156 ), -
cartboss/trunk/vendor/jaybizzle/crawler-detect/.github/workflows/test.yml
r2901887 r2959706 19 19 steps: 20 20 - name: Checkout 21 uses: actions/checkout@v 221 uses: actions/checkout@v3 22 22 23 23 - name: Setup PHP, with composer … … 30 30 - name: Get composer cache directory 31 31 id: composer-cache 32 run: echo "::set-output name=dir::$(composer config cache-files-dir)" 32 run: | 33 echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT 34 shell: bash 33 35 34 36 - name: Cache composer dependencies 35 uses: actions/cache@v 237 uses: actions/cache@v3 36 38 with: 37 39 path: ${{ steps.composer-cache.outputs.dir }} -
cartboss/trunk/vendor/jaybizzle/crawler-detect/raw/Crawlers.json
r2942443 r2959706 1 [" YLT","^Aether","^Amazon Simple Notification Service Agent$","^Amazon-Route53-Health-Check-Service","^b0t$","^bluefish ","^Calypso v\\\/","^COMODO DCV","^Corax","^DangDang","^DavClnt","^DHSH","^docker\\\/[0-9]","^Expanse","^FDM ","^git\\\/","^Goose\\\/","^Grabber","^Gradle\\\/","^HTTPClient\\\/","^HTTPing","^Java\\\/","^Jeode\\\/","^Jetty\\\/","^Mail\\\/","^Mget","^Microsoft URL Control","^Mikrotik\\\/","^Netlab360","^NG\\\/[0-9\\.]","^NING\\\/","^npm\\\/","^Nuclei","^PHP-AYMAPI\\\/","^PHP\\\/","^pip\\\/","^pnpm\\\/","^RMA\\\/","^Ruby|Ruby\\\/[0-9]","^Swurl ","^TLS tester ","^twine\\\/","^ureq","^VSE\\\/[0-9]","^WordPress\\.com","^XRL\\\/[0-9]","^ZmEu","008\\\/","13TABS","192\\.comAgent","2GDPR\\\/","2ip\\.ru","404enemy","7Siters","80legs","a3logics\\.in","A6-Indexer","Abonti","Aboundex","aboutthedomain","Accoona-AI-Agent","acebookexternalhit\\\/","acoon","acrylicapps\\.com\\\/pulp","Acunetix","AdAuth\\\/","adbeat","AddThis","ADmantX","AdminLabs","adressendeutschland","adreview\\\/","adscanner","adstxt-worker","Adstxtaggregator","adstxt\\.com","Adyen HttpClient","AffiliateLabz\\\/","affilimate-puppeteer","agentslug","AHC","aihit","aiohttp\\\/","Airmail","akka-http\\\/","akula\\\/","alertra","alexa site audit","Alibaba\\.Security\\.Heimdall","Alligator","allloadin","AllSubmitter","alyze\\.info","amagit","Anarchie","AndroidDownloadManager","Anemone","AngleSharp","annotate_google","Anthill","Anturis Agent","Ant\\.com","AnyEvent-HTTP\\\/","Apache Ant\\\/","Apache Droid","Apache OpenOffice","Apache-HttpAsyncClient","Apache-HttpClient","ApacheBench","Apexoo","apimon\\.de","APIs-Google","AportWorm\\\/","AppBeat\\\/","AppEngine-Google","AppleSyndication","Aprc\\\/[0-9]","Arachmo","arachnode","Arachnophilia","aria2","Arukereso","asafaweb","Asana\\\/","Ask Jeeves","AskQuickly","ASPSeek","Asterias","Astute","asynchttp","Attach","attohttpc","autocite","AutomaticWPTester","Autonomy","awin\\.com","AWS Security Scanner","axios\\\/","a\\.pr-cy\\.ru","B-l-i-t-z-B-O-T","Backlink-Ceck","backlink-check","BacklinkHttpStatus","BackStreet","BackupLand","BackWeb","Bad-Neighborhood","Badass","baidu\\.com","Bandit","basicstate","BatchFTP","Battleztar Bazinga","baypup\\\/","BazQux","BBBike","BCKLINKS","BDFetch","BegunAdvertising","Bewica-security-scan","Bidtellect","BigBozz","Bigfoot","biglotron","BingLocalSearch","BingPreview","binlar","biNu image cacher","Bitacle","Bitrix link preview","biz_Directory","BKCTwitterUnshortener\\\/","Black Hole","Blackboard Safeassign","BlackWidow","BlockNote\\.Net","BlogBridge","Bloglines","Bloglovin","BlogPulseLive","BlogSearch","Blogtrottr","BlowFish","boitho\\.com-dc","Boost\\.Beast","BPImageWalker","Braintree-Webhooks","Branch Metrics API","Branch-Passthrough","Brandprotect","BrandVerity","Brandwatch","Brodie\\\/","Browsershots","BUbiNG","Buck\\\/","Buddy","BuiltWith","Bullseye","BunnySlippers","Burf Search","Butterfly\\\/","BuzzSumo","CAAM\\\/[0-9]","CakePHP","Calculon","Canary%20Mail","CaretNail","catexplorador","CC Metadata Scaper","Cegbfeieh","censys","centuryb.o.t9[at]gmail.com","Cerberian Drtrs","CERT\\.at-Statistics-Survey","cf-facebook","cg-eye","changedetection","ChangesMeter","Charlotte","chatterino-api-cache","CheckHost","checkprivacy","CherryPicker","ChinaClaw","Chirp\\\/","chkme\\.com","Chlooe","Chromaxa","CirrusExplorer","CISPA Vulnerability Notification","CISPA Web Analyser","Citoid","CJNetworkQuality","Clarsentia","clips\\.ua\\.ac\\.be","Cloud mapping","CloudEndure","CloudFlare-AlwaysOnline","Cloudflare-Healthchecks","Cloudinary","cmcm\\.com","coccoc","cognitiveseo","ColdFusion","colly -","CommaFeed","Commons-HttpClient","commonscan","contactbigdatafr","contentkingapp","Contextual Code Sites Explorer","convera","CookieReports","copyright sheriff","CopyRightCheck","Copyscape","cortex\\\/","Cosmos4j\\.feedback","Covario-IDS","Craw\\\/","Crescent","Criteo","Crowsnest","CSHttp","CSSCheck","Cula\\\/","curb","Curious George","curl","cuwhois\\\/","cybo\\.com","DAP\\\/NetHTTP","DareBoost","DatabaseDriverMysqli","DataCha0s","DatadogSynthetics","Datafeedwatch","Datanyze","DataparkSearch","dataprovider","DataXu","Daum(oa)?[ \\\/][0-9]","dBpoweramp","ddline","deeris","delve\\.ai","Demon","DeuSu","developers\\.google\\.com\\\/\\+\\\/web\\\/snippet\\\/","Devil","Digg","Digincore","DigitalPebble","Dirbuster","Discourse Forum Onebox","Dispatch\\\/","Disqus\\\/","DittoSpyder","dlvr","DMBrowser","DNSPod-reporting","docoloc","Dolphin http client","DomainAppender","DomainLabz","Domains Project\\\/","Donuts Content Explorer","dotMailer content retrieval","dotSemantic","downforeveryoneorjustme","Download Wonder","downnotifier","DowntimeDetector","Drip","drupact","Drupal \\(\\+http:\\\/\\\/drupal\\.org\\\/\\)","DTS Agent","dubaiindex","DuplexWeb-Google","DynatraceSynthetic","EARTHCOM","Easy-Thumb","EasyDL","Ebingbong","ec2linkfinder","eCairn-Grabber","eCatch","ECCP","eContext\\\/","Ecxi","EirGrabber","ElectricMonk","elefent","EMail Exractor","EMail Wolf","EmailWolf","Embarcadero","Embed PHP Library","Embedly","endo\\\/","europarchive\\.org","evc-batch","EventMachine HttpClient","Everwall Link Expander","Evidon","Evrinid","ExactSearch","ExaleadCloudview","Excel\\\/","exif","ExoRank","Exploratodo","Express WebPictures","Extreme Picture Finder","EyeNetIE","ezooms","facebookexternalhit","facebookexternalua","facebookplatform","fairshare","Faraday v","fasthttp","Faveeo","Favicon downloader","faviconarchive","faviconkit","FavOrg","Feed Wrangler","Feedable\\\/","Feedbin","FeedBooster","FeedBucket","FeedBunch\\\/","FeedBurner","feeder","Feedly","FeedshowOnline","Feedshow\\\/","Feedspot","FeedViewer\\\/","Feedwind\\\/","FeedZcollector","feeltiptop","Fetch API","Fetch\\\/[0-9]","Fever\\\/[0-9]","FHscan","Fiery%20Feeds","Filestack","Fimap","findlink","findthatfile","FlashGet","FlipboardBrowserProxy","FlipboardProxy","FlipboardRSS","Flock\\\/","Florienzh\\\/","fluffy","Flunky","flynxapp","forensiq","ForusP","FoundSeoTool","fr ee thumbnails","Freeuploader","FreshRSS","frontman","Funnelback","Fuzz Faster U Fool","G-i-g-a-b-o-t","g00g1e\\.net","ganarvisitas","gdnplus\\.com","geek-tools","Genieo","GentleSource","GetCode","Getintent","GetLinkInfo","getprismatic","GetRight","getroot","GetURLInfo\\\/","GetWeb","Geziyor","Ghost Inspector","GigablastOpenSource","GIS-LABS","github-camo","GitHub-Hookshot","github\\.com","Go http package","Go [\\d\\.]* package http","Go!Zilla","Go-Ahead-Got-It","Go-http-client","go-mtasts\\\/","gobuster","gobyus","Gofeed","gofetch","Goldfire Server","GomezAgent","gooblog","Goodzer\\\/","Google AppsViewer","Google Desktop","Google favicon","Google Keyword Suggestion","Google Keyword Tool","Google Page Speed Insights","Google PP Default","Google Search Console","Google Web Preview","Google-Ads-Creatives-Assistant","Google-Ads-Overview","Google-Adwords","Google-Apps-Script","Google-Calendar-Importer","Google-HotelAdsVerifier","Google-HTTP-Java-Client","Google-Podcast","Google-Publisher-Plugin","Google-Read-Aloud","Google-SearchByImage","Google-Site-Verification","Google-SMTP-STS","Google-speakr","Google-Structured-Data-Testing-Tool","Google-Transparency-Report","google-xrawler","Google-Youtube-Links","GoogleDocs","GoogleHC\\\/","GoogleProber","GoogleProducer","GoogleSites","Gookey","GoSpotCheck","gosquared-thumbnailer","Gotit","GoZilla","grabify","GrabNet","Grafula","Grammarly","GrapeFX","GreatNews","Gregarius","GRequests","grokkit","grouphigh","grub-client","gSOAP\\\/","GT::WWW","GTmetrix","GuzzleHttp","gvfs\\\/","HAA(A)?RTLAND http client","Haansoft","hackney\\\/","Hadi Agent","HappyApps-WebCheck","Hardenize","Hatena","Havij","HaxerMen","HeadlessChrome","HEADMasterSEO","HeartRails_Capture","help@dataminr\\.com","heritrix","Hexometer","historious","hkedcity","hledejLevne\\.cz","Hloader","HMView","Holmes","HonesoSearchEngine","HootSuite Image proxy","Hootsuite-WebFeed","hosterstats","HostTracker","ht:\\\/\\\/check","htdig","HTMLparser","htmlyse","HTTP Banner Detection","http-get","HTTP-Header-Abfrage","http-kit","http-request\\\/","HTTP-Tiny","HTTP::Lite","http:\\\/\\\/www.neomo.de\\\/","HttpComponents","httphr","HTTPie","HTTPMon","httpRequest","httpscheck","httpssites_power","httpunit","HttpUrlConnection","http\\.rb\\\/","HTTP_Compression_Test","http_get","http_request2","http_requester","httrack","huaweisymantec","HubSpot ","HubSpot-Link-Resolver","Humanlinks","i2kconnect\\\/","Iblog","ichiro","Id-search","IdeelaborPlagiaat","IDG Twitter Links Resolver","IDwhois\\\/","Iframely","igdeSpyder","iGooglePortal","IlTrovatore","Image Fetch","Image Sucker","ImageEngine\\\/","ImageVisu\\\/","Imagga","imagineeasy","imgsizer","InAGist","inbound\\.li parser","InDesign%20CC","Indy Library","InetURL","infegy","infohelfer","InfoTekies","InfoWizards Reciprocal Link","inpwrd\\.com","instabid","Instapaper","Integrity","integromedb","Intelliseek","InterGET","Internet Ninja","InternetSeer","internetVista monitor","internetwache","internet_archive","intraVnews","IODC","IOI","iplabel","ips-agent","IPS\\\/[0-9]","IPWorks HTTP\\\/S Component","iqdb\\\/","Iria","Irokez","isitup\\.org","iskanie","isUp\\.li","iThemes Sync\\\/","IZaBEE","iZSearch","JAHHO","janforman","Jaunt\\\/","Java.*outbrain","javelin\\.io","Jbrofuzz","Jersey\\\/","JetCar","Jigsaw","Jobboerse","JobFeed discovery","Jobg8 URL Monitor","jobo","Jobrapido","Jobsearch1\\.5","JoinVision Generic","JolokiaPwn","Joomla","Jorgee","JS-Kit","JungleKeyThumbnail","JustView","Kaspersky Lab CFR link resolver","Kelny\\\/","Kerrigan\\\/","KeyCDN","Keyword Density","Keywords Research","khttp\\\/","KickFire","KimonoLabs\\\/","Kml-Google","knows\\.is","KOCMOHABT","kouio","kube-probe","kubectl","kulturarw3","KumKie","Larbin","Lavf\\\/","leakix\\.net","LeechFTP","LeechGet","letsencrypt","Lftp","LibVLC","LibWeb","Libwhisker","libwww","Licorne","Liferea\\\/","Lighthouse","Lightspeedsystems","Likse","limber\\.io","Link Valet","LinkAlarm\\\/","LinkAnalyser","linkCheck","linkdex","LinkExaminer","linkfluence","linkpeek","LinkPreview","LinkScan","LinksManager","LinkTiger","LinkWalker","link_thumbnailer","Lipperhey","Litemage_walker","livedoor ScreenShot","LoadImpactRload","localsearch-web","LongURL API","longurl-r-package","looid\\.com","looksystems\\.net","ltx71","lua-resty-http","Lucee \\(CFML Engine\\)","Lush Http Client","lwp-request","lwp-trivial","LWP::Simple","lycos","LYT\\.SR","L\\.webis","mabontland","MacOutlook\\\/","Mag-Net","MagpieRSS","Mail::STS","MailChimp","Mail\\.Ru","Majestic12","makecontact\\\/","Mandrill","MapperCmd","marketinggrader","MarkMonitor","MarkWatch","Mass Downloader","masscan\\\/","Mata Hari","mattermost","Mediametric","Mediapartners-Google","mediawords","MegaIndex\\.ru","MeltwaterNews","Melvil Rawi","MemGator","Metaspinner","MetaURI","MFC_Tear_Sample","Microsearch","Microsoft Data Access","Microsoft Office","Microsoft Outlook","Microsoft Windows Network Diagnostics","Microsoft-WebDAV-MiniRedir","Microsoft\\.Data\\.Mashup","MIDown tool","MIIxpc","Mindjet","Miniature\\.io","Miniflux","mio_httpc","Miro-HttpClient","Mister PiX","mixdata dot com","mixed-content-scan","mixnode","Mnogosearch","mogimogi","Mojeek","Mojolicious \\(Perl\\)","Mollie","monitis","Monitority\\\/","Monit\\\/","montastic","MonTools","Moreover","Morfeus Fucking Scanner","Morning Paper","MovableType","mowser","Mrcgiguy","Mr\\.4x3 Powered","MS Web Services Client Protocol","MSFrontPage","mShots","MuckRack\\\/","muhstik-scan","MVAClient","MxToolbox\\\/","myseosnapshot","nagios","Najdi\\.si","Name Intelligence","NameFo\\.com","Nameprotect","nationalarchives","Navroad","NearSite","Needle","Nessus","Net Vampire","NetAnts","NETCRAFT","NetLyzer","NetMechanic","NetNewsWire","Netpursual","netresearch","NetShelter ContentScan","Netsparker","NetSystemsResearch","nettle","NetTrack","Netvibes","NetZIP","Neustar WPM","NeutrinoAPI","NewRelicPinger","NewsBlur .*Finder","NewsGator","newsme","newspaper\\\/","Nexgate Ruby Client","NG-Search","nghttp2","Nibbler","NICErsPRO","NihilScio","Nikto","nineconnections","NLNZ_IAHarvester","Nmap Scripting Engine","node-fetch","node-superagent","node-urllib","Nodemeter","NodePing","node\\.io","nominet\\.org\\.uk","nominet\\.uk","Norton-Safeweb","Notifixious","notifyninja","NotionEmbedder","nuhk","nutch","Nuzzel","nWormFeedFinder","nyawc\\\/","Nymesis","NYU","Observatory\\\/","Ocelli\\\/","Octopus","oegp","Offline Explorer","Offline Navigator","OgScrper","okhttp","omgili","OMSC","Online Domain Tools","Open Source RSS","OpenCalaisSemanticProxy","Openfind","OpenLinkProfiler","Openstat\\\/","OpenVAS","OPPO A33","Optimizer","Orbiter","OrgProbe\\\/","orion-semantics","Outlook-Express","Outlook-iOS","Owler","Owlin","ownCloud News","ow\\.ly","OxfordCloudService","page scorer","Page Valet","page2rss","PageFreezer","PageGrabber","PagePeeker","PageScorer","Pagespeed\\\/","PageThing","page_verifier","Panopta","panscient","Papa Foto","parsijoo","Pavuk","PayPal IPN","pcBrowser","Pcore-HTTP","PDF24 URL To PDF","Pearltrees","PECL::HTTP","peerindex","Peew","PeoplePal","Perlu -","PhantomJS Screenshoter","PhantomJS\\\/","Photon\\\/","php-requests","phpservermon","Pi-Monster","Picscout","Picsearch","PictureFinder","Pimonster","Pingability","PingAdmin\\.Ru","Pingdom","Pingoscope","PingSpot","ping\\.blo\\.gs","pinterest\\.com","Pixray","Pizilla","Plagger\\\/","Pleroma ","Ploetz \\+ Zeller","Plukkie","plumanalytics","PocketImageCache","PocketParser","Pockey","PodcastAddict\\\/","POE-Component-Client-HTTP","Polymail\\\/","Pompos","Porkbun","Port Monitor","postano","postfix-mta-sts-resolver","PostmanRuntime","postplanner\\.com","PostPost","postrank","PowerPoint\\\/","Prebid","Prerender","Priceonomics Analysis Engine","PrintFriendly","PritTorrent","Prlog","probethenet","Project ?25499","Project-Resonance","prospectb2b","Protopage","ProWebWalker","proximic","PRTG Network Monitor","pshtt, https scanning","PTST ","PTST\\\/[0-9]+","Pump","Python-httplib2","python-httpx","python-requests","Python-urllib","Qirina Hurdler","QQDownload","QrafterPro","Qseero","Qualidator","QueryN Metasearch","queuedriver","quic-go-HTTP\\\/","QuiteRSS","Quora Link Preview","Qwantify","Radian6","RadioPublicImageResizer","Railgun\\\/","RankActive","RankFlex","RankSonicSiteAuditor","RapidLoad\\\/","Re-re Studio","ReactorNetty","Readability","RealDownload","RealPlayer%20Downloader","RebelMouse","Recorder","RecurPost\\\/","redback\\\/","ReederForMac","Reeder\\\/","ReGet","RepoMonkey","request\\.js","reqwest\\\/","ResponseCodeTest","RestSharp","Riddler","Rival IQ","Robosourcer","Robozilla","ROI Hunter","RPT-HTTPClient","RSSMix\\\/","RSSOwl","RyowlEngine","safe-agent-scanner","SalesIntelligent","Saleslift","SAP NetWeaver Application Server","SauceNAO","SBIder","sc-downloader","scalaj-http","Scamadviser-Frontend","ScanAlert","scan\\.lol","Scoop","scooter","ScopeContentAG-HTTP-Client","ScoutJet","ScoutURLMonitor","ScrapeBox Page Scanner","Scrapy","Screaming","ScreenShotService","Scrubby","Scrutiny\\\/","Search37","searchenginepromotionhelp","Searchestate","SearchExpress","SearchSight","SearchWP","search\\.thunderstone","Seeker","semanticdiscovery","semanticjuice","Semiocast HTTP client","Semrush","Sendsay\\.Ru","sentry\\\/","SEO Browser","Seo Servis","seo-nastroj\\.cz","seo4ajax","Seobility","SEOCentro","SeoCheck","seocompany","SEOkicks","SEOlizer","Seomoz","SEOprofiler","seoscanners","SEOsearch","seositecheckup","SEOstats","servernfo","sexsearcher","Seznam","Shelob","Shodan","Shoppimon","ShopWiki","ShortLinkTranslate","shortURL lengthener","shrinktheweb","Sideqik","Siege","SimplePie","SimplyFast","Siphon","SISTRIX","Site Sucker","Site-Shot\\\/","Site24x7","SiteBar","Sitebeam","Sitebulb\\\/","SiteCondor","SiteExplorer","SiteGuardian","Siteimprove","SiteIndexed","Sitemap(s)? Generator","SitemapGenerator","SiteMonitor","Siteshooter B0t","SiteSnagger","SiteSucker","SiteTruth","Sitevigil","sitexy\\.com","SkypeUriPreview","Slack\\\/","sli-systems\\.com","slider\\.com","slurp","SlySearch","SmartDownload","SMRF URL Expander","SMUrlExpander","Snake","Snappy","SnapSearch","Snarfer\\\/","SniffRSS","sniptracker","Snoopy","SnowHaze Search","sogou web","SortSite","Sottopop","sovereign\\.ai","SpaceBison","SpamExperts","Spammen","Spanner","spaziodati","SPDYCheck","Specificfeeds","speedy","SPEng","Spinn3r","spray-can","Sprinklr ","spyonweb","sqlmap","Sqlworm","Sqworm","SSL Labs","ssl-tools","StackRambler","Statastico\\\/","Statically-","StatusCake","Steeler","Stratagems Kumo","Stripe\\\/","Stroke\\.cz","StudioFACA","StumbleUpon","suchen","Sucuri","summify","SuperHTTP","Surphace Scout","Suzuran","swcd ","Symfony BrowserKit","Symfony2 BrowserKit","Synapse\\\/","Syndirella\\\/","SynHttpClient-Built","Sysomos","sysscan","Szukacz","T0PHackTeam","tAkeOut","Tarantula\\\/","Taringa UGC","TarmotGezgin","tchelebi\\.io","techiaith\\.cymru","Teleport","Telesoft","Telesphoreo","Telesphorep","Tenon\\.io","teoma","terrainformatica","Test Certificate Info","testuri","Tetrahedron","TextRazor Downloader","The Drop Reaper","The Expert HTML Source Viewer","The Intraformant","The Knowledge AI","theinternetrules","TheNomad","Thinklab","Thumbor","Thumbshots","ThumbSniper","timewe\\.net","TinEye","Tiny Tiny RSS","TLSProbe\\\/","Toata","topster","touche\\.com","Traackr\\.com","tracemyfile","Trackuity","TrapitAgent","Trendiction","Trendsmap","trendspottr","truwoGPS","TryJsoup","TulipChain","Turingos","Turnitin","tweetedtimes","Tweetminster","Tweezler\\\/","twibble","Twice","Twikle","Twingly","Twisted PageGetter","Typhoeus","ubermetrics-technologies","uclassify","UdmSearch","ultimate_sitemap_parser","unchaos","unirest-java","UniversalFeedParser","unshortenit","Unshorten\\.It","Untiny","UnwindFetchor","updated","updown\\.io daemon","Upflow","Uptimia","URL Verifier","Urlcheckr","URLitor","urlresolver","Urlstat","URLTester","UrlTrends Ranking Updater","URLy Warning","URLy\\.Warning","URL\\\/Emacs","Vacuum","Vagabondo","VB Project","vBSEO","VCI","via ggpht\\.com GoogleImageProxy","Virusdie","visionutils","Visual Rights Group","vkShare","VoidEYE","Voil","voltron","voyager\\\/","VSAgent\\\/","VSB-TUO\\\/","Vulnbusters Meter","VYU2","w3af\\.org","W3C-checklink","W3C-mobileOK","W3C_Unicorn","WAC-OFU","WakeletLinkExpander","WallpapersHD","Wallpapers\\\/[0-9]+","wangling","Wappalyzer","WatchMouse","WbSrch\\\/","WDT\\.io","Web Auto","Web Collage","Web Enhancer","Web Fetch","Web Fuck","Web Pix","Web Sauger","Web spyder","Web Sucker","web-capture\\.net","Web-sniffer","Webalta","Webauskunft","WebAuto","WebCapture","WebClient\\\/","webcollage","WebCookies","WebCopier","WebCorp","WebDataStats","WebDoc","WebEnhancer","WebFetch","WebFuck","WebGazer","WebGo IS","WebImageCollector","WebImages","WebIndex","webkit2png","WebLeacher","webmastercoffee","webmon ","WebPix","WebReaper","WebSauger","webscreenie","Webshag","Webshot","Website Quester","websitepulse agent","WebsiteQuester","Websnapr","WebSniffer","Webster","WebStripper","WebSucker","webtech\\\/","WebThumbnail","Webthumb\\\/","WebWhacker","WebZIP","WeLikeLinks","WEPA","WeSEE","wf84","Wfuzz\\\/","wget","WhatCMS","WhatsApp","WhatsMyIP","WhatWeb","WhereGoes\\?","Whibse","WhoAPI\\\/","WhoRunsCoinHive","Whynder Magnet","Windows-RSS-Platform","WinHttp-Autoproxy-Service","WinHTTP\\\/","WinPodder","wkhtmlto","wmtips","Woko","Wolfram HTTPClient","woorankreview","WordPress\\\/","WordupinfoSearch","Word\\\/","worldping-api","wotbox","WP Engine Install Performance API","WP Rocket","wpif","wprecon\\.com survey","WPScan","wscheck","Wtrace","WWW-Collector-E","WWW-Mechanize","WWW::Document","WWW::Mechanize","WWWOFFLE","www\\.monitor\\.us","x09Mozilla","x22Mozilla","XaxisSemanticsClassifier","XenForo\\\/","Xenu Link Sleuth","XING-contenttabreceiver","xpymep([0-9]?)\\.exe","Y!J-[A-Z][A-Z][A-Z]","Yaanb","yacy","Yahoo Link Preview","YahooCacheSystem","YahooMailProxy","YahooYSMcm","YandeG","Yandex(?!Search)","yanga","yeti","Yo-yo","Yoleo Consumer","yomins\\.com","yoogliFetchAgent","YottaaMonitor","Your-Website-Sucks","yourls\\.org","YoYs\\.net","YP\\.PL","Zabbix","Zade","Zao","Zauba","Zemanta Aggregator","Zend\\\\Http\\\\Client","Zend_Http_Client","Zermelo","Zeus ","zgrab","ZnajdzFoto","ZnHTTP","Zombie\\.js","Zoom\\.Mac","ZoteroTranslationServer","ZyBorg","[a-z0-9\\-_]*(bot|crawl|archiver|transcoder|spider|uptime|validator|fetcher|cron|checker|reader|extractor|monitoring|analyzer|scraper)"]1 [" YLT","^Aether","^Amazon Simple Notification Service Agent$","^Amazon-Route53-Health-Check-Service","^b0t$","^bluefish ","^Calypso v\\\/","^COMODO DCV","^Corax","^DangDang","^DavClnt","^DHSH","^docker\\\/[0-9]","^Expanse","^FDM ","^git\\\/","^Goose\\\/","^Grabber","^Gradle\\\/","^HTTPClient\\\/","^HTTPing","^Java\\\/","^Jeode\\\/","^Jetty\\\/","^Mail\\\/","^Mget","^Microsoft URL Control","^Mikrotik\\\/","^Netlab360","^NG\\\/[0-9\\.]","^NING\\\/","^npm\\\/","^Nuclei","^PHP-AYMAPI\\\/","^PHP\\\/","^pip\\\/","^pnpm\\\/","^RMA\\\/","^Ruby|Ruby\\\/[0-9]","^Swurl ","^TLS tester ","^twine\\\/","^ureq","^VSE\\\/[0-9]","^WordPress\\.com","^XRL\\\/[0-9]","^ZmEu","008\\\/","13TABS","192\\.comAgent","2GDPR\\\/","2ip\\.ru","404enemy","7Siters","80legs","a3logics\\.in","A6-Indexer","Abonti","Aboundex","aboutthedomain","Accoona-AI-Agent","acebookexternalhit\\\/","acoon","acrylicapps\\.com\\\/pulp","Acunetix","AdAuth\\\/","adbeat","AddThis","ADmantX","AdminLabs","adressendeutschland","adreview\\\/","adscanner","adstxt-worker","Adstxtaggregator","adstxt\\.com","Adyen HttpClient","AffiliateLabz\\\/","affilimate-puppeteer","agentslug","AHC","aihit","aiohttp\\\/","Airmail","akka-http\\\/","akula\\\/","alertra","alexa site audit","Alibaba\\.Security\\.Heimdall","Alligator","allloadin","AllSubmitter","alyze\\.info","amagit","Anarchie","AndroidDownloadManager","Anemone","AngleSharp","annotate_google","Anthill","Anturis Agent","Ant\\.com","AnyEvent-HTTP\\\/","Apache Ant\\\/","Apache Droid","Apache OpenOffice","Apache-HttpAsyncClient","Apache-HttpClient","ApacheBench","Apexoo","apimon\\.de","APIs-Google","AportWorm\\\/","AppBeat\\\/","AppEngine-Google","AppleSyndication","Aprc\\\/[0-9]","Arachmo","arachnode","Arachnophilia","aria2","Arukereso","asafaweb","Asana\\\/","Ask Jeeves","AskQuickly","ASPSeek","Asterias","Astute","asynchttp","Attach","attohttpc","autocite","AutomaticWPTester","Autonomy","awin\\.com","AWS Security Scanner","axios\\\/","a\\.pr-cy\\.ru","B-l-i-t-z-B-O-T","Backlink-Ceck","backlink-check","BacklinkHttpStatus","BackStreet","BackupLand","BackWeb","Bad-Neighborhood","Badass","baidu\\.com","Bandit","basicstate","BatchFTP","Battleztar Bazinga","baypup\\\/","BazQux","BBBike","BCKLINKS","BDFetch","BegunAdvertising","Bewica-security-scan","Bidtellect","BigBozz","Bigfoot","biglotron","BingLocalSearch","BingPreview","binlar","biNu image cacher","Bitacle","Bitrix link preview","biz_Directory","BKCTwitterUnshortener\\\/","Black Hole","Blackboard Safeassign","BlackWidow","BlockNote\\.Net","BlogBridge","Bloglines","Bloglovin","BlogPulseLive","BlogSearch","Blogtrottr","BlowFish","boitho\\.com-dc","Boost\\.Beast","BPImageWalker","Braintree-Webhooks","Branch Metrics API","Branch-Passthrough","Brandprotect","BrandVerity","Brandwatch","Brodie\\\/","Browsershots","BUbiNG","Buck\\\/","Buddy","BuiltWith","Bullseye","BunnySlippers","Burf Search","Butterfly\\\/","BuzzSumo","CAAM\\\/[0-9]","CakePHP","Calculon","Canary%20Mail","CaretNail","catexplorador","CC Metadata Scaper","Cegbfeieh","censys","centuryb.o.t9[at]gmail.com","Cerberian Drtrs","CERT\\.at-Statistics-Survey","cf-facebook","cg-eye","changedetection","ChangesMeter","Charlotte","chatterino-api-cache","CheckHost","checkprivacy","CherryPicker","ChinaClaw","Chirp\\\/","chkme\\.com","Chlooe","Chromaxa","CirrusExplorer","CISPA Vulnerability Notification","CISPA Web Analyser","Citoid","CJNetworkQuality","Clarsentia","clips\\.ua\\.ac\\.be","Cloud mapping","CloudEndure","CloudFlare-AlwaysOnline","Cloudflare-Healthchecks","Cloudinary","cmcm\\.com","coccoc","cognitiveseo","ColdFusion","colly -","CommaFeed","Commons-HttpClient","commonscan","contactbigdatafr","contentkingapp","Contextual Code Sites Explorer","convera","CookieReports","copyright sheriff","CopyRightCheck","Copyscape","cortex\\\/","Cosmos4j\\.feedback","Covario-IDS","Craw\\\/","Crescent","Criteo","Crowsnest","CSHttp","CSSCheck","Cula\\\/","curb","Curious George","curl","cuwhois\\\/","cybo\\.com","DAP\\\/NetHTTP","DareBoost","DatabaseDriverMysqli","DataCha0s","DatadogSynthetics","Datafeedwatch","Datanyze","DataparkSearch","dataprovider","DataXu","Daum(oa)?[ \\\/][0-9]","dBpoweramp","ddline","deeris","delve\\.ai","Demon","DeuSu","developers\\.google\\.com\\\/\\+\\\/web\\\/snippet\\\/","Devil","Digg","Digincore","DigitalPebble","Dirbuster","Discourse Forum Onebox","Dispatch\\\/","Disqus\\\/","DittoSpyder","dlvr","DMBrowser","DNSPod-reporting","docoloc","Dolphin http client","DomainAppender","DomainLabz","Domains Project\\\/","Donuts Content Explorer","dotMailer content retrieval","dotSemantic","downforeveryoneorjustme","Download Wonder","downnotifier","DowntimeDetector","Drip","drupact","Drupal \\(\\+http:\\\/\\\/drupal\\.org\\\/\\)","DTS Agent","dubaiindex","DuplexWeb-Google","DynatraceSynthetic","EARTHCOM","Easy-Thumb","EasyDL","Ebingbong","ec2linkfinder","eCairn-Grabber","eCatch","ECCP","eContext\\\/","Ecxi","EirGrabber","ElectricMonk","elefent","EMail Exractor","EMail Wolf","EmailWolf","Embarcadero","Embed PHP Library","Embedly","endo\\\/","europarchive\\.org","evc-batch","EventMachine HttpClient","Everwall Link Expander","Evidon","Evrinid","ExactSearch","ExaleadCloudview","Excel\\\/","exif","ExoRank","Exploratodo","Express WebPictures","Extreme Picture Finder","EyeNetIE","ezooms","facebookexternalhit","facebookexternalua","facebookplatform","fairshare","Faraday v","fasthttp","Faveeo","Favicon downloader","faviconarchive","faviconkit","FavOrg","Feed Wrangler","Feedable\\\/","Feedbin","FeedBooster","FeedBucket","FeedBunch\\\/","FeedBurner","feeder","Feedly","FeedshowOnline","Feedshow\\\/","Feedspot","FeedViewer\\\/","Feedwind\\\/","FeedZcollector","feeltiptop","Fetch API","Fetch\\\/[0-9]","Fever\\\/[0-9]","FHscan","Fiery%20Feeds","Filestack","Fimap","findlink","findthatfile","FlashGet","FlipboardBrowserProxy","FlipboardProxy","FlipboardRSS","Flock\\\/","Florienzh\\\/","fluffy","Flunky","flynxapp","forensiq","ForusP","FoundSeoTool","fragFINN\\.de","free thumbnails","Freeuploader","FreshRSS","frontman","Funnelback","Fuzz Faster U Fool","G-i-g-a-b-o-t","g00g1e\\.net","ganarvisitas","gdnplus\\.com","geek-tools","Genieo","GentleSource","GetCode","Getintent","GetLinkInfo","getprismatic","GetRight","getroot","GetURLInfo\\\/","GetWeb","Geziyor","Ghost Inspector","GigablastOpenSource","GIS-LABS","github-camo","GitHub-Hookshot","github\\.com","Go http package","Go [\\d\\.]* package http","Go!Zilla","Go-Ahead-Got-It","Go-http-client","go-mtasts\\\/","gobuster","gobyus","Gofeed","gofetch","Goldfire Server","GomezAgent","gooblog","Goodzer\\\/","Google AppsViewer","Google Desktop","Google favicon","Google Keyword Suggestion","Google Keyword Tool","Google Page Speed Insights","Google PP Default","Google Search Console","Google Web Preview","Google-Ads-Creatives-Assistant","Google-Ads-Overview","Google-Adwords","Google-Apps-Script","Google-Calendar-Importer","Google-HotelAdsVerifier","Google-HTTP-Java-Client","Google-InspectionTool","Google-Podcast","Google-Publisher-Plugin","Google-Read-Aloud","Google-SearchByImage","Google-Site-Verification","Google-SMTP-STS","Google-speakr","Google-Structured-Data-Testing-Tool","Google-Transparency-Report","google-xrawler","Google-Youtube-Links","GoogleDocs","GoogleHC\\\/","GoogleProber","GoogleProducer","GoogleSites","Gookey","GoSpotCheck","gosquared-thumbnailer","Gotit","GoZilla","grabify","GrabNet","Grafula","Grammarly","GrapeFX","GreatNews","Gregarius","GRequests","grokkit","grouphigh","grub-client","gSOAP\\\/","GT::WWW","GTmetrix","GuzzleHttp","gvfs\\\/","HAA(A)?RTLAND http client","Haansoft","hackney\\\/","Hadi Agent","HappyApps-WebCheck","Hardenize","Hatena","Havij","HaxerMen","HeadlessChrome","HEADMasterSEO","HeartRails_Capture","help@dataminr\\.com","heritrix","Hexometer","historious","hkedcity","hledejLevne\\.cz","Hloader","HMView","Holmes","HonesoSearchEngine","HootSuite Image proxy","Hootsuite-WebFeed","hosterstats","HostTracker","ht:\\\/\\\/check","htdig","HTMLparser","htmlyse","HTTP Banner Detection","http-get","HTTP-Header-Abfrage","http-kit","http-request\\\/","HTTP-Tiny","HTTP::Lite","http:\\\/\\\/www.neomo.de\\\/","HttpComponents","httphr","HTTPie","HTTPMon","httpRequest","httpscheck","httpssites_power","httpunit","HttpUrlConnection","http\\.rb\\\/","HTTP_Compression_Test","http_get","http_request2","http_requester","httrack","huaweisymantec","HubSpot ","HubSpot-Link-Resolver","Humanlinks","i2kconnect\\\/","Iblog","ichiro","Id-search","IdeelaborPlagiaat","IDG Twitter Links Resolver","IDwhois\\\/","Iframely","igdeSpyder","iGooglePortal","IlTrovatore","Image Fetch","Image Sucker","ImageEngine\\\/","ImageVisu\\\/","Imagga","imagineeasy","imgsizer","InAGist","inbound\\.li parser","InDesign%20CC","Indy Library","InetURL","infegy","infohelfer","InfoTekies","InfoWizards Reciprocal Link","inpwrd\\.com","instabid","Instapaper","Integrity","integromedb","Intelliseek","InterGET","Internet Ninja","InternetSeer","internetVista monitor","internetwache","internet_archive","intraVnews","IODC","IOI","Inboxb0t","iplabel","ips-agent","IPS\\\/[0-9]","IPWorks HTTP\\\/S Component","iqdb\\\/","Iria","Irokez","isitup\\.org","iskanie","isUp\\.li","iThemes Sync\\\/","IZaBEE","iZSearch","JAHHO","janforman","Jaunt\\\/","Java.*outbrain","javelin\\.io","Jbrofuzz","Jersey\\\/","JetCar","Jigsaw","Jobboerse","JobFeed discovery","Jobg8 URL Monitor","jobo","Jobrapido","Jobsearch1\\.5","JoinVision Generic","JolokiaPwn","Joomla","Jorgee","JS-Kit","JungleKeyThumbnail","JustView","Kaspersky Lab CFR link resolver","Kelny\\\/","Kerrigan\\\/","KeyCDN","Keyword Density","Keywords Research","khttp\\\/","KickFire","KimonoLabs\\\/","Kml-Google","knows\\.is","KOCMOHABT","kouio","kube-probe","kubectl","kulturarw3","KumKie","Larbin","Lavf\\\/","leakix\\.net","LeechFTP","LeechGet","letsencrypt","Lftp","LibVLC","LibWeb","Libwhisker","libwww","Licorne","Liferea\\\/","Lighthouse","Lightspeedsystems","Likse","limber\\.io","Link Valet","LinkAlarm\\\/","LinkAnalyser","linkCheck","linkdex","LinkExaminer","linkfluence","linkpeek","LinkPreview","LinkScan","LinksManager","LinkTiger","LinkWalker","link_thumbnailer","Lipperhey","Litemage_walker","livedoor ScreenShot","LoadImpactRload","localsearch-web","LongURL API","longurl-r-package","looid\\.com","looksystems\\.net","ltx71","lua-resty-http","Lucee \\(CFML Engine\\)","Lush Http Client","lwp-request","lwp-trivial","LWP::Simple","lycos","LYT\\.SR","L\\.webis","mabontland","MacOutlook\\\/","Mag-Net","MagpieRSS","Mail::STS","MailChimp","Mail\\.Ru","Majestic12","makecontact\\\/","Mandrill","MapperCmd","marketinggrader","MarkMonitor","MarkWatch","Mass Downloader","masscan\\\/","Mata Hari","mattermost","Mediametric","Mediapartners-Google","mediawords","MegaIndex\\.ru","MeltwaterNews","Melvil Rawi","MemGator","Metaspinner","MetaURI","MFC_Tear_Sample","Microsearch","Microsoft Data Access","Microsoft Office","Microsoft Outlook","Microsoft Windows Network Diagnostics","Microsoft-WebDAV-MiniRedir","Microsoft\\.Data\\.Mashup","MIDown tool","MIIxpc","Mindjet","Miniature\\.io","Miniflux","mio_httpc","Miro-HttpClient","Mister PiX","mixdata dot com","mixed-content-scan","mixnode","Mnogosearch","mogimogi","Mojeek","Mojolicious \\(Perl\\)","Mollie","monitis","Monitority\\\/","Monit\\\/","montastic","MonTools","Moreover","Morfeus Fucking Scanner","Morning Paper","MovableType","mowser","Mrcgiguy","Mr\\.4x3 Powered","MS Web Services Client Protocol","MSFrontPage","mShots","MuckRack\\\/","muhstik-scan","MVAClient","MxToolbox\\\/","myseosnapshot","nagios","Najdi\\.si","Name Intelligence","NameFo\\.com","Nameprotect","nationalarchives","Navroad","NearSite","Needle","Nessus","Net Vampire","NetAnts","NETCRAFT","NetLyzer","NetMechanic","NetNewsWire","Netpursual","netresearch","NetShelter ContentScan","Netsparker","NetSystemsResearch","nettle","NetTrack","Netvibes","NetZIP","Neustar WPM","NeutrinoAPI","NewRelicPinger","NewsBlur .*Finder","NewsGator","newsme","newspaper\\\/","Nexgate Ruby Client","NG-Search","nghttp2","Nibbler","NICErsPRO","NihilScio","Nikto","nineconnections","NLNZ_IAHarvester","Nmap Scripting Engine","node-fetch","node-superagent","node-urllib","Nodemeter","NodePing","node\\.io","nominet\\.org\\.uk","nominet\\.uk","Norton-Safeweb","Notifixious","notifyninja","NotionEmbedder","nuhk","nutch","Nuzzel","nWormFeedFinder","nyawc\\\/","Nymesis","NYU","Observatory\\\/","Ocelli\\\/","Octopus","oegp","Offline Explorer","Offline Navigator","OgScrper","okhttp","omgili","OMSC","Online Domain Tools","Open Source RSS","OpenCalaisSemanticProxy","Openfind","OpenLinkProfiler","Openstat\\\/","OpenVAS","OPPO A33","Optimizer","Orbiter","OrgProbe\\\/","orion-semantics","Outlook-Express","Outlook-iOS","Owler","Owlin","ownCloud News","ow\\.ly","OxfordCloudService","page scorer","Page Valet","page2rss","PageFreezer","PageGrabber","PagePeeker","PageScorer","Pagespeed\\\/","PageThing","page_verifier","Panopta","panscient","Papa Foto","parsijoo","Pavuk","PayPal IPN","pcBrowser","Pcore-HTTP","PDF24 URL To PDF","Pearltrees","PECL::HTTP","peerindex","Peew","PeoplePal","Perlu -","PhantomJS Screenshoter","PhantomJS\\\/","Photon\\\/","php-requests","phpservermon","Pi-Monster","Picscout","Picsearch","PictureFinder","Pimonster","Pingability","PingAdmin\\.Ru","Pingdom","Pingoscope","PingSpot","ping\\.blo\\.gs","pinterest\\.com","Pixray","Pizilla","Plagger\\\/","Pleroma ","Ploetz \\+ Zeller","Plukkie","plumanalytics","PocketImageCache","PocketParser","Pockey","PodcastAddict\\\/","POE-Component-Client-HTTP","Polymail\\\/","Pompos","Porkbun","Port Monitor","postano","postfix-mta-sts-resolver","PostmanRuntime","postplanner\\.com","PostPost","postrank","PowerPoint\\\/","Prebid","Prerender","Priceonomics Analysis Engine","PrintFriendly","PritTorrent","Prlog","probethenet","Project ?25499","Project-Resonance","prospectb2b","Protopage","ProWebWalker","proximic","PRTG Network Monitor","pshtt, https scanning","PTST ","PTST\\\/[0-9]+","Pump","Python-httplib2","python-httpx","python-requests","Python-urllib","Qirina Hurdler","QQDownload","QrafterPro","Qseero","Qualidator","QueryN Metasearch","queuedriver","quic-go-HTTP\\\/","QuiteRSS","Quora Link Preview","Qwantify","Radian6","RadioPublicImageResizer","Railgun\\\/","RankActive","RankFlex","RankSonicSiteAuditor","RapidLoad\\\/","Re-re Studio","ReactorNetty","Readability","RealDownload","RealPlayer%20Downloader","RebelMouse","Recorder","RecurPost\\\/","redback\\\/","ReederForMac","Reeder\\\/","ReGet","RepoMonkey","request\\.js","reqwest\\\/","ResponseCodeTest","RestSharp","Riddler","Rival IQ","Robosourcer","Robozilla","ROI Hunter","RPT-HTTPClient","RSSMix\\\/","RSSOwl","RyowlEngine","safe-agent-scanner","SalesIntelligent","Saleslift","SAP NetWeaver Application Server","SauceNAO","SBIder","sc-downloader","scalaj-http","Scamadviser-Frontend","ScanAlert","scan\\.lol","Scoop","scooter","ScopeContentAG-HTTP-Client","ScoutJet","ScoutURLMonitor","ScrapeBox Page Scanner","Scrapy","Screaming","ScreenShotService","Scrubby","Scrutiny\\\/","Search37","searchenginepromotionhelp","Searchestate","SearchExpress","SearchSight","SearchWP","search\\.thunderstone","Seeker","semanticdiscovery","semanticjuice","Semiocast HTTP client","Semrush","Sendsay\\.Ru","sentry\\\/","SEO Browser","Seo Servis","seo-nastroj\\.cz","seo4ajax","Seobility","SEOCentro","SeoCheck","seocompany","SEOkicks","SEOlizer","Seomoz","SEOprofiler","seoscanners","SEOsearch","seositecheckup","SEOstats","servernfo","sexsearcher","Seznam","Shelob","Shodan","Shoppimon","ShopWiki","ShortLinkTranslate","shortURL lengthener","shrinktheweb","Sideqik","Siege","SimplePie","SimplyFast","Siphon","SISTRIX","Site Sucker","Site-Shot\\\/","Site24x7","SiteBar","Sitebeam","Sitebulb\\\/","SiteCondor","SiteExplorer","SiteGuardian","Siteimprove","SiteIndexed","Sitemap(s)? Generator","SitemapGenerator","SiteMonitor","Siteshooter B0t","SiteSnagger","SiteSucker","SiteTruth","Sitevigil","sitexy\\.com","SkypeUriPreview","Slack\\\/","sli-systems\\.com","slider\\.com","slurp","SlySearch","SmartDownload","SMRF URL Expander","SMUrlExpander","Snake","Snappy","SnapSearch","Snarfer\\\/","SniffRSS","sniptracker","Snoopy","SnowHaze Search","sogou web","SortSite","Sottopop","sovereign\\.ai","SpaceBison","SpamExperts","Spammen","Spanner","Spawning-AI","spaziodati","SPDYCheck","Specificfeeds","SpeedKit","speedy","SPEng","Spinn3r","spray-can","Sprinklr ","spyonweb","sqlmap","Sqlworm","Sqworm","SSL Labs","ssl-tools","StackRambler","Statastico\\\/","Statically-","StatusCake","Steeler","Stratagems Kumo","Stripe\\\/","Stroke\\.cz","StudioFACA","StumbleUpon","suchen","Sucuri","summify","SuperHTTP","Surphace Scout","Suzuran","swcd ","Symfony BrowserKit","Symfony2 BrowserKit","Synapse\\\/","Syndirella\\\/","SynHttpClient-Built","Sysomos","sysscan","Szukacz","T0PHackTeam","tAkeOut","Tarantula\\\/","Taringa UGC","TarmotGezgin","tchelebi\\.io","techiaith\\.cymru","Teleport","Telesoft","Telesphoreo","Telesphorep","Tenon\\.io","teoma","terrainformatica","Test Certificate Info","testuri","Tetrahedron","TextRazor Downloader","The Drop Reaper","The Expert HTML Source Viewer","The Intraformant","The Knowledge AI","theinternetrules","TheNomad","Thinklab","Thumbor","Thumbshots","ThumbSniper","timewe\\.net","TinEye","Tiny Tiny RSS","TLSProbe\\\/","Toata","topster","touche\\.com","Traackr\\.com","tracemyfile","Trackuity","TrapitAgent","Trendiction","Trendsmap","trendspottr","truwoGPS","TryJsoup","TulipChain","Turingos","Turnitin","tweetedtimes","Tweetminster","Tweezler\\\/","twibble","Twice","Twikle","Twingly","Twisted PageGetter","Typhoeus","ubermetrics-technologies","uclassify","UdmSearch","ultimate_sitemap_parser","unchaos","unirest-java","UniversalFeedParser","unshortenit","Unshorten\\.It","Untiny","UnwindFetchor","updated","updown\\.io daemon","Upflow","Uptimia","URL Verifier","Urlcheckr","URLitor","urlresolver","Urlstat","URLTester","UrlTrends Ranking Updater","URLy Warning","URLy\\.Warning","URL\\\/Emacs","Vacuum","Vagabondo","VB Project","vBSEO","VCI","via ggpht\\.com GoogleImageProxy","Virusdie","visionutils","Visual Rights Group","vkShare","VoidEYE","Voil","voltron","voyager\\\/","VSAgent\\\/","VSB-TUO\\\/","Vulnbusters Meter","VYU2","w3af\\.org","W3C-checklink","W3C-mobileOK","W3C_Unicorn","WAC-OFU","WakeletLinkExpander","WallpapersHD","Wallpapers\\\/[0-9]+","wangling","Wappalyzer","WatchMouse","WbSrch\\\/","WDT\\.io","Web Auto","Web Collage","Web Enhancer","Web Fetch","Web Fuck","Web Pix","Web Sauger","Web spyder","Web Sucker","web-capture\\.net","Web-sniffer","Webalta","Webauskunft","WebAuto","WebCapture","WebClient\\\/","webcollage","WebCookies","WebCopier","WebCorp","WebDataStats","WebDoc","WebEnhancer","WebFetch","WebFuck","WebGazer","WebGo IS","WebImageCollector","WebImages","WebIndex","webkit2png","WebLeacher","webmastercoffee","webmon ","WebPix","WebReaper","WebSauger","webscreenie","Webshag","Webshot","Website Quester","websitepulse agent","WebsiteQuester","Websnapr","WebSniffer","Webster","WebStripper","WebSucker","webtech\\\/","WebThumbnail","Webthumb\\\/","WebWhacker","WebZIP","WeLikeLinks","WEPA","WeSEE","wf84","Wfuzz\\\/","wget","WhatCMS","WhatsApp","WhatsMyIP","WhatWeb","WhereGoes\\?","Whibse","WhoAPI\\\/","WhoRunsCoinHive","Whynder Magnet","Windows-RSS-Platform","WinHttp-Autoproxy-Service","WinHTTP\\\/","WinPodder","wkhtmlto","wmtips","Woko","Wolfram HTTPClient","woorankreview","WordPress\\\/","WordupinfoSearch","Word\\\/","worldping-api","wotbox","WP Engine Install Performance API","WP Rocket","wpif","wprecon\\.com survey","WPScan","wscheck","Wtrace","WWW-Collector-E","WWW-Mechanize","WWW::Document","WWW::Mechanize","WWWOFFLE","www\\.monitor\\.us","x09Mozilla","x22Mozilla","XaxisSemanticsClassifier","XenForo\\\/","Xenu Link Sleuth","XING-contenttabreceiver","xpymep([0-9]?)\\.exe","Y!J-[A-Z][A-Z][A-Z]","Yaanb","yacy","Yahoo Link Preview","YahooCacheSystem","YahooMailProxy","YahooYSMcm","YandeG","Yandex(?!Search)","yanga","yeti","Yo-yo","Yoleo Consumer","yomins\\.com","yoogliFetchAgent","YottaaMonitor","Your-Website-Sucks","yourls\\.org","YoYs\\.net","YP\\.PL","Zabbix","Zade","Zao","Zauba","Zemanta Aggregator","Zend\\\\Http\\\\Client","Zend_Http_Client","Zermelo","Zeus ","zgrab","ZnajdzFoto","ZnHTTP","Zombie\\.js","Zoom\\.Mac","ZoteroTranslationServer","ZyBorg","[a-z0-9\\-_]*(bot|crawl|archiver|transcoder|spider|uptime|validator|fetcher|cron|checker|reader|extractor|monitoring|analyzer|scraper)"] -
cartboss/trunk/vendor/jaybizzle/crawler-detect/raw/Crawlers.txt
r2942443 r2959706 404 404 ForusP 405 405 FoundSeoTool 406 fragFINN\.de 406 407 free thumbnails 407 408 Freeuploader … … 462 463 Google-HotelAdsVerifier 463 464 Google-HTTP-Java-Client 465 Google-InspectionTool 464 466 Google-Podcast 465 467 Google-Publisher-Plugin … … 598 600 IODC 599 601 IOI 602 Inboxb0t 600 603 iplabel 601 604 ips-agent … … 1105 1108 Spammen 1106 1109 Spanner 1110 Spawning-AI 1107 1111 spaziodati 1108 1112 SPDYCheck 1109 1113 Specificfeeds 1114 SpeedKit 1110 1115 speedy 1111 1116 SPEng -
cartboss/trunk/vendor/jaybizzle/crawler-detect/raw/Exclusions.json
r2595210 r2959706 1 ["Safari.[\\d\\.]*","Firefox.[\\d\\.]*"," Chrome.[\\d\\.]*","Chromium.[\\d\\.]*","MSIE.[\\d\\.]","Opera\\\/[\\d\\.]*","Mozilla.[\\d\\.]*","AppleWebKit.[\\d\\.]*","Trident.[\\d\\.]*","Windows NT.[\\d\\.]*","Android [\\d\\.]*","Macintosh.","Ubuntu","Linux","[ ]Intel","Mac OS X [\\d_]*","(like )?Gecko(.[\\d\\.]*)?","KHTML,","CriOS.[\\d\\.]*","CPU iPhone OS ([0-9_])* like Mac OS X","CPU OS ([0-9_])* like Mac OS X","iPod","compatible","x86_..","i686","x64","X11","rv:[\\d\\.]*","Version.[\\d\\.]*","WOW64","Win64","Dalvik.[\\d\\.]*"," \\.NET CLR [\\d\\.]*","Presto.[\\d\\.]*","Media Center PC","BlackBerry","Build","Opera Mini\\\/\\d{1,2}\\.\\d{1,2}\\.[\\d\\.]*\\\/\\d{1,2}\\.","Opera"," \\.NET[\\d\\.]*","cubot","; M bot","; CRONO","; B bot","; IDbot","; ID bot","; POWER BOT","OCTOPUS-CORE" ]1 ["Safari.[\\d\\.]*","Firefox.[\\d\\.]*"," Chrome.[\\d\\.]*","Chromium.[\\d\\.]*","MSIE.[\\d\\.]","Opera\\\/[\\d\\.]*","Mozilla.[\\d\\.]*","AppleWebKit.[\\d\\.]*","Trident.[\\d\\.]*","Windows NT.[\\d\\.]*","Android [\\d\\.]*","Macintosh.","Ubuntu","Linux","[ ]Intel","Mac OS X [\\d_]*","(like )?Gecko(.[\\d\\.]*)?","KHTML,","CriOS.[\\d\\.]*","CPU iPhone OS ([0-9_])* like Mac OS X","CPU OS ([0-9_])* like Mac OS X","iPod","compatible","x86_..","i686","x64","X11","rv:[\\d\\.]*","Version.[\\d\\.]*","WOW64","Win64","Dalvik.[\\d\\.]*"," \\.NET CLR [\\d\\.]*","Presto.[\\d\\.]*","Media Center PC","BlackBerry","Build","Opera Mini\\\/\\d{1,2}\\.\\d{1,2}\\.[\\d\\.]*\\\/\\d{1,2}\\.","Opera"," \\.NET[\\d\\.]*","cubot","; M bot","; CRONO","; B bot","; IDbot","; ID bot","; POWER BOT","OCTOPUS-CORE","htc_botdugls","super\\\/\\d+\\\/Android\\\/\\d+"] -
cartboss/trunk/vendor/jaybizzle/crawler-detect/raw/Exclusions.txt
r2595210 r2959706 47 47 ; POWER BOT 48 48 OCTOPUS-CORE 49 htc_botdugls 50 super\/\d+\/Android\/\d+ -
cartboss/trunk/vendor/jaybizzle/crawler-detect/src/Fixtures/Crawlers.php
r2942443 r2959706 425 425 'ForusP', 426 426 'FoundSeoTool', 427 'fragFINN\.de', 427 428 'free thumbnails', 428 429 'Freeuploader', … … 483 484 'Google-HotelAdsVerifier', 484 485 'Google-HTTP-Java-Client', 486 'Google-InspectionTool', 485 487 'Google-Podcast', 486 488 'Google-Publisher-Plugin', … … 619 621 'IODC', 620 622 'IOI', 623 'Inboxb0t', 621 624 'iplabel', 622 625 'ips-agent', … … 1126 1129 'Spammen', 1127 1130 'Spanner', 1131 'Spawning-AI', 1128 1132 'spaziodati', 1129 1133 'SPDYCheck', 1130 1134 'Specificfeeds', 1135 'SpeedKit', 1131 1136 'speedy', 1132 1137 'SPEng', -
cartboss/trunk/vendor/jaybizzle/crawler-detect/src/Fixtures/Exclusions.php
r2595210 r2959706 69 69 '; POWER BOT', 70 70 'OCTOPUS-CORE', 71 'htc_botdugls', 72 'super\/\d+\/Android\/\d+', 71 73 ); 72 74 } -
cartboss/trunk/vendor/symfony/property-access/PropertyAccessor.php
r2847751 r2959706 471 471 472 472 // handle uninitialized properties in PHP >= 7 473 if (__FILE__ === $trace['file']473 if (__FILE__ === ($trace['file'] ?? null) 474 474 && $name === $trace['function'] 475 475 && $object instanceof $trace['class'] -
cartboss/trunk/vendor/symfony/property-info/Extractor/PhpStanExtractor.php
r2901887 r2959706 172 172 } 173 173 174 $rawDocNode = $reflectionConstructor->getDocComment(); 174 if (!$rawDocNode = $reflectionConstructor->getDocComment()) { 175 return null; 176 } 177 175 178 $tokens = new TokenIterator($this->lexer->tokenize($rawDocNode)); 176 179 $phpDocNode = $this->phpDocParser->parse($tokens); -
cartboss/trunk/vendor/symfony/property-info/Util/PhpDocTypeHelper.php
r2901887 r2959706 116 116 [$phpType, $class] = $this->getPhpTypeAndClass((string) $fqsen); 117 117 118 $key = $this->getTypes($type->getKeyType());119 $value = $this->getTypes($type->getValueType());118 $keys = $this->getTypes($type->getKeyType()); 119 $values = $this->getTypes($type->getValueType()); 120 120 121 // More than 1 type returned means it is a Compound type, which is 122 // not handled by Type, so better use a null value. 123 $key = 1 === \count($key) ? $key[0] : null; 124 $value = 1 === \count($value) ? $value[0] : null; 125 126 return new Type($phpType, $nullable, $class, true, $key, $value); 121 return new Type($phpType, $nullable, $class, true, $keys, $values); 127 122 } 128 123 … … 132 127 } 133 128 134 if (str_ends_with($docType, '[]') ) {135 $collectionKeyType = new Type(Type::BUILTIN_TYPE_INT);136 $collectionValueType = $this->createType($type, false, substr($docType, 0, -2));129 if (str_ends_with($docType, '[]') && $type instanceof Array_) { 130 $collectionKeyTypes = new Type(Type::BUILTIN_TYPE_INT); 131 $collectionValueTypes = $this->getTypes($type->getValueType()); 137 132 138 return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, $collectionKeyType , $collectionValueType);133 return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, $collectionKeyTypes, $collectionValueTypes); 139 134 } 140 135 … … 142 137 // array<value> is converted to x[] which is handled above 143 138 // so it's only necessary to handle array<key, value> here 144 $collectionKeyType = $this->getTypes($type->getKeyType())[0]; 139 $collectionKeyTypes = $this->getTypes($type->getKeyType()); 140 $collectionValueTypes = $this->getTypes($type->getValueType()); 145 141 146 $collectionValueTypes = $this->getTypes($type->getValueType()); 147 if (1 != \count($collectionValueTypes)) { 148 // the Type class does not support union types yet, so assume that no type was defined 149 $collectionValueType = null; 150 } else { 151 $collectionValueType = $collectionValueTypes[0]; 152 } 153 154 return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, $collectionKeyType, $collectionValueType); 142 return new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, $collectionKeyTypes, $collectionValueTypes); 155 143 } 156 144 -
cartboss/trunk/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php
r2942443 r2959706 343 343 $constructor = $this->getConstructor($data, $class, $context, $reflectionClass, $allowedAttributes); 344 344 if ($constructor) { 345 $context['has_constructor'] = true; 345 346 if (true !== $constructor->isPublic()) { 346 347 return $reflectionClass->newInstanceWithoutConstructor(); … … 358 359 if ($constructorParameter->isVariadic()) { 359 360 if ($allowed && !$ignored && (isset($data[$key]) || \array_key_exists($key, $data))) { 360 if (!\is_array($data[$ paramName])) {361 if (!\is_array($data[$key])) { 361 362 throw new RuntimeException(sprintf('Cannot create an instance of "%s" from serialized data because the variadic parameter "%s" can only accept an array.', $class, $constructorParameter->name)); 362 363 } 363 364 364 365 $variadicParameters = []; 365 foreach ($data[$ paramName] as $parameterKey => $parameterData) {366 foreach ($data[$key] as $parameterKey => $parameterData) { 366 367 $variadicParameters[$parameterKey] = $this->denormalizeParameter($reflectionClass, $constructorParameter, $paramName, $parameterData, $context, $format); 367 368 } … … 432 433 } 433 434 435 unset($context['has_constructor']); 436 434 437 return new $class(); 435 438 } -
cartboss/trunk/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php
r2806369 r2959706 264 264 protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null) 265 265 { 266 if (null !== $object = $this->extractObjectToPopulate($class, $context, self::OBJECT_TO_POPULATE)) { 267 unset($context[self::OBJECT_TO_POPULATE]); 268 269 return $object; 270 } 271 266 272 if ($this->classDiscriminatorResolver && $mapping = $this->classDiscriminatorResolver->getMappingForClass($class)) { 267 273 if (!isset($data[$mapping->getTypeProperty()])) { … … 527 533 528 534 if (\count($collectionKeyType = $type->getCollectionKeyTypes()) > 0) { 529 [$context['key_type']] = $collectionKeyType;535 $context['key_type'] = \count($collectionKeyType) > 1 ? $collectionKeyType : $collectionKeyType[0]; 530 536 } 531 537 -
cartboss/trunk/vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php
r2847751 r2959706 50 50 $type = substr($type, 0, -2); 51 51 52 $builtinType = isset($context['key_type']) ? $context['key_type']->getBuiltinType() : null; 52 $builtinTypes = array_map(static function (Type $keyType) { 53 return $keyType->getBuiltinType(); 54 }, \is_array($keyType = $context['key_type'] ?? []) ? $keyType : [$keyType]); 55 53 56 foreach ($data as $key => $value) { 54 57 $subContext = $context; 55 58 $subContext['deserialization_path'] = ($context['deserialization_path'] ?? false) ? sprintf('%s[%s]', $context['deserialization_path'], $key) : "[$key]"; 56 59 57 if (null !== $builtinType && !('is_'.$builtinType)($key)) { 58 throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, $builtinType, get_debug_type($key)), $key, [$builtinType], $subContext['deserialization_path'] ?? null, true); 59 } 60 $this->validateKeyType($builtinTypes, $key, $subContext['deserialization_path']); 60 61 61 62 $data[$key] = $this->denormalizer->denormalize($value, $type, $format, $subContext); … … 103 104 return $this->denormalizer instanceof CacheableSupportsMethodInterface && $this->denormalizer->hasCacheableSupportsMethod(); 104 105 } 106 107 /** 108 * @param mixed $key 109 */ 110 private function validateKeyType(array $builtinTypes, $key, string $path): void 111 { 112 if (!$builtinTypes) { 113 return; 114 } 115 116 foreach ($builtinTypes as $builtinType) { 117 if (('is_'.$builtinType)($key)) { 118 return; 119 } 120 } 121 122 throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, implode('", "', $builtinTypes), get_debug_type($key)), $key, $builtinTypes, $path, true); 123 } 105 124 } -
cartboss/trunk/vendor/symfony/serializer/Normalizer/BackedEnumNormalizer.php
r2901887 r2959706 65 65 return $type::from($data); 66 66 } catch (\ValueError $e) { 67 throw new InvalidArgumentException('The data must belong to a backed enumeration of type '.$type); 67 if (isset($context['has_constructor'])) { 68 throw new InvalidArgumentException('The data must belong to a backed enumeration of type '.$type); 69 } 70 71 throw NotNormalizableValueException::createForUnexpectedDataType('The data must belong to a backed enumeration of type '.$type, $data, [$type], $context['deserialization_path'] ?? null, true, 0, $e); 68 72 } 69 73 } -
cartboss/trunk/vendor/symfony/serializer/Normalizer/DateTimeNormalizer.php
r2942443 r2959706 92 92 $timezone = $this->getTimezone($context); 93 93 94 if (null === $data || !\is_string($data) || '' === trim($data)) { 94 if (\is_int($data) || \is_float($data)) { 95 switch ($dateTimeFormat) { 96 case 'U': $data = sprintf('%d', $data); break; 97 case 'U.u': $data = sprintf('%.6F', $data); break; 98 } 99 } 100 101 if (!\is_string($data) || '' === trim($data)) { 95 102 throw NotNormalizableValueException::createForUnexpectedDataType('The data is either not an string, an empty string, or null; you should pass a string that can be parsed with the passed format or a valid DateTime string.', $data, [Type::BUILTIN_TYPE_STRING], $context['deserialization_path'] ?? null, true); 96 103 } -
cartboss/trunk/vendor/symfony/serializer/Normalizer/MimeMessageNormalizer.php
r2806369 r2959706 94 94 $type = $data['class']; 95 95 unset($data['class']); 96 $data['headers'] = $this->serializer->denormalize($data['headers'], Headers::class, $format, $context); 96 97 } 97 98 -
cartboss/trunk/vendor/symfony/serializer/composer.json
r2942443 r2959706 35 35 "symfony/mime": "^4.4|^5.0|^6.0", 36 36 "symfony/property-access": "^5.4|^6.0", 37 "symfony/property-info": "^5. 3.13|^6.0",37 "symfony/property-info": "^5.4.24|^6.2.11", 38 38 "symfony/uid": "^5.3|^6.0", 39 39 "symfony/validator": "^4.4|^5.0|^6.0", … … 48 48 "symfony/dependency-injection": "<4.4", 49 49 "symfony/property-access": "<5.4", 50 "symfony/property-info": "<5. 3.13",50 "symfony/property-info": "<5.4.24|>=6,<6.2.11", 51 51 "symfony/uid": "<5.3", 52 52 "symfony/yaml": "<4.4" -
cartboss/trunk/vendor/symfony/string/Inflector/EnglishInflector.php
r2942443 r2959706 95 95 ['sess', 4, true, false, 'ss'], 96 96 97 // statuses (status) 98 ['sesutats', 8, true, true, 'status'], 99 97 100 // analyses (analysis), ellipses (ellipsis), fungi (fungus), 98 101 // neuroses (neurosis), theses (thesis), emphases (emphasis), … … 138 141 // shoes (shoe) 139 142 ['se', 2, true, true, ['', 'e']], 143 144 // status (status) 145 ['sutats', 6, true, true, 'status'], 140 146 141 147 // tags (tag) … … 280 286 ['suc', 3, true, true, 'cuses'], 281 287 288 // status (status) 289 ['sutats', 6, true, true, ['status', 'statuses']], 290 282 291 // conspectuses (conspectus), prospectuses (prospectus) 283 292 ['sutcep', 6, true, true, 'pectuses'],
Note: See TracChangeset
for help on using the changeset viewer.