| 
									
										
										
										
											2017-10-21 21:10:33 -04:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 23:31:44 -04:00
										 |  |  | const crypto = require('crypto'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function randomToken(length) { | 
					
						
							|  |  |  |     return crypto.randomBytes(length).toString('base64'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function newNoteId() { | 
					
						
							|  |  |  |     return randomString(32, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function randomString(length, chars) { | 
					
						
							|  |  |  |     let result = ''; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (let i = length; i > 0; --i) { | 
					
						
							|  |  |  |         result += chars[Math.floor(Math.random() * chars.length)]; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return result; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function nowTimestamp() { | 
					
						
							| 
									
										
										
										
											2017-10-15 17:07:34 -04:00
										 |  |  |     return Math.floor(Date.now() / 1000); | 
					
						
							| 
									
										
										
										
											2017-10-14 23:31:44 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function toBase64(plainText) { | 
					
						
							|  |  |  |     return Buffer.from(plainText).toString('base64'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function fromBase64(encodedText) { | 
					
						
							|  |  |  |     return Buffer.from(encodedText, 'base64'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							|  |  |  |     randomToken, | 
					
						
							|  |  |  |     nowTimestamp, | 
					
						
							|  |  |  |     newNoteId, | 
					
						
							|  |  |  |     toBase64, | 
					
						
							|  |  |  |     fromBase64 | 
					
						
							|  |  |  | }; |