trust-my-travel-legacy
Version:
SDK for the Trust My Travel legacy payments API.
51 lines • 6.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getKeysFromPuppeteerLogs = void 0;
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable import/no-extraneous-dependencies */
const puppeteer_1 = __importDefault(require("puppeteer"));
const path_1 = require("path");
const fs_1 = require("fs");
function getKeysFromPuppeteerLogs(page, numberTokens) {
return new Promise((resolve) => {
const keys = [];
page.on('console', (msg) => {
keys.push(msg.text());
// Resolve when recovered
if (keys.length >= numberTokens) {
resolve(keys);
}
});
});
}
exports.getKeysFromPuppeteerLogs = getKeysFromPuppeteerLogs;
/**
* Generates spreedly test payment tokens for testing with this SDK
* @param numberTokens Number of tokens required
*/
async function getSpreedlyTestTokens(numberTokens = 20) {
// Github CD requires this to be set - https://github.com/marketplace/actions/puppeteer-container
let executablePath;
if (process.env.CI) {
executablePath = 'google-chrome-stable';
}
// Launch the browser
const browser = await puppeteer_1.default.launch({
headless: true,
executablePath,
});
// Setup the page with local code
const pages = await browser.pages();
const page = pages[0];
const html = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../html/getSpreedlyTestTokens.html'), 'utf8');
const htmlWithTokenNumberSet = html.replace('NUMBER_OF_TOKENS', numberTokens.toString());
await page.setContent(htmlWithTokenNumberSet);
const keys = await getKeysFromPuppeteerLogs(page, numberTokens);
await browser.close();
return keys;
}
exports.default = getSpreedlyTestTokens;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3ByZWVkbHlUZXN0VG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFNwcmVlZGx5VGVzdFRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsc0RBQXNEO0FBQ3RELDBEQUFrQztBQUNsQywrQkFBNEI7QUFDNUIsMkJBQWtDO0FBRWxDLFNBQWdCLHdCQUF3QixDQUN0QyxJQUFvQixFQUNwQixZQUFvQjtJQUVwQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0Qix5QkFBeUI7WUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksRUFBRTtnQkFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWRELDREQWNDO0FBRUQ7OztHQUdHO0FBQ1ksS0FBSyxVQUFVLHFCQUFxQixDQUNqRCxZQUFZLEdBQUcsRUFBRTtJQUVqQixpR0FBaUc7SUFDakcsSUFBSSxjQUFrQyxDQUFDO0lBQ3ZDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDbEIsY0FBYyxHQUFHLHNCQUFzQixDQUFDO0tBQ3pDO0lBRUQscUJBQXFCO0lBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sbUJBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsUUFBUSxFQUFFLElBQUk7UUFDZCxjQUFjO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsaUNBQWlDO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixNQUFNLElBQUksR0FBRyxJQUFBLGlCQUFZLEVBQ3ZCLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxvQ0FBb0MsQ0FBQyxFQUNyRCxNQUFNLENBQ1AsQ0FBQztJQUNGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDekMsa0JBQWtCLEVBQ2xCLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FDeEIsQ0FBQztJQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sd0JBQXdCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXRCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWhDRCx3Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCBwdXBwZXRlZXIgZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEtleXNGcm9tUHVwcGV0ZWVyTG9ncyhcbiAgcGFnZTogcHVwcGV0ZWVyLlBhZ2UsXG4gIG51bWJlclRva2VuczogbnVtYmVyXG4pOiBQcm9taXNlPEFycmF5PHN0cmluZz4+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qga2V5czogQXJyYXk8YW55PiA9IFtdO1xuICAgIHBhZ2Uub24oJ2NvbnNvbGUnLCAobXNnKSA9PiB7XG4gICAgICBrZXlzLnB1c2gobXNnLnRleHQoKSk7XG4gICAgICAvLyBSZXNvbHZlIHdoZW4gcmVjb3ZlcmVkXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPj0gbnVtYmVyVG9rZW5zKSB7XG4gICAgICAgIHJlc29sdmUoa2V5cyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBzcHJlZWRseSB0ZXN0IHBheW1lbnQgdG9rZW5zIGZvciB0ZXN0aW5nIHdpdGggdGhpcyBTREtcbiAqIEBwYXJhbSBudW1iZXJUb2tlbnMgTnVtYmVyIG9mIHRva2VucyByZXF1aXJlZFxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBnZXRTcHJlZWRseVRlc3RUb2tlbnMoXG4gIG51bWJlclRva2VucyA9IDIwXG4pOiBQcm9taXNlPEFycmF5PHN0cmluZz4+IHtcbiAgLy8gR2l0aHViIENEIHJlcXVpcmVzIHRoaXMgdG8gYmUgc2V0IC0gaHR0cHM6Ly9naXRodWIuY29tL21hcmtldHBsYWNlL2FjdGlvbnMvcHVwcGV0ZWVyLWNvbnRhaW5lclxuICBsZXQgZXhlY3V0YWJsZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3MuZW52LkNJKSB7XG4gICAgZXhlY3V0YWJsZVBhdGggPSAnZ29vZ2xlLWNocm9tZS1zdGFibGUnO1xuICB9XG5cbiAgLy8gTGF1bmNoIHRoZSBicm93c2VyXG4gIGNvbnN0IGJyb3dzZXIgPSBhd2FpdCBwdXBwZXRlZXIubGF1bmNoKHtcbiAgICBoZWFkbGVzczogdHJ1ZSxcbiAgICBleGVjdXRhYmxlUGF0aCxcbiAgfSk7XG5cbiAgLy8gU2V0dXAgdGhlIHBhZ2Ugd2l0aCBsb2NhbCBjb2RlXG4gIGNvbnN0IHBhZ2VzID0gYXdhaXQgYnJvd3Nlci5wYWdlcygpO1xuICBjb25zdCBwYWdlID0gcGFnZXNbMF07XG4gIGNvbnN0IGh0bWwgPSByZWFkRmlsZVN5bmMoXG4gICAgam9pbihfX2Rpcm5hbWUsICcuLi9odG1sL2dldFNwcmVlZGx5VGVzdFRva2Vucy5odG1sJyksXG4gICAgJ3V0ZjgnXG4gICk7XG4gIGNvbnN0IGh0bWxXaXRoVG9rZW5OdW1iZXJTZXQgPSBodG1sLnJlcGxhY2UoXG4gICAgJ05VTUJFUl9PRl9UT0tFTlMnLFxuICAgIG51bWJlclRva2Vucy50b1N0cmluZygpXG4gICk7XG4gIGF3YWl0IHBhZ2Uuc2V0Q29udGVudChodG1sV2l0aFRva2VuTnVtYmVyU2V0KTtcblxuICBjb25zdCBrZXlzID0gYXdhaXQgZ2V0S2V5c0Zyb21QdXBwZXRlZXJMb2dzKHBhZ2UsIG51bWJlclRva2Vucyk7XG4gIGF3YWl0IGJyb3dzZXIuY2xvc2UoKTtcblxuICByZXR1cm4ga2V5cztcbn1cbiJdfQ==