diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..3453387 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Rockstar Playground + +## Purpose +To make it easy to develop Rockstar solutions to Advent of Code style problems (with an input file and no interactivity). + +## Setup +`npm install` + +## Usage +`node start ` +Rock source code named `.rock` will be used first from the `lyrics` folder, or else from the `contracts` folder (intended for un-poetic works in progress). File input is expected as `.txt` in the `music` folder. + +### Development +`npx nodemon start ` will re-run the program whenever it is altered. diff --git a/lyrics/2020-01-minimal.rock b/contracts/2020-01.rock similarity index 100% rename from lyrics/2020-01-minimal.rock rename to contracts/2020-01.rock diff --git a/contracts/2020-02.rock b/contracts/2020-02.rock new file mode 100644 index 0000000..0266ef9 --- /dev/null +++ b/contracts/2020-02.rock @@ -0,0 +1,6 @@ +Rock Input +Listen to Line +Until Line is gone + Rock Input with Line + Listen to Line +(end until) diff --git a/inputs/2020-01.txt b/music/2020-01.txt similarity index 100% rename from inputs/2020-01.txt rename to music/2020-01.txt diff --git a/music/2020-02.txt b/music/2020-02.txt new file mode 100644 index 0000000..2eab335 --- /dev/null +++ b/music/2020-02.txt @@ -0,0 +1,3 @@ +1-3 a: abcde +1-3 b: cdefg +2-9 c: ccccccccc \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 05875d9..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "advent-of-code-2020-rockstar", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "node_modules/n-readlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/n-readlines/-/n-readlines-1.0.1.tgz", - "integrity": "sha512-z4SyAIVgMy7CkgsoNw7YVz40v0g4+WWvvqy8+ZdHrCtgevcEO758WQyrYcw3XPxcLxF+//RszTz/rO48nzD0wQ==", - "engines": { - "node": ">=6.x.x" - } - } - } -} diff --git a/node_modules/n-readlines/.travis.yml b/node_modules/n-readlines/.travis.yml deleted file mode 100644 index 3be245d..0000000 --- a/node_modules/n-readlines/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -os: - - linux - - osx -node_js: - - "6" diff --git a/node_modules/n-readlines/LICENSE b/node_modules/n-readlines/LICENSE deleted file mode 100644 index 74b9dba..0000000 --- a/node_modules/n-readlines/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Liucw - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/n-readlines/README.md b/node_modules/n-readlines/README.md deleted file mode 100644 index f7d9a8c..0000000 --- a/node_modules/n-readlines/README.md +++ /dev/null @@ -1,53 +0,0 @@ -[![Build Status](https://travis-ci.org/nacholibre/node-readlines.svg)](https://travis-ci.org/nacholibre/node-readlines) -# node-readlines -Reading file line by line may seem like a trivial problem, but in node, there is no straightforward way to do it. There are a lot of libraries using Transform Streams to achieve it, but it seems like a overkill, so I've wrote simple version using only the `filesystem` module of node. Note that this is *synchronous* library. - -Install with -`npm install n-readlines` - ---------------------------------------- - -## Documentation -### new readlines(filename, [options]); -### new readlines(fd, [options]); - -**Arguments** - -* `filename` - String path to the file you want to read from -* `fd` - File descriptor -* `options` - Object - * `readChunk` - Integer number of bytes to read at once. Default: 1024 - * `newLineCharacter` - String new line character, only works with one byte characters for now. Default: `\n` which is `0x0a` hex encoded - -`node-readlines` can handle files without newLineCharacter after the last line - ---------------------------------------- - -### readlines.next() -Returns `buffer` with the line data without the `newLineCharacter` or `false` if end of file is reached. - ---------------------------------------- -### readlines.reset() -Resets the pointer and starts from the beginning of the file. This works only if the end is not reached. - ---------------------------------------- -### readlines.close() -Manually close the open file, subsequent `next()` calls will return false. This works only if the end is not reached. - ---------------------------------------- - -## Example -```javascript -const lineByLine = require('n-readlines'); -const liner = new lineByLine('./test/fixtures/normalFile.txt'); - -let line; -let lineNumber = 0; - -while (line = liner.next()) { - console.log('Line ' + lineNumber + ': ' + line.toString('ascii')); - lineNumber++; -} - -console.log('end of line reached'); -``` diff --git a/node_modules/n-readlines/example.js b/node_modules/n-readlines/example.js deleted file mode 100644 index 8df4045..0000000 --- a/node_modules/n-readlines/example.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -const lineByLine = require('./readlines.js'); -const liner = new lineByLine('./test/fixtures/normalFile.txt'); - -let line; -let lineNumber = 0; - -while (line = liner.next()) { - console.log('Line ' + lineNumber + ': ' + line.toString('ascii')); - lineNumber++; -} - -console.log('end of line reached'); diff --git a/node_modules/n-readlines/package.json b/node_modules/n-readlines/package.json deleted file mode 100644 index a60a24f..0000000 --- a/node_modules/n-readlines/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "n-readlines", - "version": "1.0.1", - "description": "Read file line by line without buffering the whole file in memory.", - "main": "./readlines.js", - "dependencies": {}, - "repository": { - "type": "git", - "url": "http://github.com/nacholibre/node-readlines.git" - }, - "keywords": [ - "read", - "line", - "reader", - "linereader", - "readfile", - "linebyline", - "synchronous", - "sync", - "readline", - "readlines" - ], - "engines": { - "node": ">=6.x.x" - }, - "devDependencies": { - "tape": "^4.9.0" - }, - "scripts": { - "test": "tape test/*.test.js" - }, - "author": "Yoan Arnaudov ", - "license": "MIT" -} diff --git a/node_modules/n-readlines/readlines.js b/node_modules/n-readlines/readlines.js deleted file mode 100644 index 6b8bdc1..0000000 --- a/node_modules/n-readlines/readlines.js +++ /dev/null @@ -1,159 +0,0 @@ -'use strict'; - -const fs = require('fs'); - -/** - * @class - */ -class LineByLine { - constructor(file, options) { - options = options || {}; - - if (!options.readChunk) options.readChunk = 1024; - - if (!options.newLineCharacter) { - options.newLineCharacter = 0x0a; //linux line ending - } else { - options.newLineCharacter = options.newLineCharacter.charCodeAt(0); - } - - if (typeof file === 'number') { - this.fd = file; - } else { - this.fd = fs.openSync(file, 'r'); - } - - this.options = options; - - this.newLineCharacter = options.newLineCharacter; - - this.reset(); - } - - _searchInBuffer(buffer, hexNeedle) { - let found = -1; - - for (let i = 0; i <= buffer.length; i++) { - let b_byte = buffer[i]; - if (b_byte === hexNeedle) { - found = i; - break; - } - } - - return found; - } - - reset() { - this.eofReached = false; - this.linesCache = []; - this.fdPosition = 0; - } - - close() { - fs.closeSync(this.fd); - this.fd = null; - } - - _extractLines(buffer) { - let line; - const lines = []; - let bufferPosition = 0; - - let lastNewLineBufferPosition = 0; - while (true) { - let bufferPositionValue = buffer[bufferPosition++]; - - if (bufferPositionValue === this.newLineCharacter) { - line = buffer.slice(lastNewLineBufferPosition, bufferPosition); - lines.push(line); - lastNewLineBufferPosition = bufferPosition; - } else if (bufferPositionValue === undefined) { - break; - } - } - - let leftovers = buffer.slice(lastNewLineBufferPosition, bufferPosition); - if (leftovers.length) { - lines.push(leftovers); - } - - return lines; - }; - - _readChunk(lineLeftovers) { - let totalBytesRead = 0; - - let bytesRead; - const buffers = []; - do { - const readBuffer = new Buffer(this.options.readChunk); - - bytesRead = fs.readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition); - totalBytesRead = totalBytesRead + bytesRead; - - this.fdPosition = this.fdPosition + bytesRead; - - buffers.push(readBuffer); - } while (bytesRead && this._searchInBuffer(buffers[buffers.length-1], this.options.newLineCharacter) === -1); - - let bufferData = Buffer.concat(buffers); - - if (bytesRead < this.options.readChunk) { - this.eofReached = true; - bufferData = bufferData.slice(0, totalBytesRead); - } - - if (totalBytesRead) { - this.linesCache = this._extractLines(bufferData); - - if (lineLeftovers) { - this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]); - } - } - - return totalBytesRead; - } - - next() { - if (!this.fd) return false; - - let line = false; - - if (this.eofReached && this.linesCache.length === 0) { - return line; - } - - let bytesRead; - - if (!this.linesCache.length) { - bytesRead = this._readChunk(); - } - - if (this.linesCache.length) { - line = this.linesCache.shift(); - - const lastLineCharacter = line[line.length-1]; - - if (lastLineCharacter !== this.newLineCharacter) { - bytesRead = this._readChunk(line); - - if (bytesRead) { - line = this.linesCache.shift(); - } - } - } - - if (this.eofReached && this.linesCache.length === 0) { - this.close(); - } - - if (line && line[line.length-1] === this.newLineCharacter) { - line = line.slice(0, line.length-1); - } - - return line; - } -} - -module.exports = LineByLine; diff --git a/node_modules/n-readlines/test/fixtures/badEndFile.txt b/node_modules/n-readlines/test/fixtures/badEndFile.txt deleted file mode 100644 index d2faad5..0000000 --- a/node_modules/n-readlines/test/fixtures/badEndFile.txt +++ /dev/null @@ -1,2 +0,0 @@ -google.com -yahoo.com \ No newline at end of file diff --git a/node_modules/n-readlines/test/fixtures/bigLines.json b/node_modules/n-readlines/test/fixtures/bigLines.json deleted file mode 100644 index c003ddb..0000000 --- a/node_modules/n-readlines/test/fixtures/bigLines.json +++ /dev/null @@ -1,3 +0,0 @@ -{"method":"send_db_to_echogram","params":{"date":"\"2015-08-25T10:38:00.198Z\"","type":"raw","volt":[6.0,8.79,8.84,8.89,8.94,8.98,9.03,9.08,9.12,9.17,8.97,7.02,4.58,2.86,1.76,1.06,0.64,0.39,0.24,0.16,0.12,0.1,0.1,0.11,0.11,0.11,0.12,0.13,0.14,0.16,0.18,0.21,0.24,0.29,0.33,0.38,0.43,0.49,0.54,0.59,0.63,0.67,0.7,0.73,0.76,0.8,0.83,0.86,0.89,0.92,0.94,0.97,1.0,1.04,1.08,1.14,1.19,1.24,1.28,1.32,1.37,1.4,1.44,1.49,1.55,1.61,1.66,1.7,1.74,1.76,1.79,1.8,1.82,1.85,1.88,1.9,1.92,1.94,1.96,1.99,2.01,2.03,2.05,2.07,2.09,2.11,2.14,2.18,2.24,2.28,2.32,2.34,2.36,2.37,2.4,2.41,2.43,2.45,2.48,2.52,2.56,2.61,2.68,2.74,2.79,2.84,2.92,2.99,3.06,3.14,3.21,3.26,3.3,3.33,3.33,3.3,3.27,3.24,3.23,3.19,3.14,3.05,2.95,2.85,2.75,2.68,2.62,2.56,2.49,2.42,2.34,2.27,2.22,2.17,2.13,2.09,2.06,2.02,1.99,1.95,1.89,1.82,1.75,1.68,1.61,1.56,1.51,1.46,1.41,1.37,1.34,1.31,1.28,1.25,1.2,1.15,1.11,1.07,1.05,1.04,1.02,1.0,0.98,0.96,0.95,0.93,0.92,0.91,0.91,0.91,0.91,0.92,0.93,0.94,0.94,0.94,1.17,2.92,5.87,7.74,8.54,8.85,9.01,9.11,9.16,9.19,9.19,9.13,9.01,8.76,8.43,8.06,7.69,7.29,6.85,6.4,5.97,5.55,5.14,4.75,4.39,4.1,3.86,3.68,3.53,3.39,3.27,3.14,3.03,2.95,2.85,2.77,2.7,2.66,2.62,2.59,2.55,2.48,2.36,2.25,2.16,2.07,1.99,1.92,1.88,1.86,1.86,1.85,1.83,1.81,1.79,1.8,1.82,1.84,1.86,1.88,1.89,1.89,1.91,1.95,1.99,2.04,2.09,2.14,2.2,2.26,2.3,2.33,2.36,2.42,2.48,2.55,2.63,2.72,2.81,2.87,2.93,2.97,2.99,3.02,3.03,3.02,2.99,2.95,2.92,2.89,2.88,2.85,2.8,2.75,2.71,2.67,2.63,2.61,2.58,2.55,2.52,2.5,2.46,2.41,2.36,2.31,2.26,2.21,2.15,2.1,2.06,2.03,2.0,1.97,1.94,1.91,1.89,1.88,1.87,1.86,1.85,1.84,1.82,1.79,1.75,1.73,1.7,1.67,1.63,1.58,1.55,1.51,1.47,1.42,1.38,1.35,1.32,1.3,1.28,1.26,1.24,1.22,1.19,1.16,1.13,1.11,1.1,1.08,1.07,1.05,1.04,1.03,1.01,0.99,0.97,0.94,0.92,0.89,0.86,0.84,0.82,0.81,0.8,0.79,0.77,0.76,0.75,0.74,0.72,0.72,0.71,0.71,0.71,0.71,0.71,0.7,0.69,0.68,0.67,0.67,0.66,0.66,0.66,0.65,0.64,0.63,0.62,0.61,0.6,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.56,0.56,0.54,0.54,0.53,0.53,0.52,0.51,0.5,0.49,0.48,0.48,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.44,0.43,0.42,0.42,0.42,0.41,0.4,0.39,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.36,0.36,0.35,0.34,0.34,0.33,0.33,0.32,0.32,0.31,0.31,0.31,0.3,0.3,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.27,0.26,0.26,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.15,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.1,0.1,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.08,0.07,0.07,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03],"biomass":[81035800,136877062,137942862,139010469,140079876,141151071,142172951,143196464,144221602,145248358,141051309,101356039,55336390,29343997,14943135,6983173,3019838,1234093,471268,187394,99280,77994,82645,106129,134055,157732,209112,242532,303659,385926,510307,727084,1023482,1495207,2071344,2722119,3478903,4304914,5194775,6097469,7001682,7796833,8464939,9098338,9801253,10521308,11314825,12010482,12778514,13501232,14053057,14673598,15427824,16448895,17750630,19215053,20712735,22033112,23235027,24526454,25764461,26945598,28141164,29576717,31336964,33278954,34935626,36294674,37506702,38325716,39149402,39733669,40483558,41401322,42324394,43003831,43769386,44454866,45227081,46171394,47035886,47819369,48435423,48967979,49845625,50727201,51699332,53198999,55148199,56847628,58024554,58939205,59588663,60239964,61073110,61728511,62295247,63226178,64433741,65829691,67324442,69381817,72105255,74474666,76293303,78406034,81199462,84205169,87135709,90183601,92957554,95057844,96870835,98095763,98033774,96981092,95534714,94584143,93930152,92588228,90367410,86889905,82857266,79049898,75464491,72567486,70345222,68135605,65569997,62840330,59952246,57360651,55415453,53749324,52269466,50885462,49770264,48573269,47468452,45854400,43828032,41570567,39175003,36812614,34645553,32905794,31266007,29724069,28277817,27075839,26036328,25229140,24354910,23198206,21770916,20438251,19266415,18317254,17716969,17322425,16863859,16277116,15761260,15314587,14935565,14559193,14311965,14002933,13883682,13890077,14022274,14218147,14542211,14740486,14747235,14818076,21338595,83452176,212588286,301072402,339810068,355224082,363073339,367839813,370585281,371901429,372024722,369402357,363559329,351767212,335609115,317732746,300283907,280811713,260063607,238894834,218712033,199180476,180426000,162899397,146809631,134057521,124011267,116278919,109763754,104027398,98850332,93515588,89131054,85676059,82047589,78740377,76040343,74227065,72806866,71679641,70267764,67432125,62926968,58669799,55112260,51781581,49028526,46659710,45188193,44508844,44265946,43936335,43260485,42586702,42173169,42535452,43071734,43870612,44585957,45129079,45498362,45868529,46592490,47851916,49477476,51206176,53130784,55163561,57306295,59467415,61082591,62235909,63678393,65795539,68408368,71139774,74480351,78049730,81453344,84283779,86528403,88177614,89325926,90375859,91021046,90546663,89157972,87671193,86289147,85313349,84842317,83667648,81794310,79828321,78068845,76513691,75062291,73910256,72761078,71712561,70666479,69622880,68387923,66384917,64201463,62317336,60443905,58393576,56170801,54242916,52788274,51707691,50631458,49559673,48402072,47429860,46909913,46390978,45873069,45534582,45196477,44858761,44166391,43034744,41821717,40964699,40111413,39002992,37559089,36042987,34793123,33553545,32159723,30535956,29093603,28145706,27284550,26665525,26049924,25437816,24675021,23994560,23318901,22422406,21460858,20804586,20373056,20016693,19661910,19164496,18813662,18393211,17904517,17349244,16660045,15910309,15237942,14573944,13852876,13272077,12762651,12385906,12138470,11892461,11523463,11157947,10856915,10558352,10262302,10087815,9973557,9978306,9864356,9869058,9873761,9760076,9587940,9358341,9130443,8961729,8851200,8798202,8745279,8578671,8413039,8192407,7973624,7592507,7379036,7221107,7171056,7121095,7071226,7128110,7131620,7081684,7085173,7088664,6932433,6724752,6571169,6315664,6165229,6015986,5918150,5770909,5575577,5382543,5191850,5051035,4958737,4914056,4869496,4825059,4827529,4783195,4785646,4788098,4743847,4699722,4609478,4474071,4294994,4118540,4032362,3946819,3861918,3692124,3525140,3361019,3280924,3242001,3203236,3164628,3166318,3127852,3049767,2972406,2895779,2781478,2668930,2595356,2485773,2450546,2379329,2308915,2239316,2205435,2171744,2103768,2036636,1970358,1938085,1906014,1874146,1810001,1778765,1747738,1716920,1654979,1593958,1594870,1565141,1535631,1476425,1418176,1360896,1304598,1249293,1222376,1195698,1169261,1169951,1170641,1144419,1118442,1119105,1093360,1067864,1068500,1069136,1043863,993480,944175,920209,872535,849373,803361,781021,758953,759421,737617,738073,738529,738985,739441,739898,740355,697006,697439,697873,698306,698740,720985,721432,744020,744479,744938,745398,745858,724115,702655,681478,660588,661001,661413,640788,643168,646544,649930,653327,614677,617896,579976,543000,506997,471995,474511,458529,442727,427112,411688,413893,416105,400724,385546,387610,372567,374562,376563,395932,434047,474004,515804,538767,583433,629947,633099,658785,617167,555371,516595,478973,442539,425870,391200,375311,342489,327430,296541,298107,268460,269887,256206,228508,202295,190274,178578,179557,168134,157049,169987,158789,147938,160540,149579,150404,139746,140519,152895,142074,142855,143639,133081,122902,123584,124267,124953,115009,115647,116288,127721,117575,118221,129822,119522,120175,110233,110839,101265,101825,102386,93143,93660,84805,85279,85754,86231,86709,87189,87671,88155,88640,98926,89615,80764,81210,72780,73185,65187,65552,74408,74819,75231,75644,76059,76475,76893,77312,77733,78155,69660,79004,79430,70808,62695,63040,63386,55709,56018,56328,56639,56952,49649,49926,50203,58212,58530,58849,59169,59490,59812,60136,60460,52747,53035,53323,53613,53904,54196,62764,63098,55077,55373,55670,55968,56267,48674,48937,49201,42126,42356,42587,42819,43051,43285,43519,36840,43990,44226,37448,44702,44942,38063,38270,38477,38685,32334,32511,32689,32868,33047,33227,33408,27509,27661,33954,27967,28121,28275,34691,28585,28741,28898,29055,29213,29371,23783,29689,29849,24178,24311,24444,24578,24712,24847,24982,25117,25254,25390,25527,20270,25803,20494,20607,20720,20833,20947,21061,21176,26926,21406,21522,21639,21755,21873,21990,22108,22227,22346],"echogram":[185,195,195,196,196,196,196,196,196,196,196,190,178,167,157,145,133,122,111,101,95,93,93,95,98,99,102,104,106,109,112,116,120,124,128,132,135,138,141,143,145,147,148,149,150,151,152,153,154,155,156,156,157,158,159,161,162,163,164,164,165,166,167,168,169,170,170,171,172,172,172,173,173,173,174,174,174,175,175,175,176,176,176,176,177,177,177,178,178,179,179,180,180,180,180,180,181,181,181,182,182,182,183,184,184,185,185,186,187,187,188,188,189,189,189,189,188,188,188,188,187,187,186,185,184,183,183,182,181,181,180,179,178,178,177,177,177,176,176,175,174,173,172,171,170,169,169,168,167,166,165,165,164,164,163,161,161,160,159,159,158,158,157,157,157,156,156,156,155,155,156,156,156,156,156,156,162,186,204,211,214,215,215,216,216,216,216,216,215,215,214,212,211,210,208,207,205,203,201,199,197,195,193,192,191,190,189,188,187,186,186,185,184,184,183,183,183,182,181,179,178,177,176,175,175,175,174,174,174,174,174,174,174,174,175,175,175,175,175,176,176,177,178,178,179,180,180,181,181,182,182,183,184,185,185,186,187,187,187,187,188,187,187,187,187,186,186,186,186,185,185,184,184,184,183,183,183,183,182,182,181,181,180,179,179,178,178,177,177,176,176,176,175,175,175,175,175,175,174,174,173,173,173,172,172,171,170,170,169,168,167,167,166,166,165,165,165,164,164,163,162,162,161,161,161,160,160,160,159,159,158,158,157,156,155,155,154,154,153,153,153,152,152,151,151,150,150,150,150,150,150,150,150,149,149,149,149,148,148,148,148,147,147,146,146,146,145,145,145,145,145,145,145,145,145,145,144,144,143,143,143,142,142,141,141,140,140,140,140,140,140,140,140,140,140,139,139,139,138,138,137,137,137,136,135,135,134,134,134,134,134,134,134,133,133,132,132,131,131,131,130,130,129,129,129,129,128,128,128,127,127,127,127,126,126,126,125,125,125,125,124,124,123,123,122,122,122,121,121,121,121,121,121,121,120,120,120,120,119,119,118,118,117,117,117,116,116,116,116,116,116,116,116,116,115,115,115,115,115,116,116,116,116,116,116,116,116,115,115,115,115,115,114,114,114,114,114,114,114,113,112,112,111,111,110,110,110,109,109,109,109,109,109,108,108,108,109,110,111,112,112,113,114,114,115,114,113,112,111,110,110,109,108,107,107,106,106,105,105,104,103,102,101,101,101,100,99,100,99,99,99,99,99,98,98,99,98,98,98,98,97,97,97,97,96,96,96,97,96,96,97,97,97,96,96,95,95,95,94,94,93,93,93,93,94,94,94,94,94,95,94,93,93,92,92,91,91,92,92,92,92,92,92,92,92,93,93,91,93,93,92,91,91,91,89,90,90,90,90,88,89,89,90,90,90,90,90,90,90,90,89,89,89,89,89,89,91,91,89,89,89,90,90,88,88,88,87,87,87,87,87,87,87,86,87,87,86,88,88,86,86,86,86,85,85,85,85,85,85,85,83,83,85,84,84,84,85,84,84,84,84,84,84,82,84,84,82,82,82,82,82,83,83,83,83,83,83,81,83,81,81,81,81,81,81,81,83,81,81,81,81,81,82,82,82,82],"configuration":{"echosounder":"4111-0004","channel":"t1 [1]","transmitt_power":"20 V","flipped":true,"sampleDepth":0.075}}} -{"method":"send_db_to_echogram","params":{"date":"\"2015-08-25T10:40:00.184Z\"","type":"raw","volt":[6.15,8.79,8.84,8.89,8.94,8.98,9.03,9.08,9.12,9.17,8.97,7.02,4.58,2.86,1.76,1.08,0.67,0.43,0.29,0.21,0.16,0.13,0.11,0.1,0.09,0.1,0.11,0.13,0.16,0.19,0.22,0.25,0.29,0.33,0.37,0.41,0.44,0.48,0.51,0.54,0.57,0.61,0.63,0.67,0.7,0.74,0.77,0.82,0.87,0.94,1.01,1.08,1.14,1.19,1.23,1.27,1.3,1.32,1.35,1.38,1.42,1.48,1.55,1.61,1.68,1.74,1.8,1.86,1.91,1.96,1.99,2.02,2.05,2.08,2.11,2.14,2.15,2.15,2.13,2.12,2.13,2.15,2.17,2.19,2.22,2.26,2.3,2.33,2.36,2.4,2.43,2.47,2.5,2.51,2.51,2.53,2.57,2.62,2.67,2.73,2.77,2.84,2.91,2.97,3.01,3.05,3.08,3.13,3.19,3.27,3.35,3.41,3.44,3.44,3.43,3.4,3.37,3.33,3.28,3.23,3.15,3.08,3.03,2.97,2.9,2.83,2.75,2.67,2.61,2.56,2.49,2.43,2.39,2.35,2.31,2.24,2.16,2.06,1.96,1.86,1.76,1.69,1.64,1.61,1.58,1.55,1.5,1.46,1.41,1.37,1.33,1.29,1.25,1.22,1.18,1.14,1.11,1.07,1.05,1.02,1.01,0.99,0.97,0.96,0.95,0.94,0.93,0.93,0.93,0.92,0.92,0.91,0.91,0.92,0.92,0.93,1.22,3.24,6.35,8.08,8.71,8.98,9.08,9.13,9.17,9.22,9.24,9.21,9.1,8.91,8.65,8.37,8.06,7.77,7.43,6.99,6.51,6.02,5.56,5.13,4.74,4.4,4.12,3.91,3.74,3.59,3.47,3.35,3.22,3.09,2.95,2.83,2.75,2.69,2.64,2.58,2.53,2.45,2.34,2.23,2.13,2.05,2.0,1.95,1.92,1.89,1.85,1.81,1.78,1.76,1.74,1.74,1.74,1.74,1.75,1.77,1.8,1.85,1.9,1.95,2.01,2.07,2.13,2.19,2.24,2.29,2.32,2.36,2.4,2.44,2.48,2.51,2.55,2.59,2.67,2.74,2.81,2.87,2.92,2.96,3.0,3.04,3.06,3.06,3.05,3.03,3.0,2.97,2.94,2.92,2.9,2.87,2.84,2.81,2.77,2.72,2.65,2.6,2.57,2.54,2.5,2.47,2.44,2.4,2.35,2.3,2.25,2.21,2.17,2.14,2.1,2.07,2.04,2.0,1.96,1.94,1.92,1.9,1.88,1.86,1.85,1.85,1.85,1.85,1.82,1.78,1.73,1.67,1.61,1.56,1.52,1.49,1.45,1.42,1.39,1.37,1.35,1.33,1.3,1.27,1.23,1.19,1.16,1.14,1.12,1.1,1.08,1.07,1.05,1.04,1.02,1.0,0.97,0.95,0.92,0.89,0.87,0.85,0.84,0.83,0.82,0.8,0.79,0.77,0.76,0.75,0.75,0.74,0.73,0.71,0.7,0.7,0.69,0.68,0.67,0.67,0.66,0.65,0.64,0.64,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.6,0.59,0.58,0.57,0.57,0.57,0.57,0.57,0.56,0.56,0.55,0.54,0.54,0.53,0.52,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.49,0.48,0.47,0.47,0.46,0.45,0.44,0.43,0.43,0.42,0.41,0.41,0.41,0.41,0.4,0.39,0.39,0.38,0.38,0.38,0.37,0.36,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.33,0.33,0.32,0.32,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.27,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.18,0.19,0.19,0.2,0.2,0.19,0.19,0.18,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.11,0.1,0.1,0.1,0.1,0.1,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03],"biomass":[83969197,136877062,137942862,139010469,140079876,141151071,142172951,143196464,144221602,145248358,141153498,101356039,55293289,29382967,15047045,7215720,3319157,1529634,722712,379802,229766,154529,113480,93108,84502,108551,168652,242532,385672,578110,847797,1139232,1548289,2039628,2585176,3108665,3630712,4223625,4722265,5285102,5870646,6477918,7057243,7703827,8369667,9160238,10029083,10979842,12190741,13924836,15728217,17596171,19189371,20548763,21865161,22993169,23781193,24505123,25235249,26117169,27449928,29250520,31463417,33484070,35457733,37459813,39489205,41626943,43459882,44977147,46086077,47201726,48238933,49110877,50330072,51470167,51923220,51684635,51014543,50776497,51228485,51854783,52569981,53374910,54445661,55785763,57222150,58577955,59762157,61041844,62418183,63892381,64827334,65217670,65334686,66091915,67586314,69365553,71433967,73609038,75515493,77905636,80692538,83211349,84974416,86455107,87844283,89627607,92103109,95281078,98578800,101200073,102335334,102373934,102013114,101053863,99797068,98244469,96200477,93965887,91052985,88350159,86048918,83854315,81284657,78346882,75238915,72341968,70026334,68003243,65529451,63256370,61636145,60205246,58690365,56375895,53282837,49790440,46264086,42795996,39472992,37107573,35581658,34630996,33606564,32431309,31031531,29646843,28201559,26849753,25589213,24417720,23405658,22333054,21203091,20158729,19197572,18317254,17515462,16922614,16533021,16145888,15631243,15250075,14871517,14622852,14502266,14445373,14388514,14268347,14148417,14091781,14035181,14167938,14301144,14434798,22777054,96763546,235318919,317274806,347985048,361168092,366407366,368793332,370943119,373453060,374651612,373342285,367973176,358792249,346413078,332638781,317839752,303914386,287810993,266891615,244160615,221183049,199814534,180044878,162408691,147404813,135390494,126067039,118626975,112608898,107362655,102463770,96992578,91471649,85907708,81094497,77988834,75681199,73482423,71391301,69215548,66198917,62084545,57839480,54111080,51332054,49295486,47718046,46502818,45381539,44178977,42810493,41622882,40783831,40374001,40135112,40151736,40338852,40611697,41399502,42536652,44116982,45975294,48029716,50195069,52382564,54499930,56728750,58977674,60776951,62117028,63463862,65102726,66750956,68216059,69495236,70973662,72848696,75813612,79000853,81615913,84047674,86090743,87941513,89698866,91259575,92212785,92247931,91874431,90990860,90006529,88617256,87535105,86758314,85780277,84602126,83526926,82353352,80682059,78419115,75870625,73927109,72678482,71335589,69899524,68856824,67623030,66007409,64111319,62035184,60161390,58580905,57195765,55910187,54630216,53355992,52179562,50825377,49478383,48500526,47797084,47095577,46485742,45877381,45449063,45378330,45486255,45326118,44542023,43052703,41049428,38895173,37023572,35342220,34013281,32779181,31638029,30506559,29465739,28754101,28206149,27581228,26801887,25715614,24409756,23273516,22376750,21638108,20979818,20546952,20043369,19543046,19046048,18767161,18204310,17505330,16744500,16061795,15251852,14654050,14129192,13609886,13225665,12844625,12594351,12282036,11909158,11539693,11235345,11055977,10877429,10638978,10341891,10047356,9814533,9701054,9529243,9358341,9130443,9019308,8793962,8570384,8404896,8352649,8244393,8136549,8084748,8033028,7981390,7874525,7933698,7993052,7996943,7889890,7728226,7513075,7353893,7142158,6932433,6830023,6833400,6836779,6840159,6738082,6584225,6431520,6331415,6180642,6031063,5882695,5835464,5788341,5691556,5545969,5401649,5307047,5212993,5167486,5074244,4934178,4795461,4658114,4522156,4387608,4209712,4078556,3905309,3820710,3779646,3781629,3740690,3614938,3490753,3409448,3328833,3289661,3210075,3131197,2974004,2858513,2860056,2784488,2785994,2749219,2712616,2714087,2602431,2529455,2457265,2349831,2279667,2210323,2141809,2108453,2109625,2110798,2077603,2044604,1978092,1945706,1946797,1947888,1948980,1916747,1884717,1852892,1853936,1789862,1726690,1664431,1603096,1542697,1453459,1395467,1338453,1310699,1255161,1228130,1174098,1121095,1121759,1095960,1096610,1097261,1071683,1072321,1021282,996462,947024,947594,923550,924108,900313,925224,925783,926342,902496,878914,855600,832554,809779,810275,810771,811267,811764,812260,836117,836627,837137,837648,838159,838670,839182,816244,816743,817242,794554,797441,801538,805647,786486,790511,748489,729661,710952,692368,673912,655590,658965,684340,687835,691341,694857,675986,657258,638678,620250,623411,626581,608132,632949,658325,707239,757963,835405,890534,947469,1006206,1038710,988316,912205,838495,742895,675229,632648,591165,550812,511623,473630,436869,420028,385097,351487,319234,288373,258939,245421,232206,219301,220478,207828,195502,196558,197618,198681,186506,187512,175620,164079,164971,165866,166764,167665,168569,169476,170386,158805,159660,148397,161380,150005,150813,139769,129120,129822,119522,120175,120831,110839,111447,101825,102386,102950,113899,104082,104652,105223,105796,96270,96798,107527,108108,108691,98926,99463,100001,100542,101084,112230,112827,102721,103271,103822,94089,94594,95102,95611,86217,86682,87148,87616,88086,88557,89029,79858,80288,71581,71969,72358,72749,64432,73535,65136,65489,65844,66200,66558,66916,67276,67637,59490,51890,52175,52460,52747,53035,45842,53613,62100,62432,62764,54782,55077,55373,47891,55968,48412,48674,48937,49201,49466,49732,49999,50266,43051,43285,43519,43754,37042,37245,37448,37653,37858,45182,45422,38477,38685,38894,39103,39313,39524,39736,33227,33408,33589,33771,33954,27967,28121,28275,28430,28585,28741,28898,29055,29213,29371,29530,29689,24046,24178,24311,24444,24578,24712,19609,24982,25117,25254,25390,25527,25665,25803,25942,26081,26221,26361,32829,26643,26784,26926,27069,27212,27356,27500,27645,21990,27936,22227,28229],"echogram":[186,195,195,196,196,196,196,196,196,196,196,190,178,167,157,146,135,125,116,108,103,99,96,94,93,96,100,104,109,113,117,121,125,128,131,134,136,138,139,141,143,144,145,146,148,149,150,152,153,155,157,159,160,162,163,163,164,164,165,166,166,167,169,170,171,172,172,173,174,175,175,176,176,176,177,177,177,177,177,177,177,177,177,178,178,179,179,179,180,180,181,181,181,181,181,182,182,182,183,184,184,185,185,186,186,187,187,187,188,188,189,190,190,190,190,189,189,189,189,188,188,187,186,186,185,185,184,183,183,182,181,181,180,180,179,179,178,177,175,174,172,171,171,170,170,169,168,168,167,166,165,164,164,163,162,161,160,160,159,158,158,158,157,157,156,156,156,156,156,156,156,156,156,156,156,156,163,189,206,212,214,215,216,216,216,216,216,216,216,215,214,213,212,212,210,209,207,205,203,201,199,197,195,194,193,192,191,190,189,188,186,185,185,184,184,183,182,182,180,179,178,177,176,176,175,175,174,174,173,173,173,173,173,173,173,173,174,174,175,176,177,177,178,179,180,180,180,181,181,182,182,183,183,183,184,185,185,186,186,187,187,188,188,188,188,188,187,187,187,187,186,186,186,186,185,185,184,184,183,183,183,182,182,182,181,180,180,179,179,179,178,178,177,177,176,176,176,176,175,175,175,175,175,175,175,174,173,172,171,171,170,169,169,168,168,167,167,166,166,165,164,164,163,162,162,162,161,161,160,160,160,159,158,158,157,156,156,155,155,154,154,153,153,153,152,152,152,151,151,150,150,150,150,149,149,149,148,148,148,148,147,147,147,147,147,147,147,147,147,147,147,146,146,145,145,145,145,145,145,145,144,144,144,143,143,143,142,142,142,142,141,141,141,141,140,140,140,139,139,138,138,137,137,137,136,136,136,136,135,135,135,135,134,134,133,133,133,132,132,132,132,132,131,131,131,130,130,129,129,129,129,129,128,128,128,128,128,128,128,127,127,127,127,127,126,126,125,125,124,123,123,123,122,122,121,121,121,121,121,121,120,120,120,119,119,119,118,118,118,119,119,119,118,118,118,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,116,116,115,115,115,114,115,115,115,115,115,115,115,114,114,114,114,114,114,115,115,116,117,118,119,120,120,119,118,117,116,115,114,113,113,112,111,110,110,109,108,107,105,104,104,103,103,103,102,101,102,102,102,101,101,100,100,100,100,100,100,100,100,100,99,99,99,100,99,99,98,97,97,97,97,97,96,96,95,95,95,96,95,95,95,95,95,95,96,96,96,95,95,95,95,95,96,96,95,95,95,94,94,94,94,93,94,94,94,94,94,94,93,93,92,92,92,92,91,92,91,91,91,91,91,91,91,91,90,89,89,89,89,89,88,89,90,91,91,89,89,89,88,90,88,88,88,88,88,88,89,89,87,87,87,87,86,86,86,86,86,88,88,86,86,86,86,86,86,87,85,85,85,85,85,84,84,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,81,83,83,83,83,83,83,83,83,83,83,83,85,83,83,83,83,83,83,83,83,82,84,82,84],"configuration":{"echosounder":"4111-0004","channel":"t1 [1]","transmitt_power":"20 V","flipped":true,"sampleDepth":0.075}}} -{"method":"send_db_to_echogram","params":{"date":"\"2015-08-25T10:42:00.187Z\"","type":"raw","volt":[6.17,8.79,8.84,8.89,8.94,8.98,9.03,9.08,9.12,9.17,8.97,7.0,4.56,2.85,1.75,1.06,0.65,0.4,0.25,0.16,0.11,0.08,0.07,0.07,0.07,0.08,0.09,0.1,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.26,0.29,0.32,0.34,0.37,0.41,0.45,0.49,0.53,0.57,0.61,0.65,0.68,0.73,0.77,0.82,0.87,0.93,0.98,1.04,1.09,1.13,1.17,1.21,1.27,1.34,1.41,1.47,1.53,1.57,1.59,1.62,1.65,1.68,1.71,1.76,1.81,1.86,1.91,1.96,2.01,2.04,2.06,2.07,2.07,2.07,2.07,2.07,2.06,2.07,2.09,2.11,2.13,2.15,2.19,2.24,2.29,2.32,2.35,2.38,2.41,2.45,2.51,2.58,2.65,2.73,2.78,2.83,2.87,2.92,2.96,3.02,3.07,3.11,3.14,3.16,3.19,3.2,3.22,3.26,3.31,3.35,3.37,3.38,3.36,3.32,3.26,3.19,3.14,3.1,3.09,3.09,3.08,3.05,3.0,2.95,2.88,2.78,2.68,2.59,2.51,2.44,2.36,2.28,2.19,2.1,2.01,1.93,1.86,1.78,1.71,1.65,1.59,1.54,1.49,1.45,1.42,1.37,1.34,1.29,1.26,1.22,1.18,1.14,1.1,1.07,1.04,1.02,1.0,0.98,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.97,0.96,0.95,0.95,1.21,3.05,6.09,7.91,8.61,8.89,9.03,9.13,9.2,9.24,9.27,9.27,9.2,9.06,8.85,8.61,8.23,7.79,7.38,7.06,6.77,6.44,6.11,5.76,5.4,5.05,4.72,4.43,4.21,4.01,3.8,3.62,3.45,3.3,3.16,3.02,2.91,2.81,2.72,2.64,2.55,2.45,2.33,2.21,2.12,2.05,1.99,1.94,1.91,1.89,1.86,1.84,1.83,1.82,1.81,1.81,1.82,1.84,1.86,1.88,1.89,1.89,1.89,1.9,1.92,1.96,2.01,2.07,2.15,2.23,2.31,2.38,2.44,2.5,2.56,2.61,2.67,2.74,2.81,2.88,2.94,3.0,3.04,3.07,3.1,3.12,3.13,3.11,3.09,3.06,3.01,2.96,2.91,2.87,2.83,2.8,2.77,2.73,2.69,2.64,2.59,2.55,2.51,2.47,2.43,2.38,2.33,2.28,2.23,2.2,2.16,2.12,2.09,2.06,2.03,2.01,1.99,1.95,1.93,1.9,1.86,1.81,1.78,1.74,1.71,1.68,1.66,1.65,1.63,1.62,1.6,1.58,1.54,1.51,1.47,1.42,1.38,1.35,1.32,1.29,1.26,1.24,1.22,1.19,1.17,1.14,1.11,1.09,1.07,1.05,1.04,1.02,1.01,0.99,0.98,0.96,0.94,0.92,0.89,0.87,0.85,0.84,0.83,0.82,0.81,0.81,0.81,0.81,0.8,0.8,0.8,0.79,0.78,0.76,0.74,0.72,0.7,0.68,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.61,0.6,0.6,0.59,0.58,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.5,0.5,0.49,0.48,0.47,0.46,0.45,0.44,0.44,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.42,0.42,0.41,0.41,0.4,0.39,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.35,0.34,0.34,0.33,0.33,0.32,0.32,0.32,0.32,0.31,0.31,0.3,0.3,0.29,0.29,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.18,0.17,0.16,0.16,0.15,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.1,0.1,0.1,0.1,0.1,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03],"biomass":[84389838,136877062,137942862,139010469,140079876,141151071,142172951,143196464,144221602,145248358,141102402,101016872,54991786,29227168,14873982,7012098,3133668,1318198,529429,202812,83009,42232,29811,30534,42676,57977,80540,108713,159464,254522,357748,494212,633003,767497,957440,1190103,1497790,1835070,2200364,2592227,3116989,3717288,4439361,5164261,5882443,6585771,7316578,8073588,9014071,10043405,11108593,12324828,13701230,15121919,16520376,17824091,19023010,20108697,21349633,22892618,24896441,27092805,29112790,30789286,31950754,32813442,33682318,34635794,35596315,36723101,38180602,39896315,41630679,43300118,45069309,46771018,47892072,48592809,48868671,49059492,49164977,49184932,48948103,48625933,49159149,49951818,50661410,51200481,52001489,53591375,55368576,57070427,58427268,59522847,60353721,61548047,63201162,65412037,67915704,70810919,73731401,75921637,77746393,79390144,81136806,82987489,85136162,87199203,88785938,90086069,91096994,92208470,92832069,93555037,94969037,97179081,98802924,99834805,100370612,99512046,97760300,95221926,92595722,90568965,89135323,88583145,88617043,88260231,87025923,85114322,83112935,80446337,76650611,72794398,69442715,66491632,63657107,60846771,57881488,54590225,51427433,48218571,45226065,42782108,40285689,37988081,35803103,33808603,32235630,30758817,29453194,28390622,27110848,25920685,24670470,23509108,22506228,21372920,20185576,19154408,18206043,17472016,16812723,16291877,15906041,15652596,15594725,15731948,15804313,15811498,15884029,15891247,15702523,15384567,15068379,14946504,22270659,89070706,222898413,309399220,343362541,357125362,364025690,369031739,372374721,374408139,376085015,376090055,372749221,366185558,356170985,344270073,326353158,305091452,285352010,270034357,256414884,241132847,225258994,209160828,192524913,176501641,161756526,149031526,139354619,130623778,121660900,113735235,106720283,100391354,94329603,88833037,84186739,80370411,76878248,73511073,70171977,66198917,61524240,57287333,53929476,51152486,49028526,47364671,46327039,45381539,44440003,43849492,43433716,43105136,42776950,42708147,43071734,43696740,44498652,45216690,45761874,45868529,45887276,46170295,46984304,48335977,50145849,52515625,55461320,58442724,61458332,64221972,66629054,69151559,71402856,73571896,75852909,78543934,81752283,84584714,87032646,89494633,91257012,92719965,93982967,94839047,94977758,94500547,93613464,92318259,90413903,88211257,86320551,84537111,82960394,81688685,80519862,79054781,77395611,75446018,73406822,71670815,70136877,68608739,66989969,65185998,63295642,61320888,59546859,58158296,56869436,55307040,54030635,52852119,51953848,51333003,50348386,49095178,48119203,47057203,45642488,44059651,42664825,41454504,40425500,39488521,38556291,38142808,37730169,37147712,36482171,35734644,34654421,33498580,32104555,30561958,29198932,28169869,27149930,26295985,25526576,24762875,24005023,23329099,22582742,21693522,20887500,20162628,19589402,19020569,18670453,18250889,17833847,17349244,17007511,16529127,15985979,15312486,14647339,13990790,13473163,13154828,12838665,12652378,12530541,12472637,12478444,12420565,12299224,12241522,12120611,11937032,11691644,11261796,10654082,10116630,9646754,9300092,9014973,8904272,8851200,8855464,8802444,8692432,8696627,8643833,8534348,8481808,8316592,8152373,7933698,7826976,7720682,7614820,7509396,7404414,7192251,6982090,6826647,6620047,6467275,6418737,6318811,6219379,6069647,5921119,5873845,5826678,5779619,5682966,5636256,5540372,5494018,5398916,5255949,5066497,4879466,4694900,4467154,4378547,4290548,4203163,4160784,4162945,4076433,4078556,4080679,4082804,4084929,4042881,3957137,3828725,3701841,3576510,3452755,3330602,3210075,3171393,3092855,3054673,3016655,2939529,2863142,2787501,2712616,2601015,2491217,2455920,2420805,2385872,2315284,2280925,2246753,2177771,2075291,2008433,1942437,1877312,1780778,1717895,1655922,1656865,1626672,1596694,1566935,1537395,1478128,1449271,1450108,1450945,1451783,1423107,1394659,1366440,1309935,1282430,1255161,1255896,1228851,1174790,1148484,1122424,1070409,1045109,1020061,1020671,995865,971315,971899,997657,973067,948736,949308,949880,925783,901950,854559,831539,808789,786312,764110,742185,742643,743102,765993,789212,789697,767408,767881,791151,814748,792122,792608,793094,793580,771193,771668,751823,733254,714798,718498,700066,703685,707313,688821,670457,630865,613002,595285,598374,580721,563225,525980,548729,551575,554429,557292,580896,583871,586854,611222,636147,684261,734189,785929,839482,894846,925426,956582,961157,912205,838495,767273,675229,632648,569428,529744,491238,453944,436869,420028,385097,351487,336057,320897,306011,291407,292932,278546,264457,265847,251993,238449,225222,212319,213451,200817,175620,176570,164971,165866,154569,155411,156255,157102,157952,158805,159660,160518,149200,138265,139016,139769,129120,118870,109028,109630,100152,100708,101265,101825,102386,102950,113899,114517,115138,126832,116385,117011,106948,107527,97858,98391,98926,99463,100001,100542,101084,101628,102174,92582,93083,93585,94089,84833,85293,85754,86217,86682,77733,78155,78579,70042,70424,70808,71194,71581,81151,72358,72749,73141,73535,73930,65489,65844,66200,58212,58530,58849,51324,59490,51890,52175,52460,52747,53035,61441,53613,53904,62432,54488,47116,47373,55373,47891,48151,48412,48674,48937,49201,49466,49732,42587,42819,43051,43285,43519,43754,43990,44226,44464,44702,44942,45182,45422,38477,38685,38894,39103,39313,32868,39736,33227,33408,33589,33771,27814,34137,34321,28275,28430,28585,28741,28898,29055,29213,29371,29530,29689,24046,24178,24311,24444,30495,30658,30821,30985,31150,31315,25390,25527,20270,20382,20494,20607,15965,20833,16144,21061,21176,21291,21406,21522,27356,27500,21873,21990,27936,28082,28229],"echogram":[186,195,195,196,196,196,196,196,196,196,196,189,178,167,156,145,134,123,112,102,93,87,84,84,87,90,93,96,99,104,108,111,114,116,119,122,124,127,129,131,134,136,139,141,143,144,146,147,149,150,152,154,155,157,158,159,160,161,162,163,165,166,167,168,169,169,170,170,171,171,172,173,173,174,175,175,176,176,176,176,176,176,176,176,176,177,177,177,177,178,178,179,179,180,180,180,181,181,182,183,184,184,185,185,185,186,186,187,187,187,188,188,188,188,188,189,189,189,189,189,189,188,188,187,187,187,187,187,187,186,186,185,184,183,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,168,167,166,165,165,164,163,162,161,160,160,159,158,158,157,157,157,157,157,157,157,157,157,157,157,157,163,187,205,212,214,215,215,216,216,216,216,216,216,216,215,214,213,212,210,209,208,207,205,204,202,200,199,197,196,194,193,192,191,189,188,187,186,185,184,184,183,182,180,179,178,177,176,176,175,175,175,174,174,174,174,174,174,174,175,175,175,175,175,175,176,176,177,177,178,179,180,181,182,182,183,184,184,185,186,186,187,187,188,188,188,188,188,188,188,188,187,187,187,186,186,185,185,185,184,184,184,183,183,182,182,181,181,180,180,179,179,178,178,178,177,177,177,176,176,176,175,174,174,173,173,172,172,172,172,171,171,171,170,170,169,168,167,167,166,166,165,165,164,164,163,162,162,161,161,160,160,160,159,159,159,158,158,157,156,155,155,155,154,154,154,154,154,154,154,153,153,153,153,152,151,151,150,149,149,149,149,149,148,148,148,148,148,148,148,147,147,147,147,146,146,146,145,145,145,144,144,144,144,143,143,143,143,142,142,142,142,142,142,141,141,140,140,139,139,138,138,138,138,138,137,137,137,137,137,137,137,137,136,136,135,135,134,134,134,134,133,133,133,132,132,131,131,131,130,130,130,130,130,129,128,128,128,127,127,126,126,126,125,125,125,125,124,124,124,124,124,124,123,123,123,122,122,122,122,121,121,121,120,120,120,120,119,119,119,119,119,119,119,119,119,118,118,117,117,117,116,116,116,116,116,117,117,116,116,117,117,117,117,117,117,116,116,116,116,115,116,115,115,115,115,115,114,114,113,113,113,113,112,112,113,113,113,113,113,113,114,114,115,116,117,117,118,119,119,119,118,117,116,115,114,113,112,111,110,110,110,109,108,107,107,106,106,106,105,105,105,104,103,103,102,102,102,100,100,100,100,99,99,99,99,99,99,99,99,99,98,98,98,97,97,96,96,95,95,95,95,95,95,96,96,96,97,96,96,96,96,95,95,95,95,95,95,95,95,95,94,94,94,94,93,93,93,93,94,93,93,93,92,92,92,92,92,93,92,92,92,92,92,91,91,91,90,90,90,89,90,89,89,89,89,89,90,89,89,91,89,88,88,89,88,88,88,88,88,88,88,88,87,87,87,87,87,87,87,87,87,88,88,88,88,86,86,86,86,86,85,87,85,85,85,85,83,85,85,84,84,84,84,84,84,84,84,84,84,82,82,82,82,84,84,84,84,84,84,83,83,81,81,81,81,79,81,79,81,81,81,81,81,83,83,81,82,84,84,84],"configuration":{"echosounder":"4111-0004","channel":"t1 [1]","transmitt_power":"20 V","flipped":true,"sampleDepth":0.075}}} diff --git a/node_modules/n-readlines/test/fixtures/eiffel.geojson b/node_modules/n-readlines/test/fixtures/eiffel.geojson deleted file mode 100644 index e7f991c..0000000 --- a/node_modules/n-readlines/test/fixtures/eiffel.geojson +++ /dev/null @@ -1 +0,0 @@ -{"type":"Feature","properties":{"type":"item","id":"Q243","labels":{"en":{"language":"en","value":"Eiffel Tower"},"fr":{"language":"fr","value":"tour Eiffel"},"nb":{"language":"nb","value":"Eiffeltårnet"},"es":{"language":"es","value":"Torre Eiffel"},"it":{"language":"it","value":"torre Eiffel"},"de":{"language":"de","value":"Eiffelturm"},"ru":{"language":"ru","value":"Эйфелева башня"},"fi":{"language":"fi","value":"Eiffel-torni"},"hu":{"language":"hu","value":"Eiffel-torony"},"id":{"language":"id","value":"Menara Eiffel"},"af":{"language":"af","value":"Eiffel-toring"},"an":{"language":"an","value":"Torre Eiffel"},"ar":{"language":"ar","value":"برج إيفل"},"arz":{"language":"arz","value":"برج ايفيل"},"ast":{"language":"ast","value":"Torre Eiffel"},"as":{"language":"as","value":"আইফেল টাৱাৰ"},"az":{"language":"az","value":"Eyfel qülləsi"},"ba":{"language":"ba","value":"Эйфель башняһы"},"bcl":{"language":"bcl","value":"Torre Eiffel"},"be":{"language":"be","value":"Эйфелева вежа"},"bg":{"language":"bg","value":"Айфелова кула"},"bn":{"language":"bn","value":"আইফেল টাওয়ার"},"br":{"language":"br","value":"Tour Eiffel"},"bs":{"language":"bs","value":"Eiffelov toranj"},"ca":{"language":"ca","value":"Torre Eiffel"},"cs":{"language":"cs","value":"Eiffelova věž"},"cv":{"language":"cv","value":"Эйфел турулĕ"},"cy":{"language":"cy","value":"Tŵr Eiffel"},"da":{"language":"da","value":"Eiffeltårnet"},"de-ch":{"language":"de-ch","value":"Eiffelturm"},"dsb":{"language":"dsb","value":"Eiffelowy torm"},"el":{"language":"el","value":"Πύργος του Άιφελ"},"en-ca":{"language":"en-ca","value":"Eiffel Tower"},"en-gb":{"language":"en-gb","value":"Eiffel Tower"},"eo":{"language":"eo","value":"Eiffel-Turo"},"et":{"language":"et","value":"Eiffeli torn"},"eu":{"language":"eu","value":"Eiffel dorrea"},"fa":{"language":"fa","value":"برج ایفل"},"fo":{"language":"fo","value":"Eiffeltornið"},"fy":{"language":"fy","value":"Eiffeltoer"},"ga":{"language":"ga","value":"Túr Eiffel"},"gl":{"language":"gl","value":"Torre Eiffel"},"gn":{"language":"gn","value":"Eiffel Óga tuicha"},"got":{"language":"got","value":"𐌴𐌹𐍆𐍆𐌴𐌻 𐍄𐍅𐍂𐍃"},"gu":{"language":"gu","value":"ઍફીલ ટાવર"},"hak":{"language":"hak","value":"Eiffel Thiet-thap"},"he":{"language":"he","value":"מגדל אייפל"},"hif":{"language":"hif","value":"Eiffel Tower"},"hi":{"language":"hi","value":"एफिल टॉवर"},"hr":{"language":"hr","value":"Eiffelov toranj"},"hsb":{"language":"hsb","value":"Eiffelowa wěža"},"hy":{"language":"hy","value":"Էյֆելյան աշտարակ"},"io":{"language":"io","value":"Eiffel Turmo"},"is":{"language":"is","value":"Eiffelturninn"},"ja":{"language":"ja","value":"エッフェル塔"},"jv":{"language":"jv","value":"Menara Eiffel"},"ka":{"language":"ka","value":"ეიფელის კოშკი"},"kk":{"language":"kk","value":"Эйфель мұнарасы"},"kn":{"language":"kn","value":"ಐಫೆಲ್ ಗೋಪುರ"},"ko":{"language":"ko","value":"에펠 탑"},"ku":{"language":"ku","value":"Barûya Eyfelê"},"la":{"language":"la","value":"Turris Eiffelia"},"lb":{"language":"lb","value":"Eiffeltuerm"},"lij":{"language":"lij","value":"Töre Eiffel"},"li":{"language":"li","value":"Eiffeltaore"},"lmo":{"language":"lmo","value":"Tur Eifèl"},"lt":{"language":"lt","value":"Eifelio bokštas"},"lv":{"language":"lv","value":"Eifeļa tornis"},"mk":{"language":"mk","value":"Ајфелова кула"},"ml":{"language":"ml","value":"ഈഫൽ ഗോപുരം"},"mn":{"language":"mn","value":"Эйфелийн цамхаг"},"mr":{"language":"mr","value":"आयफेल टॉवर"},"ms":{"language":"ms","value":"Menara Eiffel"},"mt":{"language":"mt","value":"Torri Eiffel"},"mwl":{"language":"mwl","value":"Torre Eiffel"},"my":{"language":"my","value":"အီဖယ်လ် မျှော်စင်"},"mzn":{"language":"mzn","value":"ایفل برج"},"nah":{"language":"nah","value":"Eiffel Huehcapan Calli"},"nds-nl":{"language":"nds-nl","value":"Eiffeltoorne"},"nds":{"language":"nds","value":"Eiffeltoorn"},"new":{"language":"new","value":"आइफेल टावर"},"nl":{"language":"nl","value":"Eiffeltoren"},"nn":{"language":"nn","value":"Eiffeltårnet"},"oc":{"language":"oc","value":"Torre Eiffel"},"pl":{"language":"pl","value":"Wieża Eiffla"},"pms":{"language":"pms","value":"Tor Eiffel"},"pnb":{"language":"pnb","value":"آئیفل ٹاور"},"pt":{"language":"pt","value":"Torre Eiffel"},"pt-br":{"language":"pt-br","value":"Torre Eiffel"},"ro":{"language":"ro","value":"Turnul Eiffel"},"scn":{"language":"scn","value":"Turri Eiffel"},"sh":{"language":"sh","value":"Eiffelov toranj"},"si":{"language":"si","value":"අයිෆල් කුළුණ"},"sk":{"language":"sk","value":"Eiffelova veža"},"sl":{"language":"sl","value":"Eifflov stolp"},"sq":{"language":"sq","value":"Kulla Eiffel"},"sr":{"language":"sr","value":"Ајфелова кула"},"stq":{"language":"stq","value":"Eiffeltouden"},"su":{"language":"su","value":"Munara Eiffel"},"sv":{"language":"sv","value":"Eiffeltornet"},"sw":{"language":"sw","value":"Mnara wa Eiffel"},"ta":{"language":"ta","value":"ஈபெல் கோபுரம்"},"te":{"language":"te","value":"ఈఫిల్ టవర్"},"th":{"language":"th","value":"หอไอเฟล"},"tl":{"language":"tl","value":"Toreng Eiffel"},"tr":{"language":"tr","value":"Eyfel Kulesi"},"tt":{"language":"tt","value":"Эйфель манарасы"},"tw":{"language":"tw","value":"La Tour Eiffel"},"uk":{"language":"uk","value":"Ейфелева вежа"},"ur":{"language":"ur","value":"ایفل ٹاور"},"uz":{"language":"uz","value":"Eiffel minorasi"},"vec":{"language":"vec","value":"Tor Eiffel"},"vi":{"language":"vi","value":"Tháp Eiffel"},"vls":{"language":"vls","value":"Ieffeltôorn"},"war":{"language":"war","value":"Lantawan Eiffel"},"xmf":{"language":"xmf","value":"ეიფელიშ ჸორში"},"yi":{"language":"yi","value":"אייפל טורעם"},"yue":{"language":"yue","value":"巴黎鐵塔"},"zh":{"language":"zh","value":"艾菲爾鐵塔"},"se":{"language":"se","value":"Eiffel-toardna"},"gsw":{"language":"gsw","value":"Eiffelturm"},"be-tarask":{"language":"be-tarask","value":"Эйфэлева вежа"},"ilo":{"language":"ilo","value":"Torre Eiffel"},"sco":{"language":"sco","value":"Eiffel Touer"},"sgs":{"language":"sgs","value":"Eifelė buokšts"},"nan":{"language":"nan","value":"Eiffel Thah"},"zea":{"language":"zea","value":"Eiffeltoôr'n"},"lo":{"language":"lo","value":"ຫໍແອບແຟນ"},"pa":{"language":"pa","value":"ਆਈਫ਼ਲ ਟਾਵਰ"},"ce":{"language":"ce","value":"Эйфелин бӀов"},"sah":{"language":"sah","value":"Эйфель башнята"},"dv":{"language":"dv","value":"އެއިފެލް ޓަވަރު"},"ckb":{"language":"ckb","value":"بورجی ئیڤڵ"},"ne":{"language":"ne","value":"आइफिल टावर"},"gd":{"language":"gd","value":"Tùr Eiffel"},"ang":{"language":"ang","value":"Eiffel Torr"},"gom":{"language":"gom","value":"Eiffel Tower"},"wuu":{"language":"wuu","value":"埃菲尔铁塔"},"zh-hans":{"language":"zh-hans","value":"圣伊田居孟教堂"},"gom-latn":{"language":"gom-latn","value":"Eiffel Tower"},"gom-deva":{"language":"gom-deva","value":"आयफेल टावर"},"tt-cyrl":{"language":"tt-cyrl","value":"Эйфель манарасы"},"tt-latn":{"language":"tt-latn","value":"Eyfel manarası"}},"descriptions":{"en":{"language":"en","value":"tower located on the Champ de Mars in Paris, France"},"nb":{"language":"nb","value":"landemerke i Paris"},"es":{"language":"es","value":"monumento en París, Francia"},"it":{"language":"it","value":"monumento di Parigi"},"fr":{"language":"fr","value":"monument de la ville de Paris"},"de":{"language":"de","value":"Eisenfachwerkturm in Paris"},"ru":{"language":"ru","value":"архитектурная достопримечательность Парижа"},"fi":{"language":"fi","value":"torni Pariisissa, Ranskassa"},"pt-br":{"language":"pt-br","value":"torre localizada no Champ de Mars, em Paris, França"},"cs":{"language":"cs","value":"rozhledna v Paříži"},"mk":{"language":"mk","value":"кула на Марсовото поле во Париз"},"ilo":{"language":"ilo","value":"torre a mabirukan idiay Champ de Mars idiay Paris, Pransia"},"nl":{"language":"nl","value":"bouwwerk in Parijs"},"zh-hans":{"language":"zh-hans","value":"位于法国巴黎战神广场的铁制镂空塔"},"uk":{"language":"uk","value":"Ейфелева вежа"},"hu":{"language":"hu","value":"torony Párizsban"},"ckb":{"language":"ckb","value":"ئهو بورجهی له 31 مارسی 1889 له فهرهنسا ، پاریس دروستکرا"},"sv":{"language":"sv","value":"monument i Paris, Frankrike"},"gl":{"language":"gl","value":"torre situada no Campo de Marte en París"},"ne":{"language":"ne","value":"फ्रान्सको पेरिसमा च्याम्प डे मार्समा स्थित टावर"},"eo":{"language":"eo","value":"turo en Parizo"},"bg":{"language":"bg","value":"кула в Париж"},"pl":{"language":"pl","value":"konstrukcja kratowa z kutego żelaza (Paryż, Francja; 1889–)"},"ja":{"language":"ja","value":"フランスのパリにある塔"},"lv":{"language":"lv","value":"tērauda tornis Parīzē, Francijā"},"tr":{"language":"tr","value":"Paris'in simgesi olan demir kule"},"tt-cyrl":{"language":"tt-cyrl","value":"Парижның иң танылган архитектур истәлекле бинасы, бөтендөньяда Франция симоволы буларак танылган манара"},"tt-latn":{"language":"tt-latn","value":"Parijnıñ iñ tanılğan arxitektur istälekle binası, bötendönyada Fransiä simowolı bularaq tanılğan manara"},"tt":{"language":"tt","value":"Парижның иң танылган архитектур истәлекле бинасы, бөтендөньяда Франция симоволы буларак танылган манара"},"ar":{"language":"ar","value":"برج في فرنسا"},"ka":{"language":"ka","value":"არქიტექტურული ღირსშესანიშნაობა პარიზში"}},"aliases":{"en":[{"language":"en","value":"Tour Eiffel"},{"language":"en","value":"The Eiffel Tower"}],"fi":[{"language":"fi","value":"Eiffelin torni"}],"it":[{"language":"it","value":"Tour Eiffel"}],"es":[{"language":"es","value":"Tour Eiffel"}],"fr":[{"language":"fr","value":"Dame de fer"},{"language":"fr","value":"La Tour Eiffel"}],"gl":[{"language":"gl","value":"Tour Eiffel"}],"ko":[{"language":"ko","value":"에펠탑"}],"pl":[{"language":"pl","value":"Tour Eiffel"},{"language":"pl","value":"Żelazna dama"}],"de":[{"language":"de","value":"Tour Eiffel"}],"ja":[{"language":"ja","value":"エッフェルタワー"}]},"claims":{"P1435":[{"mainsnak":{"snaktype":"value","property":"P1435","datavalue":{"value":{"entity-type":"item","numeric-id":10387575,"id":"Q10387575"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","qualifiers":{"P580":[{"snaktype":"value","property":"P580","hash":"4456e472fbed02502bc58785aaad72983ed22a63","datavalue":{"value":{"time":"+1964-06-24T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"}]},"qualifiers-order":["P580"],"id":"Q243$6dd6287a-44ad-dde3-1ce1-961f82cc4d27","rank":"normal","references":[{"hash":"d709174cc609072fbf310bb52ddfb7aa2332b473","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":809830,"id":"Q809830"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P248"]}]}],"P631":[{"mainsnak":{"snaktype":"value","property":"P631","datavalue":{"value":{"entity-type":"item","numeric-id":286254,"id":"Q286254"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$f3b30601-4d15-9e80-c8dd-92eee62f69c6","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P631","datavalue":{"value":{"entity-type":"item","numeric-id":339645,"id":"Q339645"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$f82eda9c-45e4-9a82-b38d-4e81b7f19f34","rank":"normal"}],"P193":[{"mainsnak":{"snaktype":"value","property":"P193","datavalue":{"value":{"entity-type":"item","numeric-id":20882,"id":"Q20882"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$9485e455-4718-ad9f-5dd4-05411c880320","rank":"normal","references":[{"hash":"3c08288af6de720edfd9239151e30aee98817853","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":15727294,"id":"Q15727294"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}],"P1683":[{"snaktype":"value","property":"P1683","datavalue":{"value":{"text":"M. Eiffel s’engage envers M. le Ministre du commerce et de l’industrie, Commissaire général de l’Exposition universelle de 1889, à construire, en qualité d’entrepreneur, dans l’enceinte de l’Exposition, au Champ de Mars, la tour en fer de 300 mètres de hauteur faisant partie des constructions de l’Exposition dont le dessin et le devis sont annexés à la présente convention.","language":"fr"},"type":"monolingualtext"},"datatype":"monolingualtext"}]},"snaks-order":["P248","P1683"]}]}],"P131":[{"mainsnak":{"snaktype":"value","property":"P131","datavalue":{"value":{"entity-type":"item","numeric-id":259463,"id":"Q259463"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"q243$FB0869F2-F1B2-44C1-9296-6595D6965ABC","rank":"normal","references":[{"hash":"d709174cc609072fbf310bb52ddfb7aa2332b473","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":809830,"id":"Q809830"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P248"]}]}],"P84":[{"mainsnak":{"snaktype":"value","property":"P84","datavalue":{"value":{"entity-type":"item","numeric-id":778243,"id":"Q778243"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"q243$4F1D3CDF-5CA0-48AD-A533-655EB388ABDE","rank":"normal"}],"P18":[{"mainsnak":{"snaktype":"value","property":"P18","datavalue":{"value":"Tour Eiffel Wikimedia Commons.jpg","type":"string"},"datatype":"commonsMedia"},"type":"statement","id":"Q243$afd43e43-4a1f-c7d3-6cbc-55d323647a72","rank":"normal"}],"P17":[{"mainsnak":{"snaktype":"value","property":"P17","datavalue":{"value":{"entity-type":"item","numeric-id":142,"id":"Q142"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"q243$6032A251-115E-4835-B758-361FB095D13C","rank":"normal","references":[{"hash":"d709174cc609072fbf310bb52ddfb7aa2332b473","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":809830,"id":"Q809830"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P248"]}]}],"P186":[{"mainsnak":{"snaktype":"value","property":"P186","datavalue":{"value":{"entity-type":"item","numeric-id":860451,"id":"Q860451"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"q243$81709BA0-5BCA-46CC-BC6D-1BADA34B211F","rank":"normal"}],"P138":[{"mainsnak":{"snaktype":"value","property":"P138","datavalue":{"value":{"entity-type":"item","numeric-id":20882,"id":"Q20882"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"q243$C87B9E0D-093C-47BE-8444-E4B407864E2D","rank":"normal"}],"P214":[{"mainsnak":{"snaktype":"value","property":"P214","datavalue":{"value":"236835198","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$810E405F-1AC0-4B39-9C7C-15BA8CA6551A","rank":"preferred","references":[{"hash":"d4bd87b862b12d99d26e86472d44f26858dee639","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":8447,"id":"Q8447"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P227":[{"mainsnak":{"snaktype":"value","property":"P227","datavalue":{"value":"4102872-7","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$2CF798A8-A672-4B8B-BD59-1C0557F95D46","rank":"normal","references":[{"hash":"9a24f7c0208b05d6be97077d855671d1dfdbc0dd","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":48183,"id":"Q48183"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P454":[{"mainsnak":{"snaktype":"value","property":"P454","datavalue":{"value":"20000021","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$00530cf1-4037-a1b9-1c2f-393e3ec75833","rank":"normal","references":[{"hash":"d4bd87b862b12d99d26e86472d44f26858dee639","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":8447,"id":"Q8447"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P269":[{"mainsnak":{"snaktype":"value","property":"P269","datavalue":{"value":"027348857","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$b14042d8-4ca2-9465-3ef7-0630125a88e8","rank":"normal"}],"P244":[{"mainsnak":{"snaktype":"value","property":"P244","datavalue":{"value":"sh85136247","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$907fdd9a-4cff-29c8-ed07-3cb2a6144bec","rank":"normal"}],"P373":[{"mainsnak":{"snaktype":"value","property":"P373","datavalue":{"value":"Eiffel Tower","type":"string"},"datatype":"string"},"type":"statement","id":"q243$ed81c2ec-4645-7468-130c-f1aed6577093","rank":"normal"}],"P455":[{"mainsnak":{"snaktype":"value","property":"P455","datavalue":{"value":"110508","type":"string"},"datatype":"external-id"},"type":"statement","id":"q243$4fdc199b-4b83-3e39-c1fe-dcb172051e2a","rank":"normal"}],"P625":[{"mainsnak":{"snaktype":"value","property":"P625","datavalue":{"value":{"latitude":48.858,"longitude":2.2953,"altitude":null,"precision":0.0001,"globe":"http://www.wikidata.org/entity/Q2"},"type":"globecoordinate"},"datatype":"globe-coordinate"},"type":"statement","id":"q243$39A2814F-32C8-415B-A7A6-1DDF4A7D1FFC","rank":"normal","references":[{"hash":"732ec1c90a6f0694c7db9a71bf09fe7f2b674172","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":10000,"id":"Q10000"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P910":[{"mainsnak":{"snaktype":"value","property":"P910","datavalue":{"value":{"entity-type":"item","numeric-id":6741108,"id":"Q6741108"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$FD141425-1C38-4C6F-B1E3-4B53E40100A8","rank":"normal"}],"P31":[{"mainsnak":{"snaktype":"value","property":"P31","datavalue":{"value":{"entity-type":"item","numeric-id":1440476,"id":"Q1440476"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$2eb349bf-4089-fd98-7bd5-263a4b363fba","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P31","datavalue":{"value":{"entity-type":"item","numeric-id":1440300,"id":"Q1440300"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$1EB6EF73-DC08-4192-A2FC-C2E9C7F7F9E9","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P31","datavalue":{"value":{"entity-type":"item","numeric-id":2319498,"id":"Q2319498"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$f5add39b-4ea4-f936-b9af-ac5c57440287","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P31","datavalue":{"value":{"entity-type":"item","numeric-id":1200957,"id":"Q1200957"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$85578ef2-4288-933a-ce0e-f6a5e06ca706","rank":"normal"}],"P935":[{"mainsnak":{"snaktype":"value","property":"P935","datavalue":{"value":"Tour Eiffel","type":"string"},"datatype":"string"},"type":"statement","id":"Q243$181040E7-EEFA-48DF-B1DC-A128F167F483","rank":"normal"}],"P646":[{"mainsnak":{"snaktype":"value","property":"P646","datavalue":{"value":"/m/02j81","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$EFFAEEB0-BECC-47F1-BC71-144D359DC8AC","rank":"normal","references":[{"hash":"2b00cb481cddcac7623114367489b5c194901c4a","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":15241312,"id":"Q15241312"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}],"P577":[{"snaktype":"value","property":"P577","datavalue":{"value":{"time":"+2013-10-28T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"}]},"snaks-order":["P248","P577"]}]}],"P380":[{"mainsnak":{"snaktype":"value","property":"P380","datavalue":{"value":"PA00088801","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$029A7ABA-F40A-43B6-8599-DE1E69281C0D","rank":"normal","references":[{"hash":"d709174cc609072fbf310bb52ddfb7aa2332b473","snaks":{"P248":[{"snaktype":"value","property":"P248","datavalue":{"value":{"entity-type":"item","numeric-id":809830,"id":"Q809830"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P248"]}]}],"P127":[{"mainsnak":{"snaktype":"value","property":"P127","datavalue":{"value":{"entity-type":"item","numeric-id":90,"id":"Q90"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","qualifiers":{"P457":[{"snaktype":"value","property":"P457","hash":"a32d243c3c432e14b408dadf10d0b6f1c6ed575e","datavalue":{"value":{"entity-type":"item","numeric-id":15727294,"id":"Q15727294"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}],"P580":[{"snaktype":"value","property":"P580","hash":"a1c60bf9542aff20c0c0ea9ad28087c555d62684","datavalue":{"value":{"time":"+1889-01-01T00:00:00Z","timezone":0,"before":0,"after":0,"precision":9,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"}]},"qualifiers-order":["P457","P580"],"id":"Q243$5440d6a7-4bdc-7f1d-69e6-0d9724bea1c8","rank":"normal"}],"P1101":[{"mainsnak":{"snaktype":"value","property":"P1101","datavalue":{"value":{"amount":"+3","unit":"1","upperBound":"+3","lowerBound":"+3"},"type":"quantity"},"datatype":"quantity"},"type":"statement","id":"Q243$f8732408-4244-6d9a-4779-c26895555e69","rank":"normal"}],"P998":[{"mainsnak":{"snaktype":"value","property":"P998","datavalue":{"value":"World/Français/Arts/Architecture/Histoire/Types_de_constructions/Edifices_civils/Tours/Tour_Eiffel/","type":"string"},"datatype":"external-id"},"type":"statement","qualifiers":{"P407":[{"snaktype":"value","property":"P407","hash":"d197d0a5efa4b4c23a302a829dd3ef43684fe002","datavalue":{"value":{"entity-type":"item","numeric-id":150,"id":"Q150"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"qualifiers-order":["P407"],"id":"Q243$A7695448-9B6C-446E-8562-5D017C5C82EF","rank":"normal"}],"P1566":[{"mainsnak":{"snaktype":"value","property":"P1566","datavalue":{"value":"6254976","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$C78EE20E-0C7E-4E06-BB87-1EEC9C5FF242","rank":"normal","references":[{"hash":"64133510dcdf15e7943de41e4835c673fc5d6fe4","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":830106,"id":"Q830106"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P856":[{"mainsnak":{"snaktype":"value","property":"P856","datavalue":{"value":"http://www.toureiffel.paris","type":"string"},"datatype":"url"},"type":"statement","id":"Q243$0e2e2222-4b4b-7f40-8da8-4e2dce6787e3","rank":"normal"}],"P1669":[{"mainsnak":{"snaktype":"value","property":"P1669","datavalue":{"value":"700000116","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$4BE1431A-C82D-4B18-B52C-3840A9752D25","rank":"normal"}],"P1838":[{"mainsnak":{"snaktype":"value","property":"P1838","datavalue":{"value":"FR-75056-19","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$BBE3BC06-BE85-46FB-BEDB-4CB4345A4F7B","rank":"normal"}],"P1305":[{"mainsnak":{"snaktype":"value","property":"P1305","datavalue":{"value":"9410","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$D80E3AF3-59C3-4727-8A06-4EE8E19721BF","rank":"normal"}],"P2048":[{"mainsnak":{"snaktype":"value","property":"P2048","datavalue":{"value":{"amount":"+324","unit":"http://www.wikidata.org/entity/Q11573"},"type":"quantity"},"datatype":"quantity"},"type":"statement","qualifiers":{"P1013":[{"snaktype":"value","property":"P1013","hash":"77d6bd330a135888b5b067d134725612e6ef6ad3","datavalue":{"value":{"entity-type":"item","numeric-id":26970842,"id":"Q26970842"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"qualifiers-order":["P1013"],"id":"Q243$46ebeac8-415a-3d44-a2fe-32b83bc1423c","rank":"normal","references":[{"hash":"046ac784f2b6db67e8338f05c8d715d5eb5220ea","snaks":{"P854":[{"snaktype":"value","property":"P854","datavalue":{"value":"http://skyscrapercenter.com/building/eiffel-tower/9410","type":"string"},"datatype":"url"}],"P813":[{"snaktype":"value","property":"P813","datavalue":{"value":{"time":"+2017-03-06T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"}],"P123":[{"snaktype":"value","property":"P123","datavalue":{"value":{"entity-type":"item","numeric-id":372245,"id":"Q372245"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P854","P813","P123"]},{"hash":"ee0e2990a60e2cc5cc634b89d0366c6d27ab362c","snaks":{"P854":[{"snaktype":"value","property":"P854","datavalue":{"value":"http://www.lefigaro.fr/voyages/2015/01/29/30003-20150129ARTFIG00325-nouveau-record-historique-pour-la-tour-eiffel.php","type":"string"},"datatype":"url"}],"P813":[{"snaktype":"value","property":"P813","datavalue":{"value":{"time":"+2017-05-23T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"}],"P123":[{"snaktype":"value","property":"P123","datavalue":{"value":{"entity-type":"item","numeric-id":216047,"id":"Q216047"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P854","P813","P123"]}]},{"mainsnak":{"snaktype":"value","property":"P2048","datavalue":{"value":{"amount":"+300","unit":"http://www.wikidata.org/entity/Q11573"},"type":"quantity"},"datatype":"quantity"},"type":"statement","qualifiers":{"P1013":[{"snaktype":"value","property":"P1013","hash":"e99f5893ca6f676bf8cb3493439e224454818043","datavalue":{"value":{"entity-type":"item","numeric-id":24192182,"id":"Q24192182"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"qualifiers-order":["P1013"],"id":"Q243$63a5bca7-4889-b919-972a-b29099b290fb","rank":"normal","references":[{"hash":"86e6431f982900a816df947c3451970ec4cf9691","snaks":{"P854":[{"snaktype":"value","property":"P854","datavalue":{"value":"http://www.skyscrapercenter.com/building/eiffel-tower/9410","type":"string"},"datatype":"url"}]},"snaks-order":["P854"]}]}],"P571":[{"mainsnak":{"snaktype":"value","property":"P571","datavalue":{"value":{"time":"+1889-00-00T00:00:00Z","timezone":0,"before":0,"after":0,"precision":9,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"},"type":"statement","id":"Q243$907b7361-464e-9064-aeda-8100430b71bb","rank":"normal"}],"P1174":[{"mainsnak":{"snaktype":"value","property":"P1174","datavalue":{"value":{"amount":"+7000000","unit":"1","upperBound":"+7000000","lowerBound":"+7000000"},"type":"quantity"},"datatype":"quantity"},"type":"statement","id":"Q243$558497e4-4203-fcd5-bacc-275591fb3683","rank":"normal"}],"P2382":[{"mainsnak":{"snaktype":"value","property":"P2382","datavalue":{"value":"la-tour-eiffel","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$DCA89A5C-3C35-4D31-A6C7-9F096D03844C","rank":"normal"}],"P2002":[{"mainsnak":{"snaktype":"value","property":"P2002","datavalue":{"value":"LaTourEiffel","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$797571a3-4640-167e-bfb0-7320913d7c1c","rank":"normal"}],"P421":[{"mainsnak":{"snaktype":"value","property":"P421","datavalue":{"value":{"entity-type":"item","numeric-id":25989,"id":"Q25989"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$3B3829CE-1F42-46FB-BCCC-590E0A6BC1B7","rank":"normal"}],"P1343":[{"mainsnak":{"snaktype":"value","property":"P1343","datavalue":{"value":{"entity-type":"item","numeric-id":2041543,"id":"Q2041543"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","qualifiers":{"P248":[{"snaktype":"value","property":"P248","hash":"d017f19d4eca77d0e032dba2ab7b0b5c1e607edb","datavalue":{"value":{"entity-type":"item","numeric-id":23857667,"id":"Q23857667"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"qualifiers-order":["P248"],"id":"Q243$C6FDF453-6C39-4F7F-ABE9-505F31F9122F","rank":"normal"}],"P1947":[{"mainsnak":{"snaktype":"value","property":"P1947","datavalue":{"value":"SS2cF5-MQ3JJRNr-pT44bg0o509i56","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$147d24cd-41eb-fcfe-6022-ce4f463e8740","rank":"normal"}],"P361":[{"mainsnak":{"snaktype":"value","property":"P361","datavalue":{"value":{"entity-type":"item","numeric-id":2233532,"id":"Q2233532"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$742813f2-418b-133e-722e-371ba2c11065","rank":"normal"}],"P1301":[{"mainsnak":{"snaktype":"value","property":"P1301","datavalue":{"value":{"amount":"+8","unit":"1","upperBound":"+8","lowerBound":"+8"},"type":"quantity"},"datatype":"quantity"},"type":"statement","id":"Q243$3D4F0D45-2F8F-4C77-A736-D24A74F6F087","rank":"normal","references":[{"hash":"fa278ebfc458360e5aed63d5058cca83c46134f1","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":328,"id":"Q328"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P3134":[{"mainsnak":{"snaktype":"value","property":"P3134","datavalue":{"value":"g187147-d188151","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$f1fb594a-4198-0965-9782-abbf29fc685b","rank":"normal"}],"P2959":[{"mainsnak":{"snaktype":"value","property":"P2959","datavalue":{"value":{"entity-type":"item","numeric-id":25689717,"id":"Q25689717"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$49F2E4B2-6AFE-4E0F-9475-94A08E8D1627","rank":"normal"}],"P3222":[{"mainsnak":{"snaktype":"value","property":"P3222","datavalue":{"value":"eiffeltornet","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$8B50E2F5-E646-4722-8541-9C013A0B076B","rank":"normal"}],"P3417":[{"mainsnak":{"snaktype":"value","property":"P3417","datavalue":{"value":"Eiffel-Tower","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$BC4A7E78-732C-4366-8E6E-A266BA8B8BC4","rank":"normal"}],"P2163":[{"mainsnak":{"snaktype":"value","property":"P2163","datavalue":{"value":"1153112","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$63d7447d-4a51-8125-3674-c6b6e26f21b8","rank":"normal"}],"P268":[{"mainsnak":{"snaktype":"value","property":"P268","datavalue":{"value":"11941003z","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$77e2eaba-4125-c794-1269-2fbc0ce4f76d","rank":"normal"}],"P950":[{"mainsnak":{"snaktype":"value","property":"P950","datavalue":{"value":"XX4850635","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$113d3aa5-4a9e-cab2-a504-7151eff04209","rank":"normal"}],"P349":[{"mainsnak":{"snaktype":"value","property":"P349","datavalue":{"value":"01193444","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$7a43c4d6-44e4-0045-7fa8-03392691ab96","rank":"normal"}],"P3749":[{"mainsnak":{"snaktype":"value","property":"P3749","datavalue":{"value":"10222232094831998944","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$b5f64f16-4070-e015-6434-6a09f147b94e","rank":"normal","references":[{"hash":"b3c2cde2da5afb0f028ccded34a7df57003d7f8f","snaks":{"P854":[{"snaktype":"value","property":"P854","datavalue":{"value":"https://maps.google.com/?cid=10222232094831998944","type":"string"},"datatype":"url"}]},"snaks-order":["P854"]}]}],"P972":[{"mainsnak":{"snaktype":"value","property":"P972","datavalue":{"value":{"entity-type":"item","numeric-id":5460604,"id":"Q5460604"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$1CB6BF8A-885B-478D-B660-914E3203876D","rank":"normal"}],"P1619":[{"mainsnak":{"snaktype":"value","property":"P1619","datavalue":{"value":{"time":"+1889-03-31T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"},"type":"statement","id":"Q243$cde015cb-4ddf-19f9-8f24-d1576c7d3e6c","rank":"normal"}],"P281":[{"mainsnak":{"snaktype":"value","property":"P281","datavalue":{"value":"75007","type":"string"},"datatype":"string"},"type":"statement","id":"Q243$1dd762dd-42f3-3472-e5ba-db6d867fd1fb","rank":"normal"}],"P1705":[{"mainsnak":{"snaktype":"value","property":"P1705","datavalue":{"value":{"text":"tour Eiffel","language":"fr"},"type":"monolingualtext"},"datatype":"monolingualtext"},"type":"statement","id":"Q243$f903a5b7-4edf-801e-1f7a-562868d784ec","rank":"normal","references":[{"hash":"288ab581e7d2d02995a26dfa8b091d96e78457fc","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":206855,"id":"Q206855"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P669":[{"mainsnak":{"snaktype":"value","property":"P669","datavalue":{"value":{"entity-type":"item","numeric-id":217925,"id":"Q217925"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$e62b5eef-4038-dab3-846a-8c42753a3631","rank":"normal"}],"P4161":[{"mainsnak":{"snaktype":"value","property":"P4161","datavalue":{"value":"europe/france/ile-de-france/ville-de-paris/paris/tour-eiffel","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$411e6fbe-426e-b278-c115-041774fc2094","rank":"normal"}],"P4173":[{"mainsnak":{"snaktype":"value","property":"P4173","datavalue":{"value":"2593354","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$0d5feaab-43a1-dd0c-ed2a-c45962cd504e","rank":"normal"}],"P466":[{"mainsnak":{"snaktype":"value","property":"P466","datavalue":{"value":{"entity-type":"item","numeric-id":16008666,"id":"Q16008666"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q243$2810f602-44d7-6510-5dcd-6cd3d4495dc3","rank":"normal","references":[{"hash":"d4bd87b862b12d99d26e86472d44f26858dee639","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":8447,"id":"Q8447"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}],"P4238":[{"mainsnak":{"snaktype":"value","property":"P4238","datavalue":{"value":"http://www.earthcam.com/world/france/paris/?cam=eiffeltower_hd","type":"string"},"datatype":"url"},"type":"statement","qualifiers":{"P3173":[{"snaktype":"value","property":"P3173","hash":"3130e8e16df126bea0932adc0edc87315391f505","datavalue":{"value":{"entity-type":"item","numeric-id":243,"id":"Q243"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"qualifiers-order":["P3173"],"id":"Q243$c982ae3f-433b-a1e5-b902-f25e2b6fece5","rank":"normal"}],"P4201":[{"mainsnak":{"snaktype":"value","property":"P4201","datavalue":{"value":"00634660","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$f145f285-4719-59c4-cc52-690ab34dcefb","rank":"normal"}],"P2013":[{"mainsnak":{"snaktype":"value","property":"P2013","datavalue":{"value":"TourEiffel","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$708fafef-4d6a-de43-c6c5-f370f14761bb","rank":"normal"}],"P2397":[{"mainsnak":{"snaktype":"value","property":"P2397","datavalue":{"value":"UCMYYoL1lRGp9yWf4zJufVhA","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$1b821d1f-49ea-9e90-0661-6e4bc718c8fa","rank":"normal"}],"P2003":[{"mainsnak":{"snaktype":"value","property":"P2003","datavalue":{"value":"toureiffelofficielle","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$7daac13f-476d-ee49-1a30-5edc3ccf5974","rank":"normal"}],"P3108":[{"mainsnak":{"snaktype":"value","property":"P3108","datavalue":{"value":"la-tour-eiffel-paris-4","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$fef24510-4e8c-97d7-8314-01a32b22c6ca","rank":"normal"}],"P1968":[{"mainsnak":{"snaktype":"value","property":"P1968","datavalue":{"value":"51a2445e5019c80b56934c75","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$a405c439-40e7-049c-fced-da3427028dfd","rank":"normal"}],"P4431":[{"mainsnak":{"snaktype":"value","property":"P4431","datavalue":{"value":"126th-anniversary-of-the-public-opening-of-the-eiffel-tower","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$cfaecfa6-468a-24b3-c1c7-c3a56210422a","rank":"normal"}],"P2581":[{"mainsnak":{"snaktype":"value","property":"P2581","datavalue":{"value":"00029980n","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q243$43BFF9BC-FDFF-4181-ACBB-54A4833AFE38","rank":"normal","references":[{"hash":"bd0ee81488cd8c23d4b655e417aac78dca370283","snaks":{"P143":[{"snaktype":"value","property":"P143","datavalue":{"value":{"entity-type":"item","numeric-id":4837690,"id":"Q4837690"},"type":"wikibase-entityid"},"datatype":"wikibase-item"}]},"snaks-order":["P143"]}]}]},"sitelinks":{"viwikivoyage":{"site":"viwikivoyage","title":"Tháp Eiffel","badges":[]},"commonswiki":{"site":"commonswiki","title":"Tour Eiffel","badges":[]},"enwikisource":{"site":"enwikisource","title":"1911 Encyclopædia Britannica/Eiffel Tower","badges":[]},"cswikiquote":{"site":"cswikiquote","title":"Eiffelova věž","badges":[]},"frwikiquote":{"site":"frwikiquote","title":"Tour Eiffel","badges":[]},"fawikivoyage":{"site":"fawikivoyage","title":"برج ایفل","badges":[]},"plwikiquote":{"site":"plwikiquote","title":"Wieża Eiffla","badges":[]},"itwikiquote":{"site":"itwikiquote","title":"Torre Eiffel","badges":[]},"enwiki":{"site":"enwiki","title":"Eiffel Tower","badges":[]},"dewiki":{"site":"dewiki","title":"Eiffelturm","badges":["Q17437796"]},"frwiki":{"site":"frwiki","title":"Tour Eiffel","badges":[]},"eswiki":{"site":"eswiki","title":"Torre Eiffel","badges":[]},"ruwiki":{"site":"ruwiki","title":"Эйфелева башня","badges":[]},"itwiki":{"site":"itwiki","title":"Torre Eiffel","badges":[]},"jawiki":{"site":"jawiki","title":"エッフェル塔","badges":[]},"nlwiki":{"site":"nlwiki","title":"Eiffeltoren","badges":[]},"plwiki":{"site":"plwiki","title":"Wieża Eiffla","badges":[]},"ptwiki":{"site":"ptwiki","title":"Torre Eiffel","badges":[]},"zhwiki":{"site":"zhwiki","title":"艾菲爾鐵塔","badges":[]},"svwiki":{"site":"svwiki","title":"Eiffeltornet","badges":[]},"fawiki":{"site":"fawiki","title":"برج ایفل","badges":[]},"hewiki":{"site":"hewiki","title":"מגדל אייפל","badges":[]},"trwiki":{"site":"trwiki","title":"Eyfel Kulesi","badges":[]},"huwiki":{"site":"huwiki","title":"Eiffel-torony","badges":[]},"fiwiki":{"site":"fiwiki","title":"Eiffel-torni","badges":[]},"arwiki":{"site":"arwiki","title":"برج إيفل","badges":[]},"viwiki":{"site":"viwiki","title":"Tháp Eiffel","badges":["Q17437796"]},"nowiki":{"site":"nowiki","title":"Eiffeltårnet","badges":[]},"ukwiki":{"site":"ukwiki","title":"Ейфелева вежа","badges":[]},"kowiki":{"site":"kowiki","title":"에펠 탑","badges":[]},"cawiki":{"site":"cawiki","title":"Torre Eiffel","badges":[]},"cswiki":{"site":"cswiki","title":"Eiffelova věž","badges":[]},"srwiki":{"site":"srwiki","title":"Ајфелова кула","badges":[]},"rowiki":{"site":"rowiki","title":"Turnul Eiffel","badges":[]},"idwiki":{"site":"idwiki","title":"Menara Eiffel","badges":[]},"dawiki":{"site":"dawiki","title":"Eiffeltårnet","badges":[]},"simplewiki":{"site":"simplewiki","title":"Eiffel Tower","badges":[]},"bgwiki":{"site":"bgwiki","title":"Айфелова кула","badges":[]},"afwiki":{"site":"afwiki","title":"Eiffeltoring","badges":[]},"alswiki":{"site":"alswiki","title":"Eiffelturm","badges":[]},"anwiki":{"site":"anwiki","title":"Torre Eiffel","badges":[]},"angwiki":{"site":"angwiki","title":"Eiffel Torr","badges":[]},"arzwiki":{"site":"arzwiki","title":"برج ايفيل","badges":[]},"aswiki":{"site":"aswiki","title":"আইফেল টাৱাৰ","badges":[]},"astwiki":{"site":"astwiki","title":"Torre Eiffel","badges":[]},"azwiki":{"site":"azwiki","title":"Eyfel qülləsi","badges":[]},"bawiki":{"site":"bawiki","title":"Эйфель башняһы","badges":[]},"bat_smgwiki":{"site":"bat_smgwiki","title":"Eifelė buokšts","badges":[]},"bclwiki":{"site":"bclwiki","title":"Torre Eiffel","badges":[]},"bewiki":{"site":"bewiki","title":"Эйфелева вежа","badges":[]},"be_x_oldwiki":{"site":"be_x_oldwiki","title":"Эйфэлева вежа","badges":[]},"bnwiki":{"site":"bnwiki","title":"আইফেল টাওয়ার","badges":[]},"brwiki":{"site":"brwiki","title":"Tour Eiffel","badges":[]},"bswiki":{"site":"bswiki","title":"Eiffelov toranj","badges":[]},"cewiki":{"site":"cewiki","title":"Эйфелин бӀов","badges":[]},"cvwiki":{"site":"cvwiki","title":"Эйфел турулĕ","badges":[]},"cywiki":{"site":"cywiki","title":"Tŵr Eiffel","badges":[]},"dsbwiki":{"site":"dsbwiki","title":"Eiffelowy torm","badges":[]},"dvwiki":{"site":"dvwiki","title":"އެއިފެލް ޓަވަރު","badges":[]},"elwiki":{"site":"elwiki","title":"Πύργος του Άιφελ","badges":[]},"eowiki":{"site":"eowiki","title":"Eiffel-Turo","badges":[]},"etwiki":{"site":"etwiki","title":"Eiffeli torn","badges":[]},"euwiki":{"site":"euwiki","title":"Eiffel dorrea","badges":[]},"fowiki":{"site":"fowiki","title":"Eiffeltornið","badges":[]},"fywiki":{"site":"fywiki","title":"Eiffeltoer","badges":[]},"gawiki":{"site":"gawiki","title":"Túr Eiffel","badges":[]},"gdwiki":{"site":"gdwiki","title":"Tùr Eiffel","badges":[]},"glwiki":{"site":"glwiki","title":"Torre Eiffel","badges":[]},"gnwiki":{"site":"gnwiki","title":"Eiffel Óga tuicha","badges":[]},"gomwiki":{"site":"gomwiki","title":"Eiffel Tower","badges":[]},"guwiki":{"site":"guwiki","title":"ઍફીલ ટાવર","badges":[]},"hakwiki":{"site":"hakwiki","title":"Eiffel Thiet-thap","badges":[]},"hiwiki":{"site":"hiwiki","title":"एफिल टॉवर","badges":[]},"hifwiki":{"site":"hifwiki","title":"Eiffel Tower","badges":[]},"hrwiki":{"site":"hrwiki","title":"Eiffelov toranj","badges":[]},"hsbwiki":{"site":"hsbwiki","title":"Eiffelowa wěža","badges":[]},"hywiki":{"site":"hywiki","title":"Էյֆելյան աշտարակ","badges":[]},"ilowiki":{"site":"ilowiki","title":"Torre Eiffel","badges":[]},"iowiki":{"site":"iowiki","title":"Turmo Eiffel","badges":[]},"iswiki":{"site":"iswiki","title":"Eiffelturninn","badges":[]},"jvwiki":{"site":"jvwiki","title":"Menara Eiffel","badges":[]},"kawiki":{"site":"kawiki","title":"ეიფელის კოშკი","badges":[]},"kkwiki":{"site":"kkwiki","title":"Эйфель мұнарасы","badges":[]},"knwiki":{"site":"knwiki","title":"ಐಫೆಲ್ ಗೋಪುರ","badges":[]},"kuwiki":{"site":"kuwiki","title":"Barûya Eyfelê","badges":[]},"lawiki":{"site":"lawiki","title":"Turris Eiffelia","badges":[]},"lbwiki":{"site":"lbwiki","title":"Eiffeltuerm","badges":[]},"liwiki":{"site":"liwiki","title":"Eiffeltaore","badges":[]},"lijwiki":{"site":"lijwiki","title":"Töre Eiffel","badges":[]},"lmowiki":{"site":"lmowiki","title":"Tur Eifèl","badges":[]},"lowiki":{"site":"lowiki","title":"ຫໍແອບແຟນ","badges":[]},"ltwiki":{"site":"ltwiki","title":"Eifelio bokštas","badges":[]},"lvwiki":{"site":"lvwiki","title":"Eifeļa tornis","badges":[]},"mkwiki":{"site":"mkwiki","title":"Ајфелова кула","badges":[]},"mlwiki":{"site":"mlwiki","title":"ഈഫൽ ഗോപുരം","badges":[]},"mnwiki":{"site":"mnwiki","title":"Эйфелийн цамхаг","badges":[]},"mrwiki":{"site":"mrwiki","title":"आयफेल टॉवर","badges":[]},"mswiki":{"site":"mswiki","title":"Menara Eiffel","badges":[]},"mtwiki":{"site":"mtwiki","title":"Torri Eiffel","badges":[]},"mwlwiki":{"site":"mwlwiki","title":"Torre Eiffel","badges":[]},"mywiki":{"site":"mywiki","title":"အီဖယ်လ် မျှော်စင်","badges":[]},"mznwiki":{"site":"mznwiki","title":"ایفل برج","badges":[]},"nahwiki":{"site":"nahwiki","title":"Eiffel Huehcapan Calli","badges":[]},"ndswiki":{"site":"ndswiki","title":"Eiffeltoorn","badges":[]},"nds_nlwiki":{"site":"nds_nlwiki","title":"Eiffeltoorne","badges":[]},"newiki":{"site":"newiki","title":"आइफिल टावर","badges":[]},"newwiki":{"site":"newwiki","title":"आइफेल टावर","badges":[]},"nnwiki":{"site":"nnwiki","title":"Eiffeltårnet","badges":[]},"ocwiki":{"site":"ocwiki","title":"Torre Eiffel","badges":[]},"pawiki":{"site":"pawiki","title":"ਆਈਫ਼ਲ ਟਾਵਰ","badges":[]},"pmswiki":{"site":"pmswiki","title":"Tor Eiffel","badges":[]},"pnbwiki":{"site":"pnbwiki","title":"آئیفل ٹاور","badges":[]},"sahwiki":{"site":"sahwiki","title":"Эйфель башнята","badges":[]},"scnwiki":{"site":"scnwiki","title":"Turri Eiffel","badges":[]},"scowiki":{"site":"scowiki","title":"Eiffel Touer","badges":[]},"sewiki":{"site":"sewiki","title":"Eiffel-toardna","badges":[]},"shwiki":{"site":"shwiki","title":"Eiffelov toranj","badges":[]},"siwiki":{"site":"siwiki","title":"අයිෆල් කුළුණ","badges":[]},"skwiki":{"site":"skwiki","title":"Eiffelova veža","badges":[]},"slwiki":{"site":"slwiki","title":"Eifflov stolp","badges":[]},"sqwiki":{"site":"sqwiki","title":"Kulla Eiffel","badges":[]},"stqwiki":{"site":"stqwiki","title":"Eiffeltouden","badges":[]},"suwiki":{"site":"suwiki","title":"Munara Eiffel","badges":[]},"swwiki":{"site":"swwiki","title":"Mnara wa Eiffel","badges":[]},"tewiki":{"site":"tewiki","title":"ఈఫిల్ టవర్","badges":[]},"thwiki":{"site":"thwiki","title":"หอไอเฟล","badges":[]},"tlwiki":{"site":"tlwiki","title":"Toreng Eiffel","badges":[]},"ttwiki":{"site":"ttwiki","title":"Эйфель манарасы","badges":[]},"twwiki":{"site":"twwiki","title":"La Tour Eiffel","badges":[]},"urwiki":{"site":"urwiki","title":"ایفل ٹاور","badges":[]},"uzwiki":{"site":"uzwiki","title":"Eiffel minorasi","badges":[]},"vecwiki":{"site":"vecwiki","title":"Tor Eiffel","badges":[]},"vlswiki":{"site":"vlswiki","title":"Ieffeltôorn","badges":[]},"warwiki":{"site":"warwiki","title":"Tore Eiffel","badges":[]},"xmfwiki":{"site":"xmfwiki","title":"ეიფელიშ ჸორში","badges":[]},"yiwiki":{"site":"yiwiki","title":"אייפל טורעם","badges":[]},"zeawiki":{"site":"zeawiki","title":"Eiffeltoôr'n","badges":[]},"zh_min_nanwiki":{"site":"zh_min_nanwiki","title":"Eiffel Thah","badges":[]},"eswikiquote":{"site":"eswikiquote","title":"Torre Eiffel","badges":[]},"wuuwiki":{"site":"wuuwiki","title":"埃菲尔铁塔","badges":[]},"zh_yuewiki":{"site":"zh_yuewiki","title":"巴黎鐵塔","badges":[]},"gotwiki":{"site":"gotwiki","title":"𐌰𐌹𐌾𐍆𐌰𐌹𐍅𐌻 𐌺𐌴𐌻𐌹𐌺𐌽","badges":[]},"ckbwiki":{"site":"ckbwiki","title":"بورجی ئیفێل","badges":[]},"iawiki":{"site":"iawiki","title":"Turre Eiffel","badges":[]},"kbpwiki":{"site":"kbpwiki","title":"Eiffel Kuduyuu Sɔsɔʋ (Tour Eiffel)","badges":[]},"tawiki":{"site":"tawiki","title":"ஈபெல் கோபுரம்","badges":[]},"diqwiki":{"site":"diqwiki","title":"Qulay Eiffeli","badges":[]},"maiwiki":{"site":"maiwiki","title":"आइफिल टावर","badges":[]}}},"geometry":{"type":"Point","coordinates":[2.2953,48.858]}} \ No newline at end of file diff --git a/node_modules/n-readlines/test/fixtures/emptyFile.txt b/node_modules/n-readlines/test/fixtures/emptyFile.txt deleted file mode 100644 index e69de29..0000000 diff --git a/node_modules/n-readlines/test/fixtures/noNewLinesFile.txt b/node_modules/n-readlines/test/fixtures/noNewLinesFile.txt deleted file mode 100644 index 97cda00..0000000 --- a/node_modules/n-readlines/test/fixtures/noNewLinesFile.txt +++ /dev/null @@ -1 +0,0 @@ -no new line diff --git a/node_modules/n-readlines/test/fixtures/normalFile.txt b/node_modules/n-readlines/test/fixtures/normalFile.txt deleted file mode 100644 index 0183fd3..0000000 --- a/node_modules/n-readlines/test/fixtures/normalFile.txt +++ /dev/null @@ -1,3 +0,0 @@ -google.com -yahoo.com -yandex.ru diff --git a/node_modules/n-readlines/test/fixtures/twoLineFile.txt b/node_modules/n-readlines/test/fixtures/twoLineFile.txt deleted file mode 100644 index 97531f3..0000000 --- a/node_modules/n-readlines/test/fixtures/twoLineFile.txt +++ /dev/null @@ -1,2 +0,0 @@ -hello -hello2 diff --git a/node_modules/n-readlines/test/fixtures/withEmptyLines.txt b/node_modules/n-readlines/test/fixtures/withEmptyLines.txt deleted file mode 100644 index 1bb3465..0000000 --- a/node_modules/n-readlines/test/fixtures/withEmptyLines.txt +++ /dev/null @@ -1,5 +0,0 @@ -hello -hello4 - -hello2 -hello3 diff --git a/node_modules/n-readlines/test/fixtures/withNULL.txt b/node_modules/n-readlines/test/fixtures/withNULL.txt deleted file mode 100644 index 5784ef6..0000000 Binary files a/node_modules/n-readlines/test/fixtures/withNULL.txt and /dev/null differ diff --git a/node_modules/n-readlines/test/readlines.test.js b/node_modules/n-readlines/test/readlines.test.js deleted file mode 100644 index 970836f..0000000 --- a/node_modules/n-readlines/test/readlines.test.js +++ /dev/null @@ -1,132 +0,0 @@ -'use strict'; - -const lineByLine = require('../readlines.js'); -const path = require('path'); -const test = require('tape'); - -test('should get all lines', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/twoLineFile.txt')); - - t.equals(liner.next().toString('ascii'), 'hello', 'line 0: hello'); - t.equals(liner.next().toString('ascii'), 'hello2', 'line 1: hello2'); - t.equals(liner.next(), false, 'line 3: false'); - t.equals(liner.next(), false, 'line 4: false'); - t.equals(liner.fd, null, 'fd null'); - t.end(); -}); - -test('should get all lines even if the file doesnt end with new line', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/badEndFile.txt')); - - t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com'); - t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com'); - t.equals(liner.next(), false, 'line 3: false'); - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}); - -test('should get all lines if there is no new lines', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/noNewLinesFile.txt')); - - t.equals(liner.next().toString('ascii'), 'no new line', 'line 0: no new line'); - t.equals(liner.next(), false, 'line 1: false'); - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}); - -test('should handle empty files', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/emptyFile.txt')); - - t.equals(liner.next(), false, 'line 0: false'); - t.equals(liner.fd, null, 'line 0: false'); - t.end(); -}); - -test('should read right between two chunks', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt'), { - readChunk: 16 - }); - - t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com'); - t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com'); - t.equals(liner.next().toString('ascii'), 'yandex.ru', 'line 2: yandex.ru'); - t.equals(liner.next(), false, 'line 3: false'); - t.equals(liner.fd, null, 'fs is null'); - t.end(); -}); - -test('should read empty lines', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/withEmptyLines.txt')); - - t.equals(liner.next().toString('ascii'), 'hello', 'line 0: hello'); - t.equals(liner.next().toString('ascii'), 'hello4', 'line 1: hello4'); - t.equals(liner.next().toString('ascii'), '', 'line 2: '); - t.equals(liner.next().toString('ascii'), 'hello2', 'line 3: hello2'); - t.equals(liner.next().toString('ascii'), 'hello3', 'line 4: hello3'); - t.equals(liner.next(), false, 'line 5: false'); - t.equals(liner.fd, null, 'fs is null'); - t.end(); -}); - -test('should reset and start from the beggining', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt'), { - readChunk: 16 - }); - - t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com'); - t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com'); - - liner.reset() - - t.equals(liner.next().toString('ascii'), 'google.com', 'line 0: google.com'); - t.equals(liner.next().toString('ascii'), 'yahoo.com', 'line 1: yahoo.com'); - t.equals(liner.next().toString('ascii'), 'yandex.ru', 'line 2: yandex.ru'); - t.equals(liner.next(), false, 'line 3: false'); - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}); - -test('should read big lines', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/bigLines.json')); - - - t.ok(JSON.parse(liner.next()), 'line 0: valid JSON'); - t.ok(JSON.parse(liner.next()), 'line 1: valid JSON'); - t.ok(JSON.parse(liner.next()), 'line 2: valid JSON'); - - t.equals(liner.next(), false, 'line 3: false'); - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}); - -test('Non-Latin Char JSON', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/eiffel.geojson')); - - t.ok(JSON.parse(liner.next().toString()), 'line 0: valid JSON'); - - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}); - -test('Manually Close', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/normalFile.txt')); - - t.equals(liner.next().toString(), 'google.com', 'line 0: google.com'); - - liner.close(); - t.equals(liner.fd, null, 'fd is null'); - - t.equals(liner.next(), false, 'line after close: false'); - t.end(); -}); - -test('should correctly processes NULL character in lines', (t) => { - const liner = new lineByLine(path.resolve(__dirname, 'fixtures/withNULL.txt')); - - t.equals(liner.next().toString(), 'line without null', 'line 0: line without null'); - t.equals(liner.next().toString(), 'line wi'+String.fromCharCode(0)+'th null', 'line 1: line with null'); - t.equals(liner.next().toString(), 'another line without null', 'line 2: another line without null'); - - t.equals(liner.fd, null, 'fd is null'); - t.end(); -}) diff --git a/package-lock.json b/package-lock.json index e260309..b4d0377 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,813 @@ "license": "MIT", "dependencies": { "n-readlines": "^1.0.1" + }, + "devDependencies": { + "nodemon": "^2.0.6" } }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "dependencies": { + "ini": "^1.3.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/n-readlines": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/n-readlines/-/n-readlines-1.0.1.tgz", @@ -18,13 +823,1472 @@ "engines": { "node": ">=6.x.x" } + }, + "node_modules/nodemon": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/undefsafe/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/undefsafe/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } } }, "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "requires": { + "ini": "^1.3.5" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "n-readlines": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/n-readlines/-/n-readlines-1.0.1.tgz", "integrity": "sha512-z4SyAIVgMy7CkgsoNw7YVz40v0g4+WWvvqy8+ZdHrCtgevcEO758WQyrYcw3XPxcLxF+//RszTz/rO48nzD0wQ==" + }, + "nodemon": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "dev": true, + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true } } } diff --git a/package.json b/package.json index 2835a79..58890ae 100644 --- a/package.json +++ b/package.json @@ -10,5 +10,8 @@ "license": "MIT", "dependencies": { "n-readlines": "^1.0.1" + }, + "devDependencies": { + "nodemon": "^2.0.6" } } diff --git a/start.js b/start.js index 90bdc67..46dd902 100644 --- a/start.js +++ b/start.js @@ -1,26 +1,36 @@ -const trackNum = process.argv[2]; -if (!trackNum) { console.error('Usage: node start '); process.exit(1); } +const trackNum = process.argv[2] +if (!trackNum) { console.error('Usage: node start '); process.exit(1) } -const satriani = require('./rockstar/satriani/satriani.js'); -const fs = require('fs'); -const lineByLine = require('n-readlines'); +const satriani = require('./rockstar/satriani/satriani.js') +const path = require('path') +const fs = require('fs') +const lineByLine = require('n-readlines') -const rockstar = new satriani.Interpreter(); -const program = fs.readFileSync(`lyrics/${trackNum}.rock`, {encoding:'utf8', flag:'r'}); -const inputByLine = new lineByLine(`inputs/${trackNum}.txt`, {encoding:'utf8', flag:'r'}); +const rockstar = new satriani.Interpreter() +const source = path.normalize( + `${ + fs.existsSync(path.normalize(`lyrics/${trackNum}.rock`)) + ? 'lyrics' + : 'contracts' + }/${trackNum}.rock`) +const program = fs.readFileSync(source, { encoding: 'utf8', flag: 'r' }) +const inputByLine = new lineByLine( + path.normalize(`music/${trackNum}.txt`), + { encoding: 'utf8', flag: 'r' } +) const getNextInputLineAscii = () => { - const next = inputByLine.next(); + const next = inputByLine.next() if (next === false) { - return null; + return null } else { - return next.toString('ascii'); + return next.toString('ascii') } } -const ast = rockstar.parse(program); +const ast = rockstar.parse(program) // Draw the abstract syntax tree (AST) to the console as a JSON object -//console.log(JSON.stringify(ast, null, 2)) +// console.log(JSON.stringify(ast, null, 2)) const output = console.log const result = rockstar.run(ast, getNextInputLineAscii, output) -if (result) console.log(result); +if (result) console.log(result)