| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- const qs = require('querystring')
 
- const _ = require('lodash')
 
- const crypto = require('crypto')
 
- module.exports = {
 
-   /**
 
-    * Parse raw url path and make it safe
 
-    */
 
-   parsePath (rawPath) {
 
-     let pathObj = {
 
-       locale: 'en',
 
-       path: 'home',
 
-       private: false,
 
-       privateNS: ''
 
-     }
 
-     // Clean Path
 
-     rawPath = _.trim(qs.unescape(rawPath))
 
-     if (_.startsWith(rawPath, '/')) { rawPath = rawPath.substring(1) }
 
-     if (rawPath === '') { rawPath = 'home' }
 
-     // Extract Info
 
-     let pathParts = _.filter(_.split(rawPath, '/'), p => !_.isEmpty(p))
 
-     if (pathParts[0].length === 1) {
 
-       pathParts.shift()
 
-     }
 
-     if (pathParts[0].length === 2) {
 
-       pathObj.locale = pathParts[0]
 
-       pathParts.shift()
 
-     }
 
-     pathObj.path = _.join(pathParts, '/')
 
-     return pathObj
 
-   },
 
-   /**
 
-    * Generate unique hash from page
 
-    */
 
-   generateHash(opts) {
 
-     return crypto.createHash('sha1').update(`${opts.locale}|${opts.path}|${opts.privateNS}`).digest('hex')
 
-   }
 
- }
 
 
  |