@automattic/mcp-wordpress-remote 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/proxy.js +58 -4
- package/package.json +1 -1
package/dist/proxy.js
CHANGED
|
@@ -721,9 +721,11 @@ var AUTHORIZATION_CODE_HTML = `
|
|
|
721
721
|
document.getElementById('details').textContent = message;
|
|
722
722
|
}
|
|
723
723
|
|
|
724
|
-
//
|
|
724
|
+
// Handle both OAuth 2.1 authorization code flow and implicit flow
|
|
725
725
|
const urlParams = new URLSearchParams(window.location.search);
|
|
726
|
+
const hashParams = new URLSearchParams(window.location.hash.substring(1));
|
|
726
727
|
|
|
728
|
+
// Check for authorization code first (OAuth 2.1 flow)
|
|
727
729
|
if (urlParams.has('code')) {
|
|
728
730
|
const authData = {
|
|
729
731
|
code: urlParams.get('code'),
|
|
@@ -759,13 +761,63 @@ var AUTHORIZATION_CODE_HTML = `
|
|
|
759
761
|
displayStatus('\u274C Error completing authorization', 'error');
|
|
760
762
|
displayDetails(error.message + '. Please try again.');
|
|
761
763
|
});
|
|
762
|
-
}
|
|
764
|
+
}
|
|
765
|
+
// Check for access token in URL fragment (implicit flow - WordPress.com)
|
|
766
|
+
else if (hashParams.has('access_token')) {
|
|
767
|
+
const tokens = {
|
|
768
|
+
access_token: hashParams.get('access_token'),
|
|
769
|
+
token_type: hashParams.get('token_type') || 'Bearer',
|
|
770
|
+
expires_in: hashParams.get('expires_in') ? parseInt(hashParams.get('expires_in')) : 3600,
|
|
771
|
+
scope: hashParams.get('scope'),
|
|
772
|
+
state: hashParams.get('state'),
|
|
773
|
+
obtained_at: Date.now()
|
|
774
|
+
};
|
|
775
|
+
|
|
776
|
+
// Send tokens to server for storage
|
|
777
|
+
fetch('/oauth/tokens', {
|
|
778
|
+
method: 'POST',
|
|
779
|
+
headers: {
|
|
780
|
+
'Content-Type': 'application/json'
|
|
781
|
+
},
|
|
782
|
+
body: JSON.stringify(tokens)
|
|
783
|
+
})
|
|
784
|
+
.then(response => {
|
|
785
|
+
if (response.ok) {
|
|
786
|
+
displayStatus('\u2705 Authorization successful!', 'success');
|
|
787
|
+
displayDetails('WordPress.com OAuth authentication completed. You can now close this window.');
|
|
788
|
+
// Auto-close after 3 seconds
|
|
789
|
+
setTimeout(() => {
|
|
790
|
+
displayDetails('Closing window...');
|
|
791
|
+
setTimeout(() => window.close(), 1000);
|
|
792
|
+
}, 3000);
|
|
793
|
+
} else {
|
|
794
|
+
return response.json().then(err => {
|
|
795
|
+
throw new Error(err.error || 'Failed to store access token');
|
|
796
|
+
});
|
|
797
|
+
}
|
|
798
|
+
})
|
|
799
|
+
.catch(error => {
|
|
800
|
+
displayStatus('\u274C Error completing authorization', 'error');
|
|
801
|
+
displayDetails(error.message + '. Please try again.');
|
|
802
|
+
});
|
|
803
|
+
}
|
|
804
|
+
// Check for errors in query parameters
|
|
805
|
+
else if (urlParams.has('error')) {
|
|
763
806
|
const error = urlParams.get('error');
|
|
764
807
|
const errorDescription = urlParams.get('error_description');
|
|
765
808
|
displayStatus('\u274C Authorization failed', 'error');
|
|
766
809
|
displayDetails(\`Error: \${error}\${errorDescription ? ' - ' + errorDescription : ''}\`);
|
|
767
|
-
}
|
|
768
|
-
|
|
810
|
+
}
|
|
811
|
+
// Check for errors in URL fragment (implicit flow errors)
|
|
812
|
+
else if (hashParams.has('error')) {
|
|
813
|
+
const error = hashParams.get('error');
|
|
814
|
+
const errorDescription = hashParams.get('error_description');
|
|
815
|
+
displayStatus('\u274C Authorization failed', 'error');
|
|
816
|
+
displayDetails(\`Error: \${error}\${errorDescription ? ' - ' + errorDescription : ''}\`);
|
|
817
|
+
}
|
|
818
|
+
// No authorization code or access token found
|
|
819
|
+
else {
|
|
820
|
+
displayStatus('\u274C No authorization code or access token received', 'error');
|
|
769
821
|
displayDetails('Please try the authorization process again.');
|
|
770
822
|
}
|
|
771
823
|
</script>
|
|
@@ -2054,6 +2106,8 @@ async function wpRequest(params = { method: "init" }) {
|
|
|
2054
2106
|
};
|
|
2055
2107
|
try {
|
|
2056
2108
|
logger.api("Sending request to WordPress API...");
|
|
2109
|
+
logger.debug(`Request URL: ${url}`, "API");
|
|
2110
|
+
logger.debug(`Request method: ${method}`, "API");
|
|
2057
2111
|
const response = await fetch(url, fetchOptions);
|
|
2058
2112
|
logger.debug(`Response status: ${response.status}`, "API");
|
|
2059
2113
|
if (!response.ok) {
|