You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ti...@apache.org on 2015/10/12 21:00:14 UTC

[28/35] cordova-browser git commit: Update to use new 'express' implementation of cordova-serve.

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/compression/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/compression/package.json b/node_modules/cordova-serve/node_modules/compression/package.json
new file mode 100644
index 0000000..b3c68a9
--- /dev/null
+++ b/node_modules/cordova-serve/node_modules/compression/package.json
@@ -0,0 +1,57 @@
+{
+  "name": "compression",
+  "description": "Node.js compression middleware",
+  "version": "1.6.0",
+  "contributors": [
+    {
+      "name": "Douglas Christopher Wilson",
+      "email": "doug@somethingdoug.com"
+    },
+    {
+      "name": "Jonathan Ong",
+      "email": "me@jongleberry.com",
+      "url": "http://jongleberry.com"
+    }
+  ],
+  "license": "MIT",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/expressjs/compression.git"
+  },
+  "dependencies": {
+    "accepts": "~1.3.0",
+    "bytes": "2.1.0",
+    "compressible": "~2.0.6",
+    "debug": "~2.2.0",
+    "on-headers": "~1.0.1",
+    "vary": "~1.1.0"
+  },
+  "devDependencies": {
+    "istanbul": "0.3.21",
+    "mocha": "2.3.3",
+    "supertest": "1.1.0"
+  },
+  "files": [
+    "LICENSE",
+    "HISTORY.md",
+    "index.js"
+  ],
+  "engines": {
+    "node": ">= 0.8.0"
+  },
+  "scripts": {
+    "test": "mocha --check-leaks --reporter spec --bail",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"
+  },
+  "readme": "# compression\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n[![Gratipay][gratipay-image]][gratipay-url]\n\nNode.js compression middleware.\n\nThe following compression codings are supported:\n\n  - deflate\n  - gzip\n\n## Install\n\n```bash\n$ npm install compression\n```\n\n## API\n\n```js\nvar compression = require('compression')\n```\n\n### compression([options])\n\nReturns the compression middleware using the given `options`. The middleware\nwill attempt to compress response bodies for all request that traverse through\nthe middleware, based on the given `options`.\n\nThis middleware will never compress responses that include a `Cache-Control`\nheader with the [`no-transform` directive](https://tools.ietf.org/html/rfc7234#section-5.2.2.4),\nas compressing will transform the body.\n\n#### Options\n\n`compression()` accepts th
 ese properties in the options object. In addition to\nthose listed below, [zlib](http://nodejs.org/api/zlib.html) options may be\npassed in to the options object.\n\n##### chunkSize\n\nThe default value is `zlib.Z_DEFAULT_CHUNK`, or `16384`.\n\nSee [Node.js documentation](http://nodejs.org/api/zlib.html#zlib_memory_usage_tuning)\nregarding the usage.\n\n##### filter\n\nA function to decide if the response should be considered for compression.\nThis function is called as `filter(req, res)` and is expected to return\n`true` to consider the response for compression, or `false` to not compress\nthe response.\n\nThe default filter function uses the [compressible](https://www.npmjs.com/package/compressible)\nmodule to determine if `res.getHeader('Content-Type')` is compressible.\n\n##### level\n\nThe level of zlib compression to apply to responses. A higher level will result\nin better compression, but will take longer to complete. A lower level will\nresult in less compression, but will 
 be much faster.\n\nThis is an integer in the range of `0` (no compression) to `9` (maximum\ncompression). The special value `-1` can be used to mean the \"default\ncompression level\", which is a default compromise between speed and\ncompression (currently equivalent to level 6).\n\n  - `-1` Default compression level (also `zlib.Z_DEFAULT_COMPRESSION`).\n  - `0` No compression (also `zlib.Z_NO_COMPRESSION`).\n  - `1` Fastest compression (also `zlib.Z_BEST_SPEED`).\n  - `2`\n  - `3`\n  - `4`\n  - `5`\n  - `6` (currently what `zlib.Z_DEFAULT_COMPRESSION` points to).\n  - `7`\n  - `8`\n  - `9` Best compression (also `zlib.Z_BEST_COMPRESSION`).\n\nThe default value is `zlib.Z_DEFAULT_COMPRESSION`, or `-1`.\n\n**Note** in the list above, `zlib` is from `zlib = require('zlib')`.\n\n##### memLevel\n\nThis specifies how much memory should be allocated for the internal compression\nstate and is an integer in the range of `1` (minimum level) and `9` (maximum\nlevel).\n\nThe default value is `
 zlib.Z_DEFAULT_MEMLEVEL`, or `8`.\n\nSee [Node.js documentation](http://nodejs.org/api/zlib.html#zlib_memory_usage_tuning)\nregarding the usage.\n\n##### strategy\n\nThis is used to tune the compression algorithm. This value only affects the\ncompression ratio, not the correctness of the compressed output, even if it\nis not set appropriately.\n\n  - `zlib.Z_DEFAULT_STRATEGY` Use for normal data.\n  - `zlib.Z_FILTERED` Use for data produced by a filter (or predictor).\n    Filtered data consists mostly of small values with a somewhat random\n    distribution. In this case, the compression algorithm is tuned to\n    compress them better. The effect is to force more Huffman coding and less\n    string matching; it is somewhat intermediate between `zlib.Z_DEFAULT_STRATEGY`\n    and `zlib.Z_HUFFMAN_ONLY`.\n  - `zlib.Z_FIXED` Use to prevent the use of dynamic Huffman codes, allowing\n    for a simpler decoder for special applications.\n  - `zlib.Z_HUFFMAN_ONLY` Use to force Huffman encod
 ing only (no string match).\n  - `zlib.Z_RLE` Use to limit match distances to one (run-length encoding).\n    This is designed to be almost as fast as `zlib.Z_HUFFMAN_ONLY`, but give\n    better compression for PNG image data.\n\n**Note** in the list above, `zlib` is from `zlib = require('zlib')`.\n\n##### threshold\n\nThe byte threshold for the response body size before compression is considered\nfor the response, defaults to `1kb`. This is a number of bytes, any string\naccepted by the [bytes](https://www.npmjs.com/package/bytes) module, or `false`.\n\n**Note** this is only an advisory setting; if the response size cannot be determined\nat the time the response headers are written, then it is assumed the response is\n_over_ the threshold. To guarantee the response size can be determined, be sure\nset a `Content-Length` response header.\n\n##### windowBits\n\nThe default value is `zlib.Z_DEFAULT_WINDOWBITS`, or `15`.\n\nSee [Node.js documentation](http://nodejs.org/api/zlib.html#zl
 ib_memory_usage_tuning)\nregarding the usage.\n\n#### .filter\n\nThe default `filter` function. This is used to construct a custom filter\nfunction that is an extension of the default function.\n\n```js\napp.use(compression({filter: shouldCompress}))\n\nfunction shouldCompress(req, res) {\n  if (req.headers['x-no-compression']) {\n    // don't compress responses with this request header\n    return false\n  }\n\n  // fallback to standard filter function\n  return compression.filter(req, res)\n}\n```\n\n### res.flush\n\nThis module adds a `res.flush()` method to force the partially-compressed\nresponse to be flushed to the client.\n\n## Examples\n\n### express/connect\n\nWhen using this module with express or connect, simply `app.use` the module as\nhigh as you like. Requests that pass through the middleware will be compressed.\n\n```js\nvar compression = require('compression')\nvar express = require('express')\n\nvar app = express()\n\n// compress all requests\napp.use(compression()
 )\n\n// add all routes\n```\n\n### Server-Sent Events\n\nBecause of the nature of compression this module does not work out of the box\nwith server-sent events. To compress content, a window of the output needs to\nbe buffered up in order to get good compression. Typically when using server-sent\nevents, there are certain block of data that need to reach the client.\n\nYou can achieve this by calling `res.flush()` when you need the data written to\nactually make it to the client.\n\n```js\nvar compression = require('compression')\nvar express     = require('express')\n\nvar app = express()\n\n// compress responses\napp.use(compression())\n\n// server-sent event stream\napp.get('/events', function (req, res) {\n  res.setHeader('Content-Type', 'text/event-stream')\n  res.setHeader('Cache-Control', 'no-cache')\n\n  // send a ping approx every 2 seconds\n  var timer = setInterval(function () {\n    res.write('data: ping\\n\\n')\n\n    // !!! this is the important part\n    res.flush()\n
   }, 2000)\n\n  res.on('close', function () {\n    clearInterval(timer)\n  })\n})\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/compression.svg\n[npm-url]: https://npmjs.org/package/compression\n[travis-image]: https://img.shields.io/travis/expressjs/compression/master.svg\n[travis-url]: https://travis-ci.org/expressjs/compression\n[coveralls-image]: https://img.shields.io/coveralls/expressjs/compression/master.svg\n[coveralls-url]: https://coveralls.io/r/expressjs/compression?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/compression.svg\n[downloads-url]: https://npmjs.org/package/compression\n[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg\n[gratipay-url]: https://www.gratipay.com/dougwilson/\n",
+  "readmeFilename": "README.md",
+  "bugs": {
+    "url": "https://github.com/expressjs/compression/issues"
+  },
+  "homepage": "https://github.com/expressjs/compression#readme",
+  "_id": "compression@1.6.0",
+  "_shasum": "886465ffa4a19f9b73b41682db77d28179b30920",
+  "_resolved": "https://registry.npmjs.org/compression/-/compression-1.6.0.tgz",
+  "_from": "compression@>=1.6.0 <2.0.0"
+}

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/.catn8
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/.catn8 b/node_modules/cordova-serve/node_modules/d8/.catn8
deleted file mode 100644
index 8768cab..0000000
--- a/node_modules/cordova-serve/node_modules/d8/.catn8
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"source"    : {
-		"dir"   : "./src",
-		"files" : ["utils",      "vars",     "coerce",  "diff",    "fns",     "format",
-				   "lexicalize", "localize", "filters", "formats", "parsers", "expose"]
-	},
-	"target"    : {
-		"dir"   : "{pwd}",
-		"min"   : true
-	},
-	"type"      : "application/javascript"
-}

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/.npmignore b/node_modules/cordova-serve/node_modules/d8/.npmignore
deleted file mode 100644
index aaceacc..0000000
--- a/node_modules/cordova-serve/node_modules/d8/.npmignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.git*
-.DS_Store
-.idea
-
-node_modules
-npm-debug.log
-
-*.bak*
-*.local*
-
-__ignore__

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/.travis.yml b/node_modules/cordova-serve/node_modules/d8/.travis.yml
deleted file mode 100644
index a2f5f9f..0000000
--- a/node_modules/cordova-serve/node_modules/d8/.travis.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-language: node_js
-node_js: 0.8

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/LICENSE b/node_modules/cordova-serve/node_modules/d8/LICENSE
deleted file mode 100644
index 3d98f9f..0000000
--- a/node_modules/cordova-serve/node_modules/d8/LICENSE
+++ /dev/null
@@ -1,9 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2011 christos "constantology" constandinou http://muigui.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/README.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/README.md b/node_modules/cordova-serve/node_modules/d8/README.md
deleted file mode 100644
index 13b2795..0000000
--- a/node_modules/cordova-serve/node_modules/d8/README.md
+++ /dev/null
@@ -1,430 +0,0 @@
-# d8.js [![build status](https://secure.travis-ci.org/constantology/d8.png)](http://travis-ci.org/constantology/d8)
-
-d8 is a date parsing and formatting micro-framework for modern JavaScript engines.
-
-d8 formats Dates into Strings and conversley turns Strings into Dates based on [php formatting options](http://php.net/manual/en/function.date.php).
-
-As d8 extends JavaScript's native `Date` & `Date.prototype` – the CORRECT way – there is no actual global called d8. Instead all static and instance methods are available on the native `Date` & `Date.prototype` respectively.
-
-currently the only locales available are:
-
-- en-GB (0.9kb gzipped)
-- en-US (0.9kb gzipped)
-- GR    (1.1kb gzipped) **this still needs some work as my Greek is — how you say — "hella-rusty"**
-
-but feel free to create a locale for your specific nationality and submit a pull request! :D
-
-## File size
-
-- d8.js ≅ 8.8kb (gzipped)
-- d8.min.js ≅ 5.2kb (minzipped)
-
-## Dependencies
-
-d8.js only has one dependency [m8.js](/constantology/m8).
-
-**NOTE:**
-If you are using d8 within a commonjs module, you don't need to require m8 before requiring d8 as this is done internally.
-
-Also, since d8.js simply extends the Native Date Class, a reference to **m8 IS NOT** stored.
-
-## browser usage
-
-```html
-
-   <script src="/path/to/m8/m8.js" type="text/javascript"></script>
-
-   <script src="/path/to/d8/d8.min.js" type="text/javascript"></script>
-<!-- This should now come after the actual library, since it is now possible to have use locales at once -->
-   <script src="/path/to/d8/locale/en-GB.js" type="text/javascript"></script>
-
-```
-
-## nodejs usage
-
-```javascript
-
-    require( 'd8' );
-    require( 'd8/locale/en-GB' ); // NOTE: This should now come after the actual library, since it is now possible to have use locales at once
-
- // if running in a sandboxed environment remember to:
-    require( 'm8' ).x( Date/*[, Object, Array, Boolean Function]*/ ); // and/ or any other Types that require extending.
-
-```
-
-As mentioned above d8 extends JavaScript's native `Date` & `Date.prototype`, so when requiring d8, you don't need to assign it to a variable to use d8's features.
-
-## Support
-
-Tested to work with nodejs, FF4+, Safari 5+, Chrome 7+, IE9+ and Opera — with one exception: `( new Date( [] ) ).valid() )` returns `true` in Opera and false in every other browser — technically **d8** should work in any JavaScript parser that supports [ecma 5]( http://kangax.github.com/es5-compat-table/) without throwing any JavaScript errors.
-
-## API
-
-### Static methods
-
-#### isLeapYear( year:String ):Boolean
-Returns true if the passed **4 digit** year is a leap year.
-
-**NOTE:** This method is located in the locale file. If your calendar system does not contain leap years, you can simply change the method to only `return false`.
-
-#### getOrdinal( date:Number ):String
-Returns the ordinal for a given date.
-
-##### Example:
-
-```javascript
-
-     Date.getOrdinal( 1 );  // returns => "st"
-     Date.getOrdinal( 10 ); // returns => "th"
-     Date.getOrdinal( 22 ); // returns => "nd"
-     Date.getOrdinal( 33 ); // returns => "rd"
-
-```
-
-**NOTE:** Ordinals and the `getOrdinal` This method is located in the locale file. You can simply change the `ordinal` Array to your specific language; overwrite the `getOrdinal` method or both.
-
-#### setLeapYear( date:Date ):Void
-Sets the inlcuded locale's February day count to the correct number of days, based on whether or not the date is a leap year or not.
-
-**NOTE:** This method is located in the locale file. If your calendar system does not contain leap years, you can simply change the method to do nothing.
-
-#### toDate( date:String, format:String ):Date
-Takes a date String and a format String based on the **Date formatting and parsing options** described below and returns a – hopefully – correct and valid Date.
-
-```javascript
-
-    Date.toDate( 'Sunday, the 1st of January 2012', 'l, <the> jS <of> F Y' ); // returns => Date { Sun Jan 01 2012 00:00:00 GMT+0000 (GMT) }
-    Date.toDate( '2012-01-01T00:00:00+00:00',        Date.formats.ISO_8601 ); // returns => Date { Sun Jan 01 2012 00:00:00 GMT+0000 (GMT) }
-
-```
-
-### Static properties
-
-#### filters
-An Object of all the available filters for formatting a Date.
-
-**IMPORTANT: Don't change these unless you know what you are doing!**
-
-#### formats
-An Object containing some default date formats:
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="96">ISO_8601</td><td>Y-m-d<T>H:i:sP</td>
-	<tr><td width="96">ISO_8601_SHORT</td><td>Y-m-d</td>
-	<tr><td width="96">RFC_850</td><td>l, d-M-y H:i:s T</td>
-	<tr><td width="96">RFC_2822</td><td>D, d M Y H:i:s O</td>
-	<tr><td width="96">sortable</td><td>Y-m-d H:i:sO</td>
-</table>
-
-### Instance methods
-
-#### adjust( interval:Object|String[, value:Number] ):Date
-Your one stop shop for all Date arithmetic. Adjusts the Date based on the passed `interval`, by the passed numeric `value`.
-
-**Note:** The method also accepts a single Object param where each key is the interval and each value is the number to adjust the Date by.
-
-**Valid intervals are:** year, month, week, day, hr, min, sec, ms.
-
-##### Example:
-
-```javascript
-
-    var date = new Date( 2012, 0, 1 ); // Date {Sun Jan 01 2012 00:00:00 GMT+0000 (GMT)}
-
-    date.adjust( Date.DAY,   1 );      // Date {Mon Jan 02 2012 00:00:00 GMT+0000 (GMT)}
-    date.adjust( Date.HOUR, -1 );      // Date {Sun Jan 01 2012 23:00:00 GMT+0000 (GMT)}
-    date.adjust( {
-       year : -1, month : -1, day : 24,
-       hr   :  1, sec   : -1
-    } );                               // Date {Sat Dec 25 2010 23:59:59 GMT+0000 (GMT)}
-
-```
-
-#### between( date_lower:Date, date_higher:Date ):Boolean
-Checks to see if the Date instance is in between the two passed Dates.
-
-##### Example:
-
-```javascript
-
-    var date = new Date( 2012, 0, 1 );
-
-    date.between( new Date( 2011, 0, 1 ), new Date( 2013, 0, 1 ) ); // returns => true;
-
-    date.between( new Date( 2013, 0, 1 ), new Date( 2011, 0, 1 ) ); // returns => false;
-
-```
-
-#### clearTime():Date
-Clears the time from the Date instance.
-
-#### clone():Date
-Returns a clone of the current Date.
-
-#### diff( [date:Date, exclude:String] ):Object
-Returns an Object describing the difference between the Date instance and now — or the optionally passed Date.
-
-The Object will contain any or all of the following properties:
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<thead>
-		<tr><th width="32">Prop</th><th width="48">Type</th><th>Description</th></tr>
-	</thead>
-	<tbody>
-		<tr><td width="48"><code>tense</code></td><td width="48">Number</td><td>This will either be:
-			<dl>
-				<dt><code>-1</code></dt><dd>The Date instance is less than now or the passed Date, i.e. in the past</dd>
-				<dt><code>0</code></dt><dd>The Date instance is equal to now or the passed Date, i.e. in the present.<br /><strong>NOTE:</strong> If <code>tense</code> is <code>0</code> then the Object will most probably have no other properties, except <code>value</code>, which will be zero.</dd>
-				<dt><code>1</code></dt><dd>The Date instance is greater than now or the passed Date,  i.e. in the future</dd>
-			</dl>
-			<strong>NOTE:</strong> To make the <code>diff</code> Object's values easier to work with all other properties will be positive Numbers. You should use the <code>tense</code> property as your reference for the <code>diff</code> being in the past, present or future.
-		</td></tr>
-		<tr><td width="48"><code>value</code></td><td width="48">Number</td><td>The — absolute — number of milliseconds difference between the two Dates.</td></tr>
-		<tr><td width="48"><code>years</code></td><td width="48">Number</td><td>The number of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>months</code></td><td width="48">Number</td><td>The months of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>weeks</code></td><td width="48">Number</td><td>The weeks of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>days</code></td><td width="48">Number</td><td>The days of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>hours</code></td><td width="48">Number</td><td>The hours of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>minutes</code></td><td width="48">Number</td><td>The minutes of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>seconds</code></td><td width="48">Number</td><td>The seconds of years the Date instance is ahead or behind the passed Date.</td></tr>
-		<tr><td width="48"><code>milliseconds</code></td><td width="48">Number</td><td>The milliseconds of years the Date instance is ahead or behind the passed Date.</td></tr>
-	</tbody>
-</table>
-
-**NOTE:** If any property — other than `tense` & `value` — is zero it will be omitted from the `diff` Object.
-
-
-##### Example:
-
-```javascript
-
-     ( new Date( 2012, 0, 1 ) ).diff( new Date( 2012, 0, 1 ) )             // returns => { tense :  0 }
-
-     ( new Date( 2012, 0, 1 ) ).diff( new Date( 2012, 0, 2 ) )             // returns => { tense : -1, value : 86400000,    days  : 1 }
-
-     ( new Date( 2012, 0, 2 ) ).diff( new Date( 2012, 0, 1 ) )             // returns => { tense :  1, value : 86400000,    days  : 1 }
-
-     ( new Date( 2012, 0, 1 ) ).diff( new Date( 2010, 9, 8, 7, 6, 5, 4 ) ) // returns => { tense :  1, value : 38858034996, years : 1, months : 2, weeks : 3, days : 3, hours : 17, minutes : 53, seconds : 54, ms : 995 }
-
-```
-
-**NOTE:** You can supply a **space delimited** String defining which properties you want to exclude from the result and `diff` will either pass the current calculation to the next time unit or, if there are none will round off — up if over .5 or down if less, uses `Math.round` to figure this out — to the previous time unit.
-
-Exclusion codes:
-- `-` will exclude the time unit from the `diff` Object.
-- `+` will include the time unit in the `diff` Object. **Note:** this is the same as not including the time unit in the `exclusions` String.
-- `>` will exclude all time units from this time unit down from the `diff` Object.
-
-##### Example with exclusions:
-
-```javascript
-
-     ( new Date( 2012, 0, 1 ) ).diff( new Date( 2012, 0, 2 ), '-days' )                              // returns => { tense : -1, value : 86400000,    hours  : 24 }
-
-     ( new Date( 2012, 0, 2 ) ).diff( new Date( 2012, 0, 1 ), '-days' )                              // returns => { tense :  1, value : 86400000,    hours  : 24 }
-
-     ( new Date( 2012, 0, 1 ) ).diff( new Date( 2010, 9, 8, 7, 6, 5, 4 ), '-years -weeks >minutes' ) // returns => { tense :  1, value : 38858034996, months : 14, days : 29, hours : 18 }
-
-```
-
-#### format( format:String ):String
-Returns a string representation of the Date instance, based on the passed format. See the [Date formatting and parsing options](#date-formatting-and-parsing-options) below.
-
-##### Example:
-
-```javascript
-
-    ( new Date( 2012, 0, 1 ) ).format( 'c' );                   // returns => "2012-01-01T00:00:00.000Z"
- // which is a short hand format for:
-    ( new Date( 2012, 0, 1 ) ).format( 'Y-m-d<T>H:i:s.u<Z>' );  // returns => "2012-01-01T00:00:00.000Z"
-
-    ( new Date( 2012, 0, 1 ) ).format( 'l, <the> nS <of> F Y' ) // returns => "Sunday, the 1st of January 2012"
-
-```
-
-You can use predefined formats found in `Date.formats`. **Hint:** You can do:
-
-```javascript
-
-    console.dir( Date.formats );
-
-```
-
-within your browser's JavaScript console to see a list of available formats.
-
-Previously used formats are also cached to save the overhead of having to create a `new Function` everytime you want to format a date.
-
-#### getDayOfYear():Number
-Returns the zero based day of the year.
-
-#### getFirstOfTheMonth():Date
-Returns a Date instance of the first day of this Date instance's month.
-
-#### getGMTOffset( [colon:Boolean] ):String
-Returns the Date instances offset from GMT.
-
-#### getISODay():Number
-Returns the ISO day of the week.
-
-#### getISODaysInYear():Number
-Returns the ISO number of days in the year.
-
-#### getISOFirstMondayOfYear():Date
-Returns the ISO first Monday of the year.
-
-#### getISOWeek():Number
-Returns the ISO week of the year
-
-#### getISOWeeksInYear():Number
-Returns the number of weeks in the ISO year.
-
-#### getLastOfTheMonth():Date
-Returns a Date instance of the last day of this Date instance's month.
-
-#### getWeek():Number
-Returns the week of the year, based on the `dayOfYear` divided by 7.
-
-##### Example:
-
-```javascript
-
-    ( new Date( 2012, 0, 1 ) ).getWeek();   // returns => 0
-    ( new Date( 2012, 2, 13 ) ).getWeek();  // returns => 10
-    ( new Date( 2012, 11, 31 ) ).getWeek(); // returns => 52
-
-```
-
-#### isDST():Boolean
-Returns true if the Date instance is within daylight savings time.
-
-#### isLeapYear():Boolean
-Returns true if the Date instance is a leap year.
-
-#### lexicalize( [now:Date, format:String] ):String
-Returns a String representation of the difference between the date instance and now, or the passed `Date`.
-
-#### Available formats
-The default format is `approx`, however this can be over-written by changing the **locale** file and/ or by passing in the desired format to the method.
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="96">approx</td><td>Will return an approximate difference. e.g. about 2 days ago; almost 1 and a half years from now.</td>
-	<tr><td width="96">exact</td><td>Will return the exact difference, e.g. 2 days 3 hours and 5 minutes ago; 1 year, 4 months, 2 weeks, 1 day, 5 hours, 3 minutes and 7 seconds from now.</td>
-</table>
-
-##### Example:
-
-```javascript
-
-	var date = new Date( 2012, 0, 1 );
-
-	date.clone().adjust( { hr : -3, day : -2 } ).lexicalize( date, 'approx' ); // returns => "just over 2 days ago"
-	date.clone().adjust( { hr : -3, day : -2 } ).lexicalize( date, 'exact' );  // returns => "2 days and 3 hours ago"
-
-	date.lexicalize( date.clone().adjust( { hr : -6, day : -2 } ), 'approx' ); // returns => "almost 2 and a half days from now"
-	date.lexicalize( date.clone().adjust( { hr : -6, day : -2 } ), 'exact' );  // returns => "2 days and 6 hours from now"
-
-```
-
-#### setWeek():Number(UnixTimeStamp)
-Sets the week of the year from the 1st January.
-
-##### Example:
-
-```javascript
-
-    new Date( ( new Date( 2012, 0, 1 ) ).setWeek( 17 ) ); // returns => Date {Sun Apr 29 2012 00:00:00 GMT+0100 (BST)}
-
-    ( new Date( 2012, 2, 13 ) ).setWeek( 17 );            // returns => 1335654000000 same as above
-
-    ( new Date( 2012, 11, 31 ) ).setWeek( 17 );           // returns => 1335654000000
-
-```
-
-#### timezone():String
-Returns the JavaScript engine's Date.prototype.toString() timezone abbreviation.
-
-## Date formatting and parsing options
-
-### escaping characters
-
-If you want to escape characters that are used by the Date parser you can wrap them between &lt;&gt;.
-
-#### Example:
-
-```javascript
-
-    ( new Date( 2012, 0, 1 ) ).format( 'l, <the> jS <of> F Y' ); // returns => "Sunday, the 1st of January 2012"
-
-```
-
-### day
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">d</td><td>Day of the month, 2 digits with leading zeros</td></tr>
-	<tr><td width="32">D</td><td>A textual representation of a day, three letters</td></tr>
-	<tr><td width="32">j</td><td>Day of the month without leading zeros</td></tr>
-	<tr><td width="32">l</td><td>A full textual representation of the day of the week</td></tr>
-	<tr><td width="32">N</td><td>ISO-8601 numeric representation of the day of the week</td></tr>
-	<tr><td width="32">S</td><td>English ordinal suffix for the day of the month, 2 characters</td></tr>
-	<tr><td width="32">w</td><td>Numeric representation of the day of the week</td></tr>
-	<tr><td width="32">z</td><td>The day of the year (starting from 0)</td></tr>
-</table>
-### week
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">W</td><td>ISO-8601 week number of year, weeks starting on Monday</td></tr>
-</table>
-### month
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">F</td><td>A full textual representation of a month</td></tr>
-	<tr><td width="32">m</td><td>Numeric representation of a month, with leading zeros</td></tr>
-	<tr><td width="32">M</td><td>A short textual representation of a month, three letters</td></tr>
-	<tr><td width="32">n</td><td>Numeric representation of a month, without leading zeros</td></tr>
-	<tr><td width="32">t</td><td>Number of days in the given month</td></tr>
-</table>
-### year
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">L</td><td>Whether it's a leap year</td></tr>
-	<tr><td width="32">o</td><td>ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead.</td></tr>
-	<tr><td width="32">Y</td><td>A full numeric representation of a year, 4 digits</td></tr>
-	<tr><td width="32">y</td><td>A two digit representation of a year</td></tr>
-</table>
-### time
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">a</td><td>Lowercase Ante meridiem and Post meridiem</td></tr>
-	<tr><td width="32">A</td><td>Uppercase Ante meridiem and Post meridiem</td></tr>
-	<tr><td width="32">g</td><td>12-hour format of an hour without leading zeros</td></tr>
-	<tr><td width="32">G</td><td>24-hour format of an hour without leading zeros</td></tr>
-	<tr><td width="32">h</td><td>12-hour format of an hour with leading zeros</td></tr>
-	<tr><td width="32">H</td><td>24-hour format of an hour with leading zeros</td></tr>
-	<tr><td width="32">i</td><td>Minutes with leading zeros</td></tr>
-	<tr><td width="32">s</td><td>Seconds, with leading zeros</td></tr>
-	<tr><td width="32">u</td><td>Milliseconds</td></tr>
-</table>
-### timezone
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">O</td><td>Difference to Greenwich time (GMT) in hours</td></tr>
-	<tr><td width="32">P</td><td>Difference to Greenwich time (GMT) with colon between hours and minutes</td></tr>
-	<tr><td width="32">T</td><td>Timezone abbreviation</td></tr>
-	<tr><td width="32">Z</td><td>Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.</td></tr>
-</table>
-### full date/time
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">c</td><td>ISO 8601 date</td></tr>
-	<tr><td width="32">r</td><td>RFC 2822 formatted date</td></tr>
-	<tr><td width="32">U</td><td>Seconds since the Unix Epoch January 1 1970 00:00:00 GMT</td></tr>
-</table>
-### custom
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr><td width="32">e</td><td>this is a convenience for `date.lexicalize( 'exact' );`</td></tr>
-	<tr><td width="32">x</td><td>this is a convenience for `date.lexicalize( 'approx' );`</td></tr>
-</table>
-
-## License
-
-(The MIT License)
-
-Copyright &copy; 2012 christos "constantology" constandinou http://muigui.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/d8.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/d8.js b/node_modules/cordova-serve/node_modules/d8/d8.js
deleted file mode 100644
index 22c37ae..0000000
--- a/node_modules/cordova-serve/node_modules/d8/d8.js
+++ /dev/null
@@ -1,800 +0,0 @@
-;!function( util ) {
-	"use strict";
-	util.x.cache( 'Date', function( Type ) {
-
-
-
-/*~  src/utils.js  ~*/
-
-// utility methods
-	function _indexOf( o, k ) { var i = o.indexOf( k ); return i == -1 ? null : i; }
-	function _lc( o ) { return o.toLocaleLowerCase(); }
-	function _uc( o ) { return o.toLocaleUpperCase(); }
-	function associate( o, k ) { return o.reduce( function( res, v, i ) { res[k[i]] = v; return res; }, {} ); }
-	function between_equalto( v, l, h ) { return l <= v && v <= h; }
-	function pad( o, len, radix ) {
-		var i = -1, s = o.toString( radix || 10 );
-		len -= s.length;
-		while ( ++i < len ) s = '0' + s;
-		return s;
-	}
-	function sum( v, i ) { return v + i; }
-
-
-
-/*~  src/vars.js  ~*/
-
-	var U,
-// DAY_OFFSETS is the amount of days from the current day to the Monday of the week it belongs to
-		DAY_OFFSETS  = [9, 1, 0, -1, -2, 4, 3],    MS_DAY       = 864e5,     MS_HOUR = 3600000,   MS_MINUTE = 60000,
-		MS_MONTH     = 2592e6, MS_SECOND = 1000,   MS_WEEK      = 6048e5,    MS_YEAR = 31536e6,
-// parser keys
-		AMPM         = 'ampm', DAY    = 'day',     DAYWEEK      = 'dayweek', DAYYEAR = 'dayyear', HOUR      = 'hour',
-		MILLISECOND  = 'ms',   MINUTE = 'minute',  MONTH        = 'month',   SECOND  = 'second',  TIMEZONE  = 'timezone',
-		UNIX         = 'unix', WEEK   = 'week',    YEAR         = 'year',
-// used by Date.prototype.format && Date.toDate to replace escaped chars
-		NOREPLACE    = 'NOREPLACE', NOREPLACE_RB = '<' + NOREPLACE + '<', NOREPLACE_RE = '>END' + NOREPLACE + '>',
-		adjust_by    = { day : ['getDate', 'setDate'], hr : ['getHours', 'setHours'], min : ['getMinutes', 'setMinutes'], month : ['getMonth', 'setMonth'], ms : ['getMilliseconds', 'setMilliseconds'], sec : ['getSeconds', 'setSeconds'], week : ['getWeek', 'setWeek'], year : ['getFullYear', 'setFullYear'] },
-		adjust_order = [YEAR, MONTH, WEEK, DAY, 'hr', MINUTE.substring( 0, 3 ), SECOND.substring( 0, 3 ), MILLISECOND],
-// cache objects
-		cache_format = util.obj(), cache_parse  = util.obj(), date_members = [DAY, DAYWEEK, DAYYEAR, MONTH, WEEK, YEAR],
-		filter, filter_chars, formats, lexicon  = util.obj(), locales      = util.obj(), m, parser,
-		re_ampm     = '(am|pm)',      re_add_enr = />/g,         re_add_nr = /</g, re_compile,
-		re_d1_2     = '([0-9]{1,2})', re_d2      = '([0-9]{2})', re_d4     = '([0-9]{4})',
-		re_space    = /\s{2,}/g,      re_split   = /[<>]/,       re_tz     = /[^\(]*\(([^\)]+)\)/g,
-		re_tz_abbr  = /[^A-Z]+/g,     re_tz_off  = /[\+-]?([0-9]{2}):?([0-9]{2})/,
-		time_map     = [              // the order of this Array is important as it is the remainder of the larger
-			[YEAR   + 's', MS_YEAR],  // time unit that gets passed to the following time unit — as such we want
-			[MONTH  + 's', MS_MONTH], // to keep the order in case we want to exclude time units from the diff
-			[WEEK   + 's', MS_WEEK],
-			[DAY    + 's', MS_DAY],
-			[HOUR   + 's', MS_HOUR],
-			[MINUTE + 's', MS_MINUTE],
-			[SECOND + 's', MS_SECOND],
-			[MILLISECOND,  1]
-		],
-		time_props   = time_map.pluck( 0 );
-
-
-
-/*~  src/coerce.js  ~*/
-
-	function coerce( date_str, date_format ) {
-		return buildParser( date_format )( date_str );
-	}
-
-	function buildParser( date_format ) {
-		var LID = Type.locale.id, i, keys, l, parsers, part, parts, re;
-
-		if ( cache_parse[LID][date_format] ) return cache_parse[LID][date_format];
-
-		parts = date_format.replace( re_add_nr, NOREPLACE_RB ).replace( re_add_enr, NOREPLACE_RE ).split( re_split );
-		keys  = []; i = -1; l = parts.length; parsers = {}; re = [];
-
-		while ( ++i < l ) {
-			part = parts[i];
-			if ( part == NOREPLACE ) {
-				re.push( parts[++i] ); ++i;
-				continue;
-			}
-			part.replace( re_compile, function( m, p1, p2, p3 ) {
-				var _fn, _k, _p;
-				if ( !( _p = parser[p2] ) ) return;
-				if ( _p.k ) {
-					keys.push( _p.k );
-					if ( _p.fn ) parsers[_p.k] = _p.fn;
-				}
-				if ( _p.combo ) {
-					_k  = _p.combo.pluck( 'k' );
-					_fn = associate( _p.combo.pluck( 'fn' ), _k );
-					keys.push.apply( keys, _k );
-					util.copy( parsers, _fn, true );
-				}
-				if ( _p.re ) re.push( p1, _p.re, p3 );
-			} );
-		}
-		return cache_parse[LID][date_format] = parse.bind( null, new RegExp( re.join( '' ) ), keys, parsers );
-	}
-
-	function parse( re, keys, fn, s ) {
-		var date    = new Type( 0, 0, 1, 0, 0, 0, 0 ), parts = s.match( re ),
-			parsers = associate( parts.slice( 1 ), keys );
-
-		Object.reduce( parsers, function( n, v, k ) {
-			if ( typeof v == 'string' && fn[k] )
-				parsers[k] = fn[k]( v, parsers );
-			return n;
-		}, null );
-
-		if ( !isNaN( parsers[UNIX] ) ) date.setTime( parsers[UNIX] );
-		else {
-			parse_setTime( date, parsers[HOUR], parsers[MINUTE], parsers[SECOND], parsers[MILLISECOND] );
-			parse_setDate( date, parsers );
-			parse_setTimezoneOffset( date, parsers[TIMEZONE] );
-		}
-
-		return date;
-	}
-
-	function parse_setDate( date, parsers ) {
-		var L = Type.locale, dayweek, i = -1, l, leapyr, ordinal;
-
-		if ( date_members.every( util.has.bind( null, parsers ) ) ) return; //  only set the date if there's one to set (i.e. the format is not just for time)
-
-		if ( isNaN( parsers[YEAR] ) ) parsers[YEAR] = date.getFullYear();
-
-		if ( isNaN( parsers[MONTH] ) ) {
-			leapyr  = L.isLeapYear( parsers[YEAR] ) ? 1 : 0;
-			ordinal = L.ordinal_day_count[leapyr];
-			l       = ordinal.length;
-			parsers[MONTH] = 0;
-
-			if ( parsers[WEEK] && !parsers[DAYYEAR] ) { // give precedence to the day of the year
-				dayweek = parsers[DAYWEEK];
-				dayweek = isNaN( dayweek ) ? 0 : !dayweek ? 7 : dayweek;
-				parsers[DAYYEAR] = ( parsers[WEEK] * 7 ) - ( 4 - dayweek );
-			}
-
-			if ( !isNaN( parsers[DAYYEAR] ) ) {
-				if ( parsers[DAYYEAR] > ordinal[ordinal.length - 1] ) {
-					parsers[DAYYEAR] -= ordinal[ordinal.length - 1];
-					++parsers[YEAR];
-				}
-				while( ++i < l ) {
-					if ( between_equalto( parsers[DAYYEAR], ordinal[i], ordinal[i+1] ) ) {
-						parsers[MONTH] = i;
-						parsers[DAY] = ordinal[i] == 0 ? parsers[DAYYEAR] : ( parsers[DAYYEAR] - ordinal[i] );
-						break;
-					}
-				}
-			}
-		}
-
-		if ( isNaN( parsers[DAY] ) ) parsers[DAY] = 1;
-
-		date.setYear( parsers[YEAR] ); date.setMonth( parsers[MONTH] ); date.setDate( parsers[DAY] );
-
-	}
-	function parse_setTime( date, hr, min, sec, ms ) {
-		date.setHours( hr || 0 );   date.setMinutes( min || 0 );
-		date.setSeconds( sec || 0 ); date.setMilliseconds( ms || 0 );
-	}
-	function parse_setTimezoneOffset( date, tzoffset ) {
-		!between_equalto( tzoffset, -43200, 50400 ) || date.adjust( Type.SECOND, ( -date.getTimezoneOffset() * 60 ) - tzoffset );
-	}
-
-
-
-/*~  src/diff.js  ~*/
-
-	function diff( now, props ) { //noinspection FallthroughInSwitchStatementJS
-		switch ( util.ntype( now ) ) {
-			case 'number' : case 'string' :
-				if ( valid( new Type( now ) ) )
-					now = new Type( now );
-				else {
-					if ( !props ) props = now;
-
-					now = Type.now();
-
-					break;
-				}                                                  // allow [specific] fall-through
-			case 'array'  : case 'object' :
-				props   = now;
-				now     = Type.now();
-				break;
-			case 'date'   : if ( valid( new Type( +now ) ) ) break; // allow [conditional] fall-through if not a valid date
-			default       : now = Type.now();
-
-		}
-
-		var diff,
-			ms    = +now - +this,
-			tense = ms < 0 ? 1 : ms > 0 ? -1 : 0;
-
-		if ( !tense ) {
-			diff       = util.obj();
-			diff.value = 0;
-		}
-		else
-			diff = diff_get( Math.abs( ms ), diff_get_exclusions( props ) );
-
-		diff.tense = tense;
-
-		return diff;
-	}
-
-	function diff_eval( diff, calc, i, calcs ) {
-		var time;
-		if ( diff.__ms__ ) {
-			if ( !diff.excl[calc[0]] ) {
-				if ( diff.__ms__ >= calc[1] ) {
-
-					time = diff.__ms__ / calc[1];
-
-					if ( !( calc[0] in diff.val ) ) {
-						diff.__ms__       = ( time % 1 ) * calc[1];
-						diff.val[calc[0]] = Math.floor( time );
-					}
-					else {
-						time                 = Math.floor( time );
-						diff.__ms__       -= time * calc[1];
-						diff.val[calc[0]] += time;
-					}
-
-				}
-				return diff;
-			}
-// round up or down depending on what's available
-			if ( ( !calcs[i + 1] || diff.excl[calcs[i + 1][0]] ) && ( calc = calcs[i - 1] ) ) {
-				time          = diff.__ms__ / calc[1];
-				diff.__ms__ = ( Math.round( time ) * calc[1] ) + ( ( ( diff.__ms__ / calcs[i][1] ) % 1 ) * calcs[i][1] );
-				return diff_eval( diff, calc, i - 1, [] );
-			}
-			return diff;
-		}
-		return diff;
-	}
-
-	function diff_get( ms, excl ) {
-		var diff = time_map.reduce( diff_eval, {
-				__ms__ : ms, excl : excl, val : util.obj()
-			} ).val;
-
-		diff.value = ms;
-
-		return diff;
-	}
-
-	function diff_get_exclusions( props ) {
-		var excl = util.obj(), incl_remaining = true;
-
-		if ( props ) { //noinspection FallthroughInSwitchStatementJS
-			switch ( util.ntype( props ) ) {
-				case 'object' : incl_remaining = false; break;
-				case 'string' : props          = props.split( ' ' ); // allow fall-through
-				case 'array'  : props          = props.reduce( diff_excl, excl );
-								incl_remaining = !!util.len( excl );
-			}
-		}
-
-		time_props.map( function( prop ) {
-			if ( !( prop in this ) )
-				this[prop] = !incl_remaining;
-		}, excl );
-
-		return excl;
-	}
-
-	function diff_excl( excl, val ) {
-		var prop = ( val = String( val ).toLowerCase() ).substring( 1 );
-
-		switch ( val.charAt( 0 ) ) {
-			case '-' : excl[prop] = true;  break;
-			case '+' : excl[prop] = false; break;
-			case '>' :
-				time_map.map( diff_excl_iter, { excl : excl, prop : prop, val : true } );
-				break;
-			case '<' :
-				time_map.slice().reverse().map( diff_excl_iter, { excl : excl, prop : prop, val : false } );
-				break;
-			default  : excl[val]  = false;
-		}
-
-		return excl;
-	}
-
-	function diff_excl_iter( calc ) {
-		if ( calc[0] === this.prop )
-			this.SET_VALID = true;
-		if ( this.SET_VALID )
-			this.excl[calc[0]] = this.val;
-	}
-
-// this ensures a diff's keys are always in descending order of
-// number of milliseconds per unit of time, i.e. year, ..., millisecond
-	function diff_keys( diff ) {
-		diff = util.copy( diff ); util.remove( diff, 'tense', 'value' );
-// while this may seem like overkill, only having to run `indexOf` once for each sort item means that
-// the overall performance is dramatically improved
-		return Object.keys( diff ).map( function( k ) {
-			return [time_props.indexOf( k ), k];
-		} ).sort( function( a, b ) {
-			a = a[0]; b = b[0];
-			return a > b ? 1 : -1; // skipping `===` check as we know all indexes are unique
-		} ).pluck( 1 );
-	}
-
-
-
-/*~  src/fns.js  ~*/
-
-// private methods
-	function _24hrTime( o, res ) { return ( o = Number( o ) ) < 12 && _lc( res.ampm ) == _lc( Type.locale.PM ) ? o += 12 : o; }
-	function _adjust( d, v, k ) { return d.adjust( k, v ); }
-	function _adjust_toobj( a ) {
-		return adjust_order.reduce( function( v, k, i ) {
-			var delta = parseFloat( a[i] );
-
-			if ( !isNaN( delta ) && delta !== 0 )
-				v[k] = delta;
-
-			return v;
-		}, util.obj() );
-	}
-	function _dayOffset( d ) { return Math.floor( ( d - getISOFirstMondayOfYear.call( d ) ) / MS_DAY ); }
-	function _hours( d ) { return d.getHours() + ( d.isDST() ? 1 : 0 ); }
-	function _timezoneOffset( o ) {
-		if ( o == 'Z' ) {
-			o = '0000';
-		}
-		var t = !!o.indexOf( '-' ),
-			m = o.match( re_tz_off ),
-			v = ( Number( m[1] ) + ( m[2] / 60 ) ) * 3600;
-		return t ? v : -v;
-	}
-	function _weekOffset( d ) { return Math.floor( Math.abs( _dayOffset( d ) / 7 ) ); }
-	function _zeroIndexedInt( o, k ) { return !isNaN( k ) ? k == o ? 0 : Number( k ) : Number( o ) - 1; }
-
-// public methods
-
-	function adjust( o, v ) {
-		var date = this, day, fn, weekday;              // noinspection FallthroughInSwitchStatementJS
-		switch ( util.ntype( o ) ) {
-		case 'number' : o = arguments;                  // allow fall-through
-		case 'array'  : o = _adjust_toobj( o );         // allow fall-through
-		case 'object' : Object.reduce( o, _adjust, date ); break;
-		case 'string' :
-			fn = adjust_by[o.toLowerCase()];
-			if ( fn && v !== 0 ) {
-				Type.locale.setLeapYear( date );
-
-				if ( fn == adjust_by.month ) {
-					day = date.getDate();
-					day < 28 || date.setDate( Math.min( day, getLastOfTheMonth.call( getFirstOfTheMonth.call( date ).adjust( Type.MONTH, v ) ).getDate() ) );
-				}
-
-				fn != adjust_by.week || ( weekday = date.getDay() );
-
-				date[fn[1]]( date[fn[0]]() + v );
-
-				!weekday || date.setDate( date.getDate() + weekday );
-			}
-		}
-
-		return date;
-	}
-
-	function between( l, h ) { return +this >= +l && +this <= +h; }
-
-	function clearTime() {
-		this.setHours( 0 ); this.setMinutes( 0 ); this.setSeconds( 0 ); this.setMilliseconds( 0 );
-		return this;
-	}
-
-	function clone() { return new Type( this.getTime() ); }
-
-	function getDayOfYear() {
-		var L = Type.locale;
-		L.setLeapYear( this );
-		return L.day_count.slice( 0, this.getMonth() ).reduce( sum, 0 ) + this.getDate() - 1;
-	}
-
-	function getFirstOfTheMonth() { return new Type( this.getFullYear(), this.getMonth(), 1 ); }
-
-	function getGMTOffset( colon ) {
-		var tz = this.getTimezoneOffset();
-		return [( tz > 0 ? '-' : '+' ), pad( Math.floor( Math.abs( tz ) / 60 ), 2 ), ( colon ? ':' : '' ), pad( Math.abs( tz % 60 ), 2 )].join( '' );
-	}
-
-	function getISODay() { return this.getDay() || 7; }
-	function getISODaysInYear() { return Math.ceil( ( getISOFirstMondayOfYear.call( new Type( this.getFullYear() + 1, 0, 1 ) ) - getISOFirstMondayOfYear.call( this ) ) / MS_DAY ); }
-	function getISOFirstMondayOfYear() {
-		var y = this.getFullYear();
-		return new Type( y, 0, DAY_OFFSETS[new Type( y, 0, 1 ).getDay()] );
-	}
-	function getISOWeek() {
-		var w, y = this.getFullYear();
-		if ( this >= getISOFirstMondayOfYear.call( new Type( y + 1, 0, 1 ) ) ) return 1;
-		w = Math.floor( ( getDayOfYear.call( this ) - getISODay.call( this ) + 10 ) / 7 );
-		return w == 0 ? getISOWeeksInYear.call( new Type( y - 1, 0, 1 ) ) - _weekOffset( this ) : w;
-	}
-	function getISOWeeksInYear() { return Math.round( ( getISOFirstMondayOfYear.call( new Type( this.getFullYear() + 1, 0, 1 ) ) - getISOFirstMondayOfYear.call( this ) ) / MS_WEEK ); }
-
-	function getLastOfTheMonth() {
-		var L = Type.locale, m = this.getMonth(); L.setLeapYear( this );
-		return new Type( this.getFullYear(), m, L.day_count[m] );
-	}
-
-	function getWeek() { return Math.floor( getDayOfYear.call( this ) / 7 ); }
-
-	function isDST() { return new Type( this.getFullYear(), 0, 1 ).getTimezoneOffset() != this.getTimezoneOffset(); }
-
-	function isLeapYear() { return Type.locale.isLeapYear( this.getFullYear() ); }
-
-	function setWeek( v ) { this.setMonth( 0 ); this.setDate( 1 ); return ( this.adjust( Type.DAY, v * 7 ) ).getTime(); }
-
-	function timezone() {
-		var s = this.toString().split( ' ' );
-		return s.splice( 4, s.length ).join( ' ' ).replace( re_tz, '$1' ).replace( re_tz_abbr, '' );
-	}
-
-	function valid( date ) { return util.ntype( date ) == 'date' && !isNaN( +date ); }
-
-
-
-/*~  src/format.js  ~*/
-
-	function buildTemplate( date_format ) {
-		var LID = Type.locale.id, fn, i, l, part, parts, re_invalid;
-
-		if ( cache_format[LID][date_format] ) return cache_format[LID][date_format];
-
-		fn         = ['\tvar out=[];'];
-		parts      = date_format.replace( re_add_nr, NOREPLACE_RB ).replace( re_add_enr, NOREPLACE_RE ).split( re_split ),
-		re_invalid = /^[^A-Za-z]*$/g;
-		i = -1;  l = parts.length;
-
-		while( ++i < l ) {
-			part = parts[i];
-			part == NOREPLACE ? ( fn.push( tplOut( parts[++i] ) ), ++i )
-						   :   re_invalid.test( part )
-						   ?   fn.push( tplOut( part ) )
-						   :   fn.push( compileTplStr( part ) );
-		}
-
-		fn.push( 'return out.join( "" );\n\t//@ sourceURL=d8/format/' + LID + '/' + date_format );
-
-		return cache_format[LID][date_format] = new Function( 'filter', 'date', fn.join( '\n\n\t' ) );
-	}
-
-	function format( f ) { return buildTemplate( f )( filter, this ); }
-
-	function compileTplStr( o ) { return o.replace( re_compile, function( m, p0, p1, p2 ) { return tplOut( p0 + '\', filter.' + p1 + '( date ), \'' + p2 ); } ); }
-
-	function tplOut( s ) { return 'out.push( \'' + s + '\' );'; }
-
-
-
-/*~  src/lexicalize.js  ~*/
-
-	function lexicalize( now, precision ) {
-		if ( !valid( now ) ) {
-			if ( valid( new Type( now ) ) )
-				now       = new Type( now );
-			else {
-				precision = now;
-				now       = Type.now();
-			}
-		}
-
-		var LEX = Type.locale.lexicon;
-
-		if ( typeof lexicon[precision = String( precision ).toLowerCase()] != 'function' )
-			precision = LEX.DEFAULT;
-
-		return !( +now - +this ) ? LEX.just_now : lexicon[precision].call( LEX, this, now ).replace( re_space, ' ' );
-	}
-
-	function lexicalize_approx( parts, diff ) {
-		return parts.join( ' ' );
-	}
-
-	function lexicalize_exact( parts, diff ) {
-		var last = parts.pop();
-
-		return ( parts.length ? parts.join( this.delim ) + ' ' + this.and + ' ' + last : last ) + ' ' + this[diff.tense < 1 ? 'ago' : 'from_now'];
-	}
-
-	lexicon.approx = function( date, now ) {
-		var	adverb, bal, determiner = this.a,
-			diff  = date.diff( now ),
-			dkeys = Type.diffKeys( diff ), index, parts, tense,
-			tm    = Type.time_map, tu = this.time_units, today, use_noun;
-
-		if ( diff.value < Type.MS_MINUTE )
-			return this.just_now;
-
-		switch ( dkeys[0] ) {
-			case 'years'   : index       = 0; break;
-			case 'months'  : index       = 1; break;
-			case 'weeks'   : index       = 2; break;
-			case 'days'    : if ( diff.days < 2 ) {
-								today    = date.format( 'l' ) === now.format( 'l' );
-								use_noun = today || dkeys[1] != 'hours' || diff.hours < 25;
-							 }
-							 index       = 3; break;
-			case 'hours'   : today       = date.format( 'l' ) === now.format( 'l' );
-							 use_noun    = diff.hours / 24 >= .75;
-							 determiner  = this.an;
-							 index       = 4; break;
-			case 'minutes' : index       = 5; break;
-		}
-
-		bal  = ( diff.value - tm[index][1] * diff[dkeys[0]] ) / tm[index][1];
-
-		if ( use_noun )
-			return today ? this.today : diff.tense > 0 ? this.tomorrow : this.yesterday;
-
-		parts = [];
-		tense = diff.tense > 0 ? this.from_now : this.ago;
-
-		if ( bal < .1 ) { //noinspection FallthroughInSwitchStatementJS
-			switch ( dkeys[0] ) {
-				case 'years' : case 'months' : case 'weeks' :
-					if ( diff[dkeys[0]] === 1 ) {
-						parts.push( ( diff.tense < 1 ? this.last : this.next ), tu[index][0] );
-						break;
-					} // allow [conditional] fall-through
-				default      :
-					!bal || parts.push( this.about );
-					parts.push( diff[dkeys[0]], tu[index][diff[dkeys[0]] > 1 ? 1 : 0], tense );
-			}
-		}
-		else {
-			if ( bal < .74 ) {
-				if ( bal < .24 )
-					adverb = this.just_over;
-				else {
-					adverb = ( bal > .24 && bal < .4 ) ? this.almost : this.about;
-					parts.push( this.and, this.a, this.half );
-				}
-			}
-			else
-				parts.push( this.almost, ( diff[dkeys[0]] + 1 ), tu[index][1], tense );
-		}
-
-		if ( adverb ) {
-			parts.push( tu[index][diff[dkeys[0]] > 1 || parts.length ? 1 : 0], tense );
-			parts.unshift( adverb, diff[dkeys[0]] );
-		}
-
-		return typeof this.approx == 'function' ? this.approx.call( this, parts, diff ) : lexicalize_approx.call( this, parts, diff );
-	};
-
-	lexicon.exact  = function( date, now ) {
-		var diff = date.diff( now ), parts, tu = this.time_units;
-
-		parts = Type.time_map.reduce( function( val, unit, i ) {
-			var v = diff[unit[0]];
-
-			!v || !tu[i] || val.push( v + ' ' + tu[i][v > 1 ? 1 : 0] );
-
-			return val;
-		}, [] );
-
-		if ( !parts.length )
-			return this.just_now;
-
-		return typeof this.exact == 'function' ? this.exact.call( this, parts, diff ) : lexicalize_exact.call( this, parts, diff );
-	};
-
-
-
-/*~  src/localize.js  ~*/
-
-	function localize( locale ) { //noinspection FallthroughInSwitchStatementJS
-		switch ( util.ntype( locale ) ) {
-			case 'object' :
-				if ( locale.id ) {
-					locales[locale.id] = locale;
-					break;
-				} // allow [conditional] fall-through
-			case 'string' :
-				if ( locale in locales ) {
-					locale = locales[locale];
-					break;
-				} // allow [conditional] fall-through
-			default       : locale = null;
-		}
-
-		if ( util.ntype( locale ) == 'object' ) {
-			util.defs( Type, {
-				locale      : { value : locale },
-				getOrdinal  : locale.getOrdinal,
-				isLeapYear  : locale.isLeapYear,
-				setLeapYear : locale.setLeapYear
-			}, 'w', true );
-
-			if ( !( locale.id in cache_format ) )
-				cache_format[locale.id] = util.obj();
-			if ( !( locale.id in cache_parse ) )
-				cache_parse[locale.id] = util.obj();
-
-			filter  = localize_filters( locale );
-			formats = localize_formats( locale );
-			parser  = localize_parsers( locale );
-		}
-
-		return Type;
-	}
-
-
-
-/*~  src/filters.js  ~*/
-
-	function localize_filters( L ) {
-		var F = {
-// day
-			d : function( d ) { return pad( d.getDate(), 2 ); },                       // Day of the month, 2 digits with leading zeros
-			D : function( d ) { return L.days[d.getDay()].substring( 0, 3 ); },        // A textual representation of a day, three letters
-			j : function( d ) { return d.getDate(); },                                 // Day of the month without leading zeros
-			l : function( d ) { return L.days[d.getDay()]; },                          // A full textual representation of the day of the week
-			N : function( d ) { return getISODay.call( d ); },                         // ISO-8601 numeric representation of the day of the week
-			S : function( d ) { return L.getOrdinal( d.getDate() ); },                 // English ordinal suffix for the day of the month, 2 characters
-			w : function( d ) { return d.getDay(); },                                  // Numeric representation of the day of the week
-			z : function( d ) { return d.getDayOfYear(); },                            // The day of the year (starting from 0)
-// week
-			W : function( d ) { return getISOWeek.call( d ); },                        // ISO-8601 week number of year, weeks starting on Monday
-// month
-			F : function( d ) { return L.months[d.getMonth()]; },                      // A full textual representation of a month
-			m : function( d ) { return pad( ( d.getMonth() + 1 ), 2 ); },              // Numeric representation of a month, with leading zeros
-			M : function( d ) { return L.months[d.getMonth()].substring( 0, 3 ); },    // A short textual representation of a month, three letters
-			n : function( d ) { return d.getMonth() + 1; },                            // Numeric representation of a month, without leading zeros
-			t : function( d ) {                                                        // Number of days in the given month
-				L.setLeapYear( d );
-				return L.day_count[d.getMonth()];
-			},
-// year
-			L : function( d ) { return d.isLeapYear() ? 1 : 0; },                      // Whether it's a leap year
-			o : function( d ) {                                                        // ISO-8601 year number. This has the same value as Y, except that if the ISO
-				var m = d.getMonth(), w = getISOWeek.call( d );                        // week number (W) belongs to the previous or next year, that year is used instead.
-				return ( d.getFullYear() + ( w == 1 && m > 0 ? 1 : ( w >= 52 && m < 11 ? -1 : 0 ) ) );
-			},
-			Y : function( d ) { return d.getFullYear(); },                             // A full numeric representation of a year, 4 digits
-			y : function( d ) { return String( d.getFullYear() ).substring( 2, 4 ); }, // A two digit representation of a year
-// time
-			a : function( d ) { return _lc( d.getHours() < 12 ? L.AM : L.PM ); },      // Lowercase Ante meridiem and Post meridiem
-			A : function( d ) { return _uc( d.getHours() < 12 ? L.AM : L.PM ); },      // Uppercase Ante meridiem and Post meridiem
-			g : function( d ) { return d.getHours() % 12 || 12; },                     // 12-hour format of an hour without leading zeros
-			G : function( d ) { return d.getHours(); },                                // 24-hour format of an hour without leading zeros
-			h : function( d ) { return pad( filter.g( d ), 2 ); },                     // 12-hour format of an hour with leading zeros
-			H : function( d ) { return pad( filter.G( d ), 2 ); },                     // 24-hour format of an hour with leading zeros
-			i : function( d ) { return pad( d.getMinutes(), 2 ); },                    // Minutes with leading zeros
-			s : function( d ) { return pad( d.getSeconds(), 2 ); },                    // Seconds, with leading zeros
-			u : function( d ) { return pad( d.getMilliseconds(), 3 ); },               // Milliseconds
-// timezone
-			O : function( d ) { return getGMTOffset.call( d ); },                      // Difference to Greenwich time (GMT) in hours
-			P : function( d ) { return getGMTOffset.call( d, true ); },                // Difference to Greenwich time (GMT) with colon between hours and minutes
-			T : function( d ) { return timezone.call( d ); },                          // Timezone abbreviation
-			Z : function( d ) { return d.getTimezoneOffset() * -60; },                 // Timezone offset in seconds. The offset for timezones west of UTC
-																					   // is always negative, and for those east of UTC is always positive.
-// full date/time
-			c : function( d ) { return format.call( d, formats.ISO_8601 ); },          // ISO 8601 date
-			r : function( d ) { return format.call( d, formats.RFC_2822 ); },          // RFC 2822 formatted date
-			U : function( d ) { return d.getTime(); },                                 // Seconds since the Unix Epoch January 1 1970 00:00:00 GMT
-
-// custom
-			e : function( d ) { return d.lexicalize( 'exact' );  },                    // these are either self explanatory or you need serious help!
-			x : function( d ) { return d.lexicalize( 'approx' ); }                     // t(om )hanks you.
-		};
-
-		filter_chars  = Object.keys( F ).sort().join( '' );
-
-		re_compile    = new RegExp( '([^' + filter_chars + ']*)([' + filter_chars + '])([^' + filter_chars + ']*)', 'g' );
-
-		util.def( Type, 'filters', { value : filter = F }, 'w', true );
-
-		return F;
-	}
-
-
-
-/*~  src/formats.js  ~*/
-
-	function localize_formats( L ) {
-		var F = util.copy( {
-			ISO_8601 : 'Y-m-d<T>H:i:s.u<Z>', ISO_8601_SHORT : 'Y-m-d',
-			RFC_850  : 'l, d-M-y H:i:s T', RFC_2822       : 'D, d M Y H:i:s O',
-			sortable : 'Y-m-d H:i:sO'
-		}, L.formats );
-
-		F.atom = F.ISO_8601; F.cookie = F.RFC_850; F.rss = F.RFC_2822;
-
-		util.def( Type, 'formats', { value : formats = F }, 'w', true );
-
-		return F;
-	}
-
-
-
-/*~  src/parsers.js  ~*/
-
-	function localize_parsers( L ) {
-		var P = {
-		// day
-			d : { k  : DAY,         fn : Number,                               re : re_d2 },
-			D : { k  : DAYWEEK,     fn : _indexOf.bind( null, L.days_short ),  re : '(' + L.days_short.join( '|' ) + ')' },
-			j : { k  : DAY,         fn : Number,                               re : re_d1_2 },
-			l : { k  : DAYWEEK,     fn : _indexOf.bind( null, L.days ),        re : '(' + L.days.join( '|' ) + ')' },
-			N : { k  : DAYWEEK,     fn : _zeroIndexedInt.bind( null, 7 ),      re : '([1-7])' },
-			S : { re : '(?:' + L.ordinal.join( '|' ) + ')' },
-			w : { k  : DAYWEEK,     fn : Number,                                re : '([0-6])' },
-			z : { k  : DAYYEAR,     fn : Number,                                re : '([0-9]{1,3})' },
-		// week
-			W : { k  : WEEK,        fn : Number,                                re : re_d2 },
-		// month
-			F : { k  : MONTH,       fn : _indexOf.bind( null, L.months ),       re : '(' + L.months.join( '|' ) + ')' },
-			m : { k  : MONTH,       fn : _zeroIndexedInt,                       re : re_d2 },
-			M : { k  : MONTH,       fn : _indexOf.bind( null, L.months_short ), re : '(' + L.months_short.join( '|' ) + ')' },
-			n : { k  : MONTH,       fn : _zeroIndexedInt,                       re : re_d1_2 },
-			t : { re : '[0-9]{2}' },
-		// year
-			L : { re : '(?:0|1)' },
-			o : { k  : YEAR,        fn : Number,                                re : re_d4 },
-			Y : { k  : YEAR,        fn : Number,                                re : re_d4 },
-			y : { k  : YEAR,        fn : function( o ) {
-										o = Number( o );
-										return o += ( o < 30 ? 2000 : 1900 );
-									},                                          re : re_d2 },
-		// time
-			a : { k  : AMPM,        fn : util,                                  re : re_ampm },
-			A : { k  : AMPM,        fn : _lc,                                   re : _uc( re_ampm ) },
-			g : { k  : HOUR,        fn : _24hrTime,                             re : re_d1_2 },
-			G : { k  : HOUR,        fn : Number,                                re : re_d1_2 },
-			h : { k  : HOUR,        fn : _24hrTime,                             re : re_d2 },
-			H : { k  : HOUR,        fn : Number,                                re : re_d2 },
-			i : { k  : MINUTE,      fn : Number,                                re : re_d2 },
-			s : { k  : SECOND,      fn : Number,                                re : re_d2 },
-			u : { k  : MILLISECOND, fn : Number,                                re : '([0-9]{1,})' },
-		// timezone
-			O : { k  : TIMEZONE,    fn : _timezoneOffset,                       re : '([\\+-][0-9]{4})' },
-			P : { k  : TIMEZONE,    fn : _timezoneOffset,                       re : '([\\+-][0-9]{2}:[0-9]{2})' },
-			T : { re : '[A-Z]{1,4}' },
-			Z : { k  : TIMEZONE,    fn : _timezoneOffset,                       re : '(Z|[\\+-]?[0-9]{2}:?[0-9]{2})' },
-		// full date/time
-			U : { k  : UNIX,        fn : Number,                                re : '(-?[0-9]{1,})'  }
-		};
-
-		P.c = {
-			combo : [P.Y, P.m, P.d, P.H, P.i, P.s, P.u, P.P],
-			re    : [P.Y.re, '-', P.m.re, '-', P.d.re, 'T', P.H.re, ':', P.i.re, ':', P.s.re, '(?:\\.', P.u.re, '){0,1}', P.Z.re, '{0,1}'].join( '' )
-		};
-		P.r = {
-			combo : [P.D, P.d, P.M, P.Y, P.H, P.i, P.s, P.O],
-			re    : [P.D.re, ', ', P.d.re, ' ', P.M.re, ' ', P.Y.re, ' ', P.H.re, ':', P.i.re, ':', P.s.re, ' ', P.O.re].join( '' )
-		};
-
-		util.def( Type, 'parsers', { value : parser = P }, 'w', true );
-
-		return P;
-	}
-
-
-
-/*~  src/expose.js  ~*/
-
-// instance methods
-	util.defs( Type.prototype, {
-		adjust       : adjust,              between            : between,              clearTime               : clearTime,
-		clone        : clone,               diff               : diff,                 format                  : format,
-		getDayOfYear : getDayOfYear,        getFirstOfTheMonth : getFirstOfTheMonth,   getGMTOffset            : getGMTOffset,
-		getISODay    : getISODay,           getISODaysInYear   : getISODaysInYear,     getISOFirstMondayOfYear : getISOFirstMondayOfYear,
-		getISOWeek   : getISOWeek,          getISOWeeksInYear  : getISOWeeksInYear,    getLastOfTheMonth       : getLastOfTheMonth,
-		getWeek      : getWeek,             isDST              : isDST,                isLeapYear              : isLeapYear,
-		lexicalize   : lexicalize,          setWeek            : setWeek,              timezone                : timezone,
-		valid        : function() { return Type.valid( this ); }
-	}, 'r' );
-
-// static methods & properties
-	util.defs( Type, {
-// constants used by Date.prototype.adjust
-		DAY          : DAY,                 HOUR               : 'hr',                 MINUTE                  : MINUTE.substring( 0, 3 ),
-		MILLISECOND  : MILLISECOND,         MONTH              : MONTH,                SECOND                  : SECOND.substring( 0, 3 ),
-		WEEK         : WEEK,                YEAR               : YEAR,
-// constants defining milliseconds for different times
-		MS_DAY       : MS_DAY,              MS_HOUR            : MS_HOUR,              MS_MINUTE               : MS_MINUTE, MS_MONTH : MS_MONTH,
-		MS_SECOND    : MS_SECOND,           MS_WEEK            : MS_WEEK,              MS_YEAR                 : MS_YEAR,
-// filters and formats
-		lexicon      : { value : lexicon }, time_map           : { value : time_map }, time_props              : { value : time_props },
-// static methods
-		coerce       : coerce,              diffKeys           : diff_keys,            localize                : localize,
-		toDate       : coerce,              valid              : valid
-	}, 'r' );
-
-
-
-	} ).x( Date );
-// at this point we don't know if util is available or not, and as such do not know what environment we are in.
-// so, we check and do what is required.
-}( typeof m8 != 'undefined' ? m8 : typeof require != 'undefined' ? require( 'm8' ) : null );

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/d8.min.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/d8.min.js b/node_modules/cordova-serve/node_modules/d8/d8.min.js
deleted file mode 100644
index fad7320..0000000
--- a/node_modules/cordova-serve/node_modules/d8/d8.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){"use strict";e.x.cache("Date",function(t){function n(e,t){var n=e.indexOf(t);return-1==n?null:n}function r(e){return e.toLocaleLowerCase()}function i(e){return e.toLocaleUpperCase()}function u(e,t){return e.reduce(function(e,n,r){return e[t[r]]=n,e},{})}function s(e,t,n){return e>=t&&n>=e}function a(e,t,n){var r=-1,i=e.toString(n||10);for(t-=i.length;++r<t;)i="0"+i;return i}function o(e,t){return e+t}function c(e,t){return l(t)(e)}function l(n){var r,i,s,a,o,c,l,h=t.locale.id;if(At[h][n])return At[h][n];for(c=n.replace(Zt,Lt).replace(Wt,Ft).split(Vt),i=[],r=-1,s=c.length,a={},l=[];++r<s;)o=c[r],o!=Tt?o.replace(ct,function(t,n,r,s){var o,c,f;(f=ot[r])&&(f.k&&(i.push(f.k),f.fn&&(a[f.k]=f.fn)),f.combo&&(c=f.combo.pluck("k"),o=u(f.combo.pluck("fn"),c),i.push.apply(i,c),e.copy(a,o,!0)),f.re&&l.push(n,f.re,s))}):(l.push(c[++r]),++r);return At[h][n]=f.bind(null,new RegExp(l.join("")),i,a)}function f(e,n,r,i){var s=new t(0,0,1,0,0,0,0),a=i.match(e),o=u(a.slice(1),n);return Obje
 ct.reduce(o,function(e,t,n){return"string"==typeof t&&r[n]&&(o[n]=r[n](t,o)),e},null),isNaN(o[Dt])?(g(s,o[vt],o[Nt],o[Yt],o[wt]),h(s,o),m(s,o[jt])):s.setTime(o[Dt]),s}function h(n,r){var i,u,a,o,c=t.locale,l=-1;if(!Ct.every(e.has.bind(null,r))){if(isNaN(r[xt])&&(r[xt]=n.getFullYear()),isNaN(r[Ot])&&(a=c.isLeapYear(r[xt])?1:0,o=c.ordinal_day_count[a],u=o.length,r[Ot]=0,r[St]&&!r[yt]&&(i=r[Mt],i=isNaN(i)?0:i?i:7,r[yt]=7*r[St]-(4-i)),!isNaN(r[yt])))for(r[yt]>o[o.length-1]&&(r[yt]-=o[o.length-1],++r[xt]);++l<u;)if(s(r[yt],o[l],o[l+1])){r[Ot]=l,r[kt]=0==o[l]?r[yt]:r[yt]-o[l];break}isNaN(r[kt])&&(r[kt]=1),n.setYear(r[xt]),n.setMonth(r[Ot]),n.setDate(r[kt])}}function g(e,t,n,r,i){e.setHours(t||0),e.setMinutes(n||0),e.setSeconds(r||0),e.setMilliseconds(i||0)}function m(e,n){!s(n,-43200,50400)||e.adjust(t.SECOND,60*-e.getTimezoneOffset()-n)}function d(n,r){switch(e.ntype(n)){case"number":case"string":if(!q(new t(n))){r||(r=n),n=t.now();break}n=new t(n);case"array":case"object":r=n,n=t.now();
 break;case"date":if(q(new t(+n)))break;default:n=t.now()}var i,u=+n-+this,s=0>u?1:u>0?-1:0;return s?i=b(Math.abs(u),_(r)):(i=e.obj(),i.value=0),i.tense=s,i}function p(e,t,n,r){var i;return e.__ms__?e.excl[t[0]]?r[n+1]&&!e.excl[r[n+1][0]]||!(t=r[n-1])?e:(i=e.__ms__/t[1],e.__ms__=Math.round(i)*t[1]+e.__ms__/r[n][1]%1*r[n][1],p(e,t,n-1,[])):(e.__ms__>=t[1]&&(i=e.__ms__/t[1],t[0]in e.val?(i=Math.floor(i),e.__ms__-=i*t[1],e.val[t[0]]+=i):(e.__ms__=i%1*t[1],e.val[t[0]]=Math.floor(i))),e):e}function b(t,n){var r=Qt.reduce(p,{__ms__:t,excl:n,val:e.obj()}).val;return r.value=t,r}function _(t){var n=e.obj(),r=!0;if(t)switch(e.ntype(t)){case"object":r=!1;break;case"string":t=t.split(" ");case"array":t=t.reduce(k,n),r=!!e.len(n)}return Xt.map(function(e){e in this||(this[e]=!r)},n),n}function k(e,t){var n=(t=String(t).toLowerCase()).substring(1);switch(t.charAt(0)){case"-":e[n]=!0;break;case"+":e[n]=!1;break;case">":Qt.map(M,{excl:e,prop:n,val:!0});break;case"<":Qt.slice().reverse().map(M,{excl
 :e,prop:n,val:!1});break;default:e[t]=!1}return e}function M(e){e[0]===this.prop&&(this.SET_VALID=!0),this.SET_VALID&&(this.excl[e[0]]=this.val)}function y(t){return t=e.copy(t),e.remove(t,"tense","value"),Object.keys(t).map(function(e){return[Xt.indexOf(e),e]}).sort(function(e,t){return e=e[0],t=t[0],e>t?1:-1}).pluck(1)}function v(e,n){return(e=Number(e))<12&&r(n.ampm)==r(t.locale.PM)?e+=12:e}function w(e,t,n){return e.adjust(n,t)}function N(t){return Et.reduce(function(e,n,r){var i=parseFloat(t[r]);return isNaN(i)||0===i||(e[n]=i),e},e.obj())}function O(e){return Math.floor((e-C.call(e))/ft)}function Y(e){"Z"==e&&(e="0000");var t=!!e.indexOf("-"),n=e.match(Jt),r=3600*(Number(n[1])+n[2]/60);return t?r:-r}function j(e){return Math.floor(Math.abs(O(e)/7))}function D(e,t){return isNaN(t)?Number(e)-1:t==e?0:Number(t)}function S(n,r){var i,u,s,a=this;switch(e.ntype(n)){case"number":n=arguments;case"array":n=N(n);case"object":Object.reduce(n,w,a);break;case"string":u=Ht[n.toLowerCase()],
 u&&0!==r&&(t.locale.setLeapYear(a),u==Ht.month&&(i=a.getDate(),28>i||a.setDate(Math.min(i,U.call(H.call(a).adjust(t.MONTH,r)).getDate()))),u!=Ht.week||(s=a.getDay()),a[u[1]](a[u[0]]()+r),!s||a.setDate(a.getDate()+s))}return a}function x(e,t){return+this>=+e&&+t>=+this}function T(){return this.setHours(0),this.setMinutes(0),this.setSeconds(0),this.setMilliseconds(0),this}function L(){return new t(this.getTime())}function F(){var e=t.locale;return e.setLeapYear(this),e.day_count.slice(0,this.getMonth()).reduce(o,0)+this.getDate()-1}function H(){return new t(this.getFullYear(),this.getMonth(),1)}function E(e){var t=this.getTimezoneOffset();return[t>0?"-":"+",a(Math.floor(Math.abs(t)/60),2),e?":":"",a(Math.abs(t%60),2)].join("")}function I(){return this.getDay()||7}function A(){return Math.ceil((C.call(new t(this.getFullYear()+1,0,1))-C.call(this))/ft)}function C(){var e=this.getFullYear();return new t(e,0,lt[new t(e,0,1).getDay()])}function z(){var e,n=this.getFullYear();return this>=C
 .call(new t(n+1,0,1))?1:(e=Math.floor((F.call(this)-I.call(this)+10)/7),0==e?R.call(new t(n-1,0,1))-j(this):e)}function R(){return Math.round((C.call(new t(this.getFullYear()+1,0,1))-C.call(this))/pt)}function U(){var e=t.locale,n=this.getMonth();return e.setLeapYear(this),new t(this.getFullYear(),n,e.day_count[n])}function W(){return Math.floor(F.call(this)/7)}function Z(){return new t(this.getFullYear(),0,1).getTimezoneOffset()!=this.getTimezoneOffset()}function P(){return t.locale.isLeapYear(this.getFullYear())}function G(e){return this.setMonth(0),this.setDate(1),this.adjust(t.DAY,7*e).getTime()}function K(){var e=this.toString().split(" ");return e.splice(4,e.length).join(" ").replace($t,"$1").replace(Bt,"")}function q(t){return"date"==e.ntype(t)&&!isNaN(+t)}function V(e){var n,r,i,u,s,a,o=t.locale.id;if(It[o][e])return It[o][e];for(n=["	var out=[];"],s=e.replace(Zt,Lt).replace(Wt,Ft).split(Vt),a=/^[^A-Za-z]*$/g,r=-1,i=s.length;++r<i;)u=s[r],u==Tt?(n.push(J(s[++r])),++r):a.test
 (u)?n.push(J(u)):n.push(B(u));return n.push('return out.join( "" );\n	//@ sourceURL=d8/format/'+o+"/"+e),It[o][e]=new Function("filter","date",n.join("\n\n	"))}function $(e){return V(e)(ut,this)}function B(e){return e.replace(ct,function(e,t,n,r){return J(t+"', filter."+n+"( date ), '"+r)})}function J(e){return"out.push( '"+e+"' );"}function Q(e,n){q(e)||(q(new t(e))?e=new t(e):(n=e,e=t.now()));var r=t.locale.lexicon;return"function"!=typeof zt[n=String(n).toLowerCase()]&&(n=r.DEFAULT),+e-+this?zt[n].call(r,this,e).replace(qt," "):r.just_now}function X(e){return e.join(" ")}function et(e,t){var n=e.pop();return(e.length?e.join(this.delim)+" "+this.and+" "+n:n)+" "+this[t.tense<1?"ago":"from_now"]}function tt(n){switch(e.ntype(n)){case"object":if(n.id){Rt[n.id]=n;break}case"string":if(n in Rt){n=Rt[n];break}default:n=null}return"object"==e.ntype(n)&&(e.defs(t,{locale:{value:n},getOrdinal:n.getOrdinal,isLeapYear:n.isLeapYear,setLeapYear:n.setLeapYear},"w",!0),n.id in It||(It[n.id]=e.o
 bj()),n.id in At||(At[n.id]=e.obj()),ut=nt(n),at=rt(n),ot=it(n)),t}function nt(n){var u={d:function(e){return a(e.getDate(),2)},D:function(e){return n.days[e.getDay()].substring(0,3)},j:function(e){return e.getDate()},l:function(e){return n.days[e.getDay()]},N:function(e){return I.call(e)},S:function(e){return n.getOrdinal(e.getDate())},w:function(e){return e.getDay()},z:function(e){return e.getDayOfYear()},W:function(e){return z.call(e)},F:function(e){return n.months[e.getMonth()]},m:function(e){return a(e.getMonth()+1,2)},M:function(e){return n.months[e.getMonth()].substring(0,3)},n:function(e){return e.getMonth()+1},t:function(e){return n.setLeapYear(e),n.day_count[e.getMonth()]},L:function(e){return e.isLeapYear()?1:0},o:function(e){var t=e.getMonth(),n=z.call(e);return e.getFullYear()+(1==n&&t>0?1:n>=52&&11>t?-1:0)},Y:function(e){return e.getFullYear()},y:function(e){return String(e.getFullYear()).substring(2,4)},a:function(e){return r(e.getHours()<12?n.AM:n.PM)},A:function(e){
 return i(e.getHours()<12?n.AM:n.PM)},g:function(e){return e.getHours()%12||12},G:function(e){return e.getHours()},h:function(e){return a(ut.g(e),2)},H:function(e){return a(ut.G(e),2)},i:function(e){return a(e.getMinutes(),2)},s:function(e){return a(e.getSeconds(),2)},u:function(e){return a(e.getMilliseconds(),3)},O:function(e){return E.call(e)},P:function(e){return E.call(e,!0)},T:function(e){return K.call(e)},Z:function(e){return-60*e.getTimezoneOffset()},c:function(e){return $.call(e,at.ISO_8601)},r:function(e){return $.call(e,at.RFC_2822)},U:function(e){return e.getTime()},e:function(e){return e.lexicalize("exact")},x:function(e){return e.lexicalize("approx")}};return st=Object.keys(u).sort().join(""),ct=new RegExp("([^"+st+"]*)(["+st+"])([^"+st+"]*)","g"),e.def(t,"filters",{value:ut=u},"w",!0),u}function rt(n){var r=e.copy({ISO_8601:"Y-m-d<T>H:i:s.u<Z>",ISO_8601_SHORT:"Y-m-d",RFC_850:"l, d-M-y H:i:s T",RFC_2822:"D, d M Y H:i:s O",sortable:"Y-m-d H:i:sO"},n.formats);return r.atom
 =r.ISO_8601,r.cookie=r.RFC_850,r.rss=r.RFC_2822,e.def(t,"formats",{value:at=r},"w",!0),r}function it(u){var s={d:{k:kt,fn:Number,re:Gt},D:{k:Mt,fn:n.bind(null,u.days_short),re:"("+u.days_short.join("|")+")"},j:{k:kt,fn:Number,re:Pt},l:{k:Mt,fn:n.bind(null,u.days),re:"("+u.days.join("|")+")"},N:{k:Mt,fn:D.bind(null,7),re:"([1-7])"},S:{re:"(?:"+u.ordinal.join("|")+")"},w:{k:Mt,fn:Number,re:"([0-6])"},z:{k:yt,fn:Number,re:"([0-9]{1,3})"},W:{k:St,fn:Number,re:Gt},F:{k:Ot,fn:n.bind(null,u.months),re:"("+u.months.join("|")+")"},m:{k:Ot,fn:D,re:Gt},M:{k:Ot,fn:n.bind(null,u.months_short),re:"("+u.months_short.join("|")+")"},n:{k:Ot,fn:D,re:Pt},t:{re:"[0-9]{2}"},L:{re:"(?:0|1)"},o:{k:xt,fn:Number,re:Kt},Y:{k:xt,fn:Number,re:Kt},y:{k:xt,fn:function(e){return e=Number(e),e+=30>e?2e3:1900},re:Gt},a:{k:_t,fn:e,re:Ut},A:{k:_t,fn:r,re:i(Ut)},g:{k:vt,fn:v,re:Pt},G:{k:vt,fn:Number,re:Pt},h:{k:vt,fn:v,re:Gt},H:{k:vt,fn:Number,re:Gt},i:{k:Nt,fn:Number,re:Gt},s:{k:Yt,fn:Number,re:Gt},u:{k:wt,fn:Number,
 re:"([0-9]{1,})"},O:{k:jt,fn:Y,re:"([\\+-][0-9]{4})"},P:{k:jt,fn:Y,re:"([\\+-][0-9]{2}:[0-9]{2})"},T:{re:"[A-Z]{1,4}"},Z:{k:jt,fn:Y,re:"(Z|[\\+-]?[0-9]{2}:?[0-9]{2})"},U:{k:Dt,fn:Number,re:"(-?[0-9]{1,})"}};return s.c={combo:[s.Y,s.m,s.d,s.H,s.i,s.s,s.u,s.P],re:[s.Y.re,"-",s.m.re,"-",s.d.re,"T",s.H.re,":",s.i.re,":",s.s.re,"(?:\\.",s.u.re,"){0,1}",s.Z.re,"{0,1}"].join("")},s.r={combo:[s.D,s.d,s.M,s.Y,s.H,s.i,s.s,s.O],re:[s.D.re,", ",s.d.re," ",s.M.re," ",s.Y.re," ",s.H.re,":",s.i.re,":",s.s.re," ",s.O.re].join("")},e.def(t,"parsers",{value:ot=s},"w",!0),s}var ut,st,at,ot,ct,lt=[9,1,0,-1,-2,4,3],ft=864e5,ht=36e5,gt=6e4,mt=2592e6,dt=1e3,pt=6048e5,bt=31536e6,_t="ampm",kt="day",Mt="dayweek",yt="dayyear",vt="hour",wt="ms",Nt="minute",Ot="month",Yt="second",jt="timezone",Dt="unix",St="week",xt="year",Tt="NOREPLACE",Lt="<"+Tt+"<",Ft=">END"+Tt+">",Ht={day:["getDate","setDate"],hr:["getHours","setHours"],min:["getMinutes","setMinutes"],month:["getMonth","setMonth"],ms:["getMilliseconds","set
 Milliseconds"],sec:["getSeconds","setSeconds"],week:["getWeek","setWeek"],year:["getFullYear","setFullYear"]},Et=[xt,Ot,St,kt,"hr",Nt.substring(0,3),Yt.substring(0,3),wt],It=e.obj(),At=e.obj(),Ct=[kt,Mt,yt,Ot,St,xt],zt=e.obj(),Rt=e.obj(),Ut="(am|pm)",Wt=/>/g,Zt=/</g,Pt="([0-9]{1,2})",Gt="([0-9]{2})",Kt="([0-9]{4})",qt=/\s{2,}/g,Vt=/[<>]/,$t=/[^\(]*\(([^\)]+)\)/g,Bt=/[^A-Z]+/g,Jt=/[\+-]?([0-9]{2}):?([0-9]{2})/,Qt=[[xt+"s",bt],[Ot+"s",mt],[St+"s",pt],[kt+"s",ft],[vt+"s",ht],[Nt+"s",gt],[Yt+"s",dt],[wt,1]],Xt=Qt.pluck(0);zt.approx=function(e,n){var r,i,u,s,a,o,c,l=this.a,f=e.diff(n),h=t.diffKeys(f),g=t.time_map,m=this.time_units;if(f.value<t.MS_MINUTE)return this.just_now;switch(h[0]){case"years":u=0;break;case"months":u=1;break;case"weeks":u=2;break;case"days":f.days<2&&(o=e.format("l")===n.format("l"),c=o||"hours"!=h[1]||f.hours<25),u=3;break;case"hours":o=e.format("l")===n.format("l"),c=f.hours/24>=.75,l=this.an,u=4;break;case"minutes":u=5}if(i=(f.value-g[u][1]*f[h[0]])/g[u][1],c)re
 turn o?this.today:f.tense>0?this.tomorrow:this.yesterday;if(s=[],a=f.tense>0?this.from_now:this.ago,.1>i)switch(h[0]){case"years":case"months":case"weeks":if(1===f[h[0]]){s.push(f.tense<1?this.last:this.next,m[u][0]);break}default:!i||s.push(this.about),s.push(f[h[0]],m[u][f[h[0]]>1?1:0],a)}else.74>i?.24>i?r=this.just_over:(r=i>.24&&.4>i?this.almost:this.about,s.push(this.and,this.a,this.half)):s.push(this.almost,f[h[0]]+1,m[u][1],a);return r&&(s.push(m[u][f[h[0]]>1||s.length?1:0],a),s.unshift(r,f[h[0]])),"function"==typeof this.approx?this.approx.call(this,s,f):X.call(this,s,f)},zt.exact=function(e,n){var r,i=e.diff(n),u=this.time_units;return r=t.time_map.reduce(function(e,t,n){var r=i[t[0]];return!r||!u[n]||e.push(r+" "+u[n][r>1?1:0]),e},[]),r.length?"function"==typeof this.exact?this.exact.call(this,r,i):et.call(this,r,i):this.just_now},e.defs(t.prototype,{adjust:S,between:x,clearTime:T,clone:L,diff:d,format:$,getDayOfYear:F,getFirstOfTheMonth:H,getGMTOffset:E,getISODay:I,getISO
 DaysInYear:A,getISOFirstMondayOfYear:C,getISOWeek:z,getISOWeeksInYear:R,getLastOfTheMonth:U,getWeek:W,isDST:Z,isLeapYear:P,lexicalize:Q,setWeek:G,timezone:K,valid:function(){return t.valid(this)}},"r"),e.defs(t,{DAY:kt,HOUR:"hr",MINUTE:Nt.substring(0,3),MILLISECOND:wt,MONTH:Ot,SECOND:Yt.substring(0,3),WEEK:St,YEAR:xt,MS_DAY:ft,MS_HOUR:ht,MS_MINUTE:gt,MS_MONTH:mt,MS_SECOND:dt,MS_WEEK:pt,MS_YEAR:bt,lexicon:{value:zt},time_map:{value:Qt},time_props:{value:Xt},coerce:c,diffKeys:y,localize:tt,toDate:c,valid:q},"r")}).x(Date)}("undefined"!=typeof m8?m8:"undefined"!=typeof require?require("m8"):null);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/locale/GR.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/locale/GR.js b/node_modules/cordova-serve/node_modules/d8/locale/GR.js
deleted file mode 100644
index 8ba4491..0000000
--- a/node_modules/cordova-serve/node_modules/d8/locale/GR.js
+++ /dev/null
@@ -1,55 +0,0 @@
-Date.localize(  {
-	id                  : 'GR',
-	AM                  : 'πμ',
-	PM                  : 'μμ',
-	days                : ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'],
-	days_short          : ['Κυρ',     'Δευ',     'Τρι',   'Τετ',     'Πέμ',    'Παρ',        'Σαβ'],
-	day_count           : [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
-	lexicon             : {
-		DEFAULT         : 'approx',
-		a               : '',
-		about           : 'περίπου',
-		ago             : 'πριν',
-		almost          : 'σχεδόν',
-		an              : '',
-		and             : 'και',
-		delim           : ', ',
-		from_now        : 'από τώρα',
-		half            : 'μισή',
-		just_now        : 'μόλις τώρα',
-		just_over       : 'λίγο περισσότερο', //'λιγο πανω απο',
-		last            : 'το περασμένο',
-		next            : 'τον επόμενο',
-		now             : 'τώρα',
-		today           : 'σήμερα',
-		tomorrow        : 'αύριο',
-		yesterday       : 'εχθές',
-		time_units      : [ // the descending order of these is important!
-			['χρόνος', 'χρόνια'], ['μήνα', 'μήνες'], ['εβδομάδα',    'εβδομάδες'], ['ημέρα', 'ημέρες'],
-			['ώρα',   'ώρες'],   ['λεπτό', 'λεπτά'], ['δευτερόλεπτο', 'δευτερόλεπτα']
-		]
-	},
-	formats             : {
-		server_date     : 'Y-m-d',
-		server_datetime : 'Y-m-d<T>H:i:sP',
-		server_time     : 'H:i:s',
-		short_date      : 'd/m/Y',
-		short_time      : 'h:ia'
-	},
-	months              : ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],
-	months_short        : ['Ιαν',        'Φεβ',         'Μαρ',    'Απρ',      'Μαϊ',   'Ιουν',   'Ιουλ',    'Αυγ',       'Σεπ',        'Οκτ',        'Νοε',      'Δεκ'],
-	ordinal             : ['ος', 'η'],
-	ordinal_day_count   : [
-		[0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],
-		[0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
-	],
-	getOrdinal          : function( d ) {
-		return Date.locale.ordinal[d < 11 ? 0 : 1];
-	},
-	isLeapYear          : function( y ) {
-		return !!( y && ( ( new Date( y, 1, 29 ) ).getDate() == 29 && ( y % 100 || y % 400 == 0 ) ) );
-	},
-	setLeapYear         : function( d ) {
-		Date.locale.day_count[1] = Date.locale.isLeapYear( d.getFullYear() ) ? 29 : 28;
-	}
-} );

http://git-wip-us.apache.org/repos/asf/cordova-browser/blob/1d2725bf/node_modules/cordova-serve/node_modules/d8/locale/en-GB.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-serve/node_modules/d8/locale/en-GB.js b/node_modules/cordova-serve/node_modules/d8/locale/en-GB.js
deleted file mode 100644
index faa2f18..0000000
--- a/node_modules/cordova-serve/node_modules/d8/locale/en-GB.js
+++ /dev/null
@@ -1,55 +0,0 @@
-Date.localize( {
-	id                  : 'en-GB',
-	AM                  : 'am',
-	PM                  : 'pm',
-	days                : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-	days_short          : ['Sun',    'Mon',    'Tue',     'Wed',       'Thu',      'Fri', 'Sat'],
-	day_count           : [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
-	lexicon             : {
-		DEFAULT         : 'approx',
-		a               : 'a',
-		about           : 'about',
-		ago             : 'ago',
-		almost          : 'almost',
-		an              : 'an',
-		and             : 'and',
-		delim           : ', ',
-		from_now        : 'from now',
-		half            : 'half',
-		just_now        : 'just now',
-		just_over       : 'just over',
-		last            : 'last',
-		next            : 'next',
-		now             : 'now',
-		today           : 'today',
-		tomorrow        : 'tomorrow',
-		yesterday       : 'yesterday',
-		time_units      : [ // the descending order of these is important!
-			['year', 'years'], ['month',  'months'],  ['week',   'weeks'], ['day', 'days'],
-			['hour', 'hours'], ['minute', 'minutes'], ['second', 'seconds']
-		]
-	},
-	formats             : {
-		server_date     : 'Y-m-d',
-		server_datetime : 'Y-m-d<T>H:i:sP',
-		server_time     : 'H:i:s',
-		short_date      : 'd/m/Y',
-		short_time      : 'h:ia'
-	},
-	months              : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
-	months_short        : ['Jan',     'Feb',      'Mar',   'Apr',   'May', 'Jun',  'Jul',  'Aug',    'Sep',       'Oct',     'Nov',      'Dec'],
-	ordinal             : ['th', 'st', 'nd', 'rd', 'th'],
-	ordinal_day_count   : [
-		[0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],
-		[0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
-	],
-	getOrdinal          : function( d ) {
-		return ( d > 3 && d < 21 ) ? Date.locale.ordinal[0] : Date.locale.ordinal[Math.min( d % 10, 4 )];
-	},
-	isLeapYear          : function( y ) {
-		return !!( y && ( ( new Date( y, 1, 29 ) ).getDate() == 29 && ( y % 100 || y % 400 == 0 ) ) );
-	},
-	setLeapYear         : function( d ) {
-		Date.locale.day_count[1] = Date.locale.isLeapYear( d.getFullYear() ) ? 29 : 28;
-	}
-} );


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