| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.LokaliseAuth = void 0;const auth_request_1 = require("./auth_request");class LokaliseAuth {    authData = {        client_id: "",        client_secret: "",    };    /*     * Instantiate LokaliseAuth to work with OAuth 2 tokens     * @param clientId      string, mandatory     * @param clientSecret  string, mandatory     * @returns             LokaliseAuth object to work with.     */    constructor(clientId, clientSecret, host) {        if (clientId == null ||            clientId.length == 0 ||            clientSecret == null ||            clientSecret.length == 0) {            throw new Error("Error: Instantiation failed: Please pass client id and client secret");        }        this.authData.client_id = clientId;        this.authData.client_secret = clientSecret;        this.authData.host = host;    }    auth(scope, redirect_uri, state) {        if (scope instanceof Array) {            scope = scope.join(" ");        }        const params = {            client_id: this.authData.client_id,            scope: scope,        };        if (state) {            params["state"] = state;        }        if (redirect_uri) {            params["redirect_uri"] = redirect_uri;        }        return this.buildUrl(params);    }    async token(code) {        const params = {            ...this.base_params(),            ...{                code: code,                grant_type: "authorization_code",            },        };        return await this.doRequest(params);    }    async refresh(refresh_token) {        const params = {            ...this.base_params(),            ...{                refresh_token: refresh_token,                grant_type: "refresh_token",            },        };        return await this.doRequest(params);    }    async doRequest(params) {        try {            const data = await auth_request_1.AuthRequest.createPromise("token", "POST", params, this.authData.host);            return Promise.resolve(data["json"]);        }        catch (err) {            return Promise.reject(this.handleReject(err));        }    }    buildUrl(params) {        const url = new URL("auth", this.authData.host ?? auth_request_1.AuthRequest.urlRoot);        const sParams = new URLSearchParams(params);        url.search = sParams.toString();        return url.toString();    }    base_params() {        return {            client_id: this.authData.client_id,            client_secret: this.authData.client_secret,        };    }    handleReject(data) {        return data;    }}exports.LokaliseAuth = LokaliseAuth;//# sourceMappingURL=lokalise_auth.js.map
 |