{"versions":{"1.0.0":{"name":"@desertnet/scanner","version":"1.0.0","description":"A regex-based string scanner/tokenizer","main":"index.js","scripts":{"test":"mocha --compilers js:babel-register","build":"rimraf ./dist && babel -d ./dist/es5 -s inline ./lib","preversion":"npm test","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.13.2","babel-register":"^6.11.6","chai":"^3.5.0","mocha":"^3.0.2","rimraf":"^2.5.4"},"gitHead":"ef3671fdef2c6b161e2a61030f9a1ef821e246e5","_id":"@desertnet/scanner@1.0.0","_shasum":"27896aa679d0d43bf3804538fa29db3876aebb86","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.1","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"shasum":"27896aa679d0d43bf3804538fa29db3876aebb86","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-1.0.0.tgz","size":7973,"integrity":"sha512-I7L14c6wLPFjlEb1zjtWW/HDI7SGDffGryayP17ZvweQ3paNUF9Dp/yk/Pi94aOatB2eAKhRXgpzU42xFLShog=="},"maintainers":[{"name":"anonymous","email":"eric@limulus.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/scanner-1.0.0.tgz_1471048621386_0.3952267994172871"},"deprecated":"This release is broken, please upgrade to latest","directories":{},"_cnpmcore_publish_time":"2021-12-23T05:12:27.886Z","contributors":[]},"1.0.1":{"name":"@desertnet/scanner","version":"1.0.1","description":"A regex-based string scanner/tokenizer","main":"index.js","scripts":{"test":"mocha --compilers js:babel-register","build":"rimraf ./dist && babel -d ./dist/es5 -s inline ./lib","preversion":"npm test","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.13.2","babel-register":"^6.11.6","chai":"^3.5.0","mocha":"^3.0.2","rimraf":"^2.5.4"},"gitHead":"5ddba1230a045af0fe0021bd8dde9e93ace219a7","_id":"@desertnet/scanner@1.0.1","_shasum":"d7d52752972f2a4eb5f154f2e9e9e4309a5abaf3","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.1","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"shasum":"d7d52752972f2a4eb5f154f2e9e9e4309a5abaf3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-1.0.1.tgz","size":7897,"integrity":"sha512-WsPhimUHr5XalXfaoMh8MqAyeTM0h3pq3Mt7OnvXmEyoendlcKHDLg/gxrCa+rp1itzZzPi4LUie3OdAsXKftw=="},"maintainers":[{"name":"anonymous","email":"ianglockner@gmail.com"},{"name":"anonymous","email":"eric@limulus.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/scanner-1.0.1.tgz_1471101816675_0.6187297070864588"},"deprecated":"This release is broken, please upgrade to latest","directories":{},"_cnpmcore_publish_time":"2021-12-23T05:12:29.541Z","contributors":[]},"1.0.2":{"name":"@desertnet/scanner","version":"1.0.2","description":"A regex-based string scanner/tokenizer","main":"index.js","scripts":{"test":"mocha --compilers js:babel-register","build":"rimraf ./dist && babel -d ./dist/es5 -s inline ./lib","preversion":"npm test","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.13.2","babel-register":"^6.11.6","chai":"^3.5.0","mocha":"^3.0.2","rimraf":"^2.5.4"},"gitHead":"137cad4299e1470e051f463fad36944b8ad7fe4b","_id":"@desertnet/scanner@1.0.2","_shasum":"56e9e25316270aa6c561b118b070f0673a683fb7","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.1","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"shasum":"56e9e25316270aa6c561b118b070f0673a683fb7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-1.0.2.tgz","size":20074,"integrity":"sha512-OAiGNmDIQ+T5idb+9n6oC4UyZsOBiYXhj0I8GMJg3Sw47jIoN3YWqh30aEPj0Mio7sP5DZ6NW2bkmQ1aFeqEWw=="},"maintainers":[{"name":"anonymous","email":"ianglockner@gmail.com"},{"name":"anonymous","email":"eric@limulus.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/scanner-1.0.2.tgz_1471104209668_0.9654166912660003"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T05:12:31.406Z","contributors":[]},"1.1.0":{"name":"@desertnet/scanner","version":"1.1.0","description":"A regex-based string scanner/tokenizer","main":"index.js","scripts":{"test":"mocha --compilers js:babel-register","build":"rimraf ./dist && babel -d ./dist/es5 -s inline ./lib","preversion":"npm test","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"babel-cli":"^6.11.4","babel-preset-es2015":"^6.13.2","babel-register":"^6.11.6","chai":"^3.5.0","mocha":"^3.0.2","rimraf":"^2.5.4"},"gitHead":"b3051510490fe59a8027612f8d865c9a9e148121","_id":"@desertnet/scanner@1.1.0","_shasum":"85b13690a5f02412385941a6472d0c0d606e7e83","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.1","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"shasum":"85b13690a5f02412385941a6472d0c0d606e7e83","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-1.1.0.tgz","size":20146,"integrity":"sha512-FxGF8iTzufY/albSHLHwBRipOV+JR83ujJGDgosxD4WHHkleP+N24MG7GOHoNdSsJevGdPAjIrNbtay7vo0H2Q=="},"maintainers":[{"name":"anonymous","email":"ianglockner@gmail.com"},{"name":"anonymous","email":"eric@limulus.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/scanner-1.1.0.tgz_1471201558846_0.9344583183992654"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T05:12:33.205Z","contributors":[]},"2.0.0":{"name":"@desertnet/scanner","version":"2.0.0","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.54","@babel/core":"^7.0.0-beta.54","@babel/preset-env":"^7.0.0-beta.54","@babel/register":"^7.0.0-beta.54","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.2.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2","sinon":"^6.1.4","sinon-chai":"^3.2.0"},"dependencies":{"lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.maxby":"^4.6.0","node-interval-tree":"^1.3.3"},"gitHead":"0e7158456aedd6975c58ecda69d9f242d603bdc7","_id":"@desertnet/scanner@2.0.0","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-Pgsb530TpC2IAORO9NSQvRFrZW/G68kAtUC5jKBdkL00Q65LMrFzJmMsmEmXjWkMscphrNaa+eLbcDCmYhVRPg==","shasum":"6c2a4b5c27b2e6e0103e987212b8f5107d66557c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-2.0.0.tgz","fileCount":42,"unpackedSize":108520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWkwaCRA9TVsSAnZWagAAbiIP/0jrKJhs3MKjHTNVwbYK\nTBKAqf2J0hpjsjQRRcH82fCEbPnOh6HOK9NzUkI/AqQ6KFK/czIzgI8dcNFy\nySKRc43K5YnqkIfX4AqlAXPxWOKlTEgBZI/abnMv/XfsjT8s2kF64NskGEKD\nrPEPN4Ygu/2rDS2aP666PBMm71k2tvXaTtKEw/WoDKRrkF2HCdzHPR4hX74u\nn56VvWXMgOEL2nk/5w4bIKQw5qIg/vnk+DLtwBFSgA9w1HqQMgAZZXae7amI\nCuhli9pdg+v5KmAkvrY5qIIvlQs13gumqDDjMUKXBG5/4fsqrSUdArJBlDiq\n8Hl0ymxCMhs+V9w0fdVAHJ+WvGPjWkvsDTwPSBHlBTXw9tuLALJjmsl8Gsoa\noKzmiipkXQXnZQOchVFnuGYdkqzwNYWRSlecJKbMkcYBA2phZr76wOnUFNfs\nOLCAlIYEiBtXOklUrblM7C8kwplU2pa5KJKexl26QjcPWq6/YR/75KAfBd8+\n4V2lvSIhhxU6ML5QvgGSNzT94AMNC89WNOAdBttn5da1igpZTbdd1z+nxVBh\nMhfZbe9qYK/ruNHtiz2f8vyF1habM9NbqcW7OD5VqH2iLvlEuLxrS2UiMqFE\nghcc6MgEHv4C6VTsy/4gU8co/PmVgdPN2CVmbJMWWR3YxHzWMSySDsj83WPD\nYIKW\r\n=EsSa\r\n-----END PGP SIGNATURE-----\r\n","size":27389},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_2.0.0_1532644378410_0.9889977915710839"},"_cnpmcore_publish_time":"2021-12-23T05:12:35.031Z","contributors":[]},"2.0.1":{"name":"@desertnet/scanner","version":"2.0.1","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","files":["dist"],"scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.54","@babel/core":"^7.0.0-beta.54","@babel/preset-env":"^7.0.0-beta.54","@babel/register":"^7.0.0-beta.54","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.2.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2","sinon":"^6.1.4","sinon-chai":"^3.2.0"},"dependencies":{"lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.maxby":"^4.6.0","node-interval-tree":"^1.3.3"},"gitHead":"2a9860b5ca25b94c66dbad572acd3a01c9e62eb6","_id":"@desertnet/scanner@2.0.1","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-AO56sTToguhe/WddHz+BworUiluMv6TGY0sApBwBdCW2eTYSJUNGpAlJcy4Vt4U67zyxW4Yg27zmPKVfSG8/KQ==","shasum":"04679df9f55e79940cc173971d3254b427ead663","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-2.0.1.tgz","fileCount":14,"unpackedSize":52224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWk0GCRA9TVsSAnZWagAA1t4P/A0KBLRRGKKCzi52yYMI\nkcQmP9gaUPFJw72VnsR9cs8w9ft/X+WQjC6HcAIip7xevC7ATO/nNrG6xBwk\nI4n/uBcVU5+xwt/KsuUnHYWG81mLoYbb+7rAHj+eWqRofYIdQHLYDpt2OJHz\nkWEyIFP62QGKw4HN8MANV1ywJ4UP6/DNfTbnXlHQVdPvZ1Z06c1nDBXFhPGR\nU0Y1tOptbh6Wm1QVwHOGykaNQVTGEndZP74GtWspLcQeKLZCZR85+A7BEgJR\nvNDGO7Z/eZ5ghssM+MPPNj78uipYTkYLQMyIZwEtdV6tIJITV76aaorPeMy3\n+oolrggTu1GIYxxKr8TEO16HQ38eW6TzawcBbRxqPYzoPKbrZ+ZO+reQAPNi\nh+oqXmfehixDfxaAea8XrLM5sp2DF4NgedHF9IIovnGlj/0DVDabqNeBkFtN\neIBI1I66Tzj6gZk6lnv08T3bPeow8rcjqce9v2yLgo+Du+GRfqt5v4VQ2KE6\nFozSMKuAqQAcwrSAu5ubRB+W7elnQ4tk3NuT5fw4GPMI4gqQudYCKVM2zpAX\nmdcxdgykV7j6ktHEasQqOv2TL9BfopK6uBE8LgK0PaxFyLGcTdu65jJYW7LT\nN878CmSNqO+mCUPmJV97LZI+GqmHPWbh3MJyAuV3GvtLOIILjK23cXeHYcBR\nTZCY\r\n=k6cu\r\n-----END PGP SIGNATURE-----\r\n","size":16700},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_2.0.1_1532644614324_0.37072336968571995"},"_cnpmcore_publish_time":"2021-12-23T05:12:36.760Z","contributors":[]},"2.0.2":{"name":"@desertnet/scanner","version":"2.0.2","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","files":["dist"],"scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.54","@babel/core":"^7.0.0-beta.54","@babel/preset-env":"^7.0.0-beta.54","@babel/register":"^7.0.0-beta.54","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.2.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2","sinon":"^6.1.4","sinon-chai":"^3.2.0"},"dependencies":{"lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.maxby":"^4.6.0","node-interval-tree":"^1.3.3"},"gitHead":"13dc87ac665ad8a656fcdc77ddad1ae3a52c6b11","_id":"@desertnet/scanner@2.0.2","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-aZ+UC3tQBhOvCLT1QYCujZ1vpn3K7e28d+ip233Ysr7t2sbEPhDUGkzg5G8qAm2uihReOuilMrh6nXDz5dNbkw==","shasum":"354920456ce57674966562dd68a1fb6dd1f7ebad","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-2.0.2.tgz","fileCount":14,"unpackedSize":52582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbW3KiCRA9TVsSAnZWagAAztwQAIgCxunmDVElLthEPwvl\nYiMXIYnv6mSUg4dXpeDmSr7p3SkXP4lKRvRfvaOLVoTVjFwme94mo43eocKU\nLkwjakdNYfjrVBnyjxcd0I1YZDM1gKnKatL9LrsKJq63bA9Bw3xEuPQ5jjiK\nAn4NAqfvHi9jfDZpBHc2uywZfnFKwCvq+OUD+T5c7kiwQ0FVL5x04bw556DX\n3IxUeyvPGw9BSpnMhZh3VvIJ9Ra8/Qq0pv7rtFuD+0fK4OLZ9vR3A/pl5E/g\nGyhNFqtE6hHYI6RPHjU3ebpV3OZOQ0ICCaGSYiUpT0AQfqJSVcp4qfgwIjNi\nBIpA2bydW0o9hzmJ/EsoE7CiO6vaOizOkd7R8FOtuOm/n2lt5WMBVVRJjw1g\n4KBeT8O7BoR9ij3+PwjXGK6YROxjnGiOBAN+LnBufCAOWc4z/9UAQO4lj8rW\nfI4YRb8HXw1BzLhnIJrcoVOz7UxiTFwPu9EUgTbRa1Gx7krGc0+Y8DlFBjwI\nz+rHYfYfpHVkVhBh7yYfFUmHAP9OA0oZstX3qZShnqLKNBbZya+KFqJRfvPd\njJhOhqh964UMT1nrTc+YlBUQWp6isV8IUH5FppKiS9h+TCadsIuuWyW0mf28\nsOyMiNVJ/jkH/lqhUC10d8muFV7DRmuwa2hS87A3MxXi3U8Wfqtxn5xelt9K\nagta\r\n=d7Oc\r\n-----END PGP SIGNATURE-----\r\n","size":16755},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_2.0.2_1532719778359_0.20583772623332042"},"_cnpmcore_publish_time":"2021-12-23T05:12:38.411Z","contributors":[]},"2.1.0":{"name":"@desertnet/scanner","version":"2.1.0","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","files":["dist"],"scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"SEE LICENSE IN LICENSE","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.54","@babel/core":"^7.0.0-beta.54","@babel/preset-env":"^7.0.0-beta.54","@babel/register":"^7.0.0-beta.54","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.2.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2","sinon":"^6.1.4","sinon-chai":"^3.2.0"},"dependencies":{"lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.maxby":"^4.6.0","node-interval-tree":"^1.3.3"},"gitHead":"54643a5385f9505851c9931e5118d5761ebf643e","_id":"@desertnet/scanner@2.1.0","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-fo0JLHqpiN8gam4CzNiNQakYLkR7feY8vmo7gmNnlz6Mv0bNZl4mXAf4XqqwBzW0ruJlzWNXX07xpgAD/wOHAg==","shasum":"88e5abc8590dbc9be181df8d02e87baab6eb1b81","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-2.1.0.tgz","fileCount":14,"unpackedSize":54291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbX0e9CRA9TVsSAnZWagAAJj8P/ApqHmsw2utp1tLEWsml\nukxlDrEsUhpU6Vk4SCwZHQ7j1JRU7TLcGxDClXv4kSXDKaAjNqJBOzT8M8s2\nRNaUp/e5PcUXv13r1jnc9E/jSjoj0Rdrkl/5nS/7UDHewOpKA8jI0oD+PbmN\nooAyATJSlUig2ynQYQXoLgfqy+JYn7bXLfLDkd3vYvu31duTQLVTZKHsbtLR\nwKhp7wlUxxqFF8fZrdaW4ew1QLi2YlWlgoORT7YGHspNILbWvEa6m3BLORwZ\ngLhx7PE/TTkWOxZHTVF6HjPy5augrltbEPB6pkqzipsjbb304iSjtHPh4hsm\nwAmSTyCvoJnCKyi42e9yc9oRNtisGHLy2tk14daRNYYeX4ZMwMaIfn+f5Nju\nqGAK9h9ydxNPEMoriqzRjuMNlahktCNZ1s3NqGxLQ+sXayMW2fwtw6KyWyCN\ngliRy30fzZiHhZbObxdxYgGE49Km9el37zd8RrX+8sMJvBV2XYw6lmljLHBo\n928xmofDETorHwUGZjU2mkYOB4yTb/IV5VFkNrCdTKnK/yud/EzhIK1FN3Z/\nOAe4jmlqb2pXojkqdkd+7vg1arhI4AnJ3jzIZTHFXnmKHNuHdmncWdgKGMDh\nZUaf+/5Uk4cnI5VhRhX2pVijwnISPVZ5BzmQFt8H09eNIzT8S8LhtbwLZOub\n0hdC\r\n=f8RH\r\n-----END PGP SIGNATURE-----\r\n","size":17260},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_2.1.0_1532970941541_0.6043163370467703"},"_cnpmcore_publish_time":"2021-12-23T05:12:40.132Z","contributors":[]},"2.1.1":{"name":"@desertnet/scanner","version":"2.1.1","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","files":["dist"],"scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"MIT","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.54","@babel/core":"^7.0.0-beta.54","@babel/preset-env":"^7.0.0-beta.54","@babel/register":"^7.0.0-beta.54","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.2.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2","sinon":"^6.1.4","sinon-chai":"^3.2.0"},"dependencies":{"lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.maxby":"^4.6.0","node-interval-tree":"^1.3.3"},"gitHead":"13f01592eceb0ca830c4e583cae2dee67daafbf3","_id":"@desertnet/scanner@2.1.1","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-DEC3W3p3ONy7jbQdApwSSzJ6NdHceM/kgh4U1qswKI6hW2EwquAQFVEg7lOeK2EQfHcLumz8T4b2eTkci+TrPA==","shasum":"b9d108eacbc04855c75283c00afb702dcb980e7c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-2.1.1.tgz","fileCount":14,"unpackedSize":55292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYhqbCRA9TVsSAnZWagAADT4P/2qNWiE9VN+/gViWqf8C\nH8RAwmf3DMSFwNwTB+ZnIERcoSaSRxiyMhX4CW8xVByuhp52WJ7QE5zlfRg9\nsLwhcgDWfdp/xzfyLijaHZAK9qrNzt9ci8wj44N7BCmPIJJUB0RwxvF5IQCv\nkNNThjwMZ5lsU2QgP5+c5z+b8PQvMBR18NJSzj09Rbp5WWV1531zOKCdf5/8\n+xyZbQjcbhgSrWeh0N9UdZqIzVvnq9nfYGQ9kQuNby4EYFECs/zsKN0lQg7A\neWhKCqXELGs8EwQSay3XNAtipOycf2dzdebpGm+HSn01PFZ9FEWLzavOCHms\nKEOoprfGxLJyRQhdq3wb89FfCDO4tzQJ9UKMt5zEeWphQ14qHwG4wATl0Tnn\nac4vHvIjRyj672MigQKti9NXoS4CNxTA17qBGo+sNb+xESNRbQ72vdmcVyn5\neOSe6p1c3mV+mpObzsWeP104Y8Ygw7zqpkTMG6y0coVelg91kVYxqg7gpC2T\n52ccYXlKbEabyKXzX0uhG83oIq7LSauUrUSd8SJv2hd0fO53ctfJckVAwk75\nay9Fpo3cb08Qopt5WggBFjyd0v48jO6IIEhic0mf8wvewKF9Qc4PrWVP6w5N\nREt1SohEviOXLn8jCJw2H/W4QQXffTv0LEgs3cBn2J88r3CDiI+MDtNkQMD8\nOEg2\r\n=3p5p\r\n-----END PGP SIGNATURE-----\r\n","size":17829},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_2.1.1_1533155995307_0.9615365654505457"},"_cnpmcore_publish_time":"2021-12-23T05:12:41.400Z","contributors":[]},"1.1.1":{"name":"@desertnet/scanner","version":"1.1.1","description":"A regex-based string scanner/tokenizer","main":"dist/index.js","scripts":{"build":"rimraf dist && babel -s inline -D src -d dist","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test && npm run lint","test":"cross-env NODE_ENV=test mocha --require @babel/register --throw-deprecation","test:coverage":"cross-env NODE_ENV=test nyc mocha","test:watch":"chokidar src test mock fixtures --initial -c 'npm t'"},"repository":{"type":"git","url":"git+https://github.com/desertnet/scanner.git"},"keywords":["scanner","tokenizer"],"author":{"name":"Eric McCarthy","email":"eric@limulus.net","url":"http://www.limulus.net/"},"license":"MIT","bugs":{"url":"https://github.com/desertnet/scanner/issues"},"homepage":"https://github.com/desertnet/scanner#readme","devDependencies":{"@babel/cli":"^7.0.0-beta.53","@babel/core":"^7.0.0-beta.53","@babel/preset-env":"^7.0.0-beta.53","@babel/register":"^7.0.0-beta.53","babel-eslint":"^8.2.5","babel-plugin-istanbul":"^4.1.6","chai":"^4.1.2","chokidar-cli":"^1.2.0","cross-env":"^5.2.0","eslint":"^5.1.0","mocha":"^5.2.0","nyc":"^12.0.2","rimraf":"^2.6.2"},"gitHead":"da3df0f831fc8b095c0a8ad60659232fedd8bc75","_id":"@desertnet/scanner@1.1.1","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"eric@limulus.net"},"dist":{"integrity":"sha512-D77pscpjgnI6xqpGlg9qnXB3dFvmq6xfxdTGEmuGnGtGMZ2WIAiiRfFHmpKPeDnEuIdQVbZU0edwXmSYVGXUXA==","shasum":"91abbfc099fa61fcf5e502564c6a14e995d3c760","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@desertnet/scanner/-/scanner-1.1.1.tgz","fileCount":25,"unpackedSize":102686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYhvNCRA9TVsSAnZWagAAX94QAJlDqepLl4KncMFOERmk\nOIAgS1bmO04Xo/Zga9x4FAGwIa/CxpIbOL+rgSA4fVMOAUkePcBhVk651g85\n8lT/n1Wm+SSl+e0fZM9puIgmU55KxcdolGQySuOLup1D/6aAEPc6aiEUuaf/\n8oE+zQxh9AYolFonzWlN8FCBrurqrTbZRVGtfWVyko9AmwQ713txjwCbwapW\n8RW4gACnKBh3qrhzYgBAtxbTRRnznJa07JQOKMRGVakrV/lt3SjUqYiKf+ey\nX3UNF/tjtWAIdlYi+bLcpGzMi/fXSLvrYSxxlzGOWeyu+LSq75UempIdSs6D\nd6opmYBQxKSodDY98DDmDBg3zDp5+Rcbimzk9/vjbzqDJAW0Azpzyml1Igoo\nJlgOyU1b5HElqK3iuNOu1DQ/CLzgfNx4KbyOsM33ktpmqAXol3Wym5gycik2\nqDTc8y5r+WGrtVZqaD6xRdF+PNs/3wmRkxSnyMHjxLOoxLOeGoM9ZexPBHF4\naUSpqYCZusqW5+qSKWgMofEMzo3qx33w6tDQIEicu9TuYHkxjJasvpslxOoM\noVZCaLqvMDLNBZGHMPqa4ktedAiB3vxktuYtA8SdbRvbe+tYvD89/RfFaMlz\nnE+GibbCgRzZLhaNt+B0aMMHR4s1hWUJbaSpEwmMtRsCT5E0OY6ruxsvl7LC\nZXOZ\r\n=0gnb\r\n-----END PGP SIGNATURE-----\r\n","size":28614},"maintainers":[{"email":"eric@limulus.net","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scanner_1.1.1_1533156301046_0.7940842175632699"},"_cnpmcore_publish_time":"2021-12-23T05:12:43.486Z","contributors":[]}},"dist-tags":{"latest":"1.1.1"},"name":"@desertnet/scanner","time":{"created":"2022-01-26T20:43:22.562Z","modified":"2022-01-26T20:43:22.562Z","1.0.0":"2016-08-13T00:37:01.633Z","1.0.1":"2016-08-13T15:23:39.446Z","1.0.2":"2016-08-13T16:03:32.540Z","1.1.0":"2016-08-14T19:05:59.085Z","2.0.0":"2018-07-26T22:32:58.572Z","2.0.1":"2018-07-26T22:36:54.400Z","2.0.2":"2018-07-27T19:29:38.429Z","2.1.0":"2018-07-30T17:15:41.653Z","2.1.1":"2018-08-01T20:39:55.397Z","1.1.1":"2018-08-01T20:45:01.145Z"},"readme":"# scanner\n\nA regex-based string scanner/tokenizer for JavaScript\n\n## Installation\n\n```shell\nnpm install --save @desertnet/scanner\n```\n\n## Usage\n\n### An Example\n\n```javascript\nconst Scanner = require('@desertnet/scanner')\n\nconst body = `Hi! [img-1]\n[img-2]\nBye[!]`\n\nconst embedTagScanner = new Scanner([\n  {'tag': /\\[\\w+-\\d+\\]/},\n  {'text': /[^\\[]+/},\n  {'bracket': /\\[/}\n])\n\nlet token\nembedTagScanner.setSource(body)\nwhile (token = embedTagScanner.nextToken()) {\n  console.log(token)\n}\n```\n\nOutputs:\n\n```\nToken { type: 'text',    value: 'Hi! ',    index: 0,  line: 1, column: 1 }\nToken { type: 'tag',     value: '[img-1]', index: 4,  line: 1, column: 5 }\nToken { type: 'text',    value: '\\n',      index: 11, line: 2, column: 12 }\nToken { type: 'tag',     value: '[img-2]', index: 12, line: 2, column: 1 }\nToken { type: 'text',    value: '\\nBye',   index: 19, line: 3, column: 8 }\nToken { type: 'bracket', value: '[',       index: 23, line: 3, column: 4 }\nToken { type: 'text',    value: '!]',      index: 24, line: 3, column: 5 }\n```\n\n### Dialects\n\nIn the context of this module, a **dialect** is an ordered mapping of a token-type to a regular expression that describes the token. In the above example you will see a `Scanner` object instantiated with an array of objects, with each object containing a single `RegExp` property. This pattern allows you to succinctly define a dialect for your scanner.\n\nWe call a dialect an ordered mapping because the order in which the token types are defined is important. The scanner will attempt to match the input string against the first regex in the dialect. If that fails, it will go on to the next one in the list. Once a match is made, a token with the matching type is generated. No attempts to match any remaining regexes in the dialect are undertaken.\n\nIt is generally a very good idea to ensure that your dialect accepts all inputs. If you do not, then an input string could cause the scanner to throw an \"unexpected character\" error. Notice in the example how the `text` token description matches everything that is not a `[` character, and the last token description matches a lone `[` character. This ensures that all inputs will generate a token. An alternate way of doing this would be to end your dialect with the following token description to match any single character:\n\n```javascript\n{'catchall': /[^]/}   // This is the same as `qr/./s` in Perl\n```\n\n### Multi-Dialect Scanners\n\nOften a language is simply not describable using a single dialect. For example, HTML often contains inline CSS. Or JavaDoc annotations inside Java comments. Even something simple like HTML attribute values denoted by `\"` and HTML attribute values denoted by `'` may necessitate distinct dialect definitions.\n\nYou can create a multi-dialect scanner by passing an object to the `Scanner` constructor. This object should be a mapping of dialect names to dialect definitions. For example, here is the start of a rather stripped down HTML multi-dialect scanner:\n\n```javascript\nconst htmlScanner = new Scanner({\n  // Starting dialect, for content \"outside of a tag\".\n  \"content\": [\n    {\"text\": /[^<>]+/},\n    {\"tagStart\": /<[a-z][^\\t\\n\\ \\/\\>]*/i},\n    {\"closeTagStart\": /<\\/[a-z][^\\t\\n\\ \\/\\>]*/i},\n    {\"error\": /[<>]/}\n  ],\n\n  // Dialect for the inside of tags.\n  \"tag\": [\n    {\"tagEnd\": />/},\n    {\"whitespace\": /\\s+/},\n    {\"selfClose\": /\\//},\n    {\"error\": /['\"<=]/},\n    {\"attributeStart\": /[^>=\\s\\/]+/i}\n  ],\n\n  // Initial dialect for attributes.\n  \"attribute\": [\n    {\"whitespace\": /\\s+/},\n    {\"attributeValueQuotedStart\": /=['\"]/},\n    {\"attributeValueStart\": /=/},\n    {\"tagEnd\": />/},\n    {\"selfClose\": /\\//},\n    {\"error\": /['\"<]/},\n  ],\n\n  // Dialect for closing tags.\n  \"closeTag\": [\n    {\"tagEnd\": />/},\n    {\"whitespace\": /\\s+/},\n    {\"error\": /[^\\s>]+/}\n  ],\n\n  // ...\n\n})\n```\n\nOnce you have a multi-dialect scanner you must call `scanner.pushDialect(dialectName)` to set the initial dialect. While you tokenize your string, you can call `.pushDialect()` and `.popDialect()` whenever your input changes contexts to a different dialect. (Alternately you may call `.setDialect()` directly, but do not mix this with using the scanner's dialect stack.)\n\n## API\n\n### new Scanner(dialectDefinition)\n\nConstructs a new `Scanner` object with the given dialect definition(s). If `dialectDefinition` is an Array, then it is expected that the array contains a list of token descriptors, which is an object containing a single property that maps a token-type to a `RegExp`. If it is an object, then it is expected that each property maps a dialect name to an array of token descriptors. See the above definition of Dialects and Multi-Dialect scanners.\n\n#### .setSource(input)\n\nSets the input string for the scanner. If you are reusing a scanner instance, calling this method will reset the scanner to the beginning of the new string.\n\n#### .currentDialect()\n\nReturns a string which is the name of the current dialect. For single-dialect scanners this will always be `'main'`.\n\n#### .setDialect(name)\n\nSets the current dialect to the dialect specified by the string `name`. You do not need to call this for single-dialect scanners. For multi-dialect scanners, you are probably better off using the methods for managing the scanner's dialect stack.\n\n#### .pushDialect(name)\n\nPushes the dialect specified by name onto the scanner's dialect stack, and sets it as the current dialect.\n\n#### .popDialect()\n\nPops the topmost dialect from the scanner's dialect stack, and sets the current dialect to the dialect that is now at the top of the stack.\n\n#### .nextToken([expectedTokens])\n\nReturns a `Token` object for the next matching token in the source string. To scan a string, you keep calling this method until it returns `null`, which indicates the entire string has been scanned. This method can throw an error if the dialect cannot match the next token, so be sure to define your dialects to cover all inputs.\n\nThe optional `expectedTokens` parameter is an array of token type names for the current dialect. Use this if it makes sense to only scan for a subset of token types. However, if you find yourself doing this, it may be better to switch to a multi-dialect scanner.\n\n### new Scanner.Token(type, value, index, line, column)\n\nGenerally, instances of the `Token` class should not be instantiated directly. However the constructor is publicly available as it can be convenient to instantiate your own in tests.\n\nIn typical usage, they are returned to you by `scanner.nextToken()`. They have the following readable properties:\n\n  - `type`: The name of the token type. (A string.)\n  - `value`: The matching substring from the input.\n  - `index`: The zero-based index of the start of the token in the input string.\n  - `line`: The one-based index of the line the token starts at in the input string.\n  - `column`: The one-based index of the column the token starts at within the line.","users":{}}