UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

115 lines (113 loc) 22 kB
"use strict"; /* * Copyright (c) 2019 by Filestack. * Some rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var utils = tslib_1.__importStar(require("./utils")); var stream_1 = require("stream"); var printLog = function (status, name, value) { return "".concat(name, " should return ").concat(status, " when value is ").concat(value); }; describe('Request/Utils', function () { describe('isArray', function () { it(printLog(true, 'isArray', "['value']"), function () { return expect(utils.isArray(['value'])).toBeTruthy(); }); it(printLog(true, 'isArray', '[]'), function () { return expect(utils.isArray([])).toBeTruthy(); }); // @ts-ignore it(printLog(true, 'isArray', ''), function () { return expect(utils.isArray()).toBeFalsy(); }); // @ts-ignore it(printLog(true, 'isArray', null), function () { return expect(utils.isArray(null)).toBeFalsy(); }); }); describe('isArrayBuffer', function () { it(printLog(true, 'isArrayBuffer', 'new ArrayBuffer(10)'), function () { expect(utils.isArrayBuffer(new ArrayBuffer(10))).toBeTruthy(); }); it(printLog(true, 'isArrayBuffer', ''), function () { // @ts-ignore expect(utils.isArrayBuffer()).toBeFalsy(); }); }); // isBuffer describe('isBuffer', function () { it(printLog(true, 'isBuffer', ''), function () { // @ts-ignore expect(utils.isBuffer(null)).toBeFalsy(); }); it(printLog(true, 'isBuffer', ''), function () { // @ts-ignore expect(utils.isBuffer(Buffer.alloc(10))).toBeTruthy(); }); }); describe('isArrayBufferView', function () { it(printLog(true, 'isArrayBufferView', 'new DataView(new ArrayBuffer(10))'), function () { expect(utils.isArrayBufferView(new DataView(new ArrayBuffer(10)))).toBeTruthy(); }); it(printLog(true, 'isArrayBufferView', null), function () { // @ts-ignore expect(utils.isArrayBufferView(null)).toBeFalsy(); }); it(printLog(true, 'isArrayBufferView', null), function () { // @ts-ignore expect(utils.isArrayBufferView(Buffer.alloc(10))).toBeTruthy(); }); }); describe('isObject', function () { it(printLog(true, 'isObject', "{prop: 'value'}"), function () { return expect(utils.isObject({ prop: 'value' })).toBeTruthy(); }); it(printLog(false, 'isObject', "'value'"), function () { return expect(utils.isObject('value')).toBeFalsy(); }); it(printLog(false, 'isObject', '10'), function () { return expect(utils.isObject(10)).toBeFalsy(); }); }); describe('isString', function () { it(printLog(true, 'isString', "'value'"), function () { return expect(utils.isString('value')).toBeTruthy(); }); it(printLog(false, 'isString', '10'), function () { return expect(utils.isString(10)).toBeFalsy(); }); it(printLog(false, 'isString', '{}'), function () { return expect(utils.isString({})).toBeFalsy(); }); it(printLog(false, 'isString', '[]'), function () { return expect(utils.isString([])).toBeFalsy(); }); it(printLog(false, 'isString', 'false'), function () { return expect(utils.isString(false)).toBeFalsy(); }); }); describe('isFile', function () { it(printLog(false, 'isFile', null), function () { return expect(utils.isFile(null)).toBeFalsy(); }); }); describe('isBlob', function () { it(printLog(false, 'isBlob', null), function () { return expect(utils.isBlob(null)).toBeFalsy(); }); }); describe('isStream', function () { it(printLog(true, 'isStream', 'Stream.Readable()'), function () { var stream = new stream_1.Readable(); stream._read = function () { return ''; }; stream.push('beep'); expect(utils.isStream(stream)).toBeTruthy(); }); it(printLog(true, 'isStream', "'value'"), function () { return expect(utils.isStream('value')).toBeFalsy(); }); it(printLog(true, 'isStream', '10'), function () { return expect(utils.isStream(10)).toBeFalsy(); }); it(printLog(true, 'isStream', '[]'), function () { return expect(utils.isStream([])).toBeFalsy(); }); }); describe('isURLSearchParams', function () { it(printLog(true, 'isURLSearchParams', "new URLSearchParams('q=filename=&size=12')"), function () { expect(utils.isURLSearchParams(new URLSearchParams('q=filename=&size=12'))).toBeTruthy(); }); it(printLog(true, 'isURLSearchParams', "new URLSearchParams('')"), function () { expect(utils.isURLSearchParams(new URLSearchParams(''))).toBeTruthy(); }); }); describe('isFormData', function () { it(printLog(true, 'isFormData', "'value'"), function () { return expect(utils.isFormData('value')).toBeFalsy(); }); it(printLog(true, 'isFormData', '10'), function () { return expect(utils.isFormData({})).toBeFalsy(); }); it(printLog(true, 'isFormData', '[]'), function () { return expect(utils.isFormData([])).toBeFalsy(); }); it(printLog(true, 'isFormData', '{}'), function () { return expect(utils.isFormData({})).toBeFalsy(); }); }); describe('trim', function () { it(printLog("'value' without whitespace", 'trim', "' value'"), function () { return expect(utils.trim(' value')).toEqual('value'); }); it(printLog("'value' without whitespace ", 'trim', "' value '"), function () { return expect(utils.trim(' value ')).toEqual('value'); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC91dGlscy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUVILHFEQUFpQztBQUNqQyxpQ0FBa0M7QUFFbEMsSUFBTSxRQUFRLEdBQUcsVUFBQyxNQUF3QixFQUFFLElBQVksRUFBRSxLQUFhLElBQWEsT0FBQSxVQUFHLElBQUksNEJBQWtCLE1BQU0sNEJBQWtCLEtBQUssQ0FBRSxFQUF4RCxDQUF3RCxDQUFDO0FBRTdJLFFBQVEsQ0FBQyxlQUFlLEVBQUU7SUFDeEIsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNsQixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUE3QyxDQUE2QyxDQUFDLENBQUM7UUFFaEcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQU0sT0FBQSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUF0QyxDQUFzQyxDQUFDLENBQUM7UUFFbEYsYUFBYTtRQUNiLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFuQyxDQUFtQyxDQUFDLENBQUM7UUFFN0UsYUFBYTtRQUNiLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENB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RUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQU0sT0FBQSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUF0QyxDQUFzQyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBNUMsQ0FBNEMsQ0FBQyxDQUFDO1FBRTlGLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBdEMsQ0FBc0MsQ0FBQyxDQUFDO1FBRXBGLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBdEMsQ0FBc0MsQ0FBQyxDQUFDO1FBRXBGLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBdEMsQ0FBc0MsQ0FBQyxDQUFDO1FBRXBGLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFR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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9yZXF1ZXN0L3V0aWxzLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE5IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFJlYWRhYmxlIH0gZnJvbSAnc3RyZWFtJztcblxuY29uc3QgcHJpbnRMb2cgPSAoc3RhdHVzOiBib29sZWFuIHwgc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCR7bmFtZX0gc2hvdWxkIHJldHVybiAke3N0YXR1c30gd2hlbiB2YWx1ZSBpcyAke3ZhbHVlfWA7XG5cbmRlc2NyaWJlKCdSZXF1ZXN0L1V0aWxzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaXNBcnJheScsICgpID0+IHtcbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNBcnJheScsIFwiWyd2YWx1ZSddXCIpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNBcnJheShbJ3ZhbHVlJ10pKS50b0JlVHJ1dGh5KCkpO1xuXG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzQXJyYXknLCAnW10nKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzQXJyYXkoW10pKS50b0JlVHJ1dGh5KCkpO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGl0KHByaW50TG9nKHRydWUsICdpc0FycmF5JywgJycpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNBcnJheSgpKS50b0JlRmFsc3koKSk7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzQXJyYXknLCBudWxsKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzQXJyYXkobnVsbCkpLnRvQmVGYWxzeSgpKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2lzQXJyYXlCdWZmZXInLCAoKSA9PiB7XG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzQXJyYXlCdWZmZXInLCAnbmV3IEFycmF5QnVmZmVyKDEwKScpLCAoKSA9PiB7XG4gICAgICBleHBlY3QodXRpbHMuaXNBcnJheUJ1ZmZlcihuZXcgQXJyYXlCdWZmZXIoMTApKSkudG9CZVRydXRoeSgpO1xuICAgIH0pO1xuICAgIGl0KHByaW50TG9nKHRydWUsICdpc0FycmF5QnVmZmVyJywgJycpLCAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3QodXRpbHMuaXNBcnJheUJ1ZmZlcigpKS50b0JlRmFsc3koKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gaXNCdWZmZXJcbiAgZGVzY3JpYmUoJ2lzQnVmZmVyJywgKCkgPT4ge1xuICAgIGl0KHByaW50TG9nKHRydWUsICdpc0J1ZmZlcicsICcnKSwgKCkgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KHV0aWxzLmlzQnVmZmVyKG51bGwpKS50b0JlRmFsc3koKTtcbiAgICB9KTtcbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNCdWZmZXInLCAnJyksICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdCh1dGlscy5pc0J1ZmZlcihCdWZmZXIuYWxsb2MoMTApKSkudG9CZVRydXRoeSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNBcnJheUJ1ZmZlclZpZXcnLCAoKSA9PiB7XG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzQXJyYXlCdWZmZXJWaWV3JywgJ25ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMTApKScpLCAoKSA9PiB7XG4gICAgICBleHBlY3QodXRpbHMuaXNBcnJheUJ1ZmZlclZpZXcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxMCkpKSkudG9CZVRydXRoeSgpO1xuICAgIH0pO1xuXG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzQXJyYXlCdWZmZXJWaWV3JywgbnVsbCksICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdCh1dGlscy5pc0FycmF5QnVmZmVyVmlldyhudWxsKSkudG9CZUZhbHN5KCk7XG4gICAgfSk7XG5cbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNBcnJheUJ1ZmZlclZpZXcnLCBudWxsKSwgKCkgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KEJ1ZmZlci5hbGxvYygxMCkpKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpc09iamVjdCcsICgpID0+IHtcbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNPYmplY3QnLCBcIntwcm9wOiAndmFsdWUnfVwiKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzT2JqZWN0KHsgcHJvcDogJ3ZhbHVlJyB9KSkudG9CZVRydXRoeSgpKTtcblxuICAgIGl0KHByaW50TG9nKGZhbHNlLCAnaXNPYmplY3QnLCBcIid2YWx1ZSdcIiksICgpID0+IGV4cGVjdCh1dGlscy5pc09iamVjdCgndmFsdWUnKSkudG9CZUZhbHN5KCkpO1xuXG4gICAgaXQocHJpbnRMb2coZmFsc2UsICdpc09iamVjdCcsICcxMCcpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNPYmplY3QoMTApKS50b0JlRmFsc3koKSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpc1N0cmluZycsICgpID0+IHtcbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNTdHJpbmcnLCBcIid2YWx1ZSdcIiksICgpID0+IGV4cGVjdCh1dGlscy5pc1N0cmluZygndmFsdWUnKSkudG9CZVRydXRoeSgpKTtcblxuICAgIGl0KHByaW50TG9nKGZhbHNlLCAnaXNTdHJpbmcnLCAnMTAnKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzU3RyaW5nKDEwKSkudG9CZUZhbHN5KCkpO1xuXG4gICAgaXQocHJpbnRMb2coZmFsc2UsICdpc1N0cmluZycsICd7fScpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNTdHJpbmcoe30pKS50b0JlRmFsc3koKSk7XG5cbiAgICBpdChwcmludExvZyhmYWxzZSwgJ2lzU3RyaW5nJywgJ1tdJyksICgpID0+IGV4cGVjdCh1dGlscy5pc1N0cmluZyhbXSkpLnRvQmVGYWxzeSgpKTtcblxuICAgIGl0KHByaW50TG9nKGZhbHNlLCAnaXNTdHJpbmcnLCAnZmFsc2UnKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzU3RyaW5nKGZhbHNlKSkudG9CZUZhbHN5KCkpO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNGaWxlJywgKCkgPT4ge1xuICAgIGl0KHByaW50TG9nKGZhbHNlLCAnaXNGaWxlJywgbnVsbCksICgpID0+IGV4cGVjdCh1dGlscy5pc0ZpbGUobnVsbCkpLnRvQmVGYWxzeSgpKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2lzQmxvYicsICgpID0+IHtcbiAgICBpdChwcmludExvZyhmYWxzZSwgJ2lzQmxvYicsIG51bGwpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNCbG9iKG51bGwpKS50b0JlRmFsc3koKSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpc1N0cmVhbScsICgpID0+IHtcbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNTdHJlYW0nLCAnU3RyZWFtLlJlYWRhYmxlKCknKSwgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlKCk7XG4gICAgICBzdHJlYW0uX3JlYWQgPSAoKSA9PiAnJztcbiAgICAgIHN0cmVhbS5wdXNoKCdiZWVwJyk7XG4gICAgICBleHBlY3QodXRpbHMuaXNTdHJlYW0oc3RyZWFtKSkudG9CZVRydXRoeSgpO1xuICAgIH0pO1xuXG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzU3RyZWFtJywgXCIndmFsdWUnXCIpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNTdHJlYW0oJ3ZhbHVlJykpLnRvQmVGYWxzeSgpKTtcblxuICAgIGl0KHByaW50TG9nKHRydWUsICdpc1N0cmVhbScsICcxMCcpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNTdHJlYW0oMTApKS50b0JlRmFsc3koKSk7XG5cbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNTdHJlYW0nLCAnW10nKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzU3RyZWFtKFtdKSkudG9CZUZhbHN5KCkpO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNVUkxTZWFyY2hQYXJhbXMnLCAoKSA9PiB7XG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzVVJMU2VhcmNoUGFyYW1zJywgXCJuZXcgVVJMU2VhcmNoUGFyYW1zKCdxPWZpbGVuYW1lPSZzaXplPTEyJylcIiksICgpID0+IHtcbiAgICAgIGV4cGVjdCh1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhuZXcgVVJMU2VhcmNoUGFyYW1zKCdxPWZpbGVuYW1lPSZzaXplPTEyJykpKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG5cbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNVUkxTZWFyY2hQYXJhbXMnLCBcIm5ldyBVUkxTZWFyY2hQYXJhbXMoJycpXCIpLCAoKSA9PiB7XG4gICAgICBleHBlY3QodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMobmV3IFVSTFNlYXJjaFBhcmFtcygnJykpKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpc0Zvcm1EYXRhJywgKCkgPT4ge1xuICAgIGl0KHByaW50TG9nKHRydWUsICdpc0Zvcm1EYXRhJywgXCIndmFsdWUnXCIpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNGb3JtRGF0YSgndmFsdWUnKSkudG9CZUZhbHN5KCkpO1xuXG4gICAgaXQocHJpbnRMb2codHJ1ZSwgJ2lzRm9ybURhdGEnLCAnMTAnKSwgKCkgPT4gZXhwZWN0KHV0aWxzLmlzRm9ybURhdGEoe30pKS50b0JlRmFsc3koKSk7XG5cbiAgICBpdChwcmludExvZyh0cnVlLCAnaXNGb3JtRGF0YScsICdbXScpLCAoKSA9PiBleHBlY3QodXRpbHMuaXNGb3JtRGF0YShbXSkpLnRvQmVGYWxzeSgpKTtcblxuICAgIGl0KHByaW50TG9nKHRydWUsICdpc0Zvcm1EYXRhJywgJ3t9JyksICgpID0+IGV4cGVjdCh1dGlscy5pc0Zvcm1EYXRhKHt9KSkudG9CZUZhbHN5KCkpO1xuICB9KTtcblxuICBkZXNjcmliZSgndHJpbScsICgpID0+IHtcbiAgICBpdChwcmludExvZyhcIid2YWx1ZScgd2l0aG91dCB3aGl0ZXNwYWNlXCIsICd0cmltJywgXCInIHZhbHVlJ1wiKSwgKCkgPT4gZXhwZWN0KHV0aWxzLnRyaW0oJyB2YWx1ZScpKS50b0VxdWFsKCd2YWx1ZScpKTtcblxuICAgIGl0KHByaW50TG9nKFwiJ3ZhbHVlJyB3aXRob3V0IHdoaXRlc3BhY2UgXCIsICd0cmltJywgXCInIHZhbHVlICdcIiksICgpID0+IGV4cGVjdCh1dGlscy50cmltKCcgdmFsdWUgJykpLnRvRXF1YWwoJ3ZhbHVlJykpO1xuICB9KTtcbn0pO1xuIl19