[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fKuxe2F5DHrezSbFH2qTYKM2fVEJEda5kanzNES6nr_M":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":9,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":131,"fingerprints":782},"mstw-schedules-scoreboards","MSTW Schedules & Scoreboards","1.5.1","Mark O'Donnell","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarkodonnell\u002F","","Manages multiple sports team schedules and scoreboards. Displays schedule tables, schedule sliders, scoreboards, and countdown timers.",100,13735,4,"2024-11-19T01:59:00.000Z","6.6.5","5.3",[18,19,20,21,22],"games","schedule","scoreboards","sports","team-schedule","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-schedules-scoreboards.1.5.1.zip",92,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"markodonnell",7,550,84,158,68,"2026-04-04T06:53:41.553Z",[39,60,81,100,116],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":11,"num_ratings":13,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":58,"download_link":59,"security_score":11,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"cyberpress","CyberPress","2.5.7","nK","https:\u002F\u002Fprofiles.wordpress.org\u002Fnko\u002F","\u003Cp>Manage eSport teams, players, matches and tournaments. Included individual players and teams profiles. Pages with information about matches and tournaments.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Online Demo \u003Ca href=\"https:\u002F\u002Fgetcyberpress.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fgetcyberpress.com\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Tournaments\u003C\u002Fli>\n\u003Cli>Matches\u003C\u002Fli>\n\u003Cli>Teams\u003C\u002Fli>\n\u003Cli>Players\u003C\u002Fli>\n\u003Cli>Games\u003C\u002Fli>\n\u003C\u002Ful>\n","Manage eSport Tournaments, Matches, Teams and Players.",200,16892,"2026-01-11T12:26:00.000Z","6.9.4","6.3","7.2",[54,18,55,56,57],"esports","matches","teams","tournaments","https:\u002F\u002Fgetcyberpress.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcyberpress.2.5.7.zip",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":47,"downloaded":68,"rating":11,"num_ratings":69,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":73,"tags":74,"homepage":79,"download_link":80,"security_score":11,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"joomsport-achievements","Achievements sports league","1.7","beardev","https:\u002F\u002Fprofiles.wordpress.org\u002Fbeardev\u002F","\u003Cp>JoomSport Achievements is a flexible solution to build your sports league site for sports where many players compete with each other simultaneously in each attempt. Ideal plugin to organise a site dedicated to Olympic games, as it is suitable for most of the Olympic sports.\u003C\u002Fp>\n\u003Ch4>Main features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Robust but simple structure\u003C\u002Fstrong> with three main items: league, season and stage\u003C\u002Fli>\n\u003Cli>Hierarchical \u003Cstrong>Season\u003C\u002Fstrong> with season table filters and ranking based on stage categories\u003C\u002Fli>\n\u003Cli>Ranking by Points or selected Result field\u003C\u002Fli>\n\u003Cli>Categorized \u003Cstrong>stages\u003C\u002Fstrong> with ability to add results for each player \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Player profiles\u003C\u002Fstrong> with stage results, description and photo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive and professionally\u003C\u002Fstrong> designed pages based on bootstrap framework \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extra fields\u003C\u002Fstrong> allows you to add more information on selected level\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro version available\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fjoomsport.com\u002Fweb-shop\u002Fachievements-pro-plugin.html\" title=\"Achievements pro version\" rel=\"nofollow ugc\">Professional edition\u003C\u002Fa> includes 4 shortcodes:\u003Cbr \u002F>\n* Stages shortcode\u003Cbr \u002F>\n* Stages list shortcode\u003Cbr \u002F>\n* Standings shortcode\u003Cbr \u002F>\n* Player shortcode\u003C\u002Fp>\n\u003Ch4>Demo\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-demo.joomsport.com\u002Fjsprt_achv_season\u002F2016-2017\u002F\" title=\"JoomSport Achievements demo\" rel=\"nofollow ugc\">Product demo available\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Sports potentially supported\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Motor sport racing\u003C\u002Fli>\n\u003Cli>Athletics (Running, Jumping)\u003C\u002Fli>\n\u003Cli>Aquatics (Swimming, Diving)\u003C\u002Fli>\n\u003Cli>Skiing (ski jumping, all types of snow skiing, snowboarding)\u003C\u002Fli>\n\u003Cli>Horse races\u003C\u002Fli>\n\u003Cli>Fishing\u003C\u002Fli>\n\u003Cli>Skating\u003C\u002Fli>\n\u003Cli>Biathlon\u003C\u002Fli>\n\u003Cli>Cycling \u003C\u002Fli>\n\u003Cli>Canoeing \u003C\u002Fli>\n\u003Cli>Bobsleigh \u003C\u002Fli>\n\u003Cli>Skateboarding\u003C\u002Fli>\n\u003Cli>Triathlon\u003C\u002Fli>\n\u003Cli>Pentathlon\u003C\u002Fli>\n\u003Cli>Weightlifting\u003C\u002Fli>\n\u003Cli>Surfing\u003C\u002Fli>\n\u003Cli>Shooting\u003C\u002Fli>\n\u003Cli>Archery\u003C\u002Fli>\n\u003Cli>Figure skating\u003C\u002Fli>\n\u003Cli>Golf (for single players)\u003C\u002Fli>\n\u003Cli>Bowling\u003C\u002Fli>\n\u003Cli>Air sports \u003C\u002Fli>\n\u003Cli>Dancing\u003C\u002Fli>\n\u003Cli>Poker \u003C\u002Fli>\n\u003Cli>any other sport where there is a match\u002Fgame between MANY participants in each attempt…\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Other products\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The full product list by \u003Ca href=\"https:\u002F\u002Fbeardev.com\u002F\" title=\"Sports software development company\" rel=\"nofollow ugc\">BearDev sports software development company\u003C\u002Fa>=\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjoomsport-sports-league-results-management\u002F\" title=\"WordPress Sports Plugin\" rel=\"ugc\">JoomSport\u003C\u002Fa> – solution for such sports as football, soccer, hockey, basketball, volleball etc. It is based on structure where TWO participants compete with each other in single match.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjoomsport-prediction\" title=\"Sports prediction game plugin\" rel=\"ugc\">Sports prediction game plugin\u003C\u002Fa> – organise prediction game for your site fans.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>Check translations available on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fjoomsport-achievements\" rel=\"nofollow ugc\">translation page\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Video Tutorials\u003C\u002Fh4>\n\u003Cp>By place and points ranking \u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FCMx9V-Q2UEk?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch4>Our Slogan and Global Goal\u003C\u002Fh4>\n\u003Cp>We push our client’s projects to a new level. Our global goal is to develop top-quality software for complete sports league management.\u003C\u002Fp>\n","Sports plugin for motor racing, athletics, aquatics, gymnastics, golf, running, cycling, skiing, poker and similar sports. Manage your league with us!",11134,6,"2026-01-28T15:15:00.000Z","6.8.5","4.0","7.4",[75,76,77,78,21],"athletics","motosport","olympic-games","racing","http:\u002F\u002Fjoomsport.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjoomsport-achievements.1.7.zip",{"slug":82,"name":83,"version":84,"author":7,"author_profile":8,"description":9,"short_description":85,"active_installs":11,"downloaded":86,"rating":87,"num_ratings":13,"last_updated":88,"tested_up_to":15,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":95,"download_link":96,"security_score":97,"vuln_count":98,"unpatched_count":98,"last_vuln_date":99,"fetched_at":28},"mstw-league-manager","MSTW League Manager","2.10","Manages multiple sports leagues and seasons. Displays schedules and standings in multiple formats.",13186,96,"2024-11-19T01:47:00.000Z","4.9.1","5.5",[92,93,21,94,56],"leagues","schedules","standings","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmstw-league-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-league-manager.2.10.zip",70,1,"2025-09-05 00:00:00",{"slug":55,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":26,"num_ratings":26,"last_updated":109,"tested_up_to":110,"requires_at_least":111,"requires_php":9,"tags":112,"homepage":113,"download_link":114,"security_score":115,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"Matches","0.5","nemrod","https:\u002F\u002Fprofiles.wordpress.org\u002Fnemrod\u002F","\u003Cp>This plugin makes it easy to administer and display matches (sports or otherwise) with a neat widget.\u003C\u002Fp>\n","This plugin makes it easy to administer and display matches (sports or otherwise) with a neat widget.",10,4238,"2012-01-26T09:35:00.000Z","3.2.1","3.0.1",[18,55,21],"http:\u002F\u002Fnemrod.se\u002Fwordpress\u002Fmatches-wordpress-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmatches.0.5.zip",85,{"slug":117,"name":118,"version":119,"author":7,"author_profile":8,"description":120,"short_description":121,"active_installs":107,"downloaded":122,"rating":26,"num_ratings":26,"last_updated":123,"tested_up_to":15,"requires_at_least":124,"requires_php":125,"tags":126,"homepage":129,"download_link":130,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"mstw-schedule-builder","MSTW Schedule Builder","1.0","\u003Cp>The MSTW Schedule Builder builds ‘balanced’ single round robin schedules for leagues and tournaments for up to six teams. Future releases will handle double round robin (home-and-home) schedules for up to thirty-two teams. NOTE: This plugin REQUIRES the MSTW LEAGUE MANAGER PLUGIN (version 2.5 for higher) to handle the creation of leagues, seasons, and teams.\u003C\u002Fp>\n\u003Cp>Depending on the size of the league or tournament, the number of permutations and combinations of teams, time slots, dates, and locations can be huge.  The simple (old) method of always having a single team always playing in the same time slot or position is not always the way to go.  It can, and does, create problems with players, coaches, and fans because it can be inherently unfair.  The issue is the quality of the first position time slot.  If the time, location, and\u002For quality of the facility is desirable, then the team that’s always scheduled there will be advantaged, and the other teams will not share equal playing time at the desirable facility.  If another time and location is less desirable (i.e., inconvenient time, long distance, poor quality of facility, etc.), then a team that is always scheduled to play there will be disadvantaged.\u003C\u002Fp>\n\u003Cp>These issues and the inherent inequity are minimized by balanced schedules. Round robin scheduling  includes a date, time, location, home and visitor teams, and game ID for each game.  A quality schedule should distribute and balance the dates\u002Fdays, times, locations, home and visiting teams of its games as equitably as possible.\u003C\u002Fp>\n\u003Cp>The plugin is internationalized and ready for translation. I am happy to help translators. A default .pot file is in the \u002Flang directory.\u003C\u002Fp>\n\u003Ch4>NOTES\u003C\u002Fh4>\n\u003Ch4>Helpful Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Fsb-introduction\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Watch the intro video -»\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fshoalsummitsolutions.com\u002Fcategory\u002Fsb-plugin\" rel=\"nofollow ugc\">\u003Cstrong>Read the (site admin) user’s manual at shoalsummitsolutions.com -»\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Builds round-robin games schedules for teams, leagues & tournaments created in the MSTW League Manager plugin.",1237,"2024-11-19T02:08:00.000Z","5.5.1","7.3",[127,92,128,93,21],"double-round-robin","round-robin","http:\u002F\u002Fshoalsummitsolutions.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-schedule-builder.1.0.zip",{"attackSurface":132,"codeSignals":382,"taintFlows":712,"riskAssessment":769,"analyzedAt":781},{"hooks":133,"ajaxHandlers":356,"restRoutes":357,"shortcodes":358,"cronEvents":380,"entryPointCount":381,"unprotectedCount":26},[134,140,144,148,151,155,160,164,167,170,173,176,180,184,188,192,196,200,204,209,214,218,222,226,230,234,237,241,245,249,253,258,262,266,270,273,277,281,285,288,292,296,300,303,307,311,315,319,323,327,332,336,340,344,348,352],{"type":135,"name":136,"callback":137,"file":138,"line":139},"action","admin_init","mstw_ss_admin_init","includes\\mstw-ss-admin.php",29,{"type":135,"name":141,"callback":142,"file":138,"line":143},"admin_notices","mstw_ss_admin_notice",46,{"type":135,"name":145,"callback":146,"file":138,"line":147},"admin_head-post.php","mstw_ss_hide_publishing_actions",55,{"type":135,"name":149,"callback":146,"file":138,"line":150},"admin_head-post-new.php",56,{"type":135,"name":152,"callback":153,"file":138,"line":154},"admin_head-edit.php","mstw_ss_hide_list_icons",93,{"type":156,"name":157,"callback":158,"priority":107,"file":138,"line":159},"filter","post_row_actions","mstw_ss_post_row_actions",120,{"type":156,"name":161,"callback":162,"file":138,"line":163},"bulk_actions-edit-mstw_ss_schedule","mstw_ss_remove_bulk_actions",147,{"type":156,"name":165,"callback":162,"file":138,"line":166},"bulk_actions-edit-mstw_ss_team",149,{"type":156,"name":168,"callback":162,"file":138,"line":169},"bulk_actions-edit-mstw_ss_game",151,{"type":156,"name":171,"callback":162,"file":138,"line":172},"bulk_actions-edit-mstw_ss_sport",153,{"type":156,"name":174,"callback":162,"file":138,"line":175},"bulk_actions-edit-mstw_ss_venue",155,{"type":156,"name":177,"callback":178,"file":138,"line":179},"post_updated_messages","mstw_ss_updated_messages",166,{"type":156,"name":181,"callback":182,"priority":107,"file":138,"line":183},"bulk_post_updated_messages","mstw_ss_bulk_post_updated_messages",257,{"type":135,"name":185,"callback":186,"file":138,"line":187},"admin_enqueue_scripts","mstw_ss_admin_enqueue_scripts",315,{"type":135,"name":189,"callback":190,"file":138,"line":191},"admin_print_scripts","mstw_ss_admin_print_scripts",385,{"type":135,"name":193,"callback":194,"file":138,"line":195},"admin_print_styles","mstw_ss_admin_print_styles",386,{"type":135,"name":197,"callback":198,"file":138,"line":199},"admin_menu","mstw_ss_admin_menu",402,{"type":135,"name":201,"callback":202,"file":138,"line":203},"admin_head","mstw_ss_admin_head",563,{"type":135,"name":205,"callback":206,"file":207,"line":208},"add_meta_boxes_mstw_ss_game","mstw_ss_game_metaboxes","includes\\mstw-ss-game-cpt-admin.php",28,{"type":135,"name":210,"callback":211,"priority":212,"file":207,"line":213},"save_post_mstw_ss_game","mstw_ss_save_game_meta",20,513,{"type":156,"name":215,"callback":216,"file":207,"line":217},"manage_edit-mstw_ss_game_columns","mstw_ss_edit_game_columns",645,{"type":135,"name":219,"callback":220,"priority":107,"file":207,"line":221},"manage_mstw_ss_game_posts_custom_column","mstw_ss_manage_game_columns",674,{"type":156,"name":223,"callback":224,"file":207,"line":225},"manage_edit-mstw_ss_game_sortable_columns","mstw_ss_games_columns_sort",780,{"type":156,"name":227,"callback":228,"file":207,"line":229},"request","mstw_ss_games_column_order",794,{"type":135,"name":231,"callback":232,"file":207,"line":233},"restrict_manage_posts","mstw_ss_restrict_games_by_schedID",821,{"type":135,"name":231,"callback":235,"file":207,"line":236},"mstw_ss_restrict_games_by_scoreboard",880,{"type":156,"name":238,"callback":239,"file":207,"line":240},"parse_query","mstw_ss_parse_query_for_schedID",921,{"type":135,"name":242,"callback":243,"file":244,"line":208},"add_meta_boxes_mstw_ss_schedule","mstw_ss_schedule_metaboxes","includes\\mstw-ss-schedule-cpt-admin.php",{"type":135,"name":246,"callback":247,"priority":212,"file":244,"line":248},"save_post_mstw_ss_schedule","mstw_ss_save_schedule_meta",101,{"type":156,"name":250,"callback":251,"priority":212,"file":244,"line":252},"name_save_pre","mstw_ss_save_schedule_name",195,{"type":156,"name":254,"callback":255,"priority":256,"file":244,"line":257},"get_sample_permalink_html","mstw_ss_schedule_remove_permalink",15,229,{"type":156,"name":259,"callback":260,"priority":107,"file":244,"line":261},"pre_get_shortlink","mstw_ss_schedule_remove_shortlink",239,{"type":156,"name":263,"callback":264,"file":244,"line":265},"manage_edit-mstw_ss_schedule_columns","mstw_ss_edit_schedules_columns",248,{"type":135,"name":267,"callback":268,"priority":107,"file":244,"line":269},"manage_mstw_ss_schedule_posts_custom_column","mstw_ss_manage_schedules_columns",269,{"type":156,"name":271,"callback":272,"file":244,"line":187},"manage_edit-mstw_ss_schedule_sortable_columns","mstw_ss_schedule_sortable_columns",{"type":135,"name":274,"callback":275,"file":276,"line":139},"add_meta_boxes_mstw_ss_sport","mstw_ss_sport_metaboxes","includes\\mstw-ss-sport-cpt-admin.php",{"type":135,"name":278,"callback":279,"priority":212,"file":276,"line":280},"save_post_mstw_ss_sport","mstw_ss_save_sport_meta",97,{"type":156,"name":282,"callback":283,"file":276,"line":284},"manage_edit-mstw_ss_sport_columns","mstw_ss_edit_sport_columns",133,{"type":135,"name":286,"callback":287,"priority":107,"file":276,"line":169},"manage_mstw_ss_sport_posts_custom_column","mstw_ss_manage_sport_columns",{"type":156,"name":289,"callback":290,"file":276,"line":291},"manage_edit-mstw_ss_sport_sortable_columns","mstw_ss_sports_columns_sort",186,{"type":135,"name":293,"callback":294,"file":295,"line":208},"add_meta_boxes_mstw_ss_team","mstw_ss_team_metaboxes","includes\\mstw-ss-team-cpt-admin.php",{"type":135,"name":297,"callback":298,"priority":212,"file":295,"line":299},"save_post_mstw_ss_team","mstw_ss_save_team_meta",307,{"type":156,"name":259,"callback":301,"priority":107,"file":295,"line":302},"mstw_ss_team_remove_shortlink",410,{"type":156,"name":304,"callback":305,"file":295,"line":306},"manage_edit-mstw_ss_team_columns","mstw_ss_edit_team_columns",419,{"type":135,"name":308,"callback":309,"priority":107,"file":295,"line":310},"manage_mstw_ss_team_posts_custom_column","mstw_ss_manage_team_columns",444,{"type":135,"name":312,"callback":313,"file":314,"line":208},"add_meta_boxes_mstw_ss_venue","mstw_ss_venue_metaboxes","includes\\mstw-ss-venue-cpt-admin.php",{"type":135,"name":316,"callback":317,"priority":212,"file":314,"line":318},"save_post_mstw_ss_venue","mstw_ss_save_venue_meta",111,{"type":156,"name":320,"callback":321,"file":314,"line":322},"manage_edit-mstw_ss_venue_columns","mstw_ss_edit_venues_columns",175,{"type":135,"name":324,"callback":325,"priority":107,"file":314,"line":326},"manage_mstw_ss_venue_posts_custom_column","mstw_ss_manage_venues_columns",201,{"type":135,"name":328,"callback":329,"file":330,"line":331},"init","mstw_ss_init","mstw-schedules-scoreboards.php",38,{"type":156,"name":333,"callback":334,"file":330,"line":335},"single_template","mstw_ss_single_game_template",99,{"type":135,"name":337,"callback":338,"file":330,"line":339},"wp_enqueue_scripts","mstw_ss_enqueue_scripts",259,{"type":135,"name":341,"callback":342,"file":330,"line":343},"plugins_loaded","mstw_ss_plugins_loaded",303,{"type":156,"name":345,"callback":346,"priority":107,"file":330,"line":347},"plugin_action_links","mstw_ss_plugin_action_links",316,{"type":156,"name":349,"callback":350,"file":330,"line":351},"wp_head","mstw_ss_add_css_to_head",343,{"type":135,"name":353,"callback":354,"file":330,"line":355},"widgets_init","mstw_ss_register_widgets",348,[],[],[359,364,368,372,376],{"tag":360,"callback":361,"file":362,"line":363},"mstw_countdown_timer","mstw_ss_countdown_handler","includes\\mstw-ss-countdown-timer.php",30,{"tag":365,"callback":366,"file":367,"line":363},"mstw_schedule_slider","mstw_ss_slider_handler","includes\\mstw-ss-schedule-slider.php",{"tag":369,"callback":370,"file":371,"line":363},"mstw_schedule_table","mstw_ss_schedule_table_shortcode_handler","includes\\mstw-ss-schedule-table.php",{"tag":373,"callback":374,"file":375,"line":208},"mstw_scoreboard","mstw_ss_scoreboard_shortcode_handler","includes\\mstw-ss-scoreboard.php",{"tag":377,"callback":378,"file":379,"line":139},"mstw_venue_table","mstw_ss_venue_table_shortcode_handler","includes\\mstw-ss-venue-table.php",[],5,{"dangerousFunctions":383,"sqlUsage":384,"outputEscaping":389,"fileOperations":69,"externalRequests":26,"nonceChecks":381,"capabilityChecks":381,"bundledLibraries":711},[],{"prepared":26,"raw":98,"locations":385},[386],{"file":207,"line":387,"context":388},828,"$wpdb->get_col() with variable interpolation",{"escaped":390,"rawEcho":391,"locations":392},82,173,[393,397,399,401,402,403,405,407,408,409,411,414,416,418,420,422,424,426,427,429,431,433,436,438,440,442,444,445,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,479,481,483,484,486,487,489,491,492,493,495,496,498,500,501,504,505,507,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,543,545,547,549,551,552,554,555,557,559,561,563,565,567,568,570,572,573,575,577,579,581,583,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,656,658,660,662,663,664,665,667,668,670,672,674,675,676,677,678,679,680,681,682,684,686,688,690,691,692,694,696,699,700,701,702,704,706,707,709],{"file":394,"line":395,"context":396},"includes\\mstw-ss-cdt-widget.php",77,"raw output",{"file":394,"line":398,"context":396},80,{"file":394,"line":400,"context":396},83,{"file":394,"line":400,"context":396},{"file":394,"line":34,"context":396},{"file":394,"line":404,"context":396},86,{"file":394,"line":406,"context":396},121,{"file":394,"line":175,"context":396},{"file":394,"line":35,"context":396},{"file":394,"line":410,"context":396},165,{"file":412,"line":413,"context":396},"includes\\mstw-ss-color-settings.php",139,{"file":412,"line":415,"context":396},241,{"file":412,"line":417,"context":396},367,{"file":419,"line":280,"context":396},"includes\\mstw-ss-csv-import-class.php",{"file":419,"line":421,"context":396},113,{"file":419,"line":423,"context":396},128,{"file":419,"line":425,"context":396},178,{"file":419,"line":425,"context":396},{"file":419,"line":428,"context":396},211,{"file":419,"line":430,"context":396},242,{"file":419,"line":432,"context":396},254,{"file":434,"line":435,"context":396},"includes\\mstw-ss-dtg-settings.php",112,{"file":434,"line":437,"context":396},215,{"file":434,"line":439,"context":396},294,{"file":434,"line":441,"context":396},374,{"file":207,"line":443,"context":396},180,{"file":207,"line":291,"context":396},{"file":207,"line":252,"context":396},{"file":207,"line":447,"context":396},199,{"file":207,"line":449,"context":396},204,{"file":207,"line":451,"context":396},450,{"file":207,"line":453,"context":396},493,{"file":207,"line":455,"context":396},700,{"file":207,"line":457,"context":396},717,{"file":207,"line":459,"context":396},732,{"file":207,"line":461,"context":396},764,{"file":207,"line":463,"context":396},767,{"file":207,"line":465,"context":396},849,{"file":207,"line":467,"context":396},901,{"file":207,"line":469,"context":396},902,{"file":207,"line":471,"context":396},913,{"file":244,"line":473,"context":396},288,{"file":244,"line":475,"context":396},299,{"file":477,"line":478,"context":396},"includes\\mstw-ss-schedule-widget.php",67,{"file":477,"line":480,"context":396},69,{"file":477,"line":482,"context":396},72,{"file":477,"line":482,"context":396},{"file":477,"line":485,"context":396},74,{"file":477,"line":485,"context":396},{"file":477,"line":488,"context":396},76,{"file":477,"line":490,"context":396},145,{"file":477,"line":410,"context":396},{"file":477,"line":252,"context":396},{"file":477,"line":494,"context":396},196,{"file":477,"line":47,"context":396},{"file":477,"line":497,"context":396},203,{"file":477,"line":499,"context":396},236,{"file":477,"line":265,"context":396},{"file":502,"line":503,"context":396},"includes\\mstw-ss-scoreboard-settings.php",102,{"file":502,"line":437,"context":396},{"file":502,"line":506,"context":396},353,{"file":508,"line":509,"context":396},"includes\\mstw-ss-settings.php",32,{"file":508,"line":511,"context":396},87,{"file":508,"line":513,"context":396},114,{"file":508,"line":515,"context":396},182,{"file":508,"line":517,"context":396},190,{"file":508,"line":519,"context":396},198,{"file":508,"line":521,"context":396},206,{"file":508,"line":523,"context":396},620,{"file":508,"line":525,"context":396},630,{"file":295,"line":527,"context":396},454,{"file":295,"line":529,"context":396},461,{"file":295,"line":531,"context":396},468,{"file":295,"line":533,"context":396},475,{"file":295,"line":535,"context":396},483,{"file":295,"line":537,"context":396},490,{"file":295,"line":539,"context":396},497,{"file":541,"line":542,"context":396},"includes\\mstw-ss-utility-functions.php",334,{"file":541,"line":544,"context":396},335,{"file":541,"line":546,"context":396},336,{"file":541,"line":548,"context":396},341,{"file":541,"line":550,"context":396},347,{"file":541,"line":355,"context":396},{"file":541,"line":553,"context":396},352,{"file":541,"line":506,"context":396},{"file":541,"line":556,"context":396},358,{"file":541,"line":558,"context":396},359,{"file":541,"line":560,"context":396},363,{"file":541,"line":562,"context":396},364,{"file":541,"line":564,"context":396},369,{"file":541,"line":566,"context":396},370,{"file":541,"line":441,"context":396},{"file":541,"line":569,"context":396},375,{"file":541,"line":571,"context":396},382,{"file":541,"line":195,"context":396},{"file":541,"line":574,"context":396},390,{"file":541,"line":576,"context":396},394,{"file":541,"line":578,"context":396},398,{"file":541,"line":580,"context":396},399,{"file":541,"line":582,"context":396},406,{"file":541,"line":302,"context":396},{"file":541,"line":585,"context":396},414,{"file":541,"line":587,"context":396},418,{"file":541,"line":589,"context":396},422,{"file":541,"line":591,"context":396},426,{"file":541,"line":593,"context":396},427,{"file":541,"line":595,"context":396},431,{"file":541,"line":597,"context":396},435,{"file":541,"line":599,"context":396},439,{"file":541,"line":601,"context":396},443,{"file":541,"line":603,"context":396},447,{"file":541,"line":605,"context":396},456,{"file":541,"line":607,"context":396},457,{"file":541,"line":609,"context":396},462,{"file":541,"line":611,"context":396},466,{"file":541,"line":613,"context":396},470,{"file":541,"line":615,"context":396},474,{"file":541,"line":617,"context":396},478,{"file":541,"line":535,"context":396},{"file":541,"line":620,"context":396},484,{"file":541,"line":622,"context":396},488,{"file":541,"line":624,"context":396},492,{"file":541,"line":626,"context":396},496,{"file":541,"line":628,"context":396},500,{"file":541,"line":630,"context":396},504,{"file":541,"line":632,"context":396},1582,{"file":541,"line":634,"context":396},1583,{"file":314,"line":636,"context":396},212,{"file":314,"line":638,"context":396},221,{"file":314,"line":640,"context":396},230,{"file":314,"line":642,"context":396},240,{"file":314,"line":644,"context":396},249,{"file":314,"line":646,"context":396},260,{"file":314,"line":648,"context":396},275,{"file":314,"line":650,"context":396},278,{"file":652,"line":428,"context":396},"includes\\mstw-ss-venue-settings.php",{"file":654,"line":655,"context":396},"includes\\mstw-utility-functions.php",258,{"file":654,"line":657,"context":396},273,{"file":654,"line":659,"context":396},274,{"file":654,"line":661,"context":396},360,{"file":654,"line":661,"context":396},{"file":654,"line":661,"context":396},{"file":654,"line":661,"context":396},{"file":654,"line":666,"context":396},372,{"file":654,"line":569,"context":396},{"file":654,"line":669,"context":396},383,{"file":654,"line":671,"context":396},389,{"file":654,"line":673,"context":396},397,{"file":654,"line":673,"context":396},{"file":654,"line":673,"context":396},{"file":654,"line":199,"context":396},{"file":654,"line":199,"context":396},{"file":654,"line":199,"context":396},{"file":654,"line":582,"context":396},{"file":654,"line":582,"context":396},{"file":654,"line":582,"context":396},{"file":654,"line":683,"context":396},428,{"file":654,"line":685,"context":396},436,{"file":654,"line":687,"context":396},441,{"file":654,"line":689,"context":396},448,{"file":654,"line":531,"context":396},{"file":654,"line":533,"context":396},{"file":654,"line":693,"context":396},843,{"file":654,"line":695,"context":396},844,{"file":697,"line":698,"context":396},"templates\\single-game.php",63,{"file":697,"line":698,"context":396},{"file":697,"line":497,"context":396},{"file":697,"line":521,"context":396},{"file":697,"line":703,"context":396},208,{"file":697,"line":705,"context":396},209,{"file":697,"line":428,"context":396},{"file":697,"line":708,"context":396},214,{"file":697,"line":710,"context":396},216,[],[713,737,747,759],{"entryPoint":714,"graph":715,"unsanitizedCount":98,"severity":736},"post (includes\\mstw-ss-csv-import-class.php:272)",{"nodes":716,"edges":732},[717,722,726],{"id":718,"type":719,"label":720,"file":419,"line":721},"n0","source","$_FILES",354,{"id":723,"type":724,"label":725,"file":419,"line":721},"n1","transform","→ stripBOM()",{"id":727,"type":728,"label":729,"file":419,"line":730,"wp_function":731},"n2","sink","file_put_contents() [File Write]",889,"file_put_contents",[733,735],{"from":718,"to":723,"sanitized":734},false,{"from":723,"to":727,"sanitized":734},"medium",{"entryPoint":738,"graph":739,"unsanitizedCount":98,"severity":736},"\u003Cmstw-ss-csv-import-class> (includes\\mstw-ss-csv-import-class.php:0)",{"nodes":740,"edges":744},[741,742,743],{"id":718,"type":719,"label":720,"file":419,"line":721},{"id":723,"type":724,"label":725,"file":419,"line":721},{"id":727,"type":728,"label":729,"file":419,"line":730,"wp_function":731},[745,746],{"from":718,"to":723,"sanitized":734},{"from":723,"to":727,"sanitized":734},{"entryPoint":748,"graph":749,"unsanitizedCount":98,"severity":736},"mstw_ss_restrict_games_by_scoreboard (includes\\mstw-ss-game-cpt-admin.php:882)",{"nodes":750,"edges":757},[751,754],{"id":718,"type":719,"label":752,"file":207,"line":753},"$_GET",908,{"id":723,"type":728,"label":755,"file":207,"line":471,"wp_function":756},"echo() [XSS]","echo",[758],{"from":718,"to":723,"sanitized":734},{"entryPoint":760,"graph":761,"unsanitizedCount":26,"severity":768},"\u003Cmstw-ss-game-cpt-admin> (includes\\mstw-ss-game-cpt-admin.php:0)",{"nodes":762,"edges":765},[763,764],{"id":718,"type":719,"label":752,"file":207,"line":753},{"id":723,"type":728,"label":755,"file":207,"line":471,"wp_function":756},[766],{"from":718,"to":723,"sanitized":767},true,"low",{"summary":770,"deductions":771},"The mstw-schedules-scoreboards plugin v1.5.1 exhibits a mixed security posture. On the positive side, there are no recorded vulnerabilities (CVEs), no dangerous functions used, no external HTTP requests, and a reasonable number of nonce and capability checks present on its entry points.  The absence of AJAX handlers and REST API routes without authentication checks is also a good sign, significantly reducing the attack surface in those areas.\n\nHowever, the static analysis reveals several areas of concern. The significant number of file operations (6) coupled with a high percentage of unsanitized paths in taint analysis (3 out of 4 flows) suggests a potential risk of directory traversal or other file-related vulnerabilities. Furthermore, the plugin uses a raw SQL query without prepared statements, which is a common vector for SQL injection attacks. The relatively low percentage of properly escaped output (32%) also raises concerns about cross-site scripting (XSS) vulnerabilities.\n\nWhile the plugin has no historical CVEs, this doesn't guarantee future security. The identified code signals, particularly the unsanitized paths and unescaped output, represent active risks that should be addressed. The plugin demonstrates good intent with its checks but lacks robust data sanitization and secure SQL practices.",[772,774,777,779],{"reason":773,"points":256},"Unsanitized paths in taint analysis",{"reason":775,"points":776},"SQL query without prepared statements",8,{"reason":778,"points":32},"Low percentage of properly escaped output",{"reason":780,"points":13},"Multiple file operations","2026-03-16T21:07:05.345Z",{"wat":783,"direct":808},{"assetPaths":784,"generatorPatterns":795,"scriptPaths":796,"versionParams":797},[785,786,787,788,789,790,791,792,793,794],"\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fcss\u002Fmstw-ss-style.css","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fcss\u002Fmstw-ss-jquery-ui.min.css","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-jquery.min.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-jquery-ui.min.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-global.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-schedule-table.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-venue-table.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-countdown-timer.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-schedule-slider.js","\u002Fwp-content\u002Fplugins\u002Fmstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-scoreboard.js",[],[787,788,789,790,791,792,793,794],[798,799,800,801,802,803,804,805,806,807],"mstw-schedules-scoreboards\u002Fcss\u002Fmstw-ss-style.css?ver=","mstw-schedules-scoreboards\u002Fcss\u002Fmstw-ss-jquery-ui.min.css?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-jquery.min.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-jquery-ui.min.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-global.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-schedule-table.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-venue-table.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-countdown-timer.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-schedule-slider.js?ver=","mstw-schedules-scoreboards\u002Fjs\u002Fmstw-ss-scoreboard.js?ver=",{"cssClasses":809,"htmlComments":814,"htmlAttributes":815,"restEndpoints":819,"jsGlobals":820,"shortcodeOutput":822},[810,811,812,813],"mstw-ss-table","mstw-ss-scoreboard-container","mstw-ss-countdown-timer-wrapper","mstw-ss-schedule-slider-wrapper",[],[816,817,818],"data-mstw-ss-game-id","data-mstw-ss-venue-id","data-mstw-ss-team-id",[],[821],"mstw_ss_globals",[823,824,825,826,827],"[mstw_schedules]","[mstw_scoreboard]","[mstw_countdown_timer]","[mstw_schedule_slider]","[mstw_venue_table]"]