Sheogorath
5 years ago
commit
d4a4e8a69d
No known key found for this signature in database
GPG Key ID: 1F05CC3635CDDFFD
5 changed files with 935 additions and 0 deletions
-
1.gitignore
-
855package-lock.json
-
22package.json
-
29src/server.js
-
28test/server.js
@ -0,0 +1 @@ |
|||
node_modules |
@ -0,0 +1,855 @@ |
|||
{ |
|||
"name": "ircd", |
|||
"version": "0.1.0", |
|||
"lockfileVersion": 1, |
|||
"requires": true, |
|||
"dependencies": { |
|||
"ansi-colors": { |
|||
"version": "3.2.3", |
|||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", |
|||
"integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" |
|||
}, |
|||
"ansi-regex": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", |
|||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" |
|||
}, |
|||
"ansi-styles": { |
|||
"version": "3.2.1", |
|||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
|||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", |
|||
"requires": { |
|||
"color-convert": "^1.9.0" |
|||
} |
|||
}, |
|||
"argparse": { |
|||
"version": "1.0.10", |
|||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", |
|||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", |
|||
"requires": { |
|||
"sprintf-js": "~1.0.2" |
|||
} |
|||
}, |
|||
"balanced-match": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", |
|||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" |
|||
}, |
|||
"brace-expansion": { |
|||
"version": "1.1.11", |
|||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", |
|||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", |
|||
"requires": { |
|||
"balanced-match": "^1.0.0", |
|||
"concat-map": "0.0.1" |
|||
} |
|||
}, |
|||
"browser-stdout": { |
|||
"version": "1.3.1", |
|||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", |
|||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" |
|||
}, |
|||
"camelcase": { |
|||
"version": "5.3.1", |
|||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", |
|||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" |
|||
}, |
|||
"chalk": { |
|||
"version": "2.4.2", |
|||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
|||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", |
|||
"requires": { |
|||
"ansi-styles": "^3.2.1", |
|||
"escape-string-regexp": "^1.0.5", |
|||
"supports-color": "^5.3.0" |
|||
}, |
|||
"dependencies": { |
|||
"supports-color": { |
|||
"version": "5.5.0", |
|||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
|||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", |
|||
"requires": { |
|||
"has-flag": "^3.0.0" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"cliui": { |
|||
"version": "4.1.0", |
|||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", |
|||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", |
|||
"requires": { |
|||
"string-width": "^2.1.1", |
|||
"strip-ansi": "^4.0.0", |
|||
"wrap-ansi": "^2.0.0" |
|||
} |
|||
}, |
|||
"code-point-at": { |
|||
"version": "1.1.0", |
|||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", |
|||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" |
|||
}, |
|||
"color-convert": { |
|||
"version": "1.9.3", |
|||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
|||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", |
|||
"requires": { |
|||
"color-name": "1.1.3" |
|||
} |
|||
}, |
|||
"color-name": { |
|||
"version": "1.1.3", |
|||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", |
|||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" |
|||
}, |
|||
"concat-map": { |
|||
"version": "0.0.1", |
|||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
|||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" |
|||
}, |
|||
"cross-spawn": { |
|||
"version": "6.0.5", |
|||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", |
|||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", |
|||
"requires": { |
|||
"nice-try": "^1.0.4", |
|||
"path-key": "^2.0.1", |
|||
"semver": "^5.5.0", |
|||
"shebang-command": "^1.2.0", |
|||
"which": "^1.2.9" |
|||
} |
|||
}, |
|||
"debug": { |
|||
"version": "3.2.6", |
|||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", |
|||
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", |
|||
"requires": { |
|||
"ms": "^2.1.1" |
|||
} |
|||
}, |
|||
"decamelize": { |
|||
"version": "1.2.0", |
|||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", |
|||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" |
|||
}, |
|||
"define-properties": { |
|||
"version": "1.1.3", |
|||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", |
|||
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", |
|||
"requires": { |
|||
"object-keys": "^1.0.12" |
|||
} |
|||
}, |
|||
"diff": { |
|||
"version": "3.5.0", |
|||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", |
|||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" |
|||
}, |
|||
"emoji-regex": { |
|||
"version": "7.0.3", |
|||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", |
|||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" |
|||
}, |
|||
"end-of-stream": { |
|||
"version": "1.4.1", |
|||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", |
|||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", |
|||
"requires": { |
|||
"once": "^1.4.0" |
|||
} |
|||
}, |
|||
"es-abstract": { |
|||
"version": "1.13.0", |
|||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", |
|||
"integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", |
|||
"requires": { |
|||
"es-to-primitive": "^1.2.0", |
|||
"function-bind": "^1.1.1", |
|||
"has": "^1.0.3", |
|||
"is-callable": "^1.1.4", |
|||
"is-regex": "^1.0.4", |
|||
"object-keys": "^1.0.12" |
|||
} |
|||
}, |
|||
"es-to-primitive": { |
|||
"version": "1.2.0", |
|||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", |
|||
"integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", |
|||
"requires": { |
|||
"is-callable": "^1.1.4", |
|||
"is-date-object": "^1.0.1", |
|||
"is-symbol": "^1.0.2" |
|||
} |
|||
}, |
|||
"escape-string-regexp": { |
|||
"version": "1.0.5", |
|||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
|||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" |
|||
}, |
|||
"esprima": { |
|||
"version": "4.0.1", |
|||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", |
|||
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" |
|||
}, |
|||
"execa": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", |
|||
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", |
|||
"requires": { |
|||
"cross-spawn": "^6.0.0", |
|||
"get-stream": "^4.0.0", |
|||
"is-stream": "^1.1.0", |
|||
"npm-run-path": "^2.0.0", |
|||
"p-finally": "^1.0.0", |
|||
"signal-exit": "^3.0.0", |
|||
"strip-eof": "^1.0.0" |
|||
} |
|||
}, |
|||
"find-up": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", |
|||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", |
|||
"requires": { |
|||
"locate-path": "^3.0.0" |
|||
} |
|||
}, |
|||
"flat": { |
|||
"version": "4.1.0", |
|||
"resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", |
|||
"integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", |
|||
"requires": { |
|||
"is-buffer": "~2.0.3" |
|||
} |
|||
}, |
|||
"fs.realpath": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
|||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" |
|||
}, |
|||
"function-bind": { |
|||
"version": "1.1.1", |
|||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
|||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" |
|||
}, |
|||
"get-caller-file": { |
|||
"version": "2.0.5", |
|||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", |
|||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" |
|||
}, |
|||
"get-stream": { |
|||
"version": "4.1.0", |
|||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", |
|||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", |
|||
"requires": { |
|||
"pump": "^3.0.0" |
|||
} |
|||
}, |
|||
"glob": { |
|||
"version": "7.1.3", |
|||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", |
|||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", |
|||
"requires": { |
|||
"fs.realpath": "^1.0.0", |
|||
"inflight": "^1.0.4", |
|||
"inherits": "2", |
|||
"minimatch": "^3.0.4", |
|||
"once": "^1.3.0", |
|||
"path-is-absolute": "^1.0.0" |
|||
} |
|||
}, |
|||
"growl": { |
|||
"version": "1.10.5", |
|||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", |
|||
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" |
|||
}, |
|||
"has": { |
|||
"version": "1.0.3", |
|||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
|||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
|||
"requires": { |
|||
"function-bind": "^1.1.1" |
|||
} |
|||
}, |
|||
"has-flag": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
|||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" |
|||
}, |
|||
"has-symbols": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", |
|||
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" |
|||
}, |
|||
"he": { |
|||
"version": "1.2.0", |
|||
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", |
|||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" |
|||
}, |
|||
"inflight": { |
|||
"version": "1.0.6", |
|||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |
|||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", |
|||
"requires": { |
|||
"once": "^1.3.0", |
|||
"wrappy": "1" |
|||
} |
|||
}, |
|||
"inherits": { |
|||
"version": "2.0.4", |
|||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
|||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" |
|||
}, |
|||
"invert-kv": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", |
|||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" |
|||
}, |
|||
"is-buffer": { |
|||
"version": "2.0.3", |
|||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", |
|||
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" |
|||
}, |
|||
"is-callable": { |
|||
"version": "1.1.4", |
|||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", |
|||
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" |
|||
}, |
|||
"is-date-object": { |
|||
"version": "1.0.1", |
|||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", |
|||
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" |
|||
}, |
|||
"is-fullwidth-code-point": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", |
|||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" |
|||
}, |
|||
"is-regex": { |
|||
"version": "1.0.4", |
|||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", |
|||
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", |
|||
"requires": { |
|||
"has": "^1.0.1" |
|||
} |
|||
}, |
|||
"is-stream": { |
|||
"version": "1.1.0", |
|||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", |
|||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" |
|||
}, |
|||
"is-symbol": { |
|||
"version": "1.0.2", |
|||
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", |
|||
"integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", |
|||
"requires": { |
|||
"has-symbols": "^1.0.0" |
|||
} |
|||
}, |
|||
"isexe": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
|||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" |
|||
}, |
|||
"js-yaml": { |
|||
"version": "3.13.1", |
|||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", |
|||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", |
|||
"requires": { |
|||
"argparse": "^1.0.7", |
|||
"esprima": "^4.0.0" |
|||
} |
|||
}, |
|||
"lcid": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", |
|||
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", |
|||
"requires": { |
|||
"invert-kv": "^2.0.0" |
|||
} |
|||
}, |
|||
"locate-path": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", |
|||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", |
|||
"requires": { |
|||
"p-locate": "^3.0.0", |
|||
"path-exists": "^3.0.0" |
|||
} |
|||
}, |
|||
"lodash": { |
|||
"version": "4.17.14", |
|||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", |
|||
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" |
|||
}, |
|||
"log-symbols": { |
|||
"version": "2.2.0", |
|||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", |
|||
"integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", |
|||
"requires": { |
|||
"chalk": "^2.0.1" |
|||
} |
|||
}, |
|||
"map-age-cleaner": { |
|||
"version": "0.1.3", |
|||
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", |
|||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", |
|||
"requires": { |
|||
"p-defer": "^1.0.0" |
|||
} |
|||
}, |
|||
"mem": { |
|||
"version": "4.3.0", |
|||
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", |
|||
"integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", |
|||
"requires": { |
|||
"map-age-cleaner": "^0.1.1", |
|||
"mimic-fn": "^2.0.0", |
|||
"p-is-promise": "^2.0.0" |
|||
} |
|||
}, |
|||
"mimic-fn": { |
|||
"version": "2.1.0", |
|||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", |
|||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" |
|||
}, |
|||
"minimatch": { |
|||
"version": "3.0.4", |
|||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
|||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", |
|||
"requires": { |
|||
"brace-expansion": "^1.1.7" |
|||
} |
|||
}, |
|||
"minimist": { |
|||
"version": "0.0.8", |
|||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", |
|||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" |
|||
}, |
|||
"mkdirp": { |
|||
"version": "0.5.1", |
|||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", |
|||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", |
|||
"requires": { |
|||
"minimist": "0.0.8" |
|||
} |
|||
}, |
|||
"mocha": { |
|||
"version": "6.1.4", |
|||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", |
|||
"integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", |
|||
"requires": { |
|||
"ansi-colors": "3.2.3", |
|||
"browser-stdout": "1.3.1", |
|||
"debug": "3.2.6", |
|||
"diff": "3.5.0", |
|||
"escape-string-regexp": "1.0.5", |
|||
"find-up": "3.0.0", |
|||
"glob": "7.1.3", |
|||
"growl": "1.10.5", |
|||
"he": "1.2.0", |
|||
"js-yaml": "3.13.1", |
|||
"log-symbols": "2.2.0", |
|||
"minimatch": "3.0.4", |
|||
"mkdirp": "0.5.1", |
|||
"ms": "2.1.1", |
|||
"node-environment-flags": "1.0.5", |
|||
"object.assign": "4.1.0", |
|||
"strip-json-comments": "2.0.1", |
|||
"supports-color": "6.0.0", |
|||
"which": "1.3.1", |
|||
"wide-align": "1.1.3", |
|||
"yargs": "13.2.2", |
|||
"yargs-parser": "13.0.0", |
|||
"yargs-unparser": "1.5.0" |
|||
} |
|||
}, |
|||
"ms": { |
|||
"version": "2.1.1", |
|||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", |
|||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" |
|||
}, |
|||
"nice-try": { |
|||
"version": "1.0.5", |
|||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", |
|||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" |
|||
}, |
|||
"node-environment-flags": { |
|||
"version": "1.0.5", |
|||
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", |
|||
"integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", |
|||
"requires": { |
|||
"object.getownpropertydescriptors": "^2.0.3", |
|||
"semver": "^5.7.0" |
|||
} |
|||
}, |
|||
"npm-run-path": { |
|||
"version": "2.0.2", |
|||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", |
|||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", |
|||
"requires": { |
|||
"path-key": "^2.0.0" |
|||
} |
|||
}, |
|||
"number-is-nan": { |
|||
"version": "1.0.1", |
|||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", |
|||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" |
|||
}, |
|||
"object-keys": { |
|||
"version": "1.1.1", |
|||
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", |
|||
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" |
|||
}, |
|||
"object.assign": { |
|||
"version": "4.1.0", |
|||
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", |
|||
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", |
|||
"requires": { |
|||
"define-properties": "^1.1.2", |
|||
"function-bind": "^1.1.1", |
|||
"has-symbols": "^1.0.0", |
|||
"object-keys": "^1.0.11" |
|||
} |
|||
}, |
|||
"object.getownpropertydescriptors": { |
|||
"version": "2.0.3", |
|||
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", |
|||
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", |
|||
"requires": { |
|||
"define-properties": "^1.1.2", |
|||
"es-abstract": "^1.5.1" |
|||
} |
|||
}, |
|||
"once": { |
|||
"version": "1.4.0", |
|||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
|||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", |
|||
"requires": { |
|||
"wrappy": "1" |
|||
} |
|||
}, |
|||
"os-locale": { |
|||
"version": "3.1.0", |
|||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", |
|||
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", |
|||
"requires": { |
|||
"execa": "^1.0.0", |
|||
"lcid": "^2.0.0", |
|||
"mem": "^4.0.0" |
|||
} |
|||
}, |
|||
"p-defer": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", |
|||
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" |
|||
}, |
|||
"p-finally": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", |
|||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" |
|||
}, |
|||
"p-is-promise": { |
|||
"version": "2.1.0", |
|||
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", |
|||
"integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" |
|||
}, |
|||
"p-limit": { |
|||
"version": "2.2.0", |
|||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", |
|||
"integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", |
|||
"requires": { |
|||
"p-try": "^2.0.0" |
|||
} |
|||
}, |
|||
"p-locate": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", |
|||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", |
|||
"requires": { |
|||
"p-limit": "^2.0.0" |
|||
} |
|||
}, |
|||
"p-try": { |
|||
"version": "2.2.0", |
|||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", |
|||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" |
|||
}, |
|||
"path-exists": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", |
|||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" |
|||
}, |
|||
"path-is-absolute": { |
|||
"version": "1.0.1", |
|||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", |
|||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" |
|||
}, |
|||
"path-key": { |
|||
"version": "2.0.1", |
|||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", |
|||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" |
|||
}, |
|||
"pump": { |
|||
"version": "3.0.0", |
|||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", |
|||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", |
|||
"requires": { |
|||
"end-of-stream": "^1.1.0", |
|||
"once": "^1.3.1" |
|||
} |
|||
}, |
|||
"require-directory": { |
|||
"version": "2.1.1", |
|||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", |
|||
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" |
|||
}, |
|||
"require-main-filename": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", |
|||
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" |
|||
}, |
|||
"semver": { |
|||
"version": "5.7.0", |
|||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", |
|||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" |
|||
}, |
|||
"set-blocking": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", |
|||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" |
|||
}, |
|||
"shebang-command": { |
|||
"version": "1.2.0", |
|||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", |
|||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", |
|||
"requires": { |
|||
"shebang-regex": "^1.0.0" |
|||
} |
|||
}, |
|||
"shebang-regex": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", |
|||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" |
|||
}, |
|||
"signal-exit": { |
|||
"version": "3.0.2", |
|||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", |
|||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" |
|||
}, |
|||
"sprintf-js": { |
|||
"version": "1.0.3", |
|||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", |
|||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" |
|||
}, |
|||
"string-width": { |
|||
"version": "2.1.1", |
|||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", |
|||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", |
|||
"requires": { |
|||
"is-fullwidth-code-point": "^2.0.0", |
|||
"strip-ansi": "^4.0.0" |
|||
} |
|||
}, |
|||
"strip-ansi": { |
|||
"version": "4.0.0", |
|||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", |
|||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", |
|||
"requires": { |
|||
"ansi-regex": "^3.0.0" |
|||
} |
|||
}, |
|||
"strip-eof": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", |
|||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" |
|||
}, |
|||
"strip-json-comments": { |
|||
"version": "2.0.1", |
|||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", |
|||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" |
|||
}, |
|||
"supports-color": { |
|||
"version": "6.0.0", |
|||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", |
|||
"integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", |
|||
"requires": { |
|||
"has-flag": "^3.0.0" |
|||
} |
|||
}, |
|||
"which": { |
|||
"version": "1.3.1", |
|||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", |
|||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", |
|||
"requires": { |
|||
"isexe": "^2.0.0" |
|||
} |
|||
}, |
|||
"which-module": { |
|||
"version": "2.0.0", |
|||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", |
|||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" |
|||
}, |
|||
"wide-align": { |
|||
"version": "1.1.3", |
|||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", |
|||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", |
|||
"requires": { |
|||
"string-width": "^1.0.2 || 2" |
|||
} |
|||
}, |
|||
"wrap-ansi": { |
|||
"version": "2.1.0", |
|||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", |
|||
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", |
|||
"requires": { |
|||
"string-width": "^1.0.1", |
|||
"strip-ansi": "^3.0.1" |
|||
}, |
|||
"dependencies": { |
|||
"ansi-regex": { |
|||
"version": "2.1.1", |
|||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", |
|||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" |
|||
}, |
|||
"is-fullwidth-code-point": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", |
|||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", |
|||
"requires": { |
|||
"number-is-nan": "^1.0.0" |
|||
} |
|||
}, |
|||
"string-width": { |
|||
"version": "1.0.2", |
|||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", |
|||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", |
|||
"requires": { |
|||
"code-point-at": "^1.0.0", |
|||
"is-fullwidth-code-point": "^1.0.0", |
|||
"strip-ansi": "^3.0.0" |
|||
} |
|||
}, |
|||
"strip-ansi": { |
|||
"version": "3.0.1", |
|||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", |
|||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", |
|||
"requires": { |
|||
"ansi-regex": "^2.0.0" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"wrappy": { |
|||
"version": "1.0.2", |
|||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
|||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" |
|||
}, |
|||
"y18n": { |
|||
"version": "4.0.0", |
|||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", |
|||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" |
|||
}, |
|||
"yargs": { |
|||
"version": "13.2.2", |
|||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", |
|||
"integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", |
|||
"requires": { |
|||
"cliui": "^4.0.0", |
|||
"find-up": "^3.0.0", |
|||
"get-caller-file": "^2.0.1", |
|||
"os-locale": "^3.1.0", |
|||
"require-directory": "^2.1.1", |
|||
"require-main-filename": "^2.0.0", |
|||
"set-blocking": "^2.0.0", |
|||
"string-width": "^3.0.0", |
|||
"which-module": "^2.0.0", |
|||
"y18n": "^4.0.0", |
|||
"yargs-parser": "^13.0.0" |
|||
}, |
|||
"dependencies": { |
|||
"ansi-regex": { |
|||
"version": "4.1.0", |
|||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", |
|||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" |
|||
}, |
|||
"string-width": { |
|||
"version": "3.1.0", |
|||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
|||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", |
|||
"requires": { |
|||
"emoji-regex": "^7.0.1", |
|||
"is-fullwidth-code-point": "^2.0.0", |
|||
"strip-ansi": "^5.1.0" |
|||
} |
|||
}, |
|||
"strip-ansi": { |
|||
"version": "5.2.0", |
|||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
|||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", |
|||
"requires": { |
|||
"ansi-regex": "^4.1.0" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"yargs-parser": { |
|||
"version": "13.0.0", |
|||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", |
|||
"integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", |
|||
"requires": { |
|||
"camelcase": "^5.0.0", |
|||
"decamelize": "^1.2.0" |
|||
} |
|||
}, |
|||
"yargs-unparser": { |
|||
"version": "1.5.0", |
|||
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", |
|||
"integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", |
|||
"requires": { |
|||
"flat": "^4.1.0", |
|||
"lodash": "^4.17.11", |
|||
"yargs": "^12.0.5" |
|||
}, |
|||
"dependencies": { |
|||
"get-caller-file": { |
|||
"version": "1.0.3", |
|||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", |
|||
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" |
|||
}, |
|||
"require-main-filename": { |
|||
"version": "1.0.1", |
|||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", |
|||
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" |
|||
}, |
|||
"yargs": { |
|||
"version": "12.0.5", |
|||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", |
|||
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", |
|||
"requires": { |
|||
"cliui": "^4.0.0", |
|||
"decamelize": "^1.2.0", |
|||
"find-up": "^3.0.0", |
|||
"get-caller-file": "^1.0.1", |
|||
"os-locale": "^3.0.0", |
|||
"require-directory": "^2.1.1", |
|||
"require-main-filename": "^1.0.1", |
|||
"set-blocking": "^2.0.0", |
|||
"string-width": "^2.0.0", |
|||
"which-module": "^2.0.0", |
|||
"y18n": "^3.2.1 || ^4.0.0", |
|||
"yargs-parser": "^11.1.1" |
|||
} |
|||
}, |
|||
"yargs-parser": { |
|||
"version": "11.1.1", |
|||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", |
|||
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", |
|||
"requires": { |
|||
"camelcase": "^5.0.0", |
|||
"decamelize": "^1.2.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,22 @@ |
|||
{ |
|||
"name": "ircd", |
|||
"version": "0.1.0", |
|||
"description": "A project implementation of the IRC protocol", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"test": "mocha" |
|||
}, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://gogs.informatik.hs-fulda.de/sheogorath/ircd-js.git" |
|||
}, |
|||
"keywords": [ |
|||
"irc", |
|||
"server" |
|||
], |
|||
"author": "Christoph Kern (sheogorath@shivering-isles.com)", |
|||
"license": "AGPL-3.0", |
|||
"devDependencies": { |
|||
"mocha": "^6.1.4" |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
const net = require("net") |
|||
|
|||
let server = {} |
|||
let userlist = {} |
|||
|
|||
server.create = function create(){ |
|||
return net.createServer((socket) => { |
|||
socket.on('data', function(data) { |
|||
let tokenized = data.toString("ascii").split("\r\n")[0].split(" ") |
|||
switch (tokenized[0].toUpperCase()) { |
|||
case "PING": |
|||
if (tokenized[1] && tokenized[1] === "irc.example.com") { |
|||
socket.write("PONG irc.example.com\r\n") |
|||
} |
|||
break; |
|||
default: |
|||
console.error(`Unknown command: ${tokenized[0].toUpperCase()}`); |
|||
} |
|||
}).on('error', (err) => { |
|||
console.error(err); |
|||
}) |
|||
}).on('error', (err) => { |
|||
console.error(err); |
|||
throw err; |
|||
}); |
|||
} |
|||
|
|||
|
|||
module.exports = server |
@ -0,0 +1,28 @@ |
|||
const assert = require('assert'); |
|||
const EventEmitter = require('events'); |
|||
const IRCServer = require("../src/server.js"); |
|||
|
|||
describe('IRC server', function() { |
|||
describe('#create()', function() { |
|||
it("should return a socket server", function() { |
|||
const server = IRCServer.create() |
|||
assert.equal(server.eventNames().toString(), ["connection", "error"].toString()) |
|||
}) |
|||
}) |
|||
describe("on('connection')", function() { |
|||
it("should handle a PING command -> PING irc.example.com", function(done) { |
|||
const server = IRCServer.create() |
|||
let mockedSock = new EventEmitter() |
|||
mockedSock.write = function(data) { |
|||
assert.equal(data.toString("ascii"), "PONG irc.example.com\r\n") |
|||
done() |
|||
} |
|||
mockedSock.destroy = function() { |
|||
done("Destroyed socket without answering") |
|||
} |
|||
|
|||
server.emit("connection", mockedSock) |
|||
mockedSock.emit('data', Buffer.from("PING irc.example.com\r\n", "ascii")) |
|||
}) |
|||
}) |
|||
}) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue