New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@meteor-it/utils

Package Overview
Dependencies
Maintainers
2
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@meteor-it/utils - npm Package Compare versions

Comparing version 1.3.17 to 1.3.19

84

index.js

@@ -1,8 +0,11 @@

import { Readable } from 'stream';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
// noinspection JSUnusedGlobalSymbols
export function createReadStream(object, options = {}) {
function createReadStream(object, options = {}) {
return new MultiStream(object, options);
}
exports.createReadStream = createReadStream;
// noinspection JSUnusedGlobalSymbols
export function readStreamToBuffer(stream, maxSize = 0) {
function readStreamToBuffer(stream, maxSize = 0) {
return new Promise((res, rej) => {

@@ -25,3 +28,4 @@ const bufs = [];

}
export class MultiStream extends Readable {
exports.readStreamToBuffer = readStreamToBuffer;
class MultiStream extends stream_1.Readable {
constructor(object, options = {}) {

@@ -40,6 +44,8 @@ super({

}
exports.MultiStream = MultiStream;
// hello, world => Hello, world!
export function firstUppercase(str) {
function firstUppercase(str) {
return str.substr(0, 1).toUpperCase() + str.substr(1);
}
exports.firstUppercase = firstUppercase;
/**

@@ -51,3 +57,3 @@ *

*/
export function objectEquals(x, y) {
function objectEquals(x, y) {
if (x === null || x === undefined || y === null || y === undefined) {

@@ -74,2 +80,3 @@ return x === y;

}
exports.objectEquals = objectEquals;
/**

@@ -80,3 +87,3 @@ * Flattens array

*/
export function flatten(array, result = []) {
function flatten(array, result = []) {
for (let i = 0; i < array.length; i++) {

@@ -93,2 +100,3 @@ const value = array[i];

}
exports.flatten = flatten;
/**

@@ -98,5 +106,6 @@ * @deprecated

*/
export function removeDuplicates(array) {
function removeDuplicates(array) {
return Array.from(new Set(array));
}
exports.removeDuplicates = removeDuplicates;
/**

@@ -107,3 +116,3 @@ * @deprecated

*/
export function mix(array1, array2) {
function mix(array1, array2) {
let out;

@@ -130,2 +139,3 @@ if (array1 instanceof Array) {

}
exports.mix = mix;
/**

@@ -135,3 +145,3 @@ * @deprecated

*/
export function createPrivateEnum(...values) {
function createPrivateEnum(...values) {
let returnObj = {};

@@ -142,2 +152,3 @@ values.map(value => value.toUpperCase());

}
exports.createPrivateEnum = createPrivateEnum;
/**

@@ -151,5 +162,6 @@ * @deprecated

// noinspection JSUnusedGlobalSymbols
export function fixLength(string, length, insertPre = false, symbol = ' ') {
function fixLength(string, length, insertPre = false, symbol = ' ') {
return insertPre ? string.padStart(length, symbol) : string.padEnd(length, symbol);
}
exports.fixLength = fixLength;
// noinspection JSUnusedGlobalSymbols

@@ -161,3 +173,3 @@ /**

*/
export function objectMap(object, cb) {
function objectMap(object, cb) {
let ret = [];

@@ -170,2 +182,3 @@ let keys = Object.keys(object);

}
exports.objectMap = objectMap;
// noinspection JSUnusedGlobalSymbols

@@ -177,3 +190,3 @@ /**

*/
export function arrayKVObject(keys, values) {
function arrayKVObject(keys, values) {
let len = keys.length;

@@ -187,3 +200,4 @@ if (len !== values.length)

}
export function sleep(time) {
exports.arrayKVObject = arrayKVObject;
function sleep(time) {
return new Promise((res) => {

@@ -193,2 +207,3 @@ setTimeout(res, time);

}
exports.sleep = sleep;
// noinspection JSUnusedGlobalSymbols

@@ -201,3 +216,3 @@ /**

*/
export function asyncEach(iterable, cb) {
function asyncEach(iterable, cb) {
let waitings = [];

@@ -209,2 +224,3 @@ iterable.forEach(iter => {

}
exports.asyncEach = asyncEach;
// noinspection JSUnusedGlobalSymbols

@@ -216,3 +232,3 @@ /**

*/
export function cb2promise(cbFunction) {
function cb2promise(cbFunction) {
return (...args) => {

@@ -228,4 +244,5 @@ return new Promise((res, rej) => {

}
exports.cb2promise = cb2promise;
// noinspection JSUnusedGlobalSymbols
export function hashCode(s) {
function hashCode(s) {
let hash = 0;

@@ -241,4 +258,5 @@ if (s.length === 0)

}
exports.hashCode = hashCode;
// noinspection JSUnusedGlobalSymbols
export function djb2Code(str) {
function djb2Code(str) {
let hash = 5381;

@@ -251,4 +269,5 @@ for (let i = 0; i < str.length; i++) {

}
exports.djb2Code = djb2Code;
// noinspection JSUnusedGlobalSymbols
export function sdbmCode(str) {
function sdbmCode(str) {
let hash = 0;

@@ -261,4 +280,5 @@ for (let i = 0; i < str.length; i++) {

}
exports.sdbmCode = sdbmCode;
// noinspection JSUnusedGlobalSymbols
export function loseCode(str) {
function loseCode(str) {
let hash = 0;

@@ -270,18 +290,16 @@ for (let i = 0; i < str.length; i++) {

}
exports.loseCode = loseCode;
// noinspection JSUnusedGlobalSymbols
export function encodeHtmlSpecials(str) {
let i = str.length;
let aRet = [];
while (i--) {
let iC = str[i].charCodeAt(0);
if (iC < 65 || iC > 127 || (iC > 90 && iC < 97)) {
aRet[i] = '&#' + iC + ';';
}
else {
aRet[i] = str[i];
}
function encodeHtmlSpecials(str) {
let ret = '';
for (let i = 0; i < str.length; i++) {
if (str.codePointAt(i) > 127)
ret += `&#${str.codePointAt(i)};`;
else
ret += str.charAt(i);
}
return aRet.join('');
return ret;
}
exports.encodeHtmlSpecials = encodeHtmlSpecials;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWxDLHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ3pELE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxxQ0FBcUM7QUFDckMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWdCLEVBQUUsVUFBa0IsQ0FBQztJQUNwRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzVCLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNsQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRTtnQkFDM0IsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNiLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMs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QUUsR0FBRyxHQUFHLENBQUM7U0FDN0I7YUFBTTtZQUNILElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEI7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6QixDQUFDIiwiZmlsZSI6InhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC91dGlscy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWRhYmxlIH0gZnJvbSAnc3RyZWFtJztcblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlYWRTdHJlYW0ob2JqZWN0OiBCdWZmZXIsIG9wdGlvbnMgPSB7fSk6IE11bHRpU3RyZWFtIHtcbiAgICByZXR1cm4gbmV3IE11bHRpU3RyZWFtKG9iamVjdCwgb3B0aW9ucyk7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiByZWFkU3RyZWFtVG9CdWZmZXIoc3RyZWFtOiBSZWFkYWJsZSwgbWF4U2l6ZTogbnVtYmVyID0gMCk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICBjb25zdCBidWZzOiBhbnkgPSBbXTtcbiAgICAgICAgbGV0IHNpemUgPSAwO1xuICAgICAgICBzdHJlYW0ub24oJ2RhdGEnLCBkID0+IHtcbiAgICAgICAgICAgIGlmIChzaXplICsgZC5sZW5ndGggPiBtYXhTaXplKSB7XG4gICAgICAgICAgICAgICAgcmVqKG5ldyBFcnJvcignTWF4IGJ1ZmZlciBzaXplIGV4Y2VlZGVkJykpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZnMucHVzaChkKTtcbiAgICAgICAgICAgIHNpemUgKz0gZC5sZW5ndGg7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIHJlcyhCdWZmZXIuY29uY2F0KGJ1ZnMpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0cmVhbS5vbignZXJyb3InLCByZWopO1xuICAgIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNdWx0aVN0cmVhbU9wdGlvbnMge1xuICAgIGhpZ2hXYXRlck1hcms/OiBudW1iZXI7XG4gICAgZW5jb2Rpbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aVN0cmVhbSBleHRlbmRzIFJlYWRhYmxlIHtcbiAgICBwcml2YXRlIG9iamVjdDogQnVmZmVyIHwgbnVsbDtcbiAgICBjb25zdHJ1Y3RvcihvYmplY3Q6IEJ1ZmZlciwgb3B0aW9uczogSU11bHRpU3RyZWFtT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGhpZ2hXYXRlck1hcms6IG9wdGlvbnMuaGlnaFdhdGVyTWFyayxcbiAgICAgICAgICAgIGVuY29kaW5nOiBvcHRpb25zLmVuY29kaW5nXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICB9XG5cbiAgICAvLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4gICAgX3JlYWQoKSB7XG4gICAgICAgIHRoaXMucHVzaCh0aGlzLm9iamVjdCk7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gbnVsbDtcbiAgICB9XG59XG5cblxuLy8gaGVsbG8sIHdvcmxkID0+IEhlbGxvLCB3b3JsZCFcbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFVwcGVyY2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHIoMSk7XG59XG5cbi8qKlxuICpcbiAqIEBkZXByZWNhdGVkIEV4dHJlbWFsbHkgc2xvdyBvbiBQcm94eS9nZXR0ZXJzXG4gKiBAcGFyYW0geFxuICogQHBhcmFtIHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdEVxdWFscyh4OiBhbnksIHk6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh4ID09PSBudWxsIHx8IHggPT09IHVuZGVmaW5lZCB8fCB5ID09PSBudWxsIHx8IHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geCA9PT0geTtcbiAgICB9XG4gICAgaWYgKHguY29uc3RydWN0b3IgIT09IHkuY29uc3RydWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoeCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiB4ID09PSB5O1xuICAgIH1cbiAgICBpZiAoeCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4geCA9PT0geTtcbiAgICB9XG4gICAgaWYgKHggPT09IHkgfHwgeC52YWx1ZU9mKCkgPT09IHkudmFsdWVPZigpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh4KSAmJiB4Lmxlbmd0aCAhPT0geS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBwID0gT2JqZWN0LmtleXMoeCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHkpLmV2ZXJ5KGkgPT4gcC5pbmRleE9mKGkpICE9PSAtMSkgJiYgcC5ldmVyeShpID0+IG9iamVjdEVxdWFscyh4W2ldLCB5W2ldKSk7XG59XG5cbi8qKlxuICogRmxhdHRlbnMgYXJyYXlcbiAqIEBwYXJhbSBhcnJheVxuICogQHBhcmFtIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbihhcnJheTogYW55W10sIHJlc3VsdDogYW55W10gPSBbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV07XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBmbGF0dGVuKHZhbHVlLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQHBhcmFtIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVzPFQ+KGFycmF5OiBUW10pOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYXJyYXkpKTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQHBhcmFtIGFycmF5MVxuICogQHBhcmFtIGFycmF5MlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWl4KGFycmF5MTogYW55W10gfCBPYmplY3QsIGFycmF5MjogYW55W10gfCBPYmplY3QpOiBhbnkge1xuICAgIGxldCBvdXQ6IGFueTtcbiAgICBpZiAoYXJyYXkxIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgb3V0ID0gW107XG4gICAgICAgIGZvciAobGV0IGluZGV4IGluIGFycmF5MSkge1xuICAgICAgICAgICAgb3V0LnB1c2goW2FycmF5MVtpbmRleF0sIChhcnJheTIgYXMgYW55KVtpbmRleF1dKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gYXJyYXkxKSB7XG4gICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXG4gICAgICAgICAgICBvdXRba2V5XSA9IChhcnJheTEgYXMgYW55KVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGtleSBpbiBhcnJheTIpIHtcbiAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcbiAgICAgICAgICAgIG91dFtrZXldID0gKGFycmF5MiBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByaXZhdGVFbnVtKC4uLnZhbHVlczogc3RyaW5nW10pOiB7IFtrZXk6IHN0cmluZ106IFN5bWJvbCB9IHtcbiAgICBsZXQgcmV0dXJuT2JqOiBhbnkgPSB7fTtcbiAgICB2YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnRvVXBwZXJDYXNlKCkpO1xuICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHJldHVybk9ialt2YWx1ZV0gPSBTeW1ib2wodmFsdWUpKTtcbiAgICByZXR1cm4gcmV0dXJuT2JqO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gc3RyaW5nXG4gKiBAcGFyYW0gbGVuZ3RoXG4gKiBAcGFyYW0gaW5zZXJ0UHJlXG4gKiBAcGFyYW0gc3ltYm9sXG4gKi9cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBmaXhMZW5ndGgoc3RyaW5nOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyLCBpbnNlcnRQcmUgPSBmYWxzZSwgc3ltYm9sID0gJyAnKSB7XG4gICAgcmV0dXJuIGluc2VydFByZSA/IHN0cmluZy5wYWRTdGFydChsZW5ndGgsIHN5bWJvbCkgOiBzdHJpbmcucGFkRW5kKGxlbmd0aCwgc3ltYm9sKTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbiAgICBpbnRlcmZhY2UgT2JqZWN0Q29uc3RydWN0b3Ige1xuICAgICAgICB2YWx1ZXMob2JqZWN0OiBhbnkpOiBhbnk7XG4gICAgfVxufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIEBkZXByZWNhdGVkIE9iamVjdC5lbnRyeXNcbiAqIEBwYXJhbSBvYmplY3RcbiAqIEBwYXJhbSBjYlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0TWFwKG9iamVjdDogYW55LCBjYjogKGE6IGFueSwgYjogYW55LCBjOiBhbnkpID0+IGFueSk6IGFueSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICBsZXQgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhvYmplY3QpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKylcbiAgICAgICAgcmV0LnB1c2goY2IodmFsdWVzW2ldLCBrZXlzW2ldLCBvYmplY3QpKTtcbiAgICByZXR1cm4gcmV0O1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIEBkZXByZWNhdGVkIE9iamVjdC5lbnRyeXNcbiAqIEBwYXJhbSBrZXlzXG4gKiBAcGFyYW0gdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUtWT2JqZWN0KGtleXM6IHN0cmluZ1tdLCB2YWx1ZXM6IGFueVtdKTogYW55IHtcbiAgICBsZXQgbGVuID0ga2V5cy5sZW5ndGg7XG4gICAgaWYgKGxlbiAhPT0gdmFsdWVzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb3RoIGFycmF5cyBtdXN0IGhhdmUgc2FtZSBsZW5ndGghJyk7XG4gICAgbGV0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgICAgcmVzdWx0W2tleXNbaV1dID0gdmFsdWVzW2ldO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gc2xlZXAodGltZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChyZXMsIHRpbWUpO1xuICAgIH0pO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIExpa2UgaXRlcmFibGUubWFwKGNiKSxcbiAqIGJ1dCBjYiBjYW4gYmUgYXN5bmNcbiAqIEBwYXJhbSBpdGVyYWJsZSBBcnJheSB0byBwcm9jZXNzXG4gKiBAcGFyYW0gY2IgRnVuY3Rpb24gdG8gZG8gd2l0aCBlYWNoIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jRWFjaDxULCBSPihpdGVyYWJsZTogVFtdLCBjYjogKHY6IFQpID0+IFByb21pc2U8Uj4pOiBSW10ge1xuICAgIGxldCB3YWl0aW5nczogYW55ID0gW107XG4gICAgaXRlcmFibGUuZm9yRWFjaChpdGVyID0+IHtcbiAgICAgICAgd2FpdGluZ3MucHVzaChjYihpdGVyKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIDxhbnk+UHJvbWlzZS5hbGwod2FpdGluZ3MpO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIENvbnZlcnQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXN5bmNcbiAqIEBkZXByZWNhdGVkIEV4aXN0c3QgaW4gbm9kZSB1dGlsc1xuICogQHBhcmFtIGNiRnVuY3Rpb24gRnVuY3Rpb24gdG8gY29udmVydFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2IycHJvbWlzZShjYkZ1bmN0aW9uOiBhbnkpOiAoLi4uZDogYW55W10pID0+IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgICAgIGNiRnVuY3Rpb24oLi4uYXJncywgKGVycjogRXJyb3IsIHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlaihlcnIpO1xuICAgICAgICAgICAgICAgIHJlcyhyZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBoYXNoQ29kZShzOiBzdHJpbmcpIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgaWYgKHMubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXJhY3RlciA9IHMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2gpICsgY2hhcmFjdGVyO1xuICAgICAgICBoYXNoID0gaGFzaCAmIGhhc2g7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGRqYjJDb2RlKHN0cjogc3RyaW5nKSB7XG4gICAgbGV0IGhhc2ggPSA1MzgxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBjaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgKyBoYXNoKSArIGNoYXI7IC8qIGhhc2ggKiAzMyArIGMgKi9cbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG59XG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gc2RibUNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9IGNoYXIgKyAoaGFzaCA8PCA2KSArIChoYXNoIDw8IDE2KSAtIGhhc2g7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGxvc2VDb2RlKHN0cjogc3RyaW5nKSB7XG4gICAgbGV0IGhhc2ggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGhhc2ggKz0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlSHRtbFNwZWNpYWxzKHN0cjogc3RyaW5nKSB7XG4gICAgbGV0IGkgPSBzdHIubGVuZ3RoO1xuICAgIGxldCBhUmV0ID0gW107XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIGxldCBpQyA9IHN0cltpXS5jaGFyQ29kZUF0KDApO1xuICAgICAgICBpZiAoaUMgPCA2NSB8fCBpQyA+IDEyNyB8fCAoaUMgPiA5MCAmJiBpQyA8IDk3KSkge1xuICAgICAgICAgICAgYVJldFtpXSA9ICcmIycgKyBpQyArICc7JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFSZXRbaV0gPSBzdHJbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFSZXQuam9pbignJyk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFrQztBQUVsQyxxQ0FBcUM7QUFDckMsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ3pELE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFGRCw0Q0FFQztBQUVELHFDQUFxQztBQUNyQyxTQUFnQixrQkFBa0IsQ0FBQyxNQUFnQixFQUFFLFVBQWtCLENBQUM7SUFDcEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM1QixNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUU7Z0JBQzNCLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNsQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBakJELGdE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LENBQUMsQ0FBQyxHQUFHLENBQUM7O1lBRWxDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBVEQsZ0RBU0MiLCJmaWxlIjoieHByZXNzL25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L3V0aWxzL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nO1xuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVhZFN0cmVhbShvYmplY3Q6IEJ1ZmZlciwgb3B0aW9ucyA9IHt9KTogTXVsdGlTdHJlYW0ge1xuICAgIHJldHVybiBuZXcgTXVsdGlTdHJlYW0ob2JqZWN0LCBvcHRpb25zKTtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRTdHJlYW1Ub0J1ZmZlcihzdHJlYW06IFJlYWRhYmxlLCBtYXhTaXplOiBudW1iZXIgPSAwKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgIGNvbnN0IGJ1ZnM6IGFueSA9IFtdO1xuICAgICAgICBsZXQgc2l6ZSA9IDA7XG4gICAgICAgIHN0cmVhbS5vbignZGF0YScsIGQgPT4ge1xuICAgICAgICAgICAgaWYgKHNpemUgKyBkLmxlbmd0aCA+IG1heFNpemUpIHtcbiAgICAgICAgICAgICAgICByZWoobmV3IEVycm9yKCdNYXggYnVmZmVyIHNpemUgZXhjZWVkZWQnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnVmcy5wdXNoKGQpO1xuICAgICAgICAgICAgc2l6ZSArPSBkLmxlbmd0aDtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVzKEJ1ZmZlci5jb25jYXQoYnVmcykpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3RyZWFtLm9uKCdlcnJvcicsIHJlaik7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpU3RyZWFtT3B0aW9ucyB7XG4gICAgaGlnaFdhdGVyTWFyaz86IG51bWJlcjtcbiAgICBlbmNvZGluZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE11bHRpU3RyZWFtIGV4dGVuZHMgUmVhZGFibGUge1xuICAgIHByaXZhdGUgb2JqZWN0OiBCdWZmZXIgfCBudWxsO1xuICAgIGNvbnN0cnVjdG9yKG9iamVjdDogQnVmZmVyLCBvcHRpb25zOiBJTXVsdGlTdHJlYW1PcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaGlnaFdhdGVyTWFyazogb3B0aW9ucy5oaWdoV2F0ZXJNYXJrLFxuICAgICAgICAgICAgZW5jb2Rpbmc6IG9wdGlvbnMuZW5jb2RpbmdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgIH1cblxuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbiAgICBfcmVhZCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0KTtcbiAgICAgICAgdGhpcy5vYmplY3QgPSBudWxsO1xuICAgIH1cbn1cblxuXG4vLyBoZWxsbywgd29ybGQgPT4gSGVsbG8sIHdvcmxkIVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0VXBwZXJjYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cigxKTtcbn1cblxuLyoqXG4gKlxuICogQGRlcHJlY2F0ZWQgRXh0cmVtYWxseSBzbG93IG9uIFByb3h5L2dldHRlcnNcbiAqIEBwYXJhbSB4XG4gKiBAcGFyYW0geVxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0RXF1YWxzKHg6IGFueSwgeTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkIHx8IHkgPT09IG51bGwgfHwgeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB4ID09PSB5O1xuICAgIH1cbiAgICBpZiAoeC5jb25zdHJ1Y3RvciAhPT0geS5jb25zdHJ1Y3Rvcikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh4IGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIHggPT09IHk7XG4gICAgfVxuICAgIGlmICh4IGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJldHVybiB4ID09PSB5O1xuICAgIH1cbiAgICBpZiAoeCA9PT0geSB8fCB4LnZhbHVlT2YoKSA9PT0geS52YWx1ZU9mKCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHgpICYmIHgubGVuZ3RoICE9PSB5Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IHAgPSBPYmplY3Qua2V5cyh4KTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoeSkuZXZlcnkoaSA9PiBwLmluZGV4T2YoaSkgIT09IC0xKSAmJiBwLmV2ZXJ5KGkgPT4gb2JqZWN0RXF1YWxzKHhbaV0sIHlbaV0pKTtcbn1cblxuLyoqXG4gKiBGbGF0dGVucyBhcnJheVxuICogQHBhcmFtIGFycmF5XG4gKiBAcGFyYW0gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGFycmF5OiBhbnlbXSwgcmVzdWx0OiBhbnlbXSA9IFtdKTogYW55W10ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZsYXR0ZW4odmFsdWUsIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZXM8VD4oYXJyYXk6IFRbXSk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChhcnJheSkpO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gYXJyYXkxXG4gKiBAcGFyYW0gYXJyYXkyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXgoYXJyYXkxOiBhbnlbXSB8IE9iamVjdCwgYXJyYXkyOiBhbnlbXSB8IE9iamVjdCk6IGFueSB7XG4gICAgbGV0IG91dDogYW55O1xuICAgIGlmIChhcnJheTEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggaW4gYXJyYXkxKSB7XG4gICAgICAgICAgICBvdXQucHVzaChbYXJyYXkxW2luZGV4XSwgKGFycmF5MiBhcyBhbnkpW2luZGV4XV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ID0ge307XG4gICAgICAgIGZvciAobGV0IGtleSBpbiBhcnJheTEpIHtcbiAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcbiAgICAgICAgICAgIG91dFtrZXldID0gKGFycmF5MSBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGFycmF5Mikge1xuICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxuICAgICAgICAgICAgb3V0W2tleV0gPSAoYXJyYXkyIGFzIGFueSlba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQHBhcmFtIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJpdmF0ZUVudW0oLi4udmFsdWVzOiBzdHJpbmdbXSk6IHsgW2tleTogc3RyaW5nXTogU3ltYm9sIH0ge1xuICAgIGxldCByZXR1cm5PYmo6IGFueSA9IHt9O1xuICAgIHZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUudG9VcHBlckNhc2UoKSk7XG4gICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gcmV0dXJuT2JqW3ZhbHVlXSA9IFN5bWJvbCh2YWx1ZSkpO1xuICAgIHJldHVybiByZXR1cm5PYmo7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSBzdHJpbmdcbiAqIEBwYXJhbSBsZW5ndGhcbiAqIEBwYXJhbSBpbnNlcnRQcmVcbiAqIEBwYXJhbSBzeW1ib2xcbiAqL1xuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGZpeExlbmd0aChzdHJpbmc6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIsIGluc2VydFByZSA9IGZhbHNlLCBzeW1ib2wgPSAnICcpIHtcbiAgICByZXR1cm4gaW5zZXJ0UHJlID8gc3RyaW5nLnBhZFN0YXJ0KGxlbmd0aCwgc3ltYm9sKSA6IHN0cmluZy5wYWRFbmQobGVuZ3RoLCBzeW1ib2wpO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuICAgIGludGVyZmFjZSBPYmplY3RDb25zdHJ1Y3RvciB7XG4gICAgICAgIHZhbHVlcyhvYmplY3Q6IGFueSk6IGFueTtcbiAgICB9XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogQGRlcHJlY2F0ZWQgT2JqZWN0LmVudHJ5c1xuICogQHBhcmFtIG9iamVjdFxuICogQHBhcmFtIGNiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RNYXAob2JqZWN0OiBhbnksIGNiOiAoYTogYW55LCBiOiBhbnksIGM6IGFueSkgPT4gYW55KTogYW55IHtcbiAgICBsZXQgcmV0ID0gW107XG4gICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuICAgIGxldCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKG9iamVjdCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKVxuICAgICAgICByZXQucHVzaChjYih2YWx1ZXNbaV0sIGtleXNbaV0sIG9iamVjdCkpO1xuICAgIHJldHVybiByZXQ7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogQGRlcHJlY2F0ZWQgT2JqZWN0LmVudHJ5c1xuICogQHBhcmFtIGtleXNcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5S1ZPYmplY3Qoa2V5czogc3RyaW5nW10sIHZhbHVlczogYW55W10pOiBhbnkge1xuICAgIGxldCBsZW4gPSBrZXlzLmxlbmd0aDtcbiAgICBpZiAobGVuICE9PSB2YWx1ZXMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JvdGggYXJyYXlzIG11c3QgaGF2ZSBzYW1lIGxlbmd0aCEnKTtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKVxuICAgICAgICByZXN1bHRba2V5c1tpXV0gPSB2YWx1ZXNbaV07XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KHJlcywgdGltZSk7XG4gICAgfSk7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogTGlrZSBpdGVyYWJsZS5tYXAoY2IpLFxuICogYnV0IGNiIGNhbiBiZSBhc3luY1xuICogQHBhcmFtIGl0ZXJhYmxlIEFycmF5IHRvIHByb2Nlc3NcbiAqIEBwYXJhbSBjYiBGdW5jdGlvbiB0byBkbyB3aXRoIGVhY2ggZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNFYWNoPFQsIFI+KGl0ZXJhYmxlOiBUW10sIGNiOiAodjogVCkgPT4gUHJvbWlzZTxSPik6IFJbXSB7XG4gICAgbGV0IHdhaXRpbmdzOiBhbnkgPSBbXTtcbiAgICBpdGVyYWJsZS5mb3JFYWNoKGl0ZXIgPT4ge1xuICAgICAgICB3YWl0aW5ncy5wdXNoKGNiKGl0ZXIpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gPGFueT5Qcm9taXNlLmFsbCh3YWl0aW5ncyk7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogQ29udmVydCBjYWxsYmFjayBmdW5jdGlvbiB0byBhc3luY1xuICogQGRlcHJlY2F0ZWQgRXhpc3RzdCBpbiBub2RlIHV0aWxzXG4gKiBAcGFyYW0gY2JGdW5jdGlvbiBGdW5jdGlvbiB0byBjb252ZXJ0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYjJwcm9taXNlKGNiRnVuY3Rpb246IGFueSk6ICguLi5kOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICAgICAgY2JGdW5jdGlvbiguLi5hcmdzLCAoZXJyOiBFcnJvciwgcmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqKGVycik7XG4gICAgICAgICAgICAgICAgcmVzKHJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hDb2RlKHM6IHN0cmluZykge1xuICAgIGxldCBoYXNoID0gMDtcbiAgICBpZiAocy5sZW5ndGggPT09IDApIHJldHVybiBoYXNoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY2hhcmFjdGVyID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaGFyYWN0ZXI7XG4gICAgICAgIGhhc2ggPSBoYXNoICYgaGFzaDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG59XG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gZGpiMkNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2gpICsgY2hhcjsgLyogaGFzaCAqIDMzICsgYyAqL1xuICAgIH1cbiAgICByZXR1cm4gaGFzaDtcbn1cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBzZGJtQ29kZShzdHI6IHN0cmluZykge1xuICAgIGxldCBoYXNoID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBoYXNoID0gY2hhciArIChoYXNoIDw8IDYpICsgKGhhc2ggPDwgMTYpIC0gaGFzaDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG59XG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gbG9zZUNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaGFzaCArPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVIdG1sU3BlY2lhbHMoc3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgcmV0ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0ci5jb2RlUG9pbnRBdChpKSA+IDEyNylcbiAgICAgICAgICAgIHJldCArPSBgJiMke3N0ci5jb2RlUG9pbnRBdChpKX07YDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0ICs9IHN0ci5jaGFyQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59XG4iXX0=

@@ -279,14 +279,10 @@ import { Readable } from 'stream';

export function encodeHtmlSpecials(str: string) {
let i = str.length;
let aRet = [];
while (i--) {
let iC = str[i].charCodeAt(0);
if (iC < 65 || iC > 127 || (iC > 90 && iC < 97)) {
aRet[i] = '&#' + iC + ';';
} else {
aRet[i] = str[i];
}
let ret = '';
for (let i = 0; i < str.length; i++) {
if (str.codePointAt(i) > 127)
ret += `&#${str.codePointAt(i)};`;
else
ret += str.charAt(i);
}
return aRet.join('');
return ret;
}
{
"name": "@meteor-it/utils",
"version": "1.3.17",
"version": "1.3.19",
"description": "Many useful utils",

@@ -17,3 +17,3 @@ "module": "index.mjs",

},
"gitHead": "0e43397d67a69c7e26d790f7edadb1e75e547a7d"
"gitHead": "db571851dc50018d77598a58dda3d008c096c39d"
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc