@revealui/db 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +0 -4
  2. package/dist/audit-store.d.ts.map +1 -1
  3. package/dist/audit-store.js +1 -1
  4. package/dist/audit-store.js.map +1 -1
  5. package/dist/cleanup/cross-db-cleanup.d.ts +63 -0
  6. package/dist/cleanup/cross-db-cleanup.d.ts.map +1 -0
  7. package/dist/cleanup/cross-db-cleanup.js +150 -0
  8. package/dist/cleanup/cross-db-cleanup.js.map +1 -0
  9. package/dist/cleanup/index.d.ts +10 -0
  10. package/dist/cleanup/index.d.ts.map +1 -0
  11. package/dist/cleanup/index.js +10 -0
  12. package/dist/cleanup/index.js.map +1 -0
  13. package/dist/cleanup/stale-tokens.d.ts +37 -0
  14. package/dist/cleanup/stale-tokens.d.ts.map +1 -0
  15. package/dist/cleanup/stale-tokens.js +113 -0
  16. package/dist/cleanup/stale-tokens.js.map +1 -0
  17. package/dist/client/index.d.ts +13 -0
  18. package/dist/client/index.d.ts.map +1 -1
  19. package/dist/client/index.js +46 -7
  20. package/dist/client/index.js.map +1 -1
  21. package/dist/client/types.d.ts.map +1 -1
  22. package/dist/crypto.d.ts.map +1 -1
  23. package/dist/crypto.js +6 -0
  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 +1 -4
  33. package/dist/pool.d.ts.map +1 -1
  34. package/dist/pool.js +29 -13
  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 +2 -0
  41. package/dist/queries/code-provenance.d.ts.map +1 -1
  42. package/dist/queries/code-provenance.js +8 -2
  43. package/dist/queries/code-provenance.js.map +1 -1
  44. package/dist/queries/media.d.ts +84 -0
  45. package/dist/queries/media.d.ts.map +1 -0
  46. package/dist/queries/media.js +47 -0
  47. package/dist/queries/media.js.map +1 -0
  48. package/dist/queries/optimized-queries.js +1 -1
  49. package/dist/queries/optimized-queries.js.map +1 -1
  50. package/dist/queries/pages.d.ts +119 -0
  51. package/dist/queries/pages.d.ts.map +1 -0
  52. package/dist/queries/pages.js +61 -0
  53. package/dist/queries/pages.js.map +1 -0
  54. package/dist/queries/posts.d.ts +107 -0
  55. package/dist/queries/posts.d.ts.map +1 -0
  56. package/dist/queries/posts.js +55 -0
  57. package/dist/queries/posts.js.map +1 -0
  58. package/dist/queries/sites.d.ts +127 -0
  59. package/dist/queries/sites.d.ts.map +1 -0
  60. package/dist/queries/sites.js +83 -0
  61. package/dist/queries/sites.js.map +1 -0
  62. package/dist/queries/ticket-comments.d.ts +9 -1
  63. package/dist/queries/ticket-comments.d.ts.map +1 -1
  64. package/dist/queries/ticket-comments.js +4 -0
  65. package/dist/queries/ticket-comments.js.map +1 -1
  66. package/dist/queries/ticket-labels.d.ts +10 -0
  67. package/dist/queries/ticket-labels.d.ts.map +1 -1
  68. package/dist/queries/ticket-labels.js +4 -0
  69. package/dist/queries/ticket-labels.js.map +1 -1
  70. package/dist/queries/tickets.d.ts +1 -1
  71. package/dist/queries/tickets.d.ts.map +1 -1
  72. package/dist/queries/tickets.js +4 -7
  73. package/dist/queries/tickets.js.map +1 -1
  74. package/dist/queries/users.d.ts +109 -0
  75. package/dist/queries/users.d.ts.map +1 -0
  76. package/dist/queries/users.js +44 -0
  77. package/dist/queries/users.js.map +1 -0
  78. package/dist/schema/accounts.d.ts +962 -0
  79. package/dist/schema/accounts.d.ts.map +1 -0
  80. package/dist/schema/accounts.js +115 -0
  81. package/dist/schema/accounts.js.map +1 -0
  82. package/dist/schema/agents.d.ts +167 -3
  83. package/dist/schema/agents.d.ts.map +1 -1
  84. package/dist/schema/agents.js +58 -7
  85. package/dist/schema/agents.js.map +1 -1
  86. package/dist/schema/api-keys.d.ts +17 -0
  87. package/dist/schema/api-keys.d.ts.map +1 -1
  88. package/dist/schema/api-keys.js +3 -0
  89. package/dist/schema/api-keys.js.map +1 -1
  90. package/dist/schema/app-logs.d.ts.map +1 -1
  91. package/dist/schema/app-logs.js.map +1 -1
  92. package/dist/schema/audit-log.d.ts.map +1 -1
  93. package/dist/schema/audit-log.js.map +1 -1
  94. package/dist/schema/cms.d.ts +68 -0
  95. package/dist/schema/cms.d.ts.map +1 -1
  96. package/dist/schema/cms.js +18 -4
  97. package/dist/schema/cms.js.map +1 -1
  98. package/dist/schema/code-provenance.d.ts.map +1 -1
  99. package/dist/schema/code-provenance.js.map +1 -1
  100. package/dist/schema/collab-edits.d.ts.map +1 -1
  101. package/dist/schema/collab-edits.js +2 -2
  102. package/dist/schema/collab-edits.js.map +1 -1
  103. package/dist/schema/coordination.d.ts +967 -0
  104. package/dist/schema/coordination.d.ts.map +1 -0
  105. package/dist/schema/coordination.js +109 -0
  106. package/dist/schema/coordination.js.map +1 -0
  107. package/dist/schema/crdt-operations.d.ts.map +1 -1
  108. package/dist/schema/crdt-operations.js.map +1 -1
  109. package/dist/schema/error-events.d.ts.map +1 -1
  110. package/dist/schema/error-events.js.map +1 -1
  111. package/dist/schema/gdpr.d.ts +529 -0
  112. package/dist/schema/gdpr.d.ts.map +1 -0
  113. package/dist/schema/gdpr.js +93 -0
  114. package/dist/schema/gdpr.js.map +1 -0
  115. package/dist/schema/index.d.ts +41 -1
  116. package/dist/schema/index.d.ts.map +1 -1
  117. package/dist/schema/index.js +82 -0
  118. package/dist/schema/index.js.map +1 -1
  119. package/dist/schema/jobs.d.ts +242 -0
  120. package/dist/schema/jobs.d.ts.map +1 -0
  121. package/dist/schema/jobs.js +48 -0
  122. package/dist/schema/jobs.js.map +1 -0
  123. package/dist/schema/licenses.d.ts +51 -0
  124. package/dist/schema/licenses.d.ts.map +1 -1
  125. package/dist/schema/licenses.js +12 -3
  126. package/dist/schema/licenses.js.map +1 -1
  127. package/dist/schema/magic-links.d.ts +136 -0
  128. package/dist/schema/magic-links.d.ts.map +1 -0
  129. package/dist/schema/magic-links.js +32 -0
  130. package/dist/schema/magic-links.js.map +1 -0
  131. package/dist/schema/marketplace.d.ts +496 -0
  132. package/dist/schema/marketplace.d.ts.map +1 -0
  133. package/dist/schema/marketplace.js +110 -0
  134. package/dist/schema/marketplace.js.map +1 -0
  135. package/dist/schema/node-ids.d.ts.map +1 -1
  136. package/dist/schema/node-ids.js.map +1 -1
  137. package/dist/schema/oauth-accounts.d.ts +205 -0
  138. package/dist/schema/oauth-accounts.d.ts.map +1 -0
  139. package/dist/schema/oauth-accounts.js +35 -0
  140. package/dist/schema/oauth-accounts.js.map +1 -0
  141. package/dist/schema/pages.d.ts +34 -0
  142. package/dist/schema/pages.d.ts.map +1 -1
  143. package/dist/schema/pages.js +14 -4
  144. package/dist/schema/pages.js.map +1 -1
  145. package/dist/schema/passkeys.d.ts +208 -0
  146. package/dist/schema/passkeys.d.ts.map +1 -0
  147. package/dist/schema/passkeys.js +47 -0
  148. package/dist/schema/passkeys.js.map +1 -0
  149. package/dist/schema/password-reset-tokens.d.ts.map +1 -1
  150. package/dist/schema/password-reset-tokens.js +5 -2
  151. package/dist/schema/password-reset-tokens.js.map +1 -1
  152. package/dist/schema/rag.d.ts +566 -0
  153. package/dist/schema/rag.d.ts.map +1 -0
  154. package/dist/schema/rag.js +85 -0
  155. package/dist/schema/rag.js.map +1 -0
  156. package/dist/schema/rate-limits.d.ts.map +1 -1
  157. package/dist/schema/rate-limits.js +5 -2
  158. package/dist/schema/rate-limits.js.map +1 -1
  159. package/dist/schema/rest.d.ts +11 -2
  160. package/dist/schema/rest.d.ts.map +1 -1
  161. package/dist/schema/rest.js +11 -2
  162. package/dist/schema/rest.js.map +1 -1
  163. package/dist/schema/sites.d.ts +34 -0
  164. package/dist/schema/sites.d.ts.map +1 -1
  165. package/dist/schema/sites.js +15 -3
  166. package/dist/schema/sites.js.map +1 -1
  167. package/dist/schema/tenants.d.ts +188 -0
  168. package/dist/schema/tenants.d.ts.map +1 -0
  169. package/dist/schema/tenants.js +15 -0
  170. package/dist/schema/tenants.js.map +1 -0
  171. package/dist/schema/tickets.d.ts.map +1 -1
  172. package/dist/schema/tickets.js +17 -5
  173. package/dist/schema/tickets.js.map +1 -1
  174. package/dist/schema/users.d.ts +259 -0
  175. package/dist/schema/users.d.ts.map +1 -1
  176. package/dist/schema/users.js +39 -3
  177. package/dist/schema/users.js.map +1 -1
  178. package/dist/schema/vector.d.ts +1 -0
  179. package/dist/schema/vector.d.ts.map +1 -1
  180. package/dist/schema/vector.js +2 -0
  181. package/dist/schema/vector.js.map +1 -1
  182. package/dist/schema/waitlist.d.ts.map +1 -1
  183. package/dist/schema/waitlist.js.map +1 -1
  184. package/dist/schema/webhook-events.d.ts +68 -0
  185. package/dist/schema/webhook-events.d.ts.map +1 -0
  186. package/dist/schema/webhook-events.js +17 -0
  187. package/dist/schema/webhook-events.js.map +1 -0
  188. package/dist/schema/yjs-documents.d.ts.map +1 -1
  189. package/dist/schema/yjs-documents.js.map +1 -1
  190. package/dist/scripts/cleanup-expired.d.ts +12 -0
  191. package/dist/scripts/cleanup-expired.d.ts.map +1 -0
  192. package/dist/scripts/cleanup-expired.js +50 -0
  193. package/dist/scripts/cleanup-expired.js.map +1 -0
  194. package/dist/security-audit-storage.d.ts +54 -0
  195. package/dist/security-audit-storage.d.ts.map +1 -0
  196. package/dist/security-audit-storage.js +100 -0
  197. package/dist/security-audit-storage.js.map +1 -0
  198. package/dist/types/database.d.ts +381 -2
  199. package/dist/types/database.d.ts.map +1 -1
  200. package/dist/types/database.js +78 -1
  201. package/dist/types/database.js.map +1 -1
  202. package/dist/types/discover.d.ts +2 -2
  203. package/dist/types/discover.d.ts.map +1 -1
  204. package/dist/types/discover.js +16 -16
  205. package/dist/types/discover.js.map +1 -1
  206. package/dist/types/extract-relationships.d.ts.map +1 -1
  207. package/dist/types/extract-relationships.js.map +1 -1
  208. package/dist/types/generate-contracts.js.map +1 -1
  209. package/dist/types/generate-zod-schemas.js.map +1 -1
  210. package/dist/types/generate.js.map +1 -1
  211. package/dist/types/index.d.ts.map +1 -1
  212. package/dist/types/introspect.d.ts.map +1 -1
  213. package/dist/types/introspect.js +0 -1
  214. package/dist/types/introspect.js.map +1 -1
  215. package/dist/types/stripe-schema.d.ts.map +1 -1
  216. package/dist/types/stripe-schema.js +7 -2
  217. package/dist/types/stripe-schema.js.map +1 -1
  218. package/dist/utils/soft-delete.d.ts +45 -0
  219. package/dist/utils/soft-delete.d.ts.map +1 -0
  220. package/dist/utils/soft-delete.js +45 -0
  221. package/dist/utils/soft-delete.js.map +1 -0
  222. package/dist/validation/cross-db.d.ts +60 -0
  223. package/dist/validation/cross-db.d.ts.map +1 -0
  224. package/dist/validation/cross-db.js +146 -0
  225. package/dist/validation/cross-db.js.map +1 -0
  226. package/package.json +45 -6
@@ -4,7 +4,7 @@
4
4
  * Tables for storing rate limiting and brute force protection data.
5
5
  * Used by the storage abstraction for distributed rate limiting.
6
6
  */
7
- import { integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
7
+ import { index, integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
8
  // =============================================================================
9
9
  // Rate Limits Table
10
10
  // =============================================================================
@@ -18,7 +18,10 @@ export const rateLimits = pgTable('rate_limits', {
18
18
  // Timestamps
19
19
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
20
20
  updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
21
- });
21
+ }, (table) => [
22
+ // R5-H6: Index for cleanup queries that scan by expiry
23
+ index('rate_limits_reset_at_idx').on(table.resetAt),
24
+ ]);
22
25
  // =============================================================================
23
26
  // Failed Attempts Table
24
27
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limits.js","sourceRoot":"","sources":["../../src/schema/rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEvE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE;IAC/C,0DAA0D;IAC1D,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;IAE7B,mDAAmD;IACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAE9B,sDAAsD;IACtD,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEhE,aAAa;IACb,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,CAAC,CAAA;AAEF,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACvD,8BAA8B;IAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;IAEjC,uBAAuB;IACvB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,4BAA4B;IAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE1D,yBAAyB;IACzB,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAExE,aAAa;IACb,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,CAAC,CAAA"}
1
+ {"version":3,"file":"rate-limits.js","sourceRoot":"","sources":["../../src/schema/rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/E,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAC/B,aAAa,EACb;IACE,0DAA0D;IAC1D,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;IAE7B,mDAAmD;IACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAE9B,sDAAsD;IACtD,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEhE,aAAa;IACb,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;IACT,uDAAuD;IACvD,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;CACpD,CACF,CAAC;AAEF,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACvD,8BAA8B;IAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;IAEjC,uBAAuB;IACvB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,4BAA4B;IAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE1D,yBAAyB;IACzB,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAExE,aAAa;IACb,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,CAAC,CAAC"}
@@ -8,24 +8,33 @@
8
8
  * - Media, posts, metadata
9
9
  * - Agent contexts, conversations, actions (but NOT agent_memories)
10
10
  */
11
- export { type AgentAction, type AgentContext, agentActions, agentContexts, type Conversation, conversations, messages, type NewAgentAction, type NewAgentContext, type NewConversation, type NewRegisteredAgent, type RegisteredAgent, registeredAgents, syncMetadata, userDevices, } from './agents.js';
11
+ export * from './accounts.js';
12
+ export { type AgentAction, type AgentContext, type AgentTaskUsage, type AiMemorySession, agentActions, agentContexts, agentTaskUsage, aiMemorySessions, type Conversation, conversations, messages, type NewAgentAction, type NewAgentContext, type NewAgentTaskUsage, type NewAiMemorySession, type NewConversation, type NewRegisteredAgent, type RegisteredAgent, registeredAgents, syncMetadata, userDevices, } from './agents.js';
12
13
  export * from './api-keys.js';
13
14
  export * from './app-logs.js';
14
15
  export * from './audit-log.js';
15
16
  export * from './cms.js';
16
17
  export * from './code-provenance.js';
17
18
  export * from './collab-edits.js';
19
+ export * from './coordination.js';
18
20
  export * from './crdt-operations.js';
19
21
  export * from './error-events.js';
22
+ export * from './gdpr.js';
23
+ export * from './jobs.js';
20
24
  export * from './licenses.js';
25
+ export * from './magic-links.js';
26
+ export * from './marketplace.js';
21
27
  export * from './node-ids.js';
28
+ export * from './oauth-accounts.js';
22
29
  export * from './pages.js';
30
+ export * from './passkeys.js';
23
31
  export * from './password-reset-tokens.js';
24
- export * from './query.js';
25
32
  export * from './rate-limits.js';
26
33
  export * from './sites.js';
34
+ export * from './tenants.js';
27
35
  export * from './tickets.js';
28
36
  export * from './users.js';
29
37
  export * from './waitlist.js';
38
+ export * from './webhook-events.js';
30
39
  export * from './yjs-documents.js';
31
40
  //# sourceMappingURL=rest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAE9B,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,YAAY,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -10,7 +10,8 @@
10
10
  */
11
11
  // Export agent schemas except agentMemories
12
12
  // Note: AgentMemory types are exported from './vector.js' instead
13
- export { agentActions, agentContexts, conversations, messages, registeredAgents, syncMetadata, userDevices, } from './agents.js';
13
+ export * from './accounts.js';
14
+ export { agentActions, agentContexts, agentTaskUsage, aiMemorySessions, conversations, messages, registeredAgents, syncMetadata, userDevices, } from './agents.js';
14
15
  export * from './api-keys.js';
15
16
  export * from './app-logs.js';
16
17
  export * from './audit-log.js';
@@ -18,18 +19,26 @@ export * from './audit-log.js';
18
19
  export * from './cms.js';
19
20
  export * from './code-provenance.js';
20
21
  export * from './collab-edits.js';
22
+ export * from './coordination.js';
21
23
  export * from './crdt-operations.js';
22
24
  export * from './error-events.js';
25
+ export * from './gdpr.js';
26
+ export * from './jobs.js';
23
27
  export * from './licenses.js';
28
+ export * from './magic-links.js';
29
+ export * from './marketplace.js';
24
30
  export * from './node-ids.js';
31
+ export * from './oauth-accounts.js';
25
32
  export * from './pages.js';
33
+ export * from './passkeys.js';
26
34
  export * from './password-reset-tokens.js';
27
- export * from './query.js';
28
35
  export * from './rate-limits.js';
29
36
  export * from './sites.js';
37
+ export * from './tenants.js';
30
38
  export * from './tickets.js';
31
39
  export * from './users.js';
32
40
  export * from './waitlist.js';
41
+ export * from './webhook-events.js';
33
42
  export * from './yjs-documents.js';
34
43
  // Note: Relations are defined in index.ts to avoid circular dependencies
35
44
  // They reference agentMemories which is in vector.ts, so we don't export them here
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,kEAAkE;AAClE,OAAO,EAGL,YAAY,EACZ,aAAa,EAEb,aAAa,EACb,QAAQ,EAMR,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,0BAA0B;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAElC,yEAAyE;AACzE,mFAAmF;AACnF,2DAA2D"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,kEAAkE;AAClE,cAAc,eAAe,CAAC;AAC9B,OAAO,EAKL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAEhB,aAAa,EACb,QAAQ,EAQR,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,yEAAyE;AACzE,mFAAmF;AACnF,2DAA2D"}
@@ -42,6 +42,23 @@ export declare const sites: import("drizzle-orm/pg-core").PgTableWithColumns<{
42
42
  identity: undefined;
43
43
  generated: undefined;
44
44
  }, {}, {}>;
45
+ version: import("drizzle-orm/pg-core").PgColumn<{
46
+ name: "version";
47
+ tableName: "sites";
48
+ dataType: "number";
49
+ columnType: "PgInteger";
50
+ data: number;
51
+ driverParam: string | number;
52
+ notNull: true;
53
+ hasDefault: true;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: false;
57
+ enumValues: undefined;
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {}>;
45
62
  ownerId: import("drizzle-orm/pg-core").PgColumn<{
46
63
  name: "owner_id";
47
64
  tableName: "sites";
@@ -246,6 +263,23 @@ export declare const sites: import("drizzle-orm/pg-core").PgTableWithColumns<{
246
263
  identity: undefined;
247
264
  generated: undefined;
248
265
  }, {}, {}>;
266
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
267
+ name: "deleted_at";
268
+ tableName: "sites";
269
+ dataType: "date";
270
+ columnType: "PgTimestamp";
271
+ data: Date;
272
+ driverParam: string;
273
+ notNull: false;
274
+ hasDefault: false;
275
+ isPrimaryKey: false;
276
+ isAutoincrement: false;
277
+ hasRuntimeDefault: false;
278
+ enumValues: undefined;
279
+ baseColumn: never;
280
+ identity: undefined;
281
+ generated: undefined;
282
+ }, {}, {}>;
249
283
  };
250
284
  dialect: "pg";
251
285
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoChB,CAAA;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB5B,CAAA;AAMF,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAC5C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAC/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACpE,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDjB,CAAC;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB5B,CAAC;AAMH,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * These tables store site configurations and collaborator relationships.
5
5
  * The schema structure mirrors the Zod schemas in @revealui/contracts/entities.
6
6
  */
7
- import { integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
7
+ import { sql } from 'drizzle-orm';
8
+ import { index, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
9
  import { users } from './users.js';
9
10
  // =============================================================================
10
11
  // Sites Table
@@ -14,13 +15,15 @@ export const sites = pgTable('sites', {
14
15
  id: text('id').primaryKey(),
15
16
  // Schema versioning for migrations
16
17
  schemaVersion: text('schema_version').notNull().default('1'),
18
+ // Optimistic locking — incremented on each update, checked to detect concurrent edits
19
+ version: integer('version').notNull().default(1),
17
20
  // Ownership
18
21
  ownerId: text('owner_id')
19
22
  .notNull()
20
23
  .references(() => users.id, { onDelete: 'cascade' }),
21
24
  // Basic info
22
25
  name: text('name').notNull(),
23
- slug: text('slug').notNull(),
26
+ slug: text('slug').notNull().unique(),
24
27
  description: text('description'),
25
28
  // Status: draft, published, archived
26
29
  status: text('status').notNull().default('draft'),
@@ -36,7 +39,16 @@ export const sites = pgTable('sites', {
36
39
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
37
40
  updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
38
41
  publishedAt: timestamp('published_at', { withTimezone: true }),
39
- });
42
+ // Soft-delete: null = active, timestamp = when deleted
43
+ deletedAt: timestamp('deleted_at', { withTimezone: true }),
44
+ }, (table) => [
45
+ index('sites_deleted_at_idx').on(table.deletedAt),
46
+ index('sites_status_deleted_at_idx').on(table.status, table.deletedAt),
47
+ index('sites_active_slug_idx').on(table.slug).where(sql `deleted_at IS NULL`),
48
+ index('sites_active_owner_id_idx').on(table.ownerId).where(sql `deleted_at IS NULL`),
49
+ index('sites_active_status_idx').on(table.status).where(sql `deleted_at IS NULL`),
50
+ index('sites_owner_id_idx').on(table.ownerId),
51
+ ]);
40
52
  // =============================================================================
41
53
  // Site Collaborators Table (Many-to-Many: Sites <-> Users)
42
54
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC"}
@@ -0,0 +1,15 @@
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
+ // biome-ignore lint/style/useNamingConvention: RevealUI document metadata field
11
+ _json: jsonb('_json').default({}).notNull(),
12
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
13
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
14
+ }, (table) => [uniqueIndex('tenants_email_idx').on(table.email)]);
15
+ //# 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,gFAAgF;IAChF,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":"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"}
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,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,CAAC;AAKH,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,CAAC;AAKH,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,CAAC;AAKH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,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;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,CAAC,UAAU,CAAC,GAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;QACjF,QAAQ,EAAE,SAAS;KACpB,CAAC;IAEF,+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,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAC/C,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;IACjD,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACrD,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9D,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACrD,WAAW,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;CACrF,CACF,CAAC;AAKF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CACnC,iBAAiB,EACjB;IACE,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,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;IACzD,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;CAC1D,CACF,CAAC;AAKF,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAC3C,0BAA0B,EAC1B;IACE,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,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CACtF,CAAC"}