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.9 to 1.3.10

stream.d.ts

13

index.d.ts

@@ -1,3 +0,1 @@

/// <reference types="node" />
import { Readable } from 'stream';
export declare function firstUppercase(str: string): string;

@@ -79,13 +77,2 @@ /**

export declare function encodeHtmlSpecials(str: string): string;
export declare function createReadStream(object: Buffer, options?: {}): MultiStream;
export declare function readStreamToBuffer(stream: Readable, maxSize?: number): Promise<Buffer>;
export interface IMultiStreamOptions {
highWaterMark?: number;
encoding?: string;
}
export declare class MultiStream extends Readable {
private object;
constructor(object: Buffer, options?: IMultiStreamOptions);
_read(): void;
}
//# sourceMappingURL=index.d.ts.map

43

index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
// hello, world => Hello, world!

@@ -243,43 +242,3 @@ function firstUppercase(str) {

exports.encodeHtmlSpecials = encodeHtmlSpecials;
// noinspection JSUnusedGlobalSymbols
function createReadStream(object, options = {}) {
return new MultiStream(object, options);
}
exports.createReadStream = createReadStream;
// noinspection JSUnusedGlobalSymbols
function readStreamToBuffer(stream, maxSize = 0) {
return new Promise((res, rej) => {
const bufs = [];
let size = 0;
stream.on('data', d => {
if (size + d.length > maxSize) {
rej(new Error('Max buffer size exceeded'));
return;
}
bufs.push(d);
size += d.length;
});
stream.on('end', () => {
res(Buffer.concat(bufs));
});
stream.on('error', rej);
});
}
exports.readStreamToBuffer = readStreamToBuffer;
class MultiStream extends stream_1.Readable {
constructor(object, options = {}) {
super({
highWaterMark: options.highWaterMark,
encoding: options.encoding
});
this.object = object;
}
// noinspection JSUnusedGlobalSymbols
_read() {
this.push(this.object);
this.object = null;
}
}
exports.MultiStream = MultiStream;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFnQztBQUVoQyxnQ0FBZ0M7QUFDaEMsU0FBZ0IsY0FBYyxDQUFDLEdBQVU7SUFDckMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFGRCx3Q0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLENBQUssRUFBRSxDQUFLO0lBQ3JDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNoRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFDRCxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUNqQyxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELElBQUksQ0FBQyxZQUFZLFFBQVEsRUFBRTtRQUN2QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFDRCxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUU7UUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2xCO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDeEMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxJQUFJLENBQUMs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QUssQ0FBQztZQUNGLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUNwQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxLQUFLO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztDQUNKO0FBZkQsa0NBZUMiLCJmaWxlIjoieHByZXNzL25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L3V0aWxzL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFkYWJsZX0gZnJvbSAnc3RyZWFtJztcblxuLy8gaGVsbG8sIHdvcmxkID0+IEhlbGxvLCB3b3JsZCFcbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFVwcGVyY2FzZShzdHI6c3RyaW5nKTpzdHJpbmcge1xuICAgIHJldHVybiBzdHIuc3Vic3RyKDAsMSkudG9VcHBlckNhc2UoKStzdHIuc3Vic3RyKDEpO1xufVxuXG4vKipcbiAqXG4gKiBAZGVwcmVjYXRlZCBFeHRyZW1hbGx5IHNsb3cgb24gUHJveHkvZ2V0dGVyc1xuICogQHBhcmFtIHhcbiAqIEBwYXJhbSB5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RFcXVhbHMoeDphbnksIHk6YW55KTpib29sZWFuIHtcbiAgICBpZiAoeCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQgfHwgeSA9PT0gbnVsbCB8fCB5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHggPT09IHk7XG4gICAgfVxuICAgIGlmICh4LmNvbnN0cnVjdG9yICE9PSB5LmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHggaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICByZXR1cm4geCA9PT0geTtcbiAgICB9XG4gICAgaWYgKHggaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuIHggPT09IHk7XG4gICAgfVxuICAgIGlmICh4ID09PSB5IHx8IHgudmFsdWVPZigpID09PSB5LnZhbHVlT2YoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoeCkgJiYgeC5sZW5ndGggIT09IHkubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgcCA9IE9iamVjdC5rZXlzKHgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh5KS5ldmVyeShpID0+IHAuaW5kZXhPZihpKSAhPT0gLTEpICYmIHAuZXZlcnkoaSA9PiBvYmplY3RFcXVhbHMoeFtpXSwgeVtpXSkpO1xufVxuXG4vKipcbiAqIEZsYXR0ZW5zIGFycmF5XG4gKiBAcGFyYW0gYXJyYXlcbiAqIEBwYXJhbSByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXk6YW55W10sIHJlc3VsdDphbnlbXSA9IFtdKTphbnlbXSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZmxhdHRlbih2YWx1ZSwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlczxUPihhcnJheTpUW10pOlRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChhcnJheSkpO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gYXJyYXkxXG4gKiBAcGFyYW0gYXJyYXkyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXgoYXJyYXkxOmFueVtdfE9iamVjdCwgYXJyYXkyOmFueVtdfE9iamVjdCk6YW55IHtcbiAgICBsZXQgb3V0OmFueTtcbiAgICBpZiAoYXJyYXkxIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgb3V0ID0gW107XG4gICAgICAgIGZvciAobGV0IGluZGV4IGluIGFycmF5MSkge1xuICAgICAgICAgICAgb3V0LnB1c2goW2FycmF5MVtpbmRleF0sIChhcnJheTIgYXMgYW55KVtpbmRleF1dKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1lbHNlIHtcbiAgICAgICAgb3V0PXt9O1xuICAgICAgICBmb3IobGV0IGtleSBpbiBhcnJheTEpe1xuICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxuICAgICAgICAgICAgb3V0W2tleV09KGFycmF5MSBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yKGxldCBrZXkgaW4gYXJyYXkyKXtcbiAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcbiAgICAgICAgICAgIG91dFtrZXldPShhcnJheTIgYXMgYW55KVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcml2YXRlRW51bSguLi52YWx1ZXM6c3RyaW5nW10pOntba2V5OnN0cmluZ106U3ltYm9sfSB7XG4gICAgbGV0IHJldHVybk9iajphbnkgPSB7fTtcbiAgICB2YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnRvVXBwZXJDYXNlKCkpO1xuICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHJldHVybk9ialt2YWx1ZV0gPSBTeW1ib2wodmFsdWUpKTtcbiAgICByZXR1cm4gcmV0dXJuT2JqO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gc3RyaW5nXG4gKiBAcGFyYW0gbGVuZ3RoXG4gKiBAcGFyYW0gaW5zZXJ0UHJlXG4gKiBAcGFyYW0gc3ltYm9sXG4gKi9cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBmaXhMZW5ndGgoc3RyaW5nOnN0cmluZywgbGVuZ3RoOm51bWJlciwgaW5zZXJ0UHJlID0gZmFsc2UsIHN5bWJvbCA9ICcgJykge1xuICAgIHJldHVybiBpbnNlcnRQcmU/c3RyaW5nLnBhZFN0YXJ0KGxlbmd0aCxzeW1ib2wpOnN0cmluZy5wYWRFbmQobGVuZ3RoLHN5bWJvbCk7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICAvLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4gICAgaW50ZXJmYWNlIE9iamVjdENvbnN0cnVjdG9yIHtcbiAgICAgICAgdmFsdWVzKG9iamVjdDphbnkpOmFueTtcbiAgICB9XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogQGRlcHJlY2F0ZWQgT2JqZWN0LmVudHJ5c1xuICogQHBhcmFtIG9iamVjdFxuICogQHBhcmFtIGNiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RNYXAob2JqZWN0OmFueSxjYjooYTphbnksYjphbnksYzphbnkpPT5hbnkpOmFueXtcbiAgICBsZXQgcmV0ID0gW107XG4gICAgbGV0IGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICBsZXQgdmFsdWVzPU9iamVjdC52YWx1ZXMob2JqZWN0KTtcbiAgICBmb3IobGV0IGk9MDtpPGtleXMubGVuZ3RoO2krKylcbiAgICAgICAgcmV0LnB1c2goY2IodmFsdWVzW2ldLGtleXNbaV0sb2JqZWN0KSk7XG4gICAgcmV0dXJuIHJldDtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBPYmplY3QuZW50cnlzXG4gKiBAcGFyYW0ga2V5c1xuICogQHBhcmFtIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlLVk9iamVjdChrZXlzOnN0cmluZ1tdLHZhbHVlczphbnlbXSk6YW55e1xuICAgIGxldCBsZW49a2V5cy5sZW5ndGg7XG4gICAgaWYobGVuIT09dmFsdWVzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb3RoIGFycmF5cyBtdXN0IGhhdmUgc2FtZSBsZW5ndGghJyk7XG4gICAgbGV0IHJlc3VsdDphbnk9e307XG4gICAgZm9yKGxldCBpPTA7aTxsZW47aSsrKVxuICAgICAgICByZXN1bHRba2V5c1tpXV09dmFsdWVzW2ldO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gc2xlZXAgKHRpbWU6bnVtYmVyKTpQcm9taXNlPHZvaWQ+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXMpID0+IHtcblx0XHRzZXRUaW1lb3V0KHJlcywgdGltZSk7XG5cdH0pO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIExpa2UgaXRlcmFibGUubWFwKGNiKSxcbiAqIGJ1dCBjYiBjYW4gYmUgYXN5bmNcbiAqIEBwYXJhbSBpdGVyYWJsZSBBcnJheSB0byBwcm9jZXNzXG4gKiBAcGFyYW0gY2IgRnVuY3Rpb24gdG8gZG8gd2l0aCBlYWNoIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jRWFjaDxULFI+KGl0ZXJhYmxlOlRbXSwgY2I6KHY6VCk9PlByb21pc2U8Uj4pOlJbXSB7XG5cdGxldCB3YWl0aW5nczphbnkgPSBbXTtcblx0aXRlcmFibGUuZm9yRWFjaChpdGVyID0+IHtcblx0XHR3YWl0aW5ncy5wdXNoKGNiKGl0ZXIpKTtcblx0fSk7XG5cdHJldHVybiA8YW55PlByb21pc2UuYWxsKHdhaXRpbmdzKTtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuLyoqXG4gKiBDb252ZXJ0IGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFzeW5jXG4gKiBAZGVwcmVjYXRlZCBFeGlzdHN0IGluIG5vZGUgdXRpbHNcbiAqIEBwYXJhbSBjYkZ1bmN0aW9uIEZ1bmN0aW9uIHRvIGNvbnZlcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNiMnByb21pc2UgKGNiRnVuY3Rpb246YW55KTooLi4uZDphbnlbXSk9PlByb21pc2U8YW55PiB7XG5cdHJldHVybiAoLi4uYXJncykgPT4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcblx0XHRcdGNiRnVuY3Rpb24oLi4uYXJncywgKGVycjpFcnJvciwgcmVzdWx0OmFueSkgPT4ge1xuXHRcdFx0XHRpZiAoZXJyKSByZXR1cm4gcmVqKGVycik7XG5cdFx0XHRcdHJlcyhyZXN1bHQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH07XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBoYXNoQ29kZShzOnN0cmluZyl7XG4gICAgbGV0IGhhc2ggPSAwO1xuICAgIGlmIChzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGhhc2g7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBjaGFyYWN0ZXIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGhhc2ggPSAoKGhhc2g8PDUpLWhhc2gpK2NoYXJhY3RlcjtcbiAgICAgICAgaGFzaCA9IGhhc2ggJiBoYXNoO1xuICAgIH1cbiAgICByZXR1cm4gaGFzaDtcbn1cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBkamIyQ29kZShzdHI6c3RyaW5nKXtcbiAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2gpICsgY2hhcjsgLyogaGFzaCAqIDMzICsgYyAqL1xuICAgIH1cbiAgICByZXR1cm4gaGFzaDtcbn1cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBzZGJtQ29kZShzdHI6c3RyaW5nKXtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9IGNoYXIgKyAoaGFzaCA8PCA2KSArIChoYXNoIDw8IDE2KSAtIGhhc2g7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGxvc2VDb2RlKHN0cjpzdHJpbmcpe1xuICAgIGxldCBoYXNoID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBoYXNoICs9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gaGFzaDtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUh0bWxTcGVjaWFscyhzdHI6c3RyaW5nKXtcbiAgICBsZXQgaSA9IHN0ci5sZW5ndGg7XG4gICAgbGV0IGFSZXQgPSBbXTtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgbGV0IGlDID0gc3RyW2ldLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgIGlmIChpQyA8IDY1IHx8IGlDID4gMTI3IHx8IChpQz45MCAmJiBpQzw5NykpIHtcbiAgICAgICAgICAgIGFSZXRbaV0gPSAnJiMnK2lDKyc7JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFSZXRbaV0gPSBzdHJbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFSZXQuam9pbignJyk7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWFkU3RyZWFtKG9iamVjdDpCdWZmZXIsIG9wdGlvbnMgPSB7fSk6TXVsdGlTdHJlYW0ge1xuICAgIHJldHVybiBuZXcgTXVsdGlTdHJlYW0ob2JqZWN0LCBvcHRpb25zKTtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRTdHJlYW1Ub0J1ZmZlcihzdHJlYW06UmVhZGFibGUsbWF4U2l6ZTpudW1iZXI9MCk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICBjb25zdCBidWZzOmFueSA9IFtdO1xuICAgICAgICBsZXQgc2l6ZSA9IDA7XG4gICAgICAgIHN0cmVhbS5vbignZGF0YScsIGQgPT4ge1xuICAgICAgICAgICAgaWYoc2l6ZStkLmxlbmd0aD5tYXhTaXplKXtcbiAgICAgICAgICAgICAgICByZWoobmV3IEVycm9yKCdNYXggYnVmZmVyIHNpemUgZXhjZWVkZWQnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnVmcy5wdXNoKGQpO1xuICAgICAgICAgICAgc2l6ZSs9ZC5sZW5ndGg7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIHJlcyhCdWZmZXIuY29uY2F0KGJ1ZnMpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0cmVhbS5vbignZXJyb3InLHJlaik7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpU3RyZWFtT3B0aW9ucyB7XG4gICAgaGlnaFdhdGVyTWFyaz86IG51bWJlcjtcbiAgICBlbmNvZGluZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE11bHRpU3RyZWFtIGV4dGVuZHMgUmVhZGFibGUge1xuICAgIHByaXZhdGUgb2JqZWN0OkJ1ZmZlcnxudWxsO1xuICAgIGNvbnN0cnVjdG9yKG9iamVjdDpCdWZmZXIsIG9wdGlvbnM6SU11bHRpU3RyZWFtT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGhpZ2hXYXRlck1hcms6IG9wdGlvbnMuaGlnaFdhdGVyTWFyayxcbiAgICAgICAgICAgIGVuY29kaW5nOiBvcHRpb25zLmVuY29kaW5nXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICB9XG5cbiAgICAvLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4gICAgX3JlYWQoKSB7XG4gICAgICAgIHRoaXMucHVzaCh0aGlzLm9iamVjdCk7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdDQUFnQztBQUNoQyxTQUFnQixjQUFjLENBQUMsR0FBVTtJQUNyQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELHdDQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsQ0FBSyxFQUFFLENBQUs7SUFDckMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNsQjtJQUNELElBQUksQ0FBQyxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsSUFBSSxDQUFDLFlBQVksUUFBUSxFQUFFO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNsQjtJQUNELElBQUksQ0FBQyxZQUFZLE1BQU0sRUFBRTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUMzQyxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FB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QyxDQUFDO0FBQ3pCLENBQUM7QUFiRCxnREFhQyIsImZpbGUiOiJ4cHJlc3Mvbm9kZV9tb2R1bGVzL0BtZXRlb3ItaXQvdXRpbHMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBoZWxsbywgd29ybGQgPT4gSGVsbG8sIHdvcmxkIVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0VXBwZXJjYXNlKHN0cjpzdHJpbmcpOnN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpK3N0ci5zdWJzdHIoMSk7XG59XG5cbi8qKlxuICpcbiAqIEBkZXByZWNhdGVkIEV4dHJlbWFsbHkgc2xvdyBvbiBQcm94eS9nZXR0ZXJzXG4gKiBAcGFyYW0geFxuICogQHBhcmFtIHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdEVxdWFscyh4OmFueSwgeTphbnkpOmJvb2xlYW4ge1xuICAgIGlmICh4ID09PSBudWxsIHx8IHggPT09IHVuZGVmaW5lZCB8fCB5ID09PSBudWxsIHx8IHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geCA9PT0geTtcbiAgICB9XG4gICAgaWYgKHguY29uc3RydWN0b3IgIT09IHkuY29uc3RydWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoeCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiB4ID09PSB5O1xuICAgIH1cbiAgICBpZiAoeCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4geCA9PT0geTtcbiAgICB9XG4gICAgaWYgKHggPT09IHkgfHwgeC52YWx1ZU9mKCkgPT09IHkudmFsdWVPZigpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh4KSAmJiB4Lmxlbmd0aCAhPT0geS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBwID0gT2JqZWN0LmtleXMoeCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHkpLmV2ZXJ5KGkgPT4gcC5pbmRleE9mKGkpICE9PSAtMSkgJiYgcC5ldmVyeShpID0+IG9iamVjdEVxdWFscyh4W2ldLCB5W2ldKSk7XG59XG5cbi8qKlxuICogRmxhdHRlbnMgYXJyYXlcbiAqIEBwYXJhbSBhcnJheVxuICogQHBhcmFtIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbihhcnJheTphbnlbXSwgcmVzdWx0OmFueVtdID0gW10pOmFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV07XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBmbGF0dGVuKHZhbHVlLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQHBhcmFtIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVzPFQ+KGFycmF5OlRbXSk6VFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGFycmF5KSk7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSBhcnJheTFcbiAqIEBwYXJhbSBhcnJheTJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1peChhcnJheTE6YW55W118T2JqZWN0LCBhcnJheTI6YW55W118T2JqZWN0KTphbnkge1xuICAgIGxldCBvdXQ6YW55O1xuICAgIGlmIChhcnJheTEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggaW4gYXJyYXkxKSB7XG4gICAgICAgICAgICBvdXQucHVzaChbYXJyYXkxW2luZGV4XSwgKGFycmF5MiBhcyBhbnkpW2luZGV4XV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfWVsc2Uge1xuICAgICAgICBvdXQ9e307XG4gICAgICAgIGZvcihsZXQga2V5IGluIGFycmF5MSl7XG4gICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXG4gICAgICAgICAgICBvdXRba2V5XT0oYXJyYXkxIGFzIGFueSlba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBmb3IobGV0IGtleSBpbiBhcnJheTIpe1xuICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxuICAgICAgICAgICAgb3V0W2tleV09KGFycmF5MiBhcyBhbnkpW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByaXZhdGVFbnVtKC4uLnZhbHVlczpzdHJpbmdbXSk6e1trZXk6c3RyaW5nXTpTeW1ib2x9IHtcbiAgICBsZXQgcmV0dXJuT2JqOmFueSA9IHt9O1xuICAgIHZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUudG9VcHBlckNhc2UoKSk7XG4gICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gcmV0dXJuT2JqW3ZhbHVlXSA9IFN5bWJvbCh2YWx1ZSkpO1xuICAgIHJldHVybiByZXR1cm5PYmo7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBwYXJhbSBzdHJpbmdcbiAqIEBwYXJhbSBsZW5ndGhcbiAqIEBwYXJhbSBpbnNlcnRQcmVcbiAqIEBwYXJhbSBzeW1ib2xcbiAqL1xuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGZpeExlbmd0aChzdHJpbmc6c3RyaW5nLCBsZW5ndGg6bnVtYmVyLCBpbnNlcnRQcmUgPSBmYWxzZSwgc3ltYm9sID0gJyAnKSB7XG4gICAgcmV0dXJuIGluc2VydFByZT9zdHJpbmcucGFkU3RhcnQobGVuZ3RoLHN5bWJvbCk6c3RyaW5nLnBhZEVuZChsZW5ndGgsc3ltYm9sKTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbiAgICBpbnRlcmZhY2UgT2JqZWN0Q29uc3RydWN0b3Ige1xuICAgICAgICB2YWx1ZXMob2JqZWN0OmFueSk6YW55O1xuICAgIH1cbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBPYmplY3QuZW50cnlzXG4gKiBAcGFyYW0gb2JqZWN0XG4gKiBAcGFyYW0gY2JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdE1hcChvYmplY3Q6YW55LGNiOihhOmFueSxiOmFueSxjOmFueSk9PmFueSk6YW55e1xuICAgIGxldCByZXQgPSBbXTtcbiAgICBsZXQga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO1xuICAgIGxldCB2YWx1ZXM9T2JqZWN0LnZhbHVlcyhvYmplY3QpO1xuICAgIGZvcihsZXQgaT0wO2k8a2V5cy5sZW5ndGg7aSsrKVxuICAgICAgICByZXQucHVzaChjYih2YWx1ZXNbaV0sa2V5c1tpXSxvYmplY3QpKTtcbiAgICByZXR1cm4gcmV0O1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIEBkZXByZWNhdGVkIE9iamVjdC5lbnRyeXNcbiAqIEBwYXJhbSBrZXlzXG4gKiBAcGFyYW0gdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUtWT2JqZWN0KGtleXM6c3RyaW5nW10sdmFsdWVzOmFueVtdKTphbnl7XG4gICAgbGV0IGxlbj1rZXlzLmxlbmd0aDtcbiAgICBpZihsZW4hPT12YWx1ZXMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JvdGggYXJyYXlzIG11c3QgaGF2ZSBzYW1lIGxlbmd0aCEnKTtcbiAgICBsZXQgcmVzdWx0OmFueT17fTtcbiAgICBmb3IobGV0IGk9MDtpPGxlbjtpKyspXG4gICAgICAgIHJlc3VsdFtrZXlzW2ldXT12YWx1ZXNbaV07XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcCAodGltZTpudW1iZXIpOlByb21pc2U8dm9pZD4ge1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuXHRcdHNldFRpbWVvdXQocmVzLCB0aW1lKTtcblx0fSk7XG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbi8qKlxuICogTGlrZSBpdGVyYWJsZS5tYXAoY2IpLFxuICogYnV0IGNiIGNhbiBiZSBhc3luY1xuICogQHBhcmFtIGl0ZXJhYmxlIEFycmF5IHRvIHByb2Nlc3NcbiAqIEBwYXJhbSBjYiBGdW5jdGlvbiB0byBkbyB3aXRoIGVhY2ggZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNFYWNoPFQsUj4oaXRlcmFibGU6VFtdLCBjYjoodjpUKT0+UHJvbWlzZTxSPik6UltdIHtcblx0bGV0IHdhaXRpbmdzOmFueSA9IFtdO1xuXHRpdGVyYWJsZS5mb3JFYWNoKGl0ZXIgPT4ge1xuXHRcdHdhaXRpbmdzLnB1c2goY2IoaXRlcikpO1xuXHR9KTtcblx0cmV0dXJuIDxhbnk+UHJvbWlzZS5hbGwod2FpdGluZ3MpO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG4vKipcbiAqIENvbnZlcnQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXN5bmNcbiAqIEBkZXByZWNhdGVkIEV4aXN0c3QgaW4gbm9kZSB1dGlsc1xuICogQHBhcmFtIGNiRnVuY3Rpb24gRnVuY3Rpb24gdG8gY29udmVydFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2IycHJvbWlzZSAoY2JGdW5jdGlvbjphbnkpOiguLi5kOmFueVtdKT0+UHJvbWlzZTxhbnk+IHtcblx0cmV0dXJuICguLi5hcmdzKSA9PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuXHRcdFx0Y2JGdW5jdGlvbiguLi5hcmdzLCAoZXJyOkVycm9yLCByZXN1bHQ6YW55KSA9PiB7XG5cdFx0XHRcdGlmIChlcnIpIHJldHVybiByZWooZXJyKTtcblx0XHRcdFx0cmVzKHJlc3VsdCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fTtcbn1cblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hDb2RlKHM6c3RyaW5nKXtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgaWYgKHMubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNoYXJhY3RlciA9IHMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCA9ICgoaGFzaDw8NSktaGFzaCkrY2hhcmFjdGVyO1xuICAgICAgICBoYXNoID0gaGFzaCAmIGhhc2g7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIGRqYjJDb2RlKHN0cjpzdHJpbmcpe1xuICAgIGxldCBoYXNoID0gNTM4MTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpICsgaGFzaCkgKyBjaGFyOyAvKiBoYXNoICogMzMgKyBjICovXG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuZXhwb3J0IGZ1bmN0aW9uIHNkYm1Db2RlKHN0cjpzdHJpbmcpe1xuICAgIGxldCBoYXNoID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBoYXNoID0gY2hhciArIChoYXNoIDw8IDYpICsgKGhhc2ggPDwgMTYpIC0gaGFzaDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2g7XG59XG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gbG9zZUNvZGUoc3RyOnN0cmluZyl7XG4gICAgbGV0IGhhc2ggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGhhc2ggKz0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuXG4vLyBub2luc3BlY3Rpb24gSlNVbnVzZWRHbG9iYWxTeW1ib2xzXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlSHRtbFNwZWNpYWxzKHN0cjpzdHJpbmcpe1xuICAgIGxldCBpID0gc3RyLmxlbmd0aDtcbiAgICBsZXQgYVJldCA9IFtdO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICBsZXQgaUMgPSBzdHJbaV0uY2hhckNvZGVBdCgwKTtcbiAgICAgICAgaWYgKGlDIDwgNjUgfHwgaUMgPiAxMjcgfHwgKGlDPjkwICYmIGlDPDk3KSkge1xuICAgICAgICAgICAgYVJldFtpXSA9ICcmIycraUMrJzsnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYVJldFtpXSA9IHN0cltpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYVJldC5qb2luKCcnKTtcbn0iXX0=

@@ -1,3 +0,1 @@

import {Readable} from 'stream';
// hello, world => Hello, world!

@@ -243,49 +241,2 @@ export function firstUppercase(str:string):string {

return aRet.join('');
}
// noinspection JSUnusedGlobalSymbols
export function createReadStream(object:Buffer, options = {}):MultiStream {
return new MultiStream(object, options);
}
// noinspection JSUnusedGlobalSymbols
export function readStreamToBuffer(stream:Readable,maxSize:number=0): Promise<Buffer> {
return new Promise((res, rej) => {
const bufs:any = [];
let size = 0;
stream.on('data', d => {
if(size+d.length>maxSize){
rej(new Error('Max buffer size exceeded'));
return;
}
bufs.push(d);
size+=d.length;
});
stream.on('end', () => {
res(Buffer.concat(bufs));
});
stream.on('error',rej);
});
}
export interface IMultiStreamOptions {
highWaterMark?: number;
encoding?: string;
}
export class MultiStream extends Readable {
private object:Buffer|null;
constructor(object:Buffer, options:IMultiStreamOptions = {}) {
super({
highWaterMark: options.highWaterMark,
encoding: options.encoding
});
this.object = object;
}
// noinspection JSUnusedGlobalSymbols
_read() {
this.push(this.object);
this.object = null;
}
}
}
{
"name": "@meteor-it/utils",
"version": "1.3.9",
"version": "1.3.10",
"description": "Many useful utils",

@@ -15,3 +15,3 @@ "main": "index.js",

},
"gitHead": "a8c353b79a764238cbf539e72a4b47023bacf296"
"gitHead": "3d10baec01cd8de8e7af988796764d2fcf4087f7"
}
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