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,424 @@
1
+ /**
2
+ * better-auth Organization 플러그인 엔티티 정의
3
+ * https://www.better-auth.com/docs/plugins/organization
4
+ *
5
+ * 조직, 멤버, 초대, 팀 관리를 지원합니다.
6
+ */ export const organizationEntityDef = {
7
+ id: "organization",
8
+ name: "Organization",
9
+ // 엔티티 순서: 의존관계에 따라 정렬 (Organization → Team → Member → Invitation → TeamMember)
10
+ entities: [
11
+ {
12
+ id: "Organization",
13
+ table: "organizations",
14
+ title: "조직",
15
+ props: [
16
+ {
17
+ name: "id",
18
+ type: "string",
19
+ desc: "ID"
20
+ },
21
+ {
22
+ name: "name",
23
+ type: "string",
24
+ desc: "조직명"
25
+ },
26
+ {
27
+ name: "slug",
28
+ type: "string",
29
+ desc: "슬러그"
30
+ },
31
+ {
32
+ name: "logo",
33
+ type: "string",
34
+ nullable: true,
35
+ desc: "로고 URL"
36
+ },
37
+ {
38
+ name: "metadata",
39
+ type: "string",
40
+ nullable: true,
41
+ desc: "메타데이터 (JSON)"
42
+ },
43
+ {
44
+ name: "created_at",
45
+ type: "date",
46
+ dbDefault: "CURRENT_TIMESTAMP",
47
+ desc: "생성일시"
48
+ }
49
+ ],
50
+ indexes: [
51
+ {
52
+ type: "unique",
53
+ name: "organizations_slug_unique",
54
+ columns: [
55
+ {
56
+ name: "slug"
57
+ }
58
+ ]
59
+ }
60
+ ],
61
+ subsets: {
62
+ A: [
63
+ "id",
64
+ "name",
65
+ "slug",
66
+ "logo",
67
+ "metadata",
68
+ "created_at"
69
+ ]
70
+ },
71
+ enums: {
72
+ OrganizationOrderBy: {
73
+ "id-desc": "ID최신순",
74
+ "created_at-desc": "생성일최신순"
75
+ },
76
+ OrganizationSearchField: {
77
+ id: "ID",
78
+ name: "조직명",
79
+ slug: "슬러그"
80
+ }
81
+ }
82
+ },
83
+ {
84
+ id: "Team",
85
+ table: "teams",
86
+ title: "팀",
87
+ props: [
88
+ {
89
+ name: "id",
90
+ type: "string",
91
+ desc: "ID"
92
+ },
93
+ {
94
+ name: "name",
95
+ type: "string",
96
+ desc: "팀명"
97
+ },
98
+ {
99
+ name: "created_at",
100
+ type: "date",
101
+ dbDefault: "CURRENT_TIMESTAMP",
102
+ desc: "생성일시"
103
+ },
104
+ {
105
+ name: "updated_at",
106
+ type: "date",
107
+ nullable: true,
108
+ desc: "수정일시"
109
+ },
110
+ {
111
+ type: "relation",
112
+ name: "organization",
113
+ with: "Organization",
114
+ relationType: "BelongsToOne",
115
+ onDelete: "CASCADE",
116
+ desc: "조직"
117
+ }
118
+ ],
119
+ indexes: [
120
+ {
121
+ type: "index",
122
+ name: "teams_organization_id_idx",
123
+ columns: [
124
+ {
125
+ name: "organization_id"
126
+ }
127
+ ]
128
+ }
129
+ ],
130
+ subsets: {
131
+ A: [
132
+ "id",
133
+ "name",
134
+ "created_at",
135
+ "updated_at",
136
+ "organization.id"
137
+ ]
138
+ },
139
+ enums: {
140
+ TeamOrderBy: {
141
+ "id-desc": "ID최신순",
142
+ "created_at-desc": "생성일최신순"
143
+ },
144
+ TeamSearchField: {
145
+ id: "ID",
146
+ name: "팀명"
147
+ }
148
+ }
149
+ },
150
+ {
151
+ id: "Member",
152
+ table: "members",
153
+ title: "멤버",
154
+ props: [
155
+ {
156
+ name: "id",
157
+ type: "string",
158
+ desc: "ID"
159
+ },
160
+ {
161
+ name: "role",
162
+ type: "string",
163
+ desc: "역할"
164
+ },
165
+ {
166
+ name: "created_at",
167
+ type: "date",
168
+ dbDefault: "CURRENT_TIMESTAMP",
169
+ desc: "생성일시"
170
+ },
171
+ {
172
+ type: "relation",
173
+ name: "user",
174
+ with: "User",
175
+ relationType: "BelongsToOne",
176
+ onDelete: "CASCADE",
177
+ desc: "사용자"
178
+ },
179
+ {
180
+ type: "relation",
181
+ name: "organization",
182
+ with: "Organization",
183
+ relationType: "BelongsToOne",
184
+ onDelete: "CASCADE",
185
+ desc: "조직"
186
+ }
187
+ ],
188
+ indexes: [
189
+ {
190
+ type: "index",
191
+ name: "members_user_id_idx",
192
+ columns: [
193
+ {
194
+ name: "user_id"
195
+ }
196
+ ]
197
+ },
198
+ {
199
+ type: "index",
200
+ name: "members_organization_id_idx",
201
+ columns: [
202
+ {
203
+ name: "organization_id"
204
+ }
205
+ ]
206
+ }
207
+ ],
208
+ subsets: {
209
+ A: [
210
+ "id",
211
+ "role",
212
+ "created_at",
213
+ "user.id",
214
+ "organization.id"
215
+ ]
216
+ },
217
+ enums: {
218
+ MemberOrderBy: {
219
+ "id-desc": "ID최신순",
220
+ "created_at-desc": "생성일최신순"
221
+ },
222
+ MemberSearchField: {
223
+ id: "ID",
224
+ role: "역할"
225
+ }
226
+ }
227
+ },
228
+ {
229
+ id: "Invitation",
230
+ table: "invitations",
231
+ title: "초대",
232
+ props: [
233
+ {
234
+ name: "id",
235
+ type: "string",
236
+ desc: "ID"
237
+ },
238
+ {
239
+ name: "email",
240
+ type: "string",
241
+ desc: "이메일"
242
+ },
243
+ {
244
+ name: "role",
245
+ type: "string",
246
+ desc: "역할"
247
+ },
248
+ {
249
+ name: "status",
250
+ type: "string",
251
+ desc: "상태"
252
+ },
253
+ {
254
+ name: "expires_at",
255
+ type: "date",
256
+ desc: "만료일시"
257
+ },
258
+ {
259
+ name: "created_at",
260
+ type: "date",
261
+ dbDefault: "CURRENT_TIMESTAMP",
262
+ desc: "생성일시"
263
+ },
264
+ {
265
+ type: "relation",
266
+ name: "inviter",
267
+ with: "User",
268
+ relationType: "BelongsToOne",
269
+ onDelete: "CASCADE",
270
+ desc: "초대자"
271
+ },
272
+ {
273
+ type: "relation",
274
+ name: "organization",
275
+ with: "Organization",
276
+ relationType: "BelongsToOne",
277
+ onDelete: "CASCADE",
278
+ desc: "조직"
279
+ },
280
+ {
281
+ type: "relation",
282
+ name: "team",
283
+ with: "Team",
284
+ relationType: "BelongsToOne",
285
+ onDelete: "SET NULL",
286
+ nullable: true,
287
+ desc: "팀"
288
+ }
289
+ ],
290
+ indexes: [
291
+ {
292
+ type: "index",
293
+ name: "invitations_email_idx",
294
+ columns: [
295
+ {
296
+ name: "email"
297
+ }
298
+ ]
299
+ },
300
+ {
301
+ type: "index",
302
+ name: "invitations_organization_id_idx",
303
+ columns: [
304
+ {
305
+ name: "organization_id"
306
+ }
307
+ ]
308
+ }
309
+ ],
310
+ subsets: {
311
+ A: [
312
+ "id",
313
+ "email",
314
+ "role",
315
+ "status",
316
+ "expires_at",
317
+ "created_at",
318
+ "inviter.id",
319
+ "organization.id",
320
+ "team.id"
321
+ ]
322
+ },
323
+ enums: {
324
+ InvitationOrderBy: {
325
+ "id-desc": "ID최신순",
326
+ "created_at-desc": "생성일최신순"
327
+ },
328
+ InvitationSearchField: {
329
+ id: "ID",
330
+ email: "이메일"
331
+ }
332
+ }
333
+ },
334
+ {
335
+ id: "TeamMember",
336
+ table: "team_members",
337
+ title: "팀멤버",
338
+ props: [
339
+ {
340
+ name: "id",
341
+ type: "string",
342
+ desc: "ID"
343
+ },
344
+ {
345
+ name: "created_at",
346
+ type: "date",
347
+ dbDefault: "CURRENT_TIMESTAMP",
348
+ desc: "생성일시"
349
+ },
350
+ {
351
+ type: "relation",
352
+ name: "team",
353
+ with: "Team",
354
+ relationType: "BelongsToOne",
355
+ onDelete: "CASCADE",
356
+ desc: "팀"
357
+ },
358
+ {
359
+ type: "relation",
360
+ name: "user",
361
+ with: "User",
362
+ relationType: "BelongsToOne",
363
+ onDelete: "CASCADE",
364
+ desc: "사용자"
365
+ }
366
+ ],
367
+ indexes: [
368
+ {
369
+ type: "index",
370
+ name: "team_members_team_id_idx",
371
+ columns: [
372
+ {
373
+ name: "team_id"
374
+ }
375
+ ]
376
+ },
377
+ {
378
+ type: "index",
379
+ name: "team_members_user_id_idx",
380
+ columns: [
381
+ {
382
+ name: "user_id"
383
+ }
384
+ ]
385
+ }
386
+ ],
387
+ subsets: {
388
+ A: [
389
+ "id",
390
+ "created_at",
391
+ "team.id",
392
+ "user.id"
393
+ ]
394
+ },
395
+ enums: {
396
+ TeamMemberOrderBy: {
397
+ "id-desc": "ID최신순",
398
+ "created_at-desc": "생성일최신순"
399
+ },
400
+ TeamMemberSearchField: {
401
+ id: "ID"
402
+ }
403
+ }
404
+ }
405
+ ],
406
+ additionalProps: {
407
+ Session: [
408
+ {
409
+ name: "active_organization_id",
410
+ type: "string",
411
+ nullable: true,
412
+ desc: "활성 조직 ID"
413
+ },
414
+ {
415
+ name: "active_team_id",
416
+ type: "string",
417
+ nullable: true,
418
+ desc: "활성 팀 ID"
419
+ }
420
+ ]
421
+ }
422
+ };
423
+
424
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zL29yZ2FuaXphdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJldHRlckF1dGhFbnRpdHlEZWYgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIGJldHRlci1hdXRoIE9yZ2FuaXphdGlvbiDtlIzrn6zqt7jsnbgg7JeU7Yuw7YuwIOygleydmFxuICogaHR0cHM6Ly93d3cuYmV0dGVyLWF1dGguY29tL2RvY3MvcGx1Z2lucy9vcmdhbml6YXRpb25cbiAqXG4gKiDsobDsp4EsIOuppOuyhCwg7LSI64yALCDtjIAg6rSA66as66W8IOyngOybkO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9yZ2FuaXphdGlvbkVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiA9IHtcbiAgaWQ6IFwib3JnYW5pemF0aW9uXCIsXG4gIG5hbWU6IFwiT3JnYW5pemF0aW9uXCIsXG4gIC8vIOyXlO2LsO2LsCDsiJzshJw6IOydmOyhtOq0gOqzhOyXkCDrlLDrnbwg7KCV66CsIChPcmdhbml6YXRpb24g4oaSIFRlYW0g4oaSIE1lbWJlciDihpIgSW52aXRhdGlvbiDihpIgVGVhbU1lbWJlcilcbiAgZW50aXRpZXM6IFtcbiAgICB7XG4gICAgICBpZDogXCJPcmdhbml6YXRpb25cIixcbiAgICAgIHRhYmxlOiBcIm9yZ2FuaXphdGlvbnNcIixcbiAgICAgIHRpdGxlOiBcIuyhsOyngVwiLFxuICAgICAgcHJvcHM6IFtcbiAgICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibmFtZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuyhsOyngeuqhVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzbHVnXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7Iqs65+s6re4XCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvZ29cIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi66Gc6rOgIFVSTFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJtZXRhZGF0YVwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLrqZTtg4DrjbDsnbTthLAgKEpTT04pXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICBdLFxuICAgICAgaW5kZXhlczogW3sgdHlwZTogXCJ1bmlxdWVcIiwgbmFtZTogXCJvcmdhbml6YXRpb25zX3NsdWdfdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwic2x1Z1wiIH1dIH1dLFxuICAgICAgc3Vic2V0czoge1xuICAgICAgICBBOiBbXCJpZFwiLCBcIm5hbWVcIiwgXCJzbHVnXCIsIFwibG9nb1wiLCBcIm1ldGFkYXRhXCIsIFwiY3JlYXRlZF9hdFwiXSxcbiAgICAgIH0sXG4gICAgICBlbnVtczoge1xuICAgICAgICBPcmdhbml6YXRpb25PcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIsIFwiY3JlYXRlZF9hdC1kZXNjXCI6IFwi7IOd7ISx7J287LWc7Iug7IicXCIgfSxcbiAgICAgICAgT3JnYW5pemF0aW9uU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiwgbmFtZTogXCLsobDsp4HrqoVcIiwgc2x1ZzogXCLsiqzrn6zqt7hcIiB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBcIlRlYW1cIixcbiAgICAgIHRhYmxlOiBcInRlYW1zXCIsXG4gICAgICB0aXRsZTogXCLtjIBcIixcbiAgICAgIHByb3BzOiBbXG4gICAgICAgIHsgbmFtZTogXCJpZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIklEXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm5hbWVcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLtjIDrqoVcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInVwZGF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgICAgbmFtZTogXCJvcmdhbml6YXRpb25cIixcbiAgICAgICAgICB3aXRoOiBcIk9yZ2FuaXphdGlvblwiLFxuICAgICAgICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgICAgZGVzYzogXCLsobDsp4FcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBpbmRleGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImluZGV4XCIsXG4gICAgICAgICAgbmFtZTogXCJ0ZWFtc19vcmdhbml6YXRpb25faWRfaWR4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJvcmdhbml6YXRpb25faWRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzdWJzZXRzOiB7XG4gICAgICAgIEE6IFtcImlkXCIsIFwibmFtZVwiLCBcImNyZWF0ZWRfYXRcIiwgXCJ1cGRhdGVkX2F0XCIsIFwib3JnYW5pemF0aW9uLmlkXCJdLFxuICAgICAgfSxcbiAgICAgIGVudW1zOiB7XG4gICAgICAgIFRlYW1PcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIsIFwiY3JlYXRlZF9hdC1kZXNjXCI6IFwi7IOd7ISx7J287LWc7Iug7IicXCIgfSxcbiAgICAgICAgVGVhbVNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIsIG5hbWU6IFwi7YyA66qFXCIgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogXCJNZW1iZXJcIixcbiAgICAgIHRhYmxlOiBcIm1lbWJlcnNcIixcbiAgICAgIHRpdGxlOiBcIuuppOuyhFwiLFxuICAgICAgcHJvcHM6IFtcbiAgICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicm9sZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuyXre2VoFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjcmVhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsg53shLHsnbzsi5xcIiB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJyZWxhdGlvblwiLFxuICAgICAgICAgIG5hbWU6IFwidXNlclwiLFxuICAgICAgICAgIHdpdGg6IFwiVXNlclwiLFxuICAgICAgICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgICAgZGVzYzogXCLsgqzsmqnsnpBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgICBuYW1lOiBcIm9yZ2FuaXphdGlvblwiLFxuICAgICAgICAgIHdpdGg6IFwiT3JnYW5pemF0aW9uXCIsXG4gICAgICAgICAgcmVsYXRpb25UeXBlOiBcIkJlbG9uZ3NUb09uZVwiLFxuICAgICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgICBkZXNjOiBcIuyhsOyngVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGluZGV4ZXM6IFtcbiAgICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwibWVtYmVyc191c2VyX2lkX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcInVzZXJfaWRcIiB9XSB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwibWVtYmVyc19vcmdhbml6YXRpb25faWRfaWR4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJvcmdhbml6YXRpb25faWRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzdWJzZXRzOiB7XG4gICAgICAgIEE6IFtcImlkXCIsIFwicm9sZVwiLCBcImNyZWF0ZWRfYXRcIiwgXCJ1c2VyLmlkXCIsIFwib3JnYW5pemF0aW9uLmlkXCJdLFxuICAgICAgfSxcbiAgICAgIGVudW1zOiB7XG4gICAgICAgIE1lbWJlck9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiwgXCJjcmVhdGVkX2F0LWRlc2NcIjogXCLsg53shLHsnbzstZzsi6DsiJxcIiB9LFxuICAgICAgICBNZW1iZXJTZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiLCByb2xlOiBcIuyXre2VoFwiIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFwiSW52aXRhdGlvblwiLFxuICAgICAgdGFibGU6IFwiaW52aXRhdGlvbnNcIixcbiAgICAgIHRpdGxlOiBcIuy0iOuMgFwiLFxuICAgICAgcHJvcHM6IFtcbiAgICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZW1haWxcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsnbTrqZTsnbxcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicm9sZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuyXre2VoFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzdGF0dXNcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsg4Htg5xcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZXhwaXJlc19hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGVzYzogXCLrp4zro4zsnbzsi5xcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgICBuYW1lOiBcImludml0ZXJcIixcbiAgICAgICAgICB3aXRoOiBcIlVzZXJcIixcbiAgICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgICAgb25EZWxldGU6IFwiQ0FTQ0FERVwiLFxuICAgICAgICAgIGRlc2M6IFwi7LSI64yA7J6QXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgICAgbmFtZTogXCJvcmdhbml6YXRpb25cIixcbiAgICAgICAgICB3aXRoOiBcIk9yZ2FuaXphdGlvblwiLFxuICAgICAgICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgICAgZGVzYzogXCLsobDsp4FcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgICBuYW1lOiBcInRlYW1cIixcbiAgICAgICAgICB3aXRoOiBcIlRlYW1cIixcbiAgICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgICAgb25EZWxldGU6IFwiU0VUIE5VTExcIixcbiAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICBkZXNjOiBcIu2MgFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGluZGV4ZXM6IFtcbiAgICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwiaW52aXRhdGlvbnNfZW1haWxfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwiZW1haWxcIiB9XSB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiaW52aXRhdGlvbnNfb3JnYW5pemF0aW9uX2lkX2lkeFwiLFxuICAgICAgICAgIGNvbHVtbnM6IFt7IG5hbWU6IFwib3JnYW5pemF0aW9uX2lkXCIgfV0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3Vic2V0czoge1xuICAgICAgICBBOiBbXG4gICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgIFwiZW1haWxcIixcbiAgICAgICAgICBcInJvbGVcIixcbiAgICAgICAgICBcInN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwaXJlc19hdFwiLFxuICAgICAgICAgIFwiY3JlYXRlZF9hdFwiLFxuICAgICAgICAgIFwiaW52aXRlci5pZFwiLFxuICAgICAgICAgIFwib3JnYW5pemF0aW9uLmlkXCIsXG4gICAgICAgICAgXCJ0ZWFtLmlkXCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgZW51bXM6IHtcbiAgICAgICAgSW52aXRhdGlvbk9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiwgXCJjcmVhdGVkX2F0LWRlc2NcIjogXCLsg53shLHsnbzstZzsi6DsiJxcIiB9LFxuICAgICAgICBJbnZpdGF0aW9uU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiwgZW1haWw6IFwi7J2066mU7J28XCIgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogXCJUZWFtTWVtYmVyXCIsXG4gICAgICB0YWJsZTogXCJ0ZWFtX21lbWJlcnNcIixcbiAgICAgIHRpdGxlOiBcIu2MgOuppOuyhFwiLFxuICAgICAgcHJvcHM6IFtcbiAgICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgICBuYW1lOiBcInRlYW1cIixcbiAgICAgICAgICB3aXRoOiBcIlRlYW1cIixcbiAgICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgICAgb25EZWxldGU6IFwiQ0FTQ0FERVwiLFxuICAgICAgICAgIGRlc2M6IFwi7YyAXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgICAgbmFtZTogXCJ1c2VyXCIsXG4gICAgICAgICAgd2l0aDogXCJVc2VyXCIsXG4gICAgICAgICAgcmVsYXRpb25UeXBlOiBcIkJlbG9uZ3NUb09uZVwiLFxuICAgICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgICBkZXNjOiBcIuyCrOyaqeyekFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGluZGV4ZXM6IFtcbiAgICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwidGVhbV9tZW1iZXJzX3RlYW1faWRfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidGVhbV9pZFwiIH1dIH0sXG4gICAgICAgIHsgdHlwZTogXCJpbmRleFwiLCBuYW1lOiBcInRlYW1fbWVtYmVyc191c2VyX2lkX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcInVzZXJfaWRcIiB9XSB9LFxuICAgICAgXSxcbiAgICAgIHN1YnNldHM6IHtcbiAgICAgICAgQTogW1wiaWRcIiwgXCJjcmVhdGVkX2F0XCIsIFwidGVhbS5pZFwiLCBcInVzZXIuaWRcIl0sXG4gICAgICB9LFxuICAgICAgZW51bXM6IHtcbiAgICAgICAgVGVhbU1lbWJlck9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiwgXCJjcmVhdGVkX2F0LWRlc2NcIjogXCLsg53shLHsnbzstZzsi6DsiJxcIiB9LFxuICAgICAgICBUZWFtTWVtYmVyU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9LFxuICAgICAgfSxcbiAgICB9LFxuICBdLFxuICBhZGRpdGlvbmFsUHJvcHM6IHtcbiAgICBTZXNzaW9uOiBbXG4gICAgICB7IG5hbWU6IFwiYWN0aXZlX29yZ2FuaXphdGlvbl9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLtmZzshLEg7KGw7KeBIElEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJhY3RpdmVfdGVhbV9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLtmZzshLEg7YyAIElEXCIgfSxcbiAgICBdLFxuICB9LFxufTtcbiJdLCJuYW1lcyI6WyJvcmdhbml6YXRpb25FbnRpdHlEZWYiLCJpZCIsIm5hbWUiLCJlbnRpdGllcyIsInRhYmxlIiwidGl0bGUiLCJwcm9wcyIsInR5cGUiLCJkZXNjIiwibnVsbGFibGUiLCJkYkRlZmF1bHQiLCJpbmRleGVzIiwiY29sdW1ucyIsInN1YnNldHMiLCJBIiwiZW51bXMiLCJPcmdhbml6YXRpb25PcmRlckJ5IiwiT3JnYW5pemF0aW9uU2VhcmNoRmllbGQiLCJzbHVnIiwid2l0aCIsInJlbGF0aW9uVHlwZSIsIm9uRGVsZXRlIiwiVGVhbU9yZGVyQnkiLCJUZWFtU2VhcmNoRmllbGQiLCJNZW1iZXJPcmRlckJ5IiwiTWVtYmVyU2VhcmNoRmllbGQiLCJyb2xlIiwiSW52aXRhdGlvbk9yZGVyQnkiLCJJbnZpdGF0aW9uU2VhcmNoRmllbGQiLCJlbWFpbCIsIlRlYW1NZW1iZXJPcmRlckJ5IiwiVGVhbU1l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
@@ -0,0 +1,10 @@
1
+ import type { BetterAuthEntityDef } from "./types";
2
+ /**
3
+ * better-auth Passkey 플러그인 엔티티 정의
4
+ * https://www.better-auth.com/docs/plugins/passkey
5
+ *
6
+ * WebAuthn/FIDO2 기반 패스키 인증을 지원합니다.
7
+ * Passkey 테이블을 생성하여 사용자의 패스키 정보를 저장합니다.
8
+ */
9
+ export declare const passkeyEntityDef: BetterAuthEntityDef;
10
+ //# sourceMappingURL=passkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/passkey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAsD9B,CAAC"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * better-auth Passkey 플러그인 엔티티 정의
3
+ * https://www.better-auth.com/docs/plugins/passkey
4
+ *
5
+ * WebAuthn/FIDO2 기반 패스키 인증을 지원합니다.
6
+ * Passkey 테이블을 생성하여 사용자의 패스키 정보를 저장합니다.
7
+ */ export const passkeyEntityDef = {
8
+ id: "passkey",
9
+ name: "Passkey",
10
+ entities: [
11
+ {
12
+ id: "Passkey",
13
+ table: "passkeys",
14
+ title: "패스키",
15
+ props: [
16
+ {
17
+ name: "id",
18
+ type: "string",
19
+ desc: "ID"
20
+ },
21
+ {
22
+ name: "name",
23
+ type: "string",
24
+ nullable: true,
25
+ desc: "패스키 이름"
26
+ },
27
+ {
28
+ name: "public_key",
29
+ type: "string",
30
+ desc: "공개키"
31
+ },
32
+ {
33
+ name: "credential_id",
34
+ type: "string",
35
+ desc: "자격 증명 ID"
36
+ },
37
+ {
38
+ name: "counter",
39
+ type: "integer",
40
+ desc: "카운터"
41
+ },
42
+ {
43
+ name: "device_type",
44
+ type: "string",
45
+ desc: "장치 유형"
46
+ },
47
+ {
48
+ name: "backed_up",
49
+ type: "boolean",
50
+ desc: "백업 여부"
51
+ },
52
+ {
53
+ name: "transports",
54
+ type: "string",
55
+ nullable: true,
56
+ desc: "전송 방식"
57
+ },
58
+ {
59
+ name: "aaguid",
60
+ type: "string",
61
+ nullable: true,
62
+ desc: "AAGUID"
63
+ },
64
+ {
65
+ name: "created_at",
66
+ type: "date",
67
+ dbDefault: "CURRENT_TIMESTAMP",
68
+ desc: "생성일시"
69
+ },
70
+ {
71
+ type: "relation",
72
+ name: "user",
73
+ with: "User",
74
+ relationType: "BelongsToOne",
75
+ onDelete: "CASCADE",
76
+ desc: "사용자"
77
+ }
78
+ ],
79
+ indexes: [
80
+ {
81
+ type: "index",
82
+ name: "passkeys_user_id_idx",
83
+ columns: [
84
+ {
85
+ name: "user_id"
86
+ }
87
+ ]
88
+ },
89
+ {
90
+ type: "index",
91
+ name: "passkeys_credential_id_idx",
92
+ columns: [
93
+ {
94
+ name: "credential_id"
95
+ }
96
+ ]
97
+ }
98
+ ],
99
+ subsets: {
100
+ A: [
101
+ "id",
102
+ "name",
103
+ "public_key",
104
+ "credential_id",
105
+ "counter",
106
+ "device_type",
107
+ "backed_up",
108
+ "transports",
109
+ "aaguid",
110
+ "created_at",
111
+ "user.id"
112
+ ]
113
+ },
114
+ enums: {
115
+ PasskeyOrderBy: {
116
+ "id-desc": "ID최신순",
117
+ "created_at-desc": "생성일최신순"
118
+ },
119
+ PasskeySearchField: {
120
+ id: "ID",
121
+ name: "이름"
122
+ }
123
+ }
124
+ }
125
+ ],
126
+ additionalProps: {}
127
+ };
128
+
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zL3Bhc3NrZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoRW50aXR5RGVmIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCBQYXNza2V5IO2UjOufrOq3uOyduCDsl5Tti7Dti7Ag7KCV7J2YXG4gKiBodHRwczovL3d3dy5iZXR0ZXItYXV0aC5jb20vZG9jcy9wbHVnaW5zL3Bhc3NrZXlcbiAqXG4gKiBXZWJBdXRobi9GSURPMiDquLDrsJgg7Yyo7Iqk7YKkIOyduOymneydhCDsp4Dsm5Dtlanri4jri6QuXG4gKiBQYXNza2V5IO2FjOydtOu4lOydhCDsg53shLHtlZjsl6wg7IKs7Jqp7J6Q7J2YIO2MqOyKpO2CpCDsoJXrs7Trpbwg7KCA7J6l7ZWp64uI64ukLlxuICovXG5leHBvcnQgY29uc3QgcGFzc2tleUVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiA9IHtcbiAgaWQ6IFwicGFzc2tleVwiLFxuICBuYW1lOiBcIlBhc3NrZXlcIixcbiAgZW50aXRpZXM6IFtcbiAgICB7XG4gICAgICBpZDogXCJQYXNza2V5XCIsXG4gICAgICB0YWJsZTogXCJwYXNza2V5c1wiLFxuICAgICAgdGl0bGU6IFwi7Yyo7Iqk7YKkXCIsXG4gICAgICBwcm9wczogW1xuICAgICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIu2MqOyKpO2CpCDsnbTrpoRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicHVibGljX2tleVwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuqzteqwnO2CpFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjcmVkZW50aWFsX2lkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7J6Q6rKpIOymneuqhSBJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb3VudGVyXCIsIHR5cGU6IFwiaW50ZWdlclwiLCBkZXNjOiBcIuy5tOyatO2EsFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJkZXZpY2VfdHlwZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuyepey5mCDsnKDtmJVcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYmFja2VkX3VwXCIsIHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjOiBcIuuwseyXhSDsl6zrtoBcIiB9LFxuICAgICAgICB7IG5hbWU6IFwidHJhbnNwb3J0c1wiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLsoITshqEg67Cp7IudXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImFhZ3VpZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJBQUdVSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgICBuYW1lOiBcInVzZXJcIixcbiAgICAgICAgICB3aXRoOiBcIlVzZXJcIixcbiAgICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgICAgb25EZWxldGU6IFwiQ0FTQ0FERVwiLFxuICAgICAgICAgIGRlc2M6IFwi7IKs7Jqp7J6QXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaW5kZXhlczogW1xuICAgICAgICB7IHR5cGU6IFwiaW5kZXhcIiwgbmFtZTogXCJwYXNza2V5c191c2VyX2lkX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcInVzZXJfaWRcIiB9XSB9LFxuICAgICAgICB7IHR5cGU6IFwiaW5kZXhcIiwgbmFtZTogXCJwYXNza2V5c19jcmVkZW50aWFsX2lkX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcImNyZWRlbnRpYWxfaWRcIiB9XSB9LFxuICAgICAgXSxcbiAgICAgIHN1YnNldHM6IHtcbiAgICAgICAgQTogW1xuICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInB1YmxpY19rZXlcIixcbiAgICAgICAgICBcImNyZWRlbnRpYWxfaWRcIixcbiAgICAgICAgICBcImNvdW50ZXJcIixcbiAgICAgICAgICBcImRldmljZV90eXBlXCIsXG4gICAgICAgICAgXCJiYWNrZWRfdXBcIixcbiAgICAgICAgICBcInRyYW5zcG9ydHNcIixcbiAgICAgICAgICBcImFhZ3VpZFwiLFxuICAgICAgICAgIFwiY3JlYXRlZF9hdFwiLFxuICAgICAgICAgIFwidXNlci5pZFwiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGVudW1zOiB7XG4gICAgICAgIFBhc3NrZXlPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIsIFwiY3JlYXRlZF9hdC1kZXNjXCI6IFwi7IOd7ISx7J287LWc7Iug7IicXCIgfSxcbiAgICAgICAgUGFzc2tleVNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIsIG5hbWU6IFwi7J2066aEXCIgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgYWRkaXRpb25hbFByb3BzOiB7fSxcbn07XG4iXSwibmFtZXMiOlsicGFzc2tleUVudGl0eURlZiIsImlkIiwibmFtZSIsImVudGl0aWVzIiwidGFibGUiLCJ0aXRsZSIsInByb3BzIiwidHlwZSIsImRlc2MiLCJudWxsYWJsZSIsImRiRGVmYXVsdCIsIndpdGgiLCJyZWxhdGlvblR5cGUiLCJvbkRlbGV0ZSIsImluZGV4ZXMiLCJjb2x1bW5zIiwic3Vic2V0cyIsIkEiLCJlbnVtcyIsIlBhc3NrZXlPcmRlckJ5IiwiUGFzc2tleVNlYXJjaEZpZWxkIiwiYWRkaXRpb25hbFByb3BzIl0sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0NBTUMsR0FDRCxPQUFPLE1BQU1BLG1CQUF3QztJQUNuREMsSUFBSTtJQUNKQyxNQUFNO0lBQ05DLFVBQVU7UUFDUjtZQUNFRixJQUFJO1lBQ0pHLE9BQU87WUFDUEMsT0FBTztZQUNQQyxPQUFPO2dCQUNMO29CQUFFSixNQUFNO29CQUFNSyxNQUFNO29CQUFVQyxNQUFNO2dCQUFLO2dCQUN6QztvQkFBRU4sTUFBTTtvQkFBUUssTUFBTTtvQkFBVUUsVUFBVTtvQkFBTUQsTUFBTTtnQkFBUztnQkFDL0Q7b0JBQUVOLE1BQU07b0JBQWNLLE1BQU07b0JBQVVDLE1BQU07Z0JBQU07Z0JBQ2xEO29CQUFFTixNQUFNO29CQUFpQkssTUFBTTtvQkFBVUMsTUFBTTtnQkFBVztnQkFDMUQ7b0JBQUVOLE1BQU07b0JBQVdLLE1BQU07b0JBQVdDLE1BQU07Z0JBQU07Z0JBQ2hEO29CQUFFTixNQUFNO29CQUFlSyxNQUFNO29CQUFVQyxNQUFNO2dCQUFRO2dCQUNyRDtvQkFBRU4sTUFBTTtvQkFBYUssTUFBTTtvQkFBV0MsTUFBTTtnQkFBUTtnQkFDcEQ7b0JBQUVOLE1BQU07b0JBQWNLLE1BQU07b0JBQVVFLFVBQVU7b0JBQU1ELE1BQU07Z0JBQVE7Z0JBQ3BFO29CQUFFTixNQUFNO29CQUFVSyxNQUFNO29CQUFVRSxVQUFVO29CQUFNRCxNQUFNO2dCQUFTO2dCQUNqRTtvQkFBRU4sTUFBTTtvQkFBY0ssTUFBTTtvQkFBUUcsV0FBVztvQkFBcUJGLE1BQU07Z0JBQU87Z0JBQ2pGO29CQUNFRCxNQUFNO29CQUNOTCxNQUFNO29CQUNOUyxNQUFNO29CQUNOQyxjQUFjO29CQUNkQyxVQUFVO29CQUNWTCxNQUFNO2dCQUNSO2FBQ0Q7WUFDRE0sU0FBUztnQkFDUDtvQkFBRVAsTUFBTTtvQkFBU0wsTUFBTTtvQkFBd0JhLFNBQVM7d0JBQUM7NEJBQUViLE1BQU07d0JBQVU7cUJBQUU7Z0JBQUM7Z0JBQzlFO29CQUFFSyxNQUFNO29CQUFTTCxNQUFNO29CQUE4QmEsU0FBUzt3QkFBQzs0QkFBRWIsTUFBTTt3QkFBZ0I7cUJBQUU7Z0JBQUM7YUFDM0Y7WUFDRGMsU0FBUztnQkFDUEMsR0FBRztvQkFDRDtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtvQkFDQTtpQkFDRDtZQUNIO1lBQ0FDLE9BQU87Z0JBQ0xDLGdCQUFnQjtvQkFBRSxXQUFXO29CQUFTLG1CQUFtQjtnQkFBUztnQkFDbEVDLG9CQUFvQjtvQkFBRW5CLElBQUk7b0JBQU1DLE1BQU07Z0JBQUs7WUFDN0M7UUFDRjtLQUNEO0lBQ0RtQixpQkFBaUIsQ0FBQztBQUNwQixFQUFFIn0=
@@ -0,0 +1,10 @@
1
+ import type { BetterAuthEntityDef } from "./types";
2
+ /**
3
+ * better-auth SSO 플러그인 엔티티 정의
4
+ * https://www.better-auth.com/docs/plugins/sso
5
+ *
6
+ * 외부 IdP(OIDC, SAML)를 통한 SSO 로그인을 지원합니다.
7
+ * SsoProvider 테이블을 생성하여 SSO 제공자 설정을 저장합니다.
8
+ */
9
+ export declare const ssoEntityDef: BetterAuthEntityDef;
10
+ //# sourceMappingURL=sso.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/sso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,mBAoD1B,CAAC"}