@revealui/db 0.3.4 → 0.3.6

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 (136) hide show
  1. package/dist/client/index.d.ts +10 -0
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +13 -0
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/crypto.d.ts +1 -1
  6. package/dist/crypto.js +1 -1
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/queries/boards.d.ts +16 -12
  12. package/dist/queries/boards.d.ts.map +1 -1
  13. package/dist/queries/boards.js +4 -0
  14. package/dist/queries/boards.js.map +1 -1
  15. package/dist/queries/code-provenance.d.ts +13 -13
  16. package/dist/queries/code-provenance.d.ts.map +1 -1
  17. package/dist/queries/code-provenance.js.map +1 -1
  18. package/dist/queries/conversations.d.ts.map +1 -1
  19. package/dist/queries/conversations.js +3 -0
  20. package/dist/queries/conversations.js.map +1 -1
  21. package/dist/queries/media.d.ts +6 -6
  22. package/dist/queries/media.d.ts.map +1 -1
  23. package/dist/queries/media.js.map +1 -1
  24. package/dist/queries/oauth-accounts.d.ts +9 -0
  25. package/dist/queries/oauth-accounts.d.ts.map +1 -0
  26. package/dist/queries/oauth-accounts.js +15 -0
  27. package/dist/queries/oauth-accounts.js.map +1 -0
  28. package/dist/queries/orders.d.ts +5 -5
  29. package/dist/queries/orders.d.ts.map +1 -1
  30. package/dist/queries/orders.js.map +1 -1
  31. package/dist/queries/pages.d.ts +7 -7
  32. package/dist/queries/pages.d.ts.map +1 -1
  33. package/dist/queries/pages.js.map +1 -1
  34. package/dist/queries/passkeys.d.ts +21 -0
  35. package/dist/queries/passkeys.d.ts.map +1 -0
  36. package/dist/queries/passkeys.js +19 -0
  37. package/dist/queries/passkeys.js.map +1 -0
  38. package/dist/queries/posts.d.ts +8 -8
  39. package/dist/queries/posts.d.ts.map +1 -1
  40. package/dist/queries/posts.js.map +1 -1
  41. package/dist/queries/products.d.ts +7 -7
  42. package/dist/queries/products.d.ts.map +1 -1
  43. package/dist/queries/products.js.map +1 -1
  44. package/dist/queries/sessions.d.ts +30 -0
  45. package/dist/queries/sessions.d.ts.map +1 -0
  46. package/dist/queries/sessions.js +37 -0
  47. package/dist/queries/sessions.js.map +1 -0
  48. package/dist/queries/sites.d.ts +11 -11
  49. package/dist/queries/sites.d.ts.map +1 -1
  50. package/dist/queries/sites.js.map +1 -1
  51. package/dist/queries/ticket-comments.d.ts +8 -8
  52. package/dist/queries/ticket-comments.d.ts.map +1 -1
  53. package/dist/queries/ticket-comments.js +7 -0
  54. package/dist/queries/ticket-comments.js.map +1 -1
  55. package/dist/queries/ticket-labels.d.ts +9 -9
  56. package/dist/queries/ticket-labels.d.ts.map +1 -1
  57. package/dist/queries/ticket-labels.js.map +1 -1
  58. package/dist/queries/tickets.d.ts +12 -12
  59. package/dist/queries/tickets.d.ts.map +1 -1
  60. package/dist/queries/tickets.js.map +1 -1
  61. package/dist/queries/user-api-keys.d.ts +28 -0
  62. package/dist/queries/user-api-keys.d.ts.map +1 -0
  63. package/dist/queries/user-api-keys.js +49 -0
  64. package/dist/queries/user-api-keys.js.map +1 -0
  65. package/dist/queries/users.d.ts +52 -10
  66. package/dist/queries/users.d.ts.map +1 -1
  67. package/dist/queries/users.js +20 -1
  68. package/dist/queries/users.js.map +1 -1
  69. package/dist/saga/crdt-resolver.d.ts +75 -0
  70. package/dist/saga/crdt-resolver.d.ts.map +1 -0
  71. package/dist/saga/crdt-resolver.js +168 -0
  72. package/dist/saga/crdt-resolver.js.map +1 -0
  73. package/dist/saga/idempotent-operation.d.ts +52 -0
  74. package/dist/saga/idempotent-operation.d.ts.map +1 -0
  75. package/dist/saga/idempotent-operation.js +78 -0
  76. package/dist/saga/idempotent-operation.js.map +1 -0
  77. package/dist/saga/index.d.ts +29 -0
  78. package/dist/saga/index.d.ts.map +1 -0
  79. package/dist/saga/index.js +30 -0
  80. package/dist/saga/index.js.map +1 -0
  81. package/dist/saga/neon-saga.d.ts +50 -0
  82. package/dist/saga/neon-saga.d.ts.map +1 -0
  83. package/dist/saga/neon-saga.js +234 -0
  84. package/dist/saga/neon-saga.js.map +1 -0
  85. package/dist/saga/recovery.d.ts +50 -0
  86. package/dist/saga/recovery.d.ts.map +1 -0
  87. package/dist/saga/recovery.js +92 -0
  88. package/dist/saga/recovery.js.map +1 -0
  89. package/dist/saga/resilient-step.d.ts +38 -0
  90. package/dist/saga/resilient-step.d.ts.map +1 -0
  91. package/dist/saga/resilient-step.js +75 -0
  92. package/dist/saga/resilient-step.js.map +1 -0
  93. package/dist/saga/types.d.ts +94 -0
  94. package/dist/saga/types.d.ts.map +1 -0
  95. package/dist/saga/types.js +9 -0
  96. package/dist/saga/types.js.map +1 -0
  97. package/dist/schema/accounts.d.ts.map +1 -1
  98. package/dist/schema/accounts.js +9 -1
  99. package/dist/schema/accounts.js.map +1 -1
  100. package/dist/schema/agents.d.ts.map +1 -1
  101. package/dist/schema/agents.js +22 -8
  102. package/dist/schema/agents.js.map +1 -1
  103. package/dist/schema/api-keys.d.ts +1 -1
  104. package/dist/schema/api-keys.js +2 -2
  105. package/dist/schema/api-keys.js.map +1 -1
  106. package/dist/schema/audit-log.d.ts +17 -0
  107. package/dist/schema/audit-log.d.ts.map +1 -1
  108. package/dist/schema/audit-log.js +2 -0
  109. package/dist/schema/audit-log.js.map +1 -1
  110. package/dist/schema/coordination.d.ts.map +1 -1
  111. package/dist/schema/coordination.js +5 -2
  112. package/dist/schema/coordination.js.map +1 -1
  113. package/dist/schema/idempotency.d.ts +104 -0
  114. package/dist/schema/idempotency.d.ts.map +1 -0
  115. package/dist/schema/idempotency.js +24 -0
  116. package/dist/schema/idempotency.js.map +1 -0
  117. package/dist/schema/index.d.ts +17 -0
  118. package/dist/schema/index.d.ts.map +1 -1
  119. package/dist/schema/index.js +40 -1
  120. package/dist/schema/index.js.map +1 -1
  121. package/dist/schema/licenses.d.ts.map +1 -1
  122. package/dist/schema/licenses.js +13 -1
  123. package/dist/schema/licenses.js.map +1 -1
  124. package/dist/schema/rest.d.ts +2 -0
  125. package/dist/schema/rest.d.ts.map +1 -1
  126. package/dist/schema/rest.js +2 -0
  127. package/dist/schema/rest.js.map +1 -1
  128. package/dist/schema/revmarket.d.ts +971 -0
  129. package/dist/schema/revmarket.d.ts.map +1 -0
  130. package/dist/schema/revmarket.js +160 -0
  131. package/dist/schema/revmarket.js.map +1 -0
  132. package/dist/types/database.d.ts +92 -1
  133. package/dist/types/database.d.ts.map +1 -1
  134. package/dist/types/database.js +20 -0
  135. package/dist/types/database.js.map +1 -1
  136. package/package.json +29 -4
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Ticket label database queries
3
3
  */
4
- import type { DatabaseClient } from '../client/types.js';
5
- export declare function getLabelById(db: DatabaseClient, id: string): Promise<{
4
+ import type { Database } from '../client/index.js';
5
+ export declare function getLabelById(db: Database, id: string): Promise<{
6
6
  id: string;
7
7
  tenantId: string | null;
8
8
  name: string;
@@ -12,7 +12,7 @@ export declare function getLabelById(db: DatabaseClient, id: string): Promise<{
12
12
  createdAt: Date;
13
13
  updatedAt: Date;
14
14
  } | null>;
15
- export declare function getAllLabels(db: DatabaseClient, tenantId?: string): Promise<{
15
+ export declare function getAllLabels(db: Database, tenantId?: string): Promise<{
16
16
  id: string;
17
17
  tenantId: string | null;
18
18
  name: string;
@@ -22,7 +22,7 @@ export declare function getAllLabels(db: DatabaseClient, tenantId?: string): Pro
22
22
  createdAt: Date;
23
23
  updatedAt: Date;
24
24
  }[]>;
25
- export declare function createLabel(db: DatabaseClient, data: {
25
+ export declare function createLabel(db: Database, data: {
26
26
  id: string;
27
27
  name: string;
28
28
  slug: string;
@@ -39,7 +39,7 @@ export declare function createLabel(db: DatabaseClient, data: {
39
39
  tenantId: string | null;
40
40
  color: string;
41
41
  } | undefined>;
42
- export declare function updateLabel(db: DatabaseClient, id: string, data: Partial<{
42
+ export declare function updateLabel(db: Database, id: string, data: Partial<{
43
43
  name: string;
44
44
  slug: string;
45
45
  color: string;
@@ -54,8 +54,8 @@ export declare function updateLabel(db: DatabaseClient, id: string, data: Partia
54
54
  createdAt: Date;
55
55
  updatedAt: Date;
56
56
  } | null>;
57
- export declare function deleteLabel(db: DatabaseClient, id: string): Promise<void>;
58
- export declare function assignLabel(db: DatabaseClient, data: {
57
+ export declare function deleteLabel(db: Database, id: string): Promise<void>;
58
+ export declare function assignLabel(db: Database, data: {
59
59
  id: string;
60
60
  ticketId: string;
61
61
  labelId: string;
@@ -65,8 +65,8 @@ export declare function assignLabel(db: DatabaseClient, data: {
65
65
  labelId: string;
66
66
  assignedAt: Date;
67
67
  } | undefined>;
68
- export declare function removeLabel(db: DatabaseClient, ticketId: string, labelId: string): Promise<void>;
69
- export declare function getLabelsForTicket(db: DatabaseClient, ticketId: string): Promise<{
68
+ export declare function removeLabel(db: Database, ticketId: string, labelId: string): Promise<void>;
69
+ export declare function getLabelsForTicket(db: Database, ticketId: string): Promise<{
70
70
  id: string;
71
71
  tenantId: string | null;
72
72
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-labels.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,wBAAsB,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM;;;;;;;;;UAGhE;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;KASvE;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;eAIF;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;;;;UASlF;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,iBAE/D;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;eAIxD;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAStF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;KAW5E"}
1
+ {"version":3,"file":"ticket-labels.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;UAG1D;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;KASjE;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;eAIF;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;;;;UASlF;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEzD;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;eAIxD;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAShF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;KAWtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-labels.js","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticket-labels.js","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Ticket database queries
3
3
  */
4
- import type { DatabaseClient } from '../client/types.js';
5
- export declare function getTicketsByBoard(db: DatabaseClient, boardId: string, filters?: {
4
+ import type { Database } from '../client/index.js';
5
+ export declare function getTicketsByBoard(db: Database, boardId: string, filters?: {
6
6
  status?: string;
7
7
  priority?: string;
8
8
  type?: string;
@@ -38,7 +38,7 @@ export declare function getTicketsByBoard(db: DatabaseClient, boardId: string, f
38
38
  updatedAt: Date;
39
39
  }[]>;
40
40
  /** List tickets with assignee data joined (prevents N+1 on board views) */
41
- export declare function getTicketsWithAssignees(db: DatabaseClient, boardId: string, filters?: {
41
+ export declare function getTicketsWithAssignees(db: Database, boardId: string, filters?: {
42
42
  status?: string;
43
43
  priority?: string;
44
44
  columnId?: string;
@@ -78,7 +78,7 @@ export declare function getTicketsWithAssignees(db: DatabaseClient, boardId: str
78
78
  email: string | null;
79
79
  } | null;
80
80
  }[]>;
81
- export declare function getTicketById(db: DatabaseClient, id: string): Promise<{
81
+ export declare function getTicketById(db: Database, id: string): Promise<{
82
82
  id: string;
83
83
  schemaVersion: string;
84
84
  boardId: string;
@@ -107,7 +107,7 @@ export declare function getTicketById(db: DatabaseClient, id: string): Promise<{
107
107
  createdAt: Date;
108
108
  updatedAt: Date;
109
109
  } | null>;
110
- export declare function getTicketByNumber(db: DatabaseClient, boardId: string, ticketNumber: number): Promise<{
110
+ export declare function getTicketByNumber(db: Database, boardId: string, ticketNumber: number): Promise<{
111
111
  id: string;
112
112
  schemaVersion: string;
113
113
  boardId: string;
@@ -136,7 +136,7 @@ export declare function getTicketByNumber(db: DatabaseClient, boardId: string, t
136
136
  createdAt: Date;
137
137
  updatedAt: Date;
138
138
  } | null>;
139
- export declare function createTicket(db: DatabaseClient, data: {
139
+ export declare function createTicket(db: Database, data: {
140
140
  id: string;
141
141
  boardId: string;
142
142
  columnId?: string;
@@ -179,7 +179,7 @@ export declare function createTicket(db: DatabaseClient, data: {
179
179
  }[];
180
180
  closedAt: Date | null;
181
181
  } | undefined>;
182
- export declare function updateTicket(db: DatabaseClient, id: string, data: Partial<{
182
+ export declare function updateTicket(db: Database, id: string, data: Partial<{
183
183
  title: string;
184
184
  description: unknown;
185
185
  status: string;
@@ -222,8 +222,8 @@ export declare function updateTicket(db: DatabaseClient, id: string, data: Parti
222
222
  createdAt: Date;
223
223
  updatedAt: Date;
224
224
  } | null>;
225
- export declare function deleteTicket(db: DatabaseClient, id: string): Promise<void>;
226
- export declare function moveTicket(db: DatabaseClient, id: string, columnId: string, sortOrder: number): Promise<{
225
+ export declare function deleteTicket(db: Database, id: string): Promise<void>;
226
+ export declare function moveTicket(db: Database, id: string, columnId: string, sortOrder: number): Promise<{
227
227
  id: string;
228
228
  schemaVersion: string;
229
229
  boardId: string;
@@ -252,7 +252,7 @@ export declare function moveTicket(db: DatabaseClient, id: string, columnId: str
252
252
  createdAt: Date;
253
253
  updatedAt: Date;
254
254
  } | null>;
255
- export declare function getSubtickets(db: DatabaseClient, parentTicketId: string): Promise<{
255
+ export declare function getSubtickets(db: Database, parentTicketId: string): Promise<{
256
256
  id: string;
257
257
  schemaVersion: string;
258
258
  boardId: string;
@@ -281,7 +281,7 @@ export declare function getSubtickets(db: DatabaseClient, parentTicketId: string
281
281
  createdAt: Date;
282
282
  updatedAt: Date;
283
283
  }[]>;
284
- export declare function getTicketsByColumn(db: DatabaseClient, columnId: string): Promise<{
284
+ export declare function getTicketsByColumn(db: Database, columnId: string): Promise<{
285
285
  id: string;
286
286
  schemaVersion: string;
287
287
  boardId: string;
@@ -310,7 +310,7 @@ export declare function getTicketsByColumn(db: DatabaseClient, columnId: string)
310
310
  createdAt: Date;
311
311
  updatedAt: Date;
312
312
  }[]>;
313
- export declare function getOverdueTickets(db: DatabaseClient, boardId: string): Promise<{
313
+ export declare function getOverdueTickets(db: Database, boardId: string): Promise<{
314
314
  id: string;
315
315
  schemaVersion: string;
316
316
  boardId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * User API key database queries
3
+ */
4
+ import type { Database } from '../client/index.js';
5
+ /** Get a user's API key metadata (provider + hint, no encrypted key) */
6
+ export declare function getApiKeyMetadata(db: Database, userId: string): Promise<{
7
+ provider: string;
8
+ keyHint: string | null;
9
+ } | null>;
10
+ /** Get a user's encrypted API key for decryption */
11
+ export declare function getEncryptedApiKey(db: Database, userId: string): Promise<{
12
+ id: string;
13
+ provider: string;
14
+ encryptedKey: string;
15
+ } | null>;
16
+ /** Upsert an API key (delete existing for provider, then insert new) */
17
+ export declare function upsertApiKey(db: Database, values: {
18
+ id: string;
19
+ userId: string;
20
+ provider: string;
21
+ encryptedKey: string;
22
+ keyHint: string | null;
23
+ }): Promise<void>;
24
+ /** Delete all API keys for a user */
25
+ export declare function deleteApiKeys(db: Database, userId: string): Promise<void>;
26
+ /** Update lastUsedAt timestamp (fire-and-forget) */
27
+ export declare function touchApiKeyUsage(db: Database, keyId: string): Promise<void>;
28
+ //# sourceMappingURL=user-api-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-api-keys.d.ts","sourceRoot":"","sources":["../../src/queries/user-api-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;UAOnE;AAED,oDAAoD;AACpD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;UAWpE;AAED,wEAAwE;AACxE,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,iBAaF;AAED,qCAAqC;AACrC,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAE/D;AAED,oDAAoD;AACpD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,iBAEjE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * User API key database queries
3
+ */
4
+ import { and, eq } from 'drizzle-orm';
5
+ import { userApiKeys } from '../schema/api-keys.js';
6
+ /** Get a user's API key metadata (provider + hint, no encrypted key) */
7
+ export async function getApiKeyMetadata(db, userId) {
8
+ const result = await db
9
+ .select({ provider: userApiKeys.provider, keyHint: userApiKeys.keyHint })
10
+ .from(userApiKeys)
11
+ .where(eq(userApiKeys.userId, userId))
12
+ .limit(1);
13
+ return result[0] ?? null;
14
+ }
15
+ /** Get a user's encrypted API key for decryption */
16
+ export async function getEncryptedApiKey(db, userId) {
17
+ const result = await db
18
+ .select({
19
+ id: userApiKeys.id,
20
+ provider: userApiKeys.provider,
21
+ encryptedKey: userApiKeys.encryptedKey,
22
+ })
23
+ .from(userApiKeys)
24
+ .where(eq(userApiKeys.userId, userId))
25
+ .limit(1);
26
+ return result[0] ?? null;
27
+ }
28
+ /** Upsert an API key (delete existing for provider, then insert new) */
29
+ export async function upsertApiKey(db, values) {
30
+ // Delete existing key for this user+provider
31
+ await db
32
+ .delete(userApiKeys)
33
+ .where(and(eq(userApiKeys.userId, values.userId), eq(userApiKeys.provider, values.provider)));
34
+ const now = new Date();
35
+ await db.insert(userApiKeys).values({
36
+ ...values,
37
+ createdAt: now,
38
+ updatedAt: now,
39
+ });
40
+ }
41
+ /** Delete all API keys for a user */
42
+ export async function deleteApiKeys(db, userId) {
43
+ await db.delete(userApiKeys).where(eq(userApiKeys.userId, userId));
44
+ }
45
+ /** Update lastUsedAt timestamp (fire-and-forget) */
46
+ export async function touchApiKeyUsage(db, keyId) {
47
+ await db.update(userApiKeys).set({ lastUsedAt: new Date() }).where(eq(userApiKeys.id, keyId));
48
+ }
49
+ //# sourceMappingURL=user-api-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-api-keys.js","sourceRoot":"","sources":["../../src/queries/user-api-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAY,EAAE,MAAc;IAClE,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;SACxE,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACrC,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAY,EAAE,MAAc;IACnE,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC;QACN,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,YAAY,EAAE,WAAW,CAAC,YAAY;KACvC,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACrC,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,MAMC;IAED,6CAA6C;IAC7C,MAAM,EAAE;SACL,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QAClC,GAAG,MAAM;QACT,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;AACL,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,MAAc;IAC9D,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAY,EAAE,KAAa;IAChE,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * User database queries with soft-delete support
3
3
  */
4
- import type { DatabaseClient } from '../client/types.js';
4
+ import type { Database } from '../client/index.js';
5
5
  import { users } from '../schema/users.js';
6
6
  export interface ListUsersOptions {
7
7
  status?: string;
@@ -11,7 +11,7 @@ export interface ListUsersOptions {
11
11
  offset?: number;
12
12
  }
13
13
  /** List users with optional filters and pagination */
14
- export declare function getAllUsers(db: DatabaseClient, options?: ListUsersOptions): Promise<{
14
+ export declare function getAllUsers(db: Database, options?: ListUsersOptions): Promise<{
15
15
  id: string;
16
16
  schemaVersion: string;
17
17
  type: string;
@@ -46,9 +46,9 @@ export declare function getAllUsers(db: DatabaseClient, options?: ListUsersOptio
46
46
  _json: unknown;
47
47
  }[]>;
48
48
  /** Count users matching filters (for pagination) */
49
- export declare function countUsers(db: DatabaseClient, options?: ListUsersOptions): Promise<number>;
49
+ export declare function countUsers(db: Database, options?: ListUsersOptions): Promise<number>;
50
50
  /** Update a user's fields */
51
- export declare function updateUser(db: DatabaseClient, id: string, data: Partial<typeof users.$inferInsert>): Promise<{
51
+ export declare function updateUser(db: Database, id: string, data: Partial<typeof users.$inferInsert>): Promise<{
52
52
  id: string;
53
53
  schemaVersion: string;
54
54
  type: string;
@@ -83,7 +83,7 @@ export declare function updateUser(db: DatabaseClient, id: string, data: Partial
83
83
  _json: unknown;
84
84
  } | null>;
85
85
  /** Batch-load multiple users by ID in a single query (prevents N+1) */
86
- export declare function getUsersByIds(db: DatabaseClient, ids: string[]): Promise<{
86
+ export declare function getUsersByIds(db: Database, ids: string[]): Promise<{
87
87
  id: string;
88
88
  schemaVersion: string;
89
89
  type: string;
@@ -117,7 +117,7 @@ export declare function getUsersByIds(db: DatabaseClient, ids: string[]): Promis
117
117
  anonymizedAt: Date | null;
118
118
  _json: unknown;
119
119
  }[]>;
120
- export declare function getUserById(db: DatabaseClient, id: string): Promise<{
120
+ export declare function getUserById(db: Database, id: string): Promise<{
121
121
  id: string;
122
122
  schemaVersion: string;
123
123
  type: string;
@@ -151,7 +151,7 @@ export declare function getUserById(db: DatabaseClient, id: string): Promise<{
151
151
  anonymizedAt: Date | null;
152
152
  _json: unknown;
153
153
  } | null>;
154
- export declare function getUserByEmail(db: DatabaseClient, email: string): Promise<{
154
+ export declare function getUserByEmail(db: Database, email: string): Promise<{
155
155
  id: string;
156
156
  schemaVersion: string;
157
157
  type: string;
@@ -186,9 +186,9 @@ export declare function getUserByEmail(db: DatabaseClient, email: string): Promi
186
186
  _json: unknown;
187
187
  } | null>;
188
188
  /** Soft-delete: sets deletedAt timestamp instead of removing the row */
189
- export declare function deleteUser(db: DatabaseClient, id: string): Promise<void>;
189
+ export declare function deleteUser(db: Database, id: string): Promise<void>;
190
190
  /** Restore a soft-deleted user */
191
- export declare function restoreUser(db: DatabaseClient, id: string): Promise<{
191
+ export declare function restoreUser(db: Database, id: string): Promise<{
192
192
  id: string;
193
193
  schemaVersion: string;
194
194
  type: string;
@@ -222,6 +222,48 @@ export declare function restoreUser(db: DatabaseClient, id: string): Promise<{
222
222
  anonymizedAt: Date | null;
223
223
  _json: unknown;
224
224
  } | null>;
225
+ /** Create a new user and return the inserted row */
226
+ export declare function createUser(db: Database, data: typeof users.$inferInsert): Promise<{
227
+ id: string;
228
+ name: string;
229
+ schemaVersion: string;
230
+ type: string;
231
+ email: string | null;
232
+ avatarUrl: string | null;
233
+ password: string | null;
234
+ role: string;
235
+ status: string;
236
+ agentModel: string | null;
237
+ agentCapabilities: string[] | null;
238
+ agentConfig: unknown;
239
+ emailVerified: boolean;
240
+ emailVerificationToken: string | null;
241
+ emailVerificationTokenExpiresAt: Date | null;
242
+ emailVerifiedAt: Date | null;
243
+ tosAcceptedAt: Date | null;
244
+ tosVersion: string | null;
245
+ stripeCustomerId: string | null;
246
+ mfaEnabled: boolean;
247
+ mfaSecret: string | null;
248
+ mfaBackupCodes: string[] | null;
249
+ mfaVerifiedAt: Date | null;
250
+ mfaLastUsedCounter: number | null;
251
+ sshKeyFingerprint: string | null;
252
+ preferences: unknown;
253
+ createdAt: Date;
254
+ updatedAt: Date;
255
+ lastActiveAt: Date | null;
256
+ deletedAt: Date | null;
257
+ anonymizedAt: Date | null;
258
+ _json: unknown;
259
+ } | null>;
225
260
  /** Permanently remove a soft-deleted user (GDPR compliance / admin cleanup) */
226
- export declare function purgeUser(db: DatabaseClient, id: string): Promise<void>;
261
+ export declare function purgeUser(db: Database, id: string): Promise<void>;
262
+ /** Count active (non-deleted, status='active') users */
263
+ export declare function countActiveUsers(db: Database): Promise<number>;
264
+ /** Look up a user by their email verification token hash (non-expired only) */
265
+ export declare function getUserByVerificationToken(db: Database, tokenHash: string): Promise<{
266
+ id: string;
267
+ emailVerified: boolean;
268
+ } | null>;
227
269
  //# sourceMappingURL=users.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/queries/users.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,wBAAsB,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,gBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAenF;AAED,oDAAoD;AACpD,wBAAsB,UAAU,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,gBAAqB,mBAalF;AAED,6BAA6B;AAC7B,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQzC;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMpE;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO/D;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOrE;AAED,wEAAwE;AACxE,wBAAsB,UAAU,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,iBAK9D;AAED,kCAAkC;AAClC,wBAAsB,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO/D;AAED,+EAA+E;AAC/E,wBAAsB,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,iBAE7D"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/queries/users.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,gBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAe7E;AAED,oDAAoD;AACpD,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,gBAAqB,mBAa5E;AAED,6BAA6B;AAC7B,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQzC;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM9D;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOzD;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO/D;AAED,wEAAwE;AACxE,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAKxD;AAED,kCAAkC;AAClC,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOzD;AAED,oDAAoD;AACpD,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAG7E;AAED,+EAA+E;AAC/E,wBAAsB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEvD;AAED,wDAAwD;AACxD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED,+EAA+E;AAC/E,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;;;UAe/E"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * User database queries with soft-delete support
3
3
  */
4
- import { and, count, desc, eq, ilike, inArray, isNull } from 'drizzle-orm';
4
+ import { and, count, desc, eq, gt, ilike, inArray, isNull, or } from 'drizzle-orm';
5
5
  import { users } from '../schema/users.js';
6
6
  /** Condition that excludes soft-deleted users */
7
7
  const notDeleted = isNull(users.deletedAt);
@@ -87,8 +87,27 @@ export async function restoreUser(db, id) {
87
87
  .returning();
88
88
  return result[0] ?? null;
89
89
  }
90
+ /** Create a new user and return the inserted row */
91
+ export async function createUser(db, data) {
92
+ const result = await db.insert(users).values(data).returning();
93
+ return result[0] ?? null;
94
+ }
90
95
  /** Permanently remove a soft-deleted user (GDPR compliance / admin cleanup) */
91
96
  export async function purgeUser(db, id) {
92
97
  await db.delete(users).where(eq(users.id, id));
93
98
  }
99
+ /** Count active (non-deleted, status='active') users */
100
+ export async function countActiveUsers(db) {
101
+ const result = await db.select({ total: count() }).from(users).where(eq(users.status, 'active'));
102
+ return result[0]?.total ?? 0;
103
+ }
104
+ /** Look up a user by their email verification token hash (non-expired only) */
105
+ export async function getUserByVerificationToken(db, tokenHash) {
106
+ const result = await db
107
+ .select({ id: users.id, emailVerified: users.emailVerified })
108
+ .from(users)
109
+ .where(and(eq(users.emailVerificationToken, tokenHash), or(isNull(users.emailVerificationTokenExpiresAt), gt(users.emailVerificationTokenExpiresAt, new Date()))))
110
+ .limit(1);
111
+ return result[0] ?? null;
112
+ }
94
113
  //# sourceMappingURL=users.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/queries/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/queries/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * CRDT Resolver — Conflict Resolution Bridge
3
+ *
4
+ * Bridges the existing CRDT classes from @revealui/ai/memory/crdt with
5
+ * Drizzle ORM operations for conflict-free concurrent writes over NeonDB.
6
+ *
7
+ * Two patterns:
8
+ * 1. PNCounter for commutative balance updates (agent credits, usage metrics)
9
+ * 2. LWWRegister for last-writer-wins value updates with optimistic concurrency
10
+ *
11
+ * These patterns handle concurrent writes without coordination — the CRDT
12
+ * merge function resolves conflicts deterministically.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Increment agent credit balance (safe under concurrency)
17
+ * await crdtIncrement(db, agentCreditBalance, userId, 'balance', 10, 'node-1');
18
+ *
19
+ * // Set a value with last-writer-wins semantics
20
+ * await crdtSetValue(db, agentContexts, contextId, 'metadata', newMetadata, 'node-1');
21
+ * ```
22
+ */
23
+ import { type SQL } from 'drizzle-orm';
24
+ import type { PgTable, TableConfig } from 'drizzle-orm/pg-core';
25
+ import type { Database } from '../client/index.js';
26
+ export interface CRDTIncrementResult {
27
+ previousValue: number;
28
+ newValue: number;
29
+ retries: number;
30
+ }
31
+ export interface CRDTSetResult<T> {
32
+ previousValue: T;
33
+ newValue: T;
34
+ retries: number;
35
+ }
36
+ /**
37
+ * Atomically increment (or decrement) a numeric column using SQL arithmetic.
38
+ *
39
+ * This is naturally idempotent-safe when combined with an idempotency key.
40
+ * Under the hood it uses `SET column = column + delta` which is atomic in
41
+ * a single SQL statement — no CRDT serialization needed for simple counters.
42
+ *
43
+ * For distributed multi-node scenarios where each node tracks its own
44
+ * counter state, use the full PNCounter class from @revealui/ai/memory/crdt.
45
+ *
46
+ * @param db - Database client
47
+ * @param table - Drizzle table reference
48
+ * @param whereClause - WHERE clause to identify the row
49
+ * @param column - Column name to increment
50
+ * @param delta - Amount to add (negative for decrement)
51
+ * @returns Previous and new values
52
+ */
53
+ export declare function crdtIncrement(db: Database, table: PgTable<TableConfig>, whereClause: SQL, column: string, delta: number): Promise<CRDTIncrementResult>;
54
+ /**
55
+ * Set a value using last-writer-wins semantics with optimistic concurrency.
56
+ *
57
+ * When the database client supports transactions (Supabase pg Pool), uses
58
+ * SELECT FOR UPDATE inside a real transaction for true atomic check-and-set.
59
+ *
60
+ * When running on NeonDB HTTP (no transaction support), falls back to a
61
+ * best-effort single-statement UPDATE — still safe for single-row writes
62
+ * but without the isolation guarantee of FOR UPDATE.
63
+ *
64
+ * @param db - Database client (pg Pool for true locking, NeonDB HTTP for best-effort)
65
+ * @param table - Drizzle table reference
66
+ * @param whereClause - WHERE clause to identify the row
67
+ * @param updates - Object of column→value updates to apply
68
+ * @param timestampColumn - Column name used for optimistic concurrency (default: 'updatedAt')
69
+ * @returns Retry count and success status
70
+ */
71
+ export declare function crdtSetWithOptimisticLock(db: Database, table: PgTable<TableConfig>, whereClause: SQL, updates: Record<string, unknown>, timestampColumn?: string): Promise<{
72
+ retries: number;
73
+ success: boolean;
74
+ }>;
75
+ //# sourceMappingURL=crdt-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crdt-resolver.d.ts","sourceRoot":"","sources":["../../src/saga/crdt-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAO,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAcnD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAC3B,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAC3B,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,eAAe,GAAE,MAAoB,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAQhD"}