sonamu 0.7.53 → 0.8.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 (271) hide show
  1. package/dist/api/config.d.ts +9 -1
  2. package/dist/api/config.d.ts.map +1 -1
  3. package/dist/api/config.js +1 -1
  4. package/dist/api/sonamu.d.ts +21 -1
  5. package/dist/api/sonamu.d.ts.map +1 -1
  6. package/dist/api/sonamu.js +159 -65
  7. package/dist/auth/plugins/entity-definitions/anonymous.d.ts +10 -0
  8. package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -0
  9. package/dist/auth/plugins/entity-definitions/anonymous.js +23 -0
  10. package/dist/auth/plugins/entity-definitions/api-key.d.ts +9 -0
  11. package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -0
  12. package/dist/auth/plugins/entity-definitions/api-key.js +199 -0
  13. package/dist/auth/plugins/entity-definitions/index.d.ts +6 -0
  14. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  15. package/dist/auth/plugins/entity-definitions/index.js +20 -2
  16. package/dist/auth/plugins/entity-definitions/jwt.d.ts +9 -0
  17. package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -0
  18. package/dist/auth/plugins/entity-definitions/jwt.js +67 -0
  19. package/dist/auth/plugins/entity-definitions/organization.d.ts +9 -0
  20. package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -0
  21. package/dist/auth/plugins/entity-definitions/organization.js +424 -0
  22. package/dist/auth/plugins/entity-definitions/passkey.d.ts +10 -0
  23. package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -0
  24. package/dist/auth/plugins/entity-definitions/passkey.js +129 -0
  25. package/dist/auth/plugins/entity-definitions/sso.d.ts +10 -0
  26. package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -0
  27. package/dist/auth/plugins/entity-definitions/sso.js +110 -0
  28. package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
  29. package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
  30. package/dist/auth/plugins/entity-definitions/types.js +1 -1
  31. package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
  32. package/dist/auth/plugins/wrappers/admin.js +2 -4
  33. package/dist/auth/plugins/wrappers/anonymous.d.ts +18 -0
  34. package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -0
  35. package/dist/auth/plugins/wrappers/anonymous.js +26 -0
  36. package/dist/auth/plugins/wrappers/api-key.d.ts +18 -0
  37. package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -0
  38. package/dist/auth/plugins/wrappers/api-key.js +38 -0
  39. package/dist/auth/plugins/wrappers/index.d.ts +6 -0
  40. package/dist/auth/plugins/wrappers/index.d.ts.map +1 -1
  41. package/dist/auth/plugins/wrappers/index.js +7 -1
  42. package/dist/auth/plugins/wrappers/jwt.d.ts +18 -0
  43. package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -0
  44. package/dist/auth/plugins/wrappers/jwt.js +30 -0
  45. package/dist/auth/plugins/wrappers/organization.d.ts +18 -0
  46. package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -0
  47. package/dist/auth/plugins/wrappers/organization.js +67 -0
  48. package/dist/auth/plugins/wrappers/passkey.d.ts +18 -0
  49. package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -0
  50. package/dist/auth/plugins/wrappers/passkey.js +32 -0
  51. package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
  52. package/dist/auth/plugins/wrappers/phone-number.js +2 -4
  53. package/dist/auth/plugins/wrappers/sso.d.ts +853 -0
  54. package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -0
  55. package/dist/auth/plugins/wrappers/sso.js +36 -0
  56. package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
  57. package/dist/auth/plugins/wrappers/two-factor.js +2 -4
  58. package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
  59. package/dist/auth/plugins/wrappers/username.js +2 -4
  60. package/dist/bin/build-config.d.ts +2 -2
  61. package/dist/bin/build-config.js +6 -7
  62. package/dist/bin/cli.js +417 -32
  63. package/dist/bin/fixture.d.ts +27 -0
  64. package/dist/bin/fixture.d.ts.map +1 -0
  65. package/dist/bin/fixture.js +245 -0
  66. package/dist/cache/decorator.d.ts +4 -3
  67. package/dist/cache/decorator.d.ts.map +1 -1
  68. package/dist/cache/decorator.js +5 -4
  69. package/dist/cone/cone-generator.d.ts +33 -0
  70. package/dist/cone/cone-generator.d.ts.map +1 -0
  71. package/dist/cone/cone-generator.js +286 -0
  72. package/dist/database/_batch_update.d.ts.map +1 -1
  73. package/dist/database/_batch_update.js +16 -2
  74. package/dist/database/puri-subset.test-d.js +1 -1
  75. package/dist/database/puri-subset.types.d.ts +1 -1
  76. package/dist/database/puri-subset.types.d.ts.map +1 -1
  77. package/dist/database/puri-subset.types.js +1 -1
  78. package/dist/database/puri.d.ts +4 -0
  79. package/dist/database/puri.d.ts.map +1 -1
  80. package/dist/database/puri.js +20 -2
  81. package/dist/database/upsert-builder.d.ts.map +1 -1
  82. package/dist/database/upsert-builder.js +19 -3
  83. package/dist/dict/en.d.ts +15 -0
  84. package/dist/dict/en.d.ts.map +1 -1
  85. package/dist/dict/en.js +2 -1
  86. package/dist/dict/ko.d.ts +15 -0
  87. package/dist/dict/ko.d.ts.map +1 -1
  88. package/dist/dict/ko.js +2 -1
  89. package/dist/dict/rc-keys.d.ts +28 -0
  90. package/dist/dict/rc-keys.d.ts.map +1 -1
  91. package/dist/dict/rc-keys.js +31 -1
  92. package/dist/dict/sd.d.ts.map +1 -1
  93. package/dist/dict/sd.js +20 -4
  94. package/dist/entity/entity-manager.d.ts +298 -2
  95. package/dist/entity/entity-manager.d.ts.map +1 -1
  96. package/dist/entity/entity-manager.js +4 -1
  97. package/dist/entity/entity-template-cone.d.ts +14 -0
  98. package/dist/entity/entity-template-cone.d.ts.map +1 -0
  99. package/dist/entity/entity-template-cone.js +222 -0
  100. package/dist/entity/entity.d.ts +47 -2
  101. package/dist/entity/entity.d.ts.map +1 -1
  102. package/dist/entity/entity.js +161 -14
  103. package/dist/ssr/renderer.js +3 -3
  104. package/dist/syncer/api-parser.js +12 -1
  105. package/dist/syncer/checksum.d.ts +0 -14
  106. package/dist/syncer/checksum.d.ts.map +1 -1
  107. package/dist/syncer/checksum.js +1 -23
  108. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  109. package/dist/syncer/syncer-actions.js +8 -2
  110. package/dist/syncer/syncer.d.ts +1 -1
  111. package/dist/syncer/syncer.d.ts.map +1 -1
  112. package/dist/syncer/syncer.js +17 -10
  113. package/dist/tasks/workflow-manager.d.ts +13 -1
  114. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  115. package/dist/tasks/workflow-manager.js +18 -1
  116. package/dist/template/entity-converter.js +4 -4
  117. package/dist/template/helpers.d.ts +10 -0
  118. package/dist/template/helpers.d.ts.map +1 -1
  119. package/dist/template/helpers.js +48 -1
  120. package/dist/template/implementations/entry-server.template.d.ts +1 -1
  121. package/dist/template/implementations/entry-server.template.js +7 -2
  122. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  123. package/dist/template/implementations/generated.template.js +5 -1
  124. package/dist/template/implementations/generated_http.template.d.ts +1 -0
  125. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  126. package/dist/template/implementations/generated_http.template.js +6 -2
  127. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  128. package/dist/template/implementations/generated_sso.template.js +29 -8
  129. package/dist/template/implementations/queries.template.d.ts.map +1 -1
  130. package/dist/template/implementations/queries.template.js +9 -1
  131. package/dist/template/implementations/sd.template.d.ts +1 -1
  132. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  133. package/dist/template/implementations/sd.template.js +28 -4
  134. package/dist/template/implementations/services.template.d.ts.map +1 -1
  135. package/dist/template/implementations/services.template.js +12 -12
  136. package/dist/template/implementations/view_form.template.d.ts +11 -7
  137. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  138. package/dist/template/implementations/view_form.template.js +97 -87
  139. package/dist/template/implementations/view_list.template.d.ts +3 -3
  140. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  141. package/dist/template/implementations/view_list.template.js +115 -109
  142. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
  143. package/dist/template/implementations/view_search_input.template.js +18 -14
  144. package/dist/template/zod-converter.d.ts.map +1 -1
  145. package/dist/template/zod-converter.js +95 -7
  146. package/dist/testing/_relation-graph.js +1 -1
  147. package/dist/testing/data-explorer.d.ts +61 -0
  148. package/dist/testing/data-explorer.d.ts.map +1 -0
  149. package/dist/testing/data-explorer.js +274 -0
  150. package/dist/testing/faker-mappings.d.ts +20 -0
  151. package/dist/testing/faker-mappings.d.ts.map +1 -0
  152. package/dist/testing/faker-mappings.js +421 -0
  153. package/dist/testing/fixture-generator.d.ts +161 -0
  154. package/dist/testing/fixture-generator.d.ts.map +1 -0
  155. package/dist/testing/fixture-generator.js +954 -0
  156. package/dist/testing/fixture-manager.d.ts +6 -1
  157. package/dist/testing/fixture-manager.d.ts.map +1 -1
  158. package/dist/testing/fixture-manager.js +72 -4
  159. package/dist/testing/index.d.ts +3 -0
  160. package/dist/testing/index.d.ts.map +1 -1
  161. package/dist/testing/index.js +4 -1
  162. package/dist/types/types.d.ts +1520 -26
  163. package/dist/types/types.d.ts.map +1 -1
  164. package/dist/types/types.js +136 -22
  165. package/dist/ui/ai-client.d.ts.map +1 -1
  166. package/dist/ui/ai-client.js +9 -4
  167. package/dist/ui/api.d.ts.map +1 -1
  168. package/dist/ui/api.js +303 -24
  169. package/dist/ui-web/assets/index-CsUr-_pV.js +254 -0
  170. package/dist/ui-web/assets/index-T42zzs1K.css +1 -0
  171. package/dist/ui-web/index.html +2 -2
  172. package/dist/utils/fs-utils.d.ts +2 -1
  173. package/dist/utils/fs-utils.d.ts.map +1 -1
  174. package/dist/utils/fs-utils.js +14 -3
  175. package/package.json +19 -11
  176. package/src/api/config.ts +12 -1
  177. package/src/api/sonamu.ts +179 -65
  178. package/src/auth/plugins/entity-definitions/anonymous.ts +17 -0
  179. package/src/auth/plugins/entity-definitions/api-key.ts +93 -0
  180. package/src/auth/plugins/entity-definitions/index.ts +18 -0
  181. package/src/auth/plugins/entity-definitions/jwt.ts +35 -0
  182. package/src/auth/plugins/entity-definitions/organization.ts +215 -0
  183. package/src/auth/plugins/entity-definitions/passkey.ts +64 -0
  184. package/src/auth/plugins/entity-definitions/sso.ts +62 -0
  185. package/src/auth/plugins/entity-definitions/types.ts +11 -1
  186. package/src/auth/plugins/wrappers/admin.ts +1 -3
  187. package/src/auth/plugins/wrappers/anonymous.ts +30 -0
  188. package/src/auth/plugins/wrappers/api-key.ts +42 -0
  189. package/src/auth/plugins/wrappers/index.ts +6 -0
  190. package/src/auth/plugins/wrappers/jwt.ts +34 -0
  191. package/src/auth/plugins/wrappers/organization.ts +73 -0
  192. package/src/auth/plugins/wrappers/passkey.ts +36 -0
  193. package/src/auth/plugins/wrappers/phone-number.ts +1 -3
  194. package/src/auth/plugins/wrappers/sso.ts +40 -0
  195. package/src/auth/plugins/wrappers/two-factor.ts +1 -3
  196. package/src/auth/plugins/wrappers/username.ts +1 -3
  197. package/src/bin/build-config.ts +6 -6
  198. package/src/bin/cli.ts +452 -31
  199. package/src/bin/fixture.ts +302 -0
  200. package/src/cache/decorator.ts +4 -3
  201. package/src/cone/cone-generator.ts +363 -0
  202. package/src/database/_batch_update.ts +11 -0
  203. package/src/database/puri-subset.test-d.ts +13 -13
  204. package/src/database/puri-subset.types.ts +1 -1
  205. package/src/database/puri.ts +43 -1
  206. package/src/database/upsert-builder.ts +16 -2
  207. package/src/dict/en.ts +1 -0
  208. package/src/dict/ko.ts +1 -0
  209. package/src/dict/rc-keys.ts +32 -0
  210. package/src/dict/sd.ts +23 -3
  211. package/src/entity/entity-manager.ts +4 -0
  212. package/src/entity/entity-template-cone.ts +298 -0
  213. package/src/entity/entity.ts +189 -13
  214. package/src/shared/app.shared.ts.txt +5 -0
  215. package/src/shared/web.shared.ts.txt +9 -5
  216. package/src/skills/project/README.md +21 -0
  217. package/src/skills/project/architecture.md +373 -0
  218. package/src/skills/project/business-logic.md +270 -0
  219. package/src/skills/project/requirements.md +160 -0
  220. package/src/skills/sonamu/SKILL.md +168 -3
  221. package/src/skills/sonamu/api.md +102 -0
  222. package/src/skills/sonamu/database.md +220 -1
  223. package/src/skills/sonamu/entity-relations.md +89 -1
  224. package/src/skills/sonamu/fixture-cli.md +501 -0
  225. package/src/skills/sonamu/frontend.md +214 -0
  226. package/src/skills/sonamu/i18n.md +95 -0
  227. package/src/skills/sonamu/model.md +153 -0
  228. package/src/skills/sonamu/project-init.md +178 -8
  229. package/src/skills/sonamu/scaffolding.md +112 -0
  230. package/src/skills/sonamu/subset.md +9 -3
  231. package/src/skills/sonamu/testing.md +287 -2
  232. package/src/skills/sonamu/workflow.md +70 -5
  233. package/src/ssr/renderer.ts +2 -2
  234. package/src/syncer/api-parser.ts +12 -0
  235. package/src/syncer/checksum.ts +0 -38
  236. package/src/syncer/syncer-actions.ts +7 -1
  237. package/src/syncer/syncer.ts +16 -5
  238. package/src/tasks/workflow-manager.ts +29 -8
  239. package/src/template/entity-converter.ts +3 -3
  240. package/src/template/helpers.ts +49 -0
  241. package/src/template/implementations/entry-server.template.ts +1 -1
  242. package/src/template/implementations/generated.template.ts +4 -0
  243. package/src/template/implementations/generated_http.template.ts +1 -0
  244. package/src/template/implementations/generated_sso.template.ts +40 -11
  245. package/src/template/implementations/queries.template.ts +8 -0
  246. package/src/template/implementations/sd.template.ts +22 -3
  247. package/src/template/implementations/services.template.ts +11 -10
  248. package/src/template/implementations/view_form.template.ts +111 -101
  249. package/src/template/implementations/view_list.template.ts +120 -119
  250. package/src/template/implementations/view_search_input.template.ts +17 -13
  251. package/src/template/zod-converter.ts +103 -6
  252. package/src/testing/_relation-graph.ts +1 -1
  253. package/src/testing/data-explorer.ts +427 -0
  254. package/src/testing/faker-mappings.ts +434 -0
  255. package/src/testing/fixture-generator.ts +1166 -0
  256. package/src/testing/fixture-manager.ts +91 -6
  257. package/src/testing/index.ts +3 -0
  258. package/src/types/types.ts +222 -26
  259. package/src/ui/ai-client.ts +9 -1
  260. package/src/ui/api.ts +429 -23
  261. package/src/utils/fs-utils.ts +14 -1
  262. package/dist/template/implementations/view_enums_select.template.d.ts +0 -17
  263. package/dist/template/implementations/view_enums_select.template.d.ts.map +0 -1
  264. package/dist/template/implementations/view_enums_select.template.js +0 -62
  265. package/dist/template/implementations/view_id_async_select.template.d.ts +0 -17
  266. package/dist/template/implementations/view_id_async_select.template.d.ts.map +0 -1
  267. package/dist/template/implementations/view_id_async_select.template.js +0 -125
  268. package/dist/ui-web/assets/index-Bd_2AkLb.css +0 -1
  269. package/dist/ui-web/assets/index-BpSbhQWo.js +0 -225
  270. package/src/template/implementations/view_enums_select.template.ts +0 -65
  271. package/src/template/implementations/view_id_async_select.template.ts +0 -139
@@ -0,0 +1,434 @@
1
+ /**
2
+ * Fixture 생성 시 사용할 Faker 매핑 테이블입니다.
3
+ *
4
+ * 필드명이나 타입에 따라 적절한 Faker 함수를 선택하여,
5
+ * 현실적이고 의미있는 테스트 데이터를 생성하기 위함입니다.
6
+ *
7
+ * 예: salary 필드는 0~1000이 아닌 30M~150M 범위로 생성
8
+ */
9
+ export type FakerMappingConfig = {
10
+ faker: string;
11
+ comment?: string;
12
+ };
13
+
14
+ export type FakerMappings = {
15
+ [locale: string]: {
16
+ field_patterns: Record<string, FakerMappingConfig>;
17
+ type_defaults: Record<string, FakerMappingConfig>;
18
+ };
19
+ };
20
+
21
+ export const fakerMappings: FakerMappings = {
22
+ ko: {
23
+ field_patterns: {
24
+ email: {
25
+ faker: "faker.internet.email()",
26
+ comment: "이메일 주소",
27
+ },
28
+ username: {
29
+ faker: "fakerKO.person.fullName()",
30
+ comment: "한국어 이름",
31
+ },
32
+ name: {
33
+ faker: "fakerKO.person.fullName()",
34
+ comment: "한국어 이름",
35
+ },
36
+ firstname: {
37
+ faker: "fakerKO.person.firstName()",
38
+ comment: "이름",
39
+ },
40
+ lastname: {
41
+ faker: "fakerKO.person.lastName()",
42
+ comment: "성",
43
+ },
44
+ phone: {
45
+ faker: "faker.phone.number()",
46
+ comment: "전화번호",
47
+ },
48
+ mobile: {
49
+ faker: "faker.phone.number()",
50
+ comment: "휴대폰",
51
+ },
52
+ address: {
53
+ faker: "fakerKO.location.streetAddress()",
54
+ comment: "주소",
55
+ },
56
+ city: {
57
+ faker: "fakerKO.location.city()",
58
+ comment: "도시",
59
+ },
60
+ country: {
61
+ faker: "fakerKO.location.country()",
62
+ comment: "국가",
63
+ },
64
+ zipcode: {
65
+ faker: "faker.location.zipCode()",
66
+ comment: "우편번호",
67
+ },
68
+ company: {
69
+ faker: "fakerKO.company.name()",
70
+ comment: "회사명",
71
+ },
72
+ department: {
73
+ faker: "fakerKO.commerce.department()",
74
+ comment: "부서명",
75
+ },
76
+ position: {
77
+ faker: "fakerKO.person.jobTitle()",
78
+ comment: "직책",
79
+ },
80
+ jobtitle: {
81
+ faker: "fakerKO.person.jobTitle()",
82
+ comment: "직책",
83
+ },
84
+ birthdate: {
85
+ faker: "faker.date.birthdate()",
86
+ comment: "생년월일",
87
+ },
88
+ title: {
89
+ faker: "faker.lorem.sentence()",
90
+ comment: "제목",
91
+ },
92
+ description: {
93
+ faker: "faker.lorem.paragraph()",
94
+ comment: "설명",
95
+ },
96
+ content: {
97
+ faker: "faker.lorem.paragraphs(3)",
98
+ comment: "내용",
99
+ },
100
+ url: {
101
+ faker: "faker.internet.url()",
102
+ comment: "URL",
103
+ },
104
+ image: {
105
+ faker: "faker.image.url()",
106
+ comment: "이미지 URL",
107
+ },
108
+ avatar: {
109
+ faker: "faker.image.avatar()",
110
+ comment: "아바타 URL",
111
+ },
112
+ uuid: {
113
+ faker: "faker.string.uuid()",
114
+ comment: "UUID",
115
+ },
116
+ salary: {
117
+ faker: 'faker.number.int({ "min": 30000000, "max": 150000000 })',
118
+ comment: "연봉 (한국, 원)",
119
+ },
120
+ budget: {
121
+ faker: 'faker.number.int({ "min": 10000000, "max": 500000000 })',
122
+ comment: "예산",
123
+ },
124
+ price: {
125
+ faker: 'faker.number.int({ "min": 1000, "max": 1000000 })',
126
+ comment: "가격",
127
+ },
128
+ amount: {
129
+ faker: 'faker.number.int({ "min": 1000, "max": 1000000 })',
130
+ comment: "금액",
131
+ },
132
+ cost: {
133
+ faker: 'faker.number.int({ "min": 1000, "max": 1000000 })',
134
+ comment: "비용",
135
+ },
136
+ employeenumber: {
137
+ faker: "faker.string.numeric(8)",
138
+ comment: "사번",
139
+ },
140
+ code: {
141
+ faker: "faker.string.alphanumeric(10)",
142
+ comment: "코드",
143
+ },
144
+ count: {
145
+ faker: 'faker.number.int({ "min": 0, "max": 100 })',
146
+ comment: "개수",
147
+ },
148
+ quantity: {
149
+ faker: 'faker.number.int({ "min": 1, "max": 100 })',
150
+ comment: "수량",
151
+ },
152
+ mimetype: {
153
+ faker:
154
+ "faker.helpers.arrayElement(['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'text/plain'])",
155
+ comment: "MIME 타입",
156
+ },
157
+ },
158
+ type_defaults: {
159
+ string: {
160
+ faker: "faker.lorem.words(3)",
161
+ comment: "일반 문자열",
162
+ },
163
+ integer: {
164
+ faker: 'faker.number.int({ "min": 1, "max": 1000 })',
165
+ comment: "정수",
166
+ },
167
+ numeric: {
168
+ faker: 'faker.number.float({ "min": 0, "max": 1000, "fractionDigits": 2 })',
169
+ comment: "숫자",
170
+ },
171
+ boolean: {
172
+ faker: "faker.datatype.boolean()",
173
+ comment: "불리언",
174
+ },
175
+ date: {
176
+ faker: "faker.date.past()",
177
+ comment: "날짜",
178
+ },
179
+ uuid: {
180
+ faker: "faker.string.uuid()",
181
+ comment: "UUID",
182
+ },
183
+ json: {
184
+ faker: "{}",
185
+ comment: "JSON 객체",
186
+ },
187
+ },
188
+ },
189
+ en: {
190
+ field_patterns: {
191
+ email: {
192
+ faker: "faker.internet.email()",
193
+ comment: "Email address",
194
+ },
195
+ username: {
196
+ faker: "faker.internet.username()",
197
+ comment: "Username",
198
+ },
199
+ name: {
200
+ faker: "faker.person.fullName()",
201
+ comment: "Full name",
202
+ },
203
+ firstname: {
204
+ faker: "faker.person.firstName()",
205
+ comment: "First name",
206
+ },
207
+ lastname: {
208
+ faker: "faker.person.lastName()",
209
+ comment: "Last name",
210
+ },
211
+ phone: {
212
+ faker: "faker.phone.number()",
213
+ comment: "Phone number",
214
+ },
215
+ mobile: {
216
+ faker: "faker.phone.number()",
217
+ comment: "Mobile number",
218
+ },
219
+ address: {
220
+ faker: "faker.location.streetAddress()",
221
+ comment: "Street address",
222
+ },
223
+ city: {
224
+ faker: "faker.location.city()",
225
+ comment: "City",
226
+ },
227
+ country: {
228
+ faker: "faker.location.country()",
229
+ comment: "Country",
230
+ },
231
+ zipcode: {
232
+ faker: "faker.location.zipCode()",
233
+ comment: "ZIP code",
234
+ },
235
+ company: {
236
+ faker: "faker.company.name()",
237
+ comment: "Company name",
238
+ },
239
+ department: {
240
+ faker: "faker.commerce.department()",
241
+ comment: "Department",
242
+ },
243
+ position: {
244
+ faker: "faker.person.jobTitle()",
245
+ comment: "Job title",
246
+ },
247
+ jobtitle: {
248
+ faker: "faker.person.jobTitle()",
249
+ comment: "Job title",
250
+ },
251
+ birthdate: {
252
+ faker: "faker.date.birthdate()",
253
+ comment: "Birth date",
254
+ },
255
+ title: {
256
+ faker: "faker.lorem.sentence()",
257
+ comment: "Title",
258
+ },
259
+ description: {
260
+ faker: "faker.lorem.paragraph()",
261
+ comment: "Description",
262
+ },
263
+ content: {
264
+ faker: "faker.lorem.paragraphs(3)",
265
+ comment: "Content",
266
+ },
267
+ url: {
268
+ faker: "faker.internet.url()",
269
+ comment: "URL",
270
+ },
271
+ image: {
272
+ faker: "faker.image.url()",
273
+ comment: "Image URL",
274
+ },
275
+ avatar: {
276
+ faker: "faker.image.avatar()",
277
+ comment: "Avatar URL",
278
+ },
279
+ uuid: {
280
+ faker: "faker.string.uuid()",
281
+ comment: "UUID",
282
+ },
283
+ salary: {
284
+ faker: 'faker.number.int({ "min": 30000, "max": 200000 })',
285
+ comment: "Annual salary (USD)",
286
+ },
287
+ budget: {
288
+ faker: 'faker.number.int({ "min": 10000, "max": 500000 })',
289
+ comment: "Budget",
290
+ },
291
+ price: {
292
+ faker: 'faker.number.int({ "min": 10, "max": 10000 })',
293
+ comment: "Price",
294
+ },
295
+ amount: {
296
+ faker: 'faker.number.int({ "min": 10, "max": 10000 })',
297
+ comment: "Amount",
298
+ },
299
+ cost: {
300
+ faker: 'faker.number.int({ "min": 10, "max": 10000 })',
301
+ comment: "Cost",
302
+ },
303
+ employeenumber: {
304
+ faker: "faker.string.numeric(8)",
305
+ comment: "Employee number",
306
+ },
307
+ code: {
308
+ faker: "faker.string.alphanumeric(10)",
309
+ comment: "Code",
310
+ },
311
+ count: {
312
+ faker: 'faker.number.int({ "min": 0, "max": 100 })',
313
+ comment: "Count",
314
+ },
315
+ quantity: {
316
+ faker: 'faker.number.int({ "min": 1, "max": 100 })',
317
+ comment: "Quantity",
318
+ },
319
+ mimetype: {
320
+ faker:
321
+ "faker.helpers.arrayElement(['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'text/plain'])",
322
+ comment: "MIME type",
323
+ },
324
+ },
325
+ type_defaults: {
326
+ string: {
327
+ faker: "faker.lorem.words(3)",
328
+ comment: "String",
329
+ },
330
+ integer: {
331
+ faker: 'faker.number.int({ "min": 1, "max": 1000 })',
332
+ comment: "Integer",
333
+ },
334
+ numeric: {
335
+ faker: 'faker.number.float({ "min": 0, "max": 1000, "fractionDigits": 2 })',
336
+ comment: "Numeric",
337
+ },
338
+ boolean: {
339
+ faker: "faker.datatype.boolean()",
340
+ comment: "Boolean",
341
+ },
342
+ date: {
343
+ faker: "faker.date.past()",
344
+ comment: "Date",
345
+ },
346
+ uuid: {
347
+ faker: "faker.string.uuid()",
348
+ comment: "UUID",
349
+ },
350
+ json: {
351
+ faker: "{}",
352
+ comment: "JSON object",
353
+ },
354
+ },
355
+ },
356
+ ja: {
357
+ field_patterns: {
358
+ email: {
359
+ faker: "faker.internet.email()",
360
+ comment: "メールアドレス",
361
+ },
362
+ username: {
363
+ faker: "fakerJA.person.fullName()",
364
+ comment: "日本語名",
365
+ },
366
+ name: {
367
+ faker: "fakerJA.person.fullName()",
368
+ comment: "日本語名",
369
+ },
370
+ firstname: {
371
+ faker: "fakerJA.person.firstName()",
372
+ comment: "名",
373
+ },
374
+ lastname: {
375
+ faker: "fakerJA.person.lastName()",
376
+ comment: "姓",
377
+ },
378
+ phone: {
379
+ faker: "faker.phone.number()",
380
+ comment: "電話番号",
381
+ },
382
+ mobile: {
383
+ faker: "faker.phone.number()",
384
+ comment: "携帯電話",
385
+ },
386
+ address: {
387
+ faker: "fakerJA.location.streetAddress()",
388
+ comment: "住所",
389
+ },
390
+ city: {
391
+ faker: "fakerJA.location.city()",
392
+ comment: "都市",
393
+ },
394
+ company: {
395
+ faker: "fakerJA.company.name()",
396
+ comment: "会社名",
397
+ },
398
+ title: {
399
+ faker: "faker.lorem.sentence()",
400
+ comment: "タイトル",
401
+ },
402
+ salary: {
403
+ faker: 'faker.number.int({ "min": 3000000, "max": 15000000 })',
404
+ comment: "年収(円)",
405
+ },
406
+ budget: {
407
+ faker: 'faker.number.int({ "min": 1000000, "max": 50000000 })',
408
+ comment: "予算",
409
+ },
410
+ },
411
+ type_defaults: {
412
+ string: {
413
+ faker: "faker.lorem.words(3)",
414
+ comment: "文字列",
415
+ },
416
+ integer: {
417
+ faker: 'faker.number.int({ "min": 1, "max": 1000 })',
418
+ comment: "整数",
419
+ },
420
+ numeric: {
421
+ faker: 'faker.number.float({ "min": 0, "max": 1000, "fractionDigits": 2 })',
422
+ comment: "数値",
423
+ },
424
+ boolean: {
425
+ faker: "faker.datatype.boolean()",
426
+ comment: "真偽値",
427
+ },
428
+ date: {
429
+ faker: "faker.date.past()",
430
+ comment: "日付",
431
+ },
432
+ },
433
+ },
434
+ };