Index: node_modules/autoprefixer/lib/resolution.js
===================================================================
--- node_modules/autoprefixer/lib/resolution.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/autoprefixer/lib/resolution.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,97 @@
+let FractionJs = require('fraction.js')
+
+let Prefixer = require('./prefixer')
+let utils = require('./utils')
+
+const REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi
+const SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i
+
+class Resolution extends Prefixer {
+  /**
+   * Remove prefixed queries
+   */
+  clean(rule) {
+    if (!this.bad) {
+      this.bad = []
+      for (let prefix of this.prefixes) {
+        this.bad.push(this.prefixName(prefix, 'min'))
+        this.bad.push(this.prefixName(prefix, 'max'))
+      }
+    }
+
+    rule.params = utils.editList(rule.params, queries => {
+      return queries.filter(query => this.bad.every(i => !query.includes(i)))
+    })
+  }
+
+  /**
+   * Return prefixed query name
+   */
+  prefixName(prefix, name) {
+    if (prefix === '-moz-') {
+      return name + '--moz-device-pixel-ratio'
+    } else {
+      return prefix + name + '-device-pixel-ratio'
+    }
+  }
+
+  /**
+   * Return prefixed query
+   */
+  prefixQuery(prefix, name, colon, value, units) {
+    value = new FractionJs(value)
+
+    // 1dpcm = 2.54dpi
+    // 1dppx = 96dpi
+    if (units === 'dpi') {
+      value = value.div(96)
+    } else if (units === 'dpcm') {
+      value = value.mul(2.54).div(96)
+    }
+    value = value.simplify()
+
+    if (prefix === '-o-') {
+      value = value.n + '/' + value.d
+    }
+    return this.prefixName(prefix, name) + colon + value
+  }
+
+  /**
+   * Add prefixed queries
+   */
+  process(rule) {
+    let parent = this.parentPrefix(rule)
+    let prefixes = parent ? [parent] : this.prefixes
+
+    rule.params = utils.editList(rule.params, (origin, prefixed) => {
+      for (let query of origin) {
+        if (
+          !query.includes('min-resolution') &&
+          !query.includes('max-resolution')
+        ) {
+          prefixed.push(query)
+          continue
+        }
+
+        for (let prefix of prefixes) {
+          let processed = query.replace(REGEXP, str => {
+            let parts = str.match(SPLIT)
+            return this.prefixQuery(
+              prefix,
+              parts[1],
+              parts[2],
+              parts[3],
+              parts[4]
+            )
+          })
+          prefixed.push(processed)
+        }
+        prefixed.push(query)
+      }
+
+      return utils.uniq(prefixed)
+    })
+  }
+}
+
+module.exports = Resolution
