@revealui/db 0.3.6 → 0.3.7

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 (172) hide show
  1. package/README.md +4 -4
  2. package/dist/audit-store.d.ts +1 -1
  3. package/dist/audit-store.js +1 -1
  4. package/dist/cleanup/rag-site-cleanup.d.ts +2 -2
  5. package/dist/cleanup/rag-site-cleanup.js +2 -2
  6. package/dist/cleanup/stale-tokens.d.ts +6 -6
  7. package/dist/cleanup/stale-tokens.js +6 -6
  8. package/dist/client/index.d.ts +1 -1
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +20 -8
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/crypto.d.ts +1 -1
  13. package/dist/crypto.js +3 -3
  14. package/dist/crypto.js.map +1 -1
  15. package/dist/log-transport.d.ts +1 -1
  16. package/dist/log-transport.js +2 -2
  17. package/dist/log-transport.js.map +1 -1
  18. package/dist/queries/boards.d.ts +1 -1
  19. package/dist/queries/boards.js +1 -1
  20. package/dist/queries/conversations.js +1 -1
  21. package/dist/queries/conversations.js.map +1 -1
  22. package/dist/queries/media.d.ts +6 -1
  23. package/dist/queries/media.d.ts.map +1 -1
  24. package/dist/queries/media.js +16 -2
  25. package/dist/queries/media.js.map +1 -1
  26. package/dist/queries/orders.d.ts +5 -0
  27. package/dist/queries/orders.d.ts.map +1 -1
  28. package/dist/queries/orders.js +14 -1
  29. package/dist/queries/orders.js.map +1 -1
  30. package/dist/queries/pages.d.ts +1 -1
  31. package/dist/queries/posts.d.ts +8 -3
  32. package/dist/queries/posts.d.ts.map +1 -1
  33. package/dist/queries/posts.js +16 -2
  34. package/dist/queries/posts.js.map +1 -1
  35. package/dist/queries/products.d.ts +6 -1
  36. package/dist/queries/products.d.ts.map +1 -1
  37. package/dist/queries/products.js +15 -1
  38. package/dist/queries/products.js.map +1 -1
  39. package/dist/queries/sites.d.ts +7 -1
  40. package/dist/queries/sites.d.ts.map +1 -1
  41. package/dist/queries/sites.js +15 -1
  42. package/dist/queries/sites.js.map +1 -1
  43. package/dist/queries/ticket-comments.js +2 -2
  44. package/dist/queries/ticket-comments.js.map +1 -1
  45. package/dist/queries/tickets.d.ts +1 -1
  46. package/dist/queries/tickets.js +1 -1
  47. package/dist/queries/tickets.js.map +1 -1
  48. package/dist/queries/users.d.ts +35 -0
  49. package/dist/queries/users.d.ts.map +1 -1
  50. package/dist/queries/users.js +26 -0
  51. package/dist/queries/users.js.map +1 -1
  52. package/dist/saga/crdt-resolver.d.ts +4 -4
  53. package/dist/saga/crdt-resolver.js +10 -10
  54. package/dist/saga/crdt-resolver.js.map +1 -1
  55. package/dist/saga/idempotent-operation.d.ts +1 -1
  56. package/dist/saga/idempotent-operation.js +2 -2
  57. package/dist/saga/idempotent-operation.js.map +1 -1
  58. package/dist/saga/index.d.ts +1 -1
  59. package/dist/saga/index.js +1 -1
  60. package/dist/saga/neon-saga.d.ts +2 -2
  61. package/dist/saga/neon-saga.js +9 -9
  62. package/dist/saga/neon-saga.js.map +1 -1
  63. package/dist/saga/recovery.d.ts +2 -2
  64. package/dist/saga/recovery.js +2 -2
  65. package/dist/saga/resilient-step.d.ts +1 -1
  66. package/dist/saga/resilient-step.js +2 -2
  67. package/dist/saga/resilient-step.js.map +1 -1
  68. package/dist/saga/types.d.ts +2 -2
  69. package/dist/schema/accounts.d.ts.map +1 -1
  70. package/dist/schema/accounts.js +20 -5
  71. package/dist/schema/accounts.js.map +1 -1
  72. package/dist/schema/{cms.d.ts → admin.d.ts} +3 -3
  73. package/dist/schema/admin.d.ts.map +1 -0
  74. package/dist/schema/{cms.js → admin.js} +26 -11
  75. package/dist/schema/admin.js.map +1 -0
  76. package/dist/schema/agents.d.ts +1 -1
  77. package/dist/schema/agents.d.ts.map +1 -1
  78. package/dist/schema/agents.js +33 -13
  79. package/dist/schema/agents.js.map +1 -1
  80. package/dist/schema/api-keys.d.ts +1 -1
  81. package/dist/schema/api-keys.d.ts.map +1 -1
  82. package/dist/schema/api-keys.js +10 -4
  83. package/dist/schema/api-keys.js.map +1 -1
  84. package/dist/schema/app-logs.d.ts +1 -1
  85. package/dist/schema/app-logs.js +2 -2
  86. package/dist/schema/app-logs.js.map +1 -1
  87. package/dist/schema/audit-log.d.ts +17 -0
  88. package/dist/schema/audit-log.d.ts.map +1 -1
  89. package/dist/schema/audit-log.js +2 -0
  90. package/dist/schema/audit-log.js.map +1 -1
  91. package/dist/schema/circuit-breaker.d.ts.map +1 -1
  92. package/dist/schema/circuit-breaker.js +4 -1
  93. package/dist/schema/circuit-breaker.js.map +1 -1
  94. package/dist/schema/code-provenance.d.ts.map +1 -1
  95. package/dist/schema/code-provenance.js +4 -1
  96. package/dist/schema/code-provenance.js.map +1 -1
  97. package/dist/schema/coordination.d.ts +2 -2
  98. package/dist/schema/coordination.d.ts.map +1 -1
  99. package/dist/schema/coordination.js +6 -3
  100. package/dist/schema/coordination.js.map +1 -1
  101. package/dist/schema/error-events.d.ts +2 -2
  102. package/dist/schema/error-events.js +5 -5
  103. package/dist/schema/error-events.js.map +1 -1
  104. package/dist/schema/index.js +6 -6
  105. package/dist/schema/index.js.map +1 -1
  106. package/dist/schema/jobs.d.ts +1 -1
  107. package/dist/schema/jobs.js +1 -1
  108. package/dist/schema/licenses.d.ts.map +1 -1
  109. package/dist/schema/licenses.js +6 -3
  110. package/dist/schema/licenses.js.map +1 -1
  111. package/dist/schema/marketplace.d.ts +1 -1
  112. package/dist/schema/marketplace.d.ts.map +1 -1
  113. package/dist/schema/marketplace.js +8 -5
  114. package/dist/schema/marketplace.js.map +1 -1
  115. package/dist/schema/node-ids.d.ts.map +1 -1
  116. package/dist/schema/node-ids.js +4 -1
  117. package/dist/schema/node-ids.js.map +1 -1
  118. package/dist/schema/oauth-accounts.d.ts +1 -1
  119. package/dist/schema/oauth-accounts.d.ts.map +1 -1
  120. package/dist/schema/oauth-accounts.js +5 -2
  121. package/dist/schema/oauth-accounts.js.map +1 -1
  122. package/dist/schema/pages.d.ts.map +1 -1
  123. package/dist/schema/pages.js +5 -2
  124. package/dist/schema/pages.js.map +1 -1
  125. package/dist/schema/products.d.ts.map +1 -1
  126. package/dist/schema/products.js +13 -4
  127. package/dist/schema/products.js.map +1 -1
  128. package/dist/schema/rag.d.ts +1 -1
  129. package/dist/schema/rag.d.ts.map +1 -1
  130. package/dist/schema/rag.js +12 -9
  131. package/dist/schema/rag.js.map +1 -1
  132. package/dist/schema/rate-limits.d.ts.map +1 -1
  133. package/dist/schema/rate-limits.js +8 -2
  134. package/dist/schema/rate-limits.js.map +1 -1
  135. package/dist/schema/rest.d.ts +2 -2
  136. package/dist/schema/rest.d.ts.map +1 -1
  137. package/dist/schema/rest.js +4 -4
  138. package/dist/schema/rest.js.map +1 -1
  139. package/dist/schema/revealcoin.js +1 -1
  140. package/dist/schema/revealcoin.js.map +1 -1
  141. package/dist/schema/revmarket.d.ts +1 -1
  142. package/dist/schema/revmarket.d.ts.map +1 -1
  143. package/dist/schema/revmarket.js +14 -8
  144. package/dist/schema/revmarket.js.map +1 -1
  145. package/dist/schema/sites.d.ts.map +1 -1
  146. package/dist/schema/sites.js +5 -2
  147. package/dist/schema/sites.js.map +1 -1
  148. package/dist/schema/tenants.d.ts.map +1 -1
  149. package/dist/schema/tenants.js +4 -1
  150. package/dist/schema/tenants.js.map +1 -1
  151. package/dist/schema/tickets.d.ts.map +1 -1
  152. package/dist/schema/tickets.js +20 -5
  153. package/dist/schema/tickets.js.map +1 -1
  154. package/dist/schema/users.d.ts.map +1 -1
  155. package/dist/schema/users.js +11 -5
  156. package/dist/schema/users.js.map +1 -1
  157. package/dist/schema/webhook-events.js +1 -1
  158. package/dist/schema/webhook-events.js.map +1 -1
  159. package/dist/schema/yjs-documents.d.ts.map +1 -1
  160. package/dist/schema/yjs-documents.js +4 -1
  161. package/dist/schema/yjs-documents.js.map +1 -1
  162. package/dist/scripts/cleanup-expired.d.ts +3 -3
  163. package/dist/scripts/cleanup-expired.js +4 -4
  164. package/dist/scripts/cleanup-expired.js.map +1 -1
  165. package/dist/types/discover.js +1 -1
  166. package/dist/types/discover.js.map +1 -1
  167. package/dist/validation/cross-db.d.ts +1 -1
  168. package/dist/validation/cross-db.js +3 -3
  169. package/dist/validation/cross-db.js.map +1 -1
  170. package/package.json +20 -6
  171. package/dist/schema/cms.d.ts.map +0 -1
  172. package/dist/schema/cms.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;KAerF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAO5D;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOhE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;UAGnF;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;UAQ5C;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAK3D"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,uDAAuD;AACvD,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,mBAapD;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;KAerF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAO5D;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOhE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;UAGnF;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;UAQ5C;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAK3D"}
@@ -1,8 +1,22 @@
1
1
  /**
2
2
  * Product database queries
3
3
  */
4
- import { and, desc, eq, isNull } from 'drizzle-orm';
4
+ import { and, count, desc, eq, isNull } from 'drizzle-orm';
5
5
  import { products } from '../schema/products.js';
6
+ /** Count products matching filters (for pagination) */
7
+ export async function countProducts(db, options = {}) {
8
+ const { status, ownerId } = options;
9
+ const conditions = [
10
+ isNull(products.deletedAt),
11
+ ...(status ? [eq(products.status, status)] : []),
12
+ ...(ownerId ? [eq(products.ownerId, ownerId)] : []),
13
+ ];
14
+ const result = await db
15
+ .select({ total: count() })
16
+ .from(products)
17
+ .where(and(...conditions));
18
+ return result[0]?.total ?? 0;
19
+ }
6
20
  export async function getAllProducts(db, options = {}) {
7
21
  const { status, ownerId, limit = 20, offset = 0 } = options;
8
22
  const conditions = [
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAY,EACZ,UAAiD,EAAE;IAEnD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG;QACjB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAY,EACZ,UAAkF,EAAE;IAEpF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC5D,MAAM,UAAU,GAAG;QACjB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IACF,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAY,EAAE,EAAU;IAC3D,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC3D,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAY,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,IAAkC;IAClF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAClE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAY,EACZ,EAAU,EACV,IAA2C;IAE3C,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,QAAQ,CAAC;SAChB,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACvC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC3D,SAAS,EAAE,CAAC;IACf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,EAAU;IAC1D,MAAM,EAAE;SACL,MAAM,CAAC,QAAQ,CAAC;SAChB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACrD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -3,6 +3,12 @@
3
3
  */
4
4
  import type { Database } from '../client/index.js';
5
5
  import { sites } from '../schema/sites.js';
6
+ /** Count sites matching filters (for pagination) */
7
+ export declare function countSites(db: Database, options?: {
8
+ ownerId?: string;
9
+ status?: string;
10
+ includeDeleted?: boolean;
11
+ }): Promise<number>;
6
12
  export declare function getAllSites(db: Database, options?: {
7
13
  ownerId?: string;
8
14
  status?: string;
@@ -73,13 +79,13 @@ export declare function createSite(db: Database, data: typeof sites.$inferInsert
73
79
  deletedAt: Date | null;
74
80
  slug: string;
75
81
  version: number;
82
+ publishedAt: Date | null;
76
83
  ownerId: string;
77
84
  description: string | null;
78
85
  theme: unknown;
79
86
  settings: unknown;
80
87
  pageCount: number | null;
81
88
  favicon: string | null;
82
- publishedAt: Date | null;
83
89
  } | null>;
84
90
  export declare function updateSite(db: Database, id: string, data: Partial<typeof sites.$inferInsert>): Promise<{
85
91
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB;;;;;;;;;;;;;;;;;KAeP;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOzD;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;UAO7D;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;UAG7E;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;UAQzC;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,6DAA6D;AAC7D,wBAAsB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEvD;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,oDAAoD;AACpD,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,mBAa9E;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB;;;;;;;;;;;;;;;;;KAeP;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOzD;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;UAO7D;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;UAG7E;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;UAQzC;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,6DAA6D;AAC7D,wBAAsB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEvD;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF"}
@@ -1,10 +1,24 @@
1
1
  /**
2
2
  * Site database queries
3
3
  */
4
- import { and, desc, eq, isNull, sql } from 'drizzle-orm';
4
+ import { and, count, desc, eq, isNull, sql } from 'drizzle-orm';
5
5
  import { sites } from '../schema/sites.js';
6
6
  /** Condition that excludes soft-deleted sites */
7
7
  const notDeleted = isNull(sites.deletedAt);
8
+ /** Count sites matching filters (for pagination) */
9
+ export async function countSites(db, options = {}) {
10
+ const { ownerId, status, includeDeleted = false } = options;
11
+ const conditions = [
12
+ ...(includeDeleted ? [] : [notDeleted]),
13
+ ...(ownerId ? [eq(sites.ownerId, ownerId)] : []),
14
+ ...(status ? [eq(sites.status, status)] : []),
15
+ ];
16
+ const result = await db
17
+ .select({ total: count() })
18
+ .from(sites)
19
+ .where(conditions.length > 0 ? and(...conditions) : undefined);
20
+ return result[0]?.total ?? 0;
21
+ }
8
22
  export async function getAllSites(db, options = {}) {
9
23
  const { ownerId, status, limit = 20, offset = 0, includeDeleted = false } = options;
10
24
  const conditions = [
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,iDAAiD;AACjD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAY,EACZ,UAMI,EAAE;IAEN,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACpF,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;IACF,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAY,EAAE,EAAU;IACxD,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SACxC,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,IAAY;IAC5D,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SAC5C,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAY,EAAE,IAA+B;IAC5E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAY,EACZ,EAAU,EACV,IAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACvC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SACxC,SAAS,EAAE,CAAC;IACf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAY,EAAE,EAAU;IACvD,MAAM,EAAE;SACL,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACrD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAY,EAAE,EAAU;IACxD,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SAC/C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACvB,SAAS,EAAE,CAAC;IACf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAY,EAAE,EAAU;IACtD,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAY,EAAE,MAAc;IACnE,MAAM,EAAE;SACL,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAA,YAAY,KAAK,CAAC,SAAS,UAAU,EAAE,CAAC;SAC5D,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAY,EAAE,MAAc;IACnE,MAAM,EAAE;SACL,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAA,qBAAqB,KAAK,CAAC,SAAS,cAAc,EAAE,CAAC;SACzE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export async function getCommentsByTicketIds(db, ticketIds) {
42
42
  .orderBy(ticketComments.createdAt);
43
43
  }
44
44
  // NOTE: NeonDB HTTP driver does not support transactions. The insert and count
45
- // update below are not atomica failure between them can leave the comment
45
+ // update below are not atomic - a failure between them can leave the comment
46
46
  // count out of sync. A periodic reconciliation job or manual correction may be
47
47
  // needed if this becomes a problem in practice.
48
48
  export async function createComment(db, data) {
@@ -66,7 +66,7 @@ export async function updateComment(db, id, data) {
66
66
  return result[0] ?? null;
67
67
  }
68
68
  // NOTE: NeonDB HTTP driver does not support transactions. The select, delete,
69
- // and count update below are not atomica failure between them can leave the
69
+ // and count update below are not atomic - a failure between them can leave the
70
70
  // comment count out of sync or orphan a decrement without a deletion.
71
71
  export async function deleteComment(db, id) {
72
72
  // Get the ticket ID before deleting
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-comments.js","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticket-comments.js","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"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"}
@@ -158,9 +158,9 @@ export declare function createTicket(db: Database, data: {
158
158
  createdAt: Date;
159
159
  updatedAt: Date;
160
160
  metadata: unknown;
161
+ title: string;
161
162
  description: unknown;
162
163
  priority: string;
163
- title: string;
164
164
  boardId: string;
165
165
  columnId: string | null;
166
166
  parentTicketId: string | null;
@@ -58,7 +58,7 @@ export async function getTicketByNumber(db, boardId, ticketNumber) {
58
58
  return result[0] ?? null;
59
59
  }
60
60
  export async function createTicket(db, data) {
61
- // Atomic ticket number assignmentthe subquery computes MAX+1 inside the
61
+ // Atomic ticket number assignment - the subquery computes MAX+1 inside the
62
62
  // INSERT so concurrent inserts cannot produce duplicate numbers. The UNIQUE
63
63
  // constraint on (board_id, ticket_number) acts as a safety net.
64
64
  const result = await db
@@ -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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"}
@@ -257,6 +257,41 @@ export declare function createUser(db: Database, data: typeof users.$inferInsert
257
257
  anonymizedAt: Date | null;
258
258
  _json: unknown;
259
259
  } | null>;
260
+ /** Anonymize PII for GDPR right-to-erasure. Soft-deletes if not already deleted. */
261
+ export declare function anonymizeUser(db: Database, id: string): Promise<{
262
+ id: string;
263
+ schemaVersion: string;
264
+ type: string;
265
+ name: string;
266
+ email: string | null;
267
+ avatarUrl: string | null;
268
+ password: string | null;
269
+ role: string;
270
+ status: string;
271
+ agentModel: string | null;
272
+ agentCapabilities: string[] | null;
273
+ agentConfig: unknown;
274
+ emailVerified: boolean;
275
+ emailVerificationToken: string | null;
276
+ emailVerificationTokenExpiresAt: Date | null;
277
+ emailVerifiedAt: Date | null;
278
+ tosAcceptedAt: Date | null;
279
+ tosVersion: string | null;
280
+ stripeCustomerId: string | null;
281
+ mfaEnabled: boolean;
282
+ mfaSecret: string | null;
283
+ mfaBackupCodes: string[] | null;
284
+ mfaVerifiedAt: Date | null;
285
+ mfaLastUsedCounter: number | null;
286
+ sshKeyFingerprint: string | null;
287
+ preferences: unknown;
288
+ createdAt: Date;
289
+ updatedAt: Date;
290
+ lastActiveAt: Date | null;
291
+ deletedAt: Date | null;
292
+ anonymizedAt: Date | null;
293
+ _json: unknown;
294
+ } | null>;
260
295
  /** Permanently remove a soft-deleted user (GDPR compliance / admin cleanup) */
261
296
  export declare function purgeUser(db: Database, id: string): Promise<void>;
262
297
  /** Count active (non-deleted, status='active') users */
@@ -1 +1 @@
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
+ {"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,oFAAoF;AACpF,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwB3D;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"}
@@ -92,6 +92,32 @@ export async function createUser(db, data) {
92
92
  const result = await db.insert(users).values(data).returning();
93
93
  return result[0] ?? null;
94
94
  }
95
+ /** Anonymize PII for GDPR right-to-erasure. Soft-deletes if not already deleted. */
96
+ export async function anonymizeUser(db, id) {
97
+ const now = new Date();
98
+ const result = await db
99
+ .update(users)
100
+ .set({
101
+ name: 'Deleted User',
102
+ email: null,
103
+ avatarUrl: null,
104
+ password: null,
105
+ mfaSecret: null,
106
+ mfaBackupCodes: null,
107
+ sshKeyFingerprint: null,
108
+ preferences: null,
109
+ emailVerificationToken: null,
110
+ emailVerificationTokenExpiresAt: null,
111
+ agentConfig: null,
112
+ anonymizedAt: now,
113
+ deletedAt: now,
114
+ updatedAt: now,
115
+ status: 'deleted',
116
+ })
117
+ .where(eq(users.id, id))
118
+ .returning();
119
+ return result[0] ?? null;
120
+ }
95
121
  /** Permanently remove a soft-deleted user (GDPR compliance / admin cleanup) */
96
122
  export async function purgeUser(db, id) {
97
123
  await db.delete(users).where(eq(users.id, id));
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * CRDT ResolverConflict Resolution Bridge
2
+ * CRDT Resolver - Conflict Resolution Bridge
3
3
  *
4
4
  * Bridges the existing CRDT classes from @revealui/ai/memory/crdt with
5
5
  * Drizzle ORM operations for conflict-free concurrent writes over NeonDB.
@@ -8,7 +8,7 @@
8
8
  * 1. PNCounter for commutative balance updates (agent credits, usage metrics)
9
9
  * 2. LWWRegister for last-writer-wins value updates with optimistic concurrency
10
10
  *
11
- * These patterns handle concurrent writes without coordinationthe CRDT
11
+ * These patterns handle concurrent writes without coordination - the CRDT
12
12
  * merge function resolves conflicts deterministically.
13
13
  *
14
14
  * @example
@@ -38,7 +38,7 @@ export interface CRDTSetResult<T> {
38
38
  *
39
39
  * This is naturally idempotent-safe when combined with an idempotency key.
40
40
  * Under the hood it uses `SET column = column + delta` which is atomic in
41
- * a single SQL statementno CRDT serialization needed for simple counters.
41
+ * a single SQL statement - no CRDT serialization needed for simple counters.
42
42
  *
43
43
  * For distributed multi-node scenarios where each node tracks its own
44
44
  * counter state, use the full PNCounter class from @revealui/ai/memory/crdt.
@@ -58,7 +58,7 @@ export declare function crdtIncrement(db: Database, table: PgTable<TableConfig>,
58
58
  * SELECT FOR UPDATE inside a real transaction for true atomic check-and-set.
59
59
  *
60
60
  * When running on NeonDB HTTP (no transaction support), falls back to a
61
- * best-effort single-statement UPDATEstill safe for single-row writes
61
+ * best-effort single-statement UPDATE - still safe for single-row writes
62
62
  * but without the isolation guarantee of FOR UPDATE.
63
63
  *
64
64
  * @param db - Database client (pg Pool for true locking, NeonDB HTTP for best-effort)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * CRDT ResolverConflict Resolution Bridge
2
+ * CRDT Resolver - Conflict Resolution Bridge
3
3
  *
4
4
  * Bridges the existing CRDT classes from @revealui/ai/memory/crdt with
5
5
  * Drizzle ORM operations for conflict-free concurrent writes over NeonDB.
@@ -8,7 +8,7 @@
8
8
  * 1. PNCounter for commutative balance updates (agent credits, usage metrics)
9
9
  * 2. LWWRegister for last-writer-wins value updates with optimistic concurrency
10
10
  *
11
- * These patterns handle concurrent writes without coordinationthe CRDT
11
+ * These patterns handle concurrent writes without coordination - the CRDT
12
12
  * merge function resolves conflicts deterministically.
13
13
  *
14
14
  * @example
@@ -27,14 +27,14 @@ import { sql } from 'drizzle-orm';
27
27
  /** Maximum number of optimistic concurrency retries before giving up */
28
28
  const MAX_RETRIES = 5;
29
29
  // =============================================================================
30
- // PNCounter PatternCommutative Increments/Decrements
30
+ // PNCounter Pattern - Commutative Increments/Decrements
31
31
  // =============================================================================
32
32
  /**
33
33
  * Atomically increment (or decrement) a numeric column using SQL arithmetic.
34
34
  *
35
35
  * This is naturally idempotent-safe when combined with an idempotency key.
36
36
  * Under the hood it uses `SET column = column + delta` which is atomic in
37
- * a single SQL statementno CRDT serialization needed for simple counters.
37
+ * a single SQL statement - no CRDT serialization needed for simple counters.
38
38
  *
39
39
  * For distributed multi-node scenarios where each node tracks its own
40
40
  * counter state, use the full PNCounter class from @revealui/ai/memory/crdt.
@@ -63,7 +63,7 @@ export async function crdtIncrement(db, table, whereClause, column, delta) {
63
63
  return { previousValue, newValue, retries: 0 };
64
64
  }
65
65
  // =============================================================================
66
- // LWW Register PatternLast-Writer-Wins with Optimistic Concurrency
66
+ // LWW Register Pattern - Last-Writer-Wins with Optimistic Concurrency
67
67
  // =============================================================================
68
68
  /**
69
69
  * Detect whether a Database instance supports real transactions (pg Pool).
@@ -80,7 +80,7 @@ function supportsTransactions(db) {
80
80
  * SELECT FOR UPDATE inside a real transaction for true atomic check-and-set.
81
81
  *
82
82
  * When running on NeonDB HTTP (no transaction support), falls back to a
83
- * best-effort single-statement UPDATEstill safe for single-row writes
83
+ * best-effort single-statement UPDATE - still safe for single-row writes
84
84
  * but without the isolation guarantee of FOR UPDATE.
85
85
  *
86
86
  * @param db - Database client (pg Pool for true locking, NeonDB HTTP for best-effort)
@@ -91,11 +91,11 @@ function supportsTransactions(db) {
91
91
  * @returns Retry count and success status
92
92
  */
93
93
  export async function crdtSetWithOptimisticLock(db, table, whereClause, updates, timestampColumn = 'updatedAt') {
94
- // pg Pool pathtrue transactional SELECT FOR UPDATE
94
+ // pg Pool path - true transactional SELECT FOR UPDATE
95
95
  if (supportsTransactions(db)) {
96
96
  return crdtSetTransactional(db, table, whereClause, updates, timestampColumn);
97
97
  }
98
- // NeonDB HTTP fallbackbest-effort single-statement update
98
+ // NeonDB HTTP fallback - best-effort single-statement update
99
99
  return crdtSetBestEffort(db, table, whereClause, updates, timestampColumn);
100
100
  }
101
101
  /**
@@ -107,7 +107,7 @@ async function crdtSetTransactional(db, table, whereClause, updates, timestampCo
107
107
  while (retries < MAX_RETRIES) {
108
108
  try {
109
109
  const success = await db.transaction(async (tx) => {
110
- // Lock the rowblocks concurrent writers until this tx commits
110
+ // Lock the row - blocks concurrent writers until this tx commits
111
111
  const rows = await tx.select().from(table).where(whereClause).for('update').limit(1);
112
112
  if (rows.length === 0) {
113
113
  throw new Error('CRDT set: row not found');
@@ -147,7 +147,7 @@ async function crdtSetTransactional(db, table, whereClause, updates, timestampCo
147
147
  }
148
148
  /**
149
149
  * Best-effort single-statement UPDATE for NeonDB HTTP.
150
- * No true isolationrelies on the write being a single atomic statement.
150
+ * No true isolation - relies on the write being a single atomic statement.
151
151
  */
152
152
  async function crdtSetBestEffort(db, table, whereClause, updates, timestampColumn) {
153
153
  const rows = await db.select().from(table).where(whereClause).limit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"crdt-resolver.js","sourceRoot":"","sources":["../../src/saga/crdt-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crdt-resolver.js","sourceRoot":"","sources":["../../src/saga/crdt-resolver.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  * );
19
19
  *
20
20
  * if (alreadyProcessed) {
21
- * // Email was already sentskip
21
+ * // Email was already sent - skip
22
22
  * }
23
23
  * ```
24
24
  */
@@ -18,7 +18,7 @@
18
18
  * );
19
19
  *
20
20
  * if (alreadyProcessed) {
21
- * // Email was already sentskip
21
+ * // Email was already sent - skip
22
22
  * }
23
23
  * ```
24
24
  */
@@ -53,7 +53,7 @@ export async function idempotentWrite(db, key, operationType, operation, options
53
53
  if (!row.expiresAt || row.expiresAt >= new Date()) {
54
54
  return { alreadyProcessed: true };
55
55
  }
56
- // Expiredclean up and proceed
56
+ // Expired - clean up and proceed
57
57
  await db.delete(idempotencyKeys).where(eq(idempotencyKeys.key, key));
58
58
  }
59
59
  // Step 2: Execute the operation
@@ -1 +1 @@
1
- {"version":3,"file":"idempotent-operation.js","sourceRoot":"","sources":["../../src/saga/idempotent-operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,wBAAwB;AACxB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAgB3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EACZ,GAAW,EACX,aAAqB,EACrB,SAA2B,EAC3B,OAAgC;IAEhC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,cAAc,CAAC;IAE/C,qCAAqC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,MAAM,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;SAC1E,IAAI,CAAC,eAAe,CAAC;SACrB,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACnC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,GAAG,EAAE,CAAC;QACR,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAClD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,iCAAiC;QACjC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,qCAAqC;IACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAC/C,MAAM,UAAU,GACd,OAAO,EAAE,WAAW,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QACnE,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,EAAE;SACL,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC;QACN,GAAG;QACH,aAAa;QACb,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;KACV,CAAC;SACD,mBAAmB,EAAE,CAAC;IAEzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"idempotent-operation.js","sourceRoot":"","sources":["../../src/saga/idempotent-operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,wBAAwB;AACxB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAgB3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EACZ,GAAW,EACX,aAAqB,EACrB,SAA2B,EAC3B,OAAgC;IAEhC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,cAAc,CAAC;IAE/C,qCAAqC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,MAAM,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;SAC1E,IAAI,CAAC,eAAe,CAAC;SACrB,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACnC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,GAAG,EAAE,CAAC;QACR,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAClD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,mCAAmC;QACnC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,qCAAqC;IACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAC/C,MAAM,UAAU,GACd,OAAO,EAAE,WAAW,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QACnE,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,EAAE;SACL,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC;QACN,GAAG;QACH,aAAa;QACb,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;KACV,CAAC;SACD,mBAAmB,EAAE,CAAC;IAEzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @revealui/db/sagaNeonDB-safe saga executor
2
+ * @revealui/db/saga - NeonDB-safe saga executor
3
3
  *
4
4
  * Provides transaction-like guarantees over NeonDB's stateless HTTP driver
5
5
  * using compensating actions, idempotency keys, and the jobs table as outbox.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @revealui/db/sagaNeonDB-safe saga executor
2
+ * @revealui/db/saga - NeonDB-safe saga executor
3
3
  *
4
4
  * Provides transaction-like guarantees over NeonDB's stateless HTTP driver
5
5
  * using compensating actions, idempotency keys, and the jobs table as outbox.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * NeonSagaSaga Executor for NeonDB HTTP Driver
2
+ * NeonSaga - Saga Executor for NeonDB HTTP Driver
3
3
  *
4
4
  * Provides transaction-like guarantees over NeonDB's stateless HTTP driver
5
5
  * by modeling multi-step writes as a saga with compensating actions.
@@ -36,7 +36,7 @@
36
36
  */
37
37
  import type { SagaOptions, SagaResult, SagaStep } from './types.js';
38
38
  /**
39
- * Execute a sagaa sequence of individually-atomic steps with compensating
39
+ * Execute a saga - a sequence of individually-atomic steps with compensating
40
40
  * actions for rollback.
41
41
  *
42
42
  * @param db - Database client (works with both NeonDB HTTP and pg Pool)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * NeonSagaSaga Executor for NeonDB HTTP Driver
2
+ * NeonSaga - Saga Executor for NeonDB HTTP Driver
3
3
  *
4
4
  * Provides transaction-like guarantees over NeonDB's stateless HTTP driver
5
5
  * by modeling multi-step writes as a saga with compensating actions.
@@ -40,7 +40,7 @@ import { jobs } from '../schema/jobs.js';
40
40
  // Default idempotency TTL: 24 hours
41
41
  const DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1000;
42
42
  /**
43
- * Execute a sagaa sequence of individually-atomic steps with compensating
43
+ * Execute a saga - a sequence of individually-atomic steps with compensating
44
44
  * actions for rollback.
45
45
  *
46
46
  * @param db - Database client (works with both NeonDB HTTP and pg Pool)
@@ -54,7 +54,7 @@ export async function executeSaga(db, sagaName, sagaKey, steps, options) {
54
54
  const idempotencyKey = options?.idempotencyKey ?? `${sagaName}:${sagaKey}`;
55
55
  const sagaId = `saga-${sagaName}-${sagaKey}-${Date.now()}`;
56
56
  // -------------------------------------------------------------------------
57
- // 1. Idempotency checkskip if already processed
57
+ // 1. Idempotency check - skip if already processed
58
58
  // -------------------------------------------------------------------------
59
59
  const alreadyProcessed = await checkIdempotency(db, idempotencyKey);
60
60
  if (alreadyProcessed) {
@@ -66,7 +66,7 @@ export async function executeSaga(db, sagaName, sagaKey, steps, options) {
66
66
  };
67
67
  }
68
68
  // -------------------------------------------------------------------------
69
- // 2. Create job record (outbox entry)records intent before mutations
69
+ // 2. Create job record (outbox entry) - records intent before mutations
70
70
  // -------------------------------------------------------------------------
71
71
  const checkpointData = {
72
72
  sagaName,
@@ -120,7 +120,7 @@ export async function executeSaga(db, sagaName, sagaKey, steps, options) {
120
120
  lastOutput = output;
121
121
  }
122
122
  // -----------------------------------------------------------------------
123
- // 4. All steps succeededmark completed and record idempotency key
123
+ // 4. All steps succeeded - mark completed and record idempotency key
124
124
  // -----------------------------------------------------------------------
125
125
  await db
126
126
  .update(jobs)
@@ -137,7 +137,7 @@ export async function executeSaga(db, sagaName, sagaKey, steps, options) {
137
137
  }
138
138
  catch (executeError) {
139
139
  // -----------------------------------------------------------------------
140
- // 5. Step failedcompensate completed steps in reverse order
140
+ // 5. Step failed - compensate completed steps in reverse order
141
141
  // -----------------------------------------------------------------------
142
142
  const errorMessage = executeError instanceof Error ? executeError.message : String(executeError);
143
143
  const compensationErrors = [];
@@ -153,7 +153,7 @@ export async function executeSaga(db, sagaName, sagaKey, steps, options) {
153
153
  await step.compensate(ctx, completed.output);
154
154
  }
155
155
  catch (compensateError) {
156
- // Log but don't throwcompensations are best-effort
156
+ // Log but don't throw - compensations are best-effort
157
157
  const msg = compensateError instanceof Error ? compensateError.message : String(compensateError);
158
158
  compensationErrors.push(`${completed.name}: ${msg}`);
159
159
  }
@@ -199,7 +199,7 @@ async function checkIdempotency(db, key) {
199
199
  return false;
200
200
  const expiresAt = rows[0]?.expiresAt;
201
201
  if (expiresAt && expiresAt < new Date()) {
202
- // Expireddelete and treat as not processed
202
+ // Expired - delete and treat as not processed
203
203
  await db.delete(idempotencyKeys).where(eq(idempotencyKeys.key, key));
204
204
  return false;
205
205
  }
@@ -227,7 +227,7 @@ async function recordIdempotency(db, key, operationType, ttlMs) {
227
227
  .onConflictDoNothing();
228
228
  }
229
229
  catch {
230
- // Best-effortif this fails, the saga still completed successfully.
230
+ // Best-effort - if this fails, the saga still completed successfully.
231
231
  // The next execution will just re-run (which is fine since steps are idempotent).
232
232
  }
233
233
  }