cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mura...@apache.org
Subject [6/6] cordova-registry-web git commit: Extend grunt, add more structure, fix bugs
Date Thu, 16 Jul 2015 00:37:10 GMT
Extend grunt, add more structure, fix bugs


Project: http://git-wip-us.apache.org/repos/asf/cordova-registry-web/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-registry-web/commit/676d5b79
Tree: http://git-wip-us.apache.org/repos/asf/cordova-registry-web/tree/676d5b79
Diff: http://git-wip-us.apache.org/repos/asf/cordova-registry-web/diff/676d5b79

Branch: refs/heads/master
Commit: 676d5b79600d4fc0e989b1f42f573be0c3cf9d5f
Parents: a809ee5
Author: Murat Sutunc <sutunc@gmail.com>
Authored: Wed Jul 15 17:32:34 2015 -0700
Committer: Murat Sutunc <sutunc@gmail.com>
Committed: Wed Jul 15 17:33:00 2015 -0700

----------------------------------------------------------------------
 Gruntfile.js                                    |   19 +
 README.md                                       |    3 +
 attachments/npm/assets/css/base.css             |  428 ------
 attachments/npm/assets/css/flexboxgrid.css      | 1026 ------------
 .../npm/assets/img/android-chrome-144x144.png   |  Bin 11173 -> 0 bytes
 .../npm/assets/img/android-chrome-192x192.png   |  Bin 15781 -> 0 bytes
 .../npm/assets/img/android-chrome-36x36.png     |  Bin 2380 -> 0 bytes
 .../npm/assets/img/android-chrome-48x48.png     |  Bin 3264 -> 0 bytes
 .../npm/assets/img/android-chrome-72x72.png     |  Bin 5139 -> 0 bytes
 .../npm/assets/img/android-chrome-96x96.png     |  Bin 7089 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-114x114.png |  Bin 8592 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-120x120.png |  Bin 9021 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-144x144.png |  Bin 11173 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-152x152.png |  Bin 11920 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-180x180.png |  Bin 14535 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-57x57.png   |  Bin 3950 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-60x60.png   |  Bin 4157 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-72x72.png   |  Bin 5139 -> 0 bytes
 .../npm/assets/img/apple-touch-icon-76x76.png   |  Bin 5370 -> 0 bytes
 .../assets/img/apple-touch-icon-precomposed.png |  Bin 14109 -> 0 bytes
 attachments/npm/assets/img/apple-touch-icon.png |  Bin 14535 -> 0 bytes
 attachments/npm/assets/img/browserconfig.xml    |   12 -
 attachments/npm/assets/img/favicon-16x16.png    |  Bin 1401 -> 0 bytes
 attachments/npm/assets/img/favicon-32x32.png    |  Bin 2076 -> 0 bytes
 attachments/npm/assets/img/favicon-96x96.png    |  Bin 7089 -> 0 bytes
 attachments/npm/assets/img/favicon.ico          |  Bin 15086 -> 0 bytes
 attachments/npm/assets/img/grid.png             |  Bin 1169 -> 0 bytes
 attachments/npm/assets/img/manifest.json        |   41 -
 attachments/npm/assets/img/mstile-144x144.png   |  Bin 10873 -> 0 bytes
 attachments/npm/assets/img/mstile-150x150.png   |  Bin 10291 -> 0 bytes
 attachments/npm/assets/img/mstile-310x150.png   |  Bin 11077 -> 0 bytes
 attachments/npm/assets/img/mstile-310x310.png   |  Bin 24984 -> 0 bytes
 attachments/npm/assets/img/mstile-70x70.png     |  Bin 6957 -> 0 bytes
 attachments/npm/assets/img/pluggy.png           |  Bin 16342 -> 0 bytes
 attachments/npm/assets/img/search.png           |  Bin 540 -> 0 bytes
 attachments/npm/assets/img/shadow.png           |  Bin 942 -> 0 bytes
 attachments/npm/assets/img/sprite.png           |  Bin 13702 -> 0 bytes
 attachments/npm/assets/js/app.js                |  493 ------
 .../npm/assets/js/blacklisted-plugins.json      |    7 -
 attachments/npm/assets/js/official-plugins.json |   26 -
 attachments/npm/build/app.js                    |    6 -
 .../npm/build/img/android-chrome-144x144.png    |  Bin 10659 -> 0 bytes
 .../npm/build/img/android-chrome-192x192.png    |  Bin 15007 -> 0 bytes
 .../npm/build/img/android-chrome-36x36.png      |  Bin 2157 -> 0 bytes
 .../npm/build/img/android-chrome-48x48.png      |  Bin 3015 -> 0 bytes
 .../npm/build/img/android-chrome-72x72.png      |  Bin 4860 -> 0 bytes
 .../npm/build/img/android-chrome-96x96.png      |  Bin 6726 -> 0 bytes
 .../npm/build/img/apple-touch-icon-114x114.png  |  Bin 8162 -> 0 bytes
 .../npm/build/img/apple-touch-icon-120x120.png  |  Bin 8568 -> 0 bytes
 .../npm/build/img/apple-touch-icon-144x144.png  |  Bin 10659 -> 0 bytes
 .../npm/build/img/apple-touch-icon-152x152.png  |  Bin 11324 -> 0 bytes
 .../npm/build/img/apple-touch-icon-180x180.png  |  Bin 13842 -> 0 bytes
 .../npm/build/img/apple-touch-icon-57x57.png    |  Bin 3679 -> 0 bytes
 .../npm/build/img/apple-touch-icon-60x60.png    |  Bin 3890 -> 0 bytes
 .../npm/build/img/apple-touch-icon-72x72.png    |  Bin 4860 -> 0 bytes
 .../npm/build/img/apple-touch-icon-76x76.png    |  Bin 5072 -> 0 bytes
 .../build/img/apple-touch-icon-precomposed.png  |  Bin 13417 -> 0 bytes
 attachments/npm/build/img/apple-touch-icon.png  |  Bin 13842 -> 0 bytes
 attachments/npm/build/img/favicon-16x16.png     |  Bin 1046 -> 0 bytes
 attachments/npm/build/img/favicon-32x32.png     |  Bin 1861 -> 0 bytes
 attachments/npm/build/img/favicon-96x96.png     |  Bin 6726 -> 0 bytes
 attachments/npm/build/img/grid.png              |  Bin 133 -> 0 bytes
 attachments/npm/build/img/mstile-144x144.png    |  Bin 10334 -> 0 bytes
 attachments/npm/build/img/mstile-150x150.png    |  Bin 9752 -> 0 bytes
 attachments/npm/build/img/mstile-310x150.png    |  Bin 10590 -> 0 bytes
 attachments/npm/build/img/mstile-310x310.png    |  Bin 23983 -> 0 bytes
 attachments/npm/build/img/mstile-70x70.png      |  Bin 6528 -> 0 bytes
 attachments/npm/build/img/pluggy.png            |  Bin 16302 -> 0 bytes
 attachments/npm/build/img/search.png            |  Bin 540 -> 0 bytes
 attachments/npm/build/img/shadow.png            |  Bin 96 -> 0 bytes
 attachments/npm/build/img/sprite.png            |  Bin 10708 -> 0 bytes
 attachments/npm/build/styles.css                | 1455 ------------------
 attachments/npm/css/styles.css                  | 1455 ++++++++++++++++++
 attachments/npm/developers.html                 |    2 +-
 attachments/npm/faq.html                        |    2 +-
 attachments/npm/img/android-chrome-144x144.png  |  Bin 0 -> 10659 bytes
 attachments/npm/img/android-chrome-192x192.png  |  Bin 0 -> 15007 bytes
 attachments/npm/img/android-chrome-36x36.png    |  Bin 0 -> 2157 bytes
 attachments/npm/img/android-chrome-48x48.png    |  Bin 0 -> 3015 bytes
 attachments/npm/img/android-chrome-72x72.png    |  Bin 0 -> 4860 bytes
 attachments/npm/img/android-chrome-96x96.png    |  Bin 0 -> 6726 bytes
 .../npm/img/apple-touch-icon-114x114.png        |  Bin 0 -> 8162 bytes
 .../npm/img/apple-touch-icon-120x120.png        |  Bin 0 -> 8568 bytes
 .../npm/img/apple-touch-icon-144x144.png        |  Bin 0 -> 10659 bytes
 .../npm/img/apple-touch-icon-152x152.png        |  Bin 0 -> 11324 bytes
 .../npm/img/apple-touch-icon-180x180.png        |  Bin 0 -> 13842 bytes
 attachments/npm/img/apple-touch-icon-57x57.png  |  Bin 0 -> 3679 bytes
 attachments/npm/img/apple-touch-icon-60x60.png  |  Bin 0 -> 3890 bytes
 attachments/npm/img/apple-touch-icon-72x72.png  |  Bin 0 -> 4860 bytes
 attachments/npm/img/apple-touch-icon-76x76.png  |  Bin 0 -> 5072 bytes
 .../npm/img/apple-touch-icon-precomposed.png    |  Bin 0 -> 13417 bytes
 attachments/npm/img/apple-touch-icon.png        |  Bin 0 -> 13842 bytes
 attachments/npm/img/favicon-16x16.png           |  Bin 0 -> 1046 bytes
 attachments/npm/img/favicon-32x32.png           |  Bin 0 -> 1861 bytes
 attachments/npm/img/favicon-96x96.png           |  Bin 0 -> 6726 bytes
 attachments/npm/img/grid.png                    |  Bin 0 -> 133 bytes
 attachments/npm/img/mstile-144x144.png          |  Bin 0 -> 10334 bytes
 attachments/npm/img/mstile-150x150.png          |  Bin 0 -> 9752 bytes
 attachments/npm/img/mstile-310x150.png          |  Bin 0 -> 10590 bytes
 attachments/npm/img/mstile-310x310.png          |  Bin 0 -> 23983 bytes
 attachments/npm/img/mstile-70x70.png            |  Bin 0 -> 6528 bytes
 attachments/npm/img/pluggy.png                  |  Bin 0 -> 16302 bytes
 attachments/npm/img/search.png                  |  Bin 0 -> 540 bytes
 attachments/npm/img/shadow.png                  |  Bin 0 -> 96 bytes
 attachments/npm/img/sprite.png                  |  Bin 0 -> 10708 bytes
 attachments/npm/index.html                      |   38 +-
 attachments/npm/js/app.js                       |    6 +
 npm-search/.gitignore                           |    2 +-
 npm-search/Gulpfile.js                          |   50 +-
 npm-search/assets/css/base.css                  |  428 ------
 npm-search/assets/css/flexboxgrid.css           | 1026 ------------
 .../assets/img/android-chrome-144x144.png       |  Bin 11173 -> 0 bytes
 .../assets/img/android-chrome-192x192.png       |  Bin 15781 -> 0 bytes
 npm-search/assets/img/android-chrome-36x36.png  |  Bin 2380 -> 0 bytes
 npm-search/assets/img/android-chrome-48x48.png  |  Bin 3264 -> 0 bytes
 npm-search/assets/img/android-chrome-72x72.png  |  Bin 5139 -> 0 bytes
 npm-search/assets/img/android-chrome-96x96.png  |  Bin 7089 -> 0 bytes
 .../assets/img/apple-touch-icon-114x114.png     |  Bin 8592 -> 0 bytes
 .../assets/img/apple-touch-icon-120x120.png     |  Bin 9021 -> 0 bytes
 .../assets/img/apple-touch-icon-144x144.png     |  Bin 11173 -> 0 bytes
 .../assets/img/apple-touch-icon-152x152.png     |  Bin 11920 -> 0 bytes
 .../assets/img/apple-touch-icon-180x180.png     |  Bin 14535 -> 0 bytes
 .../assets/img/apple-touch-icon-57x57.png       |  Bin 3950 -> 0 bytes
 .../assets/img/apple-touch-icon-60x60.png       |  Bin 4157 -> 0 bytes
 .../assets/img/apple-touch-icon-72x72.png       |  Bin 5139 -> 0 bytes
 .../assets/img/apple-touch-icon-76x76.png       |  Bin 5370 -> 0 bytes
 .../assets/img/apple-touch-icon-precomposed.png |  Bin 14109 -> 0 bytes
 npm-search/assets/img/apple-touch-icon.png      |  Bin 14535 -> 0 bytes
 npm-search/assets/img/browserconfig.xml         |   12 -
 npm-search/assets/img/favicon-16x16.png         |  Bin 1401 -> 0 bytes
 npm-search/assets/img/favicon-32x32.png         |  Bin 2076 -> 0 bytes
 npm-search/assets/img/favicon-96x96.png         |  Bin 7089 -> 0 bytes
 npm-search/assets/img/favicon.ico               |  Bin 15086 -> 0 bytes
 npm-search/assets/img/grid.png                  |  Bin 1169 -> 0 bytes
 npm-search/assets/img/manifest.json             |   41 -
 npm-search/assets/img/mstile-144x144.png        |  Bin 10873 -> 0 bytes
 npm-search/assets/img/mstile-150x150.png        |  Bin 10291 -> 0 bytes
 npm-search/assets/img/mstile-310x150.png        |  Bin 11077 -> 0 bytes
 npm-search/assets/img/mstile-310x310.png        |  Bin 24984 -> 0 bytes
 npm-search/assets/img/mstile-70x70.png          |  Bin 6957 -> 0 bytes
 npm-search/assets/img/pluggy.png                |  Bin 16342 -> 0 bytes
 npm-search/assets/img/search.png                |  Bin 540 -> 0 bytes
 npm-search/assets/img/shadow.png                |  Bin 942 -> 0 bytes
 npm-search/assets/img/sprite.png                |  Bin 13702 -> 0 bytes
 npm-search/assets/js/app.js                     |  493 ------
 npm-search/assets/js/blacklisted-plugins.json   |    7 -
 npm-search/assets/js/official-plugins.json      |   26 -
 npm-search/build/.gitkeep                       |    0
 npm-search/developers.html                      |   74 -
 npm-search/faq.html                             |   55 -
 npm-search/index.html                           |   62 -
 npm-search/src/css/base.css                     |  428 ++++++
 npm-search/src/css/flexboxgrid.css              | 1026 ++++++++++++
 npm-search/src/developers.html                  |   74 +
 npm-search/src/etc/browserconfig.xml            |   12 +
 npm-search/src/etc/favicon.ico                  |  Bin 0 -> 15086 bytes
 npm-search/src/etc/manifest.json                |   41 +
 npm-search/src/faq.html                         |   55 +
 npm-search/src/img/android-chrome-144x144.png   |  Bin 0 -> 11173 bytes
 npm-search/src/img/android-chrome-192x192.png   |  Bin 0 -> 15781 bytes
 npm-search/src/img/android-chrome-36x36.png     |  Bin 0 -> 2380 bytes
 npm-search/src/img/android-chrome-48x48.png     |  Bin 0 -> 3264 bytes
 npm-search/src/img/android-chrome-72x72.png     |  Bin 0 -> 5139 bytes
 npm-search/src/img/android-chrome-96x96.png     |  Bin 0 -> 7089 bytes
 npm-search/src/img/apple-touch-icon-114x114.png |  Bin 0 -> 8592 bytes
 npm-search/src/img/apple-touch-icon-120x120.png |  Bin 0 -> 9021 bytes
 npm-search/src/img/apple-touch-icon-144x144.png |  Bin 0 -> 11173 bytes
 npm-search/src/img/apple-touch-icon-152x152.png |  Bin 0 -> 11920 bytes
 npm-search/src/img/apple-touch-icon-180x180.png |  Bin 0 -> 14535 bytes
 npm-search/src/img/apple-touch-icon-57x57.png   |  Bin 0 -> 3950 bytes
 npm-search/src/img/apple-touch-icon-60x60.png   |  Bin 0 -> 4157 bytes
 npm-search/src/img/apple-touch-icon-72x72.png   |  Bin 0 -> 5139 bytes
 npm-search/src/img/apple-touch-icon-76x76.png   |  Bin 0 -> 5370 bytes
 .../src/img/apple-touch-icon-precomposed.png    |  Bin 0 -> 14109 bytes
 npm-search/src/img/apple-touch-icon.png         |  Bin 0 -> 14535 bytes
 npm-search/src/img/favicon-16x16.png            |  Bin 0 -> 1401 bytes
 npm-search/src/img/favicon-32x32.png            |  Bin 0 -> 2076 bytes
 npm-search/src/img/favicon-96x96.png            |  Bin 0 -> 7089 bytes
 npm-search/src/img/grid.png                     |  Bin 0 -> 1169 bytes
 npm-search/src/img/mstile-144x144.png           |  Bin 0 -> 10873 bytes
 npm-search/src/img/mstile-150x150.png           |  Bin 0 -> 10291 bytes
 npm-search/src/img/mstile-310x150.png           |  Bin 0 -> 11077 bytes
 npm-search/src/img/mstile-310x310.png           |  Bin 0 -> 24984 bytes
 npm-search/src/img/mstile-70x70.png             |  Bin 0 -> 6957 bytes
 npm-search/src/img/pluggy.png                   |  Bin 0 -> 16342 bytes
 npm-search/src/img/search.png                   |  Bin 0 -> 540 bytes
 npm-search/src/img/shadow.png                   |  Bin 0 -> 942 bytes
 npm-search/src/img/sprite.png                   |  Bin 0 -> 13702 bytes
 npm-search/src/index.html                       |   62 +
 npm-search/src/js/app.js                        |  493 ++++++
 npm-search/src/js/blacklisted-plugins.json      |    7 +
 npm-search/src/js/official-plugins.json         |   26 +
 package.json                                    |   13 +-
 193 files changed, 3766 insertions(+), 5766 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/Gruntfile.js
----------------------------------------------------------------------
diff --git a/Gruntfile.js b/Gruntfile.js
index 86eb1ff..c3a3377 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -104,6 +104,17 @@ module.exports = function(grunt) {
       before: {
         src: 'attachments/index.html',
         dest: './tmp/index.html'
+      },
+      npmsearch: {
+        expand: true,
+        cwd: 'npm-search/build/',
+        src: ['**', '!.gitkeep'],
+        dest: 'attachments/npm/'
+      }
+    },
+    clean: {
+      npmsearch: {
+        src: 'attachments/npm/'
       }
     }
   });
@@ -120,6 +131,13 @@ module.exports = function(grunt) {
       ]);
   });
 
+  grunt.registerTask('npmsearch', function(target) {
+      grunt.task.run([
+          'clean:npmsearch', // Deletes all files from attachments/npm 
+          'copy:npmsearch'   // Copy npm website from npm-search directory to attachments/npm
+      ])
+  });
+
   grunt.registerTask('cloudant', function (target) {
       grunt.task.run([
           'less',
@@ -129,6 +147,7 @@ module.exports = function(grunt) {
           'copy:after' //Copy index.html back to attachments, with the preprocess directives as seved.
       ]);
   });
+
   grunt.registerTask('iriscouch', function (target) {
       grunt.task.run([
           'less',

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 9ab76c2..21de2c0 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,9 @@ The site is setup to use livereload. As you modify & save files in the `attachme
 
 NOTE - The Grunt server & watch commands are set up to use livereload - this will automatically reload your browser after the server is done reloading - no more needing to click the refresh button on your browser. The livereload script is put in the HEAD of the index.html page - if you wish to not use it, you will need to comment or remove that from the index.html page.
 
+### Updating npm Search Page
+First read the README file that is located under npm-search folder. Once you make changes, run `gulp build` while on npm-search directory. In order to package npm search page with cordova registry website, run `grunt npmsearch` while on cordova-registry-web folder. After this please validate your changes with `grunt server`.
+
 ### Publish Plugins to your local instance
 ```bash
 plugman config set registry http://localhost:5984/registry/_design/app/_rewrite

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/css/base.css
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/css/base.css b/attachments/npm/assets/css/base.css
deleted file mode 100644
index 571bbc6..0000000
--- a/attachments/npm/assets/css/base.css
+++ /dev/null
@@ -1,428 +0,0 @@
-body {
-  font-family: 'Segoe UI', tahoma, arial, helvetica, sans-serif;
-  font-size: 16px;
-  margin: 0;
-}
-
-h2 {
-    padding: 48px 0;
-    font-size: 34px;
-}
-
-/*---------------------------------------------------
-    Pluggy and msg
----------------------------------------------------*/
-#headerBackground {
-  background: url('img/grid.png');
-}
-
-#topContent {
-  margin-top: 25px;
-}
-
-#pluggy {
-  background: transparent url('img/pluggy.png') no-repeat center;
-  background-size: contain;
-  height: 200px;
-  margin-left: 25px;
-}
-
-.discover-message {
-  background-color: white;
-  font-size: 56px;
-  margin: 25px 5px 5px 5px;
-  text-align: left;
-  display: inline-block;
-  padding: 0px 8px;
-  font-family: 'Segoe UI', tahoma, arial, helvetica, sans-serif;
-}
-
-/*---------------------------------------------------
-    Searchbox
----------------------------------------------------*/
-
-#searchwrapper {
-  margin: 25px 0px;
-  border: 2px solid gray;
-  background-color: white;
-}
-
-#searchwrapper .searchBox {
-  display: block;
-  height: 35px;
-  width: 100%;
-  border: 0;
-  background: none;
-  outline: 0;
-  font-size: 14px;
-  padding: 0 5px 0 35px;
-  color: #363636;
-  background: url('img/search.png') no-repeat;
-  background-position: 5.5px 5.5px;
-}
-
-#supportedPlatforms div {
-  margin: 12px 2px 2px 0;
-  border: 1px solid #363636;
-  border-radius: 8px;
-  padding: .4em .5em;
-  height: 11px;
-  font-size: 11px;
-  line-height: 11px;
-  display: inline-block;
-  align-items: center;
-
-}
-
-/*---------------------------------------------------
-    Plugin List
----------------------------------------------------*/
-
-.pluginList {
-  list-style-type: none;
-  padding: 0px;
-}
-
-.pluginList li {
-  margin: 0 0 60px 0;
-}
-
-/*---------------------------------------------------
-    PluginCards
----------------------------------------------------*/
-.pluginCard {
-  position: relative;
-  border: 1px solid #CDCDCD;
-  background: white;
-  min-height: 10em;
-  height: 10em;
-}
-
-.pluginCard:after {
-  z-index: -1;
-  position: absolute;
-  content: "";
-  bottom: 18px;
-  right: 2px;
-  left: auto;
-  width: 50%;
-  top: 80%;
-  max-width:300px;
-  background: #777;
-  -webkit-box-shadow: 0 15px 10px #777;
-  -moz-box-shadow: 0 15px 10px #777;
-  box-shadow: 0 15px 10px #777;
-  -webkit-transform: rotate(3deg);
-  -moz-transform: rotate(3deg);
-  -o-transform: rotate(3deg);
-  -ms-transform: rotate(3deg);
-  transform: rotate(3deg);
-}
-
-.pluginCard h3 {
-  margin: 0.2em 0.2em 0.4em 0em;
-  font-size: 1.5em;
-  display: inline-block;
-}
-
-.pluginCard a:link,
-.pluginCard a:visited {
-  text-decoration: none;
-  color: #404D58;
-}
-
-.pluginCard a:hover,
-.pluginCard a:active {
-  text-decoration: underline;
-}
-
-.featuredPlugin {
-  -webkit-box-shadow: -3px 0px 0px #4CC2E4;
-  -moz-box-shadow: -3px 0px 0px #4CC2E4;
-  box-shadow: -3px 0px 0px #4CC2E4;
-  border-left-width: 0px;
-}
-
-.pluginCardContents {
-  border: 1px solid #363636;
-  margin-bottom: 10px;
-  position: relative;
-  background: white;
-}
-
-.primaryContent {
-  display: flex;
-  display: -webkit-flex;
-  flex-direction: column;
-  -webkit-flex-direction: column;
-}
-
-.primaryContent .header small {
-  color: #83878B;
-}
-
-.primaryContent .pluginAuthor {
-  font-weight: bold;
-}
-
-.primaryContent .pluginDesc {
-  -webkit-flex-grow: 1;
-  flex-grow: 1;
-  font-size: 1em;
-  color: #404040;
-}
-
-.supportedPlatforms {
-  list-style-type: none;
-  padding: 5px 0px;
-  font-size: 0.8em;
-}
-
-.supportedPlatforms li {
-  margin: 0 5px 0 0;
-  display: inline-block;
-  border: 1px solid #F2F2F2;
-  padding: 2px 10px;
-  color: #7A828B;
-}
-
-.secondaryContent {
-  display: flex;
-  display: -webkit-flex;
-  flex-direction: column;
-  -webkit-flex-direction: column;
-  text-align: right;
-  font-size: 0.9em;
-  color: #7A828B;
-}
-
-.download {
-  -webkit-flex-grow: 1;
-  flex-grow: 1;
-}
-
-.extraInfo p {
-margin-top: 2px;
-margin-bottom: 2px;
-}
-
-.clickable {
-  cursor: pointer;
-}
-
-/*---------------------------------------------------
-    Misc
----------------------------------------------------*/
-
-.icon {
-  background: url('img/sprite.png') no-repeat;
-  background-position: 0 -220px;
-  padding-left: 78px;
-}
-.icon-about {
-  background-position: 0 -220px;
-}
-
-/*---------------------------------------------------
-    Layout - Header
----------------------------------------------------*/
-#wrap,
-.wrap {
-  width: 1008px;
-  margin: 0 auto;
-  position: relative;
-}
-
-.header-placeholder {
-  height: 90px;
-}
-#header {
-  height: 90px;
-  position: fixed;
-  z-index: 10;
-  left: 0;
-  right: 0;
-  background: #fff;
-  border-bottom: 1px solid #ddd;
-}
-#header .shadow {
-  position: absolute;
-  left: 0;
-  right: 0;
-  bottom: -3px;
-  height: 3px;
-  background: url('img/shadow.png');
-}
-
-.logo,
-.closing {
-  background: url('img/sprite.png') no-repeat;
-  -webkit-transition: background 0.25s linear;
-  -moz-transition: background 0.25s linear;
-  transition: background 0.25s linear;
-  background-color: #3b4854;
-  background-position: 0 0px;
-  position: absolute;
-  left: 0;
-  top: 5px;
-  width: 220px;
-  height: 75px;
-}
-.logo:hover {
-  background-color: #4cc2e4;
-}
-.menu {
-  padding: 16px 0;
-  float: right;
-}
-.menu a {
-  text-decoration: none;
-  -webkit-transition: background 0.25s linear;
-  -moz-transition: background 0.25s linear;
-  transition: background 0.25s linear;
-  padding: 8px;
-  margin: 0 8px;
-  line-height: 55px;
-}
-.menu a:hover,
-.menu a:link,
-.menu a:visited {
-  color: #4cc2e4;
-}
-.menu-dropdown {
-  display: none;
-  position: absolute;
-  right: 16px;
-  top: 32px;
-  width: 40%;
-}
-.menu-dropdown select {
-  width: 100%;
-}
-
-/*---------------------------------------------------
-    Code
----------------------------------------------------*/
-pre, code {
-  font-size: 12px;
-  font-family: Consolas, "Liberation Mono", Courier, monospace;
-}
-
-code {
-  margin: 0 0px;
-  padding: 0px 0px;
-  white-space: nowrap;
-  border: 1px solid #eaeaea;
-  background-color: #f8f8f8;
-  border-radius: 3px;
-}
-
-pre>code {
-  margin: 0;
-  padding: 0;
-  white-space: pre;
-  border: none;
-  background: transparent;
-}
-
-pre {
-  background-color: #f8f8f8;
-  border: 1px solid #ccc;
-  font-size: 13px;
-  line-height: 19px;
-  overflow: auto;
-  padding: 6px 10px;
-  border-radius: 3px;
-}
-
-pre code {
-  background-color: transparent;
-  border: none;
-}
-
-
-/*---------------------------------------------------
-    Mobile
----------------------------------------------------*/
-@media all and (max-width: 1024px) {
-  #wrap,
-  .wrap {
-    width: auto;
-    margin-left: 24px;
-    margin-right: 24px;
-  }
-  .pluginCard {
-    height: auto;
-  }
-}
-@media all and (max-width: 890px) {
-  h2 {
-    font-size: 24px;
-    padding-top: 54px;
-  }
-  .menu {
-    display: none;
-  }
-  .menu-dropdown {
-    display: block;
-  }
-  .pluginCard {
-    height: auto;
-  }
-}
-@media all and (max-width: 720px) {
-  h2 {
-    font-size: 22px;
-    padding-top: 54px;
-  }
-  .menu-dropdown {
-    top: 16px;
-  }
-  #header,
-  .header-placeholder {
-    height: 52px;
-  }
-  .logo {
-    top: 7px;
-    width: 110px;
-    height: 37px;
-    background-size: 112px 425px;
-  }
-  .pluginCard {
-    height: auto;
-  }
-}
-@media all and (max-width: 585px) {
-  h2 {
-    letter-spacing: 0;
-  }
-  .wrap {
-    margin-left: 12px;
-    margin-right: 12px;
-  }
-  .icon {
-    background-size: 112px 425px;
-    padding: 20px 48px 20px 48px;
-    overflow: hidden;
-    display: block;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-  .icon-about {
-    background-position: 0 -110px;
-  }
-  .pluginCard {
-    height: auto;
-  }
-}
-@media all and (max-width: 440px) {
-  .icon {
-    padding: 22px 16px 20px 35px;
-  }
-    h2 {
-    font-size: 20px;
-  }
-  .pluginCard {
-    height: auto;
-  }
-}

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/css/flexboxgrid.css
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/css/flexboxgrid.css b/attachments/npm/assets/css/flexboxgrid.css
deleted file mode 100644
index 68dace4..0000000
--- a/attachments/npm/assets/css/flexboxgrid.css
+++ /dev/null
@@ -1,1026 +0,0 @@
-/*
- * Copyright 2013 Kristofer Joseph
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- *
- * Uncomment and set these variables to customize the grid.
- *
- * :root {
- *  --gutter-width: 1rem;
- *  --outer-margin: 2rem;
- *  --gutter-compensation: calc( var( --gutter-width / 2 ) * -1 );
- *  --half-gutter-width: calc( var( --gutter-width / 2 ) );
- *  --screen-xs-min: 30em;
- *  --screen-sm-min: 48em;
- *  --screen-md-min: 62em;
- *  --screen-lg-min: 75em;
- *  --container-sm: calc( 45rem + var( --gutter-width ) );
- *  --container-md: calc( 60rem + var( --gutter-width ) );
- *  --container-lg: calc( 70rem + var( --gutter-width ) );
- * }
- *
-*/
-
-.container-fluid {
-  margin-right: auto;
-  margin-left: auto;
-  padding-right: 2rem;
-  padding-left: 2rem;
-}
-
-.row {
-  box-sizing: border-box;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex: 0 1 auto;
-  -ms-flex: 0 1 auto;
-  flex: 0 1 auto;
-  -webkit-flex-direction: row;
-  -ms-flex-direction: row;
-  flex-direction: row;
-  -webkit-flex-wrap: wrap;
-  -ms-flex-wrap: wrap;
-  flex-wrap: wrap;
-  margin-right: -0.5rem;
-  margin-left: -0.5rem;
-}
-
-.row.reverse {
-  -webkit-flex-direction: row-reverse;
-  -ms-flex-direction: row-reverse;
-  flex-direction: row-reverse;
-}
-
-.col.reverse {
-  -webkit-flex-direction: column-reverse;
-  -ms-flex-direction: column-reverse;
-  flex-direction: column-reverse;
-}
-
-.col-xs,
-.col-xs-1,
-.col-xs-2,
-.col-xs-3,
-.col-xs-4,
-.col-xs-5,
-.col-xs-6,
-.col-xs-7,
-.col-xs-8,
-.col-xs-9,
-.col-xs-10,
-.col-xs-11,
-.col-xs-12,
-.col-xs-offset-1,
-.col-xs-offset-2,
-.col-xs-offset-3,
-.col-xs-offset-4,
-.col-xs-offset-5,
-.col-xs-offset-6,
-.col-xs-offset-7,
-.col-xs-offset-8,
-.col-xs-offset-9,
-.col-xs-offset-10,
-.col-xs-offset-11,
-.col-xs-offset-12 {
-  box-sizing: border-box;
-  -webkit-flex: 0 0 auto;
-  -ms-flex: 0 0 auto;
-  flex: 0 0 auto;
-  padding-right: 0.5rem;
-  padding-left: 0.5rem;
-}
-
-.col-xs {
-  -webkit-flex-grow: 1;
-  -ms-flex-positive: 1;
-  flex-grow: 1;
-  -webkit-flex-basis: 0;
-  -ms-flex-preferred-size: 0;
-  flex-basis: 0;
-  max-width: 100%;
-}
-
-.col-xs-1 {
-  -webkit-flex-basis: 8.333%;
-  -ms-flex-preferred-size: 8.333%;
-  flex-basis: 8.333%;
-  max-width: 8.333%;
-}
-
-.col-xs-2 {
-  -webkit-flex-basis: 16.667%;
-  -ms-flex-preferred-size: 16.667%;
-  flex-basis: 16.667%;
-  max-width: 16.667%;
-}
-
-.col-xs-3 {
-  -webkit-flex-basis: 25%;
-  -ms-flex-preferred-size: 25%;
-  flex-basis: 25%;
-  max-width: 25%;
-}
-
-.col-xs-4 {
-  -webkit-flex-basis: 33.333%;
-  -ms-flex-preferred-size: 33.333%;
-  flex-basis: 33.333%;
-  max-width: 33.333%;
-}
-
-.col-xs-5 {
-  -webkit-flex-basis: 41.667%;
-  -ms-flex-preferred-size: 41.667%;
-  flex-basis: 41.667%;
-  max-width: 41.667%;
-}
-
-.col-xs-6 {
-  -webkit-flex-basis: 50%;
-  -ms-flex-preferred-size: 50%;
-  flex-basis: 50%;
-  max-width: 50%;
-}
-
-.col-xs-7 {
-  -webkit-flex-basis: 58.333%;
-  -ms-flex-preferred-size: 58.333%;
-  flex-basis: 58.333%;
-  max-width: 58.333%;
-}
-
-.col-xs-8 {
-  -webkit-flex-basis: 66.667%;
-  -ms-flex-preferred-size: 66.667%;
-  flex-basis: 66.667%;
-  max-width: 66.667%;
-}
-
-.col-xs-9 {
-  -webkit-flex-basis: 75%;
-  -ms-flex-preferred-size: 75%;
-  flex-basis: 75%;
-  max-width: 75%;
-}
-
-.col-xs-10 {
-  -webkit-flex-basis: 83.333%;
-  -ms-flex-preferred-size: 83.333%;
-  flex-basis: 83.333%;
-  max-width: 83.333%;
-}
-
-.col-xs-11 {
-  -webkit-flex-basis: 91.667%;
-  -ms-flex-preferred-size: 91.667%;
-  flex-basis: 91.667%;
-  max-width: 91.667%;
-}
-
-.col-xs-12 {
-  -webkit-flex-basis: 100%;
-  -ms-flex-preferred-size: 100%;
-  flex-basis: 100%;
-  max-width: 100%;
-}
-
-.col-xs-offset-1 {
-  margin-left: 8.333%;
-}
-
-.col-xs-offset-2 {
-  margin-left: 16.667%;
-}
-
-.col-xs-offset-3 {
-  margin-left: 25%;
-}
-
-.col-xs-offset-4 {
-  margin-left: 33.333%;
-}
-
-.col-xs-offset-5 {
-  margin-left: 41.667%;
-}
-
-.col-xs-offset-6 {
-  margin-left: 50%;
-}
-
-.col-xs-offset-7 {
-  margin-left: 58.333%;
-}
-
-.col-xs-offset-8 {
-  margin-left: 66.667%;
-}
-
-.col-xs-offset-9 {
-  margin-left: 75%;
-}
-
-.col-xs-offset-10 {
-  margin-left: 83.333%;
-}
-
-.col-xs-offset-11 {
-  margin-left: 91.667%;
-}
-
-.start-xs {
-  -webkit-justify-content: flex-start;
-  -ms-flex-pack: start;
-  justify-content: flex-start;
-  text-align: start;
-}
-
-.center-xs {
-  -webkit-justify-content: center;
-  -ms-flex-pack: center;
-  justify-content: center;
-  text-align: center;
-}
-
-.end-xs {
-  -webkit-justify-content: flex-end;
-  -ms-flex-pack: end;
-  justify-content: flex-end;
-  text-align: end;
-}
-
-.top-xs {
-  -webkit-align-items: flex-start;
-  -ms-flex-align: start;
-  align-items: flex-start;
-}
-
-.middle-xs {
-  -webkit-align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-}
-
-.bottom-xs {
-  -webkit-align-items: flex-end;
-  -ms-flex-align: end;
-  align-items: flex-end;
-}
-
-.around-xs {
-  -webkit-justify-content: space-around;
-  -ms-flex-pack: distribute;
-  justify-content: space-around;
-}
-
-.between-xs {
-  -webkit-justify-content: space-between;
-  -ms-flex-pack: justify;
-  justify-content: space-between;
-}
-
-.first-xs {
-  -webkit-order: -1;
-  -ms-flex-order: -1;
-  order: -1;
-}
-
-.last-xs {
-  -webkit-order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-}
-
-@media only screen and (min-width: 48em) {
-  .container {
-    width: 46rem;
-  }
-
-  .col-sm,
-  .col-sm-1,
-  .col-sm-2,
-  .col-sm-3,
-  .col-sm-4,
-  .col-sm-5,
-  .col-sm-6,
-  .col-sm-7,
-  .col-sm-8,
-  .col-sm-9,
-  .col-sm-10,
-  .col-sm-11,
-  .col-sm-12,
-  .col-sm-offset-1,
-  .col-sm-offset-2,
-  .col-sm-offset-3,
-  .col-sm-offset-4,
-  .col-sm-offset-5,
-  .col-sm-offset-6,
-  .col-sm-offset-7,
-  .col-sm-offset-8,
-  .col-sm-offset-9,
-  .col-sm-offset-10,
-  .col-sm-offset-11,
-  .col-sm-offset-12 {
-    box-sizing: border-box;
-    -webkit-flex: 0 0 auto;
-    -ms-flex: 0 0 auto;
-    flex: 0 0 auto;
-    padding-right: 0.5rem;
-    padding-left: 0.5rem;
-  }
-
-  .col-sm {
-    -webkit-flex-grow: 1;
-    -ms-flex-positive: 1;
-    flex-grow: 1;
-    -webkit-flex-basis: 0;
-    -ms-flex-preferred-size: 0;
-    flex-basis: 0;
-    max-width: 100%;
-  }
-
-  .col-sm-1 {
-    -webkit-flex-basis: 8.333%;
-    -ms-flex-preferred-size: 8.333%;
-    flex-basis: 8.333%;
-    max-width: 8.333%;
-  }
-
-  .col-sm-2 {
-    -webkit-flex-basis: 16.667%;
-    -ms-flex-preferred-size: 16.667%;
-    flex-basis: 16.667%;
-    max-width: 16.667%;
-  }
-
-  .col-sm-3 {
-    -webkit-flex-basis: 25%;
-    -ms-flex-preferred-size: 25%;
-    flex-basis: 25%;
-    max-width: 25%;
-  }
-
-  .col-sm-4 {
-    -webkit-flex-basis: 33.333%;
-    -ms-flex-preferred-size: 33.333%;
-    flex-basis: 33.333%;
-    max-width: 33.333%;
-  }
-
-  .col-sm-5 {
-    -webkit-flex-basis: 41.667%;
-    -ms-flex-preferred-size: 41.667%;
-    flex-basis: 41.667%;
-    max-width: 41.667%;
-  }
-
-  .col-sm-6 {
-    -webkit-flex-basis: 50%;
-    -ms-flex-preferred-size: 50%;
-    flex-basis: 50%;
-    max-width: 50%;
-  }
-
-  .col-sm-7 {
-    -webkit-flex-basis: 58.333%;
-    -ms-flex-preferred-size: 58.333%;
-    flex-basis: 58.333%;
-    max-width: 58.333%;
-  }
-
-  .col-sm-8 {
-    -webkit-flex-basis: 66.667%;
-    -ms-flex-preferred-size: 66.667%;
-    flex-basis: 66.667%;
-    max-width: 66.667%;
-  }
-
-  .col-sm-9 {
-    -webkit-flex-basis: 75%;
-    -ms-flex-preferred-size: 75%;
-    flex-basis: 75%;
-    max-width: 75%;
-  }
-
-  .col-sm-10 {
-    -webkit-flex-basis: 83.333%;
-    -ms-flex-preferred-size: 83.333%;
-    flex-basis: 83.333%;
-    max-width: 83.333%;
-  }
-
-  .col-sm-11 {
-    -webkit-flex-basis: 91.667%;
-    -ms-flex-preferred-size: 91.667%;
-    flex-basis: 91.667%;
-    max-width: 91.667%;
-  }
-
-  .col-sm-12 {
-    -webkit-flex-basis: 100%;
-    -ms-flex-preferred-size: 100%;
-    flex-basis: 100%;
-    max-width: 100%;
-  }
-
-  .col-sm-offset-1 {
-    margin-left: 8.333%;
-  }
-
-  .col-sm-offset-2 {
-    margin-left: 16.667%;
-  }
-
-  .col-sm-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-sm-offset-4 {
-    margin-left: 33.333%;
-  }
-
-  .col-sm-offset-5 {
-    margin-left: 41.667%;
-  }
-
-  .col-sm-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-sm-offset-7 {
-    margin-left: 58.333%;
-  }
-
-  .col-sm-offset-8 {
-    margin-left: 66.667%;
-  }
-
-  .col-sm-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-sm-offset-10 {
-    margin-left: 83.333%;
-  }
-
-  .col-sm-offset-11 {
-    margin-left: 91.667%;
-  }
-
-  .start-sm {
-    -webkit-justify-content: flex-start;
-    -ms-flex-pack: start;
-    justify-content: flex-start;
-    text-align: start;
-  }
-
-  .center-sm {
-    -webkit-justify-content: center;
-    -ms-flex-pack: center;
-    justify-content: center;
-    text-align: center;
-  }
-
-  .end-sm {
-    -webkit-justify-content: flex-end;
-    -ms-flex-pack: end;
-    justify-content: flex-end;
-    text-align: end;
-  }
-
-  .top-sm {
-    -webkit-align-items: flex-start;
-    -ms-flex-align: start;
-    align-items: flex-start;
-  }
-
-  .middle-sm {
-    -webkit-align-items: center;
-    -ms-flex-align: center;
-    align-items: center;
-  }
-
-  .bottom-sm {
-    -webkit-align-items: flex-end;
-    -ms-flex-align: end;
-    align-items: flex-end;
-  }
-
-  .around-sm {
-    -webkit-justify-content: space-around;
-    -ms-flex-pack: distribute;
-    justify-content: space-around;
-  }
-
-  .between-sm {
-    -webkit-justify-content: space-between;
-    -ms-flex-pack: justify;
-    justify-content: space-between;
-  }
-
-  .first-sm {
-    -webkit-order: -1;
-    -ms-flex-order: -1;
-    order: -1;
-  }
-
-  .last-sm {
-    -webkit-order: 1;
-    -ms-flex-order: 1;
-    order: 1;
-  }
-}
-
-@media only screen and (min-width: 62em) {
-  .container {
-    width: 61rem;
-  }
-
-  .col-md,
-  .col-md-1,
-  .col-md-2,
-  .col-md-3,
-  .col-md-4,
-  .col-md-5,
-  .col-md-6,
-  .col-md-7,
-  .col-md-8,
-  .col-md-9,
-  .col-md-10,
-  .col-md-11,
-  .col-md-12,
-  .col-md-offset-1,
-  .col-md-offset-2,
-  .col-md-offset-3,
-  .col-md-offset-4,
-  .col-md-offset-5,
-  .col-md-offset-6,
-  .col-md-offset-7,
-  .col-md-offset-8,
-  .col-md-offset-9,
-  .col-md-offset-10,
-  .col-md-offset-11,
-  .col-md-offset-12 {
-    box-sizing: border-box;
-    -webkit-flex: 0 0 auto;
-    -ms-flex: 0 0 auto;
-    flex: 0 0 auto;
-    padding-right: 0.5rem;
-    padding-left: 0.5rem;
-  }
-
-  .col-md {
-    -webkit-flex-grow: 1;
-    -ms-flex-positive: 1;
-    flex-grow: 1;
-    -webkit-flex-basis: 0;
-    -ms-flex-preferred-size: 0;
-    flex-basis: 0;
-    max-width: 100%;
-  }
-
-  .col-md-1 {
-    -webkit-flex-basis: 8.333%;
-    -ms-flex-preferred-size: 8.333%;
-    flex-basis: 8.333%;
-    max-width: 8.333%;
-  }
-
-  .col-md-2 {
-    -webkit-flex-basis: 16.667%;
-    -ms-flex-preferred-size: 16.667%;
-    flex-basis: 16.667%;
-    max-width: 16.667%;
-  }
-
-  .col-md-3 {
-    -webkit-flex-basis: 25%;
-    -ms-flex-preferred-size: 25%;
-    flex-basis: 25%;
-    max-width: 25%;
-  }
-
-  .col-md-4 {
-    -webkit-flex-basis: 33.333%;
-    -ms-flex-preferred-size: 33.333%;
-    flex-basis: 33.333%;
-    max-width: 33.333%;
-  }
-
-  .col-md-5 {
-    -webkit-flex-basis: 41.667%;
-    -ms-flex-preferred-size: 41.667%;
-    flex-basis: 41.667%;
-    max-width: 41.667%;
-  }
-
-  .col-md-6 {
-    -webkit-flex-basis: 50%;
-    -ms-flex-preferred-size: 50%;
-    flex-basis: 50%;
-    max-width: 50%;
-  }
-
-  .col-md-7 {
-    -webkit-flex-basis: 58.333%;
-    -ms-flex-preferred-size: 58.333%;
-    flex-basis: 58.333%;
-    max-width: 58.333%;
-  }
-
-  .col-md-8 {
-    -webkit-flex-basis: 66.667%;
-    -ms-flex-preferred-size: 66.667%;
-    flex-basis: 66.667%;
-    max-width: 66.667%;
-  }
-
-  .col-md-9 {
-    -webkit-flex-basis: 75%;
-    -ms-flex-preferred-size: 75%;
-    flex-basis: 75%;
-    max-width: 75%;
-  }
-
-  .col-md-10 {
-    -webkit-flex-basis: 83.333%;
-    -ms-flex-preferred-size: 83.333%;
-    flex-basis: 83.333%;
-    max-width: 83.333%;
-  }
-
-  .col-md-11 {
-    -webkit-flex-basis: 91.667%;
-    -ms-flex-preferred-size: 91.667%;
-    flex-basis: 91.667%;
-    max-width: 91.667%;
-  }
-
-  .col-md-12 {
-    -webkit-flex-basis: 100%;
-    -ms-flex-preferred-size: 100%;
-    flex-basis: 100%;
-    max-width: 100%;
-  }
-
-  .col-md-offset-1 {
-    margin-left: 8.333%;
-  }
-
-  .col-md-offset-2 {
-    margin-left: 16.667%;
-  }
-
-  .col-md-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-md-offset-4 {
-    margin-left: 33.333%;
-  }
-
-  .col-md-offset-5 {
-    margin-left: 41.667%;
-  }
-
-  .col-md-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-md-offset-7 {
-    margin-left: 58.333%;
-  }
-
-  .col-md-offset-8 {
-    margin-left: 66.667%;
-  }
-
-  .col-md-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-md-offset-10 {
-    margin-left: 83.333%;
-  }
-
-  .col-md-offset-11 {
-    margin-left: 91.667%;
-  }
-
-  .start-md {
-    -webkit-justify-content: flex-start;
-    -ms-flex-pack: start;
-    justify-content: flex-start;
-    text-align: start;
-  }
-
-  .center-md {
-    -webkit-justify-content: center;
-    -ms-flex-pack: center;
-    justify-content: center;
-    text-align: center;
-  }
-
-  .end-md {
-    -webkit-justify-content: flex-end;
-    -ms-flex-pack: end;
-    justify-content: flex-end;
-    text-align: end;
-  }
-
-  .top-md {
-    -webkit-align-items: flex-start;
-    -ms-flex-align: start;
-    align-items: flex-start;
-  }
-
-  .middle-md {
-    -webkit-align-items: center;
-    -ms-flex-align: center;
-    align-items: center;
-  }
-
-  .bottom-md {
-    -webkit-align-items: flex-end;
-    -ms-flex-align: end;
-    align-items: flex-end;
-  }
-
-  .around-md {
-    -webkit-justify-content: space-around;
-    -ms-flex-pack: distribute;
-    justify-content: space-around;
-  }
-
-  .between-md {
-    -webkit-justify-content: space-between;
-    -ms-flex-pack: justify;
-    justify-content: space-between;
-  }
-
-  .first-md {
-    -webkit-order: -1;
-    -ms-flex-order: -1;
-    order: -1;
-  }
-
-  .last-md {
-    -webkit-order: 1;
-    -ms-flex-order: 1;
-    order: 1;
-  }
-}
-
-@media only screen and (min-width: 75em) {
-  .container {
-    width: 71rem;
-  }
-
-  .col-lg,
-  .col-lg-1,
-  .col-lg-2,
-  .col-lg-3,
-  .col-lg-4,
-  .col-lg-5,
-  .col-lg-6,
-  .col-lg-7,
-  .col-lg-8,
-  .col-lg-9,
-  .col-lg-10,
-  .col-lg-11,
-  .col-lg-12,
-  .col-lg-offset-1,
-  .col-lg-offset-2,
-  .col-lg-offset-3,
-  .col-lg-offset-4,
-  .col-lg-offset-5,
-  .col-lg-offset-6,
-  .col-lg-offset-7,
-  .col-lg-offset-8,
-  .col-lg-offset-9,
-  .col-lg-offset-10,
-  .col-lg-offset-11,
-  .col-lg-offset-12 {
-    box-sizing: border-box;
-    -webkit-flex: 0 0 auto;
-    -ms-flex: 0 0 auto;
-    flex: 0 0 auto;
-    padding-right: 0.5rem;
-    padding-left: 0.5rem;
-  }
-
-  .col-lg {
-    -webkit-flex-grow: 1;
-    -ms-flex-positive: 1;
-    flex-grow: 1;
-    -webkit-flex-basis: 0;
-    -ms-flex-preferred-size: 0;
-    flex-basis: 0;
-    max-width: 100%;
-  }
-
-  .col-lg-1 {
-    -webkit-flex-basis: 8.333%;
-    -ms-flex-preferred-size: 8.333%;
-    flex-basis: 8.333%;
-    max-width: 8.333%;
-  }
-
-  .col-lg-2 {
-    -webkit-flex-basis: 16.667%;
-    -ms-flex-preferred-size: 16.667%;
-    flex-basis: 16.667%;
-    max-width: 16.667%;
-  }
-
-  .col-lg-3 {
-    -webkit-flex-basis: 25%;
-    -ms-flex-preferred-size: 25%;
-    flex-basis: 25%;
-    max-width: 25%;
-  }
-
-  .col-lg-4 {
-    -webkit-flex-basis: 33.333%;
-    -ms-flex-preferred-size: 33.333%;
-    flex-basis: 33.333%;
-    max-width: 33.333%;
-  }
-
-  .col-lg-5 {
-    -webkit-flex-basis: 41.667%;
-    -ms-flex-preferred-size: 41.667%;
-    flex-basis: 41.667%;
-    max-width: 41.667%;
-  }
-
-  .col-lg-6 {
-    -webkit-flex-basis: 50%;
-    -ms-flex-preferred-size: 50%;
-    flex-basis: 50%;
-    max-width: 50%;
-  }
-
-  .col-lg-7 {
-    -webkit-flex-basis: 58.333%;
-    -ms-flex-preferred-size: 58.333%;
-    flex-basis: 58.333%;
-    max-width: 58.333%;
-  }
-
-  .col-lg-8 {
-    -webkit-flex-basis: 66.667%;
-    -ms-flex-preferred-size: 66.667%;
-    flex-basis: 66.667%;
-    max-width: 66.667%;
-  }
-
-  .col-lg-9 {
-    -webkit-flex-basis: 75%;
-    -ms-flex-preferred-size: 75%;
-    flex-basis: 75%;
-    max-width: 75%;
-  }
-
-  .col-lg-10 {
-    -webkit-flex-basis: 83.333%;
-    -ms-flex-preferred-size: 83.333%;
-    flex-basis: 83.333%;
-    max-width: 83.333%;
-  }
-
-  .col-lg-11 {
-    -webkit-flex-basis: 91.667%;
-    -ms-flex-preferred-size: 91.667%;
-    flex-basis: 91.667%;
-    max-width: 91.667%;
-  }
-
-  .col-lg-12 {
-    -webkit-flex-basis: 100%;
-    -ms-flex-preferred-size: 100%;
-    flex-basis: 100%;
-    max-width: 100%;
-  }
-
-  .col-lg-offset-1 {
-    margin-left: 8.333%;
-  }
-
-  .col-lg-offset-2 {
-    margin-left: 16.667%;
-  }
-
-  .col-lg-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-lg-offset-4 {
-    margin-left: 33.333%;
-  }
-
-  .col-lg-offset-5 {
-    margin-left: 41.667%;
-  }
-
-  .col-lg-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-lg-offset-7 {
-    margin-left: 58.333%;
-  }
-
-  .col-lg-offset-8 {
-    margin-left: 66.667%;
-  }
-
-  .col-lg-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-lg-offset-10 {
-    margin-left: 83.333%;
-  }
-
-  .col-lg-offset-11 {
-    margin-left: 91.667%;
-  }
-
-  .start-lg {
-    -webkit-justify-content: flex-start;
-    -ms-flex-pack: start;
-    justify-content: flex-start;
-    text-align: start;
-  }
-
-  .center-lg {
-    -webkit-justify-content: center;
-    -ms-flex-pack: center;
-    justify-content: center;
-    text-align: center;
-  }
-
-  .end-lg {
-    -webkit-justify-content: flex-end;
-    -ms-flex-pack: end;
-    justify-content: flex-end;
-    text-align: end;
-  }
-
-  .top-lg {
-    -webkit-align-items: flex-start;
-    -ms-flex-align: start;
-    align-items: flex-start;
-  }
-
-  .middle-lg {
-    -webkit-align-items: center;
-    -ms-flex-align: center;
-    align-items: center;
-  }
-
-  .bottom-lg {
-    -webkit-align-items: flex-end;
-    -ms-flex-align: end;
-    align-items: flex-end;
-  }
-
-  .around-lg {
-    -webkit-justify-content: space-around;
-    -ms-flex-pack: distribute;
-    justify-content: space-around;
-  }
-
-  .between-lg {
-    -webkit-justify-content: space-between;
-    -ms-flex-pack: justify;
-    justify-content: space-between;
-  }
-
-  .first-lg {
-    -webkit-order: -1;
-    -ms-flex-order: -1;
-    order: -1;
-  }
-
-  .last-lg {
-    -webkit-order: 1;
-    -ms-flex-order: 1;
-    order: 1;
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-144x144.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-144x144.png b/attachments/npm/assets/img/android-chrome-144x144.png
deleted file mode 100644
index 70826eb..0000000
Binary files a/attachments/npm/assets/img/android-chrome-144x144.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-192x192.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-192x192.png b/attachments/npm/assets/img/android-chrome-192x192.png
deleted file mode 100644
index 728f217..0000000
Binary files a/attachments/npm/assets/img/android-chrome-192x192.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-36x36.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-36x36.png b/attachments/npm/assets/img/android-chrome-36x36.png
deleted file mode 100644
index 277efed..0000000
Binary files a/attachments/npm/assets/img/android-chrome-36x36.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-48x48.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-48x48.png b/attachments/npm/assets/img/android-chrome-48x48.png
deleted file mode 100644
index 3a84506..0000000
Binary files a/attachments/npm/assets/img/android-chrome-48x48.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-72x72.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-72x72.png b/attachments/npm/assets/img/android-chrome-72x72.png
deleted file mode 100644
index bc6a1fb..0000000
Binary files a/attachments/npm/assets/img/android-chrome-72x72.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/android-chrome-96x96.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/android-chrome-96x96.png b/attachments/npm/assets/img/android-chrome-96x96.png
deleted file mode 100644
index 961d0b4..0000000
Binary files a/attachments/npm/assets/img/android-chrome-96x96.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-114x114.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-114x114.png b/attachments/npm/assets/img/apple-touch-icon-114x114.png
deleted file mode 100644
index 68a5502..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-114x114.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-120x120.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-120x120.png b/attachments/npm/assets/img/apple-touch-icon-120x120.png
deleted file mode 100644
index 85a0369..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-120x120.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-144x144.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-144x144.png b/attachments/npm/assets/img/apple-touch-icon-144x144.png
deleted file mode 100644
index 70826eb..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-144x144.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-152x152.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-152x152.png b/attachments/npm/assets/img/apple-touch-icon-152x152.png
deleted file mode 100644
index 92034ec..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-152x152.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-180x180.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-180x180.png b/attachments/npm/assets/img/apple-touch-icon-180x180.png
deleted file mode 100644
index 90032cf..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-180x180.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-57x57.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-57x57.png b/attachments/npm/assets/img/apple-touch-icon-57x57.png
deleted file mode 100644
index e2f87c3..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-57x57.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-60x60.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-60x60.png b/attachments/npm/assets/img/apple-touch-icon-60x60.png
deleted file mode 100644
index 1055d9f..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-60x60.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-72x72.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-72x72.png b/attachments/npm/assets/img/apple-touch-icon-72x72.png
deleted file mode 100644
index bc6a1fb..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-72x72.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-76x76.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-76x76.png b/attachments/npm/assets/img/apple-touch-icon-76x76.png
deleted file mode 100644
index 8404b3c..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-76x76.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon-precomposed.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon-precomposed.png b/attachments/npm/assets/img/apple-touch-icon-precomposed.png
deleted file mode 100644
index 4663c60..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon-precomposed.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/apple-touch-icon.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/apple-touch-icon.png b/attachments/npm/assets/img/apple-touch-icon.png
deleted file mode 100644
index 90032cf..0000000
Binary files a/attachments/npm/assets/img/apple-touch-icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/browserconfig.xml
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/browserconfig.xml b/attachments/npm/assets/img/browserconfig.xml
deleted file mode 100644
index e31b3f1..0000000
--- a/attachments/npm/assets/img/browserconfig.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<browserconfig>
-  <msapplication>
-    <tile>
-      <square70x70logo src="/assets/img/mstile-70x70.png"/>
-      <square150x150logo src="/assets/img/mstile-150x150.png"/>
-      <square310x310logo src="/assets/img/mstile-310x310.png"/>
-      <wide310x150logo src="/assets/img/mstile-310x150.png"/>
-      <TileColor>#da532c</TileColor>
-    </tile>
-  </msapplication>
-</browserconfig>

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/favicon-16x16.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/favicon-16x16.png b/attachments/npm/assets/img/favicon-16x16.png
deleted file mode 100644
index f7667c5..0000000
Binary files a/attachments/npm/assets/img/favicon-16x16.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/favicon-32x32.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/favicon-32x32.png b/attachments/npm/assets/img/favicon-32x32.png
deleted file mode 100644
index 249dbc1..0000000
Binary files a/attachments/npm/assets/img/favicon-32x32.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/favicon-96x96.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/favicon-96x96.png b/attachments/npm/assets/img/favicon-96x96.png
deleted file mode 100644
index 961d0b4..0000000
Binary files a/attachments/npm/assets/img/favicon-96x96.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/favicon.ico
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/favicon.ico b/attachments/npm/assets/img/favicon.ico
deleted file mode 100644
index 365e772..0000000
Binary files a/attachments/npm/assets/img/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/grid.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/grid.png b/attachments/npm/assets/img/grid.png
deleted file mode 100644
index 5d97586..0000000
Binary files a/attachments/npm/assets/img/grid.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/manifest.json
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/manifest.json b/attachments/npm/assets/img/manifest.json
deleted file mode 100644
index 6a74e8f..0000000
--- a/attachments/npm/assets/img/manifest.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-	"name": "My app",
-	"icons": [
-		{
-			"src": "\/assets\/img\/android-chrome-36x36.png",
-			"sizes": "36x36",
-			"type": "image\/png",
-			"density": "0.75"
-		},
-		{
-			"src": "\/assets\/img\/android-chrome-48x48.png",
-			"sizes": "48x48",
-			"type": "image\/png",
-			"density": "1.0"
-		},
-		{
-			"src": "\/assets\/img\/android-chrome-72x72.png",
-			"sizes": "72x72",
-			"type": "image\/png",
-			"density": "1.5"
-		},
-		{
-			"src": "\/assets\/img\/android-chrome-96x96.png",
-			"sizes": "96x96",
-			"type": "image\/png",
-			"density": "2.0"
-		},
-		{
-			"src": "\/assets\/img\/android-chrome-144x144.png",
-			"sizes": "144x144",
-			"type": "image\/png",
-			"density": "3.0"
-		},
-		{
-			"src": "\/assets\/img\/android-chrome-192x192.png",
-			"sizes": "192x192",
-			"type": "image\/png",
-			"density": "4.0"
-		}
-	]
-}

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/mstile-144x144.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/mstile-144x144.png b/attachments/npm/assets/img/mstile-144x144.png
deleted file mode 100644
index d648b83..0000000
Binary files a/attachments/npm/assets/img/mstile-144x144.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/mstile-150x150.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/mstile-150x150.png b/attachments/npm/assets/img/mstile-150x150.png
deleted file mode 100644
index 3e2de8a..0000000
Binary files a/attachments/npm/assets/img/mstile-150x150.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/mstile-310x150.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/mstile-310x150.png b/attachments/npm/assets/img/mstile-310x150.png
deleted file mode 100644
index 636fa5e..0000000
Binary files a/attachments/npm/assets/img/mstile-310x150.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/mstile-310x310.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/mstile-310x310.png b/attachments/npm/assets/img/mstile-310x310.png
deleted file mode 100644
index 17bc907..0000000
Binary files a/attachments/npm/assets/img/mstile-310x310.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/mstile-70x70.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/mstile-70x70.png b/attachments/npm/assets/img/mstile-70x70.png
deleted file mode 100644
index 6b4314f..0000000
Binary files a/attachments/npm/assets/img/mstile-70x70.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/pluggy.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/pluggy.png b/attachments/npm/assets/img/pluggy.png
deleted file mode 100644
index 1317585..0000000
Binary files a/attachments/npm/assets/img/pluggy.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/search.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/search.png b/attachments/npm/assets/img/search.png
deleted file mode 100644
index 9fb799b..0000000
Binary files a/attachments/npm/assets/img/search.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/shadow.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/shadow.png b/attachments/npm/assets/img/shadow.png
deleted file mode 100644
index 8c5ba5f..0000000
Binary files a/attachments/npm/assets/img/shadow.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/img/sprite.png
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/img/sprite.png b/attachments/npm/assets/img/sprite.png
deleted file mode 100644
index 7195426..0000000
Binary files a/attachments/npm/assets/img/sprite.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/js/app.js
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/js/app.js b/attachments/npm/assets/js/app.js
deleted file mode 100644
index 278f5ef..0000000
--- a/attachments/npm/assets/js/app.js
+++ /dev/null
@@ -1,493 +0,0 @@
-var React    = window.React = require('react'), // assign it to window for react chrome extension
-    classNames = require('classnames'),
-    App = {};
-
-var Constants = {
-    DownloadCountBatch: 100,
-    NpmSearchInitialSize: 500
-}
-
-var OfficialPlugin = React.createClass({
-    render: function() {
-        return (
-            <div id="featured"></div>
-        );
-    }
-});
-
-var PlatformButton = React.createClass({
-    onClick: function() {
-        var appInstance = React.render(<App />, document.getElementById('container'));
-        appInstance.addCondition("platform:" + this.props.platform);
-    },
-    render: function() {
-        return (
-            <li className = "clickable" onClick={this.onClick}> {this.props.platform} </li>
-        );
-    }
-});
-
-var SupportedPlatforms = React.createClass({
-    getInitialState: function() {
-        return {
-            moreClicked: false
-        };
-    },
-    onClick: function() {
-        this.setState({
-            moreClicked: true
-        });
-    },
-    render: function() {
-        var keywords = this.props.keywords;
-        var sortedMajorPlatforms = [{present:false, text: "Android"}, {present:false, text: "iOS"}, {present:false, text: "Windows"}, {present:false, text: "Blackberry10"}];
-        var majorPlatformsSupported = [];
-        var otherPlatformsSupported = [];
-        // remove windows8 & windows dupe
-        if (keywords.indexOf('cordova-windows') > -1 && keywords.indexOf('cordova-windows8') > -1) {
-            keywords.splice(keywords.indexOf('cordova-windows8'), 1);
-        }
-        keywords.forEach(function(keyword) {
-            switch (keyword) {
-                case 'cordova-firefoxos':
-                    otherPlatformsSupported.push(<PlatformButton platform="FirefoxOS" />);
-                    break;
-                case 'cordova-android':
-                    sortedMajorPlatforms[0].present = true;
-                    break;
-                case 'cordova-amazon-fireos':
-                    otherPlatformsSupported.push(<PlatformButton platform="FireOS" />);
-                    break;
-                case 'cordova-ubuntu':
-                    otherPlatformsSupported.push(<PlatformButton platform="Ubuntu" />);
-                    break;
-                case 'cordova-ios':
-                    sortedMajorPlatforms[1].present = true;
-                    break;
-                case 'cordova-blackberry10':
-                    sortedMajorPlatforms[3].present = true;
-                    break;
-                case 'cordova-wp8':
-                    otherPlatformsSupported.push(<PlatformButton platform="Windows Phone 8" />);
-                    break;
-                case 'cordova-windows8':
-                case 'cordova-windows':
-                    sortedMajorPlatforms[2].present = true;
-                    break;
-                case 'cordova-browser':
-                    otherPlatformsSupported.push(<PlatformButton platform="Browser" />);
-                    break;
-            }
-        });
-
-        sortedMajorPlatforms.forEach(function(platform) {
-            if(platform.present) {
-                majorPlatformsSupported.push(<PlatformButton platform={platform.text} />)
-            }
-        });
-        while(majorPlatformsSupported.length < 4 && otherPlatformsSupported.length > 0) {
-            majorPlatformsSupported.push(otherPlatformsSupported.shift());
-        }
-
-        var moreButton;
-        if(otherPlatformsSupported.length > 0 && !this.state.moreClicked) {
-            moreButton = <li className="clickable" onClick={this.onClick}>...</li>
-        }
-        if (!this.state.moreClicked) {
-            otherPlatformsSupported = null;
-        }
-        return (
-            <ul className="supportedPlatforms">
-                {majorPlatformsSupported}
-                {moreButton}
-                {otherPlatformsSupported}
-            </ul>
-        );
-    }
-});
-
-var SearchBar = React.createClass({
-    handleChange: function() {
-        this.props.onUserInput(
-            this.refs.filterTextInput.getDOMNode().value
-        )
-    },
-    render: function() {
-        return (
-            <div className="col-xs-offset-2 col-xs-8">
-                <div id="searchwrapper">
-                    <input
-                        className="searchBox"
-                        type="search"
-                        autoComplete="off"
-                        placeholder={this.props.placeHolderText}
-                        value={this.props.filterText}
-                        ref="filterTextInput"
-                        onChange={this.handleChange}
-                    />
-                </div>
-            </div>
-        );
-    }
-});
-
-var Plugin = React.createClass({
-    shouldComponentUpdate: function(nextProps, nextState) {
-        return this.props.plugin !== nextProps.plugin;
-    },
-    render: function() {
-        var license = this.props.plugin.license;
-        if (license && license.length > 1) {
-            license = license[0];
-        }
-        var downloadField;
-
-        var classes = classNames({
-            'pluginCard': true,
-            'featuredPlugin': this.props.plugin.isOfficial,
-            'row': true
-        });
-
-        if(this.props.plugin.downloadCount) {
-            var downloadCount = this.props.plugin.downloadCount.toLocaleString();
-            downloadField = <p><small> {downloadCount} downloads last month</small></p>;
-        }
-        return (
-            <li>
-                <div className={classes}>
-                    <div className="primaryContent col-xs-9">
-                        <div className="header">
-                            <h3><a href={'https://www.npmjs.com/package/' + this.props.plugin.name} target="_blank">{this.props.plugin.name}</a></h3>
-                            <small className="pluginVersion">v{this.props.plugin.version}</small>
-                            <small> by </small>
-                            <small className="pluginAuthor">{this.props.plugin.author}</small>
-                        </div>
-                        <div className="pluginDesc">{this.props.plugin.description}</div>
-                        <SupportedPlatforms keywords={this.props.plugin.keywords}/>
-                        </div>
-                        <div className="secondaryContent col-xs-3">
-                        <div className="download">
-                            <p></p>
-                        </div>
-                        <div className="extraInfo">
-                            <p><small><strong>License:</strong> {license}</small></p>
-                            {downloadField}
-                            <p><small><em>Last updated {this.props.plugin.modified} days ago</em></small></p>
-                        </div>
-                    </div>
-                </div>
-            </li>
-        )
-    }
-});
-
-var timer=null;
-
-window.addEventListener('popstate', function(e) {
-    if(e.state) {
-        var appInstance = React.render(<App />, document.getElementById('container'));
-        appInstance.loadFilterText(e.state.filterText);
-    }
-});
-
-var PluginList = React.createClass({
-    statics: {
-        contains: function(values, pluginInfo) {
-            var allValuesPresent = true;
-            if(values.length == 0) {
-                return allValuesPresent;
-            }
-            if(!pluginInfo) {
-                return false;
-            }
-            values.forEach(function(value) {
-                var valuePresent = false;
-                for(var index=0; index < pluginInfo.length; index++) {
-                    if(pluginInfo[index] && pluginInfo[index].toLowerCase().indexOf(value) > -1) {
-                        valuePresent = true;
-                    }
-                }
-                if(!valuePresent) {
-                    allValuesPresent = false;
-                }
-            });
-            return allValuesPresent;
-        },
-        populateFilters: function(filterText)
-        {
-            var searchStrings = filterText.split(" ");
-            var filters = [];
-            filters['platforms'] = [];
-            filters['authors'] = [];
-            filters['licenses'] = [];
-            filters['searchWords'] = [];
-
-            searchStrings.forEach(function(searchString) {
-                var keywords = searchString.split(":");
-                if(keywords.length == 1) {
-                    var param = keywords[0].trim();
-                    if(param) {
-                        filters['searchWords'].push(param);
-                    }
-                }
-                else if(keywords[1].trim()) {
-                    var param = keywords[1].trim();
-                    switch(keywords[0]) {
-                        case 'platform':
-                            filters['platforms'].push(param);
-                            break;
-                        case 'author':
-                            filters['authors'].push(param);
-                            break;
-                        case 'license':
-                            filters['licenses'].push(param);
-                            break;
-                        default:
-                            filters['searchWords'].push(searchString);
-                    }
-                }
-                else {
-                    filters['searchWords'].push(searchString);
-                }
-            });
-            return filters;
-        }
-    },
-    render: function() {
-        var plugins = [],
-            filterText = this.props.filterText.toLowerCase();
-
-        var delay = (function(){
-          return function(callback, ms){
-            clearTimeout (timer);
-            timer = setTimeout(callback, ms);
-          };
-        })();
-
-        delay(function(){
-                    window.history.pushState({"filterText":filterText}, "", "?q=" + filterText);
-            }, 2000 );
-
-        var filters = PluginList.populateFilters(filterText);
-
-        this.props.plugins.forEach(function(plugin) {
-            var fullPluginText = plugin.name.concat(plugin.author, plugin.keywords, plugin.license, plugin.description);
-            if(PluginList.contains(filters['platforms'], plugin.keywords)
-                && PluginList.contains(filters['authors'], plugin.author)
-                && PluginList.contains(filters['licenses'], plugin.license)
-                && PluginList.contains(filters['searchWords'], fullPluginText)) {
-                    plugins.push(<Plugin plugin={plugin} key={plugin.author + plugin.name}/>);
-            }
-        }.bind(this));
-        return (
-            <div className="col-xs-offset-2 col-xs-8">
-                <ul className="pluginList">
-                    {plugins}
-                </ul>
-            </div>
-        );
-    }
-});
-
-
-var App = React.createClass({
-    getInitialState: function() {
-        return {
-            plugins: [],
-            filterText: '',
-            placeHolderText: 'Loading...'
-        };
-    },
-    handleUserInput: function(filterText) {
-        this.setState({
-            filterText: filterText
-        });
-    },
-    addCondition: function(condition) {
-        this.setState(function(previousState, currentProps) {
-            if(previousState.filterText.indexOf(condition) > -1) {
-                return {
-                    filterText: previousState.filterText,
-                    plugins: previousState.plugins
-                };
-            }
-            else {
-                return {
-                    filterText: previousState.filterText.trim() + ' ' + condition + ' ',
-                    plugins: previousState.plugins
-                };
-            }
-        });
-    },
-    loadFilterText : function(filterText) {
-        this.setState(function(previousState, currentProps) {
-            return {
-                filterText: filterText,
-                plugins: previousState.plugins
-            };
-        });
-    },
-    statics: {
-        getURLParameter : function(name) {
-            return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)
-                ||[,""])[1].replace(/\+/g, '%20'))||null;
-        },
-        shallowCopy: function(src) {
-            var dst = {};
-            for(var i in src) {
-                if(src.hasOwnProperty(i)) {
-                    dst[i] = src[i];
-                }
-            }
-            return dst;
-        }
-    },
-    componentDidMount: function() {
-        var plugins = [],
-            officialPlugins = require('./official-plugins.json').plugins,
-            blacklistedPlugins = require('./blacklisted-plugins.json').plugins,
-            pluginCount = 0,
-            self = this,
-            queryHost = "http://npmsearch.com/query",
-            queryFields = "fields=name,keywords,license,description,author,modified,homepage,version",
-            queryKeywords = "q=keywords:%22ecosystem:cordova%22",
-            queryInitialSize = Constants.NpmSearchInitialSize;
-
-        xhrRequest(queryHost + "?" + queryFields + "&" + queryKeywords + "&size=" + queryInitialSize + "&start=0", function(xhrResult) {
-            plugins = xhrResult.results;
-            pluginCount = xhrResult.total;
-            if (pluginCount <= queryInitialSize) {
-                processPlugins.bind(self, officialPlugins, plugins)();
-            } else {
-                xhrRequest(queryHost + "?" + queryFields + "&" + queryKeywords + "&size=" + (pluginCount - queryInitialSize) + "&start=" + queryInitialSize, function(xhrResult) {
-                        plugins = [].concat(plugins, xhrResult.results);
-                        processPlugins.bind(self, officialPlugins, plugins)();
-                }, function() { console.log('xhr err'); });
-            }
-        }, function() { console.log('xhr err'); });
-
-        var getDownloadCount = function(plugins, that) {
-            var packageNames = "";
-            for(var index=0; index < plugins.length; index++) {
-                packageNames += plugins[index].name + ",";
-                if(index % Constants.DownloadCountBatch === 0 || index === plugins.length -1) {
-                    xhrRequest("https://api.npmjs.org/downloads/point/last-month/" + packageNames, function(xhrResult) {
-                        for(var j = 0; j < plugins.length; j++) {
-                            if(xhrResult[plugins[j].name]) {
-                                plugins[j] = App.shallowCopy(plugins[j]);
-                                plugins[j].downloadCount = xhrResult[plugins[j].name].downloads;
-                            }
-                        }
-                        that.setState({
-                            plugins: plugins
-                        });
-                    }.bind(self), function() { console.log('xhr err'); });
-                    packageNames = "";
-                }
-            }
-        }
-
-        function processPlugins(officialPlugins, plugins) {
-            var pluginCount = plugins.length,
-                dateNow = new Date(),
-                oneDay = 1000*60*60*24;
-
-            officialPlugins.forEach(function(plugin) {
-                for (var i = 0; i < plugins.length; i++) {
-                    // Check if plugin name is in official list
-                    if (plugins[i].name[0] === plugin) {
-                        plugins[i].isOfficial = true;
-                        return;
-                    }
-                };
-            });
-
-            for(var i = plugins.length -1; i >= 0 ; i--)
-            {
-                for(var j = 0; j < blacklistedPlugins.length; j++)
-                {
-                    if(plugins[i].name[0] === blacklistedPlugins[j])
-                    {
-                        plugins.splice(i, 1);
-                        break;
-                    }
-                }
-            }
-
-            for (var i = 0; i < plugins.length; i++) {
-                // Calculate last time plugin is modified (in days)
-                plugins[i].modified = Math.ceil((dateNow - new Date(plugins[i].modified)) / oneDay);
-            };
-
-            if (this.isMounted()) {
-                var q = App.getURLParameter('q');
-                if(q) {
-                    this.setState({
-                        plugins: plugins,
-                        filterText: q
-                    });
-                }
-                else {
-                    this.setState({
-                        plugins: plugins,
-                        placeHolderText: 'Search ' + pluginCount + ' plugins...'
-                    });
-                }
-                getDownloadCount(plugins,this);
-            }
-        }
-    },
-    render: function() {
-        return (
-            <div>
-                <div className="row" id="headerBackground">
-                    <div className="col-xs-offset-2 col-xs-8">
-                        <div id="topContent" className="row">
-                            <div className="col-xs-3">
-                                <div id="pluggy"></div>
-                            </div>
-                            <div className="col-xs-9">
-                                <h1><p className="discover-message">Search Cordova Plugins</p></h1>
-                            </div>
-                        </div>
-                    </div>
-                    <SearchBar
-                        filterText={this.state.filterText}
-                        placeHolderText={this.state.placeHolderText}
-                        onUserInput={this.handleUserInput}
-                    />
-                </div>
-                <div className="row">
-                    <PluginList
-                        plugins={this.state.plugins}
-                        filterText={this.state.filterText}
-                    />
-                </div>
-            </div>
-        );
-    }
-});
-
-App.start = function() {
-    React.render(<App />, document.getElementById('container'));
-};
-
-function xhrRequest(url, success, fail) {
-    var xhr = new XMLHttpRequest();
-    xhr.onreadystatechange = function() {
-        if (xhr.readyState == XMLHttpRequest.DONE ) {
-            if(xhr.status == 200){
-                success(JSON.parse(xhr.responseText));
-                return;
-            } else {
-                fail();
-                return;
-            }
-        }
-    }.bind(this)
-    xhr.open("GET", url, true);
-    xhr.send();
-}
-
-
-module.exports = window.App = App;

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/js/blacklisted-plugins.json
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/js/blacklisted-plugins.json b/attachments/npm/assets/js/blacklisted-plugins.json
deleted file mode 100644
index f0108ab..0000000
--- a/attachments/npm/assets/js/blacklisted-plugins.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "plugins" : [
-        "cordova-wp8",
-        "cordova-wp8-testtest",
-        "cordova-app-hello-world"
-    ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-registry-web/blob/676d5b79/attachments/npm/assets/js/official-plugins.json
----------------------------------------------------------------------
diff --git a/attachments/npm/assets/js/official-plugins.json b/attachments/npm/assets/js/official-plugins.json
deleted file mode 100644
index d220cfb..0000000
--- a/attachments/npm/assets/js/official-plugins.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "plugins" : [
-        "cordova-plugin-battery-status",
-        "cordova-plugin-camera",
-        "cordova-plugin-console",
-        "cordova-plugin-contacts",
-        "cordova-plugin-device",
-        "cordova-plugin-device-motion",
-        "cordova-plugin-device-orientation",
-        "cordova-plugin-dialogs",
-        "cordova-plugin-file",
-        "cordova-plugin-file-transfer",
-        "cordova-plugin-geolocation",
-        "cordova-plugin-globalization",
-        "cordova-plugin-inappbrowser",
-        "cordova-plugin-legacy-whitelist",
-        "cordova-plugin-media",
-        "cordova-plugin-media-capture",
-        "cordova-plugin-ms-appinsights",
-        "cordova-plugin-network-information",
-        "cordova-plugin-splashscreen",
-        "cordova-plugin-statusbar",
-        "cordova-plugin-vibration",
-        "cordova-plugin-whitelist"
-    ]
-}
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


Mime
View raw message