@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,1331 @@
1
+ {
2
+ "id": "1f998725-4ea3-4ca3-a10b-2f35e5460d06",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
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
+ },
314
+ "foreignKeys": {
315
+ "document_embeddings_document_id_documents_id_fk": {
316
+ "name": "document_embeddings_document_id_documents_id_fk",
317
+ "tableFrom": "document_embeddings",
318
+ "tableTo": "documents",
319
+ "columnsFrom": [
320
+ "document_id"
321
+ ],
322
+ "columnsTo": [
323
+ "id"
324
+ ],
325
+ "onDelete": "cascade",
326
+ "onUpdate": "no action"
327
+ }
328
+ },
329
+ "compositePrimaryKeys": {},
330
+ "uniqueConstraints": {},
331
+ "policies": {},
332
+ "checkConstraints": {},
333
+ "isRLSEnabled": false
334
+ },
335
+ "public.document_tags": {
336
+ "name": "document_tags",
337
+ "schema": "",
338
+ "columns": {
339
+ "document_id": {
340
+ "name": "document_id",
341
+ "type": "uuid",
342
+ "primaryKey": false,
343
+ "notNull": true
344
+ },
345
+ "tag_id": {
346
+ "name": "tag_id",
347
+ "type": "uuid",
348
+ "primaryKey": false,
349
+ "notNull": true
350
+ }
351
+ },
352
+ "indexes": {
353
+ "document_tags_unique_idx": {
354
+ "name": "document_tags_unique_idx",
355
+ "columns": [
356
+ {
357
+ "expression": "document_id",
358
+ "isExpression": false,
359
+ "asc": true,
360
+ "nulls": "last"
361
+ },
362
+ {
363
+ "expression": "tag_id",
364
+ "isExpression": false,
365
+ "asc": true,
366
+ "nulls": "last"
367
+ }
368
+ ],
369
+ "isUnique": true,
370
+ "concurrently": false,
371
+ "method": "btree",
372
+ "with": {}
373
+ }
374
+ },
375
+ "foreignKeys": {
376
+ "document_tags_document_id_documents_id_fk": {
377
+ "name": "document_tags_document_id_documents_id_fk",
378
+ "tableFrom": "document_tags",
379
+ "tableTo": "documents",
380
+ "columnsFrom": [
381
+ "document_id"
382
+ ],
383
+ "columnsTo": [
384
+ "id"
385
+ ],
386
+ "onDelete": "cascade",
387
+ "onUpdate": "no action"
388
+ },
389
+ "document_tags_tag_id_tags_id_fk": {
390
+ "name": "document_tags_tag_id_tags_id_fk",
391
+ "tableFrom": "document_tags",
392
+ "tableTo": "tags",
393
+ "columnsFrom": [
394
+ "tag_id"
395
+ ],
396
+ "columnsTo": [
397
+ "id"
398
+ ],
399
+ "onDelete": "cascade",
400
+ "onUpdate": "no action"
401
+ }
402
+ },
403
+ "compositePrimaryKeys": {},
404
+ "uniqueConstraints": {},
405
+ "policies": {},
406
+ "checkConstraints": {},
407
+ "isRLSEnabled": false
408
+ },
409
+ "public.documents": {
410
+ "name": "documents",
411
+ "schema": "",
412
+ "columns": {
413
+ "id": {
414
+ "name": "id",
415
+ "type": "uuid",
416
+ "primaryKey": true,
417
+ "notNull": true,
418
+ "default": "gen_random_uuid()"
419
+ },
420
+ "owner_id": {
421
+ "name": "owner_id",
422
+ "type": "uuid",
423
+ "primaryKey": false,
424
+ "notNull": true
425
+ },
426
+ "folder_id": {
427
+ "name": "folder_id",
428
+ "type": "uuid",
429
+ "primaryKey": false,
430
+ "notNull": false
431
+ },
432
+ "title": {
433
+ "name": "title",
434
+ "type": "text",
435
+ "primaryKey": false,
436
+ "notNull": true,
437
+ "default": "'Untitled'"
438
+ },
439
+ "content": {
440
+ "name": "content",
441
+ "type": "text",
442
+ "primaryKey": false,
443
+ "notNull": false,
444
+ "default": "''"
445
+ },
446
+ "content_tipex": {
447
+ "name": "content_tipex",
448
+ "type": "jsonb",
449
+ "primaryKey": false,
450
+ "notNull": false
451
+ },
452
+ "metadata": {
453
+ "name": "metadata",
454
+ "type": "jsonb",
455
+ "primaryKey": false,
456
+ "notNull": false
457
+ },
458
+ "created_at": {
459
+ "name": "created_at",
460
+ "type": "timestamp",
461
+ "primaryKey": false,
462
+ "notNull": true,
463
+ "default": "now()"
464
+ },
465
+ "updated_at": {
466
+ "name": "updated_at",
467
+ "type": "timestamp",
468
+ "primaryKey": false,
469
+ "notNull": true,
470
+ "default": "now()"
471
+ }
472
+ },
473
+ "indexes": {
474
+ "documents_owner_id_idx": {
475
+ "name": "documents_owner_id_idx",
476
+ "columns": [
477
+ {
478
+ "expression": "owner_id",
479
+ "isExpression": false,
480
+ "asc": true,
481
+ "nulls": "last"
482
+ }
483
+ ],
484
+ "isUnique": false,
485
+ "concurrently": false,
486
+ "method": "btree",
487
+ "with": {}
488
+ },
489
+ "documents_folder_id_idx": {
490
+ "name": "documents_folder_id_idx",
491
+ "columns": [
492
+ {
493
+ "expression": "folder_id",
494
+ "isExpression": false,
495
+ "asc": true,
496
+ "nulls": "last"
497
+ }
498
+ ],
499
+ "isUnique": false,
500
+ "concurrently": false,
501
+ "method": "btree",
502
+ "with": {}
503
+ },
504
+ "documents_created_at_idx": {
505
+ "name": "documents_created_at_idx",
506
+ "columns": [
507
+ {
508
+ "expression": "created_at",
509
+ "isExpression": false,
510
+ "asc": true,
511
+ "nulls": "last"
512
+ }
513
+ ],
514
+ "isUnique": false,
515
+ "concurrently": false,
516
+ "method": "btree",
517
+ "with": {}
518
+ }
519
+ },
520
+ "foreignKeys": {
521
+ "documents_owner_id_users_id_fk": {
522
+ "name": "documents_owner_id_users_id_fk",
523
+ "tableFrom": "documents",
524
+ "tableTo": "users",
525
+ "columnsFrom": [
526
+ "owner_id"
527
+ ],
528
+ "columnsTo": [
529
+ "id"
530
+ ],
531
+ "onDelete": "cascade",
532
+ "onUpdate": "no action"
533
+ },
534
+ "documents_folder_id_folders_id_fk": {
535
+ "name": "documents_folder_id_folders_id_fk",
536
+ "tableFrom": "documents",
537
+ "tableTo": "folders",
538
+ "columnsFrom": [
539
+ "folder_id"
540
+ ],
541
+ "columnsTo": [
542
+ "id"
543
+ ],
544
+ "onDelete": "set null",
545
+ "onUpdate": "no action"
546
+ }
547
+ },
548
+ "compositePrimaryKeys": {},
549
+ "uniqueConstraints": {},
550
+ "policies": {},
551
+ "checkConstraints": {},
552
+ "isRLSEnabled": false
553
+ },
554
+ "public.folders": {
555
+ "name": "folders",
556
+ "schema": "",
557
+ "columns": {
558
+ "id": {
559
+ "name": "id",
560
+ "type": "uuid",
561
+ "primaryKey": true,
562
+ "notNull": true,
563
+ "default": "gen_random_uuid()"
564
+ },
565
+ "owner_id": {
566
+ "name": "owner_id",
567
+ "type": "uuid",
568
+ "primaryKey": false,
569
+ "notNull": true
570
+ },
571
+ "parent_id": {
572
+ "name": "parent_id",
573
+ "type": "uuid",
574
+ "primaryKey": false,
575
+ "notNull": false
576
+ },
577
+ "name": {
578
+ "name": "name",
579
+ "type": "text",
580
+ "primaryKey": false,
581
+ "notNull": true
582
+ },
583
+ "created_at": {
584
+ "name": "created_at",
585
+ "type": "timestamp",
586
+ "primaryKey": false,
587
+ "notNull": true,
588
+ "default": "now()"
589
+ },
590
+ "updated_at": {
591
+ "name": "updated_at",
592
+ "type": "timestamp",
593
+ "primaryKey": false,
594
+ "notNull": true,
595
+ "default": "now()"
596
+ }
597
+ },
598
+ "indexes": {
599
+ "folders_owner_id_idx": {
600
+ "name": "folders_owner_id_idx",
601
+ "columns": [
602
+ {
603
+ "expression": "owner_id",
604
+ "isExpression": false,
605
+ "asc": true,
606
+ "nulls": "last"
607
+ }
608
+ ],
609
+ "isUnique": false,
610
+ "concurrently": false,
611
+ "method": "btree",
612
+ "with": {}
613
+ },
614
+ "folders_parent_id_idx": {
615
+ "name": "folders_parent_id_idx",
616
+ "columns": [
617
+ {
618
+ "expression": "parent_id",
619
+ "isExpression": false,
620
+ "asc": true,
621
+ "nulls": "last"
622
+ }
623
+ ],
624
+ "isUnique": false,
625
+ "concurrently": false,
626
+ "method": "btree",
627
+ "with": {}
628
+ }
629
+ },
630
+ "foreignKeys": {
631
+ "folders_owner_id_users_id_fk": {
632
+ "name": "folders_owner_id_users_id_fk",
633
+ "tableFrom": "folders",
634
+ "tableTo": "users",
635
+ "columnsFrom": [
636
+ "owner_id"
637
+ ],
638
+ "columnsTo": [
639
+ "id"
640
+ ],
641
+ "onDelete": "cascade",
642
+ "onUpdate": "no action"
643
+ }
644
+ },
645
+ "compositePrimaryKeys": {},
646
+ "uniqueConstraints": {},
647
+ "policies": {},
648
+ "checkConstraints": {},
649
+ "isRLSEnabled": false
650
+ },
651
+ "public.guest_access": {
652
+ "name": "guest_access",
653
+ "schema": "",
654
+ "columns": {
655
+ "id": {
656
+ "name": "id",
657
+ "type": "uuid",
658
+ "primaryKey": true,
659
+ "notNull": true,
660
+ "default": "gen_random_uuid()"
661
+ },
662
+ "share_link_id": {
663
+ "name": "share_link_id",
664
+ "type": "uuid",
665
+ "primaryKey": false,
666
+ "notNull": true
667
+ },
668
+ "guest_email": {
669
+ "name": "guest_email",
670
+ "type": "text",
671
+ "primaryKey": false,
672
+ "notNull": true
673
+ },
674
+ "granted_at": {
675
+ "name": "granted_at",
676
+ "type": "timestamp",
677
+ "primaryKey": false,
678
+ "notNull": true,
679
+ "default": "now()"
680
+ }
681
+ },
682
+ "indexes": {
683
+ "guest_access_share_link_idx": {
684
+ "name": "guest_access_share_link_idx",
685
+ "columns": [
686
+ {
687
+ "expression": "share_link_id",
688
+ "isExpression": false,
689
+ "asc": true,
690
+ "nulls": "last"
691
+ }
692
+ ],
693
+ "isUnique": false,
694
+ "concurrently": false,
695
+ "method": "btree",
696
+ "with": {}
697
+ }
698
+ },
699
+ "foreignKeys": {
700
+ "guest_access_share_link_id_share_links_id_fk": {
701
+ "name": "guest_access_share_link_id_share_links_id_fk",
702
+ "tableFrom": "guest_access",
703
+ "tableTo": "share_links",
704
+ "columnsFrom": [
705
+ "share_link_id"
706
+ ],
707
+ "columnsTo": [
708
+ "id"
709
+ ],
710
+ "onDelete": "cascade",
711
+ "onUpdate": "no action"
712
+ }
713
+ },
714
+ "compositePrimaryKeys": {},
715
+ "uniqueConstraints": {},
716
+ "policies": {},
717
+ "checkConstraints": {},
718
+ "isRLSEnabled": false
719
+ },
720
+ "public.sessions": {
721
+ "name": "sessions",
722
+ "schema": "",
723
+ "columns": {
724
+ "id": {
725
+ "name": "id",
726
+ "type": "uuid",
727
+ "primaryKey": true,
728
+ "notNull": true,
729
+ "default": "gen_random_uuid()"
730
+ },
731
+ "user_id": {
732
+ "name": "user_id",
733
+ "type": "uuid",
734
+ "primaryKey": false,
735
+ "notNull": true
736
+ },
737
+ "token": {
738
+ "name": "token",
739
+ "type": "text",
740
+ "primaryKey": false,
741
+ "notNull": true
742
+ },
743
+ "expires_at": {
744
+ "name": "expires_at",
745
+ "type": "timestamp",
746
+ "primaryKey": false,
747
+ "notNull": true
748
+ },
749
+ "ip_address": {
750
+ "name": "ip_address",
751
+ "type": "text",
752
+ "primaryKey": false,
753
+ "notNull": false
754
+ },
755
+ "user_agent": {
756
+ "name": "user_agent",
757
+ "type": "text",
758
+ "primaryKey": false,
759
+ "notNull": false
760
+ },
761
+ "created_at": {
762
+ "name": "created_at",
763
+ "type": "timestamp",
764
+ "primaryKey": false,
765
+ "notNull": true,
766
+ "default": "now()"
767
+ },
768
+ "updated_at": {
769
+ "name": "updated_at",
770
+ "type": "timestamp",
771
+ "primaryKey": false,
772
+ "notNull": true,
773
+ "default": "now()"
774
+ }
775
+ },
776
+ "indexes": {
777
+ "sessions_user_id_idx": {
778
+ "name": "sessions_user_id_idx",
779
+ "columns": [
780
+ {
781
+ "expression": "user_id",
782
+ "isExpression": false,
783
+ "asc": true,
784
+ "nulls": "last"
785
+ }
786
+ ],
787
+ "isUnique": false,
788
+ "concurrently": false,
789
+ "method": "btree",
790
+ "with": {}
791
+ }
792
+ },
793
+ "foreignKeys": {
794
+ "sessions_user_id_users_id_fk": {
795
+ "name": "sessions_user_id_users_id_fk",
796
+ "tableFrom": "sessions",
797
+ "tableTo": "users",
798
+ "columnsFrom": [
799
+ "user_id"
800
+ ],
801
+ "columnsTo": [
802
+ "id"
803
+ ],
804
+ "onDelete": "cascade",
805
+ "onUpdate": "no action"
806
+ }
807
+ },
808
+ "compositePrimaryKeys": {},
809
+ "uniqueConstraints": {
810
+ "sessions_token_unique": {
811
+ "name": "sessions_token_unique",
812
+ "nullsNotDistinct": false,
813
+ "columns": [
814
+ "token"
815
+ ]
816
+ }
817
+ },
818
+ "policies": {},
819
+ "checkConstraints": {},
820
+ "isRLSEnabled": false
821
+ },
822
+ "public.share_links": {
823
+ "name": "share_links",
824
+ "schema": "",
825
+ "columns": {
826
+ "id": {
827
+ "name": "id",
828
+ "type": "uuid",
829
+ "primaryKey": true,
830
+ "notNull": true,
831
+ "default": "gen_random_uuid()"
832
+ },
833
+ "document_id": {
834
+ "name": "document_id",
835
+ "type": "uuid",
836
+ "primaryKey": false,
837
+ "notNull": false
838
+ },
839
+ "folder_id": {
840
+ "name": "folder_id",
841
+ "type": "uuid",
842
+ "primaryKey": false,
843
+ "notNull": false
844
+ },
845
+ "token": {
846
+ "name": "token",
847
+ "type": "text",
848
+ "primaryKey": false,
849
+ "notNull": true
850
+ },
851
+ "password_hash": {
852
+ "name": "password_hash",
853
+ "type": "text",
854
+ "primaryKey": false,
855
+ "notNull": false
856
+ },
857
+ "expires_at": {
858
+ "name": "expires_at",
859
+ "type": "timestamp",
860
+ "primaryKey": false,
861
+ "notNull": false
862
+ },
863
+ "created_by": {
864
+ "name": "created_by",
865
+ "type": "uuid",
866
+ "primaryKey": false,
867
+ "notNull": true
868
+ },
869
+ "created_at": {
870
+ "name": "created_at",
871
+ "type": "timestamp",
872
+ "primaryKey": false,
873
+ "notNull": true,
874
+ "default": "now()"
875
+ }
876
+ },
877
+ "indexes": {
878
+ "share_links_token_idx": {
879
+ "name": "share_links_token_idx",
880
+ "columns": [
881
+ {
882
+ "expression": "token",
883
+ "isExpression": false,
884
+ "asc": true,
885
+ "nulls": "last"
886
+ }
887
+ ],
888
+ "isUnique": false,
889
+ "concurrently": false,
890
+ "method": "btree",
891
+ "with": {}
892
+ },
893
+ "share_links_document_id_idx": {
894
+ "name": "share_links_document_id_idx",
895
+ "columns": [
896
+ {
897
+ "expression": "document_id",
898
+ "isExpression": false,
899
+ "asc": true,
900
+ "nulls": "last"
901
+ }
902
+ ],
903
+ "isUnique": false,
904
+ "concurrently": false,
905
+ "method": "btree",
906
+ "with": {}
907
+ },
908
+ "share_links_folder_id_idx": {
909
+ "name": "share_links_folder_id_idx",
910
+ "columns": [
911
+ {
912
+ "expression": "folder_id",
913
+ "isExpression": false,
914
+ "asc": true,
915
+ "nulls": "last"
916
+ }
917
+ ],
918
+ "isUnique": false,
919
+ "concurrently": false,
920
+ "method": "btree",
921
+ "with": {}
922
+ }
923
+ },
924
+ "foreignKeys": {
925
+ "share_links_document_id_documents_id_fk": {
926
+ "name": "share_links_document_id_documents_id_fk",
927
+ "tableFrom": "share_links",
928
+ "tableTo": "documents",
929
+ "columnsFrom": [
930
+ "document_id"
931
+ ],
932
+ "columnsTo": [
933
+ "id"
934
+ ],
935
+ "onDelete": "cascade",
936
+ "onUpdate": "no action"
937
+ },
938
+ "share_links_folder_id_folders_id_fk": {
939
+ "name": "share_links_folder_id_folders_id_fk",
940
+ "tableFrom": "share_links",
941
+ "tableTo": "folders",
942
+ "columnsFrom": [
943
+ "folder_id"
944
+ ],
945
+ "columnsTo": [
946
+ "id"
947
+ ],
948
+ "onDelete": "cascade",
949
+ "onUpdate": "no action"
950
+ },
951
+ "share_links_created_by_users_id_fk": {
952
+ "name": "share_links_created_by_users_id_fk",
953
+ "tableFrom": "share_links",
954
+ "tableTo": "users",
955
+ "columnsFrom": [
956
+ "created_by"
957
+ ],
958
+ "columnsTo": [
959
+ "id"
960
+ ],
961
+ "onDelete": "cascade",
962
+ "onUpdate": "no action"
963
+ }
964
+ },
965
+ "compositePrimaryKeys": {},
966
+ "uniqueConstraints": {
967
+ "share_links_token_unique": {
968
+ "name": "share_links_token_unique",
969
+ "nullsNotDistinct": false,
970
+ "columns": [
971
+ "token"
972
+ ]
973
+ }
974
+ },
975
+ "policies": {},
976
+ "checkConstraints": {},
977
+ "isRLSEnabled": false
978
+ },
979
+ "public.tags": {
980
+ "name": "tags",
981
+ "schema": "",
982
+ "columns": {
983
+ "id": {
984
+ "name": "id",
985
+ "type": "uuid",
986
+ "primaryKey": true,
987
+ "notNull": true,
988
+ "default": "gen_random_uuid()"
989
+ },
990
+ "owner_id": {
991
+ "name": "owner_id",
992
+ "type": "uuid",
993
+ "primaryKey": false,
994
+ "notNull": true
995
+ },
996
+ "name": {
997
+ "name": "name",
998
+ "type": "text",
999
+ "primaryKey": false,
1000
+ "notNull": true
1001
+ },
1002
+ "color": {
1003
+ "name": "color",
1004
+ "type": "text",
1005
+ "primaryKey": false,
1006
+ "notNull": false
1007
+ },
1008
+ "created_at": {
1009
+ "name": "created_at",
1010
+ "type": "timestamp",
1011
+ "primaryKey": false,
1012
+ "notNull": true,
1013
+ "default": "now()"
1014
+ }
1015
+ },
1016
+ "indexes": {
1017
+ "tags_owner_id_idx": {
1018
+ "name": "tags_owner_id_idx",
1019
+ "columns": [
1020
+ {
1021
+ "expression": "owner_id",
1022
+ "isExpression": false,
1023
+ "asc": true,
1024
+ "nulls": "last"
1025
+ }
1026
+ ],
1027
+ "isUnique": false,
1028
+ "concurrently": false,
1029
+ "method": "btree",
1030
+ "with": {}
1031
+ },
1032
+ "tags_owner_name_idx": {
1033
+ "name": "tags_owner_name_idx",
1034
+ "columns": [
1035
+ {
1036
+ "expression": "owner_id",
1037
+ "isExpression": false,
1038
+ "asc": true,
1039
+ "nulls": "last"
1040
+ },
1041
+ {
1042
+ "expression": "name",
1043
+ "isExpression": false,
1044
+ "asc": true,
1045
+ "nulls": "last"
1046
+ }
1047
+ ],
1048
+ "isUnique": true,
1049
+ "concurrently": false,
1050
+ "method": "btree",
1051
+ "with": {}
1052
+ }
1053
+ },
1054
+ "foreignKeys": {
1055
+ "tags_owner_id_users_id_fk": {
1056
+ "name": "tags_owner_id_users_id_fk",
1057
+ "tableFrom": "tags",
1058
+ "tableTo": "users",
1059
+ "columnsFrom": [
1060
+ "owner_id"
1061
+ ],
1062
+ "columnsTo": [
1063
+ "id"
1064
+ ],
1065
+ "onDelete": "cascade",
1066
+ "onUpdate": "no action"
1067
+ }
1068
+ },
1069
+ "compositePrimaryKeys": {},
1070
+ "uniqueConstraints": {},
1071
+ "policies": {},
1072
+ "checkConstraints": {},
1073
+ "isRLSEnabled": false
1074
+ },
1075
+ "public.users": {
1076
+ "name": "users",
1077
+ "schema": "",
1078
+ "columns": {
1079
+ "id": {
1080
+ "name": "id",
1081
+ "type": "uuid",
1082
+ "primaryKey": true,
1083
+ "notNull": true,
1084
+ "default": "gen_random_uuid()"
1085
+ },
1086
+ "email": {
1087
+ "name": "email",
1088
+ "type": "text",
1089
+ "primaryKey": false,
1090
+ "notNull": true
1091
+ },
1092
+ "name": {
1093
+ "name": "name",
1094
+ "type": "text",
1095
+ "primaryKey": false,
1096
+ "notNull": false
1097
+ },
1098
+ "email_verified": {
1099
+ "name": "email_verified",
1100
+ "type": "boolean",
1101
+ "primaryKey": false,
1102
+ "notNull": false,
1103
+ "default": false
1104
+ },
1105
+ "image": {
1106
+ "name": "image",
1107
+ "type": "text",
1108
+ "primaryKey": false,
1109
+ "notNull": false
1110
+ },
1111
+ "created_at": {
1112
+ "name": "created_at",
1113
+ "type": "timestamp",
1114
+ "primaryKey": false,
1115
+ "notNull": true,
1116
+ "default": "now()"
1117
+ },
1118
+ "updated_at": {
1119
+ "name": "updated_at",
1120
+ "type": "timestamp",
1121
+ "primaryKey": false,
1122
+ "notNull": true,
1123
+ "default": "now()"
1124
+ }
1125
+ },
1126
+ "indexes": {},
1127
+ "foreignKeys": {},
1128
+ "compositePrimaryKeys": {},
1129
+ "uniqueConstraints": {
1130
+ "users_email_unique": {
1131
+ "name": "users_email_unique",
1132
+ "nullsNotDistinct": false,
1133
+ "columns": [
1134
+ "email"
1135
+ ]
1136
+ }
1137
+ },
1138
+ "policies": {},
1139
+ "checkConstraints": {},
1140
+ "isRLSEnabled": false
1141
+ },
1142
+ "public.verifications": {
1143
+ "name": "verifications",
1144
+ "schema": "",
1145
+ "columns": {
1146
+ "id": {
1147
+ "name": "id",
1148
+ "type": "uuid",
1149
+ "primaryKey": true,
1150
+ "notNull": true,
1151
+ "default": "gen_random_uuid()"
1152
+ },
1153
+ "identifier": {
1154
+ "name": "identifier",
1155
+ "type": "text",
1156
+ "primaryKey": false,
1157
+ "notNull": true
1158
+ },
1159
+ "value": {
1160
+ "name": "value",
1161
+ "type": "text",
1162
+ "primaryKey": false,
1163
+ "notNull": true
1164
+ },
1165
+ "expires_at": {
1166
+ "name": "expires_at",
1167
+ "type": "timestamp",
1168
+ "primaryKey": false,
1169
+ "notNull": true
1170
+ },
1171
+ "created_at": {
1172
+ "name": "created_at",
1173
+ "type": "timestamp",
1174
+ "primaryKey": false,
1175
+ "notNull": true,
1176
+ "default": "now()"
1177
+ },
1178
+ "updated_at": {
1179
+ "name": "updated_at",
1180
+ "type": "timestamp",
1181
+ "primaryKey": false,
1182
+ "notNull": true,
1183
+ "default": "now()"
1184
+ }
1185
+ },
1186
+ "indexes": {
1187
+ "verifications_identifier_idx": {
1188
+ "name": "verifications_identifier_idx",
1189
+ "columns": [
1190
+ {
1191
+ "expression": "identifier",
1192
+ "isExpression": false,
1193
+ "asc": true,
1194
+ "nulls": "last"
1195
+ }
1196
+ ],
1197
+ "isUnique": false,
1198
+ "concurrently": false,
1199
+ "method": "btree",
1200
+ "with": {}
1201
+ }
1202
+ },
1203
+ "foreignKeys": {},
1204
+ "compositePrimaryKeys": {},
1205
+ "uniqueConstraints": {},
1206
+ "policies": {},
1207
+ "checkConstraints": {},
1208
+ "isRLSEnabled": false
1209
+ },
1210
+ "public.versions": {
1211
+ "name": "versions",
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
+ "document_id": {
1222
+ "name": "document_id",
1223
+ "type": "uuid",
1224
+ "primaryKey": false,
1225
+ "notNull": true
1226
+ },
1227
+ "content": {
1228
+ "name": "content",
1229
+ "type": "text",
1230
+ "primaryKey": false,
1231
+ "notNull": true
1232
+ },
1233
+ "content_tipex": {
1234
+ "name": "content_tipex",
1235
+ "type": "jsonb",
1236
+ "primaryKey": false,
1237
+ "notNull": false
1238
+ },
1239
+ "created_by": {
1240
+ "name": "created_by",
1241
+ "type": "uuid",
1242
+ "primaryKey": false,
1243
+ "notNull": true
1244
+ },
1245
+ "created_at": {
1246
+ "name": "created_at",
1247
+ "type": "timestamp",
1248
+ "primaryKey": false,
1249
+ "notNull": true,
1250
+ "default": "now()"
1251
+ }
1252
+ },
1253
+ "indexes": {
1254
+ "versions_document_id_idx": {
1255
+ "name": "versions_document_id_idx",
1256
+ "columns": [
1257
+ {
1258
+ "expression": "document_id",
1259
+ "isExpression": false,
1260
+ "asc": true,
1261
+ "nulls": "last"
1262
+ }
1263
+ ],
1264
+ "isUnique": false,
1265
+ "concurrently": false,
1266
+ "method": "btree",
1267
+ "with": {}
1268
+ },
1269
+ "versions_created_at_idx": {
1270
+ "name": "versions_created_at_idx",
1271
+ "columns": [
1272
+ {
1273
+ "expression": "created_at",
1274
+ "isExpression": false,
1275
+ "asc": true,
1276
+ "nulls": "last"
1277
+ }
1278
+ ],
1279
+ "isUnique": false,
1280
+ "concurrently": false,
1281
+ "method": "btree",
1282
+ "with": {}
1283
+ }
1284
+ },
1285
+ "foreignKeys": {
1286
+ "versions_document_id_documents_id_fk": {
1287
+ "name": "versions_document_id_documents_id_fk",
1288
+ "tableFrom": "versions",
1289
+ "tableTo": "documents",
1290
+ "columnsFrom": [
1291
+ "document_id"
1292
+ ],
1293
+ "columnsTo": [
1294
+ "id"
1295
+ ],
1296
+ "onDelete": "cascade",
1297
+ "onUpdate": "no action"
1298
+ },
1299
+ "versions_created_by_users_id_fk": {
1300
+ "name": "versions_created_by_users_id_fk",
1301
+ "tableFrom": "versions",
1302
+ "tableTo": "users",
1303
+ "columnsFrom": [
1304
+ "created_by"
1305
+ ],
1306
+ "columnsTo": [
1307
+ "id"
1308
+ ],
1309
+ "onDelete": "cascade",
1310
+ "onUpdate": "no action"
1311
+ }
1312
+ },
1313
+ "compositePrimaryKeys": {},
1314
+ "uniqueConstraints": {},
1315
+ "policies": {},
1316
+ "checkConstraints": {},
1317
+ "isRLSEnabled": false
1318
+ }
1319
+ },
1320
+ "enums": {},
1321
+ "schemas": {},
1322
+ "sequences": {},
1323
+ "roles": {},
1324
+ "policies": {},
1325
+ "views": {},
1326
+ "_meta": {
1327
+ "columns": {},
1328
+ "schemas": {},
1329
+ "tables": {}
1330
+ }
1331
+ }