UNPKG

@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
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=