Yes, I know about it.
I had an idea of writing a shim drop-in script that may replace chromewebstore APIs **without** changing extension code very much (except the url and maybe some auth scopes).
import Koa from 'koa';
import Router from 'koa-router';
import Logger from 'koa-logger';
import fetch from 'node-fetch';
const app = new Koa();
const router = new Router();
// Response to GET requests
router.get('/', async (ctx) => {
ctx.body = 'Hello, World!\n';
});
router.get(
'/chromewebstore/v1.1/userlicenses/:extensionId',
async (ctx) => {
const googleUser = await fetch('
https://www.googleapis.com/oauth2/v2/userinfo?alt=json', {
headers: {
Authorization: ctx.get('Authorization'),
'Content-Type': 'application/json',
},
}).then((res) => res.json());
const userId = googleUser.id;
const userEmail = googleUser.email;
if (!googleUser.verified_email) {
ctx.body = '{ "error": "Your google email must be verified!" }';
return;
}
ctx.body = `{ "googleUser": ${JSON.stringify(googleUser)} }`;
},
);
// Logging
app.use(Logger());
// Add routes and response to the OPTIONS requests
app.use(router.routes()).use(router.allowedMethods());
// Listening to the port
app.listen(8080, () => {
console.log('Server running on port 8080');
});