--- /dev/null
+'use strict';
+var objectAssign = require('object-assign');
+var escapeStringRegexp = require('escape-string-regexp');
+var platform = process.platform;
+
+var main = {
+ tick: '✔',
+ cross: '✖',
+ star: '★',
+ square: '▇',
+ squareSmall: '◻',
+ squareSmallFilled: '◼',
+ play: '▶',
+ circle: '◯',
+ circleFilled: '◉',
+ circleDotted: '◌',
+ circleDouble: '◎',
+ circleCircle: 'ⓞ',
+ circleCross: 'ⓧ',
+ circlePipe: 'Ⓘ',
+ circleQuestionMark: '?⃝',
+ bullet: '●',
+ dot: '․',
+ line: '─',
+ ellipsis: '…',
+ pointer: '❯',
+ pointerSmall: '›',
+ info: 'ℹ',
+ warning: '⚠',
+ hamburger: '☰',
+ smiley: '㋡',
+ mustache: '෴',
+ heart: '♥',
+ arrowUp: '↑',
+ arrowDown: '↓',
+ arrowLeft: '←',
+ arrowRight: '→',
+ radioOn: '◉',
+ radioOff: '◯',
+ checkboxOn: '☒',
+ checkboxOff: '☐',
+ checkboxCircleOn: 'ⓧ',
+ checkboxCircleOff: 'Ⓘ',
+ questionMarkPrefix: '?⃝',
+ oneHalf: '½',
+ oneThird: '⅓',
+ oneQuarter: '¼',
+ oneFifth: '⅕',
+ oneSixth: '⅙',
+ oneSeventh: '⅐',
+ oneEighth: '⅛',
+ oneNinth: '⅑',
+ oneTenth: '⅒',
+ twoThirds: '⅔',
+ twoFifths: '⅖',
+ threeQuarters: '¾',
+ threeFifths: '⅗',
+ threeEighths: '⅜',
+ fourFifths: '⅘',
+ fiveSixths: '⅚',
+ fiveEighths: '⅝',
+ sevenEighths: '⅞'
+};
+
+var win = {
+ tick: '√',
+ cross: '×',
+ star: '*',
+ square: '█',
+ squareSmall: '[ ]',
+ squareSmallFilled: '[█]',
+ play: '►',
+ circle: '( )',
+ circleFilled: '(*)',
+ circleDotted: '( )',
+ circleDouble: '( )',
+ circleCircle: '(○)',
+ circleCross: '(×)',
+ circlePipe: '(│)',
+ circleQuestionMark: '(?)',
+ bullet: '*',
+ dot: '.',
+ line: '─',
+ ellipsis: '...',
+ pointer: '>',
+ pointerSmall: '»',
+ info: 'i',
+ warning: '‼',
+ hamburger: '≡',
+ smiley: '☺',
+ mustache: '┌─┐',
+ heart: main.heart,
+ arrowUp: main.arrowUp,
+ arrowDown: main.arrowDown,
+ arrowLeft: main.arrowLeft,
+ arrowRight: main.arrowRight,
+ radioOn: '(*)',
+ radioOff: '( )',
+ checkboxOn: '[×]',
+ checkboxOff: '[ ]',
+ checkboxCircleOn: '(×)',
+ checkboxCircleOff: '( )',
+ questionMarkPrefix: '?',
+ oneHalf: '1/2',
+ oneThird: '1/3',
+ oneQuarter: '1/4',
+ oneFifth: '1/5',
+ oneSixth: '1/6',
+ oneSeventh: '1/7',
+ oneEighth: '1/8',
+ oneNinth: '1/9',
+ oneTenth: '1/10',
+ twoThirds: '2/3',
+ twoFifths: '2/5',
+ threeQuarters: '3/4',
+ threeFifths: '3/5',
+ threeEighths: '3/8',
+ fourFifths: '4/5',
+ fiveSixths: '5/6',
+ fiveEighths: '5/8',
+ sevenEighths: '7/8'
+};
+
+if (platform === 'linux') {
+ // the main one doesn't look that good on Ubuntu
+ main.questionMarkPrefix = '?';
+}
+
+var figures = platform === 'win32' ? win : main;
+
+var fn = function (str) {
+ if (figures === main) {
+ return str;
+ }
+
+ Object.keys(main).forEach(function (key) {
+ if (main[key] === figures[key]) {
+ return;
+ }
+
+ str = str.replace(new RegExp(escapeStringRegexp(main[key]), 'g'), figures[key]);
+ });
+
+ return str;
+};
+
+module.exports = objectAssign(fn, figures);