faker 5.3.1 → 5.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. package/{.jshintignore → .eslintignore} +0 -0
  2. package/.eslintrc +54 -0
  3. package/.travis.yml +3 -0
  4. package/Readme.md +48 -3
  5. package/dist/faker.js +71873 -39072
  6. package/dist/faker.min.js +1 -1
  7. package/lib/address.js +121 -107
  8. package/lib/animal.js +124 -0
  9. package/lib/commerce.js +16 -16
  10. package/lib/company.js +8 -8
  11. package/lib/database.js +4 -4
  12. package/lib/datatype.js +226 -0
  13. package/lib/date.js +94 -72
  14. package/lib/finance.js +44 -22
  15. package/lib/git.js +1 -1
  16. package/lib/helpers.js +8 -8
  17. package/lib/iban.js +22 -14
  18. package/lib/image.js +14 -14
  19. package/lib/image_providers/lorempixel.js +1 -1
  20. package/lib/index.js +58 -47
  21. package/lib/internet.js +148 -119
  22. package/lib/locales/af_ZA/name/female_first_name.js +112 -112
  23. package/lib/locales/af_ZA/name/first_name.js +222 -222
  24. package/lib/locales/af_ZA/name/male_first_name.js +115 -115
  25. package/lib/locales/ar/address/state.js +62 -1
  26. package/lib/locales/ar/date/index.js +4 -0
  27. package/lib/locales/ar/date/month.js +63 -0
  28. package/lib/locales/ar/date/weekday.js +22 -0
  29. package/lib/locales/ar/index.js +2 -0
  30. package/lib/locales/cz/address/index.js +0 -1
  31. package/lib/locales/cz/name/first_name.js +3 -0
  32. package/lib/locales/cz/name/index.js +2 -0
  33. package/lib/locales/cz/name/last_name.js +3 -0
  34. package/lib/locales/de_CH/address/city.js +3 -0
  35. package/lib/locales/de_CH/address/city_name.js +102 -0
  36. package/lib/locales/de_CH/address/index.js +4 -0
  37. package/lib/locales/de_CH/address/state.js +28 -0
  38. package/lib/locales/de_CH/address/state_abbr.js +28 -0
  39. package/lib/locales/de_CH/name/first_name.js +336 -336
  40. package/lib/locales/de_CH/name/last_name.js +209 -209
  41. package/lib/locales/en/address/city_name.js +1002 -0
  42. package/lib/locales/en/address/country_code_alpha_3.js +250 -250
  43. package/lib/locales/en/address/index.js +1 -0
  44. package/lib/locales/en/animal/bear.js +10 -0
  45. package/lib/locales/en/animal/bird.js +916 -0
  46. package/lib/locales/en/animal/cat.js +57 -0
  47. package/lib/locales/en/animal/cetacean.js +56 -0
  48. package/lib/locales/en/animal/cow.js +521 -0
  49. package/lib/locales/en/animal/crocodilia.js +26 -0
  50. package/lib/locales/en/animal/dog.js +499 -0
  51. package/lib/locales/en/animal/fish.js +98 -0
  52. package/lib/locales/en/animal/horse.js +347 -0
  53. package/lib/locales/en/animal/index.js +16 -0
  54. package/lib/locales/en/animal/insect.js +132 -0
  55. package/lib/locales/en/animal/lion.js +9 -0
  56. package/lib/locales/en/animal/rabbit.js +51 -0
  57. package/lib/locales/en/animal/snake.js +583 -0
  58. package/lib/locales/en/animal/type.js +15 -0
  59. package/lib/locales/en/finance/currency.js +0 -4
  60. package/lib/locales/en/index.js +1 -0
  61. package/lib/locales/en/internet/avatar_uri.js +1250 -1254
  62. package/lib/locales/en/music/genre.js +18 -18
  63. package/lib/locales/en/name/binary_gender.js +4 -0
  64. package/lib/locales/en/name/female_first_name.js +501 -501
  65. package/lib/locales/en/name/gender.js +71 -71
  66. package/lib/locales/en/name/index.js +1 -0
  67. package/lib/locales/en/name/male_first_name.js +501 -501
  68. package/lib/locales/en/system/directoryPaths.js +60 -60
  69. package/lib/locales/en/vehicle/bicycle.js +20 -0
  70. package/lib/locales/en/vehicle/index.js +1 -0
  71. package/lib/locales/en_GH/address/building_number.js +5 -0
  72. package/lib/locales/en_GH/address/city.js +3 -0
  73. package/lib/locales/en_GH/address/city_name.js +355 -0
  74. package/lib/locales/en_GH/address/default_country.js +3 -0
  75. package/lib/locales/en_GH/address/index.js +12 -0
  76. package/lib/locales/en_GH/address/postcode.js +4 -0
  77. package/lib/locales/en_GH/address/state.js +18 -0
  78. package/lib/locales/en_GH/address/street_address.js +3 -0
  79. package/lib/locales/en_GH/address/street_name.js +4 -0
  80. package/lib/locales/en_GH/address/street_prefix.js +3 -0
  81. package/lib/locales/en_GH/address/street_suffix.js +10 -0
  82. package/lib/locales/en_GH/company/index.js +4 -0
  83. package/lib/locales/en_GH/company/name.js +4 -0
  84. package/lib/locales/en_GH/company/suffix.js +4 -0
  85. package/lib/locales/en_GH/index.js +8 -0
  86. package/lib/locales/en_GH/internet/domain_suffix.js +11 -0
  87. package/lib/locales/en_GH/internet/index.js +3 -0
  88. package/lib/locales/en_GH/name/female_first_name.js +146 -0
  89. package/lib/locales/en_GH/name/first_name.js +4 -0
  90. package/lib/locales/en_GH/name/index.js +7 -0
  91. package/lib/locales/en_GH/name/last_name.js +124 -0
  92. package/lib/locales/en_GH/name/male_first_name.js +134 -0
  93. package/lib/locales/en_GH/name/name.js +6 -0
  94. package/lib/locales/en_GH/phone_number/formats.js +28 -0
  95. package/lib/locales/{nep → en_GH}/phone_number/index.js +0 -0
  96. package/lib/locales/en_NG/address/city_prefix.js +525 -525
  97. package/lib/locales/en_NG/address/state.js +37 -37
  98. package/lib/locales/en_NG/name/female_first_name.js +13 -13
  99. package/lib/locales/en_NG/name/first_name.js +33 -33
  100. package/lib/locales/en_NG/name/male_first_name.js +22 -22
  101. package/lib/locales/en_NG/phone_number/formats.js +5 -5
  102. package/lib/locales/en_US/address/postcode_by_state.js +104 -104
  103. package/lib/locales/en_ZA/address/city_prefix.js +14 -14
  104. package/lib/locales/en_ZA/address/state.js +9 -9
  105. package/lib/locales/en_ZA/cell_phone/formats.js +18 -18
  106. package/lib/locales/en_ZA/name/female_first_name.js +292 -292
  107. package/lib/locales/en_ZA/name/first_name.js +539 -539
  108. package/lib/locales/en_ZA/name/male_first_name.js +252 -252
  109. package/lib/locales/es/commerce/color.js +9 -9
  110. package/lib/locales/es/commerce/department.js +19 -19
  111. package/lib/locales/es/commerce/product_name.js +54 -54
  112. package/lib/locales/es/name/female_first_name.js +12 -12
  113. package/lib/locales/es/name/male_first_name.js +17 -17
  114. package/lib/locales/es_MX/address/street.js +39 -39
  115. package/lib/locales/es_MX/commerce/color.js +31 -31
  116. package/lib/locales/es_MX/commerce/department.js +22 -22
  117. package/lib/locales/es_MX/commerce/product_name.js +56 -56
  118. package/lib/locales/es_MX/company/bs_noun.js +44 -44
  119. package/lib/locales/es_MX/company/bs_verb.js +60 -60
  120. package/lib/locales/es_MX/lorem/words.js +268 -268
  121. package/lib/locales/es_MX/name/first_name.js +304 -304
  122. package/lib/locales/es_MX/name/last_name.js +686 -686
  123. package/lib/locales/es_MX/name/title.js +1 -1
  124. package/lib/locales/es_MX/team/creature.js +66 -66
  125. package/lib/locales/fa/name/female_first_name.js +67 -67
  126. package/lib/locales/fa/name/male_first_name.js +74 -74
  127. package/lib/locales/fa/vehicle/model.js +1 -1
  128. package/lib/locales/fi/name/female_first_name.js +50 -50
  129. package/lib/locales/fi/name/first_name.js +100 -100
  130. package/lib/locales/fi/name/last_name.js +50 -50
  131. package/lib/locales/fi/name/male_first_name.js +50 -50
  132. package/lib/locales/fr/address/city_name.js +84 -84
  133. package/lib/locales/fr/address/country.js +195 -0
  134. package/lib/locales/fr/address/index.js +1 -0
  135. package/lib/locales/fr/name/female_first_name.js +451 -451
  136. package/lib/locales/fr/name/first_name.js +3 -0
  137. package/lib/locales/fr/name/index.js +1 -0
  138. package/lib/locales/fr/name/male_first_name.js +496 -496
  139. package/lib/locales/fr_BE/adresses/building_number.js +12 -0
  140. package/lib/locales/fr_BE/adresses/city.js +4 -0
  141. package/lib/locales/fr_BE/adresses/city_prefix.js +265 -0
  142. package/lib/locales/fr_BE/adresses/city_suffix.js +6 -0
  143. package/lib/locales/fr_BE/adresses/default_country.js +3 -0
  144. package/lib/locales/fr_BE/adresses/index.js +25 -0
  145. package/lib/locales/fr_BE/adresses/postcode.js +3 -0
  146. package/lib/locales/fr_BE/adresses/state.js +12 -0
  147. package/lib/locales/fr_BE/adresses/state_abbr.js +11 -0
  148. package/lib/locales/fr_BE/adresses/street_address.js +3 -0
  149. package/lib/locales/fr_BE/adresses/street_name.js +5 -0
  150. package/lib/locales/fr_BE/adresses/street_prefix.js +21 -0
  151. package/lib/locales/fr_BE/adresses/street_suffix.js +212 -0
  152. package/lib/locales/fr_BE/cell_phone/formats.js +34 -0
  153. package/lib/locales/fr_BE/cell_phone/index.js +3 -0
  154. package/lib/locales/fr_BE/index.js +20 -0
  155. package/lib/locales/fr_BE/internet/domain_suffix.js +10 -0
  156. package/lib/locales/fr_BE/internet/free_email.js +6 -0
  157. package/lib/locales/{nep → fr_BE}/internet/index.js +0 -0
  158. package/lib/locales/fr_BE/name/first_name.js +3009 -0
  159. package/lib/locales/fr_BE/name/first_name_female.js +1532 -0
  160. package/lib/locales/fr_BE/name/first_name_male.js +1482 -0
  161. package/lib/locales/fr_BE/name/gender.js +10 -0
  162. package/lib/locales/fr_BE/name/index.js +11 -0
  163. package/lib/locales/fr_BE/name/last_name.js +624 -0
  164. package/lib/locales/fr_BE/name/name.js +8 -0
  165. package/lib/locales/fr_BE/name/prefix.js +6 -0
  166. package/lib/locales/fr_BE/name/suffix.js +8 -0
  167. package/lib/locales/fr_BE/name/title.js +22 -0
  168. package/lib/locales/fr_BE/phone_number/formats.js +93 -0
  169. package/lib/locales/fr_BE/phone_number/index.js +3 -0
  170. package/lib/locales/hr/address/city_name.js +128 -128
  171. package/lib/locales/hr/address/country.js +246 -246
  172. package/lib/locales/hr/address/street.js +375 -375
  173. package/lib/locales/hr/date/month.js +24 -24
  174. package/lib/locales/hr/date/weekday.js +7 -7
  175. package/lib/locales/hr/name/female_first_name.js +238 -238
  176. package/lib/locales/hr/name/first_name.js +409 -409
  177. package/lib/locales/hr/name/last_name.js +11617 -11617
  178. package/lib/locales/hr/name/male_first_name.js +171 -171
  179. package/lib/locales/hr/name/name.js +6 -6
  180. package/lib/locales/hr/name/prefix.js +5 -5
  181. package/lib/locales/hr/name/suffix.js +2 -2
  182. package/lib/locales/hy/address/building_number.js +8 -0
  183. package/lib/locales/hy/address/city.js +4 -0
  184. package/lib/locales/hy/address/city_prefix.js +7 -0
  185. package/lib/locales/hy/address/city_suffix.js +5 -0
  186. package/lib/locales/hy/address/country.js +231 -0
  187. package/lib/locales/hy/address/default_country.js +3 -0
  188. package/lib/locales/hy/address/direction.js +10 -0
  189. package/lib/locales/hy/address/index.js +14 -0
  190. package/lib/locales/hy/address/secondary_address.js +4 -0
  191. package/lib/locales/hy/address/state.js +21 -0
  192. package/lib/locales/hy/address/street_address.js +3 -0
  193. package/lib/locales/hy/address/street_name.js +3 -0
  194. package/lib/locales/hy/address/street_suffix.js +4 -0
  195. package/lib/locales/hy/commerce/color.js +14 -0
  196. package/lib/locales/hy/commerce/index.js +3 -0
  197. package/lib/locales/hy/date/index.js +4 -0
  198. package/lib/locales/hy/date/month.js +30 -0
  199. package/lib/locales/hy/date/weekday.js +21 -0
  200. package/lib/locales/hy/index.js +11 -0
  201. package/lib/locales/hy/internet/domain_suffix.js +9 -0
  202. package/lib/locales/hy/internet/index.js +3 -0
  203. package/lib/locales/hy/lorem/index.js +3 -0
  204. package/lib/locales/hy/lorem/words.js +191 -0
  205. package/lib/locales/hy/name/female_first_name.js +48 -0
  206. package/lib/locales/hy/name/first_name.js +93 -0
  207. package/lib/locales/hy/name/index.js +7 -0
  208. package/lib/locales/hy/name/last_name.js +94 -0
  209. package/lib/locales/hy/name/male_first_name.js +47 -0
  210. package/lib/locales/hy/name/name.js +8 -0
  211. package/lib/locales/hy/phone_number/formats.js +4 -0
  212. package/lib/locales/hy/phone_number/index.js +3 -0
  213. package/lib/locales/id_ID/name/female_first_name.js +45 -1
  214. package/lib/locales/id_ID/name/female_last_name.js +41 -1
  215. package/lib/locales/id_ID/name/male_last_name.js +47 -2
  216. package/lib/locales/it/address/city_name.js +981 -0
  217. package/lib/locales/it/address/index.js +1 -0
  218. package/lib/locales/it/name/last_name.js +2163 -628
  219. package/lib/locales/ja/address/country.js +169 -0
  220. package/lib/locales/ja/address/index.js +1 -0
  221. package/lib/locales/ko/address/postcode.js +2 -1
  222. package/lib/locales/ko/name/first_name.js +2994 -1
  223. package/lib/locales/ko/name/last_name.js +98 -1
  224. package/lib/locales/lv/commerce/product_name.js +14 -14
  225. package/lib/locales/nb_NO/name/index.js +2 -2
  226. package/lib/locales/{nep → ne}/address/city.js +0 -0
  227. package/lib/locales/{nep → ne}/address/default_country.js +0 -0
  228. package/lib/locales/{nep → ne}/address/index.js +0 -0
  229. package/lib/locales/{nep → ne}/address/postcode.js +0 -0
  230. package/lib/locales/{nep → ne}/address/state.js +0 -0
  231. package/lib/locales/{nep → ne}/company/index.js +0 -0
  232. package/lib/locales/{nep → ne}/company/suffix.js +0 -0
  233. package/lib/locales/ne/index.js +8 -0
  234. package/lib/locales/{nep → ne}/internet/domain_suffix.js +0 -0
  235. package/lib/locales/{nep → ne}/internet/free_email.js +0 -0
  236. package/lib/locales/ne/internet/index.js +4 -0
  237. package/lib/locales/{nep → ne}/name/first_name.js +0 -0
  238. package/lib/locales/{nep → ne}/name/index.js +0 -0
  239. package/lib/locales/{nep → ne}/name/last_name.js +0 -0
  240. package/lib/locales/{nep → ne}/phone_number/formats.js +0 -0
  241. package/lib/locales/ne/phone_number/index.js +3 -0
  242. package/lib/locales/nl/address/country.js +5 -7
  243. package/lib/locales/nl/address/secondary_address.js +2 -1
  244. package/lib/locales/nl/address/street_suffix.js +3 -1
  245. package/lib/locales/nl/commerce/color.js +38 -0
  246. package/lib/locales/nl/commerce/department.js +24 -0
  247. package/lib/locales/nl/commerce/index.js +5 -0
  248. package/lib/locales/nl/commerce/product_name.js +72 -0
  249. package/lib/locales/nl/company/suffix.js +5 -2
  250. package/lib/locales/nl/date/index.js +4 -0
  251. package/lib/locales/nl/date/month.js +63 -0
  252. package/lib/locales/nl/date/weekday.js +43 -0
  253. package/lib/locales/nl/hacker/adjective.js +25 -0
  254. package/lib/locales/nl/hacker/index.js +6 -0
  255. package/lib/locales/nl/hacker/noun.js +28 -0
  256. package/lib/locales/nl/hacker/phrase.js +10 -0
  257. package/lib/locales/nl/hacker/verb.js +23 -0
  258. package/lib/locales/nl/index.js +3 -0
  259. package/lib/locales/nl/internet/domain_suffix.js +2 -1
  260. package/lib/locales/nl/name/female_first_name.js +517 -0
  261. package/lib/locales/nl/name/index.js +2 -0
  262. package/lib/locales/nl/name/male_first_name.js +590 -0
  263. package/lib/locales/pl/name/female_first_name.js +176 -0
  264. package/lib/locales/pl/name/first_name.js +3 -410
  265. package/lib/locales/pl/name/male_first_name.js +236 -0
  266. package/lib/locales/pt_BR/address/city_suffix.js +4 -0
  267. package/lib/locales/pt_BR/address/country.js +41 -44
  268. package/lib/locales/pt_BR/address/state_abbr.js +4 -1
  269. package/lib/locales/pt_BR/company/suffix.js +1 -0
  270. package/lib/locales/pt_BR/name/female_first_name.js +82 -0
  271. package/lib/locales/pt_BR/name/index.js +2 -0
  272. package/lib/locales/pt_BR/name/male_first_name.js +90 -0
  273. package/lib/locales/pt_BR/name/name.js +8 -0
  274. package/lib/locales/pt_BR/name/prefix.js +2 -1
  275. package/lib/locales/pt_PT/phone_number/formats.js +1 -0
  276. package/lib/locales/ro/address/city.js +300 -300
  277. package/lib/locales/ro/address/county.js +42 -42
  278. package/lib/locales/ro/address/state.js +42 -42
  279. package/lib/locales/ro/address/state_abbr.js +42 -42
  280. package/lib/locales/ro/address/street_address.js +1 -1
  281. package/lib/locales/ro/address/street_suffix.js +3 -3
  282. package/lib/locales/ro/address/streets.js +100 -100
  283. package/lib/locales/ro/cell_phone/formats.js +59 -59
  284. package/lib/locales/ro/internet/domain_suffix.js +19 -19
  285. package/lib/locales/ro/internet/index.js +0 -1
  286. package/lib/locales/ro/name/female_first_name.js +387 -387
  287. package/lib/locales/ro/name/last_name.js +300 -300
  288. package/lib/locales/ro/name/male_first_name.js +288 -288
  289. package/lib/locales/ro/name/name.js +32 -32
  290. package/lib/locales/ro/name/prefix.js +3 -3
  291. package/lib/locales/ro/name/suffix.js +2 -2
  292. package/lib/locales/ro/phone_number/formats.js +82 -82
  293. package/lib/locales/sk/address/index.js +0 -1
  294. package/lib/locales/tr/name/female_first_name.js +416 -0
  295. package/lib/locales/tr/name/index.js +2 -0
  296. package/lib/locales/tr/name/male_first_name.js +754 -0
  297. package/lib/locales/tr/name/name.js +2 -2
  298. package/lib/locales/vi/name/female_first_name.js +1312 -0
  299. package/lib/locales/vi/name/first_name.js +3 -28
  300. package/lib/locales/vi/name/index.js +5 -3
  301. package/lib/locales/vi/name/last_name.js +1 -48
  302. package/lib/locales/vi/name/male_first_name.js +1227 -0
  303. package/lib/locales/vi/name/name.js +3 -2
  304. package/lib/locales/zu_ZA/name/female_first_name.js +50 -50
  305. package/lib/locales/zu_ZA/name/first_name.js +100 -100
  306. package/lib/locales/zu_ZA/name/last_name.js +100 -100
  307. package/lib/locales/zu_ZA/name/male_first_name.js +51 -51
  308. package/lib/locales.js +2 -1
  309. package/lib/lorem.js +25 -25
  310. package/lib/mersenne.js +31 -0
  311. package/lib/music.js +9 -9
  312. package/lib/name.js +36 -32
  313. package/lib/phone_number.js +4 -4
  314. package/lib/random.js +138 -150
  315. package/lib/system.js +114 -63
  316. package/lib/time.js +1 -1
  317. package/lib/vehicle.js +38 -4
  318. package/locale/ReadMe.md +1 -1
  319. package/locale/en.js +1 -1
  320. package/locale/en_GH.js +5 -0
  321. package/locale/hy.js +5 -0
  322. package/locale/ne.js +5 -0
  323. package/package.json +4 -3
  324. package/vendor/mersenne.js +194 -222
  325. package/vendor/user-agent.js +155 -155
  326. package/.jshintrc +0 -87
  327. package/lib/locales/cz/address/time_zone.js +0 -145
  328. package/lib/locales/el/internet/avatar_uri.js +0 -1256
  329. package/lib/locales/nep/index.js +0 -8
  330. package/lib/locales/ro/internet/avatar_uri.js +0 -1265
  331. package/lib/locales/sk/address/time_zone.js +0 -145
  332. package/locale/nep.js +0 -5
package/lib/system.js CHANGED
@@ -1,26 +1,52 @@
1
1
  // generates fake data for many computer systems properties
2
2
 
3
+ var commonFileTypes = [
4
+ "video",
5
+ "audio",
6
+ "image",
7
+ "text",
8
+ "application"
9
+ ];
10
+
11
+ var commonMimeTypes = [
12
+ "application/pdf",
13
+ "audio/mpeg",
14
+ "audio/wav",
15
+ "image/png",
16
+ "image/jpeg",
17
+ "image/gif",
18
+ "video/mp4",
19
+ "video/mpeg",
20
+ "text/html"
21
+ ];
22
+
23
+ function setToArray(set) {
24
+ // shortcut if Array.from is available
25
+ if (Array.from) { return Array.from(set); }
26
+
27
+ var array = [];
28
+ set.forEach(function (item) {
29
+ array.push(item);
30
+ });
31
+ return array;
32
+ }
33
+
3
34
  /**
4
35
  *
5
36
  * @namespace faker.system
6
37
  */
7
- function System (faker) {
38
+ function System(faker) {
8
39
 
9
40
  /**
10
- * generates a file name with extension or optional type
41
+ * generates a file name
11
42
  *
12
43
  * @method faker.system.fileName
13
- * @param {string} ext
14
- * @param {string} type
15
44
  */
16
- this.fileName = function (ext, type) {
17
- var str = faker.fake("{{random.words}}.{{system.fileExt}}");
18
- str = str.replace(/ /g, '_');
19
- str = str.replace(/\,/g, '_');
20
- str = str.replace(/\-/g, '_');
21
- str = str.replace(/\\/g, '_');
22
- str = str.replace(/\//g, '_');
23
- str = str.toLowerCase();
45
+ this.fileName = function () {
46
+ var str = faker.random.words();
47
+ str = str
48
+ .toLowerCase()
49
+ .replace(/\W/g, "_") + "." + faker.system.fileExt();;
24
50
  return str;
25
51
  };
26
52
 
@@ -29,16 +55,13 @@ function System (faker) {
29
55
  *
30
56
  * @method faker.system.commonFileName
31
57
  * @param {string} ext
32
- * @param {string} type
33
58
  */
34
- this.commonFileName = function (ext, type) {
35
- var str = faker.random.words() + "." + (ext || faker.system.commonFileExt());
36
- str = str.replace(/ /g, '_');
37
- str = str.replace(/\,/g, '_');
38
- str = str.replace(/\-/g, '_');
39
- str = str.replace(/\\/g, '_');
40
- str = str.replace(/\//g, '_');
41
- str = str.toLowerCase();
59
+ this.commonFileName = function (ext) {
60
+ var str = faker.random.words();
61
+ str = str
62
+ .toLowerCase()
63
+ .replace(/\W/g, "_");
64
+ str += "." + (ext || faker.system.commonFileExt());
42
65
  return str;
43
66
  };
44
67
 
@@ -48,7 +71,27 @@ function System (faker) {
48
71
  * @method faker.system.mimeType
49
72
  */
50
73
  this.mimeType = function () {
51
- return faker.random.arrayElement(Object.keys(faker.definitions.system.mimeTypes));
74
+ var typeSet = new Set();
75
+ var extensionSet = new Set();
76
+ var mimeTypes = faker.definitions.system.mimeTypes;
77
+
78
+ Object.keys(mimeTypes).forEach(function (m) {
79
+ var type = m.split("/")[0];
80
+
81
+ typeSet.add(type);
82
+
83
+ if (mimeTypes[m].extensions instanceof Array) {
84
+ mimeTypes[m].extensions.forEach(function (ext) {
85
+ extensionSet.add(ext);
86
+ });
87
+ }
88
+ });
89
+
90
+ var types = setToArray(typeSet);
91
+ var extensions = setToArray(extensionSet);
92
+ var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
93
+
94
+ return faker.random.arrayElement(mimeTypeKeys);
52
95
  };
53
96
 
54
97
  /**
@@ -57,29 +100,16 @@ function System (faker) {
57
100
  * @method faker.system.commonFileType
58
101
  */
59
102
  this.commonFileType = function () {
60
- var types = ['video', 'audio', 'image', 'text', 'application'];
61
- return faker.random.arrayElement(types)
103
+ return faker.random.arrayElement(commonFileTypes);
62
104
  };
63
105
 
64
106
  /**
65
- * returns a commonly used file extension based on optional type
107
+ * returns a commonly used file extension
66
108
  *
67
109
  * @method faker.system.commonFileExt
68
- * @param {string} type
69
110
  */
70
- this.commonFileExt = function (type) {
71
- var types = [
72
- 'application/pdf',
73
- 'audio/mpeg',
74
- 'audio/wav',
75
- 'image/png',
76
- 'image/jpeg',
77
- 'image/gif',
78
- 'video/mp4',
79
- 'video/mpeg',
80
- 'text/html'
81
- ];
82
- return faker.system.fileExt(faker.random.arrayElement(types));
111
+ this.commonFileExt = function () {
112
+ return faker.system.fileExt(faker.random.arrayElement(commonMimeTypes));
83
113
  };
84
114
 
85
115
 
@@ -89,15 +119,27 @@ function System (faker) {
89
119
  * @method faker.system.fileType
90
120
  */
91
121
  this.fileType = function () {
92
- var types = [];
93
- var mimes = faker.definitions.system.mimeTypes;
94
- Object.keys(mimes).forEach(function(m){
95
- var parts = m.split('/');
96
- if (types.indexOf(parts[0]) === -1) {
97
- types.push(parts[0]);
122
+ var typeSet = new Set();
123
+ var extensionSet = new Set();
124
+ var mimeTypes = faker.definitions.system.mimeTypes;
125
+
126
+ Object.keys(mimeTypes).forEach(function (m) {
127
+ var type = m.split("/")[0];
128
+
129
+ typeSet.add(type);
130
+
131
+ if (mimeTypes[m].extensions instanceof Array) {
132
+ mimeTypes[m].extensions.forEach(function (ext) {
133
+ extensionSet.add(ext);
134
+ });
98
135
  }
99
136
  });
137
+
138
+ var types = setToArray(typeSet);
139
+ var extensions = setToArray(extensionSet);
140
+ var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
100
141
  return faker.random.arrayElement(types);
142
+
101
143
  };
102
144
 
103
145
  /**
@@ -107,23 +149,32 @@ function System (faker) {
107
149
  * @param {string} mimeType
108
150
  */
109
151
  this.fileExt = function (mimeType) {
110
- var exts = [];
111
- var mimes = faker.definitions.system.mimeTypes;
152
+ var typeSet = new Set();
153
+ var extensionSet = new Set();
154
+ var mimeTypes = faker.definitions.system.mimeTypes;
112
155
 
113
- // get specific ext by mime-type
114
- if (typeof mimes[mimeType] === "object") {
115
- return faker.random.arrayElement(mimes[mimeType].extensions);
116
- }
156
+ Object.keys(mimeTypes).forEach(function (m) {
157
+ var type = m.split("/")[0];
117
158
 
118
- // reduce mime-types to those with file-extensions
119
- Object.keys(mimes).forEach(function(m){
120
- if (mimes[m].extensions instanceof Array) {
121
- mimes[m].extensions.forEach(function(ext){
122
- exts.push(ext)
159
+ typeSet.add(type);
160
+
161
+ if (mimeTypes[m].extensions instanceof Array) {
162
+ mimeTypes[m].extensions.forEach(function (ext) {
163
+ extensionSet.add(ext);
123
164
  });
124
165
  }
125
166
  });
126
- return faker.random.arrayElement(exts);
167
+
168
+ var types = setToArray(typeSet);
169
+ var extensions = setToArray(extensionSet);
170
+ var mimeTypeKeys = Object.keys(faker.definitions.system.mimeTypes);
171
+
172
+ if (mimeType) {
173
+ var mimes = faker.definitions.system.mimeTypes;
174
+ return faker.random.arrayElement(mimes[mimeType].extensions);
175
+ }
176
+
177
+ return faker.random.arrayElement(extensions);
127
178
  };
128
179
 
129
180
  /**
@@ -132,8 +183,8 @@ function System (faker) {
132
183
  * @method faker.system.directoryPath
133
184
  */
134
185
  this.directoryPath = function () {
135
- var paths = faker.definitions.system.directoryPaths
136
- return faker.random.arrayElement(paths);
186
+ var paths = faker.definitions.system.directoryPaths
187
+ return faker.random.arrayElement(paths);
137
188
  };
138
189
 
139
190
  /**
@@ -142,7 +193,7 @@ function System (faker) {
142
193
  * @method faker.system.filePath
143
194
  */
144
195
  this.filePath = function () {
145
- return faker.fake("{{system.directoryPath}}/{{system.fileName}}");
196
+ return faker.fake("{{system.directoryPath}}/{{system.fileName}}.{{system.fileExt}}");
146
197
  };
147
198
 
148
199
  /**
@@ -151,9 +202,9 @@ function System (faker) {
151
202
  * @method faker.system.semver
152
203
  */
153
204
  this.semver = function () {
154
- return [faker.random.number(9),
155
- faker.random.number(9),
156
- faker.random.number(9)].join('.');
205
+ return [faker.datatype.number(9),
206
+ faker.datatype.number(9),
207
+ faker.datatype.number(9)].join('.');
157
208
  }
158
209
 
159
210
  }
package/lib/time.js CHANGED
@@ -13,7 +13,7 @@ var _Time = function(faker) {
13
13
  */
14
14
  self.recent = function(outputType) {
15
15
  if (typeof outputType === "undefined") {
16
- outputType = 'unix';
16
+ outputType = 'unix';
17
17
  }
18
18
 
19
19
  var date = new Date();
package/lib/vehicle.js CHANGED
@@ -83,11 +83,12 @@ var Vehicle = function (faker) {
83
83
  * @method faker.vehicle.vin
84
84
  */
85
85
  self.vin = function () {
86
+ var bannedChars=['o','i','q'];
86
87
  return (
87
- faker.random.alphaNumeric(10) +
88
- faker.random.alpha({ count: 1, upcase: true }) +
89
- faker.random.alphaNumeric(1) +
90
- faker.random.number({ min: 10000, max: 100000}) // return five digit #
88
+ faker.random.alphaNumeric(10, {bannedChars:bannedChars}) +
89
+ faker.random.alpha({ count: 1, upcase: true ,bannedChars:bannedChars}) +
90
+ faker.random.alphaNumeric(1, {bannedChars:bannedChars}) +
91
+ faker.datatype.number({ min: 10000, max: 100000}) // return five digit #
91
92
  ).toUpperCase();
92
93
  };
93
94
 
@@ -109,6 +110,39 @@ var Vehicle = function (faker) {
109
110
  "description": "Generates a color",
110
111
  "sampleResults": ["red", "white", "black"]
111
112
  };
113
+
114
+ /**
115
+ * vrm
116
+ *
117
+ * @method faker.vehicle.vrm
118
+ */
119
+ self.vrm = function () {
120
+ return (
121
+ faker.random.alpha({ count: 2, upcase: true }) +
122
+ faker.datatype.number({ min: 0, max: 9 }) +
123
+ faker.datatype.number({ min: 0, max: 9 }) +
124
+ faker.random.alpha({ count: 3, upcase: true })
125
+ ).toUpperCase();
126
+ };
127
+
128
+ self.vrm.schema = {
129
+ "description": "Generates a vehicle vrm",
130
+ "sampleResults": ["MF56UPA", "GL19AAQ", "SF20TTA"]
131
+ };
132
+
133
+ /**
134
+ * bicycle
135
+ *
136
+ * @method faker.vehicle.bicycle
137
+ */
138
+ self.bicycle = function () {
139
+ return faker.random.arrayElement(faker.definitions.vehicle.bicycle_type);
140
+ };
141
+
142
+ self.bicycle.schema = {
143
+ "description": "Generates a type of bicycle",
144
+ "sampleResults": ["Adventure Road Bicycle", "City Bicycle", "Recumbent Bicycle"]
145
+ };
112
146
  };
113
147
 
114
148
  module["exports"] = Vehicle;
package/locale/ReadMe.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The files in this directory have been auto-generated from the `gulpfile`.
4
4
 
5
- These file exist in order to allow users to require the `faker` library using a specific locale ( instead of the default behavior or loading all all locales ).
5
+ These file exist in order to allow users to require the `faker` library using a specific locale ( instead of the default behavior or loading all locales ).
6
6
 
7
7
  Example:
8
8
 
package/locale/en.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var Faker = require('../lib');
2
2
  var faker = new Faker({ locale: 'en', localeFallback: 'en' });
3
3
  faker.locales['en'] = require('../lib/locales/en');
4
- faker.locales['en'] = require('../lib/locales/en');
4
+
5
5
  module['exports'] = faker;
@@ -0,0 +1,5 @@
1
+ var Faker = require('../lib');
2
+ var faker = new Faker({ locale: 'en_GH', localeFallback: 'en' });
3
+ faker.locales['en_GH'] = require('../lib/locales/en_GH');
4
+ faker.locales['en'] = require('../lib/locales/en');
5
+ module['exports'] = faker;
package/locale/hy.js ADDED
@@ -0,0 +1,5 @@
1
+ var Faker = require('../lib');
2
+ var faker = new Faker({ locale: 'hy', localeFallback: 'en' });
3
+ faker.locales['hy'] = require('../lib/locales/hy');
4
+ faker.locales['en'] = require('../lib/locales/en');
5
+ module['exports'] = faker;
package/locale/ne.js ADDED
@@ -0,0 +1,5 @@
1
+ var Faker = require('../lib');
2
+ var faker = new Faker({ locale: 'ne', localeFallback: 'en' });
3
+ faker.locales['ne'] = require('../lib/locales/ne');
4
+ faker.locales['en'] = require('../lib/locales/en');
5
+ module['exports'] = faker;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "faker",
3
3
  "description": "Generate massive amounts of fake contextual data",
4
- "version": "5.3.1",
4
+ "version": "5.5.2",
5
5
  "contributors": [
6
6
  "Marak Squires <marak.squires@gmail.com>"
7
7
  ],
@@ -13,7 +13,7 @@
13
13
  "browser": "./node_modules/.bin/gulp browser",
14
14
  "jsdoc": "./node_modules/.bin/gulp jsdoc",
15
15
  "readme": "./node_modules/.bin/gulp readme",
16
- "lint": "node_modules/.bin/jshint ./lib --config ./.jshintrc",
16
+ "lint": "node_modules/.bin/eslint ./lib/animal.js",
17
17
  "test": "node_modules/.bin/mocha test/*.*.js",
18
18
  "coverage": "nyc report --reporter=text-lcov | coveralls"
19
19
  },
@@ -51,9 +51,10 @@
51
51
  "gulp-mustache": "^5.0.0",
52
52
  "gulp-rename": "^2.0.0",
53
53
  "gulp-uglify": "^3.0.2",
54
+ "eslint": "^6.5.1",
54
55
  "ink-docstrap": "1.1.4",
55
56
  "jsdoc": "^3.4.0",
56
- "jshint": "0.9.0",
57
+ "lint-staged": "^9.4.2",
57
58
  "lodash": "^4.6.1",
58
59
  "mocha": "^8.1.1",
59
60
  "node-minify": "*",