UNPKG

json-faker

Version:

This application creates json with fake contextual data. It takes input as a template.

1,973 lines (1,701 loc) 1.21 MB
var jsonFaker = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 962); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { var mersenne = __webpack_require__(959); /** * * @namespace faker.random */ function Random (faker, seed) { // Use a user provided seed if it exists if (seed) { if (Array.isArray(seed) && seed.length) { mersenne.seed_array(seed); } else { mersenne.seed(seed); } } /** * returns a single random number based on a max number or range * * @method faker.random.number * @param {mixed} options */ this.number = function (options) { if (typeof options === "number") { options = { max: options }; } options = options || {}; if (typeof options.min === "undefined") { options.min = 0; } if (typeof options.max === "undefined") { options.max = 99999; } if (typeof options.precision === "undefined") { options.precision = 1; } // Make the range inclusive of the max value var max = options.max; if (max >= 0) { max += options.precision; } var randomNumber = options.precision * Math.floor( mersenne.rand(max / options.precision, options.min / options.precision)); return randomNumber; } /** * takes an array and returns a random element of the array * * @method faker.random.arrayElement * @param {array} array */ this.arrayElement = function (array) { array = array || ["a", "b", "c"]; var r = faker.random.number({ max: array.length - 1 }); return array[r]; } /** * takes an object and returns the randomly key or value * * @method faker.random.objectElement * @param {object} object * @param {mixed} field */ this.objectElement = function (object, field) { object = object || { "foo": "bar", "too": "car" }; var array = Object.keys(object); var key = faker.random.arrayElement(array); return field === "key" ? key : object[key]; } /** * uuid * * @method faker.random.uuid */ this.uuid = function () { var self = this; var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; var replacePlaceholders = function (placeholder) { var random = self.number({ min: 0, max: 15 }); var value = placeholder == 'x' ? random : (random &0x3 | 0x8); return value.toString(16); }; return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); } /** * boolean * * @method faker.random.boolean */ this.boolean = function () { return !!faker.random.number(1) } // TODO: have ability to return specific type of word? As in: noun, adjective, verb, etc /** * word * * @method faker.random.word * @param {string} type */ this.word = function randomWord (type) { var wordMethods = [ 'commerce.department', 'commerce.productName', 'commerce.productAdjective', 'commerce.productMaterial', 'commerce.product', 'commerce.color', 'company.catchPhraseAdjective', 'company.catchPhraseDescriptor', 'company.catchPhraseNoun', 'company.bsAdjective', 'company.bsBuzz', 'company.bsNoun', 'address.streetSuffix', 'address.county', 'address.country', 'address.state', 'finance.accountName', 'finance.transactionType', 'finance.currencyName', 'hacker.noun', 'hacker.verb', 'hacker.adjective', 'hacker.ingverb', 'hacker.abbreviation', 'name.jobDescriptor', 'name.jobArea', 'name.jobType']; // randomly pick from the many faker methods that can generate words var randomWordMethod = faker.random.arrayElement(wordMethods); return faker.fake('{{' + randomWordMethod + '}}'); } /** * randomWords * * @method faker.random.words * @param {number} count defaults to a random value between 1 and 3 */ this.words = function randomWords (count) { var words = []; if (typeof count === "undefined") { count = faker.random.number({min:1, max: 3}); } for (var i = 0; i<count; i++) { words.push(faker.random.word()); } return words.join(' '); } /** * locale * * @method faker.random.image */ this.image = function randomImage () { return faker.image.image(); } /** * locale * * @method faker.random.locale */ this.locale = function randomLocale () { return faker.random.arrayElement(Object.keys(faker.locales)); }; /** * alphaNumeric * * @method faker.random.alphaNumeric */ this.alphaNumeric = function alphaNumeric() { return faker.random.arrayElement(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]); } return this; } module['exports'] = Random; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { // since we are requiring the top level of faker, load all locales by default var Faker = __webpack_require__(12); var faker = new Faker({ locales: __webpack_require__(14) }); module['exports'] = faker; /***/ }), /* 2 */ /***/ (function(module, exports) { /***/ }), /* 3 */ /***/ (function(module, exports) { /** * * @namespace faker.address */ function Address (faker) { var f = faker.fake, Helpers = faker.helpers; /** * Generates random zipcode from format. If format is not specified, the * locale's zip format is used. * * @method faker.address.zipCode * @param {String} format */ this.zipCode = function(format) { // if zip format is not specified, use the zip format defined for the locale if (typeof format === 'undefined') { var localeFormat = faker.definitions.address.postcode; if (typeof localeFormat === 'string') { format = localeFormat; } else { format = faker.random.arrayElement(localeFormat); } } return Helpers.replaceSymbols(format); } /** * Generates a random localized city name. The format string can contain any * method provided by faker wrapped in `{{}}`, e.g. `{{name.firstName}}` in * order to build the city name. * * If no format string is provided one of the following is randomly used: * * * `{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}` * * `{{address.cityPrefix}} {{name.firstName}}` * * `{{name.firstName}}{{address.citySuffix}}` * * `{{name.lastName}}{{address.citySuffix}}` * * @method faker.address.city * @param {String} format */ this.city = function (format) { var formats = [ '{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}', '{{address.cityPrefix}} {{name.firstName}}', '{{name.firstName}}{{address.citySuffix}}', '{{name.lastName}}{{address.citySuffix}}' ]; if (typeof format !== "number") { format = faker.random.number(formats.length - 1); } return f(formats[format]); } /** * Return a random localized city prefix * @method faker.address.cityPrefix */ this.cityPrefix = function () { return faker.random.arrayElement(faker.definitions.address.city_prefix); } /** * Return a random localized city suffix * * @method faker.address.citySuffix */ this.citySuffix = function () { return faker.random.arrayElement(faker.definitions.address.city_suffix); } /** * Returns a random localized street name * * @method faker.address.streetName */ this.streetName = function () { var result; var suffix = faker.address.streetSuffix(); if (suffix !== "") { suffix = " " + suffix } switch (faker.random.number(1)) { case 0: result = faker.name.lastName() + suffix; break; case 1: result = faker.name.firstName() + suffix; break; } return result; } // // TODO: change all these methods that accept a boolean to instead accept an options hash. // /** * Returns a random localized street address * * @method faker.address.streetAddress * @param {Boolean} useFullAddress */ this.streetAddress = function (useFullAddress) { if (useFullAddress === undefined) { useFullAddress = false; } var address = ""; switch (faker.random.number(2)) { case 0: address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName(); break; case 1: address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName(); break; case 2: address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName(); break; } return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address; } /** * streetSuffix * * @method faker.address.streetSuffix */ this.streetSuffix = function () { return faker.random.arrayElement(faker.definitions.address.street_suffix); } /** * streetPrefix * * @method faker.address.streetPrefix */ this.streetPrefix = function () { return faker.random.arrayElement(faker.definitions.address.street_prefix); } /** * secondaryAddress * * @method faker.address.secondaryAddress */ this.secondaryAddress = function () { return Helpers.replaceSymbolWithNumber(faker.random.arrayElement( [ 'Apt. ###', 'Suite ###' ] )); } /** * county * * @method faker.address.county */ this.county = function () { return faker.random.arrayElement(faker.definitions.address.county); } /** * country * * @method faker.address.country */ this.country = function () { return faker.random.arrayElement(faker.definitions.address.country); } /** * countryCode * * @method faker.address.countryCode */ this.countryCode = function () { return faker.random.arrayElement(faker.definitions.address.country_code); } /** * state * * @method faker.address.state * @param {Boolean} useAbbr */ this.state = function (useAbbr) { return faker.random.arrayElement(faker.definitions.address.state); } /** * stateAbbr * * @method faker.address.stateAbbr */ this.stateAbbr = function () { return faker.random.arrayElement(faker.definitions.address.state_abbr); } /** * latitude * * @method faker.address.latitude */ this.latitude = function () { return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4); } /** * longitude * * @method faker.address.longitude */ this.longitude = function () { return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4); } return this; } module.exports = Address; /***/ }), /* 4 */ /***/ (function(module, exports) { /** * * @namespace faker.commerce */ var Commerce = function (faker) { var self = this; /** * color * * @method faker.commerce.color */ self.color = function() { return faker.random.arrayElement(faker.definitions.commerce.color); }; /** * department * * @method faker.commerce.department * @param {number} max * @param {number} fixedAmount */ self.department = function(max, fixedAmount) { return faker.random.arrayElement(faker.definitions.commerce.department); }; /** * productName * * @method faker.commerce.productName */ self.productName = function() { return faker.commerce.productAdjective() + " " + faker.commerce.productMaterial() + " " + faker.commerce.product(); }; /** * price * * @method faker.commerce.price * @param {number} min * @param {number} max * @param {number} dec * @param {string} symbol */ self.price = function(min, max, dec, symbol) { min = min || 0; max = max || 1000; dec = dec || 2; symbol = symbol || ''; if(min < 0 || max < 0) { return symbol + 0.00; } var randValue = faker.random.number({ max: max, min: min }); return symbol + (Math.round(randValue * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); }; /* self.categories = function(num) { var categories = []; do { var category = faker.random.arrayElement(faker.definitions.commerce.department); if(categories.indexOf(category) === -1) { categories.push(category); } } while(categories.length < num); return categories; }; */ /* self.mergeCategories = function(categories) { var separator = faker.definitions.separator || " &"; // TODO: find undefined here categories = categories || faker.definitions.commerce.categories; var commaSeparated = categories.slice(0, -1).join(', '); return [commaSeparated, categories[categories.length - 1]].join(separator + " "); }; */ /** * productAdjective * * @method faker.commerce.productAdjective */ self.productAdjective = function() { return faker.random.arrayElement(faker.definitions.commerce.product_name.adjective); }; /** * productMaterial * * @method faker.commerce.productMaterial */ self.productMaterial = function() { return faker.random.arrayElement(faker.definitions.commerce.product_name.material); }; /** * product * * @method faker.commerce.product */ self.product = function() { return faker.random.arrayElement(faker.definitions.commerce.product_name.product); } return self; }; module['exports'] = Commerce; /***/ }), /* 5 */ /***/ (function(module, exports) { /** * * @namespace faker.company */ var Company = function (faker) { var self = this; var f = faker.fake; /** * suffixes * * @method faker.company.suffixes */ this.suffixes = function () { // Don't want the source array exposed to modification, so return a copy return faker.definitions.company.suffix.slice(0); } /** * companyName * * @method faker.company.companyName * @param {string} format */ this.companyName = function (format) { var formats = [ '{{name.lastName}} {{company.companySuffix}}', '{{name.lastName}} - {{name.lastName}}', '{{name.lastName}}, {{name.lastName}} and {{name.lastName}}' ]; if (typeof format !== "number") { format = faker.random.number(formats.length - 1); } return f(formats[format]); } /** * companySuffix * * @method faker.company.companySuffix */ this.companySuffix = function () { return faker.random.arrayElement(faker.company.suffixes()); } /** * catchPhrase * * @method faker.company.catchPhrase */ this.catchPhrase = function () { return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}') } /** * bs * * @method faker.company.bs */ this.bs = function () { return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}'); } /** * catchPhraseAdjective * * @method faker.company.catchPhraseAdjective */ this.catchPhraseAdjective = function () { return faker.random.arrayElement(faker.definitions.company.adjective); } /** * catchPhraseDescriptor * * @method faker.company.catchPhraseDescriptor */ this.catchPhraseDescriptor = function () { return faker.random.arrayElement(faker.definitions.company.descriptor); } /** * catchPhraseNoun * * @method faker.company.catchPhraseNoun */ this.catchPhraseNoun = function () { return faker.random.arrayElement(faker.definitions.company.noun); } /** * bsAdjective * * @method faker.company.bsAdjective */ this.bsAdjective = function () { return faker.random.arrayElement(faker.definitions.company.bs_adjective); } /** * bsBuzz * * @method faker.company.bsBuzz */ this.bsBuzz = function () { return faker.random.arrayElement(faker.definitions.company.bs_verb); } /** * bsNoun * * @method faker.company.bsNoun */ this.bsNoun = function () { return faker.random.arrayElement(faker.definitions.company.bs_noun); } } module['exports'] = Company; /***/ }), /* 6 */ /***/ (function(module, exports) { /** * * @namespace faker.date */ var _Date = function (faker) { var self = this; /** * past * * @method faker.date.past * @param {number} years * @param {date} refDate */ self.past = function (years, refDate) { var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); var range = { min: 1000, max: (years || 1) * 365 * 24 * 3600 * 1000 }; var past = date.getTime(); past -= faker.random.number(range); // some time from now to N years ago, in milliseconds date.setTime(past); return date; }; /** * future * * @method faker.date.future * @param {number} years * @param {date} refDate */ self.future = function (years, refDate) { var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); var range = { min: 1000, max: (years || 1) * 365 * 24 * 3600 * 1000 }; var future = date.getTime(); future += faker.random.number(range); // some time from now to N years later, in milliseconds date.setTime(future); return date; }; /** * between * * @method faker.date.between * @param {date} from * @param {date} to */ self.between = function (from, to) { var fromMilli = Date.parse(from); var dateOffset = faker.random.number(Date.parse(to) - fromMilli); var newDate = new Date(fromMilli + dateOffset); return newDate; }; /** * recent * * @method faker.date.recent * @param {number} days */ self.recent = function (days) { var date = new Date(); var range = { min: 1000, max: (days || 1) * 24 * 3600 * 1000 }; var future = date.getTime(); future -= faker.random.number(range); // some time from now to N days ago, in milliseconds date.setTime(future); return date; }; /** * month * * @method faker.date.month * @param {object} options */ self.month = function (options) { options = options || {}; var type = 'wide'; if (options.abbr) { type = 'abbr'; } if (options.context && typeof faker.definitions.date.month[type + '_context'] !== 'undefined') { type += '_context'; } var source = faker.definitions.date.month[type]; return faker.random.arrayElement(source); }; /** * weekday * * @param {object} options * @method faker.date.weekday */ self.weekday = function (options) { options = options || {}; var type = 'wide'; if (options.abbr) { type = 'abbr'; } if (options.context && typeof faker.definitions.date.weekday[type + '_context'] !== 'undefined') { type += '_context'; } var source = faker.definitions.date.weekday[type]; return faker.random.arrayElement(source); }; return self; }; module['exports'] = _Date; /***/ }), /* 7 */ /***/ (function(module, exports) { /* fake.js - generator method for combining faker methods based on string input */ function Fake (faker) { /** * Generator method for combining faker methods based on string input * * __Example:__ * * ``` * console.log(faker.fake('{{name.lastName}}, {{name.firstName}} {{name.suffix}}')); * //outputs: "Marks, Dean Sr." * ``` * * This will interpolate the format string with the value of methods * [name.lastName]{@link faker.name.lastName}, [name.firstName]{@link faker.name.firstName}, * and [name.suffix]{@link faker.name.suffix} * * @method faker.fake * @param {string} str */ this.fake = function fake (str) { // setup default response as empty string var res = ''; // if incoming str parameter is not provided, return error message if (typeof str !== 'string' || str.length === 0) { res = 'string parameter is required!'; return res; } // find first matching {{ and }} var start = str.search('{{'); var end = str.search('}}'); // if no {{ and }} is found, we are done if (start === -1 && end === -1) { return str; } // console.log('attempting to parse', str); // extract method name from between the {{ }} that we found // for example: {{name.firstName}} var token = str.substr(start + 2, end - start - 2); var method = token.replace('}}', '').replace('{{', ''); // console.log('method', method) // extract method parameters var regExp = /\(([^)]+)\)/; var matches = regExp.exec(method); var parameters = ''; if (matches) { method = method.replace(regExp, ''); parameters = matches[1]; } // split the method into module and function var parts = method.split('.'); if (typeof faker[parts[0]] === "undefined") { throw new Error('Invalid module: ' + parts[0]); } if (typeof faker[parts[0]][parts[1]] === "undefined") { throw new Error('Invalid method: ' + parts[0] + "." + parts[1]); } // assign the function from the module.function namespace var fn = faker[parts[0]][parts[1]]; // If parameters are populated here, they are always going to be of string type // since we might actually be dealing with an object or array, // we always attempt to the parse the incoming parameters into JSON var params; // Note: we experience a small performance hit here due to JSON.parse try / catch // If anyone actually needs to optimize this specific code path, please open a support issue on github try { params = JSON.parse(parameters) } catch (err) { // since JSON.parse threw an error, assume parameters was actually a string params = parameters; } var result; if (typeof params === "string" && params.length === 0) { result = fn.call(this); } else { result = fn.call(this, params); } // replace the found tag with the returned fake value res = str.replace('{{' + token + '}}', result); // return the response recursively until we are done finding all tags return fake(res); } return this; } module['exports'] = Fake; /***/ }), /* 8 */ /***/ (function(module, exports) { /** * * @namespace faker.finance */ var Finance = function (faker) { var Helpers = faker.helpers, self = this; /** * account * * @method faker.finance.account * @param {number} length */ self.account = function (length) { length = length || 8; var template = ''; for (var i = 0; i < length; i++) { template = template + '#'; } length = null; return Helpers.replaceSymbolWithNumber(template); } /** * accountName * * @method faker.finance.accountName */ self.accountName = function () { return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' '); } /** * mask * * @method faker.finance.mask * @param {number} length * @param {boolean} parens * @param {boolean} elipsis */ self.mask = function (length, parens, elipsis) { //set defaults length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length; parens = (parens === null) ? true : parens; elipsis = (elipsis === null) ? true : elipsis; //create a template for length var template = ''; for (var i = 0; i < length; i++) { template = template + '#'; } //prefix with elipsis template = (elipsis) ? ['...', template].join('') : template; template = (parens) ? ['(', template, ')'].join('') : template; //generate random numbers template = Helpers.replaceSymbolWithNumber(template); return template; } //min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc //NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol /** * amount * * @method faker.finance.amount * @param {number} min * @param {number} max * @param {number} dec * @param {string} symbol */ self.amount = function (min, max, dec, symbol) { min = min || 0; max = max || 1000; dec = dec || 2; symbol = symbol || ''; var randValue = faker.random.number({ max: max, min: min }); return symbol + (Math.round(randValue * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); } /** * transactionType * * @method faker.finance.transactionType */ self.transactionType = function () { return Helpers.randomize(faker.definitions.finance.transaction_type); } /** * currencyCode * * @method faker.finance.currencyCode */ self.currencyCode = function () { return faker.random.objectElement(faker.definitions.finance.currency)['code']; } /** * currencyName * * @method faker.finance.currencyName */ self.currencyName = function () { return faker.random.objectElement(faker.definitions.finance.currency, 'key'); } /** * currencySymbol * * @method faker.finance.currencySymbol */ self.currencySymbol = function () { var symbol; while (!symbol) { symbol = faker.random.objectElement(faker.definitions.finance.currency)['symbol']; } return symbol; } /** * bitcoinAddress * * @method faker.finance.bitcoinAddress */ self.bitcoinAddress = function () { var addressLength = faker.random.number({ min: 27, max: 34 }); var address = faker.random.arrayElement(['1', '3']); for (var i = 0; i < addressLength - 1; i++) address += faker.random.alphaNumeric().toUpperCase(); return address; } } module['exports'] = Finance; /***/ }), /* 9 */ /***/ (function(module, exports) { /** * * @namespace faker.hacker */ var Hacker = function (faker) { var self = this; /** * abbreviation * * @method faker.hacker.abbreviation */ self.abbreviation = function () { return faker.random.arrayElement(faker.definitions.hacker.abbreviation); }; /** * adjective * * @method faker.hacker.adjective */ self.adjective = function () { return faker.random.arrayElement(faker.definitions.hacker.adjective); }; /** * noun * * @method faker.hacker.noun */ self.noun = function () { return faker.random.arrayElement(faker.definitions.hacker.noun); }; /** * verb * * @method faker.hacker.verb */ self.verb = function () { return faker.random.arrayElement(faker.definitions.hacker.verb); }; /** * ingverb * * @method faker.hacker.ingverb */ self.ingverb = function () { return faker.random.arrayElement(faker.definitions.hacker.ingverb); }; /** * phrase * * @method faker.hacker.phrase */ self.phrase = function () { var data = { abbreviation: self.abbreviation, adjective: self.adjective, ingverb: self.ingverb, noun: self.noun, verb: self.verb }; var phrase = faker.random.arrayElement([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!", "We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!", "Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!", "You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!", "Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!", "The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!", "{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!", "I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!" ]); return faker.helpers.mustache(phrase, data); }; return self; }; module['exports'] = Hacker; /***/ }), /* 10 */ /***/ (function(module, exports) { /** * * @namespace faker.helpers */ var Helpers = function (faker) { var self = this; /** * backword-compatibility * * @method faker.helpers.randomize * @param {array} array */ self.randomize = function (array) { array = array || ["a", "b", "c"]; return faker.random.arrayElement(array); }; /** * slugifies string * * @method faker.helpers.slugify * @param {string} string */ self.slugify = function (string) { string = string || ""; return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); }; /** * parses string for a symbol and replace it with a random number from 1-10 * * @method faker.helpers.replaceSymbolWithNumber * @param {string} string * @param {string} symbol defaults to `"#"` */ self.replaceSymbolWithNumber = function (string, symbol) { string = string || ""; // default symbol is '#' if (symbol === undefined) { symbol = '#'; } var str = ''; for (var i = 0; i < string.length; i++) { if (string.charAt(i) == symbol) { str += faker.random.number(9); } else { str += string.charAt(i); } } return str; }; /** * parses string for symbols (numbers or letters) and replaces them appropriately * * @method faker.helpers.replaceSymbols * @param {string} string */ self.replaceSymbols = function (string) { string = string || ""; var alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] var str = ''; for (var i = 0; i < string.length; i++) { if (string.charAt(i) == "#") { str += faker.random.number(9); } else if (string.charAt(i) == "?") { str += faker.random.arrayElement(alpha); } else { str += string.charAt(i); } } return str; }; /** * takes an array and returns it randomized * * @method faker.helpers.shuffle * @param {array} o */ self.shuffle = function (o) { o = o || ["a", "b", "c"]; for (var j, x, i = o.length-1; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; /** * mustache * * @method faker.helpers.mustache * @param {string} str * @param {object} data */ self.mustache = function (str, data) { if (typeof str === 'undefined') { return ''; } for(var p in data) { var re = new RegExp('{{' + p + '}}', 'g') str = str.replace(re, data[p]); } return str; }; /** * createCard * * @method faker.helpers.createCard */ self.createCard = function () { return { "name": faker.name.findName(), "username": faker.internet.userName(), "email": faker.internet.email(), "address": { "streetA": faker.address.streetName(), "streetB": faker.address.streetAddress(), "streetC": faker.address.streetAddress(true), "streetD": faker.address.secondaryAddress(), "city": faker.address.city(), "state": faker.address.state(), "country": faker.address.country(), "zipcode": faker.address.zipCode(), "geo": { "lat": faker.address.latitude(), "lng": faker.address.longitude() } }, "phone": faker.phone.phoneNumber(), "website": faker.internet.domainName(), "company": { "name": faker.company.companyName(), "catchPhrase": faker.company.catchPhrase(), "bs": faker.company.bs() }, "posts": [ { "words": faker.lorem.words(), "sentence": faker.lorem.sentence(), "sentences": faker.lorem.sentences(), "paragraph": faker.lorem.paragraph() }, { "words": faker.lorem.words(), "sentence": faker.lorem.sentence(), "sentences": faker.lorem.sentences(), "paragraph": faker.lorem.paragraph() }, { "words": faker.lorem.words(), "sentence": faker.lorem.sentence(), "sentences": faker.lorem.sentences(), "paragraph": faker.lorem.paragraph() } ], "accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()] }; }; /** * contextualCard * * @method faker.helpers.contextualCard */ self.contextualCard = function () { var name = faker.name.firstName(), userName = faker.internet.userName(name); return { "name": name, "username": userName, "avatar": faker.internet.avatar(), "email": faker.internet.email(userName), "dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")), "phone": faker.phone.phoneNumber(), "address": { "street": faker.address.streetName(true), "suite": faker.address.secondaryAddress(), "city": faker.address.city(), "zipcode": faker.address.zipCode(), "geo": { "lat": faker.address.latitude(), "lng": faker.address.longitude() } }, "website": faker.internet.domainName(), "company": { "name": faker.company.companyName(), "catchPhrase": faker.company.catchPhrase(), "bs": faker.company.bs() } }; }; /** * userCard * * @method faker.helpers.userCard */ self.userCard = function () { return { "name": faker.name.findName(), "username": faker.internet.userName(), "email": faker.internet.email(), "address": { "street": faker.address.streetName(true), "suite": faker.address.secondaryAddress(), "city": faker.address.city(), "zipcode": faker.address.zipCode(), "geo": { "lat": faker.address.latitude(), "lng": faker.address.longitude() } }, "phone": faker.phone.phoneNumber(), "website": faker.internet.domainName(), "company": { "name": faker.company.companyName(), "catchPhrase": faker.company.catchPhrase(), "bs": faker.company.bs() } }; }; /** * createTransaction * * @method faker.helpers.createTransaction */ self.createTransaction = function(){ return { "amount" : faker.finance.amount(), "date" : new Date(2012, 1, 2), //TODO: add a ranged date method "business": faker.company.companyName(), "name": [faker.finance.accountName(), faker.finance.mask()].join(' '), "type" : self.randomize(faker.definitions.finance.transaction_type), "account" : faker.finance.account() }; }; return self; }; /* String.prototype.capitalize = function () { //v1.0 return this.replace(/\w+/g, function (a) { return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase(); }); }; */ module['exports'] = Helpers; /***/ }), /* 11 */ /***/ (function(module, exports) { /** * * @namespace faker.image */ var Image = function (faker) { var self = this; /** * image * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.image */ self.image = function (width, height, randomize) { var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"]; return self[faker.random.arrayElement(categories)](width, height, randomize); }; /** * avatar * * @method faker.image.avatar */ self.avatar = function () { return faker.internet.avatar(); }; /** * imageUrl * * @param {number} width * @param {number} height * @param {string} category * @param {boolean} randomize * @method faker.image.imageUrl */ self.imageUrl = function (width, height, category, randomize) { var width = width || 640; var height = height || 480; var url ='http://lorempixel.com/' + width + '/' + height; if (typeof category !== 'undefined') { url += '/' + category; } if (randomize) { url += '?' + faker.random.number() } return url; }; /** * abstract * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.abstract */ self.abstract = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'abstract', randomize); }; /** * animals * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.animals */ self.animals = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'animals', randomize); }; /** * business * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.business */ self.business = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'business', randomize); }; /** * cats * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.cats */ self.cats = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'cats', randomize); }; /** * city * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.city */ self.city = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'city', randomize); }; /** * food * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.food */ self.food = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'food', randomize); }; /** * nightlife * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.nightlife */ self.nightlife = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'nightlife', randomize); }; /** * fashion * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.fashion */ self.fashion = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'fashion', randomize); }; /** * people * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.people */ self.people = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'people', randomize); }; /** * nature * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.nature */ self.nature = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'nature', randomize); }; /** * sports * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.sports */ self.sports = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'sports', randomize); }; /** * technics * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.technics */ self.technics = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'technics', randomize); }; /** * transport * * @param {number} width * @param {number} height * @param {boolean} randomize * @method faker.image.transport */ self.transport = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'transport', randomize); } } module["exports"] = Image; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { /* this index.js file is used for including the faker library as a CommonJS module, instead of a bundle you can include the faker library into your existing node.js application by requiring the entire /faker directory var faker = require(./faker); var randomName = faker.name.findName(); you can also simply include the "faker.js" file which is the auto-generated bundled version of the faker library var faker = require(./customAppPath/faker); var randomName = faker.name.findName(); if you plan on modifying the faker library you should be performing your changes in the /lib/ directory */ /** * * @namespace faker */ function Faker (opts) { var self = this; opts = opts || {}; // assign options var locales = self.locales || opts.locales || {}; var locale = self.locale || opts.locale || "en"; var localeFallback = self.localeFallback || opts.localeFallback || "en"; self.locales = locales; self.locale = locale; self.localeFallback = localeFallback; self.definitions = {}; var Fake = __webpack_require__(7); self.fake = new Fake(self).fake; var Random = __webpack_require__(0); self.random = new Random(self); // self.random = require('./random'); var Helpers = __webpack_require__(10); self.helpers = new Helpers(self); var Name = __webpack_require__(956); self.name = new Name(self); // self.name = require('./name'); var Address = __webpack_require__(3); self.address = new Address(self); var Company = __webpack_require__(5); self.company = new Company(self); var Finance = __webpack_require__(8); self.finance = new Finance(self); var Image = __webpack_require__(11); self.image = new Image(self); var Lorem = __webpack_require__(955); self.lorem = new Lorem(self); var Hacker = __webpack_require__(9); self.hacker = new Hacker(self); var Internet = __webpack_require__(13); self.internet = new Internet(self); var Phone = __webpack_require__(957); self.phone = new Phone(self); var _Date = __webpack_require__(6); self.date = new _Date(self); var Commerce = __webpack_require__(4); self.commerce = new Commerce(self); var System = __webpack_require__(958); self.system = new System(self); var _definitions = { "name": ["first_name", "last_name", "prefix", "suffix", "title", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"], "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "postcode"], "company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"], "lorem": ["words"], "hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"], "phone_number": ["formats"], "finance": ["account_type", "transaction_type", "currency"], "internet": ["avatar_uri", "domain_suffix", "free_email", "example_email", "password"], "commerce": ["color", "department", "product_name", "price", "categories"], "system": ["mimeTypes"], "date": ["month", "weekday"], "title": "", "separator": "" }; // Create a Getter for all definitions.foo.bar propetries Object.keys(_definitions).forEach(function(d){ if (typeof self.definitions[d] === "undefined") { self.definitions[d] = {}; } if (typeof _definitions[d] === "string") { self.definitions[d] = _definitions[d]; return; } _definitions[d].forEach(function(p){ Object.defineProperty(self.definitions[d], p, { get: function () { if (typeof self.locales[self.locale][d] === "undefined" || typeof self.locales[self.locale][d][p] === "undefined") { // certain localization sets contain less data then others. // in the case of a missing defintion, use the default localeFallback to substitute the missing set data // throw new Error('unknown property ' + d + p) return self.locales[localeFallback][d][p]; } else { // return localized data return self.locales[self.locale][d][p]; } } }); }); }); }; Faker.prototype.seed = function(value) { var Random = __webpack_require__(0); this.seedValue = value; this.random = new Random(this, this.seedValue); } module['exports'] = Faker; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var password_generator = __webpack_require__(960), random_ua = __webpack_require__(961); /** * * @namespace faker.internet */ var Internet = function (faker) { var self = this; /** * avatar * * @method faker.internet.avatar */ self.avatar = function () { return faker.random.arrayElement(faker.definitions.internet.avatar_uri); }; self.avatar.schema = { "description": "Generates a URL for an avatar.", "sampleResults": ["https://s3.amazonaws.com/uifaces/faces/twitter/igorgarybaldi/128.jpg"] }; /** * email * * @method faker.internet.email * @param {string} firstName * @param {string} lastName * @param {string} provider */ self.email = function (firstName, lastName, provider) { provider = provider || faker.random.arrayElement(faker.definitions.internet.free_email); return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider; }; self.email.schema = { "description": "Generates a valid email address based on optional input criteria", "sampleResults": ["foo.bar@gmail.com"], "properties": { "firstName": { "type": "string", "required": false, "description": "The first name of the user" }, "lastName": { "type": "string", "required": false, "description": "The last name of the user" }, "provider": { "type": "string", "required": false, "description": "The domain of the user" } } }; /** * exampleEmail * * @method faker.internet.exampleEmail * @param {string} firstName * @param {string} lastName */ self.exampleEmail = function (firstName, lastName) { var provider = faker.random.arrayElement(faker.definitions.internet.example_email); return self.email(firstName, lastName, provider); }; /** * userName * * @method faker.internet.userName * @param {string}