diff options
author | Rebecca Turner <me@re-becca.org> | 2015-05-22 11:33:46 +0300 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2015-06-26 03:27:03 +0300 |
commit | d3c858ce4cfb3aee515bb299eb034fe1b5e44344 (patch) | |
tree | e7714c839934a729b68038f4c7dc5ec3ed877638 /node_modules/columnify | |
parent | 24564b9654528d23c726cf9ea82b1aef2044b692 (diff) |
deps: deduplicate npm@3 style
Diffstat (limited to 'node_modules/columnify')
22 files changed, 66 insertions, 1318 deletions
diff --git a/node_modules/columnify/node_modules/wcwidth/.npmignore b/node_modules/columnify/node_modules/wcwidth/.npmignore deleted file mode 100644 index 3c3629e64..000000000 --- a/node_modules/columnify/node_modules/wcwidth/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/columnify/node_modules/wcwidth/LICENSE b/node_modules/columnify/node_modules/wcwidth/LICENSE deleted file mode 100644 index 313ef1e88..000000000 --- a/node_modules/columnify/node_modules/wcwidth/LICENSE +++ /dev/null @@ -1,30 +0,0 @@ -wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation -======================================================================= - -Copyright (C) 2012 by Jun Woong. - -This package is a JavaScript porting of `wcwidth()` implementation -[by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c). - -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. - - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - diff --git a/node_modules/columnify/node_modules/wcwidth/Readme.md b/node_modules/columnify/node_modules/wcwidth/Readme.md deleted file mode 100644 index 0649a3198..000000000 --- a/node_modules/columnify/node_modules/wcwidth/Readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# wcwidth - -Determine columns needed for a fixed-size wide-character string - ----- - -wcwidth is a simple JavaScript port of [wcwidth](http://man7.org/linux/man-pages/man3/wcswidth.3.html) implemented in C by Markus Kuhn. - -JavaScript port [originally](https://github.com/mycoboco/wcwidth.js) written by Woong Jun <woong.jun@gmail.com> (http://code.woong.org/) - -## Example - -```js -'한'.length // => 1 -wcwidth('한'); // => 2 - -'한글'.length // => 2 -wcwidth('한글'); // => 4 -``` - -`wcwidth()` and its string version, `wcswidth()` are defined by IEEE Std -1002.1-2001, a.k.a. POSIX.1-2001, and return the number of columns used -to represent the given wide character and string. - -Markus's implementation assumes the wide character given to those -functions to be encoded in ISO 10646, which is almost true for -JavaScript's characters. - -[Further explaination here](docs) - -## License - -MIT diff --git a/node_modules/columnify/node_modules/wcwidth/combining.js b/node_modules/columnify/node_modules/wcwidth/combining.js deleted file mode 100644 index dac9789d3..000000000 --- a/node_modules/columnify/node_modules/wcwidth/combining.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = [ - [ 0x0300, 0x036F ], [ 0x0483, 0x0486 ], [ 0x0488, 0x0489 ], - [ 0x0591, 0x05BD ], [ 0x05BF, 0x05BF ], [ 0x05C1, 0x05C2 ], - [ 0x05C4, 0x05C5 ], [ 0x05C7, 0x05C7 ], [ 0x0600, 0x0603 ], - [ 0x0610, 0x0615 ], [ 0x064B, 0x065E ], [ 0x0670, 0x0670 ], - [ 0x06D6, 0x06E4 ], [ 0x06E7, 0x06E8 ], [ 0x06EA, 0x06ED ], - [ 0x070F, 0x070F ], [ 0x0711, 0x0711 ], [ 0x0730, 0x074A ], - [ 0x07A6, 0x07B0 ], [ 0x07EB, 0x07F3 ], [ 0x0901, 0x0902 ], - [ 0x093C, 0x093C ], [ 0x0941, 0x0948 ], [ 0x094D, 0x094D ], - [ 0x0951, 0x0954 ], [ 0x0962, 0x0963 ], [ 0x0981, 0x0981 ], - [ 0x09BC, 0x09BC ], [ 0x09C1, 0x09C4 ], [ 0x09CD, 0x09CD ], - [ 0x09E2, 0x09E3 ], [ 0x0A01, 0x0A02 ], [ 0x0A3C, 0x0A3C ], - [ 0x0A41, 0x0A42 ], [ 0x0A47, 0x0A48 ], [ 0x0A4B, 0x0A4D ], - [ 0x0A70, 0x0A71 ], [ 0x0A81, 0x0A82 ], [ 0x0ABC, 0x0ABC ], - [ 0x0AC1, 0x0AC5 ], [ 0x0AC7, 0x0AC8 ], [ 0x0ACD, 0x0ACD ], - [ 0x0AE2, 0x0AE3 ], [ 0x0B01, 0x0B01 ], [ 0x0B3C, 0x0B3C ], - [ 0x0B3F, 0x0B3F ], [ 0x0B41, 0x0B43 ], [ 0x0B4D, 0x0B4D ], - [ 0x0B56, 0x0B56 ], [ 0x0B82, 0x0B82 ], [ 0x0BC0, 0x0BC0 ], - [ 0x0BCD, 0x0BCD ], [ 0x0C3E, 0x0C40 ], [ 0x0C46, 0x0C48 ], - [ 0x0C4A, 0x0C4D ], [ 0x0C55, 0x0C56 ], [ 0x0CBC, 0x0CBC ], - [ 0x0CBF, 0x0CBF ], [ 0x0CC6, 0x0CC6 ], [ 0x0CCC, 0x0CCD ], - [ 0x0CE2, 0x0CE3 ], [ 0x0D41, 0x0D43 ], [ 0x0D4D, 0x0D4D ], - [ 0x0DCA, 0x0DCA ], [ 0x0DD2, 0x0DD4 ], [ 0x0DD6, 0x0DD6 ], - [ 0x0E31, 0x0E31 ], [ 0x0E34, 0x0E3A ], [ 0x0E47, 0x0E4E ], - [ 0x0EB1, 0x0EB1 ], [ 0x0EB4, 0x0EB9 ], [ 0x0EBB, 0x0EBC ], - [ 0x0EC8, 0x0ECD ], [ 0x0F18, 0x0F19 ], [ 0x0F35, 0x0F35 ], - [ 0x0F37, 0x0F37 ], [ 0x0F39, 0x0F39 ], [ 0x0F71, 0x0F7E ], - [ 0x0F80, 0x0F84 ], [ 0x0F86, 0x0F87 ], [ 0x0F90, 0x0F97 ], - [ 0x0F99, 0x0FBC ], [ 0x0FC6, 0x0FC6 ], [ 0x102D, 0x1030 ], - [ 0x1032, 0x1032 ], [ 0x1036, 0x1037 ], [ 0x1039, 0x1039 ], - [ 0x1058, 0x1059 ], [ 0x1160, 0x11FF ], [ 0x135F, 0x135F ], - [ 0x1712, 0x1714 ], [ 0x1732, 0x1734 ], [ 0x1752, 0x1753 ], - [ 0x1772, 0x1773 ], [ 0x17B4, 0x17B5 ], [ 0x17B7, 0x17BD ], - [ 0x17C6, 0x17C6 ], [ 0x17C9, 0x17D3 ], [ 0x17DD, 0x17DD ], - [ 0x180B, 0x180D ], [ 0x18A9, 0x18A9 ], [ 0x1920, 0x1922 ], - [ 0x1927, 0x1928 ], [ 0x1932, 0x1932 ], [ 0x1939, 0x193B ], - [ 0x1A17, 0x1A18 ], [ 0x1B00, 0x1B03 ], [ 0x1B34, 0x1B34 ], - [ 0x1B36, 0x1B3A ], [ 0x1B3C, 0x1B3C ], [ 0x1B42, 0x1B42 ], - [ 0x1B6B, 0x1B73 ], [ 0x1DC0, 0x1DCA ], [ 0x1DFE, 0x1DFF ], - [ 0x200B, 0x200F ], [ 0x202A, 0x202E ], [ 0x2060, 0x2063 ], - [ 0x206A, 0x206F ], [ 0x20D0, 0x20EF ], [ 0x302A, 0x302F ], - [ 0x3099, 0x309A ], [ 0xA806, 0xA806 ], [ 0xA80B, 0xA80B ], - [ 0xA825, 0xA826 ], [ 0xFB1E, 0xFB1E ], [ 0xFE00, 0xFE0F ], - [ 0xFE20, 0xFE23 ], [ 0xFEFF, 0xFEFF ], [ 0xFFF9, 0xFFFB ], - [ 0x10A01, 0x10A03 ], [ 0x10A05, 0x10A06 ], [ 0x10A0C, 0x10A0F ], - [ 0x10A38, 0x10A3A ], [ 0x10A3F, 0x10A3F ], [ 0x1D167, 0x1D169 ], - [ 0x1D173, 0x1D182 ], [ 0x1D185, 0x1D18B ], [ 0x1D1AA, 0x1D1AD ], - [ 0x1D242, 0x1D244 ], [ 0xE0001, 0xE0001 ], [ 0xE0020, 0xE007F ], - [ 0xE0100, 0xE01EF ] -] diff --git a/node_modules/columnify/node_modules/wcwidth/docs/index.md b/node_modules/columnify/node_modules/wcwidth/docs/index.md deleted file mode 100644 index 5c5126d03..000000000 --- a/node_modules/columnify/node_modules/wcwidth/docs/index.md +++ /dev/null @@ -1,65 +0,0 @@ -### Javascript porting of Markus Kuhn's wcwidth() implementation - -The following explanation comes from the original C implementation: - -This is an implementation of wcwidth() and wcswidth() (defined in -IEEE Std 1002.1-2001) for Unicode. - -http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html -http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html - -In fixed-width output devices, Latin characters all occupy a single -"cell" position of equal width, whereas ideographic CJK characters -occupy two such cells. Interoperability between terminal-line -applications and (teletype-style) character terminals using the -UTF-8 encoding requires agreement on which character should advance -the cursor by how many cell positions. No established formal -standards exist at present on which Unicode character shall occupy -how many cell positions on character terminals. These routines are -a first attempt of defining such behavior based on simple rules -applied to data provided by the Unicode Consortium. - -For some graphical characters, the Unicode standard explicitly -defines a character-cell width via the definition of the East Asian -FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. -In all these cases, there is no ambiguity about which width a -terminal shall use. For characters in the East Asian Ambiguous (A) -class, the width choice depends purely on a preference of backward -compatibility with either historic CJK or Western practice. -Choosing single-width for these characters is easy to justify as -the appropriate long-term solution, as the CJK practice of -displaying these characters as double-width comes from historic -implementation simplicity (8-bit encoded characters were displayed -single-width and 16-bit ones double-width, even for Greek, -Cyrillic, etc.) and not any typographic considerations. - -Much less clear is the choice of width for the Not East Asian -(Neutral) class. Existing practice does not dictate a width for any -of these characters. It would nevertheless make sense -typographically to allocate two character cells to characters such -as for instance EM SPACE or VOLUME INTEGRAL, which cannot be -represented adequately with a single-width glyph. The following -routines at present merely assign a single-cell width to all -neutral characters, in the interest of simplicity. This is not -entirely satisfactory and should be reconsidered before -establishing a formal standard in this area. At the moment, the -decision which Not East Asian (Neutral) characters should be -represented by double-width glyphs cannot yet be answered by -applying a simple rule from the Unicode database content. Setting -up a proper standard for the behavior of UTF-8 character terminals -will require a careful analysis not only of each Unicode character, -but also of each presentation form, something the author of these -routines has avoided to do so far. - -http://www.unicode.org/unicode/reports/tr11/ - -Markus Kuhn -- 2007-05-26 (Unicode 5.0) - -Permission to use, copy, modify, and distribute this software -for any purpose and without fee is hereby granted. The author -disclaims all warranties with regard to this software. - -Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c - - - diff --git a/node_modules/columnify/node_modules/wcwidth/index.js b/node_modules/columnify/node_modules/wcwidth/index.js deleted file mode 100644 index 48cbb6020..000000000 --- a/node_modules/columnify/node_modules/wcwidth/index.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict" - -var defaults = require('defaults') -var combining = require('./combining') - -var DEFAULTS = { - nul: 0, - control: 0 -} - -module.exports = function wcwidth(str) { - return wcswidth(str, DEFAULTS) -} - -module.exports.config = function(opts) { - opts = defaults(opts || {}, DEFAULTS) - return function wcwidth(str) { - return wcswidth(str, opts) - } -} - -/* - * The following functions define the column width of an ISO 10646 - * character as follows: - * - The null character (U+0000) has a column width of 0. - * - Other C0/C1 control characters and DEL will lead to a return value - * of -1. - * - Non-spacing and enclosing combining characters (general category - * code Mn or Me in the - * Unicode database) have a column width of 0. - * - SOFT HYPHEN (U+00AD) has a column width of 1. - * - Other format characters (general category code Cf in the Unicode - * database) and ZERO WIDTH - * SPACE (U+200B) have a column width of 0. - * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) - * have a column width of 0. - * - Spacing characters in the East Asian Wide (W) or East Asian - * Full-width (F) category as - * defined in Unicode Technical Report #11 have a column width of 2. - * - All remaining characters (including all printable ISO 8859-1 and - * WGL4 characters, Unicode control characters, etc.) have a column - * width of 1. - * This implementation assumes that characters are encoded in ISO 10646. -*/ - -function wcswidth(str, opts) { - if (typeof str !== 'string') return wcwidth(str, opts) - - var s = 0 - for (var i = 0; i < str.length; i++) { - var n = wcwidth(str.charCodeAt(i), opts) - if (n < 0) return -1 - s += n - } - - return s -} - -function wcwidth(ucs, opts) { - // test for 8-bit control characters - if (ucs === 0) return opts.nul - if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return opts.control - - // binary search in table of non-spacing characters - if (bisearch(ucs)) return 0 - - // if we arrive here, ucs is not a combining or C0/C1 control character - return 1 + - (ucs >= 0x1100 && - (ucs <= 0x115f || // Hangul Jamo init. consonants - ucs == 0x2329 || ucs == 0x232a || - (ucs >= 0x2e80 && ucs <= 0xa4cf && - ucs != 0x303f) || // CJK ... Yi - (ucs >= 0xac00 && ucs <= 0xd7a3) || // Hangul Syllables - (ucs >= 0xf900 && ucs <= 0xfaff) || // CJK Compatibility Ideographs - (ucs >= 0xfe10 && ucs <= 0xfe19) || // Vertical forms - (ucs >= 0xfe30 && ucs <= 0xfe6f) || // CJK Compatibility Forms - (ucs >= 0xff00 && ucs <= 0xff60) || // Fullwidth Forms - (ucs >= 0xffe0 && ucs <= 0xffe6) || - (ucs >= 0x20000 && ucs <= 0x2fffd) || - (ucs >= 0x30000 && ucs <= 0x3fffd))); -} - -function bisearch(ucs) { - var min = 0 - var max = combining.length - 1 - var mid - - if (ucs < combining[0][0] || ucs > combining[max][1]) return false - - while (max >= min) { - mid = Math.floor((min + max) / 2) - if (ucs > combining[mid][1]) min = mid + 1 - else if (ucs < combining[mid][0]) max = mid - 1 - else return true - } - - return false -} diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore deleted file mode 100644 index 3c3629e64..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE deleted file mode 100644 index d88b07207..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Elijah Insua - -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/columnify/node_modules/wcwidth/node_modules/defaults/README.md b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md deleted file mode 100644 index 1a4a2ea9c..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# defaults - -A simple one level options merge utility - -## install - -`npm install defaults` - -## use - -```javascript - -var defaults = require('defaults'); - -var handle = function(options, fn) { - options = defaults(options, { - timeout: 100 - }); - - setTimeout(function() { - fn(options); - }, options.timeout); -} - -handle({ timeout: 1000 }, function() { - // we're here 1000 ms later -}); - -handle({ timeout: 10000 }, function() { - // we're here 10s later -}); - -``` - -## summary - -this module exports a function that takes 2 arguments: `options` and `defaults`. When called, it overrides all of `undefined` properties in `options` with the clones of properties defined in `defaults` - -Sidecases: if called with a falsy `options` value, options will be initialized to a new object before being merged onto. - -## license - -[MIT](LICENSE) diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js deleted file mode 100644 index cb7d75c9c..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js +++ /dev/null @@ -1,13 +0,0 @@ -var clone = require('clone'); - -module.exports = function(options, defaults) { - options = options || {}; - - Object.keys(defaults).forEach(function(key) { - if (typeof options[key] === 'undefined') { - options[key] = clone(defaults[key]); - } - }); - - return options; -};
\ No newline at end of file diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore deleted file mode 100644 index c2658d7d1..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml deleted file mode 100644 index 58f23716a..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - 0.10 diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE deleted file mode 100644 index fc808cce8..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright © 2011-2014 Paul Vorbach <paul@vorba.ch> - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md deleted file mode 100644 index d7231cfca..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# clone - -[![build status](https://secure.travis-ci.org/pvorb/node-clone.png)](http://travis-ci.org/pvorb/node-clone) - -offers foolproof _deep cloning_ of variables in JavaScript. - - -## Installation - - npm install clone - -or - - ender build clone - - -## Example - -~~~ javascript -var clone = require('clone'); - -var a, b; - -a = { foo: { bar: 'baz' } }; // initial value of a - -b = clone(a); // clone a -> b -a.foo.bar = 'foo'; // change a - -console.log(a); // show a -console.log(b); // show b -~~~ - -This will print: - -~~~ javascript -{ foo: { bar: 'foo' } } -{ foo: { bar: 'baz' } } -~~~ - -**clone** masters cloning simple objects (even with custom prototype), arrays, -Date objects, and RegExp objects. Everything is cloned recursively, so that you -can clone dates in arrays in objects, for example. - - -## API - -`clone(val, circular, depth)` - - * `val` -- the value that you want to clone, any type allowed - * `circular` -- boolean - - Call `clone` with `circular` set to `false` if you are certain that `obj` - contains no circular references. This will give better performance if needed. - There is no error if `undefined` or `null` is passed as `obj`. - * `depth` -- depth to which the object is to be cloned (optional, - defaults to infinity) - -`clone.clonePrototype(obj)` - - * `obj` -- the object that you want to clone - -Does a prototype clone as -[described by Oran Looney](http://oranlooney.com/functional-javascript/). - - -## Circular References - -~~~ javascript -var a, b; - -a = { hello: 'world' }; - -a.myself = a; -b = clone(a); - -console.log(b); -~~~ - -This will print: - -~~~ javascript -{ hello: "world", myself: [Circular] } -~~~ - -So, `b.myself` points to `b`, not `a`. Neat! - - -## Test - - npm test - - -## Caveat - -Some special objects like a socket or `process.stdout`/`stderr` are known to not -be cloneable. If you find other objects that cannot be cloned, please [open an -issue](https://github.com/pvorb/node-clone/issues/new). - - -## Bugs and Issues - -If you encounter any bugs or issues, feel free to [open an issue at -github](https://github.com/pvorb/node-clone/issues) or send me an email to -<paul@vorba.ch>. I also always like to hear from you, if you’re using my code. - -## License - -Copyright © 2011-2014 [Paul Vorbach](http://paul.vorba.ch/) and -[contributors](https://github.com/pvorb/node-clone/graphs/contributors). - -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, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js deleted file mode 100644 index f8fa3159a..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict'; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -// shim for Node's 'util' package -// DO NOT REMOVE THIS! It is required for compatibility with EnderJS (http://enderjs.com/). -var util = { - isArray: function (ar) { - return Array.isArray(ar) || (typeof ar === 'object' && objectToString(ar) === '[object Array]'); - }, - isDate: function (d) { - return typeof d === 'object' && objectToString(d) === '[object Date]'; - }, - isRegExp: function (re) { - return typeof re === 'object' && objectToString(re) === '[object RegExp]'; - }, - getRegExpFlags: function (re) { - var flags = ''; - re.global && (flags += 'g'); - re.ignoreCase && (flags += 'i'); - re.multiline && (flags += 'm'); - return flags; - } -}; - - -if (typeof module === 'object') - module.exports = clone; - -/** - * Clones (copies) an Object using deep copying. - * - * This function supports circular references by default, but if you are certain - * there are no circular references in your object, you can save some CPU time - * by calling clone(obj, false). - * - * Caution: if `circular` is false and `parent` contains circular references, - * your program may enter an infinite loop and crash. - * - * @param `parent` - the object to be cloned - * @param `circular` - set to true if the object to be cloned may contain - * circular references. (optional - true by default) - * @param `depth` - set to a number if the object is only to be cloned to - * a particular depth. (optional - defaults to Infinity) - * @param `prototype` - sets the prototype to be used when cloning an object. - * (optional - defaults to parent prototype). -*/ - -function clone(parent, circular, depth, prototype) { - // maintain two arrays for circular references, where corresponding parents - // and children have the same index - var allParents = []; - var allChildren = []; - - var useBuffer = typeof Buffer != 'undefined'; - - if (typeof circular == 'undefined') - circular = true; - - if (typeof depth == 'undefined') - depth = Infinity; - - // recurse this function so we don't reset allParents and allChildren - function _clone(parent, depth) { - // cloning null always returns null - if (parent === null) - return null; - - if (depth == 0) - return parent; - - var child; - var proto; - if (typeof parent != 'object') { - return parent; - } - - if (util.isArray(parent)) { - child = []; - } else if (util.isRegExp(parent)) { - child = new RegExp(parent.source, util.getRegExpFlags(parent)); - if (parent.lastIndex) child.lastIndex = parent.lastIndex; - } else if (util.isDate(parent)) { - child = new Date(parent.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent)) { - child = new Buffer(parent.length); - parent.copy(child); - return child; - } else { - if (typeof prototype == 'undefined') { - proto = Object.getPrototypeOf(parent); - child = Object.create(proto); - } - else { - child = Object.create(prototype); - proto = prototype; - } - } - - if (circular) { - var index = allParents.indexOf(parent); - - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent); - allChildren.push(child); - } - - for (var i in parent) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent[i], depth - 1); - } - - return child; - } - - return _clone(parent, depth); -} - -/** - * Simple flat clone using prototype, accepts only objects, usefull for property - * override on FLAT configuration object (no nested props). - * - * USE WITH CAUTION! This may not behave as you wish if you do not know how this - * works. - */ -clone.clonePrototype = function(parent) { - if (parent === null) - return null; - - var c = function () {}; - c.prototype = parent; - return new c(); -}; diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json deleted file mode 100644 index bc8e878a5..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" - ], - "version": "0.1.19", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" - }, - "bugs": { - "url": "https://github.com/pvorb/node-clone/issues" - }, - "main": "clone.js", - "author": { - "name": "Paul Vorbach", - "email": "paul@vorba.ch", - "url": "http://paul.vorba.ch/" - }, - "contributors": [ - { - "name": "Blake Miner", - "email": "miner.blake@gmail.com", - "url": "http://www.blakeminer.com/" - }, - { - "name": "Tian You", - "email": "axqd001@gmail.com", - "url": "http://blog.axqd.net/" - }, - { - "name": "George Stagas", - "email": "gstagas@gmail.com", - "url": "http://stagas.com/" - }, - { - "name": "Tobiasz Cudnik", - "email": "tobiasz.cudnik@gmail.com", - "url": "https://github.com/TobiaszCudnik" - }, - { - "name": "Pavel Lang", - "email": "langpavel@phpskelet.org", - "url": "https://github.com/langpavel" - }, - { - "name": "Dan MacTough", - "url": "http://yabfog.com/" - }, - { - "name": "w1nk", - "url": "https://github.com/w1nk" - }, - { - "name": "Hugh Kennedy", - "url": "http://twitter.com/hughskennedy" - }, - { - "name": "Dustin Diaz", - "url": "http://dustindiaz.com" - }, - { - "name": "Ilya Shaisultanov", - "url": "https://github.com/diversario" - }, - { - "name": "Nathan MacInnes", - "email": "nathan@macinn.es", - "url": "http://macinn.es/" - }, - { - "name": "Benjamin E. Coe", - "email": "ben@npmjs.com", - "url": "https://twitter.com/benjamincoe" - }, - { - "name": "Nathan Zadoks", - "url": "https://github.com/nathan7" - }, - { - "name": "Róbert Oroszi", - "email": "robert+gh@oroszi.net", - "url": "https://github.com/oroce" - } - ], - "license": "MIT", - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "underscore": "*", - "nodeunit": "*" - }, - "optionalDependencies": {}, - "scripts": { - "test": "nodeunit test.js" - }, - "gitHead": "bb11a43363a0f69e8ac014cb5376ce215ea1f8fd", - "homepage": "https://github.com/pvorb/node-clone", - "_id": "clone@0.1.19", - "_shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "_from": "clone@>=0.1.5 <0.2.0", - "_npmVersion": "1.4.14", - "_npmUser": { - "name": "pvorb", - "email": "paul@vorba.ch" - }, - "maintainers": [ - { - "name": "pvorb", - "email": "paul@vorb.de" - } - ], - "dist": { - "shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "tarball": "http://registry.npmjs.org/clone/-/clone-0.1.19.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz" -} diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js deleted file mode 100644 index cb3d16631..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js +++ /dev/null @@ -1,289 +0,0 @@ -if(module.parent === null) { - console.log('Run this test file with nodeunit:'); - console.log('$ nodeunit test.js'); -} - - -var clone = require('./'); -var util = require('util'); -var _ = require('underscore'); - - - -exports["clone string"] = function(test) { - test.expect(2); // how many tests? - - var a = "foo"; - test.strictEqual(clone(a), a); - a = ""; - test.strictEqual(clone(a), a); - - test.done(); -}; - - - -exports["clone number"] = function(test) { - test.expect(5); // how many tests? - - var a = 0; - test.strictEqual(clone(a), a); - a = 1; - test.strictEqual(clone(a), a); - a = -1000; - test.strictEqual(clone(a), a); - a = 3.1415927; - test.strictEqual(clone(a), a); - a = -3.1415927; - test.strictEqual(clone(a), a); - - test.done(); -}; - - - -exports["clone date"] = function(test) { - test.expect(3); // how many tests? - - var a = new Date; - var c = clone(a); - test.ok(a instanceof Date); - test.ok(c instanceof Date); - test.equal(c.getTime(), a.getTime()); - - test.done(); -}; - - - -exports["clone object"] = function(test) { - test.expect(2); // how many tests? - - var a = { foo: { bar: "baz" } }; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - - - -exports["clone array"] = function(test) { - test.expect(2); // how many tests? - - var a = [ - { foo: "bar" }, - "baz" - ]; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone buffer"] = function(test) { - test.expect(1); - - var a = new Buffer("this is a test buffer"); - var b = clone(a); - - // no underscore equal since it has no concept of Buffers - test.deepEqual(b, a); - test.done(); -}; - - - -exports["clone regexp"] = function(test) { - test.expect(5); - - var a = /abc123/gi; - var b = clone(a); - - test.deepEqual(b, a); - - var c = /a/g; - test.ok(c.lastIndex === 0); - - c.exec('123a456a'); - test.ok(c.lastIndex === 4); - - var d = clone(c); - test.ok(d.global); - test.ok(d.lastIndex === 4); - - test.done(); -}; - - -exports["clone object containing array"] = function(test) { - test.expect(2); // how many tests? - - var a = { - arr1: [ { a: '1234', b: '2345' } ], - arr2: [ { c: '345', d: '456' } ] - }; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - - - -exports["clone object with circular reference"] = function(test) { - test.expect(8); // how many tests? - - var _ = test.ok; - var c = [1, "foo", {'hello': 'bar'}, function() {}, false, [2]]; - var b = [c, 2, 3, 4]; - var a = {'b': b, 'c': c}; - a.loop = a; - a.loop2 = a; - c.loop = c; - c.aloop = a; - var aCopy = clone(a); - _(a != aCopy); - _(a.c != aCopy.c); - _(aCopy.c == aCopy.b[0]); - _(aCopy.c.loop.loop.aloop == aCopy); - _(aCopy.c[0] == a.c[0]); - - //console.log(util.inspect(aCopy, true, null) ); - //console.log("------------------------------------------------------------"); - //console.log(util.inspect(a, true, null) ); - _(eq(a, aCopy)); - aCopy.c[0] = 2; - _(!eq(a, aCopy)); - aCopy.c = "2"; - _(!eq(a, aCopy)); - //console.log("------------------------------------------------------------"); - //console.log(util.inspect(aCopy, true, null) ); - - function eq(x, y) { - return util.inspect(x, true, null) === util.inspect(y, true, null); - } - - test.done(); -}; - - - -exports['clonePrototype'] = function(test) { - test.expect(3); // how many tests? - - var a = { - a: "aaa", - x: 123, - y: 45.65 - }; - var b = clone.clonePrototype(a); - - test.strictEqual(b.a, a.a); - test.strictEqual(b.x, a.x); - test.strictEqual(b.y, a.y); - - test.done(); -} - -exports['cloneWithinNewVMContext'] = function(test) { - test.expect(3); - var vm = require('vm'); - var ctx = vm.createContext({ clone: clone }); - var script = "clone( {array: [1, 2, 3], date: new Date(), regex: /^foo$/ig} );"; - var results = vm.runInContext(script, ctx); - test.ok(results.array instanceof Array); - test.ok(results.date instanceof Date); - test.ok(results.regex instanceof RegExp); - test.done(); -} - -exports['cloneObjectWithNoConstructor'] = function(test) { - test.expect(3); - var n = null; - var a = { foo: 'bar' }; - a.__proto__ = n; - test.ok(typeof a === 'object'); - test.ok(typeof a !== null); - var b = clone(a); - test.ok(a.foo, b.foo); - test.done(); -} - -exports['clone object with depth argument'] = function (test) { - test.expect(6); - var a = { - foo: { - bar : { - baz : 'qux' - } - } - }; - var b = clone(a, false, 1); - test.deepEqual(b, a); - test.notEqual(b, a); - test.strictEqual(b.foo, a.foo); - - b = clone(a, true, 2); - test.deepEqual(b, a); - test.notEqual(b.foo, a.foo); - test.strictEqual(b.foo.bar, a.foo.bar); - test.done(); -} - -exports['maintain prototype chain in clones'] = function (test) { - test.expect(1); - function Constructor() {} - var a = new Constructor(); - var b = clone(a); - test.strictEqual(Object.getPrototypeOf(a), Object.getPrototypeOf(b)); - test.done(); -} - -exports['parent prototype is overriden with prototype provided'] = function (test) { - test.expect(1); - function Constructor() {} - var a = new Constructor(); - var b = clone(a, true, Infinity, null); - test.strictEqual(b.__defineSetter__, undefined); - test.done(); -} - -exports['clone object with null children'] = function(test) { - test.expect(1); - var a = { - foo: { - bar: null, - baz: { - qux: false - } - } - }; - var b = clone(a); - test.deepEqual(b, a); - test.done(); -} - -exports['clone instance with getter'] = function(test) { - test.expect(1); - function Ctor() {}; - Object.defineProperty(Ctor.prototype, 'prop', { - configurable: true, - enumerable: true, - get: function() { - return 'value'; - } - }); - - var a = new Ctor(); - var b = clone(a); - - test.strictEqual(b.prop, 'value'); - test.done(); -};
\ No newline at end of file diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json deleted file mode 100644 index fdd074d0f..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "defaults", - "version": "1.0.2", - "description": "merge single level defaults over a config object", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/tmpvar/defaults.git" - }, - "keywords": [ - "config", - "defaults" - ], - "author": { - "name": "Elijah Insua", - "email": "tmpvar@gmail.com" - }, - "license": "MIT", - "dependencies": { - "clone": "~0.1.5" - }, - "devDependencies": { - "tap": "~0.4.0" - }, - "gitHead": "22c57d1f87a2f03c1f9d21bd39c67db8553a0064", - "bugs": { - "url": "https://github.com/tmpvar/defaults/issues" - }, - "homepage": "https://github.com/tmpvar/defaults", - "_id": "defaults@1.0.2", - "_shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", - "_from": "defaults@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "tmpvar", - "email": "tmpvar@gmail.com" - }, - "maintainers": [ - { - "name": "tmpvar", - "email": "tmpvar@gmail.com" - } - ], - "dist": { - "shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", - "tarball": "http://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz" -} diff --git a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js b/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js deleted file mode 100644 index 60e0ffba8..000000000 --- a/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var defaults = require('./'), - test = require('tap').test; - -test("ensure options is an object", function(t) { - var options = defaults(false, { a : true }); - t.ok(options.a); - t.end() -}); - -test("ensure defaults override keys", function(t) { - var result = defaults({}, { a: false, b: true }); - t.ok(result.b, 'b merges over undefined'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defined keys are not overwritten", function(t) { - var result = defaults({ b: false }, { a: false, b: true }); - t.equal(result.b, false, 'b not merged'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defaults clone nested objects", function(t) { - var d = { a: [1,2,3], b: { hello : 'world' } }; - var result = defaults({}, d); - t.equal(result.a.length, 3, 'objects should be clones'); - t.ok(result.a !== d.a, 'objects should be clones'); - - t.equal(Object.keys(result.b).length, 1, 'objects should be clones'); - t.ok(result.b !== d.b, 'objects should be clones'); - t.end(); -}); - diff --git a/node_modules/columnify/node_modules/wcwidth/package.json b/node_modules/columnify/node_modules/wcwidth/package.json deleted file mode 100644 index 4744d9dc3..000000000 --- a/node_modules/columnify/node_modules/wcwidth/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "wcwidth", - "version": "1.0.0", - "description": "Port of C's wcwidth() and wcswidth()", - "author": { - "name": "Tim Oxley" - }, - "contributors": [ - { - "name": "Woong Jun", - "email": "woong.jun@gmail.com", - "url": "http://code.woong.org/" - } - ], - "main": "index.js", - "dependencies": { - "defaults": "^1.0.0" - }, - "devDependencies": { - "tape": "^2.13.4" - }, - "license": "MIT", - "keywords": [ - "wide character", - "wc", - "wide character string", - "wcs", - "terminal", - "width", - "wcwidth", - "wcswidth" - ], - "directories": { - "doc": "docs", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "gitHead": "5bc3aafd45c89f233c27b9479c18a23ca91ba660", - "_id": "wcwidth@1.0.0", - "_shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "_from": "wcwidth@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "timoxley", - "email": "secoif@gmail.com" - }, - "maintainers": [ - { - "name": "timoxley", - "email": "secoif@gmail.com" - } - ], - "dist": { - "shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "tarball": "http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" - }, - "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" -} diff --git a/node_modules/columnify/node_modules/wcwidth/test/index.js b/node_modules/columnify/node_modules/wcwidth/test/index.js deleted file mode 100644 index 5180599a2..000000000 --- a/node_modules/columnify/node_modules/wcwidth/test/index.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict" - -var wcwidth = require('../') -var test = require('tape') - -test('handles regular strings', function(t) { - t.strictEqual(wcwidth('abc'), 3) - t.end() -}) - -test('handles multibyte strings', function(t) { - t.strictEqual(wcwidth('字的模块'), 8) - t.end() -}) - -test('handles multibyte characters mixed with regular characters', function(t) { - t.strictEqual(wcwidth('abc 字的模块'), 12) - t.end() -}) - -test('ignores control characters e.g. \\n', function(t) { - t.strictEqual(wcwidth('abc\n字的模块\ndef'), 14) - t.end() -}) - -test('ignores bad input', function(t) { - t.strictEqual(wcwidth(''), 0) - t.strictEqual(wcwidth(3), 0) - t.strictEqual(wcwidth({}), 0) - t.strictEqual(wcwidth([]), 0) - t.strictEqual(wcwidth(), 0) - t.end() -}) - -test('ignores nul (charcode 0)', function(t) { - t.strictEqual(wcwidth(String.fromCharCode(0)), 0) - t.end() -}) - -test('ignores nul mixed with chars', function(t) { - t.strictEqual(wcwidth('a' + String.fromCharCode(0) + '\n字的'), 5) - t.end() -}) - -test('can have custom value for nul', function(t) { - t.strictEqual(wcwidth.config({ - nul: 10 - })(String.fromCharCode(0) + 'a字的'), 15) - t.end() -}) - -test('can have custom control char value', function(t) { - t.strictEqual(wcwidth.config({ - control: 1 - })('abc\n字的模块\ndef'), 16) - t.end() -}) - -test('negative custom control chars == -1', function(t) { - t.strictEqual(wcwidth.config({ - control: -1 - })('abc\n字的模块\ndef'), -1) - t.end() -}) diff --git a/node_modules/columnify/package.json b/node_modules/columnify/package.json index 195a7f092..a790a09c2 100644 --- a/node_modules/columnify/package.json +++ b/node_modules/columnify/package.json @@ -1,67 +1,91 @@ { - "name": "columnify", - "version": "1.5.1", - "description": "Render data in text columns. supports in-column text-wrap.", - "main": "columnify.js", - "scripts": { - "pretest": "npm prune", - "test": "make prepublish && tape test/*.js | tap-spec", - "bench": "npm test && node bench", - "prepublish": "make prepublish" + "_args": [ + [ + "columnify@~1.5.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "columnify@>=1.5.1 <1.6.0", + "_id": "columnify@1.5.1", + "_inCache": true, + "_location": "/columnify", + "_nodeVersion": "0.10.36", + "_npmUser": { + "email": "secoif@gmail.com", + "name": "timoxley" }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "columnify", + "raw": "columnify@~1.5.1", + "rawSpec": "~1.5.1", + "scope": null, + "spec": ">=1.5.1 <1.6.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.1.tgz", + "_shasum": "15fdda803a3875f87f9d302b3bc828932d664003", + "_shrinkwrap": null, + "_spec": "columnify@~1.5.1", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Tim Oxley" }, - "license": "MIT", + "bugs": { + "url": "https://github.com/timoxley/columnify/issues" + }, + "dependencies": { + "strip-ansi": "^2.0.1", + "wcwidth": "^1.0.0" + }, + "description": "Render data in text columns. supports in-column text-wrap.", "devDependencies": { "babel": "^5.0.10", "chalk": "^1.0.0", "tap-spec": "^3.0.0", "tape": "^4.0.0" }, - "repository": { - "type": "git", - "url": "git://github.com/timoxley/columnify.git" + "directories": { + "test": "test" }, + "dist": { + "shasum": "15fdda803a3875f87f9d302b3bc828932d664003", + "tarball": "http://registry.npmjs.org/columnify/-/columnify-1.5.1.tgz" + }, + "gitHead": "1e5f5ec9478d7dbd1e3d1d74343b552da7ae01ba", + "homepage": "https://github.com/timoxley/columnify", "keywords": [ - "column", - "text", "ansi", + "column", "console", + "table", "terminal", - "wrap", - "table" + "text", + "wrap" ], - "bugs": { - "url": "https://github.com/timoxley/columnify/issues" - }, - "homepage": "https://github.com/timoxley/columnify", - "dependencies": { - "strip-ansi": "^2.0.1", - "wcwidth": "^1.0.0" - }, - "directories": { - "test": "test" - }, - "gitHead": "1e5f5ec9478d7dbd1e3d1d74343b552da7ae01ba", - "_id": "columnify@1.5.1", - "_shasum": "15fdda803a3875f87f9d302b3bc828932d664003", - "_from": "columnify@>=1.5.1 <1.6.0", - "_npmVersion": "2.7.6", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "timoxley", - "email": "secoif@gmail.com" - }, + "license": "MIT", + "main": "columnify.js", "maintainers": [ { "name": "timoxley", "email": "secoif@gmail.com" } ], - "dist": { - "shasum": "15fdda803a3875f87f9d302b3bc828932d664003", - "tarball": "http://registry.npmjs.org/columnify/-/columnify-1.5.1.tgz" + "name": "columnify", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/timoxley/columnify.git" + }, + "scripts": { + "bench": "npm test && node bench", + "prepublish": "make prepublish", + "pretest": "npm prune", + "test": "make prepublish && tape test/*.js | tap-spec" }, - "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.1.tgz" + "version": "1.5.1" } |