[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fOqp454It6q2cZRB9wSw8Vy7jfd1t_mbFuLAmV1Noflg":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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":129,"fingerprints":260},"fediboost","FediBoost","1.0.1","Brandon Kraft","https:\u002F\u002Fprofiles.wordpress.org\u002Fkraftbj\u002F","\u003Cp>FediBoost extends the ActivityPub plugin by automatically boosting your WordPress posts on your connected Mastodon accounts when they are published.\u003C\u002Fp>\n\u003Cp>When you publish a new post on your WordPress site, FediBoost will automatically boost (reblog) that post on your linked Mastodon account, helping increase visibility across the fediverse.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic boosting of new posts to connected Mastodon accounts\u003C\u002Fli>\n\u003Cli>Seamless integration with the ActivityPub plugin\u003C\u002Fli>\n\u003Cli>No additional configuration required after setup\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Requirements:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Factivitypub\u002F\" rel=\"ugc\">ActivityPub plugin\u003C\u002Fa> must be installed and configured\u003C\u002Fli>\n\u003Cli>A connected Mastodon account via ActivityPub\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer Hooks\u003C\u002Fh3>\n\u003Cp>FediBoost provides several filters that allow developers to customize its behavior. All filters follow WordPress coding standards and can be added to your theme’s functions.php file or a custom plugin.\u003C\u002Fp>\n\u003Ch4>fediboost_should_boost_post\u003C\u002Fh4>\n\u003Cp>Control whether a specific post should be boosted. Return false to skip boosting for the given post. Default: true.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$should_boost\u003C\u002Fcode> (bool) — Whether the post should be boosted.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$post\u003C\u002Fcode> (WP_Post) — The post object being published.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'fediboost_should_boost_post', function( $should_boost, $post ) {\n    \u002F\u002F Don't boost posts in the \"internal\" category.\n    if ( has_category( 'internal', $post ) ) {\n        return false;\n    }\n    return $should_boost;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>fediboost_boost_delay\u003C\u002Fh4>\n\u003Cp>Delay in seconds after ActivityPub federation completes before the boost is executed. This delay is only used when the federation completion hook fires successfully. Default: 30.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$delay\u003C\u002Fcode> (int) — The delay in seconds.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'fediboost_boost_delay', function( $delay ) {\n    \u002F\u002F Wait 2 minutes after federation before boosting.\n    return 120;\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>fediboost_fallback_delay\u003C\u002Fh4>\n\u003Cp>Delay in seconds before a boost is executed when the ActivityPub federation completion hook does not fire. This acts as a safety net for older versions of the ActivityPub plugin that do not support the \u003Ccode>activitypub_outbox_processing_complete\u003C\u002Fcode> hook. If the federation hook fires first, the fallback is cancelled and \u003Ccode>fediboost_boost_delay\u003C\u002Fcode> is used instead. Default: 300 (5 minutes).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$delay\u003C\u002Fcode> (int) — The fallback delay in seconds.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'fediboost_fallback_delay', function( $delay ) {\n    \u002F\u002F Wait 10 minutes in the fallback path.\n    return 600;\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>fediboost_manage_capability\u003C\u002Fh4>\n\u003Cp>WordPress capability required to manage FediBoost settings. Default: ‘manage_options’. Note: a floor of ‘edit_others_posts’ is enforced regardless of this filter’s return value, so you cannot lower the requirement below that capability.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$capability\u003C\u002Fcode> (string) — The required capability.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'fediboost_manage_capability', function( $capability ) {\n    \u002F\u002F Allow editors to manage FediBoost settings.\n    return 'edit_others_posts';\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>fediboost_max_accounts\u003C\u002Fh4>\n\u003Cp>Maximum number of connected Mastodon accounts. Default: 10.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$max\u003C\u002Fcode> (int) — The maximum number of accounts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'fediboost_max_accounts', function( $max ) {\n    \u002F\u002F Allow up to 25 connected accounts.\n    return 25;\n} );\u003Ch3>External Services\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>FediBoost connects to external Mastodon instances that you configure (e.g., mastodon.social). This communication is essential for the plugin to function and is initiated only with the instance you explicitly provide.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>During setup:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>FediBoost registers an OAuth application on your Mastodon instance and performs an authorization flow so it can act on your behalf.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>When a post is published:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>FediBoost searches for the post on your Mastodon instance and performs a reblog (boost) via the Mastodon API.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Data sent to your Mastodon instance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Your instance URL\u003C\u002Fli>\n\u003Cli>OAuth authorization codes\u003C\u002Fli>\n\u003Cli>Search queries to locate your posts\u003C\u002Fli>\n\u003Cli>Reblog (boost) requests\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Data stored locally on your WordPress site:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Encrypted OAuth tokens\u003C\u002Fli>\n\u003Cli>Your Mastodon username\u003C\u002Fli>\n\u003Cli>Your Mastodon instance URL\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each Mastodon instance has its own privacy policy and terms of service. You can find a list of instances and their policies at \u003Ca href=\"https:\u002F\u002Fjoinmastodon.org\u002Fservers\" rel=\"nofollow ugc\">joinmastodon.org\u002Fservers\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin does not send data to any third-party service other than the Mastodon instance(s) you explicitly configure.\u003C\u002Fp>\n","Automatically boost WordPress posts on connected Mastodon accounts when published via ActivityPub.",0,187,100,1,"","6.9.4","6.9","7.4",[20,21,22,23,24],"activitypub","boost","fediverse","mastodon","social","https:\u002F\u002Fgithub.com\u002Fkraftbj\u002Ffediboost","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffediboost.1.0.1.zip",null,"2026-03-15T10:48:56.248Z",[],{"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},"kraftbj",6,40710,98,30,93,"2026-04-03T23:39:31.455Z",[39,61,79,98,115],{"slug":20,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":34,"num_ratings":48,"last_updated":49,"tested_up_to":16,"requires_at_least":50,"requires_php":18,"tags":51,"homepage":55,"download_link":56,"security_score":57,"vuln_count":58,"unpatched_count":11,"last_vuln_date":59,"fetched_at":60},"ActivityPub","8.0.1","Automattic","https:\u002F\u002Fprofiles.wordpress.org\u002Fautomattic\u002F","\u003Cp>Enter the fediverse with \u003Cstrong>ActivityPub\u003C\u002Fstrong>, broadcasting your blog to a wider audience! Attract followers, deliver updates, and receive comments from a diverse user base of \u003Cstrong>ActivityPub\u003C\u002Fstrong>-compliant platforms.\u003C\u002Fp>\n\u003Cp>\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\u002FQzYozbNneVc?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\u003Cp>With the ActivityPub plugin installed, your WordPress blog itself functions as a federated profile, along with profiles for each author. For instance, if your website is \u003Ccode>example.com\u003C\u002Fcode>, then the blog-wide profile can be found at \u003Ccode>@example.com@example.com\u003C\u002Fcode>, and authors like Jane and Bob would have their individual profiles at \u003Ccode>@jane@example.com\u003C\u002Fcode> and \u003Ccode>@bob@example.com\u003C\u002Fcode>, respectively.\u003C\u002Fp>\n\u003Cp>An example: I give you my Mastodon profile name: \u003Ccode>@pfefferle@mastodon.social\u003C\u002Fcode>. You search, see my profile, and hit follow. Now, any post I make appears in your Home feed. Similarly, with the ActivityPub plugin, you can find and follow Jane’s profile at \u003Ccode>@jane@example.com\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Once you follow Jane’s \u003Ccode>@jane@example.com\u003C\u002Fcode> profile, any blog post she crafts on \u003Ccode>example.com\u003C\u002Fcode> will land in your Home feed. Simultaneously, by following the blog-wide profile \u003Ccode>@example.com@example.com\u003C\u002Fcode>, you’ll receive updates from all authors.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: If no one follows your author or blog instance, your posts remain unseen. The simplest method to verify the plugin’s operation is by following your profile. If you possess a Mastodon profile, initiate by following your new one.\u003C\u002Fp>\n\u003Cp>The plugin works with the following tested federated platforms, but there may be more that it works with as well:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fjoinmastodon.org\u002F\" rel=\"nofollow ugc\">Mastodon\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpleroma.social\u002F\" rel=\"nofollow ugc\">Pleroma\u003C\u002Fa>\u002F\u003Ca href=\"https:\u002F\u002Fakkoma.social\u002F\" rel=\"nofollow ugc\">Akkoma\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ffriendi.ca\u002F\" rel=\"nofollow ugc\">friendica\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fhubzilla.org\u002F\" rel=\"nofollow ugc\">Hubzilla\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpixelfed.org\u002F\" rel=\"nofollow ugc\">Pixelfed\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsocialhome.network\u002F\" rel=\"nofollow ugc\">Socialhome\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fjoin.misskey.page\u002F\" rel=\"nofollow ugc\">Misskey\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Some things to note:\u003C\u002Fp>\n\u003Col>\n\u003Cli>The blog-wide profile is only compatible with sites with rewrite rules enabled. If your site does not have rewrite rules enabled, the author-specific profiles may still work.\u003C\u002Fli>\n\u003Cli>Many single-author blogs have chosen to turn off or redirect their author profile pages, usually via an SEO plugin like Yoast or Rank Math. This is usually done to avoid duplicate content with your blog’s home page. If your author page has been deactivated in this way, then ActivityPub author profiles won’t work for you. Instead, you can turn your author profile page back on, and then use the option in your SEO plugin to noindex the author page. This will still resolve duplicate content issues with search engines and will enable ActivityPub author profiles to work.\u003C\u002Fli>\n\u003Cli>Once ActivityPub is installed, \u003Cem>only new posts going forward\u003C\u002Fem> will be available in the fediverse. Likewise, even if you’ve been using ActivityPub for a while, anyone who follows your site will only see new posts you publish from that moment on. They will never see previously-published posts in their Home feed. This process is very similar to subscribing to a newsletter. If you subscribe to a newsletter, you will only receive future emails, but not the old archived ones. With ActivityPub, if someone follows your site, they will only receive new blog posts you publish from then on.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>So what’s the process?\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install the ActivityPub plugin.\u003C\u002Fli>\n\u003Cli>Go to the plugin’s settings page and adjust the settings to your liking. Click the Save button when ready.\u003C\u002Fli>\n\u003Cli>Make sure your blog’s author profile page is active if you are using author profiles.\u003C\u002Fli>\n\u003Cli>Go to Mastodon or any other federated platform, and search for your profile, and follow it. Your new profile will be in the form of either \u003Ccode>@your_username@example.com\u003C\u002Fcode> or \u003Ccode>@example.com@example.com\u003C\u002Fcode>, so that is what you’ll search for.\u003C\u002Fli>\n\u003Cli>On your blog, publish a new post.\u003C\u002Fli>\n\u003Cli>From Mastodon, check to see if the new post appears in your Home feed.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: It may take up to 15 minutes or so for the new post to show up in your federated feed. This is because the messages are sent to the federated platforms using a delayed cron. This avoids breaking the publishing process for those cases where users might have lots of followers. So please don’t assume that just because you didn’t see it show up right away that something is broken. Give it some time. In most cases, it will show up within a few minutes, and you’ll know everything is working as expected.\u003C\u002Fp>\n","Connect your site to the Open Social Web and let millions of users follow, share, and interact with your content from Mastodon, Pixelfed, and more.",6000,495122,39,"2026-03-11T09:26:00.000Z","6.5",[20,52,22,53,54],"activitystream","indieweb","social-web","https:\u002F\u002Fgithub.com\u002FAutomattic\u002Fwordpress-activitypub","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Factivitypub.8.0.1.zip",99,5,"2024-01-05 00:00:00","2026-03-15T15:16:48.613Z",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":71,"num_ratings":58,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":18,"tags":75,"homepage":77,"download_link":78,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":60},"enable-mastodon-apps","Enable Mastodon Apps","1.4.6","Alex Kirk","https:\u002F\u002Fprofiles.wordpress.org\u002Fakirk\u002F","\u003Cp>Despite Mastodon implying that you would use this plugin for engaging on Mastodon (when you have enabled it for that, see below), the plugin is useful when installed on a plain WordPress.\u003C\u002Fp>\n\u003Cp>When you use a Mastodon app, you’ll enter your own blog URL to connect and log in to your blog in the following screens.\u003C\u002Fp>\n\u003Cp>You’ll then see just the posts on your blog which can already be useful in a multi-author environment (e.g. private blogs). You can also use that Mastodon app to create simple posts with a message + attachment(s) which can be better suited for your usecase than using the Gutenberg-capable WordPress mobile app.\u003C\u002Fp>\n\u003Cp>When used in combination with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Factivitypub\u002F\" rel=\"ugc\">ActivityPub\u003C\u002Fa> (for being followed via Mastodon) and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffriends\u002F\" rel=\"ugc\">Friends\u003C\u002Fa> (for following people on Mastodon or via RSS) plugins, the Enable Mastodon Apps plugin will show you your feed of people you follow and you can follow and unfollow people from within the app.\u003C\u002Fp>\n\u003Cp>Be aware that an app will have a post format associated (see the settings page). The plugin will check for the existance of the Friends plugin to find a resonable default (status with Friends plugin, standard otherwise). When you create a post with your Mastodon app, the post format that you selected for the app will be used.\u003C\u002Fp>\n\u003Cp>The plugin has been tested with quite a number of Mastodon clients, among them are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Felk.zone\u002F\" rel=\"nofollow ugc\">Elk\u003C\u002Fa> (Web)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpinafore.social\u002F\" rel=\"nofollow ugc\">Pinafore\u003C\u002Fa> (Web)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftusky.app\u002F\" rel=\"nofollow ugc\">Tusky\u003C\u002Fa> (Android)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftapbots.com\u002Fivory\u002F\" rel=\"nofollow ugc\">Ivory\u003C\u002Fa> (macOS and iOS)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmastodon.social\u002F@MonaApp\" rel=\"nofollow ugc\">Mona\u003C\u002Fa> (macOS)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDimillian\u002FIceCubesApp\" rel=\"nofollow ugc\">IceCubes\u003C\u002Fa> (macOS)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgetmammoth.app\u002F\" rel=\"nofollow ugc\">Mammoth\u003C\u002Fa> (macOS and iOS)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fphanpy.social\" rel=\"nofollow ugc\">Phanpy\u003C\u002Fa> (Web)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmastodon.social\u002F@MonaApp\" rel=\"nofollow ugc\">Mona\u003C\u002Fa> (macOS and iOS)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Many more, see the \u003Ca href=\"https:\u002F\u002Fjoinmastodon.org\u002Fapps\" rel=\"nofollow ugc\">Third-party apps section on joinmastodon.org\u002Fapps\u003C\u002Fa>. Each app might have its quirks, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fakirk\u002Fenable-mastodon-apps\u002Fissues\" rel=\"nofollow ugc\">please report an issue when you have troubles\u003C\u002Fa>. There is also a chance that the API has not been implemented yet (see below.)\u003C\u002Fp>\n\u003Ch3>Mastodon API Implementation\u003C\u002Fh3>\n\u003Cp>The plugin implements the \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fapi\u002F\" rel=\"nofollow ugc\">Mastodon API as documented on joinmastodon.org\u003C\u002Fa>: The OAuth API for logging in (you will see your WordPress login screen when logging in to your Mastodon app, it also works with 2FA plugins) and the REST API for accessing your data.\u003C\u002Fp>\n\u003Cp>Here is a list of endpoints and their implementation status:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>[x] \u003Ccode>GET \u002Foauth\u002Fauthorize\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Foauth\u002F#authorize\" rel=\"nofollow ugc\">Authorize a user\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Foauth\u002Ftoken\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Foauth\u002F#authorize\" rel=\"nofollow ugc\">Obtain a token\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Foauth\u002Frevoke\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Foauth\u002F#revoke\" rel=\"nofollow ugc\">Revoke a token\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Femails\u002Fconfirmation\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Femails\u002F#confirmation\" rel=\"nofollow ugc\">Resend confirmation email\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#create\" rel=\"nofollow ugc\">Register an account\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fapps\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fapps\u002F#create\" rel=\"nofollow ugc\">Create an application\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fapps\u002Fverify_credentials\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fapps\u002F#verify_credentials\" rel=\"nofollow ugc\">Verify your app works\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Finstance\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Finstance\u002F\" rel=\"nofollow ugc\">View server information\u003C\u002Fa> (v1!)\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fnodeinfo\u002F2.0.json\u003C\u002Fcode> (used by Pixelfed)\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fannouncements\u003C\u002Fcode> (implemented as empty) \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fannouncements\u002F#get\" rel=\"nofollow ugc\">View all announcements\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fannouncements\u002F:id\u002Fdismiss\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fannouncements\u002F#dismiss\" rel=\"nofollow ugc\">Dismiss an announcement\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fannouncements\u002F:id\u002Freactions\u002F:name\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fannouncements\u002F#put-reactions\" rel=\"nofollow ugc\">Reactions to an announcement\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Ffilters\u003C\u002Fcode> (implemented as empty)\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Flists\u003C\u002Fcode> (implemented as empty)\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fcustom_emojis\u003C\u002Fcode> (implemented as empty) \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fcustom_emojis\u002F#get\" rel=\"nofollow ugc\">View all custom emojis\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002Fverify_credentials\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#verify_credentials\" rel=\"nofollow ugc\">Verify account credentials\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>PATCH \u002Fapi\u002Fv1\u002Faccounts\u002Fupdate_credentials\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#update_credentials\" rel=\"nofollow ugc\">Update account credentials\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#get\" rel=\"nofollow ugc\">Get account\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Fstatuses\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002Fstatuses\u002F#get\" rel=\"nofollow ugc\">Get account’s statuses\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Ffollowers\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#followers\" rel=\"nofollow ugc\">Get account’s followers\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Ffollowing\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#following\" rel=\"nofollow ugc\">Get account’s following\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Ffeatured_tags\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#featured_tags\" rel=\"nofollow ugc\">Get account’s featured tags\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Flists\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#lists\" rel=\"nofollow ugc\">Get lists containing this account\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Ffollow\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#follow\" rel=\"nofollow ugc\">Follow account\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002F:id\u002Funfollow\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#unfollow\" rel=\"nofollow ugc\">Unfollow account\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Faccounts\u002Frelationships\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Faccounts\u002F#relationships\" rel=\"nofollow ugc\">Check relationships to other accounts\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv2\u002Fmedia\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fmedia\u002F#v2\" rel=\"nofollow ugc\">Upload media as an attachment (async)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fmedia\u002F:id\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fmedia\u002F#get\" rel=\"nofollow ugc\">Get media attachment\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fstatuses\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#post\" rel=\"nofollow ugc\">Post a new status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u002Fcontext\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#context\" rel=\"nofollow ugc\">Get parent and child statuses in context\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u002Ffavourite\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#favourite\" rel=\"nofollow ugc\">Favourite a status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u002Funfavourite\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#unfavourite\" rel=\"nofollow ugc\">Unfavourite a status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u002Freblog\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#boost\" rel=\"nofollow ugc\">Boost a status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u002Funreblog\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#unreblog\" rel=\"nofollow ugc\">Undo the boost a status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fstatuses\u002F:id\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fstatuses\u002F#get\" rel=\"nofollow ugc\">View a single status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fnotifications\u002F\u003C\u002Fcode> (partial, just mentions) \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fnotifications\u002F#get\" rel=\"nofollow ugc\">Get all notifications\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fnotifications\u002F:id\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fnotifications\u002F#get-one\" rel=\"nofollow ugc\">Get a single notification\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fnotifications\u002Fclear\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fnotifications\u002F#clear\" rel=\"nofollow ugc\">Dismiss all notification\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fnotifications\u002F:id\u002Fdismiss\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fnotifications\u002F#dismiss\" rel=\"nofollow ugc\">Dismiss a single notification\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Ftimelines\u002Fhome\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Ftimelines\u002F#home\" rel=\"nofollow ugc\">View home timeline\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Ftimelines\u002Fpublic\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Ftimelines\u002F#public\" rel=\"nofollow ugc\">View public timeline\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fmarkers\u003C\u002Fcode> (implemented as empty) \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fmarkers\u002F#get\" rel=\"nofollow ugc\">Get saved timeline positions\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] \u003Ccode>POST \u002Fapi\u002Fv1\u002Fmarkers\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fmarkers\u002F#create\" rel=\"nofollow ugc\">Save your position in a timeline\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv2\u002Fsearch\u003C\u002Fcode> (partial, accounts (local and exact match for remote) and statuses in the local db) \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fsearch\u002F#v2\" rel=\"nofollow ugc\">Perform a search\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Ffavourites\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Ffavourites\u002F#get\" rel=\"nofollow ugc\">View your favourites\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[x] \u003Ccode>GET \u002Fapi\u002Fv1\u002Fbookmarks\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdocs.joinmastodon.org\u002Fmethods\u002Fbookmarks\u002F#get\" rel=\"nofollow ugc\">View your bookmarks\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Unmentioned endpoints are not implemented. Contributions welcome!\u003C\u002Fp>\n\u003Cp>Endpoints around interacting with non-local users require the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Factivitypub\" rel=\"ugc\">ActivityPub plugin\u003C\u002Fa>. Following users requires the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffriends\" rel=\"ugc\">Friends plugin\u003C\u002Fa>. Lists-related endpoints require the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fakirk\u002Ffriends-roles\" rel=\"nofollow ugc\">Friends Roles plugin\u003C\u002Fa>.\u003C\u002Fp>\n","Allow accessing your WordPress with Mastodon clients. Just enter your own blog URL as your instance.",600,17887,76,"2025-05-09T03:25:00.000Z","6.8.5","5.0",[20,22,76,23],"friends","https:\u002F\u002Fgithub.com\u002Fakirk\u002Fenable-mastodon-apps","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fenable-mastodon-apps.1.4.6.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":13,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":95,"download_link":96,"security_score":97,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":60},"link-verification-for-mastodon","Link Verification for Mastodon","1.1.4","overengineer","https:\u002F\u002Fprofiles.wordpress.org\u002Foverengineer\u002F","\u003Cp>This WordPress plugin is super simple. It just adds something like this \u003Ccode>\u003Clink rel=\"me\" href=\"https:\u002F\u002Fyour.mastodon.instance\u002F@yourusername\" \u002F>\u003C\u002Fcode> to your website’s \u003Ccode>\u003Chead>\u003C\u002Fcode>.\u003C\u002Fp>\n","An unofficial WordPress plugin to quickly verify a link on your Mastodon profile.",500,7523,4,"2024-08-05T20:33:00.000Z","6.6.5","4.4","5.6.20",[22,23,24],"https:\u002F\u002Fover-engineer.com\u002Fprojects\u002Flink-verification-for-mastodon","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flink-verification-for-mastodon.1.1.4.zip",92,{"slug":99,"name":100,"version":101,"author":102,"author_profile":103,"description":104,"short_description":105,"active_installs":13,"downloaded":106,"rating":11,"num_ratings":11,"last_updated":107,"tested_up_to":108,"requires_at_least":15,"requires_php":15,"tags":109,"homepage":112,"download_link":113,"security_score":114,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":60},"add-fediverse-icons-to-jetpack","Add Fediverse Icons to Jetpack","0.5.0","Jan Boddez","https:\u002F\u002Fprofiles.wordpress.org\u002Fjanboddez\u002F","\u003Cp>Enable Fediverse icons in Jetpack’s Social Menu module. (Requires Jetpack, and may not be supported by all themes.)\u003C\u002Fp>\n\u003Ch3>Supported Platforms\u003C\u002Fh3>\n\u003Cp>This plugin currently provides icons for:\u003Cbr \u002F>\n– Diaspora\u003Cbr \u002F>\n– Friendica\u003Cbr \u002F>\n– GNU Social\u003Cbr \u002F>\n– Mastodon\u003Cbr \u002F>\n– Peertube\u003Cbr \u002F>\n– Pixelfed\u003C\u002Fp>\n","Adds Fediverse icons to Jetpack's Social Menu module.",5864,"2023-04-02T12:51:00.000Z","6.2.9",[22,110,111,23,24],"icons","jetpack","https:\u002F\u002Fjan.boddez.net\u002Fwordpress\u002Fadd-fediverse-icons-to-jetpack","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadd-fediverse-icons-to-jetpack.0.5.0.zip",85,{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":11,"downloaded":123,"rating":11,"num_ratings":11,"last_updated":15,"tested_up_to":124,"requires_at_least":125,"requires_php":15,"tags":126,"homepage":127,"download_link":128,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"author-rel-me-link","Author rel=me Link","0.1.3","Jay","https:\u002F\u002Fprofiles.wordpress.org\u002Ftopdownjimmy\u002F","\u003Cp>Add a rel=”me” link to the head of an author page, if the author has a website set in their profile.\u003C\u002Fp>\n\u003Ch3>Author rel=me Link\u003C\u002Fh3>\n\u003Cp>This plugin, when activated, will add a \u003Ccode>\u003Clink>\u003C\u002Fcode> to the \u003Ccode>\u003Chead>\u003C\u002Fcode> of an Author page with \u003Ccode>rel=\"me\"\u003C\u002Fcode>, if that author has set a “Website” in their profile.\u003C\u002Fp>\n\u003Cp>This can be useful for things like Mastodon URL verification.\u003C\u002Fp>\n\u003Ch3>Example\u003C\u002Fh3>\n\u003Cp>If an author has set their website to \u003Ccode>https:\u002F\u002Fwww.example.com\u003C\u002Fcode>, this plugin will add the following HTML to the \u003Ccode>\u003Chead>\u003C\u002Fcode> on their author page:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Clink rel=\"me\" href=\"https:\u002F\u002Fsocial.example\u002F@evelyn\" \u002F>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To verify with Mastodon etc., the author would need to use the URL to their Author archive page, typically something like \u003Ccode>https:\u002F\u002Fwww.your-site.example\u002Fauthor\u002Fevelyn\u003C\u002Fcode>.\u003C\u002Fp>\n","Add a rel=\"me\" link to the head of an author page, if the author has a website set in their profile.",656,"6.4.8","2.8",[22,23,24],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fauthor-rel-me-link","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauthor-rel-me-link.zip",{"attackSurface":130,"codeSignals":198,"taintFlows":209,"riskAssessment":249,"analyzedAt":259},{"hooks":131,"ajaxHandlers":194,"restRoutes":195,"shortcodes":196,"cronEvents":197,"entryPointCount":11,"unprotectedCount":11},[132,138,142,145,149,152,156,160,162,166,169,172,175,179,184,189],{"type":133,"name":134,"callback":135,"file":136,"line":137},"action","admin_menu","register_admin_menu","admin\\class-admin.php",74,{"type":133,"name":139,"callback":140,"file":136,"line":141},"admin_init","register_settings",75,{"type":133,"name":143,"callback":144,"file":136,"line":71},"admin_enqueue_scripts","enqueue_admin_styles",{"type":133,"name":146,"callback":147,"file":136,"line":148},"admin_notices","display_admin_notices",77,{"type":133,"name":146,"callback":150,"file":136,"line":151},"display_reconnection_warning",78,{"type":133,"name":153,"callback":154,"file":136,"line":155},"admin_post_fediboost_connect","handle_connect_request",81,{"type":133,"name":157,"callback":158,"file":136,"line":159},"admin_post_fediboost_oauth_callback","handle_oauth_callback",82,{"type":133,"name":139,"callback":161,"file":136,"line":114},"handle_disconnect_action",{"type":133,"name":146,"callback":163,"file":164,"line":165},"fediboost_php_version_notice","fediboost.php",27,{"type":133,"name":139,"callback":167,"file":164,"line":168},"fediboost_check_activitypub_dependency",172,{"type":133,"name":146,"callback":170,"file":164,"line":171},"fediboost_activitypub_missing_notice",202,{"type":133,"name":146,"callback":173,"file":164,"line":174},"fediboost_openssl_missing_notice",226,{"type":133,"name":176,"callback":177,"file":164,"line":178},"plugins_loaded","fediboost_init",251,{"type":133,"name":180,"callback":181,"priority":182,"file":183,"line":36},"wp_after_insert_post","on_post_publish",50,"includes\\class-boost.php",{"type":133,"name":185,"callback":186,"priority":187,"file":183,"line":188},"activitypub_outbox_processing_complete","on_federation_complete",10,101,{"type":133,"name":190,"callback":191,"file":192,"line":193},"http_api_curl","anonymous","includes\\class-oauth.php",130,[],[],[],[],{"dangerousFunctions":199,"sqlUsage":200,"outputEscaping":202,"fileOperations":11,"externalRequests":89,"nonceChecks":14,"capabilityChecks":32,"bundledLibraries":208},[],{"prepared":32,"raw":11,"locations":201},[],{"escaped":203,"rawEcho":14,"locations":204},33,[205],{"file":136,"line":206,"context":207},186,"raw output",[],[210,229],{"entryPoint":211,"graph":212,"unsanitizedCount":14,"severity":228},"handle_connect_request (admin\\class-admin.php:333)",{"nodes":213,"edges":225},[214,219],{"id":215,"type":216,"label":217,"file":136,"line":218},"n0","source","$_POST",352,{"id":220,"type":221,"label":222,"file":136,"line":223,"wp_function":224},"n1","sink","wp_redirect() [Open Redirect]",381,"wp_redirect",[226],{"from":215,"to":220,"sanitized":227},false,"medium",{"entryPoint":230,"graph":231,"unsanitizedCount":11,"severity":248},"\u003Cclass-admin> (admin\\class-admin.php:0)",{"nodes":232,"edges":244},[233,234,235,239],{"id":215,"type":216,"label":217,"file":136,"line":218},{"id":220,"type":221,"label":222,"file":136,"line":223,"wp_function":224},{"id":236,"type":216,"label":237,"file":136,"line":238},"n2","$_GET (x4)",530,{"id":240,"type":221,"label":241,"file":136,"line":242,"wp_function":243},"n3","echo() [XSS]",760,"echo",[245,247],{"from":215,"to":220,"sanitized":246},true,{"from":236,"to":240,"sanitized":246},"low",{"summary":250,"deductions":251},"The fediboost v1.0.1 plugin exhibits a strong security posture based on the provided static analysis.  It has a minimal attack surface with no apparent unprotected entry points, and it heavily utilizes prepared statements for all SQL queries, which is a significant strength.  The high percentage of properly escaped output and the presence of capability checks further reinforce its defensive coding practices.  The vulnerability history is also exceptionally clean, with no recorded CVEs, suggesting a history of security consciousness or simply a lack of past issues.",[252,254,256],{"reason":253,"points":187},"Flows with unsanitized paths detected",{"reason":255,"points":89},"External HTTP requests made (potential for SSRF)",{"reason":257,"points":258},"Nonce check present, but only 1 total",2,"2026-03-17T05:53:14.923Z",{"wat":261,"direct":270},{"assetPaths":262,"generatorPatterns":265,"scriptPaths":266,"versionParams":267},[263,264],"\u002Fwp-content\u002Fplugins\u002Ffediboost\u002Fadmin\u002Fcss\u002Ffediboost-admin.css","\u002Fwp-content\u002Fplugins\u002Ffediboost\u002Fadmin\u002Fjs\u002Ffediboost-admin.js",[],[264],[268,269],"fediboost\u002Fadmin\u002Fcss\u002Ffediboost-admin.css?ver=","fediboost\u002Fadmin\u002Fjs\u002Ffediboost-admin.js?ver=",{"cssClasses":271,"htmlComments":276,"htmlAttributes":279,"restEndpoints":281,"jsGlobals":282,"shortcodeOutput":284},[272,273,274,275],"fediboost-admin-wrap","fediboost-connect-button","fediboost-oauth-button","fediboost-reconnect-warning",[277,278]," FediBoost Admin Wrap Start "," FediBoost Admin Wrap End ",[280],"data-fediboost-nonce",[],[283],"fediboost_admin_params",[]]