UNPKG

trainingpeaks-sdk

Version:
53 lines (52 loc) 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequestVerificationToken = exports.submitLogin = exports.getLoginPage = exports.LOGIN_FORM_HEADERS = exports.LOGIN_API_BASE_URL = void 0; const api_urls_1 = require("../../../../adapters/public-api/constants/api-urls.js"); exports.LOGIN_API_BASE_URL = api_urls_1.API_BASE_URLS.LOGIN; exports.LOGIN_FORM_HEADERS = { 'accept-language': 'en-US,en;q=0.9', 'cache-control': 'max-age=0', 'content-type': 'application/x-www-form-urlencoded', origin: 'null', priority: 'u=0, i', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'same-origin', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', }; const getLoginPage = async (httpClient) => { return await httpClient.get(api_urls_1.API_ENDPOINTS.LOGIN_PAGE, { headers: { 'Content-Type': 'application/json', Accept: 'application/json', }, }); }; exports.getLoginPage = getLoginPage; const submitLogin = async (httpClient, requestVerificationToken, credentials) => { const formData = new URLSearchParams({ Username: credentials.username, __RequestVerificationToken: requestVerificationToken, Password: credentials.password, }); return await httpClient.post(api_urls_1.API_ENDPOINTS.LOGIN_PAGE, formData.toString(), { headers: { accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', ...exports.LOGIN_FORM_HEADERS, }, }); }; exports.submitLogin = submitLogin; const getRequestVerificationToken = (html) => { const inputMatches = html.match(/<input[^>]+>/g) || []; for (const input of inputMatches) { const nameMatch = input.match(/name="__RequestVerificationToken"/); if (nameMatch) { const valueMatch = input.match(/value="([^"]*)"/); return valueMatch?.[1] || null; } } return null; }; exports.getRequestVerificationToken = getRequestVerificationToken;