begin to use strawberry for patching

This commit is contained in:
Charlotte Som 2025-01-01 17:32:16 +00:00
parent 7694adce3f
commit 5c0a73a92d
3 changed files with 18 additions and 18 deletions

View file

@ -8,6 +8,7 @@
"dependencies": {
"@atproto/common": "^0.4.5",
"@atproto/pds": "0.4.77",
"@marshift/strawberry": "^1.5.1",
"dotenv": "^16.4.5",
"express": "^4.21.1"
},

View file

@ -17,6 +17,9 @@ importers:
'@atproto/pds':
specifier: 0.4.77
version: 0.4.77
'@marshift/strawberry':
specifier: ^1.5.1
version: 1.5.1
dotenv:
specifier: ^16.4.5
version: 16.4.7
@ -450,6 +453,9 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
'@marshift/strawberry@1.5.1':
resolution: {integrity: sha512-OtZo6kKA06ceaf9j41r+6UxKAhqHzUnw8jYokLbVHqkQeW88SCxyOlZKOW7uoefnjWQXZcclg5v9xd+NtVe9oA==}
'@noble/curves@1.7.0':
resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
engines: {node: ^14.21.3 || >=16}
@ -2701,6 +2707,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@marshift/strawberry@1.5.1': {}
'@noble/curves@1.7.0':
dependencies:
'@noble/hashes': 1.6.0

View file

@ -1,20 +1,11 @@
const provider = require("@atproto/pds/dist/oauth/provider.js");
const { OAuthProvider } = require("@atproto/oauth-provider");
const { after } = require("@marshift/strawberry");
const origProvider = provider.PdsOAuthProvider;
class OAuthProviderDetour extends origProvider {
constructor(opts) {
super(opts);
const oClientInfo = this.clientManager.hooks.onClientInfo;
this.clientManager.hooks.onClientInfo = (clientId) => {
const info = oClientInfo(clientId);
if (clientId === "https://aglais.pages.dev/oauth/client-metadata.json") {
info.isFirstParty = true;
info.isTrusted = true;
}
return info;
};
}
}
provider.PdsOAuthProvider = OAuthProviderDetour;
after(provider, "PdsOAuthProvider", (_args, provider) => {
after(provider.clientManager.hooks, "onClientInfo", ([clientId], info) => {
if (clientId === "https://aglais.pages.dev/oauth/client-metadata.json") {
info.isFirstParty = true;
info.isTrusted = true;
}
});
});