UNPKG

@tangential/core

Version:

Core types and support code for Tangential

43 lines 6.44 kB
import { filter } from 'rxjs/operators'; import { BusMessage } from '../message-bus'; export class NavigationMessage extends BusMessage { constructor(key, path, additionalMessage) { super(NavigationMessage.SourceKey, 'notification', key); this.path = path; this.additionalMessage = additionalMessage; } static filter(bus) { return bus.all.pipe(filter(m => m.source === NavigationMessage.SourceKey)); } } NavigationMessage.SourceKey = 'NavigationMessage'; export class NavigationRequiresAuthenticationMessage extends NavigationMessage { constructor(path) { super(NavigationRequiresAuthenticationMessage.Key, path); } static post(bus, path) { bus.post(new NavigationRequiresAuthenticationMessage(path)); } } NavigationRequiresAuthenticationMessage.Key = 'requiresAuthentication'; export class NavigationRequiresRoleMessage extends NavigationMessage { constructor(path, roleKey) { super(NavigationRequiresRoleMessage.Key, path, 'Role Required: ' + roleKey); this.roleKey = roleKey; } static post(bus, path, roleKey) { bus.post(new NavigationRequiresRoleMessage(path, roleKey)); } } NavigationRequiresRoleMessage.Key = 'requiresRole'; export class NavigationRequiresPermissionMessage extends NavigationMessage { constructor(path, permissionKey) { super(NavigationRequiresPermissionMessage.SubKey, path, 'Permission Required: ' + permissionKey); this.permissionKey = permissionKey; } static post(bus, path, roleKey) { bus.post(new NavigationRequiresPermissionMessage(path, roleKey)); } } NavigationRequiresPermissionMessage.SubKey = 'requiresPermission'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ2VudGlhbC9jb3JlL3NyYy9saWIvbWVzc2FnZS1idXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sRUFDTCxVQUFVLEVBRVgsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd2QixNQUFNLE9BQU8saUJBQWtCLFNBQVEsVUFBVTtJQUkvQyxZQUFZLEdBQVUsRUFBRSxJQUFZLEVBQUUsaUJBQXlCO1FBQzdELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFlO1FBQzNCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7O0FBWE0sMkJBQVMsR0FBRyxtQkFBbUIsQ0FBQTtBQWV4QyxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsaUJBQWlCO0lBRzVFLFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsdUNBQXVDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQWUsRUFBRSxJQUFZO1FBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdELENBQUM7O0FBUk0sMkNBQUcsR0FBVyx3QkFBd0IsQ0FBQTtBQVcvQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsaUJBQWlCO0lBR2xFLFlBQVksSUFBWSxFQUFTLE9BQWU7UUFDOUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLENBQUE7UUFENUMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUVoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFlLEVBQUUsSUFBWSxFQUFFLE9BQWU7UUFDeEQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7O0FBUk0saUNBQUcsR0FBVyxjQUFjLENBQUE7QUFZckMsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLGlCQUFpQjtJQUd4RSxZQUFZLElBQVksRUFBUyxhQUFxQjtRQUNwRCxLQUFLLENBQUMsbUNBQW1DLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSx1QkFBdUIsR0FBRyxhQUFhLENBQUMsQ0FBQTtRQURqRSxrQkFBYSxHQUFiLGFBQWEsQ0FBUTtJQUV0RCxDQUFDO0lBR0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFlLEVBQUUsSUFBWSxFQUFFLE9BQWU7UUFDeEQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLG1DQUFtQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7O0FBVE0sMENBQU0sR0FBVyxvQkFBb0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcydcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7XG4gIEJ1c01lc3NhZ2UsXG4gIE1lc3NhZ2VCdXNcbn0gZnJvbSAnLi4vbWVzc2FnZS1idXMnXG5cblxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25NZXNzYWdlIGV4dGVuZHMgQnVzTWVzc2FnZSB7XG4gIHN0YXRpYyBTb3VyY2VLZXkgPSAnTmF2aWdhdGlvbk1lc3NhZ2UnXG4gIHBhdGg6IHN0cmluZ1xuICBhZGRpdGlvbmFsTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGNvbnN0cnVjdG9yKGtleTpzdHJpbmcsIHBhdGg6IHN0cmluZywgYWRkaXRpb25hbE1lc3NhZ2U/OnN0cmluZykge1xuICAgIHN1cGVyKE5hdmlnYXRpb25NZXNzYWdlLlNvdXJjZUtleSwgJ25vdGlmaWNhdGlvbicsIGtleSlcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5hZGRpdGlvbmFsTWVzc2FnZSA9IGFkZGl0aW9uYWxNZXNzYWdlXG4gIH1cblxuICBzdGF0aWMgZmlsdGVyKGJ1czogTWVzc2FnZUJ1cyk6T2JzZXJ2YWJsZTxCdXNNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGJ1cy5hbGwucGlwZShmaWx0ZXIobSA9PiBtLnNvdXJjZSA9PT0gTmF2aWdhdGlvbk1lc3NhZ2UuU291cmNlS2V5KSlcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uUmVxdWlyZXNBdXRoZW50aWNhdGlvbk1lc3NhZ2UgZXh0ZW5kcyBOYXZpZ2F0aW9uTWVzc2FnZSB7XG4gIHN0YXRpYyBLZXk6IHN0cmluZyA9ICdyZXF1aXJlc0F1dGhlbnRpY2F0aW9uJ1xuXG4gIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZykge1xuICAgIHN1cGVyKE5hdmlnYXRpb25SZXF1aXJlc0F1dGhlbnRpY2F0aW9uTWVzc2FnZS5LZXksIHBhdGgpXG4gIH1cblxuICBzdGF0aWMgcG9zdChidXM6IE1lc3NhZ2VCdXMsIHBhdGg6IHN0cmluZykge1xuICAgIGJ1cy5wb3N0KG5ldyBOYXZpZ2F0aW9uUmVxdWlyZXNBdXRoZW50aWNhdGlvbk1lc3NhZ2UocGF0aCkpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25SZXF1aXJlc1JvbGVNZXNzYWdlIGV4dGVuZHMgTmF2aWdhdGlvbk1lc3NhZ2Uge1xuICBzdGF0aWMgS2V5OiBzdHJpbmcgPSAncmVxdWlyZXNSb2xlJ1xuXG4gIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZywgcHVibGljIHJvbGVLZXk6IHN0cmluZykge1xuICAgIHN1cGVyKE5hdmlnYXRpb25SZXF1aXJlc1JvbGVNZXNzYWdlLktleSwgcGF0aCwgJ1JvbGUgUmVxdWlyZWQ6ICcgKyByb2xlS2V5KVxuICB9XG5cbiAgc3RhdGljIHBvc3QoYnVzOiBNZXNzYWdlQnVzLCBwYXRoOiBzdHJpbmcsIHJvbGVLZXk6IHN0cmluZykge1xuICAgIGJ1cy5wb3N0KG5ldyBOYXZpZ2F0aW9uUmVxdWlyZXNSb2xlTWVzc2FnZShwYXRoLCByb2xlS2V5KSlcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uUmVxdWlyZXNQZXJtaXNzaW9uTWVzc2FnZSBleHRlbmRzIE5hdmlnYXRpb25NZXNzYWdlIHtcbiAgc3RhdGljIFN1YktleTogc3RyaW5nID0gJ3JlcXVpcmVzUGVybWlzc2lvbidcblxuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcsIHB1YmxpYyBwZXJtaXNzaW9uS2V5OiBzdHJpbmcpIHtcbiAgICBzdXBlcihOYXZpZ2F0aW9uUmVxdWlyZXNQZXJtaXNzaW9uTWVzc2FnZS5TdWJLZXksIHBhdGgsICdQZXJtaXNzaW9uIFJlcXVpcmVkOiAnICsgcGVybWlzc2lvbktleSlcbiAgfVxuXG5cbiAgc3RhdGljIHBvc3QoYnVzOiBNZXNzYWdlQnVzLCBwYXRoOiBzdHJpbmcsIHJvbGVLZXk6IHN0cmluZykge1xuICAgIGJ1cy5wb3N0KG5ldyBOYXZpZ2F0aW9uUmVxdWlyZXNQZXJtaXNzaW9uTWVzc2FnZShwYXRoLCByb2xlS2V5KSlcbiAgfVxuXG5cbn1cblxuXG5cblxuIl19