@hiai-gg/hiai-docs 0.0.1

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 (216) hide show
  1. package/.all-contributorsrc +18 -0
  2. package/.claude/settings.local.json +61 -0
  3. package/.dockerignore +113 -0
  4. package/.env.example +68 -0
  5. package/.github/FUNDING.yml +5 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +74 -0
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +78 -0
  8. package/.github/dependabot.yml +136 -0
  9. package/.github/pull_request_template.md +96 -0
  10. package/.github/workflows/ci.yml +283 -0
  11. package/AGENTS.md +237 -0
  12. package/CODE_OF_CONDUCT.md +134 -0
  13. package/CONTRIBUTING.md +77 -0
  14. package/Caddyfile +50 -0
  15. package/Dockerfile.backend +60 -0
  16. package/LICENSE +21 -0
  17. package/README.md +284 -0
  18. package/RELEASE_CHECKLIST.md +34 -0
  19. package/SECURITY.md +60 -0
  20. package/backend/package.json +43 -0
  21. package/backend/src/__tests__/auth-helpers.test.ts +51 -0
  22. package/backend/src/__tests__/chunker.test.ts +65 -0
  23. package/backend/src/__tests__/config.test.ts +91 -0
  24. package/backend/src/__tests__/csrf.test.ts +91 -0
  25. package/backend/src/__tests__/embedding.test.ts +48 -0
  26. package/backend/src/__tests__/rate-limit.test.ts +46 -0
  27. package/backend/src/__tests__/routes.test.ts +38 -0
  28. package/backend/src/__tests__/schema.test.ts +31 -0
  29. package/backend/src/__tests__/validation.test.ts +556 -0
  30. package/backend/src/api/middleware/auth.ts +56 -0
  31. package/backend/src/api/middleware/csrf.ts +91 -0
  32. package/backend/src/api/middleware/rate-limit.ts +77 -0
  33. package/backend/src/api/middleware/webhook-verify.ts +22 -0
  34. package/backend/src/api/routes/attachments.ts +280 -0
  35. package/backend/src/api/routes/auth.ts +52 -0
  36. package/backend/src/api/routes/collaboration.ts +121 -0
  37. package/backend/src/api/routes/documents.ts +664 -0
  38. package/backend/src/api/routes/folders.ts +226 -0
  39. package/backend/src/api/routes/search.ts +354 -0
  40. package/backend/src/api/routes/share.ts +512 -0
  41. package/backend/src/api/routes/tags.ts +247 -0
  42. package/backend/src/api/routes/versions.ts +99 -0
  43. package/backend/src/api/routes/webhooks.ts +43 -0
  44. package/backend/src/embedding/chunker.ts +74 -0
  45. package/backend/src/embedding/index.ts +117 -0
  46. package/backend/src/embedding/providers/ollama.ts +63 -0
  47. package/backend/src/embedding/providers/openrouter.ts +71 -0
  48. package/backend/src/embedding/utils.ts +13 -0
  49. package/backend/src/embedding/worker.ts +89 -0
  50. package/backend/src/index.ts +147 -0
  51. package/backend/src/lib/auth-helpers.ts +27 -0
  52. package/backend/src/lib/auth.ts +35 -0
  53. package/backend/src/lib/config.ts +73 -0
  54. package/backend/src/lib/db.ts +7 -0
  55. package/backend/src/lib/embedding-queue.ts +12 -0
  56. package/backend/src/lib/logger.ts +18 -0
  57. package/backend/src/lib/markdown-to-doc.ts +45 -0
  58. package/backend/src/lib/minio.ts +46 -0
  59. package/backend/src/lib/redis.ts +19 -0
  60. package/backend/src/lib/yjs-provider.ts +182 -0
  61. package/backend/tests/integration/_harness.ts +754 -0
  62. package/backend/tests/integration/auth.test.ts +296 -0
  63. package/backend/tests/integration/routes.documents.test.ts +459 -0
  64. package/backend/tests/integration/routes.folders.test.ts +337 -0
  65. package/backend/tests/integration/routes.search.test.ts +322 -0
  66. package/backend/tests/integration/routes.share.test.ts +773 -0
  67. package/backend/tests/integration/routes.tags.test.ts +425 -0
  68. package/backend/tests/integration/routes.versions.test.ts +233 -0
  69. package/backend/tsconfig.json +18 -0
  70. package/docker-compose.yml +218 -0
  71. package/docs/API.md +328 -0
  72. package/docs/ARCHITECTURE.md +75 -0
  73. package/docs/DEPLOYMENT.md +113 -0
  74. package/docs/PRODUCTION_STATUS.md +61 -0
  75. package/docs/openapi.json +385 -0
  76. package/frontend/.svelte-kit.old/ambient.d.ts +230 -0
  77. package/frontend/.svelte-kit.old/env.d.ts +1 -0
  78. package/frontend/.svelte-kit.old/generated/client/app.js +46 -0
  79. package/frontend/.svelte-kit.old/generated/client/matchers.js +1 -0
  80. package/frontend/.svelte-kit.old/generated/client/nodes/0.js +3 -0
  81. package/frontend/.svelte-kit.old/generated/client/nodes/1.js +1 -0
  82. package/frontend/.svelte-kit.old/generated/client/nodes/10.js +3 -0
  83. package/frontend/.svelte-kit.old/generated/client/nodes/2.js +1 -0
  84. package/frontend/.svelte-kit.old/generated/client/nodes/3.js +1 -0
  85. package/frontend/.svelte-kit.old/generated/client/nodes/4.js +1 -0
  86. package/frontend/.svelte-kit.old/generated/client/nodes/5.js +3 -0
  87. package/frontend/.svelte-kit.old/generated/client/nodes/6.js +1 -0
  88. package/frontend/.svelte-kit.old/generated/client/nodes/7.js +3 -0
  89. package/frontend/.svelte-kit.old/generated/client/nodes/8.js +1 -0
  90. package/frontend/.svelte-kit.old/generated/client/nodes/9.js +3 -0
  91. package/frontend/.svelte-kit.old/generated/root.js +3 -0
  92. package/frontend/.svelte-kit.old/generated/root.svelte +80 -0
  93. package/frontend/.svelte-kit.old/generated/server/internal.js +55 -0
  94. package/frontend/.svelte-kit.old/non-ambient.d.ts +59 -0
  95. package/frontend/.svelte-kit.old/tsconfig.json +59 -0
  96. package/frontend/.svelte-kit.old/types/route_meta_data.json +40 -0
  97. package/frontend/.svelte-kit.old/types/src/routes/$types.d.ts +21 -0
  98. package/frontend/.svelte-kit.old/types/src/routes/(app)/$types.d.ts +30 -0
  99. package/frontend/.svelte-kit.old/types/src/routes/(app)/docs/[id]/$types.d.ts +27 -0
  100. package/frontend/.svelte-kit.old/types/src/routes/(app)/docs/[id]/proxy+page.ts +25 -0
  101. package/frontend/.svelte-kit.old/types/src/routes/api/[...path]/$types.d.ts +10 -0
  102. package/frontend/.svelte-kit.old/types/src/routes/folders/[id]/$types.d.ts +27 -0
  103. package/frontend/.svelte-kit.old/types/src/routes/folders/[id]/proxy+page.ts +15 -0
  104. package/frontend/.svelte-kit.old/types/src/routes/login/$types.d.ts +17 -0
  105. package/frontend/.svelte-kit.old/types/src/routes/register/$types.d.ts +17 -0
  106. package/frontend/.svelte-kit.old/types/src/routes/s/[token]/$types.d.ts +20 -0
  107. package/frontend/.svelte-kit.old/types/src/routes/s/[token]/proxy+page.ts +6 -0
  108. package/frontend/.svelte-kit.old/types/src/routes/search/$types.d.ts +19 -0
  109. package/frontend/.svelte-kit.old/types/src/routes/search/proxy+page.ts +26 -0
  110. package/frontend/.svelte-kit.old/types/src/routes/settings/$types.d.ts +17 -0
  111. package/frontend/Dockerfile +44 -0
  112. package/frontend/biome.json +40 -0
  113. package/frontend/components.json +18 -0
  114. package/frontend/messages/en.json +434 -0
  115. package/frontend/package.json +70 -0
  116. package/frontend/project.inlang/settings.json +12 -0
  117. package/frontend/src/app.css +6 -0
  118. package/frontend/src/app.d.ts +13 -0
  119. package/frontend/src/app.html +30 -0
  120. package/frontend/src/hooks.server.ts +10 -0
  121. package/frontend/src/hooks.ts +10 -0
  122. package/frontend/src/lib/api/attachments.ts +45 -0
  123. package/frontend/src/lib/api/client.test.ts +15 -0
  124. package/frontend/src/lib/api/client.ts +57 -0
  125. package/frontend/src/lib/api/documents.ts +83 -0
  126. package/frontend/src/lib/api/folders.ts +180 -0
  127. package/frontend/src/lib/api/search.test.ts +52 -0
  128. package/frontend/src/lib/api/search.ts +128 -0
  129. package/frontend/src/lib/api/settings.ts +95 -0
  130. package/frontend/src/lib/api/share.ts +71 -0
  131. package/frontend/src/lib/api/tags.test.ts +91 -0
  132. package/frontend/src/lib/api/tags.ts +87 -0
  133. package/frontend/src/lib/auth-client.ts +10 -0
  134. package/frontend/src/lib/collaboration.ts +63 -0
  135. package/frontend/src/lib/components/AttachmentUpload.svelte +110 -0
  136. package/frontend/src/lib/components/DatePicker.svelte +322 -0
  137. package/frontend/src/lib/components/DocumentCard.svelte +166 -0
  138. package/frontend/src/lib/components/EmptyState.svelte +49 -0
  139. package/frontend/src/lib/components/FolderCard.svelte +93 -0
  140. package/frontend/src/lib/components/ScrollToTop.svelte +72 -0
  141. package/frontend/src/lib/components/SearchBar.svelte +47 -0
  142. package/frontend/src/lib/components/SearchResult.svelte +115 -0
  143. package/frontend/src/lib/components/SettingsDialog.svelte +271 -0
  144. package/frontend/src/lib/components/ShareDialog.svelte +158 -0
  145. package/frontend/src/lib/components/ShareLink.svelte +98 -0
  146. package/frontend/src/lib/components/TagCreateDialog.svelte +284 -0
  147. package/frontend/src/lib/components/VersionDiff.svelte +55 -0
  148. package/frontend/src/lib/components/VersionHistory.svelte +96 -0
  149. package/frontend/src/lib/components/editor/DocumentTitle.svelte +87 -0
  150. package/frontend/src/lib/components/editor/EditorToolbar.svelte +1367 -0
  151. package/frontend/src/lib/components/editor/HiAiEditor.svelte +531 -0
  152. package/frontend/src/lib/components/editor/LinkDialog.svelte +134 -0
  153. package/frontend/src/lib/components/editor/MarkdownToggle.svelte +88 -0
  154. package/frontend/src/lib/components/editor/editorExtensions.ts +53 -0
  155. package/frontend/src/lib/components/editor/markdown.ts +38 -0
  156. package/frontend/src/lib/components/sidebar/FolderTree.svelte +731 -0
  157. package/frontend/src/lib/components/sidebar/RecentDocs.svelte +311 -0
  158. package/frontend/src/lib/components/sidebar/Sidebar.svelte +156 -0
  159. package/frontend/src/lib/components/sidebar/TagList.svelte +200 -0
  160. package/frontend/src/lib/components/ui/confirm-dialog/ConfirmDialog.svelte +76 -0
  161. package/frontend/src/lib/components/ui/confirm-dialog/index.ts +1 -0
  162. package/frontend/src/lib/stores/tag-store.svelte.ts +56 -0
  163. package/frontend/src/lib/stores/theme.svelte.ts +97 -0
  164. package/frontend/src/lib/svelte.d.ts +6 -0
  165. package/frontend/src/lib/types.ts +44 -0
  166. package/frontend/src/lib/utils/clipboard.ts +17 -0
  167. package/frontend/src/lib/utils/strip-markdown.ts +59 -0
  168. package/frontend/src/lib/utils.ts +33 -0
  169. package/frontend/src/routes/(app)/+layout.svelte +17 -0
  170. package/frontend/src/routes/(app)/+page.server.ts +10 -0
  171. package/frontend/src/routes/(app)/+page.svelte +303 -0
  172. package/frontend/src/routes/(app)/docs/[id]/+page.server.ts +10 -0
  173. package/frontend/src/routes/(app)/docs/[id]/+page.svelte +1108 -0
  174. package/frontend/src/routes/(app)/docs/[id]/+page.ts +24 -0
  175. package/frontend/src/routes/(app)/search/+page.svelte +593 -0
  176. package/frontend/src/routes/(app)/search/+page.ts +25 -0
  177. package/frontend/src/routes/+error.svelte +12 -0
  178. package/frontend/src/routes/+layout.svelte +18 -0
  179. package/frontend/src/routes/+layout.ts +2 -0
  180. package/frontend/src/routes/api/[...path]/+server.ts +111 -0
  181. package/frontend/src/routes/folders/[id]/+page.server.ts +10 -0
  182. package/frontend/src/routes/folders/[id]/+page.svelte +319 -0
  183. package/frontend/src/routes/folders/[id]/+page.ts +14 -0
  184. package/frontend/src/routes/login/+page.svelte +90 -0
  185. package/frontend/src/routes/register/+page.svelte +97 -0
  186. package/frontend/src/routes/s/[token]/+page.svelte +496 -0
  187. package/frontend/src/routes/s/[token]/+page.ts +5 -0
  188. package/frontend/src/routes/settings/+page.svelte +175 -0
  189. package/frontend/static/favicon.png +0 -0
  190. package/frontend/static/logo.png +0 -0
  191. package/frontend/svelte.config.js +15 -0
  192. package/frontend/tsconfig.json +15 -0
  193. package/frontend/vite.config.ts +25 -0
  194. package/init.sql +9 -0
  195. package/logo.png +0 -0
  196. package/package.json +39 -0
  197. package/package.public.json +39 -0
  198. package/packages/db/drizzle.config.ts +10 -0
  199. package/packages/db/package.json +30 -0
  200. package/packages/db/src/client.ts +9 -0
  201. package/packages/db/src/index.ts +2 -0
  202. package/packages/db/src/migrations/0000_nice_bedlam.sql +165 -0
  203. package/packages/db/src/migrations/0001_w2_3_test.sql +5 -0
  204. package/packages/db/src/migrations/0002_rename_content_json.sql +2 -0
  205. package/packages/db/src/migrations/meta/0000_snapshot.json +1331 -0
  206. package/packages/db/src/migrations/meta/0001_snapshot.json +1399 -0
  207. package/packages/db/src/migrations/meta/0002_snapshot.json +1399 -0
  208. package/packages/db/src/migrations/meta/_journal.json +27 -0
  209. package/packages/db/src/schema.ts +378 -0
  210. package/packages/db/tsconfig.json +17 -0
  211. package/scripts/export-openapi.ts +37 -0
  212. package/scripts/health-check.sh +75 -0
  213. package/scripts/migrate.sh +135 -0
  214. package/scripts/prework_backup.sh +25 -0
  215. package/scripts/release.sh +83 -0
  216. package/tsconfig.json +25 -0
@@ -0,0 +1,1399 @@
1
+ {
2
+ "id": "a4b5da94-18cf-45c6-808b-580cfa505b97",
3
+ "prevId": "11f8f5a3-5f0d-48c4-af6a-1394371a02d6",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.accounts": {
8
+ "name": "accounts",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "user_id": {
19
+ "name": "user_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "account_id": {
25
+ "name": "account_id",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "provider_id": {
31
+ "name": "provider_id",
32
+ "type": "text",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "access_token": {
37
+ "name": "access_token",
38
+ "type": "text",
39
+ "primaryKey": false,
40
+ "notNull": false
41
+ },
42
+ "refresh_token": {
43
+ "name": "refresh_token",
44
+ "type": "text",
45
+ "primaryKey": false,
46
+ "notNull": false
47
+ },
48
+ "access_token_expires_at": {
49
+ "name": "access_token_expires_at",
50
+ "type": "timestamp",
51
+ "primaryKey": false,
52
+ "notNull": false
53
+ },
54
+ "refresh_token_expires_at": {
55
+ "name": "refresh_token_expires_at",
56
+ "type": "timestamp",
57
+ "primaryKey": false,
58
+ "notNull": false
59
+ },
60
+ "scope": {
61
+ "name": "scope",
62
+ "type": "text",
63
+ "primaryKey": false,
64
+ "notNull": false
65
+ },
66
+ "password": {
67
+ "name": "password",
68
+ "type": "text",
69
+ "primaryKey": false,
70
+ "notNull": false
71
+ },
72
+ "created_at": {
73
+ "name": "created_at",
74
+ "type": "timestamp",
75
+ "primaryKey": false,
76
+ "notNull": true,
77
+ "default": "now()"
78
+ },
79
+ "updated_at": {
80
+ "name": "updated_at",
81
+ "type": "timestamp",
82
+ "primaryKey": false,
83
+ "notNull": true,
84
+ "default": "now()"
85
+ }
86
+ },
87
+ "indexes": {
88
+ "accounts_user_id_idx": {
89
+ "name": "accounts_user_id_idx",
90
+ "columns": [
91
+ {
92
+ "expression": "user_id",
93
+ "isExpression": false,
94
+ "asc": true,
95
+ "nulls": "last"
96
+ }
97
+ ],
98
+ "isUnique": false,
99
+ "concurrently": false,
100
+ "method": "btree",
101
+ "with": {}
102
+ },
103
+ "accounts_provider_account_idx": {
104
+ "name": "accounts_provider_account_idx",
105
+ "columns": [
106
+ {
107
+ "expression": "provider_id",
108
+ "isExpression": false,
109
+ "asc": true,
110
+ "nulls": "last"
111
+ },
112
+ {
113
+ "expression": "account_id",
114
+ "isExpression": false,
115
+ "asc": true,
116
+ "nulls": "last"
117
+ }
118
+ ],
119
+ "isUnique": true,
120
+ "concurrently": false,
121
+ "method": "btree",
122
+ "with": {}
123
+ }
124
+ },
125
+ "foreignKeys": {
126
+ "accounts_user_id_users_id_fk": {
127
+ "name": "accounts_user_id_users_id_fk",
128
+ "tableFrom": "accounts",
129
+ "tableTo": "users",
130
+ "columnsFrom": [
131
+ "user_id"
132
+ ],
133
+ "columnsTo": [
134
+ "id"
135
+ ],
136
+ "onDelete": "cascade",
137
+ "onUpdate": "no action"
138
+ }
139
+ },
140
+ "compositePrimaryKeys": {},
141
+ "uniqueConstraints": {},
142
+ "policies": {},
143
+ "checkConstraints": {},
144
+ "isRLSEnabled": false
145
+ },
146
+ "public.attachments": {
147
+ "name": "attachments",
148
+ "schema": "",
149
+ "columns": {
150
+ "id": {
151
+ "name": "id",
152
+ "type": "uuid",
153
+ "primaryKey": true,
154
+ "notNull": true,
155
+ "default": "gen_random_uuid()"
156
+ },
157
+ "document_id": {
158
+ "name": "document_id",
159
+ "type": "uuid",
160
+ "primaryKey": false,
161
+ "notNull": true
162
+ },
163
+ "filename": {
164
+ "name": "filename",
165
+ "type": "text",
166
+ "primaryKey": false,
167
+ "notNull": true
168
+ },
169
+ "mime_type": {
170
+ "name": "mime_type",
171
+ "type": "text",
172
+ "primaryKey": false,
173
+ "notNull": true
174
+ },
175
+ "size": {
176
+ "name": "size",
177
+ "type": "bigint",
178
+ "primaryKey": false,
179
+ "notNull": true
180
+ },
181
+ "minio_key": {
182
+ "name": "minio_key",
183
+ "type": "text",
184
+ "primaryKey": false,
185
+ "notNull": true
186
+ },
187
+ "created_at": {
188
+ "name": "created_at",
189
+ "type": "timestamp",
190
+ "primaryKey": false,
191
+ "notNull": true,
192
+ "default": "now()"
193
+ }
194
+ },
195
+ "indexes": {
196
+ "attachments_document_id_idx": {
197
+ "name": "attachments_document_id_idx",
198
+ "columns": [
199
+ {
200
+ "expression": "document_id",
201
+ "isExpression": false,
202
+ "asc": true,
203
+ "nulls": "last"
204
+ }
205
+ ],
206
+ "isUnique": false,
207
+ "concurrently": false,
208
+ "method": "btree",
209
+ "with": {}
210
+ }
211
+ },
212
+ "foreignKeys": {
213
+ "attachments_document_id_documents_id_fk": {
214
+ "name": "attachments_document_id_documents_id_fk",
215
+ "tableFrom": "attachments",
216
+ "tableTo": "documents",
217
+ "columnsFrom": [
218
+ "document_id"
219
+ ],
220
+ "columnsTo": [
221
+ "id"
222
+ ],
223
+ "onDelete": "cascade",
224
+ "onUpdate": "no action"
225
+ }
226
+ },
227
+ "compositePrimaryKeys": {},
228
+ "uniqueConstraints": {},
229
+ "policies": {},
230
+ "checkConstraints": {},
231
+ "isRLSEnabled": false
232
+ },
233
+ "public.document_embeddings": {
234
+ "name": "document_embeddings",
235
+ "schema": "",
236
+ "columns": {
237
+ "id": {
238
+ "name": "id",
239
+ "type": "uuid",
240
+ "primaryKey": true,
241
+ "notNull": true,
242
+ "default": "gen_random_uuid()"
243
+ },
244
+ "document_id": {
245
+ "name": "document_id",
246
+ "type": "uuid",
247
+ "primaryKey": false,
248
+ "notNull": true
249
+ },
250
+ "chunk_index": {
251
+ "name": "chunk_index",
252
+ "type": "bigint",
253
+ "primaryKey": false,
254
+ "notNull": true
255
+ },
256
+ "chunk_text": {
257
+ "name": "chunk_text",
258
+ "type": "text",
259
+ "primaryKey": false,
260
+ "notNull": true
261
+ },
262
+ "embedding": {
263
+ "name": "embedding",
264
+ "type": "vector(1024)",
265
+ "primaryKey": false,
266
+ "notNull": false
267
+ },
268
+ "created_at": {
269
+ "name": "created_at",
270
+ "type": "timestamp",
271
+ "primaryKey": false,
272
+ "notNull": true,
273
+ "default": "now()"
274
+ }
275
+ },
276
+ "indexes": {
277
+ "document_embeddings_doc_id_idx": {
278
+ "name": "document_embeddings_doc_id_idx",
279
+ "columns": [
280
+ {
281
+ "expression": "document_id",
282
+ "isExpression": false,
283
+ "asc": true,
284
+ "nulls": "last"
285
+ }
286
+ ],
287
+ "isUnique": false,
288
+ "concurrently": false,
289
+ "method": "btree",
290
+ "with": {}
291
+ },
292
+ "document_embeddings_doc_chunk_idx": {
293
+ "name": "document_embeddings_doc_chunk_idx",
294
+ "columns": [
295
+ {
296
+ "expression": "document_id",
297
+ "isExpression": false,
298
+ "asc": true,
299
+ "nulls": "last"
300
+ },
301
+ {
302
+ "expression": "chunk_index",
303
+ "isExpression": false,
304
+ "asc": true,
305
+ "nulls": "last"
306
+ }
307
+ ],
308
+ "isUnique": true,
309
+ "concurrently": false,
310
+ "method": "btree",
311
+ "with": {}
312
+ },
313
+ "idx_document_embeddings_hnsw": {
314
+ "name": "idx_document_embeddings_hnsw",
315
+ "columns": [
316
+ {
317
+ "expression": "\"embedding\" vector_cosine_ops",
318
+ "asc": true,
319
+ "isExpression": true,
320
+ "nulls": "last"
321
+ }
322
+ ],
323
+ "isUnique": false,
324
+ "concurrently": false,
325
+ "method": "hnsw",
326
+ "with": {}
327
+ }
328
+ },
329
+ "foreignKeys": {
330
+ "document_embeddings_document_id_documents_id_fk": {
331
+ "name": "document_embeddings_document_id_documents_id_fk",
332
+ "tableFrom": "document_embeddings",
333
+ "tableTo": "documents",
334
+ "columnsFrom": [
335
+ "document_id"
336
+ ],
337
+ "columnsTo": [
338
+ "id"
339
+ ],
340
+ "onDelete": "cascade",
341
+ "onUpdate": "no action"
342
+ }
343
+ },
344
+ "compositePrimaryKeys": {},
345
+ "uniqueConstraints": {},
346
+ "policies": {},
347
+ "checkConstraints": {},
348
+ "isRLSEnabled": false
349
+ },
350
+ "public.document_tags": {
351
+ "name": "document_tags",
352
+ "schema": "",
353
+ "columns": {
354
+ "document_id": {
355
+ "name": "document_id",
356
+ "type": "uuid",
357
+ "primaryKey": false,
358
+ "notNull": true
359
+ },
360
+ "tag_id": {
361
+ "name": "tag_id",
362
+ "type": "uuid",
363
+ "primaryKey": false,
364
+ "notNull": true
365
+ }
366
+ },
367
+ "indexes": {
368
+ "document_tags_unique_idx": {
369
+ "name": "document_tags_unique_idx",
370
+ "columns": [
371
+ {
372
+ "expression": "document_id",
373
+ "isExpression": false,
374
+ "asc": true,
375
+ "nulls": "last"
376
+ },
377
+ {
378
+ "expression": "tag_id",
379
+ "isExpression": false,
380
+ "asc": true,
381
+ "nulls": "last"
382
+ }
383
+ ],
384
+ "isUnique": true,
385
+ "concurrently": false,
386
+ "method": "btree",
387
+ "with": {}
388
+ }
389
+ },
390
+ "foreignKeys": {
391
+ "document_tags_document_id_documents_id_fk": {
392
+ "name": "document_tags_document_id_documents_id_fk",
393
+ "tableFrom": "document_tags",
394
+ "tableTo": "documents",
395
+ "columnsFrom": [
396
+ "document_id"
397
+ ],
398
+ "columnsTo": [
399
+ "id"
400
+ ],
401
+ "onDelete": "cascade",
402
+ "onUpdate": "no action"
403
+ },
404
+ "document_tags_tag_id_tags_id_fk": {
405
+ "name": "document_tags_tag_id_tags_id_fk",
406
+ "tableFrom": "document_tags",
407
+ "tableTo": "tags",
408
+ "columnsFrom": [
409
+ "tag_id"
410
+ ],
411
+ "columnsTo": [
412
+ "id"
413
+ ],
414
+ "onDelete": "cascade",
415
+ "onUpdate": "no action"
416
+ }
417
+ },
418
+ "compositePrimaryKeys": {},
419
+ "uniqueConstraints": {},
420
+ "policies": {},
421
+ "checkConstraints": {},
422
+ "isRLSEnabled": false
423
+ },
424
+ "public.documents": {
425
+ "name": "documents",
426
+ "schema": "",
427
+ "columns": {
428
+ "id": {
429
+ "name": "id",
430
+ "type": "uuid",
431
+ "primaryKey": true,
432
+ "notNull": true,
433
+ "default": "gen_random_uuid()"
434
+ },
435
+ "owner_id": {
436
+ "name": "owner_id",
437
+ "type": "uuid",
438
+ "primaryKey": false,
439
+ "notNull": true
440
+ },
441
+ "folder_id": {
442
+ "name": "folder_id",
443
+ "type": "uuid",
444
+ "primaryKey": false,
445
+ "notNull": false
446
+ },
447
+ "title": {
448
+ "name": "title",
449
+ "type": "text",
450
+ "primaryKey": false,
451
+ "notNull": true,
452
+ "default": "'Untitled'"
453
+ },
454
+ "content": {
455
+ "name": "content",
456
+ "type": "text",
457
+ "primaryKey": false,
458
+ "notNull": false,
459
+ "default": "''"
460
+ },
461
+ "content_json": {
462
+ "name": "content_json",
463
+ "type": "jsonb",
464
+ "primaryKey": false,
465
+ "notNull": false
466
+ },
467
+ "metadata": {
468
+ "name": "metadata",
469
+ "type": "jsonb",
470
+ "primaryKey": false,
471
+ "notNull": false
472
+ },
473
+ "search_vector": {
474
+ "name": "search_vector",
475
+ "type": "tsvector",
476
+ "primaryKey": false,
477
+ "notNull": false,
478
+ "generated": {
479
+ "as": "to_tsvector('english', COALESCE(title, '') || ' ' || COALESCE(content, ''))",
480
+ "type": "stored"
481
+ }
482
+ },
483
+ "created_at": {
484
+ "name": "created_at",
485
+ "type": "timestamp",
486
+ "primaryKey": false,
487
+ "notNull": true,
488
+ "default": "now()"
489
+ },
490
+ "updated_at": {
491
+ "name": "updated_at",
492
+ "type": "timestamp",
493
+ "primaryKey": false,
494
+ "notNull": true,
495
+ "default": "now()"
496
+ }
497
+ },
498
+ "indexes": {
499
+ "documents_owner_id_idx": {
500
+ "name": "documents_owner_id_idx",
501
+ "columns": [
502
+ {
503
+ "expression": "owner_id",
504
+ "isExpression": false,
505
+ "asc": true,
506
+ "nulls": "last"
507
+ }
508
+ ],
509
+ "isUnique": false,
510
+ "concurrently": false,
511
+ "method": "btree",
512
+ "with": {}
513
+ },
514
+ "documents_folder_id_idx": {
515
+ "name": "documents_folder_id_idx",
516
+ "columns": [
517
+ {
518
+ "expression": "folder_id",
519
+ "isExpression": false,
520
+ "asc": true,
521
+ "nulls": "last"
522
+ }
523
+ ],
524
+ "isUnique": false,
525
+ "concurrently": false,
526
+ "method": "btree",
527
+ "with": {}
528
+ },
529
+ "documents_created_at_idx": {
530
+ "name": "documents_created_at_idx",
531
+ "columns": [
532
+ {
533
+ "expression": "created_at",
534
+ "isExpression": false,
535
+ "asc": true,
536
+ "nulls": "last"
537
+ }
538
+ ],
539
+ "isUnique": false,
540
+ "concurrently": false,
541
+ "method": "btree",
542
+ "with": {}
543
+ },
544
+ "idx_documents_search_vector": {
545
+ "name": "idx_documents_search_vector",
546
+ "columns": [
547
+ {
548
+ "expression": "search_vector",
549
+ "isExpression": false,
550
+ "asc": true,
551
+ "nulls": "last"
552
+ }
553
+ ],
554
+ "isUnique": false,
555
+ "concurrently": false,
556
+ "method": "gin",
557
+ "with": {}
558
+ },
559
+ "idx_documents_title_trgm": {
560
+ "name": "idx_documents_title_trgm",
561
+ "columns": [
562
+ {
563
+ "expression": "\"title\" gin_trgm_ops",
564
+ "asc": true,
565
+ "isExpression": true,
566
+ "nulls": "last"
567
+ }
568
+ ],
569
+ "isUnique": false,
570
+ "concurrently": false,
571
+ "method": "gin",
572
+ "with": {}
573
+ }
574
+ },
575
+ "foreignKeys": {
576
+ "documents_owner_id_users_id_fk": {
577
+ "name": "documents_owner_id_users_id_fk",
578
+ "tableFrom": "documents",
579
+ "tableTo": "users",
580
+ "columnsFrom": [
581
+ "owner_id"
582
+ ],
583
+ "columnsTo": [
584
+ "id"
585
+ ],
586
+ "onDelete": "cascade",
587
+ "onUpdate": "no action"
588
+ },
589
+ "documents_folder_id_folders_id_fk": {
590
+ "name": "documents_folder_id_folders_id_fk",
591
+ "tableFrom": "documents",
592
+ "tableTo": "folders",
593
+ "columnsFrom": [
594
+ "folder_id"
595
+ ],
596
+ "columnsTo": [
597
+ "id"
598
+ ],
599
+ "onDelete": "set null",
600
+ "onUpdate": "no action"
601
+ }
602
+ },
603
+ "compositePrimaryKeys": {},
604
+ "uniqueConstraints": {},
605
+ "policies": {},
606
+ "checkConstraints": {},
607
+ "isRLSEnabled": false
608
+ },
609
+ "public.folders": {
610
+ "name": "folders",
611
+ "schema": "",
612
+ "columns": {
613
+ "id": {
614
+ "name": "id",
615
+ "type": "uuid",
616
+ "primaryKey": true,
617
+ "notNull": true,
618
+ "default": "gen_random_uuid()"
619
+ },
620
+ "owner_id": {
621
+ "name": "owner_id",
622
+ "type": "uuid",
623
+ "primaryKey": false,
624
+ "notNull": true
625
+ },
626
+ "parent_id": {
627
+ "name": "parent_id",
628
+ "type": "uuid",
629
+ "primaryKey": false,
630
+ "notNull": false
631
+ },
632
+ "name": {
633
+ "name": "name",
634
+ "type": "text",
635
+ "primaryKey": false,
636
+ "notNull": true
637
+ },
638
+ "created_at": {
639
+ "name": "created_at",
640
+ "type": "timestamp",
641
+ "primaryKey": false,
642
+ "notNull": true,
643
+ "default": "now()"
644
+ },
645
+ "updated_at": {
646
+ "name": "updated_at",
647
+ "type": "timestamp",
648
+ "primaryKey": false,
649
+ "notNull": true,
650
+ "default": "now()"
651
+ }
652
+ },
653
+ "indexes": {
654
+ "folders_owner_id_idx": {
655
+ "name": "folders_owner_id_idx",
656
+ "columns": [
657
+ {
658
+ "expression": "owner_id",
659
+ "isExpression": false,
660
+ "asc": true,
661
+ "nulls": "last"
662
+ }
663
+ ],
664
+ "isUnique": false,
665
+ "concurrently": false,
666
+ "method": "btree",
667
+ "with": {}
668
+ },
669
+ "folders_parent_id_idx": {
670
+ "name": "folders_parent_id_idx",
671
+ "columns": [
672
+ {
673
+ "expression": "parent_id",
674
+ "isExpression": false,
675
+ "asc": true,
676
+ "nulls": "last"
677
+ }
678
+ ],
679
+ "isUnique": false,
680
+ "concurrently": false,
681
+ "method": "btree",
682
+ "with": {}
683
+ }
684
+ },
685
+ "foreignKeys": {
686
+ "folders_owner_id_users_id_fk": {
687
+ "name": "folders_owner_id_users_id_fk",
688
+ "tableFrom": "folders",
689
+ "tableTo": "users",
690
+ "columnsFrom": [
691
+ "owner_id"
692
+ ],
693
+ "columnsTo": [
694
+ "id"
695
+ ],
696
+ "onDelete": "cascade",
697
+ "onUpdate": "no action"
698
+ },
699
+ "folders_parent_id_folders_id_fk": {
700
+ "name": "folders_parent_id_folders_id_fk",
701
+ "tableFrom": "folders",
702
+ "tableTo": "folders",
703
+ "columnsFrom": [
704
+ "parent_id"
705
+ ],
706
+ "columnsTo": [
707
+ "id"
708
+ ],
709
+ "onDelete": "set null",
710
+ "onUpdate": "no action"
711
+ }
712
+ },
713
+ "compositePrimaryKeys": {},
714
+ "uniqueConstraints": {},
715
+ "policies": {},
716
+ "checkConstraints": {},
717
+ "isRLSEnabled": false
718
+ },
719
+ "public.guest_access": {
720
+ "name": "guest_access",
721
+ "schema": "",
722
+ "columns": {
723
+ "id": {
724
+ "name": "id",
725
+ "type": "uuid",
726
+ "primaryKey": true,
727
+ "notNull": true,
728
+ "default": "gen_random_uuid()"
729
+ },
730
+ "share_link_id": {
731
+ "name": "share_link_id",
732
+ "type": "uuid",
733
+ "primaryKey": false,
734
+ "notNull": true
735
+ },
736
+ "guest_email": {
737
+ "name": "guest_email",
738
+ "type": "text",
739
+ "primaryKey": false,
740
+ "notNull": true
741
+ },
742
+ "granted_at": {
743
+ "name": "granted_at",
744
+ "type": "timestamp",
745
+ "primaryKey": false,
746
+ "notNull": true,
747
+ "default": "now()"
748
+ }
749
+ },
750
+ "indexes": {
751
+ "guest_access_share_link_idx": {
752
+ "name": "guest_access_share_link_idx",
753
+ "columns": [
754
+ {
755
+ "expression": "share_link_id",
756
+ "isExpression": false,
757
+ "asc": true,
758
+ "nulls": "last"
759
+ }
760
+ ],
761
+ "isUnique": false,
762
+ "concurrently": false,
763
+ "method": "btree",
764
+ "with": {}
765
+ }
766
+ },
767
+ "foreignKeys": {
768
+ "guest_access_share_link_id_share_links_id_fk": {
769
+ "name": "guest_access_share_link_id_share_links_id_fk",
770
+ "tableFrom": "guest_access",
771
+ "tableTo": "share_links",
772
+ "columnsFrom": [
773
+ "share_link_id"
774
+ ],
775
+ "columnsTo": [
776
+ "id"
777
+ ],
778
+ "onDelete": "cascade",
779
+ "onUpdate": "no action"
780
+ }
781
+ },
782
+ "compositePrimaryKeys": {},
783
+ "uniqueConstraints": {},
784
+ "policies": {},
785
+ "checkConstraints": {},
786
+ "isRLSEnabled": false
787
+ },
788
+ "public.sessions": {
789
+ "name": "sessions",
790
+ "schema": "",
791
+ "columns": {
792
+ "id": {
793
+ "name": "id",
794
+ "type": "uuid",
795
+ "primaryKey": true,
796
+ "notNull": true,
797
+ "default": "gen_random_uuid()"
798
+ },
799
+ "user_id": {
800
+ "name": "user_id",
801
+ "type": "uuid",
802
+ "primaryKey": false,
803
+ "notNull": true
804
+ },
805
+ "token": {
806
+ "name": "token",
807
+ "type": "text",
808
+ "primaryKey": false,
809
+ "notNull": true
810
+ },
811
+ "expires_at": {
812
+ "name": "expires_at",
813
+ "type": "timestamp",
814
+ "primaryKey": false,
815
+ "notNull": true
816
+ },
817
+ "ip_address": {
818
+ "name": "ip_address",
819
+ "type": "text",
820
+ "primaryKey": false,
821
+ "notNull": false
822
+ },
823
+ "user_agent": {
824
+ "name": "user_agent",
825
+ "type": "text",
826
+ "primaryKey": false,
827
+ "notNull": false
828
+ },
829
+ "created_at": {
830
+ "name": "created_at",
831
+ "type": "timestamp",
832
+ "primaryKey": false,
833
+ "notNull": true,
834
+ "default": "now()"
835
+ },
836
+ "updated_at": {
837
+ "name": "updated_at",
838
+ "type": "timestamp",
839
+ "primaryKey": false,
840
+ "notNull": true,
841
+ "default": "now()"
842
+ }
843
+ },
844
+ "indexes": {
845
+ "sessions_user_id_idx": {
846
+ "name": "sessions_user_id_idx",
847
+ "columns": [
848
+ {
849
+ "expression": "user_id",
850
+ "isExpression": false,
851
+ "asc": true,
852
+ "nulls": "last"
853
+ }
854
+ ],
855
+ "isUnique": false,
856
+ "concurrently": false,
857
+ "method": "btree",
858
+ "with": {}
859
+ }
860
+ },
861
+ "foreignKeys": {
862
+ "sessions_user_id_users_id_fk": {
863
+ "name": "sessions_user_id_users_id_fk",
864
+ "tableFrom": "sessions",
865
+ "tableTo": "users",
866
+ "columnsFrom": [
867
+ "user_id"
868
+ ],
869
+ "columnsTo": [
870
+ "id"
871
+ ],
872
+ "onDelete": "cascade",
873
+ "onUpdate": "no action"
874
+ }
875
+ },
876
+ "compositePrimaryKeys": {},
877
+ "uniqueConstraints": {
878
+ "sessions_token_unique": {
879
+ "name": "sessions_token_unique",
880
+ "nullsNotDistinct": false,
881
+ "columns": [
882
+ "token"
883
+ ]
884
+ }
885
+ },
886
+ "policies": {},
887
+ "checkConstraints": {},
888
+ "isRLSEnabled": false
889
+ },
890
+ "public.share_links": {
891
+ "name": "share_links",
892
+ "schema": "",
893
+ "columns": {
894
+ "id": {
895
+ "name": "id",
896
+ "type": "uuid",
897
+ "primaryKey": true,
898
+ "notNull": true,
899
+ "default": "gen_random_uuid()"
900
+ },
901
+ "document_id": {
902
+ "name": "document_id",
903
+ "type": "uuid",
904
+ "primaryKey": false,
905
+ "notNull": false
906
+ },
907
+ "folder_id": {
908
+ "name": "folder_id",
909
+ "type": "uuid",
910
+ "primaryKey": false,
911
+ "notNull": false
912
+ },
913
+ "token": {
914
+ "name": "token",
915
+ "type": "text",
916
+ "primaryKey": false,
917
+ "notNull": true
918
+ },
919
+ "password_hash": {
920
+ "name": "password_hash",
921
+ "type": "text",
922
+ "primaryKey": false,
923
+ "notNull": false
924
+ },
925
+ "expires_at": {
926
+ "name": "expires_at",
927
+ "type": "timestamp",
928
+ "primaryKey": false,
929
+ "notNull": false
930
+ },
931
+ "created_by": {
932
+ "name": "created_by",
933
+ "type": "uuid",
934
+ "primaryKey": false,
935
+ "notNull": true
936
+ },
937
+ "created_at": {
938
+ "name": "created_at",
939
+ "type": "timestamp",
940
+ "primaryKey": false,
941
+ "notNull": true,
942
+ "default": "now()"
943
+ }
944
+ },
945
+ "indexes": {
946
+ "share_links_token_idx": {
947
+ "name": "share_links_token_idx",
948
+ "columns": [
949
+ {
950
+ "expression": "token",
951
+ "isExpression": false,
952
+ "asc": true,
953
+ "nulls": "last"
954
+ }
955
+ ],
956
+ "isUnique": false,
957
+ "concurrently": false,
958
+ "method": "btree",
959
+ "with": {}
960
+ },
961
+ "share_links_document_id_idx": {
962
+ "name": "share_links_document_id_idx",
963
+ "columns": [
964
+ {
965
+ "expression": "document_id",
966
+ "isExpression": false,
967
+ "asc": true,
968
+ "nulls": "last"
969
+ }
970
+ ],
971
+ "isUnique": false,
972
+ "concurrently": false,
973
+ "method": "btree",
974
+ "with": {}
975
+ },
976
+ "share_links_folder_id_idx": {
977
+ "name": "share_links_folder_id_idx",
978
+ "columns": [
979
+ {
980
+ "expression": "folder_id",
981
+ "isExpression": false,
982
+ "asc": true,
983
+ "nulls": "last"
984
+ }
985
+ ],
986
+ "isUnique": false,
987
+ "concurrently": false,
988
+ "method": "btree",
989
+ "with": {}
990
+ }
991
+ },
992
+ "foreignKeys": {
993
+ "share_links_document_id_documents_id_fk": {
994
+ "name": "share_links_document_id_documents_id_fk",
995
+ "tableFrom": "share_links",
996
+ "tableTo": "documents",
997
+ "columnsFrom": [
998
+ "document_id"
999
+ ],
1000
+ "columnsTo": [
1001
+ "id"
1002
+ ],
1003
+ "onDelete": "cascade",
1004
+ "onUpdate": "no action"
1005
+ },
1006
+ "share_links_folder_id_folders_id_fk": {
1007
+ "name": "share_links_folder_id_folders_id_fk",
1008
+ "tableFrom": "share_links",
1009
+ "tableTo": "folders",
1010
+ "columnsFrom": [
1011
+ "folder_id"
1012
+ ],
1013
+ "columnsTo": [
1014
+ "id"
1015
+ ],
1016
+ "onDelete": "cascade",
1017
+ "onUpdate": "no action"
1018
+ },
1019
+ "share_links_created_by_users_id_fk": {
1020
+ "name": "share_links_created_by_users_id_fk",
1021
+ "tableFrom": "share_links",
1022
+ "tableTo": "users",
1023
+ "columnsFrom": [
1024
+ "created_by"
1025
+ ],
1026
+ "columnsTo": [
1027
+ "id"
1028
+ ],
1029
+ "onDelete": "cascade",
1030
+ "onUpdate": "no action"
1031
+ }
1032
+ },
1033
+ "compositePrimaryKeys": {},
1034
+ "uniqueConstraints": {
1035
+ "share_links_token_unique": {
1036
+ "name": "share_links_token_unique",
1037
+ "nullsNotDistinct": false,
1038
+ "columns": [
1039
+ "token"
1040
+ ]
1041
+ }
1042
+ },
1043
+ "policies": {},
1044
+ "checkConstraints": {},
1045
+ "isRLSEnabled": false
1046
+ },
1047
+ "public.tags": {
1048
+ "name": "tags",
1049
+ "schema": "",
1050
+ "columns": {
1051
+ "id": {
1052
+ "name": "id",
1053
+ "type": "uuid",
1054
+ "primaryKey": true,
1055
+ "notNull": true,
1056
+ "default": "gen_random_uuid()"
1057
+ },
1058
+ "owner_id": {
1059
+ "name": "owner_id",
1060
+ "type": "uuid",
1061
+ "primaryKey": false,
1062
+ "notNull": true
1063
+ },
1064
+ "name": {
1065
+ "name": "name",
1066
+ "type": "text",
1067
+ "primaryKey": false,
1068
+ "notNull": true
1069
+ },
1070
+ "color": {
1071
+ "name": "color",
1072
+ "type": "text",
1073
+ "primaryKey": false,
1074
+ "notNull": false
1075
+ },
1076
+ "created_at": {
1077
+ "name": "created_at",
1078
+ "type": "timestamp",
1079
+ "primaryKey": false,
1080
+ "notNull": true,
1081
+ "default": "now()"
1082
+ }
1083
+ },
1084
+ "indexes": {
1085
+ "tags_owner_id_idx": {
1086
+ "name": "tags_owner_id_idx",
1087
+ "columns": [
1088
+ {
1089
+ "expression": "owner_id",
1090
+ "isExpression": false,
1091
+ "asc": true,
1092
+ "nulls": "last"
1093
+ }
1094
+ ],
1095
+ "isUnique": false,
1096
+ "concurrently": false,
1097
+ "method": "btree",
1098
+ "with": {}
1099
+ },
1100
+ "tags_owner_name_idx": {
1101
+ "name": "tags_owner_name_idx",
1102
+ "columns": [
1103
+ {
1104
+ "expression": "owner_id",
1105
+ "isExpression": false,
1106
+ "asc": true,
1107
+ "nulls": "last"
1108
+ },
1109
+ {
1110
+ "expression": "name",
1111
+ "isExpression": false,
1112
+ "asc": true,
1113
+ "nulls": "last"
1114
+ }
1115
+ ],
1116
+ "isUnique": true,
1117
+ "concurrently": false,
1118
+ "method": "btree",
1119
+ "with": {}
1120
+ }
1121
+ },
1122
+ "foreignKeys": {
1123
+ "tags_owner_id_users_id_fk": {
1124
+ "name": "tags_owner_id_users_id_fk",
1125
+ "tableFrom": "tags",
1126
+ "tableTo": "users",
1127
+ "columnsFrom": [
1128
+ "owner_id"
1129
+ ],
1130
+ "columnsTo": [
1131
+ "id"
1132
+ ],
1133
+ "onDelete": "cascade",
1134
+ "onUpdate": "no action"
1135
+ }
1136
+ },
1137
+ "compositePrimaryKeys": {},
1138
+ "uniqueConstraints": {},
1139
+ "policies": {},
1140
+ "checkConstraints": {},
1141
+ "isRLSEnabled": false
1142
+ },
1143
+ "public.users": {
1144
+ "name": "users",
1145
+ "schema": "",
1146
+ "columns": {
1147
+ "id": {
1148
+ "name": "id",
1149
+ "type": "uuid",
1150
+ "primaryKey": true,
1151
+ "notNull": true,
1152
+ "default": "gen_random_uuid()"
1153
+ },
1154
+ "email": {
1155
+ "name": "email",
1156
+ "type": "text",
1157
+ "primaryKey": false,
1158
+ "notNull": true
1159
+ },
1160
+ "name": {
1161
+ "name": "name",
1162
+ "type": "text",
1163
+ "primaryKey": false,
1164
+ "notNull": false
1165
+ },
1166
+ "email_verified": {
1167
+ "name": "email_verified",
1168
+ "type": "boolean",
1169
+ "primaryKey": false,
1170
+ "notNull": false,
1171
+ "default": false
1172
+ },
1173
+ "image": {
1174
+ "name": "image",
1175
+ "type": "text",
1176
+ "primaryKey": false,
1177
+ "notNull": false
1178
+ },
1179
+ "created_at": {
1180
+ "name": "created_at",
1181
+ "type": "timestamp",
1182
+ "primaryKey": false,
1183
+ "notNull": true,
1184
+ "default": "now()"
1185
+ },
1186
+ "updated_at": {
1187
+ "name": "updated_at",
1188
+ "type": "timestamp",
1189
+ "primaryKey": false,
1190
+ "notNull": true,
1191
+ "default": "now()"
1192
+ }
1193
+ },
1194
+ "indexes": {},
1195
+ "foreignKeys": {},
1196
+ "compositePrimaryKeys": {},
1197
+ "uniqueConstraints": {
1198
+ "users_email_unique": {
1199
+ "name": "users_email_unique",
1200
+ "nullsNotDistinct": false,
1201
+ "columns": [
1202
+ "email"
1203
+ ]
1204
+ }
1205
+ },
1206
+ "policies": {},
1207
+ "checkConstraints": {},
1208
+ "isRLSEnabled": false
1209
+ },
1210
+ "public.verifications": {
1211
+ "name": "verifications",
1212
+ "schema": "",
1213
+ "columns": {
1214
+ "id": {
1215
+ "name": "id",
1216
+ "type": "uuid",
1217
+ "primaryKey": true,
1218
+ "notNull": true,
1219
+ "default": "gen_random_uuid()"
1220
+ },
1221
+ "identifier": {
1222
+ "name": "identifier",
1223
+ "type": "text",
1224
+ "primaryKey": false,
1225
+ "notNull": true
1226
+ },
1227
+ "value": {
1228
+ "name": "value",
1229
+ "type": "text",
1230
+ "primaryKey": false,
1231
+ "notNull": true
1232
+ },
1233
+ "expires_at": {
1234
+ "name": "expires_at",
1235
+ "type": "timestamp",
1236
+ "primaryKey": false,
1237
+ "notNull": true
1238
+ },
1239
+ "created_at": {
1240
+ "name": "created_at",
1241
+ "type": "timestamp",
1242
+ "primaryKey": false,
1243
+ "notNull": true,
1244
+ "default": "now()"
1245
+ },
1246
+ "updated_at": {
1247
+ "name": "updated_at",
1248
+ "type": "timestamp",
1249
+ "primaryKey": false,
1250
+ "notNull": true,
1251
+ "default": "now()"
1252
+ }
1253
+ },
1254
+ "indexes": {
1255
+ "verifications_identifier_idx": {
1256
+ "name": "verifications_identifier_idx",
1257
+ "columns": [
1258
+ {
1259
+ "expression": "identifier",
1260
+ "isExpression": false,
1261
+ "asc": true,
1262
+ "nulls": "last"
1263
+ }
1264
+ ],
1265
+ "isUnique": false,
1266
+ "concurrently": false,
1267
+ "method": "btree",
1268
+ "with": {}
1269
+ }
1270
+ },
1271
+ "foreignKeys": {},
1272
+ "compositePrimaryKeys": {},
1273
+ "uniqueConstraints": {},
1274
+ "policies": {},
1275
+ "checkConstraints": {},
1276
+ "isRLSEnabled": false
1277
+ },
1278
+ "public.versions": {
1279
+ "name": "versions",
1280
+ "schema": "",
1281
+ "columns": {
1282
+ "id": {
1283
+ "name": "id",
1284
+ "type": "uuid",
1285
+ "primaryKey": true,
1286
+ "notNull": true,
1287
+ "default": "gen_random_uuid()"
1288
+ },
1289
+ "document_id": {
1290
+ "name": "document_id",
1291
+ "type": "uuid",
1292
+ "primaryKey": false,
1293
+ "notNull": true
1294
+ },
1295
+ "content": {
1296
+ "name": "content",
1297
+ "type": "text",
1298
+ "primaryKey": false,
1299
+ "notNull": true
1300
+ },
1301
+ "content_json": {
1302
+ "name": "content_json",
1303
+ "type": "jsonb",
1304
+ "primaryKey": false,
1305
+ "notNull": false
1306
+ },
1307
+ "created_by": {
1308
+ "name": "created_by",
1309
+ "type": "uuid",
1310
+ "primaryKey": false,
1311
+ "notNull": true
1312
+ },
1313
+ "created_at": {
1314
+ "name": "created_at",
1315
+ "type": "timestamp",
1316
+ "primaryKey": false,
1317
+ "notNull": true,
1318
+ "default": "now()"
1319
+ }
1320
+ },
1321
+ "indexes": {
1322
+ "versions_document_id_idx": {
1323
+ "name": "versions_document_id_idx",
1324
+ "columns": [
1325
+ {
1326
+ "expression": "document_id",
1327
+ "isExpression": false,
1328
+ "asc": true,
1329
+ "nulls": "last"
1330
+ }
1331
+ ],
1332
+ "isUnique": false,
1333
+ "concurrently": false,
1334
+ "method": "btree",
1335
+ "with": {}
1336
+ },
1337
+ "versions_created_at_idx": {
1338
+ "name": "versions_created_at_idx",
1339
+ "columns": [
1340
+ {
1341
+ "expression": "created_at",
1342
+ "isExpression": false,
1343
+ "asc": true,
1344
+ "nulls": "last"
1345
+ }
1346
+ ],
1347
+ "isUnique": false,
1348
+ "concurrently": false,
1349
+ "method": "btree",
1350
+ "with": {}
1351
+ }
1352
+ },
1353
+ "foreignKeys": {
1354
+ "versions_document_id_documents_id_fk": {
1355
+ "name": "versions_document_id_documents_id_fk",
1356
+ "tableFrom": "versions",
1357
+ "tableTo": "documents",
1358
+ "columnsFrom": [
1359
+ "document_id"
1360
+ ],
1361
+ "columnsTo": [
1362
+ "id"
1363
+ ],
1364
+ "onDelete": "cascade",
1365
+ "onUpdate": "no action"
1366
+ },
1367
+ "versions_created_by_users_id_fk": {
1368
+ "name": "versions_created_by_users_id_fk",
1369
+ "tableFrom": "versions",
1370
+ "tableTo": "users",
1371
+ "columnsFrom": [
1372
+ "created_by"
1373
+ ],
1374
+ "columnsTo": [
1375
+ "id"
1376
+ ],
1377
+ "onDelete": "cascade",
1378
+ "onUpdate": "no action"
1379
+ }
1380
+ },
1381
+ "compositePrimaryKeys": {},
1382
+ "uniqueConstraints": {},
1383
+ "policies": {},
1384
+ "checkConstraints": {},
1385
+ "isRLSEnabled": false
1386
+ }
1387
+ },
1388
+ "enums": {},
1389
+ "schemas": {},
1390
+ "sequences": {},
1391
+ "roles": {},
1392
+ "policies": {},
1393
+ "views": {},
1394
+ "_meta": {
1395
+ "columns": {},
1396
+ "schemas": {},
1397
+ "tables": {}
1398
+ }
1399
+ }