Index: node_modules/caniuse-lite/dist/lib/statuses.js
===================================================================
--- node_modules/caniuse-lite/dist/lib/statuses.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/lib/statuses.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,9 @@
+module.exports = {
+  1: 'ls', // WHATWG Living Standard
+  2: 'rec', // W3C Recommendation
+  3: 'pr', // W3C Proposed Recommendation
+  4: 'cr', // W3C Candidate Recommendation
+  5: 'wd', // W3C Working Draft
+  6: 'other', // Non-W3C, but reputable
+  7: 'unoff' // Unofficial, Editor's Draft or W3C "Note"
+}
Index: node_modules/caniuse-lite/dist/lib/supported.js
===================================================================
--- node_modules/caniuse-lite/dist/lib/supported.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/lib/supported.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,9 @@
+module.exports = {
+  y: 1 << 0,
+  n: 1 << 1,
+  a: 1 << 2,
+  p: 1 << 3,
+  u: 1 << 4,
+  x: 1 << 5,
+  d: 1 << 6
+}
Index: node_modules/caniuse-lite/dist/unpacker/agents.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/agents.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/agents.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,47 @@
+'use strict'
+
+const browsers = require('./browsers').browsers
+const versions = require('./browserVersions').browserVersions
+const agentsData = require('../../data/agents')
+
+function unpackBrowserVersions(versionsData) {
+  return Object.keys(versionsData).reduce((usage, version) => {
+    usage[versions[version]] = versionsData[version]
+    return usage
+  }, {})
+}
+
+module.exports.agents = Object.keys(agentsData).reduce((map, key) => {
+  let versionsData = agentsData[key]
+  map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {
+    if (entry === 'A') {
+      data.usage_global = unpackBrowserVersions(versionsData[entry])
+    } else if (entry === 'C') {
+      data.versions = versionsData[entry].reduce((list, version) => {
+        if (version === '') {
+          list.push(null)
+        } else {
+          list.push(versions[version])
+        }
+        return list
+      }, [])
+    } else if (entry === 'D') {
+      data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])
+    } else if (entry === 'E') {
+      data.browser = versionsData[entry]
+    } else if (entry === 'F') {
+      data.release_date = Object.keys(versionsData[entry]).reduce(
+        (map2, key2) => {
+          map2[versions[key2]] = versionsData[entry][key2]
+          return map2
+        },
+        {}
+      )
+    } else {
+      // entry is B
+      data.prefix = versionsData[entry]
+    }
+    return data
+  }, {})
+  return map
+}, {})
Index: node_modules/caniuse-lite/dist/unpacker/browserVersions.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/browserVersions.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/browserVersions.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,1 @@
+module.exports.browserVersions = require('../../data/browserVersions')
Index: node_modules/caniuse-lite/dist/unpacker/browsers.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/browsers.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/browsers.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,1 @@
+module.exports.browsers = require('../../data/browsers')
Index: node_modules/caniuse-lite/dist/unpacker/feature.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/feature.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/feature.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,52 @@
+'use strict'
+
+const statuses = require('../lib/statuses')
+const supported = require('../lib/supported')
+const browsers = require('./browsers').browsers
+const versions = require('./browserVersions').browserVersions
+
+const MATH2LOG = Math.log(2)
+
+function unpackSupport(cipher) {
+  // bit flags
+  let stats = Object.keys(supported).reduce((list, support) => {
+    if (cipher & supported[support]) list.push(support)
+    return list
+  }, [])
+
+  // notes
+  let notes = cipher >> 7
+  let notesArray = []
+  while (notes) {
+    let note = Math.floor(Math.log(notes) / MATH2LOG) + 1
+    notesArray.unshift(`#${note}`)
+    notes -= Math.pow(2, note - 1)
+  }
+
+  return stats.concat(notesArray).join(' ')
+}
+
+function unpackFeature(packed) {
+  let unpacked = {
+    status: statuses[packed.B],
+    title: packed.C,
+    shown: packed.D
+  }
+  unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => {
+    let browser = packed.A[key]
+    browserStats[browsers[key]] = Object.keys(browser).reduce(
+      (stats, support) => {
+        let packedVersions = browser[support].split(' ')
+        let unpacked2 = unpackSupport(support)
+        packedVersions.forEach(v => (stats[versions[v]] = unpacked2))
+        return stats
+      },
+      {}
+    )
+    return browserStats
+  }, {})
+  return unpacked
+}
+
+module.exports = unpackFeature
+module.exports.default = unpackFeature
Index: node_modules/caniuse-lite/dist/unpacker/features.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/features.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/features.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,6 @@
+/*
+ * Load this dynamically so that it
+ * doesn't appear in the rollup bundle.
+ */
+
+module.exports.features = require('../../data/features')
Index: node_modules/caniuse-lite/dist/unpacker/index.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/index.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/index.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,4 @@
+module.exports.agents = require('./agents').agents
+module.exports.feature = require('./feature')
+module.exports.features = require('./features').features
+module.exports.region = require('./region')
Index: node_modules/caniuse-lite/dist/unpacker/region.js
===================================================================
--- node_modules/caniuse-lite/dist/unpacker/region.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ node_modules/caniuse-lite/dist/unpacker/region.js	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
@@ -0,0 +1,22 @@
+'use strict'
+
+const browsers = require('./browsers').browsers
+
+function unpackRegion(packed) {
+  return Object.keys(packed).reduce((list, browser) => {
+    let data = packed[browser]
+    list[browsers[browser]] = Object.keys(data).reduce((memo, key) => {
+      let stats = data[key]
+      if (key === '_') {
+        stats.split(' ').forEach(version => (memo[version] = null))
+      } else {
+        memo[key] = stats
+      }
+      return memo
+    }, {})
+    return list
+  }, {})
+}
+
+module.exports = unpackRegion
+module.exports.default = unpackRegion
