@0x0501/mystack 0.0.0-stage → 0.1.0-bootstrap.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -2
  3. package/assets/auth.sqlite.schema.ts +479 -0
  4. package/assets/bun-sqlite.test.ts +46 -0
  5. package/assets/d1.test.ts +41 -0
  6. package/assets/drizzle.config.ts +2 -0
  7. package/assets/generate-auth-schema.mjs +25 -0
  8. package/assets/platform.sqlite.schema.ts +46 -0
  9. package/assets/polar-checkout.ts +10 -0
  10. package/assets/polar-route.ts +19 -0
  11. package/assets/polar.test.ts +30 -0
  12. package/assets/polar.ts +12 -0
  13. package/assets/purchase.bun-sqlite.ts +38 -0
  14. package/assets/purchase.sqlite.ts +39 -0
  15. package/assets/sqlite-migrations/0000_thin_phalanx.sql +295 -0
  16. package/assets/sqlite-migrations/meta/0000_snapshot.json +2058 -0
  17. package/assets/sqlite-migrations/meta/_journal.json +13 -0
  18. package/assets/turso.test.ts +40 -0
  19. package/package.json +44 -5
  20. package/src/adapters/database.mjs +448 -0
  21. package/src/adapters/deployment.mjs +101 -0
  22. package/src/adapters/email.mjs +75 -0
  23. package/src/adapters/payments.mjs +270 -0
  24. package/src/catalog.mjs +128 -0
  25. package/src/cli.mjs +294 -0
  26. package/src/generate.mjs +183 -0
  27. package/src/template.mjs +93 -0
  28. package/template/.env.docker +16 -0
  29. package/template/.env.example +67 -0
  30. package/template/DESIGN.md +58 -0
  31. package/template/LICENSE +21 -0
  32. package/template/biome.json +46 -0
  33. package/template/docker-compose.yml +47 -0
  34. package/template/docs/project-guide.md +61 -0
  35. package/template/drizzle/0000_create-app-role.sql +54 -0
  36. package/template/drizzle/0001_add-rls-context.sql +21 -0
  37. package/template/drizzle/0002_platform_tables.sql +320 -0
  38. package/template/drizzle/meta/0002_snapshot.json +2125 -0
  39. package/template/drizzle/meta/_journal.json +27 -0
  40. package/template/drizzle.config.ts +25 -0
  41. package/template/e2e/authenticated-ui.spec.ts +40 -0
  42. package/template/e2e/headless-design.spec.ts +66 -0
  43. package/template/e2e/navigation-loading.spec.ts +70 -0
  44. package/template/e2e/theme-responsive.spec.ts +260 -0
  45. package/template/gitignore +24 -0
  46. package/template/messages/de.json +212 -0
  47. package/template/messages/en.json +212 -0
  48. package/template/package.json +101 -0
  49. package/template/paraglide.config.ts +49 -0
  50. package/template/playwright.config.ts +58 -0
  51. package/template/project.inlang/settings.json +12 -0
  52. package/template/public/drizzle.svg +1 -0
  53. package/template/public/favicon.ico +0 -0
  54. package/template/public/logo192.png +0 -0
  55. package/template/public/logo512.png +0 -0
  56. package/template/public/manifest.json +25 -0
  57. package/template/public/robots.txt +3 -0
  58. package/template/scripts/check-client-bundle.ts +150 -0
  59. package/template/scripts/check-server-fns.ts +290 -0
  60. package/template/scripts/check-sql-raw.ts +50 -0
  61. package/template/scripts/compile-paraglide.ts +12 -0
  62. package/template/scripts/postgres/README.md +76 -0
  63. package/template/scripts/postgres/create-app-role.sh +60 -0
  64. package/template/scripts/seed-local.ts +331 -0
  65. package/template/scripts/validate-prod-env.ts +53 -0
  66. package/template/src/__tests__/README.md +9 -0
  67. package/template/src/__tests__/account-security.test.ts +664 -0
  68. package/template/src/__tests__/admin-http-surface.test.ts +311 -0
  69. package/template/src/__tests__/admin-peer-protection.test.ts +178 -0
  70. package/template/src/__tests__/auth-harness.ts +104 -0
  71. package/template/src/__tests__/auth-rate-limit.test.ts +43 -0
  72. package/template/src/__tests__/auth-redirect.test.ts +120 -0
  73. package/template/src/__tests__/body-limit.test.ts +47 -0
  74. package/template/src/__tests__/creem.test.ts +62 -0
  75. package/template/src/__tests__/demo-checkout.test.ts +141 -0
  76. package/template/src/__tests__/email-locale.test.ts +110 -0
  77. package/template/src/__tests__/global-setup.ts +80 -0
  78. package/template/src/__tests__/input-rules.test.ts +0 -0
  79. package/template/src/__tests__/message-parity.test.ts +38 -0
  80. package/template/src/__tests__/navigation-loading.test.tsx +252 -0
  81. package/template/src/__tests__/nowpayments.test.ts +106 -0
  82. package/template/src/__tests__/paraglide-url-contract.test.ts +87 -0
  83. package/template/src/__tests__/purchase-fulfillment.test.ts +204 -0
  84. package/template/src/__tests__/query-unauthorized-redirect.test.ts +95 -0
  85. package/template/src/__tests__/rls-policy.test.ts +120 -0
  86. package/template/src/__tests__/same-page-locale-href.test.ts +47 -0
  87. package/template/src/__tests__/search-params-oauth.test.ts +57 -0
  88. package/template/src/__tests__/security-headers.test.ts +12 -0
  89. package/template/src/__tests__/server-fn-error-contract.test.ts +173 -0
  90. package/template/src/__tests__/stripe.test.ts +84 -0
  91. package/template/src/__tests__/test-db.ts +32 -0
  92. package/template/src/__tests__/test-rls-db.ts +23 -0
  93. package/template/src/__tests__/user-update-guard.test.ts +109 -0
  94. package/template/src/components/LocaleSwitcher.tsx +79 -0
  95. package/template/src/components/ThemeToggle.tsx +47 -0
  96. package/template/src/components/auth/social.tsx +90 -0
  97. package/template/src/components/auth/turnstile.tsx +67 -0
  98. package/template/src/components/root/navigation-progress.tsx +32 -0
  99. package/template/src/components/root/not-found.tsx +20 -0
  100. package/template/src/components/root/pending.tsx +9 -0
  101. package/template/src/components/root/root-document.tsx +37 -0
  102. package/template/src/components/root/root-error.tsx +34 -0
  103. package/template/src/components/shells.tsx +201 -0
  104. package/template/src/components/ui/styles.ts +9 -0
  105. package/template/src/db/auth.schema.ts +455 -0
  106. package/template/src/db/helper.ts +38 -0
  107. package/template/src/db/index.ts +15 -0
  108. package/template/src/db/platform.schema.ts +122 -0
  109. package/template/src/db/schema.ts +2 -0
  110. package/template/src/env.ts +65 -0
  111. package/template/src/hooks/use-theme.ts +32 -0
  112. package/template/src/integrations/better-auth/header-user.tsx +36 -0
  113. package/template/src/integrations/better-auth/session-query.ts +11 -0
  114. package/template/src/integrations/react-email/PasswordOtpEmail.tsx +62 -0
  115. package/template/src/integrations/react-email/ResetPasswordEmail.tsx +64 -0
  116. package/template/src/integrations/react-email/VerifyEmail.tsx +72 -0
  117. package/template/src/integrations/react-email/theme.ts +75 -0
  118. package/template/src/integrations/tanstack-query/devtools.tsx +6 -0
  119. package/template/src/integrations/tanstack-query/root-provider.tsx +60 -0
  120. package/template/src/lib/auth-client.ts +27 -0
  121. package/template/src/lib/auth-paths.ts +94 -0
  122. package/template/src/lib/auth-plugins/existing-email-signup.ts +86 -0
  123. package/template/src/lib/auth-plugins/field-rules.ts +84 -0
  124. package/template/src/lib/auth-plugins/social-two-factor.ts +194 -0
  125. package/template/src/lib/auth-timing.ts +9 -0
  126. package/template/src/lib/auth.ts +279 -0
  127. package/template/src/lib/captcha.ts +11 -0
  128. package/template/src/lib/email.tsx +162 -0
  129. package/template/src/lib/github.ts +18 -0
  130. package/template/src/lib/locale-cookie.ts +12 -0
  131. package/template/src/lib/localized-pages.ts +25 -0
  132. package/template/src/lib/oauth-metadata.ts +19 -0
  133. package/template/src/lib/permissions.ts +29 -0
  134. package/template/src/lib/security-headers.ts +20 -0
  135. package/template/src/lib/site.ts +59 -0
  136. package/template/src/lib/theme.ts +42 -0
  137. package/template/src/lib/user-update-guard.ts +35 -0
  138. package/template/src/middlewares/admin.ts +46 -0
  139. package/template/src/middlewares/auth-rate-limit.ts +37 -0
  140. package/template/src/middlewares/better-auth.ts +15 -0
  141. package/template/src/middlewares/body-limit.ts +62 -0
  142. package/template/src/middlewares/database.ts +13 -0
  143. package/template/src/middlewares/protected.ts +45 -0
  144. package/template/src/routeTree.gen.ts +536 -0
  145. package/template/src/router.tsx +53 -0
  146. package/template/src/routes/[.]well-known/oauth-authorization-server/api/auth.ts +18 -0
  147. package/template/src/routes/[.]well-known/oauth-protected-resource/index.ts +32 -0
  148. package/template/src/routes/__root.tsx +175 -0
  149. package/template/src/routes/admin/audit.tsx +74 -0
  150. package/template/src/routes/admin/index.tsx +7 -0
  151. package/template/src/routes/admin/oauth-apps.tsx +164 -0
  152. package/template/src/routes/admin/route.tsx +27 -0
  153. package/template/src/routes/admin/users.tsx +215 -0
  154. package/template/src/routes/api/auth/$.ts +14 -0
  155. package/template/src/routes/api/auth/[.]well-known/openid-configuration.ts +15 -0
  156. package/template/src/routes/api/webhooks/creem.ts +69 -0
  157. package/template/src/routes/api/webhooks/nowpayments.ts +62 -0
  158. package/template/src/routes/api/webhooks/stripe.ts +74 -0
  159. package/template/src/routes/dashboard/account.tsx +430 -0
  160. package/template/src/routes/dashboard/index.tsx +128 -0
  161. package/template/src/routes/dashboard/route.tsx +17 -0
  162. package/template/src/routes/forgot-password.tsx +65 -0
  163. package/template/src/routes/index.tsx +85 -0
  164. package/template/src/routes/oauth/consent.tsx +77 -0
  165. package/template/src/routes/reset-password.tsx +78 -0
  166. package/template/src/routes/sign-in.tsx +174 -0
  167. package/template/src/routes/sign-up.tsx +135 -0
  168. package/template/src/routes/two-factor.tsx +74 -0
  169. package/template/src/server/README.md +3 -0
  170. package/template/src/server/account-security.ts +163 -0
  171. package/template/src/server/admin-audit.ts +37 -0
  172. package/template/src/server/admin-users.ts +112 -0
  173. package/template/src/server/auth.ts +44 -0
  174. package/template/src/server/demo-checkout.ts +67 -0
  175. package/template/src/server/oauth-clients.ts +83 -0
  176. package/template/src/server/payment-toggles.ts +39 -0
  177. package/template/src/server.ts +20 -0
  178. package/template/src/services/README.md +3 -0
  179. package/template/src/services/account-security.ts +893 -0
  180. package/template/src/services/admin-security.ts +164 -0
  181. package/template/src/services/admin-users.ts +181 -0
  182. package/template/src/services/auth-rate-limit.ts +32 -0
  183. package/template/src/services/creem.ts +83 -0
  184. package/template/src/services/demo-checkout.ts +100 -0
  185. package/template/src/services/nowpayments.ts +154 -0
  186. package/template/src/services/oauth-client.ts +85 -0
  187. package/template/src/services/oauth-clients.ts +15 -0
  188. package/template/src/services/payment-providers.ts +157 -0
  189. package/template/src/services/payment-toggles.ts +48 -0
  190. package/template/src/services/purchase.ts +233 -0
  191. package/template/src/services/stripe.ts +106 -0
  192. package/template/src/start.ts +35 -0
  193. package/template/src/styles/layout.css +93 -0
  194. package/template/src/styles/theme.css +84 -0
  195. package/template/src/styles/ui.css +233 -0
  196. package/template/src/styles.css +90 -0
  197. package/template/src/utils/api-error.ts +129 -0
  198. package/template/src/utils/auth-errors.ts +157 -0
  199. package/template/src/utils/auth-redirect.ts +61 -0
  200. package/template/src/utils/body-limit.ts +84 -0
  201. package/template/src/utils/cn.ts +6 -0
  202. package/template/src/utils/input-rules.ts +172 -0
  203. package/template/src/utils/locale-paths.ts +18 -0
  204. package/template/src/utils/same-page-locale-href.ts +20 -0
  205. package/template/src/utils/search-params.ts +71 -0
  206. package/template/tsconfig.json +30 -0
  207. package/template/tsr.config.json +6 -0
  208. package/template/vite.config.ts +24 -0
  209. package/template/vitest.config.ts +26 -0
  210. package/template/worker-configuration.d.ts +14660 -0
  211. package/template/wrangler.jsonc +39 -0
@@ -0,0 +1,2058 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "50ce3708-fe26-49c7-8ce9-b256f35617c2",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "account": {
8
+ "name": "account",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "account_id": {
18
+ "name": "account_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "provider_id": {
25
+ "name": "provider_id",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "user_id": {
32
+ "name": "user_id",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "access_token": {
39
+ "name": "access_token",
40
+ "type": "text",
41
+ "primaryKey": false,
42
+ "notNull": false,
43
+ "autoincrement": false
44
+ },
45
+ "refresh_token": {
46
+ "name": "refresh_token",
47
+ "type": "text",
48
+ "primaryKey": false,
49
+ "notNull": false,
50
+ "autoincrement": false
51
+ },
52
+ "id_token": {
53
+ "name": "id_token",
54
+ "type": "text",
55
+ "primaryKey": false,
56
+ "notNull": false,
57
+ "autoincrement": false
58
+ },
59
+ "access_token_expires_at": {
60
+ "name": "access_token_expires_at",
61
+ "type": "integer",
62
+ "primaryKey": false,
63
+ "notNull": false,
64
+ "autoincrement": false
65
+ },
66
+ "refresh_token_expires_at": {
67
+ "name": "refresh_token_expires_at",
68
+ "type": "integer",
69
+ "primaryKey": false,
70
+ "notNull": false,
71
+ "autoincrement": false
72
+ },
73
+ "scope": {
74
+ "name": "scope",
75
+ "type": "text",
76
+ "primaryKey": false,
77
+ "notNull": false,
78
+ "autoincrement": false
79
+ },
80
+ "password": {
81
+ "name": "password",
82
+ "type": "text",
83
+ "primaryKey": false,
84
+ "notNull": false,
85
+ "autoincrement": false
86
+ },
87
+ "created_at": {
88
+ "name": "created_at",
89
+ "type": "integer",
90
+ "primaryKey": false,
91
+ "notNull": true,
92
+ "autoincrement": false,
93
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
94
+ },
95
+ "updated_at": {
96
+ "name": "updated_at",
97
+ "type": "integer",
98
+ "primaryKey": false,
99
+ "notNull": true,
100
+ "autoincrement": false
101
+ }
102
+ },
103
+ "indexes": {
104
+ "account_userId_idx": {
105
+ "name": "account_userId_idx",
106
+ "columns": [
107
+ "user_id"
108
+ ],
109
+ "isUnique": false
110
+ }
111
+ },
112
+ "foreignKeys": {
113
+ "account_user_id_user_id_fk": {
114
+ "name": "account_user_id_user_id_fk",
115
+ "tableFrom": "account",
116
+ "tableTo": "user",
117
+ "columnsFrom": [
118
+ "user_id"
119
+ ],
120
+ "columnsTo": [
121
+ "id"
122
+ ],
123
+ "onDelete": "cascade",
124
+ "onUpdate": "no action"
125
+ }
126
+ },
127
+ "compositePrimaryKeys": {},
128
+ "uniqueConstraints": {},
129
+ "checkConstraints": {}
130
+ },
131
+ "jwks": {
132
+ "name": "jwks",
133
+ "columns": {
134
+ "id": {
135
+ "name": "id",
136
+ "type": "text",
137
+ "primaryKey": true,
138
+ "notNull": true,
139
+ "autoincrement": false
140
+ },
141
+ "public_key": {
142
+ "name": "public_key",
143
+ "type": "text",
144
+ "primaryKey": false,
145
+ "notNull": true,
146
+ "autoincrement": false
147
+ },
148
+ "private_key": {
149
+ "name": "private_key",
150
+ "type": "text",
151
+ "primaryKey": false,
152
+ "notNull": true,
153
+ "autoincrement": false
154
+ },
155
+ "created_at": {
156
+ "name": "created_at",
157
+ "type": "integer",
158
+ "primaryKey": false,
159
+ "notNull": true,
160
+ "autoincrement": false
161
+ },
162
+ "expires_at": {
163
+ "name": "expires_at",
164
+ "type": "integer",
165
+ "primaryKey": false,
166
+ "notNull": false,
167
+ "autoincrement": false
168
+ },
169
+ "alg": {
170
+ "name": "alg",
171
+ "type": "text",
172
+ "primaryKey": false,
173
+ "notNull": false,
174
+ "autoincrement": false
175
+ },
176
+ "crv": {
177
+ "name": "crv",
178
+ "type": "text",
179
+ "primaryKey": false,
180
+ "notNull": false,
181
+ "autoincrement": false
182
+ }
183
+ },
184
+ "indexes": {},
185
+ "foreignKeys": {},
186
+ "compositePrimaryKeys": {},
187
+ "uniqueConstraints": {},
188
+ "checkConstraints": {}
189
+ },
190
+ "oauth_access_token": {
191
+ "name": "oauth_access_token",
192
+ "columns": {
193
+ "id": {
194
+ "name": "id",
195
+ "type": "text",
196
+ "primaryKey": true,
197
+ "notNull": true,
198
+ "autoincrement": false
199
+ },
200
+ "token": {
201
+ "name": "token",
202
+ "type": "text",
203
+ "primaryKey": false,
204
+ "notNull": true,
205
+ "autoincrement": false
206
+ },
207
+ "client_id": {
208
+ "name": "client_id",
209
+ "type": "text",
210
+ "primaryKey": false,
211
+ "notNull": true,
212
+ "autoincrement": false
213
+ },
214
+ "session_id": {
215
+ "name": "session_id",
216
+ "type": "text",
217
+ "primaryKey": false,
218
+ "notNull": false,
219
+ "autoincrement": false
220
+ },
221
+ "user_id": {
222
+ "name": "user_id",
223
+ "type": "text",
224
+ "primaryKey": false,
225
+ "notNull": false,
226
+ "autoincrement": false
227
+ },
228
+ "reference_id": {
229
+ "name": "reference_id",
230
+ "type": "text",
231
+ "primaryKey": false,
232
+ "notNull": false,
233
+ "autoincrement": false
234
+ },
235
+ "authorization_code_id": {
236
+ "name": "authorization_code_id",
237
+ "type": "text",
238
+ "primaryKey": false,
239
+ "notNull": false,
240
+ "autoincrement": false
241
+ },
242
+ "resources": {
243
+ "name": "resources",
244
+ "type": "text",
245
+ "primaryKey": false,
246
+ "notNull": false,
247
+ "autoincrement": false
248
+ },
249
+ "requested_user_info_claims": {
250
+ "name": "requested_user_info_claims",
251
+ "type": "text",
252
+ "primaryKey": false,
253
+ "notNull": false,
254
+ "autoincrement": false
255
+ },
256
+ "refresh_id": {
257
+ "name": "refresh_id",
258
+ "type": "text",
259
+ "primaryKey": false,
260
+ "notNull": false,
261
+ "autoincrement": false
262
+ },
263
+ "expires_at": {
264
+ "name": "expires_at",
265
+ "type": "integer",
266
+ "primaryKey": false,
267
+ "notNull": true,
268
+ "autoincrement": false
269
+ },
270
+ "created_at": {
271
+ "name": "created_at",
272
+ "type": "integer",
273
+ "primaryKey": false,
274
+ "notNull": true,
275
+ "autoincrement": false
276
+ },
277
+ "revoked": {
278
+ "name": "revoked",
279
+ "type": "integer",
280
+ "primaryKey": false,
281
+ "notNull": false,
282
+ "autoincrement": false
283
+ },
284
+ "confirmation": {
285
+ "name": "confirmation",
286
+ "type": "text",
287
+ "primaryKey": false,
288
+ "notNull": false,
289
+ "autoincrement": false
290
+ },
291
+ "scopes": {
292
+ "name": "scopes",
293
+ "type": "text",
294
+ "primaryKey": false,
295
+ "notNull": true,
296
+ "autoincrement": false
297
+ }
298
+ },
299
+ "indexes": {
300
+ "oauth_access_token_token_unique": {
301
+ "name": "oauth_access_token_token_unique",
302
+ "columns": [
303
+ "token"
304
+ ],
305
+ "isUnique": true
306
+ },
307
+ "oauthAccessToken_clientId_idx": {
308
+ "name": "oauthAccessToken_clientId_idx",
309
+ "columns": [
310
+ "client_id"
311
+ ],
312
+ "isUnique": false
313
+ },
314
+ "oauthAccessToken_sessionId_idx": {
315
+ "name": "oauthAccessToken_sessionId_idx",
316
+ "columns": [
317
+ "session_id"
318
+ ],
319
+ "isUnique": false
320
+ },
321
+ "oauthAccessToken_userId_idx": {
322
+ "name": "oauthAccessToken_userId_idx",
323
+ "columns": [
324
+ "user_id"
325
+ ],
326
+ "isUnique": false
327
+ },
328
+ "oauthAccessToken_authorizationCodeId_idx": {
329
+ "name": "oauthAccessToken_authorizationCodeId_idx",
330
+ "columns": [
331
+ "authorization_code_id"
332
+ ],
333
+ "isUnique": false
334
+ },
335
+ "oauthAccessToken_refreshId_idx": {
336
+ "name": "oauthAccessToken_refreshId_idx",
337
+ "columns": [
338
+ "refresh_id"
339
+ ],
340
+ "isUnique": false
341
+ }
342
+ },
343
+ "foreignKeys": {
344
+ "oauth_access_token_client_id_oauth_client_client_id_fk": {
345
+ "name": "oauth_access_token_client_id_oauth_client_client_id_fk",
346
+ "tableFrom": "oauth_access_token",
347
+ "tableTo": "oauth_client",
348
+ "columnsFrom": [
349
+ "client_id"
350
+ ],
351
+ "columnsTo": [
352
+ "client_id"
353
+ ],
354
+ "onDelete": "cascade",
355
+ "onUpdate": "no action"
356
+ },
357
+ "oauth_access_token_session_id_session_id_fk": {
358
+ "name": "oauth_access_token_session_id_session_id_fk",
359
+ "tableFrom": "oauth_access_token",
360
+ "tableTo": "session",
361
+ "columnsFrom": [
362
+ "session_id"
363
+ ],
364
+ "columnsTo": [
365
+ "id"
366
+ ],
367
+ "onDelete": "set null",
368
+ "onUpdate": "no action"
369
+ },
370
+ "oauth_access_token_user_id_user_id_fk": {
371
+ "name": "oauth_access_token_user_id_user_id_fk",
372
+ "tableFrom": "oauth_access_token",
373
+ "tableTo": "user",
374
+ "columnsFrom": [
375
+ "user_id"
376
+ ],
377
+ "columnsTo": [
378
+ "id"
379
+ ],
380
+ "onDelete": "cascade",
381
+ "onUpdate": "no action"
382
+ },
383
+ "oauth_access_token_refresh_id_oauth_refresh_token_id_fk": {
384
+ "name": "oauth_access_token_refresh_id_oauth_refresh_token_id_fk",
385
+ "tableFrom": "oauth_access_token",
386
+ "tableTo": "oauth_refresh_token",
387
+ "columnsFrom": [
388
+ "refresh_id"
389
+ ],
390
+ "columnsTo": [
391
+ "id"
392
+ ],
393
+ "onDelete": "cascade",
394
+ "onUpdate": "no action"
395
+ }
396
+ },
397
+ "compositePrimaryKeys": {},
398
+ "uniqueConstraints": {},
399
+ "checkConstraints": {}
400
+ },
401
+ "oauth_client": {
402
+ "name": "oauth_client",
403
+ "columns": {
404
+ "id": {
405
+ "name": "id",
406
+ "type": "text",
407
+ "primaryKey": true,
408
+ "notNull": true,
409
+ "autoincrement": false
410
+ },
411
+ "client_id": {
412
+ "name": "client_id",
413
+ "type": "text",
414
+ "primaryKey": false,
415
+ "notNull": true,
416
+ "autoincrement": false
417
+ },
418
+ "client_secret": {
419
+ "name": "client_secret",
420
+ "type": "text",
421
+ "primaryKey": false,
422
+ "notNull": false,
423
+ "autoincrement": false
424
+ },
425
+ "client_discovery_id": {
426
+ "name": "client_discovery_id",
427
+ "type": "text",
428
+ "primaryKey": false,
429
+ "notNull": false,
430
+ "autoincrement": false
431
+ },
432
+ "disabled": {
433
+ "name": "disabled",
434
+ "type": "integer",
435
+ "primaryKey": false,
436
+ "notNull": false,
437
+ "autoincrement": false,
438
+ "default": false
439
+ },
440
+ "skip_consent": {
441
+ "name": "skip_consent",
442
+ "type": "integer",
443
+ "primaryKey": false,
444
+ "notNull": false,
445
+ "autoincrement": false
446
+ },
447
+ "enable_end_session": {
448
+ "name": "enable_end_session",
449
+ "type": "integer",
450
+ "primaryKey": false,
451
+ "notNull": false,
452
+ "autoincrement": false
453
+ },
454
+ "subject_type": {
455
+ "name": "subject_type",
456
+ "type": "text",
457
+ "primaryKey": false,
458
+ "notNull": false,
459
+ "autoincrement": false
460
+ },
461
+ "scopes": {
462
+ "name": "scopes",
463
+ "type": "text",
464
+ "primaryKey": false,
465
+ "notNull": false,
466
+ "autoincrement": false
467
+ },
468
+ "client_credentials_scopes": {
469
+ "name": "client_credentials_scopes",
470
+ "type": "text",
471
+ "primaryKey": false,
472
+ "notNull": false,
473
+ "autoincrement": false,
474
+ "default": "'[]'"
475
+ },
476
+ "user_id": {
477
+ "name": "user_id",
478
+ "type": "text",
479
+ "primaryKey": false,
480
+ "notNull": false,
481
+ "autoincrement": false
482
+ },
483
+ "created_at": {
484
+ "name": "created_at",
485
+ "type": "integer",
486
+ "primaryKey": false,
487
+ "notNull": false,
488
+ "autoincrement": false
489
+ },
490
+ "updated_at": {
491
+ "name": "updated_at",
492
+ "type": "integer",
493
+ "primaryKey": false,
494
+ "notNull": false,
495
+ "autoincrement": false
496
+ },
497
+ "name": {
498
+ "name": "name",
499
+ "type": "text",
500
+ "primaryKey": false,
501
+ "notNull": false,
502
+ "autoincrement": false
503
+ },
504
+ "uri": {
505
+ "name": "uri",
506
+ "type": "text",
507
+ "primaryKey": false,
508
+ "notNull": false,
509
+ "autoincrement": false
510
+ },
511
+ "icon": {
512
+ "name": "icon",
513
+ "type": "text",
514
+ "primaryKey": false,
515
+ "notNull": false,
516
+ "autoincrement": false
517
+ },
518
+ "contacts": {
519
+ "name": "contacts",
520
+ "type": "text",
521
+ "primaryKey": false,
522
+ "notNull": false,
523
+ "autoincrement": false
524
+ },
525
+ "tos": {
526
+ "name": "tos",
527
+ "type": "text",
528
+ "primaryKey": false,
529
+ "notNull": false,
530
+ "autoincrement": false
531
+ },
532
+ "policy": {
533
+ "name": "policy",
534
+ "type": "text",
535
+ "primaryKey": false,
536
+ "notNull": false,
537
+ "autoincrement": false
538
+ },
539
+ "software_id": {
540
+ "name": "software_id",
541
+ "type": "text",
542
+ "primaryKey": false,
543
+ "notNull": false,
544
+ "autoincrement": false
545
+ },
546
+ "software_version": {
547
+ "name": "software_version",
548
+ "type": "text",
549
+ "primaryKey": false,
550
+ "notNull": false,
551
+ "autoincrement": false
552
+ },
553
+ "software_statement": {
554
+ "name": "software_statement",
555
+ "type": "text",
556
+ "primaryKey": false,
557
+ "notNull": false,
558
+ "autoincrement": false
559
+ },
560
+ "redirect_uris": {
561
+ "name": "redirect_uris",
562
+ "type": "text",
563
+ "primaryKey": false,
564
+ "notNull": true,
565
+ "autoincrement": false
566
+ },
567
+ "post_logout_redirect_uris": {
568
+ "name": "post_logout_redirect_uris",
569
+ "type": "text",
570
+ "primaryKey": false,
571
+ "notNull": false,
572
+ "autoincrement": false
573
+ },
574
+ "backchannel_logout_uri": {
575
+ "name": "backchannel_logout_uri",
576
+ "type": "text",
577
+ "primaryKey": false,
578
+ "notNull": false,
579
+ "autoincrement": false
580
+ },
581
+ "backchannel_logout_session_required": {
582
+ "name": "backchannel_logout_session_required",
583
+ "type": "integer",
584
+ "primaryKey": false,
585
+ "notNull": false,
586
+ "autoincrement": false
587
+ },
588
+ "token_endpoint_auth_method": {
589
+ "name": "token_endpoint_auth_method",
590
+ "type": "text",
591
+ "primaryKey": false,
592
+ "notNull": false,
593
+ "autoincrement": false
594
+ },
595
+ "application_type": {
596
+ "name": "application_type",
597
+ "type": "text",
598
+ "primaryKey": false,
599
+ "notNull": false,
600
+ "autoincrement": false
601
+ },
602
+ "jwks": {
603
+ "name": "jwks",
604
+ "type": "text",
605
+ "primaryKey": false,
606
+ "notNull": false,
607
+ "autoincrement": false
608
+ },
609
+ "jwks_uri": {
610
+ "name": "jwks_uri",
611
+ "type": "text",
612
+ "primaryKey": false,
613
+ "notNull": false,
614
+ "autoincrement": false
615
+ },
616
+ "grant_types": {
617
+ "name": "grant_types",
618
+ "type": "text",
619
+ "primaryKey": false,
620
+ "notNull": false,
621
+ "autoincrement": false
622
+ },
623
+ "response_types": {
624
+ "name": "response_types",
625
+ "type": "text",
626
+ "primaryKey": false,
627
+ "notNull": false,
628
+ "autoincrement": false
629
+ },
630
+ "require_pkce": {
631
+ "name": "require_pkce",
632
+ "type": "integer",
633
+ "primaryKey": false,
634
+ "notNull": false,
635
+ "autoincrement": false
636
+ },
637
+ "dpop_bound_access_tokens": {
638
+ "name": "dpop_bound_access_tokens",
639
+ "type": "integer",
640
+ "primaryKey": false,
641
+ "notNull": false,
642
+ "autoincrement": false,
643
+ "default": false
644
+ },
645
+ "reference_id": {
646
+ "name": "reference_id",
647
+ "type": "text",
648
+ "primaryKey": false,
649
+ "notNull": false,
650
+ "autoincrement": false
651
+ },
652
+ "metadata": {
653
+ "name": "metadata",
654
+ "type": "text",
655
+ "primaryKey": false,
656
+ "notNull": false,
657
+ "autoincrement": false
658
+ }
659
+ },
660
+ "indexes": {
661
+ "oauth_client_client_id_unique": {
662
+ "name": "oauth_client_client_id_unique",
663
+ "columns": [
664
+ "client_id"
665
+ ],
666
+ "isUnique": true
667
+ },
668
+ "oauthClient_userId_idx": {
669
+ "name": "oauthClient_userId_idx",
670
+ "columns": [
671
+ "user_id"
672
+ ],
673
+ "isUnique": false
674
+ }
675
+ },
676
+ "foreignKeys": {
677
+ "oauth_client_user_id_user_id_fk": {
678
+ "name": "oauth_client_user_id_user_id_fk",
679
+ "tableFrom": "oauth_client",
680
+ "tableTo": "user",
681
+ "columnsFrom": [
682
+ "user_id"
683
+ ],
684
+ "columnsTo": [
685
+ "id"
686
+ ],
687
+ "onDelete": "cascade",
688
+ "onUpdate": "no action"
689
+ }
690
+ },
691
+ "compositePrimaryKeys": {},
692
+ "uniqueConstraints": {},
693
+ "checkConstraints": {}
694
+ },
695
+ "oauth_client_assertion": {
696
+ "name": "oauth_client_assertion",
697
+ "columns": {
698
+ "id": {
699
+ "name": "id",
700
+ "type": "text",
701
+ "primaryKey": true,
702
+ "notNull": true,
703
+ "autoincrement": false
704
+ },
705
+ "expires_at": {
706
+ "name": "expires_at",
707
+ "type": "integer",
708
+ "primaryKey": false,
709
+ "notNull": true,
710
+ "autoincrement": false
711
+ }
712
+ },
713
+ "indexes": {},
714
+ "foreignKeys": {},
715
+ "compositePrimaryKeys": {},
716
+ "uniqueConstraints": {},
717
+ "checkConstraints": {}
718
+ },
719
+ "oauth_client_resource": {
720
+ "name": "oauth_client_resource",
721
+ "columns": {
722
+ "id": {
723
+ "name": "id",
724
+ "type": "text",
725
+ "primaryKey": true,
726
+ "notNull": true,
727
+ "autoincrement": false
728
+ },
729
+ "client_id": {
730
+ "name": "client_id",
731
+ "type": "text",
732
+ "primaryKey": false,
733
+ "notNull": true,
734
+ "autoincrement": false
735
+ },
736
+ "resource_id": {
737
+ "name": "resource_id",
738
+ "type": "text",
739
+ "primaryKey": false,
740
+ "notNull": true,
741
+ "autoincrement": false
742
+ },
743
+ "metadata": {
744
+ "name": "metadata",
745
+ "type": "text",
746
+ "primaryKey": false,
747
+ "notNull": false,
748
+ "autoincrement": false
749
+ },
750
+ "created_at": {
751
+ "name": "created_at",
752
+ "type": "integer",
753
+ "primaryKey": false,
754
+ "notNull": false,
755
+ "autoincrement": false
756
+ }
757
+ },
758
+ "indexes": {
759
+ "oauthClientResource_clientId_resourceId_uidx": {
760
+ "name": "oauthClientResource_clientId_resourceId_uidx",
761
+ "columns": [
762
+ "client_id",
763
+ "resource_id"
764
+ ],
765
+ "isUnique": true
766
+ },
767
+ "oauthClientResource_clientId_idx": {
768
+ "name": "oauthClientResource_clientId_idx",
769
+ "columns": [
770
+ "client_id"
771
+ ],
772
+ "isUnique": false
773
+ },
774
+ "oauthClientResource_resourceId_idx": {
775
+ "name": "oauthClientResource_resourceId_idx",
776
+ "columns": [
777
+ "resource_id"
778
+ ],
779
+ "isUnique": false
780
+ }
781
+ },
782
+ "foreignKeys": {
783
+ "oauth_client_resource_client_id_oauth_client_client_id_fk": {
784
+ "name": "oauth_client_resource_client_id_oauth_client_client_id_fk",
785
+ "tableFrom": "oauth_client_resource",
786
+ "tableTo": "oauth_client",
787
+ "columnsFrom": [
788
+ "client_id"
789
+ ],
790
+ "columnsTo": [
791
+ "client_id"
792
+ ],
793
+ "onDelete": "cascade",
794
+ "onUpdate": "no action"
795
+ },
796
+ "oauth_client_resource_resource_id_oauth_resource_identifier_fk": {
797
+ "name": "oauth_client_resource_resource_id_oauth_resource_identifier_fk",
798
+ "tableFrom": "oauth_client_resource",
799
+ "tableTo": "oauth_resource",
800
+ "columnsFrom": [
801
+ "resource_id"
802
+ ],
803
+ "columnsTo": [
804
+ "identifier"
805
+ ],
806
+ "onDelete": "cascade",
807
+ "onUpdate": "no action"
808
+ }
809
+ },
810
+ "compositePrimaryKeys": {},
811
+ "uniqueConstraints": {},
812
+ "checkConstraints": {}
813
+ },
814
+ "oauth_consent": {
815
+ "name": "oauth_consent",
816
+ "columns": {
817
+ "id": {
818
+ "name": "id",
819
+ "type": "text",
820
+ "primaryKey": true,
821
+ "notNull": true,
822
+ "autoincrement": false
823
+ },
824
+ "client_id": {
825
+ "name": "client_id",
826
+ "type": "text",
827
+ "primaryKey": false,
828
+ "notNull": true,
829
+ "autoincrement": false
830
+ },
831
+ "user_id": {
832
+ "name": "user_id",
833
+ "type": "text",
834
+ "primaryKey": false,
835
+ "notNull": false,
836
+ "autoincrement": false
837
+ },
838
+ "reference_id": {
839
+ "name": "reference_id",
840
+ "type": "text",
841
+ "primaryKey": false,
842
+ "notNull": false,
843
+ "autoincrement": false
844
+ },
845
+ "resources": {
846
+ "name": "resources",
847
+ "type": "text",
848
+ "primaryKey": false,
849
+ "notNull": false,
850
+ "autoincrement": false
851
+ },
852
+ "requested_user_info_claims": {
853
+ "name": "requested_user_info_claims",
854
+ "type": "text",
855
+ "primaryKey": false,
856
+ "notNull": false,
857
+ "autoincrement": false
858
+ },
859
+ "scopes": {
860
+ "name": "scopes",
861
+ "type": "text",
862
+ "primaryKey": false,
863
+ "notNull": true,
864
+ "autoincrement": false
865
+ },
866
+ "created_at": {
867
+ "name": "created_at",
868
+ "type": "integer",
869
+ "primaryKey": false,
870
+ "notNull": true,
871
+ "autoincrement": false
872
+ },
873
+ "updated_at": {
874
+ "name": "updated_at",
875
+ "type": "integer",
876
+ "primaryKey": false,
877
+ "notNull": true,
878
+ "autoincrement": false
879
+ }
880
+ },
881
+ "indexes": {
882
+ "oauthConsent_clientId_idx": {
883
+ "name": "oauthConsent_clientId_idx",
884
+ "columns": [
885
+ "client_id"
886
+ ],
887
+ "isUnique": false
888
+ },
889
+ "oauthConsent_userId_idx": {
890
+ "name": "oauthConsent_userId_idx",
891
+ "columns": [
892
+ "user_id"
893
+ ],
894
+ "isUnique": false
895
+ }
896
+ },
897
+ "foreignKeys": {
898
+ "oauth_consent_client_id_oauth_client_client_id_fk": {
899
+ "name": "oauth_consent_client_id_oauth_client_client_id_fk",
900
+ "tableFrom": "oauth_consent",
901
+ "tableTo": "oauth_client",
902
+ "columnsFrom": [
903
+ "client_id"
904
+ ],
905
+ "columnsTo": [
906
+ "client_id"
907
+ ],
908
+ "onDelete": "cascade",
909
+ "onUpdate": "no action"
910
+ },
911
+ "oauth_consent_user_id_user_id_fk": {
912
+ "name": "oauth_consent_user_id_user_id_fk",
913
+ "tableFrom": "oauth_consent",
914
+ "tableTo": "user",
915
+ "columnsFrom": [
916
+ "user_id"
917
+ ],
918
+ "columnsTo": [
919
+ "id"
920
+ ],
921
+ "onDelete": "cascade",
922
+ "onUpdate": "no action"
923
+ }
924
+ },
925
+ "compositePrimaryKeys": {},
926
+ "uniqueConstraints": {},
927
+ "checkConstraints": {}
928
+ },
929
+ "oauth_refresh_token": {
930
+ "name": "oauth_refresh_token",
931
+ "columns": {
932
+ "id": {
933
+ "name": "id",
934
+ "type": "text",
935
+ "primaryKey": true,
936
+ "notNull": true,
937
+ "autoincrement": false
938
+ },
939
+ "token": {
940
+ "name": "token",
941
+ "type": "text",
942
+ "primaryKey": false,
943
+ "notNull": true,
944
+ "autoincrement": false
945
+ },
946
+ "client_id": {
947
+ "name": "client_id",
948
+ "type": "text",
949
+ "primaryKey": false,
950
+ "notNull": true,
951
+ "autoincrement": false
952
+ },
953
+ "session_id": {
954
+ "name": "session_id",
955
+ "type": "text",
956
+ "primaryKey": false,
957
+ "notNull": false,
958
+ "autoincrement": false
959
+ },
960
+ "user_id": {
961
+ "name": "user_id",
962
+ "type": "text",
963
+ "primaryKey": false,
964
+ "notNull": true,
965
+ "autoincrement": false
966
+ },
967
+ "reference_id": {
968
+ "name": "reference_id",
969
+ "type": "text",
970
+ "primaryKey": false,
971
+ "notNull": false,
972
+ "autoincrement": false
973
+ },
974
+ "authorization_code_id": {
975
+ "name": "authorization_code_id",
976
+ "type": "text",
977
+ "primaryKey": false,
978
+ "notNull": false,
979
+ "autoincrement": false
980
+ },
981
+ "resources": {
982
+ "name": "resources",
983
+ "type": "text",
984
+ "primaryKey": false,
985
+ "notNull": false,
986
+ "autoincrement": false
987
+ },
988
+ "requested_user_info_claims": {
989
+ "name": "requested_user_info_claims",
990
+ "type": "text",
991
+ "primaryKey": false,
992
+ "notNull": false,
993
+ "autoincrement": false
994
+ },
995
+ "expires_at": {
996
+ "name": "expires_at",
997
+ "type": "integer",
998
+ "primaryKey": false,
999
+ "notNull": true,
1000
+ "autoincrement": false
1001
+ },
1002
+ "created_at": {
1003
+ "name": "created_at",
1004
+ "type": "integer",
1005
+ "primaryKey": false,
1006
+ "notNull": true,
1007
+ "autoincrement": false
1008
+ },
1009
+ "revoked": {
1010
+ "name": "revoked",
1011
+ "type": "integer",
1012
+ "primaryKey": false,
1013
+ "notNull": false,
1014
+ "autoincrement": false
1015
+ },
1016
+ "rotated_at": {
1017
+ "name": "rotated_at",
1018
+ "type": "integer",
1019
+ "primaryKey": false,
1020
+ "notNull": false,
1021
+ "autoincrement": false
1022
+ },
1023
+ "rotation_replay_response": {
1024
+ "name": "rotation_replay_response",
1025
+ "type": "text",
1026
+ "primaryKey": false,
1027
+ "notNull": false,
1028
+ "autoincrement": false
1029
+ },
1030
+ "rotation_replay_expires_at": {
1031
+ "name": "rotation_replay_expires_at",
1032
+ "type": "integer",
1033
+ "primaryKey": false,
1034
+ "notNull": false,
1035
+ "autoincrement": false
1036
+ },
1037
+ "auth_time": {
1038
+ "name": "auth_time",
1039
+ "type": "integer",
1040
+ "primaryKey": false,
1041
+ "notNull": false,
1042
+ "autoincrement": false
1043
+ },
1044
+ "confirmation": {
1045
+ "name": "confirmation",
1046
+ "type": "text",
1047
+ "primaryKey": false,
1048
+ "notNull": false,
1049
+ "autoincrement": false
1050
+ },
1051
+ "scopes": {
1052
+ "name": "scopes",
1053
+ "type": "text",
1054
+ "primaryKey": false,
1055
+ "notNull": true,
1056
+ "autoincrement": false
1057
+ }
1058
+ },
1059
+ "indexes": {
1060
+ "oauth_refresh_token_token_unique": {
1061
+ "name": "oauth_refresh_token_token_unique",
1062
+ "columns": [
1063
+ "token"
1064
+ ],
1065
+ "isUnique": true
1066
+ },
1067
+ "oauthRefreshToken_clientId_idx": {
1068
+ "name": "oauthRefreshToken_clientId_idx",
1069
+ "columns": [
1070
+ "client_id"
1071
+ ],
1072
+ "isUnique": false
1073
+ },
1074
+ "oauthRefreshToken_sessionId_idx": {
1075
+ "name": "oauthRefreshToken_sessionId_idx",
1076
+ "columns": [
1077
+ "session_id"
1078
+ ],
1079
+ "isUnique": false
1080
+ },
1081
+ "oauthRefreshToken_userId_idx": {
1082
+ "name": "oauthRefreshToken_userId_idx",
1083
+ "columns": [
1084
+ "user_id"
1085
+ ],
1086
+ "isUnique": false
1087
+ },
1088
+ "oauthRefreshToken_authorizationCodeId_idx": {
1089
+ "name": "oauthRefreshToken_authorizationCodeId_idx",
1090
+ "columns": [
1091
+ "authorization_code_id"
1092
+ ],
1093
+ "isUnique": false
1094
+ }
1095
+ },
1096
+ "foreignKeys": {
1097
+ "oauth_refresh_token_client_id_oauth_client_client_id_fk": {
1098
+ "name": "oauth_refresh_token_client_id_oauth_client_client_id_fk",
1099
+ "tableFrom": "oauth_refresh_token",
1100
+ "tableTo": "oauth_client",
1101
+ "columnsFrom": [
1102
+ "client_id"
1103
+ ],
1104
+ "columnsTo": [
1105
+ "client_id"
1106
+ ],
1107
+ "onDelete": "cascade",
1108
+ "onUpdate": "no action"
1109
+ },
1110
+ "oauth_refresh_token_session_id_session_id_fk": {
1111
+ "name": "oauth_refresh_token_session_id_session_id_fk",
1112
+ "tableFrom": "oauth_refresh_token",
1113
+ "tableTo": "session",
1114
+ "columnsFrom": [
1115
+ "session_id"
1116
+ ],
1117
+ "columnsTo": [
1118
+ "id"
1119
+ ],
1120
+ "onDelete": "set null",
1121
+ "onUpdate": "no action"
1122
+ },
1123
+ "oauth_refresh_token_user_id_user_id_fk": {
1124
+ "name": "oauth_refresh_token_user_id_user_id_fk",
1125
+ "tableFrom": "oauth_refresh_token",
1126
+ "tableTo": "user",
1127
+ "columnsFrom": [
1128
+ "user_id"
1129
+ ],
1130
+ "columnsTo": [
1131
+ "id"
1132
+ ],
1133
+ "onDelete": "cascade",
1134
+ "onUpdate": "no action"
1135
+ }
1136
+ },
1137
+ "compositePrimaryKeys": {},
1138
+ "uniqueConstraints": {},
1139
+ "checkConstraints": {}
1140
+ },
1141
+ "oauth_resource": {
1142
+ "name": "oauth_resource",
1143
+ "columns": {
1144
+ "id": {
1145
+ "name": "id",
1146
+ "type": "text",
1147
+ "primaryKey": true,
1148
+ "notNull": true,
1149
+ "autoincrement": false
1150
+ },
1151
+ "identifier": {
1152
+ "name": "identifier",
1153
+ "type": "text",
1154
+ "primaryKey": false,
1155
+ "notNull": true,
1156
+ "autoincrement": false
1157
+ },
1158
+ "name": {
1159
+ "name": "name",
1160
+ "type": "text",
1161
+ "primaryKey": false,
1162
+ "notNull": true,
1163
+ "autoincrement": false
1164
+ },
1165
+ "access_token_ttl": {
1166
+ "name": "access_token_ttl",
1167
+ "type": "integer",
1168
+ "primaryKey": false,
1169
+ "notNull": false,
1170
+ "autoincrement": false
1171
+ },
1172
+ "refresh_token_ttl": {
1173
+ "name": "refresh_token_ttl",
1174
+ "type": "integer",
1175
+ "primaryKey": false,
1176
+ "notNull": false,
1177
+ "autoincrement": false
1178
+ },
1179
+ "signing_algorithm": {
1180
+ "name": "signing_algorithm",
1181
+ "type": "text",
1182
+ "primaryKey": false,
1183
+ "notNull": false,
1184
+ "autoincrement": false
1185
+ },
1186
+ "signing_key_id": {
1187
+ "name": "signing_key_id",
1188
+ "type": "text",
1189
+ "primaryKey": false,
1190
+ "notNull": false,
1191
+ "autoincrement": false
1192
+ },
1193
+ "allowed_scopes": {
1194
+ "name": "allowed_scopes",
1195
+ "type": "text",
1196
+ "primaryKey": false,
1197
+ "notNull": false,
1198
+ "autoincrement": false
1199
+ },
1200
+ "custom_claims": {
1201
+ "name": "custom_claims",
1202
+ "type": "text",
1203
+ "primaryKey": false,
1204
+ "notNull": false,
1205
+ "autoincrement": false
1206
+ },
1207
+ "dpop_bound_access_tokens_required": {
1208
+ "name": "dpop_bound_access_tokens_required",
1209
+ "type": "integer",
1210
+ "primaryKey": false,
1211
+ "notNull": false,
1212
+ "autoincrement": false,
1213
+ "default": false
1214
+ },
1215
+ "disabled": {
1216
+ "name": "disabled",
1217
+ "type": "integer",
1218
+ "primaryKey": false,
1219
+ "notNull": false,
1220
+ "autoincrement": false,
1221
+ "default": false
1222
+ },
1223
+ "created_at": {
1224
+ "name": "created_at",
1225
+ "type": "integer",
1226
+ "primaryKey": false,
1227
+ "notNull": false,
1228
+ "autoincrement": false
1229
+ },
1230
+ "updated_at": {
1231
+ "name": "updated_at",
1232
+ "type": "integer",
1233
+ "primaryKey": false,
1234
+ "notNull": false,
1235
+ "autoincrement": false
1236
+ },
1237
+ "policy_version": {
1238
+ "name": "policy_version",
1239
+ "type": "integer",
1240
+ "primaryKey": false,
1241
+ "notNull": false,
1242
+ "autoincrement": false,
1243
+ "default": 1
1244
+ },
1245
+ "metadata": {
1246
+ "name": "metadata",
1247
+ "type": "text",
1248
+ "primaryKey": false,
1249
+ "notNull": false,
1250
+ "autoincrement": false
1251
+ }
1252
+ },
1253
+ "indexes": {
1254
+ "oauth_resource_identifier_unique": {
1255
+ "name": "oauth_resource_identifier_unique",
1256
+ "columns": [
1257
+ "identifier"
1258
+ ],
1259
+ "isUnique": true
1260
+ }
1261
+ },
1262
+ "foreignKeys": {},
1263
+ "compositePrimaryKeys": {},
1264
+ "uniqueConstraints": {},
1265
+ "checkConstraints": {}
1266
+ },
1267
+ "passkey": {
1268
+ "name": "passkey",
1269
+ "columns": {
1270
+ "id": {
1271
+ "name": "id",
1272
+ "type": "text",
1273
+ "primaryKey": true,
1274
+ "notNull": true,
1275
+ "autoincrement": false
1276
+ },
1277
+ "name": {
1278
+ "name": "name",
1279
+ "type": "text",
1280
+ "primaryKey": false,
1281
+ "notNull": false,
1282
+ "autoincrement": false
1283
+ },
1284
+ "public_key": {
1285
+ "name": "public_key",
1286
+ "type": "text",
1287
+ "primaryKey": false,
1288
+ "notNull": true,
1289
+ "autoincrement": false
1290
+ },
1291
+ "user_id": {
1292
+ "name": "user_id",
1293
+ "type": "text",
1294
+ "primaryKey": false,
1295
+ "notNull": true,
1296
+ "autoincrement": false
1297
+ },
1298
+ "credential_id": {
1299
+ "name": "credential_id",
1300
+ "type": "text",
1301
+ "primaryKey": false,
1302
+ "notNull": true,
1303
+ "autoincrement": false
1304
+ },
1305
+ "counter": {
1306
+ "name": "counter",
1307
+ "type": "integer",
1308
+ "primaryKey": false,
1309
+ "notNull": true,
1310
+ "autoincrement": false
1311
+ },
1312
+ "device_type": {
1313
+ "name": "device_type",
1314
+ "type": "text",
1315
+ "primaryKey": false,
1316
+ "notNull": true,
1317
+ "autoincrement": false
1318
+ },
1319
+ "backed_up": {
1320
+ "name": "backed_up",
1321
+ "type": "integer",
1322
+ "primaryKey": false,
1323
+ "notNull": true,
1324
+ "autoincrement": false
1325
+ },
1326
+ "transports": {
1327
+ "name": "transports",
1328
+ "type": "text",
1329
+ "primaryKey": false,
1330
+ "notNull": false,
1331
+ "autoincrement": false
1332
+ },
1333
+ "created_at": {
1334
+ "name": "created_at",
1335
+ "type": "integer",
1336
+ "primaryKey": false,
1337
+ "notNull": false,
1338
+ "autoincrement": false
1339
+ },
1340
+ "aaguid": {
1341
+ "name": "aaguid",
1342
+ "type": "text",
1343
+ "primaryKey": false,
1344
+ "notNull": false,
1345
+ "autoincrement": false
1346
+ }
1347
+ },
1348
+ "indexes": {
1349
+ "passkey_userId_idx": {
1350
+ "name": "passkey_userId_idx",
1351
+ "columns": [
1352
+ "user_id"
1353
+ ],
1354
+ "isUnique": false
1355
+ },
1356
+ "passkey_credentialID_idx": {
1357
+ "name": "passkey_credentialID_idx",
1358
+ "columns": [
1359
+ "credential_id"
1360
+ ],
1361
+ "isUnique": false
1362
+ }
1363
+ },
1364
+ "foreignKeys": {
1365
+ "passkey_user_id_user_id_fk": {
1366
+ "name": "passkey_user_id_user_id_fk",
1367
+ "tableFrom": "passkey",
1368
+ "tableTo": "user",
1369
+ "columnsFrom": [
1370
+ "user_id"
1371
+ ],
1372
+ "columnsTo": [
1373
+ "id"
1374
+ ],
1375
+ "onDelete": "cascade",
1376
+ "onUpdate": "no action"
1377
+ }
1378
+ },
1379
+ "compositePrimaryKeys": {},
1380
+ "uniqueConstraints": {},
1381
+ "checkConstraints": {}
1382
+ },
1383
+ "session": {
1384
+ "name": "session",
1385
+ "columns": {
1386
+ "id": {
1387
+ "name": "id",
1388
+ "type": "text",
1389
+ "primaryKey": true,
1390
+ "notNull": true,
1391
+ "autoincrement": false
1392
+ },
1393
+ "expires_at": {
1394
+ "name": "expires_at",
1395
+ "type": "integer",
1396
+ "primaryKey": false,
1397
+ "notNull": true,
1398
+ "autoincrement": false
1399
+ },
1400
+ "token": {
1401
+ "name": "token",
1402
+ "type": "text",
1403
+ "primaryKey": false,
1404
+ "notNull": true,
1405
+ "autoincrement": false
1406
+ },
1407
+ "created_at": {
1408
+ "name": "created_at",
1409
+ "type": "integer",
1410
+ "primaryKey": false,
1411
+ "notNull": true,
1412
+ "autoincrement": false,
1413
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
1414
+ },
1415
+ "updated_at": {
1416
+ "name": "updated_at",
1417
+ "type": "integer",
1418
+ "primaryKey": false,
1419
+ "notNull": true,
1420
+ "autoincrement": false
1421
+ },
1422
+ "ip_address": {
1423
+ "name": "ip_address",
1424
+ "type": "text",
1425
+ "primaryKey": false,
1426
+ "notNull": false,
1427
+ "autoincrement": false
1428
+ },
1429
+ "user_agent": {
1430
+ "name": "user_agent",
1431
+ "type": "text",
1432
+ "primaryKey": false,
1433
+ "notNull": false,
1434
+ "autoincrement": false
1435
+ },
1436
+ "user_id": {
1437
+ "name": "user_id",
1438
+ "type": "text",
1439
+ "primaryKey": false,
1440
+ "notNull": true,
1441
+ "autoincrement": false
1442
+ },
1443
+ "impersonated_by": {
1444
+ "name": "impersonated_by",
1445
+ "type": "text",
1446
+ "primaryKey": false,
1447
+ "notNull": false,
1448
+ "autoincrement": false
1449
+ }
1450
+ },
1451
+ "indexes": {
1452
+ "session_token_unique": {
1453
+ "name": "session_token_unique",
1454
+ "columns": [
1455
+ "token"
1456
+ ],
1457
+ "isUnique": true
1458
+ },
1459
+ "session_userId_idx": {
1460
+ "name": "session_userId_idx",
1461
+ "columns": [
1462
+ "user_id"
1463
+ ],
1464
+ "isUnique": false
1465
+ }
1466
+ },
1467
+ "foreignKeys": {
1468
+ "session_user_id_user_id_fk": {
1469
+ "name": "session_user_id_user_id_fk",
1470
+ "tableFrom": "session",
1471
+ "tableTo": "user",
1472
+ "columnsFrom": [
1473
+ "user_id"
1474
+ ],
1475
+ "columnsTo": [
1476
+ "id"
1477
+ ],
1478
+ "onDelete": "cascade",
1479
+ "onUpdate": "no action"
1480
+ }
1481
+ },
1482
+ "compositePrimaryKeys": {},
1483
+ "uniqueConstraints": {},
1484
+ "checkConstraints": {}
1485
+ },
1486
+ "two_factor": {
1487
+ "name": "two_factor",
1488
+ "columns": {
1489
+ "id": {
1490
+ "name": "id",
1491
+ "type": "text",
1492
+ "primaryKey": true,
1493
+ "notNull": true,
1494
+ "autoincrement": false
1495
+ },
1496
+ "secret": {
1497
+ "name": "secret",
1498
+ "type": "text",
1499
+ "primaryKey": false,
1500
+ "notNull": true,
1501
+ "autoincrement": false
1502
+ },
1503
+ "backup_codes": {
1504
+ "name": "backup_codes",
1505
+ "type": "text",
1506
+ "primaryKey": false,
1507
+ "notNull": true,
1508
+ "autoincrement": false
1509
+ },
1510
+ "user_id": {
1511
+ "name": "user_id",
1512
+ "type": "text",
1513
+ "primaryKey": false,
1514
+ "notNull": true,
1515
+ "autoincrement": false
1516
+ },
1517
+ "verified": {
1518
+ "name": "verified",
1519
+ "type": "integer",
1520
+ "primaryKey": false,
1521
+ "notNull": false,
1522
+ "autoincrement": false,
1523
+ "default": true
1524
+ },
1525
+ "failed_verification_count": {
1526
+ "name": "failed_verification_count",
1527
+ "type": "integer",
1528
+ "primaryKey": false,
1529
+ "notNull": false,
1530
+ "autoincrement": false,
1531
+ "default": 0
1532
+ },
1533
+ "locked_until": {
1534
+ "name": "locked_until",
1535
+ "type": "integer",
1536
+ "primaryKey": false,
1537
+ "notNull": false,
1538
+ "autoincrement": false
1539
+ }
1540
+ },
1541
+ "indexes": {
1542
+ "twoFactor_secret_idx": {
1543
+ "name": "twoFactor_secret_idx",
1544
+ "columns": [
1545
+ "secret"
1546
+ ],
1547
+ "isUnique": false
1548
+ },
1549
+ "twoFactor_userId_idx": {
1550
+ "name": "twoFactor_userId_idx",
1551
+ "columns": [
1552
+ "user_id"
1553
+ ],
1554
+ "isUnique": false
1555
+ }
1556
+ },
1557
+ "foreignKeys": {
1558
+ "two_factor_user_id_user_id_fk": {
1559
+ "name": "two_factor_user_id_user_id_fk",
1560
+ "tableFrom": "two_factor",
1561
+ "tableTo": "user",
1562
+ "columnsFrom": [
1563
+ "user_id"
1564
+ ],
1565
+ "columnsTo": [
1566
+ "id"
1567
+ ],
1568
+ "onDelete": "cascade",
1569
+ "onUpdate": "no action"
1570
+ }
1571
+ },
1572
+ "compositePrimaryKeys": {},
1573
+ "uniqueConstraints": {},
1574
+ "checkConstraints": {}
1575
+ },
1576
+ "user": {
1577
+ "name": "user",
1578
+ "columns": {
1579
+ "id": {
1580
+ "name": "id",
1581
+ "type": "text",
1582
+ "primaryKey": true,
1583
+ "notNull": true,
1584
+ "autoincrement": false
1585
+ },
1586
+ "name": {
1587
+ "name": "name",
1588
+ "type": "text",
1589
+ "primaryKey": false,
1590
+ "notNull": true,
1591
+ "autoincrement": false
1592
+ },
1593
+ "email": {
1594
+ "name": "email",
1595
+ "type": "text",
1596
+ "primaryKey": false,
1597
+ "notNull": true,
1598
+ "autoincrement": false
1599
+ },
1600
+ "email_verified": {
1601
+ "name": "email_verified",
1602
+ "type": "integer",
1603
+ "primaryKey": false,
1604
+ "notNull": true,
1605
+ "autoincrement": false,
1606
+ "default": false
1607
+ },
1608
+ "image": {
1609
+ "name": "image",
1610
+ "type": "text",
1611
+ "primaryKey": false,
1612
+ "notNull": false,
1613
+ "autoincrement": false
1614
+ },
1615
+ "created_at": {
1616
+ "name": "created_at",
1617
+ "type": "integer",
1618
+ "primaryKey": false,
1619
+ "notNull": true,
1620
+ "autoincrement": false,
1621
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
1622
+ },
1623
+ "updated_at": {
1624
+ "name": "updated_at",
1625
+ "type": "integer",
1626
+ "primaryKey": false,
1627
+ "notNull": true,
1628
+ "autoincrement": false,
1629
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
1630
+ },
1631
+ "role": {
1632
+ "name": "role",
1633
+ "type": "text",
1634
+ "primaryKey": false,
1635
+ "notNull": false,
1636
+ "autoincrement": false
1637
+ },
1638
+ "banned": {
1639
+ "name": "banned",
1640
+ "type": "integer",
1641
+ "primaryKey": false,
1642
+ "notNull": false,
1643
+ "autoincrement": false,
1644
+ "default": false
1645
+ },
1646
+ "ban_reason": {
1647
+ "name": "ban_reason",
1648
+ "type": "text",
1649
+ "primaryKey": false,
1650
+ "notNull": false,
1651
+ "autoincrement": false
1652
+ },
1653
+ "ban_expires": {
1654
+ "name": "ban_expires",
1655
+ "type": "integer",
1656
+ "primaryKey": false,
1657
+ "notNull": false,
1658
+ "autoincrement": false
1659
+ },
1660
+ "two_factor_enabled": {
1661
+ "name": "two_factor_enabled",
1662
+ "type": "integer",
1663
+ "primaryKey": false,
1664
+ "notNull": false,
1665
+ "autoincrement": false,
1666
+ "default": false
1667
+ },
1668
+ "tokens_revoked_at": {
1669
+ "name": "tokens_revoked_at",
1670
+ "type": "integer",
1671
+ "primaryKey": false,
1672
+ "notNull": false,
1673
+ "autoincrement": false
1674
+ },
1675
+ "locale": {
1676
+ "name": "locale",
1677
+ "type": "text",
1678
+ "primaryKey": false,
1679
+ "notNull": false,
1680
+ "autoincrement": false
1681
+ }
1682
+ },
1683
+ "indexes": {
1684
+ "user_email_unique": {
1685
+ "name": "user_email_unique",
1686
+ "columns": [
1687
+ "email"
1688
+ ],
1689
+ "isUnique": true
1690
+ }
1691
+ },
1692
+ "foreignKeys": {},
1693
+ "compositePrimaryKeys": {},
1694
+ "uniqueConstraints": {},
1695
+ "checkConstraints": {}
1696
+ },
1697
+ "verification": {
1698
+ "name": "verification",
1699
+ "columns": {
1700
+ "id": {
1701
+ "name": "id",
1702
+ "type": "text",
1703
+ "primaryKey": true,
1704
+ "notNull": true,
1705
+ "autoincrement": false
1706
+ },
1707
+ "identifier": {
1708
+ "name": "identifier",
1709
+ "type": "text",
1710
+ "primaryKey": false,
1711
+ "notNull": true,
1712
+ "autoincrement": false
1713
+ },
1714
+ "value": {
1715
+ "name": "value",
1716
+ "type": "text",
1717
+ "primaryKey": false,
1718
+ "notNull": true,
1719
+ "autoincrement": false
1720
+ },
1721
+ "expires_at": {
1722
+ "name": "expires_at",
1723
+ "type": "integer",
1724
+ "primaryKey": false,
1725
+ "notNull": true,
1726
+ "autoincrement": false
1727
+ },
1728
+ "created_at": {
1729
+ "name": "created_at",
1730
+ "type": "integer",
1731
+ "primaryKey": false,
1732
+ "notNull": true,
1733
+ "autoincrement": false,
1734
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
1735
+ },
1736
+ "updated_at": {
1737
+ "name": "updated_at",
1738
+ "type": "integer",
1739
+ "primaryKey": false,
1740
+ "notNull": true,
1741
+ "autoincrement": false,
1742
+ "default": "(cast(unixepoch('subsecond') * 1000 as integer))"
1743
+ }
1744
+ },
1745
+ "indexes": {
1746
+ "verification_identifier_idx": {
1747
+ "name": "verification_identifier_idx",
1748
+ "columns": [
1749
+ "identifier"
1750
+ ],
1751
+ "isUnique": false
1752
+ }
1753
+ },
1754
+ "foreignKeys": {},
1755
+ "compositePrimaryKeys": {},
1756
+ "uniqueConstraints": {},
1757
+ "checkConstraints": {}
1758
+ },
1759
+ "admin_action": {
1760
+ "name": "admin_action",
1761
+ "columns": {
1762
+ "id": {
1763
+ "name": "id",
1764
+ "type": "text",
1765
+ "primaryKey": true,
1766
+ "notNull": true,
1767
+ "autoincrement": false
1768
+ },
1769
+ "actor_id": {
1770
+ "name": "actor_id",
1771
+ "type": "text",
1772
+ "primaryKey": false,
1773
+ "notNull": false,
1774
+ "autoincrement": false
1775
+ },
1776
+ "action": {
1777
+ "name": "action",
1778
+ "type": "text",
1779
+ "primaryKey": false,
1780
+ "notNull": true,
1781
+ "autoincrement": false
1782
+ },
1783
+ "target_type": {
1784
+ "name": "target_type",
1785
+ "type": "text",
1786
+ "primaryKey": false,
1787
+ "notNull": false,
1788
+ "autoincrement": false
1789
+ },
1790
+ "target_id": {
1791
+ "name": "target_id",
1792
+ "type": "text",
1793
+ "primaryKey": false,
1794
+ "notNull": false,
1795
+ "autoincrement": false
1796
+ },
1797
+ "detail": {
1798
+ "name": "detail",
1799
+ "type": "text",
1800
+ "primaryKey": false,
1801
+ "notNull": false,
1802
+ "autoincrement": false
1803
+ },
1804
+ "created_at": {
1805
+ "name": "created_at",
1806
+ "type": "integer",
1807
+ "primaryKey": false,
1808
+ "notNull": true,
1809
+ "autoincrement": false,
1810
+ "default": "(unixepoch('subsec') * 1000)"
1811
+ }
1812
+ },
1813
+ "indexes": {
1814
+ "admin_action_created_idx": {
1815
+ "name": "admin_action_created_idx",
1816
+ "columns": [
1817
+ "created_at"
1818
+ ],
1819
+ "isUnique": false
1820
+ }
1821
+ },
1822
+ "foreignKeys": {
1823
+ "admin_action_actor_id_user_id_fk": {
1824
+ "name": "admin_action_actor_id_user_id_fk",
1825
+ "tableFrom": "admin_action",
1826
+ "tableTo": "user",
1827
+ "columnsFrom": [
1828
+ "actor_id"
1829
+ ],
1830
+ "columnsTo": [
1831
+ "id"
1832
+ ],
1833
+ "onDelete": "set null",
1834
+ "onUpdate": "no action"
1835
+ }
1836
+ },
1837
+ "compositePrimaryKeys": {},
1838
+ "uniqueConstraints": {},
1839
+ "checkConstraints": {}
1840
+ },
1841
+ "purchase": {
1842
+ "name": "purchase",
1843
+ "columns": {
1844
+ "id": {
1845
+ "name": "id",
1846
+ "type": "text",
1847
+ "primaryKey": true,
1848
+ "notNull": true,
1849
+ "autoincrement": false
1850
+ },
1851
+ "user_id": {
1852
+ "name": "user_id",
1853
+ "type": "text",
1854
+ "primaryKey": false,
1855
+ "notNull": true,
1856
+ "autoincrement": false
1857
+ },
1858
+ "provider": {
1859
+ "name": "provider",
1860
+ "type": "text",
1861
+ "primaryKey": false,
1862
+ "notNull": true,
1863
+ "autoincrement": false
1864
+ },
1865
+ "external_id": {
1866
+ "name": "external_id",
1867
+ "type": "text",
1868
+ "primaryKey": false,
1869
+ "notNull": true,
1870
+ "autoincrement": false
1871
+ },
1872
+ "amount": {
1873
+ "name": "amount",
1874
+ "type": "text",
1875
+ "primaryKey": false,
1876
+ "notNull": true,
1877
+ "autoincrement": false
1878
+ },
1879
+ "currency": {
1880
+ "name": "currency",
1881
+ "type": "text",
1882
+ "primaryKey": false,
1883
+ "notNull": true,
1884
+ "autoincrement": false,
1885
+ "default": "'usd'"
1886
+ },
1887
+ "status": {
1888
+ "name": "status",
1889
+ "type": "text",
1890
+ "primaryKey": false,
1891
+ "notNull": true,
1892
+ "autoincrement": false,
1893
+ "default": "'pending'"
1894
+ },
1895
+ "metadata": {
1896
+ "name": "metadata",
1897
+ "type": "text",
1898
+ "primaryKey": false,
1899
+ "notNull": false,
1900
+ "autoincrement": false
1901
+ },
1902
+ "paid_at": {
1903
+ "name": "paid_at",
1904
+ "type": "integer",
1905
+ "primaryKey": false,
1906
+ "notNull": false,
1907
+ "autoincrement": false
1908
+ },
1909
+ "fulfillment_key": {
1910
+ "name": "fulfillment_key",
1911
+ "type": "text",
1912
+ "primaryKey": false,
1913
+ "notNull": false,
1914
+ "autoincrement": false
1915
+ },
1916
+ "created_at": {
1917
+ "name": "created_at",
1918
+ "type": "integer",
1919
+ "primaryKey": false,
1920
+ "notNull": true,
1921
+ "autoincrement": false,
1922
+ "default": "(unixepoch('subsec') * 1000)"
1923
+ },
1924
+ "updated_at": {
1925
+ "name": "updated_at",
1926
+ "type": "integer",
1927
+ "primaryKey": false,
1928
+ "notNull": true,
1929
+ "autoincrement": false,
1930
+ "default": "(unixepoch('subsec') * 1000)"
1931
+ }
1932
+ },
1933
+ "indexes": {
1934
+ "purchase_provider_external_uq": {
1935
+ "name": "purchase_provider_external_uq",
1936
+ "columns": [
1937
+ "provider",
1938
+ "external_id"
1939
+ ],
1940
+ "isUnique": true
1941
+ },
1942
+ "purchase_userId_idx": {
1943
+ "name": "purchase_userId_idx",
1944
+ "columns": [
1945
+ "user_id"
1946
+ ],
1947
+ "isUnique": false
1948
+ }
1949
+ },
1950
+ "foreignKeys": {
1951
+ "purchase_user_id_user_id_fk": {
1952
+ "name": "purchase_user_id_user_id_fk",
1953
+ "tableFrom": "purchase",
1954
+ "tableTo": "user",
1955
+ "columnsFrom": [
1956
+ "user_id"
1957
+ ],
1958
+ "columnsTo": [
1959
+ "id"
1960
+ ],
1961
+ "onDelete": "cascade",
1962
+ "onUpdate": "no action"
1963
+ }
1964
+ },
1965
+ "compositePrimaryKeys": {},
1966
+ "uniqueConstraints": {},
1967
+ "checkConstraints": {}
1968
+ },
1969
+ "purchase_delivery": {
1970
+ "name": "purchase_delivery",
1971
+ "columns": {
1972
+ "purchase_id": {
1973
+ "name": "purchase_id",
1974
+ "type": "text",
1975
+ "primaryKey": true,
1976
+ "notNull": true,
1977
+ "autoincrement": false
1978
+ },
1979
+ "created_at": {
1980
+ "name": "created_at",
1981
+ "type": "integer",
1982
+ "primaryKey": false,
1983
+ "notNull": true,
1984
+ "autoincrement": false,
1985
+ "default": "(unixepoch('subsec') * 1000)"
1986
+ },
1987
+ "processed_at": {
1988
+ "name": "processed_at",
1989
+ "type": "integer",
1990
+ "primaryKey": false,
1991
+ "notNull": false,
1992
+ "autoincrement": false
1993
+ }
1994
+ },
1995
+ "indexes": {},
1996
+ "foreignKeys": {
1997
+ "purchase_delivery_purchase_id_purchase_id_fk": {
1998
+ "name": "purchase_delivery_purchase_id_purchase_id_fk",
1999
+ "tableFrom": "purchase_delivery",
2000
+ "tableTo": "purchase",
2001
+ "columnsFrom": [
2002
+ "purchase_id"
2003
+ ],
2004
+ "columnsTo": [
2005
+ "id"
2006
+ ],
2007
+ "onDelete": "cascade",
2008
+ "onUpdate": "no action"
2009
+ }
2010
+ },
2011
+ "compositePrimaryKeys": {},
2012
+ "uniqueConstraints": {},
2013
+ "checkConstraints": {}
2014
+ },
2015
+ "system_config": {
2016
+ "name": "system_config",
2017
+ "columns": {
2018
+ "key": {
2019
+ "name": "key",
2020
+ "type": "text",
2021
+ "primaryKey": true,
2022
+ "notNull": true,
2023
+ "autoincrement": false
2024
+ },
2025
+ "value": {
2026
+ "name": "value",
2027
+ "type": "text",
2028
+ "primaryKey": false,
2029
+ "notNull": true,
2030
+ "autoincrement": false
2031
+ },
2032
+ "updated_at": {
2033
+ "name": "updated_at",
2034
+ "type": "integer",
2035
+ "primaryKey": false,
2036
+ "notNull": true,
2037
+ "autoincrement": false,
2038
+ "default": "(unixepoch('subsec') * 1000)"
2039
+ }
2040
+ },
2041
+ "indexes": {},
2042
+ "foreignKeys": {},
2043
+ "compositePrimaryKeys": {},
2044
+ "uniqueConstraints": {},
2045
+ "checkConstraints": {}
2046
+ }
2047
+ },
2048
+ "views": {},
2049
+ "enums": {},
2050
+ "_meta": {
2051
+ "schemas": {},
2052
+ "tables": {},
2053
+ "columns": {}
2054
+ },
2055
+ "internal": {
2056
+ "indexes": {}
2057
+ }
2058
+ }