[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fMUzaCHa5ITuAs4R6Uw7874lsuX2ns7k6KeEq0o1jn_0":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":22,"download_link":23,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":34,"analysis":35,"fingerprints":125},"soulmatch","SoulMatch","0.1.2","gingersoulrecords","https:\u002F\u002Fprofiles.wordpress.org\u002Fgingersoulrecords\u002F","\u003Cp>When you’re showing grouped content in rows (e.g. blog posts, products, feature sets), it’s almost inevitable that variations in content lengths will throw off your layout.\u003C\u002Fp>\n\u003Cp>SoulMatch helps you equalize the heights of your elements so that everything hangs together nicely, even when the page is resized. Simply provide a CSS selector (class, id, etc.) and the plugin will do the rest.\u003C\u002Fp>\n","Equalize the heights of any grouped element. A plugin powered by Liam Brummitt's excellent jquery-match-height script.",100,1850,0,"2017-07-18T16:56:00.000Z","4.8.28","4.6","",[19,20,21],"equal-height","equalize-height","match-height","https:\u002F\u002Fgingersoulrecords.com\u002Fsoulmatch","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsoulmatch.0.1.2.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":24,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},2,110,30,84,"2026-04-05T02:04:44.071Z",[],{"attackSurface":36,"codeSignals":79,"taintFlows":117,"riskAssessment":118,"analyzedAt":124},{"hooks":37,"ajaxHandlers":68,"restRoutes":75,"shortcodes":76,"cronEvents":77,"entryPointCount":78,"unprotectedCount":13},[38,44,48,52,55,57,60,65],{"type":39,"name":40,"callback":41,"file":42,"line":43},"action","plugins_loaded","init","soulmatch.php",13,{"type":39,"name":45,"callback":46,"file":42,"line":47},"wp_enqueue_scripts","scripts",26,{"type":39,"name":49,"callback":50,"file":42,"line":51},"admin_enqueue_scripts","admin_scripts",27,{"type":39,"name":45,"callback":53,"file":42,"line":54},"styles",29,{"type":39,"name":49,"callback":56,"file":42,"line":31},"admin_styles",{"type":39,"name":40,"callback":58,"file":42,"line":59},"init_repeater",33,{"type":39,"name":61,"callback":62,"file":63,"line":64},"admin_menu","init_page","tiny\\soul.repeater.php",16,{"type":39,"name":41,"callback":66,"file":63,"line":67},"save",17,[69],{"action":70,"nopriv":71,"callback":72,"hasNonce":71,"hasCapCheck":73,"file":63,"line":74},"add_repeater",false,"ajax",true,18,[],[],[],1,{"dangerousFunctions":80,"sqlUsage":81,"outputEscaping":83,"fileOperations":13,"externalRequests":13,"nonceChecks":78,"capabilityChecks":29,"bundledLibraries":116},[],{"prepared":13,"raw":13,"locations":82},[],{"escaped":84,"rawEcho":85,"locations":86},4,14,[87,90,92,94,96,98,100,102,104,106,108,110,112,114],{"file":63,"line":88,"context":89},111,"raw output",{"file":63,"line":91,"context":89},147,{"file":63,"line":93,"context":89},165,{"file":63,"line":95,"context":89},193,{"file":63,"line":97,"context":89},194,{"file":63,"line":99,"context":89},225,{"file":63,"line":101,"context":89},226,{"file":63,"line":103,"context":89},227,{"file":63,"line":105,"context":89},254,{"file":63,"line":107,"context":89},256,{"file":63,"line":109,"context":89},259,{"file":63,"line":111,"context":89},272,{"file":63,"line":113,"context":89},274,{"file":63,"line":115,"context":89},313,[],[],{"summary":119,"deductions":120},"The \"soulmatch\" plugin v0.1.2 exhibits a generally positive security posture based on the static analysis. It demonstrates good practices by having no direct SQL injection risks as all queries use prepared statements, and importantly, it includes nonce and capability checks, indicating an awareness of securing its entry points. The absence of dangerous functions, file operations, and external HTTP requests further reduces potential attack vectors. The plugin's vulnerability history is clean, with no known CVEs, which is a strong indicator of a well-maintained and secure codebase. However, a notable area for improvement is output escaping, where only 22% of outputs are properly escaped. This presents a potential risk for cross-site scripting (XSS) vulnerabilities if user-supplied data is directly outputted without sufficient sanitization, even though no direct taint flows were identified in this specific analysis.",[121],{"reason":122,"points":123},"Low percentage of properly escaped output",8,"2026-03-16T20:54:57.566Z",{"wat":126,"direct":135},{"assetPaths":127,"generatorPatterns":131,"scriptPaths":132,"versionParams":134},[128,129,130],"\u002Fwp-content\u002Fplugins\u002Fsoulmatch\u002Fsoulmatch.js","\u002Fwp-content\u002Fplugins\u002Fsoulmatch\u002Fsoulmatch-admin.js","\u002Fwp-content\u002Fplugins\u002Fsoulmatch\u002Fsoulmatch-admin.css",[],[133,128,129],"\u002Fwp-content\u002Fplugins\u002Fsoulmatch\u002Fjs\u002Fjquery.matchHeight-min.js",[],{"cssClasses":136,"htmlComments":137,"htmlAttributes":138,"restEndpoints":141,"jsGlobals":142,"shortcodeOutput":145},[4],[],[139,140],"data-soulmatch-selector","data-soulmatch-byrow",[],[143,144],"soulmatch_data","soulmatch_admin_data",[]]