Properly type imports when parsing deferredFiles from JSON. (#41)

diff --git a/lib/json_info_codec.dart b/lib/json_info_codec.dart
index 6462af3..56eeb58 100644
--- a/lib/json_info_codec.dart
+++ b/lib/json_info_codec.dart
@@ -72,8 +72,20 @@
     result.program = parseProgram(json['program']);
 
     if (json['deferredFiles'] != null) {
-      result.deferredFiles =
+      final deferredFilesMap =
           (json['deferredFiles'] as Map).cast<String, Map<String, dynamic>>();
+      for (final library in deferredFilesMap.values) {
+        if (library['imports'] != null) {
+          // The importMap needs to be typed as <String, List<String>>, but the
+          // json parser produces <String, dynamic>.
+          final importMap = library['imports'] as Map<String, dynamic>;
+          importMap.forEach((prefix, files) {
+            importMap[prefix] = (files as List<dynamic>).cast<String>();
+          });
+          library['imports'] = importMap.cast<String, List<String>>();
+        }
+      }
+      result.deferredFiles = deferredFilesMap;
     }
 
     // todo: version, etc
diff --git a/pubspec.yaml b/pubspec.yaml
index 91d835e..47de84b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: dart2js_info
-version: 0.5.8
+version: 0.5.8+1
 description: >
   Libraries and tools to process data produced when running dart2js with
   --dump-info.