angular-auth-oidc-client
Version:
Angular Lib for OpenID Connect & OAuth2
89 lines • 12 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class EqualityService {
isStringEqualOrNonOrderedArrayEqual(value1, value2) {
if (this.isNullOrUndefined(value1)) {
return false;
}
if (this.isNullOrUndefined(value2)) {
return false;
}
if (this.oneValueIsStringAndTheOtherIsArray(value1, value2)) {
return false;
}
if (this.bothValuesAreStrings(value1, value2)) {
return value1 === value2;
}
return this.arraysHaveEqualContent(value1, value2);
}
areEqual(value1, value2) {
if (!value1 || !value2) {
return false;
}
if (this.bothValuesAreArrays(value1, value2)) {
return this.arraysStrictEqual(value1, value2);
}
if (this.bothValuesAreStrings(value1, value2)) {
return value1 === value2;
}
if (this.bothValuesAreObjects(value1, value2)) {
return (JSON.stringify(value1).toLowerCase() ===
JSON.stringify(value2).toLowerCase());
}
if (this.oneValueIsStringAndTheOtherIsArray(value1, value2)) {
if (Array.isArray(value1) && this.valueIsString(value2)) {
return value1[0] === value2;
}
if (Array.isArray(value2) && this.valueIsString(value1)) {
return value2[0] === value1;
}
}
return value1 === value2;
}
oneValueIsStringAndTheOtherIsArray(value1, value2) {
return ((Array.isArray(value1) && this.valueIsString(value2)) ||
(Array.isArray(value2) && this.valueIsString(value1)));
}
bothValuesAreObjects(value1, value2) {
return this.valueIsObject(value1) && this.valueIsObject(value2);
}
bothValuesAreStrings(value1, value2) {
return this.valueIsString(value1) && this.valueIsString(value2);
}
bothValuesAreArrays(value1, value2) {
return Array.isArray(value1) && Array.isArray(value2);
}
valueIsString(value) {
return typeof value === 'string' || value instanceof String;
}
valueIsObject(value) {
return typeof value === 'object';
}
arraysStrictEqual(arr1, arr2) {
if (arr1.length !== arr2.length) {
return false;
}
for (let i = arr1.length; i--;) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
arraysHaveEqualContent(arr1, arr2) {
if (arr1.length !== arr2.length) {
return false;
}
return arr1.some((v) => arr2.includes(v));
}
isNullOrUndefined(val) {
return val === null || val === undefined;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EqualityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EqualityService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EqualityService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC9zcmMvbGliL3V0aWxzL2VxdWFsaXR5L2VxdWFsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGVBQWU7SUFDMUIsbUNBQW1DLENBQ2pDLE1BQXNCLEVBQ3RCLE1BQXNCO1FBRXRCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLE1BQU0sS0FBSyxNQUFNLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQWUsRUFBRSxNQUFlLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUSxDQUNOLE1BQStDLEVBQy9DLE1BQStDO1FBRS9DLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxP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QUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixJQUFtQixFQUNuQixJQUFtQjtRQUVuQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFRO1FBQ2hDLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzNDLENBQUM7OEdBN0hVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFcXVhbGl0eVNlcnZpY2Uge1xuICBpc1N0cmluZ0VxdWFsT3JOb25PcmRlcmVkQXJyYXlFcXVhbChcbiAgICB2YWx1ZTE6IHN0cmluZyB8IGFueVtdLFxuICAgIHZhbHVlMjogc3RyaW5nIHwgYW55W11cbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNOdWxsT3JVbmRlZmluZWQodmFsdWUxKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlMikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vbmVWYWx1ZUlzU3RyaW5nQW5kVGhlT3RoZXJJc0FycmF5KHZhbHVlMSwgdmFsdWUyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJvdGhWYWx1ZXNBcmVTdHJpbmdzKHZhbHVlMSwgdmFsdWUyKSkge1xuICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFycmF5c0hhdmVFcXVhbENvbnRlbnQodmFsdWUxIGFzIGFueVtdLCB2YWx1ZTIgYXMgYW55W10pO1xuICB9XG5cbiAgYXJlRXF1YWwoXG4gICAgdmFsdWUxOiBzdHJpbmcgfCBhbnlbXSB8IGFueSB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgdmFsdWUyOiBzdHJpbmcgfCBhbnlbXSB8IGFueSB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZTEgfHwgIXZhbHVlMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJvdGhWYWx1ZXNBcmVBcnJheXModmFsdWUxLCB2YWx1ZTIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheXNTdHJpY3RFcXVhbCh2YWx1ZTEgYXMgYW55W10sIHZhbHVlMiBhcyBhbnlbXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYm90aFZhbHVlc0FyZVN0cmluZ3ModmFsdWUxLCB2YWx1ZTIpKSB7XG4gICAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYm90aFZhbHVlc0FyZU9iamVjdHModmFsdWUxLCB2YWx1ZTIpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh2YWx1ZTEpLnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHZhbHVlMikudG9Mb3dlckNhc2UoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vbmVWYWx1ZUlzU3RyaW5nQW5kVGhlT3RoZXJJc0FycmF5KHZhbHVlMSwgdmFsdWUyKSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUxKSAmJiB0aGlzLnZhbHVlSXNTdHJpbmcodmFsdWUyKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUxWzBdID09PSB2YWx1ZTI7XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZTIpICYmIHRoaXMudmFsdWVJc1N0cmluZyh2YWx1ZTEpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTJbMF0gPT09IHZhbHVlMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gIH1cblxuICBwcml2YXRlIG9uZVZhbHVlSXNTdHJpbmdBbmRUaGVPdGhlcklzQXJyYXkoXG4gICAgdmFsdWUxOiBzdHJpbmcgfCBhbnkgfCBhbnlbXSxcbiAgICB2YWx1ZTI6IHN0cmluZyB8IGFueSB8IGFueVtdXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIHRoaXMudmFsdWVJc1N0cmluZyh2YWx1ZTIpKSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUyKSAmJiB0aGlzLnZhbHVlSXNTdHJpbmcodmFsdWUxKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBib3RoVmFsdWVzQXJlT2JqZWN0cyhcbiAgICB2YWx1ZTE6IHN0cmluZyB8IGFueSB8IGFueVtdLFxuICAgIHZhbHVlMjogc3RyaW5nIHwgYW55IHwgYW55W11cbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVJc09iamVjdCh2YWx1ZTEpICYmIHRoaXMudmFsdWVJc09iamVjdCh2YWx1ZTIpO1xuICB9XG5cbiAgcHJpdmF0ZSBib3RoVmFsdWVzQXJlU3RyaW5ncyhcbiAgICB2YWx1ZTE6IHN0cmluZyB8IGFueSB8IGFueVtdLFxuICAgIHZhbHVlMjogc3RyaW5nIHwgYW55IHwgYW55W11cbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVJc1N0cmluZyh2YWx1ZTEpICYmIHRoaXMudmFsdWVJc1N0cmluZyh2YWx1ZTIpO1xuICB9XG5cbiAgcHJpdmF0ZSBib3RoVmFsdWVzQXJlQXJyYXlzKFxuICAgIHZhbHVlMTogc3RyaW5nIHwgYW55IHwgYW55W10sXG4gICAgdmFsdWUyOiBzdHJpbmcgfCBhbnkgfCBhbnlbXVxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVJc1N0cmluZyh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlSXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheXNTdHJpY3RFcXVhbChhcnIxOiBBcnJheTxzdHJpbmc+LCBhcnIyOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgaWYgKGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBhcnIxLmxlbmd0aDsgaS0tOyApIHtcbiAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXJyYXlzSGF2ZUVxdWFsQ29udGVudChcbiAgICBhcnIxOiBBcnJheTxzdHJpbmc+LFxuICAgIGFycjI6IEFycmF5PHN0cmluZz5cbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBhcnIxLnNvbWUoKHYpID0+IGFycjIuaW5jbHVkZXModikpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc051bGxPclVuZGVmaW5lZCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==