@umbraco/headless-client
Version:
Node.js client library for the Umbraco Headless APIs
115 lines • 10.5 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenticationClient = void 0;
var ApiRequest_1 = require("../ApiRequest");
var Endpoints_1 = require("../Endpoints");
/**
* AuthenticationClient is used to authenticate members and Backoffice users.
* @public
*
* @example
* The {@link AuthenticationClient} must be accessed through {@link Client}.
*
* ```typescript
* import { Client } from '@umbraco/headless-client'
*
* const client = new Client({
* projectAlias: '<your-project-alias>',
* apiKey: '<your-api-key>',
* language: '<iso-code>',
* })
*
* const authClient = client.authentication
* ```
*/
var AuthenticationClient = /** @class */ (function () {
/**
* @internal
*/
function AuthenticationClient(client) {
this.client = client;
}
/**
* Authenticate a member using username and password.
* @param username - The members username.
* @param password - The members password.
* @returns a Promise resolving to a {@link OAUthResponse}
*/
AuthenticationClient.prototype.authenticateMember = function (username, password) {
return __awaiter(this, void 0, void 0, function () {
var data, options;
return __generator(this, function (_a) {
data = new URLSearchParams();
data.append('grant_type', 'password');
data.append('username', username);
data.append('password', password);
options = { projectAlias: '' };
if ('projectAlias' in this.client.options) {
options.projectAlias = this.client.options.projectAlias;
}
return [2 /*return*/, new ApiRequest_1.ApiRequest(options, Endpoints_1.Endpoints.authentication.member(), data).promise()];
});
});
};
/**
* Authenticate a Backoffice user using username and password.
* @param username - The users username.
* @param password - The users password.
* @returns a Promise resolving to a {@link OAUthResponse}
*/
AuthenticationClient.prototype.authenticateUser = function (username, password) {
return __awaiter(this, void 0, void 0, function () {
var data, options;
return __generator(this, function (_a) {
data = new URLSearchParams();
data.append('grant_type', 'password');
data.append('username', username);
data.append('password', password);
options = { projectAlias: '' };
if ('projectAlias' in this.client.options) {
options.projectAlias = this.client.options.projectAlias;
}
return [2 /*return*/, new ApiRequest_1.ApiRequest(options, Endpoints_1.Endpoints.authentication.user(), data).promise()];
});
});
};
return AuthenticationClient;
}());
exports.AuthenticationClient = AuthenticationClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aGVudGljYXRpb25DbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ2xpZW50cy9BdXRoZW50aWNhdGlvbkNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw0Q0FBMEM7QUFDMUMsMENBQXdDO0FBR3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSDtJQUNFOztPQUVHO0lBQ0gsOEJBQ21CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBR2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNHLGlEQUFrQixHQUF4QixVQUEwQixRQUFnQixFQUFFLFFBQWdCOzs7O2dCQUNwRCxJQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFFM0IsT0FBTyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFBO2dCQUNwQyxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDekMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7aUJBQ3hEO2dCQUVELHNCQUFPLElBQUksdUJBQVUsQ0FBZ0IsT0FBTyxFQUFFLHFCQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFBOzs7S0FDakc7SUFFRDs7Ozs7T0FLRztJQUNHLCtDQUFnQixHQUF0QixVQUF3QixRQUFnQixFQUFFLFFBQWdCOzs7O2dCQUNsRCxJQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFFM0IsT0FBTyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFBO2dCQUNwQyxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDekMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7aUJBQ3hEO2dCQUVELHNCQUFPLElBQUksdUJBQVUsQ0FBZ0IsT0FBTyxFQUFFLHFCQUFTLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFBOzs7S0FDL0Y7SUFDSCwyQkFBQztBQUFELENBQUMsQUFqREQsSUFpREM7QUFqRFksb0RBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50LCBDbGllbnRPcHRpb25zIH0gZnJvbSAnLi4vQ2xpZW50J1xuaW1wb3J0IHsgQXBpUmVxdWVzdCB9IGZyb20gJy4uL0FwaVJlcXVlc3QnXG5pbXBvcnQgeyBFbmRwb2ludHMgfSBmcm9tICcuLi9FbmRwb2ludHMnXG5pbXBvcnQgeyBPQVV0aFJlc3BvbnNlIH0gZnJvbSAnLi4vUmVzcG9uc2VzJ1xuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uQ2xpZW50IGlzIHVzZWQgdG8gYXV0aGVudGljYXRlIG1lbWJlcnMgYW5kIEJhY2tvZmZpY2UgdXNlcnMuXG4gKiBAcHVibGljXG4gKlxuICogQGV4YW1wbGVcbiAqIFRoZSB7QGxpbmsgQXV0aGVudGljYXRpb25DbGllbnR9IG11c3QgYmUgYWNjZXNzZWQgdGhyb3VnaCB7QGxpbmsgQ2xpZW50fS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBDbGllbnQgfSBmcm9tICdAdW1icmFjby9oZWFkbGVzcy1jbGllbnQnXG4gKlxuICogY29uc3QgY2xpZW50ID0gbmV3IENsaWVudCh7XG4gKiAgcHJvamVjdEFsaWFzOiAnPHlvdXItcHJvamVjdC1hbGlhcz4nLFxuICogIGFwaUtleTogJzx5b3VyLWFwaS1rZXk+JyxcbiAqICBsYW5ndWFnZTogJzxpc28tY29kZT4nLFxuICogfSlcbiAqXG4gKiBjb25zdCBhdXRoQ2xpZW50ID0gY2xpZW50LmF1dGhlbnRpY2F0aW9uXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3RydWN0b3IgKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBDbGllbnRcbiAgKSB7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGUgYSBtZW1iZXIgdXNpbmcgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLlxuICAgKiBAcGFyYW0gdXNlcm5hbWUgLSBUaGUgbWVtYmVycyB1c2VybmFtZS5cbiAgICogQHBhcmFtIHBhc3N3b3JkIC0gVGhlIG1lbWJlcnMgcGFzc3dvcmQuXG4gICAqIEByZXR1cm5zIGEgUHJvbWlzZSByZXNvbHZpbmcgdG8gYSB7QGxpbmsgT0FVdGhSZXNwb25zZX1cbiAgICovXG4gIGFzeW5jIGF1dGhlbnRpY2F0ZU1lbWJlciAodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGEgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICBkYXRhLmFwcGVuZCgnZ3JhbnRfdHlwZScsICdwYXNzd29yZCcpXG4gICAgZGF0YS5hcHBlbmQoJ3VzZXJuYW1lJywgdXNlcm5hbWUpXG4gICAgZGF0YS5hcHBlbmQoJ3Bhc3N3b3JkJywgcGFzc3dvcmQpXG5cbiAgICBjb25zdCBvcHRpb25zID0geyBwcm9qZWN0QWxpYXM6ICcnIH1cbiAgICBpZiAoJ3Byb2plY3RBbGlhcycgaW4gdGhpcy5jbGllbnQub3B0aW9ucykge1xuICAgICAgb3B0aW9ucy5wcm9qZWN0QWxpYXMgPSB0aGlzLmNsaWVudC5vcHRpb25zLnByb2plY3RBbGlhc1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXBpUmVxdWVzdDxPQVV0aFJlc3BvbnNlPihvcHRpb25zLCBFbmRwb2ludHMuYXV0aGVudGljYXRpb24ubWVtYmVyKCksIGRhdGEpLnByb21pc2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZSBhIEJhY2tvZmZpY2UgdXNlciB1c2luZyB1c2VybmFtZSBhbmQgcGFzc3dvcmQuXG4gICAqIEBwYXJhbSB1c2VybmFtZSAtIFRoZSB1c2VycyB1c2VybmFtZS5cbiAgICogQHBhcmFtIHBhc3N3b3JkIC0gVGhlIHVzZXJzIHBhc3N3b3JkLlxuICAgKiBAcmV0dXJucyBhIFByb21pc2UgcmVzb2x2aW5nIHRvIGEge0BsaW5rIE9BVXRoUmVzcG9uc2V9XG4gICAqL1xuICBhc3luYyBhdXRoZW50aWNhdGVVc2VyICh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgIGRhdGEuYXBwZW5kKCdncmFudF90eXBlJywgJ3Bhc3N3b3JkJylcbiAgICBkYXRhLmFwcGVuZCgndXNlcm5hbWUnLCB1c2VybmFtZSlcbiAgICBkYXRhLmFwcGVuZCgncGFzc3dvcmQnLCBwYXNzd29yZClcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IHByb2plY3RBbGlhczogJycgfVxuICAgIGlmICgncHJvamVjdEFsaWFzJyBpbiB0aGlzLmNsaWVudC5vcHRpb25zKSB7XG4gICAgICBvcHRpb25zLnByb2plY3RBbGlhcyA9IHRoaXMuY2xpZW50Lm9wdGlvbnMucHJvamVjdEFsaWFzXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBcGlSZXF1ZXN0PE9BVXRoUmVzcG9uc2U+KG9wdGlvbnMsIEVuZHBvaW50cy5hdXRoZW50aWNhdGlvbi51c2VyKCksIGRhdGEpLnByb21pc2UoKVxuICB9XG59XG4iXX0=