@revealui/db 0.2.1 → 0.3.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 (256) hide show
  1. package/dist/audit-store.d.ts.map +1 -1
  2. package/dist/audit-store.js.map +1 -1
  3. package/dist/cleanup/cross-db-cleanup.d.ts +82 -0
  4. package/dist/cleanup/cross-db-cleanup.d.ts.map +1 -0
  5. package/dist/cleanup/cross-db-cleanup.js +189 -0
  6. package/dist/cleanup/cross-db-cleanup.js.map +1 -0
  7. package/dist/cleanup/index.d.ts +11 -0
  8. package/dist/cleanup/index.d.ts.map +1 -0
  9. package/dist/cleanup/index.js +11 -0
  10. package/dist/cleanup/index.js.map +1 -0
  11. package/dist/cleanup/rag-site-cleanup.d.ts +58 -0
  12. package/dist/cleanup/rag-site-cleanup.d.ts.map +1 -0
  13. package/dist/cleanup/rag-site-cleanup.js +68 -0
  14. package/dist/cleanup/rag-site-cleanup.js.map +1 -0
  15. package/dist/cleanup/stale-tokens.d.ts +37 -0
  16. package/dist/cleanup/stale-tokens.d.ts.map +1 -0
  17. package/dist/cleanup/stale-tokens.js +113 -0
  18. package/dist/cleanup/stale-tokens.js.map +1 -0
  19. package/dist/client/index.d.ts +14 -1
  20. package/dist/client/index.d.ts.map +1 -1
  21. package/dist/client/index.js +49 -13
  22. package/dist/client/index.js.map +1 -1
  23. package/dist/client/types.d.ts.map +1 -1
  24. package/dist/crypto.js.map +1 -1
  25. package/dist/index.d.ts +2 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/log-transport.d.ts.map +1 -1
  30. package/dist/log-transport.js +3 -1
  31. package/dist/log-transport.js.map +1 -1
  32. package/dist/pool.d.ts +2 -1
  33. package/dist/pool.d.ts.map +1 -1
  34. package/dist/pool.js +56 -22
  35. package/dist/pool.js.map +1 -1
  36. package/dist/queries/boards.d.ts +13 -1
  37. package/dist/queries/boards.d.ts.map +1 -1
  38. package/dist/queries/boards.js +5 -2
  39. package/dist/queries/boards.js.map +1 -1
  40. package/dist/queries/code-provenance.d.ts.map +1 -1
  41. package/dist/queries/code-provenance.js.map +1 -1
  42. package/dist/queries/conversations.d.ts +29 -0
  43. package/dist/queries/conversations.d.ts.map +1 -0
  44. package/dist/queries/conversations.js +80 -0
  45. package/dist/queries/conversations.js.map +1 -0
  46. package/dist/queries/media.d.ts +9 -0
  47. package/dist/queries/media.d.ts.map +1 -1
  48. package/dist/queries/media.js +23 -13
  49. package/dist/queries/media.js.map +1 -1
  50. package/dist/queries/orders.d.ts +87 -0
  51. package/dist/queries/orders.d.ts.map +1 -0
  52. package/dist/queries/orders.js +36 -0
  53. package/dist/queries/orders.js.map +1 -0
  54. package/dist/queries/pages.d.ts +10 -0
  55. package/dist/queries/pages.d.ts.map +1 -1
  56. package/dist/queries/pages.js +19 -5
  57. package/dist/queries/pages.js.map +1 -1
  58. package/dist/queries/posts.d.ts +41 -0
  59. package/dist/queries/posts.d.ts.map +1 -1
  60. package/dist/queries/posts.js +38 -5
  61. package/dist/queries/posts.js.map +1 -1
  62. package/dist/queries/products.d.ts +102 -0
  63. package/dist/queries/products.d.ts.map +1 -0
  64. package/dist/queries/products.js +55 -0
  65. package/dist/queries/products.js.map +1 -0
  66. package/dist/queries/sites.d.ts +36 -1
  67. package/dist/queries/sites.d.ts.map +1 -1
  68. package/dist/queries/sites.js +45 -5
  69. package/dist/queries/sites.js.map +1 -1
  70. package/dist/queries/ticket-comments.d.ts +34 -1
  71. package/dist/queries/ticket-comments.d.ts.map +1 -1
  72. package/dist/queries/ticket-comments.js +32 -1
  73. package/dist/queries/ticket-comments.js.map +1 -1
  74. package/dist/queries/ticket-labels.d.ts +10 -0
  75. package/dist/queries/ticket-labels.d.ts.map +1 -1
  76. package/dist/queries/ticket-labels.js +4 -0
  77. package/dist/queries/ticket-labels.js.map +1 -1
  78. package/dist/queries/tickets.d.ts +42 -1
  79. package/dist/queries/tickets.d.ts.map +1 -1
  80. package/dist/queries/tickets.js +28 -7
  81. package/dist/queries/tickets.js.map +1 -1
  82. package/dist/queries/users.d.ts +221 -0
  83. package/dist/queries/users.d.ts.map +1 -0
  84. package/dist/queries/users.js +94 -0
  85. package/dist/queries/users.js.map +1 -0
  86. package/dist/schema/accounts.d.ts +962 -0
  87. package/dist/schema/accounts.d.ts.map +1 -0
  88. package/dist/schema/accounts.js +117 -0
  89. package/dist/schema/accounts.js.map +1 -0
  90. package/dist/schema/agents.d.ts +216 -1
  91. package/dist/schema/agents.d.ts.map +1 -1
  92. package/dist/schema/agents.js +61 -6
  93. package/dist/schema/agents.js.map +1 -1
  94. package/dist/schema/api-keys.d.ts +17 -0
  95. package/dist/schema/api-keys.d.ts.map +1 -1
  96. package/dist/schema/api-keys.js +3 -0
  97. package/dist/schema/api-keys.js.map +1 -1
  98. package/dist/schema/app-logs.d.ts.map +1 -1
  99. package/dist/schema/app-logs.js.map +1 -1
  100. package/dist/schema/audit-log.d.ts.map +1 -1
  101. package/dist/schema/audit-log.js.map +1 -1
  102. package/dist/schema/circuit-breaker.d.ts +139 -0
  103. package/dist/schema/circuit-breaker.d.ts.map +1 -0
  104. package/dist/schema/circuit-breaker.js +28 -0
  105. package/dist/schema/circuit-breaker.js.map +1 -0
  106. package/dist/schema/cms.d.ts +68 -0
  107. package/dist/schema/cms.d.ts.map +1 -1
  108. package/dist/schema/cms.js +18 -4
  109. package/dist/schema/cms.js.map +1 -1
  110. package/dist/schema/code-provenance.d.ts.map +1 -1
  111. package/dist/schema/code-provenance.js.map +1 -1
  112. package/dist/schema/collab-edits.d.ts.map +1 -1
  113. package/dist/schema/collab-edits.js +2 -2
  114. package/dist/schema/collab-edits.js.map +1 -1
  115. package/dist/schema/coordination.d.ts +967 -0
  116. package/dist/schema/coordination.d.ts.map +1 -0
  117. package/dist/schema/coordination.js +109 -0
  118. package/dist/schema/coordination.js.map +1 -0
  119. package/dist/schema/crdt-operations.d.ts.map +1 -1
  120. package/dist/schema/crdt-operations.js.map +1 -1
  121. package/dist/schema/error-events.d.ts.map +1 -1
  122. package/dist/schema/error-events.js.map +1 -1
  123. package/dist/schema/gdpr.d.ts +529 -0
  124. package/dist/schema/gdpr.d.ts.map +1 -0
  125. package/dist/schema/gdpr.js +93 -0
  126. package/dist/schema/gdpr.js.map +1 -0
  127. package/dist/schema/index.d.ts +44 -1
  128. package/dist/schema/index.d.ts.map +1 -1
  129. package/dist/schema/index.js +93 -0
  130. package/dist/schema/index.js.map +1 -1
  131. package/dist/schema/jobs.d.ts +242 -0
  132. package/dist/schema/jobs.d.ts.map +1 -0
  133. package/dist/schema/jobs.js +48 -0
  134. package/dist/schema/jobs.js.map +1 -0
  135. package/dist/schema/licenses.d.ts +68 -0
  136. package/dist/schema/licenses.d.ts.map +1 -1
  137. package/dist/schema/licenses.js +11 -2
  138. package/dist/schema/licenses.js.map +1 -1
  139. package/dist/schema/magic-links.d.ts +136 -0
  140. package/dist/schema/magic-links.d.ts.map +1 -0
  141. package/dist/schema/magic-links.js +32 -0
  142. package/dist/schema/magic-links.js.map +1 -0
  143. package/dist/schema/marketplace.d.ts +496 -0
  144. package/dist/schema/marketplace.d.ts.map +1 -0
  145. package/dist/schema/marketplace.js +114 -0
  146. package/dist/schema/marketplace.js.map +1 -0
  147. package/dist/schema/node-ids.d.ts.map +1 -1
  148. package/dist/schema/node-ids.js.map +1 -1
  149. package/dist/schema/oauth-accounts.d.ts +34 -0
  150. package/dist/schema/oauth-accounts.d.ts.map +1 -1
  151. package/dist/schema/oauth-accounts.js +5 -0
  152. package/dist/schema/oauth-accounts.js.map +1 -1
  153. package/dist/schema/pages.d.ts +34 -0
  154. package/dist/schema/pages.d.ts.map +1 -1
  155. package/dist/schema/pages.js +14 -4
  156. package/dist/schema/pages.js.map +1 -1
  157. package/dist/schema/passkeys.d.ts +208 -0
  158. package/dist/schema/passkeys.d.ts.map +1 -0
  159. package/dist/schema/passkeys.js +48 -0
  160. package/dist/schema/passkeys.js.map +1 -0
  161. package/dist/schema/password-reset-tokens.d.ts.map +1 -1
  162. package/dist/schema/password-reset-tokens.js +5 -2
  163. package/dist/schema/password-reset-tokens.js.map +1 -1
  164. package/dist/schema/products.d.ts +519 -0
  165. package/dist/schema/products.d.ts.map +1 -0
  166. package/dist/schema/products.js +101 -0
  167. package/dist/schema/products.js.map +1 -0
  168. package/dist/schema/rag.d.ts.map +1 -1
  169. package/dist/schema/rag.js +5 -2
  170. package/dist/schema/rag.js.map +1 -1
  171. package/dist/schema/rate-limits.d.ts.map +1 -1
  172. package/dist/schema/rate-limits.js +5 -2
  173. package/dist/schema/rate-limits.js.map +1 -1
  174. package/dist/schema/rest.d.ts +12 -2
  175. package/dist/schema/rest.d.ts.map +1 -1
  176. package/dist/schema/rest.js +12 -2
  177. package/dist/schema/rest.js.map +1 -1
  178. package/dist/schema/revealcoin.d.ts +267 -0
  179. package/dist/schema/revealcoin.d.ts.map +1 -0
  180. package/dist/schema/revealcoin.js +54 -0
  181. package/dist/schema/revealcoin.js.map +1 -0
  182. package/dist/schema/sites.d.ts +34 -0
  183. package/dist/schema/sites.d.ts.map +1 -1
  184. package/dist/schema/sites.js +15 -3
  185. package/dist/schema/sites.js.map +1 -1
  186. package/dist/schema/tenants.d.ts +188 -0
  187. package/dist/schema/tenants.d.ts.map +1 -0
  188. package/dist/schema/tenants.js +14 -0
  189. package/dist/schema/tenants.js.map +1 -0
  190. package/dist/schema/tickets.d.ts.map +1 -1
  191. package/dist/schema/tickets.js +17 -5
  192. package/dist/schema/tickets.js.map +1 -1
  193. package/dist/schema/users.d.ts +174 -0
  194. package/dist/schema/users.d.ts.map +1 -1
  195. package/dist/schema/users.js +31 -3
  196. package/dist/schema/users.js.map +1 -1
  197. package/dist/schema/vector.d.ts +10 -3
  198. package/dist/schema/vector.d.ts.map +1 -1
  199. package/dist/schema/vector.js +11 -4
  200. package/dist/schema/vector.js.map +1 -1
  201. package/dist/schema/waitlist.d.ts.map +1 -1
  202. package/dist/schema/waitlist.js.map +1 -1
  203. package/dist/schema/webhook-events.d.ts.map +1 -1
  204. package/dist/schema/webhook-events.js.map +1 -1
  205. package/dist/schema/yjs-documents.d.ts.map +1 -1
  206. package/dist/schema/yjs-documents.js.map +1 -1
  207. package/dist/scripts/cleanup-expired.d.ts +12 -0
  208. package/dist/scripts/cleanup-expired.d.ts.map +1 -0
  209. package/dist/scripts/cleanup-expired.js +50 -0
  210. package/dist/scripts/cleanup-expired.js.map +1 -0
  211. package/dist/types/database.d.ts +387 -2
  212. package/dist/types/database.d.ts.map +1 -1
  213. package/dist/types/database.js +80 -1
  214. package/dist/types/database.js.map +1 -1
  215. package/dist/types/discover.d.ts +2 -2
  216. package/dist/types/discover.d.ts.map +1 -1
  217. package/dist/types/discover.js +16 -16
  218. package/dist/types/discover.js.map +1 -1
  219. package/dist/types/extract-relationships.d.ts.map +1 -1
  220. package/dist/types/extract-relationships.js.map +1 -1
  221. package/dist/types/generate-contracts.js +1 -1
  222. package/dist/types/generate-contracts.js.map +1 -1
  223. package/dist/types/generate-zod-schemas.js.map +1 -1
  224. package/dist/types/generate.js.map +1 -1
  225. package/dist/types/index.d.ts.map +1 -1
  226. package/dist/types/introspect.d.ts.map +1 -1
  227. package/dist/types/introspect.js +0 -1
  228. package/dist/types/introspect.js.map +1 -1
  229. package/dist/types/stripe-schema.d.ts.map +1 -1
  230. package/dist/types/stripe-schema.js +7 -2
  231. package/dist/types/stripe-schema.js.map +1 -1
  232. package/dist/utils/soft-delete.d.ts +45 -0
  233. package/dist/utils/soft-delete.d.ts.map +1 -0
  234. package/dist/utils/soft-delete.js +45 -0
  235. package/dist/utils/soft-delete.js.map +1 -0
  236. package/dist/validation/cross-db.d.ts +60 -0
  237. package/dist/validation/cross-db.d.ts.map +1 -0
  238. package/dist/validation/cross-db.js +146 -0
  239. package/dist/validation/cross-db.js.map +1 -0
  240. package/package.json +60 -12
  241. package/dist/queries/optimized-queries.d.ts +0 -89
  242. package/dist/queries/optimized-queries.d.ts.map +0 -1
  243. package/dist/queries/optimized-queries.js +0 -371
  244. package/dist/queries/optimized-queries.js.map +0 -1
  245. package/dist/queries/todos.d.ts +0 -37
  246. package/dist/queries/todos.d.ts.map +0 -1
  247. package/dist/queries/todos.js +0 -37
  248. package/dist/queries/todos.js.map +0 -1
  249. package/dist/schema/query.d.ts +0 -11
  250. package/dist/schema/query.d.ts.map +0 -1
  251. package/dist/schema/query.js +0 -11
  252. package/dist/schema/query.js.map +0 -1
  253. package/dist/schema/todos.d.ts +0 -98
  254. package/dist/schema/todos.d.ts.map +0 -1
  255. package/dist/schema/todos.js +0 -12
  256. package/dist/schema/todos.js.map +0 -1
@@ -0,0 +1,188 @@
1
+ export declare const tenants: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "tenants";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "tenants";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ schemaVersion: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "schema_version";
24
+ tableName: "tenants";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: true;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ name: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "name";
41
+ tableName: "tenants";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ email: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "email";
58
+ tableName: "tenants";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ password: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "password";
75
+ tableName: "tenants";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: false;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ roles: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "roles";
92
+ tableName: "tenants";
93
+ dataType: "json";
94
+ columnType: "PgJsonb";
95
+ data: string[];
96
+ driverParam: unknown;
97
+ notNull: true;
98
+ hasDefault: true;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: undefined;
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {
107
+ $type: string[];
108
+ }>;
109
+ domains: import("drizzle-orm/pg-core").PgColumn<{
110
+ name: "domains";
111
+ tableName: "tenants";
112
+ dataType: "json";
113
+ columnType: "PgJsonb";
114
+ data: {
115
+ domain: string;
116
+ }[];
117
+ driverParam: unknown;
118
+ notNull: true;
119
+ hasDefault: true;
120
+ isPrimaryKey: false;
121
+ isAutoincrement: false;
122
+ hasRuntimeDefault: false;
123
+ enumValues: undefined;
124
+ baseColumn: never;
125
+ identity: undefined;
126
+ generated: undefined;
127
+ }, {}, {
128
+ $type: {
129
+ domain: string;
130
+ }[];
131
+ }>;
132
+ _json: import("drizzle-orm/pg-core").PgColumn<{
133
+ name: "_json";
134
+ tableName: "tenants";
135
+ dataType: "json";
136
+ columnType: "PgJsonb";
137
+ data: unknown;
138
+ driverParam: unknown;
139
+ notNull: true;
140
+ hasDefault: true;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: undefined;
145
+ baseColumn: never;
146
+ identity: undefined;
147
+ generated: undefined;
148
+ }, {}, {}>;
149
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
150
+ name: "created_at";
151
+ tableName: "tenants";
152
+ dataType: "date";
153
+ columnType: "PgTimestamp";
154
+ data: Date;
155
+ driverParam: string;
156
+ notNull: true;
157
+ hasDefault: true;
158
+ isPrimaryKey: false;
159
+ isAutoincrement: false;
160
+ hasRuntimeDefault: false;
161
+ enumValues: undefined;
162
+ baseColumn: never;
163
+ identity: undefined;
164
+ generated: undefined;
165
+ }, {}, {}>;
166
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
167
+ name: "updated_at";
168
+ tableName: "tenants";
169
+ dataType: "date";
170
+ columnType: "PgTimestamp";
171
+ data: Date;
172
+ driverParam: string;
173
+ notNull: true;
174
+ hasDefault: true;
175
+ isPrimaryKey: false;
176
+ isAutoincrement: false;
177
+ hasRuntimeDefault: false;
178
+ enumValues: undefined;
179
+ baseColumn: never;
180
+ identity: undefined;
181
+ generated: undefined;
182
+ }, {}, {}>;
183
+ };
184
+ dialect: "pg";
185
+ }>;
186
+ export type Tenant = typeof tenants.$inferSelect;
187
+ export type NewTenant = typeof tenants.$inferInsert;
188
+ //# sourceMappingURL=tenants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBASgC,MAAM;;;;;;;;;;;;;;wBAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMzD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsonb, pgTable, text, timestamp, uniqueIndex } from 'drizzle-orm/pg-core';
2
+ export const tenants = pgTable('tenants', {
3
+ id: text('id').primaryKey(),
4
+ schemaVersion: text('schema_version').notNull().default('1'),
5
+ name: text('name').notNull(),
6
+ email: text('email').notNull(),
7
+ password: text('password'),
8
+ roles: jsonb('roles').$type().default([]).notNull(),
9
+ domains: jsonb('domains').$type().default([]).notNull(),
10
+ _json: jsonb('_json').default({}).notNull(),
11
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
12
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
13
+ }, (table) => [uniqueIndex('tenants_email_idx').on(table.email)]);
14
+ //# sourceMappingURL=tenants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAC5B,SAAS,EACT;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7D,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAA6B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAClF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBjB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,YAAY,CAAA;AAC9C,MAAM,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,YAAY,CAAA;AAMjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAM7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAM7D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoDI,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;qBAA5D,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlF,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAA;AAChD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAA;AAMnD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA;AAMjE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYjC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA;AAC9E,MAAM,MAAM,wBAAwB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA"}
1
+ {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBjB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAMlD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAM9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAM9D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwDM,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;qBAA5D,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBrF,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AAMpD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAMlE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBlC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAC;AAC/E,MAAM,MAAM,wBAAwB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAC"}
@@ -12,7 +12,7 @@
12
12
  * - ticketComments: Threaded discussion per ticket
13
13
  * - ticketLabelAssignments: Junction table for ticket-label M:N
14
14
  */
15
- import { boolean, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
15
+ import { boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, } from 'drizzle-orm/pg-core';
16
16
  import { users } from './users.js';
17
17
  // =============================================================================
18
18
  // Boards
@@ -83,7 +83,9 @@ export const tickets = pgTable('tickets', {
83
83
  /** Current kanban column */
84
84
  columnId: text('column_id').references(() => boardColumns.id, { onDelete: 'set null' }),
85
85
  /** Parent ticket for subtasks/epics (self-referencing) */
86
- parentTicketId: text('parent_ticket_id'),
86
+ parentTicketId: text('parent_ticket_id').references(() => tickets.id, {
87
+ onDelete: 'cascade',
88
+ }),
87
89
  /** Human-readable ticket number, auto-incremented per board */
88
90
  ticketNumber: integer('ticket_number').notNull(),
89
91
  title: text('title').notNull(),
@@ -118,7 +120,14 @@ export const tickets = pgTable('tickets', {
118
120
  closedAt: timestamp('closed_at', { withTimezone: true }),
119
121
  createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
120
122
  updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
121
- });
123
+ }, (table) => [
124
+ index('tickets_board_id_idx').on(table.boardId),
125
+ index('tickets_column_id_idx').on(table.columnId),
126
+ index('tickets_assignee_id_idx').on(table.assigneeId),
127
+ index('tickets_parent_ticket_id_idx').on(table.parentTicketId),
128
+ index('tickets_reporter_id_idx').on(table.reporterId),
129
+ uniqueIndex('tickets_board_ticket_number_idx').on(table.boardId, table.ticketNumber),
130
+ ]);
122
131
  // =============================================================================
123
132
  // Ticket Comments
124
133
  // =============================================================================
@@ -133,7 +142,10 @@ export const ticketComments = pgTable('ticket_comments', {
133
142
  body: jsonb('body').notNull(),
134
143
  createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
135
144
  updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
136
- });
145
+ }, (table) => [
146
+ index('ticket_comments_ticket_id_idx').on(table.ticketId),
147
+ index('ticket_comments_author_id_idx').on(table.authorId),
148
+ ]);
137
149
  // =============================================================================
138
150
  // Ticket-Label Assignments (M:N junction)
139
151
  // =============================================================================
@@ -146,5 +158,5 @@ export const ticketLabelAssignments = pgTable('ticket_label_assignments', {
146
158
  .notNull()
147
159
  .references(() => ticketLabels.id, { onDelete: 'cascade' }),
148
160
  assignedAt: timestamp('assigned_at', { withTimezone: true }).notNull().defaultNow(),
149
- });
161
+ }, (table) => [uniqueIndex('ticket_label_unique_idx').on(table.ticketId, table.labelId)]);
150
162
  //# sourceMappingURL=tickets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE;IACtC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAE5D,mDAAmD;IACnD,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IAE3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAEhC,kBAAkB;IAClB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAE9E,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEzD,qEAAqE;IACrE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IAEnD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAA;AAKF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE;IACnD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEvD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAE5B,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAElD,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;IAE9B,gCAAgC;IAChC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAEpB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEzD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAA;AAKF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE;IACnD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,4CAA4C;IAC5C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IAE3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAE5B,0BAA0B;IAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAEjD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAEhC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAA;AAKF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IACxC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAE5D,yCAAyC;IACzC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEvD,4BAA4B;IAC5B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEvF,0DAA0D;IAC1D,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAExC,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;IAEhD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAE9B,kDAAkD;IAClD,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;IAEjC,+DAA+D;IAC/D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAEnD,4CAA4C;IAC5C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEtD,kDAAkD;IAClD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAE5C,oBAAoB;IACpB,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEpF,kCAAkC;IAClC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEpF,eAAe;IACf,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEtD,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAE5C,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,uBAAuB;IACvB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;SAC9B,KAAK,EAAgF;SACrF,OAAO,CAAC,EAAE,CAAC;SACX,OAAO,EAAE;IAEZ,0BAA0B;IAC1B,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IAEnD,0CAA0C;IAC1C,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAExD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAA;AAKF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACvD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;SACxB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAExD,qBAAqB;IACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEhF,2CAA2C;IAC3C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAE7B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAA;AAKF,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,EAAE;IACxE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;SACxB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAExD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAE7D,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACpF,CAAC,CAAA"}
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"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"}
@@ -248,6 +248,23 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
248
248
  identity: undefined;
249
249
  generated: undefined;
250
250
  }, {}, {}>;
251
+ emailVerificationTokenExpiresAt: import("drizzle-orm/pg-core").PgColumn<{
252
+ name: "email_verification_token_expires_at";
253
+ tableName: "users";
254
+ dataType: "date";
255
+ columnType: "PgTimestamp";
256
+ data: Date;
257
+ driverParam: string;
258
+ notNull: false;
259
+ hasDefault: false;
260
+ isPrimaryKey: false;
261
+ isAutoincrement: false;
262
+ hasRuntimeDefault: false;
263
+ enumValues: undefined;
264
+ baseColumn: never;
265
+ identity: undefined;
266
+ generated: undefined;
267
+ }, {}, {}>;
251
268
  emailVerifiedAt: import("drizzle-orm/pg-core").PgColumn<{
252
269
  name: "email_verified_at";
253
270
  tableName: "users";
@@ -316,6 +333,93 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
316
333
  identity: undefined;
317
334
  generated: undefined;
318
335
  }, {}, {}>;
336
+ mfaEnabled: import("drizzle-orm/pg-core").PgColumn<{
337
+ name: "mfa_enabled";
338
+ tableName: "users";
339
+ dataType: "boolean";
340
+ columnType: "PgBoolean";
341
+ data: boolean;
342
+ driverParam: boolean;
343
+ notNull: true;
344
+ hasDefault: true;
345
+ isPrimaryKey: false;
346
+ isAutoincrement: false;
347
+ hasRuntimeDefault: false;
348
+ enumValues: undefined;
349
+ baseColumn: never;
350
+ identity: undefined;
351
+ generated: undefined;
352
+ }, {}, {}>;
353
+ mfaSecret: import("drizzle-orm/pg-core").PgColumn<{
354
+ name: "mfa_secret";
355
+ tableName: "users";
356
+ dataType: "string";
357
+ columnType: "PgText";
358
+ data: string;
359
+ driverParam: string;
360
+ notNull: false;
361
+ hasDefault: false;
362
+ isPrimaryKey: false;
363
+ isAutoincrement: false;
364
+ hasRuntimeDefault: false;
365
+ enumValues: [string, ...string[]];
366
+ baseColumn: never;
367
+ identity: undefined;
368
+ generated: undefined;
369
+ }, {}, {}>;
370
+ mfaBackupCodes: import("drizzle-orm/pg-core").PgColumn<{
371
+ name: "mfa_backup_codes";
372
+ tableName: "users";
373
+ dataType: "json";
374
+ columnType: "PgJsonb";
375
+ data: string[];
376
+ driverParam: unknown;
377
+ notNull: false;
378
+ hasDefault: false;
379
+ isPrimaryKey: false;
380
+ isAutoincrement: false;
381
+ hasRuntimeDefault: false;
382
+ enumValues: undefined;
383
+ baseColumn: never;
384
+ identity: undefined;
385
+ generated: undefined;
386
+ }, {}, {
387
+ $type: string[];
388
+ }>;
389
+ mfaVerifiedAt: import("drizzle-orm/pg-core").PgColumn<{
390
+ name: "mfa_verified_at";
391
+ tableName: "users";
392
+ dataType: "date";
393
+ columnType: "PgTimestamp";
394
+ data: Date;
395
+ driverParam: string;
396
+ notNull: false;
397
+ hasDefault: false;
398
+ isPrimaryKey: false;
399
+ isAutoincrement: false;
400
+ hasRuntimeDefault: false;
401
+ enumValues: undefined;
402
+ baseColumn: never;
403
+ identity: undefined;
404
+ generated: undefined;
405
+ }, {}, {}>;
406
+ sshKeyFingerprint: import("drizzle-orm/pg-core").PgColumn<{
407
+ name: "ssh_key_fingerprint";
408
+ tableName: "users";
409
+ dataType: "string";
410
+ columnType: "PgText";
411
+ data: string;
412
+ driverParam: string;
413
+ notNull: false;
414
+ hasDefault: false;
415
+ isPrimaryKey: false;
416
+ isAutoincrement: false;
417
+ hasRuntimeDefault: false;
418
+ enumValues: [string, ...string[]];
419
+ baseColumn: never;
420
+ identity: undefined;
421
+ generated: undefined;
422
+ }, {}, {}>;
319
423
  preferences: import("drizzle-orm/pg-core").PgColumn<{
320
424
  name: "preferences";
321
425
  tableName: "users";
@@ -384,6 +488,40 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
384
488
  identity: undefined;
385
489
  generated: undefined;
386
490
  }, {}, {}>;
491
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
492
+ name: "deleted_at";
493
+ tableName: "users";
494
+ dataType: "date";
495
+ columnType: "PgTimestamp";
496
+ data: Date;
497
+ driverParam: string;
498
+ notNull: false;
499
+ hasDefault: false;
500
+ isPrimaryKey: false;
501
+ isAutoincrement: false;
502
+ hasRuntimeDefault: false;
503
+ enumValues: undefined;
504
+ baseColumn: never;
505
+ identity: undefined;
506
+ generated: undefined;
507
+ }, {}, {}>;
508
+ anonymizedAt: import("drizzle-orm/pg-core").PgColumn<{
509
+ name: "anonymized_at";
510
+ tableName: "users";
511
+ dataType: "date";
512
+ columnType: "PgTimestamp";
513
+ data: Date;
514
+ driverParam: string;
515
+ notNull: false;
516
+ hasDefault: false;
517
+ isPrimaryKey: false;
518
+ isAutoincrement: false;
519
+ hasRuntimeDefault: false;
520
+ enumValues: undefined;
521
+ baseColumn: never;
522
+ identity: undefined;
523
+ generated: undefined;
524
+ }, {}, {}>;
387
525
  _json: import("drizzle-orm/pg-core").PgColumn<{
388
526
  name: "_json";
389
527
  tableName: "users";
@@ -527,6 +665,25 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
527
665
  identity: undefined;
528
666
  generated: undefined;
529
667
  }, {}, {}>;
668
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
669
+ name: "metadata";
670
+ tableName: "sessions";
671
+ dataType: "json";
672
+ columnType: "PgJsonb";
673
+ data: Record<string, unknown>;
674
+ driverParam: unknown;
675
+ notNull: false;
676
+ hasDefault: false;
677
+ isPrimaryKey: false;
678
+ isAutoincrement: false;
679
+ hasRuntimeDefault: false;
680
+ enumValues: undefined;
681
+ baseColumn: never;
682
+ identity: undefined;
683
+ generated: undefined;
684
+ }, {}, {
685
+ $type: Record<string, unknown>;
686
+ }>;
530
687
  lastActivityAt: import("drizzle-orm/pg-core").PgColumn<{
531
688
  name: "last_activity_at";
532
689
  tableName: "sessions";
@@ -578,6 +735,23 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
578
735
  identity: undefined;
579
736
  generated: undefined;
580
737
  }, {}, {}>;
738
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
739
+ name: "deleted_at";
740
+ tableName: "sessions";
741
+ dataType: "date";
742
+ columnType: "PgTimestamp";
743
+ data: Date;
744
+ driverParam: string;
745
+ notNull: false;
746
+ hasDefault: false;
747
+ isPrimaryKey: false;
748
+ isAutoincrement: false;
749
+ hasRuntimeDefault: false;
750
+ enumValues: undefined;
751
+ baseColumn: never;
752
+ identity: undefined;
753
+ generated: undefined;
754
+ }, {}, {}>;
581
755
  };
582
756
  dialect: "pg";
583
757
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/schema/users.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DjB,CAAA;AAMD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCpB,CAAA;AAMD,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAC5C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/schema/users.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFjB,CAAC;AAMF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CpB,CAAC;AAMF,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * These tables store user accounts and authentication sessions.
5
5
  * The schema structure mirrors the Zod schemas in @revealui/contracts/entities.
6
6
  */
7
- import { boolean, index, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
7
+ import { sql } from 'drizzle-orm';
8
+ import { boolean, index, jsonb, pgTable, text, timestamp, uniqueIndex } from 'drizzle-orm/pg-core';
8
9
  // =============================================================================
9
10
  // Users Table
10
11
  // =============================================================================
@@ -30,26 +31,46 @@ export const users = pgTable('users', {
30
31
  agentConfig: jsonb('agent_config'),
31
32
  // Email verification (grace period — login allowed, reminders shown)
32
33
  emailVerified: boolean('email_verified').default(false).notNull(),
34
+ // SHA-256 hash of the raw verification token sent in the email link
33
35
  emailVerificationToken: text('email_verification_token'),
36
+ emailVerificationTokenExpiresAt: timestamp('email_verification_token_expires_at', {
37
+ withTimezone: true,
38
+ }),
34
39
  emailVerifiedAt: timestamp('email_verified_at', { withTimezone: true }),
35
40
  // Terms of Service acceptance (required for legal compliance)
36
41
  tosAcceptedAt: timestamp('tos_accepted_at', { withTimezone: true }),
37
42
  tosVersion: text('tos_version'), // e.g. '2026-03-01' — version accepted at signup
38
43
  // Stripe integration
39
44
  stripeCustomerId: text('stripe_customer_id'),
45
+ // MFA/2FA (TOTP-based)
46
+ mfaEnabled: boolean('mfa_enabled').default(false).notNull(),
47
+ mfaSecret: text('mfa_secret'), // Base32-encoded TOTP secret (encrypted at rest via DB-level encryption)
48
+ mfaBackupCodes: jsonb('mfa_backup_codes').$type(), // Bcrypt-hashed one-time recovery codes
49
+ mfaVerifiedAt: timestamp('mfa_verified_at', { withTimezone: true }),
50
+ // SSH terminal auth (Phase E — `ssh terminal.revealui.com`)
51
+ sshKeyFingerprint: text('ssh_key_fingerprint'),
40
52
  // User preferences (JSON blob)
41
53
  preferences: jsonb('preferences'),
42
54
  // Timestamps
43
55
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
44
56
  updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
45
57
  lastActiveAt: timestamp('last_active_at', { withTimezone: true }),
46
- // RevealUI/PayloadCMS compatibility - stores additional collection data
58
+ // Soft-delete: null = active, timestamp = when deleted
59
+ deletedAt: timestamp('deleted_at', { withTimezone: true }),
60
+ // GDPR anonymization: null = not anonymized, timestamp = when PII was wiped
61
+ anonymizedAt: timestamp('anonymized_at', { withTimezone: true }),
47
62
  _json: jsonb('_json').default('{}'),
48
63
  }, (table) => [
49
- index('users_email_idx').on(table.email),
64
+ uniqueIndex('users_email_idx').on(table.email),
50
65
  index('users_type_idx').on(table.type),
51
66
  index('users_status_idx').on(table.status),
67
+ index('users_deleted_at_idx').on(table.deletedAt),
68
+ index('users_status_deleted_at_idx').on(table.status, table.deletedAt),
69
+ index('users_active_email_idx').on(table.email).where(sql `deleted_at IS NULL`),
70
+ index('users_active_status_idx').on(table.status).where(sql `deleted_at IS NULL`),
52
71
  index('users_stripe_customer_id_idx').on(table.stripeCustomerId),
72
+ index('users_ssh_key_fingerprint_idx').on(table.sshKeyFingerprint),
73
+ index('users_email_verified_idx').on(table.emailVerified),
53
74
  ]);
54
75
  // =============================================================================
55
76
  // Sessions Table
@@ -69,14 +90,21 @@ export const sessions = pgTable('sessions', {
69
90
  userAgent: text('user_agent'),
70
91
  ipAddress: text('ip_address'),
71
92
  persistent: boolean('persistent').default(false),
93
+ // Extensible metadata (e.g., 2FA method used, passkey credential ID)
94
+ metadata: jsonb('metadata').$type(),
72
95
  // Activity tracking
73
96
  lastActivityAt: timestamp('last_activity_at', { withTimezone: true }).defaultNow().notNull(),
74
97
  // Timestamps
75
98
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
76
99
  expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
100
+ // Soft-delete: null = active, timestamp = when explicitly revoked
101
+ deletedAt: timestamp('deleted_at', { withTimezone: true }),
77
102
  }, (table) => [
78
103
  index('sessions_user_id_idx').on(table.userId),
79
104
  index('sessions_token_hash_idx').on(table.tokenHash),
80
105
  index('sessions_expires_at_idx').on(table.expiresAt),
106
+ // R5-H6: Composite index for logout-all and session cleanup queries
107
+ index('sessions_user_expires_idx').on(table.userId, table.expiresAt),
108
+ index('sessions_deleted_at_idx').on(table.deletedAt),
81
109
  ]);
82
110
  //# sourceMappingURL=users.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/schema/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/schema/users.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  /**
2
- * @revealui/db/schema/vector - Vector Database Schemas (Supabase)
2
+ * @revealui/db/schema/vector - Vector-Capable Database Schemas
3
3
  *
4
- * Vector-specific database schemas for AI/vector operations.
5
- * Currently only includes agent_memories table for semantic search.
4
+ * Schemas for AI/vector operations that require pgvector.
5
+ *
6
+ * ARCHITECTURE NOTE: Despite the "vector" naming, `agentMemories` currently
7
+ * lives in NeonDB (not Supabase) because its FK constraints reference
8
+ * NeonDB's `sites` and `users` tables. Cross-database FKs are not possible.
9
+ * The table is re-exported here for semantic grouping (it uses vector embeddings),
10
+ * but its data resides in the REST (Neon) database.
11
+ *
12
+ * RAG tables also require pgvector and follow the same pattern.
6
13
  */
7
14
  export type { AgentMemory, AgentMemory as AgentMemoryType, NewAgentMemory, NewAgentMemory as NewAgentMemoryType, } from './agents.js';
8
15
  export { agentMemories } from './agents.js';
@@ -1 +1 @@
1
- {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/schema/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,cAAc,IAAI,kBAAkB,GACrC,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/schema/vector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,IAAI,eAAe,EAC9B,cAAc,EACd,cAAc,IAAI,kBAAkB,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,cAAc,UAAU,CAAC"}