Skip to content

Instantly share code, notes, and snippets.

@rdela
Created December 4, 2017 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rdela/ab40ff141de050d44f85db084955ca78 to your computer and use it in GitHub Desktop.
Save rdela/ab40ff141de050d44f85db084955ca78 to your computer and use it in GitHub Desktop.
npm-search-feat-nsp-20171204-144227.txt
Dec 4 14:42:27 npm-search[69283] INFO: 🗿 npm ↔️ Algolia replication starts ⛷ 🐌 🛰
Dec 4 14:42:29 npm-search[69283] INFO: ⛷ Bootstrap: starting from the first doc
Dec 4 14:42:54 npm-search[69283] INFO: 🔍 Found and saved 100 packages
Dec 4 14:42:54 npm-search[69283] INFO: ⛷ Synced 100/601392 docs (0%), current rate: 4 docs/s (2d remaining)
{ AlgoliaSearchError: Record at the position 73 objectID=101 is too big size=23909 bytes. Contact us if you need an extended quota
at success (/Users/r/Documents/code/gh/rdela/npm-search/node_modules/algoliasearch/src/AlgoliaSearchCore.js:351:32)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
name: 'AlgoliaSearchError',
message: 'Record at the position 73 objectID=101 is too big size=23909 bytes. Contact us if you need an extended quota',
debugData:
[ { currentHost: 'https://ernle6uz7h.algolia.net',
headers: [Object],
content: '{"requests":[{"action":"updateObject","objectID":"0card-images-helper","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":false},"2":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["0cm@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"3":{"securityRecommendation":false},"4":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["0g@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":{"nspId":531,"created":"2017-09-21T04:12:52.054Z","recommendation":"Consider another markdown parser until the issue can be addressed.","cvssScore":7.5,"module":"marked","version":"0.3.6","vulnerable":"<=99.999.99999","patched":"<0.0.0","title":"Regular Expression Denial of Service","dependencyPath":["0latency@0.0.0","node-notifier@4.6.1","cli-usage@0.1.4","marked@0.3.6"]}},"8":{"securityRecommendation":false},"9":{"securityRecommendation":{"nspId":531,"created":"2017-09-21T04:12:52.054Z","recommendation":"Consider another markdown parser until the issue can be addressed.","cvssScore":7.5,"module":"marked","version":"0.3.6","vulnerable":"<=99.999.99999","patched":"<0.0.0","title":"Regular Expression Denial of Service","dependencyPath":["0n@1.2.12","node-notifier@4.6.1","cli-usage@0.1.4","marked@0.3.6"]}},"objectID":"0card-images-helper","name":"0card-images-helper","concatenatedName":"0cardimageshelper","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-04-27T08:28:15.194Z"},"tags":{"latest":"1.0.2"},"description":"Get images from 0card easily for you.","dependencies":{"dcard":"^1.0.3","get-urls":"^5.0.0","request":"^2.58.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"# Dcard Images Downloader\\r\\n![](http://i.imgur.com/xJXknE8.gif)\\r\\n\\r\\nUsage:\\r\\n==\\r\\nDcard is a social website ony for students at university. \\r\\nThis program help you get images from [Dcard](https://www.dcard.tw) easily, now only support images which was uploaded to [imgur](http://imgur.com). **Please note that all the images you got belong to the original authors, DO NOT use for illegal purpose.** \\r\\nThank you :smiley:\\r\\n\\r\\nBuild:\\r\\n==\\r\\n```shell\\r\\n$ git clone https://github.com/lockys/Dcard-Image-Dowloader.git download-dcard-images\\r\\n$ cd download-dcard-images\\r\\n$ npm install // install deps.\\r\\n$ node index.js //execute.\\r\\n +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+\\r\\n |D|c|a|r|d| |I|m|a|g|e| |D|o|w|n|l|o|a|d|e|r|\\r\\n +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+\\r\\n1.0.0 alpha edition @ 2015/06/25\\r\\n[!] Please note thar all the images belong to the original author, DO NOT use for illigal purpose.\\r\\n[*] Creating images/ folder for you..\\r\\n[*] Please enter how many pages and forum name you want to parse?(enter \'.exit\' to leave :-))\\r\\n[*] For example, type \'funny 3\' to parse images in the latest 3 pages\\r\\nfunny 3\\r\\n[*] You are retrieving 3 pages, please wait.\\r\\n[*] Create images/ successfully\\r\\n[*] Retrieving http://i.imgur.com/jNYI13H.jpg...\\r\\n```\\r\\n**Available Forums in Dcard**\\r\\n```\\r\\nfunny, bg, trending, talk, girl, boy, mood, music, movie, literature, sport, pet, food, job, studyabroad, marvel, sex, dcard, whysoserious, delete\\r\\n```\\r\\n\\r\\nGet the porgram directly:\\r\\n==\\r\\n[Release](https://github.com/lockys/Dcard-Image-helper/releases)\\r\\n\\r\\nCollaborators\\r\\n==\\r\\n[lockys](https://github.com/lockys), [John-lin](https://github.com/John-lin)\\r\\n\\r\\n Deps used\\r\\n==\\r\\n- [request](https://github.com/request/request)\\r\\n- [get-urls](https://github.com/sindresorhus/get-urls)\\r\\n- [dcardJS](https://github.com/lockys/DcardJS)\\r\\n\\r\\nContribution\\r\\n==\\r\\nFeel free to pull requests, open issues\\r\\n\\r\\nLicense\\r\\n==\\r\\nMIT\\r\\n","owner":{"name":"lockys","email":"locky4567@gmail.com","avatar":"https://gravatar.com/avatar/ea16be7f0570d0bd1fd4eae28f3fceed","link":"https://www.npmjs.com/~lockys"},"deprecated":"depreciated","badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1461745695194,"modified":1486971953426,"lastPublisher":{"name":"lockys","email":"locky4567@gmail.com","avatar":"https://gravatar.com/avatar/ea16be7f0570d0bd1fd4eae28f3fceed","link":"https://www.npmjs.com/~lockys"},"owners":[{"name":"lockys","email":"locky4567@gmail.com","avatar":"https://gravatar.com/avatar/ea16be7f0570d0bd1fd4eae28f3fceed","link":"https://www.npmjs.com/~lockys"}],"lastCrawl":"2017-12-04T22:42:55.021Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0cean-client","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":false},"2":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["0px@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"8":{"securityRecommendation":false},"9":{"securityRecommendation":false},"objectID":"0cean-client","name":"0cean-client","concatenatedName":"0ceanclient","downloadsLast30Days":17,"downloadsRatio":1.2311067632993832e-7,"humanDownloadsLast30Days":"17","popular":false,"version":"0.0.1","versions":{"0.0.1":"2017-11-01T15:54:41.107Z"},"tags":{"latest":"0.0.1"},"description":"Official client to connect with 0cean API.","dependencies":{"0x.js":"^0.16.0","bignumber.js":"^4.1.0","request":"^2.83.0","request-promise-native":"^1.0.5","web3":"0.20.2","xmlhttprequest":"^1.8.0"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.0","json-loader":"^0.5.7","watch-http-server":"^0.7.6","webpack":"^3.6.0"},"githubRepo":{"user":"the0cean","project":"The0cean.js","path":"","head":"49cd01884b7951f74951aa8be30da3533b43057a"},"gitHead":"49cd01884b7951f74951aa8be30da3533b43057a","readme":"# The0cean.js\\njavascript library\\n","owner":{"name":"the0cean","avatar":"https://github.com/the0cean.png","link":"https://github.com/the0cean"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["0cean","api","client","js"],"created":1509551681107,"modified":1509551681107,"lastPublisher":{"name":"merunas","email":"merunasgrincalaitis@gmail.com","avatar":"https://gravatar.com/avatar/df582a5a16ce553ef76d08d366ac5075","link":"https://www.npmjs.com/~merunas"},"owners":[{"name":"merunas","email":"merunasgrincalaitis@gmail.com","avatar":"https://gravatar.com/avatar/df582a5a16ce553ef76d08d366ac5075","link":"https://www.npmjs.com/~merunas"}],"lastCrawl":"2017-12-04T22:42:55.021Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0cm","body":{"0":{"securityRecommendation":{"nspId":534,"created":"2017-09-25T18:55:55.956Z","recommendation":"Upgrade to version 2.6.9 or greater if you are on the 2.6.x series or 3.1.0 or greater.","cvssScore":3.7,"module":"debug","version":"2.2.0","vulnerable":"<= 2.6.8 || >= 3.0.0 <= 3.0.1","patched":">= 2.6.9 < 3.0.0 || >= 3.1.0","title":"Regular Expression Denial of Service","dependencyPath":["0x-subproviders@0.0.2","ledgerco@1.1.3","node-hid@0.5.4","node-pre-gyp@0.6.31","tar-pack@3.3.0","debug@2.2.0"]}},"1":{"securityRecommendation":false},"2":{"securityRecommendation":{"nspId":95,"created":"2016-03-28T21:24:14.000Z","recommendation":"Update to version 1.0.0 or later","cvssScore":1.9,"module":"cli","version":"0.11.3","vulnerable":"<1.0.0","patched":">=1.0.0","title":"Arbitrary File Write","dependencyPath":["0x00-pl--avg-pack-to-ttf@0.0.6","cli@0.11.3"]}},"3":{"securityRecommendation":{"nspId":95,"created":"2016-03-28T21:24:14.000Z","recommendation":"Update to version 1.0.0 or later","cvssScore":1.9,"module":"cli","version":"0.11.3","vulnerable":"<1.0.0","patched":">=1.0.0","title":"Arbitrary File Write","dependencyPath":["0x00-pl--svg-pack-to-ttf@0.0.15","cli@0.11.3"]}},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"8":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1-@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"9":{"securityRecommendation":false},"objectID":"0cm","name":"0cm","concatenatedName":"0cm","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T05:04:17.430Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480827857430,"modified":1480827857430,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.022Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0flux","body":{"0":{"securityRecommendation":{"nspId":534,"created":"2017-09-25T18:55:55.956Z","recommendation":"Upgrade to version 2.6.9 or greater if you are on the 2.6.x series or 3.1.0 or greater.","cvssScore":3.7,"module":"debug","version":"0.7.4","vulnerable":"<= 2.6.8 || >= 3.0.0 <= 3.0.1","patched":">= 2.6.9 < 3.0.0 || >= 3.1.0","title":"Regular Expression Denial of Service","dependencyPath":["1-1-help-desk-system@0.0.7","sails@0.10.5","grunt-contrib-watch@0.5.3","tiny-lr@0.0.4","debug@0.7.4"]}},"1":{"securityRecommendation":false},"2":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"2.0.10","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1-first@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-stream@3.1.18","minimatch@2.0.10"]}},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"2.0.10","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1-one@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-stream@3.1.18","minimatch@2.0.10"]}},"6":{"securityRecommendation":false},"7":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"2.0.10","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1.0@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-stream@3.1.18","minimatch@2.0.10"]}},"8":{"securityRecommendation":false},"9":{"securityRecommendation":false},"objectID":"0flux","name":"0flux","concatenatedName":"0flux","downloadsLast30Days":56,"downloadsRatio":4.0554105143979684e-7,"humanDownloadsLast30Days":"56","popular":false,"version":"0.0.4","versions":{"0.0.1":"2015-12-05T08:49:15.485Z","0.0.2":"2015-12-05T10:02:26.097Z","0.0.3":"2015-12-05T10:05:34.745Z","0.0.4":"2015-12-07T01:50:13.902Z"},"tags":{"latest":"0.0.4"},"description":"Typed state management","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"Ø Flux\\n================================================================================\\n\\nA small, typed state management library.\\n\\nExample:\\n\\n```typescript\\n\'use strict\';\\n\\nimport * as Flux from \'0flux\';\\n\\ninterface TodoAction {\\n name: string;\\n id: number;\\n}\\n\\nconst container = new Flux();\\n\\nconst dispatcher = {\\n addTodo: container.action<TodoAction>(),\\n removeTodo: container.action<TodoAction>(),\\n};\\n\\ninterface State {\\n todos: TodoAction[];\\n}\\n\\nconst todoState = container.state<State>((getState, setState) => {\\n dispatcher.addTodo.bind((todoAction) => {\\n setState({\\n todos: getState().todos.concat([ todoAction ])\\n });\\n });\\n\\n dispatcher.removeTodo.bind((todoAction) => {\\n setState({\\n todos: getState().todos.filter((item) => {\\n return item.id !== todoAction.id;\\n })\\n });\\n });\\n\\n return {\\n todos: []\\n };\\n});\\n\\nconst julia = dispatcher.addTodo.dispatch({\\n id: 0,\\n name: \'julia\'\\n});\\n\\nconst clone = dispatcher.addTodo.dispatch({\\n id: 1,\\n name: \'evil julia clone\'\\n});\\n\\nconsole.log(\'evil clone detected:\');\\nconsole.log(todoState.current);\\n\\ndispatcher.removeTodo.dispatch(clone);\\n\\nconsole.log(\'evil clone eliminated:\');\\nconsole.log(todoState.current);\\n```\\n","owner":{"name":"reissbaker","email":"matthew.reiss.baker@gmail.com","avatar":"https://gravatar.com/avatar/7c9ba671e539a485378eae69d4068816","link":"https://www.npmjs.com/~reissbaker"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1449305355485,"modified":1449453013902,"lastPublisher":{"name":"reissbaker","email":"matthew.reiss.baker@gmail.com","avatar":"https://gravatar.com/avatar/7c9ba671e539a485378eae69d4068816","link":"https://www.npmjs.com/~reissbaker"},"owners":[{"name":"reissbaker","email":"matthew.reiss.baker@gmail.com","avatar":"https://gravatar.com/avatar/7c9ba671e539a485378eae69d4068816","link":"https://www.npmjs.com/~reissbaker"}],"lastCrawl":"2017-12-04T22:42:55.022Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0g","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1.1.0@1.0.0","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"8":{"securityRecommendation":false},"9":{"securityRecommendation":false},"objectID":"0g","name":"0g","concatenatedName":"0g","downloadsLast30Days":332,"downloadsRatio":0.000002404279090678796,"humanDownloadsLast30Days":"332","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T05:55:35.082Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480830935082,"modified":1480830935082,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.023Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0hub","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":false},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"8":{"securityRecommendation":false},"9":{"securityRecommendation":false},"objectID":"0hub","name":"0hub","concatenatedName":"0hub","downloadsLast30Days":16,"downloadsRatio":1.1586887183994196e-7,"humanDownloadsLast30Days":"16","popular":false,"version":"1.0.0-beta.2","versions":{"1.0.0-beta.2":"2017-05-13T12:52:03.456Z"},"tags":{"latest":"1.0.0-beta.2"},"description":"start the electron app with:","dependencies":{"classnames":"2.2.5","codemirror":"5.25.0","dotenv":"4.0.0","invariant":"2.2.2","isomorphic-fetch":"2.2.1","keytar":"3.0.2","normalize.css":"6.0.0","purecss":"0.6.2","query-string":"4.3.2","ramda":"0.23.0","react":"15.4.2","react-dom":"15.4.2","react-router-dom":"4.0.0","react-schema":"2.0.0","react-textarea-autosize":"4.0.5","react-toggle":"3.0.1","react-transclusion":"1.2.0"},"devDependencies":{"babel-core":"6.24.0","babel-eslint":"7.2.3","babel-loader":"6.4.1","babel-plugin-syntax-async-functions":"6.13.0","babel-plugin-transform-regenerator":"6.24.1","babel-preset-es2015":"6.24.0","babel-preset-react":"6.23.0","chai":"3.5.0","connect":"3.6.1","css-loader":"0.28.0","electron":"1.6.2","electron-devtools-installer":"2.1.0","electron-packager":"8.6.0","electron-rebuild":"1.5.7","eslint":"3.18.0","eslint-plugin-react":"6.10.3","extract-text-webpack-plugin":"2.1.0","file-loader":"0.11.0","inject-loader":"3.0.0","karma":"1.6.0","karma-cli":"1.0.1","karma-electron":"github:amireh/karma-electron#b66e0bd9d6191a9126be18f80146324c9945c6d6","karma-mocha":"1.3.0","karma-sourcemap-loader":"0.3.7","karma-spec-reporter":"0.0.31","karma-webpack":"2.0.3","less":"2.7.2","less-loader":"4.0.3","mocha":"3.2.0","react-drill":"2.2.0","react-hot-loader":"3.0.0-beta.6","serve-static":"1.12.2","sinon":"2.1.0","style-loader":"0.16.1","url-loader":"0.5.8","webpack":"2.3.2","webpack-dev-middleware":"1.10.2","webpack-hot-middleware":"2.18.0"},"githubRepo":{"user":"amireh","project":"zerohub","path":"","head":"9788b9b4ce37dd6a60189f988467d47617444cf6"},"gitHead":"9788b9b4ce37dd6a60189f988467d47617444cf6","readme":"start the electron app with:\\n\\n NODE_ENV=development \\\\\\n HOT=1 \\\\\\n API_TOKEN=a2FuZGllQG14dnQubmV0OnR1b25lbGE= \\\\\\n ./node_modules/.bin/electron core/index.js\\n\\nstart the webpack devserver with:\\n\\n node webpack/devserver.js\\n\\n???\\n","owner":{"name":"amireh","avatar":"https://github.com/amireh.png","link":"https://github.com/amireh"},"deprecated":false,"badPackage":false,"homepage":null,"license":"GPL-3.0","keywords":[],"created":1494679923456,"modified":1494679923456,"lastPublisher":{"name":"amireh","email":"ahmad@amireh.net","avatar":"https://gravatar.com/avatar/ee292728aa1b52c11c825f2b5f5b4320","link":"https://www.npmjs.com/~amireh"},"owners":[{"name":"amireh","email":"ahmad@amireh.net","avatar":"https://gravatar.com/avatar/ee292728aa1b52c11c825f2b5f5b4320","link":"https://www.npmjs.com/~amireh"}],"lastCrawl":"2017-12-04T22:42:55.024Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0l","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":false},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["1000phone@1.0.0","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"8":{"securityRecommendation":false},"9":{"securityRecommendation":{"nspId":118,"created":"2016-05-25T16:37:20.000Z","recommendation":"Updated to version 3.0.2 or greater","cvssScore":7.5,"module":"minimatch","version":"0.2.14","vulnerable":"<=3.0.1","patched":">=3.0.2","title":"Regular Expression Denial of Service","dependencyPath":["100m@1.0.2","gulp@3.9.1","vinyl-fs@0.3.14","glob-watcher@0.0.6","gaze@0.5.2","globule@0.1.0","minimatch@0.2.14"]}},"objectID":"0l","name":"0l","concatenatedName":"0l","downloadsLast30Days":48,"downloadsRatio":3.476066155198259e-7,"humanDownloadsLast30Days":"48","popular":false,"version":"1.0.3","versions":{"1.0.0":"2017-09-15T13:07:22.201Z","1.0.1":"2017-09-17T09:47:55.741Z","1.0.2":"2017-09-17T09:53:13.709Z","1.0.3":"2017-09-17T09:53:47.968Z"},"tags":{"latest":"1.0.3"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"rgss3","email":"pochy2008@qq.com","avatar":"https://gravatar.com/avatar/3dc6fed343bda125f5c6972d89300bb3","link":"https://www.npmjs.com/~rgss3"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1505480842201,"modified":1505642027968,"lastPublisher":{"name":"rgss3","email":"pochy2008@qq.com","avatar":"https://gravatar.com/avatar/3dc6fed343bda125f5c6972d89300bb3","link":"https://www.npmjs.com/~rgss3"},"owners":[{"name":"rgss3","email":"pochy2008@qq.com","avatar":"https://gravatar.com/avatar/3dc6fed343bda125f5c6972d89300bb3","link":"https://www.npmjs.com/~rgss3"}],"lastCrawl":"2017-12-04T22:42:55.024Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0latency","body":{"0":{"securityRecommendation":{"nspId":550,"created":"2017-11-08T19:25:17.211Z","recommendation":"Upgrade to version 3.3.1 or greater","cvssScore":7.5,"module":"ws","version":"2.3.1","vulnerable":"<1.1.5 || >=2.0.0 <3.3.1","patched":">= 1.1.5 <2.0.0 || >=3.3.1","title":"Denial of Service","dependencyPath":["100notes-comments@0.1.1","ws@2.3.1"]}},"1":{"securityRecommendation":false},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":{"nspId":534,"created":"2017-09-25T18:55:55.956Z","recommendation":"Upgrade to version 2.6.9 or greater if you are on the 2.6.x series or 3.1.0 or greater.","cvssScore":3.7,"module":"debug","version":"2.2.0","vulnerable":"<= 2.6.8 || >= 3.0.0 <= 3.0.1","patched":">= 2.6.9 < 3.0.0 || >= 3.1.0","title":"Regular Expression Denial of Service","dependencyPath":["1010@0.0.35","socket.io@1.7.4","socket.io-parser@2.3.1","debug@2.2.0"]}},"7":{"securityRecommendation":false},"8":{"securityRecommendation":false},"9":{"securityRecommendation":false},"objectID":"0latency","name":"0latency","concatenatedName":"0latency","downloadsLast30Days":25,"downloadsRatio":1.8104511224990932e-7,"humanDownloadsLast30Days":"25","popular":false,"version":"0.0.0","versions":{"0.0.0":"2015-01-15T12:54:45.818Z"},"tags":{"latest":"0.0.0"},"description":"Usage =====","dependencies":{"browserify":"^8.1.0","node-notifier":"^4.0.3","watchify":"^2.2.1"},"devDependencies":{"tape":"^3.0.3"},"githubRepo":null,"gitHead":null,"readme":"Usage\\n=====\\n\\n`0latency brower.js -d -o bundle.js -v`\\n\\nReloads the page every time index.js gets bundled.\\n\\n","owner":{"name":"alexandergugel","email":"alexander.gugel@gmail.com","avatar":"https://gravatar.com/avatar/43210f58510a6331309c9504fd1be484","link":"https://www.npmjs.com/~alexandergugel"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1421326485818,"modified":1421326485818,"lastPublisher":{"name":"alexandergugel","email":"alexander.gugel@gmail.com","avatar":"https://gravatar.com/avatar/43210f58510a6331309c9504fd1be484","link":"https://www.npmjs.com/~alexandergugel"},"owners":[{"name":"alexandergugel","email":"alexander.gugel@gmail.com","avatar":"https://gravatar.com/avatar/43210f58510a6331309c9504fd1be484","link":"https://www.npmjs.com/~alexandergugel"}],"lastCrawl":"2017-12-04T22:42:55.025Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0model","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":false},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":{"nspId":534,"created":"2017-09-25T18:55:55.956Z","recommendation":"Upgrade to version 2.6.9 or greater if you are on the 2.6.x series or 3.1.0 or greater.","cvssScore":3.7,"module":"debug","version":"2.2.0","vulnerable":"<= 2.6.8 || >= 3.0.0 <= 3.0.1","patched":">= 2.6.9 < 3.0.0 || >= 3.1.0","title":"Regular Expression Denial of Service","dependencyPath":["10cartsharing@1.0.3","socket.io@1.7.4","socket.io-parser@2.3.1","debug@2.2.0"]}},"8":{"securityRecommendation":false},"9":{"securityRecommendation":{"nspId":134,"created":"2016-07-27T00:24:38.000Z","recommendation":"Upgrade to 1.0.6 or latest","cvssScore":5.4,"module":"cookie-signature","version":"1.0.1","vulnerable":"<=1.0.5","patched":">=1.0.6","title":"Timing attack vulnerability","dependencyPath":["10er10@0.23.0","connect@2.9.2","cookie-signature@1.0.1"]}},"objectID":"0model","name":"0model","concatenatedName":"0model","downloadsLast30Days":186,"downloadsRatio":0.0000013469756351393253,"humanDownloadsLast30Days":"186","popular":false,"version":"0.4.2","versions":{"0.0.1":"2015-03-03T09:52:07.896Z","0.0.2":"2015-12-01T00:10:54.310Z","0.0.3":"2015-12-01T00:59:37.275Z","0.0.4":"2015-12-01T01:31:40.350Z","0.0.5":"2015-12-01T02:42:40.436Z","0.0.6":"2015-12-01T02:58:45.928Z","0.0.7":"2015-12-01T03:18:59.858Z","0.0.8":"2015-12-01T07:22:46.890Z","0.0.9":"2015-12-01T07:50:26.271Z","0.0.10":"2015-12-01T07:55:31.213Z","0.0.11":"2015-12-02T08:06:40.115Z","0.0.12":"2015-12-03T07:14:05.539Z","0.1.0":"2016-10-19T05:43:01.470Z","0.2.0":"2016-10-19T06:29:22.336Z","0.3.0":"2016-10-19T06:41:02.207Z","0.3.1":"2016-10-19T16:38:43.632Z","0.4.1":"2016-10-19T17:14:14.692Z","0.4.2":"2016-10-19T17:31:55.533Z"},"tags":{"latest":"0.4.2"},"description":"Lightweight module for data control","dependencies":{},"devDependencies":{},"githubRepo":{"user":"Daeren","project":"0model","path":"","head":"bffbda160b2d7a693a06f87782286a0409dc7ea0"},"gitHead":"bffbda160b2d7a693a06f87782286a0409dc7ea0","readme":"[![Codacy][cod_b]][cod_l]\\r\\n\\r\\n\\r\\n\\r\\n`npm -g install 0model`\\r\\n\\r\\n* Coverage: +\\r\\n* Browser: +\\r\\n\\r\\n\\r\\n\\r\\n#### Browser\\r\\n\\r\\n* Include: `//raw.githack.com/Daeren/0model/master/index.js`\\r\\n\\r\\nGlobal var: `zm`\\r\\n\\r\\n\\r\\n\\r\\n#### Examples\\r\\n\\r\\n```js\\r\\nvar zm = require(\\"0model\\");\\r\\n\\r\\n\\r\\nzm(\\" D \\").string().get().trim(); // <-- \\"D\\"\\r\\nzm(\\" 13.\\").to.int().it.is.required(); // <-- true\\r\\n\\r\\nzm({x: 1, y: 2}).to.have(\\"x\\", \\"z\\"); // <-- false\\r\\nzm({}).it.is.empty(); // <-- true\\r\\n\\r\\n\\r\\nzm(\\"[1,2]\\").to.json().get(); // <-- [1, 2]\\r\\nzm(\\"[1,\\").to.json().to.string().get(); // <-- \'\'\\r\\nzm(\\"[1,\\").json().string().get(); // <-- \'\'\\r\\n\\r\\nzm(5.9).int().str() + 10; // <-- \'510\'\\r\\nzm(5.9).to.integer() + \\" num\\"; // <-- \'5 num\'\\r\\nzm(zm(\'d0\' / 1)).empty(); // <-- true\\r\\n\\r\\n\\r\\nzm([1, 2, 3]).set(x => x.reduce((a, b) => a + b)).get(console.log);\\r\\nzm(3.14159).set(x => x.toFixed(0)).str().get(console.log);\\r\\n\\r\\n\\r\\nzm(\\"hello 2 world\\").to.string().then.remove(/\\\\d+/).it.is.required();\\r\\nzm(\\"hello 2 world\\").to.string().then.remove(/\\\\d+/).get();\\r\\nzm(\\"hello 2 world\\").to.string().then.remove(d => d.substr(2)) + \\"!\\";\\r\\n```\\r\\n\\r\\n\\r\\n\\r\\n#### Instance \\r\\n\\r\\n| Attribute | Type | Note |\\r\\n|-------------------|-------------------------------|---------------------------------------------------------------------------|\\r\\n| | - | |\\r\\n| to, then, is, it | object | this |\\r\\n| | - | |\\r\\n| set | function(v) | return: this |\\r\\n| get | function([callback]) | return: current value |\\r\\n| | - | |\\r\\n| lastError | - | |\\r\\n| value | - | current value |\\r\\n| | [T] | |\\r\\n| bool, boolean | function | (true, on, yes, 1) = true |\\r\\n| str, string | function | (NaN, null, undefined, []) = \\"\\" |\\r\\n| int, integer | function(radix) | |\\r\\n| float, number | function | |\\r\\n| | - | |\\r\\n| date | function | |\\r\\n| symbol | function | |\\r\\n| | - | |\\r\\n| table, hashTable | function(notParse) | |\\r\\n| array | function(notParse) | |\\r\\n| json | function | |\\r\\n| | [M] | |\\r\\n| remove | function(t) | t: string, regEx (string), function(elem) |\\r\\n| abs | function | |\\r\\n| clamp | function(min, max) | |\\r\\n| | [V] | |\\r\\n| required | function | false: NaN, [], null, undefined, \\"\\", Invalid Date, {} |\\r\\n| empty | function | true: NaN, [], null, undefined, \\"\\", Invalid Date, {} |\\r\\n| has, have | function(...) | for: string, array, object |\\r\\n\\r\\n\\r\\n\\r\\n## License\\r\\n\\r\\nMIT\\r\\n\\r\\n----------------------------------\\r\\n[@ Daeren][1]\\r\\n\\r\\n\\r\\n[1]: http://666.io\\r\\n\\r\\n[cod_b]: https://img.shields.io/codacy/12d7cf4ff0b8466ca74cd504e689b779.svg\\r\\n[cod_l]: https://www.codacy.com/app/daeren/0model/dashboard\\r\\n\\r\\n","owner":{"name":"Daeren","avatar":"https://github.com/Daeren.png","link":"https://github.com/Daeren"},"deprecated":false,"badPackage":false,"homepage":"https://666.io","license":"MIT","keywords":["strong typing","data","justdoit"],"created":1425376327896,"modified":1476898315533,"lastPublisher":{"name":"daeren","email":"x@db.gg","avatar":"https://gravatar.com/avatar/505711e71c89d7aadd995025358b34b6","link":"https://www.npmjs.com/~daeren"},"owners":[{"name":"daeren","email":"x@db.gg","avatar":"https://gravatar.com/avatar/505711e71c89d7aadd995025358b34b6","link":"https://www.npmjs.com/~daeren"}],"lastCrawl":"2017-12-04T22:42:55.025Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0n","body":{"0":{"securityRecommendation":false},"1":{"securityRecommendation":{"nspId":43,"created":"2015-10-17T19:41:46.382Z","recommendation":"Upgrade to the latest version of this library. However, it should be noted that the fix for this vulnerability was to remove the xss filter functionality. Seek another library to provide proper output encoding.","cvssScore":6.5,"module":"validator","version":"0.4.28","vulnerable":"<2.0.0","patched":">=2.0.0","title":"XSS Filter Bypass via Encoded URL","dependencyPath":["10tcl@0.0.10","validator@0.4.28"]}},"2":{"securityRecommendation":false},"3":{"securityRecommendation":false},"4":{"securityRecommendation":false},"5":{"securityRecommendation":false},"6":{"securityRecommendation":false},"7":{"securityRecommendation":false},"objectID":"0n","name":"0n","concatenatedName":"0n","downloadsLast30Days":159,"downloadsRatio":0.0000011514469139094232,"humanDownloadsLast30Days":"159","popular":false,"version":"1.2.12","versions":{"1.0.0":"2016-12-07T12:44:32.643Z","1.0.1":"2016-12-07T16:37:21.898Z","1.2.0":"2016-12-07T16:39:21.661Z","1.2.1":"2016-12-07T16:41:49.258Z","1.2.2":"2016-12-07T17:24:30.461Z","1.2.3":"2016-12-07T19:29:55.565Z","1.2.4":"2016-12-07T19:40:07.722Z","1.2.5":"2016-12-07T19:42:13.311Z","1.2.6":"2016-12-07T19:42:56.704Z","1.2.7":"2016-12-07T19:45:56.553Z","1.2.8":"2016-12-08T15:45:30.818Z","1.2.9":"2016-12-08T15:47:08.373Z","1.2.10":"2016-12-08T15:47:25.343Z","1.2.11":"2016-12-08T15:48:04.801Z","1.2.12":"2016-12-09T23:52:41.544Z"},"tags":{"latest":"1.2.12"},"description":"Check your sites online","dependencies":{"3x3c":"^1.0.2","async":"^2.1.4","colors":"^1.1.2","cron":"^1.1.1","express":"^4.14.0","global-modules":"^0.2.3","inquirer":"^2.0.0","is-reachable":"^2.0.0","jsonfile":"^2.4.0","node-notifier":"^4.6.1","nodemailer":"^2.6.4","pm2":"^2.1.6","request":"^2.79.0","update-notifier":"^1.0.3","valid-url":"^1.0.9"},"devDependencies":{},"githubRepo":{"user":"cagataycali","project":"0n","path":"","head":"aa983b2d4b1bf520910623c8537f6680115ec94c"},"gitHead":"aa983b2d4b1bf520910623c8537f6680115ec94c","readme":"# 0n\\n\\n 0n, checks your awesome sites, when one of them going down 0n\'ll notify you.\\n\\n# Installing\\n\\n```\\nnpm i -g 0n\\n```\\n\\n# Usage\\n```\\n0n\\n```\\n\\n# Dependencies\\n\\n* 0n needs nodejs in environment, version 6 or upper\\n* You can use these tool in linux or MAC OS X.\\n","owner":{"name":"cagataycali","avatar":"https://github.com/cagataycali.png","link":"https://github.com/cagataycali"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1481114672643,"modified":1491548430637,"lastPublisher":{"name":"cagataycali","email":"calicagatay@icloud.com","avatar":"https://gravatar.com/avatar/0e22be3bd2380b022e2f292cf005edea","link":"https://www.npmjs.com/~cagataycali"},"owners":[{"name":"cagataycali","email":"calicagatay@icloud.com","avatar":"https://gravatar.com/avatar/0e22be3bd2380b022e2f292cf005edea","link":"https://www.npmjs.com/~cagataycali"}],"lastCrawl":"2017-12-04T22:42:55.026Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0o","body":{"objectID":"0o","name":"0o","concatenatedName":"0o","downloadsLast30Days":90,"downloadsRatio":6.517624040996736e-7,"humanDownloadsLast30Days":"90","popular":false,"version":"1.1.3","versions":{"1.0.0":"2016-10-03T10:49:23.095Z","1.0.1":"2016-10-03T11:12:47.072Z","1.0.2":"2016-10-03T11:14:36.368Z","1.1.0":"2016-10-04T11:07:14.620Z","1.1.1":"2016-10-04T11:16:16.365Z","1.1.2":"2016-10-05T02:40:34.140Z","1.1.3":"2016-10-05T02:50:28.306Z"},"tags":{"latest":"1.1.3"},"description":"A JavaScript octal number parser.","dependencies":{},"devDependencies":{},"githubRepo":{"user":"wlzla000","project":"0o","path":"","head":"master"},"gitHead":"master","readme":"# 0o\\r\\n\\r\\nA JavaScript octal number parser.\\r\\n\\r\\n\\r\\n## Node.js\'s support for ECMAScript 2015(ES6) octal literals(`0o`)\\r\\n\\r\\n| 4.3.2 and above | 0.12.16 | 0.10.47 and below |\\r\\n|-----------------|--------------------------------|-------------------|\\r\\n| Supported | Supported(with `harmony` flag) | Unsupported |\\r\\n\\r\\nBut `require(\\"0o\\")` works on all the versions of Node.js & web browsers! XD\\r\\n\\r\\n## Features\\r\\n\\r\\n - Works well on both web browsers and Node.js\\r\\n - Works in strict mode\\r\\n - No dependency\\r\\n - Standard JavaScript with high compatibility\\r\\n - Does not ignore the sign of `-0`\\r\\n - You can make it accepts `NaN` and infinite values if you want\\r\\n\\r\\n## `require(\\"0o\\")` vs `parseInt(..., 8)` & `require(\\"octal\\")`\\r\\n\\r\\n`require(\\"0o\\")`; it\'s very clear, and **WTF-less**.\\r\\n\\r\\n| | require(\\"0o\\")(true) | require(\\"0o\\")() | parseInt(..., 8) and require(\\"octal\\") |\\r\\n|:---------------------:|:--------------------:|:--------------------:|:-------------------------------------:|\\r\\n| 0 | 0 | 0 | 0 |\\r\\n| -0 | -0 | -0 | 0 |\\r\\n| -10 | -8 | -8 | -8 |\\r\\n| Infinity | InvalidArgumentError | Infinity | NaN |\\r\\n| -Infinity | InvalidArgumentError | -Infinity | NaN |\\r\\n| NaN | InvalidArgumentError | NaN | NaN |\\r\\n| -NaN | InvalidArgumentError | NaN | NaN |\\r\\n| 9 | InvalidArgumentError | InvalidArgumentError | NaN |\\r\\n| \\"0+10\\" | InvalidArgumentError | InvalidArgumentError | 0 |\\r\\n| \\"-00010\\" | -8 | -8 | -8 |\\r\\n| \\"\\\\n\\\\n+10 \\\\n\\\\r\\\\t\\" | 8 | 8 | 8 |\\r\\n| \\"LOL\\" | InvalidArgumentError | InvalidArgumentError | NaN |\\r\\n| \\"\\\\n\\\\t\\\\r -Infinity \\\\n\\" | InvalidArgumentError | -Infinity | NaN |\\r\\n| undefined | InvalidArgumentError | InvalidArgumentError | NaN |\\r\\n| \\"\\" | InvalidArgumentError | InvalidArgumentError | NaN |\\r\\n| \\"+9\\" | InvalidArgumentError | InvalidArgumentError | NaN |\\r\\n\\r\\n## Example\\r\\n\\r\\n```javascript\\r\\nvar Oo = require(\\"0o\\")(true);\\r\\n// If `notational` is true, NaN and infinite values are not allowed;\\r\\n// otherwise, they are allowed.\\r\\n\\r\\nconsole.log(\\"+0o0 is mathematically equivalent to \\", Oo(+0)); // 0\\r\\nconsole.log(\\"-0o0 is mathematically equivalent to \\", Oo(-0)); // -0\\r\\n\\r\\nconsole.log(\\"parseInt(0, 8)?\\", parseInt(0, 8)); // 0\\r\\nconsole.log(\\"parseInt(-0, 8)?\\", parseInt(-0, 8)); // 0\\r\\n\\r\\ntry\\r\\n{\\r\\n\\tOo(\\"9\\"); // throws an InvalidArgumentError.\\r\\n}\\r\\ncatch(error)\\r\\n{\\r\\n\\t// error.name === \\"InvalidArgumentError\\"\\r\\n\\tconsole.error(error.name, error.message);\\r\\n}\\r\\n```","owner":{"name":"wlzla000","avatar":"https://github.com/wlzla000.png","link":"https://github.com/wlzla000"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["Octal","Octal literals","parser","polyfill","parse","literals","ES6"],"created":1475491763095,"modified":1475635828306,"lastPublisher":{"name":"wlzla000","email":"wlzla000@naver.com","avatar":"https://gravatar.com/avatar/192ccc13deb34ef2139d11c8d884d9e4","link":"https://www.npmjs.com/~wlzla000"},"owners":[{"name":"wlzla000","email":"wlzla000@naver.com","avatar":"https://gravatar.com/avatar/192ccc13deb34ef2139d11c8d884d9e4","link":"https://www.npmjs.com/~wlzla000"}],"lastCrawl":"2017-12-04T22:42:55.026Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0o0zttest","body":{"objectID":"0o0zttest","name":"0o0zttest","concatenatedName":"0o0zttest","downloadsLast30Days":31,"downloadsRatio":2.2449593918988755e-7,"humanDownloadsLast30Days":"31","popular":false,"version":"1.0.1","versions":{"1.0.0":"2016-07-19T02:51:30.155Z","1.0.1":"2016-07-19T02:55:19.287Z"},"tags":{"latest":"1.0.1"},"description":"test npm","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"# This is the test npm package\\r\\n\\r\\n## install package\\r\\n\\r\\n``` code \\r\\nnpm install 0o0zttest\\r\\n```","owner":{"name":"0o0zt","email":"t-tozhou@microsoft.com","avatar":"https://gravatar.com/avatar/86d0b1872ad2652310adfa808fefaa19","link":"https://www.npmjs.com/~0o0zt"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1468896690155,"modified":1468896919287,"lastPublisher":{"name":"0o0zt","email":"t-tozhou@microsoft.com","avatar":"https://gravatar.com/avatar/86d0b1872ad2652310adfa808fefaa19","link":"https://www.npmjs.com/~0o0zt"},"owners":[{"name":"0o0zt","email":"t-tozhou@microsoft.com","avatar":"https://gravatar.com/avatar/86d0b1872ad2652310adfa808fefaa19","link":"https://www.npmjs.com/~0o0zt"}],"lastCrawl":"2017-12-04T22:42:55.026Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0px","body":{"objectID":"0px","name":"0px","concatenatedName":"0px","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T05:09:28.670Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480828168670,"modified":1480828168670,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.026Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0rpc","body":{"objectID":"0rpc","name":"0rpc","concatenatedName":"0rpc","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-07-11T02:33:21.101Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"jacktuck","email":"jack-tuck@hotmail.com","avatar":"https://gravatar.com/avatar/5593df1ccc6406fc1b6e3918c2f856f6","link":"https://www.npmjs.com/~jacktuck"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1468204401101,"modified":1468204401101,"lastPublisher":{"name":"jacktuck","email":"jack-tuck@hotmail.com","avatar":"https://gravatar.com/avatar/5593df1ccc6406fc1b6e3918c2f856f6","link":"https://www.npmjs.com/~jacktuck"},"owners":[{"name":"jacktuck","email":"jack-tuck@hotmail.com","avatar":"https://gravatar.com/avatar/5593df1ccc6406fc1b6e3918c2f856f6","link":"https://www.npmjs.com/~jacktuck"}],"lastCrawl":"2017-12-04T22:42:55.027Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0s","body":{"objectID":"0s","name":"0s","concatenatedName":"0s","downloadsLast30Days":25,"downloadsRatio":1.8104511224990932e-7,"humanDownloadsLast30Days":"25","popular":false,"version":"1.0.0","versions":{"1.0.0":"2015-09-23T01:42:27.165Z"},"tags":{"latest":"1.0.0"},"description":"A tool to create an array filled with 0&#39;s","dependencies":{},"devDependencies":{"chai":"^3.3.0","istanbul":"^0.3.20","mocha":"^2.3.3","mockery":"^1.4.0"},"githubRepo":{"user":"joeyism","project":"node-zeroes","path":"","head":"d29d58511724f55e6c194f083df8647d893db3fb"},"gitHead":"d29d58511724f55e6c194f083df8647d893db3fb","readme":"# 0s\\nA simple tool to create an array with only 0\'s\\n\\n## Installation\\nTo install, run\\n\\n $ npm install --save 0s\\n\\n## Usage\\nTo use, require it first by\\n\\n var zeroes = require(\\"0s\\");\\n\\nThen input the array length that you want\\n\\n zeroes() // []\\n zeroes(0) // []\\n zeroes(1) // [1]\\n zeroes(5) // [1, 1, 1, 1, 1]\\n\\n## Versions\\n**1.0.0**\\nFirst version\\n","owner":{"name":"joeyism","avatar":"https://github.com/joeyism.png","link":"https://github.com/joeyism"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["zeroes","0","zero","zeros","array","dimension","size"],"created":1442972547165,"modified":1442972547165,"lastPublisher":{"name":"joeyism","email":"sham.joey@gmail.com","avatar":"https://gravatar.com/avatar/144b7c23f24db55b7d8947eaad381f56","link":"https://www.npmjs.com/~joeyism"},"owners":[{"name":"joeyism","email":"sham.joey@gmail.com","avatar":"https://gravatar.com/avatar/144b7c23f24db55b7d8947eaad381f56","link":"https://www.npmjs.com/~joeyism"}],"lastCrawl":"2017-12-04T22:42:55.027Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x","body":{"objectID":"0x","name":"0x","concatenatedName":"0x","downloadsLast30Days":2735,"downloadsRatio":0.00001980633528014008,"humanDownloadsLast30Days":"2.7k","popular":false,"version":"2.5.3","versions":{"1.0.0":"2016-02-14T16:10:18.507Z","2.0.0":"2016-03-02T18:19:00.538Z","2.0.1":"2016-03-03T01:49:26.733Z","2.0.2":"2016-03-03T01:54:00.155Z","2.0.3":"2016-03-03T01:58:01.641Z","2.0.4":"2016-03-03T03:32:22.723Z","2.0.5":"2016-03-03T03:51:53.940Z","2.0.6":"2016-03-10T17:57:23.721Z","2.1.0":"2016-03-15T13:39:52.486Z","2.2.0":"2016-03-20T17:39:15.305Z","2.2.1":"2016-03-22T12:00:24.653Z","2.2.2":"2016-03-23T16:55:58.568Z","2.2.3":"2016-03-23T18:17:51.458Z","2.2.4":"2016-03-23T22:54:44.941Z","2.2.5":"2016-03-24T16:46:44.238Z","2.2.6":"2016-03-24T17:09:01.412Z","2.2.8":"2016-08-12T22:36:40.934Z","2.2.9":"2016-09-17T14:43:16.695Z","2.2.10":"2016-09-19T17:12:07.556Z","2.2.11":"2016-09-19T17:37:31.429Z","2.2.12":"2016-10-18T13:03:29.578Z","2.2.13":"2016-10-30T15:00:49.067Z","2.2.14":"2016-11-03T12:14:55.824Z","2.2.15":"2016-12-02T18:05:57.881Z","2.3.0":"2016-12-07T16:18:43.196Z","2.3.1":"2017-01-22T20:50:37.687Z","2.4.0":"2017-01-22T22:40:54.918Z","2.4.1":"2017-03-17T10:23:59.387Z","2.4.2":"2017-04-03T07:09:32.231Z","2.4.3":"2017-08-04T17:07:47.724Z","2.4.4":"2017-08-08T18:01:38.216Z","2.5.0":"2017-09-28T06:11:34.023Z","2.5.1":"2017-10-03T22:23:58.081Z","2.5.2":"2017-10-04T18:15:42.509Z","2.5.3":"2017-10-07T16:35:54.163Z"},"tags":{"latest":"2.5.3"},"description":"🔥 single-command flamegraph profiling 🔥","dependencies":{"browserify":"^13.0.0","concat-stream":"^1.5.2","d3":"^3.5.16","debug":"^2.2.0","end-of-stream":"^1.1.0","hsl-to-rgb-for-reals":"^1.1.0","jsdom":"^8.0.4","minimist":"^1.2.0","multistream":"^2.1.0","open":"0.0.5","perf-sym":"^2.0.0","pump":"^1.0.1","single-line-log":"^1.0.1","split2":"^2.0.1","through2":"^2.0.1","which":"^1.2.4"},"devDependencies":{"deep-diff":"^0.3.3","standard":"^6.0.7"},"githubRepo":{"user":"davidmarkclements","project":"0x","path":"","head":"be4f4574d6c64baa2a00e5a0d870e4cff3404908"},"gitHead":"be4f4574d6c64baa2a00e5a0d870e4cff3404908","readme":"# <img alt=0x src=0x-logo.png width=350>\\n\\n\\n🔥 single-command flamegraph profiling 🔥\\n\\nDiscover the bottlenecks and hot paths in your code, with flamegraphs.\\n\\n## Visualize Stack Traces\\n\\n`0x` can profile and generate an interactive flamegraph for a Node process in a single command, on both Linux *and* OS X. Whilst this seems trivial... it\'s not. Well it wasn\'t before `0x`.\\n\\n## Demo\\n\\n![](demo.gif)\\n\\nAn example interactive flamegraph can be viewed at <http://davidmarkclements.github.io/0x-demo/>\\n\\nThis demo shows a terminal preview, the default behaviour\\nis *not* to show a preview, you can use `-p` to turn it on.\\n\\n## Support\\n\\n* Node v4+\\n\\n* OS\\n * Linux\\n * requires [perf](https://en.wikipedia.org/wiki/Perf_(Linux))\\n * OS X\\n * Up-to-date XCode\\n * SmartOS\\n * *not* Windows (PR\'s welcome)\\n\\n## Install\\n\\n```sh\\nnpm install -g 0x\\n```\\n\\n## Basic Usage\\n\\nPrefix the usual command for starting a process with 0x:\\n\\n```sh\\n0x my-app.js\\n```\\n\\nYou can make the flamegraph automatically open in your browser with:\\n\\n```sh\\n0x -o my-app.js\\n```\\n\\nUse a custom Node.js executable:\\n\\n```sh\\n0x --node=/path/to/node my-app.js\\n```\\n\\nYou can pass custom arguments to node, for instance:\\n\\n```sh\\n0x --node-options=\\"--trace-opt --trace-deopt\\" my-app.js\\n```\\n\\n## Generating\\n\\nOnce we\'re ready to generate a flamegraph we send a SIGINT.\\n\\nThe simplest way to do this is pressing CTRL+C.\\n\\nWhen `0x` catches the SIGINT, it process the stacks and\\ngenerates a profile folder, containing flamegraph.html\\n\\n\\n## Docker\\nDue to security reasons Docker containers tend to result in the following error:\\n\\n```bash\\nCannot read kernel map\\nperf_event_open(..., PERF_FLAG_FD_CLOEXEC) failed with unexpected error 1 (Operation not permitted)\\nperf_event_open(..., 0) failed unexpectedly with error 1 (Operation not permitted)\\nError:\\nYou may not have permission to collect stats.\\n[...]\\n```\\nWe can work around this problem by running our container with the `--privileged` option\\nor add `privileged: true` in your `docker-compose.yml` file.\\nSee the [Docker\'s doc](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) for more info.\\n\\n\\n## Production Servers\\n\\nGenerating a flamegraph can be quite intense on CPU and memory,\\nif we have restricted resources we should generate the flamegraph\\nin two pieces.\\n\\nFirst we can use the `--stacks-only` flag to purely capture stacks.\\n\\n```sh\\n0x --stacks-only my-app.js #0x on the server\\n```\\n\\nPress ctrl+c when ready, this will create the usual profile folder,\\nholding one file, that `stacks.$PID.out` file.\\n\\nNow we need to transfer the stacks file from our production server\\nto our local dev machine.\\n\\nLet\'s say the pid was 7777, we can generate the flamegraph locally with\\n\\n```sh\\n0x -c gen stacks.7777.out # 0x locally\\n```\\n\\nNow the hard work is done away from production, ensuring we avoid any service-level problems.\\n\\n## Memory Issues\\n\\nAs your stack grows you may have memory issues with both Node and your browser.\\n\\nFor Node, run with the following flag\\n```\\n--stack-size=8024\\n```\\n\\nFor Chrome, run with the following flag\\n```\\n--js-flags=\\"--stack-size 8024\\"\\n```\\n\\nWhere 8024 is the megabytes of RAM required to run load stack. Adjust this as needed and confirm you have it to spare.\\n\\n## Empty Output Stacks\\n\\nIf you are getting empty output stacks, you may have to run with `sudo`:\\n```sh\\nsudo 0x my-app.js\\n```\\n\\n## 0x Flags\\n\\n### --help | -h\\n\\nPrint usage info\\n\\n### --open | -o\\n\\nOpen the flamegraph on your browser using `open` or `xdg-open` (see\\nhttps://www.npmjs.com/package/open for details).\\n\\n### --node\\n\\nSet a custom node executable\\n\\n### --node-options\\n\\nPass in custom options to `node`\\n\\n### --output-dir | -D\\n\\nSpecify artifact output directory\\nDefault: \'${process.cwd()}/profile-${PID}(-${Date.now()})?\'\\n\\n### --svg\\n\\nGenerates an `flamegraph.svg` file in the artifact output directory,\\nin addition to the `flamegraph.html` file.\\n\\n### --preview\\n\\nGenerates an SVG file, prerenders SVG inside HTML\\nand outputs a PNG to the terminal (if possible)\\nDepends on imagemagick (brew install imagemagick)\\nIf using iTerm 2.9+ image will be output to terminal\\nWarning - depending on the amount of stacks this\\noption can take tens of seconds\\n\\nDefault: false\\n\\n### --delay | -d\\n\\nMilliseconds. Delay before tracing begins (or before stacks are processed in the Linux case), allows us to ignore\\ninitialisation stacks (e.g. module loading).\\n\\nExample: `0x -d 2000 my-app.js`\\n\\nDefault: 300\\n\\n### --langs | -l\\n\\nColor code the stacks by JS and C\\n\\nExample: `0x -l my-app.js`\\n\\nDefault: false\\n\\n### --tiers | -t\\n\\nA comma separated list\\n\\nOverrides langs, Color code frames by type\\n\\nExamples: `0x -t my-app.js`\\n\\nDefault: false\\n\\n### --exclude | -x\\n\\nExclude tiers or langs, comma seperated list\\n\\nOptions: v8, regexp, nativeC, nativeJS, core, deps, app, js, c\\n\\nExamples:\\n`0x -x v8,nativeC,core my-app.js`\\n`0x -x c my-app.js`\\n\\nDefault: v8\\n\\n### --include\\n\\nInclude tiers, Overwrites exclude. Really only useful\\nfor including the v8 tier (which is excluded by default).\\n\\nOptions: v8, regexp, nativeC, nativeJS, core, deps, app, js, c\\n\\nExample: `0x --include v8 my-app.js`\\n\\nDefault: false\\n\\n### --theme\\n\\nDark or Light theme\\n\\nOptions: dark | light\\n\\nExample: `0x --theme light my-app.js`\\n\\nDefault: dark\\n\\n### --stacks-only\\n\\nDon\'t generate the flamegraph, only create the stacks\\noutput. If assigned to \'-\' stacks output will come through\\nstdout. Use this in combination with the `-c gen` argument\\nto generate the flamegraph from raw stacks.\\n\\nOptions: false | true | -\\n\\nExamples:\\n\\n`0x --stacks-only my-app.js`\\n\\n`0x --stacks-only=- my-app.js`\\n\\nDefault: false\\n\\n### --trace-info\\n\\nShow output from dtrace or perf tools\\n\\nDefault: false\\n\\n### --cmd | -c\\n\\nRun a \\"0x command\\", possible commands are `help` and `gen`.\\n\\n#### `0x -c help`\\noutputs advanced usage (i.e. the commands).\\n\\n#### `0x -c gen`\\n\\nThe gen command will generate the flamegraph from\\na stacks.out file.\\n\\nExample: `0x -c gen [flags] profile-$PID/stacks.$PID.out > flamegraph.html`\\n\\nFlags include all the flags that can be passed to 0x\\n\\n#### `--timestamp-profiles`\\n\\nAdds the current timestamp to the Profile Folder\'s name minimizing collisions\\nfor in containerized environments\\n\\nExample: `profile-3866-`\\n\\n## The Profile Folder\\n\\nBy default, a profile folder will be created and named after the PID, e.g.\\n`profile-3866` (we can set this name manually using the `--output-dir` flag).\\n\\nThe Profile Folder can contain the following files\\n\\n* flamegraph-small.png - the preview image output to terminal\\n* flamegraph.svg - an SVG rendering of the flamegraph\\n* stacks.3866.out - the traced stacks (run through [perf-sym](http://npmjs.com/perf-sym) on OS X)\\n* flamegraph.html - the interactive flamegraph\\n* stacks.3866.json - a JSON tree generated from the stacks, this tree is rendered by d3.js in the flamegraph.html\\n\\nThe is helpful, because there\'s other things you can do with\\nstacks output. For instance, checkout [cpuprofilify](http://npmjs.com/cpuprofilify) and [traceviewify](http://npmjs.com/traceviewify).\\n\\n## Example\\n\\nWant to try it out? Clone this repo, run `npm i -g` and\\nfrom the repo root run\\n\\n```sh\\n0x examples/rest-api\\n```\\n\\nIn another tab run\\n\\n```sh\\nnpm run stress-rest-example\\n```\\n\\nTo put some load on the rest server, once that\'s done\\nuse ctrl + c to kill the server.\\n\\nNow try some other options, e.g.\\n\\n```sh\\n0x -t examples/rest-api\\n```\\n\\nBabel (ES6 Transpile) Examples\\n-------\\n\\nSee `./examples/babel` for an example. Note the babel require hook is not currently supported. Notes on using the babel-cli instead can be found in the babel example readme.\\n\\n## v1\\n\\nDon\'t use v1, it was an experiment and is non functional\\nShould have be v0...\\n\\n## Contributions\\n\\nYes please!\\n\\n## Debugging\\n\\n`DEBUG=0x* 0x my-app.js`\\n\\n## Alternatives\\n\\n* <https://github.com/brendangregg/FlameGraph> (perl)\\n* <https://www.npmjs.com/package/stackvis> (node)\\n* <https://www.npmjs.com/package/d3-flame-graph> (node)\\n\\n## Acknowledgements\\n\\n0x is generously sponsored by [nearForm](http://nearform.com)\\n\\nThis tool is essentially a mashup from various info and code\\nsources, and therefore would have taken much longer without\\nthe following people and their Open Source/Info Sharing efforts\\n\\n* Thorsten Lorenz (<http://thlorenz.com/>)\\n* Dave Pacheco (<http://dtrace.org/blogs/dap/about/>)\\n* Brendan Gregg (<http://www.brendangregg.com/>)\\n* Martin Spier (<http://martinspier.io/>)\\n\\n## License\\n\\nMIT and Apache (depending on the code, see LICENSE.md)\\n","owner":{"name":"davidmarkclements","avatar":"https://github.com/davidmarkclements.png","link":"https://github.com/davidmarkclements"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1455466218507,"modified":1507394154163,"lastPublisher":{"name":"matteo.collina","email":"hello@matteocollina.com","avatar":"https://gravatar.com/avatar/c3fc7370bc0951fba944b7b8cac5b9cc","link":"https://www.npmjs.com/~matteo.collina"},"owners":[{"name":"davidmarkclements","email":"huperekchuno@googlemail.com","avatar":"https://gravatar.com/avatar/c62cfe412cbede2d0ede736805647134","link":"https://www.npmjs.com/~davidmarkclements"},{"name":"matteo.collina","email":"hello@matteocollina.com","avatar":"https://gravatar.com/avatar/c3fc7370bc0951fba944b7b8cac5b9cc","link":"https://www.npmjs.com/~matteo.collina"}],"lastCrawl":"2017-12-04T22:42:55.028Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x-assert","body":{"objectID":"0x-assert","name":"0x-assert","concatenatedName":"0xassert","downloadsLast30Days":54,"downloadsRatio":3.9105744245980415e-7,"humanDownloadsLast30Days":"54","popular":false,"version":"0.0.3","versions":{"0.0.1":"2017-10-25T20:16:33.469Z","0.0.2":"2017-10-25T20:52:53.591Z","0.0.3":"2017-11-09T16:44:30.051Z"},"tags":{"latest":"0.0.3"},"description":"Provides a standard way of performing type and schema validation across 0x projects","dependencies":{"0x-json-schemas":"^0.6.5","bignumber.js":"^4.0.2","ethereum-address":"^0.0.4","lodash":"^4.17.4","valid-url":"^1.0.9"},"devDependencies":{"@types/bignumber.js":"^4.0.2","@types/lodash":"^4.14.78","@types/mocha":"^2.2.42","@types/valid-url":"^1.0.2","chai":"^4.0.1","chai-typescript-typings":"^0.0.0","dirty-chai":"^2.0.1","mocha":"^3.5.0","npm-run-all":"^4.1.1","shx":"^0.2.2","tslint":"5.3.2","tslint-config-0xproject":"^0.0.2","typescript":"^2.4.2"},"githubRepo":{"user":"0xProject","project":"assert","path":"","head":"557994d313f763c90b54aa681a374af532cc0e2c"},"gitHead":"557994d313f763c90b54aa681a374af532cc0e2c","readme":"<img src=\\"https://github.com/0xProject/branding/blob/master/0x_Black_CMYK.png\\" width=\\"200px\\" >\\n\\n---\\n\\nStandard type and schema assertions to be used across all 0x projects and packages\\n","owner":{"name":"0xProject","avatar":"https://github.com/0xProject.png","link":"https://github.com/0xProject"},"deprecated":false,"badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":[],"created":1508962593469,"modified":1510245870051,"lastPublisher":{"name":"bchillman","email":"brandon.millman@gmail.com","avatar":"https://gravatar.com/avatar/d6e385806d496efc741d7375c3568b62","link":"https://www.npmjs.com/~bchillman"},"owners":[{"name":"bchillman","email":"brandon.millman@gmail.com","avatar":"https://gravatar.com/avatar/d6e385806d496efc741d7375c3568b62","link":"https://www.npmjs.com/~bchillman"}],"lastCrawl":"2017-12-04T22:42:55.028Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x-json-schemas","body":{"objectID":"0x-json-schemas","name":"0x-json-schemas","concatenatedName":"0xjsonschemas","downloadsLast30Days":1235,"downloadsRatio":0.000008943628545145521,"humanDownloadsLast30Days":"1.2k","popular":false,"version":"0.6.6","versions":{"0.1.0":"2017-08-28T14:05:04.589Z","0.1.1":"2017-08-28T14:21:10.124Z","0.1.2":"2017-08-28T14:34:53.117Z","0.1.3":"2017-08-28T14:37:56.432Z","0.1.4":"2017-08-28T14:40:16.585Z","0.1.5":"2017-08-28T14:46:30.232Z","0.2.0":"2017-08-30T14:35:03.255Z","0.3.0":"2017-08-30T17:42:11.060Z","0.4.0":"2017-08-31T12:37:50.797Z","0.5.0":"2017-09-05T13:28:10.766Z","0.5.1":"2017-09-05T14:41:10.076Z","0.5.2":"2017-09-06T05:20:16.960Z","0.6.0":"2017-10-04T06:49:44.760Z","0.6.1":"2017-10-04T06:52:34.274Z","0.6.3":"2017-10-18T13:23:36.334Z","0.6.5":"2017-10-19T09:41:32.754Z","0.6.6":"2017-11-07T18:41:29.700Z"},"tags":{"latest":"0.6.6"},"description":"0x-related json schemas","dependencies":{"jsonschema":"^1.2.0","lodash.values":"^4.3.0"},"devDependencies":{"@types/bignumber.js":"^4.0.3","@types/lodash.foreach":"^4.5.3","@types/lodash.values":"^4.3.3","@types/mocha":"^2.2.42","bignumber.js":"^4.0.2","chai":"^4.1.1","chai-typescript-typings":"^0.0.0","dirty-chai":"^2.0.1","lodash.foreach":"^4.5.0","mocha":"^3.5.0","npm-run-all":"^4.1.1","shx":"^0.2.2","tslint":"^5.7.0","tslint-config-0xproject":"^0.0.2","typescript":"^2.4.2"},"githubRepo":{"user":"0xProject","project":"json-schemas","path":"","head":"7311ab744358202a285d8cab20b0ed36613bd5b3"},"gitHead":"7311ab744358202a285d8cab20b0ed36613bd5b3","readme":"# json-schemas [![CircleCI](https://circleci.com/gh/0xProject/json-schemas.svg?style=svg)](https://circleci.com/gh/0xProject/json-schemas)\\nContains 0x-related json schemas\\n\\n## Usage:\\n```\\nimport {SchemaValidator, ValidatorResult, schemas} from \'0x-json-schemas\';\\n\\nconst {orderSchema} = schemas;\\nconst validator = new SchemaValidator();\\n\\nconst order = {\\n ...\\n};\\nconst validatorResult: ValidatorResult = validator.validate(order, orderSchema); // Contains all errors\\nconst isValid: boolean = validator.isValid(order, orderSchema); // Only returns boolean\\n```\\n","owner":{"name":"0xProject","avatar":"https://github.com/0xProject.png","link":"https://github.com/0xProject"},"deprecated":"This package is now published as @0xproject/json-schemas. Please remove this dependency and install the new one.","badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":[],"created":1503929104589,"modified":1510963019059,"lastPublisher":{"name":"bchillman","email":"brandon.millman@gmail.com","avatar":"https://gravatar.com/avatar/d6e385806d496efc741d7375c3568b62","link":"https://www.npmjs.com/~bchillman"},"owners":[{"name":"bchillman","email":"brandon.millman@gmail.com","avatar":"https://gravatar.com/avatar/d6e385806d496efc741d7375c3568b62","link":"https://www.npmjs.com/~bchillman"},{"name":"fberger","email":"me@fabioberger.com","avatar":"https://gravatar.com/avatar/176633afb66cf0003582f4cbd5d24bc8","link":"https://www.npmjs.com/~fberger"},{"name":"logvinov","email":"logvinov.leon@gmail.com","avatar":"https://gravatar.com/avatar/336e23606ebc3b4d2facc5da762683fd","link":"https://www.npmjs.com/~logvinov"}],"lastCrawl":"2017-12-04T22:42:55.029Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x-relay-types","body":{"objectID":"0x-relay-types","name":"0x-relay-types","concatenatedName":"0xrelaytypes","downloadsLast30Days":539,"downloadsRatio":0.000003903332620108045,"humanDownloadsLast30Days":"539","popular":false,"version":"0.3.0","versions":{"1.0.0":"2017-09-07T03:45:32.724Z","0.0.1":"2017-09-07T03:52:22.823Z","0.0.2":"2017-09-07T03:57:55.291Z","0.0.3":"2017-09-07T04:30:46.386Z","0.0.4":"2017-09-08T04:14:37.911Z","0.0.5":"2017-09-08T19:33:21.494Z","0.0.6":"2017-09-08T19:38:39.620Z","0.0.7":"2017-09-09T20:46:35.422Z","0.0.8":"2017-09-10T00:34:32.994Z","0.0.9":"2017-09-11T00:10:35.581Z","0.0.10":"2017-09-11T18:24:14.931Z","0.0.11":"2017-09-12T18:42:02.315Z","0.0.13":"2017-09-12T21:03:43.713Z","0.0.14":"2017-09-18T00:25:42.306Z","0.0.15":"2017-09-18T19:35:37.605Z","0.0.16":"2017-09-29T23:50:12.790Z","0.0.17":"2017-09-30T00:35:35.024Z","0.0.18":"2017-09-30T03:28:24.787Z","0.0.19":"2017-10-06T18:26:45.053Z","0.0.21":"2017-10-08T22:32:04.138Z","0.0.22":"2017-10-13T00:29:01.040Z","0.2.1":"2017-11-04T22:12:13.429Z","0.3.0":"2017-11-09T20:45:17.264Z"},"tags":{"latest":"0.3.0"},"description":"0x based relay typescript types","dependencies":{"0x.js":"^0.22.5","bignumber.js":"^4.1.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1504755932724,"modified":1510260317264,"lastPublisher":{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"},"owners":[{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"}],"lastCrawl":"2017-12-04T22:42:55.029Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x-relay-utils","body":{"objectID":"0x-relay-utils","name":"0x-relay-utils","concatenatedName":"0xrelayutils","downloadsLast30Days":760,"downloadsRatio":0.000005503771412397243,"humanDownloadsLast30Days":"760","popular":false,"version":"0.2.5","versions":{"0.0.1":"2017-09-11T19:16:46.369Z","0.0.2":"2017-09-11T19:27:35.049Z","0.0.4":"2017-09-13T17:17:04.299Z","0.0.5":"2017-09-13T21:35:39.461Z","0.0.6":"2017-09-14T16:18:07.312Z","0.0.7":"2017-09-17T21:12:12.405Z","0.0.8":"2017-09-18T01:17:48.242Z","0.0.9":"2017-09-19T19:43:31.147Z","0.0.10":"2017-09-22T02:06:18.914Z","0.0.11":"2017-09-27T03:16:01.056Z","0.0.12":"2017-09-28T17:18:14.497Z","0.0.13":"2017-09-30T02:41:40.677Z","0.0.14":"2017-09-30T04:13:01.575Z","0.0.15":"2017-09-30T05:07:55.370Z","0.1.0":"2017-09-30T05:08:14.789Z","0.1.1":"2017-09-30T21:47:50.463Z","0.1.2":"2017-10-06T18:29:14.572Z","0.1.3":"2017-10-17T18:28:18.021Z","0.1.4":"2017-10-19T01:45:20.542Z","0.1.5":"2017-10-21T19:13:59.919Z","0.2.1":"2017-11-09T21:51:25.026Z","0.2.2":"2017-11-09T22:00:07.253Z","0.2.3":"2017-11-09T22:06:19.670Z","0.2.4":"2017-11-09T22:09:51.125Z","0.2.5":"2017-11-18T04:28:40.216Z"},"tags":{"latest":"0.2.5"},"description":"0x based relay utilities.","dependencies":{"web3-provider-engine":"^13.3.0"},"devDependencies":{"0x-json-schemas":"^0.6.5","0x-relay-types":"^0.3.0","0x.js":"^0.22.5","@types/chai":"^3.4.34","@types/chai-as-promised":"~7.1.0","@types/mocha":"^2.2.32","@types/node":"^6.0.46","bignumber.js":"^4.1.0","chai":"^3.5.0","chai-as-promised":"~7.1.1","chai-bignumber":"~2.0.1","dirty-chai":"~2.0.1","dotenv":"~4.0.0","mocha":"^3.1.2","request-promise-native":"^1.0.5","ts-node":"^1.6.1","tslint":"^5.5.0","tslint-config-0xproject":"0.0.2","typescript":"^2.5.3"},"githubRepo":null,"gitHead":null,"readme":"### Updating Documentation\\n1. `npm install --global typedoc`\\n2. `typedoc --out doc src/**/*.ts`","owner":{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1505157406369,"modified":1510979320216,"lastPublisher":{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"},"owners":[{"name":"radarrelay","email":"npm@radarrelay.com","avatar":"https://gravatar.com/avatar/bf0d62b50c903b16fef46976158ac8e6","link":"https://www.npmjs.com/~radarrelay"}],"lastCrawl":"2017-12-04T22:42:55.031Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x-subproviders","body":{"objectID":"0x-subproviders","name":"0x-subproviders","concatenatedName":"0xsubproviders","downloadsLast30Days":59,"downloadsRatio":4.27266464909786e-7,"humanDownloadsLast30Days":"59","popular":false,"version":"0.0.2","versions":{"1.0.0":"2017-11-23T06:22:26.939Z","0.0.1":"2017-11-23T06:25:35.746Z","0.0.2":"2017-11-23T06:37:01.205Z"},"tags":{"latest":"0.0.2"},"description":"A bunch of useful subproviders, including a Ledger Nano subprovider.","dependencies":{"@0xproject/assert":"^0.0.4","@0xproject/tslint-config":"^0.1.0","@types/lodash":"^4.14.85","@types/node":"^8.0.53","@types/sinon":"^4.0.0","bn.js":"^4.11.8","debug":"^3.1.0","es6-promisify":"^5.0.0","ethereumjs-tx":"^1.3.3","ethereumjs-util":"^5.1.2","ledgerco":"^1.1.3","lodash":"^4.17.4","semaphore-async-await":"^1.5.1","sinon":"^4.1.2","types-bn":"^0.0.1","types-ethereumjs-util":"^0.0.5","typescript":"^2.6.1","web3":"^0.20.2","web3-provider-engine":"^13.3.3","web3-typescript-typings":"^0.7.2"},"devDependencies":{"@types/mocha":"^2.2.44","awesome-typescript-loader":"^3.4.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","chai-as-promised-typescript-typings":"^0.0.3","chai-typescript-typings":"^0.0.1","dirty-chai":"^2.0.1","mocha":"^4.0.1","npm-run-all":"^4.1.2","webpack":"^3.8.1"},"githubRepo":null,"gitHead":null,"readme":"## 0x subproviders\\nA bunch of useful subproviders, including a Ledger Nano subprovider.\\n\\n## Ledger Subprovider for Web3\\n\\nUsage example as a [Web3 Provider Engine](https://github.com/MetaMask/provider-engine).\\n\\n```js\\n\\nimport {\\n LedgerEthConnection,\\n LedgerWallet,\\n LedgerWalletSubprovider,\\n LedgerBrowserCommunicationFactory,\\n wrapWalletSubproviderFactory\\n} from \'0x-subproviders\';\\n\\nconst networkId = 42;\\nconst provider = new ProviderEngine();\\n// Browser (U2F) or Node\\nconst conn = new LedgerEthConnection(LedgerBrowserCommunicationFactory);\\nconst wallet = new LedgerWallet(conn, networkId);\\n\\nconst ledgerSubProvider = wrapWalletSubproviderFactory(wallet);\\n// Hooks in as a HookedWalletSubProvider\\n// This takes over all Signing operations in the web3 stack\\nprovider.addProvider(ledgerSubProvider);\\n// All other operations need to fall through to an underlying provider\\n// in this case infura or another JSON RPC endpoint\\nprovider.addProvider(new RpcSubprovider(\\n rpcUrl: publicRpcNode,\\n));\\nprovider.start();\\n```\\n\\n\\nOffset the derivation path\\n```js\\n// Offset the derivation path\\nconst conn = new LedgerEthConnection(LedgerBrowserCommunicationFactory);\\nconst wallet = new LedgerWallet(conn, networkId);\\nwallet.setPathIndex(3);\\n```\\n\\nUse directly rather than as a Web3 Provider\\n```js\\n// Offset the derivation path\\nconst conn = new LedgerEthConnection(LedgerBrowserCommunicationFactory);\\nconst wallet = new LedgerWallet(conn, networkId);\\nwallet.getAccountsAsync((err, accounts) => { console.log(accounts) });\\nwallet.signPersonalMessageAsync(\\"Hi There!\\", (err, result) => { console.log(result) });\\n```\\n\\nSet the modified provider in 0x.js \\n```\\nthis.zeroEx = new ZeroEx(provider);\\n```\\n\\nTest the connection before assuming the ledger is present.\\n```js\\nprovider = new ProviderEngine();\\nconst conn = new LedgerEthConnection(LedgerBrowserCommunicationFactory);\\nconst wallet = new LedgerWallet(conn, networkId);\\nconst timeout = 500;\\nwallet.testConnection(timeout, (err, connected) => {\\n if (_.isUndefined(err) && connected) {\\n utils.debug(\'provider\')(\'ledger\');\\n this.ledgerSubProvider = wrapWalletSubproviderFactory(wallet);\\n provider.addProvider(this.ledgerSubProvider);\\n } else {\\n utils.debug(\'provider\')(\'injected\');\\n provider.addProvider(new InjectedWeb3SubProvider(injectedWeb3));\\n }\\n utils.debug(\'provider\')(\'filter\');\\n provider.addProvider(new FilterSubprovider());\\n utils.debug(\'provider\')(publicNodeUrlsIfExistsForNetworkId);\\n provider.addProvider(new RpcSubprovider(\\n rpcUrl: publicRpcNode,\\n ));\\n provider.start();\\n});\\n```","owner":{"name":"dekz","email":"jacob@dekz.net","avatar":"https://gravatar.com/avatar/63d73a736c52194877be844da5a951a8","link":"https://www.npmjs.com/~dekz"},"deprecated":false,"badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":[],"created":1511418146939,"modified":1511419021205,"lastPublisher":{"name":"dekz","email":"jacob@dekz.net","avatar":"https://gravatar.com/avatar/63d73a736c52194877be844da5a951a8","link":"https://www.npmjs.com/~dekz"},"owners":[{"name":"dekz","email":"jacob@dekz.net","avatar":"https://gravatar.com/avatar/63d73a736c52194877be844da5a951a8","link":"https://www.npmjs.com/~dekz"}],"lastCrawl":"2017-12-04T22:42:55.031Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x.js","body":{"objectID":"0x.js","name":"0x.js","concatenatedName":"0xjs","downloadsLast30Days":2934,"downloadsRatio":0.000021247454373649357,"humanDownloadsLast30Days":"2.9k","popular":false,"version":"0.27.1","versions":{"0.6.1":"2017-06-20T07:07:49.817Z","0.6.2":"2017-06-21T13:37:13.440Z","0.7.0":"2017-06-22T23:20:18.281Z","0.7.1":"2017-06-26T22:31:57.545Z","0.8.0":"2017-07-05T02:01:37.849Z","0.9.0":"2017-07-26T15:27:07.258Z","0.9.1":"2017-08-17T04:30:09.804Z","0.9.2":"2017-08-21T16:00:23.570Z","0.9.3":"2017-08-22T08:43:30.878Z","0.10.0":"2017-08-24T08:52:26.416Z","0.10.1":"2017-08-24T09:05:20.424Z","0.10.2":"2017-08-24T10:02:26.571Z","0.10.3":"2017-08-24T10:28:00.594Z","0.10.4":"2017-08-24T10:47:10.944Z","0.11.0":"2017-08-24T20:56:07.476Z","0.12.0":"2017-09-02T03:10:50.813Z","0.12.1":"2017-09-02T03:20:21.622Z","0.13.0":"2017-09-06T13:38:48.097Z","0.14.0":"2017-09-06T16:35:01.734Z","0.14.1":"2017-09-07T18:33:05.126Z","0.14.2":"2017-09-07T19:11:06.677Z","0.15.0":"2017-09-08T14:34:54.878Z","0.16.0":"2017-09-20T13:06:17.031Z","0.17.0":"2017-09-26T13:10:04.367Z","0.18.0":"2017-09-26T14:25:10.777Z","0.19.0":"2017-09-29T14:22:25.726Z","0.20.0":"2017-10-05T11:53:25.116Z","0.21.0":"2017-10-10T12:33:04.226Z","0.21.1":"2017-10-11T12:19:31.762Z","0.21.2":"2017-10-11T15:52:05.905Z","0.21.3":"2017-10-12T14:57:57.799Z","0.21.4":"2017-10-13T16:06:45.664Z","0.22.0":"2017-10-16T09:05:19.164Z","0.22.1":"2017-10-19T14:18:37.040Z","0.22.2":"2017-10-24T18:31:27.673Z","0.22.3":"2017-10-25T09:59:03.107Z","0.22.4":"2017-10-25T20:07:55.973Z","0.22.5":"2017-11-07T23:03:56.485Z","0.22.6":"2017-11-10T16:42:52.204Z","0.23.0":"2017-11-12T22:16:01.107Z","0.24.0":"2017-11-14T18:11:13.491Z","0.25.0":"2017-11-14T20:59:23.810Z","0.25.1":"2017-11-14T21:27:45.234Z","0.26.0":"2017-11-21T19:41:16.284Z","0.26.1":"2017-11-22T23:01:23.890Z","0.27.0":"2017-11-28T20:48:17.674Z","0.27.1":"2017-11-28T22:15:37.268Z"},"tags":{"latest":"0.27.1"},"description":"A javascript library for interacting with the 0x protocol","dependencies":{"@0xproject/assert":"^0.0.6","@0xproject/json-schemas":"^0.6.9","bignumber.js":"~4.1.0","bintrees":"^1.0.2","bn.js":"4.11.8","compare-versions":"^3.0.1","es6-promisify":"^5.0.0","ethereumjs-abi":"^0.6.4","ethereumjs-blockstream":"^2.0.6","ethereumjs-util":"^5.1.1","find-versions":"^2.0.0","js-sha3":"^0.6.1","lodash":"^4.17.4","uuid":"^3.1.0","web3":"^0.20.0"},"devDependencies":{"@0xproject/tslint-config":"^0.2.0","@types/bintrees":"^1.0.2","@types/jsonschema":"^1.1.1","@types/lodash":"^4.14.64","@types/mocha":"^2.2.41","@types/node":"^8.0.1","@types/sinon":"^2.2.2","@types/uuid":"^3.4.2","awesome-typescript-loader":"^3.1.3","chai":"^4.0.1","chai-as-promised":"^7.1.0","chai-as-promised-typescript-typings":"0.0.3","chai-bignumber":"^2.0.1","chai-typescript-typings":"^0.0.1","copyfiles":"^1.2.0","coveralls":"^3.0.0","dirty-chai":"^2.0.1","ethereumjs-testrpc":"6.0.3","json-loader":"^0.5.4","mocha":"^4.0.0","npm-run-all":"^4.0.2","nyc":"^11.0.1","opn-cli":"^3.1.0","request":"^2.81.0","request-promise-native":"^1.0.4","shx":"^0.2.2","sinon":"^4.0.0","source-map-support":"^0.5.0","truffle-hdwallet-provider":"^0.0.3","tslint":"5.8.0","typedoc":"~0.8.0","types-bn":"^0.0.1","types-ethereumjs-util":"github:0xProject/types-ethereumjs-util","typescript":"~2.6.1","web3-provider-engine":"^13.0.1","web3-typescript-typings":"^0.7.1","webpack":"^3.1.0"},"githubRepo":{"user":"0xProject","project":"0x.js","path":"","head":"master"},"gitHead":"master","readme":"0x.js\\n-----\\n\\n## Installation\\n\\n0x.js ships as both a [UMD](https://github.com/umdjs/umd) module and a [CommonJS](https://en.wikipedia.org/wiki/CommonJS) package.\\n\\n#### CommonJS *(recommended)*:\\n\\n**Install**\\n\\n```bash\\nnpm install 0x.js --save\\n```\\n\\n**Import**\\n\\n```javascript\\nimport {ZeroEx} from \'0x.js\';\\n```\\n\\n#### UMD:\\n\\n**Install**\\n\\nDownload the UMD module from our [releases page](https://github.com/0xProject/0x.js/releases) and add it to your project.\\n\\n**Import**\\n\\n```html\\n<script type=\\"text/javascript\\" src=\\"0x.js\\"></script>\\n```\\n\\n## Documentation\\n\\nExtensive documentation of 0x.js can be found on [our website][docs-url].\\n\\n[website-url]: https://0xproject.com/\\n[whitepaper-url]: https://0xproject.com/pdfs/0x_white_paper.pdf\\n[docs-url]: https://0xproject.com/docs/0xjs\\n","owner":{"name":"0xProject","avatar":"https://github.com/0xProject.png","link":"https://github.com/0xProject"},"deprecated":false,"badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":["0x.js","0xproject","ethereum","tokens","exchange"],"created":1497942469817,"modified":1511907337268,"lastPublisher":{"name":"logvinov","email":"logvinov.leon@gmail.com","avatar":"https://gravatar.com/avatar/336e23606ebc3b4d2facc5da762683fd","link":"https://www.npmjs.com/~logvinov"},"owners":[{"email":"brandon.millman@gmail.com","name":"bchillman","avatar":"https://gravatar.com/avatar/d6e385806d496efc741d7375c3568b62","link":"https://www.npmjs.com/~bchillman"},{"email":"will@0xproject.com","name":"wwarren","avatar":"https://gravatar.com/avatar/b66ccc1e108d429af568ea2d3a5926e2","link":"https://www.npmjs.com/~wwarren"},{"email":"abandeali1@gmail.com","name":"amirbandeali","avatar":"https://gravatar.com/avatar/895e8422735c8584caad99f219b45cc6","link":"https://www.npmjs.com/~amirbandeali"},{"email":"me@fabioberger.com","name":"fberger","avatar":"https://gravatar.com/avatar/176633afb66cf0003582f4cbd5d24bc8","link":"https://www.npmjs.com/~fberger"},{"email":"logvinov.leon@gmail.com","name":"logvinov","avatar":"https://gravatar.com/avatar/336e23606ebc3b4d2facc5da762683fd","link":"https://www.npmjs.com/~logvinov"}],"lastCrawl":"2017-12-04T22:42:55.032Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x00-pl--avg-pack-to-ttf","body":{"objectID":"0x00-pl--avg-pack-to-ttf","name":"0x00-pl--avg-pack-to-ttf","concatenatedName":"0x00plavgpacktottf","downloadsLast30Days":54,"downloadsRatio":3.9105744245980415e-7,"humanDownloadsLast30Days":"54","popular":false,"version":"0.0.6","versions":{"0.0.1":"2016-07-16T10:59:12.053Z","0.0.2":"2016-07-17T08:59:44.136Z","0.0.3":"2016-07-17T16:34:38.974Z","0.0.4":"2016-07-17T20:44:28.885Z","0.0.5":"2016-07-19T14:45:00.125Z","0.0.6":"2016-07-20T15:56:04.356Z"},"tags":{"latest":"0.0.6"},"description":"svg pack to ttf","dependencies":{"cli":"^0.11.2","open-iconic":"^1.1.1"},"devDependencies":{},"githubRepo":{"user":"0x00-pl","project":"svg2ttf","path":"","head":"a1a821b198098228fa102f93f96af39fc6312c24"},"gitHead":"a1a821b198098228fa102f93f96af39fc6312c24","readme":"ERROR: No README data found!","owner":{"name":"0x00-pl","avatar":"https://github.com/0x00-pl.png","link":"https://github.com/0x00-pl"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["svg","ttf"],"created":1468666752053,"modified":1469030164356,"lastPublisher":{"name":"0x00-pl","email":"0x00-pl@gmail.com","avatar":"https://gravatar.com/avatar/b885da44f73712eaa970f34f7144a12e","link":"https://www.npmjs.com/~0x00-pl"},"owners":[{"name":"0x00-pl","email":"0x00-pl@gmail.com","avatar":"https://gravatar.com/avatar/b885da44f73712eaa970f34f7144a12e","link":"https://www.npmjs.com/~0x00-pl"}],"lastCrawl":"2017-12-04T22:42:55.033Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x00-pl--svg-pack-to-ttf","body":{"objectID":"0x00-pl--svg-pack-to-ttf","name":"0x00-pl--svg-pack-to-ttf","concatenatedName":"0x00plsvgpacktottf","downloadsLast30Days":79,"downloadsRatio":5.721025547097134e-7,"humanDownloadsLast30Days":"79","popular":false,"version":"0.0.15","versions":{"0.0.7":"2016-08-06T09:54:08.436Z","0.0.8":"2016-08-06T10:26:34.782Z","0.0.9":"2016-08-06T11:52:46.299Z","0.0.10":"2016-08-07T18:20:38.630Z","0.0.11":"2016-08-08T01:55:17.433Z","0.0.12":"2016-08-08T02:06:29.480Z","0.0.13":"2016-08-08T02:08:44.655Z","0.0.14":"2016-08-08T02:11:07.781Z","0.0.15":"2016-08-08T02:17:13.954Z"},"tags":{"latest":"0.0.15"},"description":"svg pack to ttf","dependencies":{"cli":"^0.11.2","commander":"^2.9.0"},"devDependencies":{"open-iconic":"^1.1.1"},"githubRepo":{"user":"0x00-pl","project":"svg2ttf","path":"","head":"650ed5f501385e6879b84bf9dd8fafe0ac7a4a82"},"gitHead":"650ed5f501385e6879b84bf9dd8fafe0ac7a4a82","readme":"ERROR: No README data found!","owner":{"name":"0x00-pl","avatar":"https://github.com/0x00-pl.png","link":"https://github.com/0x00-pl"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["svg","ttf"],"created":1470477248436,"modified":1470622633954,"lastPublisher":{"name":"0x00-pl","email":"0x00-pl@gmail.com","avatar":"https://gravatar.com/avatar/b885da44f73712eaa970f34f7144a12e","link":"https://www.npmjs.com/~0x00-pl"},"owners":[{"name":"0x00-pl","email":"0x00-pl@gmail.com","avatar":"https://gravatar.com/avatar/b885da44f73712eaa970f34f7144a12e","link":"https://www.npmjs.com/~0x00-pl"}],"lastCrawl":"2017-12-04T22:42:55.033Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0x005-publish-own-module","body":{"objectID":"0x005-publish-own-module","name":"0x005-publish-own-module","concatenatedName":"0x005publishownmodule","downloadsLast30Days":16,"downloadsRatio":1.1586887183994196e-7,"humanDownloadsLast30Days":"16","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-09-10T12:30:42.797Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"followwinter","email":"lyxxxx@yeah.net","avatar":"https://gravatar.com/avatar/c6dbd1abbf3e2cece164b5a5a5cab62c","link":"https://www.npmjs.com/~followwinter"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1505046642797,"modified":1505046642797,"lastPublisher":{"name":"followwinter","email":"lyxxxx@yeah.net","avatar":"https://gravatar.com/avatar/c6dbd1abbf3e2cece164b5a5a5cab62c","link":"https://www.npmjs.com/~followwinter"},"owners":[{"name":"followwinter","email":"lyxxxx@yeah.net","avatar":"https://gravatar.com/avatar/c6dbd1abbf3e2cece164b5a5a5cab62c","link":"https://www.npmjs.com/~followwinter"}],"lastCrawl":"2017-12-04T22:42:55.033Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0xff","body":{"objectID":"0xff","name":"0xff","concatenatedName":"0xff","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-02-16T15:01:36.645Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"song940","email":"song940@gmail.com","avatar":"https://gravatar.com/avatar/53fafa18d51b88be7c7236fbcb460751","link":"https://www.npmjs.com/~song940"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1455634896645,"modified":1455634896645,"lastPublisher":{"name":"song940","email":"song940@gmail.com","avatar":"https://gravatar.com/avatar/53fafa18d51b88be7c7236fbcb460751","link":"https://www.npmjs.com/~song940"},"owners":[{"name":"song940","email":"song940@gmail.com","avatar":"https://gravatar.com/avatar/53fafa18d51b88be7c7236fbcb460751","link":"https://www.npmjs.com/~song940"}],"lastCrawl":"2017-12-04T22:42:55.034Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"0zengguohua17099","body":{"objectID":"0zengguohua17099","name":"0zengguohua17099","concatenatedName":"0zengguohua17099","downloadsLast30Days":9,"downloadsRatio":6.517624040996736e-8,"humanDownloadsLast30Days":"9","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-09-08T17:18:10.350Z"},"tags":{"latest":"1.0.0"},"description":"zeng guo hua hello world package","dependencies":{},"devDependencies":{},"githubRepo":{"user":"HGItHub520","project":"test","path":"","head":"master"},"gitHead":"master","readme":"ERROR: No README data found!","owner":{"name":"HGItHub520","avatar":"https://github.com/HGItHub520.png","link":"https://github.com/HGItHub520"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["hello"],"created":1504891090350,"modified":1504891090350,"lastPublisher":{"name":"zengguohua","email":"987776843@qq.com","avatar":"https://gravatar.com/avatar/c992129a5217f53ae5e812f8992f170d","link":"https://www.npmjs.com/~zengguohua"},"owners":[{"name":"zengguohua","email":"987776843@qq.com","avatar":"https://gravatar.com/avatar/c992129a5217f53ae5e812f8992f170d","link":"https://www.npmjs.com/~zengguohua"}],"lastCrawl":"2017-12-04T22:42:55.034Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1","body":{"objectID":"1","name":"1","concatenatedName":"1","downloadsLast30Days":211,"downloadsRatio":0.0000015280207473892347,"humanDownloadsLast30Days":"211","popular":false,"version":"0.1.2","versions":{"0.0.1":"2013-01-18T00:33:50.750Z","0.0.2":"2013-01-31T01:21:06.159Z","0.0.3":"2013-03-21T11:56:30.611Z","0.0.4":"2013-08-02T14:50:03.515Z","0.0.5":"2013-08-05T16:07:20.787Z","0.0.6":"2014-02-18T17:18:23.443Z","0.1.0":"2014-02-19T00:02:47.618Z","0.1.2":"2014-04-08T23:42:42.636Z"},"tags":{"latest":"0.1.2"},"description":"Distributed pub/sub based in ØMQ","dependencies":{"mdns2":"~2.1.3","zmq":"~2.4.0","mout":"~0.2.0","node-uuid":"~1.4.0","async":"~0.1.22"},"devDependencies":{"mocha":"~1.8.1","expect.js":"~0.2.0"},"githubRepo":{"user":"IndigoUnited","project":"node-1","path":"","head":"master"},"gitHead":"master","readme":"# 1 ( *One* )\\n\\nDistributed pub/sub based in [ØMQ](http://www.zeromq.org/).\\n\\n*1* (pronounced One) is a sort of magnet module, gluing together all the nodes that you launch in a network, and providing a simple pub/sub. It allows you to separate several services in the same network by means of \\n\\n\\n## Installation\\n\\nBefore you install the module through NPM, using `npm install 1`, make sure you\\ntake care of the instructions below.\\n\\nThe first thing to do, is to install ØMQ. Head to\\n[http://www.zeromq.org/intro:get-the-software](http://www.zeromq.org/intro:get-the-software)\\nand follow the instructions for your operating system. Then, use\\nthe instructions below, once again, depending on your operating system.\\n\\nAlso, you might want to tune your OS in order to solve some known\\nissues with default configurations. To do this, head out to\\n[http://www.zeromq.org/docs:tuning-zeromq](http://www.zeromq.org/docs:tuning-zeromq),\\nand follow the instructions.\\n\\n**Note:** If you are installing on a system that is not covered by these\\ninstructions, and manage to install, please share your instructions, so we can\\nimprove the documentation.\\n\\n\\n### Linux\\n\\nInstalling on debian-like operating systems, requires that you run the\\nfollowing:\\n\\n```\\n# apt-get install libavahi-compat-libdnssd-dev libc-ares2 libzmq-dev\\n```\\n\\n\\n### MacOS X\\n\\nYou will need [XCode command line tools](http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html)\\nto install *One* on MacOS X, since it depends on\\n[mdns](https://npmjs.org/package/mdns) and [zmq](https://npmjs.org/package/zmq).\\n\\n\\n## Getting started\\n\\n```js\\nvar One = require(\'1\');\\n\\nvar one = new One();\\n\\n// Let\'s do something when we receive messages.\\none.on(\'message\', function (chan, msg) {\\n console.info(chan + \'>\', msg);\\n});\\n\\n// Join the cluster.\\none.join(function (err, cluster) {\\n err && throw new Error(\'Unable to join cluster: \' + err);\\n\\n // Advertise the service.\\n one.advertise(function (err, adInfo) {\\n err && throw new Error(\'Unable to advertise service: \' + err);\\n\\n // Subscribe a channel\\n one.subscribe(\'some_channel\', function (err, chan) {\\n err && throw new Error(\'Unable to subscribe channel: \' + err);\\n\\n // Let\'s send a message to the channel periodically\\n setTimeout(function () {\\n one.publish(\'some_channel\', \'You will be notified of this message\');\\n\\n one.publish(\'some_channel_you_did_not_subscribe\', \'You will not get this message\');\\n }, 500);\\n });\\n });\\n});\\n```\\n\\nHere\'s a more elaborate way of instantiating One, with a few extra options:\\n\\n```js\\n// You can pass a few options when instantiating One.\\n// Note that these are all optional, and you can instantiate without any option.\\n// The example below shows all the default options.\\nvar one = new One({\\n // Id of the service you will be providing.\\n service: \'unnamedService\',\\n\\n // Cluster which this node belongs to.\\n cluster: \'defaultCluster\',\\n\\n // Id of this node. If null, a random id is generated.\\n id: null,\\n\\n // Port used for publishing messages. If null, a free random port is used.\\n port: null,\\n\\n // Interface in which the node will bind.\\n address: \'0.0.0.0\'\\n});\\n```\\n\\n## Reference\\n\\n### Introduction\\n\\nThis module can be used to easily create auto discoverable services that communicate through means of a distributed pub/sub. Unlike solutions based on Redis or some message queueing software, this module is based on 0MQ, enabling you to create a pub/sub without a single point of failure or bottleneck. \\n\\n### Advertising service\\n\\nUpon instantiation of *One*, you can specify the `service` which you are providing. This acts as an immediate identifier in case you create multiple service types that you don\'t want talking to each other. Only after you start advertising other nodes in the cluster will realise you have joined and listen to you. Until that moment, you are a silent node, which is only capable of listening.\\n\\nUsage:\\n\\n```js\\nvar one = new One({\\n service: \'myStorageService\'\\n});\\n\\n// ...\\n\\n// Advertising service\\none.advertise(function (err, adInfo) {\\n !err && console.log(\'Advertising\', adInfo);\\n});\\n\\n// ...\\n\\n// Stopping advertisement\\none.stopAdvertise(function (err, adInfo) {\\n !err && console.log(\'Stopped advertising\', adInfo);\\n});\\n\\n```\\n\\n### Clustering\\n\\nUnlike `service`, clustering allows you to partition multiple nodes of the same service in the same network. Basically, only nodes belonging to the same `cluster` will talk to each other.\\n\\nUsage:\\n\\n```js\\nvar one = new One({\\n service: \'myStorageService\',\\n cluster: \'cluster1\'\\n});\\n\\n// Joining cluster\\none.join(function (err, cluster) {\\n !err && console.log(\'Joined\', cluster);\\n});\\n\\n// ...\\n\\n// Leaving cluster\\none.leave(function (err, cluster) {\\n !err && console.log(\'Left\', cluster);\\n});\\n```\\n\\n### Events\\n\\nHere\'s a complete list of the available events that you can listen to:\\n\\n```js\\none.on(\'join\', function (cluster) {\\n console.log(\'joined cluster:\', cluster);\\n});\\n\\none.on(\'leave\', function (cluster) {\\n console.log(\'left cluster:\', cluster);\\n});\\n\\none.on(\'advertise_start\', function (adInfo) {\\n console.log(\'started advertising:\', adInfo);\\n});\\n\\none.on(\'advertise_stop\', function (adInfo) {\\n console.log(\'stopped advertising:\', adInfo);\\n});\\n\\none.on(\'subscribe\', function (channel) {\\n console.log(\'subscribed:\', channel);\\n});\\n\\none.on(\'unsubscribe\', function (channel) {\\n console.log(\'unsubscribed:\', channel);\\n});\\n\\none.on(\'node_up\', function (node) {\\n console.log(\'node up:\', node);\\n});\\n\\none.on(\'node_down\', function (node) {\\n console.log(\'node down:\', node);\\n});\\n\\none.on(\'message\', function (chan, payload) {\\n console.log(chan + \'>\', payload);\\n});\\n\\n// Note that the error event is only emitted if you do not specify a callback to\\n// a method that throws an error.\\none.on(\'error\', function (err) {\\n console.error(\'ERROR: \', err);\\n});\\n```\\n\\n\\n## License\\n\\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\\n","owner":{"name":"IndigoUnited","avatar":"https://github.com/IndigoUnited.png","link":"https://github.com/IndigoUnited"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["ØMQ","0mq","zeromq","cluster","mq","message","queue","nodes","distributed"],"created":1358469228591,"modified":1495467490310,"lastPublisher":{"name":"marcooliveira","email":"marco@indigounited.com","avatar":"https://gravatar.com/avatar/6f2780253e0c78e0038ae1b5ca4edd10","link":"https://www.npmjs.com/~marcooliveira"},"owners":[{"email":"marcooliveira@me.com","name":"marcooliveira","avatar":"https://gravatar.com/avatar/2f081a69c9343513f917262aa935ae00","link":"https://www.npmjs.com/~marcooliveira"},{"email":"hello@indigounited.com","name":"indigounited","avatar":"https://gravatar.com/avatar/9f8d5d526cc1eecdb3493dabc0701f7e","link":"https://www.npmjs.com/~indigounited"}],"lastCrawl":"2017-12-04T22:42:55.034Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-","body":{"objectID":"1-","name":"1-","concatenatedName":"1","downloadsLast30Days":15,"downloadsRatio":1.0862706734994559e-7,"humanDownloadsLast30Days":"15","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T04:34:35.037Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480826075037,"modified":1480826075037,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.035Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1----","body":{"objectID":"1----","name":"1----","concatenatedName":"1","downloadsLast30Days":48,"downloadsRatio":3.476066155198259e-7,"humanDownloadsLast30Days":"48","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-29T23:54:04.253Z"},"tags":{"latest":"1.0.0"},"description":"Separator","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"vp2177","email":"vp2177@gmail.com","avatar":"https://gravatar.com/avatar/0d5ab0b99a4219b8d9e3f0f3416eb305","link":"https://www.npmjs.com/~vp2177"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":[],"created":1509321244253,"modified":1509321244253,"lastPublisher":{"name":"vp2177","email":"vp2177@gmail.com","avatar":"https://gravatar.com/avatar/0d5ab0b99a4219b8d9e3f0f3416eb305","link":"https://www.npmjs.com/~vp2177"},"owners":[{"name":"vp2177","email":"vp2177@gmail.com","avatar":"https://gravatar.com/avatar/0d5ab0b99a4219b8d9e3f0f3416eb305","link":"https://www.npmjs.com/~vp2177"}],"lastCrawl":"2017-12-04T22:42:55.035Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-1-help-desk-system","body":{"objectID":"1-1-help-desk-system","name":"1-1-help-desk-system","concatenatedName":"11helpdesksystem","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"0.0.7","versions":{"0.0.7":"2014-08-11T15:16:37.777Z"},"tags":{"latest":"0.0.7"},"description":"1:1 ticket and laptop system","dependencies":{"ejs":"~1.0.0","grunt":"~0.4.5","grunt-contrib-clean":"~0.6.0","grunt-contrib-coffee":"~0.11.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-copy":"~0.5.0","grunt-contrib-cssmin":"~0.10.0","grunt-contrib-jst":"~0.6.0","grunt-contrib-less":"0.11.4","grunt-contrib-uglify":"~0.5.1","grunt-contrib-watch":"~0.6.1","grunt-sails-linker":"~0.9.5","grunt-sync":"~0.0.4","include-all":"~0.1.3","openid":"0.5.9","rc":"~0.5.0","sails":"~0.10.1","sails-mysql":"~0.10.0"},"devDependencies":{"mocha":"~1.21.4"},"githubRepo":{"user":"chuck-aka-ben","project":"1-1-Help-Desk-System","path":"","head":"237b4bb73a58d68d33f8aba857ab14e0af703963"},"gitHead":"237b4bb73a58d68d33f8aba857ab14e0af703963","readme":"# 1:1 Help Desk System\\n A sails program for managing laptops and tickets for the Penn Manor 1:1 Program.\\n\\n[![Build Status](https://travis-ci.org/chuck-aka-ben/1-1-Help-Desk-System.svg?branch=master)](https://travis-ci.org/chuck-aka-ben/1-1-Help-Desk-System)\\n[![Dependency Status](https://david-dm.org/chuck-aka-ben/1-1-Help-Desk-System.svg)](https://david-dm.org/chuck-aka-ben/1-1-Help-Desk-System)\\n","owner":{"name":"chuck-aka-ben","avatar":"https://github.com/chuck-aka-ben.png","link":"https://github.com/chuck-aka-ben"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":[],"created":1407770197777,"modified":1407770197777,"lastPublisher":{"name":"chuck-aka-ben","email":"benjamin@thomasnetwork.net","avatar":"https://gravatar.com/avatar/793848542d160545321c7f5d8600ac09","link":"https://www.npmjs.com/~chuck-aka-ben"},"owners":[{"name":"chuck-aka-ben","email":"benjamin@thomasnetwork.net","avatar":"https://gravatar.com/avatar/793848542d160545321c7f5d8600ac09","link":"https://www.npmjs.com/~chuck-aka-ben"}],"lastCrawl":"2017-12-04T22:42:55.035Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":"https://raw.githubusercontent.com/chuck-aka-ben/1-1-Help-Desk-System/237b4bb73a58d68d33f8aba857ab14e0af703963/CHANGELOG.md"}},{"action":"updateObject","objectID":"1-click-bom","body":{"objectID":"1-click-bom","name":"1-click-bom","concatenatedName":"1clickbom","downloadsLast30Days":141,"downloadsRatio":0.0000010210944330894885,"humanDownloadsLast30Days":"141","popular":false,"version":"1.2.0","versions":{"0.1.0":"2016-02-06T15:22:32.398Z","0.1.1":"2016-02-06T19:33:10.616Z","0.2.0":"2016-02-06T22:35:58.219Z","0.4.1":"2016-02-22T23:08:11.944Z","0.4.2":"2016-02-23T15:54:23.868Z","0.4.3":"2016-02-23T16:07:21.980Z","0.4.4":"2016-04-09T15:34:20.900Z","1.0.0":"2016-05-13T16:33:22.227Z","1.0.2":"2016-09-07T14:04:50.898Z","1.0.3":"2016-09-07T14:06:05.170Z","1.0.4":"2016-09-07T14:18:50.812Z","1.0.5":"2016-09-07T14:19:24.176Z","1.0.6":"2016-09-12T22:12:23.155Z","1.0.7":"2016-09-12T22:50:01.799Z","1.0.8":"2016-12-28T06:10:26.609Z","1.1.0":"2016-12-28T06:21:50.623Z","1.1.1":"2016-12-28T06:28:22.264Z","1.1.2":"2017-03-14T20:56:50.689Z","1.1.3":"2017-07-13T23:57:51.934Z","1.2.0":"2017-07-27T15:06:50.900Z"},"tags":{"latest":"1.2.0"},"description":"Parse and write 1-click-BOM data.","dependencies":{},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-es2015":"^6.24.0","chai":"^3.4.1","eslint":"^3.12.2","istanbul":"^0.4.2","mocha":"^2.3.4"},"githubRepo":{"user":"monostable","project":"nodejs-1-click-bom","path":"","head":"4a837b06411b2bb0653d68378418db233415a2e8"},"gitHead":"4a837b06411b2bb0653d68378418db233415a2e8","readme":"# The 1-click-BOM NPM Library\\n\\nA library for dealing with bill of material data for use with the \\n[1clickBOM extension](https://github.com/monostable/1clickBOM).\\n\\n## Getting started\\n\\n- [Set up NodeJS](https://nodejs.org/en/download/)\\n- Then:\\n\\n```\\ngit clone https://github.com/monostable/npm-1-click-bom\\ncd npm-1click-bom\\nnpm install\\nnpm run build\\nnpm run test\\n```\\n\\n## License\\n\\nThis project is MIT licensed\\n\\n","owner":{"name":"monostable","avatar":"https://github.com/monostable.png","link":"https://github.com/monostable"},"deprecated":false,"badPackage":false,"homepage":"http://1clickBOM.com","license":"MIT","keywords":[],"created":1454772152398,"modified":1501168010900,"lastPublisher":{"name":"kasbah","email":"kaspar.emanuel@gmail.com","avatar":"https://gravatar.com/avatar/fea75751a49e8324dfbd87f806bebc35","link":"https://www.npmjs.com/~kasbah"},"owners":[{"name":"kasbah","email":"kaspar.emanuel@gmail.com","avatar":"https://gravatar.com/avatar/fea75751a49e8324dfbd87f806bebc35","link":"https://www.npmjs.com/~kasbah"}],"lastCrawl":"2017-12-04T22:42:55.036Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-first","body":{"objectID":"1-first","name":"1-first","concatenatedName":"1first","downloadsLast30Days":15,"downloadsRatio":1.0862706734994559e-7,"humanDownloadsLast30Days":"15","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T04:47:55.166Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480826875166,"modified":1480826875166,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.036Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-liners","body":{"objectID":"1-liners","name":"1-liners","concatenatedName":"1liners","downloadsLast30Days":5123,"downloadsRatio":0.000037099764402251415,"humanDownloadsLast30Days":"5.1k","popular":false,"version":"0.4.0","versions":{"0.0.1":"2015-04-19T15:11:38.595Z","0.0.2":"2015-04-22T16:20:36.717Z","0.0.3":"2015-04-22T17:04:22.690Z","0.0.4":"2015-04-23T06:53:00.596Z","0.0.5":"2015-04-23T17:39:16.395Z","0.0.6":"2015-04-23T18:07:45.677Z","0.0.7":"2015-04-24T14:55:03.530Z","0.0.8":"2015-04-26T08:11:04.430Z","0.1.0":"2015-04-29T16:24:26.264Z","0.1.1":"2015-05-02T07:59:05.329Z","0.1.2":"2015-05-03T09:32:20.409Z","0.1.3":"2015-05-03T09:37:19.923Z","0.1.4":"2015-05-04T17:38:46.763Z","0.2.0":"2015-05-11T05:55:22.739Z","0.2.1":"2015-05-11T06:00:24.731Z","0.2.2":"2015-05-12T10:22:20.502Z","0.2.3":"2015-05-16T07:06:52.543Z","0.2.5":"2015-05-19T15:04:03.877Z","0.2.6":"2015-05-21T14:26:13.751Z","0.2.7":"2015-05-25T09:19:58.178Z","0.2.9":"2015-06-05T21:21:59.192Z","0.2.10":"2015-06-06T20:29:02.495Z","0.3.0":"2015-06-11T08:37:45.129Z","0.3.1":"2015-06-17T10:42:59.381Z","0.3.2":"2015-06-18T15:01:40.909Z","0.3.3":"2015-06-24T12:51:48.665Z","0.3.4":"2015-06-25T09:38:34.709Z","0.3.5":"2015-07-02T13:01:26.069Z","0.3.6":"2015-08-25T08:11:20.850Z","0.4.0":"2016-02-03T17:14:30.609Z"},"tags":{"latest":"0.4.0"},"description":"Useful oneliners and shorthand functions","dependencies":{},"devDependencies":{"babel":"^5.6.3","babel-core":"^5.5.6","babel-plugin-array-includes":"^1.1.0","babel-plugin-object-assign":"^1.2.0","coveralls":"^2.11.2","doctoc":"^0.14.1","dox":"^0.8.0","get-modules":"^1.0.2","husky":"^0.8.1","istanbul":"^0.3.14","mocha":"^2.2.5","mocha-lcov-reporter":"0.0.2","module-indexer":"^1.0.0","nodangel":"^1.3.8"},"githubRepo":{"user":"1-liners","project":"1-liners","path":"","head":"a79ddf0ed53b10ef55b215dbd23753a325a9f30c"},"gitHead":"a79ddf0ed53b10ef55b215dbd23753a325a9f30c","readme":"<sup>MADE IN SWITZERLAND</sup>\\n\\n[![Coverage Status](https://coveralls.io/repos/1-liners/1-liners/badge.svg?branch=master)](https://coveralls.io/r/1-liners/1-liners?branch=master)\\n[![Build Status](https://travis-ci.org/1-liners/1-liners.svg?branch=master)](https://travis-ci.org/1-liners/1-liners)\\n[![Dependency Status](https://david-dm.org/1-liners/1-liners.svg)](https://david-dm.org/1-liners/1-liners)\\n[![npm version](https://badge.fury.io/js/1-liners.svg)](http://badge.fury.io/js/1-liners)\\n[![Stability: unstable](https://img.shields.io/badge/stability-unstable-yellowgreen.svg)](https://github.com/1-liners/1-liners/milestones/1.0)\\n[![Join the chat at https://gitter.im/1-liners/1-liners](https://img.shields.io/badge/gitter-join%20chat-1dce73.svg)](https://gitter.im/1-liners/1-liners)\\n\\n<h1 align=\\"center\\"><a\\n\\ttitle=\\"Functional tools that couldn’t be simpler\\"\\n\\thref=\\"./documentation/README.md\\"\\n\\t>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<img\\n\\t\\talt=\\"1-liners\\"\\n\\t\\tsrc=\\"https://cdn.rawgit.com/1-liners/Logos/master/logo.png\\"\\n\\t\\twidth=\\"382px\\"\\n\\t\\theight=\\"125px\\"\\n\\t/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n</a></h1>\\n\\n**Functional tools that couldn’t be simpler.**\\n\\nWe’re proud to present *1-liners* – a dead simple functional utility belt. **[119 one-liner functions][docs]** (and counting). Each hand-crafted with love and attention.\\n\\n[docs]: ./documentation\\n\\n<p align=\\"center\\">\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<img\\n\\t\\tsrc=\\"https://cdn.rawgit.com/1-liners/Logos/master/swissknife.gif\\"\\n\\t\\twidth=\\"400px\\"\\n\\t\\theight=\\"300px\\"\\n\\t/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n</p>\\n\\n\\n## Our decalogue\\n\\nYou get a product of top-quality functional programming craftmanship. Each function follows the *KISS* principle, which we’ve broken down into ten strict rules.\\n\\nWe always follow them. You have our word.\\n\\n\\n<p align=\\"center\\"><a\\n\\ttitle=\\"from Beautiful Flat Icons by Nick Roach\\"\\n\\thref=\\"https://www.elegantthemes.com/blog/freebie-of-the-week/beautiful-flat-icons-for-free\\"\\n\\t>\\n\\t<br/>\\n\\t<br/>\\n\\t<img\\n\\t\\talt=\\"1-liners\\"\\n\\t\\tsrc=\\"https://cdn.rawgit.com/1-liners/Logos/04c6949/megaphone.svg\\"\\n\\t\\twidth=\\"120px\\"\\n\\t\\theight=\\"120px\\"\\n\\t/>\\n\\t<br/>\\n\\t<br/>\\n\\t<br/>\\n</a></p>\\n\\n\\n1. Each function shall **[fit in one readable line of code][]** \\n – take a glimpse at the source and you know exactly what’s going on. \\n &nbsp;\\n\\n2. Each function shall **[have no side-effects][]** \\n – you can use it with confidence. \\n &nbsp;\\n\\n3. Each function shall **[have a fixed number of arguments][]** \\n – it’s dead easy to bind, curry and uncurry, apply partially, implode and explode. \\n &nbsp;\\n\\n4. Each function shall **[deal with data in an immutable way][]** \\n – no more debugging nightmares. \\n &nbsp;\\n\\n5. Each function shall **[take data as the last argument][]** \\n – this makes currying and composing new functions a breeze. \\n &nbsp;\\n\\n6. Each function shall **[be in a separate micro-module][]** \\n – you only load/bundle the single 1-liner you need. \\n &nbsp;\\n\\n7. Each function shall **[be thoroughly tested][]** \\n – 100% code coverage guaranteed. We even test if every function fits in one line! \\n &nbsp;\\n\\n8. Each function shall **[have great documentation][]** \\n – the docs explain usage, present the source, and link to the specs. \\n &nbsp;\\n\\n9. We shall provide functional versions of **[native object methods][]** \\n – like `reduce(callback, array)` for `array.reduce(callback)`. \\n &nbsp;\\n\\n10. We shall provide functional versions of **[language constructs][]** \\n – like `plus(a, b)` for `a + b`. \\n &nbsp;\\n\\n[fit in one readable line of code]: https://github.com/1-liners/1-liners/blob/28b02d0939d6bb4034693e48440f450141453ae9/module/flip.js#L18\\n[have no side-effects]: ./documentation#extend\\n[have a fixed number of arguments]: ./documentation#shave\\n[deal with data in an immutable way]: ./documentation#put\\n[take data as the last argument]: ./documentation#split\\n[be in a separate micro-module]: https://github.com/1-liners/1-liners/blob/28b02d0939d6bb4034693e48440f450141453ae9/module/compose.js\\n[be thoroughly tested]: https://coveralls.io/r/1-liners/1-liners?branch=master\\n[have great documentation]: ./documentation\\n[native object methods]: ./documentation#reduce\\n[language constructs]: ./documentation#plus\\n\\n\\n## Usage\\n\\n### Install\\n\\n```\\n$ npm install --save 1-liners\\n```\\n\\n### Usage in ES5\\n\\n```js\\n// The lightweight, recommended way:\\nvar map = require(\'1-liners/map\');\\n\\n// Sometimes practical:\\nvar map = require(\'1-liners\').map;\\n```\\n\\n### Usage in ES 2015 (formerly ES6)\\n\\n```js\\n// The lightweight, recommended way:\\nimport map from \'1-liners/module/map\';\\n\\n// Sometimes practical:\\nimport { map, filter } from \'1-liners/module/index\';\\n```\\n\\n## API\\n\\nCheckout the [documentation](./documentation)\\n\\n## Maintainers\\n\\n| [![stoeffel](https://avatars.githubusercontent.com/u/1217681?v=3&s=80)](https://github.com/stoeffel) | [![tomekwi](https://avatars.githubusercontent.com/u/4624660?v=3&s=80)](https://github.com/tomekwi) | [![hemanth](https://avatars.githubusercontent.com/u/18315?v=3&s=80)](https://github.com/hemanth) |\\n| :--:|:--:|:--: |\\n| [stoeffel](https://github.com/stoeffel) | [tomekwi](https://github.com/tomekwi) | [hemanth](https://github.com/hemanth) |\\n\\n| [![davidchase](https://avatars.githubusercontent.com/u/490291?v=3&s=80)](https://github.com/davidchase) | [![tristaaan](https://avatars.githubusercontent.com/u/5470619?v=3&s=80)](https://github.com/tristaaan) |\\n| :--:|:--: |\\n| [davidchase](https://github.com/davidchase) | [tristaaan](https://github.com/tristaaan) |\\n\\ncreated with [gh-contributors-table](https://github.com/stoeffel/gh-contributors-table)\\n\\n\\n## License\\n\\nMIT © [stoeffel](http://schtoeffel.ch) [tomekwi](http://github.com/tomekwi) [hemanth](http://www.h3manth.com/) [davidchase](http://github.com/davidchase) [tristaaan](http://github.com/tristaaan)\\n","owner":{"name":"1-liners","avatar":"https://github.com/1-liners.png","link":"https://github.com/1-liners"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["oneliners","shorthands"],"created":1429456298595,"modified":1454519670609,"lastPublisher":{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"},"owners":[{"name":"schtoeffel","email":"schtoeffel@gmail.com","avatar":"https://gravatar.com/avatar/2085966c6958992945d9add04a166c43","link":"https://www.npmjs.com/~schtoeffel"},{"name":"hemanth","email":"hemanth.hm@gmail.com","avatar":"https://gravatar.com/avatar/d32a6bf2b43bf62a7212f0c793d76319","link":"https://www.npmjs.com/~hemanth"},{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"}],"lastCrawl":"2017-12-04T22:42:55.037Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-of","body":{"objectID":"1-of","name":"1-of","concatenatedName":"1of","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"1.0.1","versions":{"1.0.0":"2017-09-07T06:57:27.187Z","1.0.1":"2017-09-07T07:26:37.778Z"},"tags":{"latest":"1.0.1"},"description":"Build easily and run distributed task.","dependencies":{"kue":"^0.11.6","my-env":"^1.2.0","stream-array":"^1.1.2"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"# 1-of\\n\\nBuild easily and run distributed task. \\n\\nBased on Redis and Kue.\\n\\n## Usage\\n\\n**Create a computing unit**\\n\\n```\\nconst Computing = require(\'../\').computing;\\n\\nmodule.exports = new Computing(\'double\', (input, progress, done) => {\\n progress(0, 0, input * 2);\\n done();\\n});\\n```\\nNB: you can return more than 1 result by using progress.\\n\\n**Create a runner**\\n\\n```\\nconst Runner = require(\'../\').runner;\\nconst streamify = require(\'stream-array\');\\nconst {Transform} = require(\'stream\');\\n\\n\\n\\nstreamify([2, 4, 6]) // stream an array of integer\\n .pipe(new Transform({\\n objectMode: true,\\n transform: function(chunk, encoding, done) {\\n console.log(\'Pushing a number\', chunk);\\n this.push(chunk);\\n done();\\n }\\n }))\\n .pipe(new Runner().asStream(\'double\'))\\n .pipe(new Transform({\\n objectMode: true,\\n transform: function(chunk, encoding, done) {\\n console.log(\'Result is\', chunk)\\n done();\\n }\\n }))\\n .on(\'end\', () => {\\n console.log(\'End!!!\')\\n })\\n```\\n\\n**Start redis**\\n\\n`docker run -p 6379:6379 redis`\\n\\n**Run program**\\n\\n1. `node example/computing.js`\\n2. `node example/run.js`\\n\\n\\n","owner":{"name":"bitliner","email":"giovanni.gaglione@gmail.com","avatar":"https://gravatar.com/avatar/5277dd0a22cdfaf73fc4ccbdb7a9a08b","link":"https://www.npmjs.com/~bitliner"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1504767447187,"modified":1504769197778,"lastPublisher":{"name":"bitliner","email":"giovanni.gaglione@gmail.com","avatar":"https://gravatar.com/avatar/5277dd0a22cdfaf73fc4ccbdb7a9a08b","link":"https://www.npmjs.com/~bitliner"},"owners":[{"name":"bitliner","email":"giovanni.gaglione@gmail.com","avatar":"https://gravatar.com/avatar/5277dd0a22cdfaf73fc4ccbdb7a9a08b","link":"https://www.npmjs.com/~bitliner"}],"lastCrawl":"2017-12-04T22:42:55.038Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-one","body":{"objectID":"1-one","name":"1-one","concatenatedName":"1one","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T04:47:46.095Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480826866095,"modified":1480826866095,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.038Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1-wire-js","body":{"objectID":"1-wire-js","name":"1-wire-js","concatenatedName":"1wirejs","downloadsLast30Days":110,"downloadsRatio":7.965984938996009e-7,"humanDownloadsLast30Days":"110","popular":false,"version":"1.4.3","versions":{"0.0.1":"2015-12-17T17:39:53.208Z","1.0.0":"2015-12-17T17:43:12.061Z","1.1.0":"2015-12-17T21:01:27.537Z","1.1.1":"2015-12-17T22:24:39.554Z","1.1.2":"2015-12-17T23:21:52.694Z","1.1.3":"2015-12-18T15:39:44.685Z","1.1.4":"2015-12-22T10:14:39.949Z","1.2.0":"2016-01-14T22:00:01.567Z","1.2.1":"2016-01-18T18:01:08.905Z","1.3.0":"2016-01-18T21:19:30.397Z","1.3.1":"2016-01-26T06:26:02.389Z","1.4.0":"2016-01-26T17:02:22.898Z","1.4.1":"2016-01-31T09:08:50.606Z","1.4.2":"2016-01-31T09:17:45.826Z","1.4.3":"2016-03-30T17:05:39.208Z"},"tags":{"latest":"1.4.3"},"description":"1-Wire USB Interface","dependencies":{"q":"^1.4.1","crc":"^3.3.0"},"devDependencies":{"browserify":"^12.0.1","gulp":"^3.9.0","gulp-rename":"^1.2.2","gulp-streamify":"^1.0.2","gulp-uglify":"^1.5.1","gulp-watch":"^4.3.5","vinyl-source-stream":"^1.1.0"},"githubRepo":{"user":"KeiserCorp","project":"1-Wire-JS","path":"","head":"19f4317c72011cdc7279d58b48c21a6df1f88fa8"},"gitHead":"19f4317c72011cdc7279d58b48c21a6df1f88fa8","readme":"# 1-Wire® for Javascript\\n## Project\\n1-Wire® Communication implemented in Javascript for Chrome using `chrome.udb`.\\n\\n## Getting Started\\nYou have following options to get started:\\n- Download the [latest release](https://github.com/KeiserCorp/1-Wire-JS/releases/latest)\\n- Clone the repo: `git clone git://github.com/KeiserCorp/1-Wire-JS.git`\\n- Install with [NPM](https://www.npmjs.com/): `npm install 1-wire-js`\\n\\n## Loading\\nEach release includes a minified distribution version of the library which can be loaded with a module loader, or as a stand alone library.\\n\\nModule load the library with [CommonJS](http://www.commonjs.org/):\\n\\n```\\nvar ow = require(\'1-wire-js\');\\n```\\n\\nIncluding the library as a stand-alone library:\\n\\n```\\n<script src=\\"ow.min.js\\"></script>\\n```\\n\\n```\\nvar ow = window.ow;\\n```\\n\\n## API\\nAll APIs utilize the `Q` promise library, so most functions return a promise which has a `.then()` method. `.then()` methods accept two callbacks. The first callback is called on success, and the second is called on failure.\\n\\n```\\now.permission.request().then(success, failure);\\n```\\n\\n- [Permission](#permission)\\n- [Device](#device)\\n- [Transfer](#transfer)\\n- [Wire](#wire)\\n- [Key](#key)\\n\\n### Permission\\n#### `permission.check()`\\nChecks Chrome for permission to access USB device.\\n\\n```\\now.permission.check().then(gotPermission);\\n```\\n\\n#### `permission.request()`\\nRequests Chrome for permission to access USB device. Method must be activated by a user event (such as a button press).\\n\\n```\\now.permission.request().then(gotPermission, failedPermission);\\n```\\n\\n### Device\\n#### `device.open()`\\nAttempts to open the USB device.\\n\\n```\\now.device.open().then(deviceOpened);\\n```\\n\\n#### `device.close()`\\nAttempts to close the USB device.\\n\\n```\\now.device.close().then(deviceClosed);\\n```\\n\\n#### `device.onDeviceAdded`\\nEvent listener which triggers upon the addition of a USB device.\\n\\n`addListener(callback)` adds a callback to the event listener.\\n\\n`removeListener(callback)` removes a callback from the event listener.\\n\\n```\\now.device.onDeviceAdded.addListener(deviceConnected);\\n```\\n\\n#### `device.onDeviceRemoved`\\nEvent listener which triggers upon the removal of a USB device.\\n\\n`addListener(callback)` adds a callback to the event listener.\\n\\n`removeListener(callback)` removes a callback from the event listener.\\n\\n```\\now.device.onDeviceRemoved.addListener(deviceRemoved);\\n```\\n\\n#### `device.reset()`\\nPerforms a device reset which resets device speed and cancels all actions.\\n\\n```\\now.device.reset().then(deviceReady);\\n```\\n\\n#### `device.getStatus()`\\nPasses device state registers object into callback.\\n\\n```\\now.device.getStatus()\\n .then(function (status) {\\n if (status.ResultRegisters.DetectKey){\\n console.log(\'Key Detected\');\\n }\\n });\\n```\\n\\n### Transfer\\n#### `transferInfo`\\nA generic transfer object passed to some transfer methods.\\n\\n`direction` is the transfer direction (`\\"in\\"` or `\\"out\\"`).\\n\\n`endpoint` is the target endpoint address.\\n\\n`length` _(optional)_ is the amount of data to receive (required only by input transfers).\\n\\n`data` _(optional)_ is the data to transmit (required only by output transfers).\\n\\n```\\nvar transferInfo = {\\n \\"direction\\": \\"in\\",\\n \\"endpoint\\": 1,\\n \\"length\\": 0x20\\n};\\n```\\n\\n#### `device.interruptTransfer()`\\nPerforms a device interrupt transfer.\\n\\n```\\now.device.interruptTransfer().then(interruptTransferComplete);\\n```\\n\\n#### `device.controlTransfer(transferInfo)`\\nPerforms a device control transfer.\\n\\n```\\now.device.controlTransfer(transferInfo).then(controlTransferComplete);\\n```\\n\\n#### `device.bulkTransfer(transferInfo)`\\nPerforms a device bulk transfer.\\n\\n```\\now.device.bulkTransfer(transferInfo).then(bulkTransferComplete);\\n```\\n\\n### Wire\\n#### `wire.detectShort()`\\nDetects short in the line and passes the result into callback.\\n\\n```\\now.wire.detectShort()\\n .then(function (shorted) {\\n if (shorted) {\\n throw new Error(\\"Short Detected\\");\\n }\\n });\\n```\\n\\n#### `wire.setSpeed(overdrive)`\\nSets the speed to either normal or overdrive based on passed in boolean value `overdrive`;\\n\\n```\\now.wire.setSpeed(true).then(speedSet);\\n```\\n\\n#### `wire.rest()`\\nSends a reset and then checks for a wire short.\\n\\n```\\now.wire.rest().then(resetComplete);\\n```\\n\\n#### `wire.write(data, clearWire)`\\nWrites data onto the wire.\\n\\n`data` must be type `Uint8Array` or data loss may occur.\\n\\nPass a `true` value as the `clearWire` parameter to have the wire cleared after the write operation.\\n\\n```\\now.wire.write(data).then(writeComplete);\\n```\\n\\n#### `wire.writeBit(bit)`\\nWrites a single bit onto the wire.\\n\\n```\\now.wire.writeBit(bit).then(writeBitComplete);\\n```\\n\\n#### `wire.read(byteCount)`\\nRead a length of data defined by `byteCount` from the wire and passes it to callback.\\n\\n```\\now.wire.read(0x20)\\n .then(function(data){\\n storeData(data);\\n });\\n```\\n\\n#### `wire.readBit()`\\nReads a single bit of data from the wire and passes it to callback.\\n\\n```\\now.wire.readBit()\\n .then(function(bitSet){\\n test = bitSet;\\n });\\n```\\n\\n#### `wire.clearByte()`\\nClears a single byte of data from the wire.\\n\\n```\\now.wire.clearByte().then(wireCleared);\\n```\\n\\n### Key\\n#### `key.romCommand(match, keyRom, overdrive)`\\nPerforms a key ROM match operation on the network.\\n\\n`match` determines if commands should target a specific key ROM (`true`) or if commands should target all devices (`false`).\\n\\n`keyRom` should contain the ROM of the device being targeted if `match` is `true`.\\n\\n`overdrive` should be set to `true` if commands should be performed in overdrive speed.\\n\\n```\\now.key.romCommand(true, keyRom, true).then(keyRomMatched);\\n```\\n\\n#### `key.romMatch(keyRom)`\\nPerforms a key ROM match at normal speed.\\n\\n_Alias for `ow.key.romCommand(true, keyRom, false)`_\\n\\n```\\now.key.romMatch(keyRom).then(keyRomMatched);\\n```\\n\\n#### `key.romMatchOverdrive(keyRom)`\\nPerforms a key ROM match at overdrive speed.\\n\\n_Alias for `ow.key.romCommand(true, keyRom, true)`_\\n\\n```\\now.key.romMatch(keyRom).then(keyRomMatched);\\n```\\n\\n#### `key.romSkip()`\\nPerforms a key ROM skip at normal speed.\\n\\n_Alias for `ow.key.romCommand(false, null, false)`_\\n\\n```\\now.key.romSkip().then(keyRomSkipped);\\n```\\n\\n#### `key.romSkipOverdrive()`\\nPerforms a key ROM skip at overdrive speed.\\n\\n_Alias for `ow.key.romCommand(false, null, true)`_\\n\\n```\\now.key.romSkipOverdrive().then(keyRomSkipped);\\n```\\n\\n#### `key.searchFirst()`\\nSearches network for keys and passes the first key ROM to the callback.\\n\\n```\\now.key.searchFirst()\\n .then(function(rom){\\n keyROM = rom;\\n });\\n```\\n\\n#### `key.searchNext()`\\nSearches network for keys and passes the next key ROM to the callback.\\n\\n_This method will loop through key ROMs_\\n\\n```\\now.key.searchNext()\\n .then(function(rom){\\n keyRom = rom;\\n });\\n```\\n\\n#### `key.readAll(keyRom, overdrive)`\\nReads all of the data from the key targeted by `keyRom` and passes the data to the callback.\\n\\n`keyRom` is the target key ROM stored as `Uint8Array`.\\n\\n`overdrive` is a boolean value determining operation speed. _(Default: false)_\\n\\n```\\now.key.readAll(keyRom, true)\\n .then(function(data){\\n keyData = data;\\n });\\n```\\n\\n#### `key.write(keyRom, offset, data, overdrive)`\\nWrites `data` to the key targeted by `keyRom`.\\n\\n`keyRom` is the target key ROM stored as `Uint8Array`.\\n\\n`offset` is the memory offset where the data is to be written.\\n\\n`data` is the data to be written to the key memory stored as `Uint8Array`.\\n\\n`overdrive` is a boolean value determining operation speed. _(Default: false)_\\n\\n```\\now.key.write(keyRom, 0x00, data, true).then(writeComplete);\\n```\\n\\n#### `key.writeAll(keyRom, data, overdrive)`\\nWrites `data` to the key targeted by `keyRom` starting at the memory beginning.\\n\\n`keyRom` is the target key ROM stored as `Uint8Array`.\\n\\n`data` is the data to be written to the key memory stored as `Uint8Array`.\\n\\n`overdrive` is a boolean value determining operation speed. _(Default: false)_\\n\\n```\\now.key.writeAll(keyRom, data, true).then(writeComplete);\\n```\\n\\n#### `key.writeDiff(keyRom, newData, oldData, overdrive)`\\nWrites `newData` to the key targeted by `keyRom` starting at the memory beginning using a diffing algorithm to speed up writes.\\n\\n`keyRom` is the target key ROM stored as `Uint8Array`.\\n\\n`newData` is the data to be written to the key memory stored as `Uint8Array`.\\n\\n`oldData` is the current key memory stored as `Uint8Array`.\\n\\n`overdrive` is a boolean value determining operation speed. _(Default: false)_\\n\\n```\\now.key.writeAll(keyRom, newData, lastDump, true).then(writeComplete);\\n```\\n\\n## Contributors\\n- [bayssmekanique](https://github.com/bayssmekanique)\\n\\n## Copyright and License\\nLicensed under the [MIT license](LICENSE.md).\\n","owner":{"name":"KeiserCorp","avatar":"https://github.com/KeiserCorp.png","link":"https://github.com/KeiserCorp"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1450373993208,"modified":1459357539208,"lastPublisher":{"name":"bayssmekanique","email":"bayssmekanique@live.com","avatar":"https://gravatar.com/avatar/b77eacadc2cd5a8037d9e0632829547e","link":"https://www.npmjs.com/~bayssmekanique"},"owners":[{"name":"bayssmekanique","email":"bayssmekanique@live.com","avatar":"https://gravatar.com/avatar/b77eacadc2cd5a8037d9e0632829547e","link":"https://www.npmjs.com/~bayssmekanique"}],"lastCrawl":"2017-12-04T22:42:55.038Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.0","body":{"objectID":"1.0","name":"1.0","concatenatedName":"10","downloadsLast30Days":30,"downloadsRatio":2.1725413469989118e-7,"humanDownloadsLast30Days":"30","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T04:54:13.243Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480827253243,"modified":1480827253243,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.039Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.0.1","body":{"objectID":"1.0.1","name":"1.0.1","concatenatedName":"101","downloadsLast30Days":180,"downloadsRatio":0.0000013035248081993472,"humanDownloadsLast30Days":"180","popular":false,"version":"1.0.0","versions":{"1.0.0":"2014-11-19T05:57:51.355Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1416376671355,"modified":1419916808521,"lastPublisher":{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"},"owners":[{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"}],"lastCrawl":"2017-12-04T22:42:55.039Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.0.2","body":{"objectID":"1.0.2","name":"1.0.2","concatenatedName":"102","downloadsLast30Days":368,"downloadsRatio":0.0000026649840523186653,"humanDownloadsLast30Days":"368","popular":false,"version":"1.0.0","versions":{"1.0.0":"2014-11-19T06:02:23.344Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1416376943344,"modified":1419916940135,"lastPublisher":{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"},"owners":[{"name":"timoxley","email":"secoif@gmail.com","avatar":"https://gravatar.com/avatar/f0deca4576206207a882928e7ff32ddb","link":"https://www.npmjs.com/~timoxley"}],"lastCrawl":"2017-12-04T22:42:55.039Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.0.3","body":{"objectID":"1.0.3","name":"1.0.3","concatenatedName":"103","downloadsLast30Days":45,"downloadsRatio":3.258812020498368e-7,"humanDownloadsLast30Days":"45","popular":false,"version":"1.0.3","versions":{"1.0.3":"2016-12-10T10:16:46.279Z"},"tags":{"latest":"1.0.3"},"description":"nodejs agent","dependencies":{"concat-stream":"^1.5.0","https-proxy-agent":"^0.3.5","json-stringify-safe":"^5.0.0","readable-stream":"^1.1.13","semver":"^4.2.0","yakaa":"^1.0.1"},"devDependencies":{"mocha":"*","tap":"0.7.1","eslint":"^2.9.0"},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lihaihua","email":"287798478@qq.com","avatar":"https://gravatar.com/avatar/c38f88a61e3240524fa71df81de57ebf","link":"https://www.npmjs.com/~lihaihua"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["node_angent"],"created":1481365006279,"modified":1481365006279,"lastPublisher":{"name":"lihaihua","email":"287798478@qq.com","avatar":"https://gravatar.com/avatar/c38f88a61e3240524fa71df81de57ebf","link":"https://www.npmjs.com/~lihaihua"},"owners":[{"name":"lihaihua","email":"287798478@qq.com","avatar":"https://gravatar.com/avatar/c38f88a61e3240524fa71df81de57ebf","link":"https://www.npmjs.com/~lihaihua"}],"lastCrawl":"2017-12-04T22:42:55.039Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.1.0","body":{"objectID":"1.1.0","name":"1.1.0","concatenatedName":"110","downloadsLast30Days":364,"downloadsRatio":0.0000026360168343586796,"humanDownloadsLast30Days":"364","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-07-28T08:47:11.369Z"},"tags":{"latest":"1.0.0"},"description":"full stack typescript","dependencies":{"awesome-typescript-loader":"3.2.1","babel-cli":"6.24.1","babel-loader":"7.1.1","babel-plugin-array-includes":"2.0.3","babel-preset-es2015":"6.24.1","copy-webpack-plugin":"^4.0.1","cross-env":"^5.0.1","css-loader":"^0.28.4","extract-text-webpack-plugin":"^3.0.0","fabric":"^2.0.0-beta.4","file-exists":"^4.0.0","file-loader":"^0.11.2","globby":"^6.1.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.2.1","gulp-uglify":"^3.0.0","html-webpack-plugin":"^2.29.0","http-server":"^0.10.0","json-loader":"^0.5.7","less":"^2.7.2","less-loader":"^4.0.5","lodash":"^4.17.4","lodash.merge":"^4.6.0","mkdirp":"^0.5.1","node-sass":"^4.5.3","raw-loader":"^0.5.1","rimraf":"^2.6.1","sass-loader":"^6.0.6","script-ext-html-webpack-plugin":"^1.8.5","source-map-support":"0.4.15","style-loader":"^0.18.2","ts-node":"3.2.1","typescript":"2.4.2","webpack":"3.3.0","webpack-dev-server":"^2.6.1","webpack-node-externals":"^1.6.0"},"devDependencies":{"@types/lodash":"^4.14.71","@types/node":"8.0.15"},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"zxqian1991","email":"zxqian1991@163.com","avatar":"https://gravatar.com/avatar/b9dfdda2e0055743451383002e727fe8","link":"https://www.npmjs.com/~zxqian1991"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1501231631369,"modified":1501231631369,"lastPublisher":{"name":"zxqian1991","email":"zxqian1991@163.com","avatar":"https://gravatar.com/avatar/b9dfdda2e0055743451383002e727fe8","link":"https://www.npmjs.com/~zxqian1991"},"owners":[{"name":"zxqian1991","email":"zxqian1991@163.com","avatar":"https://gravatar.com/avatar/b9dfdda2e0055743451383002e727fe8","link":"https://www.npmjs.com/~zxqian1991"}],"lastCrawl":"2017-12-04T22:42:55.039Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.1.1","body":{"objectID":"1.1.1","name":"1.1.1","concatenatedName":"111","downloadsLast30Days":399,"downloadsRatio":0.0000028894799915085526,"humanDownloadsLast30Days":"399","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-07-05T14:24:53.600Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{"is-array":"^1.0.1"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lolglue","email":"c691464@mvrht.com","avatar":"https://gravatar.com/avatar/a32bd463b82da9327a22ccb0d79fe02a","link":"https://www.npmjs.com/~lolglue"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1467728693600,"modified":1467728693600,"lastPublisher":{"name":"lolglue","email":"c691464@mvrht.com","avatar":"https://gravatar.com/avatar/a32bd463b82da9327a22ccb0d79fe02a","link":"https://www.npmjs.com/~lolglue"},"owners":[{"name":"lolglue","email":"c691464@mvrht.com","avatar":"https://gravatar.com/avatar/a32bd463b82da9327a22ccb0d79fe02a","link":"https://www.npmjs.com/~lolglue"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.125","body":{"objectID":"1.125","name":"1.125","concatenatedName":"1125","downloadsLast30Days":26,"downloadsRatio":1.8828691673990566e-7,"humanDownloadsLast30Days":"26","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-24T19:40:55.472Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{"body-parser":"^1.18.1","express":"^4.15.4","request":"^2.81.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"rajsuresh","email":"sureshgrajan@gmail.com","avatar":"https://gravatar.com/avatar/1358b009418b4133329bf0a2a3c34524","link":"https://www.npmjs.com/~rajsuresh"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1508874055472,"modified":1508874055472,"lastPublisher":{"name":"rajsuresh","email":"sureshgrajan@gmail.com","avatar":"https://gravatar.com/avatar/1358b009418b4133329bf0a2a3c34524","link":"https://www.npmjs.com/~rajsuresh"},"owners":[{"name":"rajsuresh","email":"sureshgrajan@gmail.com","avatar":"https://gravatar.com/avatar/1358b009418b4133329bf0a2a3c34524","link":"https://www.npmjs.com/~rajsuresh"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.18yanzhu-demo","body":{"objectID":"1.18yanzhu-demo","name":"1.18yanzhu-demo","concatenatedName":"118yanzhudemo","downloadsLast30Days":20,"downloadsRatio":1.4483608979992745e-7,"humanDownloadsLast30Days":"20","popular":false,"version":"1.0.1","versions":{"1.0.0":"2017-01-18T03:12:19.536Z","1.0.1":"2017-01-18T12:28:32.028Z"},"tags":{"latest":"1.0.1"},"description":"this is a nodejs demo","dependencies":{"1615-node-2017":"^1.0.4"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"yanzhu","email":"10376738@qq.com","avatar":"https://gravatar.com/avatar/dd4915f79994142262c35e8d73930ce8","link":"https://www.npmjs.com/~yanzhu"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1484709139536,"modified":1484742512028,"lastPublisher":{"name":"yanzhu","email":"10376738@qq.com","avatar":"https://gravatar.com/avatar/dd4915f79994142262c35e8d73930ce8","link":"https://www.npmjs.com/~yanzhu"},"owners":[{"name":"yanzhu","email":"10376738@qq.com","avatar":"https://gravatar.com/avatar/dd4915f79994142262c35e8d73930ce8","link":"https://www.npmjs.com/~yanzhu"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.3.0","body":{"objectID":"1.3.0","name":"1.3.0","concatenatedName":"130","downloadsLast30Days":160,"downloadsRatio":0.0000011586887183994196,"humanDownloadsLast30Days":"160","popular":false,"version":"1.3.0","versions":{"1.3.0":"2017-01-04T05:42:41.658Z"},"tags":{"latest":"1.3.0"},"description":"moxtraupdateversion_1.2","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"# Moxtra Plugin PhoneGap plugin\\nWork with PhoneGap 2.9.*\\n\\n## How To Use\\n\\n cordova.exec(function(success){\\n // success handler\\nconsole.log(\\"MOxtraPlugin.js: is inside\\");\\n //alert(success);cordova.define(\\"com.moxtra.corodovaplugin\\", function(require, exports, module) { var exec = require(\'cordova/exec\');\\n },\\n function(error){\\n // error handler\\n //alert(\\"Error\\" + error);\\n console.log(\\"inside error\\",error);\\n }, \\n \\"MoxtraPlugin\\", \\n action, \\n [param]\\n );\\n}\\n","owner":{"name":"jayganatra","email":"jay.g@moxtra.com","avatar":"https://gravatar.com/avatar/0281bc508e61d2bec3ca35d176377283","link":"https://www.npmjs.com/~jayganatra"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1483508561658,"modified":1483508561658,"lastPublisher":{"name":"jayganatra","email":"jay.g@moxtra.com","avatar":"https://gravatar.com/avatar/0281bc508e61d2bec3ca35d176377283","link":"https://www.npmjs.com/~jayganatra"},"owners":[{"name":"jayganatra","email":"jay.g@moxtra.com","avatar":"https://gravatar.com/avatar/0281bc508e61d2bec3ca35d176377283","link":"https://www.npmjs.com/~jayganatra"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1.js","body":{"objectID":"1.js","name":"1.js","concatenatedName":"1js","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"0.0.1","versions":{"0.0.1":"2016-10-08T07:33:56.955Z"},"tags":{"latest":"0.0.1"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"zhongzhi","email":"zhong.zhi@163.com","avatar":"https://gravatar.com/avatar/f7cdc4e6ad0f9592f550a8c9e1987d77","link":"https://www.npmjs.com/~zhongzhi"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1475912036955,"modified":1475912036955,"lastPublisher":{"name":"zhongzhi","email":"zhong.zhi@163.com","avatar":"https://gravatar.com/avatar/f7cdc4e6ad0f9592f550a8c9e1987d77","link":"https://www.npmjs.com/~zhongzhi"},"owners":[{"name":"zhongzhi","email":"zhong.zhi@163.com","avatar":"https://gravatar.com/avatar/f7cdc4e6ad0f9592f550a8c9e1987d77","link":"https://www.npmjs.com/~zhongzhi"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10","body":{"objectID":"10","name":"10","concatenatedName":"10","downloadsLast30Days":33,"downloadsRatio":2.389795481698803e-7,"humanDownloadsLast30Days":"33","popular":false,"version":"0.0.1","versions":{"0.0.1":"2014-05-12T09:09:49.198Z"},"tags":{"latest":"0.0.1"},"description":"test","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"},"deprecated":false,"badPackage":false,"homepage":null,"license":"mit","keywords":["hello world"],"created":1399885789198,"modified":1399885789198,"lastPublisher":{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"},"owners":[{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"}],"lastCrawl":"2017-12-04T22:42:55.040Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10-01-2017","body":{"objectID":"10-01-2017","name":"10-01-2017","concatenatedName":"10012017","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-01-10T09:02:41.079Z"},"tags":{"latest":"1.0.0"},"description":"This is for practice","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"chetan31","email":"hajare.chetan@gmail.com","avatar":"https://gravatar.com/avatar/7e6b886b8b2f3d44bab715b30df408ee","link":"https://www.npmjs.com/~chetan31"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["practice"],"created":1484038961079,"modified":1484038961079,"lastPublisher":{"name":"chetan31","email":"hajare.chetan@gmail.com","avatar":"https://gravatar.com/avatar/7e6b886b8b2f3d44bab715b30df408ee","link":"https://www.npmjs.com/~chetan31"},"owners":[{"name":"chetan31","email":"hajare.chetan@gmail.com","avatar":"https://gravatar.com/avatar/7e6b886b8b2f3d44bab715b30df408ee","link":"https://www.npmjs.com/~chetan31"}],"lastCrawl":"2017-12-04T22:42:55.041Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10-10","body":{"objectID":"10-10","name":"10-10","concatenatedName":"1010","downloadsLast30Days":13,"downloadsRatio":9.414345836995283e-8,"humanDownloadsLast30Days":"13","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-05-31T04:18:23.552Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"kkieek","email":"ethan9867@gmail.com","avatar":"https://gravatar.com/avatar/9ce7e541d320b55d9deb66e6a2fe7458","link":"https://www.npmjs.com/~kkieek"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1496204303552,"modified":1496204303552,"lastPublisher":{"name":"kkieek","email":"ethan9867@gmail.com","avatar":"https://gravatar.com/avatar/9ce7e541d320b55d9deb66e6a2fe7458","link":"https://www.npmjs.com/~kkieek"},"owners":[{"name":"kkieek","email":"ethan9867@gmail.com","avatar":"https://gravatar.com/avatar/9ce7e541d320b55d9deb66e6a2fe7458","link":"https://www.npmjs.com/~kkieek"}],"lastCrawl":"2017-12-04T22:42:55.041Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10-21-landing","body":{"objectID":"10-21-landing","name":"10-21-landing","concatenatedName":"1021landing","downloadsLast30Days":12,"downloadsRatio":8.690165387995647e-8,"humanDownloadsLast30Days":"12","popular":false,"version":"0.0.1-security","versions":{"1.1.0":"2017-06-08T18:39:34.143Z","0.0.1-security":"2017-07-28T23:23:48.265Z"},"tags":{"latest":"0.0.1-security"},"description":"security holding package","dependencies":{},"devDependencies":{},"githubRepo":{"user":"npm","project":"security-holder","path":"","head":"master"},"gitHead":"master","readme":"# Security holding package\\n\\nThis package name is not currently in use, but was formerly occupied\\nby another package. To avoid malicious use, npm is hanging on to the\\npackage name, but loosely, and we\'ll probably give it to you if you\\nwant it.\\n\\nYou may adopt this package by contacting support@npmjs.com and\\nrequesting the name.\\n","owner":{"name":"npm","avatar":"https://github.com/npm.png","link":"https://github.com/npm"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":[],"created":1496947174143,"modified":1501284248210,"lastPublisher":{"name":"elizposadas","email":"elizposadas@gmail.com","avatar":"https://gravatar.com/avatar/9307e8290456044d2c9fc093a6e51e23","link":"https://www.npmjs.com/~elizposadas"},"owners":[{"email":"npm@npmjs.com","name":"npm","avatar":"https://gravatar.com/avatar/46d8d00e190be647053f7d97fd0478e4","link":"https://www.npmjs.com/~npm"}],"lastCrawl":"2017-12-04T22:42:55.041Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10-9","body":{"objectID":"10-9","name":"10-9","concatenatedName":"109","downloadsLast30Days":13,"downloadsRatio":9.414345836995283e-8,"humanDownloadsLast30Days":"13","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T01:56:57.657Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"newgame","email":"2730420639@qq.com","avatar":"https://gravatar.com/avatar/628c8168c9f38f436ba2ced81dd37389","link":"https://www.npmjs.com/~newgame"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507514217657,"modified":1507514217657,"lastPublisher":{"name":"newgame","email":"2730420639@qq.com","avatar":"https://gravatar.com/avatar/628c8168c9f38f436ba2ced81dd37389","link":"https://www.npmjs.com/~newgame"},"owners":[{"name":"newgame","email":"2730420639@qq.com","avatar":"https://gravatar.com/avatar/628c8168c9f38f436ba2ced81dd37389","link":"https://www.npmjs.com/~newgame"}],"lastCrawl":"2017-12-04T22:42:55.041Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10-9week01","body":{"objectID":"10-9week01","name":"10-9week01","concatenatedName":"109week01","downloadsLast30Days":12,"downloadsRatio":8.690165387995647e-8,"humanDownloadsLast30Days":"12","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T01:34:26.714Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"ohye","email":"15810731145@163.com","avatar":"https://gravatar.com/avatar/6854fc5d2436a4c81dc7683509ada2fa","link":"https://www.npmjs.com/~ohye"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507512866714,"modified":1507512866714,"lastPublisher":{"name":"ohye","email":"15810731145@163.com","avatar":"https://gravatar.com/avatar/6854fc5d2436a4c81dc7683509ada2fa","link":"https://www.npmjs.com/~ohye"},"owners":[{"name":"ohye","email":"15810731145@163.com","avatar":"https://gravatar.com/avatar/6854fc5d2436a4c81dc7683509ada2fa","link":"https://www.npmjs.com/~ohye"}],"lastCrawl":"2017-12-04T22:42:55.041Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.16yangrantest","body":{"objectID":"10.16yangrantest","name":"10.16yangrantest","concatenatedName":"1016yangrantest","downloadsLast30Days":25,"downloadsRatio":1.8104511224990932e-7,"humanDownloadsLast30Days":"25","popular":false,"version":"1.0.1","versions":{"1.0.0":"2016-10-15T16:43:35.305Z","1.0.1":"2016-10-24T00:14:08.990Z"},"tags":{"latest":"1.0.1"},"description":null,"dependencies":{"commander":"^2.9.0","download":"^5.0.2","downshow":"^0.1.0","easytpl":"^1.0.4","html-md":"^3.0.2","jquery":"^3.1.1"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"sfyr111","email":"sfyr111@163.com","avatar":"https://gravatar.com/avatar/fdc3d0f75afadcf7bbe295046d038f40","link":"https://www.npmjs.com/~sfyr111"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1476549815305,"modified":1477268048990,"lastPublisher":{"name":"sfyr111","email":"sfyr111@163.com","avatar":"https://gravatar.com/avatar/fdc3d0f75afadcf7bbe295046d038f40","link":"https://www.npmjs.com/~sfyr111"},"owners":[{"name":"sfyr111","email":"sfyr111@163.com","avatar":"https://gravatar.com/avatar/fdc3d0f75afadcf7bbe295046d038f40","link":"https://www.npmjs.com/~sfyr111"}],"lastCrawl":"2017-12-04T22:42:55.042Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.30.npm-learning","body":{"objectID":"10.30.npm-learning","name":"10.30.npm-learning","concatenatedName":"1030npmlearning","downloadsLast30Days":24,"downloadsRatio":1.7380330775991295e-7,"humanDownloadsLast30Days":"24","popular":false,"version":"1.1.0","versions":{"1.0.0":"2016-10-30T07:45:39.745Z","1.1.0":"2016-10-30T08:32:01.426Z"},"tags":{"latest":"1.1.0"},"description":null,"dependencies":{"angular":"^1.5.8"},"devDependencies":{"gulp":"^3.9.1"},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"ryanzhao1993","email":"ryanzhao1993@qq.com","avatar":"https://gravatar.com/avatar/eff19129e46ba61b01495079b890b751","link":"https://www.npmjs.com/~ryanzhao1993"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1477813539745,"modified":1477816321426,"lastPublisher":{"name":"ryanzhao1993","email":"ryanzhao1993@qq.com","avatar":"https://gravatar.com/avatar/eff19129e46ba61b01495079b890b751","link":"https://www.npmjs.com/~ryanzhao1993"},"owners":[{"name":"ryanzhao1993","email":"ryanzhao1993@qq.com","avatar":"https://gravatar.com/avatar/eff19129e46ba61b01495079b890b751","link":"https://www.npmjs.com/~ryanzhao1993"}],"lastCrawl":"2017-12-04T22:42:55.042Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.31","body":{"objectID":"10.31","name":"10.31","concatenatedName":"1031","downloadsLast30Days":40,"downloadsRatio":2.896721795998549e-7,"humanDownloadsLast30Days":"40","popular":false,"version":"2.0.0","versions":{"1.0.0":"2017-10-31T08:37:36.093Z","2.0.0":"2017-11-04T02:14:30.147Z"},"tags":{"latest":"2.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1509439056093,"modified":1509761670147,"lastPublisher":{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"},"owners":[{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"}],"lastCrawl":"2017-12-04T22:42:55.042Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.916513131","body":{"objectID":"10.916513131","name":"10.916513131","concatenatedName":"10916513131","downloadsLast30Days":15,"downloadsRatio":1.0862706734994559e-7,"humanDownloadsLast30Days":"15","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T02:19:10.014Z"},"tags":{"latest":"1.0.0"},"description":"mainshangyong -1.0.0","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"shangyong4186","email":"906957063@qq.com","avatar":"https://gravatar.com/avatar/96dcbdcf60fb7c045fac021e4e26ee39","link":"https://www.npmjs.com/~shangyong4186"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507515550014,"modified":1507515550014,"lastPublisher":{"name":"shangyong4186","email":"906957063@qq.com","avatar":"https://gravatar.com/avatar/96dcbdcf60fb7c045fac021e4e26ee39","link":"https://www.npmjs.com/~shangyong4186"},"owners":[{"name":"shangyong4186","email":"906957063@qq.com","avatar":"https://gravatar.com/avatar/96dcbdcf60fb7c045fac021e4e26ee39","link":"https://www.npmjs.com/~shangyong4186"}],"lastCrawl":"2017-12-04T22:42:55.042Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.9week1","body":{"objectID":"10.9week1","name":"10.9week1","concatenatedName":"109week1","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T01:43:41.905Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"jiaxin0119","email":"18210636520@163.com","avatar":"https://gravatar.com/avatar/031a8eab14d7826f80ca2fae695062c4","link":"https://www.npmjs.com/~jiaxin0119"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507513421905,"modified":1507513421905,"lastPublisher":{"name":"jiaxin0119","email":"18210636520@163.com","avatar":"https://gravatar.com/avatar/031a8eab14d7826f80ca2fae695062c4","link":"https://www.npmjs.com/~jiaxin0119"},"owners":[{"name":"jiaxin0119","email":"18210636520@163.com","avatar":"https://gravatar.com/avatar/031a8eab14d7826f80ca2fae695062c4","link":"https://www.npmjs.com/~jiaxin0119"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10.9zhoukaoyi","body":{"objectID":"10.9zhoukaoyi","name":"10.9zhoukaoyi","concatenatedName":"109zhoukaoyi","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T02:03:16.708Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507514596708,"modified":1507514596708,"lastPublisher":{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"},"owners":[{"name":"moqing","email":"huan18310247042@163.com","avatar":"https://gravatar.com/avatar/941e53e108df4f5228fb466b6add6110","link":"https://www.npmjs.com/~moqing"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100","body":{"objectID":"100","name":"100","concatenatedName":"100","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"0.0.1","versions":{"0.0.1":"2014-05-12T09:05:55.760Z"},"tags":{"latest":"0.0.1"},"description":"test","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"},"deprecated":false,"badPackage":false,"homepage":null,"license":"mit","keywords":["hello world"],"created":1399885555760,"modified":1399885555760,"lastPublisher":{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"},"owners":[{"name":"xiaosheng","email":"xs.cctv@163.com","avatar":"https://gravatar.com/avatar/edd9a12f2340a49e5b2550d42187fb3c","link":"https://www.npmjs.com/~xiaosheng"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100-101-ws","body":{"objectID":"100-101-ws","name":"100-101-ws","concatenatedName":"100101ws","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-16T12:02:53.808Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1508155373808,"modified":1508155373808,"lastPublisher":{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"},"owners":[{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100-prisoners","body":{"objectID":"100-prisoners","name":"100-prisoners","concatenatedName":"100prisoners","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"0.9.1","versions":{"0.9.0":"2015-08-13T22:11:49.324Z","0.9.1":"2015-08-13T22:24:35.109Z"},"tags":{"latest":"0.9.1"},"description":"100 Prisoners and a Light Bulb Riddle","dependencies":{"underscore":"^1.8.3"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-jslint":"^1.1.14"},"githubRepo":{"user":"kamilmielnik","project":"100-prisoners","path":"","head":"3989433d9a26f54685e006f833e0222266e977d8"},"gitHead":"3989433d9a26f54685e006f833e0222266e977d8","readme":"# 100 Prisoners and a Light Bulb\\r\\nThis package implements a framework able to run & test \\"100 Prisoners and a Light Bulb\\" riddle solutions.\\r\\n\\r\\n## Origin\\r\\nI got to know the riddle from: https://www.ocf.berkeley.edu/~wwu/riddles/hard.shtml#100prisonersLightBulb\\r\\n","owner":{"name":"kamilmielnik","avatar":"https://github.com/kamilmielnik.png","link":"https://github.com/kamilmielnik"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["100","prisoners","light","bulb","riddle"],"created":1439503909324,"modified":1439504675109,"lastPublisher":{"name":"kamilmielnik","email":"kamil.adam.mielnik@gmail.com","avatar":"https://gravatar.com/avatar/011c496f66edc85056c4cdeda3904011","link":"https://www.npmjs.com/~kamilmielnik"},"owners":[{"name":"kamilmielnik","email":"kamil.adam.mielnik@gmail.com","avatar":"https://gravatar.com/avatar/011c496f66edc85056c4cdeda3904011","link":"https://www.npmjs.com/~kamilmielnik"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100-syl-10-16","body":{"objectID":"100-syl-10-16","name":"100-syl-10-16","concatenatedName":"100syl1016","downloadsLast30Days":12,"downloadsRatio":8.690165387995647e-8,"humanDownloadsLast30Days":"12","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-16T12:07:56.568Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1508155676568,"modified":1508155676568,"lastPublisher":{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"},"owners":[{"name":"100-ws","email":"17839166685@163.com","avatar":"https://gravatar.com/avatar/406e984c49dfb1d1e0b512bbd87f0ecc","link":"https://www.npmjs.com/~100-ws"}],"lastCrawl":"2017-12-04T22:42:55.043Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10000","body":{"objectID":"10000","name":"10000","concatenatedName":"10000","downloadsLast30Days":17,"downloadsRatio":1.2311067632993832e-7,"humanDownloadsLast30Days":"17","popular":false,"version":"0.0.0","versions":{"0.0.0":"2016-07-01T01:20:14.230Z"},"tags":{"latest":"0.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1467336014230,"modified":1467336014230,"lastPublisher":{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"},"owners":[{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1000000usd","body":{"objectID":"1000000usd","name":"1000000usd","concatenatedName":"1000000usd","downloadsLast30Days":9,"downloadsRatio":6.517624040996736e-8,"humanDownloadsLast30Days":"9","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-08-26T17:15:17.400Z"},"tags":{"latest":"1.0.0"},"description":"If you npm install it, you own it","dependencies":{},"devDependencies":{},"githubRepo":{"user":"thread-speaker","project":"1000000usd","path":"","head":"307717c02d574eae8995818c504688c8eae39073"},"gitHead":"307717c02d574eae8995818c504688c8eae39073","readme":"# 1000000usd\\r\\n\\r\\n\\"If you npm install it, you own it.\\" -Some Guy at React Rally 2017\\r\\n\\r\\nBy that logic, npm installing this package makes you a millionare!\\r\\n","owner":{"name":"thread-speaker","avatar":"https://github.com/thread-speaker.png","link":"https://github.com/thread-speaker"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1503767717400,"modified":1507302799209,"lastPublisher":{"name":"thread_speaker","email":"erinaarested@gmail.com","avatar":"https://gravatar.com/avatar/8c0853ea4d7e377d441dd2feb2e59e74","link":"https://www.npmjs.com/~thread_speaker"},"owners":[{"name":"thread_speaker","email":"erinaarested@gmail.com","avatar":"https://gravatar.com/avatar/8c0853ea4d7e377d441dd2feb2e59e74","link":"https://www.npmjs.com/~thread_speaker"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1000phone","body":{"objectID":"1000phone","name":"1000phone","concatenatedName":"1000phone","downloadsLast30Days":15,"downloadsRatio":1.0862706734994559e-7,"humanDownloadsLast30Days":"15","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-12-04T03:17:06.860Z"},"tags":{"latest":"1.0.0"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480821426860,"modified":1480821426860,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10086","body":{"objectID":"10086","name":"10086","concatenatedName":"10086","downloadsLast30Days":16,"downloadsRatio":1.1586887183994196e-7,"humanDownloadsLast30Days":"16","popular":false,"version":"0.0.0","versions":{"0.0.0":"2016-07-01T01:19:57.498Z"},"tags":{"latest":"0.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1467335997498,"modified":1467335997498,"lastPublisher":{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"},"owners":[{"name":"front","email":"136177121@qq.com","avatar":"https://gravatar.com/avatar/2f45f1a967ddfef7c2421b096e60e45c","link":"https://www.npmjs.com/~front"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10091989.test","body":{"objectID":"10091989.test","name":"10091989.test","concatenatedName":"10091989test","downloadsLast30Days":41,"downloadsRatio":2.9691398408985127e-7,"humanDownloadsLast30Days":"41","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-11-16T19:45:18.517Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"manuel.raimondi","email":"ioraimondimanuel@live.com","avatar":"https://gravatar.com/avatar/44cdd3505cfe6dcebbc3380862ccc7fb","link":"https://www.npmjs.com/~manuel.raimondi"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1510861518517,"modified":1510861518517,"lastPublisher":{"name":"manuel.raimondi","email":"ioraimondimanuel@live.com","avatar":"https://gravatar.com/avatar/44cdd3505cfe6dcebbc3380862ccc7fb","link":"https://www.npmjs.com/~manuel.raimondi"},"owners":[{"name":"manuel.raimondi","email":"ioraimondimanuel@live.com","avatar":"https://gravatar.com/avatar/44cdd3505cfe6dcebbc3380862ccc7fb","link":"https://www.npmjs.com/~manuel.raimondi"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1009jineng","body":{"objectID":"1009jineng","name":"1009jineng","concatenatedName":"1009jineng","downloadsLast30Days":13,"downloadsRatio":9.414345836995283e-8,"humanDownloadsLast30Days":"13","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-10-09T02:07:22.788Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lujinxian","email":"476162422@qq.com","avatar":"https://gravatar.com/avatar/2611e898a7727a7a6c83f43de4f9f4b1","link":"https://www.npmjs.com/~lujinxian"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1507514842788,"modified":1507514842788,"lastPublisher":{"name":"lujinxian","email":"476162422@qq.com","avatar":"https://gravatar.com/avatar/2611e898a7727a7a6c83f43de4f9f4b1","link":"https://www.npmjs.com/~lujinxian"},"owners":[{"name":"lujinxian","email":"476162422@qq.com","avatar":"https://gravatar.com/avatar/2611e898a7727a7a6c83f43de4f9f4b1","link":"https://www.npmjs.com/~lujinxian"}],"lastCrawl":"2017-12-04T22:42:55.044Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100m","body":{"objectID":"100m","name":"100m","concatenatedName":"100m","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.2","versions":{"1.0.2":"2016-12-04T05:10:05.920Z"},"tags":{"latest":"1.0.2"},"description":"A use of angular framework to write the news system","dependencies":{"gulp":"*"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"###Welcome to use MarkDown","owner":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["angular","weui","swiper"],"created":1480828205920,"modified":1480828205920,"lastPublisher":{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"},"owners":[{"name":"autumnswind","email":"AutumnsWinds@gmail.com","avatar":"https://gravatar.com/avatar/c285efc5bb3363a490f7c91a9b2487ba","link":"https://www.npmjs.com/~autumnswind"}],"lastCrawl":"2017-12-04T22:42:55.045Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100notes-comments","body":{"objectID":"100notes-comments","name":"100notes-comments","concatenatedName":"100notescomments","downloadsLast30Days":12,"downloadsRatio":8.690165387995647e-8,"humanDownloadsLast30Days":"12","popular":false,"version":"0.1.1","versions":{"0.1.0":"2017-03-12T01:40:31.908Z","0.1.1":"2017-03-12T01:45:04.981Z"},"tags":{"latest":"0.1.1"},"description":"Comments React Component","dependencies":{"datejs":"^1.0.0-rc3","100notes-dispatcher":"^0.1.0","http-api-client":"^0.1.8","react":"^15.4.2","react-dom":"^15.4.2","react-remarkable":"^1.1.1","react-textarea-autosize":"^4.0.5","react-websocket":"^1.1.6","request-promise":"^4.1.1","ws":"^2.1.0"},"devDependencies":{"babel":"^6.23.0","babel-cli":"^6.23.0","babel-plugin-css-modules-transform":"^1.2.1","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","babel-preset-stage-2":"^6.22.0","coveralls":"^2.11.16","enzyme":"^2.7.1","jest":"^19.0.0","jest-async-test-tool":"^1.0.2","jest-cli":"^19.0.1","jest-enzyme":"^2.1.2","mock-socket":"^6.0.4","react-addons-test-utils":"^15.4.2","react-hot-loader":"^1.3.1","react-test-renderer":"^15.4.2"},"githubRepo":{"user":"100notes","project":"comments-component","path":"","head":"33719f32a7ebb07188b072faae3cdd51b2feee32"},"gitHead":"33719f32a7ebb07188b072faae3cdd51b2feee32","readme":"# comments-component\\n\\nComments React Component\\n","owner":{"name":"100notes","avatar":"https://github.com/100notes.png","link":"https://github.com/100notes"},"deprecated":false,"badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":[],"created":1489282831908,"modified":1489283104981,"lastPublisher":{"name":"100notes","email":"100notesdev@gmail.com","avatar":"https://gravatar.com/avatar/0365cd362d8e5c8b39356a7292feb452","link":"https://www.npmjs.com/~100notes"},"owners":[{"name":"100notes","email":"100notesdev@gmail.com","avatar":"https://gravatar.com/avatar/0365cd362d8e5c8b39356a7292feb452","link":"https://www.npmjs.com/~100notes"}],"lastCrawl":"2017-12-04T22:42:55.045Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100notes-dispatcher","body":{"objectID":"100notes-dispatcher","name":"100notes-dispatcher","concatenatedName":"100notesdispatcher","downloadsLast30Days":16,"downloadsRatio":1.1586887183994196e-7,"humanDownloadsLast30Days":"16","popular":false,"version":"0.1.0","versions":{"0.1.0":"2017-03-12T01:33:52.991Z"},"tags":{"latest":"0.1.0"},"description":"Javascript Event Dispatcher","dependencies":{},"devDependencies":{"coveralls":"^2.11.16","jest":"^19.0.2"},"githubRepo":{"user":"100notes","project":"dispatcher","path":"","head":"ad2f4c57a84945ae929247892a3ef9878caefa86"},"gitHead":"ad2f4c57a84945ae929247892a3ef9878caefa86","readme":"# dispatcher\\n\\nJavascript Event Dispatcher\\n","owner":{"name":"100notes","avatar":"https://github.com/100notes.png","link":"https://github.com/100notes"},"deprecated":false,"badPackage":false,"homepage":null,"license":"Apache-2.0","keywords":[],"created":1489282432991,"modified":1489282432991,"lastPublisher":{"name":"100notes","email":"100notesdev@gmail.com","avatar":"https://gravatar.com/avatar/0365cd362d8e5c8b39356a7292feb452","link":"https://www.npmjs.com/~100notes"},"owners":[{"name":"100notes","email":"100notesdev@gmail.com","avatar":"https://gravatar.com/avatar/0365cd362d8e5c8b39356a7292feb452","link":"https://www.npmjs.com/~100notes"}],"lastCrawl":"2017-12-04T22:42:55.045Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"100pourcent","body":{"objectID":"100pourcent","name":"100pourcent","concatenatedName":"100pourcent","downloadsLast30Days":25,"downloadsRatio":1.8104511224990932e-7,"humanDownloadsLast30Days":"25","popular":false,"version":"1.0.2","versions":{"1.0.0":"2017-04-26T13:47:58.702Z","1.0.1":"2017-04-26T13:51:47.232Z","1.0.2":"2017-04-26T13:59:32.099Z","1.0.3":"2017-04-26T14:00:24.828Z"},"tags":{"latest":"1.0.2"},"description":"Allow NodeJS to use all CPU&#39;s cores","dependencies":{},"devDependencies":{},"githubRepo":{"user":"Drulac","project":"100pourcent.js","path":"","head":"8977ed506eda5343ca46024a9807a1719193e6cf"},"gitHead":"8977ed506eda5343ca46024a9807a1719193e6cf","readme":"# 100pourcent.js\\nAllow NodeJS to use all CPU\'s cores\\n\\nThat\'s really easy to use. That\'s my base code who can use only 1 core of my CPU :\\n```js\\nconst http = require(\'http\');\\n\\n\\thttp.createServer((req, res) => {\\n\\t\\tres.writeHead(200);\\n\\t\\tres.end(\'hello world\\\\n\');\\n\\t}).listen(8000);\\n```\\n\\nuse NPM to install the `100pourcent` module :\\n```\\nnpm i 100pourcent\\n```\\n\\nedit the code to require the module and pass our code in argument, in a function :\\n```js\\nrequire(\\"100pourcent\\")(()=>{\\n\\tconst http = require(\'http\');\\n\\n\\thttp.createServer((req, res) => {\\n\\t\\tres.writeHead(200);\\n\\t\\tres.end(\'hello world\\\\n\');\\n\\t}).listen(8000);\\n});\\n```\\n\\nThen our app can use 100% of the CPU cores\\n","owner":{"name":"Drulac","avatar":"https://github.com/Drulac.png","link":"https://github.com/Drulac"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["nodejs","cpu","cores"],"created":1493214478702,"modified":1500649815895,"lastPublisher":{"name":"drulac","email":"dev.drulac@gmail.com","avatar":"https://gravatar.com/avatar/514d3a0b2224f8eb14b7b0a8402c9eb4","link":"https://www.npmjs.com/~drulac"},"owners":[{"name":"drulac","email":"dev.drulac@gmail.com","avatar":"https://gravatar.com/avatar/514d3a0b2224f8eb14b7b0a8402c9eb4","link":"https://www.npmjs.com/~drulac"}],"lastCrawl":"2017-12-04T22:42:55.045Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"101","body":{"objectID":"101","name":"101","concatenatedName":"101","downloadsLast30Days":23114,"downloadsRatio":0.00016738706898177614,"humanDownloadsLast30Days":"23.1k","popular":false,"version":"1.6.2","versions":{"0.0.0":"2014-04-11T08:13:12.596Z","0.1.0":"2014-04-29T08:43:04.704Z","0.2.0":"2014-05-04T02:36:09.649Z","0.3.0":"2014-05-12T00:05:36.280Z","0.3.1":"2014-05-13T00:05:46.242Z","0.3.2":"2014-05-13T00:15:51.027Z","0.3.3":"2014-05-24T18:17:04.947Z","0.3.4":"2014-05-24T18:55:07.821Z","0.4.0":"2014-05-25T07:02:58.241Z","0.4.1":"2014-05-26T00:27:15.081Z","0.4.2":"2014-05-26T00:32:16.438Z","0.5.0":"2014-06-13T20:11:44.477Z","0.6.0":"2014-07-08T01:57:46.372Z","0.7.0":"2014-07-15T18:54:15.182Z","0.7.1":"2014-10-15T16:55:04.249Z","0.7.2":"2014-12-02T08:09:50.240Z","0.7.3":"2014-12-03T02:11:35.638Z","0.8.0":"2014-12-15T08:31:46.165Z","0.8.1":"2015-01-08T02:19:49.207Z","0.8.2":"2015-01-08T07:11:29.150Z","0.9.0":"2015-01-31T22:11:20.799Z","0.10.0":"2015-02-11T08:15:36.304Z","0.11.0":"2015-02-15T05:14:27.987Z","0.11.1":"2015-02-15T05:42:04.481Z","0.12.0":"2015-02-16T08:27:06.370Z","0.13.0":"2015-03-03T05:33:58.164Z","0.14.0":"2015-03-18T19:58:37.237Z","0.14.1":"2015-03-25T04:30:36.347Z","0.16.1":"2015-04-12T19:23:57.583Z","0.17.0":"2015-05-07T17:15:36.617Z","0.18.0":"2015-05-10T01:39:39.607Z","0.19.0":"2015-05-25T00:16:17.398Z","1.0.0":"2015-05-25T01:20:05.091Z","1.1.0":"2015-09-15T20:01:13.257Z","1.1.1":"2015-10-02T20:46:07.685Z","1.2.0":"2015-10-14T01:00:52.101Z","1.3.1":"2016-02-13T08:27:52.843Z","1.4.0":"2016-02-23T04:25:14.565Z","1.5.0":"2016-03-08T07:53:54.448Z","1.6.0":"2016-06-13T19:46:39.104Z","1.6.1":"2016-07-17T21:39:31.098Z","1.6.2":"2016-08-21T23:04:34.681Z"},"tags":{"latest":"1.6.2"},"description":"common javascript utils that can be required selectively that assume es5+","dependencies":{"clone":"^1.0.2","deep-eql":"^0.1.3","keypather":"^1.10.2"},"devDependencies":{"code":"^1.5.0","lab":"^5.9.0","sinon":"^1.17.3"},"githubRepo":{"user":"tjmehta","project":"101","path":"","head":"cf2f2f6a423f5d0fc88b83e0e933ff383c0013e4"},"gitHead":"cf2f2f6a423f5d0fc88b83e0e933ff383c0013e4","readme":"![101](http://i.imgur.com/MFrmMt6.png)\\n===\\n[![NPM](https://nodei.co/npm/101.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/101/)\\n\\n[![Build Status](https://travis-ci.org/tjmehta/101.svg?branch=master)](https://travis-ci.org/tjmehta/101)\\n[![Coverage Status](https://coveralls.io/repos/tjmehta/101/badge.png)](https://coveralls.io/r/tjmehta/101)\\n[![Dependency Status](https://david-dm.org/tjmehta/101.svg)](https://david-dm.org/tjmehta/101)\\n[![devDependency Status](https://david-dm.org/tjmehta/101/dev-status.svg)](https://david-dm.org/tjmehta/101#info=devDependencies)\\n\\n# Why another JS util library?\\n### 1) 101 will be maintained to minimize overlap with vanilla JS.\\n* 101 utils are made to work well with vanilla JS methods.\\n* 101 will only duplicate vanilla JS to provide Functional Programming paradigms, or if\\nthe method is not available in a widely supported JS version (currently ES5).\\n* Other libraries often duplicate a lot of ES5: forEach, map, reduce, filter, sort, and more.\\n\\n### 2) No need for custom builds.\\n* With 101, import naturally, and what you use will be bundled.\\n* Each util method is a module that can be required `require(\'101/<util>\')`.\\n* Currently CommonJS (node, browserify, webpack, etc) is supported, I will add other module system support on request.\\n* Other libraries can be large, and require manually creating custom builds when optimizing for size.\\n\\n### Why not release each as individual modules?\\nI usually agree with this philosophy; however, while in practice, adherence to the module-pattern\\ncan become quite annoying for micro-modules (like those in 101):\\n* Micro-modules existance throughout a project can change very frequently, because of this one may find\\nthemselves constantly updating their package.json (repeatedly adding and removing the same micro-modules).\\n* Unbundling micro-modules can lead to projects with hundreds of dependencies which can be tedious to maintain.\\n\\n\\n\\n# Installation\\n\\n`npm install 101`\\n\\n# Usage\\n\\n## assign (aka extend)\\n\\nJust like ES6\'s `Object.assign`. Extend an object with any number of objects (returns original).\\n\\n```js\\nvar assign = require(\'101/assign\');\\n\\nvar target = { foo: 1 };\\nvar source1 = { bar: 1 };\\nvar source2 = { baz: 1 };\\nassign(target, source1) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\nassign(target, source1, source2) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\n```\\n\\n## and\\n\\nFunctional version of `&&`. Works great with `array.reduce`.\\n\\n```js\\nvar and = require(\'101/and\');\\n\\nand(true, false); // false\\nand(true, true); // true\\nand(true, \\"foo\\"); // \\"foo\\"\\n```\\n\\n## apply\\n\\nFunctional version of `function.apply`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar apply = require(\'101/apply\');\\n[sum].map(apply(null, [1, 2, 3])); // [6] = [sum(1,2,3)] = [1+2+3]\\nfunction sum () { /* sums all arguments */ }\\napply({ prop: \'val\' })(function () { return this.prop; }); // \'val\'\\n```\\n\\n## bindAll\\n\\nBind methods in an object.\\nYou can pass an array containing the name of the methods to bind as second\\nargument or leave it empty to bind all the available methods.\\n\\n```js\\nvar bindAll = require(\'101/bind-all\');\\nvar obj = {\\n init: function() {\\n this.on(this.handler);\\n },\\n on: function(handler) {\\n return handler();\\n },\\n handler: function() {\\n console.log(this.msg);\\n },\\n msg: \'Hello World\'\\n}\\n\\nobj.init(); // undefined\\n\\nbindAll(obj);\\nobj.init(); // \\"Hello World\\"\\n\\nbindAll(obj, [\'handler\']);\\nobj.init(); // \\"Hello World\\"\\n```\\n\\n## clone\\n\\nIt\'s [clone](https://www.npmjs.org/package/clone) (Only exporting this bc it is used internal to 101)\\n\\n```js\\nvar clone = require(\'101/clone\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nclone(obj); // { foo: 1, bar: 2 }\\n```\\n\\n## compose\\n\\nFunctional composition method. Works great with `array.reduce`.\\n\\n```js\\nvar compose = require(\'101/compose\');\\n\\ncompose(isNaN, parseInt)(\'nope\'); // isNaN(parseInt(\'nope\')) // true\\n```\\n\\n## converge\\n\\nConverges an array of functions into one. Works great with `compose`.\\n\\n```js\\nvar converge = require(\'101/converge\');\\n\\nconverge(mul, [add, sub])(6, 2); // mul(add(6, 2), sub(6, 2)) // (6+2) * (6-2) = 36\\n\\n[ {a: true, b: false}\\n, {a: false, b: false}\\n, {a: true, b: true}\\n].filter(converge(and , [pluck(\\"a\\") , pluck(\\"b\\")])); // [{a: true, b: true}]\\n\\n[f, converge(g, [h, i]), j].reduce(compose); // f(g(h(j), i(j)))\\n```\\n\\n## curry\\n\\nReturns a curried function.\\n\\n```js\\nvar curry = require(\'101/curry\');\\n\\nfunction add(a, b) { return a + b; }\\n\\nvar curriedAdd = curry(add);\\nvar add2 = curriedAdd(2);\\n\\nadd2(6); // 8\\nadd2(8); // 10\\n\\nfunction join() { return Array.prototype.slice.call(arguments).join(\'\'); }\\n\\ncurry(join, 3)(1)(0)(1); // \\"101\\"\\n```\\n\\n## defaults\\n\\nFill non-existing object values with defaults. Use it to set defaults on options. Works with\\nsupplying default values in sub-objects as well. Supports partial functionality (great with array\\nfunctions). Mutates first argument and returns mutated argument.\\n\\n```js\\nvar defaults = require(\'101/defaults\');\\nvar opts = { foo: 0, bar: 1 };\\nvar defs = { foo: 1, bar: 2, qux: 2 };\\n\\ndefaults(opts, defs); // returns mutated `opts` { foo: 0, bar: 1, qux: 2 }\\n[opts].map(defaults(defs)); // [ { foo: 0, bar: 1, qux: 2 } ]\\n\\nvar opts = {\\n foo: {\\n one: 1,\\n two: 2\\n }\\n};\\nvar defs = {\\n foo: {\\n two: 20,\\n three: 30\\n }\\n};\\ndefaults(opts, defs); // { foo: { one: 1, two: 2, three: 30 } }\\n```\\n\\n## del\\n\\nFunctional version of delete obj[key] which returns the same obj without the deleted key.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar del = require(\'101/del\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\ndel(obj, \'foo\'); // { bar: 2 }\\n\\n// use it with array.map\\n[obj, obj, obj].map(del(\'foo\')); // [{ bar: 2 }, {same}, {same}]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: {\\n moo: 1,\\n boo: 2\\n },\\n bar: 3\\n};\\n\\ndel(obj, \'foo.moo\'); // { foo: { boo: 2 }, bar:3 }\\n```\\n\\n## envIs\\n\\nFunctional version of `str === process.env.NODE_ENV`.\\nOr\'s multiple environments.\\n\\n```js\\nvar envIs = require(\'101/env-is\');\\n// process.env.NODE_ENV = development\\nenvIs(\'development\'); // true\\nenvIs(\'production\'); // false\\nenvIs(\'staging\', \'production\'); // false\\nenvIs(\'development\', \'production\'); // true\\n```\\n\\n## equals\\n\\nFunctional implementation of Object.is with polyfill for browsers without implementations of Object.is\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar equals = require(\'101/equals\');\\n\\nequals(1, 1); // true\\n[1,2,3].some(equals(1)); // true\\nequals(1, \'1\'); // false\\n```\\n\\n## exists\\n\\nSimple exists function.\\n\\n```js\\nvar exists = require(\'101/exists\');\\n\\nexists(\'foo\'); // true\\nexists(null); // false\\nexists(undefined); // false\\n```\\n\\n## find\\n\\nJust like ES6\'s `array.find`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it.\\nIf list is not provided find will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nvar find = require(\'101/find\');\\nvar hasProps = require(\'101/has-properties\');\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\n\\nvar item = find(arr, hasProps({ a:1 }));\\n// returns { a: 1, b: 1 }\\n// returns null if not found\\n\\n// partial-function\\nvar partial = find(hasProps({ a: 1 }));\\nvar item = partial(arr);\\n// returns { a: 1, b: 1 }\\n// returns null if not found\\n```\\n\\n## findIndex\\n\\nJust like ES6\'s `array.findIndex`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it\'s index.\\nIf list is not provided findIndex will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nvar findIndex = require(\'101/find-index\');\\nvar arr = [1, 2, 3];\\n\\nvar index = findIndex(arr, function (val, i, arr) {\\n return val === 2;\\n});\\n// returns 1\\n// returns -1 if not found\\n```\\n\\n## flip\\n\\nReturns a function with flipped arguments\\n\\n```js\\nvar flip = require(\'101/flip\');\\nvar curry = require(\'101/curry\');\\nvar hasKeypaths = require(\'101/has-keypaths\');\\n\\nvar hasFooBar = curry(flip(hasKeypaths))([\'foo.bar\']);\\n\\nhasFooBar({ foo: { bar : true } }); // true\\n\\n\\nfunction prefix(pre, str) {\\n return pre + str;\\n}\\n\\nflip(prefix)(\'hello\', \'_\'); // \\"_hello\\"\\n```\\n\\n## groupBy\\nHashes an array into groups based on the value of a provided common key.\\nWorks nicely with `pluck` and `reduce`.\\n\\n```js\\nvar groupBy = require(\'101/group-by\');\\nvar arr = [\\n {id: 1, foo: \'bar\'},\\n {id: 2, foo: \'qux\'},\\n {id: 3, foo: \'qux\'}\\n];\\n\\ngroupBy(arr, \'foo\')\\n/*\\n{\\n bar: [\\n {id: 1, foo: \'bar\'}\\n ],\\n qux: [\\n {id: 2, foo: \'qux\'},\\n {id: 3, foo: \'qux\'}\\n ]\\n}\\n*/\\n// always provide initial value when using with reduce!\\narr.reduce(groupBy(\'foo\'), {}) // assumes pluck if passed string\\narr.reduce(groupBy(pluck(\'foo\')), {}) // also accepts function\\n/*\\n{\\n bar: [\\n {id: 1, foo: \'bar\'}\\n ],\\n qux: [\\n {id: 2, foo: \'qux\'},\\n {id: 3, foo: \'qux\'}\\n ]\\n}\\n*/\\n```\\n\\n## hasKeypaths\\n\\nDetermines whether the keypaths exist and have the specified values.\\nSupports partial functionality (great with array functions, and 101/find).\\n\\n```js\\nvar hasKeypaths = require(\'101/has-keypaths\');\\nvar obj = {\\n foo: {\\n bar: {\\n qux: 1\\n }\\n }\\n};\\n\\nhasKeypaths(obj, [\'foo.bar.qux\']); // true\\nhasKeypaths(obj, { \'foo.bar.qux\': 1 }); // true\\nhasKeypaths(obj, [\'foo.qux\']); // false\\nhasKeypaths(obj, { \'foo.bar\': 2 }); // false\\nhasKeypaths(obj, { \'foo.bar\': 1, \'nope\': 1 }); // false\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasKeypaths(obj, { \'foo.bar\': barObj }); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, true); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, false); // false\\nhasKeypaths(obj, { \'foo.bar\': obj.foo }, false); // true\\nhasKeypaths(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n\\n// use it with find, findIndex, or filter!\\nvar arr = [obj, { b: 1 }, { c: 1 }];\\nfind(arr, hasKeypaths({ \'foo.bar.qux\':1 })); // { foo: { bar: { qux: 1 } } }\\nfind(arr, hasKeypaths([\'foo.bar.qux\'])); // { foo: { bar: { qux: 1 } } }\\n\\n// use it to verify options object has required properties\\nvar opts = {\\n host: \'localhost\',\\n port: \'3333\',\\n user: {\\n id: 5\\n }\\n};\\nhasKeypaths(opts, [\'host\', \'port\', \'user.id\']); // true\\n\\n```\\n\\n## hasProperties\\n\\nDetermines whether the keys exist and, if specified, has the values.\\nSupports partial functionality (great with array functions, and 101/find).\\nNOTE: I am considering deprecating this method, bc it is so similar to has-keypaths.\\n\\n```js\\nvar hasProps = require(\'101/has-properties\');\\nvar obj = {\\n qux: 1\\n};\\nobj[\'foo.bar\'] = 1\\n\\nhasProps(obj, [\'foo\', \'qux\']); // true\\nhasProps(obj, { qux: 1 }) // true\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasProps(obj, { \'foo.bar\': barObj }); // true\\nhasProps(obj, { \'foo.bar\': barObj }, true); // true\\nhasProps(obj, { \'foo.bar\': barObj }, false); // false\\nhasProps(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n// use it with find, findIndex, or filter!\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\nfind(arr, hasProps({ a:1 })); // { a: 1, b: 1 }\\nfind(arr, hasProps([\'a\'])); // { a: 1, b: 1 }\\n```\\n\\n## includes\\n\\nPolyfill of ES7 proposed Array.prototype.includes. Will default to Array.prototype.includes if\\npresent.\\n\\n```js\\nvar includes = require(\'101/includes\');\\nvar haystack = [\'a\', \'b\', \'c\', \'d\', \'e\'];\\nincludes(haystack, \'c\'); // true\\n\\n// optional 3rd argument, searchFrom. Begin searching the target array from a specified index.\\nincludes(haystack, \'c\', 3); // false\\nincludes(haystack, \'c\', 0); // true\\n\\n// partial argument functionality\\nvar i = includes(haystack);\\ni(\'c\') // true\\ni(\'g\') // false\\n\\n// example composition usage:\\nvar not = require(\'101/not\');\\nvar notIn = not(includes);\\n[1, 2, 3, 4, 5].filter(notIn([1, 2, 3])); // [4, 5]\\n```\\n\\n## indexBy\\nHashes an array of objects based on the value of a provided common key.\\nWorks nicely with `pluck` and `reduce`.\\n\\n```js\\nvar arr = [\\n {foo: \'bar\'},\\n {foo: \'qux\'}\\n];\\n\\narr.reduce(indexBy(\'foo\'), {}) // assumes pluck if passed string\\narr.reduce(indexBy(pluck(\'foo\')), {}) // also accepts function\\n// {bar: {foo: \'bar\'}, qux: {foo: \'qux\'}}\\n// always provide initial value when using with reduce!\\narr.reduce(indexBy(pluck(\'foo\')), {}) // {bar: {foo: \'bar\'}, qux: {foo: \'qux\'}}\\n```\\n\\n## instanceOf\\n\\nFunctional version of JavaScript\'s instanceof.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar instanceOf = require(\'101/instance-of\');\\n\\n[\'foo\', \'bar\', 1].map(instanceOf(\'string\')); // [true, true, false]\\n```\\n\\n## isBoolean\\n\\nFunctional version of `typeof val === \'boolean\'`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar isBoolean = require(\'101/is-boolean\');\\n\\n[true, false, 1].map(isBoolean); // [true, true, false]\\n```\\n\\n## isEmpty\\n\\nFunctional version of val empty object, array or object\\n\\n```js\\nvar isEmpty = require(\'101/is-empty\');\\n\\nisEmpty([]); // true\\nisEmpty({}); // true\\nisEmpty(\\"\\"); // true\\nisEmpty(\\" \\"); // false\\n```\\n\\n## isFunction\\n\\nFunctional version of `typeof val === \'function\'`\\n\\n```js\\nvar isFunction = require(\'101/is-function\');\\n\\n[parseInt, function () {}, \'foo\'].map(isFunction); // [true, true, false]\\n```\\n\\n## isInteger\\n\\nCheck if a value is an instance of an integer.\\n\\n```js\\nvar isInteger = require(\'101/is-Integer\');\\n\\nisInteger(101); // true\\nisInteger(101.01); // false\\n```\\n\\n## isNumber\\n\\nFunctional version of val typeof \'number\'.\\n\\n```js\\nvar isNumber = require(\'101/is-number\');\\n\\n[\'foo\', NaN, 1].map(isNumber); // [false, false, true]\\n```\\n\\n## isObject\\n\\nFunctional *strict* version of val typeof \'object\' (and not array or regexp)\\n\\n```js\\nvar isObject = require(\'101/is-object\');\\n\\n[{}, { foo: 1 }, 100].map(isObject); // [true, true, false]\\n```\\n\\n## isRegExp\\n\\nCheck if a value is an instance of RegExp\\n\\n```js\\nvar isRegExp = require(\'101/is-regexp\');\\n\\n[new RegExp(\'.*\'), /.*/, {}, 1].map(isRegExp); // [true, true, false, false]\\n```\\n\\n## isString\\n\\nFunctional version of val typeof \'string\'\\n\\n```js\\nvar isString = require(\'101/is-string\');\\n\\n[\'foo\', \'bar\', 1].map(isString); // [true, true, false]\\n```\\n\\n## keysIn\\n\\nReturn an array containing all the keys of an object.\\nIt differs from the native `Object.keys` by including also the `prototype` keys.\\n\\n```js\\nvar keysIn = require(\'101/keys-in\');\\nvar User = function() {\\n this.msg = \'Hello World\';\\n}\\nUser.prototype.isLoggedIn = function() { /* example function */ }\\n\\nvar user = new User();\\nkeysIn(user); // [\'msg\', \'isLoggedIn\']\\n```\\n\\n## last\\n\\nReturns the last value of a list\\n\\n```js\\nvar last = require(\'101/last\');\\n\\nlast([1, 2, 3]); // 3\\nlast(\'hello\'); // \'o\'\\n```\\n\\n## lens\\n\\nCreate a lens to access a data structure. When passed a property key as a string, it returns a function `fn(obj)` that acts as a getter for that. It also exposes `.set(value, obj)` and `.mod(fn, obj)`.\\n\\n```js\\nvar fooLens = lens(\'foo\');\\nvar toUpper = function(str) { return str.toUpperCase(); };\\nvar obj = {\\n foo: \'foo\',\\n bar: \'bar\'\\n};\\n\\nfooLens(obj); // => \'foo\'\\nfooLens.set(\'moo\', obj); // => { foo: \'moo\', bar: \'bar\' }\\nfooLens.mod(toUpper, obj); // => { foo: \'MOO\', bar: \'bar\' }\\n```\\n\\nYou may also provide getter and setter functions.\\n\\n```js\\nvar arr = [\'foo\', \'bar\'];\\nvar first = lens(\\n function(arr) { return arr[0]; },\\n function(val, arr) { var clone = arr.slice(); clone[0] = val; return clone; }\\n);\\n\\nfirst(arr); // => \'foo\'\\nfirst.set(\'moo\')(arr); // => [\'moo\', \'bar\']\\nfirst.mod(toUpper)(arr); // => [\'FOO\', \'bar\']\\n```\\n\\n## noop\\n\\nNo-op function\\n\\n```js\\nrequire(\'101/noop\'); // function () {}\\n```\\n\\n## not\\n\\nFunctional version of `!`.\\n\\n```js\\nvar not = require(\'101/not\');\\n\\nnot(isString)(\'hey\'); // false\\nnot(isString)(100); // true\\n```\\n\\n## omit\\n\\nImmutable version of `delete obj.key`. Returns a new object without the specified keys.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar omit = require(\'101/omit\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nomit(obj, \'foo\'); // { bar: 1 }\\nomit(obj, [\'foo\']); // { bar: 1 }\\nomit(obj, [\'foo\', \'bar\']); // { }\\n\\n// use it with array.map\\n[obj, obj, obj].map(omit(\'foo\')); // [{ bar: 1 }, { bar: 1 }, { bar: 1 }];\\n```\\n\\n## or\\n\\nFunctional version of `||`.\\nWorks great with `array.reduce`.\\n\\n```js\\nvar or = require(\'101/or\');\\n\\nor(true, true); // true\\nor(true, false); // true\\nor(false, false); // false\\nor(\\"foo\\", false); // \\"foo\\"\\n```\\n\\n## passAll\\n\\nMuxes arguments across many functions and `&&`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar passAll = require(\'101/pass-all\');\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAll(isString, isTruthy)); // [false, true, true, false]\\n```\\n\\n## passAny\\n\\nMuxes arguments across many functions and `||`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar passAny = require(\'101/pass-any\');\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAny(isString, isNumber)); // [true, true, true, true]\\n```\\n\\n## pick\\n\\nReturns a new object with the specified keys (with key values from obj).\\nSupports regular expressions and partial functionality (great with array functions, like map).\\n\\n```js\\nvar pick = require(\'101/pick\');\\nvar obj = {\\n foo: 1,\\n bar: 2,\\n qwk: {\\n wrk: 1\\n },\\n \'qwk.wrk\': 2\\n};\\n\\npick(obj, \'foo\'); // { foo: 1 }\\npick(obj, RegExp(\'oo$\')); // { foo: 1 }\\npick(obj, [\'foo\']); // { foo: 1 }\\npick(obj, [\'foo\', \'bar\']); // { foo: 1, bar: 2 }\\n\\n// use it with array.map\\n[obj, obj, obj].map(pick(\'foo\')); // [{ foo: 1 }, { foo: 1 }, { foo: 1 }];\\n\\n// supports keypaths\\npick(obj, \'qwk.wrk\'); // { qwk: { wrk: 1 } }\\npick(obj, \'[\\"qwk.wrk\\"]\'); // { \'qwk.wrk\': 2 } }\\n```\\n\\n## pluck\\n\\nFunctional version of obj[key], returns the value of the key from obj.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar pluck = require(\'101/pluck\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\npluck(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(pluck(\'foo\')); // [1, 1, 1]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: {\\n bar: 1\\n },\\n \'foo.bar\': 2\\n};\\n\\npluck(obj, \'foo.bar\'); // 1, supports keypaths by default\\npluck(obj, \'foo.bar\', false); // 2, pass false to not use keypaths\\n```\\n\\n## put\\n\\nImmutable version of `obj[key] = val`. Returns a clone of the obj with the value put at the key.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar put = require(\'101/put\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nput(obj, \'baz\', 3); // { foo: 1, bar:2, baz: 3 }\\nobj; // { foo: 1, bar: 2 } (not modified)\\n\\n// use it with array.map\\n[obj, obj, obj].map(put(\'foo\', 100)); // [{ foo: 100, bar: 2 }, {copy}, {copy}]\\nobj; // { foo: 1, bar: 2 } (not modified)\\n\\n// supports keypaths by default\\nvar obj = {\\n bar: 2\\n};\\n\\nput(obj, \'foo.qux\', 100); // { foo: { qux: 100 }, bar: 2 }\\nput(obj, {\\n \'foo.qux\': 100\\n \'yolo\': 1\\n}); // { foo: { qux: 100 }, bar: 2, yolo: 1 }\\nobj; // { foo: 1, bar: 2 } (not modified)\\n```\\n\\n## set\\n\\nFunctional version of obj[key] = val, returns the same obj with the key and value set.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar set = require(\'101/set\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nset(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(set(\'foo\', 100)); // [{ foo: 100, bar: 2 }, {same}, {same}]\\n\\n// supports keypaths by default\\nvar obj = {\\n bar: 2\\n};\\n\\nset(obj, \'foo.qux\', 100); // { foo: { qux: 100 }, bar: 2 }\\nset(obj, {\\n \'foo.qux\': 100\\n \'yolo\': 1\\n}); // { foo: { qux: 100 }, bar: 2, yolo: 1 }\\n```\\n\\n## values\\n\\nReturns Array containing the values of the properties of an object\\n\\n```js\\nvar values = require(\'101/values\');\\nvar obj {\\n foo: \'apple\',\\n bar: \'orange\'\\n};\\n\\nvar objValues = values(obj);\\nobjValues // [\'apple\', \'orange\']\\n```\\n\\n## xor\\n\\nExclusive or\\nWorks great with `array.reduce`.\\n\\n```js\\nvar xor = require(\'101/xor\');\\n\\nxor(true, true); // false\\nxor(true, false); // true\\nxor(false, true); // true\\nxor(false, false); // false\\n```\\n\\n## License\\n\\nMIT\\n","owner":{"name":"tjmehta","avatar":"https://github.com/tjmehta.png","link":"https://github.com/tjmehta"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["utils","js","helpers","functional","pick","pluck","map","array","object","string"],"created":1397203992596,"modified":1471820674681,"lastPublisher":{"name":"tjmehta","email":"tejesh.mehta@gmail.com","avatar":"https://gravatar.com/avatar/049d9ce7bb813b262d32f6ebe4bb6fe5","link":"https://www.npmjs.com/~tjmehta"},"owners":[{"name":"tjmehta","email":"tj_mehta@hotmail.com","avatar":"https://gravatar.com/avatar/2741d52eac97e105a89eb26d9a4870d5","link":"https://www.npmjs.com/~tjmehta"}],"lastCrawl":"2017-12-04T22:42:55.046Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":"https://raw.githubusercontent.com/tjmehta/101/cf2f2f6a423f5d0fc88b83e0e933ff383c0013e4/CHANGELOG.md"}},{"action":"updateObject","objectID":"101-es6","body":{"objectID":"101-es6","name":"101-es6","concatenatedName":"101es6","downloadsLast30Days":13,"downloadsRatio":9.414345836995283e-8,"humanDownloadsLast30Days":"13","popular":false,"version":"0.8.0","versions":{"0.9.0":"2014-12-22T10:03:19.259Z","0.9.1":"2014-12-22T11:34:17.820Z","0.9.2":"2014-12-23T00:20:16.105Z","0.9.3":"2014-12-23T00:41:12.232Z","0.9.4":"2014-12-23T13:31:38.451Z","0.8.0":"2015-02-09T09:22:32.984Z"},"tags":{"latest":"0.8.0"},"description":"common javascript utils that can be required selectively that assume es5+","dependencies":{"clone":"^0.1.18","deep-eql":"^0.1.3","extend":"^1.3.0","keypather":"^1.7.5"},"devDependencies":{"coveralls":"^2.11.2","lab":"^4.6.2"},"githubRepo":{"user":"tjmehta","project":"101","path":"","head":"e67510234bc0e5947dc93cdb255c2254de96a592"},"gitHead":"e67510234bc0e5947dc93cdb255c2254de96a592","readme":"![101](http://i.imgur.com/MFrmMt6.png)\\n===\\n[![NPM](https://nodei.co/npm/101.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/101/)\\n[![Build Status](https://travis-ci.org/tjmehta/101.svg?branch=master)](https://travis-ci.org/tjmehta/101)\\n[![Coverage Status](https://coveralls.io/repos/tjmehta/101/badge.png)](https://coveralls.io/r/tjmehta/101)\\n\\n# Why another JS util library?\\n### 1) 101 will be maintained to minimize overlap with vanilla JS.\\n* 101 utils are made to work well with vanilla JS methods.\\n* 101 will only duplicate vanilla JS to provide Functional Programming paradigms, or if\\nthe method is not available in a widely supported JS version (currently ES5).\\n* Other libraries often duplicate a lot of ES5: forEach, map, reduce, filter, sort, and more.\\n\\n### 2) No need for custom builds.\\n* With 101, import naturally, and what you use will be bundled.\\n* Each util method is a module that can be required `require(\'101/<util>\')`.\\n* Currently node/browserify is supported, I will add other module system support on request.\\n* Other libraries can be large, and require manually creating custom builds when optimizing for size.\\n\\n### Why not release each as individual modules?\\nI ussually agree with this philosophy; however, while in practice, adherence to the module-pattern \\ncan become quite annoying for micro-modules (like those in 101):\\n* Micro-modules existance throughout a project can change very frequently, because of this one may find\\nthemselves constantly updating their package.json (repeatedly adding and removing the same micro-modules).\\n* Unbundling micro-modules can lead to projects with 100\'s of dependencies which can be tedious to maintain.\\n\\n\\n\\n# Installation\\n\\n`npm install 101`\\n\\n# Usage\\n\\n## assign (aka extend)\\n\\nJust like ES6\'s `Object.assign`. Extend an object with any number of objects (returns original).\\n\\n```js\\nimport assign from \'101/assign\';\\n\\nvar target = { foo: 1 };\\nvar source1 = { bar: 1 };\\nvar source2 = { baz: 1 };\\nassign(target, source1) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\nassign(target, source1, source2) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\n```\\n\\n## and\\n\\nFunctional version of `&&`. Works great with `array.reduce`.\\n\\n```js\\nimport and from \'101/and\';\\n\\nand(true, false); // false\\nand(true, true); // true\\n```\\n\\n## apply\\n\\nFunctional version of `function.apply`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nimport apply from \'101/apply\';\\n[sum].map(apply(null, [1, 2, 3])); // [6] = [sum(1,2,3)] = [1+2+3]\\nfunction sum () { /* sums all arguments */ }\\napply({ prop: \'val\' })(function () { return this.prop; }); // \'val\'\\n```\\n\\n## clone\\n\\nIt\'s [clone](https://www.npmjs.org/package/clone) (Only exporting this bc it is used internal to 101)\\n\\n```js\\nimport clone from \'101/clone\';\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nclone(obj); // { foo: 1, bar: 2 }\\n```\\n\\n## compose\\n\\nFunctional composition method. Works great with `array.reduce`.\\n\\n```js\\nimport compose from \'101/compose\';\\n\\ncompose(isNaN, parseInt)(\'nope\'); // isNaN(parseInt(\'nope\')) // true\\n```\\n\\n## envIs\\n\\nFunctional version of `str === process.env.NODE_ENV`.\\nOr\'s multiple environments.\\n\\n```js\\nimport envIs from \'101/env-is\';\\n// process.env.NODE_ENV = development\\nenvIs(\'development\'); // true\\nenvIs(\'production\'); // false\\nenvIs(\'staging\', \'production\'); // false\\nenvIs(\'development\', \'production\'); // true\\n```\\n\\n## equals\\n\\nFunctional version of `===`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nimport equals from \'101/equals\';\\n\\nequals(1, 1); // true\\n[1,2,3].some(equals(1)); // true\\nequals(1, \'1\'); // false\\n```\\n\\n## exists\\n\\nSimple exists function.\\n\\n```js\\nimport exists from \'101/exists\';\\n\\nexists(\'foo\'); // true\\nexists(null); // false\\nexists(undefined); // false\\n```\\n\\n## find\\n\\nJust like ES6\'s `array.find`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it.\\nIf list is not provided find will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nimport find from \'101/find\';\\nimport hasProps from \'101/has-properties\';\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\n\\nvar item = find(arr, hasProps({ a:1 }));\\n// returns { a: 1, b: 1 }\\n// returns null if not found\\n```\\n\\n## findIndex\\n\\nJust like ES6\'s `array.findIndex`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it\'s index.\\nIf list is not provided findIndex will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nimport findIndex from \'101/find-index\';\\nvar arr = [1, 2, 3];\\n\\nvar index = findIndex(arr, function (val, i, arr) {\\n return val === 2;\\n});\\n// returns 1\\n// returns -1 if not found\\n```\\n\\n## hasKeypaths\\n\\nDetermines whether the keypaths exist and have the specified values.\\nSupports partial functionality (great with array functions, and 101/find).\\n\\n```js\\nimport hasKeypaths from \'101/has-keypaths\';\\nvar obj = {\\n foo: {\\n bar: {\\n qux: 1\\n }\\n }\\n};\\n\\nhasKeypaths(obj, [\'foo.bar.qux\']); // true\\nhasKeypaths(obj, { \'foo.bar.qux\': 1 }); // true\\nhasKeypaths(obj, [\'foo.qux\']); // false\\nhasKeypaths(obj, { \'foo.bar\': 2 }); // false\\nhasKeypaths(obj, { \'foo.bar\': 1, \'nope\': 1 }); // false\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasKeypaths(obj, { \'foo.bar\': barObj }); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, true); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, false); // false\\nhasKeypaths(obj, { \'foo.bar\': obj.foo }, false); // true\\nhasKeypaths(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n// use it with find, findIndex, or filter!\\nvar arr = [obj, { b: 1 }, { c: 1 }];\\nfind(arr, hasProps({ \'foo.bar.qux\':1 })); // { foo: { bar: { qux: 1 } } }\\nfind(arr, hasProps([\'foo.bar.qux\'])); // { foo: { bar: { qux: 1 } } }\\n```\\n\\n## hasProperties\\n\\nDetermines whether the keys exist and, if specified, has the values.\\nSupports partial functionality (great with array functions, and 101/find).\\n\\n```js\\nimport hasProps from \'101/has-properties\';\\nvar obj = {\\n foo: {\\n bar: 1\\n },\\n qux: 1\\n};\\n\\nhasProps(obj, [\'foo\', \'qux\']); // true\\nhasProps(obj, { qux: 1 }) // true\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasProps(obj, { \'foo.bar\': barObj }); // true\\nhasProps(obj, { \'foo.bar\': barObj }, true); // true\\nhasProps(obj, { \'foo.bar\': barObj }, false); // false\\nhasProps(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n// use it with find, findIndex, or filter!\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\nfind(arr, hasProps({ a:1 })); // { a: 1, b: 1 }\\nfind(arr, hasProps([\'a\'])); // { a: 1, b: 1 }\\n```\\n\\n## instanceOf\\n\\nFunctional version of JavaScript\'s instanceof.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nimport instanceOf from \'101/instance-of\';\\n\\n[\'foo\', \'bar\', 1].map(instanceOf(\'string\')); // [true, true, false]\\n```\\n\\n## isBoolean\\n\\nFunctional version of `typeof val === \'boolean\'`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nimport isBoolean from \'101/is-boolean\';\\n\\n[true, false, 1].map(isBoolean); // [true, true, false]\\n```\\n\\n## isEmpty\\n\\nFunctional version of val empty object, array or object\\n\\n```js\\nimport isEmpty from \'101/is-empty\';\\n\\nisEmpty([]); // true\\nisEmpty({}); // true\\nisEmpty(\\"\\"); // true\\nisEmpty(\\" \\"); // false\\n```\\n\\n## isFunction\\n\\nFunctional version of `typeof val === \'function\'`\\n\\n```js\\nimport isFunction from \'101/is-function\';\\n\\n[parseInt, function () {}, \'foo\'].map(isFunction); // [true, true, false]\\n```\\n\\n## isNumber\\n\\nFunctional version of val typeof \'number\'\\n\\n```js\\nimport isNumber from \'101/is-number\';\\n\\n[\'foo\', \'bar\', 1].map(isString); // [false, false, true]\\n```\\n\\n## isObject\\n\\nFunctional *strict* version of val typeof \'object\' (and not array or regexp)\\n\\n```js\\nimport isObject from \'101/is-object\';\\n\\n[{}, { foo: 1 }, 100].map(isObject); // [true, true, false]\\n```\\n\\n## isString\\n\\nFunctional version of val typeof \'string\'\\n\\n```js\\nimport isString from \'101/is-string\';\\n\\n[\'foo\', \'bar\', 1].map(isString); // [true, true, false]\\n```\\n\\n## last\\n\\nReturns the last value of a list\\n\\n```js\\nimport last from \'101/last\';\\n\\nlast([1, 2, 3]); // 3\\nlast(\'hello\'); // \'o\'\\n```\\n\\n## noop\\n\\nNo-op function\\n\\n```js\\nrequire(\'101/noop\'); // function () {}\\n```\\n\\n## not\\n\\nFunctional version of `!`.\\n\\n```js\\nimport not from \'101/not\';\\n\\nnot(isString)(\'hey\'); // false\\nnot(isString)(100); // true\\n```\\n\\n## omit\\n\\nReturns a new object without the specified keys.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport omit from \'101/omit\';\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nomit(obj, \'foo\'); // { bar: 1 }\\nomit(obj, [\'foo\']); // { bar: 1 }\\nomit(obj, [\'foo\', \'bar\']); // { }\\n\\n// use it with array.map\\n[obj, obj, obj].map(omit(\'foo\')); // [{ bar: 1 }, { bar: 1 }, { bar: 1 }];\\n```\\n\\n## or\\n\\nFunctional version of `||`.\\nWorks great with `array.reduce`.\\n\\n```js\\nimport or from \'101/or\';\\n\\nor(true, true); // true\\nor(true, false); // true\\nor(false, false); // false\\n```\\n\\n## passAll\\n\\nMuxes arguments across many functions and `&&`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport passAll from \'101/pass-all\';\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAll(isString, isTruthy)); // [false, true, true, false]\\n```\\n\\n## passAny\\n\\nMuxes arguments across many functions and `||`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport passAny from \'101/pass-any\';\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAny(isString, isNumber)); // [true, true, true, true]\\n```\\n\\n## pick\\n\\nReturns a new object with the specified keys (with key values from obj).\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport pick from \'101/pick\';\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\npick(obj, \'foo\'); // { foo: 1 }\\npick(obj, [\'foo\']); // { foo: 1 }\\npick(obj, [\'foo\', \'bar\']); // { foo: 1, bar: 2 }\\n\\n// use it with array.map\\n[obj, obj, obj].map(pick(\'foo\')); // [{ foo: 1 }, { foo: 1 }, { foo: 1 }];\\n```\\n\\n## pluck\\n\\nFunctional version of obj[key], returns the value of the key from obj.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport pluck from \'101/pluck\';\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\npluck(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(pluck(\'foo\')); // [1, 1, 1]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: {\\n bar: 1\\n },\\n \'foo.bar\': 2\\n};\\n\\npluck(obj, \'foo.bar\'); // 1, supports keypaths by default\\npluck(obj, \'foo.bar\', false); // 2, pass false to not use keypaths\\n```\\n\\n## set\\n\\nFunctional version of obj[key] = val, returns a new obj with the key and value set.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nimport set from \'101/set\';\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nset(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(set(\'foo\', 100)); // [{ foo: 100, bar: 2 }, {same}, {same}]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nset(obj, \'foo\', 100); // { foo: 100, bar:2 }\\n```\\n\\n## License\\n\\nMIT\\n","owner":{"name":"tjmehta","avatar":"https://github.com/tjmehta.png","link":"https://github.com/tjmehta"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["utils","js","helpers","functional","pick","pluck","map","array","object","string"],"created":1419242599259,"modified":1423473752984,"lastPublisher":{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"},"owners":[{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"}],"lastCrawl":"2017-12-04T22:42:55.046Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"101-tomekwi","body":{"objectID":"101-tomekwi","name":"101-tomekwi","concatenatedName":"101tomekwi","downloadsLast30Days":27,"downloadsRatio":1.9552872122990208e-7,"humanDownloadsLast30Days":"27","popular":false,"version":"0.12.0","versions":{"0.1.0":"2015-02-17T11:52:19.995Z","0.12.0":"2015-02-17T11:53:00.535Z"},"tags":{"latest":"0.12.0"},"description":"common javascript utils that can be required selectively that assume es5+","dependencies":{"clone":"^0.1.18","deep-eql":"^0.1.3","keypather":"^1.8.1"},"devDependencies":{"coveralls":"^2.11.2","lab":"^4.6.2"},"githubRepo":{"user":"tjmehta","project":"101","path":"","head":"8e819045daedf2c7f6a40a797e6955aaab994f34"},"gitHead":"8e819045daedf2c7f6a40a797e6955aaab994f34","readme":"![101](http://i.imgur.com/MFrmMt6.png)\\n===\\n[![NPM](https://nodei.co/npm/101.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/101/)\\n[![Build Status](https://travis-ci.org/tjmehta/101.svg?branch=master)](https://travis-ci.org/tjmehta/101)\\n[![Coverage Status](https://coveralls.io/repos/tjmehta/101/badge.png)](https://coveralls.io/r/tjmehta/101)\\n\\n# Why another JS util library?\\n### 1) 101 will be maintained to minimize overlap with vanilla JS.\\n* 101 utils are made to work well with vanilla JS methods.\\n* 101 will only duplicate vanilla JS to provide Functional Programming paradigms, or if\\nthe method is not available in a widely supported JS version (currently ES5).\\n* Other libraries often duplicate a lot of ES5: forEach, map, reduce, filter, sort, and more.\\n\\n### 2) No need for custom builds.\\n* With 101, import naturally, and what you use will be bundled.\\n* Each util method is a module that can be required `require(\'101/<util>\')`.\\n* Currently node/browserify is supported, I will add other module system support on request.\\n* Other libraries can be large, and require manually creating custom builds when optimizing for size.\\n\\n### Why not release each as individual modules?\\nI usually agree with this philosophy; however, while in practice, adherence to the module-pattern \\ncan become quite annoying for micro-modules (like those in 101):\\n* Micro-modules existance throughout a project can change very frequently, because of this one may find\\nthemselves constantly updating their package.json (repeatedly adding and removing the same micro-modules).\\n* Unbundling micro-modules can lead to projects with hundreds of dependencies which can be tedious to maintain.\\n\\n\\n\\n# Installation\\n\\n`npm install 101`\\n\\n# Usage\\n\\n## assign (aka extend)\\n\\nJust like ES6\'s `Object.assign`. Extend an object with any number of objects (returns original).\\n\\n```js\\nvar assign = require(\'101/assign\');\\n\\nvar target = { foo: 1 };\\nvar source1 = { bar: 1 };\\nvar source2 = { baz: 1 };\\nassign(target, source1) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\nassign(target, source1, source2) // { foo: 1, bar: 1, baz: 1 } target extended with source objects\\n```\\n\\n## and\\n\\nFunctional version of `&&`. Works great with `array.reduce`.\\n\\n```js\\nvar and = require(\'101/and\');\\n\\nand(true, false); // false\\nand(true, true); // true\\nand(true, \\"foo\\"); // \\"foo\\"\\n```\\n\\n## apply\\n\\nFunctional version of `function.apply`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar apply = require(\'101/apply\');\\n[sum].map(apply(null, [1, 2, 3])); // [6] = [sum(1,2,3)] = [1+2+3]\\nfunction sum () { /* sums all arguments */ }\\napply({ prop: \'val\' })(function () { return this.prop; }); // \'val\'\\n```\\n\\n## clone\\n\\nIt\'s [clone](https://www.npmjs.org/package/clone) (Only exporting this bc it is used internal to 101)\\n\\n```js\\nvar clone = require(\'101/clone\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nclone(obj); // { foo: 1, bar: 2 }\\n```\\n\\n## compose\\n\\nFunctional composition method. Works great with `array.reduce`.\\n\\n```js\\nvar compose = require(\'101/compose\');\\n\\ncompose(isNaN, parseInt)(\'nope\'); // isNaN(parseInt(\'nope\')) // true\\n```\\n\\n## converge\\n\\nConverges an array of functions into one. Works great with `compose`.\\n\\n```js\\nvar converge = require(\'101/converge\');\\n\\nconverge(mul, [add, sub])(6, 2); // mul(add(6, 2), sub(6, 2)) // (6+2) * (6-2) = 36\\n\\n[ {a: true, b: false}\\n, {a: false, b: false}\\n, {a: true, b: true}\\n].filter(converge(and , [pluck(\\"a\\") , pluck(\\"b\\")])); // [{a: true, b: true}]\\n\\n[f, converge(g, [h, i]), j].reduce(compose); // f(g(h(j), i(j)))\\n```\\n\\n## curry\\n\\nReturns a curried function.\\n\\n```js\\nvar curry = require(\'101/curry\');\\n\\nfunction add(a, b) { return a + b; }\\n\\nvar curriedAdd = curry(add);\\nvar add2 = curriedAdd(2);\\n\\nadd2(6); // 8\\nadd2(8); // 10\\n\\nfunction join() { return Array.prototype.slice.call(arguments).join(\'\'); }\\n\\ncurry(join, 3)(1)(0)(1); // \\"101\\"\\n```\\n\\n## envIs\\n\\nFunctional version of `str === process.env.NODE_ENV`.\\nOr\'s multiple environments.\\n\\n```js\\nvar envIs = require(\'101/env-is\');\\n// process.env.NODE_ENV = development\\nenvIs(\'development\'); // true\\nenvIs(\'production\'); // false\\nenvIs(\'staging\', \'production\'); // false\\nenvIs(\'development\', \'production\'); // true\\n```\\n\\n## equals\\n\\nFunctional version of `===`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar equals = require(\'101/equals\');\\n\\nequals(1, 1); // true\\n[1,2,3].some(equals(1)); // true\\nequals(1, \'1\'); // false\\n```\\n\\n## exists\\n\\nSimple exists function.\\n\\n```js\\nvar exists = require(\'101/exists\');\\n\\nexists(\'foo\'); // true\\nexists(null); // false\\nexists(undefined); // false\\n```\\n\\n## find\\n\\nJust like ES6\'s `array.find`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it.\\nIf list is not provided find will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nvar find = require(\'101/find\');\\nvar hasProps = require(\'101/has-properties\');\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\n\\nvar item = find(arr, hasProps({ a:1 }));\\n// returns { a: 1, b: 1 }\\n// returns null if not found\\n```\\n\\n## findIndex\\n\\nJust like ES6\'s `array.findIndex`.\\n\\nFinds the first value in the list that passes the given function (predicate) and returns it\'s index.\\nIf list is not provided findIndex will return a partial-function which accepts a list as the first argument.\\n\\n```js\\nvar findIndex = require(\'101/find-index\');\\nvar arr = [1, 2, 3];\\n\\nvar index = findIndex(arr, function (val, i, arr) {\\n return val === 2;\\n});\\n// returns 1\\n// returns -1 if not found\\n```\\n\\n## hasKeypaths\\n\\nDetermines whether the keypaths exist and have the specified values.\\nSupports partial functionality (great with array functions, and 101/find).\\n\\n```js\\nvar hasKeypaths = require(\'101/has-keypaths\');\\nvar obj = {\\n foo: {\\n bar: {\\n qux: 1\\n }\\n }\\n};\\n\\nhasKeypaths(obj, [\'foo.bar.qux\']); // true\\nhasKeypaths(obj, { \'foo.bar.qux\': 1 }); // true\\nhasKeypaths(obj, [\'foo.qux\']); // false\\nhasKeypaths(obj, { \'foo.bar\': 2 }); // false\\nhasKeypaths(obj, { \'foo.bar\': 1, \'nope\': 1 }); // false\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasKeypaths(obj, { \'foo.bar\': barObj }); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, true); // true\\nhasKeypaths(obj, { \'foo.bar\': barObj }, false); // false\\nhasKeypaths(obj, { \'foo.bar\': obj.foo }, false); // true\\nhasKeypaths(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n// use it with find, findIndex, or filter!\\nvar arr = [obj, { b: 1 }, { c: 1 }];\\nfind(arr, hasProps({ \'foo.bar.qux\':1 })); // { foo: { bar: { qux: 1 } } }\\nfind(arr, hasProps([\'foo.bar.qux\'])); // { foo: { bar: { qux: 1 } } }\\n```\\n\\n## hasProperties\\n\\nDetermines whether the keys exist and, if specified, has the values.\\nSupports partial functionality (great with array functions, and 101/find).\\nNOTE: I am considering deprecating this method, bc it is so similar to has-keypaths.\\n\\n```js\\nvar hasProps = require(\'101/has-properties\');\\nvar obj = {\\n qux: 1\\n};\\nobj[\'foo.bar\'] = 1\\n\\nhasProps(obj, [\'foo\', \'qux\']); // true\\nhasProps(obj, { qux: 1 }) // true\\n\\n// optional \'deep\' arg, defaults to true\\nvar barObj = { bar: 1 };\\nhasProps(obj, { \'foo.bar\': barObj }); // true\\nhasProps(obj, { \'foo.bar\': barObj }, true); // true\\nhasProps(obj, { \'foo.bar\': barObj }, false); // false\\nhasProps(obj, [\'foo.bar\'], false); // true, uses [hasOwnProperty vs in](http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey)\\n// use it with find, findIndex, or filter!\\nvar arr = [{ a: 1, b: 1 }, { b: 1 }, { c: 1 }];\\nfind(arr, hasProps({ a:1 })); // { a: 1, b: 1 }\\nfind(arr, hasProps([\'a\'])); // { a: 1, b: 1 }\\n```\\n\\n## instanceOf\\n\\nFunctional version of JavaScript\'s instanceof.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar instanceOf = require(\'101/instance-of\');\\n\\n[\'foo\', \'bar\', 1].map(instanceOf(\'string\')); // [true, true, false]\\n```\\n\\n## isBoolean\\n\\nFunctional version of `typeof val === \'boolean\'`.\\nSupports partial functionality (great with array functions).\\n\\n```js\\nvar isBoolean = require(\'101/is-boolean\');\\n\\n[true, false, 1].map(isBoolean); // [true, true, false]\\n```\\n\\n## isEmpty\\n\\nFunctional version of val empty object, array or object\\n\\n```js\\nvar isEmpty = require(\'101/is-empty\');\\n\\nisEmpty([]); // true\\nisEmpty({}); // true\\nisEmpty(\\"\\"); // true\\nisEmpty(\\" \\"); // false\\n```\\n\\n## isFunction\\n\\nFunctional version of `typeof val === \'function\'`\\n\\n```js\\nvar isFunction = require(\'101/is-function\');\\n\\n[parseInt, function () {}, \'foo\'].map(isFunction); // [true, true, false]\\n```\\n\\n## isNumber\\n\\nFunctional version of val typeof \'number\'\\n\\n```js\\nvar isNumber = require(\'101/is-number\');\\n\\n[\'foo\', \'bar\', 1].map(isNumber); // [false, false, true]\\n```\\n\\n## isObject\\n\\nFunctional *strict* version of val typeof \'object\' (and not array or regexp)\\n\\n```js\\nvar isObject = require(\'101/is-object\');\\n\\n[{}, { foo: 1 }, 100].map(isObject); // [true, true, false]\\n```\\n\\n## isRegExp\\n\\nCheck if a value is an instance of RegExp\\n\\n```js\\nvar isRegExp = require(\'101/is-regexp\');\\n\\n[new RegExp(\'.*\'), /.*/, {}, 1].map(isRegExp); // [true, true, false, false]\\n```\\n\\n## isString\\n\\nFunctional version of val typeof \'string\'\\n\\n```js\\nvar isString = require(\'101/is-string\');\\n\\n[\'foo\', \'bar\', 1].map(isString); // [true, true, false]\\n```\\n\\n## last\\n\\nReturns the last value of a list\\n\\n```js\\nvar last = require(\'101/last\');\\n\\nlast([1, 2, 3]); // 3\\nlast(\'hello\'); // \'o\'\\n```\\n\\n## noop\\n\\nNo-op function\\n\\n```js\\nrequire(\'101/noop\'); // function () {}\\n```\\n\\n## not\\n\\nFunctional version of `!`.\\n\\n```js\\nvar not = require(\'101/not\');\\n\\nnot(isString)(\'hey\'); // false\\nnot(isString)(100); // true\\n```\\n\\n## omit\\n\\nReturns a new object without the specified keys.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar omit = require(\'101/omit\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nomit(obj, \'foo\'); // { bar: 1 }\\nomit(obj, [\'foo\']); // { bar: 1 }\\nomit(obj, [\'foo\', \'bar\']); // { }\\n\\n// use it with array.map\\n[obj, obj, obj].map(omit(\'foo\')); // [{ bar: 1 }, { bar: 1 }, { bar: 1 }];\\n```\\n\\n## or\\n\\nFunctional version of `||`.\\nWorks great with `array.reduce`.\\n\\n```js\\nvar or = require(\'101/or\');\\n\\nor(true, true); // true\\nor(true, false); // true\\nor(false, false); // false\\nor(\\"foo\\", false); // \\"foo\\"\\n```\\n\\n## passAll\\n\\nMuxes arguments across many functions and `&&`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar passAll = require(\'101/pass-all\');\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAll(isString, isTruthy)); // [false, true, true, false]\\n```\\n\\n## passAny\\n\\nMuxes arguments across many functions and `||`\'s the results.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar passAny = require(\'101/pass-any\');\\n\\n[\'\', \'foo\', \'bar\', 100].map(passAny(isString, isNumber)); // [true, true, true, true]\\n```\\n\\n## pick\\n\\nReturns a new object with the specified keys (with key values from obj).\\nSupports regular expressions and partial functionality (great with array functions, like map).\\n\\n```js\\nvar pick = require(\'101/pick\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\npick(obj, \'foo\'); // { foo: 1 }\\npick(obj, RegExp(\'oo$\')); // { foo: 1 }\\npick(obj, [\'foo\']); // { foo: 1 }\\npick(obj, [\'foo\', \'bar\']); // { foo: 1, bar: 2 }\\n\\n// use it with array.map\\n[obj, obj, obj].map(pick(\'foo\')); // [{ foo: 1 }, { foo: 1 }, { foo: 1 }];\\n```\\n\\n## pluck\\n\\nFunctional version of obj[key], returns the value of the key from obj.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar pluck = require(\'101/pluck\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\npluck(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(pluck(\'foo\')); // [1, 1, 1]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: {\\n bar: 1\\n },\\n \'foo.bar\': 2\\n};\\n\\npluck(obj, \'foo.bar\'); // 1, supports keypaths by default\\npluck(obj, \'foo.bar\', false); // 2, pass false to not use keypaths\\n```\\n\\n## set\\n\\nFunctional version of obj[key] = val, returns a new obj with the key and value set.\\nSupports partial functionality (great with array functions, like map).\\n\\n```js\\nvar set = require(\'101/set\');\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nset(obj, \'foo\'); // 1\\n\\n// use it with array.map\\n[obj, obj, obj].map(set(\'foo\', 100)); // [{ foo: 100, bar: 2 }, {same}, {same}]\\n\\n// supports keypaths by default\\nvar obj = {\\n foo: 1,\\n bar: 2\\n};\\n\\nset(obj, \'foo\', 100); // { foo: 100, bar:2 }\\n```\\n\\n## xor\\n\\nExclusive or\\nWorks great with `array.reduce`.\\n\\n```js\\nvar xor = require(\'101/xor\');\\n\\nxor(true, true); // false\\nxor(true, false); // true\\nxor(false, true); // true\\nxor(false, false); // false\\n```\\n\\n## License\\n\\nMIT\\n","owner":{"name":"tjmehta","avatar":"https://github.com/tjmehta.png","link":"https://github.com/tjmehta"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["utils","js","helpers","functional","pick","pluck","map","array","object","string"],"created":1424173939995,"modified":1424173980535,"lastPublisher":{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"},"owners":[{"name":"tomekwi","email":"t.wiszniewski@gmail.com","avatar":"https://gravatar.com/avatar/5628f758254c2b8c30100168857dbb6b","link":"https://www.npmjs.com/~tomekwi"}],"lastCrawl":"2017-12-04T22:42:55.047Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1010","body":{"objectID":"1010","name":"1010","concatenatedName":"1010","downloadsLast30Days":214,"downloadsRatio":0.0000015497461608592238,"humanDownloadsLast30Days":"214","popular":false,"version":"0.0.35","versions":{"0.0.1":"2016-08-30T06:23:29.390Z","0.0.2":"2016-08-30T10:49:08.510Z","0.0.3":"2016-09-04T09:17:54.250Z","0.0.4":"2016-09-05T04:42:40.826Z","0.0.5":"2016-09-22T09:15:47.321Z","0.0.6":"2016-09-26T07:03:53.222Z","0.0.7":"2016-09-26T07:29:50.072Z","0.0.8":"2016-09-26T09:29:51.319Z","0.0.9":"2016-09-26T10:36:48.008Z","0.0.10":"2016-09-27T03:35:13.149Z","0.0.11":"2016-09-27T03:46:26.247Z","0.0.12":"2016-09-27T03:54:04.633Z","0.0.13":"2016-09-27T08:54:17.909Z","0.0.14":"2016-09-27T09:27:44.716Z","0.0.15":"2016-09-28T03:27:32.961Z","0.0.16":"2016-09-29T01:35:55.567Z","0.0.17":"2016-09-29T07:24:53.099Z","0.0.18":"2016-10-08T06:14:29.909Z","0.0.19":"2016-10-08T09:20:00.857Z","0.0.20":"2016-10-14T10:56:46.318Z","0.0.21":"2016-10-22T08:18:09.708Z","0.0.22":"2016-10-22T08:46:45.123Z","0.0.23":"2016-10-22T09:01:17.918Z","0.0.24":"2017-02-16T22:09:53.577Z","0.0.25":"2017-03-03T09:21:51.547Z","0.0.26":"2017-03-04T05:35:48.193Z","0.0.27":"2017-03-04T06:26:12.375Z","0.0.28":"2017-03-06T09:51:03.587Z","0.0.29":"2017-03-09T01:28:03.350Z","0.0.30":"2017-03-09T22:17:27.452Z","0.0.31":"2017-03-15T10:16:41.726Z","0.0.32":"2017-03-16T11:09:03.912Z","0.0.33":"2017-04-01T01:28:14.852Z","0.0.34":"2017-04-03T10:49:35.410Z","1.0.0":"2017-07-18T02:01:16.535Z","0.0.35":"2017-07-18T02:07:46.429Z","1.0.1":"2017-07-18T02:28:55.970Z"},"tags":{"latest":"0.0.35","next":"1.0.1"},"description":"原子计划","dependencies":{"babel-core":"^6.17.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.2.0","bluebird":"^3.5.0","body-parser":"^1.15.2","busboy":"^0.2.14","clean-css":"^3.4.18","cli-color":"^1.2.0","co":"^4.6.0","colors":"^1.1.2","columnify":"^1.5.4","compression":"^1.6.2","ejs":"^2.4.2","excel-export":"^0.5.1","express":"^4.14.0","express-xml-bodyparser":"^0.3.0","html-minifier":"^3.0.1","js-beautify":"^1.6.11","jsdom":"^9.4.1","knex":"^0.12.9","md5":"^2.2.1","mongodb":"^2.2.9","multiparty":"^4.1.3","mysql":"^2.13.0","node-sass":"^4.0.0","node-schedule":"^1.2.3","nodemailer":"^4.0.1","open":"0.0.5","postcss":"^5.2.6","prompt":"^1.0.0","redis":"^2.7.1","request":"^2.81.0","serve-index":"^1.8.0","sha1":"^1.1.1","socket.io":"^1.4.8","strip-comment":"^1.1.3","uglify-js":"^2.7.0","uuid":"^2.0.2","webworker-threads":"^0.7.11","xlsx":"^0.8.7"},"devDependencies":{},"githubRepo":{"user":"cheng022074","project":"1010-compiler","path":"","head":"1367ff53b80335f959f21d05095b0806bb94d6d6"},"gitHead":"1367ff53b80335f959f21d05095b0806bb94d6d6","readme":"\\n# 原子计划\\n\\n\\n以精细化管理为指导原则,致力于将尽可能多的应用维护环节(产品、设计、后端、前端、运营等)工艺标准化与流程化,从而可流水线式生产包括网站、微信(公众号/小程序)、APP(IOS/Android/Web)等各种应用程序,并利用自有的编译技术,可真正达到 **一次编写,到处运行** 的目标\\n\\n[工艺流程](#workflow)\\n- [原型阶段](#workflow-prototype)\\n- [组件阶段](#workflow-component)\\n- [开发阶段](#workflow-devlop)\\n- [验收阶段](#workflow-valid)\\n\\n[工艺标准](#standard)\\n- [界面](#standard-ui)\\n- [组件](#standard-component)\\n\\n[公共配置](#config)\\n- [html.tag](#config-html.tag)\\n- [web](#config-web)\\n- [path](#config-path)\\n- [html](#config-html)\\n\\n[工具指令](#toolkit)\\n- [启动服务器](#toolkit-web)\\n- [新建文件](#toolkit-create)\\n- [编译界面](#toolkit-html)\\n- [生成文档](#toolkit-docs)\\n- [编译测试页面](#toolkit-test)\\n- [清理](#toolkit-clear)\\n- [删除](#toolkit-remove)\\n\\n## <span id=\\"workflow\\">工艺流程</span>\\n\\n```flow\\nstart=>start: 开始\\nprototype=>subroutine: 原型阶段\\ncomponent=>subroutine: 组件阶段\\ndevelop=>subroutine: 开发阶段\\nvalid=>condition: 验收阶段\\nend=>end: 结束\\nstart->prototype->component->develop->valid\\nvalid(yes)->end\\nvalid(no)->component\\n```\\n\\n### <span id=\\"workflow-prototype\\">原型阶段</span>\\n此阶段应由 **产品经理** 负责\\n\\n```flow\\nstart=>start: 开始\\ncreate-or-edit-prototype-document=>operation: 编写界面原型文档\\ncreate-or-edit-tag-signature-document=>operation: 编写组件签名文档\\nprototype-valid=>condition: 是否缺失组件\\nuser-story=>operation: 编写用户故事\\nmeeting-first=>inputoutput: 讨论用户故事与原型文档\\nmeeting-first-valid=>condition: 讨论是否通过\\nplan-user-story=>operation: 制定用户故事实现步骤\\nmeeting-last=>inputoutput: 讨论用户故事实现步骤\\nmeeting-last-valid=>condition: 讨论是否通过\\nend=>end: 结束\\nstart->create-or-edit-prototype-document->prototype-valid\\nprototype-valid(yes)->create-or-edit-tag-signature-document->user-story\\nprototype-valid(no)->user-story\\nuser-story->meeting-first->meeting-first-valid\\nmeeting-first-valid(yes)->plan-user-story->meeting-last->meeting-last-valid\\nmeeting-first-valid(no)->create-or-edit-prototype-document\\nmeeting-last-valid(yes)->end\\nmeeting-last-valid(no)->plan-user-story\\n```\\n\\n此阶段结束后的成果物应包括:\\n* 界面原型文档\\n* 用户故事文档 \\n* 组件签名文档 (当需要开发组件时)\\n\\n此阶段的工作内容包括:\\n* 使用 [新建文件](#toolkit-create) 命令创建界面原型文档、用户故事文档\\n* 使用 [编译界面](#toolkit-html) 命令编译界面原型文档\\n* 使用 [生成文档](#toolkit-docs) 命令生成界面组件文档与用户故事文档\\n\\n### <span id=\\"workflow-component\\">组件阶段</span>\\n此阶段应由技术经理负责,工作内容包含以下三个方面:\\n* 样式类名设计与部署\\n* HTML结构设计\\n* 属性与方法设计\\n* 数据服务名称与数据绑定\\n\\n### <span id=\\"workflow-devlop\\">开发阶段</span>\\n此阶段应由开发工程师负责,工作内容包含以下三个方面:\\n* 样式开发\\n* 属性与方法开发\\n* 数据服务开发\\n\\n### <span id=\\"workflow-valid\\">验收阶段</span>\\n此阶段应由产品经理负责,保证生产出来的产品与设计保持一致\\n\\n## <span id=\\"standard\\">工艺标准</span>\\n### <span id=\\"standard-ui\\">界面</span>\\n以全组件JSON配置方式构建页面,是实现跨平台应用的关键标准\\n\\n```json\\n {\\n \\"type\\":\\"viewport\\",\\n \\"title\\":\\"原子计划\\",\\n \\"layout\\":\\"centered\\",\\n \\"items\\": {\\n\\t \\"html\\":\\"欢迎使用原子计划\\"\\n }\\n }\\n```\\n**type** 代表所调用的自定义模板的映射名称 ,如未指定 **type** ,默认为 *container* 。与名称的映射关系,请参考配置 [html.tag](#config-html.tag)\\n\\n### <span id=\\"standard-component\\">组件</span>\\n\\n\\n\\n## <span id=\\"config\\">公共配置</span>\\n此处所介绍的配置为系统默认设置,如果需要更改,可以在当前工程下的 **CONFIG**(参与配置 [path](#config-path) )指定的目录下,建立相同路径且相同名称的配置文件进行修改\\n\\n### <span id=\\"config-html.tag\\">html.tag</span>\\n自定义模板元素配置\\n```json\\n {\\n \\"component\\":{\\n \\"name\\":\\"组件\\",\\n \\"selectors\\":\\".component\\",\\n \\"implement\\":\\"component\\",\\n \\"description\\":\\"包含所有元素都必须具备的配置项\\",\\n \\"fields\\":{\\n \\"description\\":{\\n \\"name\\":\\"描述\\",\\n \\"description\\":\\"描述当前应用模板的用途\\",\\n \\"type\\":\\"string\\"\\n },\\n \\"class\\":{\\n \\"name\\":\\"样式类列表\\",\\n \\"description\\":\\"指定需要附加在此元素的样式集合\\",\\n \\"type\\":\\"array\\"\\n },\\n \\"id\\":{\\n \\"name\\":\\"样式类列表\\",\\n \\"description\\":\\"指定需要附加在此元素的样式集合\\",\\n \\"type\\":\\"string\\"\\n },\\n \\"padding\\":{\\n \\"name\\":\\"内间隔\\",\\n \\"description\\":\\"元素内部间隔设置\\"\\n },\\n \\"margin\\":{\\n \\"name\\":\\"内间隔\\",\\n \\"description\\":\\"元素内部间隔设置\\"\\n },\\n \\"width\\":{\\n \\"name\\":\\"宽度\\",\\n \\"description\\":\\"元素宽度\\",\\n \\"type\\":\\"number\\"\\n },\\n \\"height\\":{\\n \\"name\\":\\"高度\\",\\n \\"description\\":\\"元素高度\\",\\n \\"type\\":\\"number\\"\\n },\\n \\"x\\":{\\n \\"name\\":\\"横坐标\\",\\n \\"description\\":\\"元素的横向坐标\\",\\n \\"type\\":\\"number\\"\\n },\\n \\"y\\":{\\n \\"name\\":\\"纵坐标\\",\\n \\"description\\":\\"元素的纵向坐标\\",\\n \\"type\\":\\"number\\"\\n },\\n \\"position\\":{\\n \\"name\\":\\"定位\\",\\n \\"description\\":\\"元素定位方式\\",\\n \\"type\\":{\\n \\"name\\":\\"enum\\",\\n \\"list\\":[\\n \\"tl\\",\\n \\"tr\\",\\n \\"br\\",\\n \\"bl\\"\\n ]\\n },\\n \\"defaultValue\\":\\"tl\\"\\n },\\n \\"dock\\":{\\n \\"name\\":\\"锚定\\",\\n \\"description\\":\\"元素定位设置\\"\\n },\\n \\"html\\":{\\n \\"name\\":\\"内容\\",\\n \\"description\\":\\"基于当前环境的直接表达文本\\",\\n \\"type\\":\\"string\\"\\n },\\n \\"flex\\":{\\n \\"name\\":\\"弹性系数\\",\\n \\"description\\":\\"在垂直、水平布局或者应用Flex布局时适用时,确定弹性的权重\\",\\n \\"type\\":\\"number\\"\\n }\\n }\\n },\\n \\"container\\":{\\n \\"name\\":\\"容器\\",\\n \\"selectors\\":[\\n \\".component.container\\",\\n \\".layout-centered\\",\\n \\".layout-horizontal\\",\\n \\".layout-vertical\\"\\n ],\\n \\"implement\\":\\"container\\",\\n \\"description\\":\\"可以对于一组模板进行分组,并可以实现特定的布局\\",\\n \\"fields\\":{\\n \\"layout\\":{\\n \\"description\\":\\"布局类型\\"\\n },\\n \\"defaults\\":{\\n \\"description\\":\\"子模板的默认配置\\",\\n \\"type\\":\\"object\\",\\n \\"defaultValue\\":{}\\n },\\n \\"items\\":{\\n \\"description\\":\\"加载的子模板\\",\\n \\"type\\":\\"array\\",\\n \\"defaultValue\\":[]\\n }\\n }\\n },\\n \\"viewport\\":{\\n \\"extend\\":\\"container\\",\\n \\"selectors\\":\\".container.viewport\\",\\n \\"implement\\":\\"viewport.fit\\",\\n \\"name\\":\\"视窗\\",\\n \\"description\\":\\"可以是一个界面,也可以是SPA模式中的一张视图\\",\\n \\"fields\\":{\\n \\"margin\\":false,\\n \\"x\\":false,\\n \\"y\\":false,\\n \\"position\\":false,\\n \\"dock\\":false,\\n \\"flex\\":false,\\n \\"width\\":false,\\n \\"height\\":false,\\n \\"title\\":{\\n \\"name\\":\\"标题\\",\\n \\"description\\":\\"显示在视窗标题栏中的文本\\",\\n \\"type\\":\\"string\\"\\n },\\n \\"styles\\":{\\n \\"name\\":\\"加载样式列表\\",\\n \\"description\\":\\"页面所加载的样式文件路径集合\\",\\n \\"type\\":\\"array\\",\\n \\"defaultValue\\":[]\\n },\\n \\"scripts\\":{\\n \\"name\\":\\"加载脚本列表\\",\\n \\"description\\":\\"页面所加载的脚本文件路径集合\\",\\n \\"type\\":\\"array\\",\\n \\"defaultValue\\":[]\\n }\\n }\\n },\\n \\"placeholder\\":{\\n \\"name\\":\\"占位符\\",\\n \\"selectors\\":\\".component.placeholder\\",\\n \\"implement\\":\\"component.placeholder\\",\\n \\"description\\":\\"用于在界面中占住一部分位置。当指定的元素类型不存在时,系统会自动将元素类型切换成此类型\\",\\n \\"fields\\":{\\n \\"id\\":false,\\n \\"value\\":{\\n \\"name\\":\\"内容\\",\\n \\"description\\":\\"占位符内的文本\\",\\n \\"optional\\":false\\n } \\n }\\n },\\n \\"image\\":{\\n \\"name\\":\\"图片\\",\\n \\"selectors\\":\\".component.image > img\\",\\n \\"implement\\":\\"component.image\\",\\n \\"description\\":\\"将链接的图片显示在界面上\\",\\n \\"fields\\":{\\n \\"src\\":{\\n \\"name\\":\\"链接\\",\\n \\"description\\":\\"一张图片链接\\"\\n }\\n }\\n },\\n \\"includer\\":{\\n \\"name\\":\\"导入器\\",\\n \\"implement\\":\\"component.includer\\",\\n \\"description\\":\\"用于导入其它界面配置\\",\\n \\"fields\\":{\\n \\"include\\":{\\n \\"name\\":\\"导入\\",\\n \\"description\\":\\"导入界面配置的命名空间\\",\\n \\"optional\\":false\\n }\\n },\\n \\"config\\":{\\n \\"name\\":\\"修改导入的内容文本\\",\\n \\"description\\":\\"修改导入的内容文本\\"\\n } \\n }\\n}\\n```\\n所映射的模板资源是存放在 **template.html.tag** 命名空间下,如 **viewport** 映射的模板资源是 **template.html.tag.container.viewport**\\n\\n### <span id=\\"config-web\\">web</span>\\n服务器配置\\n\\n```json\\n{\\n \\"listen\\":3000,\\n \\"directories\\":{\\n \\"TEST\\":true,\\n \\"DIST\\":true,\\n \\"LIB\\":true,\\n \\"EXAMPLE\\":true,\\n \\"MEDIA\\":true\\n }\\n}\\n```\\n* **listener** 服务器启动端口\\n* **directories** 服务器目录\\n\\n服务器可以访问的目录,而目录是在配置 [path](#config-path) 中配置的目录短名\\n\\n### <span id=\\"config-path\\">path</span>\\n工程目录配置\\n```json\\n{\\n \\"LIB\\":\\"lib\\",\\n \\"CACHE\\":\\"cache\\",\\n \\"DEBUG\\":\\"debug\\",\\n \\"DIST\\":\\"dist\\",\\n \\"CSS\\":\\"css\\",\\n \\"HTML\\":\\"html\\",\\n \\"SCRIPT\\":\\"script\\",\\n \\"TEMPLATE\\":\\"template\\",\\n \\"TEST\\":\\"test\\",\\n \\"EXAMPLE\\":\\"example\\",\\n \\"MEDIA\\":\\"media\\",\\n \\"DOCS\\":\\"docs\\"\\n}\\n```\\n\\n* **LIB** 外部资源目录,主要是存放第三方的类库,如Bootstrap、WeUI的样工文件、JQuery的脚本文件\\n* **CACHE** 命令执行缓存目录,存放为了加快运行速度而增加的缓存文件\\n* **DEBUG** 调试目录,存放中间编译程序文件,如替换成绝对引用路径的样式源文件、通过JSON配置转换的HTML源代码等\\n* **DIST** 发布目录,存放可执行的程序文件,如页面文件、脚本文件、样式文件等\\n* **CSS** 样式目录,存放所有样式源文件\\n* **HTML** 页面目录,存放页面文件与结构页面文件\\n* **SCRIPT** 脚本目录,存放脚本源文件\\n* **TEMPLATE** 模板目录,存放模板源文件,包括脚本源文件转义、结构页面转换转义等文件\\n* **TEST** 测试目录,用于存放测试样式效果与脚本功能的资源\\n* **EXAMPLE** 演示目录,用于存放用以演示当前工程功能的页面文件\\n* **MEDIA** 多媒体目录,用于存放多媒体资源的目录,如图片、字体图标等\\n* **DOCS** 文档目录,存放基于界面的文档描述文件\\n\\n### <span id=\\"config-html\\">html</span>\\n界面配置\\n```json\\n {\\n \\"viewport\\":{\\n \\"selectors\\":[\\n \\"body.android\\",\\n \\"body.ios\\",\\n \\"body.android.weixin\\",\\n \\"body.ios.weixin\\"\\n ]\\n },\\n \\"index\\":{\\n \\"name\\":\\"首页\\",\\n \\"descripton\\":\\"汇集所有应用功能的门户\\",\\n \\"implement\\":\\"index\\"\\n },\\n \\"mine\\":{\\n \\"name\\":\\"我\\",\\n \\"descripton\\":\\"基于当前登录用户的个人设置与门户\\",\\n \\"implement\\":\\"mine\\"\\n }\\n }\\n```\\n\\n* **selectors** 界面需要使用的CSS样式配置\\n* **implement** 指定当前界面的实现\\n\\n## <span id=\\"toolkit\\">工具指令</span>\\n\\n### <span id=\\"toolkit-web\\">启动服务器</span>\\n用于启动内置服务器,用于调试与运行程序\\n\\n```bash\\n1010 web\\n```\\n\\n输出结果如下:\\n\\n```bash\\n服务启动 3000 开始监听\\n```\\n\\n其中 **3000** 表示服务器启动端口,此端口可以参考配置 [web](#config-web)\\n\\n> 如果执行此命令出现错误时,修改端口号即可\\n\\n### <span id=\\"toolkit-create\\">新建文件</span>\\n\\n```bash\\n1010 create [新建文件路径]\\n```\\n\\n> 新建文件路径必须指定\\n\\n### <span id=\\"toolkit-html\\">编译界面</span>\\n\\n将界面源代码转换成可以运行的界面\\n命令签名如下:\\n\\n```bash\\n1010 html [界面文件路径]\\n```\\n\\n> 页面文件路径必须是配置 [path](#config-path) 指定 **HTML** 的路径下的后缀名为 **.html.json** 或者 **.html** 文件\\n\\n### <span id=\\"toolkit-docs\\">生成文档</span>\\n\\n基于界面系统生成相对应的文档,用于分析界面构造以及脚本关系等\\n命令签名如下:\\n\\n```bash\\n1010 docs [界面文件名称]\\n```\\n> 界面文件由 [html](#config-html) 配置指定\\n> 如果不指界面文件名称,则生成当前工程所有界面文档\\n\\n### <span id=\\"toolkit-test\\">编译测试页面</span>\\n\\n将测试页面源代码转换成可以运行的页面\\n命令签名如下:\\n\\n```bash\\n1010 test [页面文件路径]\\n```\\n\\n> 页面文件路径必须是配置 [path](#config-path) 指定 **TEST** 的路径下的后缀名为 **.source.html** 文件\\n\\n### <span id=\\"toolkit-clear\\">清理</span>\\n\\n用于清理工程中生成的内容\\n命令签名如下:\\n\\n```bash\\n1010 clear [清理目标]\\n```\\n清理目标:\\n* **dist**: 发布\\n* **debug**: 调试\\n* **docs**: 文档\\n\\n> 如果不指定文档指令,则执行所有清理\\n\\n### <span id=\\"toolkit-remove\\">删除</span>\\n\\n删除指定文件\\n命令签名如下:\\n\\n```bash\\n1010 remove [删除文件路径]\\n```\\n\\n> 如果删除文件路径未指定文件后缀名,则会删除该同级目录下所有具备相同名称的文件","owner":{"name":"cheng022074","avatar":"https://github.com/cheng022074.png","link":"https://github.com/cheng022074"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["toolkit","cli"],"created":1472538209390,"modified":1500344935970,"lastPublisher":{"name":"cheng022074","email":"cheng022074@qq.com","avatar":"https://gravatar.com/avatar/c78048992d99f4dd7e77929bb5cf754e","link":"https://www.npmjs.com/~cheng022074"},"owners":[{"name":"cheng022074","email":"cheng022074@qq.com","avatar":"https://gravatar.com/avatar/c78048992d99f4dd7e77929bb5cf754e","link":"https://www.npmjs.com/~cheng022074"}],"lastCrawl":"2017-12-04T22:42:55.047Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1011","body":{"objectID":"1011","name":"1011","concatenatedName":"1011","downloadsLast30Days":13,"downloadsRatio":9.414345836995283e-8,"humanDownloadsLast30Days":"13","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-04-01T08:42:35.881Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{"express":"^4.15.2"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lfj","email":"13729042678@163.com","avatar":"https://gravatar.com/avatar/2b75d2abb2b3262ee1fb86924007ef4d","link":"https://www.npmjs.com/~lfj"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1491036155881,"modified":1491036155881,"lastPublisher":{"name":"lfj","email":"13729042678@163.com","avatar":"https://gravatar.com/avatar/2b75d2abb2b3262ee1fb86924007ef4d","link":"https://www.npmjs.com/~lfj"},"owners":[{"name":"lfj","email":"13729042678@163.com","avatar":"https://gravatar.com/avatar/2b75d2abb2b3262ee1fb86924007ef4d","link":"https://www.npmjs.com/~lfj"}],"lastCrawl":"2017-12-04T22:42:55.048Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10119-dep","body":{"objectID":"10119-dep","name":"10119-dep","concatenatedName":"10119dep","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"2.0.0","versions":{"1.0.0":"2015-11-12T01:58:38.245Z","2.0.0":"2015-11-12T02:06:40.960Z"},"tags":{"latest":"2.0.0"},"description":null,"dependencies":{"10119-subdep":"^2.0.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1447293518245,"modified":1447294000960,"lastPublisher":{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"},"owners":[{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"}],"lastCrawl":"2017-12-04T22:42:55.048Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10119-subdep","body":{"objectID":"10119-subdep","name":"10119-subdep","concatenatedName":"10119subdep","downloadsLast30Days":28,"downloadsRatio":2.0277052571989842e-7,"humanDownloadsLast30Days":"28","popular":false,"version":"2.0.0","versions":{"1.0.0":"2015-11-12T01:59:08.909Z","2.0.0":"2015-11-12T02:01:07.773Z"},"tags":{"latest":"2.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1447293548909,"modified":1447293667773,"lastPublisher":{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"},"owners":[{"name":"lxe","email":"lxe@lxe.co","avatar":"https://gravatar.com/avatar/22d09a36178653abe64fe99a71dc2add","link":"https://www.npmjs.com/~lxe"}],"lastCrawl":"2017-12-04T22:42:55.048Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"102","body":{"objectID":"102","name":"102","concatenatedName":"102","downloadsLast30Days":20,"downloadsRatio":1.4483608979992745e-7,"humanDownloadsLast30Days":"20","popular":false,"version":"0.0.1","versions":{"0.0.1":"2014-05-14T07:59:58.669Z"},"tags":{"latest":"0.0.1"},"description":"ooxx","dependencies":{"commander":"1.0.x"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":["framework","server","tianma"],"created":1400054398669,"modified":1400054398669,"lastPublisher":{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"},"owners":[{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"}],"lastCrawl":"2017-12-04T22:42:55.048Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1024","body":{"objectID":"1024","name":"1024","concatenatedName":"1024","downloadsLast30Days":38,"downloadsRatio":2.751885706198621e-7,"humanDownloadsLast30Days":"38","popular":false,"version":"1.0.2","versions":{"1.0.0":"2015-11-07T10:51:46.336Z","1.0.1":"2015-12-17T02:19:00.013Z","2.0.0":"2015-12-17T02:24:00.378Z","1.0.2":"2015-12-17T02:24:25.749Z"},"tags":{"latest":"1.0.2"},"description":"1024","dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"yuzhigang33","email":"yuzhigang33@gmail.com","avatar":"https://gravatar.com/avatar/028f3b58ad37da9bc16bbfcf5a4341c4","link":"https://www.npmjs.com/~yuzhigang33"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["1024"],"created":1446893506336,"modified":1450319065749,"lastPublisher":{"name":"yuzhigang33","email":"yuzhigang33@gmail.com","avatar":"https://gravatar.com/avatar/028f3b58ad37da9bc16bbfcf5a4341c4","link":"https://www.npmjs.com/~yuzhigang33"},"owners":[{"name":"yuzhigang33","email":"yuzhigang33@gmail.com","avatar":"https://gravatar.com/avatar/028f3b58ad37da9bc16bbfcf5a4341c4","link":"https://www.npmjs.com/~yuzhigang33"}],"lastCrawl":"2017-12-04T22:42:55.048Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1046396106","body":{"objectID":"1046396106","name":"1046396106","concatenatedName":"1046396106","downloadsLast30Days":15,"downloadsRatio":1.0862706734994559e-7,"humanDownloadsLast30Days":"15","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-12-09T09:11:36.554Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"fttserver","email":"1370791265@qq.com","avatar":"https://gravatar.com/avatar/bcd1f45daaaa07e00737e4e43c1eeb3d","link":"https://www.npmjs.com/~fttserver"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":["fttcopydir"],"created":1481274696554,"modified":1481274696554,"lastPublisher":{"name":"fttserver","email":"1370791265@qq.com","avatar":"https://gravatar.com/avatar/bcd1f45daaaa07e00737e4e43c1eeb3d","link":"https://www.npmjs.com/~fttserver"},"owners":[{"name":"fttserver","email":"1370791265@qq.com","avatar":"https://gravatar.com/avatar/bcd1f45daaaa07e00737e4e43c1eeb3d","link":"https://www.npmjs.com/~fttserver"}],"lastCrawl":"2017-12-04T22:42:55.049Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"106","body":{"objectID":"106","name":"106","concatenatedName":"106","downloadsLast30Days":104,"downloadsRatio":7.531476669596226e-7,"humanDownloadsLast30Days":"104","popular":false,"version":"2.1.1","versions":{"1.0.0":"2016-02-23T16:47:57.329Z","1.0.1":"2016-02-23T16:55:46.438Z","1.0.2":"2016-02-24T08:57:52.421Z","1.0.3":"2016-02-24T09:01:06.085Z","1.0.4":"2016-04-12T11:53:26.569Z","1.0.5":"2016-06-01T14:26:03.360Z","1.1.0":"2016-06-03T13:13:07.482Z","1.1.1":"2016-06-07T08:36:34.595Z","1.1.2":"2016-06-07T08:50:49.025Z","1.1.3":"2016-11-22T12:43:59.182Z","1.1.4":"2016-12-12T10:04:51.294Z","2.0.0":"2017-06-20T08:09:06.672Z","2.0.1":"2017-10-03T09:54:51.374Z","2.0.2":"2017-10-03T10:03:02.817Z","2.0.3":"2017-10-03T10:06:26.661Z","2.0.4":"2017-10-05T13:15:12.227Z","2.0.5":"2017-10-11T08:12:51.599Z","2.1.1":"2017-10-26T08:48:13.671Z"},"tags":{"latest":"2.1.1"},"description":"Log library with sequences and colors, for node.js and browsers","dependencies":{"ansi-styles":"^2.2.0","winston":"^2.1.1"},"devDependencies":{"@types/ansi-styles":"^2.0.30","@types/node":"^7.0.31","mocha":"^2.4.5","pre-commit":"1.x","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-commonjs":"^8.2.1","timekeeper":"0.0.5","typescript":"2.4.x"},"githubRepo":{"user":"grantila","project":"106","path":"","head":"f5a78dd0641392e5960f78cab571c3cea40fd58b"},"gitHead":"f5a78dd0641392e5960f78cab571c3cea40fd58b","readme":"[![npm version][npm-image]][npm-url]\\n[![build status][travis-image]][travis-url]\\n\\n# 106\\n\\n### Log library with sequences and colors, for node.js and browsers\\n\\n# Synopsis\\n\\nThe numbers 106 are shaped like the word \\"log\\", but I assume you already got that.\\n\\nThere are lots of log libraries out there, but this one has two main targets:\\n\\n * Working the same in browsers and node.js\\n * Support for sequences (flows)\\n\\nWhen any kind of asynchronous operation take place, log lines get interleaved. This applies to server-side as well as client-side, and is the result of asynchrony per se.\\n\\nTo follow logs and see what lines are part of a certain code flow (a client-side outgoing call, or a server-side incoming request, e.g.), the concept of unique tags (or \\"sequences\\") help out a lot. Consider an HTTP server getting a request, performing multiple asynchronous tasks (like database operations) and then responding back. All things which get logged here, will be interleaved with other requests.\\n\\nYou also have the possibility to add your own custom transports (e.g. to automatically send log errors from the browser to the server).\\n\\n# API\\n\\nThe API works the same in the browser as well as in node.js.\\n\\n## Core logging API\\n\\n```js\\n// In lib/foobar.js:\\nvar log = require( \'106\' )( \'lib:foobar\' );\\n\\nrequire( \'106\' ).level = \'debug\'; // Sets log level\\n\\nlog.info( \\"Hello world\\", { objects: \'are allowed\' } );\\nlog.warn( \\"Warnings with warn()\\" );\\nlog.error( \\"Errors with error()\\", new Error( \\"doh!\\" ) );\\n```\\n\\nThe log levels are:\\n\\n```\\nsilly\\ndebug\\nverbose\\ninfo\\nwarn\\nerror\\n```\\n\\n## Sequences\\n\\n```js\\nvar logger = require( \'106\' );\\nvar log = logger( \'server\' );\\nvar Sequencer = logger.Sequencer;\\n\\n// An http server creates a sequencer for incoming HTTP requests\\nvar sequencer = new Sequencer( \'http\', { timeout: 5000 } );\\n\\n// For each incoming request:\\nvar seq = sequencer.next( );\\n\\n// Start the sequence\\nlog.info( seq, Sequencer.IN, \\"Got request %s\\", req.path );\\n\\n// Pass around \'seq\' wherever logging is needed, and prepend it\\n// to any arguments to log.info, log.warn, log.* ... Example:\\nlog.info( seq, \\"Querying database for users...\\" );\\n\\n// When the request ends successfully (HTTP server replies to client)\\nlog.info( seq, Sequencer.OUT, \\"Request finished\\" );\\n// or if the request chain failed:\\nvar err = new Error( \\"Could not connect to database\\" );\\nlog.error( seq, Sequencer.OUTERR, \\"Request failed\\", err );\\n```\\n\\nAll logging using a sequence will print the time since the sequence was created. The output will be:\\n\\n```\\n2016-02-24 08:47:08.315 info - server: [seq:http:1] ⇒ Got request /my-path 1ms\\n2016-02-24 08:47:08.322 info - server: [seq:http:1] Querying database for users... 2ms\\n2016-02-24 08:47:08.324 info - server: [seq:http:1] ⇐ Request finished 3ms\\n2016-02-24 08:47:08.324 error - server: [seq:http:1] ⇍ Request failed 4ms\\n{\\n name: \\"Error\\",\\n message: \\"Could not connect to database\\",\\n stack: [ ... ]\\n}\\n```\\n\\nThe above will be colored, and each sequence will get its own color (circulating between a few pre-defined colors). Again, this applies to node.js as well as browsers!\\n\\n## Custom transports\\n\\nTo add a custom transport, you create your own callback function, and call `addTransport( )` on the logger. You can also set your own log-level using the second (optional) argument, so that this transport only get certain logs.\\n\\n```js\\nvar logger = require( \'106\' );\\nvar log = logger( \'foo\' );\\n\\nfunction customTransport( logData )\\n{\\n logData.level; // The log level, \'info\', \'warn\', etc\\n logData.messages; // The message parts (as an array)\\n logData.errror; // The error object, if that was the last\\n // argument.\\n logData.meta; // The last argument to log() if it\'s an\\n // object or array, and not covered by a \'%s\'.\\n logData.prefix; // The prefix (\'foo\' in this example)\\n logData.sequence; // The sequence (or null)\\n logData.sequenceDirection; // The sequence direction (or null)\\n logData.time; // The time (as a javascript Date object)\\n logData.timestamp; // The time as an ISO-formatted string\\n}\\n\\n// Forward error logs to \\"customTransport\\"\\nlogger.addTransport( customTransport, { level: \'warn\' } );\\n\\nlog.error( \\"This will be sent to the custom logger\\" );\\nlog.warn( \\"And this\\" );\\nlog.info( \\"But this won\'t\\" );\\n```\\n\\n[npm-image]: https://img.shields.io/npm/v/106.svg\\n[npm-url]: https://npmjs.org/package/106\\n[travis-image]: https://img.shields.io/travis/grantila/106.svg\\n[travis-url]: https://travis-ci.org/grantila/106\\n","owner":{"name":"grantila","avatar":"https://github.com/grantila.png","link":"https://github.com/grantila"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["log","node","browser","colors","sequences"],"created":1456246077329,"modified":1509007693671,"lastPublisher":{"name":"grantila","email":"g.rantila@gmail.com","avatar":"https://gravatar.com/avatar/21cdc9075785f6adb12eddb8fef14e9e","link":"https://www.npmjs.com/~grantila"},"owners":[{"name":"grantila","email":"g.rantila@gmail.com","avatar":"https://gravatar.com/avatar/21cdc9075785f6adb12eddb8fef14e9e","link":"https://www.npmjs.com/~grantila"}],"lastCrawl":"2017-12-04T22:42:55.049Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"1094904274","body":{"objectID":"1094904274","name":"1094904274","concatenatedName":"1094904274","downloadsLast30Days":16,"downloadsRatio":1.1586887183994196e-7,"humanDownloadsLast30Days":"16","popular":false,"version":"1.0.0","versions":{"1.0.0":"2016-12-09T09:11:37.472Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"xuekaikai","email":"1094904274@qq.com","avatar":"https://gravatar.com/avatar/670638cb5aa9431cb2d88c8bba1348d1","link":"https://www.npmjs.com/~xuekaikai"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1481274697472,"modified":1481274697472,"lastPublisher":{"name":"xuekaikai","email":"1094904274@qq.com","avatar":"https://gravatar.com/avatar/670638cb5aa9431cb2d88c8bba1348d1","link":"https://www.npmjs.com/~xuekaikai"},"owners":[{"name":"xuekaikai","email":"1094904274@qq.com","avatar":"https://gravatar.com/avatar/670638cb5aa9431cb2d88c8bba1348d1","link":"https://www.npmjs.com/~xuekaikai"}],"lastCrawl":"2017-12-04T22:42:55.049Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10bis","body":{"objectID":"10bis","name":"10bis","concatenatedName":"10bis","downloadsLast30Days":14,"downloadsRatio":1.0138526285994921e-7,"humanDownloadsLast30Days":"14","popular":false,"version":"1.0.0","versions":{"1.0.0":"2015-06-20T11:11:29.771Z"},"tags":{"latest":"1.0.0"},"description":"wrapper on 10bis.co.il internal apis for happier food related hacking","dependencies":{"node-geocoder":"^2.21.1","promise":"^7.0.1","request":"^2.57.0"},"devDependencies":{},"githubRepo":{"user":"GabiGrin","project":"10bisjs","path":"","head":"b1b1e74973525c87900b0dc0c9bd61588ecdf04a"},"gitHead":"b1b1e74973525c87900b0dc0c9bd61588ecdf04a","readme":"Get restaurant names from 10bis.co.il(Israeli restaurants/food delivery aggregator) by address.\\n\\n#Example\\n```\\nvar tenBis = require(\'TenBis\');\\ntenBis\\n .getRestaurantsByAddress(\'נמל תל אביב\')\\n .then(function (names) {\\n console.log(names);\\n });\\n```\\n\\nThis was created to be used with other projects that involve hacking fun projects around food.","owner":{"name":"GabiGrin","avatar":"https://github.com/GabiGrin.png","link":"https://github.com/GabiGrin"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["10bis","tlv","food","sibus"],"created":1434798689771,"modified":1434798689771,"lastPublisher":{"name":"gabigrin","email":"gabi.grinberg@gmail.com","avatar":"https://gravatar.com/avatar/41eaefe6a6d122687ac8725df261ea7b","link":"https://www.npmjs.com/~gabigrin"},"owners":[{"name":"gabigrin","email":"gabi.grinberg@gmail.com","avatar":"https://gravatar.com/avatar/41eaefe6a6d122687ac8725df261ea7b","link":"https://www.npmjs.com/~gabigrin"}],"lastCrawl":"2017-12-04T22:42:55.049Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10bisjs","body":{"objectID":"10bisjs","name":"10bisjs","concatenatedName":"10bisjs","downloadsLast30Days":12,"downloadsRatio":8.690165387995647e-8,"humanDownloadsLast30Days":"12","popular":false,"version":"1.0.0","versions":{"1.0.0":"2015-06-12T20:21:23.287Z"},"tags":{"latest":"1.0.0"},"description":"wrapper on 10bis.co.il internal apis for happier food related hacking","dependencies":{"node-geocoder":"^2.21.1","promise":"^7.0.1","request":"^2.57.0"},"devDependencies":{},"githubRepo":{"user":"GabiGrin","project":"10bisjs","path":"","head":"b1b1e74973525c87900b0dc0c9bd61588ecdf04a"},"gitHead":"b1b1e74973525c87900b0dc0c9bd61588ecdf04a","readme":"ERROR: No README data found!","owner":{"name":"GabiGrin","avatar":"https://github.com/GabiGrin.png","link":"https://github.com/GabiGrin"},"deprecated":"WARNING: This project has been renamed to 10bis. Install using 10bis instead.","badPackage":false,"homepage":null,"license":"MIT","keywords":["10bis","tlv","food","sibus"],"created":1434140483287,"modified":1434798594698,"lastPublisher":{"name":"gabigrin","email":"gabi.grinberg@gmail.com","avatar":"https://gravatar.com/avatar/41eaefe6a6d122687ac8725df261ea7b","link":"https://www.npmjs.com/~gabigrin"},"owners":[{"name":"gabigrin","email":"gabi.grinberg@gmail.com","avatar":"https://gravatar.com/avatar/41eaefe6a6d122687ac8725df261ea7b","link":"https://www.npmjs.com/~gabigrin"}],"lastCrawl":"2017-12-04T22:42:55.050Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10cartsharing","body":{"objectID":"10cartsharing","name":"10cartsharing","concatenatedName":"10cartsharing","downloadsLast30Days":38,"downloadsRatio":2.751885706198621e-7,"humanDownloadsLast30Days":"38","popular":false,"version":"1.0.3","versions":{"1.0.0":"2015-12-30T08:19:54.369Z","1.0.1":"2015-12-30T08:26:24.361Z","1.0.2":"2015-12-30T08:27:16.554Z","1.0.3":"2015-12-30T08:29:53.156Z"},"tags":{"latest":"1.0.3"},"description":null,"dependencies":{"express":"^4.13.3","lodash":"^3.10.1","socket.io":"^1.3.7"},"devDependencies":{},"githubRepo":{"user":"id0Sch","project":"cart-sharing","path":"","head":"master"},"gitHead":"master","readme":"ERROR: No README data found!","owner":{"name":"id0Sch","avatar":"https://github.com/id0Sch.png","link":"https://github.com/id0Sch"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1451463594369,"modified":1451464193156,"lastPublisher":{"name":"id0sch","email":"ido.schachter@gmail.com","avatar":"https://gravatar.com/avatar/684443be9a72ec615d093e6841f5e29b","link":"https://www.npmjs.com/~id0sch"},"owners":[{"name":"id0sch","email":"ido.schachter@gmail.com","avatar":"https://gravatar.com/avatar/684443be9a72ec615d093e6841f5e29b","link":"https://www.npmjs.com/~id0sch"}],"lastCrawl":"2017-12-04T22:42:55.050Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10chars-test","body":{"objectID":"10chars-test","name":"10chars-test","concatenatedName":"10charstest","downloadsLast30Days":214,"downloadsRatio":0.0000015497461608592238,"humanDownloadsLast30Days":"214","popular":false,"version":"1.0.34","versions":{"1.0.0":"2017-04-27T10:23:38.304Z","1.0.1":"2017-04-27T10:31:52.886Z","1.0.2":"2017-04-28T01:52:07.130Z","1.0.3":"2017-04-28T02:01:09.402Z","1.0.4":"2017-04-28T03:51:16.178Z","1.0.5":"2017-04-28T04:11:35.254Z","1.0.6":"2017-04-28T04:16:49.359Z","1.0.7":"2017-04-28T04:20:40.583Z","1.0.8":"2017-04-28T04:21:27.151Z","1.0.9":"2017-04-28T04:22:30.057Z","1.0.10":"2017-04-28T04:29:24.794Z","1.0.11":"2017-04-28T04:35:29.472Z","1.0.12":"2017-04-28T04:37:47.782Z","1.0.13":"2017-04-28T04:38:46.233Z","1.0.14":"2017-04-28T05:06:33.737Z","1.0.15":"2017-04-28T05:09:42.579Z","1.0.16":"2017-04-28T05:13:19.697Z","1.0.17":"2017-04-28T05:14:26.751Z","1.0.18":"2017-04-28T07:02:09.109Z","1.0.19":"2017-04-28T07:51:08.467Z","1.0.20":"2017-04-28T07:54:20.885Z","1.0.21":"2017-04-28T07:59:36.432Z","1.0.22":"2017-04-28T08:01:27.080Z","1.0.23":"2017-04-28T08:09:25.436Z","1.0.24":"2017-04-28T08:09:54.093Z","1.0.25":"2017-04-28T08:12:33.594Z","1.0.26":"2017-04-28T08:14:34.488Z","1.0.27":"2017-04-28T08:16:11.267Z","1.0.29":"2017-04-28T08:23:14.680Z","1.0.30":"2017-04-28T08:28:43.876Z","1.0.31":"2017-04-28T08:30:24.792Z","1.0.32":"2017-04-28T08:32:30.112Z","1.0.33":"2017-04-29T00:59:10.001Z","1.0.34":"2017-04-29T01:06:35.675Z"},"tags":{"latest":"1.0.34"},"description":null,"dependencies":{"babel-core":"^6.23.1","babel-eslint":"^7.1.1","babel-loader":"^6.3.2","babel-plugin-transform-flow-strip-types":"^6.22.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.23.0","cross-spawn":"^5.1.0","css-loader":"^0.26.1","empty":"^0.10.1","eslint":"^3.16.1","eslint-config-airbnb":"^14.1.0","eslint-plugin-flow-vars":"0.5.0","eslint-loader":"^1.6.3","eslint-plugin-flowtype":"^2.30.0","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^4.0.0","eslint-plugin-react":"^6.10.0","extract-text-webpack-plugin":"^2.1.0","file-loader":"^0.10.0","flow-bin":"^0.39.0","lodash":"^4.17.4","node-sass":"^4.5.0","sass-loader":"^6.0.2","style-loader":"^0.13.1","webpack":"^2.2.1","webpack-dev-server":"^2.4.1","axios":"^0.15.3","immutable":"^3.8.1","js-logger":"^1.3.0","page":"^1.7.1","purecss":"^0.6.2","react":"^15.5.4","react-dom":"^15.5.4","redux":"^3.6.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"10chars","email":"luke.helg@gmail.com","avatar":"https://gravatar.com/avatar/3eaf392e3247166d2a2f1a1f04890aba","link":"https://www.npmjs.com/~10chars"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":[],"created":1493288618304,"modified":1493427995675,"lastPublisher":{"name":"10chars","email":"luke.helg@gmail.com","avatar":"https://gravatar.com/avatar/3eaf392e3247166d2a2f1a1f04890aba","link":"https://www.npmjs.com/~10chars"},"owners":[{"name":"10chars","email":"luke.helg@gmail.com","avatar":"https://gravatar.com/avatar/3eaf392e3247166d2a2f1a1f04890aba","link":"https://www.npmjs.com/~10chars"}],"lastCrawl":"2017-12-04T22:42:55.050Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10er10","body":{"objectID":"10er10","name":"10er10","concatenatedName":"10er10","downloadsLast30Days":17,"downloadsRatio":1.2311067632993832e-7,"humanDownloadsLast30Days":"17","popular":false,"version":"0.23.0","versions":{"0.23.0":"2013-10-15T20:11:28.552Z"},"tags":{"latest":"0.23.0"},"description":"10er10 is an HTML5 audio jukebox. It works on Firefox 4+ and Chromium/Chrome.","dependencies":{"qs":"~0.6.5","debug":"~0.7.2","mime":"~1.2.11","gm":"~1.13.1","ws":"~0.4.31","musicmetadata":"~0.2.5","mmmagic":"~0.3.4","prompt":"~0.2.11","nodemailer":"~0.5.3","connect":"~2.9.0","ncouch":"&gt;=1.0.0"},"devDependencies":{},"githubRepo":{"user":"dready92","project":"10er10","path":"","head":"master"},"gitHead":"master","readme":"10er10 is an HTML5 audio jukebox. It works on Firefox 4+ and Chromium/Chrome.\\n\\nInstall\\n=======\\n\\nInstall servers\\n---------------\\n\\n* CouchDB : the safe way is to install CouchDB by downloading the CouchBase Server ( http://www.couchbase.com/ ). You can also try from source ( http://couchdb.apache.org ), or via your package manager.\\n\\nMinimum required version : 1.0.1\\n\\n* Node.js : install node.js ( http://nodejs.org ) from source or with your package manager.\\n\\nMinimum required version : 0.6.0\\n\\nDon\'t forget to add the node binary\'s folder to the path of the Unix user which will run 10er10.\\n\\nDebian squeeze users, using the nodejs deb package : you should create a symlink from /usr/lib/nodejs to /usr/lib/node for connect to work.\\n\\n* NPM : install the Node package manager ( http://npmjs.org ). As of node.js 0.6.3, NPM is now included: no more need to install it !\\n\\n\\nHint : **curl http://npmjs.org/install.sh | sh**\\n\\nPlease check that your npm version (using the command **npm -v**) is >= 1.0.0 .\\n\\nInstall audio utilities\\n-----------------------\\n\\n10er10 website allows you to upload flac, mp3, m4a and ogg audio files. Flac, mp3 and m4a files will be converted on the fly to ogg.\\n\\n* install **lame** executable : it\'s certainly is available from your distribution packages\\n\\n* install **oggenc** executable : it\'s certainly is available from your distribution packages\\n\\n* install **ogginfo** executable : it\'s certainly available from your distribution packages\\n\\n* install **vorbiscomment** executable : it\'s certainly available from your distribution packages\\n\\n* install **flac** executable : it\'s certainly available from your distribution packages\\n\\n* install **faad** executable : it\'s certainly available from your distribution packages\\n\\nInstall graphics utilities\\n---------------------------\\n\\n10er10 website allows you to upload images related to songs (eg. album artwork).\\n\\n* install **GraphicsMagick** executables : it\'s certainly available from your distribution packages\\n\\nAbout 10er10 running environments\\n---------------------------------\\n\\n10er10 got two distinct environments : dev and prod. The main difference is that, in the prod environment, all static files are cached by the node.js server (so they are read only once from the filesystem).\\n\\n10er10 dev HTTP port is 8888. 10er10 prod HTTP port is 8124.\\n\\nInstall 10er10 files & required node modules\\n--------------------------------------------\\n\\nUnzip/tar your 10er10 download.\\n\\ncd to the 10er10 root directory (the one that contains the *audio*, *node* and *views* folders).\\n\\n* node modules : install required node packages :\\n\\n npm install\\n\\nYou should now have a new **node_modules** folder at the same level as the \\"audio\\", \\"node\\" and \\"views\\" folders.\\n\\nConfigure 10er10\\n----------------\\n\\nBeginning from 0.6, the preferred way to tweak the configuration is to create a new file **node/config.local.js** and put the settings you want to overwrite.\\n\\nExample : if you need to set the path where audio file are stored to */some/where/on/the/disk*, open **node/config.local.js** and define the variable inside: like :\\n\\n exports.audio = { dir: \\"/some/where/on/the/disk\\" };\\n\\nDoing this, your configuration will be kept when you upgrade your 10er10 server.\\n\\nOpen **node/config.js**\\n\\n* setup your databases configuration\\n\\n10er10 uses 4 couchdb databases. Look at **exports.couch_prod** and **exports.couch_dev** objects, and be sure to point the DSN to your CouchDB server. Databases will be created by the installer.\\n\\n* configure audio path\\n\\n10er10 needs two distinct folders to store audio files: \\n\\n\\n- exports.audio.tmpdir : the temporary folder is where the uploaded files are stored\\n- exports.audio.dir : this is where the ogg files are stored. \\n\\nOf course, those two folders should be writable by the unix user that will launch the node server.\\n\\n* configure images path\\n\\n10er10 needs two distinct folders to store images:\\n\\n- exports.images.tmpdir : the temporary folder is where the uploaded files are stored (could be the same than exports.audio.tmpdir)\\n- exports.images.dir : this is where the images are stored. \\n\\n\\n* about audio URI\\n\\n**exports.audio_root** is used by the browser to know where is the path to the audio files. If your 10er10 root is \\"/\\", then the audio_root is \\"/audio\\". If your 10er10 root is \\"/somewhere/10er10\\", set audio_root to \\"/somewhere/10er10/audio\\". You can also set the complete URL ( eg http://my.domain.com/10er10/audio ). Unless you\'re behind a reverse proxy and you know what you\'re doing, don\'t change this setting.\\n\\n\\n* configure Unix utilities\\n\\nLook at exports.cmds.\\n\\n- exports.cmds.lame : the path to the lame executable\\n- exports.cmds.oggenc : the path to the oggenc executable\\n- exports.cmds.ogginfo : the path to the ogginfo executable\\n- exports.cmds.vorbiscomment : the path to the vorbiscomment executable\\n- exports.cmds.flac : the path to the flac executable\\n- exports.cmds.faad : the path to the faad executable\\n\\nStill here ? Let\'s go for the fun part.\\n \\nLaunch the installer\\n--------------------\\n\\ngo into the node/install directory and run the installer.js script.\\n\\nTo setup dev databases:\\n\\n cd node/install\\n node install.js\\n\\nTo setup prod databases:\\n\\n cd node/install\\n node install.js -p\\n\\n\\nCreate a 10er10 user\\n--------------------\\n\\nGo into the node/admin directory and run the d10-createUser.js script.\\n\\nThe password should be hard enough, or the account won\'t be created. (at least 8 characters, at least 4 distinct characters).\\n\\nWon\'t work :\\n\\n test\\n xxxxxxxx\\n\\n\\n\\nTo create a user on dev install :\\n\\n cd node/admin\\n node d10-createUser.js login thepassword\\n\\nTo create a user on prod install :\\n\\n cd node/admin\\n node d10-createUser.js login thepassword -p\\n\\nLaunch the server\\n-----------------\\n\\nGo into the node directory and run the server.js script :\\n\\nTo launch the dev instance :\\n\\n cd node\\n node server.js\\n\\nTo launch the prod instance :\\n\\n cd node\\n node server.js -p\\n\\n\\nYou can fire you browser and go to http://[your server]:8888/ if you launched the dev instance, http://[your server]:8124/ if you launched the prod server.\\n\\nBonus: Configure your invites server\\n------------------------------------\\n\\nYou want to send some friends an email so they can create an account on your 10er10 server and start using the application ? The doc folder contains a file to help you configure invites server.\\n\\n\\nWhat else ?\\n-----------\\n\\nFork, patch, send pull requests !\\n\\nFollow 10er10 development : https://plus.google.com/u/0/b/109983204693472020055/\\n","owner":{"name":"dready92","avatar":"https://github.com/dready92.png","link":"https://github.com/dready92"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":[],"created":1381867702680,"modified":1381867888552,"lastPublisher":{"name":"michael_bailly","email":"mickael.bailly@free.fr","avatar":"https://gravatar.com/avatar/6001c8e964f58f703b9a9a652755ace5","link":"https://www.npmjs.com/~michael_bailly"},"owners":[{"name":"michael_bailly","email":"mickael.bailly@free.fr","avatar":"https://gravatar.com/avatar/6001c8e964f58f703b9a9a652755ace5","link":"https://www.npmjs.com/~michael_bailly"}],"lastCrawl":"2017-12-04T22:42:55.051Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10minutemail","body":{"objectID":"10minutemail","name":"10minutemail","concatenatedName":"10minutemail","downloadsLast30Days":26,"downloadsRatio":1.8828691673990566e-7,"humanDownloadsLast30Days":"26","popular":false,"version":"0.2.0","versions":{"0.1.0":"2017-02-16T17:07:43.789Z","0.2.0":"2017-02-16T18:17:20.511Z"},"tags":{"latest":"0.2.0"},"description":"10 minute mail api","dependencies":{"debug":"^2.6.1","request":"^2.79.0"},"devDependencies":{},"githubRepo":{"user":"orapouso","project":"node-10minutemail","path":"","head":"148f0ca6068e0f8587c68fd32111d91036ba21d0"},"gitHead":"148f0ca6068e0f8587c68fd32111d91036ba21d0","readme":"# 10minutemail Node API\\n\\nAPI to create and retrieve mail from [10minutemail](https://10minutemail.com)\\n\\n```\\nnpm install 10minutemail\\n```\\n\\n## Usage\\n\\n```js\\nvar minutemail = require(\'10minutemail\')\\n\\nmail = minutemail({timeout: 10000, startup: true})\\n\\nmail.on(\'address\', (address) => console.log(address))\\nmail.on(\'mail\', (mails) => console.log(mails[0].subject))\\nmail.on(\'count\', (count) => console.log(count)\\n```\\n\\n## API\\n\\nThe factory returns an EventEmitter that emits 3 events whenever they happen\\n\\n#### `var mail = minutemail([options])`\\n\\nCreates a new minutemail emitter that starts as soon as it stablishes a connection, and fetches the site every 10 seconds\\n\\nOptions include:\\n\\n```js\\n{\\n timeout: 10000,\\n startup: true // setting this to false would only create the emitter and retrieve the email address created\\n}\\n```\\n\\n### Properties\\n\\n##### `mail.address`\\n\\nHolds the email address retrieved from 10minutemail.com. This is an asynchronous fetch, so it may not be readily available. Listen for the `address` event.\\n\\n### Methods\\n\\n#### `mail.start()`\\n\\nStarts fetching emails and counts from 10minutemail.com\\n\\n#### `mail.stop()`\\n\\nStops fetching emails and counts\\n\\n## Events\\n\\n#### `mail.on(\'address\')`\\n\\nEmitted when the email address is retrieved. After it retrieves, the address is stored in the EventEmitter and accessed as `mail.address`\\n\\n#### `mail.on(\'mail\')`\\n\\nEmitted when there are any emails in the inbox\\n\\n#### `mail.on(\'count\')`\\n\\nEmitted when for every count request, event if it is 0","owner":{"name":"orapouso","avatar":"https://github.com/orapouso.png","link":"https://github.com/orapouso"},"deprecated":false,"badPackage":false,"homepage":null,"license":"MIT","keywords":["10minutemail","api"],"created":1487264863789,"modified":1487269040511,"lastPublisher":{"name":"orapouso","email":"orapouso@gmail.com","avatar":"https://gravatar.com/avatar/31ee34de597e65ac64e74361dae872e6","link":"https://www.npmjs.com/~orapouso"},"owners":[{"name":"orapouso","email":"orapouso@gmail.com","avatar":"https://gravatar.com/avatar/31ee34de597e65ac64e74361dae872e6","link":"https://www.npmjs.com/~orapouso"}],"lastCrawl":"2017-12-04T22:42:55.051Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"10tcl","body":{"objectID":"10tcl","name":"10tcl","concatenatedName":"10tcl","downloadsLast30Days":111,"downloadsRatio":8.038402983895974e-7,"humanDownloadsLast30Days":"111","popular":false,"version":"0.0.10","versions":{"0.0.1":"2012-11-27T16:37:50.354Z","0.0.2":"2012-11-29T19:28:42.792Z","0.0.3":"2012-11-29T20:01:33.274Z","0.0.4":"2012-11-29T20:48:22.004Z","0.0.5":"2012-12-02T00:47:08.316Z","0.0.6":"2012-12-05T03:12:47.863Z","0.0.7":"2012-12-05T21:25:06.925Z","0.0.8":"2012-12-10T04:42:51.623Z","0.0.9":"2012-12-14T01:28:16.292Z","0.0.10":"2013-02-13T12:42:39.137Z"},"tags":{"latest":"0.0.10"},"description":"CRUD over express and mongodb","dependencies":{"express":"3.0.x","mongoskin":"0.3.x","mustache":"*","jade":"*","sugar":"1.3.x","validator":"0.4.x","less":"*","less-middleware":"*"},"devDependencies":{},"githubRepo":{"user":"superpeixeboi","project":"10tcl","path":"","head":"master"},"gitHead":"master","readme":"## What is it?\\n\\n10tcl is a CRUD plugin that will add default routes to your express app, that read and store data in your mongodb.\\n\\n## How is it?\\n\\nIt works! ...mostly.\\nRight now I could not recommend it. Give it a few months before serious usage.\\nIt has some limitations and misconceptions, and it is not getting better soon.\\n\\n## Install\\n\\n $ npm install 10tcl\\n\\n## Config\\n\\nA config file must contain:\\n \\n module.exports = {\\n // used as title for your pages\\n brand: \'Day of the Tentacle IS HERE!\',\\n // used to assemble the connection string to your mongodb instance\\n db: { \\n usr: \'Purple\',\\n pwd: \'Tentacle\',\\n srv: \'ds044356.mongolab.com:49842\',\\n db: \'day_of_the_tentacle\',\\n par: \'auto_reconnect\'\\n },\\n // static admin user to allow first login\\n admin: { usr: \'admin\', pwd: \'ElGranSecreto\', name: \'Admin\', role: \'admin\'}\\n // __dirname of your root\\n root: root, \\n // if not informed it defaults to \'root/models\', \'root/controllers\' and \'root/views\'\\n pathToCtrls: \'/app/controllers\',\\n pathToModels: \'/app/models\',\\n pathToViews: \'/app/views\',\\n pathToValidator: \'app/models/validator\'\\n }\\n \\n## Use\\n\\n // __dirname will be the root to locate folders indicated in pathTo... properties\\n var app = require(\'10tcl\').attack(__dirname, \'/config/yourConfigFile\')\\n app.listen(yourPortHere)\\n\\n10tcl attack results in an express app configured with routes based on your models and controllers.\\n\\n### Database\\n\\napp.db contains a connection to your database.\\nIt was done by using Mongoskin and the credentials on the config object.\\n\\n### Controllers\\n\\nEvery .js file under your controllers folder was required, receiving (app, base, config).\\n\\nAn example of controller file would be:\\n\\n module.exports = function(app, base, config){\\n\\n function hello(req, res){\\n res.send(\'hello world\')\\n }\\n\\n app.get(\'/hello\', base.auth, hello )\\n\\n // will be used to create a menu\\n return {name: \'hello\', label: \'Hello World\'}\\n\\n }\\n\\n### Models\\n\\nEvery .js file under your models folder was required as well, no arguments.\\nEach binded to app.db by the model.name property, so now app.db[modelNameHere] points to a collection capable of restfull crud.\\n\\nAn example of model would be:\\n\\n module.exports = {\\n // model and db collection name\\n name: \'victims\',\\n // Title for pages and menu\\n label: \'Victims\',\\n // used with mustache to format list and drop down descriptions \\n format: \'Victim {{name}} {{lastName}}\',\\n // fields to format and forms (see next topic)\\n fields: [\\n { name: \'name\', label: \'Nome\', type: \'string\', checks: [\'hasValue\'] },\\n { name: \'lastName\', label: \'Sobrenome\', type: \'string\' }\\n ],\\n // create route \'<your-site>.com/victims\' pointing to 10tcl CRUD\\n routeTo10tcl: true,\\n // read the entire collection into the app, changes it before persisting\\n keepInCache: true,\\n // restrict access to users with one of these roles\\n onlyFor: [\'admin\'],\\n // used if you run \'node myApp.js mock\'\\n mock: [\\n {name: \'Mussum\', _id: \'508e0077d42bd6182f000001\'},\\n {name: \'Zacarias\', _id: \'508e0077d42bd6182f000002\'},\\n {name: \'Dedé\', lastname: \'Santana\', _id: \'508e0077d42bd6182f000003\'},\\n {name: \'Didi\', lastname: \'Mocó\', _id: \'508e0077d42bd6182f000004\'}\\n ]\\n }\\n\\n### Field types\\n\\n10tcl understands: string, number, email, tel, date, html, text, reference (type: \'reference\', to: \'criminal\')\\nEach will result in a different html element and layout.\\nA field type different from the above will result in a regular input field.\\n\\n### Validation\\n\\n10tcl modelValidator provides type associated checks, that are automatically executed on POST/PUT transactions.\\nOther than that, a field can contain a property checks: [\'hasValue\', ...]\\nEach string in checks array will trigger the correspondent function of the modelValidator.\\nDefining pathToValidator, you can implement your own validator that will be required instead of the 10tcl one.\\n\\n### Users\\n\\nUser and Profile are pre-loaded models that provide access control.\\nThe config property \\"admin\\" provides a proto user for the first login.\\n\\n### i18n\\n\\nNop... sorry.\\nAnd I\'m outputting static texts in PT-BR.\\nNot happy with any package I\'ve tried.\\nWant to keep texts in a cached db for online editing and translation.\\n\\n### CRUD\\n\\nThe views are made with bootstrap, jquery, and some home-made binding (Angular was just making me angry).\\nIn mobile they are much simpler, made with jquerymobile and jquery.\\nThe decision between mobile and desktop is made by reading request headers.","owner":{"name":"superpeixeboi","avatar":"https://github.com/superpeixeboi.png","link":"https://github.com/superpeixeboi"},"deprecated":"bad ideas, bad implementation, shutting this down, starting a new one","badPackage":false,"homepage":null,"license":null,"keywords":["10tcl","tentacle","web","app","crud"],"created":1354034267769,"modified":1406832889852,"lastPublisher":null,"owners":[{"name":"fernandobecker","email":"fernandobbecker@gmail.com","avatar":"https://gravatar.com/avatar/6a329072154e14754c388d842e7fd4b6","link":"https://www.npmjs.com/~fernandobecker"}],"lastCrawl":"2017-12-04T22:42:55.051Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11","body":{"objectID":"11","name":"11","concatenatedName":"11","downloadsLast30Days":26,"downloadsRatio":1.8828691673990566e-7,"humanDownloadsLast30Days":"26","popular":false,"version":"0.0.1","versions":{"0.0.1":"2014-05-14T07:57:21.560Z"},"tags":{"latest":"0.0.1"},"description":"ooxx","dependencies":{"commander":"1.0.x"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"},"deprecated":false,"badPackage":false,"homepage":null,"license":null,"keywords":["framework","server","tianma"],"created":1400054241560,"modified":1400054241560,"lastPublisher":{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"},"owners":[{"name":"xunuo","email":"i@xunuo.com","avatar":"https://gravatar.com/avatar/c10cd6de7a465c431cfc3718d5775892","link":"https://www.npmjs.com/~xunuo"}],"lastCrawl":"2017-12-04T22:42:55.051Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11-25","body":{"objectID":"11-25","name":"11-25","concatenatedName":"1125","downloadsLast30Days":27,"downloadsRatio":1.9552872122990208e-7,"humanDownloadsLast30Days":"27","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-11-25T04:31:23.470Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"noting","email":"1439389872@qq.com","avatar":"https://gravatar.com/avatar/d8abf78192bdbd45118877d69239d52a","link":"https://www.npmjs.com/~noting"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1511584283470,"modified":1511584283470,"lastPublisher":{"name":"noting","email":"1439389872@qq.com","avatar":"https://gravatar.com/avatar/d8abf78192bdbd45118877d69239d52a","link":"https://www.npmjs.com/~noting"},"owners":[{"name":"noting","email":"1439389872@qq.com","avatar":"https://gravatar.com/avatar/d8abf78192bdbd45118877d69239d52a","link":"https://www.npmjs.com/~noting"}],"lastCrawl":"2017-12-04T22:42:55.052Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11-28","body":{"objectID":"11-28","name":"11-28","concatenatedName":"1128","downloadsLast30Days":29,"downloadsRatio":2.1001233020989478e-7,"humanDownloadsLast30Days":"29","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-11-27T12:03:47.311Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{"mysql":"^2.15.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"zhendong","email":"2212244171@qq.com","avatar":"https://gravatar.com/avatar/d286850f706f49ce4e04c01f566b2b3d","link":"https://www.npmjs.com/~zhendong"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1511784227311,"modified":1511784227311,"lastPublisher":{"name":"zhendong","email":"2212244171@qq.com","avatar":"https://gravatar.com/avatar/d286850f706f49ce4e04c01f566b2b3d","link":"https://www.npmjs.com/~zhendong"},"owners":[{"name":"zhendong","email":"2212244171@qq.com","avatar":"https://gravatar.com/avatar/d286850f706f49ce4e04c01f566b2b3d","link":"https://www.npmjs.com/~zhendong"}],"lastCrawl":"2017-12-04T22:42:55.052Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11-packagemath","body":{"objectID":"11-packagemath","name":"11-packagemath","concatenatedName":"11packagemath","downloadsLast30Days":21,"downloadsRatio":1.5207789428992382e-7,"humanDownloadsLast30Days":"21","popular":false,"version":"0.0.0","versions":{"0.0.0":"2013-08-27T16:09:20.780Z"},"tags":{"latest":"0.0.0"},"description":"package math","dependencies":{"querystring":"&gt;=0.1.0 &lt;0.2.0","punycode":"&gt;=1.0.0 &lt;1.1.0"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"this is a readme file","owner":{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"},"deprecated":false,"badPackage":false,"homepage":null,"license":"BSD-2-Clause","keywords":[],"created":1377619753594,"modified":1377619760780,"lastPublisher":{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"},"owners":[{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"}],"lastCrawl":"2017-12-04T22:42:55.052Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11-packagename","body":{"objectID":"11-packagename","name":"11-packagename","concatenatedName":"11packagename","downloadsLast30Days":18,"downloadsRatio":1.3035248081993472e-7,"humanDownloadsLast30Days":"18","popular":false,"version":"0.0.0","versions":{"0.0.0":"2013-08-27T17:04:47.968Z"},"tags":{"latest":"0.0.0"},"description":"This is a mathematic package","dependencies":{"foo":"1.0.0 - 2.9999.9999","bar":"&gt;=1.0.2 &lt;2.1.2","baz":"&gt;1.0.2 &lt;=2.3.4","boo":"2.0.1","qux":"&lt;1.0.0 || &gt;=2.3.1 &lt;2.4.5 || &gt;=2.5.2 &lt;3.0.0","asd":"http://asdf.com/asdf.tar.gz","til":"~1.2","elf":"~1.2.3","two":"2.x","thr":"3.3.x"},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"},"deprecated":false,"badPackage":false,"homepage":null,"license":"BSD-2-Clause","keywords":["&quot;math&quot;","&quot;example&quot;"],"created":1377623083778,"modified":1377623087968,"lastPublisher":{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"},"owners":[{"name":"shahla","email":"shahla3000@yahoo.com","avatar":"https://gravatar.com/avatar/83a959659abd1b93da9ff75af3f23af3","link":"https://www.npmjs.com/~shahla"}],"lastCrawl":"2017-12-04T22:42:55.052Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}},{"action":"updateObject","objectID":"11.01","body":{"objectID":"11.01","name":"11.01","concatenatedName":"1101","downloadsLast30Days":25,"downloadsRatio":1.8104511224990932e-7,"humanDownloadsLast30Days":"25","popular":false,"version":"1.0.0","versions":{"1.0.0":"2017-12-01T02:00:27.555Z"},"tags":{"latest":"1.0.0"},"description":null,"dependencies":{},"devDependencies":{},"githubRepo":null,"gitHead":null,"readme":"ERROR: No README data found!","owner":{"name":"lz0430","email":"15390500217@163.com","avatar":"https://gravatar.com/avatar/6f65bf3a86eae8e63da6d8ae1e5b01ef","link":"https://www.npmjs.com/~lz0430"},"deprecated":false,"badPackage":false,"homepage":null,"license":"ISC","keywords":[],"created":1512093627555,"modified":1512093627555,"lastPublisher":{"name":"lz0430","email":"15390500217@163.com","avatar":"https://gravatar.com/avatar/6f65bf3a86eae8e63da6d8ae1e5b01ef","link":"https://www.npmjs.com/~lz0430"},"owners":[{"name":"lz0430","email":"15390500217@163.com","avatar":"https://gravatar.com/avatar/6f65bf3a86eae8e63da6d8ae1e5b01ef","link":"https://www.npmjs.com/~lz0430"}],"lastCrawl":"2017-12-04T22:42:55.053Z","dependents":1615967,"humanDependents":"1.6m","changelogFilename":null}}]}',
contentLength: 295478,
method: 'POST',
timeouts: [Object],
url: '/1/indexes/npm-search/batch',
startTime: 2017-12-04T22:43:15.836Z,
endTime: 2017-12-04T22:43:15.984Z,
duration: 148,
statusCode: 400 } ],
statusCode: 400 }
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
@rdela
Copy link
Author

rdela commented Dec 4, 2017

In the index in the Algolia Explorer as well…

query.js

index.search("", {
 "hitsPerPage": "10",
 "page": "0",
 "attributesToRetrieve": "*",
 "facets": "[\"keywords\",\"owner.name\"]"
});

answer.json

{
  "hits": [
    {
      "0": {
        "securityRecommendation": false
      },
      "1": {
        "securityRecommendation": false
      },
      "2": {
        "securityRecommendation": false
      },
      "3": {
        "securityRecommendation": {
          "nspId": 118,
          "created": "2016-05-25T16:37:20.000Z",
          "recommendation": "Updated to version 3.0.2 or greater",
          "cvssScore": 7.5,
          "module": "minimatch",
          "version": "0.2.14",
          "vulnerable": "<=3.0.1",
          "patched": ">=3.0.2",
          "title": "Regular Expression Denial of Service",
          "dependencyPath": [
            "0-0@1.0.2",
            "gulp@3.9.1",
            "vinyl-fs@0.3.14",
            "glob-watcher@0.0.6",
            "gaze@0.5.2",
            "globule@0.1.0",
            "minimatch@0.2.14"
          ]
        }
      },
      "4": {
        "securityRecommendation": false
      },
      "5": {
        "securityRecommendation": false
      },
      "6": {
        "securityRecommendation": false
      },
      "7": {
        "securityRecommendation": false
      },
      "8": {
        "securityRecommendation": false
      },
      "9": {
        "securityRecommendation": false
      },
      "name": "0",
      "concatenatedName": "0",
      "downloadsLast30Days": 353,
      "downloadsRatio": 0.000002556356984968719,
      "humanDownloadsLast30Days": "353",
      "popular": false,
      "version": "0.0.0",
      "versions": {
        "0.0.0": "2014-04-01T22:51:11.871Z"
      },
      "tags": {
        "latest": "0.0.0"
      },
      "description": null,
      "dependencies": {},
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "ERROR: No README data found!",
      "owner": {
        "name": "zolmeister",
        "email": "zolikahan@gmail.com",
        "avatar": "https://gravatar.com/avatar/55dbeca986f875e1d1cb4d51e2fc42e4",
        "link": "https://www.npmjs.com/~zolmeister"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "BSD-2-Clause",
      "keywords": [],
      "created": 1396392669131,
      "modified": 1501507555813,
      "lastPublisher": {
        "name": "zolmeister",
        "email": "zolikahan@gmail.com",
        "avatar": "https://gravatar.com/avatar/55dbeca986f875e1d1cb4d51e2fc42e4",
        "link": "https://www.npmjs.com/~zolmeister"
      },
      "owners": [
        {
          "name": "zolmeister",
          "email": "zolikahan@gmail.com",
          "avatar": "https://gravatar.com/avatar/55dbeca986f875e1d1cb4d51e2fc42e4",
          "link": "https://www.npmjs.com/~zolmeister"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.469Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "0",
      "_highlightResult": {
        "name": {
          "value": "0",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "0",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "zolmeister",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "zolmeister",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 99,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "0.workspace",
      "concatenatedName": "0workspace",
      "downloadsLast30Days": 345,
      "downloadsRatio": 0.000002498422549048748,
      "humanDownloadsLast30Days": "345",
      "popular": false,
      "version": "0.1.1",
      "versions": {
        "0.0.0": "2015-10-19T02:18:38.208Z",
        "0.0.1": "2015-10-19T03:17:21.100Z",
        "0.0.2": "2015-10-19T03:19:59.200Z",
        "0.0.3": "2015-10-19T04:20:40.252Z",
        "0.0.4": "2015-10-19T05:41:50.721Z",
        "0.0.5": "2015-10-19T06:03:29.857Z",
        "0.0.6": "2015-10-19T06:09:42.993Z",
        "0.0.7": "2015-10-19T06:14:27.020Z",
        "0.0.8": "2015-10-19T06:29:46.641Z",
        "0.0.9": "2015-10-19T07:57:25.946Z",
        "0.0.10": "2015-10-19T08:15:07.673Z",
        "0.0.11": "2015-10-21T07:57:41.573Z",
        "0.0.12": "2015-11-11T03:53:11.049Z",
        "0.0.13": "2015-11-11T05:22:11.858Z",
        "0.0.14": "2015-11-11T05:37:07.730Z",
        "0.0.15": "2015-11-11T05:41:47.146Z",
        "0.0.16": "2015-11-27T04:47:29.618Z",
        "0.1.0": "2015-12-04T06:08:31.532Z",
        "0.1.1": "2015-12-04T06:16:37.037Z"
      },
      "tags": {
        "latest": "0.1.1"
      },
      "description": "**Status: DEV**",
      "dependencies": {
        "bash.origin": "0.1.x",
        "bluebird": "^3.0.5",
        "cli-table": "^0.3.1",
        "colors": "^1.1.2",
        "fs-extra": "^0.26.2",
        "inquirer": "^0.11.0",
        "lodash": "^3.10.1",
        "minimist": "^1.2.0",
        "node.pack": "0.0.x",
        "request": "^2.67.0",
        "semver": "^5.1.0"
      },
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "**Status: DEV**\n\n0.workspace\n===========\n\nThe [Zero System](http://ZeroSystem.io) base workspace which you can deploy and add your stacks to.\n\nYou can have a complete *Web Software System* deployed in less than 5 minutes. After everything is confirmed running you can make incremental changes to shape it to your needs.\n\nUser support/patches chat: [![Chat](https://badges.gitter.im/gitterHQ/services.png)](https://gitter.im/0system/0system.0)\n\nInternal development chat: [![Chat](https://badges.gitter.im/gitterHQ/services.png)](https://gitter.im/LogicCores/0)\n\nInstall\n-------\n\n### Requirements\n\n  * [NodeJS 4+](https://nodejs.org/)\n  * [git](https://git-scm.com/)\n  * Free [Heroku](http://heroku.com/) Account\n  * OSX (only for now)\n\n### Commands\n\n\tnvm use 4\n\tnpm install -g 0.workspace\n\n\nUse-Cases\n=========\n\nCreate new project\n------------------\n\nStart with Zero System as the foundation for your application.\n\n\tmkdir myNewProject\n\tcd myNewProject\n\t# Assuming EMPTY directory\n\n\t0.workspace init --commit\n\tgit add .\n\tgit commit -m \"Initialized 0.workspace\"\n\tnpm install    # or `0.workspace install`\n\t0.workspace dev   # to work on it locally\n\t0.workspace deploy --commit   # to deploy it remotely\n\t# See https://github.com/0system/0system.0#commands for more commands\n\nWrap an existing project\n------------------------\n\nWrap an existing project with Zero System to enhance your development workflow. Instead of provisioning the workspace at the root of the project (as is the case for *new* projects) it will be put into a `0.workspace` folder.\n\n\tcd myExistingProject\n\t# Assuming NON-EMPTY directory\n\n\t0.workspace init --commit\n\tgit add .\n\tgit commit -m \"Initialized 0.workspace\"\n\t0.install install   # or `cd 0.workspace; npm install`\n\t0.workspace dev   # to work on it locally\n\t0.workspace deploy --commit   # to deploy it remotely\n\t# See https://github.com/0system/0system.0#commands for more commands\n\nWork on a Zero System project\n-----------------------------\n\n\tcd myNewProject\n\t# or\n\tcd myExistingProject/0.workspace   # to run `npm run` scripts\n\n### On the command line\n\n\t# These are equivalent\n\tnpm run <command>\n\t0.workspace <command>\n\t0w <command>\n\t# Where commands are the same 'npm run' scripts as from https://github.com/0system/0system.0#commands\n\n\tsource scripts/activate.sh\n\t# You now have the root context of your system loaded into your environment\n\n### In an IDE\n\n\t0.workspace edit\n\nWork against a different Zero System clone\n------------------------------------------\n\n\t0.workspace --help\n\nShow the current version of Zero System used by your project:\n\n\t0.workspace current\n\nList installed versions:\n\n\t0.workspace ls\n\nList available versions:\n\n\t0.workspace ls-remote\n\nInstall a new version:\n\n\t0.workspace install <version>\n\nSwitch to a different version:\n\n\t0.workspace use <version>\n\t# NOTE: When switching to a different version this command makes changes\n\t\t      to your workspace which need to be committed to git afterwards!\n\nBest practices\n--------------\n\n  1. Use the **latest** Zero System version when **starting** or wrapping a project.\n  2. **Update to the latest** pre-built Zero System release version and test/fix your system for compatibility **at least once per week**.\n    * **Ideally:** Use a **continuous integration instance** to run your *whole system test suite* against any updates in realtime and configure your system to *send anonymized failure reports upstream*. This will ensure **you know immediately** when there is a *breaking change coming* and can collaborate on the design or an adapter/workaround to **bring your system into compatibility** as soon as possible as you see fit.\n  3. Run your *whole system test suite* **before and after any changes**.\n  4. Ensure you **write tests to go along** with your business logic and library/service APIs as well as all your other interfaces and add then to the *whole system test suite*.\n  5. Focus the *whole system test suite* on testing the **final user flows and API contracts first** as everything else may change frequently. Focus on continuously testing the code, user interaction and service paths that your organization uses to fulfill its purpose every second of the day.\n  6. **Provision and configure** all your code components and modules via `ccjson` **declarations** and write & publish to the community the necessary adapters to do so if missing.\n  7. Switch to a clone of the [github.com/0system/0system.0](https://github.com/0system/0system.0) inlined source release of Zero System if you need or want to patch Zero System. We encourage you to contribute your changes back to the community so everyone can benefit. *note: Point 2 from above equally applies*\n  8. Run the *whole system test suite* against any **new deployment** and ensure *all new unique paths are test covered*.\n  9. Attempt to *integrate every new feature* into the foundation that Zero System provides to the greatest extent possible and *seek guidance from others* where needed. Share your contributions with others whenever you can. Build your own ideas into your clone and give others the space to build their own ideas into their own clones. Agree as a community to learn from each other to build a meta platform that can accomodate everyones' unique way of thinking and working in a non-restrictive and whole-enhancing way.\n  10. Welcome every user equally and know that condensed diversity to accomplish a common goal and satify a common need in a whole-enhancing way is an incredible force and requires mutually respectful inclusiveness.\n\n\nGovernance\n==========\n\nThis project is governed by [Christoph Dorn](http://christophdorn.com) who is the original author and self-elected [Benevolent Dictator For Life](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life) to continuously steer this project onto its originally intended goal of providing an **Open Source** and **Free Foundation** to build **Web Software Systems** on. **Every software user in the world** must be able to obtain a copy of Zero System and *deploy a customized instance* of it for **free; forever.**\n\n\nProvenance\n==========\n\nOriginal source logic under [Free Public License](https://lists.opensource.org/pipermail/license-review/2015-October/001254.html) by [Christoph Dorn](http://christophdorn.com)\n\n",
      "owner": {
        "name": "cadorn",
        "email": "christoph@christophdorn.com",
        "avatar": "https://gravatar.com/avatar/3a5539ba54c87e6571d5801c5dd43ccc",
        "link": "https://www.npmjs.com/~cadorn"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": null,
      "keywords": [],
      "created": 1445221118208,
      "modified": 1449209797037,
      "lastPublisher": {
        "name": "cadorn",
        "email": "christoph@christophdorn.com",
        "avatar": "https://gravatar.com/avatar/3a5539ba54c87e6571d5801c5dd43ccc",
        "link": "https://www.npmjs.com/~cadorn"
      },
      "owners": [
        {
          "name": "cadorn",
          "email": "christoph@christophdorn.com",
          "avatar": "https://gravatar.com/avatar/3a5539ba54c87e6571d5801c5dd43ccc",
          "link": "https://www.npmjs.com/~cadorn"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.476Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "0.workspace",
      "_highlightResult": {
        "name": {
          "value": "0.workspace",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "0workspace",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "**Status: DEV**",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "cadorn",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "cadorn",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 98,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "02url-querystring-http",
      "concatenatedName": "02urlquerystringhttp",
      "downloadsLast30Days": 239,
      "downloadsRatio": 0.000001730791273109133,
      "humanDownloadsLast30Days": "239",
      "popular": false,
      "version": "1.0.4",
      "versions": {
        "1.0.0": "2017-11-16T07:27:57.507Z",
        "1.0.1": "2017-11-16T11:25:57.458Z",
        "1.0.2": "2017-11-16T11:31:02.802Z",
        "1.0.3": "2017-11-16T11:36:39.593Z",
        "1.0.4": "2017-11-16T11:43:27.811Z"
      },
      "tags": {
        "latest": "1.0.4"
      },
      "description": null,
      "dependencies": {
        "ejs": "^2.5.7",
        "express": "^4.16.2",
        "multer": "^1.3.0"
      },
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "ERROR: No README data found!",
      "owner": {
        "name": "15735801086",
        "email": "1173204416@qq.com",
        "avatar": "https://gravatar.com/avatar/bf72329a0480b32c5051a441ef6694da",
        "link": "https://www.npmjs.com/~15735801086"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "ISC",
      "keywords": [],
      "created": 1510817277507,
      "modified": 1510832607811,
      "lastPublisher": {
        "name": "15735801086",
        "email": "1173204416@qq.com",
        "avatar": "https://gravatar.com/avatar/bf72329a0480b32c5051a441ef6694da",
        "link": "https://www.npmjs.com/~15735801086"
      },
      "owners": [
        {
          "name": "15735801086",
          "email": "1173204416@qq.com",
          "avatar": "https://gravatar.com/avatar/bf72329a0480b32c5051a441ef6694da",
          "link": "https://www.npmjs.com/~15735801086"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.488Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "02url-querystring-http",
      "_highlightResult": {
        "name": {
          "value": "02url-querystring-http",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "02urlquerystringhttp",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "15735801086",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "15735801086",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 97,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "02vue_toast_demo",
      "concatenatedName": "02vuetoastdemo",
      "downloadsLast30Days": 182,
      "downloadsRatio": 0.00000131800841717934,
      "humanDownloadsLast30Days": "182",
      "popular": false,
      "version": "1.0.4",
      "versions": {
        "1.0.0": "2017-11-25T02:54:38.547Z",
        "1.0.1": "2017-11-26T08:35:11.800Z",
        "1.0.2": "2017-11-26T08:40:35.747Z",
        "1.0.3": "2017-11-26T08:46:13.282Z",
        "1.0.4": "2017-11-26T08:52:15.390Z"
      },
      "tags": {
        "latest": "1.0.4"
      },
      "description": "a toast demo for vue",
      "dependencies": {
        "css-loader": "^0.28.7",
        "vue": "^2.5.8",
        "vue-loader": "^13.5.0",
        "vue-template-compiler": "^2.5.8",
        "webpack": "^3.8.1",
        "babel-core": "^6.26.0",
        "babel-loader": "^7.1.2",
        "babel-preset-env": "^1.6.1",
        "less": "^2.7.3",
        "less-loader": "^4.0.5"
      },
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "# DO NOT use this package, its just for practicing and testing",
      "owner": {
        "name": "weenta",
        "email": "weentao@foxmail.com",
        "avatar": "https://gravatar.com/avatar/87e923d6cc3fee20fc31f16098b4e6aa",
        "link": "https://www.npmjs.com/~weenta"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "ISC",
      "keywords": [
        "toast"
      ],
      "created": 1511578478547,
      "modified": 1511686335390,
      "lastPublisher": {
        "name": "weenta",
        "email": "weentao@foxmail.com",
        "avatar": "https://gravatar.com/avatar/87e923d6cc3fee20fc31f16098b4e6aa",
        "link": "https://www.npmjs.com/~weenta"
      },
      "owners": [
        {
          "name": "weenta",
          "email": "weentao@foxmail.com",
          "avatar": "https://gravatar.com/avatar/87e923d6cc3fee20fc31f16098b4e6aa",
          "link": "https://www.npmjs.com/~weenta"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.488Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "02vue_toast_demo",
      "_highlightResult": {
        "name": {
          "value": "02vue_toast_demo",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "02vuetoastdemo",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "a toast demo for vue",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "weenta",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "keywords": [
          {
            "value": "toast",
            "matchLevel": "none",
            "matchedWords": []
          }
        ],
        "owners": [
          {
            "name": {
              "value": "weenta",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 96,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "01-simple",
      "concatenatedName": "01simple",
      "downloadsLast30Days": 180,
      "downloadsRatio": 0.000001303524808199347,
      "humanDownloadsLast30Days": "180",
      "popular": false,
      "version": "1.0.6",
      "versions": {
        "1.0.0": "2015-06-28T12:26:06.098Z",
        "1.0.1": "2015-06-28T12:42:42.062Z",
        "1.0.2": "2015-06-28T13:08:55.750Z",
        "1.0.3": "2015-06-28T13:10:15.163Z",
        "1.0.4": "2015-06-28T16:55:11.222Z",
        "1.0.5": "2015-06-29T08:16:28.255Z",
        "1.0.6": "2015-07-11T18:04:44.581Z"
      },
      "tags": {
        "latest": "1.0.6"
      },
      "description": "That is the first app in order to study the Node-JS technology",
      "dependencies": {
        "colors": "~0.6.0-1",
        "winston": "^1.0.1"
      },
      "devDependencies": {},
      "githubRepo": {
        "user": "MartynEl",
        "project": "NodeJS-Simple-Start",
        "path": "",
        "head": "07144d5ce74d12a1181c4faa2c52d774623d063d"
      },
      "gitHead": "07144d5ce74d12a1181c4faa2c52d774623d063d",
      "readme": "README.md",
      "owner": {
        "name": "MartynEl",
        "avatar": "https://github.com/MartynEl.png",
        "link": "https://github.com/MartynEl"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "ISC",
      "keywords": [
        "demo"
      ],
      "created": 1435494366098,
      "modified": 1436637884581,
      "lastPublisher": {
        "name": "martinbishop",
        "email": "martyn.bishop@gmail.com",
        "avatar": "https://gravatar.com/avatar/901d58e2cb7ad28cec24b32c1daddd2b",
        "link": "https://www.npmjs.com/~martinbishop"
      },
      "owners": [
        {
          "name": "martinbishop",
          "email": "martyn.bishop@gmail.com",
          "avatar": "https://gravatar.com/avatar/901d58e2cb7ad28cec24b32c1daddd2b",
          "link": "https://www.npmjs.com/~martinbishop"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.484Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "01-simple",
      "_highlightResult": {
        "name": {
          "value": "01-simple",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "01simple",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "That is the first app in order to study the Node-JS technology",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "MartynEl",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "keywords": [
          {
            "value": "demo",
            "matchLevel": "none",
            "matchedWords": []
          }
        ],
        "owners": [
          {
            "name": {
              "value": "martinbishop",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 95,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "002-npm",
      "concatenatedName": "002npm",
      "downloadsLast30Days": 94,
      "downloadsRatio": 6.80729622059659e-7,
      "humanDownloadsLast30Days": "94",
      "popular": false,
      "version": "1.0.6",
      "versions": {
        "1.0.0": "2017-04-28T01:10:23.066Z",
        "1.0.1": "2017-04-28T01:29:17.304Z",
        "1.0.2": "2017-04-28T01:33:44.626Z",
        "1.0.3": "2017-04-28T01:44:28.414Z",
        "1.0.4": "2017-04-28T01:52:51.359Z",
        "1.0.5": "2017-04-28T02:46:14.186Z",
        "1.0.6": "2017-04-28T02:54:47.510Z"
      },
      "tags": {
        "latest": "1.0.6"
      },
      "description": null,
      "dependencies": {
        "request": "^2.81.0",
        "wallpaper": "^2.4.0"
      },
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "ERROR: No README data found!",
      "owner": {
        "name": "personal",
        "email": "405454518@163.com",
        "avatar": "https://gravatar.com/avatar/6fb4c40ca2ce96f9e95e1481ac3dee2e",
        "link": "https://www.npmjs.com/~personal"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "ISC",
      "keywords": [],
      "created": 1493341823066,
      "modified": 1493348087510,
      "lastPublisher": {
        "name": "personal",
        "email": "405454518@163.com",
        "avatar": "https://gravatar.com/avatar/6fb4c40ca2ce96f9e95e1481ac3dee2e",
        "link": "https://www.npmjs.com/~personal"
      },
      "owners": [
        {
          "name": "personal",
          "email": "405454518@163.com",
          "avatar": "https://gravatar.com/avatar/6fb4c40ca2ce96f9e95e1481ac3dee2e",
          "link": "https://www.npmjs.com/~personal"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.479Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "002-npm",
      "_highlightResult": {
        "name": {
          "value": "002-npm",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "002npm",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "personal",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "personal",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 94,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "0": {
        "securityRecommendation": false
      },
      "1": {
        "securityRecommendation": false
      },
      "2": {
        "securityRecommendation": false
      },
      "3": {
        "securityRecommendation": {
          "nspId": 39,
          "created": "2015-10-17T19:41:46.382Z",
          "recommendation": "Upgrade UglifyJS to version >= 2.4.24.",
          "cvssScore": 8.3,
          "module": "uglify-js",
          "version": "2.3.6",
          "vulnerable": "<= 2.4.23",
          "patched": ">= 2.4.24",
          "title": "Incorrect Handling of Non-Boolean Comparisons During Minification",
          "dependencyPath": [
            "08cms@1.0.0",
            "gulp-jsdoc-to-markdown@1.2.2",
            "jsdoc-to-markdown@1.3.9",
            "dmd@1.4.2",
            "ddata@0.1.28",
            "handlebars@3.0.3",
            "uglify-js@2.3.6"
          ]
        }
      },
      "4": {
        "securityRecommendation": false
      },
      "5": {
        "securityRecommendation": false
      },
      "6": {
        "securityRecommendation": false
      },
      "7": {
        "securityRecommendation": false
      },
      "8": {
        "securityRecommendation": false
      },
      "9": {
        "securityRecommendation": false
      },
      "name": "0.0.168",
      "concatenatedName": "00168",
      "downloadsLast30Days": 88,
      "downloadsRatio": 6.372787951196807e-7,
      "humanDownloadsLast30Days": "88",
      "popular": false,
      "version": "0.0.170",
      "versions": {
        "0.0.167": "2017-03-07T04:12:48.494Z",
        "0.0.168": "2017-03-07T04:20:43.088Z",
        "0.0.169": "2017-03-07T04:26:54.484Z",
        "0.0.170": "2017-03-07T04:32:34.520Z"
      },
      "tags": {
        "latest": "0.0.170"
      },
      "description": "Plugin For Fingerprint",
      "dependencies": {},
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "ERROR: No README data found!",
      "owner": {
        "name": "ramadhyanto",
        "email": "muhammad.renaldi@luminov.com",
        "avatar": "https://gravatar.com/avatar/cda0f7763d3359cd508e9987daed4142",
        "link": "https://www.npmjs.com/~ramadhyanto"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "Luminov",
      "keywords": [
        "ecosystem:cordova",
        "cordova-android"
      ],
      "created": 1488859968494,
      "modified": 1488861154520,
      "lastPublisher": {
        "name": "ramadhyanto",
        "email": "muhammad.renaldi@luminov.com",
        "avatar": "https://gravatar.com/avatar/cda0f7763d3359cd508e9987daed4142",
        "link": "https://www.npmjs.com/~ramadhyanto"
      },
      "owners": [
        {
          "name": "ramadhyanto",
          "email": "muhammad.renaldi@luminov.com",
          "avatar": "https://gravatar.com/avatar/cda0f7763d3359cd508e9987daed4142",
          "link": "https://www.npmjs.com/~ramadhyanto"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.473Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "0.0.168",
      "_highlightResult": {
        "name": {
          "value": "0.0.168",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "00168",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "Plugin For Fingerprint",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "ramadhyanto",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "keywords": [
          {
            "value": "ecosystem:cordova",
            "matchLevel": "none",
            "matchedWords": []
          },
          {
            "value": "cordova-android",
            "matchLevel": "none",
            "matchedWords": []
          }
        ],
        "owners": [
          {
            "name": {
              "value": "ramadhyanto",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 93,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "007",
      "concatenatedName": "007",
      "downloadsLast30Days": 80,
      "downloadsRatio": 5.793443591997098e-7,
      "humanDownloadsLast30Days": "80",
      "popular": false,
      "version": "0.0.2",
      "versions": {
        "0.0.0": "2013-07-26T19:46:10.853Z",
        "0.0.1": "2013-07-26T23:12:55.671Z",
        "0.0.2": "2013-07-29T18:57:38.092Z"
      },
      "tags": {
        "latest": "0.0.2"
      },
      "description": "Returns a deep copy of an object with all functions converted to spies",
      "dependencies": {},
      "devDependencies": {
        "should": "~1.2.2",
        "mocha": "~1.12.0"
      },
      "githubRepo": {
        "user": "btford",
        "project": "007",
        "path": "",
        "head": "master"
      },
      "gitHead": "master",
      "readme": "# 007\n\nReturns a deep copy of an object with all functions converted to spies.\n\n## Install\n\nInstall with `npm`:\n\n```\nnpm install 007\n```\n\n## Example\n\n```\n// we want to test github\nvar github = require('github');\nvar doubleOhSeven = require('007');\nvar mockGithub = doubleOhSeven(github);\n\nmockGithub.pullRequests.getCommits.returns = function () {\n  return {\n    foo: 'beep'\n  };\n};\n\nassert(mockGithub.pullRequests.getCommits('lalala').foo === 'beep');\nassert(mockGithub.pullRequests.getCommits.callCount === 1);\n\n```\n\n## API\n\n### `doubleOhSeven()`\n\nTakes an object or function as an argument, returns a function or object matching the original, but with mocked out functions.\n\n### `mockFn.implementation`\n\nThe implementation of the mock function.\nSet with `=`:\n\nEx:\n```\nmockFn.implementation = function (val, cb) {\n  return cb(val + 1);\n};\n```\n\nThe following functions are helpers for implementation; using them will override `mockFn.implementation`.\n\n#### `mockFn.returns()`\n\nThe return value of the mock.\n\nEx:\n```\nmockFn.returns('foo');\nmockFn(function (arg) {\n  console.log(arg); // outputs 'foo'\n});\n```\n\n#### `mockFn.callbackArgs`\n\nThe callback args to be invoked by the mock.\n\nEx:\n```\nmockFn.callbackArgs(['foo']);\nmockFn(function (arg) {\n  console.log(arg); // outputs 'foo'\n});\n```\n\n## License\nMIT\n",
      "owner": {
        "name": "btford",
        "avatar": "https://github.com/btford.png",
        "link": "https://github.com/btford"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "MIT",
      "keywords": [
        "testing",
        "test",
        "mock",
        "spy"
      ],
      "created": 1374867969787,
      "modified": 1375124258092,
      "lastPublisher": {
        "name": "btford",
        "email": "briantford@gmail.com",
        "avatar": "https://gravatar.com/avatar/3ee2d3b975bd14af74b9316f8faf7aed",
        "link": "https://www.npmjs.com/~btford"
      },
      "owners": [
        {
          "name": "btford",
          "email": "briantford@gmail.com",
          "avatar": "https://gravatar.com/avatar/3ee2d3b975bd14af74b9316f8faf7aed",
          "link": "https://www.npmjs.com/~btford"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.483Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "007",
      "_highlightResult": {
        "name": {
          "value": "007",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "007",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "Returns a deep copy of an object with all functions converted to spies",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "btford",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "keywords": [
          {
            "value": "testing",
            "matchLevel": "none",
            "matchedWords": []
          },
          {
            "value": "test",
            "matchLevel": "none",
            "matchedWords": []
          },
          {
            "value": "mock",
            "matchLevel": "none",
            "matchedWords": []
          },
          {
            "value": "spy",
            "matchLevel": "none",
            "matchedWords": []
          }
        ],
        "owners": [
          {
            "name": {
              "value": "btford",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 92,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "02moduletest2406",
      "concatenatedName": "02moduletest2406",
      "downloadsLast30Days": 79,
      "downloadsRatio": 5.721025547097134e-7,
      "humanDownloadsLast30Days": "79",
      "popular": false,
      "version": "1.0.4",
      "versions": {
        "1.0.0": "2017-10-24T21:20:52.319Z",
        "1.0.1": "2017-10-26T22:46:27.599Z",
        "1.0.2": "2017-10-26T23:20:23.800Z",
        "1.1.0": "2017-10-26T23:26:00.989Z",
        "1.0.3": "2017-10-26T23:29:14.301Z",
        "1.0.4": "2017-10-26T23:35:52.266Z"
      },
      "tags": {
        "latest": "1.0.4"
      },
      "description": "Array of clients",
      "dependencies": {},
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "ERROR: No README data found!",
      "owner": {
        "name": "2406tset",
        "email": "ares93@ymail.com",
        "avatar": "https://gravatar.com/avatar/f4eb4486710a89477ce7e13ec7abed5c",
        "link": "https://www.npmjs.com/~2406tset"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": "ISC",
      "keywords": [],
      "created": 1508880052319,
      "modified": 1509060952266,
      "lastPublisher": {
        "name": "2406tset",
        "email": "ares93@ymail.com",
        "avatar": "https://gravatar.com/avatar/f4eb4486710a89477ce7e13ec7abed5c",
        "link": "https://www.npmjs.com/~2406tset"
      },
      "owners": [
        {
          "name": "2406tset",
          "email": "ares93@ymail.com",
          "avatar": "https://gravatar.com/avatar/f4eb4486710a89477ce7e13ec7abed5c",
          "link": "https://www.npmjs.com/~2406tset"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.488Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "02moduletest2406",
      "_highlightResult": {
        "name": {
          "value": "02moduletest2406",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "02moduletest2406",
          "matchLevel": "none",
          "matchedWords": []
        },
        "description": {
          "value": "Array of clients",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "2406tset",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "2406tset",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 91,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    },
    {
      "name": "02-echo",
      "concatenatedName": "02echo",
      "downloadsLast30Days": 79,
      "downloadsRatio": 5.721025547097134e-7,
      "humanDownloadsLast30Days": "79",
      "popular": false,
      "version": "0.0.6",
      "versions": {
        "0.0.1": "2016-08-25T03:47:42.269Z",
        "0.0.2": "2016-08-25T04:39:18.692Z",
        "0.0.3": "2016-08-25T04:46:51.989Z",
        "0.0.4": "2016-08-25T06:05:36.003Z",
        "0.0.5": "2016-08-25T06:09:04.422Z",
        "0.0.6": "2016-08-25T06:18:00.452Z"
      },
      "tags": {
        "latest": "0.0.6"
      },
      "description": null,
      "dependencies": {
        "argv": "0.0.2"
      },
      "devDependencies": {},
      "githubRepo": null,
      "gitHead": null,
      "readme": "# This is is a simple echo node prj\n",
      "owner": {
        "name": "dorayo",
        "email": "yomingyo@gmail.com",
        "avatar": "https://gravatar.com/avatar/c8bf7153a04833eb820249d9ba93df27",
        "link": "https://www.npmjs.com/~dorayo"
      },
      "deprecated": false,
      "badPackage": false,
      "homepage": null,
      "license": null,
      "keywords": [],
      "created": 1472096862269,
      "modified": 1472105880452,
      "lastPublisher": {
        "name": "dorayo",
        "email": "yomingyo@gmail.com",
        "avatar": "https://gravatar.com/avatar/c8bf7153a04833eb820249d9ba93df27",
        "link": "https://www.npmjs.com/~dorayo"
      },
      "owners": [
        {
          "name": "dorayo",
          "email": "yomingyo@gmail.com",
          "avatar": "https://gravatar.com/avatar/c8bf7153a04833eb820249d9ba93df27",
          "link": "https://www.npmjs.com/~dorayo"
        }
      ],
      "lastCrawl": "2017-12-04T22:42:30.486Z",
      "dependents": 1615967,
      "humanDependents": "1.6m",
      "changelogFilename": null,
      "objectID": "02-echo",
      "_highlightResult": {
        "name": {
          "value": "02-echo",
          "matchLevel": "none",
          "matchedWords": []
        },
        "concatenatedName": {
          "value": "02echo",
          "matchLevel": "none",
          "matchedWords": []
        },
        "owner": {
          "name": {
            "value": "dorayo",
            "matchLevel": "none",
            "matchedWords": []
          }
        },
        "owners": [
          {
            "name": {
              "value": "dorayo",
              "matchLevel": "none",
              "matchedWords": []
            }
          }
        ]
      },
      "_rankingInfo": {
        "nbTypos": 0,
        "firstMatchedWord": 0,
        "proximityDistance": 0,
        "userScore": 90,
        "geoDistance": 0,
        "geoPrecision": 0,
        "nbExactWords": 0,
        "words": 0,
        "filters": 0
      }
    }
  ],
  "nbHits": 100,
  "page": 0,
  "nbPages": 10,
  "hitsPerPage": 10,
  "processingTimeMS": 1,
  "facets": {
    "keywords": {
      "angular": 5,
      "swiper": 5,
      "weui": 5,
      "test": 3,
      "cordova-android": 2,
      "demo": 2,
      "ecosystem:cordova": 2,
      "package": 2,
      "0.1": 1,
      "Binary": 1,
      "Binary literals": 1,
      "Binary numbers": 1,
      "ES6": 1,
      "HW": 1,
      "add": 1,
      "cal": 1,
      "calculator": 1,
      "cli": 1,
      "cli-app": 1,
      "copy": 1,
      "divide": 1,
      "file": 1,
      "format": 1,
      "framework": 1,
      "get和post": 1,
      "great": 1,
      "hao": 1,
      "hash": 1,
      "hi": 1,
      "http": 1,
      "https": 1,
      "id": 1,
      "json": 1,
      "literals": 1,
      "mock": 1,
      "multiply": 1,
      "my": 1,
      "ni": 1,
      "npm": 1,
      "parse": 1,
      "parser": 1,
      "polyfill": 1,
      "random": 1,
      "secure": 1,
      "server": 1,
      "spy": 1,
      "stream": 1,
      "string": 1,
      "subtract": 1,
      "testing": 1,
      "testpack": 1,
      "tianma": 1,
      "toast": 1,
      "very good": 1,
      "web": 1,
      "xtemplate": 1,
      "xtpl": 1,
      "世界上最好用的计算器": 1,
      "同步和异步": 1,
      "就是牛": 1
    },
    "owner.name": {
      "564422415": 1,
      "autumnswind": 5,
      "skt": 3,
      "2406tset": 2,
      "atlasense": 2,
      "fairyfan": 2,
      "guobear": 2,
      "kathir": 2,
      "personal": 2,
      "ramadhyanto": 2,
      "teniryte": 2,
      "webcao": 2,
      "xhm3512": 2,
      "yanyongqi123456": 2,
      "15735801086": 1,
      "1609qy": 1,
      "18235174733": 1,
      "MartynEl": 1,
      "ahuing": 1,
      "blair": 1,
      "btford": 1,
      "cadorn": 1,
      "cavinsmith": 1,
      "cennanfang": 1,
      "cheche": 1,
      "cqq1506": 1,
      "damits": 1,
      "davie_kong": 1,
      "djp": 1,
      "dongweizhao": 1,
      "dorayo": 1,
      "dxh4312": 1,
      "erykpiast": 1,
      "fanjirong888": 1,
      "gindseb": 1,
      "guoyang08": 1,
      "hall": 1,
      "hariprasadkool": 1,
      "hongzhulei": 1,
      "houzhanfeng": 1,
      "jasonc1025": 1,
      "jhermsmeier": 1,
      "jhudson": 1,
      "learnoff": 1,
      "leduyminh": 1,
      "liuyeuyue0929": 1,
      "liuyueyue0929": 1,
      "lvyan": 1,
      "mengxingshike2012": 1,
      "node_zjt": 1,
      "panqiuna": 1,
      "prasad05": 1,
      "raybchoi": 1,
      "scott21739": 1,
      "shenxuezhen": 1,
      "sherryqin": 1,
      "shilpa.mahadevaiah": 1,
      "smile_itachi": 1,
      "spikef": 1,
      "stevemao": 1,
      "takanopontaro": 1,
      "thezj": 1,
      "tianzheng": 1,
      "timkelly": 1,
      "viastronger": 1,
      "vp2177": 1,
      "wangxuefang": 1,
      "weenta": 1,
      "wlzla000": 1,
      "xiaozhai": 1,
      "xumin": 1,
      "xunuo": 1,
      "yangyaru": 1,
      "yanrong": 1,
      "yanyufei": 1,
      "yuehun": 1,
      "zelin179": 1,
      "zhaojinshiweb": 1,
      "zhongzhi": 1,
      "zolmeister": 1,
      "zrlizzy": 1,
      "zylman": 1,
      "~~~": 1
    }
  },
  "facets_stats": {
    "keywords": {
      "min": 0.1,
      "max": 0.1,
      "avg": 0.1,
      "sum": 0.1
    },
    "owner.name": {
      "min": 564422415,
      "max": 18235174733,
      "avg": 11511799411,
      "sum": 34535398234
    }
  },
  "exhaustiveFacetsCount": true,
  "exhaustiveNbHits": true,
  "query": "",
  "params": "query=&hitsPerPage=10&page=0&attributesToRetrieve=*&highlightPreTag=%3Cais-highlight-0000000000%3E&highlightPostTag=%3C%2Fais-highlight-0000000000%3E&getRankingInfo=1&facets=%5B%22keywords%22%2C%22owner.name%22%5D&tagFilters=",
  "index": "npm-search",
  "serverUsed": "c7-usw-2.algolia.net",
  "parsedQuery": "",
  "timeoutCounts": false,
  "timeoutHits": false
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment