diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:43:44 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:43:44 +0200 |
commit | abd94a7f5a50f43c797a11b53549ae48fff667c3 (patch) | |
tree | ab8ed457f65cdd72e13e0571d2975729428f1551 /node_modules/dateformat | |
parent | a0247c6a3fd6a09a41a7e35a3441324c4dcb58be (diff) | |
download | wallet-core-abd94a7f5a50f43c797a11b53549ae48fff667c3.tar.xz |
add node_modules to address #4364
Diffstat (limited to 'node_modules/dateformat')
-rw-r--r-- | node_modules/dateformat/.npmignore | 57 | ||||
-rw-r--r-- | node_modules/dateformat/.travis.yml | 4 | ||||
-rw-r--r-- | node_modules/dateformat/LICENSE | 20 | ||||
-rw-r--r-- | node_modules/dateformat/Readme.md | 82 | ||||
-rwxr-xr-x | node_modules/dateformat/bin/cli.js | 75 | ||||
-rw-r--r-- | node_modules/dateformat/lib/dateformat.js | 226 | ||||
-rw-r--r-- | node_modules/dateformat/package.json | 110 | ||||
-rw-r--r-- | node_modules/dateformat/test/test_dayofweek.js | 15 | ||||
-rw-r--r-- | node_modules/dateformat/test/test_formats.js | 76 | ||||
-rw-r--r-- | node_modules/dateformat/test/test_isoutcdatetime.js | 11 | ||||
-rw-r--r-- | node_modules/dateformat/test/weekofyear/test_weekofyear.js | 4 | ||||
-rw-r--r-- | node_modules/dateformat/test/weekofyear/test_weekofyear.sh | 27 |
12 files changed, 707 insertions, 0 deletions
diff --git a/node_modules/dateformat/.npmignore b/node_modules/dateformat/.npmignore new file mode 100644 index 000000000..830d0ff74 --- /dev/null +++ b/node_modules/dateformat/.npmignore @@ -0,0 +1,57 @@ +# .gitignore <https://github.com/tunnckoCore/dotfiles> +# +# Copyright (c) 2014 Charlike Mike Reagent, contributors. +# Released under the MIT license. +# + +# Always-ignore dirs # +# #################### +_gh_pages +node_modules +bower_components +components +vendor +build +dest +dist +src +lib-cov +coverage +nbproject +cache +temp +tmp + +# Packages # +# ########## +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# OS, Logs and databases # +# ######################### +*.pid +*.dat +*.log +*.sql +*.sqlite +*~ +~* + +# Another files # +# ############### +Icon? +.DS_Store* +Thumbs.db +ehthumbs.db +Desktop.ini +npm-debug.log +.directory +._* + +koa-better-body
\ No newline at end of file diff --git a/node_modules/dateformat/.travis.yml b/node_modules/dateformat/.travis.yml new file mode 100644 index 000000000..18ae2d89c --- /dev/null +++ b/node_modules/dateformat/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - "0.11" + - "0.10" diff --git a/node_modules/dateformat/LICENSE b/node_modules/dateformat/LICENSE new file mode 100644 index 000000000..57d44e2ac --- /dev/null +++ b/node_modules/dateformat/LICENSE @@ -0,0 +1,20 @@ +(c) 2007-2009 Steven Levithan <stevenlevithan.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. diff --git a/node_modules/dateformat/Readme.md b/node_modules/dateformat/Readme.md new file mode 100644 index 000000000..0aaf1e822 --- /dev/null +++ b/node_modules/dateformat/Readme.md @@ -0,0 +1,82 @@ +# dateformat + +A node.js package for Steven Levithan's excellent [dateFormat()][dateformat] function. + +[![Build Status](https://travis-ci.org/felixge/node-dateformat.svg)](https://travis-ci.org/felixge/node-dateformat) + +## Modifications + +* Removed the `Date.prototype.format` method. Sorry folks, but extending native prototypes is for suckers. +* Added a `module.exports = dateFormat;` statement at the bottom +* Added the placeholder `N` to get the ISO 8601 numeric representation of the day of the week + +## Installation + +```bash +$ npm install dateformat +$ dateformat --help +``` + +## Usage + +As taken from Steven's post, modified to match the Modifications listed above: +```js + var dateFormat = require('dateformat'); + var now = new Date(); + + // Basic usage + dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT"); + // Saturday, June 9th, 2007, 5:46:21 PM + + // You can use one of several named masks + dateFormat(now, "isoDateTime"); + // 2007-06-09T17:46:21 + + // ...Or add your own + dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"'; + dateFormat(now, "hammerTime"); + // 17:46! Can't touch this! + + // When using the standalone dateFormat function, + // you can also provide the date as a string + dateFormat("Jun 9 2007", "fullDate"); + // Saturday, June 9, 2007 + + // Note that if you don't include the mask argument, + // dateFormat.masks.default is used + dateFormat(now); + // Sat Jun 09 2007 17:46:21 + + // And if you don't include the date argument, + // the current date and time is used + dateFormat(); + // Sat Jun 09 2007 17:46:22 + + // You can also skip the date argument (as long as your mask doesn't + // contain any numbers), in which case the current date/time is used + dateFormat("longTime"); + // 5:46:22 PM EST + + // And finally, you can convert local time to UTC time. Simply pass in + // true as an additional argument (no argument skipping allowed in this case): + dateFormat(now, "longTime", true); + // 10:46:21 PM UTC + + // ...Or add the prefix "UTC:" or "GMT:" to your mask. + dateFormat(now, "UTC:h:MM:ss TT Z"); + // 10:46:21 PM UTC + + // You can also get the ISO 8601 week of the year: + dateFormat(now, "W"); + // 42 + + // and also get the ISO 8601 numeric representation of the day of the week: + dateFormat(now,"N"); + // 6 +``` +## License + +(c) 2007-2009 Steven Levithan [stevenlevithan.com][stevenlevithan], MIT license. + +[dateformat]: http://blog.stevenlevithan.com/archives/date-time-format +[stevenlevithan]: http://stevenlevithan.com/ diff --git a/node_modules/dateformat/bin/cli.js b/node_modules/dateformat/bin/cli.js new file mode 100755 index 000000000..e095ddc68 --- /dev/null +++ b/node_modules/dateformat/bin/cli.js @@ -0,0 +1,75 @@ +#!/usr/bin/env node +/** + * dateformat <https://github.com/felixge/node-dateformat> + * + * Copyright (c) 2014 Charlike Mike Reagent (cli), contributors. + * Released under the MIT license. + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var dateFormat = require('../lib/dateformat'); +var meow = require('meow'); +var stdin = require('get-stdin'); + +var cli = meow({ + pkg: '../package.json', + help: [ + 'Options', + ' --help Show this help', + ' --version Current version of package', + ' -d | --date Date that want to format (Date object as Number or String)', + ' -m | --mask Mask that will use to format the date', + ' -u | --utc Convert local time to UTC time or use `UTC:` prefix in mask', + ' -g | --gmt You can use `GMT:` prefix in mask', + '', + 'Usage', + ' dateformat [date] [mask]', + ' dateformat "Nov 26 2014" "fullDate"', + ' dateformat 1416985417095 "dddd, mmmm dS, yyyy, h:MM:ss TT"', + ' dateformat 1315361943159 "W"', + ' dateformat "UTC:h:MM:ss TT Z"', + ' dateformat "longTime" true', + ' dateformat "longTime" false true', + ' dateformat "Jun 9 2007" "fullDate" true', + ' date +%s | dateformat', + '' + ].join('\n') +}) + +var date = cli.input[0] || cli.flags.d || cli.flags.date || Date.now(); +var mask = cli.input[1] || cli.flags.m || cli.flags.mask || dateFormat.masks.default; +var utc = cli.input[2] || cli.flags.u || cli.flags.utc || false; +var gmt = cli.input[3] || cli.flags.g || cli.flags.gmt || false; + +utc = utc === 'true' ? true : false; +gmt = gmt === 'true' ? true : false; + +if (!cli.input.length) { + stdin(function(date) { + console.log(dateFormat(date, dateFormat.masks.default, utc, gmt)); + }); + return; +} + +if (cli.input.length === 1 && date) { + mask = date; + date = Date.now(); + console.log(dateFormat(date, mask, utc, gmt)); + return; +} + +if (cli.input.length >= 2 && date && mask) { + if (mask === 'true' || mask === 'false') { + utc = mask === 'true' ? true : false; + gmt = !utc; + mask = date + date = Date.now(); + } + console.log(dateFormat(date, mask, utc, gmt)); + return; +} diff --git a/node_modules/dateformat/lib/dateformat.js b/node_modules/dateformat/lib/dateformat.js new file mode 100644 index 000000000..eb2574649 --- /dev/null +++ b/node_modules/dateformat/lib/dateformat.js @@ -0,0 +1,226 @@ +/* + * Date Format 1.2.3 + * (c) 2007-2009 Steven Levithan <stevenlevithan.com> + * MIT license + * + * Includes enhancements by Scott Trenda <scott.trenda.net> + * and Kris Kowal <cixar.com/~kris.kowal/> + * + * Accepts a date, a mask, or a date and a mask. + * Returns a formatted version of the given date. + * The date defaults to the current date/time. + * The mask defaults to dateFormat.masks.default. + */ + +(function(global) { + 'use strict'; + + var dateFormat = (function() { + var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|'[^']*'|'[^']*'/g; + var timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g; + var timezoneClip = /[^-+\dA-Z]/g; + + // Regexes and supporting functions are cached through closure + return function (date, mask, utc, gmt) { + + // You can't provide utc if you skip other args (use the 'UTC:' mask prefix) + if (arguments.length === 1 && kindOf(date) === 'string' && !/\d/.test(date)) { + mask = date; + date = undefined; + } + + date = date || new Date; + + if(!(date instanceof Date)) { + date = new Date(date); + } + + if (isNaN(date)) { + throw TypeError('Invalid date'); + } + + mask = String(dateFormat.masks[mask] || mask || dateFormat.masks['default']); + + // Allow setting the utc/gmt argument via the mask + var maskSlice = mask.slice(0, 4); + if (maskSlice === 'UTC:' || maskSlice === 'GMT:') { + mask = mask.slice(4); + utc = true; + if (maskSlice === 'GMT:') { + gmt = true; + } + } + + var _ = utc ? 'getUTC' : 'get'; + var d = date[_ + 'Date'](); + var D = date[_ + 'Day'](); + var m = date[_ + 'Month'](); + var y = date[_ + 'FullYear'](); + var H = date[_ + 'Hours'](); + var M = date[_ + 'Minutes'](); + var s = date[_ + 'Seconds'](); + var L = date[_ + 'Milliseconds'](); + var o = utc ? 0 : date.getTimezoneOffset(); + var W = getWeek(date); + var N = getDayOfWeek(date); + var flags = { + d: d, + dd: pad(d), + ddd: dateFormat.i18n.dayNames[D], + dddd: dateFormat.i18n.dayNames[D + 7], + m: m + 1, + mm: pad(m + 1), + mmm: dateFormat.i18n.monthNames[m], + mmmm: dateFormat.i18n.monthNames[m + 12], + yy: String(y).slice(2), + yyyy: y, + h: H % 12 || 12, + hh: pad(H % 12 || 12), + H: H, + HH: pad(H), + M: M, + MM: pad(M), + s: s, + ss: pad(s), + l: pad(L, 3), + L: pad(Math.round(L / 10)), + t: H < 12 ? 'a' : 'p', + tt: H < 12 ? 'am' : 'pm', + T: H < 12 ? 'A' : 'P', + TT: H < 12 ? 'AM' : 'PM', + Z: gmt ? 'GMT' : utc ? 'UTC' : (String(date).match(timezone) || ['']).pop().replace(timezoneClip, ''), + o: (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), + S: ['th', 'st', 'nd', 'rd'][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10], + W: W, + N: N + }; + + return mask.replace(token, function (match) { + if (match in flags) { + return flags[match]; + } + return match.slice(1, match.length - 1); + }); + }; + })(); + + dateFormat.masks = { + 'default': 'ddd mmm dd yyyy HH:MM:ss', + 'shortDate': 'm/d/yy', + 'mediumDate': 'mmm d, yyyy', + 'longDate': 'mmmm d, yyyy', + 'fullDate': 'dddd, mmmm d, yyyy', + 'shortTime': 'h:MM TT', + 'mediumTime': 'h:MM:ss TT', + 'longTime': 'h:MM:ss TT Z', + 'isoDate': 'yyyy-mm-dd', + 'isoTime': 'HH:MM:ss', + 'isoDateTime': 'yyyy-mm-dd\'T\'HH:MM:sso', + 'isoUtcDateTime': 'UTC:yyyy-mm-dd\'T\'HH:MM:ss\'Z\'', + 'expiresHeaderFormat': 'ddd, dd mmm yyyy HH:MM:ss Z' + }; + + // Internationalization strings + dateFormat.i18n = { + dayNames: [ + 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', + 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' + ], + monthNames: [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', + 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' + ] + }; + +function pad(val, len) { + val = String(val); + len = len || 2; + while (val.length < len) { + val = '0' + val; + } + return val; +} + +/** + * Get the ISO 8601 week number + * Based on comments from + * http://techblog.procurios.nl/k/n618/news/view/33796/14863/Calculate-ISO-8601-week-and-year-in-javascript.html + * + * @param {Object} `date` + * @return {Number} + */ +function getWeek(date) { + // Remove time components of date + var targetThursday = new Date(date.getFullYear(), date.getMonth(), date.getDate()); + + // Change date to Thursday same week + targetThursday.setDate(targetThursday.getDate() - ((targetThursday.getDay() + 6) % 7) + 3); + + // Take January 4th as it is always in week 1 (see ISO 8601) + var firstThursday = new Date(targetThursday.getFullYear(), 0, 4); + + // Change date to Thursday same week + firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3); + + // Check if daylight-saving-time-switch occured and correct for it + var ds = targetThursday.getTimezoneOffset() - firstThursday.getTimezoneOffset(); + targetThursday.setHours(targetThursday.getHours() - ds); + + // Number of weeks between target Thursday and first Thursday + var weekDiff = (targetThursday - firstThursday) / (86400000*7); + return 1 + Math.floor(weekDiff); +} + +/** + * Get ISO-8601 numeric representation of the day of the week + * 1 (for Monday) through 7 (for Sunday) + * + * @param {Object} `date` + * @return {Number} + */ +function getDayOfWeek(date) { + var dow = date.getDay(); + if(dow === 0) { + dow = 7; + } + return dow; +} + +/** + * kind-of shortcut + * @param {*} val + * @return {String} + */ +function kindOf(val) { + if (val === null) { + return 'null'; + } + + if (val === undefined) { + return 'undefined'; + } + + if (typeof val !== 'object') { + return typeof val; + } + + if (Array.isArray(val)) { + return 'array'; + } + + return {}.toString.call(val) + .slice(8, -1).toLowerCase(); +}; + + + + if (typeof define === 'function' && define.amd) { + define(function () { + return dateFormat; + }); + } else if (typeof exports === 'object') { + module.exports = dateFormat; + } else { + global.dateFormat = dateFormat; + } +})(this); diff --git a/node_modules/dateformat/package.json b/node_modules/dateformat/package.json new file mode 100644 index 000000000..4f57a3c41 --- /dev/null +++ b/node_modules/dateformat/package.json @@ -0,0 +1,110 @@ +{ + "_args": [ + [ + { + "raw": "dateformat@^1.0.11", + "scope": null, + "escapedName": "dateformat", + "name": "dateformat", + "rawSpec": "^1.0.11", + "spec": ">=1.0.11 <2.0.0", + "type": "range" + }, + "/home/dold/repos/taler/wallet-webex/node_modules/gulp-util" + ] + ], + "_from": "dateformat@>=1.0.11 <2.0.0", + "_id": "dateformat@1.0.12", + "_inCache": true, + "_location": "/dateformat", + "_nodeVersion": "0.12.7", + "_npmUser": { + "name": "felixge", + "email": "felix@debuggable.com" + }, + "_npmVersion": "2.11.3", + "_phantomChildren": {}, + "_requested": { + "raw": "dateformat@^1.0.11", + "scope": null, + "escapedName": "dateformat", + "name": "dateformat", + "rawSpec": "^1.0.11", + "spec": ">=1.0.11 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/gulp-gzip/gulp-util", + "/gulp-sym/gulp-util", + "/gulp-util" + ], + "_resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "_shasum": "9f124b67594c937ff706932e4a642cca8dbbfee9", + "_shrinkwrap": null, + "_spec": "dateformat@^1.0.11", + "_where": "/home/dold/repos/taler/wallet-webex/node_modules/gulp-util", + "author": { + "name": "Steven Levithan" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "bugs": { + "url": "https://github.com/felixge/node-dateformat/issues" + }, + "contributors": [ + { + "name": "Steven Levithan" + }, + { + "name": "Felix Geisendörfer", + "email": "felix@debuggable.com" + }, + { + "name": "Christoph Tavan", + "email": "dev@tavan.de" + } + ], + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "description": "A node.js package for Steven Levithan's excellent dateFormat() function.", + "devDependencies": { + "mocha": "2.0.1", + "underscore": "1.7.0" + }, + "directories": {}, + "dist": { + "shasum": "9f124b67594c937ff706932e4a642cca8dbbfee9", + "tarball": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz" + }, + "engines": { + "node": "*" + }, + "gitHead": "17364d40e61c06f6de228ab94f3660a27f357f01", + "homepage": "https://github.com/felixge/node-dateformat", + "license": "MIT", + "main": "lib/dateformat", + "maintainers": [ + { + "name": "felixge", + "email": "felix@debuggable.com" + }, + { + "name": "ctavan", + "email": "dev@tavan.de" + } + ], + "name": "dateformat", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/felixge/node-dateformat.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.12" +} diff --git a/node_modules/dateformat/test/test_dayofweek.js b/node_modules/dateformat/test/test_dayofweek.js new file mode 100644 index 000000000..7f37407cd --- /dev/null +++ b/node_modules/dateformat/test/test_dayofweek.js @@ -0,0 +1,15 @@ +var assert = require('assert'); + +var dateFormat = require('./../lib/dateformat'); + +describe('dayOfWeek', function() { + it('should correctly format the timezone part', function(done) { + var start = 10; // the 10 of March 2013 is a Sunday + for(var dow = 1; dow <= 7; dow++){ + var date = new Date('2013-03-' + (start + dow)); + var N = dateFormat(date, 'N'); + assert.strictEqual(N, String(dow)); + } + done(); + }); +}); diff --git a/node_modules/dateformat/test/test_formats.js b/node_modules/dateformat/test/test_formats.js new file mode 100644 index 000000000..df186caef --- /dev/null +++ b/node_modules/dateformat/test/test_formats.js @@ -0,0 +1,76 @@ +var assert = require('assert'); + +var _ = require('underscore'); + +var dateFormat = require('../lib/dateformat'); + +var expects = { + 'default': 'Wed Nov 26 2014 13:19:44', + 'shortDate': '11/26/14', + 'mediumDate': 'Nov 26, 2014', + 'longDate': 'November 26, 2014', + 'fullDate': 'Wednesday, November 26, 2014', + 'shortTime': '1:19 PM', + 'mediumTime': '1:19:44 PM', + 'longTime': '1:19:44 PM %TZ_PREFIX%%TZ_OFFSET%', + 'isoDate': '2014-11-26', + 'isoTime': '13:19:44', + 'isoDateTime': '2014-11-26T13:19:44%TZ_OFFSET%', + 'isoUtcDateTime': '', + 'expiresHeaderFormat': 'Wed, 26 Nov 2014 13:19:44 %TZ_PREFIX%%TZ_OFFSET%' +}; + +function pad(num, size) { + var s = num + ''; + while (s.length < size) { + s = '0' + s; + } + return s; +} + +function parseOffset(date) { + var offset = date.getTimezoneOffset(); + var hours = Math.floor(-1 * offset / 60); + var minutes = (-1 * offset) - (hours * 60); + var sign = offset > 0 ? '-' : '+'; + return { + offset: offset, + hours: hours, + minutes: minutes, + sign: sign, + }; +} + +function timezoneOffset(date) { + var offset = parseOffset(date); + return offset.sign + pad(offset.hours, 2) + pad(offset.minutes, 2); +} + +describe('dateformat([now], [mask])', function() { + _.each(dateFormat.masks, function(value, key) { + it('should format `' + key + '` mask', function(done) { + var now = new Date(2014, 10, 26, 13, 19, 44); + var tzOffset = timezoneOffset(now); + var expected = expects[key].replace(/%TZ_PREFIX%/, 'GMT') + .replace(/%TZ_OFFSET%/g, tzOffset) + .replace(/GMT\+0000/g, 'UTC'); + if (key === 'isoUtcDateTime') { + var offset = parseOffset(now); + now.setHours(now.getHours() - offset.hours, + now.getMinutes() - offset.minutes); + var expected = now.toISOString().replace(/\.000/g, ''); + } + var actual = dateFormat(now, key); + assert.strictEqual(actual, expected); + done(); + }); + }); + it('should use `default` mask, when `mask` is empty', function(done) { + var now = new Date(2014, 10, 26, 13, 19, 44); + var expected = expects['default']; + var actual = dateFormat(now); + + assert.strictEqual(actual, expected); + done(); + }); +}); diff --git a/node_modules/dateformat/test/test_isoutcdatetime.js b/node_modules/dateformat/test/test_isoutcdatetime.js new file mode 100644 index 000000000..886b7a5bd --- /dev/null +++ b/node_modules/dateformat/test/test_isoutcdatetime.js @@ -0,0 +1,11 @@ +var assert = require('assert'); + +var dateFormat = require('./../lib/dateformat'); + +describe('isoUtcDateTime', function() { + it('should correctly format the timezone part', function(done) { + var actual = dateFormat('2014-06-02T13:23:21-08:00', 'isoUtcDateTime'); + assert.strictEqual(actual, '2014-06-02T21:23:21Z'); + done(); + }); +}); diff --git a/node_modules/dateformat/test/weekofyear/test_weekofyear.js b/node_modules/dateformat/test/weekofyear/test_weekofyear.js new file mode 100644 index 000000000..d1ddbe818 --- /dev/null +++ b/node_modules/dateformat/test/weekofyear/test_weekofyear.js @@ -0,0 +1,4 @@ +var dateFormat = require('../lib/dateformat.js'); + +var val = process.argv[2] || new Date(); +console.log(dateFormat(val, 'W')); diff --git a/node_modules/dateformat/test/weekofyear/test_weekofyear.sh b/node_modules/dateformat/test/weekofyear/test_weekofyear.sh new file mode 100644 index 000000000..3c3e69b31 --- /dev/null +++ b/node_modules/dateformat/test/weekofyear/test_weekofyear.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# this just takes php's date() function as a reference to check if week of year +# is calculated correctly in the range from 1970 .. 2038 by brute force... + +SEQ="seq" +SYSTEM=`uname` +if [ "$SYSTEM" = "Darwin" ]; then + SEQ="jot" +fi + +for YEAR in {1970..2038}; do + for MONTH in {1..12}; do + DAYS=$(cal $MONTH $YEAR | egrep "28|29|30|31" |tail -1 |awk '{print $NF}') + for DAY in $( $SEQ $DAYS ); do + DATE=$YEAR-$MONTH-$DAY + echo -n $DATE ... + NODEVAL=$(node test_weekofyear.js $DATE) + PHPVAL=$(php -r "echo intval(date('W', strtotime('$DATE')));") + if [ "$NODEVAL" -ne "$PHPVAL" ]; then + echo "MISMATCH: node: $NODEVAL vs php: $PHPVAL for date $DATE" + else + echo " OK" + fi + done + done +done |