{"version":3,"sources":["webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/modules/sql/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/polling.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/polling-xhr.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/socket.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-parser/build/esm/commons.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-parser/build/esm/encodePacket.browser.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-parser/build/esm/decodePacket.browser.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-parser/build/esm/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/modules/sql/sqlEngine.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transport.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/modules/stat.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/util.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/row.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/reusables.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/symbol.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/transports/websocket.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/modules/matrix.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/errors.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/io.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/engine.io-client/build/esm/globalThis.browser.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/dataframe-js/lib/dataframe.js"],"names":["Object","defineProperty","exports","value","default","_sqlEngine","_interopRequireDefault","_dataframe","_errors","obj","__esModule","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","_createClass","protoProps","staticProps","prototype","SQL","df","this","name","query","ArgumentTypeError","tables","tableName","replacement","overwrite","arguments","undefined","registerTable","dropTable","keys","validation","RegExp","test","WrongTableNameError","listTables","includes","TableAlreadyExistsError","_default","xdomain","opts","XMLHttpRequest","e","concat","join","super","polling","poll","onPause","readyState","pause","total","once","doPoll","emit","data","callback","packet","type","onOpen","onClose","onPacket","socket","binaryType","forEach","close","write","packets","doWrite","schema","secure","port","timestampRequests","timestampParam","supportsBinary","sid","b64","Number","encodedQuery","encode","ipv6","hostname","indexOf","path","empty","hasXHR2","xhr","responseType","location","isSSL","protocol","xd","xs","forceBase64","assign","uri","fn","req","request","method","on","err","onError","onData","bind","pollXhr","async","create","xscheme","open","extraHeaders","setDisableHeaderCheck","hasOwnProperty","setRequestHeader","withCredentials","requestTimeout","timeout","onreadystatechange","status","onLoad","setTimeoutFn","send","document","index","requestsCount","requests","cleanup","onSuccess","fromError","abort","responseText","attachEvent","unloadHandler","addEventListener","terminationEvent","transports","websocket","host","writeBuffer","prevBufferLen","agent","upgrade","rememberUpgrade","rejectUnauthorized","perMessageDeflate","threshold","transportOptions","closeOnBeforeunload","replace","decode","id","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","transport","removeAllListeners","offlineEventListener","clone","EIO","priorWebsocketSuccess","emitReserved","createTransport","shift","setTransport","onDrain","failed","onTransportOpen","msg","upgrading","flush","Error","freezeTransport","onerror","error","onTransportClose","onclose","onupgrade","to","removeListener","off","l","probe","onHandshake","JSON","parse","resetPingTimeout","sendPacket","code","filterUpgrades","clearTimeoutFn","autoUnref","unref","splice","options","compress","push","cleanupAndClose","waitForUpgrade","reason","desc","removeEventListener","filteredUpgrades","j","o","get","_row","Errors","_interopRequireWildcard","_stat","_matrix","_index","newObj","call","getOwnPropertyDescriptor","set","setDefaultModules","sql","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","Blob","toString","withNativeArrayBuffer","ArrayBuffer","isView","buffer","encodePacket","encodeBlobAsBase64","fileReader","FileReader","onload","content","result","split","readAsDataURL","decodePacket","encodedPacket","mapBinary","charAt","decodeBase64Packet","substring","packetType","decoded","base64","SEPARATOR","String","fromCharCode","encodePayload","encodedPackets","Array","count","decodePayload","encodedPayload","decodedPacket","groupBy","GroupedDataFrame","_symbol","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","isArray","_objectWithoutProperties","source","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","ownKeys","object","enumerableOnly","symbols","filter","sym","apply","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","from","arr2","columnNames","groups","hashes","__groups__","__hashes__","listColumns","regeneratorRuntime","mark","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","hash","wrap","_context","prev","t0","return","finish","stop","quiet","map","_ref","group","groupKey","groupLog","stringify","console","log","show","reduce","p","n","_ref2","func","_ref4","mapped","_ref3","__newInstance__","toCollection","condition","_ref6","_ref5","_ref8","_len","funcs","_key","_ref7","chain","columnName","_ref9","columnToPivot","gdf","columns","distinct","toArray","aggregate","gp","gk","_ref11","aggregation","rest","_this","variableColumnName","valueColumnName","entries","toDict","tidy","_ref12","_ref13","_ref14","_ref15","x","rowsByGroup","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","row","select","_rowsByGroup$hash$","constructor","sqlParser","_reusables","REPLACMENTS","WHERE_OPERATORS","IN","a","b","LIKE","AND","OR","SELECT_FUNCTIONS","COUNT","SUM","column","stat","sum","MAX","max","MIN","min","AVG","mean","match","cases","casesGen","makeGenerator","checker","nextCase","sqlArgsToArray","args","xReplace","joinHandler","operation","ONKeywordLocation","findIndex","word","toUpperCase","loc","OPERATIONS_HANDLER","WHERE","operationalTerms","xSplit","conditionalOperators","term","operationalTerm","operatorToApply","xContains","terms","trim","has","lastTermAsNumber","isNaN","JOIN","INNERJOIN","LEFTJOIN","RIGHTJOIN","FULLJOIN","UNION","union","GROUPBY","replaceTermsInQuery","replacedQuery","joinType","replacment","toLowerCase","sqlSplitter","splittedQuery","fromLoc","SQLParseError","selections","slice","table","operations","parseOperations","operationsLoc","parseSelections","selection","rename","functionToApply","find","applyFunction","dfToImpact","renameAll","_sqlSplitter","applyOperations","applySelections","Transport","description","doOpen","doClose","Stat","withColumn","isNumber","_castAsNumber","numericDF","population","Math","pow","sqrt","var","varpop","sd","sdpop","pick","attr","acc","k","NATIVE_SET_TIMEOUT","setTimeout","NATIVE_CLEAR_TIMEOUT","clearTimeout","installTimerFunctions","useNativeTimers","nextTick","isPromiseAvailable","Promise","resolve","cb","then","WebSocket","MozWebSocket","usingBrowserWebSocket","defaultBinaryType","__columns__","__values__","Row","freeze","_build","_Object$values","values","_Object$assign","arrayEqual","getPrototypeOf","_fromArray","_fromObject","array","hashCode","columnToGet","NoSuchColumnError","columnToSet","newRow","columnToDel","isArrayOfType","transpose","_marked","_marked2","createIterGenerator","ofType","parseFloat","isFinite","byOrder","Set","tableSize","delegateYield","iteration","modifiedRow","_args2","_context2","abrupt","stringToSplit","_len2","patterns","_key2","str","stringToReplace","_len3","_key3","stringToFilter","_len4","_key4","pattern","char","charCodeAt","__rows__","isReactNative","navigator","product","WS","check","protocols","headers","ws","addEventListeners","onopen","_socket","onmessage","ev","lastPacket","len","Buffer","byteLength","Matrix","reverse","dim","isCommutative","WrongSchemaError","rowKey","number","_this2","_typeof","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_inherits","subClass","superClass","_setPrototypeOf","_wrapNativeSuper","Class","_cache","Map","_isNativeFunction","Wrapper","_construct","_getPrototypeOf","isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","Parent","Function","setPrototypeOf","__proto__","MixedTypeError","FileNotFoundError","_Error","fileName","message","_TypeError","types","_Error2","_this3","_Error3","expected","_this4","_TypeError2","input","_this5","_Error4","_this6","_Error5","_this7","_Error6","_this8","toDSV","toCSV","toTSV","toPSV","toText","toJSON","fromDSV","fromCSV","fromTSV","fromPSV","fromText","fromJSON","_d3Request","_d3Dsv","FILE_PATTERN","saveFile","writeFileSync","warn","loadTextFile","file","File","reader","event","readAsText","addFileProtocol","isValidFilePath","sep","header","parser","dsvFormat","csvContent","format","formatRows","_cleanSavePath","asCollection","jsonContent","pathOrFile","parseText","fileContent","parseRows","text","json","txt","window","_group","io","DataFrame","_this$_build","_this$_build2","modules","defaultModules","__instanciateModules__","columns2","_i2","_Object$keys","_columnsAreEquals","firstRowColumns","newInstance","Plugin","pluginInstance","_fromDict","dict","gdf1","gdf2","newColumns","gdf2Hashs","listHashs","isContained","modifiedGroup","gdf2Collection","combinedGroup","row2","filterCondition","bool","dfToJoin","gdfToJoin","_joinByType","restructure","dropDuplicates","_len5","_key5","_len6","_key6","_len7","_key7","ofRows","rows","makeRow","columnAsString","token","toShow","tranposeColumnNames","transposedRows","valueToCount","_len8","_key8","_len9","_key9","newColumnNames","typeFunctions","typeFunction","delete","_len10","_key10","is","filteredRows","init","reduceRight","_len11","_key11","groupCols","cols","col","NaN","floor","random","percentage","nRows","shuffle","restRows","_len12","_key12","missingValuesPosition","_columnNames","_missingValuesPosition","_checkMissingValue","v","sortedRows","sort","pValue","nValue","curr","sortedRowsWithMissingValues","sortedRowsWithoutMissingValues","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","dfToUnion","how","joinMethods","inner","innerJoin","full","fullJoin","outer","outerJoin","left","leftJoin","right","rightJoin","_join","dfToDiff","startIndex","endIndex","newRows"],"mappings":"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","file":"js/chunk-vendors~66c336cc.80dadad0.js","sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.function.name\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.regexp.constructor\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _sqlEngine = _interopRequireDefault(require(\"./sqlEngine\"));\n\nvar _dataframe = _interopRequireDefault(require(\"../../dataframe\"));\n\nvar _errors = require(\"../../errors\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar SQL = function () {\n _createClass(SQL, null, [{\n key: \"request\",\n value: function request(query) {\n if (!(typeof query === \"string\")) throw new _errors.ArgumentTypeError(query, \"Stri g\");\n return (0, _sqlEngine.default)(query, SQL.tables);\n }\n }, {\n key: \"dropTables\",\n value: function dropTables() {\n SQL.tables = {};\n }\n }, {\n key: \"dropTable\",\n value: function dropTable(tableName) {\n delete SQL.tables[tableName];\n }\n }, {\n key: \"renameTable\",\n value: function renameTable(tableName, replacement) {\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n SQL.registerTable(SQL.tables[tableName], replacement, overwrite);\n SQL.dropTable(tableName);\n }\n }, {\n key: \"listTables\",\n value: function listTables() {\n return Object.keys(SQL.tables);\n }\n }, {\n key: \"registerTable\",\n value: function registerTable(df, tableName) {\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!(df instanceof _dataframe.default)) throw new _errors.ArgumentTypeError(df, \"DataFrame\");\n var validation = new RegExp(\"^[a-zA-Z_][a-zA-Z0-9_]*$\");\n\n if (!validation.test(tableName)) {\n throw new _errors.WrongTableNameError(tableName);\n }\n\n if (SQL.listTables().includes(tableName) && !overwrite) {\n throw new _errors.TableAlreadyExistsError(tableName);\n }\n\n SQL.tables[tableName] = df;\n }\n }]);\n\n function SQL(df) {\n _classCallCheck(this, SQL);\n\n this.df = df;\n this.name = \"sql\";\n }\n\n _createClass(SQL, [{\n key: \"register\",\n value: function register(tableName) {\n var overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n SQL.registerTable(this.df, tableName, overwrite);\n return this.df;\n }\n }]);\n\n return SQL;\n}();\n\nSQL.tables = {};\nvar _default = SQL;\nexports.default = _default;","// browser shim for xmlhttprequest module\nimport hasCORS from \"has-cors\";\nimport globalThis from \"../globalThis.js\";\nexport default function (opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport yeast from \"yeast\";\nimport parseqs from \"parseqs\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this.polling = false;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emit(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose();\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emit(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = parseqs.encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n}\n","/* global attachEvent */\nimport XMLHttpRequest from \"./xmlhttprequest.js\";\nimport globalThis from \"../globalThis.js\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { Polling } from \"./polling.js\";\n/**\n * Empty function\n */\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class XHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", err => {\n this.onError(\"xhr post error\", err);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", err => {\n this.onError(\"xhr poll error\", err);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon successful response.\n *\n * @api private\n */\n onSuccess() {\n this.emit(\"success\");\n this.cleanup();\n }\n /**\n * Called if we have data.\n *\n * @api private\n */\n onData(data) {\n this.emit(\"data\", data);\n this.onSuccess();\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emit(\"error\", err);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.onData(data);\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { XHR } from \"./polling-xhr.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: XHR\n};\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions } from \"./util.js\";\nimport parseqs from \"parseqs\";\nimport parseuri from \"parseuri\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = parseqs.decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n addEventListener(\"beforeunload\", () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n }, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\");\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = clone(this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", () => {\n this.onClose(\"transport close\");\n });\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, desc) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, desc);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\nfunction clone(obj) {\n const o = {};\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexport const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptor\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DataFrame\", {\n enumerable: true,\n get: function get() {\n return _dataframe.default;\n }\n});\nObject.defineProperty(exports, \"Row\", {\n enumerable: true,\n get: function get() {\n return _row.default;\n }\n});\nexports.Errors = exports.default = void 0;\n\nvar _dataframe = _interopRequireDefault(require(\"./dataframe\"));\n\nvar _row = _interopRequireDefault(require(\"./row\"));\n\nvar Errors = _interopRequireWildcard(require(\"./errors\"));\n\nexports.Errors = Errors;\n\nvar _stat = _interopRequireDefault(require(\"./modules/stat\"));\n\nvar _matrix = _interopRequireDefault(require(\"./modules/matrix\"));\n\nvar _index = _interopRequireDefault(require(\"./modules/sql/index.js\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_dataframe.default.setDefaultModules(_stat.default, _matrix.default, _index.default);\n\n_dataframe.default.sql = _index.default;\nvar _default = _dataframe.default;\nexports.default = _default;","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"@socket.io/base64-arraybuffer\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.array.index-of\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.object.entries\");\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptor\");\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptors\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/web.dom-collections.for-each\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.groupBy = groupBy;\nexports.GroupedDataFrame = void 0;\n\nrequire(\"regenerator-runtime/runtime\");\n\nvar _symbol = require(\"./symbol\");\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar GroupedDataFrame = function () {\n function GroupedDataFrame(df, columnNames, groups, hashes) {\n _classCallCheck(this, GroupedDataFrame);\n\n this[_symbol.__groups__] = groups;\n this[_symbol.__hashes__] = hashes;\n this.df = df;\n this.on = columnNames.length > 0 ? columnNames : df.listColumns();\n }\n\n _createClass(GroupedDataFrame, [{\n key: Symbol.iterator,\n value: regeneratorRuntime.mark(function value() {\n var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, hash;\n\n return regeneratorRuntime.wrap(function value$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _iteratorNormalCompletion = true;\n _didIteratorError = false;\n _iteratorError = undefined;\n _context.prev = 3;\n _iterator = this[_symbol.__hashes__][Symbol.iterator]();\n\n case 5:\n if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {\n _context.next = 12;\n break;\n }\n\n hash = _step.value;\n _context.next = 9;\n return this[_symbol.__groups__][hash];\n\n case 9:\n _iteratorNormalCompletion = true;\n _context.next = 5;\n break;\n\n case 12:\n _context.next = 18;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](3);\n _didIteratorError = true;\n _iteratorError = _context.t0;\n\n case 18:\n _context.prev = 18;\n _context.prev = 19;\n\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n\n case 21:\n _context.prev = 21;\n\n if (!_didIteratorError) {\n _context.next = 24;\n break;\n }\n\n throw _iteratorError;\n\n case 24:\n return _context.finish(21);\n\n case 25:\n return _context.finish(18);\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, value, this, [[3, 14, 18, 26], [19,, 21, 25]]);\n })\n }, {\n key: \"get\",\n value: function get(hash) {\n return this[_symbol.__groups__][hash];\n }\n }, {\n key: \"toCollection\",\n value: function toCollection() {\n return _toConsumableArray(this);\n }\n }, {\n key: \"show\",\n value: function show() {\n var quiet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return _toConsumableArray(this).map(function (_ref) {\n var group = _ref.group,\n groupKey = _ref.groupKey;\n var groupLog = \"--\\n[\".concat(JSON.stringify(groupKey), \"]\\n--\");\n\n if (!quiet) {\n console.log(groupLog);\n }\n\n return groupLog + \"\\n\" + group.show(10, quiet);\n }).reduce(function (p, n) {\n return p + \"\\n\" + n;\n });\n }\n }, {\n key: \"listGroups\",\n value: function listGroups() {\n return _toConsumableArray(this).map(function (_ref2) {\n var groupKey = _ref2.groupKey;\n return groupKey;\n });\n }\n }, {\n key: \"listHashs\",\n value: function listHashs() {\n return this[_symbol.__hashes__];\n }\n }, {\n key: \"map\",\n value: function map(func) {\n var _ref4;\n\n var mapped = _toConsumableArray(this).map(function (_ref3) {\n var group = _ref3.group;\n return group.map(func);\n });\n\n return this.df.__newInstance__((_ref4 = []).concat.apply(_ref4, _toConsumableArray(mapped.map(function (group) {\n return group.toCollection();\n }))), mapped[0].listColumns());\n }\n }, {\n key: \"filter\",\n value: function filter(condition) {\n var _ref6;\n\n var mapped = _toConsumableArray(this).map(function (_ref5) {\n var group = _ref5.group;\n return group.filter(condition);\n }).filter(function (group) {\n return group.listColumns().length > 0;\n });\n\n return mapped.length === 0 ? this.df.__newInstance__([], this.df.listColumns()) : this.df.__newInstance__((_ref6 = []).concat.apply(_ref6, _toConsumableArray(mapped.map(function (group) {\n return group.toCollection();\n }))), this.df.listColumns());\n }\n }, {\n key: \"chain\",\n value: function chain() {\n var _ref8;\n\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n var mapped = _toConsumableArray(this).map(function (_ref7) {\n var group = _ref7.group;\n return group.chain.apply(group, funcs);\n });\n\n return this.df.__newInstance__((_ref8 = []).concat.apply(_ref8, _toConsumableArray(mapped.map(function (group) {\n return group.toCollection();\n }))), mapped[0].listColumns());\n }\n }, {\n key: \"aggregate\",\n value: function aggregate(func) {\n var columnName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"aggregation\";\n return this.df.__newInstance__(_toConsumableArray(this).map(function (_ref9) {\n var group = _ref9.group,\n groupKey = _ref9.groupKey;\n return _objectSpread({}, groupKey, _defineProperty({}, columnName, func(group, groupKey)));\n }), [].concat(_toConsumableArray(this.on), [columnName]));\n }\n }, {\n key: \"pivot\",\n value: function pivot(columnToPivot) {\n var func = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (gdf) {\n return gdf.count();\n };\n var columns = [].concat(_toConsumableArray(this.on), _toConsumableArray(this.df.distinct(columnToPivot).toArray(columnToPivot)));\n return this.df.__newInstance__(this.aggregate(function (group) {\n return group.groupBy(columnToPivot).aggregate(function (gp, gk) {\n return _defineProperty({}, gk[columnToPivot], func(gp, gk));\n }).toArray(\"aggregation\").reduce(function (p, n) {\n return _objectSpread({}, p, {}, n);\n }, {});\n }).toCollection().map(function (_ref11) {\n var aggregation = _ref11.aggregation,\n rest = _objectWithoutProperties(_ref11, [\"aggregation\"]);\n\n return _objectSpread({}, rest, {}, aggregation);\n }), columns);\n }\n }, {\n key: \"melt\",\n value: function melt() {\n var _this = this;\n\n var variableColumnName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"variable\";\n var valueColumnName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"value\";\n var columns = [].concat(_toConsumableArray(this.on), [variableColumnName, valueColumnName]);\n return this.df.__newInstance__(this.aggregate(function (group) {\n return Object.entries(group.toDict()).reduce(function (tidy, _ref12) {\n var _ref13 = _slicedToArray(_ref12, 2),\n key = _ref13[0],\n value = _ref13[1];\n\n return [].concat(_toConsumableArray(tidy), _toConsumableArray(value.reduce(function (p, n) {\n var _ref14;\n\n return !_this.on.includes(key) ? [].concat(_toConsumableArray(p), [(_ref14 = {}, _defineProperty(_ref14, variableColumnName, key), _defineProperty(_ref14, valueColumnName, n), _ref14)]) : p;\n }, [])));\n }, []);\n }).toCollection().reduce(function (p, _ref15) {\n var aggregation = _ref15.aggregation,\n rest = _objectWithoutProperties(_ref15, [\"aggregation\"]);\n\n return [].concat(_toConsumableArray(p), _toConsumableArray(aggregation.map(function (x) {\n return _objectSpread({}, rest, {}, x);\n })));\n }, []), columns);\n }\n }]);\n\n return GroupedDataFrame;\n}();\n\nexports.GroupedDataFrame = GroupedDataFrame;\n\nfunction groupBy(df, columnNames) {\n var rowsByGroup = {};\n var hashes = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = df.toCollection(true)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var row = _step2.value;\n var hash = row.select.apply(row, _toConsumableArray(columnNames)).hash();\n\n if (!rowsByGroup[hash]) {\n hashes.push(hash);\n rowsByGroup[hash] = [];\n }\n\n rowsByGroup[hash].push(row);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var groups = hashes.reduce(function (groups, hash) {\n var _rowsByGroup$hash$;\n\n groups[hash] = {\n groupKey: (_rowsByGroup$hash$ = rowsByGroup[hash][0]).select.apply(_rowsByGroup$hash$, _toConsumableArray(columnNames)).toDict(),\n hash: hash,\n group: new df.constructor(rowsByGroup[hash], df.listColumns())\n };\n return groups;\n }, {});\n return new GroupedDataFrame(df, columnNames, groups, hashes);\n}","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.find\");\n\nrequire(\"core-js/modules/es.array.find-index\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.join\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.array.slice\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.number.constructor\");\n\nrequire(\"core-js/modules/es.number.is-nan\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nrequire(\"core-js/modules/es.string.split\");\n\nrequire(\"core-js/modules/es.string.trim\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sqlParser;\n\nvar _reusables = require(\"../../reusables\");\n\nvar _errors = require(\"../../errors\");\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar REPLACMENTS = [[\"INNER JOIN\", \"INNERJOIN\"], [\"LEFT JOIN\", \"LEFTJOIN\"], [\"RIGHT JOIN\", \"RIGHTJOIN\"], [\"FULL JOIN\", \"FULLJOIN\"], [\"GROUP BY\", \"GROUPBY\"]];\nvar WHERE_OPERATORS = {\n IN: function IN(a, b) {\n return b.includes(a);\n },\n LIKE: function LIKE(a, b) {\n return b.includes(a) || a.includes(b);\n },\n \">=\": function _(a, b) {\n return a >= b;\n },\n \"<=\": function _(a, b) {\n return a <= b;\n },\n \"!=\": function _(a, b) {\n return a !== b;\n },\n \"<\": function _(a, b) {\n return a < b;\n },\n \">\": function _(a, b) {\n return a > b;\n },\n \"=\": function _(a, b) {\n return a === b;\n },\n AND: function AND(a, b) {\n return a && b;\n },\n OR: function OR(a, b) {\n return a || b;\n }\n};\nvar SELECT_FUNCTIONS = {\n COUNT: function COUNT(df) {\n return df.count();\n },\n SUM: function SUM(df, column) {\n return df.stat.sum(column);\n },\n MAX: function MAX(df, column) {\n return df.stat.max(column);\n },\n MIN: function MIN(df, column) {\n return df.stat.min(column);\n },\n AVG: function AVG(df, column) {\n return df.stat.mean(column);\n }\n};\n\nfunction match(value) {\n for (var _len = arguments.length, cases = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n cases[_key - 1] = arguments[_key];\n }\n\n var casesGen = (0, _reusables.makeGenerator)(cases);\n\n var checker = function checker(nextCase) {\n return nextCase[0](value) ? nextCase[1](value) : checker(casesGen.next().value);\n };\n\n return checker(casesGen.next().value);\n}\n\nfunction sqlArgsToArray(args) {\n return (0, _reusables.xReplace)(args.join(\" \"), [\" \", \"\"]).split(\",\");\n}\n\nfunction joinHandler(operation, tables, type) {\n var ONKeywordLocation = operation.findIndex(function (word) {\n return word.toUpperCase() === \"ON\";\n }) + 1;\n return function (df) {\n return df.join(tables[operation[0]], sqlArgsToArray(operation.filter(function (word, loc) {\n return loc >= ONKeywordLocation;\n })), type);\n };\n}\n\nvar OPERATIONS_HANDLER = {\n WHERE: function WHERE(operation) {\n var operationalTerms = (0, _reusables.xSplit)(operation.join(\" \"), \" AND \", \" OR \");\n return function (df) {\n return df.filter(function (row) {\n var conditionalOperators = operation.filter(function (term) {\n return [\"AND\", \"OR\"].includes(term.toUpperCase());\n });\n return operationalTerms.map(function (operationalTerm) {\n var operatorToApply = _reusables.xContains.apply(void 0, [operationalTerm].concat(_toConsumableArray(Object.keys(WHERE_OPERATORS))))[0];\n\n var terms = operationalTerm.split(operatorToApply).map(function (term) {\n return term.trim();\n });\n\n if (!row.has(terms[0]) && row.has(terms[1])) {\n return WHERE_OPERATORS[operatorToApply]((0, _reusables.xReplace)(terms[0].trim(), ['\"', \"\"], [\"'\", \"\"], [\"`\", \"\"]), String(row.get(terms[1])));\n }\n\n var lastTermAsNumber = Number(terms[1]);\n return WHERE_OPERATORS[operatorToApply](String(row.get(terms[0])), Number.isNaN(lastTermAsNumber) ? (0, _reusables.xReplace)(terms[1].trim(), ['\"', \"\"], [\"'\", \"\"], [\"`\", \"\"]) : lastTermAsNumber);\n }).reduce(function (prev, next) {\n return WHERE_OPERATORS[conditionalOperators.shift()](prev, next);\n });\n });\n };\n },\n JOIN: function JOIN(operation, tables) {\n return joinHandler(operation, tables, \"inner\");\n },\n INNERJOIN: function INNERJOIN(operation, tables) {\n return joinHandler(operation, tables, \"inner\");\n },\n LEFTJOIN: function LEFTJOIN(operation, tables) {\n return joinHandler(operation, tables, \"left\");\n },\n RIGHTJOIN: function RIGHTJOIN(operation, tables) {\n return joinHandler(operation, tables, \"right\");\n },\n FULLJOIN: function FULLJOIN(operation, tables) {\n return joinHandler(operation, tables, \"full\");\n },\n UNION: function UNION(operation, tables) {\n return function (df) {\n return df.union(operation[0].toUpperCase().includes(\"SELECT\") ? sqlParser(operation.join(\" \"), tables) : tables[operation[0]]);\n };\n },\n GROUPBY: function GROUPBY(operation) {\n return function (df) {\n return df.groupBy.apply(df, _toConsumableArray(sqlArgsToArray(operation)));\n };\n }\n};\n\nfunction replaceTermsInQuery(query) {\n var replacedQuery = query;\n REPLACMENTS.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n joinType = _ref2[0],\n replacment = _ref2[1];\n\n replacedQuery = replacedQuery.replace(joinType, replacment).replace(joinType.toLowerCase(), replacment);\n });\n return replacedQuery;\n}\n\nfunction sqlSplitter(query) {\n var splittedQuery = replaceTermsInQuery(query).split(\" \");\n var fromLoc = splittedQuery.findIndex(function (word) {\n return word.toUpperCase() === \"FROM\";\n });\n\n if (fromLoc === -1) {\n throw new _errors.SQLParseError(\"Your query should contains FROM keyword\");\n }\n\n return {\n selections: splittedQuery.slice(0, fromLoc),\n table: splittedQuery[fromLoc + 1],\n operations: splittedQuery.slice(fromLoc + 2, splittedQuery.length)\n };\n}\n\nfunction parseOperations(operations, tables) {\n var operationsLoc = operations.map(function (word, index) {\n return Object.keys(OPERATIONS_HANDLER).includes(word.toUpperCase()) ? index : undefined;\n }).filter(function (loc) {\n return loc !== undefined;\n });\n return operationsLoc.map(function (loc, index) {\n return OPERATIONS_HANDLER[operations[loc].toUpperCase()](operations.slice(loc + 1, operationsLoc[index + 1] ? operationsLoc[index + 1] : operations.length), tables);\n }).reduce(function (prev, next) {\n return function (df) {\n return next(prev(df));\n };\n }, function (df) {\n return df;\n });\n}\n\nfunction parseSelections(selections) {\n if (selections[0].toUpperCase() !== \"SELECT\") {\n throw new _errors.SQLParseError(\"Your query should begin with SELECT keyword\");\n }\n\n selections.shift();\n return match(selections.join(\" \").split(\",\").map(function (selection) {\n return selection.trim();\n }), [function (value) {\n return (0, _reusables.xReplace)(value[0], [\" \", \"\"]) === \"*\";\n }, function () {\n return function (df) {\n return df;\n };\n }], [function (value) {\n return value[0].toUpperCase().includes(\"DISTINCT\");\n }, function (value) {\n var columnName = (0, _reusables.xReplace)(value[0].split(\" AS \")[0], [\"DISTINCT\", \"\"], [\"distinct\", \"\"], [\" \", \"\"]);\n return function (df) {\n return df.distinct(columnName).rename(columnName, value[0].includes(\"AS\") ? value[0].split(\"AS\")[1].replace(\" \", \"\") : columnName);\n };\n }], [function (value) {\n return _reusables.xContains.apply(void 0, [value[0].toUpperCase()].concat(_toConsumableArray(Object.keys(SELECT_FUNCTIONS))))[0];\n }, function (value) {\n return function (df) {\n var functionToApply = Object.keys(SELECT_FUNCTIONS).find(function (func) {\n return value[0].toUpperCase().includes(func);\n });\n\n var applyFunction = function applyFunction(dfToImpact) {\n return SELECT_FUNCTIONS[functionToApply](dfToImpact, (0, _reusables.xReplace)(value[0], [\"\".concat(functionToApply.toLowerCase(), \"(\"), \"\"], [\"\".concat(functionToApply, \"(\"), \"\"], [\"(\", \"\"], [\")\", \"\"]));\n };\n\n return df.on && df.df ? df.aggregate(applyFunction) : applyFunction(df);\n };\n }], [function () {\n return true;\n }, function (value) {\n return function (df) {\n return df.select.apply(df, _toConsumableArray(value.map(function (column) {\n return column.split(\" AS \")[0].replace(\" \", \"\");\n }))).renameAll(value.map(function (column) {\n return column.includes(\"AS\") ? column.split(\"AS\")[1].replace(\" \", \"\") : column;\n }));\n };\n }]);\n}\n\nfunction sqlParser(query, tables) {\n var _sqlSplitter = sqlSplitter(query),\n selections = _sqlSplitter.selections,\n table = _sqlSplitter.table,\n operations = _sqlSplitter.operations;\n\n if (!table || !Object.keys(tables).includes(table)) {\n throw new _errors.SQLParseError(\"Wrong table name in your query: \".concat(table));\n }\n\n var applyOperations = parseOperations(operations, tables);\n var applySelections = parseSelections(selections);\n return applySelections(applyOperations(tables[table]));\n}","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api protected\n */\n onError(msg, desc) {\n const err = new Error(msg);\n // @ts-ignore\n err.type = \"TransportError\";\n // @ts-ignore\n err.description = desc;\n super.emit(\"error\", err);\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emit(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emit(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose() {\n this.readyState = \"closed\";\n super.emit(\"close\");\n }\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.function.name\");\n\nrequire(\"core-js/modules/es.number.constructor\");\n\nrequire(\"core-js/modules/es.number.is-nan\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reusables = require(\"../reusables\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Stat = function () {\n function Stat(df) {\n _classCallCheck(this, Stat);\n\n this.df = df;\n this.name = \"stat\";\n }\n\n _createClass(Stat, [{\n key: \"_castAsNumber\",\n value: function _castAsNumber(columnName) {\n return this.df.withColumn(columnName, function (row) {\n return Number(row.get(columnName));\n }).filter(function (row) {\n return !Number.isNaN(row.get(columnName));\n });\n }\n }, {\n key: \"sum\",\n value: function sum(columnName) {\n return Number(this.df.reduce(function (p, n) {\n return (0, _reusables.isNumber)(n.get(columnName)) ? p + Number(n.get(columnName)) : p;\n }, 0));\n }\n }, {\n key: \"max\",\n value: function max(columnName) {\n return this._castAsNumber(columnName).reduce(function (p, n) {\n return n.get(columnName) > p.get(columnName) ? n : p;\n }).get(columnName);\n }\n }, {\n key: \"min\",\n value: function min(columnName) {\n return this._castAsNumber(columnName).reduce(function (p, n) {\n return p.get(columnName) > n.get(columnName) ? n : p;\n }).get(columnName);\n }\n }, {\n key: \"mean\",\n value: function mean(columnName) {\n var numericDF = this.df.filter(function (row) {\n return (0, _reusables.isNumber)(row.get(columnName));\n });\n return Number(numericDF.reduce(function (p, n) {\n return (0, _reusables.isNumber)(n.get(columnName)) ? p + Number(n.get(columnName)) : p;\n }, 0)) / numericDF.count();\n }\n }, {\n key: \"average\",\n value: function average(columnName) {\n return this.mean(columnName);\n }\n }, {\n key: \"var\",\n value: function _var(columnName) {\n var population = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var numericDF = this.df.filter(function (row) {\n return (0, _reusables.isNumber)(row.get(columnName));\n });\n var mean = this.mean(columnName);\n return Number(numericDF.reduce(function (p, n) {\n return p + Math.pow(n.get(columnName) - mean, 2);\n }, 0)) / (numericDF.count() - (population ? 0 : 1));\n }\n }, {\n key: \"sd\",\n value: function sd(columnName) {\n var population = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return Math.sqrt(this.var(columnName, population));\n }\n }, {\n key: \"stats\",\n value: function stats(columnName) {\n return {\n sum: this.sum(columnName),\n mean: this.mean(columnName),\n min: this.min(columnName),\n max: this.max(columnName),\n var: this.var(columnName),\n varpop: this.var(columnName, true),\n sd: this.sd(columnName),\n sdpop: this.sd(columnName, true)\n };\n }\n }]);\n\n return Stat;\n}();\n\nvar _default = Stat;\nexports.default = _default;","import globalThis from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n","import globalThis from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.object.assign\");\n\nrequire(\"core-js/modules/es.object.entries\");\n\nrequire(\"core-js/modules/es.object.freeze\");\n\nrequire(\"core-js/modules/es.object.get-prototype-of\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.object.values\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nrequire(\"regenerator-runtime/runtime\");\n\nvar _reusables = require(\"./reusables\");\n\nvar _errors = require(\"./errors\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar __columns__ = Symbol(\"columns\");\n\nvar __values__ = Symbol(\"values\");\n\nvar Row = function () {\n function Row(data, columns) {\n _classCallCheck(this, Row);\n\n if (!data) throw new _errors.ArgumentTypeError(data, \"Row | Array | Object\");\n this[__columns__] = columns ? columns : Object.keys(data);\n this[__values__] = Object.freeze(this._build(data));\n }\n\n _createClass(Row, [{\n key: Symbol.iterator,\n value: regeneratorRuntime.mark(function value() {\n var _i, _Object$values, value;\n\n return regeneratorRuntime.wrap(function value$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _i = 0, _Object$values = Object.values(this[__values__]);\n\n case 1:\n if (!(_i < _Object$values.length)) {\n _context.next = 8;\n break;\n }\n\n value = _Object$values[_i];\n _context.next = 5;\n return value;\n\n case 5:\n _i++;\n _context.next = 1;\n break;\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, value, this);\n })\n }, {\n key: \"__newInstance__\",\n value: function __newInstance__(data, columns) {\n var _Object$assign;\n\n if (!(0, _reusables.arrayEqual)(this[__columns__], columns)) {\n return new Row(data, columns);\n }\n\n return Object.assign(Object.create(Object.getPrototypeOf(this)), this, (_Object$assign = {}, _defineProperty(_Object$assign, __values__, data), _defineProperty(_Object$assign, __columns__, _toConsumableArray(columns)), _Object$assign));\n }\n }, {\n key: \"_build\",\n value: function _build(data) {\n if (data instanceof Array) return this._fromArray(data);\n if (data instanceof Row) return this._fromObject(data[__values__]);\n if (data instanceof Object && data !== null) return this._fromObject(data);\n throw new _errors.ArgumentTypeError(data, \"Row | Array | Object\");\n }\n }, {\n key: \"_fromObject\",\n value: function _fromObject(object) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(this[__columns__].map(function (column) {\n return _defineProperty({}, column, object[column]);\n }))));\n }\n }, {\n key: \"_fromArray\",\n value: function _fromArray(array) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.entries(this[__columns__]).map(function (column) {\n return _defineProperty({}, column[1], array[column[0]]);\n }))));\n }\n }, {\n key: \"toDict\",\n value: function toDict() {\n return Object.assign({}, this[__values__]);\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n return _toConsumableArray(this);\n }\n }, {\n key: \"size\",\n value: function size() {\n return this[__columns__].length;\n }\n }, {\n key: \"hash\",\n value: function hash() {\n return (0, _reusables.hashCode)(JSON.stringify(this[__values__]));\n }\n }, {\n key: \"has\",\n value: function has(columnName) {\n return this[__columns__].includes(columnName);\n }\n }, {\n key: \"select\",\n value: function select() {\n var _this = this;\n\n for (var _len = arguments.length, columnNames = new Array(_len), _key = 0; _key < _len; _key++) {\n columnNames[_key] = arguments[_key];\n }\n\n return this.__newInstance__(Object.assign.apply(Object, [{}].concat(_toConsumableArray(columnNames.map(function (column) {\n return _defineProperty({}, column, _this.get(column));\n })))), columnNames);\n }\n }, {\n key: \"get\",\n value: function get(columnToGet) {\n if (!this.has(columnToGet)) {\n throw new _errors.NoSuchColumnError(columnToGet, this[__columns__]);\n }\n\n return this[__values__][columnToGet];\n }\n }, {\n key: \"set\",\n value: function set(columnToSet, value) {\n var newRow = Object.assign({}, this[__values__], _defineProperty({}, columnToSet, value));\n return this.__newInstance__(newRow, Object.keys(newRow));\n }\n }, {\n key: \"delete\",\n value: function _delete(columnToDel) {\n if (!this.has(columnToDel)) {\n throw new _errors.NoSuchColumnError(columnToDel, this[__columns__]);\n }\n\n return this.select.apply(this, _toConsumableArray(this[__columns__].filter(function (column) {\n return column !== columnToDel;\n })));\n }\n }]);\n\n return Row;\n}();\n\nvar _default = Row;\nexports.default = _default;","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.join\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.parse-float\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.set\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/es.string.split\");\n\nrequire(\"core-js/modules/esnext.set.add-all\");\n\nrequire(\"core-js/modules/esnext.set.delete-all\");\n\nrequire(\"core-js/modules/esnext.set.difference\");\n\nrequire(\"core-js/modules/esnext.set.every\");\n\nrequire(\"core-js/modules/esnext.set.filter\");\n\nrequire(\"core-js/modules/esnext.set.find\");\n\nrequire(\"core-js/modules/esnext.set.intersection\");\n\nrequire(\"core-js/modules/esnext.set.is-disjoint-from\");\n\nrequire(\"core-js/modules/esnext.set.is-subset-of\");\n\nrequire(\"core-js/modules/esnext.set.is-superset-of\");\n\nrequire(\"core-js/modules/esnext.set.join\");\n\nrequire(\"core-js/modules/esnext.set.map\");\n\nrequire(\"core-js/modules/esnext.set.reduce\");\n\nrequire(\"core-js/modules/esnext.set.some\");\n\nrequire(\"core-js/modules/esnext.set.symmetric-difference\");\n\nrequire(\"core-js/modules/esnext.set.union\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isArrayOfType = isArrayOfType;\nexports.isNumber = isNumber;\nexports.arrayEqual = arrayEqual;\nexports.transpose = transpose;\nexports.makeGenerator = makeGenerator;\nexports.iter = iter;\nexports.chain = chain;\nexports.xSplit = xSplit;\nexports.xReplace = xReplace;\nexports.xContains = xContains;\nexports.hashCode = hashCode;\n\nrequire(\"regenerator-runtime/runtime\");\n\nvar _marked = regeneratorRuntime.mark(makeGenerator),\n _marked2 = regeneratorRuntime.mark(createIterGenerator);\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction isArrayOfType(value, ofType) {\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return value instanceof Array && value.hasOwnProperty(index) && (ofType === String ? typeof value[index] === \"string\" : value[index] instanceof ofType) ? true : false;\n}\n\nfunction isNumber(x) {\n return !isNaN(parseFloat(x)) && isFinite(x);\n}\n\nfunction arrayEqual(a, b) {\n var byOrder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return byOrder ? Object.keys(a).map(function (x) {\n return a[x] === b[x];\n }).reduce(function (p, n) {\n return p ? n : p;\n }, true) : _toConsumableArray(new Set(a.filter(function (x) {\n return !new Set(b).has(x);\n }))).length === 0;\n}\n\nfunction transpose(table) {\n var tableSize = table.map(function (row) {\n return row.length;\n }).reduce(function (p, n) {\n return Math.max(p, n);\n }, 0);\n return _toConsumableArray(Array(tableSize).keys()).map(function (index) {\n return table.map(function (row) {\n return row[index];\n });\n });\n}\n\nfunction makeGenerator(x) {\n return regeneratorRuntime.wrap(function makeGenerator$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.delegateYield(x, \"t0\", 1);\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked);\n}\n\nfunction createIterGenerator(data, func) {\n var abort,\n i,\n _iteratorNormalCompletion,\n _didIteratorError,\n _iteratorError,\n _iterator,\n _step,\n iteration,\n modifiedRow,\n _args2 = arguments;\n\n return regeneratorRuntime.wrap(function createIterGenerator$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n abort = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : function () {\n return false;\n };\n i = 0;\n _iteratorNormalCompletion = true;\n _didIteratorError = false;\n _iteratorError = undefined;\n _context2.prev = 5;\n _iterator = data[Symbol.iterator]();\n\n case 7:\n if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {\n _context2.next = 18;\n break;\n }\n\n iteration = _step.value;\n\n if (!abort()) {\n _context2.next = 11;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 11:\n modifiedRow = func(iteration, i++);\n\n if (!modifiedRow) {\n _context2.next = 15;\n break;\n }\n\n _context2.next = 15;\n return modifiedRow;\n\n case 15:\n _iteratorNormalCompletion = true;\n _context2.next = 7;\n break;\n\n case 18:\n _context2.next = 24;\n break;\n\n case 20:\n _context2.prev = 20;\n _context2.t0 = _context2[\"catch\"](5);\n _didIteratorError = true;\n _iteratorError = _context2.t0;\n\n case 24:\n _context2.prev = 24;\n _context2.prev = 25;\n\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n\n case 27:\n _context2.prev = 27;\n\n if (!_didIteratorError) {\n _context2.next = 30;\n break;\n }\n\n throw _iteratorError;\n\n case 30:\n return _context2.finish(27);\n\n case 31:\n return _context2.finish(24);\n\n case 32:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _marked2, null, [[5, 20, 24, 32], [25,, 27, 31]]);\n}\n\nfunction iter(data, func) {\n var abort = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {\n return false;\n };\n return Array.from(createIterGenerator(data, func, abort));\n}\n\nfunction chain(data) {\n for (var _len = arguments.length, operations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n operations[_key - 1] = arguments[_key];\n }\n\n return Array.from(iter(data, operations.reduce(function (p, n) {\n return function (x, i) {\n var prev = p(x, i);\n var next = prev ? n(prev, i) : false;\n return next === true ? prev : next;\n };\n }, function (x) {\n return x;\n })));\n}\n\nfunction xSplit(stringToSplit) {\n for (var _len2 = arguments.length, patterns = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n patterns[_key2 - 1] = arguments[_key2];\n }\n\n return patterns.reduce(function (prev, next) {\n return prev.map(function (str) {\n return str.split(next);\n }).reduce(function (p, n) {\n return [].concat(_toConsumableArray(p), _toConsumableArray(n));\n }, []);\n }, [stringToSplit]);\n}\n\nfunction xReplace(stringToReplace) {\n for (var _len3 = arguments.length, patterns = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n patterns[_key3 - 1] = arguments[_key3];\n }\n\n return patterns.reduce(function (prev, next) {\n return prev.split(next[0]).join(next[1]);\n }, stringToReplace);\n}\n\nfunction xContains(stringToFilter) {\n for (var _len4 = arguments.length, patterns = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n patterns[_key4 - 1] = arguments[_key4];\n }\n\n return patterns.filter(function (pattern) {\n return stringToFilter.includes(pattern);\n });\n}\n\nfunction hashCode(str) {\n var hash = 0;\n var char;\n if (str.length === 0) return hash;\n\n for (var i = 0; i < str.length; i++) {\n char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n\n return hash;\n}","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.__hashes__ = exports.__groups__ = exports.__rows__ = exports.__columns__ = void 0;\n\nvar __columns__ = Symbol(\"columns\");\n\nexports.__columns__ = __columns__;\n\nvar __rows__ = Symbol(\"rows\");\n\nexports.__rows__ = __rows__;\n\nvar __groups__ = Symbol(\"groups\");\n\nexports.__groups__ = __groups__;\n\nvar __hashes__ = Symbol(\"hashes\");\n\nexports.__hashes__ = __hashes__;","import { Transport } from \"../transport.js\";\nimport parseqs from \"parseqs\";\nimport yeast from \"yeast\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emit(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = this.onClose.bind(this);\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emit(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = parseqs.encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return (!!WebSocket &&\n !(\"__initialize\" in WebSocket && this.name === WS.prototype.name));\n }\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.function.name\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _dataframe = _interopRequireDefault(require(\"../dataframe\"));\n\nvar _errors = require(\"../errors\");\n\nvar _reusables = require(\"../reusables\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Matrix = function () {\n function Matrix(df) {\n _classCallCheck(this, Matrix);\n\n this.df = df;\n this.name = \"matrix\";\n }\n\n _createClass(Matrix, [{\n key: \"isCommutative\",\n value: function isCommutative(df) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!(df instanceof _dataframe.default)) throw new _errors.ArgumentTypeError(df, \"DataFrame\");\n return (0, _reusables.arrayEqual)(this.df.dim(), reverse ? df.dim().reverse() : df.dim(), true);\n }\n }, {\n key: \"add\",\n value: function add(df) {\n var _this = this;\n\n if (!this.isCommutative(df)) {\n throw new _errors.WrongSchemaError(this.df.dim(), df.dim());\n }\n\n var columns = _toConsumableArray(Array(this.df.dim()[1]).keys());\n\n return this.df.__newInstance__(_toConsumableArray((0, _reusables.iter)(Object.keys(_toConsumableArray(this.df)), function (rowKey) {\n var a = _toConsumableArray(_this.df)[rowKey].toArray();\n\n var b = _toConsumableArray(df)[rowKey].toArray();\n\n return columns.map(function (column) {\n return a[column] + b[column];\n });\n })), this.df.listColumns());\n }\n }, {\n key: \"product\",\n value: function product(number) {\n if (!(typeof number === \"number\")) throw new _errors.ArgumentTypeError(number, \"Number\");\n return this.df.map(function (row) {\n return row.toArray().map(function (column) {\n return column * number;\n });\n });\n }\n }, {\n key: \"dot\",\n value: function dot(df) {\n var _this2 = this;\n\n if (!this.isCommutative(df, true)) {\n throw new _errors.WrongSchemaError(this.df.dim(), df.dim().reverse());\n }\n\n var columns = _toConsumableArray(Array(this.df.dim()[0]).keys());\n\n return this.df.__newInstance__(_toConsumableArray((0, _reusables.iter)(Object.keys(_toConsumableArray(this.df)), function (rowKey) {\n var a = _toConsumableArray(_this2.df)[rowKey].toArray();\n\n return _toConsumableArray((0, _reusables.iter)(columns, function (column) {\n var b = _toConsumableArray(df.transpose())[column].toArray();\n\n return Object.keys(b).reduce(function (p, n) {\n return p + b[n] * a[n];\n }, 0);\n }));\n })), columns);\n }\n }]);\n\n return Matrix;\n}();\n\nvar _default = Matrix;\nexports.default = _default;","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.index-of\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.join\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.function.name\");\n\nrequire(\"core-js/modules/es.map\");\n\nrequire(\"core-js/modules/es.object.get-prototype-of\");\n\nrequire(\"core-js/modules/es.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.reflect.construct\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/esnext.map.delete-all\");\n\nrequire(\"core-js/modules/esnext.map.every\");\n\nrequire(\"core-js/modules/esnext.map.filter\");\n\nrequire(\"core-js/modules/esnext.map.find\");\n\nrequire(\"core-js/modules/esnext.map.find-key\");\n\nrequire(\"core-js/modules/esnext.map.includes\");\n\nrequire(\"core-js/modules/esnext.map.key-of\");\n\nrequire(\"core-js/modules/esnext.map.map-keys\");\n\nrequire(\"core-js/modules/esnext.map.map-values\");\n\nrequire(\"core-js/modules/esnext.map.merge\");\n\nrequire(\"core-js/modules/esnext.map.reduce\");\n\nrequire(\"core-js/modules/esnext.map.some\");\n\nrequire(\"core-js/modules/esnext.map.update\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WrongTableNameError = exports.TableAlreadyExistsError = exports.SQLParseError = exports.ArgumentTypeError = exports.WrongSchemaError = exports.NoSuchColumnError = exports.MixedTypeError = exports.FileNotFoundError = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar FileNotFoundError = function (_Error) {\n _inherits(FileNotFoundError, _Error);\n\n function FileNotFoundError(fileName) {\n var _this;\n\n _classCallCheck(this, FileNotFoundError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(FileNotFoundError).call(this, Error));\n _this.message = \"\".concat(fileName, \" not found. You maybe use a wrong path or url. Be sure you use absolute path, relative one being not supported.\");\n _this.name = \"FileNotFoundError\";\n return _this;\n }\n\n return FileNotFoundError;\n}(_wrapNativeSuper(Error));\n\nexports.FileNotFoundError = FileNotFoundError;\n\nvar MixedTypeError = function (_TypeError) {\n _inherits(MixedTypeError, _TypeError);\n\n function MixedTypeError() {\n var _this2;\n\n _classCallCheck(this, MixedTypeError);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(MixedTypeError).call(this, TypeError));\n\n for (var _len = arguments.length, types = new Array(_len), _key = 0; _key < _len; _key++) {\n types[_key] = arguments[_key];\n }\n\n _this2.message = \"can't work with multiple variable types: [\".concat(types.join(\",\"), \"].\");\n _this2.name = \"MixedTypeError\";\n return _this2;\n }\n\n return MixedTypeError;\n}(_wrapNativeSuper(TypeError));\n\nexports.MixedTypeError = MixedTypeError;\n\nvar NoSuchColumnError = function (_Error2) {\n _inherits(NoSuchColumnError, _Error2);\n\n function NoSuchColumnError(column, columns) {\n var _this3;\n\n _classCallCheck(this, NoSuchColumnError);\n\n _this3 = _possibleConstructorReturn(this, _getPrototypeOf(NoSuchColumnError).call(this, Error));\n _this3.message = \"\".concat(column, \" not found in [\").concat(columns.join(\", \"), \"].\");\n _this3.name = \"NoSuchColumnError\";\n return _this3;\n }\n\n return NoSuchColumnError;\n}(_wrapNativeSuper(Error));\n\nexports.NoSuchColumnError = NoSuchColumnError;\n\nvar WrongSchemaError = function (_Error3) {\n _inherits(WrongSchemaError, _Error3);\n\n function WrongSchemaError(columns, expected) {\n var _this4;\n\n _classCallCheck(this, WrongSchemaError);\n\n _this4 = _possibleConstructorReturn(this, _getPrototypeOf(WrongSchemaError).call(this, Error));\n _this4.message = \"[\".concat(columns.join(\", \"), \"] while expecting [\").concat(expected.join(\", \"), \"].\");\n _this4.name = \"WrongSchemaError\";\n return _this4;\n }\n\n return WrongSchemaError;\n}(_wrapNativeSuper(Error));\n\nexports.WrongSchemaError = WrongSchemaError;\n\nvar ArgumentTypeError = function (_TypeError2) {\n _inherits(ArgumentTypeError, _TypeError2);\n\n function ArgumentTypeError(input, expected) {\n var _this5;\n\n _classCallCheck(this, ArgumentTypeError);\n\n _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ArgumentTypeError).call(this, TypeError));\n _this5.message = \"\".concat(input && input.constructor ? input.constructor.name : _typeof(input), \" while expecting \").concat(expected, \".\");\n _this5.name = \"ArgumentTypeError\";\n return _this5;\n }\n\n return ArgumentTypeError;\n}(_wrapNativeSuper(TypeError));\n\nexports.ArgumentTypeError = ArgumentTypeError;\n\nvar SQLParseError = function (_Error4) {\n _inherits(SQLParseError, _Error4);\n\n function SQLParseError(message) {\n var _this6;\n\n _classCallCheck(this, SQLParseError);\n\n _this6 = _possibleConstructorReturn(this, _getPrototypeOf(SQLParseError).call(this, Error));\n _this6.message = \"\".concat(message, \".\");\n _this6.name = \"SQLParseError\";\n return _this6;\n }\n\n return SQLParseError;\n}(_wrapNativeSuper(Error));\n\nexports.SQLParseError = SQLParseError;\n\nvar TableAlreadyExistsError = function (_Error5) {\n _inherits(TableAlreadyExistsError, _Error5);\n\n function TableAlreadyExistsError(tableName) {\n var _this7;\n\n _classCallCheck(this, TableAlreadyExistsError);\n\n _this7 = _possibleConstructorReturn(this, _getPrototypeOf(TableAlreadyExistsError).call(this, Error));\n _this7.message = \"The SQL temporary table \".concat(tableName, \" already exits. Use overwrite = true to overwrite it.\");\n _this7.name = \"TableAlreadyExistsError\";\n return _this7;\n }\n\n return TableAlreadyExistsError;\n}(_wrapNativeSuper(Error));\n\nexports.TableAlreadyExistsError = TableAlreadyExistsError;\n\nvar WrongTableNameError = function (_Error6) {\n _inherits(WrongTableNameError, _Error6);\n\n function WrongTableNameError(tableName) {\n var _this8;\n\n _classCallCheck(this, WrongTableNameError);\n\n _this8 = _possibleConstructorReturn(this, _getPrototypeOf(WrongTableNameError).call(this, Error));\n _this8.message = \"The SQL temporary table \".concat(tableName, \" is not allowed. Avoid to use Spaces, quotes, tabs....\");\n _this8.name = \"WrongTableNameError\";\n return _this8;\n }\n\n return WrongTableNameError;\n}(_wrapNativeSuper(Error));\n\nexports.WrongTableNameError = WrongTableNameError;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.date.to-json\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.promise\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.match\");\n\nrequire(\"core-js/modules/web.url.to-json\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toDSV = toDSV;\nexports.toCSV = toCSV;\nexports.toTSV = toTSV;\nexports.toPSV = toPSV;\nexports.toText = toText;\nexports.toJSON = toJSON;\nexports.fromDSV = fromDSV;\nexports.fromCSV = fromCSV;\nexports.fromTSV = fromTSV;\nexports.fromPSV = fromPSV;\nexports.fromText = fromText;\nexports.fromJSON = fromJSON;\n\nvar _d3Request = require(\"d3-request\");\n\nvar _d3Dsv = require(\"d3-dsv\");\n\nvar _symbol = require(\"./symbol\");\n\nvar _errors = require(\"./errors\");\n\nvar FILE_PATTERN = /^(?:[/]|[./]|(?:[a-zA-z]:\\/)).*$/;\n\nfunction saveFile(path, content) {\n try {\n require(\"fs\").writeFileSync(path, content);\n } catch (e) {\n console.warn(\"File system module is not available.\");\n }\n}\n\nfunction loadTextFile(file, func) {\n if (FileReader && File) {\n var reader = new FileReader();\n\n reader.onload = function (event) {\n return func(event.target.result);\n };\n\n reader.readAsText(file);\n }\n}\n\nfunction addFileProtocol(path) {\n var isValidFilePath = String(path).match(FILE_PATTERN);\n\n if (isValidFilePath) {\n return \"file://\".concat(path);\n }\n\n return path;\n}\n\nfunction toDSV(df) {\n var sep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \";\";\n var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var parser = (0, _d3Dsv.dsvFormat)(sep);\n var csvContent = header ? parser.format(df.toCollection(), df[_symbol.__columns__]) : parser.formatRows(df.toArray());\n\n if (path) {\n saveFile(df._cleanSavePath(path), csvContent);\n }\n\n return csvContent;\n}\n\nfunction toText(df) {\n var sep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \";\";\n var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n return df.toDSV(sep, header, path);\n}\n\nfunction toCSV(df) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n return df.toDSV(\",\", header, path);\n}\n\nfunction toTSV(df) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n return df.toDSV(\"\\t\", header, path);\n}\n\nfunction toPSV(df) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n return df.toDSV(\"|\", header, path);\n}\n\nfunction toJSON(df) {\n var asCollection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var jsonContent = JSON.stringify(asCollection ? df.toCollection() : df.toDict());\n\n if (path) {\n saveFile(df._cleanSavePath(path), jsonContent);\n }\n\n return jsonContent;\n}\n\nfunction fromDSV(pathOrFile) {\n var sep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \";\";\n var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var parser = (0, _d3Dsv.dsvFormat)(sep);\n return new Promise(function (resolve) {\n var parseText = function parseText(fileContent) {\n if (fileContent.includes(\"Error: ENOENT\")) return resolve(null);\n var data = header ? parser.parse(fileContent) : parser.parseRows(fileContent);\n return resolve(data);\n };\n\n return typeof pathOrFile === \"string\" ? (0, _d3Request.text)(addFileProtocol(pathOrFile), parseText) : loadTextFile(pathOrFile, parseText);\n }).then(function (fileContent) {\n if (fileContent === null) {\n throw new _errors.FileNotFoundError(pathOrFile);\n }\n\n return fileContent;\n });\n}\n\nfunction fromText(pathOrFile) {\n var sep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \";\";\n var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n return fromDSV(pathOrFile, sep, header);\n}\n\nfunction fromCSV(pathOrFile) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return fromDSV(pathOrFile, \",\", header);\n}\n\nfunction fromTSV(pathOrFile) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return fromDSV(pathOrFile, \"\\t\", header);\n}\n\nfunction fromPSV(pathOrFile) {\n var header = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return fromDSV(pathOrFile, \"|\", header);\n}\n\nfunction fromJSON(pathOrFile) {\n return new Promise(function (resolve) {\n return typeof pathOrFile === \"string\" ? (0, _d3Request.json)(addFileProtocol(pathOrFile), resolve) : loadTextFile(pathOrFile, function (txt) {\n return resolve(JSON.parse(txt));\n });\n }).then(function (fileContent) {\n if (fileContent === null) {\n throw new _errors.FileNotFoundError(pathOrFile);\n }\n\n return fileContent;\n });\n}","export default (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.array.includes\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.array.join\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.array.reduce-right\");\n\nrequire(\"core-js/modules/es.array.slice\");\n\nrequire(\"core-js/modules/es.array.sort\");\n\nrequire(\"core-js/modules/es.date.to-json\");\n\nrequire(\"core-js/modules/es.date.to-string\");\n\nrequire(\"core-js/modules/es.function.name\");\n\nrequire(\"core-js/modules/es.object.assign\");\n\nrequire(\"core-js/modules/es.object.entries\");\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptor\");\n\nrequire(\"core-js/modules/es.object.is\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.object.values\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.set\");\n\nrequire(\"core-js/modules/es.string.includes\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nrequire(\"core-js/modules/esnext.set.add-all\");\n\nrequire(\"core-js/modules/esnext.set.delete-all\");\n\nrequire(\"core-js/modules/esnext.set.difference\");\n\nrequire(\"core-js/modules/esnext.set.every\");\n\nrequire(\"core-js/modules/esnext.set.filter\");\n\nrequire(\"core-js/modules/esnext.set.find\");\n\nrequire(\"core-js/modules/esnext.set.intersection\");\n\nrequire(\"core-js/modules/esnext.set.is-disjoint-from\");\n\nrequire(\"core-js/modules/esnext.set.is-subset-of\");\n\nrequire(\"core-js/modules/esnext.set.is-superset-of\");\n\nrequire(\"core-js/modules/esnext.set.join\");\n\nrequire(\"core-js/modules/esnext.set.map\");\n\nrequire(\"core-js/modules/esnext.set.reduce\");\n\nrequire(\"core-js/modules/esnext.set.some\");\n\nrequire(\"core-js/modules/esnext.set.symmetric-difference\");\n\nrequire(\"core-js/modules/esnext.set.union\");\n\nrequire(\"core-js/modules/web.dom-collections.for-each\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nrequire(\"core-js/modules/web.url.to-json\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nrequire(\"regenerator-runtime/runtime\");\n\nvar _reusables = require(\"./reusables\");\n\nvar _errors = require(\"./errors\");\n\nvar _row = _interopRequireDefault(require(\"./row\"));\n\nvar _group = require(\"./group\");\n\nvar _symbol = require(\"./symbol\");\n\nvar io = _interopRequireWildcard(require(\"./io\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DataFrame = function () {\n _createClass(DataFrame, null, [{\n key: \"setDefaultModules\",\n value: function setDefaultModules() {\n for (var _len = arguments.length, defaultModules = new Array(_len), _key = 0; _key < _len; _key++) {\n defaultModules[_key] = arguments[_key];\n }\n\n DataFrame.defaultModules = defaultModules;\n }\n }, {\n key: \"fromDSV\",\n value: function fromDSV() {\n return io.fromDSV.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }, {\n key: \"fromText\",\n value: function fromText() {\n return io.fromText.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }, {\n key: \"fromCSV\",\n value: function fromCSV() {\n return io.fromCSV.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }, {\n key: \"fromTSV\",\n value: function fromTSV() {\n return io.fromTSV.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }, {\n key: \"fromPSV\",\n value: function fromPSV() {\n return io.fromPSV.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }, {\n key: \"fromJSON\",\n value: function fromJSON() {\n return io.fromJSON.apply(io, arguments).then(function (content) {\n return new DataFrame(content);\n });\n }\n }]);\n\n function DataFrame(data, columns) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, DataFrame);\n\n var _this$_build = this._build(data, columns);\n\n var _this$_build2 = _slicedToArray(_this$_build, 2);\n\n this[_symbol.__rows__] = _this$_build2[0];\n this[_symbol.__columns__] = _this$_build2[1];\n this.options = options;\n this.options.modules = [].concat(_toConsumableArray(DataFrame.defaultModules), _toConsumableArray(this.options.modules || []));\n Object.assign.apply(Object, [this].concat(_toConsumableArray(this.__instanciateModules__(this.options.modules))));\n }\n\n _createClass(DataFrame, [{\n key: Symbol.iterator,\n value: regeneratorRuntime.mark(function value() {\n var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row;\n\n return regeneratorRuntime.wrap(function value$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _iteratorNormalCompletion = true;\n _didIteratorError = false;\n _iteratorError = undefined;\n _context.prev = 3;\n _iterator = this[_symbol.__rows__][Symbol.iterator]();\n\n case 5:\n if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {\n _context.next = 12;\n break;\n }\n\n row = _step.value;\n _context.next = 9;\n return row;\n\n case 9:\n _iteratorNormalCompletion = true;\n _context.next = 5;\n break;\n\n case 12:\n _context.next = 18;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](3);\n _didIteratorError = true;\n _iteratorError = _context.t0;\n\n case 18:\n _context.prev = 18;\n _context.prev = 19;\n\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n\n case 21:\n _context.prev = 21;\n\n if (!_didIteratorError) {\n _context.next = 24;\n break;\n }\n\n throw _iteratorError;\n\n case 24:\n return _context.finish(21);\n\n case 25:\n return _context.finish(18);\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, value, this, [[3, 14, 18, 26], [19,, 21, 25]]);\n })\n }, {\n key: \"_columnsAreEquals\",\n value: function _columnsAreEquals(columns) {\n var columns2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this[_symbol.__columns__];\n\n for (var _i2 = 0, _Object$keys = Object.keys(columns); _i2 < _Object$keys.length; _i2++) {\n var key = _Object$keys[_i2];\n if (columns[key] !== columns2[key]) return false;\n }\n\n return true;\n }\n }, {\n key: \"__newInstance__\",\n value: function __newInstance__(data, columns) {\n if (!this._columnsAreEquals(columns) || !(data[0] instanceof _row.default)) {\n return new DataFrame(data, columns, this.options);\n }\n\n var firstRowColumns = Object.keys(data[0].toDict());\n\n if (!(0, _reusables.arrayEqual)(firstRowColumns, this[_symbol.__columns__], true)) {\n return new DataFrame(data, firstRowColumns, this.options);\n }\n\n var newInstance = new DataFrame([], [], this.options);\n newInstance[_symbol.__rows__] = _toConsumableArray(data);\n newInstance[_symbol.__columns__] = _toConsumableArray(columns);\n return newInstance;\n }\n }, {\n key: \"__instanciateModules__\",\n value: function __instanciateModules__(modules) {\n var _this = this;\n\n var df = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return modules.map(function (Plugin) {\n var pluginInstance = new Plugin(df ? df : _this);\n return _defineProperty({}, pluginInstance.name, pluginInstance);\n });\n }\n }, {\n key: \"_build\",\n value: function _build(data, columns) {\n if (data instanceof DataFrame) {\n return this._fromArray(Array.from(data[_symbol.__rows__]), columns || data[_symbol.__columns__]);\n }\n\n if (data instanceof Array && data.length > 0) {\n return this._fromArray(data, columns || Array.from(new Set(data.slice(0, 10).concat(data.slice(-10, -1)).map(function (row) {\n return Object.keys(row);\n }).reduce(function (p, n) {\n return p.concat(n);\n }))));\n }\n\n if (data instanceof Array && data.length === 0) {\n return this._fromArray(data, columns ? columns : []);\n }\n\n if (data instanceof Object) {\n return this._fromDict(data, columns || Object.keys(data));\n }\n\n throw new _errors.ArgumentTypeError(data, \"DataFrame | Array | Object\");\n }\n }, {\n key: \"_fromDict\",\n value: function _fromDict(dict, columns) {\n return [(0, _reusables.transpose)(Object.values(dict)).map(function (row) {\n return new _row.default(row, columns);\n }), columns];\n }\n }, {\n key: \"_fromArray\",\n value: function _fromArray(array, columns) {\n return [array.map(function (row) {\n return new _row.default(row, columns);\n }), columns];\n }\n }, {\n key: \"_joinByType\",\n value: function _joinByType(gdf1, gdf2, type, newColumns) {\n var _this2 = this;\n\n var gdf2Hashs = gdf2.listHashs();\n return gdf1.toCollection().map(function (_ref2) {\n var group = _ref2.group,\n hash = _ref2.hash;\n var isContained = gdf2Hashs.includes(hash);\n var modifiedGroup = group;\n\n if (gdf2.get(hash)) {\n var gdf2Collection = gdf2.get(hash).group.toCollection();\n var combinedGroup = group.toCollection().map(function (row) {\n return gdf2Collection.map(function (row2) {\n return Object.assign({}, row2, row);\n });\n }).reduce(function (p, n) {\n return [].concat(_toConsumableArray(p), _toConsumableArray(n));\n }, []);\n modifiedGroup = _this2.__newInstance__(combinedGroup, newColumns);\n }\n\n var filterCondition = function filterCondition(bool) {\n return bool ? modifiedGroup : false;\n };\n\n if (type === \"full\") return modifiedGroup;\n return type === \"out\" ? filterCondition(!isContained) : filterCondition(isContained);\n }).filter(function (group) {\n return group;\n });\n }\n }, {\n key: \"_join\",\n value: function _join(dfToJoin, columnNames, types) {\n if (!(dfToJoin instanceof DataFrame)) throw new _errors.ArgumentTypeError(dfToJoin, \"DataFrame\");\n\n var newColumns = _toConsumableArray(new Set([].concat(_toConsumableArray(this.listColumns()), _toConsumableArray(dfToJoin.listColumns()))));\n\n var columns = Array.isArray(columnNames) ? columnNames : [columnNames];\n var gdf = this.groupBy.apply(this, _toConsumableArray(columns));\n var gdfToJoin = dfToJoin.groupBy.apply(dfToJoin, _toConsumableArray(columns));\n return [this.__newInstance__([], newColumns)].concat(_toConsumableArray((0, _reusables.iter)([].concat(_toConsumableArray(types[0] ? this._joinByType(gdf, gdfToJoin, types[0], newColumns) : []), _toConsumableArray(types[1] ? this._joinByType(gdfToJoin, gdf, types[1], newColumns) : [])), function (group) {\n return group.restructure(newColumns);\n }))).reduce(function (p, n) {\n return p.union(n);\n }).dropDuplicates();\n }\n }, {\n key: \"_cleanSavePath\",\n value: function _cleanSavePath(path) {\n return path.replace(\"file://\", \"/\");\n }\n }, {\n key: \"toDSV\",\n value: function toDSV() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return io.toDSV.apply(io, [this].concat(args));\n }\n }, {\n key: \"toCSV\",\n value: function toCSV() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return io.toCSV.apply(io, [this].concat(args));\n }\n }, {\n key: \"toTSV\",\n value: function toTSV() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return io.toTSV.apply(io, [this].concat(args));\n }\n }, {\n key: \"toPSV\",\n value: function toPSV() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return io.toPSV.apply(io, [this].concat(args));\n }\n }, {\n key: \"toText\",\n value: function toText() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return io.toText.apply(io, [this].concat(args));\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return io.toJSON.apply(io, [this].concat(args));\n }\n }, {\n key: \"toDict\",\n value: function toDict() {\n var _this3 = this;\n\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.entries(this.transpose().toArray()).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n index = _ref4[0],\n column = _ref4[1];\n\n return _defineProperty({}, _this3[_symbol.__columns__][index], column);\n }))));\n }\n }, {\n key: \"toArray\",\n value: function toArray(columnName) {\n return columnName ? Array.from(this).map(function (row) {\n return row.get(columnName);\n }) : Array.from(this).map(function (row) {\n return row.toArray();\n });\n }\n }, {\n key: \"toCollection\",\n value: function toCollection(ofRows) {\n return ofRows ? Array.from(this) : Array.from(this).map(function (row) {\n return row.toDict();\n });\n }\n }, {\n key: \"show\",\n value: function show() {\n var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var quiet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var makeRow = function makeRow(row) {\n return \"| \".concat(row.map(function (column) {\n var columnAsString = String(column);\n return columnAsString.length > 9 ? columnAsString.substring(0, 6) + \"...\" : columnAsString + Array(10 - columnAsString.length).join(\" \");\n }).join(\" | \"), \" |\");\n };\n\n var header = makeRow(this[_symbol.__columns__]);\n var token = 0;\n var toShow = [header, Array(header.length).join(\"-\")].concat(_toConsumableArray((0, _reusables.iter)(this[_symbol.__rows__], function (row) {\n token++;\n return makeRow(row.toArray());\n }, function () {\n return token >= rows;\n }))).join(\"\\n\");\n\n if (!quiet) {\n console.log(toShow);\n }\n\n return toShow;\n }\n }, {\n key: \"dim\",\n value: function dim() {\n return [this.count(), this[_symbol.__columns__].length];\n }\n }, {\n key: \"transpose\",\n value: function transpose(tranposeColumnNames) {\n var newColumns = [].concat(_toConsumableArray(tranposeColumnNames ? [\"rowNames\"] : []), _toConsumableArray(_toConsumableArray(Array(this.count()).keys()).reverse()));\n var transposedRows = (0, _reusables.transpose)((tranposeColumnNames ? this.push(this[_symbol.__columns__]) : this).toArray());\n return this.__newInstance__(transposedRows, newColumns.reverse()).restructure(newColumns);\n }\n }, {\n key: \"count\",\n value: function count() {\n return this[_symbol.__rows__].length;\n }\n }, {\n key: \"countValue\",\n value: function countValue(valueToCount) {\n var columnName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this[_symbol.__columns__][0];\n return this.filter(function (row) {\n return row.get(columnName) === valueToCount;\n }).count();\n }\n }, {\n key: \"push\",\n value: function push() {\n for (var _len8 = arguments.length, rows = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n rows[_key8] = arguments[_key8];\n }\n\n return this.union(new DataFrame(rows, this[_symbol.__columns__]));\n }\n }, {\n key: \"replace\",\n value: function replace(value, replacement, columnNames) {\n var _this4 = this;\n\n var columns = columnNames && columnNames.length > 0 ? columnNames : this[_symbol.__columns__];\n var values = Array.isArray(value) ? value : [value];\n return this.map(function (row) {\n return (columns.length > 0 ? columns : _this4[_symbol.__columns__]).reduce(function (p, n) {\n return values.includes(p.get(n)) ? p.set(n, replacement) : p;\n }, row);\n });\n }\n }, {\n key: \"distinct\",\n value: function distinct(columnName) {\n return this.__newInstance__(_defineProperty({}, columnName, _toConsumableArray(new Set(this.toArray(columnName)))), [columnName]);\n }\n }, {\n key: \"unique\",\n value: function unique(columnName) {\n return this.distinct(columnName);\n }\n }, {\n key: \"listColumns\",\n value: function listColumns() {\n return _toConsumableArray(this[_symbol.__columns__]);\n }\n }, {\n key: \"select\",\n value: function select() {\n for (var _len9 = arguments.length, columnNames = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n columnNames[_key9] = arguments[_key9];\n }\n\n return this.__newInstance__(this[_symbol.__rows__].map(function (row) {\n return row.select.apply(row, columnNames);\n }), columnNames);\n }\n }, {\n key: \"withColumn\",\n value: function withColumn(columnName) {\n var func = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return undefined;\n };\n return this.__newInstance__(this[_symbol.__rows__].map(function (row, index) {\n return row.set(columnName, func(row, index));\n }), this[_symbol.__columns__].includes(columnName) ? this[_symbol.__columns__] : [].concat(_toConsumableArray(this[_symbol.__columns__]), [columnName]));\n }\n }, {\n key: \"restructure\",\n value: function restructure(newColumnNames) {\n return this.__newInstance__(this[_symbol.__rows__], newColumnNames);\n }\n }, {\n key: \"renameAll\",\n value: function renameAll(newColumnNames) {\n if (newColumnNames.length !== this[_symbol.__columns__].length) {\n throw new _errors.WrongSchemaError(newColumnNames, this[_symbol.__columns__]);\n }\n\n return this.__newInstance__(this.toArray(), newColumnNames);\n }\n }, {\n key: \"rename\",\n value: function rename(columnName, replacement) {\n var newColumnNames = this[_symbol.__columns__].map(function (column) {\n return column === columnName ? replacement : column;\n });\n\n return this.renameAll(newColumnNames);\n }\n }, {\n key: \"castAll\",\n value: function castAll(typeFunctions) {\n var _this5 = this;\n\n if (typeFunctions.length !== this[_symbol.__columns__].length) {\n throw new _errors.WrongSchemaError(typeFunctions, this[_symbol.__columns__]);\n }\n\n return this.map(function (row) {\n return new _row.default(row.toArray().map(function (column, index) {\n return typeFunctions[index](column);\n }), _this5[_symbol.__columns__]);\n });\n }\n }, {\n key: \"cast\",\n value: function cast(columnName, typeFunction) {\n return this.withColumn(columnName, function (row) {\n return typeFunction(row.get(columnName));\n });\n }\n }, {\n key: \"drop\",\n value: function drop(columnName) {\n return this.__newInstance__(this[_symbol.__rows__].map(function (row) {\n return row.delete(columnName);\n }), this[_symbol.__columns__].filter(function (column) {\n return column !== columnName;\n }));\n }\n }, {\n key: \"chain\",\n value: function chain() {\n for (var _len10 = arguments.length, funcs = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n funcs[_key10] = arguments[_key10];\n }\n\n return this.__newInstance__(_toConsumableArray(_reusables.chain.apply(void 0, [this[_symbol.__rows__]].concat(funcs))), this[_symbol.__columns__]);\n }\n }, {\n key: \"filter\",\n value: function filter(condition) {\n var func = _typeof(condition) === \"object\" ? function (row) {\n return Object.entries(condition).map(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n column = _ref7[0],\n value = _ref7[1];\n\n return Object.is(row.get(column), value);\n }).reduce(function (p, n) {\n return p && n;\n });\n } : condition;\n var filteredRows = (0, _reusables.iter)(this[_symbol.__rows__], function (row, i) {\n return func(row, i) ? row : false;\n });\n return this.__newInstance__(filteredRows, this[_symbol.__columns__]);\n }\n }, {\n key: \"where\",\n value: function where(condition) {\n return this.filter(condition);\n }\n }, {\n key: \"find\",\n value: function find(condition) {\n return this.filter(condition)[_symbol.__rows__][0];\n }\n }, {\n key: \"map\",\n value: function map(func) {\n return this.__newInstance__((0, _reusables.iter)(this[_symbol.__rows__], function (row, i) {\n return func(row, i);\n }), this[_symbol.__columns__]);\n }\n }, {\n key: \"reduce\",\n value: function reduce(func, init) {\n return typeof init === \"undefined\" ? this[_symbol.__rows__].reduce(function (p, n) {\n return func(p, n);\n }) : this[_symbol.__rows__].reduce(function (p, n) {\n return func(p, n);\n }, init);\n }\n }, {\n key: \"reduceRight\",\n value: function reduceRight(func, init) {\n return typeof init === \"undefined\" ? this[_symbol.__rows__].reduceRight(function (p, n) {\n return func(p, n);\n }) : this[_symbol.__rows__].reduceRight(function (p, n) {\n return func(p, n);\n }, init);\n }\n }, {\n key: \"dropDuplicates\",\n value: function dropDuplicates() {\n for (var _len11 = arguments.length, columnNames = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n columnNames[_key11] = arguments[_key11];\n }\n\n var groupCols = columnNames && columnNames.length > 0 ? columnNames : this[_symbol.__columns__];\n return this.groupBy.apply(this, _toConsumableArray(groupCols)).filter(function (row, i) {\n return i === 0;\n });\n }\n }, {\n key: \"dropMissingValues\",\n value: function dropMissingValues(columnNames) {\n var cols = columnNames && columnNames.length > 0 ? columnNames : this[_symbol.__columns__];\n return this.filter(function (row) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = cols[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var col = _step2.value;\n\n if ([NaN, undefined, null].includes(row.get(col))) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return true;\n });\n }\n }, {\n key: \"fillMissingValues\",\n value: function fillMissingValues(replacement, columnNames) {\n return this.replace([NaN, undefined, null], replacement, columnNames);\n }\n }, {\n key: \"shuffle\",\n value: function shuffle() {\n if (this.count() < 2) return this;\n return this.__newInstance__(this.reduce(function (p, n) {\n var index = Math.floor(Math.random() * (p.length - 1) + 1);\n return Array.isArray(p) ? [].concat(_toConsumableArray(p.slice(index, p.length + 1)), [n], _toConsumableArray(p.slice(0, index))) : [p, n];\n }), this[_symbol.__columns__]);\n }\n }, {\n key: \"sample\",\n value: function sample(percentage) {\n var nRows = this.count() * percentage;\n var token = 0;\n return this.__newInstance__((0, _reusables.iter)(this.shuffle()[_symbol.__rows__], function (row) {\n token++;\n return row;\n }, function () {\n return token >= nRows;\n }), this[_symbol.__columns__]);\n }\n }, {\n key: \"bisect\",\n value: function bisect(percentage) {\n var nRows = this.count() * percentage;\n var token = 0;\n var restRows = [];\n return [this.__newInstance__((0, _reusables.iter)(this.shuffle()[_symbol.__rows__], function (row) {\n if (token < nRows) {\n token++;\n return row;\n }\n\n restRows.push(row);\n }), this[_symbol.__columns__]), this.__newInstance__(restRows, this[_symbol.__columns__])];\n }\n }, {\n key: \"groupBy\",\n value: function groupBy() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n\n return (0, _group.groupBy)(this, args);\n }\n }, {\n key: \"sortBy\",\n value: function sortBy(columnNames) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var missingValuesPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"first\";\n\n if (!Array.isArray(columnNames)) {\n columnNames = [columnNames];\n }\n\n var _columnNames = columnNames;\n\n var _missingValuesPosition = [\"first\", \"last\"].includes(missingValuesPosition) ? missingValuesPosition : \"first\";\n\n var _checkMissingValue = function _checkMissingValue(v) {\n return [NaN, null, undefined].includes(v);\n };\n\n var sortedRows = this[_symbol.__rows__].sort(function (p, n) {\n return _columnNames.map(function (col) {\n var _ref8 = [p.get(col), n.get(col)],\n pValue = _ref8[0],\n nValue = _ref8[1];\n\n if (_checkMissingValue(pValue)) {\n return _missingValuesPosition === \"last\" ? 1 : -1;\n } else if (_checkMissingValue(nValue)) {\n return _missingValuesPosition === \"last\" ? -1 : 1;\n } else if (_typeof(pValue) !== _typeof(nValue)) {\n throw new _errors.MixedTypeError([_typeof(pValue), _typeof(nValue)]);\n } else if (pValue > nValue) {\n return reverse ? -1 : 1;\n } else if (pValue < nValue) {\n return reverse ? 1 : -1;\n }\n\n return 0;\n }).reduce(function (acc, curr) {\n return acc || curr;\n });\n });\n\n if (_columnNames.length > 1) {\n var sortedRowsWithMissingValues = [];\n var sortedRowsWithoutMissingValues = [];\n sortedRows.forEach(function (row) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = _columnNames[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var col = _step3.value;\n\n if (_checkMissingValue(row.get(col))) {\n sortedRowsWithMissingValues.push(row);\n return;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n sortedRowsWithoutMissingValues.push(row);\n });\n return this.__newInstance__(missingValuesPosition === \"last\" ? sortedRowsWithoutMissingValues.concat(sortedRowsWithMissingValues) : sortedRowsWithMissingValues.concat(sortedRowsWithoutMissingValues), this[_symbol.__columns__]);\n }\n\n return this.__newInstance__(sortedRows, this[_symbol.__columns__]);\n }\n }, {\n key: \"union\",\n value: function union(dfToUnion) {\n if (!(dfToUnion instanceof DataFrame)) throw new _errors.ArgumentTypeError(dfToUnion, \"DataFrame\");\n\n if (!(0, _reusables.arrayEqual)(this[_symbol.__columns__], dfToUnion[_symbol.__columns__])) {\n throw new _errors.WrongSchemaError(dfToUnion[_symbol.__columns__], this[_symbol.__columns__]);\n }\n\n return this.__newInstance__([].concat(_toConsumableArray(this), _toConsumableArray(dfToUnion.restructure(this[_symbol.__columns__]))), this[_symbol.__columns__]);\n }\n }, {\n key: \"join\",\n value: function join(dfToJoin, columnNames) {\n var _this6 = this;\n\n var how = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"inner\";\n var joinMethods = {\n inner: function inner() {\n return _this6.innerJoin(dfToJoin, columnNames);\n },\n full: function full() {\n return _this6.fullJoin(dfToJoin, columnNames);\n },\n outer: function outer() {\n return _this6.outerJoin(dfToJoin, columnNames);\n },\n left: function left() {\n return _this6.leftJoin(dfToJoin, columnNames);\n },\n right: function right() {\n return _this6.rightJoin(dfToJoin, columnNames);\n }\n };\n return joinMethods[how]();\n }\n }, {\n key: \"innerJoin\",\n value: function innerJoin(dfToJoin, columnNames) {\n return this._join(dfToJoin, columnNames, [\"in\"]);\n }\n }, {\n key: \"fullJoin\",\n value: function fullJoin(dfToJoin, columnNames) {\n return this._join(dfToJoin, columnNames, [\"full\", \"full\"]);\n }\n }, {\n key: \"outerJoin\",\n value: function outerJoin(dfToJoin, columnNames) {\n return this.fullJoin(dfToJoin, columnNames);\n }\n }, {\n key: \"leftJoin\",\n value: function leftJoin(dfToJoin, columnNames) {\n return this._join(dfToJoin, columnNames, [\"full\", \"in\"]);\n }\n }, {\n key: \"rightJoin\",\n value: function rightJoin(dfToJoin, columnNames) {\n return this._join(dfToJoin, columnNames, [\"in\", \"full\"]);\n }\n }, {\n key: \"diff\",\n value: function diff(dfToDiff, columnNames) {\n return this._join(dfToDiff, columnNames, [\"out\", \"out\"]);\n }\n }, {\n key: \"head\",\n value: function head() {\n var nRows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n return this.slice(0, nRows);\n }\n }, {\n key: \"tail\",\n value: function tail() {\n var nRows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n return this.slice(-nRows);\n }\n }, {\n key: \"slice\",\n value: function slice(startIndex, endIndex) {\n return this.__newInstance__(this[_symbol.__rows__].slice(startIndex || undefined, endIndex || undefined), this[_symbol.__columns__]);\n }\n }, {\n key: \"getRow\",\n value: function getRow(index) {\n return this[_symbol.__rows__][index];\n }\n }, {\n key: \"setRow\",\n value: function setRow(index) {\n var func = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (row) {\n return row;\n };\n var newRows = Array.from(this[_symbol.__rows__]);\n newRows[index] = func(newRows[index]);\n return this.__newInstance__(newRows, this[_symbol.__columns__]);\n }\n }]);\n\n return DataFrame;\n}();\n\nDataFrame.defaultModules = [];\nvar _default = DataFrame;\nexports.default = _default;"],"sourceRoot":""}