@revealui/db 0.2.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 (191) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +137 -0
  3. package/dist/audit-store.d.ts +56 -0
  4. package/dist/audit-store.d.ts.map +1 -0
  5. package/dist/audit-store.js +120 -0
  6. package/dist/audit-store.js.map +1 -0
  7. package/dist/client/index.d.ts +214 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +396 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/client/types.d.ts +109 -0
  12. package/dist/client/types.d.ts.map +1 -0
  13. package/dist/client/types.js +10 -0
  14. package/dist/client/types.js.map +1 -0
  15. package/dist/crypto.d.ts +27 -0
  16. package/dist/crypto.d.ts.map +1 -0
  17. package/dist/crypto.js +68 -0
  18. package/dist/crypto.js.map +1 -0
  19. package/dist/index.d.ts +29 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +31 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/log-transport.d.ts +20 -0
  24. package/dist/log-transport.d.ts.map +1 -0
  25. package/dist/log-transport.js +49 -0
  26. package/dist/log-transport.js.map +1 -0
  27. package/dist/pool.d.ts +36 -0
  28. package/dist/pool.d.ts.map +1 -0
  29. package/dist/pool.js +218 -0
  30. package/dist/pool.js.map +1 -0
  31. package/dist/queries/boards.d.ts +138 -0
  32. package/dist/queries/boards.d.ts.map +1 -0
  33. package/dist/queries/boards.js +87 -0
  34. package/dist/queries/boards.js.map +1 -0
  35. package/dist/queries/code-provenance.d.ts +250 -0
  36. package/dist/queries/code-provenance.d.ts.map +1 -0
  37. package/dist/queries/code-provenance.js +130 -0
  38. package/dist/queries/code-provenance.js.map +1 -0
  39. package/dist/queries/optimized-queries.d.ts +89 -0
  40. package/dist/queries/optimized-queries.d.ts.map +1 -0
  41. package/dist/queries/optimized-queries.js +371 -0
  42. package/dist/queries/optimized-queries.js.map +1 -0
  43. package/dist/queries/ticket-comments.d.ts +37 -0
  44. package/dist/queries/ticket-comments.d.ts.map +1 -0
  45. package/dist/queries/ticket-comments.js +52 -0
  46. package/dist/queries/ticket-comments.js.map +1 -0
  47. package/dist/queries/ticket-labels.d.ts +69 -0
  48. package/dist/queries/ticket-labels.d.ts.map +1 -0
  49. package/dist/queries/ticket-labels.js +51 -0
  50. package/dist/queries/ticket-labels.js.map +1 -0
  51. package/dist/queries/tickets.d.ts +301 -0
  52. package/dist/queries/tickets.d.ts.map +1 -0
  53. package/dist/queries/tickets.js +89 -0
  54. package/dist/queries/tickets.js.map +1 -0
  55. package/dist/queries/todos.d.ts +37 -0
  56. package/dist/queries/todos.d.ts.map +1 -0
  57. package/dist/queries/todos.js +37 -0
  58. package/dist/queries/todos.js.map +1 -0
  59. package/dist/schema/agents.d.ts +1413 -0
  60. package/dist/schema/agents.d.ts.map +1 -0
  61. package/dist/schema/agents.js +207 -0
  62. package/dist/schema/agents.js.map +1 -0
  63. package/dist/schema/api-keys.d.ts +298 -0
  64. package/dist/schema/api-keys.d.ts.map +1 -0
  65. package/dist/schema/api-keys.js +53 -0
  66. package/dist/schema/api-keys.js.map +1 -0
  67. package/dist/schema/app-logs.d.ts +168 -0
  68. package/dist/schema/app-logs.d.ts.map +1 -0
  69. package/dist/schema/app-logs.js +25 -0
  70. package/dist/schema/app-logs.js.map +1 -0
  71. package/dist/schema/audit-log.d.ts +174 -0
  72. package/dist/schema/audit-log.d.ts.map +1 -0
  73. package/dist/schema/audit-log.js +37 -0
  74. package/dist/schema/audit-log.js.map +1 -0
  75. package/dist/schema/cms.d.ts +1015 -0
  76. package/dist/schema/cms.d.ts.map +1 -0
  77. package/dist/schema/cms.js +137 -0
  78. package/dist/schema/cms.js.map +1 -0
  79. package/dist/schema/code-provenance.d.ts +488 -0
  80. package/dist/schema/code-provenance.d.ts.map +1 -0
  81. package/dist/schema/code-provenance.js +72 -0
  82. package/dist/schema/code-provenance.js.map +1 -0
  83. package/dist/schema/collab-edits.d.ts +165 -0
  84. package/dist/schema/collab-edits.d.ts.map +1 -0
  85. package/dist/schema/collab-edits.js +21 -0
  86. package/dist/schema/collab-edits.js.map +1 -0
  87. package/dist/schema/crdt-operations.d.ts +153 -0
  88. package/dist/schema/crdt-operations.d.ts.map +1 -0
  89. package/dist/schema/crdt-operations.js +30 -0
  90. package/dist/schema/crdt-operations.js.map +1 -0
  91. package/dist/schema/error-events.d.ts +223 -0
  92. package/dist/schema/error-events.d.ts.map +1 -0
  93. package/dist/schema/error-events.js +44 -0
  94. package/dist/schema/error-events.js.map +1 -0
  95. package/dist/schema/index.d.ts +130 -0
  96. package/dist/schema/index.d.ts.map +1 -0
  97. package/dist/schema/index.js +310 -0
  98. package/dist/schema/index.js.map +1 -0
  99. package/dist/schema/licenses.d.ts +189 -0
  100. package/dist/schema/licenses.d.ts.map +1 -0
  101. package/dist/schema/licenses.js +39 -0
  102. package/dist/schema/licenses.js.map +1 -0
  103. package/dist/schema/node-ids.d.ts +122 -0
  104. package/dist/schema/node-ids.d.ts.map +1 -0
  105. package/dist/schema/node-ids.js +25 -0
  106. package/dist/schema/node-ids.js.map +1 -0
  107. package/dist/schema/pages.d.ts +488 -0
  108. package/dist/schema/pages.d.ts.map +1 -0
  109. package/dist/schema/pages.js +70 -0
  110. package/dist/schema/pages.js.map +1 -0
  111. package/dist/schema/password-reset-tokens.d.ts +137 -0
  112. package/dist/schema/password-reset-tokens.d.ts.map +1 -0
  113. package/dist/schema/password-reset-tokens.js +26 -0
  114. package/dist/schema/password-reset-tokens.js.map +1 -0
  115. package/dist/schema/query.d.ts +11 -0
  116. package/dist/schema/query.d.ts.map +1 -0
  117. package/dist/schema/query.js +11 -0
  118. package/dist/schema/query.js.map +1 -0
  119. package/dist/schema/rate-limits.d.ts +212 -0
  120. package/dist/schema/rate-limits.d.ts.map +1 -0
  121. package/dist/schema/rate-limits.js +38 -0
  122. package/dist/schema/rate-limits.js.map +1 -0
  123. package/dist/schema/rest.d.ts +31 -0
  124. package/dist/schema/rest.d.ts.map +1 -0
  125. package/dist/schema/rest.js +37 -0
  126. package/dist/schema/rest.js.map +1 -0
  127. package/dist/schema/sites.d.ts +365 -0
  128. package/dist/schema/sites.d.ts.map +1 -0
  129. package/dist/schema/sites.js +62 -0
  130. package/dist/schema/sites.js.map +1 -0
  131. package/dist/schema/tickets.d.ts +1118 -0
  132. package/dist/schema/tickets.d.ts.map +1 -0
  133. package/dist/schema/tickets.js +150 -0
  134. package/dist/schema/tickets.js.map +1 -0
  135. package/dist/schema/todos.d.ts +98 -0
  136. package/dist/schema/todos.d.ts.map +1 -0
  137. package/dist/schema/todos.js +12 -0
  138. package/dist/schema/todos.js.map +1 -0
  139. package/dist/schema/users.d.ts +503 -0
  140. package/dist/schema/users.d.ts.map +1 -0
  141. package/dist/schema/users.js +75 -0
  142. package/dist/schema/users.js.map +1 -0
  143. package/dist/schema/vector.d.ts +9 -0
  144. package/dist/schema/vector.d.ts.map +1 -0
  145. package/dist/schema/vector.js +9 -0
  146. package/dist/schema/vector.js.map +1 -0
  147. package/dist/schema/waitlist.d.ts +151 -0
  148. package/dist/schema/waitlist.d.ts.map +1 -0
  149. package/dist/schema/waitlist.js +17 -0
  150. package/dist/schema/waitlist.js.map +1 -0
  151. package/dist/schema/yjs-documents.d.ts +116 -0
  152. package/dist/schema/yjs-documents.d.ts.map +1 -0
  153. package/dist/schema/yjs-documents.js +15 -0
  154. package/dist/schema/yjs-documents.js.map +1 -0
  155. package/dist/types/database.d.ts +740 -0
  156. package/dist/types/database.d.ts.map +1 -0
  157. package/dist/types/database.js +151 -0
  158. package/dist/types/database.js.map +1 -0
  159. package/dist/types/discover.d.ts +83 -0
  160. package/dist/types/discover.d.ts.map +1 -0
  161. package/dist/types/discover.js +271 -0
  162. package/dist/types/discover.js.map +1 -0
  163. package/dist/types/extract-relationships.d.ts +115 -0
  164. package/dist/types/extract-relationships.d.ts.map +1 -0
  165. package/dist/types/extract-relationships.js +455 -0
  166. package/dist/types/extract-relationships.js.map +1 -0
  167. package/dist/types/generate-contracts.d.ts +19 -0
  168. package/dist/types/generate-contracts.d.ts.map +1 -0
  169. package/dist/types/generate-contracts.js +128 -0
  170. package/dist/types/generate-contracts.js.map +1 -0
  171. package/dist/types/generate-zod-schemas.d.ts +20 -0
  172. package/dist/types/generate-zod-schemas.d.ts.map +1 -0
  173. package/dist/types/generate-zod-schemas.js +128 -0
  174. package/dist/types/generate-zod-schemas.js.map +1 -0
  175. package/dist/types/generate.d.ts +17 -0
  176. package/dist/types/generate.d.ts.map +1 -0
  177. package/dist/types/generate.js +298 -0
  178. package/dist/types/generate.js.map +1 -0
  179. package/dist/types/index.d.ts +19 -0
  180. package/dist/types/index.d.ts.map +1 -0
  181. package/dist/types/index.js +19 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/dist/types/introspect.d.ts +75 -0
  184. package/dist/types/introspect.d.ts.map +1 -0
  185. package/dist/types/introspect.js +187 -0
  186. package/dist/types/introspect.js.map +1 -0
  187. package/dist/types/stripe-schema.d.ts +893 -0
  188. package/dist/types/stripe-schema.d.ts.map +1 -0
  189. package/dist/types/stripe-schema.js +112 -0
  190. package/dist/types/stripe-schema.js.map +1 -0
  191. package/package.json +154 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Page tables - Derived from @revealui/contracts PageSchema
3
+ *
4
+ * These tables store page content and hierarchies.
5
+ * The schema structure mirrors the Zod schemas in @revealui/contracts/entities.
6
+ */
7
+ import { integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
+ import { sites } from './sites.js';
9
+ import { users } from './users.js';
10
+ // =============================================================================
11
+ // Pages Table
12
+ // =============================================================================
13
+ export const pages = pgTable('pages', {
14
+ // Primary identifier
15
+ id: text('id').primaryKey(),
16
+ // Schema versioning for migrations
17
+ schemaVersion: text('schema_version').notNull().default('1'),
18
+ // Relationships
19
+ siteId: text('site_id')
20
+ .notNull()
21
+ .references(() => sites.id, { onDelete: 'cascade' }),
22
+ parentId: text('parent_id'),
23
+ templateId: text('template_id'),
24
+ // Basic info
25
+ title: text('title').notNull(),
26
+ slug: text('slug').notNull(),
27
+ path: text('path').notNull(),
28
+ // Status: draft, published, archived, scheduled
29
+ status: text('status').notNull().default('draft'),
30
+ // Content blocks (JSON array of Block objects)
31
+ blocks: jsonb('blocks').$type().default([]),
32
+ // SEO metadata (JSON blob)
33
+ seo: jsonb('seo'),
34
+ // Computed metadata
35
+ blockCount: integer('block_count').default(0),
36
+ wordCount: integer('word_count').default(0),
37
+ // Lock for concurrent editing
38
+ lock: jsonb('lock'),
39
+ // Scheduling
40
+ scheduledAt: timestamp('scheduled_at', { withTimezone: true }),
41
+ // Timestamps
42
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
43
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
44
+ publishedAt: timestamp('published_at', { withTimezone: true }),
45
+ });
46
+ // =============================================================================
47
+ // Page Revisions Table (for version history)
48
+ // =============================================================================
49
+ export const pageRevisions = pgTable('page_revisions', {
50
+ // Primary identifier
51
+ id: text('id').primaryKey(),
52
+ // Relationships
53
+ pageId: text('page_id')
54
+ .notNull()
55
+ .references(() => pages.id, { onDelete: 'cascade' }),
56
+ createdBy: text('created_by').references(() => users.id, {
57
+ onDelete: 'set null',
58
+ }),
59
+ // Revision number (auto-incremented per page)
60
+ revisionNumber: integer('revision_number').notNull(),
61
+ // Snapshot of page state
62
+ title: text('title').notNull(),
63
+ blocks: jsonb('blocks').$type().default([]),
64
+ seo: jsonb('seo'),
65
+ // Why this revision was created
66
+ changeDescription: text('change_description'),
67
+ // Timestamps
68
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
69
+ });
70
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/schema/pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Password Reset Tokens table
3
+ *
4
+ * Stores temporary tokens for password reset flows.
5
+ * Tokens are single-use and expire after a configured time.
6
+ * Token values are stored as HMAC-SHA256 hashes with a per-token salt
7
+ * for protection against rainbow table attacks on DB breach.
8
+ */
9
+ export declare const passwordResetTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
10
+ name: "password_reset_tokens";
11
+ schema: undefined;
12
+ columns: {
13
+ id: import("drizzle-orm/pg-core").PgColumn<{
14
+ name: "id";
15
+ tableName: "password_reset_tokens";
16
+ dataType: "string";
17
+ columnType: "PgText";
18
+ data: string;
19
+ driverParam: string;
20
+ notNull: true;
21
+ hasDefault: false;
22
+ isPrimaryKey: true;
23
+ isAutoincrement: false;
24
+ hasRuntimeDefault: false;
25
+ enumValues: [string, ...string[]];
26
+ baseColumn: never;
27
+ identity: undefined;
28
+ generated: undefined;
29
+ }, {}, {}>;
30
+ userId: import("drizzle-orm/pg-core").PgColumn<{
31
+ name: "user_id";
32
+ tableName: "password_reset_tokens";
33
+ dataType: "string";
34
+ columnType: "PgText";
35
+ data: string;
36
+ driverParam: string;
37
+ notNull: true;
38
+ hasDefault: false;
39
+ isPrimaryKey: false;
40
+ isAutoincrement: false;
41
+ hasRuntimeDefault: false;
42
+ enumValues: [string, ...string[]];
43
+ baseColumn: never;
44
+ identity: undefined;
45
+ generated: undefined;
46
+ }, {}, {}>;
47
+ tokenHash: import("drizzle-orm/pg-core").PgColumn<{
48
+ name: "token_hash";
49
+ tableName: "password_reset_tokens";
50
+ dataType: "string";
51
+ columnType: "PgText";
52
+ data: string;
53
+ driverParam: string;
54
+ notNull: true;
55
+ hasDefault: false;
56
+ isPrimaryKey: false;
57
+ isAutoincrement: false;
58
+ hasRuntimeDefault: false;
59
+ enumValues: [string, ...string[]];
60
+ baseColumn: never;
61
+ identity: undefined;
62
+ generated: undefined;
63
+ }, {}, {}>;
64
+ tokenSalt: import("drizzle-orm/pg-core").PgColumn<{
65
+ name: "token_salt";
66
+ tableName: "password_reset_tokens";
67
+ dataType: "string";
68
+ columnType: "PgText";
69
+ data: string;
70
+ driverParam: string;
71
+ notNull: true;
72
+ hasDefault: true;
73
+ isPrimaryKey: false;
74
+ isAutoincrement: false;
75
+ hasRuntimeDefault: false;
76
+ enumValues: [string, ...string[]];
77
+ baseColumn: never;
78
+ identity: undefined;
79
+ generated: undefined;
80
+ }, {}, {}>;
81
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
82
+ name: "expires_at";
83
+ tableName: "password_reset_tokens";
84
+ dataType: "date";
85
+ columnType: "PgTimestamp";
86
+ data: Date;
87
+ driverParam: string;
88
+ notNull: true;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: undefined;
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {}>;
98
+ usedAt: import("drizzle-orm/pg-core").PgColumn<{
99
+ name: "used_at";
100
+ tableName: "password_reset_tokens";
101
+ dataType: "date";
102
+ columnType: "PgTimestamp";
103
+ data: Date;
104
+ driverParam: string;
105
+ notNull: false;
106
+ hasDefault: false;
107
+ isPrimaryKey: false;
108
+ isAutoincrement: false;
109
+ hasRuntimeDefault: false;
110
+ enumValues: undefined;
111
+ baseColumn: never;
112
+ identity: undefined;
113
+ generated: undefined;
114
+ }, {}, {}>;
115
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
116
+ name: "created_at";
117
+ tableName: "password_reset_tokens";
118
+ dataType: "date";
119
+ columnType: "PgTimestamp";
120
+ data: Date;
121
+ driverParam: string;
122
+ notNull: true;
123
+ hasDefault: true;
124
+ isPrimaryKey: false;
125
+ isAutoincrement: false;
126
+ hasRuntimeDefault: false;
127
+ enumValues: undefined;
128
+ baseColumn: never;
129
+ identity: undefined;
130
+ generated: undefined;
131
+ }, {}, {}>;
132
+ };
133
+ dialect: "pg";
134
+ }>;
135
+ export type PasswordResetToken = typeof passwordResetTokens.$inferSelect;
136
+ export type NewPasswordResetToken = typeof passwordResetTokens.$inferInsert;
137
+ //# sourceMappingURL=password-reset-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-reset-tokens.d.ts","sourceRoot":"","sources":["../../src/schema/password-reset-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc9B,CAAA;AAMF,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAA;AACxE,MAAM,MAAM,qBAAqB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Password Reset Tokens table
3
+ *
4
+ * Stores temporary tokens for password reset flows.
5
+ * Tokens are single-use and expire after a configured time.
6
+ * Token values are stored as HMAC-SHA256 hashes with a per-token salt
7
+ * for protection against rainbow table attacks on DB breach.
8
+ */
9
+ import { pgTable, text, timestamp } from 'drizzle-orm/pg-core';
10
+ import { users } from './users.js';
11
+ // =============================================================================
12
+ // Password Reset Tokens Table
13
+ // =============================================================================
14
+ export const passwordResetTokens = pgTable('password_reset_tokens', {
15
+ id: text('id').primaryKey(),
16
+ userId: text('user_id')
17
+ .notNull()
18
+ .references(() => users.id, { onDelete: 'cascade' }),
19
+ tokenHash: text('token_hash').notNull().unique(),
20
+ // Per-token random salt used in HMAC-SHA256 hashing (16 bytes hex = 32 chars)
21
+ tokenSalt: text('token_salt').notNull().default(''),
22
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
23
+ usedAt: timestamp('used_at', { withTimezone: true }),
24
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
25
+ });
26
+ //# sourceMappingURL=password-reset-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-reset-tokens.js","sourceRoot":"","sources":["../../src/schema/password-reset-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAClE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IAChD,8EAA8E;IAC9E,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEnD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACpE,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACpD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Query Builder Utilities
3
+ *
4
+ * Re-exports drizzle-orm query builder functions to ensure all packages
5
+ * use the same drizzle instance, avoiding pnpm hoisting issues.
6
+ *
7
+ * Instead of importing from 'drizzle-orm' directly, import from '@revealui/db/schema/query'
8
+ */
9
+ export type { SQL } from 'drizzle-orm';
10
+ export { and, asc, avg, count, desc, eq, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, max, min, ne, not, notInArray, or, sql, sum, } from 'drizzle-orm';
11
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,EAAE,EACF,EAAE,EACF,GAAG,EACH,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,IAAI,EACJ,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,EAAE,EACF,GAAG,EACH,UAAU,EACV,EAAE,EACF,GAAG,EACH,GAAG,GACJ,MAAM,aAAa,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Query Builder Utilities
3
+ *
4
+ * Re-exports drizzle-orm query builder functions to ensure all packages
5
+ * use the same drizzle instance, avoiding pnpm hoisting issues.
6
+ *
7
+ * Instead of importing from 'drizzle-orm' directly, import from '@revealui/db/schema/query'
8
+ */
9
+ // Re-export commonly used query builder functions
10
+ export { and, asc, avg, count, desc, eq, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, max, min, ne, not, notInArray, or, sql, sum, } from 'drizzle-orm';
11
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,kDAAkD;AAClD,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,EAAE,EACF,EAAE,EACF,GAAG,EACH,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,IAAI,EACJ,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,EAAE,EACF,GAAG,EACH,UAAU,EACV,EAAE,EACF,GAAG,EACH,GAAG,GACJ,MAAM,aAAa,CAAA"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Rate Limits and Failed Attempts Tables
3
+ *
4
+ * Tables for storing rate limiting and brute force protection data.
5
+ * Used by the storage abstraction for distributed rate limiting.
6
+ */
7
+ export declare const rateLimits: import("drizzle-orm/pg-core").PgTableWithColumns<{
8
+ name: "rate_limits";
9
+ schema: undefined;
10
+ columns: {
11
+ key: import("drizzle-orm/pg-core").PgColumn<{
12
+ name: "key";
13
+ tableName: "rate_limits";
14
+ dataType: "string";
15
+ columnType: "PgText";
16
+ data: string;
17
+ driverParam: string;
18
+ notNull: true;
19
+ hasDefault: false;
20
+ isPrimaryKey: true;
21
+ isAutoincrement: false;
22
+ hasRuntimeDefault: false;
23
+ enumValues: [string, ...string[]];
24
+ baseColumn: never;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }, {}, {}>;
28
+ value: import("drizzle-orm/pg-core").PgColumn<{
29
+ name: "value";
30
+ tableName: "rate_limits";
31
+ dataType: "string";
32
+ columnType: "PgText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {}>;
45
+ resetAt: import("drizzle-orm/pg-core").PgColumn<{
46
+ name: "reset_at";
47
+ tableName: "rate_limits";
48
+ dataType: "date";
49
+ columnType: "PgTimestamp";
50
+ data: Date;
51
+ driverParam: string;
52
+ notNull: true;
53
+ hasDefault: false;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: false;
57
+ enumValues: undefined;
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {}>;
62
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
63
+ name: "created_at";
64
+ tableName: "rate_limits";
65
+ dataType: "date";
66
+ columnType: "PgTimestamp";
67
+ data: Date;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: true;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: undefined;
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {}>;
79
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
80
+ name: "updated_at";
81
+ tableName: "rate_limits";
82
+ dataType: "date";
83
+ columnType: "PgTimestamp";
84
+ data: Date;
85
+ driverParam: string;
86
+ notNull: true;
87
+ hasDefault: true;
88
+ isPrimaryKey: false;
89
+ isAutoincrement: false;
90
+ hasRuntimeDefault: false;
91
+ enumValues: undefined;
92
+ baseColumn: never;
93
+ identity: undefined;
94
+ generated: undefined;
95
+ }, {}, {}>;
96
+ };
97
+ dialect: "pg";
98
+ }>;
99
+ export declare const failedAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
100
+ name: "failed_attempts";
101
+ schema: undefined;
102
+ columns: {
103
+ email: import("drizzle-orm/pg-core").PgColumn<{
104
+ name: "email";
105
+ tableName: "failed_attempts";
106
+ dataType: "string";
107
+ columnType: "PgText";
108
+ data: string;
109
+ driverParam: string;
110
+ notNull: true;
111
+ hasDefault: false;
112
+ isPrimaryKey: true;
113
+ isAutoincrement: false;
114
+ hasRuntimeDefault: false;
115
+ enumValues: [string, ...string[]];
116
+ baseColumn: never;
117
+ identity: undefined;
118
+ generated: undefined;
119
+ }, {}, {}>;
120
+ count: import("drizzle-orm/pg-core").PgColumn<{
121
+ name: "count";
122
+ tableName: "failed_attempts";
123
+ dataType: "number";
124
+ columnType: "PgInteger";
125
+ data: number;
126
+ driverParam: string | number;
127
+ notNull: true;
128
+ hasDefault: true;
129
+ isPrimaryKey: false;
130
+ isAutoincrement: false;
131
+ hasRuntimeDefault: false;
132
+ enumValues: undefined;
133
+ baseColumn: never;
134
+ identity: undefined;
135
+ generated: undefined;
136
+ }, {}, {}>;
137
+ lockUntil: import("drizzle-orm/pg-core").PgColumn<{
138
+ name: "lock_until";
139
+ tableName: "failed_attempts";
140
+ dataType: "date";
141
+ columnType: "PgTimestamp";
142
+ data: Date;
143
+ driverParam: string;
144
+ notNull: false;
145
+ hasDefault: false;
146
+ isPrimaryKey: false;
147
+ isAutoincrement: false;
148
+ hasRuntimeDefault: false;
149
+ enumValues: undefined;
150
+ baseColumn: never;
151
+ identity: undefined;
152
+ generated: undefined;
153
+ }, {}, {}>;
154
+ windowStart: import("drizzle-orm/pg-core").PgColumn<{
155
+ name: "window_start";
156
+ tableName: "failed_attempts";
157
+ dataType: "date";
158
+ columnType: "PgTimestamp";
159
+ data: Date;
160
+ driverParam: string;
161
+ notNull: true;
162
+ hasDefault: false;
163
+ isPrimaryKey: false;
164
+ isAutoincrement: false;
165
+ hasRuntimeDefault: false;
166
+ enumValues: undefined;
167
+ baseColumn: never;
168
+ identity: undefined;
169
+ generated: undefined;
170
+ }, {}, {}>;
171
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
172
+ name: "created_at";
173
+ tableName: "failed_attempts";
174
+ dataType: "date";
175
+ columnType: "PgTimestamp";
176
+ data: Date;
177
+ driverParam: string;
178
+ notNull: true;
179
+ hasDefault: true;
180
+ isPrimaryKey: false;
181
+ isAutoincrement: false;
182
+ hasRuntimeDefault: false;
183
+ enumValues: undefined;
184
+ baseColumn: never;
185
+ identity: undefined;
186
+ generated: undefined;
187
+ }, {}, {}>;
188
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
189
+ name: "updated_at";
190
+ tableName: "failed_attempts";
191
+ dataType: "date";
192
+ columnType: "PgTimestamp";
193
+ data: Date;
194
+ driverParam: string;
195
+ notNull: true;
196
+ hasDefault: true;
197
+ isPrimaryKey: false;
198
+ isAutoincrement: false;
199
+ hasRuntimeDefault: false;
200
+ enumValues: undefined;
201
+ baseColumn: never;
202
+ identity: undefined;
203
+ generated: undefined;
204
+ }, {}, {}>;
205
+ };
206
+ dialect: "pg";
207
+ }>;
208
+ export type RateLimit = typeof rateLimits.$inferSelect;
209
+ export type NewRateLimit = typeof rateLimits.$inferInsert;
210
+ export type FailedAttempt = typeof failedAttempts.$inferSelect;
211
+ export type NewFailedAttempt = typeof failedAttempts.$inferInsert;
212
+ //# sourceMappingURL=rate-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limits.d.ts","sourceRoot":"","sources":["../../src/schema/rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAarB,CAAA;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBzB,CAAA;AAMF,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,YAAY,CAAA;AACtD,MAAM,MAAM,YAAY,GAAG,OAAO,UAAU,CAAC,YAAY,CAAA;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Rate Limits and Failed Attempts Tables
3
+ *
4
+ * Tables for storing rate limiting and brute force protection data.
5
+ * Used by the storage abstraction for distributed rate limiting.
6
+ */
7
+ import { integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
+ // =============================================================================
9
+ // Rate Limits Table
10
+ // =============================================================================
11
+ export const rateLimits = pgTable('rate_limits', {
12
+ // Primary key (rate limit key, e.g., email or IP address)
13
+ key: text('key').primaryKey(),
14
+ // Stored value (JSON stringified rate limit entry)
15
+ value: text('value').notNull(),
16
+ // Reset timestamp (when the rate limit window resets)
17
+ resetAt: timestamp('reset_at', { withTimezone: true }).notNull(),
18
+ // Timestamps
19
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
20
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
21
+ });
22
+ // =============================================================================
23
+ // Failed Attempts Table
24
+ // =============================================================================
25
+ export const failedAttempts = pgTable('failed_attempts', {
26
+ // Primary key (email address)
27
+ email: text('email').primaryKey(),
28
+ // Failed attempt count
29
+ count: integer('count').notNull().default(0),
30
+ // Lock expiration timestamp
31
+ lockUntil: timestamp('lock_until', { withTimezone: true }),
32
+ // Window start timestamp
33
+ windowStart: timestamp('window_start', { withTimezone: true }).notNull(),
34
+ // Timestamps
35
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
36
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
37
+ });
38
+ //# sourceMappingURL=rate-limits.js.map
@@ -0,0 +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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @revealui/db/schema/rest - REST API Schemas (NeonDB)
3
+ *
4
+ * All database schemas for REST API operations, excluding vector-specific tables.
5
+ * This includes:
6
+ * - Users, sessions, authentication
7
+ * - Sites, pages, CMS content
8
+ * - Media, posts, metadata
9
+ * - Agent contexts, conversations, actions (but NOT agent_memories)
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';
12
+ export * from './api-keys.js';
13
+ export * from './app-logs.js';
14
+ export * from './audit-log.js';
15
+ export * from './cms.js';
16
+ export * from './code-provenance.js';
17
+ export * from './collab-edits.js';
18
+ export * from './crdt-operations.js';
19
+ export * from './error-events.js';
20
+ export * from './licenses.js';
21
+ export * from './node-ids.js';
22
+ export * from './pages.js';
23
+ export * from './password-reset-tokens.js';
24
+ export * from './query.js';
25
+ export * from './rate-limits.js';
26
+ export * from './sites.js';
27
+ export * from './tickets.js';
28
+ export * from './users.js';
29
+ export * from './waitlist.js';
30
+ export * from './yjs-documents.js';
31
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @revealui/db/schema/rest - REST API Schemas (NeonDB)
3
+ *
4
+ * All database schemas for REST API operations, excluding vector-specific tables.
5
+ * This includes:
6
+ * - Users, sessions, authentication
7
+ * - Sites, pages, CMS content
8
+ * - Media, posts, metadata
9
+ * - Agent contexts, conversations, actions (but NOT agent_memories)
10
+ */
11
+ // Export agent schemas except agentMemories
12
+ // Note: AgentMemory types are exported from './vector.js' instead
13
+ export { agentActions, agentContexts, conversations, messages, registeredAgents, syncMetadata, userDevices, } from './agents.js';
14
+ export * from './api-keys.js';
15
+ export * from './app-logs.js';
16
+ export * from './audit-log.js';
17
+ // Export all REST schemas
18
+ export * from './cms.js';
19
+ export * from './code-provenance.js';
20
+ export * from './collab-edits.js';
21
+ export * from './crdt-operations.js';
22
+ export * from './error-events.js';
23
+ export * from './licenses.js';
24
+ export * from './node-ids.js';
25
+ export * from './pages.js';
26
+ export * from './password-reset-tokens.js';
27
+ export * from './query.js';
28
+ export * from './rate-limits.js';
29
+ export * from './sites.js';
30
+ export * from './tickets.js';
31
+ export * from './users.js';
32
+ export * from './waitlist.js';
33
+ export * from './yjs-documents.js';
34
+ // Note: Relations are defined in index.ts to avoid circular dependencies
35
+ // They reference agentMemories which is in vector.ts, so we don't export them here
36
+ // Relations can still be used via the main index.ts export
37
+ //# sourceMappingURL=rest.js.map
@@ -0,0 +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"}