@reclaimprotocol/attestor-core
Version:
<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>
65 lines • 4.92 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMockServer = createMockServer;
/**
* Mock HTTPS server to implement the "mock-login" provider
*/
const fs_1 = require("fs");
const https_1 = require("https");
const utils_1 = require("../utils");
/**
* Mock https server to test claim creation.
* It implements a GET /me endpoint that returns the email address
* of the user. A bearer token is expected in the Authorization header.
*
* The bearer token is expected to be the email address without the domain.
* Eg. to claim the email address "abcd@mock.com", the header
* should be "Authorization: Bearer abcd".
*/
function createMockServer(port) {
const tlsSessionStore = {};
const server = (0, https_1.createServer)({
key: (0, fs_1.readFileSync)('./cert/private-key.pem'),
cert: (0, fs_1.readFileSync)('./cert/public-cert.pem'),
});
server.on('request', (req, res) => {
var _a;
if (req.method !== 'GET') {
endWithError(405, 'invalid method');
return;
}
if (!((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith('/me'))) {
endWithError(404, 'invalid path');
return;
}
const auth = req.headers.authorization;
if (!auth) {
endWithError(401, 'missing authorization header');
return;
}
if (!(auth === null || auth === void 0 ? void 0 : auth.startsWith('Bearer '))) {
endWithError(401, 'invalid authorization header');
return;
}
const emailAddress = auth.slice('Bearer '.length) + '@mock.com';
endWithJson(200, { emailAddress });
utils_1.logger.info({ emailAddress }, 'ended with success');
function endWithError(status, message) {
endWithJson(status, { error: message });
utils_1.logger.info({ status, message }, 'ended with error');
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function endWithJson(status, json) {
const str = JSON.stringify(json);
res.writeHead(status, {
'Content-Type': 'application/json',
'Content-Length': str.length.toString(),
});
res.write(str);
res.end();
}
});
server.listen(port);
return { server, tlsSessionStore };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wcm92aWRlci1zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvbW9jay1wcm92aWRlci1zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsNENBMERDO0FBMUVEOztHQUVHO0FBQ0gsMkJBQWlDO0FBQ2pDLGlDQUFvQztBQUNwQyxxQ0FBa0M7QUFFbEM7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUE7SUFFbEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBWSxFQUMxQjtRQUNDLEdBQUcsRUFBRSxJQUFBLGlCQUFZLEVBQUMsd0JBQXdCLENBQUM7UUFDM0MsSUFBSSxFQUFFLElBQUEsaUJBQVksRUFBQyx3QkFBd0IsQ0FBQztLQUM1QyxDQUNELENBQUE7SUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTs7UUFDakMsSUFBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtZQUNuQyxPQUFNO1FBQ1AsQ0FBQztRQUVELElBQUcsQ0FBQyxDQUFBLE1BQUEsR0FBRyxDQUFDLEdBQUcsMENBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBLEVBQUUsQ0FBQztZQUNoQyxZQUFZLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFBO1lBQ2pDLE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7UUFDdEMsSUFBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsWUFBWSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUCxDQUFDO1FBRUQsSUFBRyxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQy9ELFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRWxDLGNBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1FBRW5ELFNBQVMsWUFBWSxDQUFDLE1BQWMsRUFBRSxPQUFlO1lBQ3BELFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUV2QyxjQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELDhEQUE4RDtRQUM5RCxTQUFTLFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBUztZQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNyQixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN2QyxDQUFDLENBQUE7WUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ1YsQ0FBQztJQUNGLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVuQixPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFBO0FBQ25DLENBQUMifQ==
;