| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- const parse = require('./parse.js')
 
- const diff = (version1, version2) => {
 
-   const v1 = parse(version1, null, true)
 
-   const v2 = parse(version2, null, true)
 
-   const comparison = v1.compare(v2)
 
-   if (comparison === 0) {
 
-     return null
 
-   }
 
-   const v1Higher = comparison > 0
 
-   const highVersion = v1Higher ? v1 : v2
 
-   const lowVersion = v1Higher ? v2 : v1
 
-   const highHasPre = !!highVersion.prerelease.length
 
-   const lowHasPre = !!lowVersion.prerelease.length
 
-   if (lowHasPre && !highHasPre) {
 
-     // Going from prerelease -> no prerelease requires some special casing
 
-     // If the low version has only a major, then it will always be a major
 
-     // Some examples:
 
-     // 1.0.0-1 -> 1.0.0
 
-     // 1.0.0-1 -> 1.1.1
 
-     // 1.0.0-1 -> 2.0.0
 
-     if (!lowVersion.patch && !lowVersion.minor) {
 
-       return 'major'
 
-     }
 
-     // If the main part has no difference
 
-     if (lowVersion.compareMain(highVersion) === 0) {
 
-       if (lowVersion.minor && !lowVersion.patch) {
 
-         return 'minor'
 
-       }
 
-       return 'patch'
 
-     }
 
-   }
 
-   // add the `pre` prefix if we are going to a prerelease version
 
-   const prefix = highHasPre ? 'pre' : ''
 
-   if (v1.major !== v2.major) {
 
-     return prefix + 'major'
 
-   }
 
-   if (v1.minor !== v2.minor) {
 
-     return prefix + 'minor'
 
-   }
 
-   if (v1.patch !== v2.patch) {
 
-     return prefix + 'patch'
 
-   }
 
-   // high and low are preleases
 
-   return 'prerelease'
 
- }
 
- module.exports = diff
 
 
  |