Socket
Socket
Sign inDemoInstall

faker

Package Overview
Dependencies
0
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.5 to 3.0.0

.npm/package/.npmignore

79

build/gulpfile.js

@@ -22,4 +22,6 @@ /*

var transform = require('vinyl-transform');
var path = require('path');
var fs = require('fs');
var through = require('through2')
gulp.task('browser-package', function() {

@@ -70,7 +72,20 @@

var API = '';
var API = '', LOCALES = '';
var faker = require('../index');
// generate locale list
for (var locale in faker.locales) {
LOCALES += ' * ' + locale + '\n';
}
var keys = Object.keys(faker);
keys = keys.sort();
// generate nice tree of api for docs
for (var module in faker) {
keys.forEach(function(module){
// ignore certain properties
var ignore = ['locale', 'localeFallback', 'definitions', 'locales'];
if (ignore.indexOf(module) !== -1) {
return;
}
API += '* ' + module + '\n';

@@ -80,3 +95,3 @@ for (var method in faker[module]) {

}
}
});

@@ -86,2 +101,3 @@ return gulp.src('./src/docs.md')

'API': API,
'LOCALES': LOCALES,
'startYear': 2010,

@@ -95,2 +111,55 @@ 'currentYear': new Date().getFullYear()

gulp.task('default', ['browser-package', 'documentation']);
var tasks = ['nodeLocalRequires', 'browser-package', 'documentation'];
// var tasks = [];
var locales = require('../lib/locales');
var localTasks = Object.keys(locales);
/* task for generating unique browser builds for every locale */
Object.keys(locales).forEach(function(locale, i) {
if (i > 0) {
// return;
}
tasks.push(locale + 'Task');
gulp.task(locale + 'Task', function() {
var browserified = transform(function(filename) {
// use browserify to create UMD stand-alone browser package
var b = browserify(filename, {
standalone: 'faker'
});
return b.bundle();
});
process.chdir('../locale/');
return gulp.src('./' + locale + '.js')
.pipe(browserified)
.pipe(rename('faker.' + locale + '.js'))
.pipe(gulp.dest('../build/build/locales/' + locale))
.pipe(gulp.dest('../examples/browser/locales/' + locale + "/"))
.pipe(rename({ extname: ".min.js" }))
.pipe(uglify())
.pipe(gulp.dest('../build/build/locales/' + locale))
.pipe(gulp.dest('../examples/browser/locales/' + locale + '/'))
.pipe(rename('../examples/browser/locales/' + locale + '/' + 'faker.' + locale + 'min.js'));
});
});
gulp.task('nodeLocalRequires', function (cb){
var locales = require('../lib/locales');
for (var locale in locales) {
var localeFile = path.normalize(__dirname + "/../locale/" + locale + ".js");
var localeRequire = '';
localeRequire += "var Faker = require('../lib');\n";
localeRequire += "var faker = new Faker({ locale: '" + locale + "', localeFallback: 'en' });\n";
// TODO: better fallback support
localeRequire += "faker.locales['" + locale + "'] = require('../lib/locales/" + locale + "');\n";
localeRequire += "faker.locales['" + 'en' + "'] = require('../lib/locales/" + 'en' + "');\n";
localeRequire += "module['exports'] = faker;\n";
fs.writeFileSync(localeFile, localeRequire);
}
cb();
});
gulp.task('default', tasks);

@@ -5,3 +5,3 @@ # faker.js - generate massive amounts of fake data in the browser and node.js

[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/Faker.js)
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/faker.js)

@@ -27,3 +27,3 @@ [![npm version](https://badge.fury.io/js/faker.svg)](http://badge.fury.io/js/faker)

var faker = require('./faker');
var faker = require('faker');

@@ -34,17 +34,24 @@ var randomName = faker.name.findName(); // Rowan Nikolaus

## Dependent tools
## API
### Fake JSON Schema
### Faker.fake()
Use faker generators to populate JSON Schema samples.
See: https://github.com/pateketrueke/json-schema-faker/
As of version `v3.0.0` faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format.
### CLI
**Example:**
Run faker generators from Command Line.
See: https://github.com/lestoni/faker-cli
``` js
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()`, `name.firstName()`, and `name.suffix()`
### API Methods
{{{API}}}
## Localization
As of version `v2.0.0` faker.js supports 27 different language definition packs.
As of version `v2.0.0` faker.js supports over 27 different language definition packs.

@@ -59,8 +66,18 @@ The default language is set to English.

```
Read further for complete list of locales.
## API
{{LOCALES}}
{{{API}}}
### Individual Localization Packages
As of vesion `v3.0.0` faker.js supports incremental loading of locales.
By default, requiring `faker` will include *all* locale data.
In a production environment, you may only want to include the locale data for a specific set of locales.
```js
// loads only de locale
var faker = require('faker/locale/de');
```
## Tests

@@ -73,2 +90,29 @@

## Projects Built with faker.js
### Fake JSON Schema
Use faker generators to populate JSON Schema samples.
See: https://github.com/pateketrueke/json-schema-faker/
### CLI
Run faker generators from Command Line.
See: https://github.com/lestoni/faker-cli
**Want to see your project added here? Let us know!**
### Meteor
#### Meteor installation
meteor add practicalmeteor:faker
#### meteor usage, both client and server
var randomName = faker.name.findName(); // Rowan Nikolaus
var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz
var randomCard = faker.helpers.createCard(); // random contact card containing many properties
## Authors

@@ -75,0 +119,0 @@

#CHANGELOG
## v3.0.0 - v2.0.0 - Missing
See commit history on Github for change history
http://github.com/marak/faker.js
## v2.0.0

@@ -4,0 +9,0 @@

77

index.js

@@ -1,73 +0,4 @@

/*
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
*/
exports.name = require('./lib/name');
exports.address = require('./lib/address');
exports.phone = require('./lib/phone_number');
exports.internet = require('./lib/internet');
exports.company = require('./lib/company');
exports.image = require('./lib/image');
exports.lorem = require('./lib/lorem');
exports.helpers = require('./lib/helpers');
exports.date = require('./lib/date');
exports.random = require('./lib/random');
exports.finance = require('./lib/finance');
exports.hacker = require('./lib/hacker');
var locales = exports.locales = require('./lib/locales');
// default locale
exports.locale = "en";
// in case a locale is missing a definition, fallback to this locale
exports.localeFallback = "en";
exports.definitions = {};
var _definitions = {
"name": ["first_name", "last_name", "prefix", "suffix", "title"],
"address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "state", "state_abbr"],
"company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb"],
"lorem": ["words"],
"hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"],
"phone_number": ["formats"],
"finance": ["account_type", "transaction_type", "currency"],
"internet": ["avatar_uri", "domain_suffix", "free_email", "password"]
};
// Create a Getter for all definitions.foo.bar propetries
Object.keys(_definitions).forEach(function(d){
if (typeof exports.definitions[d] === "undefined") {
exports.definitions[d] = {};
}
_definitions[d].forEach(function(p){
Object.defineProperty(exports.definitions[d], p, {
get: function () {
if (typeof locales[exports.locale][d] === "undefined" || typeof locales[exports.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
return locales[exports.localeFallback][d][p];
} else {
// return localized data
return locales[exports.locale][d][p];
}
}
});
});
});
// since we are requiring the top level of faker, load all locales by default
var Faker = require('./lib');
var faker = new Faker({ locales: require('./lib/locales') });
module['exports'] = faker;

@@ -1,107 +0,124 @@

var Helpers = require('./helpers');
var faker = require('../index');
function Address (faker) {
var f = faker.fake,
Helpers = faker.helpers;
var address = {
zipCode: function () {
return Helpers.replaceSymbolWithNumber(faker.random.array_element(["#####", '#####-####']));
},
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);
}
city: function () {
var result;
switch (faker.random.number(3)) {
case 0:
result = faker.address.cityPrefix() + " " + faker.name.firstName() + faker.address.citySuffix();
break;
case 1:
result = faker.address.cityPrefix() + " " + faker.name.firstName();
break;
case 2:
result = faker.name.firstName() + faker.address.citySuffix();
break;
case 3:
result = faker.name.lastName() + faker.address.citySuffix();
break;
}
return result;
},
this.city = function (format) {
var formats = [
'{{address.cityPrefix}} {{name.firstName}} {{address.citySuffix}}',
'{{address.cityPrefix}} {{name.firstName}}',
'{{name.firstName}} {{address.citySuffix}}',
'{{name.lastName}} {{address.citySuffix}}'
];
cityPrefix: function () {
return faker.random.array_element(faker.definitions.address.city_prefix);
},
if (typeof format !== "number") {
format = faker.random.number(formats.length - 1);
}
citySuffix: function () {
return faker.random.array_element(faker.definitions.address.city_suffix);
},
return f(formats[format]);
streetName: function () {
var result;
switch (faker.random.number(1)) {
case 0:
result = faker.name.lastName() + " " + faker.address.streetSuffix();
break;
case 1:
result = faker.name.firstName() + " " + faker.address.streetSuffix();
break;
}
return result;
},
}
//
// TODO: change all these methods that accept a boolean to instead accept an options hash.
//
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;
},
this.cityPrefix = function () {
return faker.random.arrayElement(faker.definitions.address.city_prefix);
}
streetSuffix: function () {
return faker.random.array_element(faker.definitions.address.street_suffix);
},
this.citySuffix = function () {
return faker.random.arrayElement(faker.definitions.address.city_suffix);
}
secondaryAddress: function () {
return Helpers.replaceSymbolWithNumber(faker.random.array_element(
[
'Apt. ###',
'Suite ###'
]
));
},
this.streetName = function () {
var result;
switch (faker.random.number(1)) {
case 0:
result = faker.name.lastName() + " " + faker.address.streetSuffix();
break;
case 1:
result = faker.name.firstName() + " " + faker.address.streetSuffix();
break;
}
return result;
}
county: function () {
return faker.random.array_element(faker.definitions.address.county);
},
//
// TODO: change all these methods that accept a boolean to instead accept an options hash.
//
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;
}
country: function () {
return faker.random.array_element(faker.definitions.address.country);
},
this.streetSuffix = function () {
return faker.random.arrayElement(faker.definitions.address.street_suffix);
}
this.streetPrefix = function () {
return faker.random.arrayElement(faker.definitions.address.street_prefix);
}
state: function (useAbbr) {
return faker.random.array_element(faker.definitions.address.state);
},
this.secondaryAddress = function () {
return Helpers.replaceSymbolWithNumber(faker.random.arrayElement(
[
'Apt. ###',
'Suite ###'
]
));
}
stateAbbr: function () {
return faker.random.array_element(faker.definitions.address.state_abbr);
},
this.county = function () {
return faker.random.arrayElement(faker.definitions.address.county);
}
latitude: function () {
return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4);
},
this.country = function () {
return faker.random.arrayElement(faker.definitions.address.country);
}
longitude: function () {
return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4);
}
};
this.countryCode = function () {
return faker.random.arrayElement(faker.definitions.address.country_code);
}
module.exports = address;
this.state = function (useAbbr) {
return faker.random.arrayElement(faker.definitions.address.state);
}
this.stateAbbr = function () {
return faker.random.arrayElement(faker.definitions.address.state_abbr);
}
this.latitude = function () {
return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4);
}
this.longitude = function () {
return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4);
}
return this;
}
module.exports = Address;

@@ -1,62 +0,64 @@

var faker = require('../index');
var Company = function (faker) {
var self = this;
var f = faker.fake;
this.suffixes = function () {
// Don't want the source array exposed to modification, so return a copy
return faker.definitions.company.suffix.slice(0);
}
var company = {
this.companyName = function (format) {
suffixes: function () {
return ["Inc", "and Sons", "LLC", "Group", "and Daughters"];
},
var formats = [
'{{name.lastName}} {{company.companySuffix}}',
'{{name.lastName}} - {{name.lastName}}',
'{{name.lastName}}, {{name.lastName}} and {{name.lastName}}'
];
companyName: function (format) {
switch ((format ? format : faker.random.number(2))) {
case 0:
return faker.name.lastName() + " " + faker.company.companySuffix();
case 1:
return faker.name.lastName() + "-" + faker.name.lastName();
case 2:
return faker.name.lastName() + ", " + faker.name.lastName() + " and " + faker.name.lastName();
}
},
if (typeof format !== "number") {
format = faker.random.number(formats.length - 1);
}
companySuffix: function () {
return faker.random.array_element(faker.company.suffixes());
},
return f(formats[format]);
}
catchPhrase: function () {
return faker.company.catchPhraseAdjective() + " " +
faker.company.catchPhraseDescriptor() + " " +
faker.company.catchPhraseNoun();
},
this.companySuffix = function () {
return faker.random.arrayElement(faker.company.suffixes());
}
bs: function () {
return faker.company.bsAdjective() + " " +
faker.company.bsBuzz() + " " +
faker.company.bsNoun();
},
this.catchPhrase = function () {
return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}')
}
catchPhraseAdjective: function () {
return faker.random.array_element(faker.definitions.company.adjective);
},
this.bs = function () {
return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}');
}
catchPhraseDescriptor: function () {
return faker.random.array_element(faker.definitions.company.descriptor);
},
this.catchPhraseAdjective = function () {
return faker.random.arrayElement(faker.definitions.company.adjective);
}
catchPhraseNoun: function () {
return faker.random.array_element(faker.definitions.company.noun);
},
this.catchPhraseDescriptor = function () {
return faker.random.arrayElement(faker.definitions.company.descriptor);
}
bsAdjective: function () {
return faker.random.array_element(faker.definitions.company.bs_adjective);
},
this.catchPhraseNoun = function () {
return faker.random.arrayElement(faker.definitions.company.noun);
}
bsBuzz: function () {
return faker.random.array_element(faker.definitions.company.bs_verb);
},
this.bsAdjective = function () {
return faker.random.arrayElement(faker.definitions.company.bs_adjective);
}
bsNoun: function () {
return faker.random.array_element(faker.definitions.company.bs_noun);
}
this.bsBuzz = function () {
return faker.random.arrayElement(faker.definitions.company.bs_verb);
}
};
this.bsNoun = function () {
return faker.random.arrayElement(faker.definitions.company.bs_noun);
}
}
module.exports = company;
module['exports'] = Company;

@@ -1,56 +0,58 @@

var faker = require("../index");
var _Date = function (faker) {
var self = this;
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 date = {
var past = date.getTime();
past -= faker.random.number(range); // some time from now to N years ago, in milliseconds
date.setTime(past);
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
};
return date;
};
var past = date.getTime();
past -= faker.random.number(range); // some time from now to N years ago, in milliseconds
date.setTime(past);
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
};
return date;
},
var future = date.getTime();
future += faker.random.number(range); // some time from now to N years later, in milliseconds
date.setTime(future);
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
};
return date;
};
var future = date.getTime();
future += faker.random.number(range); // some time from now to N years later, in milliseconds
date.setTime(future);
self.between = function (from, to) {
var fromMilli = Date.parse(from);
var dateOffset = faker.random.number(Date.parse(to) - fromMilli);
return date;
},
var newDate = new Date(fromMilli + dateOffset);
between: function (from, to) {
var fromMilli = Date.parse(from);
var dateOffset = faker.random.number(Date.parse(to) - fromMilli);
return newDate;
};
var newDate = new Date(fromMilli + dateOffset);
self.recent = function (days) {
var date = new Date();
var range = {
min: 1000,
max: (days || 1) * 24 * 3600 * 1000
};
return newDate;
},
var future = date.getTime();
future -= faker.random.number(range); // some time from now to N days ago, in milliseconds
date.setTime(future);
recent: function (days) {
var date = new Date();
var range = {
min: 1000,
max: (days || 1) * 24 * 3600 * 1000
};
return date;
}
return self;
};
var future = date.getTime();
future -= faker.random.number(range); // some time from now to N days ago, in milliseconds
date.setTime(future);
return date;
}
};
module.exports = date;
module['exports'] = _Date;

@@ -1,87 +0,86 @@

var Helpers = require('./helpers'),
faker = require('../index');
var Finance = function (faker) {
var Helpers = faker.helpers,
self = this;
var finance = {
self.account = function (length) {
account: function (length) {
length = length || 8;
length = length || 8;
var template = '';
var template = '';
for (var i = 0; i < length; i++) {
template = template + '#';
}
length = null;
return Helpers.replaceSymbolWithNumber(template);
}
for (var i = 0; i < length; i++) {
template = template + '#';
}
length = null;
return Helpers.replaceSymbolWithNumber(template);
},
self.accountName = function () {
accountName: function () {
return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' ');
}
return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' ');
},
self.mask = function (length, parens, elipsis) {
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;
//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 = '';
//create a template for length
var template = '';
for (var i = 0; i < length; i++) {
template = template + '#';
}
for (var i = 0; i < length; i++) {
template = template + '#';
}
//prefix with elipsis
template = (elipsis) ? ['...', template].join('') : template;
//prefix with elipsis
template = (elipsis) ? ['...', template].join('') : template;
template = (parens) ? ['(', template, ')'].join('') : template;
template = (parens) ? ['(', template, ')'].join('') : template;
//generate random numbers
template = Helpers.replaceSymbolWithNumber(template);
//generate random numbers
template = Helpers.replaceSymbolWithNumber(template);
return 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
//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
self.amount = function (min, max, dec, symbol) {
amount: function (min, max, dec, symbol) {
min = min || 0;
max = max || 1000;
dec = dec || 2;
symbol = symbol || '';
min = min || 0;
max = max || 1000;
dec = dec || 2;
symbol = symbol || '';
return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec);
return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec);
}
},
self.transactionType = function () {
return Helpers.randomize(faker.definitions.finance.transaction_type);
}
transactionType: function () {
return Helpers.randomize(faker.definitions.finance.transaction_type);
},
self.currencyCode = function () {
return faker.random.objectElement(faker.definitions.finance.currency)['code'];
}
currencyCode: function () {
return faker.random.object_element(faker.definitions.finance.currency)['code'];
},
self.currencyName = function () {
return faker.random.objectElement(faker.definitions.finance.currency, 'key');
}
currencyName: function () {
return faker.random.object_element(faker.definitions.finance.currency, 'key');
},
self.currencySymbol = function () {
var symbol;
currencySymbol: function () {
var symbol;
while (!symbol) {
symbol = faker.random.objectElement(faker.definitions.finance.currency)['symbol'];
}
return symbol;
}
}
while (!symbol) {
symbol = faker.random.object_element(faker.definitions.finance.currency)['symbol'];
}
return symbol;
}
};
module.exports = finance;
module['exports'] = Finance;

@@ -1,36 +0,35 @@

var faker = require('../index');
var Hacker = function (faker) {
var self = this;
self.abbreviation = function () {
return faker.random.arrayElement(faker.definitions.hacker.abbreviation);
};
var hacker = {
self.adjective = function () {
return faker.random.arrayElement(faker.definitions.hacker.adjective);
};
abbreviation : function () {
return faker.random.array_element(faker.definitions.hacker.abbreviation);
},
self.noun = function () {
return faker.random.arrayElement(faker.definitions.hacker.noun);
};
adjective : function () {
return faker.random.array_element(faker.definitions.hacker.adjective);
},
self.verb = function () {
return faker.random.arrayElement(faker.definitions.hacker.verb);
};
noun : function () {
return faker.random.array_element(faker.definitions.hacker.noun);
},
self.ingverb = function () {
return faker.random.arrayElement(faker.definitions.hacker.ingverb);
};
verb : function () {
return faker.random.array_element(faker.definitions.hacker.verb);
},
self.phrase = function () {
ingverb : function () {
return faker.random.array_element(faker.definitions.hacker.ingverb);
},
phrase : function () {
var data = {
abbreviation: hacker.abbreviation(),
adjective: hacker.adjective(),
ingverb: hacker.ingverb(),
noun: hacker.noun(),
verb: hacker.verb()
abbreviation: self.abbreviation(),
adjective: self.adjective(),
ingverb: self.ingverb(),
noun: self.noun(),
verb: self.verb()
};
var phrase = faker.random.array_element([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!",
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}}!",

@@ -47,7 +46,7 @@ "Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!",

},
};
return self;
};
module.exports = hacker;
module['exports'] = Hacker;

@@ -1,139 +0,132 @@

var faker = require('../index');
var Helpers = function (faker) {
// backword-compatibility
exports.randomNumber = function (range) {
return faker.random.number(range);
};
var self = this;
// backword-compatibility
exports.randomize = function (array) {
array = array || ["a", "b", "c"];
return faker.random.array_element(array);
};
// backword-compatibility
self.randomize = function (array) {
array = array || ["a", "b", "c"];
return faker.random.arrayElement(array);
};
// slugifies string
exports.slugify = function (string) {
string = string || "";
return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, '');
};
// slugifies 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
exports.replaceSymbolWithNumber = function (string, symbol) {
string = string || "";
// default symbol is '#'
if (symbol === undefined) {
symbol = '#';
}
// parses string for a symbol and replace it with a random number from 1-10
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;
};
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;
};
// takes an array and returns it randomized
exports.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;
};
// parses string for symbols (numbers or letters) and replaces them appropriately
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 = '';
exports.mustache = function (str, data) {
for(var p in data) {
var re = new RegExp('{{' + p + '}}', 'g')
str = str.replace(re, data[p]);
}
return str;
};
exports.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()]
};
};
exports.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()
for (var i = 0; i < string.length; i++) {
if (string.charAt(i) == "#") {
str += faker.random.number(9);
} else if (string.charAt(i) == "?") {
str += alpha[Math.floor(Math.random() * alpha.length)];
} else {
str += string.charAt(i);
}
},
"website": faker.internet.domainName(),
"company": {
"name": faker.company.companyName(),
"catchPhrase": faker.company.catchPhrase(),
"bs": faker.company.bs()
}
return str;
};
};
// takes an array and returns it randomized
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;
};
exports.userCard = function () {
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;
};
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()]
};
};
self.contextualCard = function () {
var name = faker.name.firstName(),
userName = faker.internet.userName(name);
return {
"name": faker.name.findName(),
"username": faker.internet.userName(),
"email": faker.internet.email(),
"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": {

@@ -149,3 +142,2 @@ "street": faker.address.streetName(true),

},
"phone": faker.phone.phoneNumber(),
"website": faker.internet.domainName(),

@@ -158,15 +150,46 @@ "company": {

};
};
};
exports.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" : exports.randomize(faker.definitions.finance.transaction_type),
"account" : faker.finance.account()
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()
}
};
};
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;
};
/*

@@ -180,1 +203,2 @@ String.prototype.capitalize = function () { //v1.0

module['exports'] = Helpers;

@@ -1,12 +0,13 @@

var faker = require('../index');
var Image = function (faker) {
var image = {
image: function () {
var self = this;
self.image = function () {
var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"];
return image[faker.random.array_element(categories)]();
},
avatar: function () {
return self[faker.random.arrayElement(categories)]();
};
self.avatar = function () {
return faker.internet.avatar();
},
imageUrl: function (width, height, category) {
};
self.imageUrl = function (width, height, category) {
var width = width || 640;

@@ -20,44 +21,44 @@ var height = height || 480;

return url;
},
abstract: function (width, height) {
};
self.abstract = function (width, height) {
return faker.image.imageUrl(width, height, 'abstract');
},
animals: function (width, height) {
};
self.animals = function (width, height) {
return faker.image.imageUrl(width, height, 'animals');
},
business: function (width, height) {
};
self.business = function (width, height) {
return faker.image.imageUrl(width, height, 'business');
},
cats: function (width, height) {
};
self.cats = function (width, height) {
return faker.image.imageUrl(width, height, 'cats');
},
city: function (width, height) {
};
self.city = function (width, height) {
return faker.image.imageUrl(width, height, 'city');
},
food: function (width, height) {
};
self.food = function (width, height) {
return faker.image.imageUrl(width, height, 'food');
},
nightlife: function (width, height) {
};
self.nightlife = function (width, height) {
return faker.image.imageUrl(width, height, 'nightlife');
},
fashion: function (width, height) {
};
self.fashion = function (width, height) {
return faker.image.imageUrl(width, height, 'fashion');
},
people: function (width, height) {
};
self.people = function (width, height) {
return faker.image.imageUrl(width, height, 'people');
},
nature: function (width, height) {
};
self.nature = function (width, height) {
return faker.image.imageUrl(width, height, 'nature');
},
sports: function (width, height) {
};
self.sports = function (width, height) {
return faker.image.imageUrl(width, height, 'sports');
},
technics: function (width, height) {
};
self.technics = function (width, height) {
return faker.image.imageUrl(width, height, 'technics');
},
transport: function (width, height) {
};
self.transport = function (width, height) {
return faker.image.imageUrl(width, height, 'transport');
}
};
}
}
module.exports = image;
module["exports"] = Image;

@@ -1,101 +0,113 @@

var faker = require('../index'),
password_generator = require('../vendor/password-generator.js'),
var password_generator = require('../vendor/password-generator.js'),
random_ua = require('../vendor/user-agent');
var internet = {
var Internet = function (faker) {
var self = this;
self.avatar = function () {
return faker.random.arrayElement(faker.definitions.internet.avatar_uri);
};
avatar: function () {
return faker.random.array_element(faker.definitions.internet.avatar_uri);
},
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;
};
email: function (firstName, lastName, provider) {
provider = provider || faker.random.array_element(faker.definitions.internet.free_email);
return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider;
},
self.userName = function (firstName, lastName) {
var result;
firstName = firstName || faker.name.firstName();
lastName = lastName || faker.name.lastName();
switch (faker.random.number(2)) {
case 0:
result = firstName + faker.random.number(99);
break;
case 1:
result = firstName + faker.random.arrayElement([".", "_"]) + lastName;
break;
case 2:
result = firstName + faker.random.arrayElement([".", "_"]) + lastName + faker.random.number(99);
break;
}
result = result.toString().replace(/'/g, "");
result = result.replace(/ /g, "");
return result;
};
userName: function (firstName, lastName) {
var result;
firstName = firstName || faker.name.firstName();
lastName = lastName || faker.name.lastName();
switch (faker.random.number(2)) {
case 0:
result = firstName + faker.random.number(99);
break;
case 1:
result = firstName + faker.random.array_element([".", "_"]) + lastName;
break;
case 2:
result = firstName + faker.random.array_element([".", "_"]) + lastName + faker.random.number(99);
break;
}
result = result.replace(/'/g, "");
result = result.replace(/ /g, "");
return result;
},
self.protocol = function () {
var protocols = ['http','https'];
return faker.random.arrayElement(protocols);
};
protocol: function () {
var protocols = ['http','https'];
return faker.random.array_element(protocols);
},
self.url = function () {
return faker.internet.protocol() + '://' + faker.internet.domainName();
};
url: function () {
return faker.internet.protocol() + '://' + faker.internet.domainName();
},
self.domainName = function () {
return faker.internet.domainWord() + "." + faker.internet.domainSuffix();
};
domainName: function () {
return faker.internet.domainWord() + "." + faker.internet.domainSuffix();
},
self.domainSuffix = function () {
return faker.random.arrayElement(faker.definitions.internet.domain_suffix);
};
domainSuffix: function () {
return faker.random.array_element(faker.definitions.internet.domain_suffix);
},
self.domainWord = function () {
return faker.name.firstName().replace(/([\\~#&*{}/:<>?|\"])/ig, '').toLowerCase();
};
domainWord: function () {
return faker.name.firstName().replace(/([^A-Z0-9._%+-])/ig, '').toLowerCase();
},
self.ip = function () {
var randNum = function () {
return (faker.random.number(255)).toFixed(0);
};
ip: function () {
var randNum = function () {
return (faker.random.number(255)).toFixed(0);
};
var result = [];
for (var i = 0; i < 4; i++) {
result[i] = randNum();
}
var result = [];
for (var i = 0; i < 4; i++) {
result[i] = randNum();
}
return result.join(".");
};
return result.join(".");
},
self.userAgent = function () {
return random_ua.generate();
};
userAgent: function () {
return random_ua.generate();
},
self.color = function (baseRed255, baseGreen255, baseBlue255) {
baseRed255 = baseRed255 || 0;
baseGreen255 = baseGreen255 || 0;
baseBlue255 = baseBlue255 || 0;
// based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette
var red = Math.floor((faker.random.number(256) + baseRed255) / 2);
var green = Math.floor((faker.random.number(256) + baseGreen255) / 2);
var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2);
var redStr = red.toString(16);
var greenStr = green.toString(16);
var blueStr = blue.toString(16);
return '#' +
(redStr.length === 1 ? '0' : '') + redStr +
(greenStr.length === 1 ? '0' : '') + greenStr +
(blueStr.length === 1 ? '0': '') + blueStr;
color: function (baseRed255, baseGreen255, baseBlue255) {
baseRed255 = baseRed255 || 0;
baseGreen255 = baseGreen255 || 0;
baseBlue255 = baseBlue255 || 0;
// based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette
var red = Math.floor((faker.random.number(256) + baseRed255) / 2);
var green = Math.floor((faker.random.number(256) + baseGreen255) / 2);
var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2);
var redStr = red.toString(16);
var greenStr = green.toString(16);
var blueStr = blue.toString(16);
return '#' +
(redStr.length === 1 ? '0' : '') + redStr +
(greenStr.length === 1 ? '0' : '') + greenStr +
(blueStr.length === 1 ? '0': '') + blueStr;
};
},
self.mac = function(){
var i, mac = "";
for (i=0; i < 12; i++) {
mac+= parseInt(Math.random()*16).toString(16);
if (i%2==1 && i != 11) {
mac+=":";
}
}
return mac;
};
password: function (len, memorable, pattern, prefix) {
len = len || 15;
if (typeof memorable === "undefined") {
memorable = false;
}
return password_generator(len, memorable, pattern, prefix);
self.password = function (len, memorable, pattern, prefix) {
len = len || 15;
if (typeof memorable === "undefined") {
memorable = false;
}
return password_generator(len, memorable, pattern, prefix);
}
};
module.exports = internet;
module["exports"] = Internet;

@@ -1,31 +0,33 @@

var faker = require('../index');
exports['de'] = require('./locales/de.js');
exports['de_AT'] = require('./locales/de_AT.js');
exports['de_CH'] = require('./locales/de_CH.js');
exports['en'] = require('./locales/en.js');
exports['en_AU'] = require('./locales/en_AU.js');
exports['en_BORK'] = require('./locales/en_BORK.js');
exports['en_CA'] = require('./locales/en_CA.js');
exports['en_GB'] = require('./locales/en_GB.js');
exports['en_IND'] = require('./locales/en_IND.js');
exports['en_US'] = require('./locales/en_US.js');
exports['en_au_ocker'] = require('./locales/en_au_ocker.js');
exports['es'] = require('./locales/es.js');
exports['fa'] = require('./locales/fa.js');
exports['fr'] = require('./locales/fr.js');
exports['ge'] = require('./locales/ge.js');
exports['it'] = require('./locales/it.js');
exports['ja'] = require('./locales/ja.js');
exports['ko'] = require('./locales/ko.js');
exports['nb_NO'] = require('./locales/nb_NO.js');
exports['nep'] = require('./locales/nep.js');
exports['nl'] = require('./locales/nl.js');
exports['pl'] = require('./locales/pl.js');
exports['pt_BR'] = require('./locales/pt_BR.js');
exports['ru'] = require('./locales/ru.js');
exports['sk'] = require('./locales/sk.js');
exports['sv'] = require('./locales/sv.js');
exports['tr'] = require('./locales/tr.js');
exports['vi'] = require('./locales/vi.js');
exports['zh_CN'] = require('./locales/zh_CN.js');
exports['zh_TW'] = require('./locales/zh_TW.js');
exports['de'] = require('./locales/de');
exports['de_AT'] = require('./locales/de_AT');
exports['de_CH'] = require('./locales/de_CH');
exports['en'] = require('./locales/en');
exports['en_AU'] = require('./locales/en_AU');
exports['en_BORK'] = require('./locales/en_BORK');
exports['en_CA'] = require('./locales/en_CA');
exports['en_GB'] = require('./locales/en_GB');
exports['en_IE'] = require('./locales/en_IE');
exports['en_IND'] = require('./locales/en_IND');
exports['en_US'] = require('./locales/en_US');
exports['en_au_ocker'] = require('./locales/en_au_ocker');
exports['es'] = require('./locales/es');
exports['fa'] = require('./locales/fa');
exports['fr'] = require('./locales/fr');
exports['fr_CA'] = require('./locales/fr_CA');
exports['ge'] = require('./locales/ge');
exports['it'] = require('./locales/it');
exports['ja'] = require('./locales/ja');
exports['ko'] = require('./locales/ko');
exports['nb_NO'] = require('./locales/nb_NO');
exports['nep'] = require('./locales/nep');
exports['nl'] = require('./locales/nl');
exports['pl'] = require('./locales/pl');
exports['pt_BR'] = require('./locales/pt_BR');
exports['ru'] = require('./locales/ru');
exports['sk'] = require('./locales/sk');
exports['sv'] = require('./locales/sv');
exports['tr'] = require('./locales/tr');
exports['uk'] = require('./locales/uk');
exports['vi'] = require('./locales/vi');
exports['zh_CN'] = require('./locales/zh_CN');
exports['zh_TW'] = require('./locales/zh_TW');

@@ -1,44 +0,51 @@

var faker = require('../index');
var Helpers = require('./helpers');
var lorem = {
words: function (num) {
if (typeof num == 'undefined') { num = 3; }
return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num);
},
var Lorem = function (faker) {
var self = this;
var Helpers = faker.helpers;
sentence: function (wordCount, range) {
if (typeof wordCount == 'undefined') { wordCount = 3; }
if (typeof range == 'undefined') { range = 7; }
self.words = function (num) {
if (typeof num == 'undefined') { num = 3; }
return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num);
};
// strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back
//return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize();
self.sentence = function (wordCount, range) {
if (typeof wordCount == 'undefined') { wordCount = 3; }
if (typeof range == 'undefined') { range = 7; }
return faker.lorem.words(wordCount + faker.random.number(range)).join(' ');
},
// strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back
//return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize();
sentences: function (sentenceCount) {
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
var sentences = [];
for (sentenceCount; sentenceCount > 0; sentenceCount--) {
sentences.push(faker.lorem.sentence());
}
return sentences.join("\n");
},
return faker.lorem.words(wordCount + faker.random.number(range)).join(' ');
};
paragraph: function (sentenceCount) {
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
return faker.lorem.sentences(sentenceCount + faker.random.number(3));
},
self.sentences = function (sentenceCount) {
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
var sentences = [];
for (sentenceCount; sentenceCount > 0; sentenceCount--) {
sentences.push(faker.lorem.sentence());
}
return sentences.join("\n");
};
paragraphs: function (paragraphCount) {
if (typeof paragraphCount == 'undefined') { paragraphCount = 3; }
var paragraphs = [];
for (paragraphCount; paragraphCount > 0; paragraphCount--) {
paragraphs.push(faker.lorem.paragraph());
}
return paragraphs.join("\n \r\t");
self.paragraph = function (sentenceCount) {
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
return faker.lorem.sentences(sentenceCount + faker.random.number(3));
};
self.paragraphs = function (paragraphCount, separator) {
if (typeof separator === "undefined") {
separator = "\n \r";
}
if (typeof paragraphCount == 'undefined') { paragraphCount = 3; }
var paragraphs = [];
for (paragraphCount; paragraphCount > 0; paragraphCount--) {
paragraphs.push(faker.lorem.paragraph());
}
return paragraphs.join(separator);
}
return self;
};
module.exports = lorem;
module["exports"] = Lorem;

@@ -1,65 +0,97 @@

var faker = require('../index');
function Name (faker) {
var _name = {
this.firstName = function (gender) {
if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") {
// some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets,
// we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback )
if (typeof gender !== 'number') {
gender = faker.random.number(1);
}
if (gender === 0) {
return faker.random.arrayElement(faker.locales[faker.locale].name.male_first_name)
} else {
return faker.random.arrayElement(faker.locales[faker.locale].name.female_first_name);
}
}
return faker.random.arrayElement(faker.definitions.name.first_name);
};
firstName: function () {
if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") {
// some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets,
// we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback )
var rand = faker.random.number(1);
if (rand === 0) {
return faker.random.array_element(faker.locales[faker.locale].name.male_first_name);
} else {
return faker.random.array_element(faker.locales[faker.locale].name.female_first_name);
}
this.lastName = function (gender) {
if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.definitions.name.female_last_name !== "undefined") {
// some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian
// see above comment of firstName method
if (typeof gender !== 'number') {
gender = faker.random.number(1);
}
return faker.random.array_element(faker.definitions.name.first_name);
},
if (gender === 0) {
return faker.random.arrayElement(faker.locales[faker.locale].name.male_last_name);
} else {
return faker.random.arrayElement(faker.locales[faker.locale].name.female_last_name);
}
}
return faker.random.arrayElement(faker.definitions.name.last_name);
};
lastName: function () {
if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.defintions.name.female_last_name !== "undefined") {
// some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian
// see above comment of firstName method
var rand = faker.random.number(1);
if (rand === 0) {
return faker.random.array_element(faker.locales[faker.locale].name.male_last_name);
} else {
return faker.random.array_element(faker.locales[faker.locale].name.female_last_name);
}
this.findName = function (firstName, lastName, gender) {
var r = faker.random.number(8);
var prefix, suffix;
// in particular locales first and last names split by gender,
// thus we keep consistency by passing 0 as male and 1 as female
if (typeof gender !== 'number') {
gender = faker.random.number(1);
}
return faker.random.array_element(faker.definitions.name.last_name);
},
firstName = firstName || faker.name.firstName(gender);
lastName = lastName || faker.name.lastName(gender);
switch (r) {
case 0:
prefix = faker.name.prefix();
if (prefix) {
return prefix + " " + firstName + " " + lastName;
}
case 1:
suffix = faker.name.prefix();
if (suffix) {
return firstName + " " + lastName + " " + suffix;
}
}
findName: function (firstName, lastName) {
var r = faker.random.number(8);
firstName = firstName || faker.name.firstName();
lastName = lastName || faker.name.lastName();
switch (r) {
case 0:
return faker.name.prefix() + " " + firstName + " " + lastName;
case 1:
return firstName + " " + lastName + " " + faker.name.suffix();
}
return firstName + " " + lastName;
};
return firstName + " " + lastName;
},
this.jobTitle = function () {
return faker.name.jobDescriptor() + " " +
faker.name.jobArea() + " " +
faker.name.jobType();
};
prefix: function () {
return faker.random.array_element(faker.definitions.name.prefix);
},
this.prefix = function () {
return faker.random.arrayElement(faker.definitions.name.prefix);
};
suffix: function () {
return faker.random.array_element(faker.definitions.name.suffix);
},
this.suffix = function () {
return faker.random.arrayElement(faker.definitions.name.suffix);
};
title: function() {
var descriptor = faker.random.array_element(faker.definitions.name.title.descriptor),
level = faker.random.array_element(faker.definitions.name.title.level),
job = faker.random.array_element(faker.definitions.name.title.job);
this.title = function() {
var descriptor = faker.random.arrayElement(faker.definitions.name.title.descriptor),
level = faker.random.arrayElement(faker.definitions.name.title.level),
job = faker.random.arrayElement(faker.definitions.name.title.job);
return descriptor + " " + level + " " + job;
}
return descriptor + " " + level + " " + job;
};
};
this.jobDescriptor = function () {
return faker.random.arrayElement(faker.definitions.name.title.descriptor);
};
module.exports = _name;
this.jobArea = function () {
return faker.random.arrayElement(faker.definitions.name.title.level);
};
this.jobType = function () {
return faker.random.arrayElement(faker.definitions.name.title.job);
};
}
module['exports'] = Name;

@@ -1,21 +0,23 @@

var faker = require('../index');
var Phone = function (faker) {
var self = this;
var phone = {
phoneNumber: function (format) {
format = format || faker.phone.phoneFormats();
return faker.helpers.replaceSymbolWithNumber(format);
},
self.phoneNumber = function (format) {
format = format || faker.phone.phoneFormats();
return faker.helpers.replaceSymbolWithNumber(format);
};
// FIXME: this is strange passing in an array index.
phoneNumberFormat: function (phoneFormatsArrayIndex) {
phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]);
},
// FIXME: this is strange passing in an array index.
self.phoneNumberFormat = function (phoneFormatsArrayIndex) {
phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]);
};
phoneFormats: function () {
return faker.random.array_element(faker.definitions.phone_number.formats);
}
self.phoneFormats = function () {
return faker.random.arrayElement(faker.definitions.phone_number.formats);
};
return self;
};
module.exports = phone;
module['exports'] = Phone;
var mersenne = require('../vendor/mersenne');
var faker = require('../index');
var random = {
// returns a single random number based on a max number or range
number: function (options) {
function Random (faker) {
// returns a single random number based on a max number or range
this.number = function (options) {
if (typeof options === "number") {
options = {
max: options
};
}
if (typeof options === "number") {
options = {
max: options
};
}
options = options || {};
options = options || {};
if (typeof options.min === "undefined") {
options.min = 0;
}
if (typeof options.min === "undefined") {
options.min = 0;
}
if (typeof options.max === "undefined") {
options.max = 1;
}
if (typeof options.precision === "undefined") {
options.precision = 1;
}
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));
// Make the range inclusive of the max value
var max = options.max;
if (max >= 0) {
max += options.precision;
}
return randomNumber;
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
array_element: 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
object_element: function (object, field) {
object = object || {};
var array = Object.keys(object);
var key = faker.random.array_element(array);
// takes an array and returns a random element of the array
this.arrayElement = function (array) {
array = array || ["a", "b", "c"];
var r = faker.random.number({ max: array.length - 1 });
return array[r];
}
return field === "key" ? key : object[key];
},
// takes an object and returns the randomly key or value
this.objectElement = function (object, field) {
object = object || { "foo": "bar", "too": "car" };
var array = Object.keys(object);
var key = faker.random.arrayElement(array);
uuid : function () {
var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
var replacePlaceholders = function (placeholder) {
var random = Math.random()*16|0;
var value = placeholder == 'x' ? random : (random &0x3 | 0x8);
return value.toString(16);
};
return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders);
},
return field === "key" ? key : object[key];
}
boolean: function () {
return !!faker.random.number(1)
}
};
this.uuid = function () {
var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
var replacePlaceholders = function (placeholder) {
var random = Math.random()*16|0;
var value = placeholder == 'x' ? random : (random &0x3 | 0x8);
return value.toString(16);
};
return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders);
}
module.exports = random;
this.boolean =function () {
return !!faker.random.number(1)
}
return this;
}
module['exports'] = Random;
// module.exports = random;

@@ -1,2 +0,2 @@

faker.js - Copyright (c) 2014-2015
faker.js - Copyright (c) 2010-2015
Matthew Bergman & Marak Squires

@@ -27,2 +27,2 @@ http://github.com/marak/faker.js/

OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
"name": "faker",
"description": "Generate massive amounts of fake contextual data",
"version": "2.1.5",
"version": "3.0.0",
"contributors": [
"Marak Squires <marak.squires@gmail.com>",
"Matthew Bergman <matt@novafabrica.com>",
"Tomasz Ducin <tomasz.ducin@gmail.com>"
"Matthew Bergman <matt@novafabrica.com>"
],

@@ -10,0 +9,0 @@ "repository": {

@@ -5,3 +5,3 @@ # faker.js - generate massive amounts of fake data in the browser and node.js

[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/Faker.js)
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/faker.js)

@@ -27,3 +27,3 @@ [![npm version](https://badge.fury.io/js/faker.svg)](http://badge.fury.io/js/faker)

var faker = require('./faker');
var faker = require('faker');

@@ -34,36 +34,19 @@ var randomName = faker.name.findName(); // Rowan Nikolaus

## Dependent tools
## API
### Fake JSON Schema
### Faker.fake()
Use faker generators to populate JSON Schema samples.
See: https://github.com/pateketrueke/json-schema-faker/
As of version `v3.0.0` faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format.
### CLI
**Example:**
Run faker generators from Command Line.
See: https://github.com/lestoni/faker-cli
``` js
console.log(faker.fake(', '));
// outputs: "Marks, Dean Sr."
```
## Localization
This will interpolate the format string with the value of methods `name.lastName()`, `name.firstName()`, and `name.suffix()`
As of version `v2.0.0` faker.js supports 27 different language definition packs.
### API Methods
The default language is set to English.
Setting a new locale is simple:
```js
// sets locale to de
faker.locale = "de";
```
Read further for complete list of locales.
## API
* name
* firstName
* lastName
* findName
* prefix
* suffix
* address

@@ -77,5 +60,7 @@ * zipCode

* streetSuffix
* streetPrefix
* secondaryAddress
* county
* country
* countryCode
* state

@@ -85,17 +70,10 @@ * stateAbbr

* longitude
* phone
* phoneNumber
* phoneNumberFormat
* phoneFormats
* internet
* avatar
* email
* userName
* domainName
* domainSuffix
* domainWord
* ip
* userAgent
* commerce
* color
* password
* department
* productName
* price
* productAdjective
* productMaterial
* product
* company

@@ -113,2 +91,35 @@ * suffixes

* bsNoun
* date
* past
* future
* between
* recent
* fake
* finance
* account
* accountName
* mask
* amount
* transactionType
* currencyCode
* currencyName
* currencySymbol
* hacker
* abbreviation
* adjective
* noun
* verb
* ingverb
* phrase
* helpers
* randomize
* slugify
* replaceSymbolWithNumber
* replaceSymbols
* shuffle
* mustache
* createCard
* contextualCard
* userCard
* createTransaction
* image

@@ -131,2 +142,16 @@ * image

* transport
* internet
* avatar
* email
* userName
* protocol
* url
* domainName
* domainSuffix
* domainWord
* ip
* userAgent
* color
* mac
* password
* lorem

@@ -138,84 +163,86 @@ * words

* paragraphs
* helpers
* randomNumber
* randomize
* slugify
* replaceSymbolWithNumber
* shuffle
* mustache
* createCard
* contextualCard
* userCard
* createTransaction
* date
* past
* future
* between
* recent
* name
* firstName
* lastName
* findName
* jobTitle
* prefix
* suffix
* title
* jobDescriptor
* jobArea
* jobType
* phone
* phoneNumber
* phoneNumberFormat
* phoneFormats
* random
* number
* array_element
* object_element
* arrayElement
* objectElement
* uuid
* finance
* account
* accountName
* mask
* amount
* transactionType
* currencyCode
* currencyName
* currencySymbol
* hacker
* abbreviation
* adjective
* noun
* verb
* ingverb
* phrase
* locales
* de
* de_AT
* de_CH
* en
* en_AU
* en_BORK
* en_CA
* en_GB
* en_IND
* en_US
* en_au_ocker
* es
* fa
* fr
* it
* ja
* ko
* nb_NO
* nep
* nl
* pl
* pt_BR
* ru
* sk
* sv
* vi
* zh_CN
* locale
* 0
* 1
* localeFallback
* 0
* 1
* definitions
* name
* address
* company
* lorem
* hacker
* phone_number
* finance
* internet
* boolean
## Localization
As of version `v2.0.0` faker.js supports over 27 different language definition packs.
The default language is set to English.
Setting a new locale is simple:
```js
// sets locale to de
faker.locale = "de";
```
* de
* de_AT
* de_CH
* en
* en_AU
* en_BORK
* en_CA
* en_GB
* en_IE
* en_IND
* en_US
* en_au_ocker
* es
* fa
* fr
* fr_CA
* ge
* it
* ja
* ko
* nb_NO
* nep
* nl
* pl
* pt_BR
* ru
* sk
* sv
* tr
* uk
* vi
* zh_CN
* zh_TW
### Individual Localization Packages
As of vesion `v3.0.0` faker.js supports incremental loading of locales.
By default, requiring `faker` will include *all* locale data.
In a production environment, you may only want to include the locale data for a specific set of locales.
```js
// loads only de locale
var faker = require('faker/locale/de');
```
## Tests

@@ -228,2 +255,29 @@

## Projects Built with faker.js
### Fake JSON Schema
Use faker generators to populate JSON Schema samples.
See: https://github.com/pateketrueke/json-schema-faker/
### CLI
Run faker generators from Command Line.
See: https://github.com/lestoni/faker-cli
**Want to see your project added here? Let us know!**
### Meteor
#### Meteor installation
meteor add practicalmeteor:faker
#### meteor usage, both client and server
var randomName = faker.name.findName(); // Rowan Nikolaus
var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz
var randomCard = faker.helpers.createCard(); // random contact card containing many properties
## Authors

@@ -230,0 +284,0 @@

@@ -66,4 +66,4 @@ if (typeof module !== 'undefined') {

});
describe("streetName()", function () {

@@ -104,5 +104,5 @@ beforeEach(function () {

});
describe("streetAddress()", function () {

@@ -162,7 +162,7 @@ beforeEach(function () {

});
describe("secondaryAddress()", function () {
it("randomly chooses an Apt or Suite number", function () {
sinon.spy(faker.random, 'array_element');
sinon.spy(faker.random, 'arrayElement');

@@ -177,4 +177,4 @@ var address = faker.address.secondaryAddress();

assert.ok(address);
assert.ok(faker.random.array_element.calledWith(expected_array));
faker.random.array_element.restore();
assert.ok(faker.random.arrayElement.calledWith(expected_array));
faker.random.arrayElement.restore();
});

@@ -203,2 +203,12 @@ });

describe("countryCode()", function () {
it("returns random countryCode", function () {
sinon.spy(faker.address, 'countryCode');
var countryCode = faker.address.countryCode();
assert.ok(countryCode);
assert.ok(faker.address.countryCode.called);
faker.address.countryCode.restore();
});
});
describe("state()", function () {

@@ -214,2 +224,27 @@ it("returns random state", function () {

describe("zipCode()", function () {
it("returns random zipCode", function () {
sinon.spy(faker.address, 'zipCode');
var zipCode = faker.address.zipCode();
assert.ok(zipCode);
assert.ok(faker.address.zipCode.called);
faker.address.zipCode.restore();
});
it("returns random zipCode - user specified format", function () {
var zipCode = faker.address.zipCode("?#? #?#");
assert.ok(zipCode.match(/^[A-Za-z]\d[A-Za-z]\s\d[A-Za-z]\d$/));
// try another format
zipCode = faker.address.zipCode("###-###");
assert.ok(zipCode.match(/^\d{3}-\d{3}$/));
});
it("returns zipCode with proper locale format", function () {
// we'll use the en_CA locale..
faker.locale = "en_CA";
var zipCode = faker.address.zipCode();
assert.ok(zipCode.match(/^[A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d$/));
});
});
describe("latitude()", function () {

@@ -216,0 +251,0 @@ it("returns random latitude", function () {

@@ -21,3 +21,3 @@ if (typeof module !== 'undefined') {

name: ['firstName', 'lastName', 'findName'],
name: ['firstName', 'lastName', 'findName', 'jobTitle'],

@@ -27,2 +27,4 @@ phone: ['phoneNumber'],

finance: ['account', 'accountName', 'mask', 'amount', 'transactionType', 'currencyCode', 'currencyName', 'currencySymbol']
// commerce: ['color', 'department', 'productName', 'price']
};

@@ -29,0 +31,0 @@

@@ -62,3 +62,3 @@ if (typeof module !== 'undefined') {

it("returns phrase comprising of a catch phrase adjective, descriptor, and noun", function () {
sinon.spy(faker.random, 'array_element');
sinon.spy(faker.random, 'arrayElement');
sinon.spy(faker.company, 'catchPhraseAdjective');

@@ -70,3 +70,3 @@ sinon.spy(faker.company, 'catchPhraseDescriptor');

assert.ok(phrase.split(' ').length >= 3);
assert.ok(faker.random.array_element.calledThrice);
assert.ok(faker.random.arrayElement.calledThrice);
assert.ok(faker.company.catchPhraseAdjective.calledOnce);

@@ -76,3 +76,3 @@ assert.ok(faker.company.catchPhraseDescriptor.calledOnce);

faker.random.array_element.restore();
faker.random.arrayElement.restore();
faker.company.catchPhraseAdjective.restore();

@@ -86,3 +86,3 @@ faker.company.catchPhraseDescriptor.restore();

it("returns phrase comprising of a BS adjective, buzz, and noun", function () {
sinon.spy(faker.random, 'array_element');
sinon.spy(faker.random, 'arrayElement');
sinon.spy(faker.company, 'bsAdjective');

@@ -94,3 +94,3 @@ sinon.spy(faker.company, 'bsBuzz');

assert.ok(typeof bs === 'string');
assert.ok(faker.random.array_element.calledThrice);
assert.ok(faker.random.arrayElement.calledThrice);
assert.ok(faker.company.bsAdjective.calledOnce);

@@ -100,3 +100,3 @@ assert.ok(faker.company.bsBuzz.calledOnce);

faker.random.array_element.restore();
faker.random.arrayElement.restore();
faker.company.bsAdjective.restore();

@@ -103,0 +103,0 @@ faker.company.bsBuzz.restore();

@@ -56,10 +56,2 @@ if (typeof module !== 'undefined') {

// Make sure we keep this function for backward-compatibility.
describe("randomNumber()", function () {
it("returns an integer", function () {
var num = faker.helpers.randomNumber();
assert.ok(typeof num === 'number');
});
});
// Make sure we keep this function for backward-compatibility.
describe("randomize()", function () {

@@ -66,0 +58,0 @@ it("returns a random element from an array", function () {

@@ -36,3 +36,3 @@ if (typeof module !== 'undefined') {

sinon.spy(faker.name, 'lastName');
sinon.spy(faker.random, 'array_element');
sinon.spy(faker.random, 'arrayElement');
var username = faker.internet.userName();

@@ -43,3 +43,3 @@

assert.ok(faker.name.lastName.called);
assert.ok(faker.random.array_element.calledWith(['.', '_']));
assert.ok(faker.random.arrayElement.calledWith(['.', '_']));

@@ -49,2 +49,3 @@ faker.random.number.restore();

faker.name.lastName.restore();
faker.random.arrayElement.restore();
});

@@ -138,2 +139,9 @@ });

});
describe("mac()", function () {
it("returns a random MAC address with 6 hexadecimal digits", function () {
var mac = faker.internet.mac();
assert.ok(mac.match(/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/));
});
});
});

@@ -161,3 +161,3 @@ if (typeof module !== 'undefined') {

assert.ok(typeof paragraphs === 'string');
var parts = paragraphs.split('\n \r\t');
var parts = paragraphs.split('\n \r');
assert.equal(parts.length, 3);

@@ -176,3 +176,3 @@ assert.ok(faker.lorem.paragraph.calledThrice);

assert.ok(typeof paragraphs === 'string');
var parts = paragraphs.split('\n \r\t');
var parts = paragraphs.split('\n \r');
assert.equal(parts.length, 5);

@@ -179,0 +179,0 @@

@@ -72,12 +72,33 @@ if (typeof module !== 'undefined') {

describe("title()", function () {
it("returns a random title", function () {
sinon.stub(faker.name, 'title').returns('Lead Solutions Supervisor');
it("returns a random title", function () {
sinon.stub(faker.name, 'title').returns('Lead Solutions Supervisor');
var title = faker.name.title();
var title = faker.name.title();
assert.equal(title, 'Lead Solutions Supervisor');
assert.equal(title, 'Lead Solutions Supervisor');
faker.name.title.restore();
faker.name.title.restore();
});
});
describe("jobTitle()", function () {
it("returns a job title consisting of a descriptor, area, and type", function () {
sinon.spy(faker.random, 'arrayElement');
sinon.spy(faker.name, 'jobDescriptor');
sinon.spy(faker.name, 'jobArea');
sinon.spy(faker.name, 'jobType');
var jobTitle = faker.name.jobTitle();
assert.ok(typeof jobTitle === 'string');
assert.ok(faker.random.arrayElement.calledThrice);
assert.ok(faker.name.jobDescriptor.calledOnce);
assert.ok(faker.name.jobArea.calledOnce);
assert.ok(faker.name.jobType.calledOnce);
faker.random.arrayElement.restore();
faker.name.jobDescriptor.restore();
faker.name.jobArea.restore();
faker.name.jobType.restore();
});
});
});

@@ -74,6 +74,6 @@ if (typeof module !== 'undefined') {

describe('array_element', function() {
describe('arrayElement', function() {
it('returns a random element in the array', function() {
var testArray = ['hello', 'to', 'you', 'my', 'friend'];
assert.ok(testArray.indexOf(faker.random.array_element(testArray)) > -1);
assert.ok(testArray.indexOf(faker.random.arrayElement(testArray)) > -1);
});

@@ -83,3 +83,3 @@

var testArray = ['hello'];
assert.ok(testArray.indexOf(faker.random.array_element(testArray)) > -1);
assert.ok(testArray.indexOf(faker.random.arrayElement(testArray)) > -1);
});

@@ -86,0 +86,0 @@ });

@@ -266,3 +266,3 @@ // this program is a JavaScript version of Mersenne Twister, with concealment and encapsulation in class,

exports.rand = function(max, min) {
if (!max)
if (max === undefined)
{

@@ -269,0 +269,0 @@ min = 0;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc