@pepperi/lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.
105 lines • 12.4 kB
JavaScript
export class Guid {
static pad4(num) {
let ret = num.toString(16);
while (ret.length < 4) {
ret = '0' + ret;
}
return ret;
}
static random4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
static newGuid() {
// This is not build for -prod
// return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
// const r = Math.random() * 16 | 0;
// const v = c === 'x' ? r : (r & 0x3 | 0x8);
// return v.toString(16);
// });
// If we have a cryptographically secure PRNG, use that
if (typeof (window) !== 'undefined' &&
typeof (window.crypto) !== 'undefined' &&
typeof (window.crypto.getRandomValues) !== 'undefined') {
const buf = new Uint16Array(8);
window.crypto.getRandomValues(buf);
return (this.pad4(buf[0]) + this.pad4(buf[1]) + '-' + this.pad4(buf[2]) + '-' + this.pad4(buf[3]) + '-' +
this.pad4(buf[4]) + '-' + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]));
}
else { // Otherwise, just use Math.random
return this.random4() + this.random4() + '-' + this.random4() + '-' + this.random4() + '-' +
this.random4() + '-' + this.random4() + this.random4() + this.random4();
}
}
}
// export interface IKeyedCollection<T> {
// Add(key: string, value: T);
// ContainsKey(key: string): boolean;
// Count(): number;
// Item(key: string): T;
// Keys(): string[];
// Remove(key: string): T;
// RemoveAll();
// Values(): T[];
// }
// export class KeyedCollection<T> implements IKeyedCollection<T> {
// private items: { [index: string]: T } = {};
// private count: number = 0;
// initFromObj(collection: KeyedCollection<T>) {
// this.items = {};
// this.count = 0;
// const keys = [];
// for (const prop in collection.items) {
// if (collection.items.hasOwnProperty(prop)) {
// this.Add(prop, collection.items[prop]);
// }
// }
// }
// public ContainsKey(key: string): boolean {
// return this.items.hasOwnProperty(key);
// }
// public Count(): number {
// return this.count;
// }
// public Add(key: string, value: T) {
// if (!this.ContainsKey(key)) {
// this.count++;
// }
// this.items[key] = value;
// }
// public Remove(key: string): T {
// var val = this.items[key];
// if (this.ContainsKey(key)) {
// delete this.items[key];
// this.count--;
// }
// return val;
// }
// public RemoveAll() {
// this.items = {};
// this.count = 0;
// }
// public Item(key: string): T {
// return this.items[key];
// }
// public Keys(): string[] {
// var keySet: string[] = [];
// for (var prop in this.items) {
// if (this.items.hasOwnProperty(prop)) {
// keySet.push(prop);
// }
// }
// return keySet;
// }
// public Values(): T[] {
// var values: T[] = [];
// for (var prop in this.items) {
// if (this.items.hasOwnProperty(prop)) {
// values.push(this.items[prop]);
// }
// }
// return values;
// }
// }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGVwcGVyaS1saWIvc3JjL2NvcmUvY29tbW9uL21vZGVsL3V0aWxpdGllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sSUFBSTtJQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBVztRQUMzQixJQUFJLEdBQUcsR0FBVyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDbkI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxNQUFNLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzNDLFFBQVEsQ0FBQyxFQUFFLENBQUM7YUFDWixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLDhCQUE4QjtRQUM5QiwwRUFBMEU7UUFDMUUsd0NBQXdDO1FBQ3hDLGlEQUFpRDtRQUNqRCw2QkFBNkI7UUFDN0IsTUFBTTtRQUVOLHVEQUF1RDtRQUN2RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXO1lBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssV0FBVztZQUN0QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxXQUFXLEVBQ3hEO1lBQ0UsTUFBTSxHQUFHLEdBQWdCLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRztnQkFDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RjthQUFNLEVBQUUsa0NBQWtDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRztnQkFDdEYsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMvRTtJQUNMLENBQUM7Q0FDSjtBQUdELHlDQUF5QztBQUN6QyxrQ0FBa0M7QUFDbEMseUNBQXlDO0FBQ3pDLHVCQUF1QjtBQUN2Qiw0QkFBNEI7QUFDNUIsd0JBQXdCO0FBQ3hCLDhCQUE4QjtBQUM5QixtQkFBbUI7QUFDbkIscUJBQXFCO0FBQ3JCLElBQUk7QUFFSixtRUFBbUU7QUFDbkUsa0RBQWtEO0FBQ2xELGlDQUFpQztBQUVqQyxvREFBb0Q7QUFDcEQsMkJBQTJCO0FBQzNCLDBCQUEwQjtBQUMxQiwyQkFBMkI7QUFFM0IsaURBQWlEO0FBQ2pELDJEQUEyRDtBQUMzRCwwREFBMEQ7QUFDMUQsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixRQUFRO0FBRVIsaURBQWlEO0FBQ2pELGlEQUFpRDtBQUNqRCxRQUFRO0FBRVIsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QixRQUFRO0FBRVIsMENBQTBDO0FBQzFDLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFDNUIsWUFBWTtBQUVaLG1DQUFtQztBQUNuQyxRQUFRO0FBRVIsc0NBQXNDO0FBQ3RDLHFDQUFxQztBQUVyQyx1Q0FBdUM7QUFDdkMsc0NBQXNDO0FBQ3RDLDRCQUE0QjtBQUM1QixZQUFZO0FBRVosc0JBQXNCO0FBQ3RCLFFBQVE7QUFFUiwyQkFBMkI7QUFDM0IsMkJBQTJCO0FBQzNCLDBCQUEwQjtBQUMxQixRQUFRO0FBRVIsb0NBQW9DO0FBQ3BDLGtDQUFrQztBQUNsQyxRQUFRO0FBRVIsZ0NBQWdDO0FBQ2hDLHFDQUFxQztBQUVyQyx5Q0FBeUM7QUFDekMscURBQXFEO0FBQ3JELHFDQUFxQztBQUNyQyxnQkFBZ0I7QUFDaEIsWUFBWTtBQUVaLHlCQUF5QjtBQUN6QixRQUFRO0FBRVIsNkJBQTZCO0FBQzdCLGdDQUFnQztBQUVoQyx5Q0FBeUM7QUFDekMscURBQXFEO0FBQ3JELGlEQUFpRDtBQUNqRCxnQkFBZ0I7QUFDaEIsWUFBWTtBQUVaLHlCQUF5QjtBQUN6QixRQUFRO0FBQ1IsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgY2xhc3MgR3VpZCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBwYWQ0KG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmV0OiBzdHJpbmcgPSBudW0udG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIHdoaWxlIChyZXQubGVuZ3RoIDwgNCkge1xyXG4gICAgICAgICAgICByZXQgPSAnMCcgKyByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmFuZG9tNCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwKVxyXG4gICAgICAgICAgICAudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgICAgIC5zdWJzdHJpbmcoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBuZXdHdWlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYnVpbGQgZm9yIC1wcm9kXHJcbiAgICAgICAgLy8gcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGMpID0+IHtcclxuICAgICAgICAvLyAgICAgY29uc3QgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDA7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgIC8vIElmIHdlIGhhdmUgYSBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUFJORywgdXNlIHRoYXRcclxuICAgICAgICBpZiAodHlwZW9mICh3aW5kb3cpICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgKHdpbmRvdy5jcnlwdG8pICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgKHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgYnVmOiBVaW50MTZBcnJheSA9IG5ldyBVaW50MTZBcnJheSg4KTtcclxuICAgICAgICAgICAgd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYnVmKTtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhZDQoYnVmWzBdKSArIHRoaXMucGFkNChidWZbMV0pICsgJy0nICsgdGhpcy5wYWQ0KGJ1ZlsyXSkgKyAnLScgKyB0aGlzLnBhZDQoYnVmWzNdKSArICctJyArXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhZDQoYnVmWzRdKSArICctJyArIHRoaXMucGFkNChidWZbNV0pICsgdGhpcy5wYWQ0KGJ1Zls2XSkgKyB0aGlzLnBhZDQoYnVmWzddKSk7XHJcbiAgICAgICAgfSBlbHNlIHsgLy8gT3RoZXJ3aXNlLCBqdXN0IHVzZSBNYXRoLnJhbmRvbVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5kb200KCkgKyB0aGlzLnJhbmRvbTQoKSArICctJyArIHRoaXMucmFuZG9tNCgpICsgJy0nICsgdGhpcy5yYW5kb200KCkgKyAnLScgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYW5kb200KCkgKyAnLScgKyB0aGlzLnJhbmRvbTQoKSArIHRoaXMucmFuZG9tNCgpICsgdGhpcy5yYW5kb200KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8gZXhwb3J0IGludGVyZmFjZSBJS2V5ZWRDb2xsZWN0aW9uPFQ+IHtcclxuLy8gICAgIEFkZChrZXk6IHN0cmluZywgdmFsdWU6IFQpO1xyXG4vLyAgICAgQ29udGFpbnNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xyXG4vLyAgICAgQ291bnQoKTogbnVtYmVyO1xyXG4vLyAgICAgSXRlbShrZXk6IHN0cmluZyk6IFQ7XHJcbi8vICAgICBLZXlzKCk6IHN0cmluZ1tdO1xyXG4vLyAgICAgUmVtb3ZlKGtleTogc3RyaW5nKTogVDtcclxuLy8gICAgIFJlbW92ZUFsbCgpO1xyXG4vLyAgICAgVmFsdWVzKCk6IFRbXTtcclxuLy8gfVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIEtleWVkQ29sbGVjdGlvbjxUPiBpbXBsZW1lbnRzIElLZXllZENvbGxlY3Rpb248VD4ge1xyXG4vLyAgICAgcHJpdmF0ZSBpdGVtczogeyBbaW5kZXg6IHN0cmluZ106IFQgfSA9IHt9O1xyXG4vLyAgICAgcHJpdmF0ZSBjb3VudDogbnVtYmVyID0gMDtcclxuXHJcbi8vICAgICBpbml0RnJvbU9iaihjb2xsZWN0aW9uOiBLZXllZENvbGxlY3Rpb248VD4pIHtcclxuLy8gICAgICAgICB0aGlzLml0ZW1zID0ge307XHJcbi8vICAgICAgICAgdGhpcy5jb3VudCA9IDA7XHJcbi8vICAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xyXG5cclxuLy8gICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29sbGVjdGlvbi5pdGVtcykge1xyXG4vLyAgICAgICAgICAgICBpZiAoY29sbGVjdGlvbi5pdGVtcy5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4vLyAgICAgICAgICAgICAgICAgdGhpcy5BZGQocHJvcCwgY29sbGVjdGlvbi5pdGVtc1twcm9wXSk7XHJcbi8vICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICB9XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgcHVibGljIENvbnRhaW5zS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbi8vICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuaGFzT3duUHJvcGVydHkoa2V5KTtcclxuLy8gICAgIH1cclxuXHJcbi8vICAgICBwdWJsaWMgQ291bnQoKTogbnVtYmVyIHtcclxuLy8gICAgICAgICByZXR1cm4gdGhpcy5jb3VudDtcclxuLy8gICAgIH1cclxuXHJcbi8vICAgICBwdWJsaWMgQWRkKGtleTogc3RyaW5nLCB2YWx1ZTogVCkge1xyXG4vLyAgICAgICAgIGlmICghdGhpcy5Db250YWluc0tleShrZXkpKSB7XHJcbi8vICAgICAgICAgICAgIHRoaXMuY291bnQrKztcclxuLy8gICAgICAgICB9XHJcblxyXG4vLyAgICAgICAgIHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xyXG4vLyAgICAgfVxyXG5cclxuLy8gICAgIHB1YmxpYyBSZW1vdmUoa2V5OiBzdHJpbmcpOiBUIHtcclxuLy8gICAgICAgICB2YXIgdmFsID0gdGhpcy5pdGVtc1trZXldO1xyXG5cclxuLy8gICAgICAgICBpZiAodGhpcy5Db250YWluc0tleShrZXkpKSB7XHJcbi8vICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLml0ZW1zW2tleV07XHJcbi8vICAgICAgICAgICAgIHRoaXMuY291bnQtLTtcclxuLy8gICAgICAgICB9XHJcblxyXG4vLyAgICAgICAgIHJldHVybiB2YWw7XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgcHVibGljIFJlbW92ZUFsbCgpIHtcclxuLy8gICAgICAgICB0aGlzLml0ZW1zID0ge307XHJcbi8vICAgICAgICAgdGhpcy5jb3VudCA9IDA7XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgcHVibGljIEl0ZW0oa2V5OiBzdHJpbmcpOiBUIHtcclxuLy8gICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1trZXldO1xyXG4vLyAgICAgfVxyXG5cclxuLy8gICAgIHB1YmxpYyBLZXlzKCk6IHN0cmluZ1tdIHtcclxuLy8gICAgICAgICB2YXIga2V5U2V0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuLy8gICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuaXRlbXMpIHtcclxuLy8gICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcclxuLy8gICAgICAgICAgICAgICAgIGtleVNldC5wdXNoKHByb3ApO1xyXG4vLyAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICByZXR1cm4ga2V5U2V0O1xyXG4vLyAgICAgfVxyXG5cclxuLy8gICAgIHB1YmxpYyBWYWx1ZXMoKTogVFtdIHtcclxuLy8gICAgICAgICB2YXIgdmFsdWVzOiBUW10gPSBbXTtcclxuXHJcbi8vICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLml0ZW1zKSB7XHJcbi8vICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmhhc093blByb3BlcnR5KHByb3ApKSB7XHJcbi8vICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLml0ZW1zW3Byb3BdKTtcclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuXHJcbi8vICAgICAgICAgcmV0dXJuIHZhbHVlcztcclxuLy8gICAgIH1cclxuLy8gfVxyXG4iXX0=