diff options
-rw-r--r-- | CONTRIBUTING.md | 25 | ||||
-rw-r--r-- | README.md | 15 | ||||
-rw-r--r-- | docs/global.html | 272 | ||||
-rw-r--r-- | docs/index.html | 4 | ||||
-rw-r--r-- | docs/index.js.html | 49 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/index.js | 45 |
7 files changed, 214 insertions, 198 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5b4b08f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +* (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +* (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +* (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +* (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved.
\ No newline at end of file @@ -1,14 +1,7 @@ # III Client -[![npm][npm-image]][npm-url] -[![david][david-image]][david-url] -[![david-dev][david-dev-image]][david-dev-url] - -[npm-image]: https://img.shields.io/npm/v/iii-client.svg -[npm-url]: https://npmjs.org/package/iii-client -[david-image]: https://david-dm.org/valentineus/iii-client/status.svg -[david-url]: https://david-dm.org/valentineus/iii-client -[david-dev-image]: https://david-dm.org/valentineus/iii-client/dev-status.svg -[david-dev-url]: https://david-dm.org/valentineus/iii-client?type=dev +[![npm](https://img.shields.io/npm/v/iii-client.svg)](https://www.npmjs.com/package/iii-client) +[![dependencies Status](https://david-dm.org/valentineus/iii-client/status.svg)](https://david-dm.org/valentineus/iii-client) +[![devDependencies Status](https://david-dm.org/valentineus/iii-client/dev-status.svg)](https://david-dm.org/valentineus/iii-client?type=dev) Simple API for communicating with the bot of the \"iii.ru\" service. @@ -79,6 +72,6 @@ Description of the internal kitchen can be seen on the [documentation page](http Found out a mistake or feel a lack of functionality? [issues](https://github.com/valentineus/iii-client/issues) ## License -[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) +[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/eslint/eslint) [MIT](LICENSE.md). Copyright (c) [Valentin Popov](https://valentineus.link/).
\ No newline at end of file diff --git a/docs/global.html b/docs/global.html index bcec003..8b70834 100644 --- a/docs/global.html +++ b/docs/global.html @@ -24,7 +24,7 @@ <label for="nav-trigger" class="overlay"></label> <nav> - <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_createPackage">_createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decrypt">_decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decryptJSON">_decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_encrypt">_encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_merger">_merger</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_verification">_verification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> + <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createPackage">createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decrypt">decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decryptJSON">decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#encrypt">encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#isVerification">isVerification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#mergerString">mergerString</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> </nav> <div id="main"> @@ -160,7 +160,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line7">line 7</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line6">line 6</a> </li></ul></dd> @@ -191,14 +191,14 @@ - <h4 class="name" id="_createPackage"><span class="type-signature"></span>_createPackage<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> + <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(uuid, callback)</span><span class="type-signature"></span></h4> <div class="description"> - Creates an encrypted package to send. + Connects to the server and returns the connection data. </div> @@ -234,7 +234,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line140">line 140</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line14">line 14</a> </li></ul></dd> @@ -278,50 +278,7 @@ <tr> - <td class="name"><code>raw</code></td> - - - <td class="type"> - - -<span class="param-type"><code>Object</code></span> - - - - </td> - - - - - - <td class="description last"> - The data to send. - - - -<table class="params"> - <thead> - <tr> - - <th>Name</th> - - - <th>Type</th> - - - - - - <th class="last">Description</th> - </tr> - </thead> - - <tbody> - - - <tr> - - <td class="name"><code>cuid</code></td> + <td class="name"><code>uuid</code></td> <td class="type"> @@ -338,7 +295,7 @@ <td class="description last"> - Session identifier. + The bot UUID. </td> </tr> @@ -347,13 +304,13 @@ <tr> - <td class="name"><code>text</code></td> + <td class="name"><code>callback</code></td> <td class="type"> -<span class="param-type"><code>String</code></span> +<span class="param-type"><code>requestCallback</code></span> @@ -364,15 +321,7 @@ <td class="description last"> - Message text. - - </td> - </tr> - - - </tbody> -</table> - + The callback that handles the response. </td> </tr> @@ -394,31 +343,6 @@ -<div class="section-returns"> -<h5>Returns:</h5> - - - -<dl class="param-type"> - <dt> - Type: - </dt> - <dd> - -<span class="param-type"><code>String</code></span> - - - </dd> -</dl> - - -<div class="param-desc"> - - Encrypted string. -</div> - - -</div> - </div> @@ -428,14 +352,14 @@ - <h4 class="name" id="_decrypt"><span class="type-signature"></span>_decrypt<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> + <h4 class="name" id="createPackage"><span class="type-signature"></span>createPackage<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> <div class="description"> - Decrypts the incoming data. + Creates an encrypted package to send. </div> @@ -471,7 +395,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line92">line 92</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line139">line 139</a> </li></ul></dd> @@ -521,6 +445,49 @@ <td class="type"> +<span class="param-type"><code>Object</code></span> + + + + </td> + + + + + + <td class="description last"> + The data to send. + + + +<table class="params"> + <thead> + <tr> + + <th>Name</th> + + + <th>Type</th> + + + + + + <th class="last">Description</th> + </tr> + </thead> + + <tbody> + + + <tr> + + <td class="name"><code>cuid</code></td> + + + <td class="type"> + + <span class="param-type"><code>String</code></span> @@ -532,7 +499,41 @@ <td class="description last"> - Encrypted data. + Session identifier. + + </td> + </tr> + + + + <tr> + + <td class="name"><code>text</code></td> + + + <td class="type"> + + +<span class="param-type"><code>String</code></span> + + + + </td> + + + + + + <td class="description last"> + Message text. + + </td> + </tr> + + + </tbody> +</table> + </td> </tr> @@ -573,7 +574,7 @@ <div class="param-desc"> - - Decrypted string. + - Encrypted string. </div> @@ -588,14 +589,14 @@ - <h4 class="name" id="_decryptJSON"><span class="type-signature"></span>_decryptJSON<span class="signature">(raw)</span><span class="type-signature"> → {Object}</span></h4> + <h4 class="name" id="decrypt"><span class="type-signature"></span>decrypt<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> <div class="description"> - Decrypts an encrypted JSON object. + Decrypts the incoming data. </div> @@ -631,7 +632,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line106">line 106</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line91">line 91</a> </li></ul></dd> @@ -725,7 +726,7 @@ </dt> <dd> -<span class="param-type"><code>Object</code></span> +<span class="param-type"><code>String</code></span> </dd> @@ -733,7 +734,7 @@ <div class="param-desc"> - - Decrypted JSON. + - Decrypted string. </div> @@ -748,14 +749,14 @@ - <h4 class="name" id="_encrypt"><span class="type-signature"></span>_encrypt<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> + <h4 class="name" id="decryptJSON"><span class="type-signature"></span>decryptJSON<span class="signature">(raw)</span><span class="type-signature"> → {Object}</span></h4> <div class="description"> - Encrypts the incoming data. + Decrypts an encrypted JSON object. </div> @@ -791,7 +792,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line78">line 78</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line105">line 105</a> </li></ul></dd> @@ -852,7 +853,7 @@ <td class="description last"> - Decrypted data. + Encrypted data. </td> </tr> @@ -885,7 +886,7 @@ </dt> <dd> -<span class="param-type"><code>String</code></span> +<span class="param-type"><code>Object</code></span> </dd> @@ -893,7 +894,7 @@ <div class="param-desc"> - - Encrypted string. + - Decrypted JSON. </div> @@ -908,14 +909,14 @@ - <h4 class="name" id="_merger"><span class="type-signature"></span>_merger<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> + <h4 class="name" id="encrypt"><span class="type-signature"></span>encrypt<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> <div class="description"> - Merge and convert a string. + Encrypts the incoming data. </div> @@ -951,7 +952,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line120">line 120</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line77">line 77</a> </li></ul></dd> @@ -1012,7 +1013,7 @@ <td class="description last"> - The string to convert. + Decrypted data. </td> </tr> @@ -1053,7 +1054,7 @@ <div class="param-desc"> - - The converted string. + - Encrypted string. </div> @@ -1068,7 +1069,7 @@ - <h4 class="name" id="_verification"><span class="type-signature"></span>_verification<span class="signature">(data)</span><span class="type-signature"> → {Boolean}</span></h4> + <h4 class="name" id="isVerification"><span class="type-signature"></span>isVerification<span class="signature">(data)</span><span class="type-signature"> → {Boolean}</span></h4> @@ -1111,7 +1112,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line165">line 165</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line164">line 164</a> </li></ul></dd> @@ -1224,14 +1225,14 @@ - <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(uuid, callback)</span><span class="type-signature"></span></h4> + <h4 class="name" id="mergerString"><span class="type-signature"></span>mergerString<span class="signature">(raw)</span><span class="type-signature"> → {String}</span></h4> <div class="description"> - Connects to the server and returns the connection data. + Merge and convert a string. </div> @@ -1267,7 +1268,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line15">line 15</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line119">line 119</a> </li></ul></dd> @@ -1311,7 +1312,7 @@ <tr> - <td class="name"><code>uuid</code></td> + <td class="name"><code>raw</code></td> <td class="type"> @@ -1328,53 +1329,52 @@ <td class="description last"> - The bot UUID. + The string to convert. </td> </tr> + </tbody> +</table> - <tr> - - <td class="name"><code>callback</code></td> - - <td class="type"> - - -<span class="param-type"><code>requestCallback</code></span> - - </td> - - - <td class="description last"> - The callback that handles the response. - - </td> - </tr> - - </tbody> -</table> +<div class="section-returns"> +<h5>Returns:</h5> + +<dl class="param-type"> + <dt> + Type: + </dt> + <dd> + +<span class="param-type"><code>String</code></span> + </dd> +</dl> +<div class="param-desc"> + - The converted string. +</div> + +</div> @@ -1428,7 +1428,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="index.js.html">index.js</a>, <a href="index.js.html#line48">line 48</a> + <a href="index.js.html">index.js</a>, <a href="index.js.html#line47">line 47</a> </li></ul></dd> @@ -1635,7 +1635,7 @@ <br class="clear"> <footer> - Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Mon May 29 2017 07:00:49 GMT+0300 (MSK) using the Minami theme. + Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Tue May 30 2017 16:03:16 GMT+0300 (MSK) using the Minami theme. </footer> <script>prettyPrint();</script> diff --git a/docs/index.html b/docs/index.html index f19634a..691916c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -24,7 +24,7 @@ <label for="nav-trigger" class="overlay"></label> <nav> - <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_createPackage">_createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decrypt">_decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decryptJSON">_decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_encrypt">_encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_merger">_merger</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_verification">_verification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> + <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createPackage">createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decrypt">decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decryptJSON">decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#encrypt">encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#isVerification">isVerification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#mergerString">mergerString</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> </nav> <div id="main"> @@ -57,7 +57,7 @@ <br class="clear"> <footer> - Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Mon May 29 2017 07:00:49 GMT+0300 (MSK) using the Minami theme. + Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Tue May 30 2017 16:03:16 GMT+0300 (MSK) using the Minami theme. </footer> <script>prettyPrint();</script> diff --git a/docs/index.js.html b/docs/index.js.html index 29aeb27..3e970dc 100644 --- a/docs/index.js.html +++ b/docs/index.js.html @@ -24,7 +24,7 @@ <label for="nav-trigger" class="overlay"></label> <nav> - <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_createPackage">_createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decrypt">_decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_decryptJSON">_decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_encrypt">_encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_merger">_merger</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#_verification">_verification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> + <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#connect">connect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createPackage">createPackage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decrypt">decrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#decryptJSON">decryptJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#encrypt">encrypt</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#http">http</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#isVerification">isVerification</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#mergerString">mergerString</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#send">send</a></span></li> </nav> <div id="main"> @@ -44,7 +44,6 @@ * @author Valentin Popov <info@valentineus.link> * @license See LICENSE.md file included in this distribution. */ - var http = require('http'); exports.connect = connect; @@ -56,7 +55,7 @@ exports.connect = connect; function connect(uuid, callback) { uuid = uuid || ''; - if (!_verification(uuid)) { + if (!isVerification(uuid)) { throw new Error('The UUID is not a valid value!'); } @@ -69,7 +68,7 @@ function connect(uuid, callback) { const request = http.request(query, function(response) { var json = ''; - response.on('data', (raw) => json = _decryptJSON(raw)); + response.on('data', (raw) => json = decryptJSON(raw)); response.on('end', () => callback(json.result)); }); @@ -96,12 +95,12 @@ function send(raw, callback) { method: 'POST', }; - const data = _createPackage(raw); + const data = createPackage(raw); const request = http.request(query, function(response) { var json = ''; - response.on('data', (raw) => json = _decryptJSON(raw)); - response.on('end', () => callback(json)); + response.on('data', (raw) => json = decryptJSON(raw)); + response.on('end', () => callback(json.result)); }); request.on('error', (error) => Error(error)); @@ -110,55 +109,55 @@ function send(raw, callback) { request.end(); } -exports._encrypt = _encrypt; +exports.encrypt = encrypt; /** * Encrypts the incoming data. * @param {String} raw - Decrypted data. * @returns {String} - Encrypted string. */ -function _encrypt(raw) { +function encrypt(raw) { raw = raw || ''; var base64 = Buffer.from(raw).toString('base64'); var string = Buffer.from(base64); - return _merger(string).toString('base64'); + return mergerString(string).toString('base64'); } -exports._decrypt = _decrypt; +exports.decrypt = decrypt; /** * Decrypts the incoming data. * @param {String} raw - Encrypted data. * @returns {String} - Decrypted string. */ -function _decrypt(raw) { +function decrypt(raw) { raw = raw || ''; var string = Buffer.from(raw, 'base64'); - var decrypted = _merger(string).toString(); + var decrypted = mergerString(string).toString(); return Buffer.from(decrypted, 'base64'); } -exports._decryptJSON = _decryptJSON; +exports.decryptJSON = decryptJSON; /** * Decrypts an encrypted JSON object. * @param {String} raw - Encrypted data. * @returns {Object} - Decrypted JSON. */ -function _decryptJSON(raw) { +function decryptJSON(raw) { raw = raw || ''; var string = raw.toString('ascii'); - var data = _decrypt(string); + var data = decrypt(string); return JSON.parse(data); } -exports._merger = _merger; +exports.mergerString = mergerString; /** * Merge and convert a string. * @param {String} raw - The string to convert. * @returns {String} - The converted string. */ -function _merger(data) { +function mergerString(data) { data = data || ''; const salt = Buffer.from('some very-very long string without any non-latin characters due to different string representations inside of variable programming languages'); @@ -170,7 +169,7 @@ function _merger(data) { return data; } -exports._createPackage = _createPackage; +exports.createPackage = createPackage; /** * Creates an encrypted package to send. * @param {Object} raw - The data to send. @@ -178,14 +177,14 @@ exports._createPackage = _createPackage; * @param {String} raw.text - Message text. * @returns {String} - Encrypted string. */ -function _createPackage(raw) { +function createPackage(raw) { raw = raw || {}; if (!raw.text) { throw new Error('There is no data to send!'); } - if (!_verification(raw.cuid)) { + if (!isVerification(raw.cuid)) { throw new Error('Parameter \'CUID\' is not a valid UUID value!'); } @@ -194,16 +193,16 @@ function _createPackage(raw) { data.push(raw.text.toString()); var json = JSON.stringify(data); - return _encrypt(json); + return encrypt(json); } -exports._verification = _verification; +exports.isVerification = isVerification; /** * Validation UUID format string. * @param {String} data - The string to check. * @returns {Boolean} */ -function _verification(data) { +function isVerification(data) { data = data || ''; const regexp = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$', 'i'); return regexp.test(data); @@ -220,7 +219,7 @@ function _verification(data) { <br class="clear"> <footer> - Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Mon May 29 2017 07:00:49 GMT+0300 (MSK) using the Minami theme. + Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Tue May 30 2017 16:03:16 GMT+0300 (MSK) using the Minami theme. </footer> <script>prettyPrint();</script> diff --git a/package.json b/package.json index 0cc805d..c533931 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iii-client", - "version": "0.0.3", + "version": "1.0.0", "description": "Simple API for communicating with the bot of the \"iii.ru\" service.", "homepage": "https://github.com/valentineus/iii-client", "license": "MIT", diff --git a/src/index.js b/src/index.js index 31e238d..24bfd6e 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,6 @@ * @author Valentin Popov <info@valentineus.link> * @license See LICENSE.md file included in this distribution. */ - var http = require('http'); exports.connect = connect; @@ -15,7 +14,7 @@ exports.connect = connect; function connect(uuid, callback) { uuid = uuid || ''; - if (!_verification(uuid)) { + if (!isVerification(uuid)) { throw new Error('The UUID is not a valid value!'); } @@ -28,7 +27,7 @@ function connect(uuid, callback) { const request = http.request(query, function(response) { var json = ''; - response.on('data', (raw) => json = _decryptJSON(raw)); + response.on('data', (raw) => json = decryptJSON(raw)); response.on('end', () => callback(json.result)); }); @@ -55,12 +54,12 @@ function send(raw, callback) { method: 'POST', }; - const data = _createPackage(raw); + const data = createPackage(raw); const request = http.request(query, function(response) { var json = ''; - response.on('data', (raw) => json = _decryptJSON(raw)); - response.on('end', () => callback(json)); + response.on('data', (raw) => json = decryptJSON(raw)); + response.on('end', () => callback(json.result)); }); request.on('error', (error) => Error(error)); @@ -69,55 +68,55 @@ function send(raw, callback) { request.end(); } -exports._encrypt = _encrypt; +exports.encrypt = encrypt; /** * Encrypts the incoming data. * @param {String} raw - Decrypted data. * @returns {String} - Encrypted string. */ -function _encrypt(raw) { +function encrypt(raw) { raw = raw || ''; var base64 = Buffer.from(raw).toString('base64'); var string = Buffer.from(base64); - return _merger(string).toString('base64'); + return mergerString(string).toString('base64'); } -exports._decrypt = _decrypt; +exports.decrypt = decrypt; /** * Decrypts the incoming data. * @param {String} raw - Encrypted data. * @returns {String} - Decrypted string. */ -function _decrypt(raw) { +function decrypt(raw) { raw = raw || ''; var string = Buffer.from(raw, 'base64'); - var decrypted = _merger(string).toString(); + var decrypted = mergerString(string).toString(); return Buffer.from(decrypted, 'base64'); } -exports._decryptJSON = _decryptJSON; +exports.decryptJSON = decryptJSON; /** * Decrypts an encrypted JSON object. * @param {String} raw - Encrypted data. * @returns {Object} - Decrypted JSON. */ -function _decryptJSON(raw) { +function decryptJSON(raw) { raw = raw || ''; var string = raw.toString('ascii'); - var data = _decrypt(string); + var data = decrypt(string); return JSON.parse(data); } -exports._merger = _merger; +exports.mergerString = mergerString; /** * Merge and convert a string. * @param {String} raw - The string to convert. * @returns {String} - The converted string. */ -function _merger(data) { +function mergerString(data) { data = data || ''; const salt = Buffer.from('some very-very long string without any non-latin characters due to different string representations inside of variable programming languages'); @@ -129,7 +128,7 @@ function _merger(data) { return data; } -exports._createPackage = _createPackage; +exports.createPackage = createPackage; /** * Creates an encrypted package to send. * @param {Object} raw - The data to send. @@ -137,14 +136,14 @@ exports._createPackage = _createPackage; * @param {String} raw.text - Message text. * @returns {String} - Encrypted string. */ -function _createPackage(raw) { +function createPackage(raw) { raw = raw || {}; if (!raw.text) { throw new Error('There is no data to send!'); } - if (!_verification(raw.cuid)) { + if (!isVerification(raw.cuid)) { throw new Error('Parameter \'CUID\' is not a valid UUID value!'); } @@ -153,16 +152,16 @@ function _createPackage(raw) { data.push(raw.text.toString()); var json = JSON.stringify(data); - return _encrypt(json); + return encrypt(json); } -exports._verification = _verification; +exports.isVerification = isVerification; /** * Validation UUID format string. * @param {String} data - The string to check. * @returns {Boolean} */ -function _verification(data) { +function isVerification(data) { data = data || ''; const regexp = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$', 'i'); return regexp.test(data); |