loredata 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +119 -0
  3. package/data/breaking-bad/addresses.json +37 -0
  4. package/data/breaking-bad/characters.json +120 -0
  5. package/data/breaking-bad/domains.json +6 -0
  6. package/data/breaking-bad/meta.json +4 -0
  7. package/data/fast-and-furious/addresses.json +28 -0
  8. package/data/fast-and-furious/characters.json +115 -0
  9. package/data/fast-and-furious/domains.json +6 -0
  10. package/data/fast-and-furious/meta.json +4 -0
  11. package/data/friends/addresses.json +34 -0
  12. package/data/friends/characters.json +176 -0
  13. package/data/friends/domains.json +6 -0
  14. package/data/friends/meta.json +1 -0
  15. package/data/game-of-thrones/addresses.json +37 -0
  16. package/data/game-of-thrones/characters.json +270 -0
  17. package/data/game-of-thrones/domains.json +6 -0
  18. package/data/game-of-thrones/meta.json +4 -0
  19. package/data/harry-potter/addresses.json +37 -0
  20. package/data/harry-potter/characters.json +125 -0
  21. package/data/harry-potter/domains.json +6 -0
  22. package/data/harry-potter/meta.json +4 -0
  23. package/data/house-md/addresses.json +32 -0
  24. package/data/house-md/characters.json +213 -0
  25. package/data/house-md/domains.json +6 -0
  26. package/data/house-md/meta.json +1 -0
  27. package/data/lost/addresses.json +31 -0
  28. package/data/lost/characters.json +204 -0
  29. package/data/lost/domains.json +6 -0
  30. package/data/lost/meta.json +1 -0
  31. package/data/matrix/addresses.json +6 -0
  32. package/data/matrix/characters.json +194 -0
  33. package/data/matrix/domains.json +6 -0
  34. package/data/matrix/meta.json +1 -0
  35. package/data/peaky-blinders/addresses.json +26 -0
  36. package/data/peaky-blinders/characters.json +198 -0
  37. package/data/peaky-blinders/domains.json +6 -0
  38. package/data/peaky-blinders/meta.json +1 -0
  39. package/data/sherlock/addresses.json +31 -0
  40. package/data/sherlock/characters.json +184 -0
  41. package/data/sherlock/domains.json +6 -0
  42. package/data/sherlock/meta.json +1 -0
  43. package/data/the-office/addresses.json +30 -0
  44. package/data/the-office/characters.json +244 -0
  45. package/data/the-office/domains.json +6 -0
  46. package/data/the-office/meta.json +4 -0
  47. package/dist/browser.cjs +321 -0
  48. package/dist/browser.cjs.map +1 -0
  49. package/dist/browser.d.cts +11 -0
  50. package/dist/browser.d.ts +11 -0
  51. package/dist/browser.js +288 -0
  52. package/dist/browser.js.map +1 -0
  53. package/dist/cli/cli.cjs +390 -0
  54. package/dist/cli/cli.cjs.map +1 -0
  55. package/dist/cli/cli.d.cts +1 -0
  56. package/dist/cli/cli.d.ts +1 -0
  57. package/dist/cli/cli.js +388 -0
  58. package/dist/cli/cli.js.map +1 -0
  59. package/dist/index.cjs +356 -0
  60. package/dist/index.cjs.map +1 -0
  61. package/dist/index.d.cts +26 -0
  62. package/dist/index.d.ts +26 -0
  63. package/dist/index.js +323 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/universe-store-DJrm7bP7.d.cts +98 -0
  66. package/dist/universe-store-DJrm7bP7.d.ts +98 -0
  67. package/package.json +77 -0
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 orchidfiles.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # loredata
2
+
3
+ [![npm version](https://img.shields.io/npm/v/loredata)](https://www.npmjs.com/package/loredata)
4
+ [![npm downloads per month](https://img.shields.io/npm/dm/loredata)](https://www.npmjs.com/package/loredata)
5
+ [![node version](https://img.shields.io/node/v/loredata)](https://nodejs.org)
6
+ [![license](https://img.shields.io/npm/l/loredata)](./LICENSE)
7
+ [![last commit](https://img.shields.io/github/last-commit/orchidfiles/loredata)](https://github.com/orchidfiles/loredata)
8
+
9
+ Generate fake personas using real characters from pop culture universes. Every field — name, email, address, profession, quote — comes from the same fictional world.
10
+
11
+ ```ts
12
+ import { person, group } from 'loredata';
13
+
14
+ const p = person({ universe: 'breaking-bad' });
15
+ // { firstName: 'Walter', lastName: 'White', email: 'heisenberg@lospollos.com', ... }
16
+
17
+ const team = group({ universe: 'game-of-thrones', size: 3 });
18
+ ```
19
+
20
+ Works in Node.js, browser, and as a CLI tool.
21
+
22
+ ## Install
23
+
24
+ ```sh
25
+ npm install loredata
26
+ ```
27
+
28
+ ## Universes
29
+
30
+ Available out of the box: `breaking-bad`, `friends`, `game-of-thrones`, `harry-potter`, `house-md`, `lost`, `fast-and-furious`, `matrix`, `peaky-blinders`, `sherlock`, `the-office`
31
+
32
+ ```ts
33
+ import { universes } from 'loredata';
34
+
35
+ universes();
36
+ // [
37
+ // { id: 'sherlock', name: 'Sherlock', characterCount: 9 },
38
+ // { id: 'game-of-thrones', name: 'Game of Thrones', characterCount: 15 },
39
+ // ...
40
+ // ]
41
+ ```
42
+
43
+ ## Persona fields
44
+
45
+ Each `Person` includes: `firstName`, `lastName`, `username`, `email`, `password`, `phone`, `address`, `profession`, `interests`, `quote`, `avatar`, `universe`.
46
+
47
+ ## Deterministic output
48
+
49
+ Pass a `seed` for reproducible results:
50
+
51
+ ```ts
52
+ const p = person({ universe: 'matrix', seed: 42 });
53
+ ```
54
+
55
+ ## Browser
56
+
57
+ ```ts
58
+ import { UniverseStore } from 'loredata/browser';
59
+ ```
60
+
61
+ No `fs` or `path` — safe for Vite, webpack, and any browser bundler.
62
+
63
+ ## CLI
64
+
65
+ ```sh
66
+ npx loredata person --universe breaking-bad
67
+ npx loredata group --universe friends --size 5
68
+ npx loredata universes
69
+ ```
70
+
71
+ ## Features
72
+
73
+ - [x] 11 universes with characters, addresses, domains
74
+ - [x] Single persona and group generation
75
+ - [x] Filter characters by interest, name, universe
76
+ - [x] Deterministic output via seed
77
+ - [x] Browser-safe entry point
78
+ - [x] CLI tool
79
+
80
+ ## Development
81
+
82
+ ```sh
83
+ git clone https://github.com/orchidfiles/loredata.git
84
+ cd loredata
85
+ pnpm install
86
+ ```
87
+
88
+ Build dev-kit (needed once, before other builds):
89
+
90
+ ```sh
91
+ pnpm --filter @loredata/dev-kit build
92
+ ```
93
+
94
+ Build the library:
95
+
96
+ ```sh
97
+ pnpm run package:build
98
+ ```
99
+
100
+ Run the demo app:
101
+
102
+ ```sh
103
+ pnpm run demo:dev
104
+ ```
105
+
106
+ ## Why
107
+
108
+ Faker.js generates random names and emails. They are internally consistent but meaningless. No shared context, no character identity.
109
+
110
+ `loredata` generates personas from real fictional characters. Each persona is recognizable and internally consistent, which makes it useful for demos, screenshots, and seed files where the content matters.
111
+
112
+ ## License
113
+
114
+ MIT
115
+
116
+ ---
117
+
118
+ Made by the author of [orchidfiles.com](https://orchidfiles.com) — essays from inside startups.
119
+ If you found `loredata` useful, you'll probably enjoy the essays.
@@ -0,0 +1,37 @@
1
+ [
2
+ {
3
+ "street": "308 Negra Arroyo Lane",
4
+ "city": "Albuquerque",
5
+ "state": "NM",
6
+ "zip": "87104",
7
+ "country": "US"
8
+ },
9
+ {
10
+ "street": "9809 Margo Street",
11
+ "city": "Albuquerque",
12
+ "state": "NM",
13
+ "zip": "87105",
14
+ "country": "US"
15
+ },
16
+ {
17
+ "street": "160 Juan Tabo Boulevard NE",
18
+ "city": "Albuquerque",
19
+ "state": "NM",
20
+ "zip": "87123",
21
+ "country": "US"
22
+ },
23
+ {
24
+ "street": "3828 Piermont Drive NE",
25
+ "city": "Albuquerque",
26
+ "state": "NM",
27
+ "zip": "87111",
28
+ "country": "US"
29
+ },
30
+ {
31
+ "street": "1216 Coal Avenue SW",
32
+ "city": "Albuquerque",
33
+ "state": "NM",
34
+ "zip": "87102",
35
+ "country": "US"
36
+ }
37
+ ]
@@ -0,0 +1,120 @@
1
+ [
2
+ {
3
+ "id": "walter-white",
4
+ "firstName": "Walter",
5
+ "lastName": "White",
6
+ "usernames": ["heisenberg", "blue_sky_cook", "danger_knocks"],
7
+ "profession": "chemistry teacher",
8
+ "interests": ["chemistry", "cooking", "family"],
9
+ "quotes": [
10
+ "I am the one who knocks.",
11
+ "Say my name.",
12
+ "I'm the danger.",
13
+ "I did it for me. I liked it. I was good at it. And I was really... I was alive.",
14
+ "Chemistry is, well technically, chemistry is the study of matter."
15
+ ],
16
+ "gender": "male",
17
+ "birthYear": 1959,
18
+ "address": { "street": "308 Negra Arroyo Lane", "city": "Albuquerque", "state": "NM", "country": "US" }
19
+ },
20
+ {
21
+ "id": "jesse-pinkman",
22
+ "firstName": "Jesse",
23
+ "lastName": "Pinkman",
24
+ "usernames": ["capncook", "yo_bitch_84", "junkyard_artist"],
25
+ "profession": "drug dealer",
26
+ "interests": ["art", "cars", "chemistry", "video games"],
27
+ "quotes": [
28
+ "Yeah, science!",
29
+ "Yeah, bitch! Magnets!",
30
+ "Yo, Mr. White! We're gonna be okay!",
31
+ "I'm the bad guy.",
32
+ "Maybe. But some people are just... broken."
33
+ ],
34
+ "gender": "male",
35
+ "birthYear": 1984
36
+ },
37
+ {
38
+ "id": "saul-goodman",
39
+ "firstName": "Saul",
40
+ "lastName": "Goodman",
41
+ "usernames": ["bettercallsaul", "slippin_jimmy", "lawman505"],
42
+ "profession": "criminal lawyer",
43
+ "interests": ["law", "money", "loopholes", "self-promotion"],
44
+ "quotes": [
45
+ "Better call Saul!",
46
+ "It's all good, man.",
47
+ "You don't want a criminal lawyer. You want a criminal lawyer.",
48
+ "Let's just say I know a guy who knows a guy. Sometimes I am the guy.",
49
+ "I fight for you, Albuquerque!"
50
+ ],
51
+ "gender": "male",
52
+ "address": { "street": "160 Juan Tabo Blvd NE", "city": "Albuquerque", "state": "NM", "country": "US" }
53
+ },
54
+ {
55
+ "id": "skyler-white",
56
+ "firstName": "Skyler",
57
+ "lastName": "White",
58
+ "usernames": ["carwash_queen", "sky.steele", "not_afraid_now"],
59
+ "profession": "accountant",
60
+ "interests": ["bookkeeping", "family", "swimming"],
61
+ "quotes": [
62
+ "Walt, I'm out.",
63
+ "I'm so sick of being afraid.",
64
+ "Someone has to protect this family from the man who protects this family.",
65
+ "I don't know what to do.",
66
+ "You've lied to me, manipulated me."
67
+ ],
68
+ "gender": "female"
69
+ },
70
+ {
71
+ "id": "hank-schrader",
72
+ "firstName": "Hank",
73
+ "lastName": "Schrader",
74
+ "usernames": ["asac_schrader", "minerals_not_rocks", "big_one_hank"],
75
+ "profession": "DEA agent",
76
+ "interests": ["beer brewing", "mineralogy", "law enforcement"],
77
+ "quotes": [
78
+ "My name is ASAC Schrader, and you can go fuck yourself.",
79
+ "You're the Devil. You're pure evil.",
80
+ "We're done. I don't know who you are. I don't even know who I'm talking to.",
81
+ "This is my chance to catch the big one.",
82
+ "Minerals, not rocks."
83
+ ],
84
+ "gender": "male"
85
+ },
86
+ {
87
+ "id": "gustavo-fring",
88
+ "firstName": "Gustavo",
89
+ "lastName": "Fring",
90
+ "usernames": ["los_pollos", "plain_sight", "chicken_man_abq"],
91
+ "profession": "fast food entrepreneur",
92
+ "interests": ["business", "cooking", "philanthropy"],
93
+ "quotes": [
94
+ "I hide in plain sight.",
95
+ "What does a man do, Walter? A man provides for his family.",
96
+ "Be careful. The next words that come out of your mouth will either save your life or end it.",
97
+ "I will not negotiate my product.",
98
+ "I was ten years building what I have."
99
+ ],
100
+ "gender": "male",
101
+ "birthYear": 1958,
102
+ "address": { "street": "4257 Isleta Blvd SW", "city": "Albuquerque", "state": "NM", "country": "US" }
103
+ },
104
+ {
105
+ "id": "mike-ehrmantraut",
106
+ "firstName": "Mike",
107
+ "lastName": "Ehrmantraut",
108
+ "usernames": ["the_cleaner", "no_half_measures", "fixer_philly"],
109
+ "profession": "private investigator",
110
+ "interests": ["security", "chess", "family"],
111
+ "quotes": [
112
+ "No more half measures.",
113
+ "Just because you shot Jesse James, don't make you Jesse James.",
114
+ "I have spent my whole life trying to work my way back from a mistake I made. And I made it worse.",
115
+ "Everyone sounds like Meryl Streep with a gun to their head.",
116
+ "You talk too much."
117
+ ],
118
+ "gender": "male"
119
+ }
120
+ ]
@@ -0,0 +1,6 @@
1
+ {
2
+ "emailDomains": ["lospollos.com", "madrigal.de", "vamonos-pest.com"],
3
+ "phonePrefixes": ["505", "575"],
4
+ "phoneEasterEggs": ["505-555-0126", "505-555-0199"],
5
+ "passwordEasterEggs": ["heisenberg", "iamthedanger", "say_my_name", "tread_lightly"]
6
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": "breaking-bad",
3
+ "name": "Breaking Bad"
4
+ }
@@ -0,0 +1,28 @@
1
+ [
2
+ {
3
+ "street": "1327 East Adams Boulevard",
4
+ "city": "Los Angeles",
5
+ "state": "CA",
6
+ "zip": "90011",
7
+ "country": "US"
8
+ },
9
+ {
10
+ "street": "Toretto's Market & Service",
11
+ "city": "Los Angeles",
12
+ "state": "CA",
13
+ "country": "US"
14
+ },
15
+ {
16
+ "city": "Miami",
17
+ "state": "FL",
18
+ "country": "US"
19
+ },
20
+ {
21
+ "city": "Tokyo",
22
+ "country": "JP"
23
+ },
24
+ {
25
+ "city": "London",
26
+ "country": "GB"
27
+ }
28
+ ]
@@ -0,0 +1,115 @@
1
+ [
2
+ {
3
+ "id": "dominic-toretto",
4
+ "firstName": "Dominic",
5
+ "lastName": "Toretto",
6
+ "usernames": ["dom_toretto", "quarter_mile_king", "ride_or_die"],
7
+ "profession": "mechanic",
8
+ "interests": ["cars", "racing", "family", "barbecue"],
9
+ "quotes": [
10
+ "I live my life a quarter mile at a time.",
11
+ "It doesn't matter if you win by an inch or a mile. Winning's winning.",
12
+ "I used to say I live my life a quarter mile at a time and I think that's why we were brothers.",
13
+ "Money will come and go. We all know that. The most important thing in life will always be the people in this room.",
14
+ "Nobody makes me do anything I don't want to."
15
+ ],
16
+ "gender": "male",
17
+ "address": {"street": "1327 East Adams Boulevard", "city": "Los Angeles", "state": "CA", "country": "US"}
18
+ },
19
+ {
20
+ "id": "brian-oconner",
21
+ "firstName": "Brian",
22
+ "lastName": "O'Conner",
23
+ "usernames": ["bsquad", "bullet_brian", "always_one_more_ride"],
24
+ "profession": "former FBI agent",
25
+ "interests": ["cars", "surfing", "racing", "family"],
26
+ "quotes": [
27
+ "I'm a boy who appreciates a good body, regardless of the make.",
28
+ "Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile.",
29
+ "Smoke him.",
30
+ "You almost had me? You never had me.",
31
+ "See you around, Dom."
32
+ ],
33
+ "gender": "male"
34
+ },
35
+ {
36
+ "id": "letty-ortiz",
37
+ "firstName": "Letty",
38
+ "lastName": "Ortiz",
39
+ "usernames": ["ghost_driver", "ride_or_die_letty", "ortiz_racing"],
40
+ "profession": "mechanic",
41
+ "interests": ["racing", "cars", "fighting", "family"],
42
+ "quotes": [
43
+ "I don't have friends. I have family.",
44
+ "You know, the thing about street fights? The street always wins.",
45
+ "I might not remember us, but I feel us.",
46
+ "You want me? You're gonna have to catch me first.",
47
+ "This is who I am."
48
+ ],
49
+ "gender": "female"
50
+ },
51
+ {
52
+ "id": "roman-pearce",
53
+ "firstName": "Roman",
54
+ "lastName": "Pearce",
55
+ "usernames": ["roman_pearce", "pretty_ricky", "no_time_to_die"],
56
+ "profession": "driver",
57
+ "interests": ["cars", "money", "women", "food"],
58
+ "quotes": [
59
+ "I don't do risk.",
60
+ "Did I just drive off a cliff?",
61
+ "We're the good guys!",
62
+ "You know what I say? I say we take the money, we take the car, and we go.",
63
+ "This is crazy. This is absolutely crazy."
64
+ ],
65
+ "gender": "male"
66
+ },
67
+ {
68
+ "id": "tej-parker",
69
+ "firstName": "Tej",
70
+ "lastName": "Parker",
71
+ "usernames": ["tej_tech", "garage_genius", "tej_parker"],
72
+ "profession": "mechanic and hacker",
73
+ "interests": ["technology", "cars", "money", "engineering"],
74
+ "quotes": [
75
+ "I'm a lover, not a fighter.",
76
+ "That's not possible.",
77
+ "Give me thirty seconds.",
78
+ "I just need to reroute the transponder through the auxiliary grid.",
79
+ "Money ain't a thing."
80
+ ],
81
+ "gender": "male"
82
+ },
83
+ {
84
+ "id": "han-lue",
85
+ "firstName": "Han",
86
+ "lastName": "Lue",
87
+ "usernames": ["han_seoul_o", "drifting_han", "tokyo_ghost"],
88
+ "profession": "driver",
89
+ "interests": ["drifting", "snacking", "cars", "travel"],
90
+ "quotes": [
91
+ "I'm always hungry, man. I just never let it affect me.",
92
+ "You know what I've learned? It's not about the destination. It's about the journey.",
93
+ "Life is simple. You make choices and you don't look back.",
94
+ "Chaos, yeah. You know what that is? It's everything. It's your life.",
95
+ "I have to try things for myself. That's just who I am."
96
+ ],
97
+ "gender": "male"
98
+ },
99
+ {
100
+ "id": "hobbs",
101
+ "firstName": "Luke",
102
+ "lastName": "Hobbs",
103
+ "usernames": ["dsp_hobbs", "diplomatic_security", "hobbs_smash"],
104
+ "profession": "DSS agent",
105
+ "interests": ["law enforcement", "fitness", "his daughter", "waffles"],
106
+ "quotes": [
107
+ "I'm gonna go home, drink a beer, and watch the game.",
108
+ "The only thing that stands between you and me is the law, and I am the law.",
109
+ "Daddy's gotta go to work.",
110
+ "You just earned yourself a dance with the devil, boy.",
111
+ "I will beat you like a Cherokee drum."
112
+ ],
113
+ "gender": "male"
114
+ }
115
+ ]
@@ -0,0 +1,6 @@
1
+ {
2
+ "emailDomains": ["torettogarage.com", "teamtorretto.net", "dsmission.gov", "racersonly.com"],
3
+ "phonePrefixes": ["213", "305", "818"],
4
+ "phoneEasterEggs": ["213-555-0174", "305-555-0327"],
5
+ "passwordEasterEggs": ["ride_or_die", "quarter_mile", "family4ever", "toretto76"]
6
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": "fast-and-furious",
3
+ "name": "Fast & Furious"
4
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "street": "90 Bedford Street",
4
+ "city": "New York",
5
+ "state": "NY",
6
+ "country": "US"
7
+ },
8
+ {
9
+ "street": "2880 Broadway",
10
+ "city": "New York",
11
+ "state": "NY",
12
+ "country": "US"
13
+ },
14
+ {
15
+ "city": "New York",
16
+ "state": "NY",
17
+ "country": "US"
18
+ },
19
+ {
20
+ "city": "Westchester",
21
+ "state": "NY",
22
+ "country": "US"
23
+ },
24
+ {
25
+ "city": "Long Island",
26
+ "state": "NY",
27
+ "country": "US"
28
+ },
29
+ {
30
+ "city": "Tulsa",
31
+ "state": "OK",
32
+ "country": "US"
33
+ }
34
+ ]
@@ -0,0 +1,176 @@
1
+ [
2
+ {
3
+ "id": "ross-geller",
4
+ "firstName": "Ross",
5
+ "lastName": "Geller",
6
+ "usernames": ["we_were_on_a_break", "divorcemaster_phd", "cookie_duuude", "pivot_guy", "homo_sapiens_are_people"],
7
+ "profession": "Paleontologist",
8
+ "interests": ["dinosaurs", "paleontology", "archaeology", "coffee", "academia", "sci-fi"],
9
+ "quotes": [
10
+ "WE WERE ON A BREAK!",
11
+ "I'm fine!",
12
+ "Someone at work ate my sandwich! MY SANDWICH!",
13
+ "I'm a paleontologist, and I have to say, evolution is not something for you to buy. Evolution is scientific fact.",
14
+ "I hate to lecture you guys but it's kind of disgraceful that a group of well-educated adults, and Joey, can't name all the states.",
15
+ "I'm going to be happy this year. I'm going to make myself happy."
16
+ ],
17
+ "gender": "male",
18
+ "address": {"city": "New York", "state": "NY", "country": "US"}
19
+ },
20
+ {
21
+ "id": "rachel-green",
22
+ "firstName": "Rachel",
23
+ "lastName": "Green",
24
+ "usernames": ["got_off_the_plane", "who_is_fica", "steamed_milk_life", "not_a_library_card", "green_with_style"],
25
+ "profession": "Fashion Executive",
26
+ "interests": ["fashion", "shopping", "coffee", "relationships", "style", "fitness"],
27
+ "quotes": [
28
+ "I got off the plane.",
29
+ "Who's FICA? Why is he getting all my money?",
30
+ "I can't believe I have to walk down the aisle in front of 200 people looking like something you drink when you're nauseous!",
31
+ "I wasn't supposed to put beef in the trifle!",
32
+ "It's not that common, it doesn't happen to every guy, and it is a big deal!"
33
+ ],
34
+ "gender": "female",
35
+ "address": {"street": "90 Bedford Street", "city": "New York", "state": "NY", "country": "US"}
36
+ },
37
+ {
38
+ "id": "chandler-bing",
39
+ "firstName": "Chandler",
40
+ "lastName": "Bing",
41
+ "usernames": ["jokes_when_uncomfortable", "the_nubbin", "could_i_be_more_sarcastic", "transponster", "bing_no_first_name"],
42
+ "profession": "Statistical Analysis and Data Reconfiguration",
43
+ "interests": ["TV", "sarcasm", "foosball", "comedy", "movies", "video games"],
44
+ "quotes": [
45
+ "I make jokes when I'm uncomfortable.",
46
+ "Could I BE wearing any more clothes?",
47
+ "The meaning of the box is threefold. One, it gives me the time to think about what I did. Two, it proves how much I care about my friendship with Joey. And three... it hurts!",
48
+ "Oh, I know, this must be so hard. 'Oh, no! Two women love me. They're both gorgeous and sexy. My wallet's too small for my fifties, and my diamond shoes are too tight!'",
49
+ "When I walk outside naked, people throw garbage at me.",
50
+ "I thought this was going to be the most difficult thing I ever had to do. But when I saw you walking down that aisle, I realized how simple it was. I love you."
51
+ ],
52
+ "gender": "male",
53
+ "address": {"city": "New York", "state": "NY", "country": "US"}
54
+ },
55
+ {
56
+ "id": "monica-geller",
57
+ "firstName": "Monica",
58
+ "lastName": "Geller",
59
+ "usernames": ["big_fat_goalie", "chef_mode_on", "eleven_towel_categories", "competitive_cook", "seven_erogenous_zones"],
60
+ "profession": "Chef",
61
+ "interests": ["cooking", "cleaning", "competition", "catering", "organizing", "sports"],
62
+ "quotes": [
63
+ "Welcome to the real world. It sucks. You're gonna love it.",
64
+ "Fine! Judge all you want to, but: married a lesbian, left a man at the altar, fell in love with a gay ice dancer, threw a girl's wooden leg in a fire, LIVING IN A BOX!",
65
+ "I know of two surefire ways to shut a man up. And one of them is sex.",
66
+ "Chandler, you have to tell Joey that you're not in Tulsa.",
67
+ "I want a marriage."
68
+ ],
69
+ "gender": "female",
70
+ "address": {"street": "90 Bedford Street", "city": "New York", "state": "NY", "country": "US"}
71
+ },
72
+ {
73
+ "id": "joey-tribbiani",
74
+ "firstName": "Joey",
75
+ "lastName": "Tribbiani",
76
+ "usernames": ["how_you_doin", "joey_no_share_food", "drake_ramoray_md", "baby_kangaroo", "sandwich_first"],
77
+ "profession": "Actor",
78
+ "interests": ["food", "acting", "women", "sandwiches", "Days of Our Lives", "foosball", "sports"],
79
+ "quotes": [
80
+ "JOEY DOESN'T SHARE FOOD.",
81
+ "No, I had sex in high school.",
82
+ "Oh, is this not the good part? Well, if little Joey's dead, then I've got no reason to live.",
83
+ "You know, like a cow's opinion. It doesn't matter. It's moo.",
84
+ "The Netherlands is this make-believe place where Peter Pan and Tinkerbell come from.",
85
+ "I want girls on bread!"
86
+ ],
87
+ "gender": "male",
88
+ "address": {"city": "New York", "state": "NY", "country": "US"}
89
+ },
90
+ {
91
+ "id": "phoebe-buffay",
92
+ "firstName": "Phoebe",
93
+ "lastName": "Buffay",
94
+ "usernames": ["smelly_cat_official", "princess_consuela", "buried_alive_tombstone", "not_so_much_evolution", "stabbed_a_cop"],
95
+ "profession": "Masseuse / Singer-Songwriter",
96
+ "interests": ["music", "massage", "spirituality", "the paranormal", "vegetarianism", "cats", "knitting"],
97
+ "quotes": [
98
+ "Hello, teeny embryos. I'm Phoebe Buffay. I'm hoping to be your uterus for the next nine months.",
99
+ "I don't believe in evolution.",
100
+ "I just found a selfless good deed; I went to the park and let a bee sting me.",
101
+ "Someday I'll tell you about the time I stabbed a cop. He stabbed me first!",
102
+ "My tombstone is going to say 'Phoebe Buffay: Buried Alive.'",
103
+ "For 99 cents, I'd eat you."
104
+ ],
105
+ "gender": "female",
106
+ "address": {"city": "New York", "state": "NY", "country": "US"}
107
+ },
108
+ {
109
+ "id": "gunther",
110
+ "firstName": "Gunther",
111
+ "lastName": "",
112
+ "usernames": ["always_staring_at_rachel", "central_perk_forever", "ill_take_it_all", "blonde_barista", "unrequited_gunther"],
113
+ "profession": "Barista / Coffee Shop Manager",
114
+ "interests": ["Rachel Green", "coffee", "Central Perk", "Swedish culture"],
115
+ "quotes": [
116
+ "I'll take it all.",
117
+ "What is my last name?",
118
+ "Flexible hours.",
119
+ "Well, I wouldn't call her a star, but she's really good.",
120
+ "You don't have to fill these silences."
121
+ ],
122
+ "gender": "male",
123
+ "address": {"city": "New York", "state": "NY", "country": "US"}
124
+ },
125
+ {
126
+ "id": "janice-litman-goralnik",
127
+ "firstName": "Janice",
128
+ "lastName": "Litman-Goralnik",
129
+ "usernames": ["oh_my_god_janice", "the_chandler_magnet", "janice_is_back", "never_fully_gone", "nasal_queen_nyc"],
130
+ "profession": "Unknown",
131
+ "interests": ["Chandler Bing", "shopping", "New York", "surprises"],
132
+ "quotes": [
133
+ "Oh. My. God.",
134
+ "I brought you something. Is it loaded?",
135
+ "So, I hear you hate me.",
136
+ "A little birdie said something about ripping your arm off and throwing it at me.",
137
+ "You got 'hate' from that?"
138
+ ],
139
+ "gender": "female",
140
+ "address": {"city": "New York", "state": "NY", "country": "US"}
141
+ },
142
+ {
143
+ "id": "richard-burke",
144
+ "firstName": "Richard",
145
+ "lastName": "Burke",
146
+ "usernames": ["the_mustache_guy", "dr_burke_ophthalmologist", "too_old_for_monica", "eye_doctor_nyc", "richard_with_mustache"],
147
+ "profession": "Ophthalmologist",
148
+ "interests": ["Monica Geller", "baseball", "ophthalmology", "cigars", "cooking"],
149
+ "quotes": [
150
+ "My nose was getting lonely.",
151
+ "I see you grew your hair long.",
152
+ "I love children, I have children. I just don't want to be 70 when our kids go off to college.",
153
+ "You go get her, Chandler. And can I give you a piece of advice? If you do get her, don't let her go. Trust me.",
154
+ "You're with Chandler, a guy I really like. And if you say he's straight, I'll believe you."
155
+ ],
156
+ "gender": "male",
157
+ "address": {"city": "New York", "state": "NY", "country": "US"}
158
+ },
159
+ {
160
+ "id": "mike-hannigan",
161
+ "firstName": "Mike",
162
+ "lastName": "Hannigan",
163
+ "usernames": ["crap_bag_hannigan", "buffay_hannigan", "piano_mike", "phoebe_plus_one", "mike_not_vtox"],
164
+ "profession": "Lawyer / Pianist",
165
+ "interests": ["piano", "Phoebe Buffay", "ping pong", "law", "crosswords"],
166
+ "quotes": [
167
+ "My name is Crap Bag.",
168
+ "You know, you're right. The capital of Peru is Vtox.",
169
+ "Only if you'll be Phoebe Buffay.",
170
+ "Do you know what a banana hammock is?",
171
+ "It's a speedo!"
172
+ ],
173
+ "gender": "male",
174
+ "address": {"city": "New York", "state": "NY", "country": "US"}
175
+ }
176
+ ]